GOOF----LE-8-2.0+]4hX] gguile  gdefine-module*   gweb guri  gfilenameS f web/uri.scm gimportsS gsrfi gsrfi-9     gice-9 gregex   grdelim   gcontrol   grnrs g bytevectors   g binary-ports   !  "gexportsS #guri? $g uri-scheme %g uri-userinfo &guri-host 'guri-port (guri-path )g uri-query *g uri-fragment +g build-uri ,gdeclare-default-port! -g string->uri .g uri->string /g uri-decode 0g uri-encode 1gsplit-and-decode-uri-path 2gencode-and-join-uri-path 3#$%&'()*+,-./012 4gset-current-module 54 64 7g 8g%make-uri-procedure 9gmake-syntax-transformer :9 ;9 g $sc-dispatch ?> @> Ag_ Bgany CABBBBBBB Dg syntax-object Eglambda Fg m-50eea-a Ggtop HFG Igribcage Jg t-50eea-3 Kg t-50eea-4 Lg t-50eea-5 Mg t-50eea-6 Ng t-50eea-7 Og t-50eea-8 Pg t-50eea-9 QJKLMNOP RHHHHHHH Sf l-50eea-f Tf l-50eea-10 Uf l-50eea-11 Vf l-50eea-12 Wf l-50eea-13 Xf l-50eea-14 Yf l-50eea-15 ZSTUVWXY [IQRZ \I ]gx ^] _H `f l-50eea-c a` bI^_a cgshift dg proc-name egargs fde gG hgg ifl-1e8ba8b5a-2ba jfl-1e8ba8b5a-2bb kij lIfhk mgkey ngvalue ogname pgformals qgbody rmnopq sggggg tfl-1e8ba8b5a-2ad ufl-1e8ba8b5a-2ae vfl-1e8ba8b5a-2af wfl-1e8ba8b5a-2b0 xfl-1e8ba8b5a-2b1 ytuvwx zIrsy {gmake-procedure-name |{ }g ~fl-1e8ba8b5a-29d ~ I|} g fl-1e8ba8b5a-29c  I^ H[\bc\\\\lz  ghygiene    DE gscheme g[\b  D guserinfo D ghost D gport D gpath D gquery D gfragment D  g make-struct g m-50eea-1 G gt-1e8ba8b5a-38d gt-1e8ba8b5a-38c gt-1e8ba8b5a-38b  gm-1e8ba8b5a-38e G  fl-1e8ba8b5a-392 fl-1e8ba8b5a-393 fl-1e8ba8b5a-394  I g ctor-args  fl-1e8ba8b5a-37a  I gctor gfield  fl-1e8ba8b5a-376 fl-1e8ba8b5a-377  Ih gform g type-name gconstructor-spec g field-names  gggg fl-1e8ba8b5a-36b fl-1e8ba8b5a-36c fl-1e8ba8b5a-36d fl-1e8ba8b5a-36e  I g record-layout gfunctional-setters gsetters gcopier ggetters g constructor ggetter-identifiers gfield-identifiers  gggggggg fl-1e8ba8b5a-343 fl-1e8ba8b5a-341 fl-1e8ba8b5a-33f fl-1e8ba8b5a-33d fl-1e8ba8b5a-33b fl-1e8ba8b5a-339 fl-1e8ba8b5a-337 fl-1e8ba8b5a-335  I fl-1e8ba8b5a-334  I^ [\bc\\\\\ D D7 D     geach-any Aތ gsyntax-violation   fWrong number of arguments g identifier?   g\b D8   f-source expression failed to match any pattern grecord-type-vtable   gpwpwpwpwpwpwpw gdefault-record-printer    gset-struct-vtable-name!   gvtable-offset-user   g%uri?-procedure AB g m-50eea-23 G g t-50eea-22   f l-50eea-28  I f l-50eea-25  I^ \c\\\\lz  DE  gobj  gt-1e8ba8b5a-47e  gt-1e8ba8b5a-478  gt-1e8ba8b5a-479  gt-1e8ba8b5a-47a gt-1e8ba8b5a-47d gt-1e8ba8b5a-47c gt-1e8ba8b5a-47b      gm-1e8ba8b5a-47f G  fl-1e8ba8b5a-483 fl-1e8ba8b5a-484 fl-1e8ba8b5a-485 fl-1e8ba8b5a-486 fl-1e8ba8b5a-487 fl-1e8ba8b5a-488 fl-1e8ba8b5a-489  I g copier-id   fl-1e8ba8b5a-476 !  "I! #g ctor-name $# %fl-1e8ba8b5a-46e &% 'I$& ( )fl-1e8ba8b5a-46c *) +I(* ,glayout -, .fl-1e8ba8b5a-46a /. 0I-/ 1g immutable? 21 3fl-1e8ba8b5a-468 43 5I24 6g field-count 76 8fl-1e8ba8b5a-466 98 :I79 ;g getter-ids <; =fl-1e8ba8b5a-463 >= ?I<> @g field-ids A@ Bfl-1e8ba8b5a-460 CB DIAC Egpredicate-name Fg field-spec G1EF Hgggggg Ifl-1e8ba8b5a-453 Jfl-1e8ba8b5a-454 Kfl-1e8ba8b5a-455 Lfl-1e8ba8b5a-456 Mfl-1e8ba8b5a-457 Nfl-1e8ba8b5a-458 OIJKLMN PIGHO Q\c\\\\\"\'\+\0\5\:\?\DP RD Q SR Tgand UDTQ Vgstruct? WDVQ XWR Ygeq? ZDYQ [g struct-vtable \D[Q ]\R ^g\ _D7^ `Z]_ aUX` bSa cg\ dDc egthrow-bad-struct fe ge hg%uri-scheme-procedure igfree-id jg %%on-error kg m-50eea-2f lkG ml nf l-50eea-31 on pI^mo ql\pc\\\\lz  rDjq sir tsB ug%%type vgt-1e8ba8b5a-3a5 wgt-1e8ba8b5a-3a6 xgt-1e8ba8b5a-3a7 ygt-1e8ba8b5a-3a8 zgt-1e8ba8b5a-3a9 {gt-1e8ba8b5a-3aa |gt-1e8ba8b5a-3ab }vwxyz{| ~gm-1e8ba8b5a-3ac ~G  fl-1e8ba8b5a-3b0 fl-1e8ba8b5a-3b1 fl-1e8ba8b5a-3b2 fl-1e8ba8b5a-3b3 fl-1e8ba8b5a-3b4 fl-1e8ba8b5a-3b5 fl-1e8ba8b5a-3b6  I} ggetter gindex  fl-1e8ba8b5a-3a3 fl-1e8ba8b5a-3a4  Ih ; ggg fl-1e8ba8b5a-39e fl-1e8ba8b5a-39f fl-1e8ba8b5a-3a0  I \pc\\\\\ Du i AtB gck gerr gs  ll f l-50eea-34 f l-50eea-35  I l\pc\\\\lz  D gquote D g\p D7   g%%index D i AtB f l-50eea-39 f l-50eea-3a  I l\pc\\\\lz  D D \p D    g%%copier D i AtB f l-50eea-3e f l-50eea-3f  I l\pc\\\\lz  D D g%%-set-fields g\p D   g t-50eea-2e  f l-50eea-43  Im l\pc\\\\lz  DE \pc\\\\\ D  gif D DY D[  g\p D7  g struct-ref D \p D   De D D$     g\p Dh g%uri-userinfo-procedure g m-50eea-4a G  f l-50eea-4c  I^ \c\\\\lz  Dj i B \c\\\\\ Du i AB  f l-50eea-4f f l-50eea-50  I \c\\\\lz  D D g\ D7   D i  AB  f l-50eea-54  f l-50eea-55      I   \c\\\\lz  D D  \ D    D i AB f l-50eea-59 f l-50eea-5a  I \c\\\\lz  D D g\  D !  "! #g t-50eea-49 $# %f l-50eea-5e &% 'I$& ('\c\\\\lz  )DE( *'\c\\\\\ +D* ,+ -D* .DY* /D[* 0/+ 1g'\ 2D71 3.02 4D* 5'\ 6D 5 74+6 8De* 9D* :D%1 ;9: <8+; =-37< >),= ?g\ @D? Ag%uri-host-procedure Bg m-50eea-65 CBG DC Ef l-50eea-67 FE GI^DF HC\Gc\\\\lz  IDjH JiI KJB L\Gc\\\\\ MDuL NiM OAKNB PCC Qf l-50eea-6a Rf l-50eea-6b SQR TIPS UCT\Gc\\\\lz  VDU WDU XgT\G YD7X ZWY [Z \DL ]i\ ^AK]B _f l-50eea-6f `f l-50eea-70 a_` bIPa cCb\Gc\\\\lz  dDc eDc fb\G gD f heg ih jDL kij lAKkB mf l-50eea-74 nf l-50eea-75 omn pIPo qCp\Gc\\\\lz  rDq sDq tgp\G uDt vsu wv xg t-50eea-64 yx zf l-50eea-79 {z |IyD{ }C|\Gc\\\\lz  ~DE} |\Gc\\\\\ D  D DY D[  g|\G D7  D |\G D   De D D&    ~ g\G DA g%uri-port-procedure g m-50eea-80 G  f l-50eea-82  I^ \c\\\\lz  Dj i B \c\\\\\ Du i AB  f l-50eea-85 f l-50eea-86  I \c\\\\lz  D D g\ D7   D i AB f l-50eea-8a f l-50eea-8b  I \c\\\\lz  D D \ D    D i AB f l-50eea-8f f l-50eea-90  I \c\\\\lz  D D g\ D   g t-50eea-7f  f l-50eea-94  I \c\\\\lz  DE \c\\\\\ D  D DY D[  g\ D7  D \ D   De D D'     g\ D g%uri-path-procedure g m-50eea-9b G  f l-50eea-9d  I^ \c\\\\lz  Dj i B \c\\\\\ Du i AB  f l-50eea-a0 f l-50eea-a1  I \c\\\\lz  D D g\ D7   D i AB  f l-50eea-a5  f l-50eea-a6      I    \c\\\\lz  D  D   \ D    D i AB f l-50eea-aa f l-50eea-ab  I \c\\\\lz  D D g\ D   !  "g t-50eea-9a #" $f l-50eea-af %$ &I#% '&\c\\\\lz  (DE' )&\c\\\\\ *D) +* ,D) -DY) .D[) /.* 0g&\ 1D70 2-/1 3D) 4&\ 5D 4 63*5 7De) 8D) 9D(0 :89 ;7*: <,26; =(+< >g\ ?D> @g%uri-query-procedure Ag m-50eea-b6 BAG CB Df l-50eea-b8 ED FI^CE GB\Fc\\\\lz  HDjG IiH JIB K\Fc\\\\\ LDuK MiL NAJMB OBB Pf l-50eea-bb Qf l-50eea-bc RPQ SIOR TBS\Fc\\\\lz  UDT VDT WgS\F XD7W YVX ZY [DK \i[ ]AJ\B ^f l-50eea-c0 _f l-50eea-c1 `^_ aIO` bBa\Fc\\\\lz  cDb dDb ea\F fD e gdf hg iDK jii kAJjB lf l-50eea-c5 mf l-50eea-c6 nlm oIOn pBo\Fc\\\\lz  qDp rDp sgo\F tDs urt vu wg t-50eea-b5 xw yf l-50eea-ca zy {IxCz |B{\Fc\\\\lz  }DE| ~{\Fc\\\\\ D~  D~ DY~ D[~  g{\F D7  D~ {\F D   De~ D~ D)    } g\F D@ g%uri-fragment-procedure g m-50eea-d1 G  f l-50eea-d3  I^ \c\\\\lz  Dj i B \c\\\\\ Du i AB  f l-50eea-d6 f l-50eea-d7  I \c\\\\lz  D D g\ D7   D i AB f l-50eea-db f l-50eea-dc  I \c\\\\lz  D D \ D    D i AB f l-50eea-e0 f l-50eea-e1  I \c\\\\lz  D D g\ D   g t-50eea-d0  f l-50eea-e5  I \c\\\\lz  DE \c\\\\\ D  D DY D[  g\ D7  D \ D   De D D*     g\ D geach BB  B쌤 B팤 B g %%set-fields gdummy gcheck? gexpr  g m-50eea-ec G  f l-50eea-f1 f l-50eea-f2 f l-50eea-f3 f l-50eea-f4 f l-50eea-f5  I  f l-50eea-ee  I^ gt-1e8ba8b5a-3c4 gt-1e8ba8b5a-3c6 gt-1e8ba8b5a-3c5  gm-1e8ba8b5a-3c7 G    fl-1e8ba8b5a-3cb  fl-1e8ba8b5a-3cc  fl-1e8ba8b5a-3cd      I   fl-1e8ba8b5a-3c1 fl-1e8ba8b5a-3c2 fl-1e8ba8b5a-3c3  I \c\\\\  D g\ D7 D$ D% D& D' D( D) D*   gmap !  "  #glist $g absolute-uri? %gthrow &g uri-error 'gnumber? (gexact? )ginteger? *gpositive-exact-integer? +gstring? ,g string-null? -g string-ref .f3Expected path of absolute URI to start with a /: ~a /fExpected string for path: ~s 0f Expected string for userinfo: ~s 1g valid-host? 2fExpected valid host: ~s 3f"Expected port to be an integer: ~s 4f'Expected a host, given userinfo or port 5f(Expected a symbol for the URI scheme: ~s 6g validate-uri 7guserinfoS 87  9ghostS :9  ;gportS <;  =gpathS >=  ?gqueryS @?  AgfragmentS BA  Cg validate?S DC  E8:<>@BD Ff Gg make-regexp Hf ^([0-9.]+)$ Ig ipv4-regexp Jf^([0-9a-fA-F:.]+)$ Kg ipv6-regexp Lf(^[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?$ Mgdomain-label-regexp Nf%^[a-zA-Z]([a-zA-Z0-9-]*[a-zA-Z0-9])?$ Ogtop-label-regexp Pg regexp-exec Qgcatch RQ SQ Tg inet-pton UgAF_INET VgAF_INET6 Wg string-index Xg substring Yf[a-zA-Z0-9_.!~*'();:&=+$,-]+ Zg userinfo-pat [f[a-zA-Z0-9.-]+ \ghost-pat ]f[0-9a-fA-F:.]+ ^g ipv6-host-pat _f[0-9]* `gport-pat agformat bf%^//((~a)@)?((~a)|(\[(~a)\]))(:(~a))?$ cgauthority-regexp df// egmatch:substring fgstring->number ggparse-authority hf[a-zA-Z][a-zA-Z0-9+.-]* ig scheme-pat jf[^/?#]* kg authority-pat lf[^?#]* mgpath-pat nf[^#]* og query-pat pf.* qg fragment-pat rf&^((~a):)?(//~a)?(~a)(\?(~a))?(#(~a))?$ sguri-pat tg uri-regexp ugdefault-prompt-tag vu wu xgabort ygstring->symbol zgstring-downcase {g string->uri* |gmake-hash-table }g*default-ports* ~g hashq-set! g hashq-ref g default-port? ghttp ghttps g string-append gsymbol->string f: f@ f[ f] gnumber->string f? f# gopen-output-string gget-output-string g close-port gcall-with-output-string* gopen-bytevector-output-port gcall-with-output-bytevector* g string-ci=? futf-8 g string->utf8 gset-port-encoding! gcall-with-encoded-output-string gdisplay g encode-string g utf8->string gopen-bytevector-input-port g read-string g decode-string gstring->char-set f0123456789abcdefABCDEF g hex-chars gencodingS   gdecode-plus-to-space?S    g string-length gchar-set-contains? gstring gput-u8 g char->integer f'Invalid character in encoded URI ~a: ~s f>abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 gascii-alnum-chars f:/?#[]@ g gen-delims f !$&'()*+,l= g sub-delims gchar-set-union greserved-chars f-._~ gunreserved-chars gunescaped-charsS    gstring-for-each gbytevector-length g string-upcase gfilter g string-split g string-join f/C5h}]4   !"3546>"G7h]Cgscheme  guserinfo  ghost   gport   gpath   gquery   gfragment   gfilenamef web/uri.scm ,    gnameg%make-uri-procedureC8R4;<=@Ch]Cg t-50eea-3  g t-50eea-4  g t-50eea-5   g t-50eea-6   g t-50eea-7   g t-50eea-8   g t-50eea-9      C<hN]L6Fga  gfilenamef web/uri.scm  ,   CAh>]L66gfilenamef web/uri.scm  ,    Ch]C   C hp]45$@45$ O@45$4O?$@  6  6wgx  ngtmp ngtmp  " ngtmp  > ngfilenamef web/uri.scm ,   n C5"G 8i7R7hk]$CCcgobj  gfilenamef web/uri.scm ,    gnameg%uri?-procedureCR4;#=@bh2]C*g t-50eea-22    C#hN]L6Fga  gfilenamef web/uri.scm  ,   CAh>]L66gfilenamef web/uri.scm  ,    Cdh]C   C hp]45$@45$ O@45$4O?$@  6  6wgx  ngtmp ngtmp  " ngtmp  > ngfilenamef web/uri.scm ,   n C5#R7g$ho]& C6ggs  gfilenamef web/uri.scm ,    gnameg%uri-scheme-procedureChR4;$=@h:]C2gerr  gs    Ch:]C2gerr  gs    Ch:]C2gerr  gs    Ch2]C*g t-50eea-2e    C$hN]L6Fga  gfilenamef web/uri.scm  ,   CAh>]L66gfilenamef web/uri.scm  ,    Ch]C   Ch]145$@45$@45$@45$ @4 5$  O@4 5$4 O?$@66gx  gtmp gtmp  " gtmp  9 gtmp  P gtmp  g gtmp  gfilenamef web/uri.scm ,   C5$R7g%hq]& C6igs  gfilenamef web/uri.scm ,    gnameg%uri-userinfo-procedureCR4;%=@h:]C2gerr  gs    C h:]C2gerr  gs    C"h:]C2gerr  gs    C>h2]C*g t-50eea-49    C%hN]L6Fga  gfilenamef web/uri.scm  ,   CAh>]L66gfilenamef web/uri.scm  ,    C@h]C   Ch]145$@45$@45$@45$ @4 5$  O@4 5$4 O?$@66gx  gtmp gtmp  " gtmp  9 gtmp  P gtmp  g gtmp  gfilenamef web/uri.scm ,   C5%R7g&h m]& C6egs  gfilenamef web/uri.scm ,    gnameg%uri-host-procedureCAR4;&=@OV[h:]C2gerr  gs    C^dih:]C2gerr  gs    Clrwh:]C2gerr  gs    Ch2]C*g t-50eea-64    C&hN]L6Fga  gfilenamef web/uri.scm  ,   CAh>]L66gfilenamef web/uri.scm  ,    Ch]C   Ch]145$@45$@45$@45$ @4 5$  O@4 5$4 O?$@66gx  gtmp gtmp  " gtmp  9 gtmp  P gtmp  g gtmp  gfilenamef web/uri.scm ,   C5&R7g'h m]& C6egs  gfilenamef web/uri.scm ,    gnameg%uri-port-procedureCR4;'=@h:]C2gerr  gs    Ch:]C2gerr  gs    Ch:]C2gerr  gs    Ch2]C*g t-50eea-7f    C'hN]L6Fga  gfilenamef web/uri.scm  ,   CAh>]L66gfilenamef web/uri.scm  ,    Ch]C   Ch]145$@45$@45$@45$ @4 5$  O@4 5$4 O?$@66gx  gtmp gtmp  " gtmp  9 gtmp  P gtmp  g gtmp  gfilenamef web/uri.scm ,   C5'R7g(h m]& C6egs  gfilenamef web/uri.scm ,    gnameg%uri-path-procedureCR4;(=@h:]C2gerr  gs    Ch:]C2gerr  gs    C!h:]C2gerr  gs    C=h2]C*g t-50eea-9a    C(hN]L6Fga  gfilenamef web/uri.scm  ,   CAh>]L66gfilenamef web/uri.scm  ,    C?h]C   Ch]145$@45$@45$@45$ @4 5$  O@4 5$4 O?$@66gx  gtmp gtmp  " gtmp  9 gtmp  P gtmp  g gtmp  gfilenamef web/uri.scm ,   C5(R7g)h n]& C6fgs  gfilenamef web/uri.scm ,    gnameg%uri-query-procedureC@R4;)=@NUZh:]C2gerr  gs    C]chh:]C2gerr  gs    Ckqvh:]C2gerr  gs    Ch2]C*g t-50eea-b5    C)hN]L6Fga  gfilenamef web/uri.scm  ,   CAh>]L66gfilenamef web/uri.scm  ,    Ch]C   Ch]145$@45$@45$@45$ @4 5$  O@4 5$4 O?$@66gx  gtmp gtmp  " gtmp  9 gtmp  P gtmp  g gtmp  gfilenamef web/uri.scm ,   C5)R7g*h q]& C6igs  gfilenamef web/uri.scm ,    gnameg%uri-fragment-procedureCR4;*=@h:]C2gerr  gs    Ch:]C2gerr  gs    Ch:]C2gerr  gs    Ch2]C*g t-50eea-d0    C*hN]L6Fga  gfilenamef web/uri.scm  ,   CAh>]L66gfilenamef web/uri.scm  ,    Ch]C   Ch]145$@45$@45$@45$ @4 5$  O@4 5$4 O?$@66gx  gtmp gtmp  " gtmp  9 gtmp  P gtmp  g gtmp  gfilenamef web/uri.scm ,   C5*R4;=@"#h v]45Cngdummy  gcheck?  gs   ggetter   gexpr      Ch(] 45$@6gx  "gtmp "gfilenamef web/uri.scm ,   " g macro-typeg syntax-rulesgpatternsgcheck?gsggettergexprg...C5R7h(]$&  $CCCCgobj  "gfilenamef web/uri.scm 7  8  8  8   8   8   " gnameg absolute-uri?C$R%&h-136gmessage gargs gfilenamef web/uri.scm : ;  ;   gnameg uri-errorC&R'()h0]45$45$45$ CCCCgport  .gfilenamef web/uri.scm =  >  >   >   >   > $ # >  & > 4  . gnamegpositive-exact-integer?C*R+,-&./012*345hE]$"E45$2$*45$" 4 5/$6CC6"!$45$"6""2$(45$ 45"$ 6"""!$4 5$" 6"$"$$" 6" 6=gscheme  guserinfo  ghost   gport   gpath   gquery   gfragment   gfilenamef web/uri.scm @  B A   L  A   N  ) N  / O  9 O  : O > N  B P  F P  N M  R M  R A  ] J  g J  o K  s K  w A  H  H  H , H ' H  H  I  I  A  F  F  G  G  A  D A  D  E  E  C  C +  gnameg validate-uriC6REF67h-/03#######$"4>"G"Cgscheme  guserinfo  ghost   gport   gpath   gquery   gfragment   g validate?   gfilenamef web/uri.scm R 6 R : Y Y  Z Z  [   guserinfoS ghostS gportS gpathS gqueryS gfragmentS g validate?S gnameg build-urig documentationkConstruct a URI object. SCHEME should be a symbol, PORT either a positive, exact integer or  #f , and the rest of the fields are either strings or  #f . If VALIDATE? is true, also run some consistency checks to make sure that the constructed URI is valid.C+R4GiH5IR4GiJ5KR4GiL5MR4GiN5ORPISTUhF]L6>gfilenamef web/uri.scm l  l   ChS-13CKgargs gfilenamef web/uri.scm l  CKTVhF]L6>gfilenamef web/uri.scm n  n   ChS-13CKgargs gfilenamef web/uri.scm n  CWMXO h]45$O645$O6">4 .5$!4 4 55$ "C 6 "ghost  gstart < zgend  G zgfilenamef web/uri.scm i  k   j   l   m  * j  8 n  < p  = q  G q  O r  P s  U t  a s  e s h u  n u  z v z p   gnameg valid-host?C1RYZR[\R]^R_`R4Gi4aibZi\i^i`i55cRdPc1e,fh]$D45$44 5$" 4 55$^4 54 5$" 4 54 5$45$"45"D66g authority  gfail  gm   gt  - Ggt  _ ygport  gfilenamef web/uri.scm            !  "  % $ - < $ I  M N  W  _  n  z   %     gnamegparse-authorityCgRhiRjkRlmRnoRpqR4airiikimioiqi5sR4Gisi5tRwPtxeyzg7 hi]I45U45$"4>"G4 5$4455"4 54 54 54 5$4>"  " G   XCXFGCagstring  gm  gstr  : Vgscheme  z g authority  z gpath  z gquery  z gfragment  z guserinfo  ghost  gport gk  gfilenamef web/uri.scm        "  2 :  B  C F 0 N W  `  i  r  z       gnameg string->uri*g documentationkurig documentationk"G4,i >"G7g$%&'()*FdWh]9& " 45& " 45&  " 45&  " 45&  " 45&  " 45&  " 4 5 $4 4 5 5" $w4 $ 4 5" 4:5$4 5"4& " 455$ "4  4555" $ 4 5" $ 4 5" 6guri  gscheme  guserinfo  8 ghost  U gport  r gpath  gquery  gfragment  gfilenamef web/uri.scm     !  8  =  U  Z  r  w         0    % =  %          +  4   &  + + F  J  L  Q  U + V / ^  ` f n  o s  w }         :   gnameg uri->stringg documentationfSerialize URI to a string. If the URI has a port that is the default port for its scheme, the port is not included in the serialization.C.Rh@]454>"G454>"GCgproc  9gport  9gstr  " 9gfilenamef web/uri.scm        "  %   9 gnamegcall-with-output-string*CRh@]4> G4>"G454>"GCgproc  @gport @gget-bytevector  @gbv  ) @gfilenamef web/uri.scm           %   )   ,    @ gnamegcall-with-output-bytevector*CRh d]4L>"GL6\gport  gfilenamef web/uri.scm          Ch(]45$ 456O6gencoding  'gproc  'gfilenamef web/uri.scm                  '    ' gnamegcall-with-encoded-output-stringCRh[]L6Sgport  gfilenamef web/uri.scm  '  )  Ch(]45$6O6gstr  "gencoding  "gfilenamef web/uri.scm               "    " gnameg encode-stringCRhP]45$6454>"G454>"GCgbv  Pgencoding  Pgp   Pgres  9 Pgfilenamef web/uri.scm                        3   9   < !   P gnameg decode-stringCR4i5R-f& h0m]!"#L$4L5" L$f%$X4L54L 545$&45$445 5""""$4>"G "N45 $"445>"G" L6+$'L$4 >"G"""C "egport  0gi  )gch   'ga  I gb  I gt  gfilenamef web/uri.scm K  L M   M   N   N  # S  & S  * S  / S , 3 S  4 T % ; T 5 = T % > U % G U 5 I U % I T  N V # Z V  [ W # g V  h X # k X 3 w X # O  Z  [ [  \  \  O  ]  ] $ ]  ^  ^  ` " `  O  P  O   P   Q   Q $  Q   R   R  ) L 2  0 ChX -/03##454O5$6Cgstr  Rgencoding  Rgdecode-plus-to-space?   Rglen  - Rgbv  ? Rgfilenamef web/uri.scm 2  2 ) ' H  - H  0 J ? H  G b  O c   R gencodingS gdecode-plus-to-space?S gnameg uri-decodeg documentationkPercent-decode the given STR, according to ENCODING, which should be the name of a character encoding. Note that this function should not generally be applied to a full URI string. For paths, use  split-and-decode-uri-path instead. For query strings, split the query on  & and  = boundaries, and decode the components separately. Note also that percent-encoded strings encode _bytes_, not characters. There is no guarantee that a given byte sequence is a valid string encoding. Therefore this routine may signal an error if the decoded bytes are not valid for the given encoding. Pass  #f for ENCODING if you want decoded bytes as a bytevector directly.  set-port-encoding! , for more information on character encodings. If DECODE-PLUS-TO-SPACE? is true, which is the default, also replace instances of the plus character (+) with a space character. This is needed when parsing application/x-www-form-urlencoded data. Returns a string of the decoded characters, or a bytevector if ENCODING was  #f .C/R4i5R4i5R4i5R4iii5R4ii4i55RWh}]4L5Cugch  gfilenamef web/uri.scm        gnamegneeds-escaped?Ch]!4L5$L6445L545"p$e4%L>"G $40L>"G"444 55L>"G"C "gch  gbv % glen  . gi  4 gbyte  B gfilenamef web/uri.scm               * %   %   (   .   4   9   =   B  $ B   E   ]  a   b   z   }  #  2  #          Ch[]LLOL6Sgport  gfilenamef web/uri.scm        ChPe-/03##4O5$O6C]gstr  Kgencoding  Kgunescaped-chars   Kgfilenamef web/uri.scm {  { ) (   9   H    K gencodingS gunescaped-charsS gnameg uri-encodeg documentationkdPercent-encode any character not in the character set, UNESCAPED-CHARS. The default character set includes alphanumerics from ASCII, as well as the special characters  - ,  . ,  _ , and  ~ . Any other character will be percent-encoded, by writing out the character to a bytevector within the given ENCODING, then encoding each byte as  %HH , where HH is the uppercase hexadecimal representation of the byte.C0R,ha]45CYgx  gfilenamef web/uri.scm        C /hX]6Pgs  gfilenamef web/uri.scm      Che]44/556]gpath  gfilenamef web/uri.scm             gnamegsplit-and-decode-uri-pathg documentationkSplit PATH into its components, and decode each component, removing empty components. For example,  "/foo/bar%20baz/" decodes to the two-element list,  ("foo" "bar baz") .C1R 0hI]456Agparts  gfilenamef web/uri.scm       &      gnamegencode-and-join-uri-pathg documentationkURI-encode each element of PARTS, which should be a list of strings, and join the parts together with  / as a delimiter. For example, the list  ("scrambled eggs" "biscuits&gravy") encodes as  "scrambled%20eggs/biscuits%26gravy" .C2RCgm  ,grtd I qgfilenamef web/uri.scm   B , +5 7 + : , = 0i @ 6 R 6 a  6 a  6 a  6 ` 6 c  6 c  6 c  6 b 6 e  6 e  6 e  6 d 6 g  6 g  6 g  6 f : i : y  : x : {  : z : }  : | :   : ~ :  :  :  :  :  : =] =`  =d =g  =k =n  =r =u  =y =|  = =  = =  = =  = B% Dx Dy  D E FW FX F_  Ff Fo Fv  F~ L- MZ N  PV  Q  SN  SO 0  SW 0  SY 0  S] / h 2 h h  h i  h h  h g h m  h m  h m  h l h o  h o  h o  h n h q  h p h u  h v  i v $ i v  i u  i t th { y  }|  f  }~ C6