aboutsummaryrefslogtreecommitdiffstats
path: root/whisper/message.go
blob: a80380a92b7388e8689b8cc7373b619cc363f8ad (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
// Contains the Whisper protocol Message element. For formal details please see
// the specs at https://github.com/ethereum/wiki/wiki/Whisper-PoC-1-Protocol-Spec#messages.

package whisper

import (
    "crypto/ecdsa"
    "math/rand"
    "time"

    "github.com/ethereum/go-ethereum/common"
    "github.com/ethereum/go-ethereum/crypto"
    "github.com/ethereum/go-ethereum/logger"
    "github.com/ethereum/go-ethereum/logger/glog"
)

// Message represents an end-user data packet to transmit through the Whisper
// protocol. These are wrapped into Envelopes that need not be understood by
// intermediate nodes, just forwarded.
type Message struct {
    Flags     byte // First bit is signature presence, rest reserved and should be random
    Signature []byte
    Payload   []byte

    Sent time.Time     // Time when the message was posted into the network
    TTL  time.Duration // Maximum time to live allowed for the message

    To   *ecdsa.PublicKey // Message recipient (identity used to decode the message)
    Hash common.Hash      // Message envelope hash to act as a unique id
}

// Options specifies the exact way a message should be wrapped into an Envelope.
type Options struct {
    From   *ecdsa.PrivateKey
    To     *ecdsa.PublicKey
    TTL    time.Duration
    Topics []Topic
}

// NewMessage creates and initializes a non-signed, non-encrypted Whisper message.
func NewMessage(payload []byte) *Message {
    // Construct an initial flag set: no signature, rest random
    flags := byte(rand.Intn(256))
    flags &= ^signatureFlag

    // Assemble and return the message
    return &Message{
        Flags:   flags,
        Payload: payload,
        Sent:    time.Now(),
    }
}

// Wrap bundles the message into an Envelope to transmit over the network.
//
// pow (Proof Of Work) controls how much time to spend on hashing the message,
// inherently controlling its priority through the network (smaller hash, bigger
// priority).
//
// The user can control the amount of identity, privacy and encryption through
// the options parameter as follows:
//   - options.From == nil && options.To == nil: anonymous broadcast
//   - options.From != nil && options.To == nil: signed broadcast (known sender)
//   - options.From == nil && options.To != nil: encrypted anonymous message
//   - options.From != nil && options.To != nil: encrypted signed message
func (self *Message) Wrap(pow time.Duration, options Options) (*Envelope, error) {
    // Use the default TTL if non was specified
    if options.TTL == 0 {
        options.TTL = DefaultTTL
    }
    self.TTL = options.TTL

    // Sign and encrypt the message if requested
    if options.From != nil {
        if err := self.sign(options.From); err != nil {
            return nil, err
        }
    }
    if options.To != nil {
        if err := self.encrypt(options.To); err != nil {
            return nil, err
        }
    }
    // Wrap the processed message, seal it and return
    envelope := NewEnvelope(options.TTL, options.Topics, self)
    envelope.Seal(pow)

    return envelope, nil
}

// sign calculates and sets the cryptographic signature for the message , also
// setting the sign flag.
func (self *Message) sign(key *ecdsa.PrivateKey) (err error) {
    self.Flags |= signatureFlag
    self.Signature, err = crypto.Sign(self.hash(), key)
    return
}

// Recover retrieves the public key of the message signer.
func (self *Message) Recover() *ecdsa.PublicKey {
    defer func() { recover() }() // in case of invalid signature

    // Short circuit if no signature is present
    if self.Signature == nil {
        return nil
    }
    // Otherwise try and recover the signature
    pub, err := crypto.SigToPub(self.hash(), self.Signature)
    if err != nil {
        glog.V(logger.Error).Infof("Could not get public key from signature: %v", err)
        return nil
    }
    return pub
}

// encrypt encrypts a message payload with a public key.
func (self *Message) encrypt(key *ecdsa.PublicKey) (err error) {
    self.Payload, err = crypto.Encrypt(key, self.Payload)
    return
}

// decrypt decrypts an encrypted payload with a private key.
func (self *Message) decrypt(key *ecdsa.PrivateKey) error {
    cleartext, err := crypto.Decrypt(key, self.Payload)
    if err == nil {
        self.Payload = cleartext
    }
    return err
}

// hash calculates the SHA3 checksum of the message flags and payload.
func (self *Message) hash() []byte {
    return crypto.Sha3(append([]byte{self.Flags}, self.Payload...))
}

// bytes flattens the message contents (flags, signature and payload) into a
// single binary blob.
func (self *Message) bytes() []byte {
    return append([]byte{self.Flags}, append(self.Signature, self.Payload...)...)
}
#bˉUu6#GF5u]%^uE$o sɕ? em/QW_hrc8`aHrB`eV\x:Dc2s$C_rb(=\q, .q^Q m s7㈓l"t Tsxʭ7]ofP.E9sFIN&KkvA93,GԦ#[v~:ǒ'/Yi kF]Bu"9:[_hcg9bM$ԪɢSK۾}ya`u}TY(?$JY3A B }CSd.^- 2,5Z CO6 2?0=Vu6382NvКG{dѮ9D/SWEIxsDnnbܨQ[buuX|ΖcV;pD//$vmQT;1t9|VPJ|YbDj}7oMvS'2wz?gtSXf.q(˜zdq֍Oz٫w2?>h3O#\3HlW?'~:]1*<Z@"^9rU:$Hwᾗa#JJ);W X:O)ˋ_Zdcߝ;EAw(Y/`EM &N2g0AԮ,S"a]#wx'zu>3#CѢaYWubm@{0鈨ql%YJgB Ke'k{;k 7AN(Qm* dNEnḀGZR.G~§}+J?D&O8PAtv.Ufp5o~?MgypXC;? Vy:_= e7ЦCo E8ת^AM8v ڰ[xyV yRZۢ;O>ͧמZa}l90`ZS!sO ՌңYhVwUct ү0ul-_ÛЖaEAXZa-”@oJbXIn1sہv&Wb%K~w.﹛P-]$?f [#ST=y&SE6ŧs7;![>janF1v0=w!O`I:Ë%[|tQ=U?Ƒdن;4&f2*e$H-ԍ&r֗Δ qs=D"Ҍ+%Gd>yC@< ^1A4ږ0*Sv3EgHc] ۍ^N9%V62G9):wk}pm 4B4c#t3 +o̕U9S 3ԬNy~HV.ziGeXk9[ϡ8v5 wLI)l8CvdSAaTw]0Mk}TJ#&#ޕYvʲguu ;xRFv\0?9u2qpHYHC*w5SaG`k @^+{] c",_hNx0 _Eȥ+T4vh`0$2d#0oA2Z^jxۑ?Ԁ^/C4JGR$qQZNbhS'8aϙ3f9ZKg;f-d8|eSnSڛпDO+UVFx؝)>m:lRk:Ou/,Ic%Rp9w퀶NNnZO+ C3iL'~Z0ZcGsҷg}|;1 r~''ISƳq)9Ӣ ]Ma2y'gmCAɫ"fK!ì1O31хG8u|N%꠮3Y'^hCP":|2RڰtO~RgV ;gd:iѢf~,E+U|X-x|9("]ԉryGMKnXE-zmŁwҬ:O=Msp3J#QO)2HN} [?78'gN9ڿY 3щb7מ ~ @LepA}$_lx{^0rCߍpjtc)gEy`{ ˘'=b~fũv60K2ϐՉvO-҇8V~AGv}JI!H8;ȃˋ>aw"]qXX,6; p|ۛy{~ߑ bm*ZWxVUChÃ*}&Lc4r Wٽs.~sޞ}s/,~Ӕ_MnS 4@o_e|J˵1MQzGŷD}&?,SɁ 1+cj7HV\p>CwJip_)hC¿)/3+%NQp[9qyKNJy2ǰ-)n G9nɻ&0B7^Ɣ*E))a@ ( Ţ?I+o))\BT R7Ba߰L:1,z;g': :W"q}4X7ѥnw[ :}{.}H%rSMm{t50^{*D }Qp̹=RtݦCʪPЍRdIѥ4rz<Ohi;ˡMй5yT/yfZ0-1Qafs-OmSfjGYc'uׁY<ɝ,F]&6`s\d)By?މ IGfWE[qJ82V)n{+ѿ̊^5z耉Y5w8#pj}({NLvƻfpz/7Z=ďE{77Y륢ˑ]~2M"-VN90 coڠf\.ՙQ#.=6\σ'Ɗ2,1U8d'o-BNe;K9™Sy#-=Jce4B[=FhR>2}ԌdG>RydϦ'h۔7j',#'BѮOz<t)PV(˹7Xfsa;!s/r k U7{;x{s^Чµ"M⌗)ғyL_Y Om׃)],K i›?2ϘG4+eVۀwGaf̦%x?,Zm}TN8!p;ĽKW5r};j(v _]QYbjQCy8*|YnP;=3;o,*Ltsz۬+jVN 7L7k; E*::7 4hM}A+%Y~b[Q&d0XʇvIw{ Zph/;3Gśu>zn dk\h1 r 6Y%ܢGӺla7_$, ݭ`z"i6?o\~rao4]؊-U M8F[ 6k 䲢9<]rJo(A@NWqE"/⫤CxTkz{CN{,kL(ʣ;q a{aJ2dx)9lD%㏸ш9B*=*ܩyP(&9]}kct;`keܢE>j"E1+V&Xn383+JzM7X\DxiǐXhɃBH_ *^i<Y(6ƒ=t붉 $!uc×}kz4Ҕ?,5_$M% &Cg=[46&9P0z !* nϯHҨ:IXZ5u6=r(a9" ʬ^U*;TB 'LiӾ*x2n0Yy]樥ſ8b5Um70gǠE&2\O{ϛӰ`bk,"{.:wTLPltm; :lZq7`Br( Eb.w{u{k|'Z(͹WgH#/jP. 9 ERϾlLh^YW7-Q+ө S)6иy9?vVS}E@J]7NXˆn܍"y %_Qz xB@uYnB!h@Vھ"zoYp/CהV(t a?bH%j~xNA> NO{2ҙ:R@Y6]GQ"ЦwQRoǠ;SRfS9stǔJO5č.,H[SQ{; ucjM%"|6q9~Tqz/ g¹rg`jXFowd[k;[<FՔ52W1vIk"1Gڦh<~cĵU#NEN͐-RԼk ,EcA)dҔ&adw7+J݂oL _HJX$̝,uk6l,!gߞ~-M>.NǷsN4'q/HO?ǀ"|rɓ!N̕iՉq8{#-?XTzaJ+3<`l( (05lP;?i"~/Xaḿ\35US/}c2r~*Wp n_`XHka<%s뙬4#ՀD.`.\! },@vu,q?T :s`[aZKbb,_(bsUҟ_h|wB/m}W/XӞ%Qt3Q{<n|FqݓтCnGE 27qj,iBz`oL]_FC(RP0]5sF߰U#w<Ʒ:A+i]%+Ǖ2R[@v3̪ۋX 0QC#KC$=*;j ҘoAxL%)3d"%]'m`d;ՁZGP‹NJrŠXgʗl|y'~ iGz %ZTנbn M+MUf55R 7{E揫LJyGqW=#<.C #o?Y""y(u~T+[ Bg^qd ^yX^(^Ԑ 4߃~: Q@yJh s%p,^%f=@GE~"&Y5fu5w:K8J#Uҿn f>exƤgܸz0u(iM:yh,2ʙ Q`Sfoخ3(EV{<料Wc{nA!qoa<E3D Fus4' ;~zu43QNFh{Lognu84KnQU>eA I^-~xc`QD0Qo\S3WsW EwL|4XFnM^N.[SsXE 8,pÕ5" @WG$K2tV)ǹvsH9!A }1 d 7(-Ix ^kJ4eՎ u^)xf fhC 8eg5,$VP3WCfU5,)tdSZ(;I[4NHN gԩY+T6-,p &w F#i>J᳛y 5nޒ͋![;Yfl;Ԭlg`Qoù!I$got]r ^Xk)>JXthnܰ>?_le!n?;"jƚtyB [Cu*9$b'( BR%?X<1:[;Z={{m5)}~'|4Y4ǪPGCEv!)1+e}ɕ9brg>|#c+ /EbQ.z1R!znJtrm4 apOCE!Fc_+ =wangYhpdUr@ae\t3=&xwWJoq>Qm Si?P~j!h:KcYi584 +Y'!?+e>]3 |zUCm*u4_b?gp !'ى]q5PQ珡jt. cSTZΦe90t(poE:ށMaϞ}͵Am=x9knߘpW :e:țYBoKf6Ot7ǻ,+xTxA*v%P׭unz/ڎE`nM[%6MiwNՊ2z84̳i0BOp< [6ְ}j%s7 h90[⌁#ީGw4swMw_O:Mm!i;r)dݒggkPnc<93f6/JJ+t4Du]n٣|2?m}hhtݖ5 QX|#6Q4Zt%/oG_gyr=%c hQ̃ V(u?C(U? P7d(ӟYm\Gn%rG9b E]iMξ}):rĖܰ^ 6LˊoڛWV88 !w췤K)J@Y ^ϑͩ|db,#` _ǾVcw톉=r*[rܷ9%g$̝oG6 YXߜPlpmt^K, 9 L"ł?l.r 5yIzCsҊ*C]irShfd2U(+Դ%q:O!p(9+J  Ec1[1be!Cߢ^u‰Mī`;*<!N51|4L\2Ѕ wMd#Kg$;HRq/݈&|%x^MKz 2m;1 "zA3/{$u[t{a'KU?TQu3_nË?ۂߞ~4u!ZoML*Y6Ƭ^R̦1/}F/"?NO_KU_n,`ђ0NgЁCHg.Odxb1i>]* ǭz7˾E[ -G,Ep=ErȺja-^ɸ1BP9q>uӧ)3==')#8u4rUq 2vߜGv?=%ѬH'S#ِSEY^̃5 FHK_hDem|kN*zCVrFZ8G҂KJrOUiD6rWfb~'e;R^+ȱHRr1 ,{SH.4Js?=g~v2-+R(^V`w с3E?y|>3Yv(~ȳm5O% ³S|o~y<ٌ؈vuRyhDU֒X@*Oc% 4sA6c,I B%@h۔JY !lx1/{8`k^ 709K;*su9.#<ÌUߦw&ou}3Nkn_㧬:KEk_,:CT: ̚ziS2blCxDUbB{߷N;S!"{ϷTb6!\9P.D|Lltߥ[EUZ{_j 8$Hnj:D&pw\uvܸNBU]QLB`,b5/VfCo|8=Dԑsqg(?Ȅ3]5 di\*vplyxvsGCywXbzEk"@3ylVBC˔k~VBw=7xfn BTUaJ(N(-Z } @~2wXgtJR0*Ef :΃`H+N Z ϲ9mK5s*x?9i<ȗFm07/^rQ!5qqyAUVn7x3( ejm$~׹\?PP 9:t񢓳jlnkYz75aF$;h+=댲SJ検Ig aj gx]7y)(veU;H] 2M͚֝ M1y: 㞳H y5G'6Zz!jEГ`pgzipA&y:tO:Fu1&&#ئp'LN-SnLJR,mł3 | gެRwS?0_@]c o5G(aQ!rmީTcşoZ'bݾ_ήgמ j$/2謍n ,(; ~s†Ν;Yբ>e|`ZQB1c)74~bK]sJ@ "[a72-a]ϭ&4& oH' ޮQA,ahaYX$*˲lg]l]r%gwD]>/zbY~:֥JhZL uQjΈ) 6elWy"G|WioC!\vpš1аd" O4^;=|Tu6g=.4_vѠ͝:oM[l,=-Y0YA#2 3C푒WLQuf, |C-26)Sj!eFIe sK C͊q6UWSw緿ݟnt]8gZ?996_b1^[&}k[:Nwjg3 :NR&muՄoJmbM,:o5翀Wӎ+-y9/Xa)[>6S&y*o7]U/6it0vnEljbחdd$V_t$Iqn7I$MHaIb׭& (v>]E/s46]V{KF^-'+-euLYixq+x;=_`9S^MCɸa(΋ϟ$ H!9eXۼVOr weR :|x'==}VluTxl~}.b̺ZoZR7/G`SypۚoyRgOHۉ@} 5|lF5c3{,,Z"Uw yh2Ih\Dghn.OE Ϊ)J꺯Q\z)vYX,A;=!n)@ Ab߯/%4XӷEۍy.AFCԬ~f8 ҽ >LÂn*ד&;2V@ /ІخƋ;ItdMҺmQ7o5R-2Ɏ4;B3hg='t'Q< `To Td#|4G6UXI!ײ9FbS0I6w wv#|/&GeSd^  NzsL^A=/dICk?-r$sH18:/`6''3d"L-UM"~l}J\|)goǞD~ A,Ӏ|ʠ喁v> /L=oeFeड़jc@/>cjiZ#|haoμzV.8Q9-&, u I4LykF:Jٜ,*I[tu$YDkUԬ bs&[p K GI0f"a/yCȢ(~yt ZMO5/4Y1 ̹/g(MʥӪlp-cA$hkZqMR\NE4:肳?>߳au a)oUZ8<0W D n;N!QdlYub,6TtDB&jiplV%f$(mAtJ2ihb(r}?;5T{ pMe?i NY o >`2v<Rv-[+6[lڍw}IrC02Ԫߤ\KfaḽnUPu2L]Gxe}ǫUl\#imǞ҂&gZBy _d /q .in J&I`Ml \[Ҫ\Aق[=B&kc 207Rbg^Yo1 T إ`. mXk <+,l=FIY"+/|5PPua? GpY==ywX4+ i`L *V~܏3MZfPT}ܾ`ZA bY*E-I\og~䱌^?ՒUJQ?$/]?Ny*efNpvVqgV#s{7G]!ws}l,`'Ia_LЃt ͍(*Vk_E\\;QsjTA hO~tw,|:]Ma 8Q' 6My9H,׽"{{:W;j-&S?m `>7Û4Ԋ]݌VyR"ܮ-(<-pX5HFn`*^oy7Lp]T$Ooc,R()T4ؓW\E-;-x9v16(UuzxninAu0S軅s!V=l0چA:Mѐ:oΘC"b^p&"Mla]Y)Z5:46,Xqs.Dˇ3i\PMaw]^_`u "·2!)u=o*k,d:4l]jX[}>᮶mՉwPZEQd,ޢR}KeS3"ؤ{t<{5|-͊ o%sǠw)qԾhHbӖ7ծu҉2e1"H Ƙvfb?c;VM-MhJbL }P&Me04f!M0t'yo#~U8,DNmCqhؼI7V`iǟ^57A**UF[Ӗuc<)Q_qaQy^TuX6a ![UlVmGc"3yQq+0W(h{A܇GI.Վ,GM Tj$y9p$X lwݜo%;0_[ \K8>^9o_sFu)5F7u)::H/$ .m"L8?!zQ ziʞ'x)ɦxȁp;i*O=.*zTT6di$>Rn$ }_9uL)dJ \d2itwxwh u.Kj;Ss*/Yw;[d^?žBQ`QxTⲃjW*H* e@.sy8Cwv-2O+w?8uO/dΔ<0@v.vpxC?~-X+†/L;pn>^5iۚ~s\QE>+|00-fjMÞ8߁&~Μ/Op n7L,RXZ G3m0y=n8+Hf(JY3( oP$r?)ےo>FjK"" hCӪmgVL3ʜXӘ+fgn/7dle7FZ*HcA\>*7-o}uЛ -毱bDA:&iЙ¼YVbz FqT3wZ*xL\y&0K4w1L~*C DxsoGR3Āi̤9i$BpݳY?b@ -&3|l9$ܿxhwRq&cy_ԈEb8*G@'뚷I{s_Ӂo{!dayӇYRCs@4l7-]1P.Rv)(p/{ĭk͵aNm';u7 58ʼpc32-"B|7_B(ƕ we.2A4uGe(4rg4b{|t#B݂^Yn -ù#G1F$)Ϧ1:қYR٣~) c\nSx0H&hPx[ j5laקr-E7澡&Ycaj;"G?:WT$)rki,b:ӣZ%4jC sm2MTYZ̚BY8L.h?v{Y^MRS/RI66Qj<Y3윳w6$~2J0S V:;4ҫeiG-)Sg1`%FI~c-VF҇. n`/E>ͻO٪\+b+R 6]!QMXs=Kgz>NNyx{E3g 8bLJ!M>/SIe,˻r4mHмo792~N0lћz1TCS^P"x(t2CWˬ##FZkyf:xy2~t%G=ͣh&U fv9K$ȿ5;UUMClOh$x U;7n~s ~D4%Fp2X> 1ɕ&:.p|v 睚f"0~< :A I<ǥ*(>ýjQFg`Dt=HJBb$*Z"Ji͐/W'[nt]0+PN3sB&>^+q(\Q9=E uXyH}MYH@Ս1 Ԩa)pf6`xABPg}:&efLSZnclե>i+~aqѺ|x`x0/~rgHz+6 bq/V !*(; F<4-;zxF%[7n)X?6)&n(KP#4O沇sS@Q֮o;2o$w$ o]B=5[Ysﺺl6e"4g50]1X "_p3T$d9r'[8r;ae{4w+ MJ:4s1ڕ0 xBNǕoӪs$g@:|UyD8@U4FF;ٸHMfɟ7 _b.CGA Gm&6*hą)d t\xEfJ0Xҟ 4.< \4o5`eУj'oTp5Ȃ4v?*BӓW&K44hyTVnQ;-R>ģI l?~$[aq,h7Њ{ X?TH2x\] JWQa5rwycfJn?{}%Nm!lY\B|^_}a>?4'ȥP%߁%ޅ#be&6"1Tۂ>)40zsXQ7ْe%* aJ_o* g"FAo\[*vᡪ`B7n%W-D{#{J0 <8,bdtaڳ,þU,o\ 9q)ҿ`pUٝY߹9+,+HTNeV5m[ԅY_諼߄U(Z\g d(yKݫnp7YP3Lzo`9G h`gQ‰OA)sBee` OgypXT`y3.p)VjyY@)aVMb'fZ|2w7g;|j@/P/(s"R+y249,٨_Tt7 /rpQob(*}7[|fI? ƞpYxj7L>&oT'r^TR\;o>8#ӃSQa22BU9$iqa6j#QdEe'"{{>9DጶDz:Bg h]ITi@l"͉U=Q"X@9SpbD젦Pa_qNj9jH0}}a7'6}b;Q}65ĽH^d7sk~㇛ [ 3|*"0:G ǒWYF˂`UQN@r+!1HqQm͠IWw vR(a3!ЂЦixuh:zpB: $kE0_vʑ7uHcmHz5ZAsP/sOeBtd?0?[OqL.wFxk, įs=w.Dۂ;JeHjS~2{ܦ}avg7cP_}`,dnv€T4~Q~#Y9{pC\)I?5-=_8]VI'4hB^ПR,NCTiꕽ+ޤ^H#+:U(TƧeBe.uvf0Y5)ե =}~ZE3 ]= ā K5#d6f;Y& ,e,eŖN*I9rL{U;.G_zX65ݗU#Z@"T2p5"DtN04y &[ 髻%_qb Ëk7osJEAmەQ>b?s,;O5fWv*+JGD'5.!Vl2^Z;|)ëw7զ"Qy~/#~K H|VD ™M x"*>cċǩWjke1gEK^::pDm$:HD1:Hƫb~0dv/u>9q.yؠӇ~d<ɪ"Anp=ݺLp}u}k\cNʤH8.*6W9gټ1ovg˞,wAY#-kT?b k픒4 "i5S4hnJ|jͳP|vEGpߌh|z 1e5(ufغ+U\m[oCenS\7iZbfYUYnTz (T{<oxaPω Ppx}L~E-ꩬ4:doCqn7L "vac44!F7g(bF,vjր)8.㬖BO.!vzdZm 9xx;bϹ ",fͥoIw ON^bc#aaHxps}ʥ+9|?Nht+X[aCp'"css"};atwmeLY%?V&}ywY o n a1U,CBQs-b=DOyRۻ!Ϯ>%pn:ƚ/> ߑ?CMM_W\_ғ @[B2hPM[|OFgH±a]`nNNUI0 ŎME_p(-\ϟ2f(nBJ;YZwehYmKk\MkQZ#0pީqaYKcWS3}H[tQVp51M0Œ8VҮ tGE2+S5e ു܍/ +k4ARXo 9:-ho>^R^ 7D2&kmZ$nC!$oܬCp,aU:f ueܽA\~qꆭ娘7{l'v@ަs5J@QId<韅kpP|GIRuգ8u .K2p0ݕ?a ='Z/ ֵU?NOOX:X ?9n*y^|b9=M&y`u7p= 6p(h"g 0h ͽTbCooQ%p"[*@o>EdɔPטF l'ev_w?37Ĵ/*Y |[ 8(?:6(Ќh^m7<1>br!K9r:8W#@1ðs ˌՋ6( nrƚuѨYyYR[«3H^W֤C9K},}XBҼn"Vk*߲]Bď89 n|SxYrnNw@ HF Tl59z,WWxnBAoHzpzpE{(W62oH雪UV'_ỲbE:ҕe*z5A?:~ɿgPF:v^76q.|{NGp苎1ޘ7 T=EoES).5CtUE[* [Cxi.xn5)ۛ,A-:KTz2|Ω\ݼ-خp``;Ya$g@;˅)GM7ަ@Xy(rS͟iќ8O%nӁOfM+Ov&ոLF"o'9j%rcV/Y"',}cEYcRӮ+n5NB `1?`:ܱ'yciȴud_{Dqpfཨ^k™ah >j@\4fF;2Ί;V G0T_A1 T4dɞ\\Z<},OD?-7"ˌ "gL ʷFQSud@/%f5k,@*l`4i5; -Ao BV6I{ӀvdM*\)heaٕG BOgʷ&h9 Nյ1TfbG8"Vn|&hLa~Ez $/Dmn\g^u|28:[aTj7L_VE{bxw?FNe?x!5@hmֽЌhon\}Seβbe!Q_`qK06G`(F=r) A:ç%ƺ[񊽌jR g}9uef#6S{ۭtmmBkP$1:>+~R4 ߒ &rQ})0 7R'>rHbAI􌳣JdM=*-UjRR"ĴnCyB1fnCjh'ifܯrGl)^2͋(ˏQCW}v>p/ϧ`,he"ѻD"G 8ۇ )\ [o\=;0?TC8G6J@h#>51&/lfr~Z?vX-ę(a?n樂I}ꏞٸq7[r`mmt_y/ø8}7rQ b&F{.C|$N*@~M$ *CK5&}\(y Y?ff×oula U&,v kw#8.btzvl _Ge\-iLsLM_gã6E37W|ZEl:imf5C{w>Ǖp 6"{ΐ@Bj]sIqoY"hAg[Q{ȱwJAwfՋwo_zwqej+s NS{\u˹`XP:N2 @^;>y5مnSgDاY9CghOerո Y_8 8JhyrHfʨF]&Ei>"\6=!\FNȏ7 ?z;!-ȟ~BN?|O7vFqk0o^ eO-~7 b0O&hہ ͚D1F>J8nsu\fp 9w%puu4e?vt=N~#D 1Zds1IرrQ?b|+wXzok0&+l'FwQaZHI٣!D¥MCDX`}&-ۓ(}_DTsRv3 *" k7[i^Wn8À ݍ٦ Fvv*,сr{<$R_@KN7r?<{zttdQT 1Vi!][DI̴aT=YSEIagus.Tuvl:#4Ivm6 Vq9!ql.u or>!{9vD܉֖iz!iS  NdǢі/r#tD/H ϺvBg8epxYңPqukG$bi{O;#SjkEŘmBB&8/`~D 5raM$&Ji;aչk2K^+Z,*9C:r:+V hl>%[{_]>9PHݨm;]Kȃ:d' TOePZ^"[H\bwV"Dp3aCjf&%$ &Bq7R||S5ZDmI,JPmȖ;xH?4Y5 qfLʟ]Y8Yql1<w՜ 94glxRGS\z }/דr>HW׆.*nt/6. mb hRi%قM>|ȟ~5[U7c~}qpDr9[(_/. 9~([0#6sqDcB;ͺLw;2'N O v-nSե'#?wWaiT+ |\',fZ?qʒKϣC{׍Av#mC>E7ͽ.">ݒ0mjWuIY^WWst_\(yx{fOlD%QT'Φ(,,t="It&%(h)/E~r^@U>]qUw~t$q`xsAxE,"ڇ6qw&~.~wy쌏(:EQ1 X)7_kmfO'`%` Ym5hA\ & td9..EZz33UPnH nxTq;?=v ydtX!HlJ})hy4|rtx:@!v+K#&@] ht*q\.Z/'>Wg9wP~9#UԤ2!& @d 'Y@h F"*;Lq∡G#ȣ_ɢb\#[ʫLO3(kkA#M{]dm WEVv@ p- 6c&bg|%/S'Xtk7H{c"A\#R uP'Lk"*q 9C0ĵK޲퐸ʥZ/M |1MseAՋA>>NSAôR/qB7w %3P !t~ۀNi9:1N>CȞuAL@\mu979/ #s۝_/b—E]\8H m .~Nǘ2o_)$[GSd~˼w1QRAi,O IMdp D\+JY:> crP ɚ軬eEd{PFǢ F}̬ %@AaU),dD<ҁM^Dv^!EW}(#}uZQH#74繃w&~X(+ioӞSKQP=QeK+rI6lKy?rŐ֤~.':M|\^#U>;Ҁ.,"I9Ǻ!!CD$L/iȯIrٱy)MuF}Y&B :f#Άhר|/k'"h- G~6_`#Y <*2]-^#fUC7 ]u^U4E6$5HfFַPȺeB-Xnކxn $.=uVlkרSGy\GϑbgrlɗX;}}} ?rj ? lm 3=;,6 EB'ؾwY:л *Hڒ]2w׿|zTKwzXDi(n?$aWXV؁;Gg#ݡRƍ 2KNV`{2 6x.;q݅ܢupXI(!.rzw߷N {7l!ݏz&ܼ7߼9vN\4#vD,mRP:;uA( Z1ﻢ4*Q6&G%Ҁϥh?޾Z]9T/wQёF/M lu\hG+օ֮506#vm_a\^AGy_ ťi]lWpe9kĶgcXSZF򦉷h4zGI(#`QQ6蠄1'OD #A.; kD'l:v$6P$u1EDBal#1H<&",r' jhAa4Y4ތ;R^OifY'HbO3:H4b!7Q.( kɡ E2˘|N'@EVQκ@ȟF讑V(1,D]sFYFy "/"h/sZ/)O#m\ޟ./Gn/ԭQ:`>! z0}a Je_sJɚ (">s7k38"\x'FLdÌ(e6u0g/.,ry$8gSm6yeC띢f8+?.%Y6Mh"0.Ms$—,!kuv"Ee.2^ܱҬ^vaS8 *Z=d9hXc׿ 끢q9clkpx:.4FEi 6<%pmV _4xVi<=g \ualNx&aaROR vI(zکYyL K pR%ό׏-WD;l(o?4->lgH<0((dĤ&ˉw68\rlh]mni9F^5zxPWcN9b$=^OCK_~s8鬟Ixc`0o֞J[2誓VR/]FU45<.mA+0r:T2cq{Spdߠ*wmؤntmzl1YFpY.p쐤|5d4Zh&=,떡/YW6n̨6VN<`Ie(DDj BV'!OLV>h&Buߣ|s1cK[I$MIctnʈ "K ;, ?"˅"GJ0/mI - 9|r NrH'+?^[L٤"f+z y6 4Hys[/y5Dzi ɨ'_+aʛYAwh%gY|[-1j`t阔3#:MZd嬕Ъqd㛛Ï7×2tvu5h&>޳&:,?W~Gϖ@w $pW/C -OF&6Bըt-5\.ݳŒO79v~r/ת TaTEU Wڮz+KV@R[sT'qUpZ#&CP -Az֛ɼ׿4 >VIvv.HTsX5Be[5q}(;zh"ᲚtTlhA4 KV%<(?*Pk.crgy'76] {Ҽθ8Mo d5&4u{,m-%[hjl\ l kwi N58:~6qA/I0V$́{Ҙ^Y`\/ 7g4 YIr&ǸvgsH Ml<G-TfgHrM8KzNogǼՑkɉ4*z҄.EVwX ޾˶v'oUӊ8ʌ{ k5%,ܲLbLǬqM螈T5S]khcӳ\Tspxd/P_J#=^&3ӦNdQGG_VDzCK3T0 ǡhF2 N 1bۛ73N ۦ O-jH=WKYW+d DA5f'sLvલztn2E lmdb <k}.C{ja-$Yb [ `Qr# |wۍww33@enqH<%>p&1d,-~})`qn8[09NA$CŭOڻWR?򤶚BA#=2sA-Rݛe:sU9|H%3zd`y% >gtFBZԨi="ES4uz:&bqF_MY1=`7Wu'\'X*Y}_/O=%!CI pXlqC:1d)@}n0ŸZrnbg4e|҈WDN%I?$5iW֪۹$[bX7,:E C.;WAHJUS, L,gqp!q}r"krW oޱ5EPYƸ{ɸ-y[u4JB"(zBT'KwSQ9|ճ1>?;_uYޝeǁ?D?βr" ~|~At2ˋGv0fHE #P128>?3&r*#UBn^ 5'?>^^\fcm [WCUXV4rxmkj>ci(K:s ;B!Ix UWUeP69R|C^q[u>~.D"-NoH?\_vMHNjx8ݵȺamOƉ;G SY "l{4ly$X=8%$MgJ@7n?:<C\h_ߡG_\Ķox9ݐ:hS?jDG:nCJ"@v^&}s铣t쾛^YFyfz) $$F=>K;nAGUF/\h:k+VbQ9>l1 ZYs{䕊˴#wILZTN)վ1!8ޟ.i";4ioK*?;#`ΛŖAwsQj.&&*l'%Cpq~Z ѷ3wŎ6F+m we#O _4M^YQ؉j-D58bT@~It ϋ^HXw2l9^0a!3*_I={z4xeLd뻣c+ec"&\5Ų6d%"QtfYŘ4;-eN9:E =xUX}Hf1/ 8pthpGU f8W6 iAZ"%' UyHq\]Vu7:< N ZsfDiE/ O.5En~XjL0ïyz6+Cg!7'F*F{#\*odJ NkGfe&4'm$P۫0: &Fu% hFI=qXŰ1YtH̝\Zo4[+e>H82c]{%?M:X K50_|ym+(B 2Wrh쯦u2:ɿџ_\"u^E6r=7fh:/=-$+/U-Ív?%%?EE3۷MWmKi$2W:b/|t.Xo$Z4'8 Xth PgxV;xt_QJe4{O^mwvp^M&` &+?YgͿ\7٨,XypoݎJ6 mn,.ooWiZ ȺI4EILx I-f9om#-&x.>.zpC<E\]OWu^ԅz3>bŊeyɷ,ټ?8Ϣ9G_+p(s)cG_HoKjTǖVuҳa'$ƱesgiO0ʓp ܤ )(heIX'ᕅ)OKO h X,ȶ,1[f伪2I ˶~!̉D4^\z$d\'6\xGϞp/HHY2)RQ!ObPO}1 {/C࠵*gd:R5cw 6㱹]$-iPCt9Kf~SֲG:ZqA'/B3-Иix%'Ry) \qEٰLuyS=VfK]-k~ aHbD_'w>6q%iv?a7vji촒td],m`>WͲL 4H'yűj 4rE.UhG,\8ͣDxCP=Qھ 2(sfAT:ziT,6Sz/uL?k"bZmQSn6=9qqþ{~qɮ]qS1 >4Oan5I2%*U.V{`3bΏoD< oб ~Bw븩"z(AA:r@ÆL2cװV+Uxt!(zd/?pg{tMԒKCI8 8L-0ӎ>3_ HMQHr2g6yQRt*Y0,O;x$V&ŗ8 a'fx7HbW95*j|4!|<;a`Jan*(N2 Ո/k#8gE?隇eD-[m+xE7a;)g68/ma4@gi)Ȩ-(i 67Ig~#ւOڇ& o A-<(Ruln%B O2`Ll!þH8/=7>Fdזvw8r\#q\V&5c$gꊘxM`uuD ؝ 8J; 1_7D? WӣԸzм󎣉9'Ę 7{]~)L:72yكKg#rBPf ]$J<',W9X5<tT` "<9 L1܇OZj0nRy(~f:N`mq4n//IhK*r 0O,1樾YmY2mx;X7=%k7tM ,B<>9-1\$#x;F\j s\x_SX!FwS!<5jr~ M$ۢn!$vD(ыnv8%MkR\F 9@n?ǩ4~P:g7|.K@D#rfu̡ǻNOD< S7i?d!_U t0&~}I,dB<셅yAn5p#+>i~L|閏5y狷|N:uچ[u8'm;131E,matBtwf85p84Dž6e鐯.z'uUQ0o\: hqdS-5S,+Ǡyxyϊ5LďYB6ޔ r[)oeunF^,>Bܳ#QGO<J&ONKqSG.hc!V<퉜0-r0؛ԕHRr oUV$ᰬBuL31r jXQ%RIasIƅhJtXF7QBXĿV֟A!o}~09 T)*K%T,r ~E>^?rB&e63NC>H.`YF(ПKԀ9 m,Г9a’Hr$\fg!T'(_oI"NʁhS Ӳ*<е=yl y7NV}7!U-,W'G?y0WvyZz#LcsŊC@*^?:zVqΒ{׿ 㮅~G\q-dRÝFiMmmAh?ѳ-0DlYߓ>ۂCЖlQ9zL`x4 5!rXT 㢚JS1j;BTW8ly_y"~fu ݼd'hRB58wVA]PgZEa.6$% }NUtG鞮8p~0޽u.C4c[6ѭRZF}THF<}ITh\"!?X8ըK[˪ R CslLHpAy>^9>nCOoPd5m+*%ck0ӹc⢪ ݢaM}߽k ہUVq aAct:eҥ78?ݝd'.+L3k0oR:H[OC*`tp!E sQIC/.FqO5Ð$j܁0DcæDF{4v\2%$>"름Zn1_k7p8}gO$;]D ڴﵔ7ͺ˲Ej*.T#®\Aiԡ.,O>,Gc1"Rr ߩ.게4һ:Iy֓ V"8K _dӁY~Q_ql7oSN5øOE$cS.%zn462Kqò.VC|tYG'Ouou1?rr-z EɃ[ȎW(Y };4$:,|uywO _'su*騕uL$99ҳ]ό\~WT^_jum*F\1gzn\EUNTR4Nt@@G.j±S@Lۼ zZ$۶rjA[N2'|}!gw!ENJ{C,$@r aUh)ٙ40Q*E=x2 O MB$]zC!]byV.o_y&DU}E_%zE#Š^-wwQc}I4 WguR@\ ܸk[w~~1dY]f!{,KaJ:\'lPl'sCn⛛71}6<4[rbK؊uNLJ2 멵~X甅H:sVBj'*00H- nfIX iePG0ջfye vtܛ~9/+ M[Q6Jy2d}`7LOL3=5-86Pjn[\@x({A*QMlU]iѠh)dKn! *-@)!/eT &WD5]?'9*|Vp@AxÃ,3ȑ wN+;?X{Q=~^^Q :ǴNzLabr7aK_5Q? Vv+@b[TL"B]>x5N6 jΒ {a>Ghe}|9&]j ϋHD:$,?0|2w#azaiNW LwϐaܘA]}uvmBPB/񣞏o2Bd!_R j5$]|w=X\ށwNoq փ}5[4@e0H@Jb4Wu${n)SNFW>)H˒{s>߃~׈J>tsLS((Hs!LI⑦çHNoXR_)wc|/ Ni4Û |ww^ֹox|;˜cLyʘ`z@-X JJ\ij,#FMneIۘdK@v+{W&=CӇѭa|d.;OBFM83L麱OCwk1S1-W\J4I&wB'I ~#6J ܄K}& g0}` +nMMnO{Y9#%Xf+/m :wʾfqj"\@^TڛGՀQ8qL7Etݵ 6PŰe9Xď7.>44X (gn9QJYtd?`0$uẍ(r\ W*"{RJ_^d ڱAMzW1'+%Rr_jUæ:?cize5W)A+h wʦ?B*1E=R^"d@ޭĨAd-<Txڳav\0F:'ِ/6gj=ڤ G&I JMJY=jQiiۅUU=rsf8\G WVE6ob\\W8usNY\®Fi]H s)+ZW8:>ЧmUuqJ:]%{1_{efZɰgi/vp\APEx\dYC IH{/:>sO^x" ϑ@QXvF=Niu`J^- c7\ì ?$\[d"(ѐ]& Ԡ>G*.}-h98øO¤dQ=K*P{2K@ &ݨ' =W7w7Z0]\}7TzO>$&( F1fdtW aytQq˔=r_dEyg>57;{zjL݆ݥj!"RX [JERcc(ఀ4J>8\rU- G;pwYb]dK,o@+ƺpcS纘{5qR Wx=J01:.вp2( 8+DNrI07D ,Y9>[˞w?kQ萖:ˆaO Ъ.ƒ@ (ҽ tլL ul9s/6me|Q[ ޾+;z0tء hW{ta׻i :vMrAuqpuhuyehqKKsއ%rMsot۫G"ѰQNzfPf{s첚b"b0*}zCzJ/j =ץ><۩{\d55KP:9K /~.E#Z k&`1DoU#7^ -}~e8ERq=KP $X:_=:Ր2QQfiBC oYSM,ﮎbt[Fϧ5bj?"OЙDYn,[l_Bx\i,_W>Wps75LpXo} ifZF]hq~H=/ Bf_y|oJsù$‰gNaS앪1u >sqa HsټjGᶢ_a ۹]am2ڄU%5׆i>5܂3Fu\?y.!@r'wuZm[!m3+(7s Uvm2Yc'=+e3`8,9Ǹ.YO )?^IIMQ0m̝zyrQ}46q!69/ 3J1~+eTKG4jǝ5z |pdJ>WWXsR-Q? I\Np8*w{XNap ge"dq]Oo/;T+@5X"aC4&ySWT7'u +3Lˀhru}ĥ$ʉޥw'QQ8._fтGѬK4qe]_^$2< "wJk wJ`̈́h҉Yo'GϞgu:pwmB? 0t ]#\фS0XM^XNEt%x|,~顩aNAahZΖ(OUqfh縦+wqe&evf/!{rOVtYL}-eʒ p@mO6$Jb/=stѸĠcg'Gw2/Ii@5SOtNE 'l;6{H07fBb-M&SH߼{.Yu>5`kO}pNIu>+餙bZѴ4.UBw3݆lIf*t>rqaLTWFS[d}6VC2:gC=̫yxϽ9%ZHG=a-B1zqn7 執AnGXj nbuo)Ј}x ,N4~8Xh1nn(H D5ɒe\a_Yo|H@} 1>d裬/ya0wE{ vWD p[!ٿR-1PԊ3N8l)lA9?'@ N%Ĕ 5PUv)kj(2:)P2D~Z1dzƴ $SCū:9?9ҕ f "Qݶzk|ϪBݟ3? 8` jS01?7ƧM! ZP `SStY5!C362*? gϩNE{Y(B>(@4dKCNP ;4&, E;{BUE/;ZP/| aN'0:5j=r)@5Ua"i,*)d=]4J6o15^9t"iyr)sRcz {DkM*mqeVO2grGJVUbz@tbI[@xANi㦍'hL,¿.B ܄ pEAg :~#Fl2W,*cҽ_&JCʹ8aSt$_G)IEUTJrrQ1z*k}˻v"TtPD5nDj?ϲdQ( 6ċH|ZEV=2 Cܕ mb^KX)k=o]4J1aqFuނ6҇=**Ԫ~]Ơ]'TsބhI(CQYV=kt)n던 g="k ?=Xp&;B @{͇Ʃy: ~юuA/?+/V$kIԾ=k|mLjת y5nM{xp>"A[Gȶ\FbCl`Bw3|WS1rɚW1xtrm@&{փk${y/J ͠vЋBD S4tLQȪb,=t570sCu.Ņ)]\f a0G3.Z, 7s%Bq=;/r;ZLqAd~[?|+oګܠ=-u߆22+ǽ1?o%}<3]fOr tm\inGMIʎѼ}tkꟺG]tQkFu\"v_$`^2Ha{օ"tި߬a)J2s- T~/؈P9BS`;DtVa IE\mͨ sXeE[ ?KN k/x-|6|yfmcw6e#ak{(+|~D鴜'Yh Bo5Wro5;(Az-26/Ot|"&SKAQy8]v_Ge lY[}<ވLɋ>ݤn9Jy[.sxvxh C0xչ秃 à<*=6pR. }[-8ԅz<=bY"ޯе  ;UMq|`Z 1bU٣7vgK{fMW17BA-rF9PWA {ʡ 8i$3vjxA? 8E+pyΖi~֛e7&\ڏu(16 ! N4T4q7i+wT)ъ/#堁 Du5lA{%oVQnJD::VRa,WݪH3⽾|%J!Ij.L1`{6tn[eLn2f߶wAe+v?qr1ùO\^9d;˞Ox-R͑q+? -0dq pY=>5Ά-]4gIHfz"]\Ghex SR?{` 0vYڮ9GK[O7&RŠіi]j/:ytg49'" R*bLɕJZO;=җi- OGT,IZƧ6Dt֣ؔRIx_Fѭζd.T qg-3Wҫ^|Em0i ^h=%^E)ZT0,'IuToY?jU\ 3m-dmgE]XRUƶUTZO0Dk&ua2{^w`Lܤ@uZU\v,+h]G@v\ݿf27&N1[R[c O+׀ki<&PO|JG&k8ٓOM[f؄;xĐM)Il (FC澶-NpTx82؛2xb\EuV")3c&a5hy N%I l2.ٖg@j/庆J?GTu7osIFV7b<3,2^! t+UbxQx=rZi]7Re9sNw}1< mˋaR-ۜo/xǼZ&nbpQȭv(:XaZ>fx+X7loH2 rZ4r,%|5MULK=ܼ=Ϗ7Y$"+!tN@@'`?;?9YlG$ 7To~{y(uǔ+DK; Hca&P܅JmX&gqSF1qoGY1+כ%/^{y13gUߖo5٬Ю|mlFmBlT MLs TbL ?lЅ )%/Zbɪ-*MZZFO_mI3{uV.UAuʺQp௼ѝۛsʹT#m͋(|jr DeE2h-ɛ6di!3Тm6KMHsQ)L c߄EA2d>}ەGDUyQѨ@Fmv6J7] +s'͢ Hxƨ` rh3T~ޤs" A|ޢ╦!8 kne?lU~KVɥNM!Oq# CgXDEuoRR4Z<t*`Ǥ>4uЂtS&$.NR2 VDMe [rY'lSIr¿ۭ}أZs<\~ C8sq?zQN^YVOCY tzbH3 KkNVs7[DOdQ|1`ˀj@;>(l*W8|&ԟ}q>>`6b5j:pgfۃtAڹ ،{o@9tb6݃]f}5i1KLov#M 1;.^H?V>ϗ'''&^&=xMOٷ=w9݃ǷO_;9'Op28?F`/;8M0XM{u^|)]Zޚ9TV_DL8o1Lj\G9GλlѼߣ|&0q)v~ҟij`&!'[CZ2ݝb՜t/BM6v'}-R{01\~EQ8q,B%߱ 3=WY^"j" at^`",)%[z%,ro BF)Aa^,L6LBgY,뺹 E{*>T̳4p8XGޤIVdH;eBסHa('aB<^$XSV, @?ޫlWBFd*F9+Px{c94Ĩyl~d%Z6I-U*EvX]kJ$lޣpy2Z¯||Ɠg=,;QC9#l h<] f% sД̸1F"1(Ԅ"ɅFlBpŝn>"MnzSsgCf9hFܭWy"N:IY =h^s^_0j Vg__p(iQ!EYBՠDMj&))(mg.;8:*)"t{*mJ Z&f`B>XD}[wC&qT!mX"ƍ)w!Pu:$`N Zk$; EmXn_n퇹9&yl&6sV>eEPx{N`YjC7 Faep{ l],i5w PԢx%m83O }~n]̎d!Nˈ$e'._(GɊM0 -a3fKػeӡCѪ+łBX,,)km˦(ֲ(PWԹ@0xG[MCGd˜+*sFul7(6A$^ ' 80'H"Ւ ٔ^E^ J3]q*<"pC%}ېw.L,g2U4}=ܕ(q-{ncj->r,A *F'e&wHc(IbLwMkN?0* 6r^a՞SD뤼RF22)RP3?HVNݎTMr7Oା(<}l^rL@+ v=Wp'F nuh2ؿ,\fW 0+đ:Aܺ*|^ܺu摽L(RH}1qfU@u(c*vuaf.Sqi2%AWVT]sN,!>ibxA<GxM #4A2~}r٧., -fH-@HpZkļaz-W>;.[^?9_2Py"ۨ+0dm.L#&wfc?ģ#wx1],tY+2b9r%:Ɇ4"^c_L% a=g$2*I(۞&uJfk5T ̛0niĊ8$U*뫷\0GL8yf%rq܀ǎ1,䒄tj?@ *h8*=TL?qs%_.@ o} sC|x¸"%5΋PW5(MSlV?<Oe+!,nȊ:áJ$s2;&6 veNsRY@'yvY\ނpHp`;Gx3)}wdIi^YygUeyV[F/jg/RԔ/>;EIR$IϣY@ħ.]|mOCI~Z,y~D7_X(M߫pe8.xI?iW S3kndхs+0wbwS>H{-m0N/3DH>G:3ZlBu`.i һ וD$o9vIgF3x }hηQ&}չF`*]ES/[ pD`2m4flL=8Xd×#hn:Kߪ[[Ro񨞅K`(D ϸt^M)"R_S7{Sg }pk֐?;:Rp6G\Sdn1,p!#7t ŋ9US[ˉqT>:)5orUj"0 YG~,=t=L׍|YyEUc-)\8|t>|#Xm^qjr|ǏZ#oiT3NGquWkqX"m$/BU*R|zΛ՝f[E/IKVӭ S IE)-YL~esabWyPkZ֥mx^96U%=Uu`lu?l8n hTUŮ;.s K€t`E3l (|݁O | N2Iȸ!_pYxm%8tׯ>g5Ɂ}r2:1%VrSl%e}֓fB83Go_ ʗEu8 a T)ʋF>٭'`5a2~FA+a> k K_nx0lwy*˱_@BVZ^ x:=7QOMds#Î6 gbCu"8Gj&.*FdLgL:%59ƕD/:SwEĶ*uJy虦~wgtxj߭6<ʠ p&_]K[i^`mm4؍zqMpų8 K; V٣cfvK ӧtn6 Y'͍umǼ_݁Nό* lT';mR1C7ZJNryq|ˣM4֓S2vywZ= )<]/I3sVɶ 9o'q-2Q ICwρSC5' S焵'̍ړ4GiUiÐ= BB߇BVؿls\N&5 Qa[#e;_6djzl}v]]Qʁ"az|gR'k/է$WH|a}Ą X~_Nװx8iYVGYnZUo\Mt&DEg;.S_ N-L.`1)AցU1PI󇜶.S[W>Vyesa%@ۍJ皦۟tS|r/IrCdUE4U}jkشO@;+Lro391&f*6zb?jh'hk%"\4t[\9۹]Kwب}F-H>PK M&  < freebsd-ports-f3898d455ba0805a989bc595194264de0b322927/LEGALUT7Y[۸~~]`$ǙM'}(n%%b, IV;ն<58><<2?;-Uc)Z/\'7 //^,͟mt,e//ݲ46y^o+?B02 V)m %~HEv,k0VJ;VNeՕV\H+˥R3ۚXHڱT%ß yؗL,&sJB34>Y v:F[/Nd`kx>DA0e ]u,zܰTFno1j=K$ yMki+HΙEZΉkJA*_$eIZdʐ GY6G2ĬE'ռW>XbXc0 ڔ&A7rw.l+sq1 s}n6-KR!&j]L6>via(jg?( %*YRÈ4:d#-%+q-qϥv >?KFL!8c^t &"<^i7֏S3j;+[bM\$~gW!.^4.9 'JC昝As8 uTq*XA@F$u $ Qvek81*GJ*:GE#ɽCv, Ï ߚ%~<\ƢD&òO"J%a^@XU n«S1*yoû3(έGN[=j1x^|7dyoBná;}Ps aKI,ϻi-Oa B/rdԡI~}@7ȥLY-_iURCg)k 8Ŀ7\ :! $9b 8(gD/%3/;X,jP >mТg:y8R3A/\CIMN3jŭ~PWq`@;Œ#7=÷XiO*u>nUa@Up[A><4y.-v\ƹ຅R G}5GH$}KnY ۔u-EVD\ZfeQ1ފQ9<2=nldGi9+Tb#$=7*^M-6\@ǯgtL=ʋTޤSl=U8hm#{rFB:;G0ެc튐=18Zj6^2qFͺ2>Bݙ0.VYh{^cO{OU }ږu}I<\{!l2P~_t/k$W5,yxM 4J I"O nĂk%i[8V:mr/TيX Ef4Li|a_ Bj0k)eXU,/DڏS}2s>.!8,zn5҇ иu8;DVqoDG=PK M&}WTń? freebsd-ports-f3898d455ba0805a989bc595194264de0b322927/MakefileUT7Uao6l+ Im]A͇,A桠̙T=ʎG9uAKh}83MQz}G+wQt0nEcÜu y.x:*nfaX,L0 LmĚ;>9EĘ W6P%\5 40ax5YW|g'`Lr]B6B7 qC6%l]#Zb*.UC[+,fs#\xNv᥽:s)C]Eu(d5''j7Qj re)gIzrغӌ39ގmTqsa5{EBx׏ZFAx̦%Ghzb$R‚ $쑗73bpŗCVz8s),aZ! lYԛgl NW%[b%t3cY^ّ^LL9iOs& fnwá~/~x㇣:-$b/rz5{3Zp3EX@΅A (MNPӣsIF> ᇶT1%([Dž b@+D=es1!Dz2) iq}V[)`5%b1BǦ4q˴}[1 $}S4~F70l%p:2uË!0PХc69¼®WqYYz7ߴ|zzQab~?QX _t ɟ=Qp^5n7LM(yrg<F *d=OFa̔>|6Л 8 "Ll* 0KXZЈfˀdQ0: EcޞP#Xiw#w9#~ 8.騁ll C08I]{?s[@(+rRpF!YpF@ )< 6)lSppvl u I9`~̜EhiĚ$'D_azQ/`N5prh&mHCZ2Xbj>Yo#jB O,Y^!Hǻm0+)H ?BgA$,{F:w !  mw0$>jdXxHRb8MGY1 j{_HNy"PwNdevxw뤽-b,rj!W根 ġI prq0$mmkav C}rG0x;m]34bX?Q1/"&h^j^6t@ C@"ʒ34z|~' :%4#Oi<0ȖvD6rG$(c6g<> 3#П91`3NϢe<8Y$Q an!s2mh9 eW^Z3rIou7:7Og.0!{cAWɢ 41<7dxk݇rO#<.*JHA N="jv.ȭ e%Q`~u8kdȦ ?[b4zH:@QQ꺆r 6H0.j 5FGiNыxd٫m%Ti9a"0-ĥIs7F];ԉ`0~#Dž5`Ό'">Xp!6Հ&s5;m$Q]bQؗS'N/^m j7ʯHBQPA!Ѹ7f Ά糏U#G񘹃]fvD!хnly_視!C ~XAz$]8VtJ@l @NPifiyhZE*f lta#sH|9ʬP=m!i"$ 07F`G1˺Y@:Hw&xGg7Rz6a˜i66x4 OHtthsXpWO.8g&*A1[aR"T+.Z+f'm^Fprx@>BkUEIa(#4SV{JX,Klv4QFDlfVXmVit9P?o\4fRH ?ЇTZOOk-(w' 6| dܸ+ <qQ3@"-:wW4#q@7X1yalŬ2Vn)=V6]cG'X#IX9x,r[=A,I!hp`@&G%MۯLY7?*Lr1\@DAEJM+v@ƃG,sq:3 ^'+D h謝k!IUK\MCbf0F$ j\Djd4H4v> --D4[7UEoJ2ӈCǽa҅u Ǫ1vYzj!l6p n`62g2m8<`@E4f-Ǯ a al,x,Fz"d1n,4}>5Y6C`x1ՍώHDCW9f'V#;V[m!+)@Eu{Kn1R0FJUI8MH)l Zw(z 7UyKٝO1bɫnkdr9+a Ȧu1`qsxӨS9ٜ*cmf ;P)Iʾ\,L.BI򍂴W!ȳdKߌPfsI؜U7 r5u+Pȷ;nD" jwzδq26COc!}BѻQsX&)ٵZaY / qXxD~ҶML 刴Fgku#9fY^ѱ01ieHd H4pxs X6P~aE{1$uHW:%F6 <>pЕ ͫht=y4&J?t[i`^x.M'&QLI0iJD(o!ԗ1)ՔG =G{Hz( _B׶a:v:%"NC݌K!m? o.fNRCbl{i8z. lK"K y4 6nuô9B [^lp÷q*L-,>fqv^e&Kjz0au|ivAdžv>&6T|R_2 jpjFvJO%go%5&4V͑dڱV'Np穓tb-uu,}ā=jylW"o ieb1 4b ({c@pʊn[Ve ZF'M=!bi:7wa+QEA4ԅc&9-&5RM)t V` X^-@0\[:&nwVe/ Q5gk6"OޗeƐqI<<#^OG#T"& u9Z /?dЬQAE}?Ц5+l/EO c^,hj+66ɨ"-h<Ǧ=d<⟓aȀ !׮8ɸb`g\E㟥=6@ sTw2bFxma&ʳPGxx3f1acO;Y0'x>ݐ)ܛNl@A']EQǼaUOxvJںuҘxݢ2`=:'3 ougR5^Ƥ*zR,|A]崯W0`jQG!+S7~mrb&_E > o/T.x.bx)䄅yhSWj5JbZ#yw N]IښmZ~p+T _ic-]–?'HSD͎%h.R;nSl †r&cV5hlS>++5[3<).c'%;~ia(O(Sf.TW꟥b ;<"f@dvhHA$1Q928' :FL q!_z0& dg(Z wcuK#* cb8ΣԺ,V $D [7Z N*NQbZ**l2]:CAO 1 0VR _btG-B0#>nTQPG3zVO3 H74|8}1ڌ  ⎥MLFNpXԐ@5x^ HѦX9<cc;1ѩd܀wqy<+80NJp͓6p)YLG -9iEB8(3 OX LcRaw'ڳe chig/dY|8ނ3;n1ԡYGZ=!b4(3N.NS '"mr3{fmN,o[gG B:lll|y3IU F4si,]$u9q~zUa !եEg7jU9:FUtsҪ=W ȱ${c q{g=hUpnALhB.HY2̚Y?E'~ :&VA6 FV5'-><7$饄`<4jL)Yk*| [*%kU؍)ԀF?X2:DM9z5/O#G60mfRkO\it#.@ ?SQ! 4d_6Z+Ji]mHV޳j+v^>D "|Qq3hxf4U@oDWi@.^fz{fg^AXǏ Yl6a}Ev! H0ef%{IJͤ" D>Liܬ͖:Χ ,*lJX8lnsk`cۛ;{%\=oLٟEȄ%Cқ]/5G$ѓ|vt~f0۳sBB ֹZzNʣigЪ}2+to(Uܟ:GVL&H![Rh}Gh3[>;2s' q-6f^7_4piy%ʂ:kn& I謹~ӾE[DDŽb(q> Wr_-CKV{@u{W5YRʃg%%,觭r+wgen-wpyos pu e·*iD\QxbwyGXzQފ^s zrX\Mҍby]HTeLԒ|IgN>xG!TErb۝9 &qX/Ѝ%;Xō1=5/6|_I'oeg5GSt{amuQ7VG"kѾ h OU ~9-U}$ZE{g`iՏZ{Gƙ: @O:}PJj'3OI-svNKX~WE^N/Vq2hzPӬE#%0Lg<+"ԄNASъT9~\LM#7Q+&{YdA:<9jivW Zøۢf5ӆZ "Uj3AUğ<'줒XO^LBKR.<8d8OԌ|=SheeыcvC}]擆Y#6,JkHO@ԈK~ 8?E)EI͠{PkxY#*һnB,\Z2E0x kNnU,iX*eͽ6Cbkk`24֟ƃ&WhM=.]M`7T\-As.Ioy|v[g2P5XP𞶅GY5-q.LuF@DΠcY0M-dW crJUT{b ͗uxjMzDc3-PUEg [oUQpAyS-GȥVTYN˺ U {'ԡgmr$ < Q!#)5ÊbJ.[8@_(=ٶQT̼ONrr'~Y!WB3˽܂E^C,KeX~u +68ԍ@BI,P[<_ >͂lUh X&̳3&)BYJ]ޅ> M8DNKWrp\nEap>1,5Y\N}pW_sKn8eayL/({q<t/Xo]Um )Os6m7&wߦq6@y:aڅOKն*\ ]تU2لiV?KC_AڕC`skN}.DiQp5#lhM)e,飝Lߖ?@%-vz]0ћ`g: hl)9N¨t}p*7=ƯUtU27&8(k%A4KBk/-2:=8 ic;ey` #yܶ£GB݂ kvVt閖r 󛪲4NI|*=t#lf~Bw6ZR< +%Coo"G]\K0~[pÐ`-b~sY[DSm+b1OuzUN\ZCï//Iݮ,a^c_y?;_U^R5L.gE߷{퓶}J5z hMu z٘s8R;\Y3}T4()_;4CO#jL:fL5+,,nm3}bT/jLkn+[U/T;@a3D vp5 F[V0_[#CHE89E8ZϾEjbƖQ#J2onn؆xAJo{Y3[]Ulzʜ͟^yB{x}Yjh%q.lٴI|^¼ud'5Tϙg<ؾy?IkuO !dvUy} `: omo#w E(|SqYmoUio04w`kh'K Nj)[%A ,>G\Gh|U`fp^:)y.c{q5we6Om:&2 Fr0ow::&*/55 70 ~6}H -@-R )D8ʫKּw^m9` (ΛQJ Ӫvbi^O|Hr^D zd|,܏{-]7>^֣GsQQrf\&tԜ6&i=}y3D魣wdpb ,ӓ0dy KFI7 yÓDP-G[px,&):TV@ҀiHsKqګ.BNމ 3dAl:ղYƼPRg~G^m6`F(=uߩX뵙dx[i e  񢊘l2d\ҫwEk8tq(~zLȞ0KSpǣ)߱F<6^&h.K5'7)H`|{i MxTYY1 dQk+vr袢;7: ܑdlH7]ךySwnq3MT.ߛ7!0-Xg!d؛v3>v\^!] U2_G]$fk't.M +49WgF"nWDY`9Zz4}mw@Q/2Hx=&az~|3Ox~ޡ!̀ߡw%mgZrw`IH19H~@5^քL'cO7z''wg8kkUqmHfټ7„;`vdÖ|p`(_]iN%q})$acq~=ZzQ6mf}a<^ЕMI8s([1Me)^s'݆6z:qn^pr(7(;6fє%f^h#rV5{:(̹| @޾5,H™UtT`}+@[P%\n+aiAyKo1 |5î_wޞ*cksĻӹ`2 @w^(w$m,(wō@,QxQp@Q~qk]"[f7.2SlV:Djy ]j)!5;5 wxY0&S8Tv3$6c/p$Lv=hkl*ZUHI -IsMsCQUy4QcfWf3YN}Hq-(zᎷɘ۬q{/Wk'?ϜsNW{%/TiA a]HI\+:8v;ƒg?Н۞MH͜sZZ?9U+Pr^=x<1>[F5>{fJIS筽[ hmy@gW(yܾUMl~gJ!EZ񰰮aq[ *9Kx e,TxԷ_|_-)סԥx?W?'RVѥKB8܇0Sg|u-fDaDP ;Nc 1֓`= C! 32Àb>g2WpkZL${QAnD 4|w"#ꜙɒ!]/`.¤s$]+J.xޛ\Yz,\x\xr{/1nxc%q5}e%Ln& sHצRm87D2]JEhlBj@t;?wNL6\+Y||r!J -:5 j.z՚U=5[]Dz p}Zp1{x3S].K])m2:e68VN/cn̡b4 A}?ݷ7‘{eRj>c \8{wJt)tt:!pK@.70+*tq]לEgLO'_>/O{sckRI* zE NEL޷Y={0w~5-ąkIV_Lw^n!q3#'9P.Ľ='2Q@ѥO3Bl׃Ix0F:`>H&|tX^}p?{s͹Y+^qlն*VbArB"i'-Ռ޴"$7a esnGC wm'>Y67.1^f T^ԼͰ Ü"4o.RnwBPaqi%=r }9 6,TϾʱ.\_8i`?o}̃f\'wb mU܄9$mY̢oAƬpz T"oݞS:1yGh7f+4hjUz=Нq.,ǔ gɡ& 4Rt0MkK{7ԄCr.+6+TbPr( 'E'O6ʠ~7%cKY@Ql$>Ov?S'@ >\@(f>Z@ 'y'mIg24Nxl$ȺWS|nZ!oʹ$*oڲMP.%;M\i/rCHw}COѡk:`&ђO*N!.-Jt%Q+-'n(?dٜ_H_999N z5Tb/.B*U{e5U0GF ᯼pԚ䇦[G#rMya?"^j>^y 0Hhq/`eg&, :r/Ё?~0c։"NA< Sr|e+Uv2¡6UT 8WP¶iTow-긽Q)A(n]{gٴHH]=\~wظ]ƴ6! ׿т^Y׈T' ("8KE$Dpv*w(]pVVلd:m1y:0DBNs4bX -hqNMLyܑDk8^XE|Bܗ)OٚDʤ< ʳż }`h| a-їƿ4nCP)ceӧ0|G<{v R:cFu]u]E3 Cǂ~ah+Sp8揔CWw%$5鸊s˅0zzR/W`WDlUH87ѽ.POL\,k:gzxf|DClV根YڳoxUstМ$^}7qpn (Ō]k⤂!Bg%xQv$xE2,3TiK&!Lƙ%-_ 31Q^!hiVÚƥsT HÇrfej`菌y f, ӛy7tCS.OC0ܐ>.Tdp<%G>Y2ʲl_9iQT*`^m^UWq oboxVMz|(CY_ii7Gřd\O_%x1phǔ//m%^ 4DaBM #)v{vܕ%A1EkȯsS277EnQsPӧ]CgZsq (J'†JpLeN\Ȣھg(T+=Z._-]1Whaܯ]^{zߧmv]/=ZiU{ۗhjc-?Tepj5H֕Q\tW&JsT*aV(:4[nsA  7Q a>@䂡fdᘛ&xSÅ'y%H|P.sr,d[aP"%s&:eqð:MJ|> ibl]i^eI$x+q/Fa*JjSدLe1QsWUQ*.hm=&C+<_ "] BQ,WV}!i^!ЍR߆=BR6w bڪZ#X^lC9`s;\h),x)RQ/I"csS ;~°3Ⱒ9M2#nP$`8< F]X,/]D$3QXa)zX+Jϯ93N8hV_U"*\3 z8=J&FNՓ{JkxQdSG4tҍ>:PtUL;3=`?AjI&.Lg}UTå\O+WT曛͟;g^#:KOub{\kqm.?*;9T'שb`vI(szq~.,_ Q\i>^_';2eu܅fnE*{}ҦU2[! ~p'`1uJd "xFśIXW E5O}#IO?%#]ᰪVmCoL5hut͹q0n rh<g>6z?U87%=&Y:0*˺yyߞAHU _ <eJܳKi`piF;Y"fT!9FnU=<)dnJr/IJYK6 o\_r759^K+v6T4Э6QAKqeV곋oibBqUtwftJY{%&w(k1G6l?ctrvO_gU`U?}0OemvO)lJo"+qxό?yͮ{~s+U vtVCqʺ)uб]'W]g]+`OA@؂Q_qB#X9}Փo301}-x9H-ݘQ/@Eۇꞽheml#ʏ-jV%fQIM泐g%8>ZG] 8]YWIKW}GfNwg"(\oБf開~%4ќ6 `v>!rrXHPJ`(;([>۶t/ r}\W3;[Gî:3׵.}eqp76DYbFm.?֗ǂº,.t4to7/QelyYe4lv-:e+Lda(kԬ%5([G!Y!ˣGZѿ8{A߽6_޶~}ܢOz_Wޭ`@yZ}R!Nv/!0l0o$o4.X0^*Jb׉ٴݯts#O迣vXF{1۩EԘrbrԘtELY*X񋿃pV:NJ;-*T??sF}\Y0m|nt sULcMA'#PLC MRNN!'#ۆ:ҁ$z()$d6%3včV;ˢ>$6 Dw W9xoBƯV$O. T!{zߌf=_ ќ.]yU5yQ& P쎸 3kI H #9Wƌ HE &bB#o]&ɹh1Rf5׃ wݩ)Ʒ$(R\~vVvx !}_e[Z[p|>zeͻA%2j{\AO@YԲ•AwNJ n(X`AxG1X?C%!mVj mFOYrI(N6M+f>8[A_M蕘7p|Z]ȼD99GZŸ۱NĹ#\kXpl3B> tѡkߝ"s/Q V6FEDQ𫐼v^mHHII/Hh@qRȑtķ>ڋ.)u(N~g-oZ@uh74b)  >i]r?<{NͻgFԹ癣Z~EPm}#WȚ Tժ?Wgkk^K%jK+NW/L6h___|Qg V|S@Xм7g#\=Jk x$de *!6!H)=rpȨ QwѢH?T)49"Igq1ǿ+IG:򧇱!CpZySԤ1e)0Z"(hgtگzMZ/zUqx+tun8{er0'{U&ś+[NsTeơi먄bu4Zݯa-Q gRK[`.p)QᓢnڌSdAooǹ{s0as(`ǎʪW7 3ETe"popX|3s@\^khϚ~{V),+.<Ty & Kx7(̆i7I4.G`Pn{A;r}QPO"'Q2"Y<E(7螡t"hB: 3_=iJVYu4P18W_kzj|Ky7F:,2fPK M&?j|J freebsd-ports-f3898d455ba0805a989bc595194264de0b322927/Mk/bsd.port.post.mkUT7STLRH*N+/*%z:e z @``jedhedXZQmYZťS737[ (^ PK M&WCk}I freebsd-ports-f3898d455ba0805a989bc595194264de0b322927/Mk/bsd.port.pre.mkUT7STLRH*N+/*+(J)S03T074"S+#C+#KL׊..'W7 _o[b..̼ҔT%J@Ҽ4d\PK M&,"yL freebsd-ports-f3898d455ba0805a989bc595194264de0b322927/Mk/bsd.port.subdir.mkUT7WmS8lI/톻PH)ӆ0Ikvbˉ'~Kia[ɲbл0D/);FXdǻ;) Q$ soi1uѺ<yVw:@}uz$]-s܁ɜB2F1כRNGdsघQH0]Fq3 Je(s@/;)"2)3:. CMh;VBJ+A!>n;@}z$bp089}q_BbsO۪ Mݍ[iU" X f<:\7ɇJHLNFW^b*^Ks4&l&Dzj.:O)H)Sfy0Eޮ)R\ jQQ@ *NYӑmpYIL1WE` @'JRA$͢J")Cm=TQ:fm'*._0 ;wj cgZC})Z'_6̖̋ᨏ=1 0IlIdYdUbLJFYx2uj[غO+M`"zI޿V YIРO-Ӡp=/5n ܭVŧ䧻VI~צXEmER1Ԕ1Z-iA^n/y9/RFzܣb+xS{lN2`6EmVozlMJMEom,MaŁ7=V3c.Ѽ遻d\ƖRWO&n=T+W'NS`[Xk gR>Za9t|'> _ ICwV+G2㵅׸lm)]HcS.-j'nu>~]}>}~*L 2k@,hWNJ#QPhwrّk'ESʞRAPK M&Ds= freebsd-ports-f3898d455ba0805a989bc595194264de0b322927/READMEUT7TMo@=b*ɽ$Z>Pz(]kw+zfIUȲb{>޼f. W>d[ʵm |R@XP̅ RГ~z S@Bt~Cn,˶FMi)I9 z1H.5ȥ, #=46)a:6i|@($aHweL6pg;18;8YP5-%*È~HB XTH]Ǟt~W~Ιb:w?(ClOi7pPIn:ԐJ@ {ZFKq4Vٜ.$AKH?>ŕ!߄ПW~4-fSy@@R/-TKԠ9BƟs7侤ܾ8`61V 4F2'bGձdA5P wP,a(V?$sQd!is*ffrʷ̆k5iE_4[>p;$oe2ֲg<]2 9Jb4gil(c@C^d݄H9:SuLE׈(sj 2ZyY 2u`}˂f/* x0߂@9bpHݗ|TH4o}ܸO˝`Cp\ NkUbأpyDYFmdsT6JPK M&A freebsd-ports-f3898d455ba0805a989bc595194264de0b322927/Templates/UT7PK M&P freebsd-ports-f3898d455ba0805a989bc595194264de0b322927/Templates/README.categoryUT7J0}Ѓ-^%vۺz]{FdI'!$$fGx^T! *8ZxWhhYp\ ? q-)A=)in|ɂp&Ꝧ* Չ>@G`D6O6 BB#2$7uu ֧~V)рx^*v)sE[coRY;˪n>wUʷTp ix|&rPL۳9_PK M&omL freebsd-ports-f3898d455ba0805a989bc595194264de0b322927/Templates/README.portUT7K0W|W!ǃOt K?KE!rZJ1BJ0ؖM6VJV&a0qOh)\`Kǯ+Z|B;F@@`1ڜG G~*^ 2w"ܖ\RV͍l{k,0tma)[=xn!6J#9$4,8Q>3KkTŸcH#w[] @g8wwt¡ZcDbZ/p1}Wt9=&Id{zs˻hkܜAO,M{W׎ſPK M&nn&K freebsd-ports-f3898d455ba0805a989bc595194264de0b322927/Templates/README.topUT7Mk0 b`nݘ^7mǭ=:Rz ; aa!$#=zZ1.BL9` #޾ qNpG!`=E eڡ5`t { XR;Z,# Y(&. ʂmjz G⃭`-s‹+ZDRQքqJ1?wxuG)9NNz%Mqt_4%;h+\ <ЎÓ4 gY8GPPY9~_aoͥgW,,>Z̑4&O \ƅ2U$EH.ph8(Ah&Fz&Cp"UdHuo7ĦS;M< Fx6hxMqn4 H)1Vp+ kxԧ9`Zcc)TuOY:{GJNArG58-i4.e>@h;Kqq,0D)Ӏ w2:?0랭Zɝ T#8C"BuwRÝl_w?[qa$ IW$p=Hn8ek*ĚZ \ oP1DS1+}}"#\%őR)9dk ̌6.+on[RT yfFzgpdDGIE:$V:^- @)1j BmqwS)4kt5)K#4?T9Xߨ>cm(`wLڻ1zFFM{lIgV b޹w./`&ܻ8W<<MOhKX L=+hAت9|Rasxj!LefXj5 %e1eoQdUQ>:C]yG)Uz5*Ŧ2zt`EdUPK M&jH)W freebsd-ports-f3898d455ba0805a989bc595194264de0b322927/Tools/portbuild/3/bindist/deleteUT7]M1=,#ű ?kQA ^Rf&IմMm^jLQ%[~iAA灐x)i=7jWqn^J456X2GT:'PK M&n>JeX freebsd-ports-f3898d455ba0805a989bc595194264de0b322927/Tools/portbuild/3/bindist/dirlistUT7+-OI-HK)*3K2sR!t H?0 ON JSr0 ( PK M&W freebsd-ports-f3898d455ba0805a989bc595194264de0b322927/Tools/portbuild/3/bindist/files/UT7PK M&[ freebsd-ports-f3898d455ba0805a989bc595194264de0b322927/Tools/portbuild/3/bindist/files/usr/UT7PK M&_ freebsd-ports-f3898d455ba0805a989bc595194264de0b322927/Tools/portbuild/3/bindist/files/usr/bin/UT7PK M&v^d freebsd-ports-f3898d455ba0805a989bc595194264de0b322927/Tools/portbuild/3/bindist/files/usr/bin/unameUT7Mo0 R{Z+$Dl1Y_'aF'c+2)8 B?\$2 T$oZSkU @15* BP:+s a^ m@Ә5f=ƕii8xtfB^Vt ?rwFe6]58 lvT0>0ffjsr lE1B0_ֳgomڠ?PܽU|9Aƿx2&xD’7҃0ŗٷӛu^Lx7`5x)1Fɧ+|/@DoyO(Z-9I.djM?i_r|suJjPK M&=>R freebsd-ports-f3898d455ba0805a989bc595194264de0b322927/Tools/portbuild/3/mkbindistUT7Tێ0}W ,P)1Rʮ6ۮԋ r8qd;* 岪>393sKPSg2E7B#?BILT(:A Hia6"1X2޶ۡxeҖyuׅ#v : 0ILilgJy,}sądROKf7kYS; ˟⫃])7DCs(A4& 1 }-5 GC_ RRS,x"'<ޏ\:O*WO| H͚Hx8]-~ʄI$[4D+Zl j=5F DVpX]) ǒK~f>"SM9o$7 \`#.`Go'{GwqLVEFb6Κe2~~pwHtVcJl Ddlڤf_E*2Kb A=me/n{{;HpPAlZ?0|dPK M&I freebsd-ports-f3898d455ba0805a989bc595194264de0b322927/Tools/portbuild/4/UT7PK M&Q freebsd-ports-f3898d455ba0805a989bc595194264de0b322927/Tools/portbuild/4/bindist/UT7PK M&ɣwyW freebsd-ports-f3898d455ba0805a989bc595194264de0b322927/Tools/portbuild/4/bindist/READMEUT7RMk0W >%őR)9dk ̌6.+on[RT yfFzgpdDGIE:$V:^- @)1j BmqwS)4kt5)K#4?T9Xߨ>cm(`wLڻ1zFFM{lIgV b޹w./`&ܻ8W<<MOhKX L=+hAت9|Rasxj!LefXj5 %e1eoQdUQ>:C]yG)Uz5*Ŧ2zt`EdUPK M&jH)W freebsd-ports-f3898d455ba0805a989bc595194264de0b322927/Tools/portbuild/4/bindist/deleteUT7]M1=,#ű ?kQA ^Rf&IմMm^jLQ%[~iAA灐x)i=7jWqn^J456X2GT:'PK M&n>JeX freebsd-ports-f3898d455ba0805a989bc595194264de0b322927/Tools/portbuild/4/bindist/dirlistUT7+-OI-HK)*3K2sR!t H?0 ON JSr0 ( PK M&W freebsd-ports-f3898d455ba0805a989bc595194264de0b322927/Tools/portbuild/4/bindist/files/UT7PK M&[ freebsd-ports-f3898d455ba0805a989bc595194264de0b322927/Tools/portbuild/4/bindist/files/usr/UT7PK M&_ freebsd-ports-f3898d455ba0805a989bc595194264de0b322927/Tools/portbuild/4/bindist/files/usr/bin/UT7PK M&C`d freebsd-ports-f3898d455ba0805a989bc595194264de0b322927/Tools/portbuild/4/bindist/files/usr/bin/unameUT7]o0+ޙLJD]KUeW6ޕ^8 DldLsBJ#.8GOs[I+; NHBbHFB5x蚬WIʛ.Dr|ª: B!X sL|_fnj6%yDí-ߺ% OJznL[Q( ߏL(T 8 lv(sV0Vmnmksr Sv"1@hO~K[;oaz 40T}AFݤG4,ZU4:1p c}yq8Zv ˝LgϮmʩf@ⲱ9+MdjmCVȖӛSRSfPK M&=>R freebsd-ports-f3898d455ba0805a989bc595194264de0b322927/Tools/portbuild/4/mkbindistUT7Tێ0}W ,P)1Rʮ6ۮԋ r8qd;* 岪>393sKPSg2E7B#?BILT(:A Hia6"1X2޶ۡxeҖyuׅ#v : 0ILilgJy,}sądROKf7kYS; ˟⫃])7DCs(A4& 1 }-5 GC_ RRS,x"'<ޏ\:O*WO| H͚Hx8]-~ʄI$[4D+Zl j=5F DVpX]) ǒK~f>"SM9o$7 \`#.`Go'{GwqLVEFb6Κe2~~pwHtVcJl Ddlڤf_E*2Kb A=me/n{{;HpPAlZ?0|dPK M&?M freebsd-ports-f3898d455ba0805a989bc595194264de0b322927/Tools/portbuild/READMEUT7Ws7~_aJ<I҆!Of#ɶNJo%ݝ ڷ2'~ۥt R[PoQ|j m刱k78 Loŝ`+sƲP/a8HBz)-ewҹQʬe|Y=E!$ya8c=f!{̗MtmLͤ1X|c:9p^*j]KJ=XlM߬V0sy33gb<9s³wIGf8.{53>SVJ7Δ s(` @J5},!\j [-y*yK&@Tp j[,@ZрE#6B|hI6ȖܐT L\8!GD|LhZ!r?cpW~e%-Zf;&WS1ƴ%cxrD8Ehrm f^Kl+E4 Q223>Gn'FTx4s .0ZmrL@,jIleQ&)UJba #ЀYI gC٦.$9IG&Z"k $D q4k^,DUf{ZH$|GoCZo`FɅ\$)+x#_(`9:tX ?a |'(VEQ زyB:n$6`:?a:VJV h*ꢋʼmJĄJIоfB 3<[I~S<tcMF=KSִ۟]N'Wޜ^]_}x}zqwWg'>D_zzzq)9cb9h?5 37S(Ƀj]D EF!?!p%Sf϶e|qh&&"=1-97UJ a j*)mr[YkԫqY;Qmz "(~g:;Ǘ4eAF?PK M&-]\ freebsd-ports-f3898d455ba0805a989bc595194264de0b322927/Tools/portbuild/scripts/checkmachinesUT7uRMK1WL9tkHA$!͚@>&`7VK2yfޛ![kǂ"d#g f?D5:DNwGҞ!DBvs0^t`䂌NVi#!IC @U@wHg )7ˡՎV-D:ccsh#,1qpz3Qj44?PE]wVGuU¥?T_#M O8%@aA iS6?e+Zũ{AoWk+ZNewŵl[ PK M&?LeW freebsd-ports-f3898d455ba0805a989bc595194264de0b322927/Tools/portbuild/scripts/makedudsUT7= @~.R ̭U>?/{oag=B5"=BդjnL1B$Eatփiu*RSJI)I/wO 858hV S9Xpq P`zPK M&#sX freebsd-ports-f3898d455ba0805a989bc595194264de0b322927/Tools/portbuild/scripts/makeindexUT7SVO/J(/*Qr53ҳ@{YB|ClKKe]>>ގN>.%\٩ y)\PK M&6RsX freebsd-ports-f3898d455ba0805a989bc595194264de0b322927/Tools/portbuild/scripts/pdispatchUT7R]K0}ϯ[}t9 u )$Cdmؚ&nnB{s={HIQ)Tn,BryB0\l