4 |} ~ , , ,     ,      ~           , ,    x  4  4      4     4 4 4  4 4 4  S      k   d  x x x x x x   ,  ,|  , , , k      `,         ,   ! "# $%&' ( ,) * + ", x- ./0 "123 S "45 $67 89 :;  ~ "<  = >? @A ,B CDE F GHI J K  LMN OP  Q  RST ,UVWX Y ,Z "[\ ]]^  _ ` a` bc' def gh ijk lmnopqrs tuvwxyz{ 4| ,} ~ , $      4     b 4,  , S   , , , ,   x  $   ]  ,  , ,   ,  , I K~   O , , , , VO V` Y [~ [ [ [ [ , $ $8 ` ,   Y~ $ q~       , ,   ,  q q8 qL   , , ,        ] $  loggerLjava/util/logging/Logger;listingEntriesLjava/util/Map; SignatureDirectoryEntry InnerClassesWLjava/util/Map;listingEntryFreshness3Ljava/util/Map;cookieLjava/lang/String;(Ljava/net/URI;Ljava/io/File;)VCodeLineNumberTableLocalVariableTablethis)Lorg/das2/util/filesystem/HttpFileSystem;rootLjava/net/URI; localRootLjava/io/File; getCookie()Ljava/lang/String;createHttpFileSystem9(Ljava/net/URI;)Lorg/das2/util/filesystem/HttpFileSystem;iIrooturi2exLjava/net/URISyntaxException;userInfoLjava/lang/StringBuilder;parent3Lorg/das2/util/monitor/CancelledOperationException;encodeLjava/io/IOException;!Ljava/net/SocketTimeoutException;msgex2code rootAuthUriportrootAuthLjava/net/URL;urlcLjava/net/HttpURLConnection; responseCodelocalauthss[Ljava/lang/String;doCheckZ parentURIofflineofflineMessageofflineResponseCoderesulterooturi StackMapTable; I ExceptionswaitDownloadExternalF(Ljava/io/File;Ljava/io/File;Lorg/das2/util/monitor/ProgressMonitor;)Z Ljava/lang/InterruptedException;fpartFilemonitor'Lorg/das2/util/monitor/ProgressMonitor;getRequestProperties()Ljava/util/Map;7()Ljava/util/Map; reduceMeta)(Ljava/net/URLConnection;)Ljava/util/Map;connectLjava/net/URLConnection;LocalVariableTypeTable5Ljava/util/Map;  O(Ljava/net/URLConnection;)Ljava/util/Map; doTryDownload(Ljava/net/URLConnection;Ljava/net/URL;Ljava/lang/String;Ljava/io/File;Ljava/io/File;Lorg/das2/util/monitor/ProgressMonitor;)Ljava/util/Map;dLjava/util/Date; ageMillisJLjava/lang/Exception;contentLocation contentTypedoUnziptotalBytesReadoutLjava/io/FileOutputStream; remoteURLfilenameinLjava/io/InputStream;hurlcsdLjava/util/List;expectedContentLength$Ljava/util/List; 7 9Ne(Ljava/net/URLConnection;Ljava/net/URL;Ljava/lang/String;Ljava/io/File;Ljava/io/File;Lorg/das2/util/monitor/ProgressMonitor;)Ljava/util/Map; doDownloadt(Ljava/lang/String;Ljava/net/URL;Ljava/io/File;Ljava/io/File;Lorg/das2/util/monitor/ProgressMonitor;)Ljava/util/Map;EntryLjava/util/Map$Entry;!Ljava/lang/IllegalStateException;ex1theUrl newConnectionhaveItpropsoldurlc;Ljava/util/Map$Entry;(Ljava/lang/String;Ljava/net/URL;Ljava/io/File;Ljava/io/File;Lorg/das2/util/monitor/ProgressMonitor;)Ljava/util/Map; downloadFilef(Ljava/lang/String;Ljava/io/File;Ljava/io/File;Lorg/das2/util/monitor/ProgressMonitor;)Ljava/util/Map;exgzLjava/io/FileNotFoundException; targetFilelock!Ljava/util/concurrent/locks/Lock;meta(Ljava/lang/String;Ljava/io/File;Ljava/io/File;Lorg/das2/util/monitor/ProgressMonitor;)Ljava/util/Map; getHeadMeta#(Ljava/lang/String;)Ljava/util/Map;ur Ljava/net/MalformedURLException;5Ljava/util/Map;I(Ljava/lang/String;)Ljava/util/Map; isDirectory(Ljava/lang/String;)ZlookForlist1 parentFilelisthideExtensions()Ljava/util/List;&()Ljava/util/List; listDirectory'(Ljava/lang/String;)[Ljava/lang/String;[Ljava/net/URL;urlnfinLjava/io/FileInputStream;de14Lorg/das2/util/filesystem/FileSystem$DirectoryEntry;listingf1[Ljava/io/File;result1$Ljava/lang/IllegalArgumentException;hidesmetaznewlistLjava/util/ArrayList; localFile directorycached5[Lorg/das2/util/filesystem/FileSystem$DirectoryEntry;successOrCancelU isRegexNoWildregex9(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;cpatternLjava/util/regex/Pattern;maybeUpdateDirectoryEntryI(Ljava/lang/String;Z)Lorg/das2/util/filesystem/FileSystem$DirectoryEntry;deodateosizeforcefreshLjava/lang/Long;()V SourceFileHttpFileSystem.java java/util/HashMap y    java/net/MalformedURLException-URL does not contain authority, check for ///  $Y  -somehow template leaked into FileSystem code. @ K"java/lang/IllegalArgumentException8user info section can contain at most two at (@) symbolsjava/lang/StringBuilder%40  java/net/URI :// java/net/URISyntaxExceptionunable to handle:    6See https://www.draw.io/#G0B1Ywc5_Vexx1d3ctdGZxZDNkM3M !"URL Reference: {0} !#$ %& '('org/das2/util/filesystem/HttpFileSystem )*"parent is offline, do not check... +, -. /0java/net/HttpURLConnection 12 34 52 64Check keychain: 7 89 :;1org/das2/util/monitor/CancelledOperationException"user cancelled credentials for {0}< =? @AB CD AuthorizationBasic EF ;CookieVerify Credentials {0}: G urlc={0}1userInfo does not appear to contain password: {0}userInfo.length={0} H2I JK y L20made connection, now consume rest of stream: {0} MNO PQjava/io/IOExceptionorg/das2/util/filesystem/FileSystem$FileSystemOfflineExceptionFileSystemOfflineException \: truejava.awt.headless] ^_ `a&Headless mode means we have to give up.root returns 404, indicating it does not exist bc d2 java/net/URL e://user@ f g hijava/lang/RuntimeException j k* linitializing httpfs {0} at {1} !m&initializing httpfs {0} in applet mode n filesystem is offline: {0}   java/net/UnknownHostException owaiting for other process load p q* rs ts+org/das2/util/filesystem/FileSystemSettingsu vw x ,waiting for external process to download {0} Hs yw z*java/lang/InterruptedException*timeout waiting for partFile to be deleted5successfully waited for external download to complete0part file removed but complete file is not found { |} ~$org/das2/util/filesystem/WebProtocolETag _  ContentType _ResponseCode J    / BGET to get listing {0}GET to get data {0} {0} URL: {1} not found:   Last-Modified java/util/List 2java/util/Date java/lang/String s w  make dirs {0} partFile exists {0}  java/io/InterruptedIOException9interrupt while waiting for external process to download 1timeout waiting for external process to download *=Unable to delete part file {0}, using new name for part file. java/io/File.part.  *transferring bytes of {0}java/io/FileOutputStream downloading file  yContent-Location Content-Type .gzapplication/x-gzipjava/util/zip/GZIPInputStream Q  20fewer bytes downloaded than expected: {0} of {1} J3fewer bytes in HTTP response than stated in header. y y s&org/das2/util/filesystem/WebFileSystem java/lang/Exceptionunable to setLastModified A*file was once a directory. 'unable to folder to make way for file:  )another thread must have downloaded file.Hexisting file didn't have a proper timetag, copy timetag from part file."unable to set last modified on {0}unable to delete 3another thread must have downloaded different file.deleting old file {0} rename failed {0} to {1}rename failed  to "deleting partial download file {0}could not create local file: doDownload {0}open connection to {0}   :#user cancelled at credentials entry    * java/util/Map$Entry   F .listing 2*** Couldn't we just use the listing file found???   ;java/lang/IllegalStateExceptionVWe are already connected, so resetting credentials would cause Already connected error   user:pass : close connection to {0}+not closing, because it was a listing file."connection was closed already: {0}  _*downloadFile {0}, using temporary file {1}    y  EXISTexist B J ContentLength  LastModified    JK B.css.php.jnlp.part ** listDirectory({0}{1})   +org/das2/util/filesystem/AppletHttpProtocol&org/das2/util/filesystem/WebFileObject )org/das2/util/monitor/NullProgressMonitor M java/lang/Throwable j ; _ Busing cached listing for {0} java/io/FileInputStreamjava/util/LinkedHashMap 42org/das2/util/filesystem/FileSystem$DirectoryEntryjava/lang/Long          4this filesystem is offline, using local listing: {0} *unable to list  when offlinejava/util/ArrayList %expected resource to be a directory:  a list {0}  /0 failed to setLastModified: {0} _ GHuser cancelled at credentials6** using local listing because remote is not available or some other error occurred. ** Fshould not get here screen.pnglistDirectory({0},{1})  ABis not a directory: gB :;         * s DateContent-Length nodas2.filesystem.httpjava/util/logging/Loggerjava/util/logging/Leveljava/net/URLConnection java/util/Mapjava/io/InputStream%org/das2/util/monitor/ProgressMonitorjava/util/Iteratorjava/util/concurrent/locks/Lockjava/util/regex/Pattern getAuthority(Ljava/lang/String;)VtoStringcontains(Ljava/lang/CharSequence;)Zfinesplitappend-(Ljava/lang/String;)Ljava/lang/StringBuilder; getSchemegetPath-(Ljava/lang/Object;)Ljava/lang/StringBuilder;toURL()Ljava/net/URL;FINERLjava/util/logging/Level;log.(Ljava/util/logging/Level;Ljava/lang/String;)V@(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Object;)V'org/das2/util/filesystem/FileSystemUtil getParentUri(Ljava/net/URI;)Ljava/net/URI;peek5(Ljava/net/URI;)Lorg/das2/util/filesystem/FileSystem; isOffline()Zfiner#org/das2/util/filesystem/FileSystemsettings/()Lorg/das2/util/filesystem/FileSystemSettings;openConnection()Ljava/net/URLConnection;getConnectTimeoutMs()IsetConnectTimeout(I)VgetReadTimeoutMssetReadTimeout!org/das2/util/filesystem/KeyChain getDefault%()Lorg/das2/util/filesystem/KeyChain; getUserInfo"(Ljava/net/URL;)Ljava/lang/String;org/das2/util/Base64 getEncoderEncoder ()Lorg/das2/util/Base64$Encoder;getBytes()[Borg/das2/util/Base64$EncoderencodeToString([B)Ljava/lang/String;setRequestProperty'(Ljava/lang/String;Ljava/lang/String;)VINFOlengthjava/lang/IntegervalueOf(I)Ljava/lang/Integer;getResponseCodegetInputStream()Ljava/io/InputStream;!org/das2/util/filesystem/HttpUtil consumeStream(Ljava/io/InputStream;)V disconnectgetErrorStreamgetResponseMessageSEVERE getMessageC(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)Vformat9(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;isAllowOfflineinfo(I)Ljava/lang/StringBuilder;java/lang/System getProperty&(Ljava/lang/String;)Ljava/lang/String;equals(Ljava/lang/Object;)ZclearUserPassword(Ljava/net/URL;)VgetPort getProtocolgetHostgetFiletoURI()Ljava/net/URI;(Ljava/lang/Throwable;)VhasAllPermission(Ljava/net/URI;)Ljava/io/File;A(Ljava/util/logging/Level;Ljava/lang/String;[Ljava/lang/Object;)VWARNING&(Ljava/io/IOException;Ljava/net/URI;)VsetProgressMessageexistscurrentTimeMillis()J lastModifiedjava/lang/Threadsleep(J)VFINESTsetTaskProgress isCancelledjava/util/Collections singletonMap5(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;emptyMapgetHeaderFieldput8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;(I)Ljava/lang/String; loggerUrlFINE isLoggable(Ljava/util/logging/Level;)ZgetURLendsWithgetHeaderFieldsget&(Ljava/lang/Object;)Ljava/lang/Object;size(I)Ljava/lang/Object;getContentLengthLong setTaskSize getParentFile()Ljava/io/File; maybeMkdirs(Ljava/io/File;)V EMPTY_MAPdelete(J)Ljava/lang/StringBuilder; createNewFilesetLabelstarted copyStreamU(Ljava/io/InputStream;Ljava/io/OutputStream;Lorg/das2/util/monitor/ProgressMonitor;)JgetContentLength(J)Ljava/lang/Long;finishedclosegetTimesetLastModified(J)Zorg/das2/util/FileUtildeleteFileTree(Ljava/io/File;)Zorg/das2/util/OsUtil contentEquals(Ljava/io/File;Ljava/io/File;)ZrenameTo setUseCaches(Z)V"(Ljava/net/URI;)Ljava/lang/String;entrySet()Ljava/util/Set; java/util/Setiterator()Ljava/util/Iterator;hasNextnext()Ljava/lang/Object;getKeygetValueaddRequestPropertygetNameerrLjava/io/PrintStream;java/io/PrintStreamprintln checkRedirect2(Ljava/net/URLConnection;)Ljava/net/URLConnection; checkUserInfogetCause()Ljava/lang/Throwable;4(Ljava/net/URL;Ljava/lang/String;)Ljava/lang/String;copyConnectProperties;(Ljava/net/HttpURLConnection;Ljava/net/HttpURLConnection;)VgetDownloadLockj(Ljava/lang/String;Ljava/io/File;Lorg/das2/util/monitor/ProgressMonitor;)Ljava/util/concurrent/locks/Lock;toCanonicalFilename"(Ljava/lang/String;)Ljava/net/URL; substringunlock getMetadata.(Ljava/net/URL;Ljava/util/Map;)Ljava/util/Map;putAll(Ljava/util/Map;)Vjava/lang/Boolean parseBoolean(Z)Ljava/lang/Boolean; parseLong(Ljava/lang/String;)J#(Ljava/io/File;Ljava/lang/String;)V getLocalName"(Ljava/io/File;)Ljava/lang/String; startsWithjava/util/ArraysasList%([Ljava/lang/Object;)Ljava/util/List;listDirectoryFromMemoryI(Ljava/lang/String;)[Lorg/das2/util/filesystem/FileSystem$DirectoryEntry; getListingJ([Lorg/das2/util/filesystem/FileSystem$DirectoryEntry;)[Ljava/lang/String;protocol&Lorg/das2/util/filesystem/WebProtocol;M(Lorg/das2/util/filesystem/WebFileSystem;Ljava/lang/String;Ljava/util/Date;)Vf(Lorg/das2/util/filesystem/WebFileObject;Lorg/das2/util/monitor/ProgressMonitor;)Ljava/io/InputStream;!org/das2/util/filesystem/HtmlUtilgetDirectoryListing4(Ljava/net/URL;Ljava/io/InputStream;)[Ljava/net/URL; addSuppressedtoCanonicalFolderNameisListingCached listingFile"(Ljava/lang/String;)Ljava/io/File;modifiednametypeCaddRoCacheEntries2(Ljava/lang/String;Ljava/util/Map;)Ljava/util/Map;values()Ljava/util/Collection;java/util/CollectiontoArray(([Ljava/lang/Object;)[Ljava/lang/Object; cacheListingJ(Ljava/lang/String;[Lorg/das2/util/filesystem/FileSystem$DirectoryEntry;)V$(Ljava/util/Map;)[Ljava/lang/String;getCanonicalFileisEmpty listFiles()[Ljava/io/File;(C)Ljava/lang/StringBuilder;addcharAt(I)C getPartFile(Ljava/io/File;)Ljava/io/File;parseInt(Ljava/lang/String;)I uriEncode()[Ljava/lang/String;(II)Ljava/lang/String;TRUELjava/lang/Boolean;java/lang/Class getLogger.(Ljava/lang/String;)Ljava/util/logging/Logger;compile-(Ljava/lang/String;)Ljava/util/regex/Pattern;matcher3(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;java/util/regex/Matchermatches longValueremoveorg/das2/util/LoggerManager!,p"*+,*Y*Y*\RS_!] """/*f   U*L+ Y *  +M, Y,Y,2:6,2W,2LYY*+* :K :YY"*#*$N%&'%(-)6**:%+,:-./660:6: 12-34:  156 178%9-):-;: : %=*)] +> ?@:  AYB C:-D:   E C6 %F ) * G HI )HJ )%K  LM) N O6 %P ) QR : T%U' V66W/: Y/ ZR6 [:66w: \/6 O6 ]::^_`_: ZR.^abYMSY-SYSc ` d2e:^fbYMSY-SYSc `6jb^gbYMSY-SYSc `1hijbkYY0lmnopqrJ Es/1hijkYY0lmnL:6  dYtu  ȟ   :-v -w0YG-wl: xYY-yz-{ -|}:~:K*$N:Y  6 66S$*: %bY-SY S: %-),Y* : *)      L+LkY+* r!Rgj<08;ScfXcSS!FGkFGdFGFJSBuv wz{'~.4>DPnr "%3<GR^gjlx{#08;=EPUX[cfhpx} /5=bksv     *27 >"C#h$&'(,*+-./148<=>@A CEF(I/J6K=LDNGPHQJRKSt%SP|g l  = h! g=r  hP < {W   B.v\V,("%%" H 0 HK U/z@K zD z,; z zc `ez:6@%-% +UEz  &Bkd<-,Q,eB,)-,-:^`, /+ //DHNbce$f0g:hCiEmHkJlZm]odplqnsut}uwx4J  >C++bY+SbY+S+:+4:  O<HbY OMSY,SdYY,#u OȟQHbY OMSY,SSYY Olm ],#+:  , "Y  d·: Y: +7  Ƕ%Ƕ)Ǹ%)e7V*˙̰YYζ#ϿSYYж#њ6H)YYԶնֶ:ؙo%-)Y:ܹ+߶:+:*+:- r 6Y:*7+煔,bYSY SSY aW:^`//˻YY#p^/ %/H)њYY#/%)њYY#EbYSYSYY##L:%)'њYY# SYY#RKSHKS^W4JPVa1:@ITdlt#+7BKRZbi$,4P^hpz    H(K M!R"W#e$u%')*,.  Z b   iMGBR PgVa :}  @w *i 4OX= 19%:g@?b;K#0KE   S ݲ,):,),34:156178:*  :: SY +>?@: AYB C* :   :  + :   ¶+3-r&--e7   : 4: K::9>?@: AYB C: j6  *,+- :6 :  ! !< O Y:OW: : v: "#::  ) 34:$>?@:AYBCV%,): 4,&',)\V%,)G:4:,&',)V%,)BNQ<A\_rS<jT*J< =?@&A1B<EBINLQJSK^McNpORSTUWXYZ ^_a"b/c4dAf\i_gahjomprrsuvwyz{|~ 5:GKNQT\hqNS  p "  a # A) $z% E&1 m' &^L( )  * L( Q ,+18T , Y0_,T-.- Sd./0 *+,(:̰:+)L%*bY+SY-S*++:*+,-,:L:+AxYY* +-}:*+,-,W: .: . <ILdd5V 5<ILNWf 12 NG2<Y3 456 6W7878C 788I- S9:;ʻxYY* $/+L +-+}M,0NY:-12-3¸45W3-3¸45W6-6¸7W8-8¸7WMY,9. 28AIf>2<86A =86A>7'?S<@AB *: +Y*:+;M,,+,N*-<:Y:*=:+>Y+-:Y+::66   2:  r R"'0 2 7 > H^fo\ C D 7E>fhF.C+  +,z zSGHJ Y?SY@SYASYBSC&  IJKpDbY* SY+S*+EM,,F*G*GH*GIY*+YķJKYLM::*++NNUH:P<4:::!:P:Y9-:+L66--2:*Q-S+RL*+S.%T+)*+U:VYW::*++N:UXH:P<X4::: !X:  PX :Y9YYZN+L6:66  N 2: [Y\:  ^` * Q-a fb ^c- a W *+-dN*+-e-f[ghi-j6*-Y*:+;k:%l)*+YYmdN/-n&kYYo#pnqYr:s: YYt#:6 6   X 2:  : %Y /uvW vW -ew:{[:bdUaL6  $a dx/avW"Ya/uvWavW¹yzt%{+)*+U:*+*|KYL}:: ~*++: : v)VYW: : *++ N: U  XH:   P< X4:  :  :  !  X:   P X +L6 qYr: *: :  6 6  2:6|5 :":|6*Q -:6:6  W|  x:YYmN:  6 6 N 2:[Y\:^`*Q -afb^c-aW*+-dN*+-e-f[ghi-j:SY:*-)jjY*:+;:YSuz}O`kO`kO;<LQTO6BhO6Bq}Ohsq(<OuOuOLhkK&<N%&<K3SN%3S35!6%7*:;<`=k><>@>?CDEFGEIL PQ!S(V6WBXhVqXZXY\]^_`abcd^gi:k?nBpIqZrhtuvxz{|}8EKnx,<CKNYgu  9ILYehkmp}!&(35<EN\be3k&FL]eFL M#6FL/)NB&FL3fOPFL 5QR >M (SFLNHT SUEN niTRZ=VuzC  &FLrfOP 9YmW pX sY5QR>MSZ,EN <[\ 6G NFL( \]50pp^!O_`B.a>=VuzZ6G B*hRh-- h--H-h--- hh z"Lhb-- hb--H- hb--- hh  hQ'hi9c c) h +Od h^ h+ hb--  hb--H- hb---  h#he&+%Bf (heQ'hL.S gB2*r& hJiS $bY+SY,S,,,LdM+)L*+YY+,I*Y+,N-3 Y,SN,^-`*+=N,:qYr:-:66I2:  :   Ldx/  Ld:    W¶zz]<Z02-425:6V9];t<=A?@DEFGHIJK GNf t65j 9Y $$^$h{Sukll\ t6>7 -(8B zmez1Sno *+]N-PYĶ-e*+[*Y:*+W*+Wç :*+:[Y\:::+dfb^YYö`7c*Y:*+W*+YĶWç :  *+:*+;TWW\W_ < <b\]^(_6a;bFcQd_hfioj~klmnopqrstv x y\ f6opR~q|r stu f6> 6v vw-=vddvddW vdw-vSxy" Mz{"[ $! k >