PKƭW=qgqg py7zlib.py#!/usr/bin/python -u # # Python Bindings for LZMA # # Copyright (c) 2004-2010 by Joachim Bauch, mail@joachim-bauch.de # 7-Zip Copyright (C) 1999-2010 Igor Pavlov # LZMA SDK Copyright (C) 1999-2010 Igor Pavlov # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # $Id$ # """Read from and write to 7zip format archives. """ import pylzma from struct import pack, unpack from zlib import crc32 import zlib import bz2 from cStringIO import StringIO try: from functools import reduce except ImportError: # reduce is available in functools starting with Python 2.6 pass try: import M2Crypto from M2Crypto import EVP except ImportError: # support for encrypted files is optional M2Crypto = None from hashlib import sha256 READ_BLOCKSIZE = 16384 MAGIC_7Z = '7z\xbc\xaf\x27\x1c' PROPERTY_END = '\x00' PROPERTY_HEADER = '\x01' PROPERTY_ARCHIVE_PROPERTIES = '\x02' PROPERTY_ADDITIONAL_STREAMS_INFO = '\x03' PROPERTY_MAIN_STREAMS_INFO = '\x04' PROPERTY_FILES_INFO = '\x05' PROPERTY_PACK_INFO = '\x06' PROPERTY_UNPACK_INFO = '\x07' PROPERTY_SUBSTREAMS_INFO = '\x08' PROPERTY_SIZE = '\x09' PROPERTY_CRC = '\x0a' PROPERTY_FOLDER = '\x0b' PROPERTY_CODERS_UNPACK_SIZE = '\x0c' PROPERTY_NUM_UNPACK_STREAM = '\x0d' PROPERTY_EMPTY_STREAM = '\x0e' PROPERTY_EMPTY_FILE = '\x0f' PROPERTY_ANTI = '\x10' PROPERTY_NAME = '\x11' PROPERTY_CREATION_TIME = '\x12' PROPERTY_LAST_ACCESS_TIME = '\x13' PROPERTY_LAST_WRITE_TIME = '\x14' PROPERTY_ATTRIBUTES = '\x15' PROPERTY_COMMENT = '\x16' PROPERTY_ENCODED_HEADER = '\x17' COMPRESSION_METHOD_COPY = '\x00' COMPRESSION_METHOD_LZMA = '\x03' COMPRESSION_METHOD_CRYPTO = '\x06' COMPRESSION_METHOD_MISC = '\x04' COMPRESSION_METHOD_MISC_ZIP = '\x04\x01' COMPRESSION_METHOD_MISC_BZIP = '\x04\x02' COMPRESSION_METHOD_7Z_AES256_SHA256 = '\x06\xf1\x07\x01' class ArchiveError(Exception): pass class FormatError(ArchiveError): pass class EncryptedArchiveError(ArchiveError): pass class UnsupportedCompressionMethodError(ArchiveError): pass class DecryptionError(ArchiveError): pass class NoPasswordGivenError(DecryptionError): pass class WrongPasswordError(DecryptionError): pass class Base(object): """ base class with support for various basic read/write functions """ def _readReal64Bit(self, file): res = file.read(8) a, b = unpack('>= 1 def _readBoolean(self, file, count, checkall=0): if checkall: alldefined = file.read(1) if alldefined != '\x00': return [True] * count result = [] b = 0 mask = 0 for i in xrange(count): if mask == 0: b = ord(file.read(1)) mask = 0x80 result.append(b & mask != 0) mask >>= 1 return result def checkcrc(self, crc, data): check = crc32(data) & 0xffffffffL return crc == check class PackInfo(Base): """ informations about packed streams """ def __init__(self, file): self.packpos = self._read64Bit(file) self.numstreams = self._read64Bit(file) id = file.read(1) if id == PROPERTY_SIZE: self.packsizes = [self._read64Bit(file) for x in xrange(self.numstreams)] id = file.read(1) if id == PROPERTY_CRC: self.crcs = [self._read64Bit(file) for x in xrange(self.numstreams)] id = file.read(1) if id != PROPERTY_END: raise FormatError, 'end id expected but %s found' % repr(id) class Folder(Base): """ a "Folder" represents a stream of compressed data """ def __init__(self, file): numcoders = self._read64Bit(file) self.coders = [] self.digestdefined = False totalin = 0 self.totalout = 0 for i in xrange(numcoders): while True: b = ord(file.read(1)) methodsize = b & 0xf issimple = b & 0x10 == 0 noattributes = b & 0x20 == 0 last_alternative = b & 0x80 == 0 c = {} c['method'] = file.read(methodsize) if not issimple: c['numinstreams'] = self._read64Bit(file) c['numoutstreams'] = self._read64Bit(file) else: c['numinstreams'] = 1 c['numoutstreams'] = 1 totalin += c['numinstreams'] self.totalout += c['numoutstreams'] if not noattributes: c['properties'] = file.read(self._read64Bit(file)) self.coders.append(c) if last_alternative: break numbindpairs = self.totalout - 1 self.bindpairs = [] for i in xrange(numbindpairs): self.bindpairs.append((self._read64Bit(file), self._read64Bit(file), )) numpackedstreams = totalin - numbindpairs self.packed_indexes = [] if numpackedstreams == 1: for i in xrange(totalin): if self.findInBindPair(i) < 0: self.packed_indexes.append(i) elif numpackedstreams > 1: for i in xrange(numpackedstreams): self.packed_indexes.append(self._read64Bit(file)) def getUnpackSize(self): if not self.unpacksizes: return 0 r = range(len(self.unpacksizes)) r.reverse() for i in r: if self.findOutBindPair(i): return self.unpacksizes[i] raise 'not found' def findInBindPair(self, index): for idx in xrange(len(self.bindpairs)): a, b = self.bindpairs[idx] if a == index: return idx return -1 def findOutBindPair(self, index): for idx in xrange(len(self.bindpairs)): a, b = self.bindpairs[idx] if b == index: return idx return -1 class Digests(Base): """ holds a list of checksums """ def __init__(self, file, count): self.defined = self._readBoolean(file, count, checkall=1) self.crcs = [unpack(' 255: raise FormatError, 'invalid type, must be below 256, is %d' % typ typ = chr(typ) if typ == PROPERTY_END: break size = self._read64Bit(file) buffer = StringIO(file.read(size)) if typ == PROPERTY_EMPTY_STREAM: isempty = self._readBoolean(buffer, self.numfiles) map(lambda x, y: x.update({'emptystream': y}), self.files, isempty) for x in isempty: if x: numemptystreams += 1 emptyfiles = [False] * numemptystreams antifiles = [False] * numemptystreams elif typ == PROPERTY_EMPTY_FILE: emptyfiles = self._readBoolean(buffer, numemptystreams) elif typ == PROPERTY_ANTI: antifiles = self._readBoolean(buffer, numemptystreams) elif typ == PROPERTY_NAME: external = buffer.read(1) if external != '\x00': self.dataindex = self._read64Bit(buffer) # XXX: evaluate external raise NotImplementedError for f in self.files: name = '' while True: ch = buffer.read(2) if ch == '\0\0': f['filename'] = unicode(name, 'utf-16') break name += ch elif typ == PROPERTY_CREATION_TIME: self._readTimes(buffer, self.files, 'creationtime') elif typ == PROPERTY_LAST_ACCESS_TIME: self._readTimes(buffer, self.files, 'lastaccesstime') elif typ == PROPERTY_LAST_WRITE_TIME: self._readTimes(buffer, self.files, 'lastwritetime') elif typ == PROPERTY_ATTRIBUTES: defined = self._readBoolean(buffer, self.numfiles, checkall=1) for i in xrange(self.numfiles): f = self.files[i] if defined[i]: f['attributes'] = unpack(' 0: data = self._file.read(READ_BLOCKSIZE) if checkremaining: tmp = decompressor.decompress(data, remaining) else: tmp = decompressor.decompress(data) out.write(tmp) remaining -= len(tmp) data = out.getvalue() else: if not input: input = self._file.read(total) if checkremaining: data = decompressor.decompress(input, self._start+self.size) else: data = decompressor.decompress(input) return data[self._start:self._start+self.size] def _read_lzma(self, coder, input): dec = pylzma.decompressobj(maxlength=self._start+self.size) try: return self._read_from_decompressor(coder, dec, input, checkremaining=True) except ValueError: if self._is_encrypted(): raise WrongPasswordError('invalid password') raise def _read_zip(self, coder, input): dec = zlib.decompressobj(-15) return self._read_from_decompressor(coder, dec, input, checkremaining=True) def _read_bzip(self, coder, input): dec = bz2.BZ2Decompressor() return self._read_from_decompressor(coder, dec, input) def _read_7z_aes256_sha256(self, coder, input): if not self._archive.password: raise NoPasswordGivenError() # TODO: this needs some sanity checks firstbyte = ord(coder['properties'][0]) numcyclespower = firstbyte & 0x3f if firstbyte & 0xc0 != 0: saltsize = (firstbyte >> 7) & 1 ivsize = (firstbyte >> 6) & 1 secondbyte = ord(coder['properties'][1]) saltsize += (secondbyte >> 4) ivsize += (secondbyte & 0x0f) assert len(coder['properties']) == 2+saltsize+ivsize salt = coder['properties'][2:2+saltsize] iv = coder['properties'][2+saltsize:2+saltsize+ivsize] assert len(salt) == saltsize assert len(iv) == ivsize assert numcyclespower <= 24 if ivsize < 16: iv += '\x00'*(16-ivsize) else: salt = iv = '' password = self._archive.password.encode('utf-16-le') key = pylzma.calculate_key(password, numcyclespower, salt=salt) cipher = pylzma.AESDecrypt(key, iv=iv) if not input: self._file.seek(self._src_start) uncompressed_size = self.uncompressed if uncompressed_size & 0x0f: # we need a multiple of 16 bytes uncompressed_size += 16 - (uncompressed_size & 0x0f) input = self._file.read(uncompressed_size) result = cipher.decrypt(input) return result def checkcrc(self): if self.digest is None: return True self.reset() data = self.read() return super(ArchiveFile, self).checkcrc(self.digest, data) class Archive7z(Base): """ the archive itself """ def __init__(self, file, password=None): self._file = file self.password = password self.header = file.read(len(MAGIC_7Z)) if self.header != MAGIC_7Z: raise FormatError, 'not a 7z file' self.version = unpack('BB', file.read(2)) self.startheadercrc = unpack('0:|:| py7zlib.pyc; ;Lc@sDdZdkZdklZlZdklZdkZdkZdkl Z ydk l Z Wne j onXydk Z dk lZWne j o eZ nXdklZdZd Zd Zd Zd Zd ZdZdZdZdZdZdZdZdZdZ dZ!dZ"dZ#dZ$dZ%dZ&dZ'dZ(dZ)d Z*d!Z+d Z,d Z-dZ.dZ/d"Z0d#Z1d$Z2d%e3fd&YZ4d'e4fd(YZ5d)e4fd*YZ6d+e4fd,YZ7d-e4fd.YZ8d/e8fd0YZ9d1e8fd2YZ:d3e;fd4YZ<d5e<fd6YZ=d7e<fd8YZ>d9e<fd:YZ?e?Z@d;e<fd<YZAd=e<fd>YZBd?e<fd@YZCdAe<fdBYZDdCe<fdDYZEdEe<fdFYZFdGe<fdHYZGeHdIjo#eGeIdJdKZJeJiKndS(Ls-Read from and write to 7zip format archives. N(spacksunpack(scrc32(sStringIO(sreduce(sEVP(ssha256i@s7z'ssssssssss s s s s ssssssssssssss ArchiveErrorcBstZRS(N(s__name__s __module__(((s build\bdist.win32\egg\py7zlib.pys ArchiveErrorVss FormatErrorcBstZRS(N(s__name__s __module__(((s build\bdist.win32\egg\py7zlib.pys FormatErrorYssEncryptedArchiveErrorcBstZRS(N(s__name__s __module__(((s build\bdist.win32\egg\py7zlib.pysEncryptedArchiveError\ss!UnsupportedCompressionMethodErrorcBstZRS(N(s__name__s __module__(((s build\bdist.win32\egg\py7zlib.pys!UnsupportedCompressionMethodError_ssDecryptionErrorcBstZRS(N(s__name__s __module__(((s build\bdist.win32\egg\py7zlib.pysDecryptionErrorbssNoPasswordGivenErrorcBstZRS(N(s__name__s __module__(((s build\bdist.win32\egg\py7zlib.pysNoPasswordGivenErroressWrongPasswordErrorcBstZRS(N(s__name__s __module__(((s build\bdist.win32\egg\py7zlib.pysWrongPasswordErrorhssBasecBs5tZdZdZdZddZdZRS(s@ base class with support for various basic read/write functions cCs:|id}td|\}}|d>|B|fSdS(NisSn|dL}q(WdS(Niiiis%dBcCst|d>|BS(Ni(slongsxsy(sxsy((s build\bdist.win32\egg\py7zlib.pyszsl(sordsfilesreadsbsmasksxrangesislistsunpacksbytessreversesreducesvalueshighpartslong(sselfsfilesbsishighpartsmasksvaluesbytes((s build\bdist.win32\egg\py7zlib.pys _read64Bitss "  ic Cs|o/|id}|djotg|Sq6ng}d}d}xat |D]S}|djot |id}d}n|i ||@dj|dL}qUW|SdS(Nisii( scheckallsfilesreads alldefinedsTruescountsresultsbsmasksxrangesisordsappend( sselfsfilescountscheckallsbsismasksresults alldefined((s build\bdist.win32\egg\py7zlib.pys _readBooleans    cCst|d@}||jSdS(Nl(scrc32sdatascheckscrc(sselfscrcsdatascheck((s build\bdist.win32\egg\py7zlib.pyscheckcrcs(s__name__s __module__s__doc__s_readReal64Bits _read64Bits _readBooleanscheckcrc(((s build\bdist.win32\egg\py7zlib.pysBaseks   sPackInfocBstZdZdZRS(s# informations about packed streams cCs|i||_|i||_|id}|tjogi}t |iD]}||i|qW~|_ |id}|t joOgi}t |iD]}||i|q~|_|id}qn|tjotdt|ndS(Nisend id expected but %s found(sselfs _read64Bitsfilespackposs numstreamssreadsids PROPERTY_SIZEsappends_[1]sxrangesxs packsizess PROPERTY_CRCscrcss PROPERTY_ENDs FormatErrorsrepr(sselfsfiles_[1]sxsid((s build\bdist.win32\egg\py7zlib.pys__init__s < < (s__name__s __module__s__doc__s__init__(((s build\bdist.win32\egg\py7zlib.pysPackInfos sFoldercBs2tZdZdZdZdZdZRS(s3 a "Folder" represents a stream of compressed data c Csh|i|} g|_t|_d}d|_x6t | D](}xt ot |i d}|d@} |d@dj}|d@dj} |d@dj}h}|i | |d<| o*|i||d<|i||d } |ii|i"||ii|i#||d7}q\WqW|id}n|t$jot%dt&|n|i o$t'g| |_dg| |_ndS(Niisend id expected but %s found((sselfsdigestssdigestsdefinedsfilesreadsidsPROPERTY_NUM_UNPACK_STREAMsappends_[1]sxranges numfolderssxs _read64Bitsnumunpackstreamssidxs PROPERTY_SIZEssums unpacksizesslensisjssizesfolderss getUnpackSizes numdigestssnumdigeststotals numsubstreamss digestdefineds PROPERTY_CRCsDigestssdidxsfoldersTruescrcsdefinedscrcss PROPERTY_ENDs FormatErrorsreprsFalse(sselfsfiles numfolderssfolderssidssizesfoldersdigestss numdigestss numsubstreamssnumdigeststotalsidxsisjsdidxs_[1]sxssum((s build\bdist.win32\egg\py7zlib.pys__init__#sf   9    "         (s__name__s __module__s__doc__s__init__(((s build\bdist.win32\egg\py7zlib.pysSubstreamsInfo s s StreamsInfocBstZdZdZRS(s' informations about compressed streams cCs|id}|tjo"t||_|id}n|tjo"t||_ |id}n|t jo4t ||i i |i i |_|id}n|tjotdt|ndS(Nisend id expected but %s found(sfilesreadsidsPROPERTY_PACK_INFOsPackInfosselfspackinfosPROPERTY_UNPACK_INFOs UnpackInfos unpackinfosPROPERTY_SUBSTREAMS_INFOsSubstreamsInfos numfolderssfoldersssubstreamsinfos PROPERTY_ENDs FormatErrorsrepr(sselfsfilesid((s build\bdist.win32\egg\py7zlib.pys__init__^s   ! (s__name__s __module__s__doc__s__init__(((s build\bdist.win32\egg\py7zlib.pys StreamsInfo[s s FilesInfocBs tZdZdZdZRS(s holds file properties cCsw|i|t|dd}xRtt|D]>}||o|i|d|||sississutf-16sfilenames creationtimeslastaccesstimes lastwritetimescheckallss(Isfilesselfs_filespasswordsreadslensMAGIC_7Zsheaders FormatErrorsunpacksversionsstartheadercrcs_readReal64Bits nextheaderofssdatascrc32scrcsnextheadersizes nextheadercrcstells afterheadersseeksStringIOsbufferscheckcrcsgetvaluesTruesidsPROPERTY_HEADERsPROPERTY_ENCODED_HEADERsreprs StreamsInfosstreamssidxs unpackinfosfolderssfolderspackinfospackposscodersspropssxranges packsizesstmpspylzmas decompresss unpacksizess digestdefinedsHeadersfiless main_streamsssubstreamsinfossubinfos numstreamsssolidshasattrsappends_[1]sxsfidxsobidxssrc_posspossNonesmaxsizesnumfilessinfos ArchiveFilesdigestsdefinedsdigestssdigestsmaps filenames(sselfsfilespasswordsfoldersspossidstmps_[1]spackinfosobidxsmaxsizespropsssubinfosfoldersfilessbuffersfidxssrc_possdatasinfosidxscrcsstreamss unpacksizessxs packsizes((s build\bdist.win32\egg\py7zlib.pys__init__ks          (      2.     %   cCs4x)|iD]}|i|jo|Sq q WtSdS(N(sselfsfilessfsfilenamesnamesNone(sselfsnamesf((s build\bdist.win32\egg\py7zlib.pys getmembers   cCs |iSdS(N(sselfsfiles(sself((s build\bdist.win32\egg\py7zlib.pys getmembersscCs |iSdS(N(sselfs filenames(sself((s build\bdist.win32\egg\py7zlib.pysgetnamesscCsd|i|iodpdfGH| odi|iGHdSnxZ|iD]O}|io d|ipd}d|i |t |i dd !|i fGHqNWdS( Nstotal %d files in %sarchivessolid ss s%10d s s %10d%s%s %sii(sselfsnumfilesssolidsverbosesjoins filenamessfilessfs compressedsextrassizeshexsdigestsfilename(sselfsverbosesextrasf((s build\bdist.win32\egg\py7zlib.pyslists# ( s__name__s __module__s__doc__sNones__init__s getmembers getmemberssgetnamessTrueslist(((s build\bdist.win32\egg\py7zlib.pys Archive7zhs  d   s__main__stest.7zsrb(Ls__doc__spylzmasstructspacksunpackszlibscrc32sbz2s cStringIOsStringIOs functoolssreduces ImportErrorsM2CryptosEVPsNoneshashlibssha256sREAD_BLOCKSIZEsMAGIC_7Zs PROPERTY_ENDsPROPERTY_HEADERsPROPERTY_ARCHIVE_PROPERTIESs PROPERTY_ADDITIONAL_STREAMS_INFOsPROPERTY_MAIN_STREAMS_INFOsPROPERTY_FILES_INFOsPROPERTY_PACK_INFOsPROPERTY_UNPACK_INFOsPROPERTY_SUBSTREAMS_INFOs PROPERTY_SIZEs PROPERTY_CRCsPROPERTY_FOLDERsPROPERTY_CODERS_UNPACK_SIZEsPROPERTY_NUM_UNPACK_STREAMsPROPERTY_EMPTY_STREAMsPROPERTY_EMPTY_FILEs PROPERTY_ANTIs PROPERTY_NAMEsPROPERTY_CREATION_TIMEsPROPERTY_LAST_ACCESS_TIMEsPROPERTY_LAST_WRITE_TIMEsPROPERTY_ATTRIBUTESsPROPERTY_COMMENTsPROPERTY_ENCODED_HEADERsCOMPRESSION_METHOD_COPYsCOMPRESSION_METHOD_LZMAsCOMPRESSION_METHOD_CRYPTOsCOMPRESSION_METHOD_MISCsCOMPRESSION_METHOD_MISC_ZIPsCOMPRESSION_METHOD_MISC_BZIPs#COMPRESSION_METHOD_7Z_AES256_SHA256s Exceptions ArchiveErrors FormatErrorsEncryptedArchiveErrors!UnsupportedCompressionMethodErrorsDecryptionErrorsNoPasswordGivenErrorsWrongPasswordErrorsobjectsBasesPackInfosFoldersDigestss UnpackDigestss UnpackInfosSubstreamsInfos StreamsInfos FilesInfosHeaders ArchiveFiles Archive7zs__name__sopensfslist(@sPROPERTY_FOLDERs PROPERTY_SIZEsCOMPRESSION_METHOD_CRYPTOsreducesPROPERTY_ARCHIVE_PROPERTIESsPROPERTY_LAST_ACCESS_TIMEsDecryptionErrorsPROPERTY_PACK_INFOsNoPasswordGivenErrors PROPERTY_ANTIsEVPsWrongPasswordErrorsPROPERTY_ENCODED_HEADERsDigestssFolders StreamsInfosPackInfosbz2sHeaders FilesInfosPROPERTY_NUM_UNPACK_STREAMsPROPERTY_MAIN_STREAMS_INFOs!UnsupportedCompressionMethodErrorsBasesPROPERTY_ATTRIBUTESsPROPERTY_CODERS_UNPACK_SIZEssha256s UnpackInfosPROPERTY_COMMENTs PROPERTY_ADDITIONAL_STREAMS_INFOsPROPERTY_FILES_INFOsCOMPRESSION_METHOD_MISC_BZIPsPROPERTY_EMPTY_STREAMsEncryptedArchiveErrorsPROPERTY_CREATION_TIMEsM2CryptosREAD_BLOCKSIZEs Archive7zspylzmascrc32s#COMPRESSION_METHOD_7Z_AES256_SHA256sPROPERTY_UNPACK_INFOsunpacks PROPERTY_NAMEs FormatErrorsCOMPRESSION_METHOD_LZMAsSubstreamsInfosPROPERTY_SUBSTREAMS_INFOsPROPERTY_HEADERsStringIOs PROPERTY_ENDszlibs PROPERTY_CRCsCOMPRESSION_METHOD_MISCsCOMPRESSION_METHOD_MISC_ZIPs UnpackDigestssCOMPRESSION_METHOD_COPYs ArchiveFiles ArchiveErrorsPROPERTY_LAST_WRITE_TIMEsPROPERTY_EMPTY_FILEsMAGIC_7Zsfspack((s build\bdist.win32\egg\py7zlib.pys?s        ,I%;F PK<[v>lQ' pylzma.pydef __bootstrap__(): global __bootstrap__, __loader__, __file__ import sys, pkg_resources, imp __file__ = pkg_resources.resource_filename(__name__,'pylzma.pyd') __loader__ = None; del __bootstrap__, __loader__ imp.load_dynamic(__name__,__file__) __bootstrap__() PK<[v> pylzma.pyc; 4yMc@sdatdS(cCsMdk}dk}dk}|itdatabb|i ttdS(Ns pylzma.pyd( ssyss pkg_resourcessimpsresource_filenames__name__s__file__sNones __loader__s __bootstrap__s load_dynamic(s pkg_resourcesssyssimp((sbuild\bdist.win32\egg\pylzma.pys __bootstrap__s  N(s __bootstrap__(((sbuild\bdist.win32\egg\pylzma.pys?s PK-[v>1 pylzma.pydMZ@ !L!This program cannot be run in DOS mode. $~ABqBqBq,@qG@qG~Wq?uAqBp1qG.qG-CqG+CqRichBqPELyM!  @PsHxj< jHP.text$5@ `.rdata$P0P@@.dataB @.reloc| @BD$PL$QT$ R$D$P$L$Qh\hpRPD$$D$80pQ$uĤátQW|$;u3|$LG xQ;t?QP|Qu,L$QB QPhxRQ 3_ĤË|$Ul$VSI:utP^:uu3t$QUhQQ [^]3_ĤÅtWoQ33L$(?uk3~͍T$,+ʍT,T,@;|t$ 3Ʌ~|$ 9T,@A;|  +ȋ|,3ʃD$D$D$D$D$D$D$D$Q؍D$LP荷~KWL$PUQT$,D$(RPL$`QкjT$0RD$lP迺$3Du@|NuL$,QT$PRSQ D$,j PQ[^]_Ĥ̋D$P̋D$PYV5TQW=XQhH5׃h؇5t׃hx5׃hjjhhx\Q=`QHhH@hVH׋؇h؇BhV؇סxhx@hVx׋=dQjhV׃DjAhVjh́V׋=hQh܁hVhhVhh(Vh8hhV׃H&_^%lQ_^QL$T$ $PhhQRD$pQtQ $3;t2|-D$ǀH|PP3YáLQhQPQỸ D$PD$,L$QT$RhЂPD$D$L$PRjL$t$$ȃl$sT$ sdPPL$t$ʃ󤋳D$h`@Q_^][ hpjCUPcYt! QhRPQ_^]3[ ËȋtsQu2tLȃ󤋫SHQPRP퉫u'DQ_^]3[ ÅtP"ǃCPǃRL$uha@Q_^][ ËT$RjQD$xQL$,QjD$0D$ T$,RD$,UD$0PKWQt$@zUT$DRQD$@ȋD$D+ t$(tHD$tD$8u HPQLQD$hPPQD$_^][ Åv{VuWu+D$D$8u HPQDQD$_^][ Ë΋ʃt$(6UPVPCtPqǃL$ QT$RHQD$_^][ ̃SUVt$ ^|3l$ t+;uhb@Q^][ûSUQ;ʼnD$ u ^]3[Wxl$Q苆\$u+D$$D$PjL$,QhcT$$RFWPSmL$QjT$,RD$0PL$$QVWRiSL$@+ЋtRQP tP/džUQD$uN|t9r||$;É|$r N|u)t)D$;xtT$WRHQD$_^][Ãu<+RD$PHQuԋL$|h8 hXhxLQPPQD$tD$8u HPQ_^]3[QL$T$ $PhhQRD$pQuYVt$ WFhpPS3;lj~~tPL$N|džtQA_tQ^YVt$FhpPRtPjdžNV^hh8QdQL$ $Ph8QD$ ̋T$J S\$;UVWvr|$ȋ̓rJ _r+^J ]3[̋D$L$T$ `'HP ̋T$ SUl$ E;vVuW|$ˋȃE;_^v!M+PRQ )]D$ ]3[E]3[Vt$h'9FFF ^Ul$V3;u^]S\$C +C;sHC =rKPQ;ƉCtPC =rC K+;rCt$W{͋ȃC_C[^]És s[^3]SUVW|$7QVD$Hh\h`Q Q؃u$QU(Q_^][ËC xQ;tQP|Qu$C;ƉrƋ|$ȋsʃ3 u CSPU(Q_^][̋D$L$ )HS\$C SUl$+;VsQ3$C =rKPQ ;ƉCtMC =rC K+;rCt$W{͋ȃC_C^][És s^]3[Vt$h*FFF ^Vt$FW|$;r _F^ËN+P9PQ%F +_F^̃WD$ PL$QL$(T$ RT$(D$Phph|3QR|$(|$$|$0|$,pQ u_ËL$Vt$+;ωF~=t*t% t QQhQQ ^_ËT$ QLsD$;~=t#QPjhPQ^_ËL$VQD P^3_̋T$$PL$QhR;tPP3t}K$s ʃtP=ǃC$uit8u HPQS$C RPQu-DQD$tD$8u HPQ]_^3[ËS0+T$ RD$PHQD$]_^[̋D$ShhP3$t0N VȋN ND+;w!N +‹V<N0+ʉ $uYF8YVt$VF@N +ʋQ+ЋF0RP?N0N@ ^̋D$P0H<+9HD@Vt$F8uF VND+;r^VNQT$ L$S؋D$ L$Ul$+ʋT$,Vt$,W|$8 t$0D$,T$4J;ΉT$4+;#+D$(D$:+uO:EuHD$;t+Ս}T$T$::uFG;u;s|$87I;މ|$8t|$8L$ T$D$4+ʅ[_^][ỸD$$T$SUl$ VW|$8HD$@L$33+Յt$L$\$u"|$DT$_^][Ë|$8l$@D$uF8uF VND+;uN;NuF^3^Vt$Vs 3^Ë3ɊhS\$W~jSN 8F,PFPFPF$PPFPQRVNF+(@CBF;Vu,_[^Vt$Vs 3^Ë3Ɋ(S\$WjSH@3Ll~N 8F,PFPFPF$PPFPQRVNF+(@CBF;Vu_[^̃Vt$FD$sU3^S^ UW>TlG33Ҋwȁ,3#V(F+ŋl$n^ V\$ 3;¹+ЉT$:T$;tT$ :9T$uA;uH;ʉ CuYF,NPFQN$PQNPD$$QPRW^>VN CGB;^>Vuq_][^ËT$F,Q QNPFQN$PQNPD$,QPRynVN+(ECB;nVu _][^̃Vt$FD$s3^SUW>LlWGo3ы3Dln(3#ŋn3ʋڋV l$+,l$l$+l$l$l$V F  L$V\$(3;ʸs+ъ:uQST$;t$;Vs+T$:uL$QTT$$;t+׊ : 8u L$$@B;uT$$;‰DF,NPFQN$PQNPD$,QPRV^>VN CGB;^>Vu=uF8uN VFD+;uPV;VuF_][^ÃsN,PPFQNPF$QPFQL$4PQR?nVN+(ECB;nVu=uF8uV NFD+;uF;FuF_][^̃Vt$FD$se3^SUW>LlWGo3ы3Dln(3#ŋn3ʋڋV l$+,l$l$+l$l$l$V F  L$V\$(3;ʸs+ъ:uQST$;t$;Vs+T$:uL$QT;D$$t+׊ : 8u L$$@B;u;D$$DupVF$L$ ^>VNCGB;^>Vu=uF8uV NFD+;uF;FuFj_][^ÃsV, QNRVQN$RQNRT$0QL$@RQnVN+$ECB;nVu=u,F8uV NFD+;u_F;FuF_][^Vt$Vs 3^Ë3Ɋ(SW~H@3Ll\$N 8F,SPFPFPF$PPFPQRVNF+$@CBF;Vu_[^SUVt$WV^>VNCGB;^>VuF8uF~ ^ND+;u5nVN CGB;^>VuF8uF~ ^ND+;u5nVNCGB;^>Vu F8uF~ ^ND+;u5nVN CGB;^>VuF8uF~ ^ND+;u5nVNCGB;^>Vu F8uF~ ^ND+;u5nVN CGB;^>VuF8uF~ ^ND+;u5nVNCGB;^>VuF8uF~ ^ND+;u5nVN CGB;^>VuF8uF~ ^ND+;u5nVNCGB;^>VuF8uF~ ^ND+;u5nVNCGB;^>Vu^F8uF~ ^ND+;u5nVNCGB;^>Vu\F8uF~ ^ND+;u5nVNCGB;^>VupF8uF~ ^ND+;u5ns _^][pË$$$PQRD$P|$4|$0;$$.$URD$dD$h$VPL$4L$ SQ\$P|$L|$p$|$T|$X;u }uT$4$L$ $QPP_^][p̋D$3P$PH,H HHHHH HP(̋D$}Hɉu.V L3ɃIp^H}@H }@ H}@H} 3ɃHH}3ɃI@HH} H3҅‰PH }@ H$uP3ɅҋPP$H,}Ht HɹuH,̃0Vt$8WD$ |$PD$_^0̃D$ SVT$@WIv3L$ <T$‹΋f‹T$˃t$ D$B|_^[ËT$JS\$;UVWsr|$ȋ̓rJ+_r^J]3[̋D$SUVW,Xt 󥋈H T' I  Muٍ )| 󥍰) 󥍰 *| 󥍰* 󥍐,'21rqrqr q rqRQD'12qrqrq r qrIJ\'2̾1rqrqr q rqRQt'12qrqrq r qrIJ +|9󥍰+`󥍐82T1rqrqR Q %ʋȃ_^][̋D$SUVW, Xt󥋈 TH' I  Muٍ| ) 󥍰) 󥍰| * 󥍰* 󥍐2,'1rqrqr q rqRQ1D'2qrqrq r qrIJ̾2\'1rqrqr q rqRQ1t'2qrqrq r qrIJ| +9󥍰`+󥍐T2%81rqrqR Q ʋȃ_^][̃0Vt$,AM x+FV +V >+fM=s r_^][SUVؽW ݐD$>#ȉD$D$ PP x+FV +>+f =s XD$3#r_^][SVW|$d$3ɾ$=r A=sNu㸡+r_^[S3W<~3Ár_[SUV3 ʋ#ڋ\$k3݋,3#Ӂr^][SUl$VtiW|$D$M X u+FV +Ћ+ȋT$f Z=s  ߅u_^][QSUl$V~{D$ WL]|$ u+FV +Љ+fL]=s  I)s XPX3 XPX#@*PX @)O;u*u4Xt$4PXt$t#t4XL$xL$xs 4X4X@t$*,D D$T;rD$x@r |$XsT |T+ȋt$T$TD$XL$\T$`MQD$0D$,U L$XWO+HHD$@D$|T$x#%D$4‹%D$DE%L$L$,3ɉD$0G|$ %*#|$|狍%Ǎ<@ r<D$L$xW_B$L$TJ L$XJ(D$\L$`D$x3 W3֋=rЋT$0;T$0s,D$ǃǃD$(L$DM%|$,Nj|$},'T$D$PD$x:ЋT$t$Huf9s tT}D'M';w"3D$(+;L$,sȉL$,# |$,0;|$$vD$$L$([T$x8T$Mp;v;vT$ |$@B+:uA@;rAD$xD$ PXD$|%M,'@#‹]%t$0׋|$֋t$xt>|$;\$@s1+\$D+|$|$D0K@u\$@]'iMD'D$xTxvʋ(;ʍ(sL$AH3ɉH@H D$<D$xL$ T$x|T +NJPH:ʉD$(T$ BL$(:A|$$;vL$ t$(A+:uC@;rD$L$<;s#I+ȍ*L$0H@uD$4T$PD$|͋[D$LL$8iL$HˍTx D$@T$0);QsQT$QT$xAK0sԋD$x|$0uFD$<0T$,F;v;s\$ T$(<+ӊ:u@G;r+D$0L$ |%D$(3ɱ*ʋ%L$|#ы%⋍% R3%$#L$ X}%|$HTx|$DNjT$;vP+I : *u L$GB;r;0sG;|$ v\$$|$ T$CT$rl$;0rPL$D$,ET$,G4PFP4V_]^[3ۃ\$rgL$\$v:PB;u!8;vPT$w׉\$ur D$l$|$ rYG;sO;rsW;r<r4D$$L$,Gt4VPR4V_]^[Ã|$Wr8;ŋr;r~M;u ;vn;wj@;rr ;wWNQV 8HD$$L$ IT$ :+I:u=P:Qu5M;vP+Ȋ:uGB;r_]^[;s\$l$L$$|$ AL$$|$ rD$,Et4NPQ4V_]^[SUl$ VWHōG% NV +ы+f=s HW,'W,' Љ+f=s H X3҅‰H,jŋΉT$D$t<Hu3i@HQPU6H Hj? )jRj+W._^][̋u<ؼt ǁ t ǁt ǁ̋ǃt%#P,VWGOuF0u5F ~N$+WPQ ;tF0 N(F,ωN(N F,N_^u<ؼt ǃ t ǃt ǃ̃ SUV3L%t$D$$3ҹD$ O+ƃ3݋ ȋD$ HD$ uʋD$t$Ft$D$r^]LJ%[ ́SUW>ˋӃIU++ӍV +RDGrōl$+ )TLLD$L$ l$D$ L$ $%3ۅvUd$Ã@3҃t7d$l$ȃlM3uՋl$L$ %C;r%;vډ%@;rAWQGW QI)@=rD$L$ D$D$Hl$L$ D$_]dž[̃0SVt$(V N$GC@V N$u 3L$u[_^̃SUVt$n ^$W~ ?D7(G8t$?uD>(G8uD7(ËL7)GT7)GL7)GT7)GGL7(GT7(։l$D7)ND$ VP@H@PN@HV@PN@HV@PN @HV @@N@VPN@HV@PN @HV @PN@HV@PN@HV@PN@HV@PN@HV@PN@HV@PN@HV@PN@HV@PN@@VP3_g jFgFrnL$=D$P@ňL$=L$@4Afы ;؉t$Ds+D$Xf%3ff++D$X$l-+f$l$TVD$, ȋD$(IL$, @$$D$(d$}hT$@f j4jы ;؉t$Ds+f3ff++$l-+f$l$TsWD$dD$TD$F0Pu|NQF(ueVRuUFPuEWN WQu u3WPV$Rc u!D$L$PQVRF t 3VW|$ PQAt V_^̋D$@Ul$t5T$ D$SVt$ W|$d$3Ɋh@H+^BMu_^[]ËD$tST$SUl$$Vt$ W|$D$(D$3ۊx3\H3ًL$ #ˋ+@^L$(BIL$(u_^][̋D$t[T$L$S\$UVt$ W|$,D$(Ai3)3i3#D$ +,A.D$(BHD$(u_^][̋D$tZT$SUl$$Vt$ W|$D$(D$X3Ɋh33LX3#L$ +@^L$(BIL$(u_^][QSUVW|$$<PD$@P $d$0x4LxVRt__\ShPXUhPVdQVD$:RVTQL$7++ 75lPSUrHPVV@RF=v%+FXHSV&QN(V\F AQ QSVD$n V؃@+D$kFH;rC+vV(FlPF\UKQN RFRPQtʼn^ՉLR^`D$DQpJ_^][YVt$(PpH @ @^̃SUVt$  +W|$(;D$\$G;(QPpH @ @D$ЉW;xt& $EIu/_^][Ë+ ЋD$$;ȉL$rD$+@;sD$Ћ +D$$;sD$;l$T$JɉT$+AIQ$YE3ۋu }jY3w;u3FVWS5P;u9ܻt VYu3̀@s sË3Ҁ33átVFujYVYt$P^j hPZ85u&uV5ujEYPEHLNLHPNPPYtЃevPVLPZE MPQYYËeuUSW}3ۅuz3jVhjYYt@VFENFPEY~LuEPuVh`u uPutPV3YtSY3^_[]USVWUjjhuG]_^[]ËL$AtD$T$SVWD$Pjhd5d%D$ Xp t.;t$$t(4v L$H |uhD@Td _^[3d yuQ R 9QuSQ SQMKCk Y[VC20XC00USVWU] E@EEEECs {S t{t} vD tYVUk33333]^] t?xH{SkVS vjDKC D33333Ћ{ v4댸#EHUkjSu]]_^[]UL$)APAPP]UE V$VdP4N FVv 5t 5jYju  #P!t|.&!| |jiYu p~랅u,9p~i p90ulSiVuDhjTYYt,V5VtYPNY3ujPY3@e^] j h`Z3@Eu 3;u 9=p};tu1;t uVuЉE9}uVu"E;tr]SVu"Eu;u SWu;tu)SVuu}9}t;t SVuЉEMEE PQYYËeM3 |t u=up#t$!hYYVW3<u8h0w#YYt F$|3@_^Ã$3SpPVW>t~t WW#&Y|ܾ_t ~uPӃ|^[UE4ŘlP]jhpZ u439urjY;u  ?j bY]9u8hW"YYu#W\ jEP 3>WXYM 3@ j MYUEV4Ř>uPGYujUY6hP^]Ã=u =r3@jX39D$jhPPt*uhYu5P33@Ã=uiS39U-P~EV5W=P h@h6hj6vj5ՃC;|_^5j5][5Ph@j5PuËL$%%3 @á  T$+P r ;r3UMAVu W+y iDMIMS1UVUU] utJ?vj?ZK;KuB sL!\D u#M!JL! uM!Y] S[MMZU ZRSMJ?vj?Z]]+u]j?u K^;vMJ;։Mv;t^M q;qu; s!tDLu!M!1K!LuM!qM qINM qINu ]}u;M ыYN^qNqN;Nu`LM Ls%}uʻM DD )}uJM YJꍄ ED0E 5Ph@H SQ֋  P@ @HCHyCu `xuiSjp ֡pj5Pȡ+ȍLQHQPKE ;vmE=[_^á W3;u4DPP5W5P;u3_à VhAj54P;ljFu3Cjh hWP;ljF uvW5PЃN>~F^_UQQMASVqW3C}i0Dj?EZ@@Jujhy hWPup;UwC+ GAH@PǀIuˋUEO HAJ HAdD3GFCENCu x!P_^[U MASVuW} +Q iDMOI;|9M]UE;;MI?Mvj?YM_;_uC sML!\D u&M!ML! uM!YO_YOyM+M}}M O?L1vj?_]][Y]YKYKY;YuWLM Ls}uϻM DD }uOM YO U MD2LU FBD2<38/] )uNK\3uN?] Kvj?^EuN?vj?^O;OuB st!\Du#M!NL! uM!Y] OwqwOquuuN?vj?^M yK{YKYK;KuWLM Ls}uοM 9DD }uNM yN ED3@_^[UMSMVWI <}} M 3E؉u;K;#M# u ;]]r;]u$K;#M# u ;؉]r;CUt|D#M# u6#UeHD1#u ֋uu#UE9# tUiDMLD3#um#Mj _^{u ];]r;]u& {u ;؉]r;u؅ۉ]tSYKC8$3zG}MT +MN?M~j?^;J;Ju\ }&M|8Ӊ]#\D\Du3M]! ,OM|8!]u ]M!K]}JzyJzyM yJzQJQJ;Ju^LM L}#} u ;οM |D)} u N {MN 7Mt LMuэN L2uɍy>u;uM; u%MB_^[hxdPD$l$l$+SVWEePEEEEdËMd Y_^[Qáػtt$ЅYt3@3UWVu M};v;|ur)$\Ǻr $p$l$#ъFGFGr$\I#ъFGr$\#ъr$\IS@80( DDDDDDDDDDDDDD$\ltE^_ÐE^_ÐFGE^_ÍIFGFGE^_Ðt1|9u$r $$IǺr +$$ 0XF#шGr$IF#шGFGr$F#шGFGFGV$IDDDDDDDDD D DDDD$ 4E^_ÐFGE^_ÍIFGFGE^_ÐFGFGFGE^_PtP D$@Tȑ@SVtP5uIhjPYYt-V5tFTȑFPNjYSP^[jhZu3; F$;tPYF,;tPuYF4;tPgYF<;tPYYFD;tPKYFH;tP=YFT=ȑtP,Yj Y}F`E;tu;(tPYMj YEFdE;tM9x,tH, 9x4tH4 9x0tH0 9x@tH@ HL;Ԕt=t 98uP3YM VY3uj YËuj sYË t#D$uQPj5u3VWhZPtk5PhZWhZWhZWhZWփ=u(PPPMhtA3hGWYYt+V5tFTȑ~PN3_^hZPthZPPtt$t$PjYjYV tЃ;t$r^átt$YVW 3;ϋsu?tу;ru,hg#ƿ;YstЃ;r3_^jhZxj1Y3}3F954uuPPP50E,9} u79=t;r ;th Yh($YM9}u!54u33F9}tjYjjt$ 0 jjj! UQSVWw}VTL99t @ ;r@;s99t3ɅYۉ]u a3@FXEE FXA@D;}'R~Td8=@DB߃ ;|] ~\u F\du F\Su F\Bu F\1u F\ u F\uF\v\jY~\aPӋEYFX u P_^[øcsm9D$u t$PYY3VL$H 3; PtF-rr$$w@ ^ TH^Árw@^@^jh[uu uuF3}we=uGu ];w3jY!}SUYEMJ}tujWp u:Vj5Pu%9=ܻtVVYvu jYË'U SVu^udEEH;ىMr ;Xs3W~ u3@3҉UËt;ExtEB ;v}tF;E";83~9<@F;|jEPSP`}SEtVMf9MZ?A<8PE.fx "+fxHL A ;rQ;sA'uwjhP 8ɋ~<98tJu-j[;3҅|@0B;Ӊ8~}A 8jhP3PjhӅz9<@t.8p|9<@tNy}}@8pt3Ʌ|@A;Ή8~jh_^[ÃHSSYu` `@@ $;rUVWD$PQf|$FD$H8h/D$;|9=`}NSYt8` `@@ $;r9=`|=`3ۅ~jD$tTMtLu PQt<ˋà 4D$EFF hPYYt.FD$CE;|3ۋ ۍ4>uoFu jXyHPPt?WQt4%>uN@ uNF hPYYtF N@NCr5`P3_^][HVW>t1t G PpP$;r6&Y|_^S39VWu 5t3;u0<=tGVYt:uP;Y=uX5tU*VE>=YtU;Yt7VPYY8u5tt3Y]_^[5UQS] 39UWt ME98"u3Ʌ@ѱ"-tG@At tG@ɋ] t2u t utGe8 t u@H8}t ME93C3@B8\t8"u&u}t H9"u339MMt t\GJutH}u t= t8t.tAtG@GAt@@htG] !Et _[UQQSVW39=uX hVW`P;lj5$t8uލEPWu3ɋ;uEP u%EP >Wu EHYY= 3_^[QQSUVW=LP33;j]u-׋;t tPxu ţu};u׋;tyf9tf9uf9u=PPSSS+S@PVSSD$4׋;t2U;YD$t#SSUPt$$VSSׅut$Y\$\$VTPP;t;t3DXP;t8t @8u@8u+@U;Yu3 UVW V\P_^][YYj h[uElj}ljs"eEt 3@ËeMEyj h [1Etj}tjs"eEt 3@ËeME5=săPQL$-=s+ȋą@P3@ U$t SV3W3; t@r;|;u =hEPR`PuEh_P YY}P @th ~Yu;tuYE;uo>DF,F$F 3E}f EPfLF@3E=} @L0@3E=}`0@5(}u;5(t VY}M Ej YÃ=ujY3V5Y +Ѓ;sN;sQP8YYuV5#YYu^Ë +  9^hYujXà 3j hae};EM Et$YH̋T$ L$tO3D$Wr1كt +шuʃtt uD$_ËD$W|$n$L$Wtt=u~Ѓ3ƒtAt#ttt͍y yyyL$ ttfu~Ѓ3‹tt4t'ttljD$_fD$G_fD$_ÈD$_̋L$t$tNu$$~Ѓ3ƒtAt2t$tt͍AL$+ÍAL$+ÍAL$+ÍAL$+US39VWumha8P;5PhtaWօt|hdaWhPaWփ=uh4aWօt haW֣t<ЅtMQj MQjPtEu=r M )35MtЋ؅ttSЋuu uS_^[̋L$ WVSًt$|$u 't+t/uuatt7uD$[^_tuutu[^D$_Ét~Ѓ3‹t܄t,tt uĉ3҉3t 3uwD$[^_jhaejjk YY3@ËeMjP; uVt$vXvPv Hv@v8v06)v !v$v(v, v0v4vv8v<@v@vDvHvLvPvTvXv\v`vdvhvl~vpvvtnvxfv|^@PE:/$,^Vt$tT ;t;ܗtPYF ;At;tPYv ;pt;5tVY^Vt$F ;A t;tPUYF ;At;tP8YF ;At;tPYF ;At;tPYF ;At;tPYF ;A t;tPYv$ ;p$t;5tVY^UV3PPPPPPPPU I t $uI t $s ^̋T$L$u<:u. t&:au% t:Au t:au uҋ3Ðt:u ttf:u t:au t̋D$ tJT$VW|$ ׃t8t:uXt8uENW8u;u_^Ëȃt+t'NW8u8u 8u8_^Åtċ8ut8uރt;uɃ_^jhg395u5EP3GWhgW(Pt=tPxu ;u܉u9uuEVVuu 39u Pu,P}؅e?ÃYeuSjVx M3@Ëe3M}؅uWjlYYtgEWVuu ju,PtuPVu(PE܃}tV˾YEn];u}u=S~Yu3D;tjjMQu PWt݉u uuu uS0PtVZYǍeUWVSM'ً}3ˋu F3:Gwtы[^_UV3PPPPPPPPU I t $u t $sF ^j8hg398u8SS3FVhghS Pt58tPxu 89]~MEI8t@;u+E8;3}ԉ]ȉ]9] uE SSuu39]$Pu ,Pu;E6eĉEM3@Ëe,3ۉ]M}ԋu9]u6P菼YE;`EVuuuju ,PSSVuu u P};E t-9];}uuVuu u PE?eĉEM3@Ëe^3ۉ]M}ԋu9]u?PYE;t@EWuVuu u Pt!SS9]uSSuuWuSu PP9]t u~Y9]t upY[]3]9]uE9] uE uYEu3!;E SSMQuPu /E;tSSuPu u$Pu;]e}VSW 3@Ëe)33M;u#u蕺Y;t1uSW EuWuuu u$PE;u3&uuEPWu uqu9]t#W:Yuuuuu u$P9]t uYƍeDjhh=u:jYeuVYEt v uuM$}uuj5PËujYUt=N@uNVEP Pu3uP3P3P3EPPE3E35u N@^hhiE<3;tMu uYYM3@ËeEHtiDžhhDž hMhPQ`Puh_P,YYPY e܉]6PWS[ M3@Ëet33ۃMu;uVjMYY;u3EVSuuju,P9}t WWuuVSWu PPtfEE^9}uWWWWVSWu PP;tCVjYYE;t2WWVPVSWu PP;uuQY}}t M]9}tS0YE̍eM[UQE HMw IHATVWyHDw_^tjEUEX E3E@jqqMQPEPjuE#E̋D$L$ ȋL$ u D$S؋D$d$؋D$[UWVSM tMu} AZ I& t' t#8r8w8r8w8u u38t rً[^_VD$ u(L$D$ 3؋D$d$ȋd$Gȋ\$T$ D$ ud$ȋD$r;T$ wr;D$v N+D$T$3+D$T$ ؃ʋӋًȋ^̍B[Í$d$3D$ST$t 8tτtQu WV ؋ ~333ƃu%t%uu^_[3ËB8t6t8t't8tt8tt^_B[ÍB^_[ÍB^_[ÍB^_[%Ppsssls\sBs6s&sssrrrrrrrrrr\rBr*rrq,opLpZpppppppppppp qq,q@qNqbqvqqqqqqqonnnnnnnln^nDn0nnnmmmmmmmnmTm6m mmlllllllnlPlcalculate_key(password, cycles, salt=None, digest='sha256') -- Calculate decryption key.decompress(data[, bufsize]) -- Returns a string containing the up to bufsize decompressed bytes of the data. After calling, some of the input data may be available in internal buffers for later processing.flush() -- Return remaining data.reset([maxlength]) -- Resets the decompression object.decompress(data[, maxlength]) -- Decompress the data, returning a string containing the decompressed data. If the string has been compressed without an EOS marker, you must provide the maximum length as keyword parameter. decompress(data, bufsize[, maxlength]) -- Decompress the data using an initial output buffer of size bufsize. If the string has been compressed without an EOS marker, you must provide the maximum length as keyword parameter. compress(string, dictionary=23, fastBytes=128, literalContextBits=3, literalPosBits=0, posBits=2, algorithm=2, eos=1, multithreading=1, matchfinder='bt4') -- Compress the data in string using the given parameters, returning a string containing the compressed data.decompress_compat(string) -- Decompress the data in string, returning a string containing the decompressed data. decompress_compat(string, bufsize) -- Decompress the data in string using an initial output buffer of size bufsize. decompress(data[, bufsize]) -- Returns a string containing the up to bufsize decompressed bytes of the data. After calling, some of the input data may be available in internal buffers for later processing.reset() -- Resets the decompression object.decompressobj_compat() -- Returns object that can be used for decompression.   /BD7q۵[V9Y?^[1$} Ut]rހܛtiGƝ̡ $o,-tJܩ\ڈvRQ>m1'Y GQcg)) '8!.m,M 8STs e jv.,r迢KfpK£Ql$օ5pjl7LwH'4 9JNOʜ[o.htocxxȄnjlPxqV[$2FlsFreeFlsSetValueFlsGetValueFlsAllockernel32.dllCorExitProcessmscoree.dllP#T###runtime error TLOSS error SING error DOMAIN error R6029 - This application cannot run using the active version of the Microsoft .NET Runtime Please contact the application's support team for more information. R6028 - unable to initialize heap R6027 - not enough space for lowio initialization R6026 - not enough space for stdio initialization R6025 - pure virtual function call R6024 - not enough space for _onexit/atexit table R6019 - unable to open console device R6018 - unexpected heap error R6017 - unexpected multithread lock error R6016 - not enough space for thread data This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. R6009 - not enough space for environment R6008 - not enough space for arguments R6002 - floating point not loaded Microsoft Visual C++ Runtime Library Runtime Error! Program: ...InitializeCriticalSectionAndSpinCount&& h(((( H   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~(,-GetProcessWindowStationGetUserObjectInformationAGetLastActivePopupGetActiveWindowMessageBoxAuser32.dll22HH:mm:ssdddd, MMMM dd, yyyyMM/dd/yyPMAMDecemberNovemberOctoberSeptemberAugustJulyJuneAprilMarchFebruaryJanuaryDecNovOctSepAugJulJunMayAprMarFebJanSaturdayFridayThursdayWednesdayTuesdayMondaySundaySatFriThuWedTueMonSun ((((( H h(((( H Hq7u7;;99::=Program: A buffer overrun has been detected which has corrupted the program's internal state. The program cannot safely continue execution and must now be terminated. Buffer overrun detected!A security error of unknown cause has been detected which has corrupted the program's internal state. The program cannot safely continue execution and must now be terminated. Unknown security failure detected!==SunMonTueWedThuFriSatJanFebMarAprMayJunJulAugSepOctNovDecAAH`jxko QjsPpsssls\sBs6s&sssrrrrrrrrrr\rBr*rrq,opLpZpppppppppppp qq,q@qNqbqvqqqqqqqonnnnnnnln^nDn0nnnmmmmmmmnmTm6m mmlllllllnlPlPyString_FromStringAndSizePyEval_RestoreThreadPyEval_SaveThread PyString_Size`PyErr_FormatPyExc_TypeErrorAPyType_IsSubtype PyString_Type_Py_NoneStructPyArg_ParseTupleAndKeywordsPyEval_InitThreadsEPyModule_AddStringConstantCPyModule_AddIntConstantDPyModule_AddObjectPy_InitModule4BPyType_Ready@PyType_GenericNewxPyErr_SetStringPyExc_ValueError_PyString_ResizecPyErr_NoMemoryPyString_FromStringPyArg_ParseTuplePyCObject_ImportPyObject_HasAttrStringzPyErr_WarnPyExc_DeprecationWarningPyGILState_ReleasefPyErr_PrintPyObject_CallMethodPyGILState_EnsurePyObject_FreePy_FindMethodPyExc_AttributeError_PyObject_Newpython23.dllGetVersionExAEnterCriticalSectionGLeaveCriticalSectionzDeleteCriticalSectioniGetLastError.CloseHandleWaitForSingleObjectICreateEventA SetEventResetEventeCreateSemaphoreAReleaseSemaphoreInitializeCriticalSectionHeapAlloc HeapFreeHeapReAllocExitThread>GetCurrentThreadIdiCreateThreadRtlUnwindGetCommandLineA HeapDestroyHeapCreatevVirtualFreesVirtualAllocTTlsAllocSetLastErrorUTlsFreeWTlsSetValueVTlsGetValueGetProcAddresswGetModuleHandleAExitProcessOTerminateProcess:GetCurrentProcess`UnhandledExceptionFilterInterlockedExchange{VirtualQuerySetHandleCountGetStdHandle^GetFileTypeGetStartupInfoAuGetModuleFileNameAFreeEnvironmentStringsAMGetEnvironmentStringsFreeEnvironmentStringsWWideCharToMultiByteOGetEnvironmentStringsWWriteFileGetACPGetOEMCPGetCPInfoHLoadLibraryAlGetLocaleInfoAGetStringTypeAkMultiByteToWideCharGetStringTypeW:LCMapStringA;LCMapStringWHeapSizeQueryPerformanceCounterGetTickCount;GetCurrentProcessIdGetSystemTimeAsFileTimeyVirtualProtectGetSystemInfoKERNEL32.dllyMtsst tpylzma.pydinitpylzma=,l-sha256passwordcyclessaltdigest8DLTs#i|Ossalt must be a string, got a %ssha256digest %s is unsupportedcompressdecompressdecompress_compatdecompressobj_compatcalculate_key#TȀ 0SԀ-V3WQpylzmadecompressobjcompressfileAESDecryptSDK_VER_MAJORSDK_VER_MINORSDK_VER_BUILD 4.65SDK_VERSION2009-02-03SDK_DATE: Igor Pavlov : Public domainSDK_COPYRIGHT4.65 : Igor Pavlov : Public domain : 2009-02-03SDK_VERSION_COPYRIGHT_DATEmaxlength|ithe decompressed size must be greater than zeros#|ibufsize must be greater than zeroIncorrect stream propertiesdata error during decompressiondata error during decompressiondata error during decompressionnot enough input data for decompressionmaxlength|idecompressflushresetpRăpR̃pRpylzma.decompressobjDecompression class0؃cStringIO_CAPIcStringIOdocstring is todo |iread<$infiledictionaryfastBytesliteralContextBitsliteralPosBitsposBitsalgorithmeosmultithreadingmatchfinderdlxЅO|iiiiiiiisdictionary must be between 0 and 28fastBytes must be between 5 and 255literalContextBits must be between 0 and 8literalPosBits must be between 0 and 4posBits must be between 0 and 4algorithm must be between 0 and 2matchfinder selection is deprecated and will be ignoredreadfirst parameter must be a file-like objectcould not set encoder properties: %dcould not generate stream headerpylzma.compressfileFile compression class(`Ddatabufsizemaxlengths#|iiError while decompressing: %dIncorrect stream propertiesdata error during decompressionError while decompressing: %ddatadictionaryfastBytesliteralContextBitsliteralPosBitsposBitsalgorithmeosmultithreadingmatchfinderHP\h|s#|iiiiiiiisdictionary must be between 0 and 27fastBytes must be between 5 and 273literalContextBits must be between 0 and 8literalPosBits must be between 0 and 4posBits must be between 0 and 4algorithm must be between 0 and 2matchfinder selection is deprecated and will be ignoredcould not set encoder properties: %dError during compressing: %direadkeyivhl|s#s#key must be 16, 24 or 32 bytes, got %div must be %d bytes, got %ddecrypt(data) -- Decrypt given data.s#data must be a multiple of %d bytes, got %ddecrypt ,ȋpylzma.AESDecryptAES decryption classH(\(+s#|idata error during decompressionunknown return code from lzmaDecode: %ds#|ibufsize must be greater than zerodata error during decompressionunknown return code from lzmaDecode: %ddecompressreset.V2Wunused_datano attribute named '%s'LZMACompatDecompressd2033GenuineIntelAuthenticAMDCentaurHaulsc|w{ko0g+׫vʂ}YGԢr&6?4q1#'u ,nZR;ֳ)/S [j˾9JLXCM3EPfHa5WiَU(ߌ BhA-T @6  x         ! 5A CPR S WY l m pr   )    ^|^ P^ ]]\]8] ]\\t\<\\p[x`[yP[z@[<[,[CܗcCC`y!@~ڣ @ڣ AϢ[@~QQ^ _j21~N@bbbbbbbbbbb|btbhbdb`b\bXbTbPbLbHbDb@b >>!>->=>D>Q>X>_>~>>>h?p?w?????? 00&090@0G0Z0b0i0p0000000001C1v1{111112;2O2p2w2~22/3A3H3O3[3c3j3334#4}45"5)515E556=6B6c6p6v666666666667 777&7-747A7G7P77L8,9;9@9G9V9b9u9999:1;6;P;;;;;;;!<(S>b>j>q>x>>>>??3?:?A???0P 0L0q0000000001112222223833333333334 442494P$J4Q4X4_4m4t4444444M7 y;;;;;;; >>,>H>O>]>s>>>>>>>>??(?6?L?_?f?t????????00/0?0K0Z0m00000000011(1;1H1T1p111111111334F4v4}44455:5A5W555555:6R6o66666677t7777778!8>8H888889 9999 93979=9A9G9K9<:?H >$>(>,>0>4>8><>@>D>H>L>P>T>X>\>`>d>h>l>p>t>x>|>>>>>>?G??/0e3r33778:d:000000001 11 1'131A1H1R1m11111252N2X22222 33D3W3z333333 44(4`4s444444 5+5>5H5v5{5555646F6L666677X7p7w77777777888 88888f8l8p8t8x8889 999999c9999999999:: :::`:::9;?;;;;;;;0<[P>Y>???????00'0T0o0w0}000001.1111 222'2Q2]2c22222222n3333333334444%4L4X4b4j4t4z4444444444477#7=7B7Q7Z7g7r77777777777778 88&8-838A8G8L8R8`8l888889<<7I7P7V7^7i7p7x7~77777788888^999:%:::|:::A;V;n;;;;<->>l>z>>>>?#?1?@?v??????? @<01+1k1|111111122'232?2F2r2223&32393j3v3}344/4:4M4v4444445505C5J5k5z5555555555555.6K6i66667[7c7j7y777777@8J8O8T8Y8l8z8888 9#909K9h9v99999999:*:A:J:P::::::::::;%;:;@;H;O;Z;;;;;;;;;;;-<5<=E>u>>>*?;?C??????@ 00000T1112?2 5P0::(:8:H:T:X:d:h:x::::;;;$;(;d?h?`00111177777778899 ::T:X:000\0`0d0h0111 1$1,10141<1@1D1L1P1T1\1p1t123333333334T4`4444D5H5P555555555567708L8l88889999999999p;t;(<,<4<<<< =>>> >$>,>>>>>033334 444$4,444<4D4L4T4\4d4l4t44444777 7$7(7,7074787<7@7D7H7L7P7T7X7\7`7d7h7l7p7t7x7|777777777777777777777777777778 888PK<[v>2EGG-INFO/dependency_links.txt PK<[v>So EGG-INFO/native_libs.txtpylzma.pyd PKT<2EGG-INFO/not-zip-safe PK<[v> ooEGG-INFO/PKG-INFOMetadata-Version: 1.0 Name: pylzma Version: 0.4.4 Summary: Python bindings for the LZMA library by Igor Pavlov. Home-page: http://www.joachim-bauch.de/projects/pylzma/ Author: Joachim Bauch Author-email: mail@joachim-bauch.de License: LGPL Download-URL: http://pypi.python.org/pypi/pylzma/ Description: PyLZMA provides a platform independent way to read and write data that has been compressed or can be decompressed by the LZMA library by Igor Pavlov. Keywords: lzma compression Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: Programming Language :: Python Classifier: Topic :: Software Development :: Libraries :: Python Modules Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL) Classifier: Operating System :: OS Independent PK<[v>\aEGG-INFO/requires.txthashlib [decrypt] m2cryptoPK<[v> EGG-INFO/SOURCES.txtLICENSE.txt MANIFEST.in README.txt RELEASE-VERSION ez_setup.py py7zlib.py readme.txt setup.cfg setup.py version.py doc/THANKS.txt doc/usage.txt pylzma.egg-info/PKG-INFO pylzma.egg-info/SOURCES.txt pylzma.egg-info/dependency_links.txt pylzma.egg-info/not-zip-safe pylzma.egg-info/requires.txt pylzma.egg-info/top_level.txt src/pylzma/pylzma.c src/pylzma/pylzma_aes.c src/pylzma/pylzma_compress.c src/pylzma/pylzma_compressfile.c src/pylzma/pylzma_decompress.c src/pylzma/pylzma_decompress_compat.c src/pylzma/pylzma_decompressobj.c src/pylzma/pylzma_decompressobj_compat.c src/pylzma/pylzma_streams.c src/7zip/C/Aes.c src/7zip/C/Aes.h src/7zip/C/AesOpt.c src/7zip/C/CpuArch.c src/7zip/C/CpuArch.h src/7zip/C/RotateDefs.h src/7zip/C/Sha256.c src/7zip/C/Sha256.h src/compat/LzmaCompatDecode.c src/compat/LzmaCompatDecode.h src/compat/copying.txt src/pylzma/pylzma.c src/pylzma/pylzma.h src/pylzma/pylzma_aes.c src/pylzma/pylzma_aes.h src/pylzma/pylzma_compress.c src/pylzma/pylzma_compress.h src/pylzma/pylzma_compressfile.c src/pylzma/pylzma_compressfile.h src/pylzma/pylzma_compressobj.c src/pylzma/pylzma_compressobj.h src/pylzma/pylzma_decompress.c src/pylzma/pylzma_decompress.h src/pylzma/pylzma_decompress_compat.c src/pylzma/pylzma_decompress_compat.h src/pylzma/pylzma_decompressobj.c src/pylzma/pylzma_decompressobj.h src/pylzma/pylzma_decompressobj_compat.c src/pylzma/pylzma_decompressobj_compat.h src/pylzma/pylzma_streams.c src/pylzma/pylzma_streams.h src/sdk/7zFormat.txt src/sdk/7zVersion.h src/sdk/LzFind.c src/sdk/LzFind.h src/sdk/LzFindMt.c src/sdk/LzFindMt.h src/sdk/LzHash.h src/sdk/LzmaDec.c src/sdk/LzmaDec.h src/sdk/LzmaEnc.c src/sdk/LzmaEnc.h src/sdk/Methods.txt src/sdk/Threads.c src/sdk/Threads.h src/sdk/Types.h src/sdk/history.txt src/sdk/lzma.txtPK<[v>4EGG-INFO/top_level.txtpy7zlib pylzma PKƭW=qgqg py7zlib.pyPK<[v>0:|:| gpy7zlib.pycPK<[v>lQ' pylzma.pyPK<[v> ?pylzma.pycPK-[v>1 ~pylzma.pydPK<[v>2EGG-INFO/dependency_links.txtPK<[v>So EGG-INFO/native_libs.txtPKT<2$EGG-INFO/not-zip-safePK<[v> ooXEGG-INFO/PKG-INFOPK<[v>\aEGG-INFO/requires.txtPK<[v> DEGG-INFO/SOURCES.txtPK<[v>4cEGG-INFO/top_level.txtPK