A4  java/lang/Object()V   org/freertr/user/userUpgradeforcesI  cmdLorg/freertr/util/cmds;org/freertr/pipe/pipeProgress  org/freertr/util/cmdspipeLorg/freertr/pipe/pipeSide;  (Lorg/freertr/pipe/pipeSide;)V  consLorg/freertr/pipe/pipeProgress;! java/io/File # $(Ljava/lang/String;)V&org/freertr/cry/cryHashSha2512 % )*+ ,org/freertr/cry/cryHashGenericinit ./0 12org/freertr/cry/cryUtilshashFile1(Lorg/freertr/cry/cryHashGeneric;Ljava/io/File;)Z .4 56hash2hex4(Lorg/freertr/cry/cryHashGeneric;)Ljava/lang/String;8org/freertr/cry/cryHashSha3512 7 ; <=length()J? @AmakeConcatWithConstants9(JLjava/lang/String;Ljava/lang/String;)Ljava/lang/String; CDE FG org/freertr/pipe/pipeSide$modTypmodeLF"Lorg/freertr/pipe/pipeSide$modTyp; .I JKhashTextU(Lorg/freertr/cry/cryHashGeneric;Ljava/util/List;Lorg/freertr/pipe/pipeSide$modTyp;)ZM @N8(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; PQR STorg/freertr/cfg/cfgInit myPathName()Ljava/lang/String; V WXverExtLjava/lang/String;M P[ \T getFileName ^ _TgetName a bTworddcurrent f gh readUpKeyA(Ljava/lang/String;Ljava/lang/String;)Lorg/freertr/cry/cryKeyRSA;jfailed to get current key! l m$erroro org/freertr/user/userUpgradeBlob n nr sputSelf uvw <xjava/lang/String()I z{| }~org/freertr/util/bitsstr2num(Ljava/lang/String;)I   calcFileHash&(Ljava/lang/String;)Ljava/lang/String; @ n filesLjava/util/List; org/freertr/user/userUpgradeNtry ((Ljava/lang/String;ILjava/lang/String;)V  java/util/Listadd(Ljava/lang/Object;)Z n doSign(Lorg/freertr/cry/cryKeyRSA;)V n getText(I)Ljava/util/List;  T myVerFile z buf2txt&(ZLjava/util/List;Ljava/lang/String;)Z @(I)Ljava/lang/String;org/freertr/cry/cryKeyRSA   keyMakeSize(I)Z xkeySize  keyVerify()Z @(IZ)Ljava/lang/String;  pemWriteStr(Z)Ljava/lang/String;  $org/freertr/pipe/pipeSidelinePutoldfailed to get old key! z =getTime  Xorg/freertr/cfg/cfgAll timeZoneName z time2num(Ljava/lang/String;JI)I  org/freertr/util/version.java z txt2buf$(Ljava/lang/String;)Ljava/util/List;(org/freertr/util/version.java not found! xsize get(I)Ljava/lang/Object;# public final static int year = u  startsWith(Ljava/lang/String;)Z set'(ILjava/lang/Object;)Ljava/lang/Object;$ public final static int month =  " public final static int day =  ) public final static String pubKeyC = ) public final static String pubKeyO =  X upgradeServererror reading version info! n fromText%(Ljava/util/List;Z)Ljava/lang/String; n  Xhead n  getFilelist n T n =getSize @(J)Ljava/lang/String; n Xkeyed n  getSum n# $Xjars & '( verifyFile'(Ljava/lang/String;Ljava/lang/String;)I P* +T getRWpath - .Xname 0 1Xchk3some tests failed!5system verification failed! 7l8org/freertr/util/logger:all tests passed! < =exists @ A$strPutC is missing! uE F~ compareToH is corrupted!J is ok! M N doUpgrade P QXbakExt STU VWorg/freertr/user/userFlashrename)(Ljava/lang/String;Ljava/lang/String;ZZ)ZYunable to revert to backup S[ \]copy((Ljava/lang/String;Ljava/lang/String;Z)Z _ `doneFail b c$ debugState"org/freertr/user/userUpgradeRevert d dh istart k lmneedColdZocoldqwarm s tu inProgressLorg/freertr/util/syncInt; wxy xorg/freertr/util/syncInt{no upgrade in progess}upgrade in progessauto-revert cancelled w (I)I P  stopRouter(ZILjava/lang/String;)V 7 $info z xrandomD  XtmpExt @9(Ljava/lang/String;ILjava/lang/String;)Ljava/lang/String;  T myFileName  org/freertr/enc/encUrlparseOne,(Ljava/lang/String;)Lorg/freertr/enc/encUrl;  XfilExt S delete  org/freertr/pipe/pipeDiscardneedAny8(Lorg/freertr/pipe/pipeSide;)Lorg/freertr/pipe/pipeSide; S  doReceiveD(Lorg/freertr/pipe/pipeSide;Lorg/freertr/enc/encUrl;Ljava/io/File;)Z&auto-revert was unable to reach server  doRevertauto-revert finishedoverlapping upgrades eliminated  $ upgraderDoerjava/lang/Exception 7  traceback(Ljava/lang/Throwable;)Vdownloading version info failed to download version info!  $debugRes  needStop n timeJ z timeDump! @J(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" @(JJJ)Ljava/lang/String;#$ n  copyBytes$()Lorg/freertr/user/userUpgradeBlob; n delFiles(Ljava/util/List;)V%&no downgrade allowed!   doMissing%(Lorg/freertr/user/userUpgradeBlob;)Ino upgrade needed!  m upgradeConfigsaving configurationorg/freertr/user/userReader  9(Lorg/freertr/pipe/pipeSide;Lorg/freertr/user/userLine;)Vorg/freertr/pipe/pipeSetting  java/lang/IntegervalueOf(I)Ljava/lang/Integer;   settingsPut(ILjava/lang/Object;)Vorg/freertr/user/userExec   ;(Lorg/freertr/pipe/pipeSide;Lorg/freertr/user/userReader;)V   m privilegedwrite   repairCommand  executeCommand6(Ljava/lang/String;)Lorg/freertr/user/userExec$cmdRes;'   upgradeFilesJ(Lorg/freertr/user/userUpgradeBlob;Ljava/lang/String;Ljava/lang/String;I)Z   upgradeFileK(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I  !" upgradeScriptLorg/freertr/cfg/cfgScrpt;$running upgrade script &'( )org/freertr/cfg/cfgScrptdoRound+!successfully finished, rebooting!-upgrade finished() 1 2m upgradeBackup 4 5doVerify7failed to write version info!9successfully finished!;upgrade finished! = > flag@nothing done in this roundBjava/util/ArrayList A E FGaddAll(Ljava/util/Collection;)ZIno script for this roundKorg/freertr/pipe/pipeLine JN O(IZ)V JQ RSgetSide()Lorg/freertr/pipe/pipeSide; V WXsetTime(I)V CZ [GmodeCRLF ] ^GlineTx C` aG modeCRorLF c dGlineRxforg/freertr/user/userScripth ej k0(Lorg/freertr/pipe/pipeSide;Ljava/lang/String;)V em nm allowExec ep qm allowConfig* et u$addLine ew xaddLines ez {TcmdAll J} ~setClose P httpGet+,   pemReadStr(Ljava/lang/String;Z)Z-./doit u equals01234checksum mismatch, aborting!failed to rename!checksum mismatch after rename!.ver.bak.tmp w XjustSimu ConstantValue(Lorg/freertr/util/cmds;)VCodeLineNumberTable StackMapTable calcTextHash$(Ljava/util/List;)Ljava/lang/String; Signature8(Ljava/util/List;)Ljava/lang/String; doRelease doMakeKey doVerCore doSimulatedoBackup startRevertertoggleBootMode stopReverter doAutoRevert SourceFileuserUpgrade.javaBootstrapMethods---  not found  written!generating  bits keyresulted in  bits, error= sequence 10 puts "" sequence 20 puts "";"";$ public final static int year = % public final static int month = # public final static int day = * public final static String pubKeyC = * public final static String pubKeyO = .org/freertr/util/version.java patched  times! server:  archive:  version: version info parser:  release: files: time: size:  sign:  keyhash:   is missing!unknown upgrade status revupgold release: new release: !old time: , new time: , diff: !old size: , new size: , diff:  old files: new files: extra files:excess files: upgrading to  should remove   removing  set path ""got empty  key!got too small  key!error reading public  key!error reading private  key!(error verifying private to public  key!skipping  since up to date!!skipping  since just simulating! backing up ! downloading # upgrading % &'( @)$java/lang/invoke/StringConcatFactory(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; InnerClassesmodTyp- org/freertr/user/userExec$cmdRescmdRes0%java/lang/invoke/MethodHandles$Lookup2java/lang/invoke/MethodHandlesLookup! WX QX Xtu lm K I!***+ *Y* D= EF G I Y*"L%Y'M,(,+-,3N7Y9M,(,+-+:-,3>. P QRSTV$W,X0Y8Z:\ )u B%Y'L+(+*BH+3M7Y9L+(+*BH,+3L* fg hikl&m*n5o7q)u T$ OUYz T& YZ"]** `ceL+ * iknYpM,q* `N-t@* `y6-:* -k,Y-W,+,W* kN$(08;GMR_ux} nu#uc* `y<* kYM,W* ,,k* ,* ,"  &:Nb** `ceL+ * ik** `öeM, * ŶkB!dp:!Ϻ:!Ϻ:+:,: ո:  * ۶k6 6     u:    W    W f   W E   W $    W  > ո*  k.*.78<N]lx'8;>HY\_epqF a uuuuu:u  5>=* k* Zk* k+>N- * knYpL+-:* k* +  k* + k* +k* +k* +k* +!k*Z+"%`=>+1+:*),Y/%`=* 2k46 * 9kv /3:>HPX]kn~     )2<H%q: Y=>+I+: Y),Y";* ,>k& #$% &:'=)N*Q$W,8'(I* +?+N-* B-,D* G* I* 0 123!4#6+788::G; #u, *K*LCD E V ZK*OY*R X6MNOPRu=ZL*++OYZ^aYZ[ ' dYfg a b TLjjjnpjkln @ T_<rv=@!(zK+|K$~KrW*< K<***Jyz {$}(~+/26>EGJQSWY]$u k)KYL+U*W+ Y*"=*W~N-- B%*;@DHLSTZ`aj Tu N^rvL+*+arW*<* `M** `yK*,N-*rWCHKB  "'/CHKLPU]0u2*~ @$ +tL*a)M+YN-U,W* - Y,"W,:,W*¶ınYp:nYp:W:**Ǚ* * *emҺ*e* * :* :* ̔**Ǚ̔ ***ǙW*ĻY* : * Y*  :     :   W *+, *@Ǚ*"Z+Y,6  D*#IJ% :  **6 j6  , *Ǚ*+,*Ǚ:6   : ) ,Y:*KǙ*.a@*/aW0#OY:*/aW v*3 *Ǚ*KǙ *6*8:d %29>RX]blmv/AHRdku'/<HQR j p v  !"%&'( )*#+1,4.B/H0N1Q3]4k5q'w789<=?@BCD` `uDnnun*Y"7 uunnun I  66+u+:<~Q*/),Y,,Y-6<~6*Ǚ*?AYC:6+Y+:<~5<~'),Y:    DW*H*KǙ*#ĻJYLM:PWP:TUY\_beYgi:  l o )rs v yW|0GHI$J/K2MVN\OmPpRuS~THXYZ\]^_`bcefgi]klmo(p*r4sAtGuNvVw^xfytzz{|}~7+7@ +   gh +N-* ,k-* ,kY:-u* ,k-u* ,k* ,kJ "/1:MZ\o|~*!,::+*,a*KǙ*,a0*,a,,OYZW*,a-:W*  Y"W*,a+** Ǚ W,R*+,**Ǚz &(2?AGTcpv|u!b J"UOwYrj$) .35@5$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $ $$$$$$$$$$ $"*C+@,.@/13