You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

116 lines
9.1 KiB

#zip file with Tcl loader prepended. Requires either builtin zipfs, or vfs::zip to mount while zipped.
#Alternatively unzip so that extracted #modpod-package-version folder is in same folder as .tm file.
#generated using: modpod::lib::make_zip_modpod -offsettype archive <zipfile> <tmfile>
if {[catch {file normalize [info script]} modfile]} {
error "modpod zip stub error. Unable to determine module path. (possible safe interp restrictions?)"
}
if {$modfile eq "" || ![file exists $modfile]} {
error "modpod zip stub error. Unable to determine module path"
}
set moddir [file dirname $modfile]
set mod_and_ver [file rootname [file tail $modfile]]
lassign [split $mod_and_ver -] moduletail version
if {[file exists $moddir/#modpod-$mod_and_ver]} {
source $moddir/#modpod-$mod_and_ver/$mod_and_ver.tm
} else {
#determine module namespace so we can mount appropriately
proc intersect {A B} {
if {[llength $A] == 0} {return {}}
if {[llength $B] == 0} {return {}}
if {[llength $B] > [llength $A]} {
set res $A
set A $B
set B $res
}
set res {}
foreach x $A {set ($x) {}}
foreach x $B {
if {[info exists ($x)]} {
lappend res $x
}
}
return $res
}
set lcase_tmfile_segments [string tolower [file split $moddir]]
set lcase_modulepaths [string tolower [tcl::tm::list]]
foreach lc_mpath $lcase_modulepaths {
set mpath_segments [file split $lc_mpath]
if {[llength [intersect $lcase_tmfile_segments $mpath_segments]] == [llength $mpath_segments]} {
set tail_segments [lrange [file split $moddir] [llength $mpath_segments] end] ;#use properly cased tail
break
}
}
if {[llength $tail_segments]} {
set fullpackage [join [concat $tail_segments $moduletail] ::] ;#full name of package as used in package require
set mount_at #modpod/[file join {*}$tail_segments]/#mounted-modpod-$mod_and_ver
} else {
set fullpackage $moduletail
set mount_at #modpod/#mounted-modpod-$mod_and_ver
}
if {[info commands tcl::zipfs::mount] ne ""} {
#argument order changed to be consistent with vfs::zip::Mount etc
#early versions: zipfs::Mount mountpoint zipname
#since 2023-09: zipfs::Mount zipname mountpoint
#don't use 'file exists' when testing mountpoints. (some versions at least give massive delays on windows platform for non-existance)
#This is presumably related to // being interpreted as a network path
set mountpoints [dict keys [tcl::zipfs::mount]]
if {"//zipfs:/$mount_at" ni $mountpoints} {
#despite API change tcl::zipfs package version was unfortunately not updated - so we don't know argument order without trying it
if {[catch {
#tcl::zipfs::mount $modfile //zipfs:/#mounted-modpod-$mod_and_ver ;#extremely slow if this is a wrong guess (artifact of aforementioned file exists issue ?)
#puts "tcl::zipfs::mount $modfile $mount_at"
tcl::zipfs::mount $modfile $mount_at
} errM]} {
#try old api
if {![catch {tcl::zipfs::mount //zipfs:/$mount_at $modfile}]} {
puts stderr "modpod stub>>> tcl::zipfs::mount <file> <mountpoint> failed.\nbut old api: tcl::zipfs::mount <mountpoint> <file> succeeded\n tcl::zipfs::mount //zipfs://$mount_at $modfile"
puts stderr "Consider upgrading tcl runtime to one with fixed zipfs API"
}
}
if {![file exists //zipfs:/$mount_at/#modpod-$mod_and_ver/$mod_and_ver.tm]} {
puts stderr "modpod stub>>> mount at //zipfs:/$mount_at/#modpod-$mod_and_ver/$mod_and_ver.tm failed\n zipfs mounts: [zipfs mount]"
#tcl::zipfs::unmount //zipfs:/$mount_at
error "Unable to find $mod_and_ver.tm in $modfile for module $fullpackage"
}
}
# #modpod-$mod_and_ver subdirectory always present in the archive so it can be conveniently extracted and run in that form
source //zipfs:/$mount_at/#modpod-$mod_and_ver/$mod_and_ver.tm
} else {
#fallback to slower vfs::zip
#NB. We don't create the intermediate dirs - but the mount still works
if {![file exists $moddir/$mount_at]} {
if {[catch {package require vfs::zip} errM]} {
set msg "Unable to load vfs::zip package to mount module $mod_and_ver (and zipfs not available either)"
append msg \n "If neither zipfs or vfs::zip are available - the module can still be loaded by manually unzipping the file $modfile in place."
append msg \n "The unzipped data will all be contained in a folder named #modpod-$mod_and_ver in the same parent folder as $modfile"
error $msg
} else {
set fd [vfs::zip::Mount $modfile $moddir/$mount_at]
if {![file exists $moddir/$mount_at/#modpod-$mod_and_ver/$mod_and_ver.tm]} {
vfs::zip::Unmount $fd $moddir/$mount_at
error "Unable to find $mod_and_ver.tm in $modfile for module $fullpackage"
}
}
}
source $moddir/$mount_at/#modpod-$mod_and_ver/$mod_and_ver.tm
}
}
#zipped data follows
PK)<EFBFBD>X<EFBFBD>Us<EFBFBD><EFBFBD><EFBFBD>/#modpod-modpodtest-0.1.0/#modpod-loadscript.tcl<EFBFBD><EFBFBD>}UMo<EFBFBD>0 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>`<EFBFBD><EFBFBD>Yo<EFBFBD>W<EFBFBD><EFBFBD><EFBFBD>6<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>L<EFBFBD>V<EFBFBD><Iv<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,9<EFBFBD><EFBFBD><EFBFBD>C K||<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>R<EFBFBD><EFBFBD>u<EFBFBD>p<EFBFBD><EFBFBD><EFBFBD>Yt`<EFBFBD><EFBFBD>+<EFBFBD><EFBFBD>a<EFBFBD>AiS0)<EFBFBD>"l<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"vp<EFBFBD>Xg<EFBFBD><EFBFBD>C<EFBFBD><EFBFBD><EFBFBD>fQ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Jj<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>M<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>o<EFBFBD>R%T%0<EFBFBD><EFBFBD> <EFBFBD>L<EFBFBD>X<EFBFBD><EFBFBD>df<EFBFBD><EFBFBD>B<EFBFBD>9x<EFBFBD><EFBFBD>><EFBFBD>/<EFBFBD>8
<EFBFBD>|<EFBFBD>8y)<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>a<EFBFBD>@<EFBFBD>;-34g<EFBFBD>'zV<EFBFBD>WO5<EFBFBD><EFBFBD><EFBFBD><EFBFBD>>x<EFBFBD>
1<EFBFBD>`<EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD> ])G<EFBFBD>1em<EFBFBD>5<EFBFBD>~y\׊<EFBFBD>S=Q*<EFBFBD>1-<EFBFBD>*j<EFBFBD><EFBFBD><EFBFBD><EFBFBD>9<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>zD3q\g<EFBFBD>W<EFBFBD><EFBFBD>8<EFBFBD> <EFBFBD><EFBFBD>@<EFBFBD><EFBFBD><EFBFBD>u.Ǯd<EFBFBD>%%,xTv<EFBFBD>
<EFBFBD><EFBFBD>8<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>߯<EFBFBD>
7Z<EFBFBD>Q <EFBFBD><EFBFBD><EFBFBD>M<EFBFBD><EFBFBD><EFBFBD>Ž<EFBFBD>[J<EFBFBD>&m<EFBFBD>A<EFBFBD><EFBFBD><EFBFBD>dl<EFBFBD><EFBFBD>.n<EFBFBD><EFBFBD>AF<EFBFBD>b<EFBFBD><EFBFBD><EFBFBD>IW$I4-<EFBFBD><EFBFBD><EFBFBD>L<EFBFBD>m +Le`<EFBFBD>E<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>[i<EFBFBD>*r<EFBFBD><EFBFBD><EFBFBD>(<EFBFBD>Bp<<EFBFBD>^<EFBFBD>rV#<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
a=<EFBFBD><EFBFBD><EFBFBD><EFBFBD>M<EFBFBD><EFBFBD><EFBFBD><EFBFBD>S<EFBFBD>?0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>e<EFBFBD><EFBFBD>3-IT{A<EFBFBD><EFBFBD><EFBFBD>|<EFBFBD>[<EFBFBD><EFBFBD>-J:O<EFBFBD><EFBFBD><EFBFBD><EFBFBD>\<EFBFBD>\<EFBFBD><EFBFBD>g<EFBFBD>H<EFBFBD>~z<EFBFBD>v<EFBFBD><EFBFBD>I<EFBFBD>d<EFBFBD><EFBFBD>l<EFBFBD><EFBFBD>C2kŞ
<EFBFBD><EFBFBD><EFBFBD>b<EFBFBD>F<EFBFBD><EFBFBD>i<EFBFBD>+<EFBFBD><EFBFBD>;<EFBFBD><EFBFBD>=<EFBFBD>O<EFBFBD><EFBFBD><EFBFBD>*<EFBFBD>=.<EFBFBD>$<EFBFBD>Z<EFBFBD><EFBFBD><EFBFBD><EFBFBD>S<EFBFBD><EFBFBD>+<EFBFBD>J <EFBFBD><EFBFBD><EFBFBD>aԛޥ<EFBFBD><EFBFBD>K<EFBFBD><EFBFBD><EFBFBD>$<EFBFBD><EFBFBD>ģ<EFBFBD>]5<EFBFBD>K鲖Fׂ.<EFBFBD>%<EFBFBD>\<EFBFBD><EFBFBD><EFBFBD>a) k&C<EFBFBD><EFBFBD>F\_5<EFBFBD>ֳw"~ā1<EFBFBD>[<EFBFBD><EFBFBD><EFBFBD>=<EFBFBD>xe *7HH}t9<EFBFBD>w<EFBFBD><EFBFBD>&<t<EFBFBD>~EiQ
p<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>{<EFBFBD>2<EFBFBD><EFBFBD>Z<EFBFBD>DF<EFBFBD>Ve<EFBFBD>(<<EFBFBD><EFBFBD><EFBFBD>aMW0|gt<EFBFBD><EFBFBD><EFBFBD>‹ <EFBFBD>8<EFBFBD>^N2C<EFBFBD>
<EFBFBD>|<EFBFBD><EFBFBD><EFBFBD><EFBFBD>R<EFBFBD><EFBFBD><EFBFBD><EFBFBD>xy<EFBFBD><EFBFBD><EFBFBD>>=<EFBFBD>g[ݎՕ<EFBFBD><EFBFBD>ϋ<EFBFBD><EFBFBD><EFBFBD>{ݖ<EFBFBD><EFBFBD><EFBFBD>P<EFBFBD>PKQ<EFBFBD>Q3<EFBFBD>H׶<=#modpod-modpodtest-0.1.0/#z<EFBFBD><EFBFBD>Sv<EFBFBD>W<EFBFBD><EFBFBD>/Q(J<EFBFBD><EFBFBD>/KU(<EFBFBD><EFBFBD><EFBFBD><EFBFBD>̜̼t<EFBFBD><EFBFBD>*<EFBFBD><EFBFBD><EFBFBD>Ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>\<EFBFBD><EFBFBD><EFBFBD>b<EFBFBD><EFBFBD>̜T.)PK;<EFBFBD>[<EFBFBD>
<EFBFBD>2<EFBFBD>e,#modpod-modpodtest-0.1.0/modpodtest-0.1.0.tm<EFBFBD><EFBFBD><EFBFBD>XQo<EFBFBD>6~ׯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>tðyE<EFBFBD>4<EFBFBD>C<EFBFBD><EFBFBD>+<EFBFBD><EFBFBD>B@Kg<EFBFBD><EFBFBD>L<EFBFBD>$<EFBFBD><EFBFBD>1<EFBFBD><EFBFBD>wGJ<EFBFBD>l%m<EFBFBD><EFBFBD>B<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>}ǣ<EFBFBD><EFBFBD>;<EFBFBD><EFBFBD>Ks<EFBFBD><EFBFBD><EFBFBD>p)<EFBFBD>r<EFBFBD><EFBFBD>J.<EFBFBD>u<EFBFBD>L<EFBFBD>Ԫ9<EFBFBD>9<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>x<EFBFBD>X<EFBFBD> <EFBFBD><EFBFBD>2(-BQ<EFBFBD><EFBFBD><EFBFBD>`<EFBFBD>Ë <EFBFBD>0S|<EFBFBD><EFBFBD>P<EFBFBD>c<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,2<EFBFBD>FF<EFBFBD><EFBFBD>u1<EFBFBD><EFBFBD>
K<EFBFBD>gs4<EFBFBD><EFBFBD><EFBFBD>n<EFBFBD><EFBFBD>LgeN6qV<EFBFBD>$<EFBFBD>ߪ?<EFBFBD>&=<EFBFBD>0<EFBFBD><EFBFBD>s<EFBFBD>x<EFBFBD>*<EFBFBD><EFBFBD>[9 <EFBFBD>q={z'<EFBFBD>I<EFBFBD>k<EFBFBD>fQ<EFBFBD><EFBFBD>"<EFBFBD>r<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>//<EFBFBD><EFBFBD><EFBFBD>%<EFBFBD><EFBFBD>e<EFBFBD><EFBFBD>$G4:6<EFBFBD><EFBFBD>-<EFBFBD><EFBFBD>ɡ̥[­t<EFBFBD>k
$<EFBFBD><EFBFBD>.-َ<EFBFBD>ʹΰR]<EFBFBD>1<EFBFBD>y<EFBFBD>J<EFBFBD><EFBFBD>T("`.<EFBFBD>r<EFBFBD>3R<EFBFBD>yɑ<EFBFBD>o,<EFBFBD><EFBFBD><EFBFBD>/p=<EFBFBD>j<EFBFBD>ĎB!ҩ#,<EFBFBD><EFBFBD>N<EFBFBD>%<EFBFBD>|<EFBFBD><EFBFBD><EFBFBD><EFBFBD>O<EFBFBD>?<EFBFBD><EFBFBD> <EFBFBD>N^<EFBFBD><EFBFBD>c<EFBFBD><EFBFBD>\<EFBFBD><EFBFBD><EFBFBD>X*<EFBFBD>}V<EFBFBD>Sp<EFBFBD>n:<EFBFBD>Οħ<EFBFBD> ' <EFBFBD>r<EFBFBD> <EFBFBD> <EFBFBD><EFBFBD>D<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>u<EFBFBD>l<EFBFBD><EFBFBD>I<EFBFBD><EFBFBD>4 <EFBFBD><EFBFBD><EFBFBD>(:r<EFBFBD>S<EFBFBD>una<EFBFBD><EFBFBD>v<EFBFBD><EFBFBD><EFBFBD>GGG<EFBFBD>C<EFBFBD>"<EFBFBD>fBÛ!<EFBFBD><EFBFBD>M<EFBFBD>*gn<EFBFBD>n<EFBFBD>Z<EFBFBD><EFBFBD>bi<EFBFBD>x<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.<EFBFBD> m
<EFBFBD>ː<EFBFBD>g<EFBFBD>.<EFBFBD> I<EFBFBD>f<EFBFBD><EFBFBD>z=<EFBFBD>(f=<EFBFBD><EFBFBD>f
<EFBFBD>u=<EFBFBD>L$<EFBFBD>9 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>K<EFBFBD>zk<EFBFBD>M(<EFBFBD><EFBFBD>+l<;<EFBFBD>?4
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Pq<EFBFBD>> <EFBFBD>?<EFBFBD><EFBFBD>`cW<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>d<EFBFBD><EFBFBD>5<EFBFBD><EFBFBD><EFBFBD>B<EFBFBD>@<EFBFBD><EFBFBD>=kG<EFBFBD><EFBFBD><EFBFBD><EFBFBD>D<EFBFBD><EFBFBD><EFBFBD>ۭn]<EFBFBD>0<EFBFBD>-:^R<EFBFBD>U<EFBFBD><EFBFBD><EFBFBD>S<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>_<EFBFBD><EFBFBD>>ۡ-<EFBFBD> =<EFBFBD>Tba<EFBFBD>U˅2<EFBFBD><EFBFBD>r׹\ZW<EFBFBD><EFBFBD><EFBFBD><EFBFBD>!<EFBFBD>0K<EFBFBD>h<EFBFBD><EFBFBD><EFBFBD>[\8<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>U%I<EFBFBD>C<EFBFBD>u<EFBFBD><EFBFBD>P<EFBFBD><EFBFBD><EFBFBD>Ğh+<EFBFBD><EFBFBD>^;I<EFBFBD>M<EFBFBD>Y2_<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>~<EFBFBD> kA<EFBFBD>,<EFBFBD>UP<EFBFBD><EFBFBD><EFBFBD>7<EFBFBD><EFBFBD>}<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;<EFBFBD><EFBFBD>UĄ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>X+j<EFBFBD><EFBFBD>0<EFBFBD><EFBFBD>Am<EFBFBD>#<EFBFBD>$<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>T#v<EFBFBD>N<EFBFBD><EFBFBD><EFBFBD>`hZ<EFBFBD>q<EFBFBD>\’͈o<EFBFBD><EFBFBD>3O<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>+<EFBFBD> h<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>#<EFBFBD>wu#шq<EFBFBD>@h<EFBFBD>k<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>&J<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>+<EFBFBD>a^uۇ֪<EFBFBD>F<EFBFBD>v<EFBFBD><EFBFBD>3C7<EFBFBD>TY<EFBFBD>h<EFBFBD><EFBFBD><EFBFBD><EFBFBD>[<EFBFBD><EFBFBD> 1L<EFBFBD>2<EFBFBD>=1<EFBFBD><EFBFBD><EFBFBD>a<EFBFBD>hCƀ &ɽ<EFBFBD>¾{\a<EFBFBD>=REIG@<EFBFBD>g <EFBFBD>Ⱥ:{B<EFBFBD><EFBFBD><EFBFBD>Pox<EFBFBD>{X<EFBFBD><EFBFBD><EFBFBD>b;<EFBFBD><EFBFBD><EFBFBD>M<EFBFBD>_̣<EFBFBD><EFBFBD>`)lq<EFBFBD>^<EFBFBD>d<EFBFBD><EFBFBD>|XG<EFBFBD>wX 9<EFBFBD>H<EFBFBD><EFBFBD>V<EFBFBD><EFBFBD><EFBFBD><EFBFBD>+<EFBFBD><EFBFBD>J<EFBFBD><EFBFBD>ԢІ&<EFBFBD>w<EFBFBD><EFBFBD><EFBFBD><EFBFBD>fPQ<EFBFBD><EFBFBD><EFBFBD>j<EFBFBD><EFBFBD>+׷hRB<EFBFBD>1F<EFBFBD><EFBFBD>`<EFBFBD><EFBFBD><EFBFBD><EFBFBD>^s<EFBFBD><EFBFBD>͹6<EFBFBD>!<EFBFBD>Q<EFBFBD>Ұ<EFBFBD><EFBFBD>i6<EFBFBD><EFBFBD><EFBFBD>± Kat <EFBFBD><EFBFBD><EFBFBD>8<EFBFBD>mM<EFBFBD><EFBFBD>C<EFBFBD><EFBFBD><EFBFBD>*O<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>S8<EFBFBD> v<EFBFBD>q<EFBFBD>+JuN5<EFBFBD><EFBFBD>jP-983<EFBFBD>ҟ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>e<EFBFBD>=<EFBFBD><EFBFBD><EFBFBD>H<EFBFBD>3<EFBFBD><EFBFBD>?<EFBFBD><EFBFBD><EFBFBD><EFBFBD>F<EFBFBD><EFBFBD><EFBFBD>Z<EFBFBD><EFBFBD><EFBFBD>b<EFBFBD><EFBFBD><EFBFBD>Ρ<EFBFBD>T<EFBFBD>]*<EFBFBD><EFBFBD>?}7<EFBFBD>]it<EFBFBD><EFBFBD>5<EFBFBD>6<EFBFBD>v_ }<EFBFBD><EFBFBD><EFBFBD>Ҡ<EFBFBD>I<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>P<EFBFBD>^<EFBFBD>mJe<EFBFBD>,}<EFBFBD>~<EFBFBD><EFBFBD>|<EFBFBD><EFBFBD><EFBFBD>4<EFBFBD>WD<EFBFBD><EFBFBD>I<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>9<EFBFBD>aߣ<EFBFBD>6f[<EFBFBD><EFBFBD> ]<EFBFBD><EFBFBD><EFBFBD><EFBFBD>2<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'k<EFBFBD>|<EFBFBD><EFBFBD>e7<EFBFBD><EFBFBD>P<EFBFBD><EFBFBD>~<EFBFBD><EFBFBD><EFBFBD>V<EFBFBD>$<EFBFBD>'<EFBFBD><EFBFBD>=ƿ}<EFBFBD>7<EFBFBD>Z,8mR<EFBFBD><EFBFBD>0 <EFBFBD><EFBFBD>i<EFBFBD><EFBFBD>Kk<EFBFBD>|h+<EFBFBD>'<EFBFBD><EFBFBD>b<EFBFBD>K<EFBFBD>A<EFBFBD>^<EFBFBD><EFBFBD> <EFBFBD>K7<EFBFBD>];<EFBFBD><EFBFBD><EFBFBD><EFBFBD>S<EFBFBD>k"[<EFBFBD><EFBFBD>͵<EFBFBD><EFBFBD>r.<EFBFBD><EFBFBD><EFBFBD>4x<EFBFBD>i<EFBFBD>9c<EFBFBD><EFBFBD><EFBFBD>yۙ<EFBFBD><EFBFBD>F<EFBFBD>A<EFBFBD><EFBFBD><EFBFBD><EFBFBD>@DQ<EFBFBD>=<EFBFBD>R!\<EFBFBD><EFBFBD>PK)<EFBFBD>X<EFBFBD>Us<EFBFBD><EFBFBD><EFBFBD>/#modpod-modpodtest-0.1.0/#modpod-loadscript.tclPKQ<EFBFBD>Q3<EFBFBD>H׶<=M#modpod-modpodtest-0.1.0/#zPK;<EFBFBD>[<EFBFBD> <EFBFBD>2<EFBFBD>e,<EFBFBD>#modpod-modpodtest-0.1.0/modpodtest-0.1.0.tmPK<EFBFBD>