qnapi-0.1.9/0000755000174100017410000000000012567301464012525 5ustar jenkinsjenkinsqnapi-0.1.9/README.md0000644000174100017410000000733312567301464014012 0ustar jenkinsjenkins# QNapi [![Build Status](https://travis-ci.org/QNapi/qnapi.svg?branch=master)](https://travis-ci.org/QNapi/qnapi) QNapi is free software for automatic fetching subtitles for given movie file. It uses online databases such as NapiProjekt, OpenSubtitles and Napisy24. It is based on Qt5 library, so it can be launched on any supported operating system, including Windows, OSX and Linux. ## Binary packages Latest binary packages are available at http://qnapi.github.io/#download ## Building from source #### Prerequisites * C++ compiler installed (`clang++`, `g++` or *MinGW* for Windows), present in `PATH` * Qt 5.1+ (most recent 5.x recommended) installed with `qmake` present in `PATH` (you can find one at http://www.qt.io/download-open-source/) #### Binary prerequisities QNapi depends on these binary executables: * 7zip (7z, 7za) - to unpack subtitles, which are commonly compressed with 7z * ffprobe (from ffmpeg) - to retrieve movie info such as dimensions or frame rate Linux/UNIX users will have such binaries as separate packages. Statically compiled 7zip binaries are provided in this repository for Windows/OSX users at `win32/content/7za.exe` and `macx/content/7za`, respectively. > **Important!** For Windows or OSX users it is required to manually download and unpack ffprobe binary. > > * Windows - `ffprobe.exe` static binary is available at http://ffmpeg.zeranoe.com/builds/win32/static/ and should be unpacked to `win32/content/` > * OSX - `ffprobe` static binary is available at https://evermeet.cx/pub/ffprobe/ and should be unpacked to `macx/content` #### Cloning the source code First, you have to clone project source code using git client: `$ git clone --recursive https://github.com/QNapi/qnapi.git` #### Compiling To compile the application, you have to execute two following commands in `qnapi` root directory: `$ qmake` This will produce `Makefile`. `$ make` (or `mingw32-make` on Windows) This will compile the sources and build executable binary (or app bundle on OSX). > **Important!** Windows users have to execute one more command: > > `$ make install` (or `mingw32-make install`) > > This one will copy all binaries, libraries and other dependencies to `win32/out` directory. #### Running By default, output binaries are placed by `make` in different locations, depending on your operating system: * Linux - `qnapi` in root project directory * OSX - `macx/QNapi.app` bundle * Windows - `win32/out/qnapi.exe` executable After you locate your binaries, you can run the application. > ##### 7zip note ##### > For proper subtitle extraction after download, *7zip* executable is required to be passed in application's settings. > Linux users have to install 7zip binary package from distribution repositories or compile on its own. > For Windows and OSX there are pre-build binaries included in this repository, in `win32` and `macx` directories appropriately and should be automatically detected by the application. ## Making redistributable package ### OSX #### Prerequisites You need `appdmg` script installed. You can found it at https://github.com/LinusU/node-appdmg #### Building .dmg image To build .dmg image for OSX with nice, drag&drop installer, you have to execute: `$ make appdmg` `QNapi-x.y.z.dmg` will appear in `macx` directory when command is completed. ### Windows #### Prerequisites You need to have **NSIS** 2.x installed. You can found it at http://nsis.sourceforge.net #### Building Windows installer Installer script is placed at `win32/QNapi-setup.nsi`. You can build binary exe package using NSIS user interface (by `right mouse button -> compile NSIS script`) or from command line: `$ C:\Path\To\makensis.exe QNapi-setup.nsi` After a while, `QNapi-x.y.z-setup.exe` file will appear in `win32` directory. qnapi-0.1.9/ui/0000755000174100017410000000000012567301464013142 5ustar jenkinsjenkinsqnapi-0.1.9/ui/frmscan.ui0000644000174100017410000001767412567301464015151 0ustar jenkinsjenkins frmScan 0 0 770 520 740 500 QNapi - skanowanie katalogów i dopasowywanie napisów :/icon/qnapi-48-icon.png Wskaż katalog do przeszukania: 0 0 :/ui/folder.png false Skanuj 0 0 0 Filtr rozszerzeń plików: true *.avi *.asf *.divx *.mkv *.mov *.mp4 *.mpeg *.mpg *.ogm *.rm *.rmvb *.wmv *.* 0 Pomiń pliki zawierające w nazwie: PL dubbing Podczas wyszukiwania pomijaj pliki, do których istnieją juz napisy 10 Znalezione pliki z filmami: 695 170 QAbstractItemView::NoEditTriggers QAbstractItemView::NoSelection QAbstractItemView::ScrollPerPixel QAbstractItemView::ScrollPerPixel Zaznacz wszystko Odznacz wszystko Odwróć zaznaczenie Qt::Horizontal 40 20 Anuluj false Pobierz napisy Podążaj za dowiązaniami symbolicznymi true QCheckedListWidget QListWidget
qcheckedlistwidget.h
leDirectory pbDirectorySelect pbScan cbFilters leSkipFilters cbSkipIfSubtitlesExists leDirectory returnPressed() pbScan click() 302 43 723 37 pbCancel clicked() frmScan close() 570 408 369 214 pbGet clicked() frmScan accept() 671 408 369 214
qnapi-0.1.9/ui/frmlistsubtitles.ui0000644000174100017410000001064512567301464017126 0ustar jenkinsjenkins frmListSubtitles 0 0 573 343 500 300 QNapi - wybierz napisy z listy :/icon/qnapi-48-icon.png:/icon/qnapi-48-icon.png Qt::Horizontal 176 25 Z poniższej listy wybierz napisy, które chcesz dopasować do pliku <b>film.avi</b>: true QAbstractItemView::NoEditTriggers false true QAbstractItemView::SingleSelection QAbstractItemView::SelectRows QAbstractItemView::ScrollPerPixel QAbstractItemView::ScrollPerPixel false Pobierz napisy Nie pobieraj napisów dla tego filmu Na zielono podświetlono napisy <b>prawdopodobnie</b> pasujące do Twojego filmu. Qt::AlignJustify|Qt::AlignVCenter Na czerwono podświetlono napisy <b>prawdopodobnie</b> nie pasujące do Twojego filmu. pbDownload clicked() frmListSubtitles accept() 506 317 286 167 pbDontDownload clicked() frmListSubtitles reject() 130 317 286 167 twSubtitles doubleClicked(QModelIndex) pbDownload click() 166 109 480 320 qnapi-0.1.9/ui/opensubtitles/0000755000174100017410000000000012567301464016042 5ustar jenkinsjenkinsqnapi-0.1.9/ui/opensubtitles/frmopensubtitlesconfig.ui0000644000174100017410000001002512567301464023172 0ustar jenkinsjenkins frmOpenSubtitlesConfig 0 0 359 146 330 130 450 180 OpenSubtitles - konfiguracja Login: Hasło: QLineEdit::Password Qt::Vertical 318 11 Załóż konto Qt::Horizontal 53 20 Anuluj Zapisz pbCancel clicked() frmOpenSubtitlesConfig reject() 236 101 164 59 pbSave clicked() frmOpenSubtitlesConfig accept() 300 101 164 59 leNick returnPressed() frmOpenSubtitlesConfig accept() 235 18 179 72 lePass returnPressed() frmOpenSubtitlesConfig accept() 235 51 179 72 qnapi-0.1.9/ui/frmoptions.ui0000644000174100017410000007046412567301464015714 0ustar jenkinsjenkins frmOptions 0 0 642 430 QNapi - opcje programu :/icon/qnapi-48-icon.png:/icon/qnapi-48-icon.png 0 Główne Ścieżka do programu 7z: /usr/bin/7z 11 false :/ui/folder.png:/ui/folder.png Ścieżka do programu ffprobe: /usr/bin/ffprobe 16 false :/ui/folder.png:/ui/folder.png Ścieżka do katalogu tymczasowego: /tmp :/ui/folder.png:/ui/folder.png Preferowany jezyk napisów: Zapasowy jezyk napisów: Nie twórz kopii istniejących napisów. Nadpisuj je bez pytania. Zmień uprawnienia do pliku z napisami na: 6 0 false 7 6 false 7 4 false 7 4 Qt::Horizontal 40 20 Pokazuj ikonę w doku systemowym (wymaga ponownego uruchomienia aplikacji) true Qt::Vertical 568 172 Moduły pobierania napisów Dostępne moduły pobierania napisów: 0 0 Polityka pobierania napisów: 1 3 Zawsze pokazuj listę dostępnych napisów Pokazuj listę dostępnych napisów tylko wtedy, gdy potrzeba Zawsze pobieraj pierwsze pasujące napisy i nigdy nie pokazuj listy QAbstractItemView::NoEditTriggers QAbstractItemView::NoDragDrop QAbstractItemView::SingleSelection QAbstractItemView::SelectRows QAbstractItemView::ScrollPerPixel QAbstractItemView::ScrollPerPixel false Przesuń w górę :/ui/arrow_up.png:/ui/arrow_up.png Wyszukaj wszystkie dostępne napisy (wolniej) Przerwij wyszukiwanie po znalezieniu pasujących napisów (szybciej) Wyszukiwanie napisów: false Przesuń w dół :/ui/arrow_down.png:/ui/arrow_down.png false Informacje :/ui/information.png:/ui/information.png false Konfiguruj :/ui/wrench.png:/ui/wrench.png Przetwarzanie napisów Włącz przetwarzanie pobranych napisów true true Kodowanie znaków: 0 0 Pozostaw oryginalne Konwertuj (ustawienia poniżej) Zamień znaki diakrytyczne na ich odpowiedniki ASCII Qt::Horizontal QSizePolicy::Fixed 30 20 false 0 0 Z: Qt::AlignCenter false 0 0 Windows-1250 Qt::Horizontal QSizePolicy::Fixed 25 20 false 0 0 Na: Qt::AlignCenter false 0 0 UTF-8 Qt::Horizontal QSizePolicy::Fixed 25 20 0 Qt::Horizontal QSizePolicy::Fixed 30 20 false Pokaż wszystkie dostępne kodowania znaków false <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'DejaVu Sans'; font-size:10pt;">movie info</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><span style=" font-family:'DejaVu Sans'; font-size:10pt;">synchro</span></p></body></html> false Format napisów: 0 0 Pozostaw oryginalny Rozszerzenie napisów: 0 0 Domyślne srt sub txt true Nie dodawaj informacji o QNapi przy konwersji pomiędzy formatami false Próbuj automatycznie wykrywać kodowanie źródłowe false Usuń z pliku z napisami linie, które zawierają następujące słowa: cbAutoDetectEncoding cbRemoveLines teRemoveWords lbSubFormat cbSubFormat lbSubExtension cbSubExtension cbSkipConvertAds Przywróć domyslne Qt::Horizontal 40 20 Anuluj Zapisz tabOptions le7zPath pb7zPathSelect leTmpPath pbTmpPathSelect cbLang cbNoBackup cbShowDockIcon twEngines pbMoveUp pbMoveDown pbEngineConf pbEngineInfo cbSearchPolicy cbDownloadPolicy cbAutoDetectEncoding cbEncFrom cbEncTo cbShowAllEncodings cbRemoveLines teRemoveWords pbRestoreDefaults pbCancel pbSave pbSave clicked() frmOptions accept() 607 404 327 211 pbCancel clicked() frmOptions reject() 528 404 327 211 cbRemoveLines toggled(bool) teRemoveWords setEnabled(bool) 191 213 129 251 cbChangePermissions toggled(bool) sbUPerm setEnabled(bool) 108 225 450 244 cbChangePermissions toggled(bool) sbGPerm setEnabled(bool) 176 224 496 244 cbChangePermissions toggled(bool) sbOPerm setEnabled(bool) 124 225 542 244 qnapi-0.1.9/ui/napiprojekt/0000755000174100017410000000000012567301464015470 5ustar jenkinsjenkinsqnapi-0.1.9/ui/napiprojekt/frmnapiprojektconfig.ui0000644000174100017410000000770612567301464022262 0ustar jenkinsjenkins frmNapiProjektConfig 0 0 360 150 330 130 450 180 NapiProjekt - konfiguracja Login: Hasło: QLineEdit::Password Qt::Vertical 318 41 Załóż konto Qt::Horizontal 108 20 Anuluj Zapisz pbCancel clicked() frmNapiProjektConfig reject() 236 101 164 59 pbSave clicked() frmNapiProjektConfig accept() 300 101 164 59 leNick returnPressed() frmNapiProjektConfig accept() 220 18 164 59 lePass returnPressed() frmNapiProjektConfig accept() 220 51 164 59 qnapi-0.1.9/ui/napiprojekt/frmnapiprojektcorrect.ui0000644000174100017410000001225412567301464022450 0ustar jenkinsjenkins frmCorrect 0 0 570 380 460 270 Wyślij poprawione napisy :/icon/qnapi-48-icon.png:/icon/qnapi-48-icon.png Wskaż plik z filmem: :/ui/folder.png:/ui/folder.png Wskaż poprawione napisy do powyższego pliku: :/ui/folder.png:/ui/folder.png &Język napisów: cbLanguage Qt::Horizontal 31 20 0 0 Polski :/languages/pl.gif:/languages/pl.gif Angielski :/languages/en.gif:/languages/en.gif &Opis poprawki: teComment 0 0 Wypełnij wszystkie pola, aby wysłać poprawkę &Anuluj false &Wyślij pushButton clicked() frmCorrect close() 378 299 477 247 qnapi-0.1.9/ui/napiprojekt/frmnapiprojektreport.ui0000644000174100017410000001277212567301464022327 0ustar jenkinsjenkins frmReport 0 0 560 280 450 230 Zgłoś niepasujące napisy :/icon/qnapi-48-icon.png:/icon/qnapi-48-icon.png &Wybierz plik z filmem: pbMovieSelect 0 0 :/ui/folder.png:/ui/folder.png &Język napisów: cbLanguage Polski :/languages/pl.gif:/languages/pl.gif Angielski :/languages/en.gif:/languages/en.gif &Problem: cbProblem Napisy wyświetlają się w nieodpowiednim momencie Napisy są do innego filmu Napisy przetłumaczone przez komputerowy translator Tylko część napisów Inny powód (wpisz poniżej) false 0 0 Wskaż plik z filmem oraz opisz problem. 0 0 &Anuluj false 0 0 Wyślij raport pushButton clicked() frmReport close() 305 195 423 69 qnapi-0.1.9/ui/napiprojekt/frmnapiprojektupload.ui0000644000174100017410000001121112567301464022263 0ustar jenkinsjenkins frmUpload 0 0 679 242 540 185 QNapi - dodawanie nowych napisów :/icon/qnapi-48-icon.png:/icon/qnapi-48-icon.png Wskaż katalog, z którego dodać napisy: 0 0 :/ui/folder.png:/ui/folder.png false 0 0 &Skanuj false 0 Katalogów: <b>0</b> Filmów: <b>0</b> Napisów: <b>0</b> 0 0 Anuluj false 0 0 Wyślij napisy do serwera Podążaj za dowiązaniami symbolicznymi true pbCancel clicked() frmUpload close() 321 152 267 86 qnapi-0.1.9/ui/frmprogress.ui0000644000174100017410000000603512567301464016056 0ustar jenkinsjenkins frmProgress 0 0 600 140 580 140 800 140 true QNapi - pobieranie napisów... :/icon/qnapi-48-icon.png 0 0 75 true QFrame::NoFrame QFrame::Plain 0 0 50 false Pobieranie napisów do filmu... Qt::AutoText false Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter 24 Anuluj pbCancel clicked() frmProgress close() 554 99 299 59 qnapi-0.1.9/ui/frmsummary.ui0000644000174100017410000000573512567301464015715 0ustar jenkinsjenkins frmSummary Qt::WindowModal 0 0 419 333 QNapi - rezultat dopasowania napisów :/icon/qnapi-48-icon.png:/icon/qnapi-48-icon.png 0 24 Pobrano napisy dla 5 plików Qt::AutoText 0 24 Nie udało się znaleźć napisów dla 3 plików 0 Qt::Horizontal 40 20 0 0 OK Qt::Horizontal 40 20 pbOK clicked() frmSummary accept() 348 308 348 164 qnapi-0.1.9/ui/frmconvert.ui0000644000174100017410000004437212567301464015700 0ustar jenkinsjenkins frmConvert 0 0 584 362 Dialog Źródłowy plik z napisami: 0 false :/ui/folder.png:/ui/folder.png 4 8 false Wykryto format: 75 true Qt::Horizontal QSizePolicy::Fixed 280 20 false Docelowy format napisów: Qt::Horizontal 40 20 false 180 0 180 16777215 mDVD MPL2 SRT TMP false Liczba klatek na sekundę filmu (FPS): Qt::Horizontal 40 20 false 0 0 180 0 true 23.976 24 25 29.97 30 50 59.94 60 false Wykryj docelowy FPS z pliku :/ui/folder.png:/ui/folder.png false Docelowe rozszerzenie napisów: Qt::Horizontal 40 20 false 0 0 180 0 Domyślne srt sub txt false Zmień FPS (klatki/sekundę) napisów Qt::Horizontal 40 20 false z false 100 0 true 23.976 24 25 29.97 30 50 59.94 60 false na Qt::AlignCenter false 100 0 true 23.976 24 25 29.97 30 50 59.94 60 false Wykryj docelowy FPS z pliku :/ui/folder.png:/ui/folder.png false Przesuń napisy Qt::Horizontal 40 20 false 0 0 180 0 180 16777215 o sekund -999999999.000000000000000 999999999.000000000000000 false Docelowa nazwa pliku: false 0 false Qt::Vertical 478 34 Qt::Horizontal 40 20 false 140 30 Konwertuj cbChangeFPS toggled(bool) lbFrom setEnabled(bool) 153 201 311 203 cbChangeFPS toggled(bool) cbFPSFrom setEnabled(bool) 118 202 357 201 cbChangeFPS toggled(bool) lbTo setEnabled(bool) 140 199 441 204 cbChangeFPS toggled(bool) cbFPSTo setEnabled(bool) 97 202 478 203 cbChangeFPS toggled(bool) pbTargetMovieFPSSelect setEnabled(bool) 83 203 560 197 cbDelaySubtitles toggled(bool) sbDelayOffset setEnabled(bool) 31 235 475 232 qnapi-0.1.9/ui/frmabout.ui0000644000174100017410000001716512567301464015332 0ustar jenkinsjenkins frmAbout 0 0 780 480 740 465 QNapi - informacje o programie Zamknij Qt::Horizontal 217 20 Program korzysta z bazy www.opensubtitles.org Qt::AlignCenter true Program korzysta z bazy www.napiprojekt.pl Qt::AlignCenter true Program korzysta z bazy www.napisy24.pl Qt::AlignCenter true <html><head/><body><p>QNapi jest programem do automatycznego pobierania i dopasowywania napisów do filmów. </p><p>Program rozprowadzany jest na licencji GNU General Public License w wersji drugiej lub późniejszej.</p><p><a href="http://qnapi.github.io"><span style=" text-decoration: underline; color:#0000ff;">http://qnapi.github.io</span></a></p></body></html> Qt::RichText Qt::AlignCenter true true 0 0 :/icon/qnapi-48.png Qt::AlignCenter 10 16 75 true QNapi version Qt::AlignCenter Qt::Horizontal 226 20 0 64 Dziękuję wszystkim osobom, które w jakikolwiek sposób wsparły rozwój projektu. Qt::PlainText Qt::AlignCenter true Qt::Vertical QSizePolicy::Fixed 358 20 QLayout::SetDefaultConstraint :/icon/napiprojekt.jpg 0 0 16777215 70 :/icon/opensubtitles.gif false Qt::AlignCenter 0 :/icon/napisy24.gif pbClose clicked() frmAbout close() 298 352 288 187 qnapi-0.1.9/qnapi.pro0000644000174100017410000001376112567301464014367 0ustar jenkinsjenkinsTEMPLATE = app CONFIG += warn_on \ thread \ qt \ resources \ release \ silent \ c++11 QT += network \ gui \ widgets \ core \ xml SOURCES += src/main.cpp \ src/engines/qnapiabstractengine.cpp \ src/engines/qnapiprojektengine.cpp \ src/engines/qnapisy24engine.cpp \ src/engines/qopensubtitlesengine.cpp \ src/forms/frmprogress.cpp \ src/forms/frmlistsubtitles.cpp \ src/forms/frmsummary.cpp \ src/forms/frmscan.cpp \ src/forms/frmoptions.cpp \ src/forms/frmabout.cpp \ src/forms/frmnapiprojektconfig.cpp \ src/forms/frmopensubtitlesconfig.cpp \ src/qcumber/qmanagedrequest.cpp \ src/qcumber/qmanagedsocket.cpp \ src/qcumber/qsingleapplication.cpp \ src/qnapiconfig.cpp \ src/qnapiapp.cpp \ src/qnapicli.cpp \ src/qnapi.cpp \ src/qmultiparthttprequest.cpp \ src/qnapiopendialog.cpp \ src/qnapilanguage.cpp \ src/synchttp.cpp \ src/syncxmlrpc.cpp \ src/encodingutils.cpp \ src/ffprobemovieinfoparser.cpp \ src/forms/frmnapiprojektupload.cpp \ src/forms/frmnapiprojektcorrect.cpp \ src/forms/frmnapiprojektreport.cpp \ src/forms/frmconvert.cpp \ src/subconvert/subtitleformatsregistry.cpp \ src/subconvert/subtitleconverter.cpp \ src/subconvert/formats/microdvd.cpp \ src/subconvert/formats/tmplayer.cpp \ src/subconvert/formats/subrip.cpp \ src/subconvert/formats/mpl2.cpp \ src/subconvert/subtitleformat.cpp HEADERS += src/engines/qnapiabstractengine.h \ src/engines/qnapiprojektengine.h \ src/engines/qnapisy24engine.h \ src/engines/qopensubtitlesengine.h \ src/forms/frmprogress.h \ src/forms/frmlistsubtitles.h \ src/forms/frmsummary.h \ src/forms/frmscan.h \ src/forms/frmoptions.h \ src/forms/frmabout.h \ src/forms/frmnapiprojektconfig.h \ src/forms/frmopensubtitlesconfig.h \ src/qcumber/qmanagedrequest.h \ src/qcumber/qmanagedsocket.h \ src/qcumber/qsingleapplication.h \ src/qcumber/qcumber.h \ src/qnapiconfig.h \ src/qnapiapp.h \ src/qnapicli.h \ src/qnapi.h \ src/movieinfo.h \ src/qnapiopendialog.h \ src/qnapilanguage.h \ src/qcheckedlistwidget.h \ src/qmultiparthttprequest.h \ src/qnapithread.h \ src/synchttp.h \ src/syncxmlrpc.h \ src/qnapisubtitleinfo.h \ src/version.h \ src/encodingutils.h \ src/ffprobemovieinfoparser.h \ src/forms/frmnapiprojektupload.h \ src/forms/frmnapiprojektcorrect.h \ src/forms/frmnapiprojektreport.h \ src/forms/frmconvert.h \ src/subconvert/subfile.h \ src/subconvert/subtitleformat.h \ src/subconvert/formats/microdvd.h \ src/subconvert/subtitleformatsregistry.h \ src/subconvert/subtitleconverter.h \ src/subconvert/formats/tmplayer.h \ src/subconvert/formats/subrip.h \ src/subconvert/formats/mpl2.h FORMS += ui/frmprogress.ui \ ui/frmlistsubtitles.ui \ ui/frmsummary.ui \ ui/frmscan.ui \ ui/frmoptions.ui \ ui/frmabout.ui \ ui/napiprojekt/frmnapiprojektconfig.ui \ ui/napiprojekt/frmnapiprojektcorrect.ui \ ui/napiprojekt/frmnapiprojektreport.ui \ ui/napiprojekt/frmnapiprojektupload.ui \ ui/opensubtitles/frmopensubtitlesconfig.ui \ ui/frmconvert.ui RESOURCES += res/resources.qrc UI_DIR = tmp MOC_DIR = tmp RCC_DIR = tmp OBJECTS_DIR = tmp INCLUDEPATH = src include(deps/libmaia/maia.pri) macx { QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.7 QMAKE_CXXFLAGS_X86_64 = -mmacosx-version-min=10.7 ICON = macx/qnapi.icns QMAKE_INFO_PLIST = macx/Info.plist TARGET = macx/QNapi 7ZIP_BINARY.files = macx/content/7za 7ZIP_BINARY.path = Contents/Resources FFPROBE_BINARY.files = macx/content/ffprobe FFPROBE_BINARY.path = Contents/Resources QMAKE_BUNDLE_DATA += 7ZIP_BINARY FFPROBE_BINARY macdeploy.commands = macdeployqt macx/QNapi.app appdmg.depends = macdeploy appdmg.commands = appdmg macx/appdmg.json macx/QNapi.dmg QMAKE_EXTRA_TARGETS += macdeploy appdmg } unix { INSTALL_PREFIX = /usr target.path = $${INSTALL_PREFIX}/bin doc.path = $${INSTALL_PREFIX}/share/doc/$${TARGET} doc.files = doc/ChangeLog \ doc/LICENSE \ doc/LICENSE-pl \ doc/COPYRIGHT \ doc/qnapi-download.desktop \ doc/qnapi-scan.desktop \ doc/qnapi-download.schemas \ doc/qnapi-scan.schemas man.path = $${INSTALL_PREFIX}/share/man/man1 man.files = doc/$${TARGET}.1.gz icons.path = $${INSTALL_PREFIX}/share/icons icons.files = res/qnapi.png \ res/qnapi-48.png \ res/qnapi-128.png \ res/qnapi-512.png desktop.path = $${INSTALL_PREFIX}/share/applications desktop.files = doc/$${TARGET}.desktop INSTALLS = target \ doc \ man \ icons \ desktop } win32 { RC_FILE = win32/qnapi.rc SOURCES += src/qcumber/qinterprocesschannel_win32.cpp HEADERS += src/qcumber/qinterprocesschannel_win32.h CONFIG += nostrip INSTALL_PREFIX = win32/out target.path = $${INSTALL_PREFIX} p7zip.files += win32/content/7za.exe p7zip.path = $${INSTALL_PREFIX} ffprobe.files += win32/content/ffprobe.exe ffprobe.path = $${INSTALL_PREFIX} doc.files = doc/ChangeLog \ doc/LICENSE \ doc/LICENSE-pl doc.path = $${INSTALL_PREFIX} icudlls.files += $$[QT_INSTALL_BINS]/icuin54.dll icudlls.files += $$[QT_INSTALL_BINS]/icuuc54.dll icudlls.files += $$[QT_INSTALL_BINS]/icudt54.dll icudlls.path = $${INSTALL_PREFIX} deploywin.commands = windeployqt --no-translations --no-quick-import --no-system-d3d-compiler --no-angle --no-webkit --no-webkit2 win32\out\qnapi.exe platform.files += $$[QT_INSTALL_PLUGINS]/platforms/qwindows.dll platform.path = $${INSTALL_PREFIX}/platforms platform.depends = deploywin QMAKE_EXTRA_TARGETS += icudlls deploywin platform INSTALLS = target p7zip ffprobe doc icudlls platform } !win32 { SOURCES += src/qcumber/qinterprocesschannel.cpp HEADERS += src/qcumber/qinterprocesschannel.h } qnapi-0.1.9/doc/0000755000174100017410000000000012567301464013272 5ustar jenkinsjenkinsqnapi-0.1.9/doc/qnapi.10000644000174100017410000000324712567301464014472 0ustar jenkinsjenkins.TH "qnapi" 1 .SH NAZWA qnapi \- narzedzie do automatycznego pobierania i dopasowywania napisow do filmow .SH SKLADNIA \fBqnapi\fP [opcje] [lista plikow] .SH OPIS \fBqnapi\fP jest programem do automatycznego pobierania i dopasowywania napisow do filmow. Program korzysta z zasobow serwisow napiprojekt.pl, napisy24.pl i opensubtitles.com. \fBqnapi\fP potrafi pracowac w dwoch trybach: GUI oraz konsolowym. Aby pobrac napisy, nalezy podac liste plikow filmowych jako argument(y) wywolania programu lub skorzystac z odpowiedniej opcji w graficznym interfejsie uzytkownika. .SH OPCJE -c, \-\-console pobieranie napisow z konsoli -q, \-\-quiet pobiera napisy nie wypisujac zadnych komunikatow ani nie pokazujac zadnych okien (implikuje -d) -s, \-\-show\-list pokazuj liste napisow (dziala tylko z opcja -c) -d, \-\-dont\-show\-list nie pokazuj listy napisow (dziala tylko z opcja -c) -o, \-\-options przywoluje okno konfiguracji programu -l, \-\-lang preferowany jezyk napisow -lb, \-\-lang\-backup zapasowy jezyk napisow -h, \-\-help pokazuje pomoc programu -hl, \-\-help\-languages listuje jezyki, w jakich mozna pobierac napisy .SH AUTOR Copyright (C) 2008-2015 Piotr Krzeminski http://qnapi.github.io .SH LICENCJA Program QNapi rozprowadzany jest na licencji GNU General Public License w wersji drugiej lub kazdej pozniejszej. .SH BLEDY Wszelkie zauwazone bledy w programie mozna zglaszac w serwisie GitHub: https://github.com/QNapi/qnapi/issues qnapi-0.1.9/doc/LICENSE-pl0000644000174100017410000006165312567301464014723 0ustar jenkinsjenkins Powszechna Licencja Publiczna GNU Tłumaczenie [1]GNU General Public License Uwaga! To jest nieoficjalne tłumaczenie Powszechnej Licencji Publicznej GNU na język polski. Nie zostało opublikowane przez Free Software Foundation i pod względem prawnym nie stanowi warunków rozpowszechniania oprogramowania stosującego GNU GPL -- ustanawia je wyłącznie [2]oryginalny angielski tekst licencji GNU GPL. Jednak mamy nadzieję, że pomoże ono lepiej zrozumieć Licencję osobom mówiącym po polsku. Note! This is an unofficial translation of the GNU General Public License into Polish. It was not published by the Free Software Foundation, and does not legally state the distribution terms for software that uses the GNU GPL--only the [3]original English text of the GNU GPL does that. However, we hope that this translation will help Polish speakers understand the GNU GPL better. Powszechna Licencja Publiczna GNU Wersja 2, czerwiec 1991 Copyright (c) 1989, 1991 Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139 USA. Zezwala się na kopiowanie i rozpowszechnianie wiernych kopii niniejszego dokumentu licencyjnego, jednak bez prawa wprowadzania zmian. Preambuła Większość licencji na oprogramowanie pomyślana jest po to, aby odebrać użytkownikowi możliwość swobodnego udostępniania innym i zmieniania danego software'u. Natomiast w wypadku Powszechnej Licencji Publicznej GNU (GNU General Public License, GPL) celem jest zagwarantowanie użytkownikowi swobody udostępniania i zmieniania tego wolnego oprogramowania, a więc danie pewności, iż oprogramowanie jest wolno dostępne dla wszystkich użytkowników. Niniejsza Powszechna Licencja Publiczna dotyczy większości oprogramowania wydawanego przez Fundację Wolnego Oprogramowania (Free Software Foundation) oraz wszelkich innych programów, których autorzy zobowiązują się do jej stosowania. (Niektóre rodzaje oprogramowania wydawanego przez Fundację objęte są Powszechną Licencją Publiczną GNU dla Bibliotek, GNU Library General Public License). Użytkownik może stosować ją również do swoich programów. Mówiąc o wolnym oprogramowaniu mamy na myśli swobodę, a nie cenę. Nasze Powszechne Licencje Publiczne wprowadzono po to, aby zapewnić Państwu swobodę rozpowszechniania kopii tego oprogramowania (i - jeśli ktoś chce - pobierania za tę usługę opłaty), jak również aby udostępnić kod źródłowy oraz umożliwić dokonywanie zmian tego oprogramowania lub wykorzystywania jego fragmentów w nowych, wolnych programach. Nie bez znaczenia jest też sama możliwość dotarcia do Państwa z informacją o wszystkich tych udogodnieniach. W celu ochrony praw użytkownika jesteśmy zmuszeni wprowadzać ograniczenia zabraniające komukolwiek kwestionowanie jego praw albo sugerowanie rezygnacji z tych praw. Ograniczenia te sprowadzają się do pewnych dla Państwa obowiązków w przypadku rozpowszechniania przez Was kopii naszego oprogramowania bądź dokonywania w nim zmian. Na przykład, jeśli rozprowadzacie Państwo kopie takiego programu, niezależnie czy gratisowo, czy za opłatą, musicie Państwo odbiorcy udzielić wszelkich tych praw, jakie mieliście sami. Musicie zapewnić mu również otrzymanie kodu źródłowego (lub możliwość otrzymania) oraz przedstawić niniejsze Warunki, aby mógł on poznać swoje prawa. Ochrona Państwa praw przebiega w dwóch etapach: 1. zastrzegamy prawo własności autorskiej do oprogramowania, 2. oferujemy Państwu niniejszą licencję, która daje Wam sankcjonowane prawem zezwolenie na kopiowanie, rozpowszechnianie i/lub modyfikowanie tego oprogramowania. Ponadto dla ochrony tak autora, jak i naszej, pragniemy mieć pewność, że każdy zrozumie, iż na niniejsze wolne oprogramowanie nie udziela się gwarancji. W razie dokonania w nim przez kogoś modyfikacji i puszczenia dalej do obrotu, pragniemy, aby dalsi odbiorcy zdawali sobie sprawę z tego, że problemy wprowadzone przez inne osoby nie są wyrazem oryginalnych działań twórców. I rzecz ostatnia: każdemu wolnemu programowi stale zagrażają patenty na oprogramowanie. Naszym pragnieniem jest unikanie takiego niebezpieczeństwa, kiedy redystrybutorzy wolnego programu indywidualnie uzyskują prawa patentowe, nadając tym samym programowi charakter prawnie zastrzeżony. W celu zapobieżenia takim zjawiskom jednoznacznie wyjaśniliśmy, że każdy patent musi być wydawany albo dla swobodnego użytku przez wszystkich, albo nie wydawany wcale. Poniżej podajemy dokładne zasady i warunki kopiowania, rozpowszechniania i modyfikowania. Zasady i warunki kopiowania, rozpowszechniania i modyfikowania 0. Niniejsza Licencja dotyczy programów i innych prac, na których umieszczona jest pochodząca od właściciela praw autorskich informacja, że dany program lub praca może być rozpowszechniana na warunkach niniejszej Powszechnej Licencji Publicznej. Używane poniżej słowo "Program" oznacza właśnie takie programy lub prace, zaś określenie "praca oparta na Programie" dotyczy albo Programu, albo pochodzącej od niego pracy w rozumieniu prawa autorskiego, to jest pracy zawierającej Program lub jego część dosłowną, bądź zmodyfikowaną i/lub przełożoną na inny język. (W dalszym ciągu niniejszego, pojęcie przekładu włącza się bez ograniczeń do terminu "modyfikacja"). Do każdego licencjobiorcy będziemy zwracać się "per Ty". Niniejsza Licencja nie obejmuje działań innych niż kopiowanie, rozprowadzanie i modyfikowanie - nie mieszczą się one w jej zakresie. Czynność używania Programu nie jest poddana ograniczeniom, a produkty uzyskane z Programu objęte są Licencją tylko wtedy, gdy ich treść stanowi pracę opartą na Programie (niezależnie od stworzenia jej przy użyciu Programu). To, czy fakt taki jest prawdą, zależy od tego, co dany Program wykonuje. 1. Możesz kopiować i rozprowadzać w dowolnych mediach wierne kopie kodu źródłowego Programu w otrzymanej formie pod warunkiem, że w widoczny sposób i odpowiednio podasz na każdej kopii właściwą informację o prawie autorskim i zrzeczenie się uprawnień z tytułu gwarancji; wszelkie napisy informacyjne na temat Licencji i faktu nieudzielania gwarancji musisz chronić przed uszkodzeniem, zaś wszystkim innym odbiorcom Programu musisz wraz z Programem wręczać egzemplarz niniejszej Licencji. Możesz pobierać opłatę za fizyczną czynność przekazania kopii i według własnej decyzji możesz za opłatą proponować ochronę gwarancyjną. 2. Możesz modyfikować swoją kopię czy kopie Programu oraz dowolne jego części, tworząc przez to pracę opartą na Programie, jak również kopiować i rozprowadzać takie modyfikacje i pracę na warunkach podanych w pkt.1 powyżej - pod warunkiem przestrzegania całości poniższych wymogów: a. Musisz spowodować umieszczenie na zmodyfikowanych plikach widocznej informacji o tym, że dane pliki zostały przez ciebie zmienione, wraz z datą dokonania zmian. b. Musisz doprowadzić do tego, aby każda rozpowszechniana lub publikowana przez ciebie praca, która w całości lub części zawiera Program, albo pochodzi od niego lub jego części, była w całości i bezpłatnie licencjonowana dla wszelkich stron trzecich na warunkach niniejszej Licencji. c. Jeżeli zmodyfikowany program podczas korzystania z niego w normalnym trybie odczytuje polecenia interaktywnie, musisz spowodować, aby po uruchomieniu (użyty w interaktywny sposób w najzwyklejszym trybie), wydrukowywał on lub wyświetlał powiadomienie o odnośnym prawie autorskim i braku gwarancji (ewentualnie o zapewnianiu gwarancji przez ciebie), oraz o tym, że użytkownicy mogą redystrybuować ten program na niniejszych warunkach wraz z informacją, jak użytkownik może zapoznać się z treścią niniejszej Licencji. (Wyjątek: jeśli sam Program jest interaktywny, ale normalnie nie drukuje takiego powiadomienia, twoja praca oparta na nim też nie musi wydrukowywać takiego powiadomienia). Niniejsze wymogi odnoszą się do zmodyfikowanej pracy jako całości. Jeśli dające się ustalić sekcje danej pracy nie pochodzą od Programu i mogą być racjonalnie uważane za samodzielne i odrębne same w sobie, to niniejsza Licencja i jej warunki nie mają zastosowania do takich sekcji przy rozprowadzaniu ich przez ciebie jako odrębne prace. Jeśli jednak rozprowadzasz je jako część całości, będącej pracą opartą na Programie, rozpowszechnianie tej całości musi być dokonywane na warunkach niniejszej Licencji, której zezwolenia dla innych licencjobiorców rozciągają się w całej szerokości na tę całość, a tym samym i na każdą indywidualną jej część, niezależnie od jej autorstwa. Dlatego też intencją tego fragmentu nie jest roszczenie sobie praw albo podważanie twych praw do pracy napisanej w całości przez ciebie. Chodzi nam raczej o korzystanie z prawa kontrolowania dystrybucji pochodnych i zbiorowych prac opartych na Programie. I jeszcze jedno: samo tylko połączenie z Programem (lub z pracą opartą na Programie) innej pracy - nie opartej na Programie, w ramach wolumenu nośnika przechowywania lub dystrybucji, nie powoduje objęcia takiej pracy zakresem niniejszej Licencji. 3. Możesz kopiować i rozprowadzać Program (lub opartą na nim pracę - zgodnie z pkt.2 w kodzie wynikowym lub w formie wykonywalnej w myśl postanowień pkt.1 i 2 powyżej, pod warunkiem zrealizowania również poniższych wymogów: a. Musisz dołączyć do niego odpowiadający mu, kompletny i możliwy do odczytania przez urządzenia cyfrowe kod źródłowy, który musi być rozpowszechniany na warunkach pkt.1 i 2 powyżej i na nośniku zwyczajowo używanym dla wzajemnej wymiany oprogramowania; lub b. dołączyć do niego pisemną ofertę, ważną co najmniej 3 lata, przyznającą każdej stronie trzeciej - za opłatą nie przekraczającą twego kosztu fizycznego wykonywania dystrybucji źródła - kompletną, odczytywalną przez urządzenia cyfrowe kopię odpowiadającego mu kodu źródłowego, rozprowadzaną na warunkach pkt.1 i 2 powyżej, na nośniku zwyczajowo używanym do wzajemnej wymiany oprogramowania; lub c. dołączyć do niego informację, jaką otrzymałeś na temat oferty rozprowadzania odpowiedniego kodu źródłowego. (Ta możliwość dozwolona jest tylko dla dystrybucji niehandlowej i jedynie wtedy, gdy otrzymałeś dany program w kodzie wynikowym lub formie wykonywalnej wraz z wymienioną ofertą - zgodnie z podpunktem "b" powyżej). Określenie kod źródłowy dla pracy oznacza formę pracy preferowaną dla wprowadzania do niej modyfikacji. Dla wykonanej pracy, kompletny kod źródłowy oznacza cały kod źródłowy wszystkich modułów, wszelkie sprzężone z nią pośredniczące pliki opisujące oraz zbiory komend stosowane do sterowania kompilacją i instalowaniem programów. Niemniej jednak, jako wyjątek specjalny, dystrybuowany (w formie źródłowej albo binarnej) kod źródłowy nie musi obejmować niczego, co jest normalnie rozprowadzane przy pomocy głównych komponentów (kompilator, jądro itd.) systemu operacyjnego, na którym pracuje część wykonywalna, o ile sam taki komponent towarzyszy tej części. Jeśli dystrybucja części wykonywalnej albo kodu wynikowego realizowana jest poprzez oferowanie dostępu do kopii z wyznaczonego miejsca, to oferowanie równoważnego dostępu dla kopiowania kodu źródłowego z tego samego miejsca liczy się jako rozpowszechnianie kodu źródłowego, nawet gdy strony trzecie nie są zmuszone do kopiowania źródła wraz z kodem wynikowym. 4. Poza przypadkami jednoznacznie dozwolonymi w niniejszej Licencji, nie możesz kopiować, modyfikować, sublicencjonować ani rozpowszechniać Programu. We wszystkich pozostałych wypadkach, każda próba skopiowania, sublicencjonowania lub rozpowszechnienia Programu jest nieważna i powoduje automatyczne wygaśnięcie twoich praw z tytułu Licencji. Niemniej jednak, stronom, które już otrzymały od ciebie kopie albo prawa w ramach niniejszej Licencji, licencje nie wygasają tak długo, jak długo strony te w pełni stosują się do nich. 5. Nie musisz akceptować niniejszej Licencji, jeżeli jej nie podpisałeś. Niemniej jednak, nic innego nie zapewni ci zezwolenia na modyfikowanie lub rozprowadzanie Programu i pochodzących od niego prac. Działania takie są prawnie zabronione, jeżeli nie przyjmujesz niniejszej Licencji. Dlatego też, poprzez modyfikowanie bądź rozpowszechnianie Programu (lub pracy na nim opartej) dajesz wyraz swojej akceptacji dla Licencji i wszelkich jej postanowień i warunków dotyczących kopiowania, rozprowadzania i modyfikowania Programu lub opartych na nim prac. 6. W każdym przypadku redystrybucji przez ciebie Programu (albo opartej na nim pracy), odbiorca automatycznie otrzymuje od pierwotnego licencjodawcy licencję na kopiowanie, rozpowszechnianie i modyfikowanie Programu na niniejszych zasadach i warunkach. Na korzystanie przez odbiorcę z udzielonych w niniejszej Licencji praw nie możesz narzucać już dalszych ograniczeń. Nie jesteś stroną odpowiedzialną za kontrolę przestrzegania Licencji przez osoby trzecie. 7. Jeśli na skutek wyroku sądowego lub zarzutu naruszenia patentu, jak też z każdej innej przyczyny (nie ograniczonej do kwestii patentowych) zostaną narzucone na ciebie (niezależnie czy to mocą wyroku sądowego, umowy, czy w inny sposób) warunki sprzeczne z warunkami niniejszej Licencji, to nie zwalniają one ciebie z warunków Licencji. Jeśli nie możesz prowadzić dystrybucji tak, aby wypełniać jednocześnie swoje obowiązki z tytułu niniejszej Licencji i inne odnośne obowiązki, to w rezultacie nie możesz wcale rozprowadzać Programu. Na przykład, gdyby licencja patentowa nie zezwalała na wolną od opłat licencyjnych redystrybucję Programu przez wszystkie osoby, które otrzymały kopie bezpośrednio lub pośrednio od ciebie, to jedynym sposobem pozwalającym ci na przestrzeganie i licencji patentowej, i Licencji niniejszej, byłoby całkowite powstrzymanie się od jakiejkolwiek dystrybucji Programu. Jeżeli w jakichś szczególnych okolicznościach któryś fragment niniejszego punktu stałby się nieważny lub niewykonywalny, to intencją jest, aby znajdowała zastosowanie pozostała część punktu, a treść całego punktu była stosowana w pozostałych okolicznościach. Celem niniejszego punktu nie jest zachęcanie do naruszania patentów czy innych praw własności, albo też do podważania ich ważności; niniejszy punkt za swój jedyny cel ma ochronę integralności systemu rozpowszechniania wolnego oprogramowania, realizowanego za pomocą publicznych licencji. Wielu ludzi bezinteresownie wniosło swój wkład do stworzenia szerokiego zakresu oprogramowania upowszechnianego w tym systemie, mając zaufanie do konsekwentnego jego stosowania; wyłącznie do autora/ofiarodawcy należy decyzja, czy życzy on sobie rozprowadzania oprogramowania za pośrednictwem innego systemu i licencjobiorca nie może tego prawa wyboru ograniczać. Intencją niniejszego punktu jest jasne i wyraźne przedstawienie tego, co uważa się za skutki, jakie rodzi pozostała część niniejszej Licencji. 8. W przypadku, gdy dystrybucja i/lub używanie Programu w niektórych krajach poddane jest ograniczeniom patentowym lub zastrzeżeniom prawami autorskimi, początkowy posiadacz praw autorskich, który poddaje Program pod oddziaływanie niniejszej Licencji, może dodać wyraźnie zakreślone geograficzne ograniczenie rozpowszechniania wyłączające te kraje, dzięki czemu dystrybucja dozwolona będzie wyłącznie w krajach czy wśród krajów nie objętych takim wyłączeniem. W przypadku takim, niniejsza Licencja obejmuje dane ograniczenie tak, jakby było ono wpisane w jej treść. 9. W miarę potrzeby Fundacja Wolnego Oprogramowania może publikować poprawione i/lub nowe wersje Powszechnej Licencji Publicznej. Takie nowe wersje będą napisane w duchu podobnym do obecnej wersji, ale mogą różnić się w szczegółach poruszających nowe problemy czy zagadnienia. Każdej wersji nadaje się wyróżniający ją numer. Jeżeli Program podaje numer wersji niniejszej Licencji, odnoszący się do tej wersji i "wszelkich wersji następnych", masz do wyboru albo stosować się do postanowień i warunków tej wersji, albo którejkolwiek wersji późniejszej wydanej przez Fundację Wolnego Oprogramowania. O ile Program nie podaje numeru wersji niniejszej Licencji, możesz wybrać dowolną wersję kiedykolwiek opublikowaną przez Fundację. 10. Jeśli chcesz włączyć części Programu do innych wolnych programów, których warunki rozpowszechniania są inne, zwróć się pisemnie do autora z prośbą o pozwolenie. W przypadku oprogramowania objętego przez Fundację prawem autorskim, napisz do Fundacji; czasami czynimy od tego odstępstwa. W naszej decyzji kierujemy się dwoma celami: utrzymania wolnego statusu wszystkich pochodnych naszego wolnego oprogramowania oraz - generalnie - promowania współudziału i wielokrotnego stosowania oprogramowania. WYRÓB BEZ GWARANCJI 11. PONIEWAŻ PROGRAM JEST LICENCJONOWANY BEZPŁATNIE, NIE JEST OBJĘTY GWARANCJĄ W ZAKRESIE DOZWOLONYM PRZEZ OBOWIĄZUJĄCE PRZEPISY. O ILE NA PIŚMIE NIE STANOWI SIĘ INACZEJ, POSIADACZE PRAW AUTORSKICH I/LUB INNE STRONY ZAPEWNIAJĄ PROGRAM W STANIE, W JAKIM JEST ("JAK WIDAĆ") BEZ JAKIEJKOLWIEK GWARANCJI, ANI WYRAŹNEJ, ANI DOMYŚLNEJ, W TYM MIĘDZY INNYMI DOMYŚLNYCH GWARANCJI CO DO PRZYDATNOŚCI HANDLOWEJ I PRZYDATNOŚCI DO OKREŚLONYCH ZASTOSOWAŃ. CAŁOŚĆ RYZYKA W ZAKRESIE JAKOŚCI I SKUTECZNOŚCI DZIAŁANIA PROGRAMU PONOSISZ SAM. W RAZIE GDYBY PROGRAM OKAZAŁ SIĘ WADLIWY, PONOSISZ KOSZT CAŁEGO NIEZBĘDNEGO SERWISU, NAPRAWY I KORYGOWANIA. 12. O ILE OBOWIĄZUJĄCE PRAWO NIE STANOWI INACZEJ ALBO CZEGOŚ INNEGO NIE UZGODNIONO W FORMIE PISEMNEJ, ŻADEN POSIADACZ PRAW AUTORSKICH ANI INNA STRONA MODYFIKUJĄCA I/LUB REDYSTRYBUJĄCA PROGRAM ZGODNIE Z POWYŻSZYMI ZEZWOLENIAMI, W ŻADNYM WYPADKU NIE JEST ODPOWIEDZIALNA WOBEC CIEBIE ZA SZKODY, W TYM SZKODY OGÓLNE, SPECJALNE, UBOCZNE LUB SKUTKOWE, WYNIKŁE Z UŻYCIA BĄDŹ NIEMOŻLIWOŚCI UŻYCIA PROGRAMU (W TYM, MIĘDZY INNYMI, ZA UTRATĘ DANYCH LUB POWSTANIE DANYCH NIEDOKŁADNYCH, ALBO ZA STRATY PONIESIONE PRZEZ CIEBIE LUB STRONY TRZECIE, JAK TEŻ NIEDZIAŁANIE PROGRAMU Z INNYMI PROGRAMAMI), NAWET JEŚLI DANY POSIADACZ BĄDŹ INNA STRONA ZOSTALI POWIADOMIENI O MOŻLIWOŚCI POWSTANIA TAKICH SZKÓD. KONIEC ZASAD I WARUNKÓW Jak stosować niniejsze Warunki do Twoich nowych programów Jeśli opracowujesz nowy program i chciałbyś, aby stał się on przydatny dla szerokiego ogółu, najlepszą drogą do osiągnięcia tego będzie nadanie twemu programowi charakteru wolnego oprogramowania, które każdy może redystrybuować i zmieniać na niniejszych warunkach. W tym celu do programu dołącz poniższe informacje. Bezpieczniej jest dołączyć je na początku każdego pliku źródłowego, dzięki czemu najskuteczniej można przekazać fakt nieistnienia gwarancji; każdy plik powinien przy tym nosić uwagę "copyright" i odnośnik, gdzie można znaleźć pełną informację. nazwa programu i informacja, do czego on służy. Copyright (C) 19../20.. nazwisko autora Niniejszy program jest wolnym oprogramowaniem; możesz go rozprowadzać dalej i/lub modyfikować na warunkach Powszechnej Licencji Publicznej GNU, wydanej przez Fundację Wolnego Oprogramowania - według wersji 2-giej tej Licencji lub którejś z późniejszych wersji. Niniejszy program rozpowszechniany jest z nadzieją, iż będzie on użyteczny - jednak BEZ JAKIEJKOLWIEK GWARANCJI, nawet domyślnej gwarancji PRZYDATNOŚCI HANDLOWEJ albo PRZYDATNOŚCI DO OKREŚLONYCH ZASTOSOWAŃ. W celu uzyskania bliższych informacji - Powszechna Licencja Publiczna GNU. Z pewnością wraz z niniejszym programem otrzymałeś też egzemplarz Powszechnej Licencji Publicznej GNU (GNU General Public License); jeśli nie - napisz do Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Podaj też informacje o sposobie kontaktowania się z tobą pocztą elektroniczną lub zwykłą. Jeśli dany program jest interaktywny, spraw, aby w momencie wchodzenia w tryb interaktywny wyświetlał on komunikat jak w poniższym przykładzie: Gnomovision wersja 69, Copyright C 19.. nazwisko autora Gnomovision wydawany jest ABSOLUTNIE BEZ ŻADNEJ GWARANCJI - w celu uzyskania dalszych szczegółów wpisz "show w". To jest wolne oprogramowanie i mile widziane jest dalsze rozpowszechnianie go przez ciebie na określonych warunkach - w celu uzyskania bliższych szczegółów wpisz "show c". Powyższe hipotetyczne polecenia "show w" i "show c" winny powodować wyświetlenie odpowiednich części Powszechnej Licencji Publicznej. Oczywiście możesz używać innych poleceń niż "show w" i "show c"; mogą to być nawet kliknięcia myszą lub pozycje menu - co tylko sobie uznasz za stosowne. Powinieneś też poprosić swego pracodawcę (jeśli pracujesz jako programista) czy też swoją szkołę (jeśli jesteś uczniem), o podpisanie, w razie potrzeby, "Rezygnacji z praw autorskich" do programu. Poniżej podajemy przykład (zmień nazwy/nazwiska): My, firma Jojodyne Sp. z o.o. niniejszym zrzekamy się i rezygnujemy z wszelkich interesów prawnych w zakresie praw autorskich do programu "Gnomovision" (który realizuje następujące funkcje...), napisanego przez p.Jana Kowalskiego. Podpis: /-/ Gniewosław Wielkoważny Gniewosław Wielkoważny, Prezes...itp Powszechna Licencja Publiczna nie zezwala na włączanie twego programu do programów prawnie zastrzeżonych. Jeśli twój program jest biblioteką podprogramów, możesz rozważyć, czy nie będzie korzystniej zezwolić na powiązanie prawnie zastrzeżonych aplikacji z biblioteką. Jeśli chciałbyś właśnie tego dokonać, zamiast niniejszej Licencji zastosuj Powszechną Licencję Publiczną GNU dla Bibliotek. _________________________________________________________________ References 1. http://www.fsf.org/copyleft/gpl.html 2. http://www.fsf.org/copyleft/gpl.html 3. http://www.fsf.org/copyleft/gpl.html qnapi-0.1.9/doc/LICENSE0000644000174100017410000004310312567301464014300 0ustar jenkinsjenkins GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. qnapi-0.1.9/doc/qnapi-download.schemas0000644000174100017410000002333412567301464017561 0ustar jenkinsjenkins /schemas/apps/nautilus-actions/configurations/12e76756-c203-4a27-830f-af5a1527869e/label /apps/nautilus-actions/configurations/12e76756-c203-4a27-830f-af5a1527869e/label nautilus-actions string Pobierz napisy do filmu z QNapi The label of the menu item The label of the menu item that will appear in the Nautilus popup menu when the selection matches the appearance condition settings /schemas/apps/nautilus-actions/configurations/12e76756-c203-4a27-830f-af5a1527869e/tooltip /apps/nautilus-actions/configurations/12e76756-c203-4a27-830f-af5a1527869e/tooltip nautilus-actions string Pobiera i dopasowuje napisy do filmu z bazy NAPI-PROJEKT The tooltip of the menu item The tooltip of the menu item that will appear in the Nautilus statusbar when the user points to the Nautilus popup menu item with his/her mouse /schemas/apps/nautilus-actions/configurations/12e76756-c203-4a27-830f-af5a1527869e/icon /apps/nautilus-actions/configurations/12e76756-c203-4a27-830f-af5a1527869e/icon nautilus-actions string The icon of the menu item The icon of the menu item that will appear next to the label in the Nautilus popup menu when the selection matches the appearance conditions settings /usr/share/icons/qnapi.png /schemas/apps/nautilus-actions/configurations/12e76756-c203-4a27-830f-af5a1527869e/path /apps/nautilus-actions/configurations/12e76756-c203-4a27-830f-af5a1527869e/path nautilus-actions string The path of the command The path of the command to start when the user select the menu item in the Nautilus popup menu qnapi /schemas/apps/nautilus-actions/configurations/12e76756-c203-4a27-830f-af5a1527869e/parameters /apps/nautilus-actions/configurations/12e76756-c203-4a27-830f-af5a1527869e/parameters nautilus-actions string The parameters of the command The parameters of the command to start when the user selects the menu item in the Nautilus popup menu. The parameters can contain some special tokens which are replaced by Nautilus information before starting the command: %d: base folder of the selected file(s) %f: the name of the selected file or the first one if many are selected %m: space-separated list of the basenames of the selected file(s)/folder(s) %M: space-separated list of the selected file(s)/folder(s), with their full paths %u: GnomeVFS URI %s: scheme of the GnomeVFS URI %h: hostname of the GnomeVFS URI %U: username of the :%s/GnomeVFS URI %%: a percent sign %M /schemas/apps/nautilus-actions/configurations/12e76756-c203-4a27-830f-af5a1527869e/basenames /apps/nautilus-actions/configurations/12e76756-c203-4a27-830f-af5a1527869e/basenames nautilus-actions list string The list of pattern to match the selected file(s)/folder(s) A list of strings with joker '*' or '?' to match the name of the selected file(s)/folder(s). Each selected items must match at least one of the filename patterns for the action to appear [*.avi ; *.asf ; *.divx ; *.mkv ; *.mov ; *.mp4 ; *.mpeg ; *.mpg ; *.ogm ; *.rm ; *.rmvb ; *.wmv] /schemas/apps/nautilus-actions/configurations/12e76756-c203-4a27-830f-af5a1527869e/matchcase /apps/nautilus-actions/configurations/12e76756-c203-4a27-830f-af5a1527869e/matchcase nautilus-actions bool 'true' if the filename patterns have to be case sensitive, 'false' otherwise If you need to match a filename in a case-sensitive manner, set this key to 'true'. If you also want, for example '*.jpg' to match 'photo.JPG', set 'false' false /schemas/apps/nautilus-actions/configurations/12e76756-c203-4a27-830f-af5a1527869e/mimetypes /apps/nautilus-actions/configurations/12e76756-c203-4a27-830f-af5a1527869e/mimetypes nautilus-actions list string The list of patterns to match the mimetypes of the selected file(s) A list of strings with joker '*' or '?' to match the mimetypes of the selected file(s). Each selected items must match at least one of the mimetype patterns for the action to appear [video/x-msvideo ; video/x-ms-asf ; video/mpeg ; video/x-ms-wmv ; video/mp4 ; video/quicktime ; video/x-theora ; video/x-matroska ; video/3gpp ; application/vnd.rn-realmedia ; application/vnd.rn-realmedia-vbr] /schemas/apps/nautilus-actions/configurations/12e76756-c203-4a27-830f-af5a1527869e/isfile /apps/nautilus-actions/configurations/12e76756-c203-4a27-830f-af5a1527869e/isfile nautilus-actions bool 'true' if the selection can have files, 'false' otherwise This setting is tied in with the 'isdir' setting. The valid combinations are: isfile=TRUE and isdir=FALSE: the selection may hold only files isfile=FALSE and isdir=TRUE: the selection may hold only folders isfile=TRUE and isdir=TRUE': the selection may hold both files and folders isfile=FALSE and isdir=FALSE: this is an invalid combination (your configuration will never appear) true /schemas/apps/nautilus-actions/configurations/12e76756-c203-4a27-830f-af5a1527869e/isdir /apps/nautilus-actions/configurations/12e76756-c203-4a27-830f-af5a1527869e/isdir nautilus-actions bool 'true' if the selection can have folders, 'false' otherwise This setting is tied in with the 'isfile' setting. The valid combinations are: isfile=TRUE and isdir=FALSE: the selection may hold only files isfile=FALSE and isdir=TRUE: the selection may hold only folders isfile=TRUE and isdir=TRUE': the selection may hold both files and folders isfile=FALSE and isdir=FALSE: this is an invalid combination (your configuration will never appear) false /schemas/apps/nautilus-actions/configurations/12e76756-c203-4a27-830f-af5a1527869e/accept-multiple-files /apps/nautilus-actions/configurations/12e76756-c203-4a27-830f-af5a1527869e/accept-multiple-files nautilus-actions bool 'true' if the selection can have several items, 'false' otherwise If you need one or more files or folders to be selected, set this key to 'true'. If you want just one file or folder, set 'false' true /schemas/apps/nautilus-actions/configurations/12e76756-c203-4a27-830f-af5a1527869e/schemes /apps/nautilus-actions/configurations/12e76756-c203-4a27-830f-af5a1527869e/schemes nautilus-actions list string The list of GnomeVFS schemes where the selected files should be located Defines the list of valid GnomeVFS schemes to be matched against the selected items. The GnomeVFS scheme is the protocol used to access the files. The keyword to use is the one used in the GnomeVFS URI. Examples of GnomeVFS URI include: file:///tmp/foo.txt sftp:///root@test.example.net/tmp/foo.txt The most common schemes are: 'file': local files 'sftp': files accessed via SSH 'ftp': files accessed via FTP 'smb': files accessed via Samba (Windows share) 'dav': files accessed via WebDav All GnomeVFS schemes used by Nautilus can be used here. [file] /schemas/apps/nautilus-actions/configurations/12e76756-c203-4a27-830f-af5a1527869e/version /apps/nautilus-actions/configurations/12e76756-c203-4a27-830f-af5a1527869e/version nautilus-actions string The version of the configuration format The version of the configuration format that will be used to manage backward compatibility 1.1 qnapi-0.1.9/doc/qnapi.desktop0000644000174100017410000000035512567301464016000 0ustar jenkinsjenkins[Desktop Entry] Exec=qnapi Name=QNapi Icon=qnapi-48 Type=Application Categories=AudioVideo; Comment=Program do pobierania napisów do filmów GenericName=Program do pobierania napisów do filmów Terminal=false X-KDE-StartupNotify=false qnapi-0.1.9/doc/qnapi-scan.schemas0000644000174100017410000002270412567301464016676 0ustar jenkinsjenkins /schemas/apps/nautilus-actions/configurations/7289a682-870f-4c4d-961e-ec358de196b6/label /apps/nautilus-actions/configurations/7289a682-870f-4c4d-961e-ec358de196b6/label nautilus-actions string Przeskanuj katalog z QNapi The label of the menu item The label of the menu item that will appear in the Nautilus popup menu when the selection matches the appearance condition settings /schemas/apps/nautilus-actions/configurations/7289a682-870f-4c4d-961e-ec358de196b6/tooltip /apps/nautilus-actions/configurations/7289a682-870f-4c4d-961e-ec358de196b6/tooltip nautilus-actions string Skanuje katalog w poszukiwaniu filmów i pobiera do nich napisy The tooltip of the menu item The tooltip of the menu item that will appear in the Nautilus statusbar when the user points to the Nautilus popup menu item with his/her mouse /schemas/apps/nautilus-actions/configurations/7289a682-870f-4c4d-961e-ec358de196b6/icon /apps/nautilus-actions/configurations/7289a682-870f-4c4d-961e-ec358de196b6/icon nautilus-actions string The icon of the menu item The icon of the menu item that will appear next to the label in the Nautilus popup menu when the selection matches the appearance conditions settings /usr/share/icons/qnapi.png /schemas/apps/nautilus-actions/configurations/7289a682-870f-4c4d-961e-ec358de196b6/path /apps/nautilus-actions/configurations/7289a682-870f-4c4d-961e-ec358de196b6/path nautilus-actions string The path of the command The path of the command to start when the user select the menu item in the Nautilus popup menu /usr/bin/qnapi /schemas/apps/nautilus-actions/configurations/7289a682-870f-4c4d-961e-ec358de196b6/parameters /apps/nautilus-actions/configurations/7289a682-870f-4c4d-961e-ec358de196b6/parameters nautilus-actions string The parameters of the command The parameters of the command to start when the user selects the menu item in the Nautilus popup menu. The parameters can contain some special tokens which are replaced by Nautilus information before starting the command: %d: base folder of the selected file(s) %f: the name of the selected file or the first one if many are selected %m: space-separated list of the basenames of the selected file(s)/folder(s) %M: space-separated list of the selected file(s)/folder(s), with their full paths %u: GnomeVFS URI %s: scheme of the GnomeVFS URI %h: hostname of the GnomeVFS URI %U: username of the :%s/GnomeVFS URI %%: a percent sign %M /schemas/apps/nautilus-actions/configurations/7289a682-870f-4c4d-961e-ec358de196b6/basenames /apps/nautilus-actions/configurations/7289a682-870f-4c4d-961e-ec358de196b6/basenames nautilus-actions list string The list of pattern to match the selected file(s)/folder(s) A list of strings with joker '*' or '?' to match the name of the selected file(s)/folder(s). Each selected items must match at least one of the filename patterns for the action to appear [*] /schemas/apps/nautilus-actions/configurations/7289a682-870f-4c4d-961e-ec358de196b6/matchcase /apps/nautilus-actions/configurations/7289a682-870f-4c4d-961e-ec358de196b6/matchcase nautilus-actions bool 'true' if the filename patterns have to be case sensitive, 'false' otherwise If you need to match a filename in a case-sensitive manner, set this key to 'true'. If you also want, for example '*.jpg' to match 'photo.JPG', set 'false' false /schemas/apps/nautilus-actions/configurations/7289a682-870f-4c4d-961e-ec358de196b6/mimetypes /apps/nautilus-actions/configurations/7289a682-870f-4c4d-961e-ec358de196b6/mimetypes nautilus-actions list string The list of patterns to match the mimetypes of the selected file(s) A list of strings with joker '*' or '?' to match the mimetypes of the selected file(s). Each selected items must match at least one of the mimetype patterns for the action to appear [*/*] /schemas/apps/nautilus-actions/configurations/7289a682-870f-4c4d-961e-ec358de196b6/isfile /apps/nautilus-actions/configurations/7289a682-870f-4c4d-961e-ec358de196b6/isfile nautilus-actions bool 'true' if the selection can have files, 'false' otherwise This setting is tied in with the 'isdir' setting. The valid combinations are: isfile=TRUE and isdir=FALSE: the selection may hold only files isfile=FALSE and isdir=TRUE: the selection may hold only folders isfile=TRUE and isdir=TRUE': the selection may hold both files and folders isfile=FALSE and isdir=FALSE: this is an invalid combination (your configuration will never appear) false /schemas/apps/nautilus-actions/configurations/7289a682-870f-4c4d-961e-ec358de196b6/isdir /apps/nautilus-actions/configurations/7289a682-870f-4c4d-961e-ec358de196b6/isdir nautilus-actions bool 'true' if the selection can have folders, 'false' otherwise This setting is tied in with the 'isfile' setting. The valid combinations are: isfile=TRUE and isdir=FALSE: the selection may hold only files isfile=FALSE and isdir=TRUE: the selection may hold only folders isfile=TRUE and isdir=TRUE': the selection may hold both files and folders isfile=FALSE and isdir=FALSE: this is an invalid combination (your configuration will never appear) true /schemas/apps/nautilus-actions/configurations/7289a682-870f-4c4d-961e-ec358de196b6/accept-multiple-files /apps/nautilus-actions/configurations/7289a682-870f-4c4d-961e-ec358de196b6/accept-multiple-files nautilus-actions bool 'true' if the selection can have several items, 'false' otherwise If you need one or more files or folders to be selected, set this key to 'true'. If you want just one file or folder, set 'false' false /schemas/apps/nautilus-actions/configurations/7289a682-870f-4c4d-961e-ec358de196b6/schemes /apps/nautilus-actions/configurations/7289a682-870f-4c4d-961e-ec358de196b6/schemes nautilus-actions list string The list of GnomeVFS schemes where the selected files should be located Defines the list of valid GnomeVFS schemes to be matched against the selected items. The GnomeVFS scheme is the protocol used to access the files. The keyword to use is the one used in the GnomeVFS URI. Examples of GnomeVFS URI include: file:///tmp/foo.txt sftp:///root@test.example.net/tmp/foo.txt The most common schemes are: 'file': local files 'sftp': files accessed via SSH 'ftp': files accessed via FTP 'smb': files accessed via Samba (Windows share) 'dav': files accessed via WebDav All GnomeVFS schemes used by Nautilus can be used here. [file] /schemas/apps/nautilus-actions/configurations/7289a682-870f-4c4d-961e-ec358de196b6/version /apps/nautilus-actions/configurations/7289a682-870f-4c4d-961e-ec358de196b6/version nautilus-actions string The version of the configuration format The version of the configuration format that will be used to manage backward compatibility 1.1 qnapi-0.1.9/doc/ChangeLog0000644000174100017410000001033012567301464015041 0ustar jenkinsjenkinsQNapi ChangeLog: ================ 2015-08-26 v0.1.9: * obsluga konwersji pomiedzy formatami napisow: SRT, mDVD, TMP, MPL2 (wymagany jest program ffprobe) - #10 * mozliwosc wyboru rozszerzenia dopasowanych napisow * skanowanie katalogow uwzglednia ignorowanie innych rozszerzen napisow niz .txt (.srt i .sub) - #19 * uwzglednianie INSTALL_PREFIX przy instalacji ikon i plikow .desktop - #20, #21 2015-08-08 v0.1.8: * mozliwosc wskazania zapasowego jezyka pobierania napisow * poprawki bledow w silniku Napisy24 dla Windows * poprawiona integracja z menu kontekstowym na Windows * wersja przenosna nie wymagajaca instalacji (archiwum zip dla Windows) * tryb cichy (-q) dostepny takze pod Windows * poprawiony blad z rozmieszczeniem okien przy wielu ekranach 2015-07-25 v0.1.7: * silnik dla Napisy24 * migracja do Qt5 * zamiana znakow diakrytycznych na odpowiedniki ASCII * poprawki interfejsu w trybach GUI i CLI * poprawki wielu innych znalezionych bledow 2009-03-04 v0.1.6 (rc2): * poprawki znalezionych bledow * kompilacja z Qt 4.5 dla Mac OS X, dzieki czemu brak ikony w doku * kosmetyczne poprawki interfejsu 2009-02-16 v0.1.6 (rc1): * wsparcie dla roznych silnikow pobierania napisow, w tym eksperymentalna obsluga serwisu opensubtitles.org * usprawnione przetwarzanie napisow * skanowanie katalogu zadanego jako argument wywolania aplikacji * liczne ulepszenia w skanowaniu katalogow * przywracanie domyslnych ustawien * znacznie rozbudowany tekstowy interfejs programu * natywne okna dialogowe pod Mac OS X i Windows * usuniete znalezione bledy, dodane nowe 2008-05-22 v0.1.5: * uregulowane kwestie licencyjne; od tej chwili program wydawany jest na licencji GNU General Public License w wersji 2. lub pozniejszej (thx Patryk Cisek) * usuniety blad powodujacy niemoznosc uruchomienia programu na terminalu tekstowym (TTY) * poprawione wysylanie napisow do serwera * sprawdzanie uprawnien zapisu do katalogu przy pobieraniu napisow * zunifikowane opcje pozwalajace na wykonywanie przetwarzania pobranych napisow (m.in usuwanie linii zawierajacych podane slowa, zmiana uprawnien do pliku) * bardziej szczegolowe podsumowanie pobierania napisow * mnostwo zmian w kodzie programu umozliwiajacych dalszy, swobodny rozwoj * sporo usprawnien w interfejsie uzytkownika * automatyczna (na razie eksperymentalna) integracja z GNOME (Nautilus) 2008-04-08 v0.1.4: * rejestracja nowych uzytkownikow za pomoca programu * port na systemy Windows * sprawdzanie poprawnosci ustawien p7zip oraz katalogu tymczasowego * bardziej rozbudowane podsumowanie pobierania plikow w niektorych przypadkach * w danej chwili moze byc uruchomiona tylko jedna instancja programu * liczne usprawnienia w interfejsie uzytkownika * pobieranie wielu plikow naraz po przeciagnieciu ich na ikone programu (Mac OS X) * obsluga drag-n-drop na okno pobierania (na razie nie dziala pod Mac OS X) * automatyczna (na razie eksperymentalna) integracja z KDE (Dolphin, Konqueror) * prostsza instalacja/deinstalacja programu przy kompilacji ze zrodel 2008-03-01 v0.1.3: * skanowanie katalogow i dopasowywanie napisow do znalezionych filmow * rozwiazanie problemu z pozycja okienek dialogowych pod compizem * odswiezona ikona programu * balonikowe notyfikacje w tray-u * pokazywanie okna do otwierania plikow z filmami przy kliknieciu LPM na ikone w tray-u * ulepszenie automatycznej detekcji programu 7z * obsluga przeciagania plikow na ikone w doku pod Mac OS X * konfigurowalny wybor stylu BrushedMetal na Mac OS X * inne usprawnienia i poprawki znalezionych bledow 2008-02-19 v0.1.2: * liczne usprawnienia w interfejsie uzytkownika * poprawiony blad podczas wysylania raportu o bledzie (thx badenov) * dodano mozliwosc automatyczej detekcji kodowania znakow z pliku * ulepszenia w obsludze protokolu NAPI * uzycie stylu BrushedMetal pod Mac OS X (thx adrian5632) * sporo innych, mniejszych poprawek 2008-02-16 v0.1.1: * lepsza integracja z Mac OS X * w oknie do wysylania poprawek mozna wybrac jezyk napisow * obsluga zmiany kodowania pobranych napisow * integracja z Nautilusem * zmiany kosmetyczne 2008-02-14 v0.1: * pierwsza udostepniona wersja programu qnapi-0.1.9/doc/qnapi-download.desktop0000644000174100017410000000076112567301464017606 0ustar jenkinsjenkins[Desktop Entry] Version=1.0 Actions=QNapiDownload; Name=Pobierz napisy do filmu z QNapi GenericName=Pobierz napisy do filmu z QNapi Icon=qnapi-48 ServiceTypes=video/x-msvideo,video/x-ms-asf,video/mpeg,video/x-ms-wmv,video/mp4,video/quicktime,video/x-theora,video/x-matroska,video/3gpp,application/vnd.rn-realmedia,application/vnd.rn-realmedia-vbr X-KDE-ServiceTypes=KonqPopupMenu/Plugin Type=Service [Desktop Action QNapiDownload] Name=Pobierz napisy do filmu z QNapi Exec=qnapi %F Icon=qnapi-48 qnapi-0.1.9/doc/qnapi.1.gz0000644000174100017410000000152112567301464015102 0ustar jenkinsjenkins+Uqnapi.1TMo8W zJ[I]`,n wӠ=P-S8HB }&),:I߼yo>WA1-^,/,fWAp1ˠxgJ0[3wWmpR7EپK.Ia,-Etv}}nÍcݳw3c$h>(G161?>5WVXM^bgOh{3+q`%l VgP%(|B/JiE*>Y5a-9׮c (4`KRAJ @$5y;~CMDDrJpe0/g@ Iϡ&PZA ' <&&*E3bb=5,G<+8]51k| Copyright (C) 2005 Iulian M Copyright (C) 2005 Dmytro Poplavskiy This software uses icons from Silk project licensed under Creative Commons Attribution 2.5 License http://www.famfamfam.com/lab/icons/silk/ qnapi-0.1.9/win32/0000755000174100017410000000000012567301464013467 5ustar jenkinsjenkinsqnapi-0.1.9/win32/qnapi.rc0000644000174100017410000000007712567301464015131 0ustar jenkinsjenkinsIDI_ICON1 ICON DISCARDABLE "qnapi.ico" qnapi-0.1.9/win32/QNapi-setup.nsi0000644000174100017410000001621712567301464016357 0ustar jenkinsjenkins; Define your application name !define APPNAME "QNapi" !define APPVER "0.1.9" !define APPNAMEANDVERSION "${APPNAME} ${APPVER}" !include "MUI2.nsh" !include "nsProcess.nsh" ; Main Install settings Name "${APPNAMEANDVERSION}" InstallDir "$PROGRAMFILES\${APPNAME}" InstallDirRegKey HKLM "Software\${APPNAME}" "" OutFile "${APPNAME}-${APPVER}-setup.exe" SetCompressor LZMA !define MUI_ICON qnapi.ico !define MUI_WELCOMEFINISHPAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Wizard\orange.bmp" !define MUI_HEADERIMAGE !define MUI_HEADERIMAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Header\win.bmp" !define MUI_ABORTWARNING !define MUI_FINISHPAGE_RUN "$INSTDIR\qnapi.exe" !insertmacro MUI_PAGE_WELCOME !insertmacro MUI_PAGE_LICENSE "LICENSE.txt" !insertmacro MUI_PAGE_DIRECTORY !insertmacro MUI_PAGE_INSTFILES !insertmacro MUI_PAGE_FINISH !insertmacro MUI_UNPAGE_CONFIRM !insertmacro MUI_UNPAGE_INSTFILES !insertmacro MUI_LANGUAGE "Polish" !insertmacro MUI_RESERVEFILE_LANGDLL Section "QNapi" Section1 ; Set Section properties SetOverwrite on ; Set Section Files and Shortcuts SetOutPath "$INSTDIR\" File /r "out\*" CreateDirectory "$SMPROGRAMS\${APPNAME}" CreateShortCut "$SMPROGRAMS\${APPNAME}\${APPNAME}.lnk" "$INSTDIR\qnapi.exe" CreateShortCut "$SMPROGRAMS\${APPNAME}\Uninstall.lnk" "$INSTDIR\uninstall.exe" SectionEnd Section -FinishSection ; clean up registry keys from qnapi <= 0.1.7 DeleteRegKey HKCR ASFFile\shell\qnapi-pobierz DeleteRegKey HKCR AVIFile\shell\qnapi-pobierz DeleteRegKey HKCR divxfile\shell\qnapi-pobierz DeleteRegKey HKCR mkvfile\shell\qnapi-pobierz DeleteRegKey HKCR mpegfile\shell\qnapi-pobierz DeleteRegKey HKCR mpgfile\shell\qnapi-pobierz DeleteRegKey HKCR RealPlayer.RA.6\shell\qnapi-pobierz DeleteRegKey HKCR RealPlayer.RAM.6\shell\qnapi-pobierz DeleteRegKey HKCR RealPlayer.RM.6\shell\qnapi-pobierz DeleteRegKey HKCR RealPlayer.RMVB.6\shell\qnapi-pobierz DeleteRegKey HKCR rmvbfile\shell\qnapi-pobierz DeleteRegKey HKCR WMP11.AssocFile.ASF\shell\qnapi-pobierz DeleteRegKey HKCR WMP11.AssocFile.AVI\shell\qnapi-pobierz DeleteRegKey HKCR WMP11.AssocFile.MPEG\shell\qnapi-pobierz DeleteRegKey HKCR WMP11.AssocFile.WMV\shell\qnapi-pobierz DeleteRegKey HKCR WMVFile\shell\qnapi-pobierz WriteRegStr HKLM "Software\${APPNAME}" "" "$INSTDIR" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "DisplayName" "${APPNAME}" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "UninstallString" "$INSTDIR\uninstall.exe" WriteUninstaller "$INSTDIR\uninstall.exe" WriteRegStr HKCR SystemFileAssociations\.asf\shell\qnapi "" 'Pobierz i dopasuj napisy do filmu z QNapi...' WriteRegStr HKCR SystemFileAssociations\.asf\shell\qnapi\command "" '"$INSTDIR\qnapi.exe" "%1"' WriteRegStr HKCR SystemFileAssociations\.avi\shell\qnapi "" 'Pobierz i dopasuj napisy do filmu z QNapi...' WriteRegStr HKCR SystemFileAssociations\.avi\shell\qnapi\command "" '"$INSTDIR\qnapi.exe" "%1"' WriteRegStr HKCR SystemFileAssociations\.divx\shell\qnapi "" 'Pobierz i dopasuj napisy do filmu z QNapi...' WriteRegStr HKCR SystemFileAssociations\.divx\shell\qnapi\command "" '"$INSTDIR\qnapi.exe" "%1"' WriteRegStr HKCR SystemFileAssociations\.mkv\shell\qnapi "" 'Pobierz i dopasuj napisy do filmu z QNapi...' WriteRegStr HKCR SystemFileAssociations\.mkv\shell\qnapi\command "" '"$INSTDIR\qnapi.exe" "%1"' WriteRegStr HKCR SystemFileAssociations\.mov\shell\qnapi "" 'Pobierz i dopasuj napisy do filmu z QNapi...' WriteRegStr HKCR SystemFileAssociations\.mov\shell\qnapi\command "" '"$INSTDIR\qnapi.exe" "%1"' WriteRegStr HKCR SystemFileAssociations\.mp4\shell\qnapi "" 'Pobierz i dopasuj napisy do filmu z QNapi...' WriteRegStr HKCR SystemFileAssociations\.mp4\shell\qnapi\command "" '"$INSTDIR\qnapi.exe" "%1"' WriteRegStr HKCR SystemFileAssociations\.mpeg\shell\qnapi "" 'Pobierz i dopasuj napisy do filmu z QNapi...' WriteRegStr HKCR SystemFileAssociations\.mpeg\shell\qnapi\command "" '"$INSTDIR\qnapi.exe" "%1"' WriteRegStr HKCR SystemFileAssociations\.mpg\shell\qnapi "" 'Pobierz i dopasuj napisy do filmu z QNapi...' WriteRegStr HKCR SystemFileAssociations\.mpg\shell\qnapi\command "" '"$INSTDIR\qnapi.exe" "%1"' WriteRegStr HKCR SystemFileAssociations\.ogg\shell\qnapi "" 'Pobierz i dopasuj napisy do filmu z QNapi...' WriteRegStr HKCR SystemFileAssociations\.ogg\shell\qnapi\command "" '"$INSTDIR\qnapi.exe" "%1"' WriteRegStr HKCR SystemFileAssociations\.ogm\shell\qnapi "" 'Pobierz i dopasuj napisy do filmu z QNapi...' WriteRegStr HKCR SystemFileAssociations\.ogm\shell\qnapi\command "" '"$INSTDIR\qnapi.exe" "%1"' WriteRegStr HKCR SystemFileAssociations\.ogv\shell\qnapi "" 'Pobierz i dopasuj napisy do filmu z QNapi...' WriteRegStr HKCR SystemFileAssociations\.ogv\shell\qnapi\command "" '"$INSTDIR\qnapi.exe" "%1"' WriteRegStr HKCR SystemFileAssociations\.rm\shell\qnapi "" 'Pobierz i dopasuj napisy do filmu z QNapi...' WriteRegStr HKCR SystemFileAssociations\.rm\shell\qnapi\command "" '"$INSTDIR\qnapi.exe" "%1"' WriteRegStr HKCR SystemFileAssociations\.rmvb\shell\qnapi "" 'Pobierz i dopasuj napisy do filmu z QNapi...' WriteRegStr HKCR SystemFileAssociations\.rmvb\shell\qnapi\command "" '"$INSTDIR\qnapi.exe" "%1"' WriteRegStr HKCR SystemFileAssociations\.wmv\shell\qnapi "" 'Pobierz i dopasuj napisy do filmu z QNapi...' WriteRegStr HKCR SystemFileAssociations\.wmv\shell\qnapi\command "" '"$INSTDIR\qnapi.exe" "%1"' SectionEnd ;Uninstall section Section Uninstall ${nsProcess::KillProcess} "qnapi.exe" $R0 ${nsProcess::Unload} DeleteRegKey HKCR SystemFileAssociations\.asf\shell\qnapi DeleteRegKey HKCR SystemFileAssociations\.avi\shell\qnapi DeleteRegKey HKCR SystemFileAssociations\.divx\shell\qnapi DeleteRegKey HKCR SystemFileAssociations\.mkv\shell\qnapi DeleteRegKey HKCR SystemFileAssociations\.mov\shell\qnapi DeleteRegKey HKCR SystemFileAssociations\.mp4\shell\qnapi DeleteRegKey HKCR SystemFileAssociations\.mpeg\shell\qnapi DeleteRegKey HKCR SystemFileAssociations\.mpg\shell\qnapi DeleteRegKey HKCR SystemFileAssociations\.ogg\shell\qnapi DeleteRegKey HKCR SystemFileAssociations\.ogm\shell\qnapi DeleteRegKey HKCR SystemFileAssociations\.ogv\shell\qnapi DeleteRegKey HKCR SystemFileAssociations\.rm\shell\qnapi DeleteRegKey HKCR SystemFileAssociations\.rmvb\shell\qnapi DeleteRegKey HKCR SystemFileAssociations\.wmv\shell\qnapi DeleteRegKey HKCR SystemFileAssociations\.asf\shell\qnapi ;Remove from registry... DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" DeleteRegKey HKLM "SOFTWARE\${APPNAME}" ; Delete self Delete "$INSTDIR\uninstall.exe" ; Delete Shortcuts Delete "$SMPROGRAMS\${APPNAME}\${APPNAME}.lnk" Delete "$SMPROGRAMS\${APPNAME}\Uninstall.lnk" ; Clean up test ; Remove remaining directories RMDir "$SMPROGRAMS\${APPNAME}" RMDir /r "$INSTDIR\" SectionEnd ; eof qnapi-0.1.9/win32/content/0000755000174100017410000000000012567301464015141 5ustar jenkinsjenkinsqnapi-0.1.9/win32/content/7za.exe0000644000174100017410000217400012567301464016351 0ustar jenkinsjenkinsMZ@ !L!This program cannot be run in DOS mode. $}rR9p9p9pBl;pl pV[pxC8p9ppxA>pVpVpV;pv8pRich9pPELSL L@ \P (P.text `.rdata@@.datal@.sxdata @.rsrc( @@Wt@8|$ t/Vt$ OLv$v v vv6(OQOHRP^3_U SVWMv vv6v$v pj YeMRPjZ&΋u u'Mu UuRVSWEMPpHMHM H x_^X[ UQQEUEEME&E Eu eEuuu uMuuRPСU SVWj ZMu ud HWSEP虢 ;}+WSYNYuESPYY_^[UEVM jh'QPORPjZwuuuu^]Vjh@Bt$t$ RPjZ5^U@St @} VuWv,N0v(v$v v vv6x'sHEU5HCY}YjYuu3uWVuEUuWVEC(KHPuUUEu_^3[USVWU8ujX'E8HVh HSu-}uu}ve} u5j^jZM 7;r w;EvNjXE MU QhH6RPHMEPGO}hHWY3YhHWޠYYuW5HYYF|hHW蹠Y3YhxHW誠YYuW5HYYF|htHW腠e}YYv} @$Ej[Ӌ;U vN;] wGVhlHW@M EP].hhHWYYFj[;] vEEM;MrMwMoh HWߟYUYZhHWȟYUYChHW豟YEYPEPM{UЋhhHW芟Y3Y_^[SVW>^ tCSWv vSWvFV vНSWvFVv轝FfV_^[S\$ VW|$jGW CYS hFV GWCjYSNFVGWCjYS4FVWjYSV_^[3AAAA A AAA$A(A0A8A@A,A4A[39FY~9F~f Af G@;F|6>[YF>f$G^_^[D$SVX;^t9WSZ39FY~9F~  8@;F|6ZYF>$8^_^[\-GJ SWf} ~ZEVpM[FveM؉EˉEFEFEF EEPu؃MmZOYu^M_[d V3jNAA^q2ZYø-G螘@SVWM-f]MQSP$3;9u=,GeM QeMQMQVSP(EunMsUuMEUdPMEuEYYEMPuYMYuF;ur3M_^[d u׋E1,GU$eVW`G98t=Gr}t upU܋UEP!_^SW39_~.VG 4N">u3VNFP"C;_|^_[Å~Vj IE\Nu^SVW|$3+W+ƋtHtHu Ù+‹7 IE[+_^[SW39_~1UVG 4N39n~j- I[E;n|C;_|^]_[ø-G葖LS39YVWM]MA M8]4uN$f]f]]uHQMЉ]Љ]ԉ]EMEPEu WuЋ;MuЈ]WYE}WQu PR;8]tF Ih4HP*Z Z Iu]FEfE uVf;tf=uKfU #EEEPV;;UEPBEܹ IPY If;u8]M u Mbf=u48]ut iYyMUNEEPu]PjQUMlj j MEj j M}8]t uċ YUNEP{uĈ]VY8]t h|@XMMEEM;H3M_^[d UYMM轝كMM譝餝uҲ.tDD$рҀ$.PрҀ.PрҀ %.ɀ`P.HU,f9@VtEhpGPEXHqTu=EPVGuEhpGPE8HՓjjUԍMtEP5H IW^39u9AujXø-G,leSك{VWpHC M4N3fEfEʉEuuVNuuu MuPEMPNWME5$HMhhHMuMu]PEMPWM5(HMNEP3"u#ht IMVNEEPuSYMM芛EE;C_^M3[d -GߑLfeSVWjY3}fEt pM0OEMPFeEP֋puSY_M^[d -GofefeW}eWuRQP_tEhpGPEtH虑f}uMM衚2M3M MQM聚Md .GE(ST3VWMXk8]]ujh0HMVE ]]]@];Éhl`dPXE]|@ IE M8]]@ ]EuYp E썍HE0ċhHpELE]rQY) 0E E u$0PuSuTa;ÉE=@oEhH΋PhHWSSSS}uy06tchԤHdSEWhH΋PhHW1S?SOS1SSE(]pXVPYhH뛁}uhH닋U0EREPYWRE(X8]u_9]~TM4M ;ÉE|+E9E~#M juPMjuPE @EEE;|8]SEWW΋P5 HWR+R;RRR9]E싍hHΉEQE(HP E䋍T@IHP E9X4t P0H E䍕\RPEQ,9\]]ER|RUERuPQ0;ÉE6ffE䍕RE|PQ ;ÉE<j|d9E t3u|E NYMYEEu,GEE;\ H9E2hHkPE䍕HRPQ$E싍9H]D@ E]ERURUE RuPQ(;ÉEoffE䍕RE uuPQ;ÉEujuWc9Et0uUEbLYLYE 螔Eu,GEE;HEE;,WO8]thHO8]u MQWNMWN8]DE؋EtPM;ÉEE䍕L]ȉ]̉]]RP]Љ]ԉ]]]]Q;ÉE9L]t8jpptxM؍pPEu\K8]Et =W9]UMEP#K;ÉE8]ߋMPpP_uMuuUM䍅 Pju $EEUM䍅(Pju(,EȉEW`M8]t E]E]ԋ(,Eȋ ME$MpEpJEYE;LpELJY8]uA9]u<9tEME Eu]ȉ] EEȋEE̍EȉE9]uE Eu E]]E8]t78]u2MxWzLMuuuuuuWXL9]thPEhEl9]t`XE`EdEEEEEEEEYE;Et ]3;}EtWPE)8;tEEhhGP|H9wEu2uHtHtԪHhXGEEP|jMyEhGEPPEJ:uتHhXGEEPf|H1|@VhHV@ @@eEMhܱH@Eu;EEYM;HhVẖHVO>]>A>MEyGEEtPQME/e(|E GE 3H4HAK;n;umhH=MEF;EtWPME.e(E GjE ^MFMMFEEhhGP^y ;duThH!=MEDF;EtWPMEl.e(JE GE EEhhGPx}[H H@t9Hu5ܪHD:XEt9`tEeE\P{XEEt9`u ƅ\P+`S_ LPEPWEZuتHhXGEEPw4PPPPb^eE|@V#;VVhH*;;;3E~YhHˋP ;:Mԋ VPE::Eu7GY;}|VhH::hxHuh`H:v;~:j_9}~ h\Hj:VM:}}}3jMȉ}ȉ}̉}9EXHtMPqMV19tMPQMV9tMP1MV;t+MPME Eu6YVM9}tuȋhDH99EhhGEEPuEu&9V5̪HI9-9V 9VVhH'9 9939}~_hHˋP98VPE88E5GY;}|VhH88hxHuh,H8u9}8j_9}~ h\Hi8VL8}}EUE@ u5YEMTAEtWPME|)e(Z E GME>AMM AEc ME@EEtPQME)e( E GME@MM@3M_^[d jHy4YE;E t !3E}tWP_@XG \POEd3ju9yyNj}9yyNjE9yyM_^d ø11GtlQSVW3ۉu~ ^ψ^hGjN$_]WYYFN4WEYY1NDWEYYj GY^X^\^`NdFT^l^p^tNxFhF|XXX HxGEAhWEYYWEYYƋM_^[d ø1G}kQSVju^xG3F(]^^ ^$FGN0EF,jEYYjEYYjEYYjEYYMXXX @G^[d ø1GvjQSVWj_3Wu^^dN W]YYPNWEYY;N$WEYY&N0WEYYN@^`QVueN 6!Y^Md ø4G `QQSVWue~8ܧG}E-EO-~$}Ee-E1-~}ԧGEC-e-v!Y_M^[d ø$4Gy_QVuԧGe-M,M^d UQSًM W}C;~+ljE E ~-VEC 0ɉMtu YMu^u W-_[84G^QVuܧGeg,M3,M^d UQSًM W}C;~+ljE E ~-VEC 0ɉMt[uYMu^u WK-_[VD$tVY^VCD$tVY^L4G^QVu Ge+Mb+M^d øk4G]QQVWuv4eF,GC~Y}GE@+e +v Y_M^d VD$tVY^4G[]QVuGe*M*M^d VvGD$ YtVY^Vv 6}YY^Ë3ɉHHH @GSUl$ VW}FP*3ۅ~E 4C;|_^][4G\QSVjYuetW}W N WE_3MV)M^[d l$l$sl$4G\0SVW I IeM| IeEP5H I \@j15H Ih|@\@þE Ih|@P5H0]@ju=u5H I\@=@u#5H Ih|@IW\@3jMĉEĉEȉEUE@9|@ IPuPh4HPP u*Y_@Ëu Ih|@65 HE)^@ËuE܋ Ih|@P5He_@ËE؋ Ih|@P5HXQ5_@Ë Ih|@u5H+$_@Ë Ih|@u5 H_@5H I_@j^MMM_^d [UlDžlP$Gt|ujX39%@Ë4GY VF uF8Fu%VM ePN uiYFv GM%M^d yt QL$43A Àa UtVV tMN$EPf ^SUVWҋ~KʋË~1ʸ ̓~ʋËً˃&_^][Vkt$N$4^VSt$N$3^V;N$hhH^USVW~^ u33jjdvvmRSWRPQj MZWPEPRYD%d@jEZ;~ЋN ;}у~ d]u/~(ʸ ٍdˍd]EV N ~ٸ˃Ë]؋E;‰V }+и ʋMʃM؍SɈ EtM+ъ @uN$dPN$F_FFF ^[SY AVqW9Qq;wr;sA;r w;Qvy u_^[ Ihvb@WYh I(GVW|@VO4,|$t,O4VhHt$hH#3_3^5PHI43ËP 4GUVuM0eEPNtuMYu @~2u"N4|@PP~wNlF2uChHU M0Eu܃MY M3^d I4|@PP3À|$Vt5LH5HHN4|$tt$N4 N4hȳHN4|@PP3^I4h|@3ø4GQTQSVW IW}0G38^0]t%8^8tN8^9u8^1t N@^1^0W,GM_^3[d 1,G3VW IW0G38F8tL$ FN L$N$FW,G_3^5GSQVW IW}0GEet~8tN@NFF0it@3W,GM_^d >%@$5G"SQVW IW}0Ge~9t W,G3J} S^thHhгHEf8uDHP~8tW,G3[M_^d H5GRV IWVu0Gu eO`MuMEOLPE[ueYdhH(U M0E(uYV,GMjX_^d A0A13\5GQ SVW} 3ۉ8^:u)8^Ht$V4MPN<]?u)YF:M38^:v<GM_%^[d p5G[Q VW}'~:u%V4MNePN<ƶuYF:v<GM_%^d 5GPQVj GYȉM3;ȉEtuMPM^d 5GP SV5Hj^5HE蹨 IjPaeMsM0}t,EP8GAt9 t1t(+t +ttuMY3j jjj^uYƋM^[d ø5GOeSVډMWhLHjt VDG+7Vj_^SVW33t;L$P|u3VDGuمt+;C+PW_^[5G%NV3jMuuuugj Mu;j M1j M'MEP谳u\EYM^d VjNT$FF$^V:L$t t PDG+^T$Vt$ W 2G;~+~S2+@PPQ`O )w[G_^SVWy\$+qN;~0@~ Ǚ+3H 0;}+ދWK_^[5GLSVڋ3WK M3fEHf9N~4fxf= u}t:f="u }E P3G;~|3;M_^[d GPEPMePu 3Y 6G3L$SVQMS3ۍMЉ]MjM܉]܉]]jME]]]EUPMEt E܋P9]t#EMP@u* u܈] YYu u u M d ^[øA6G`KQESVWj3Xu^ ^^FF G>]kQ YE;Eth n@hm@XWjS8YPM^_^[d 3ɈHH H@@ GS\$Vt$W~h n@7jVPtW- Y_tV Y^[T6G{JQVqu GeMM^d øs6G@JQVuNetjWu GEMvM^d UQQSW} e3ۉMGE~GVG }4u'tHuEuMVu EVHC;]|^_[6GIXSVuWM~}t3fu2u6f ^tCEM39MMu 3f8tG@@;}~k;EcEM̋XPeEWPMPMEhueN YMu E}EũM* YMEEU;m}PkpIM |u >D]}H+~];x %pM}uN0Eff Yf;t ft @@f+|ΉFCW~P ;UxMRESPEE;ljE}0;]}+EfXȉEuuMEC9}|ЍENPoMuYufEftFF+7Vj_^ff;L$t ft @@+SVW;3fft8L$P|u3GGffuޅt+3C+PVt_^[ 7GOCV3jMuuuu=j Muj Mj MMEP6uEYM^d SVt$WL$_1;~+~(1iӍTR1PHRPD )wG_^[;UPUMr`$w[S] VW}33PuSW#I }0WD53PFuSW<ڋ űMD5NEE_^[ !UHeS] VW}Mujj SWH0Ejfj FSWFO<ڋ u׋MDMuEIHHffE_^[f Vj ZjV ^ËjPuËD$Vt$ |s -A؃j ZVP^T$D$|sf-AA؃RP!VWjr_ }07NOub_^ø@7GALMSW3QM]DEMP&B9]}jMĉ]ĉ]ȉ]EE@;E| PMEVuPuMVDDE0MMĈMEAMЉ]j]ԉ]K}EuUЍM u-uUčMIPME蛥EuY9]tEf8u jSMjM܉]܉]]ե39]E~UEfpf= tf= t PM1M`MM9]t E܋PE܉]fF;u|M)MML9]t E܋PIuYuYuY^MM?M_[d T7G> VN|6f8"u.f|H"u&EQjP(ePXuBYM^d 38t@<uUuEYuE hGE E P>]t$FY% I IHhKz@!@Yù I'V>u^vHY3Ɉ^h7G>SV3jM]]]]D]1t:t*< tȴHhXGE E P=MEP[uEYM^[d 7Ga=(VWE3jP}=5H}uj^jM}}}2Eu UMz&VU؍M:PME茢uErYMEP u]uUEYY_M^d A@ UQVWvGYu!uĴHhXGEEP<_^% I IHhL|@ >Yù Ie% I IHh~|@=Yù I3V>tvFYt2^Ãf&^qBGY@VT$^j Vvt$ 6YY^7G;$SV5Hكuj^eeejM͡euu!MUME u6MٷVU܍MEPMEuuYYuCu~YËM^[d D$VvPGYY^U EVRMP&EP^U Vj Zu MuEP^VW|$ ;t%f w躠@AuGF_^UQQS3f;VfMuf3fPHG;uSHGxuHSSEjPEjPSSDG;t&!E\5P8GEjPEVPSS@GfEf^[ø7G9$SVu3VHG؅uwHGxulVM%!]SU܍MuEYu8GUMSVff@@ft ff BBuuYYËM^[d ø7G9$SVu3VE;F|PjG?PWUEf$Cz_^[U SVW39} UM}QEGu^f$PQË38tB<u$QpGVv 3YFFF ^jËQJjRPËQ+T$Rt$PQ9Quj@X||jXRUS]VW;^rEh(GPEE2~3ҋˋ;tEh(GPE23v>QYuEh(GPE1F;|ËNQv W> v Y~ ^_^[]qFËAQ I+L$QL$ D$QPO3 VD$P@PF^Vt$ WL$ G1;~+~1PQ)w_^htM FPj=6հ2^] 8G)PVW}G8N8Pe~]SGM΍CP2},CVPMePN'MMEHENS EE;G|[M_^d VW39~~F T$ tG;~|_^9G(MSWM G]܋M 3}9yuEhpGPEH )UWEMED9xu eM:EeVH;tAu fx:t39}~2E躘H4"tHtG;}|E3}t Ej^;~p3jMЉ}Љ}ԉ}E~7EM u&u Mj\MUjjM$G;|ɋ}̍EP}QEЍ\PhE\PEhEk\EYMx]MEE܍MPEMEɊEEȋG EQuH ]MEMEuY]܍MEMM[M^_[d VW3N>j9yyƌjܧGX~~~F FԧG~(~,~0F4N$~<~@~DFHN8_^UQSVW329~~*F MQu uH t}tG;~|֊_^[2SVW33ۋG;~O 9rtC;|;t#;~;tG Q (F;w|_^[ø9G%QV3uFFF FE GTuM^d .9G%QSVWj YȉM3;Ήut u 螦}MW4C M4_^[d B9G<%QVjLYȉM3;ȉEtuMPM^d SUl$ VW}FP3ۅ~E 4C;|_^][V9G$QVjYȉM3;ȉEtuMPkM^d r9Gu$QSVjXYuetW}W N WE!_3MV M^[d 9G$QVW}uNGP)eGPNG$N$PE8N8WEM_^d VW|$ WGFGFGF_^SUl$ VW}FPf3ۅ~E 4kC;|_^][9GM#QV3uFFF FEԧGu]M^d 9G#QV3uFFF FEܧGwuM^d SUl$ VW}FP3ۅ~E 4NC;|_^][VtPLGu2^Ã&^VW|$ t u2>_^Vt$PGP^SVt$ W3ۋ_ 8tC<3uSeV@t @B__^[UQV3UPPRPQPh`Gu2uu\G^ø9G!S38| IVWt3SESPSVShdGu2duhu\GMjM]]]裇UΉ]RUM؊/PE赆uuYYM_^[d Qd$Vj#^YVW9~W1WPhG΋v wjX3_^ø9G S38| IVtJW9~W舆WPlG3f9t BGGf9ufQ;ÉV_v =wjXS3OjM]]]萆M]@t"UM0PE袅uYuYËM^[d Qd$VWTG@P_^Yø:G=| IUMujx|G2SV5xGWjSjj@jWQփEuC3jM܉E܉EEcMeUtjSjjjWu։EuY2ۃ}t u uuutGupG_^[Md RQGQGUQSVW}Uًt=u Mt,Gu9Ft uS蕛~u u腛2_^[RQGø$:G]=| ISVWu$ӍM׋EuY\5GWSօtJ3jMEEE eUtWu֋ueY uUY2M_^[d ø8:GeVRM@eTGU@P#uYƋM^d øL:GbS38| IVWu ׍M]uYT5GWօtCjM]]]Uω]ut֋ut;YgY2M_^[d øp:G4S38| IVWMu>MU0M̉]֋u uYY5GWQօt{jM؉]؉]܉]UjME]]];MEPEPEFut u֋uuY;YwuoY2YM_^[d jQGø:GS38| IVWu ׍MuYf5GSWօtTHG=tEjM]]]aUω]tSu֋u;Y uY2M_^[d ø:G \SVWQM蝗Mej\_tFUDJf98t;t HH+~%q;uufz:ujPMEMP˛uEMHG=tpE-MDAf98t;t HH+f|q:EVPM/PMEEuYsM艖uMEu Eu"2u\uTuL uE8YE܍MP9;uUDrff;t ft @@+}uEVPMlEEuYt2uUYRYM_^[d óV3u^VG^ø:GS38| IVWu ׍MuHYa3ҋKtR5GWօtCjM]]]~Uω]Put֋u;YY2M_^[d ;G<|SVWM趔3j\M؉]P֍MEuEYj*M PUMEMPMEuVuEJYYxMPtM ẺePxƘ}:uuEYM:uuY2Y?uEYM3t uuYYM_^d [ø8;G SA et!(UQMEu(UQMEu9u1YY[Md VvYG^U SVWMf e9~W|EPShuGΉE}t9}r2Eu uG+ËM_^[|;GLSVW3M~f8=| I}9FP{GMEQPhuӉE3f98t ABBf9:ufu^ËNZjX^VWt$T$L$gtt$Nq_^ u^ËNjX^V3jNAAq^VvY^øu^ÍNjX^Vj&ffofL$ff`F^V3jFF!p^SVW|$3ۉ^^8tC<;uSoW@t @B^_^[UQAe+E Pu u#EUQu ejuE =G1 SVuW} 3ɋC7;ЉM~+;u;u MSnWMMMjMHoeVM;o3~ UȊ 9 @;|EM$0EPunu/YME_^[d =GeVRMInueMEP/nuYƋM^d 4=G7eVRMmueMTEPmuYƋM^d H=GeVRMueM]EPu9YƋM^d VW|$ w^F@AuG_F^A t(A,t!I(f9.utfy.ut3jX2VtPܠGu2^Ã^ød=GVS38| Itp@W=GPu׃u@jM]]]lMU]t@Pu׉uM Y>_ttU @~duMETGU@MPQPGuЉu܃M>YYtU w3>[M^d SVWjjF GFGF G FGFGFGjFwO 3N( ^$,WV譂_^[ø=GSVWjjF GFGF G FGFGFGjFw;O 3M ^$,WV!]TGU@MP.PN(EjuuYY_M^[d UQeVu^UP=| It#P1Gt#U%P1Gu2U3AA AAAAAA ø=GUSVW}tMMF$3WM]tN(W8]t EEFMMMVWMEMM_^[d =G8SVM8eVM;t Eܳt2uYËM^[d V3jN(AAbi^ø=GJ8SVMeVMuYËM^[d Ã9t t$) t$APVW|$ Wt gt2_^t$D$t HG@VW>\uf~\u`~.uZ~\uT3G<7uu~:u@:|94j FhHP ujX;~ 00|9 @;|2_^VWf>\uqf~\ujf~.ucf~\u\VgYu f~ :uGA|@;j FhĵHPY u$jZ;~F"ff0rf9w B@@;|2_^ø=G8S3VZff1W3f;UMt G@@f9u,f\"f.uu f9qjM]]]9g}]~&f:uf\ufarfzvgfArfZv[9u VMfuVGu3f9t ABBf9u ;f2Mtt=wmEf|\t j\MhHM8}MQMEWЍMEMMPEeuuu uYM_^[d V~t 39F^2^>UV3t)juujuu uGf3Ƀ^]>G$S38| IVuWuMM|]TGU@MP0uEuuu PiuЊuYYttWSu=xGuSuu u׃uGjM]]]*eMUEtSuuSuu u׉uuY3>^_M^[d VtPpGu2^Ã^UQyVtytEQI H?EP1GuHGt2 jjju@3ЋEP^UQQ38At8At}uQVUq Eu ^U uEUUERP1GEuHGt2EMMHt$ jt$t$ UGeVRM;{ueM^wEP!{uqYƋM^d VWwtj\CN;t j\%_^Vjff _fL$ff`F^At fT$DAf9t;t HH+SVhHPGu2ӋVLG^[U SVW5 GhDHW։Eh,HW։EhHW39utt;tp9utkEPj GPUtWeEPhHVUt2VVEVPVuEۃ]ׅtHG]upG2_^[Vt$f&^Vt$f&.^Vt$f&*^Vt$}^Vt$^UVDufffGFu9EtXHhXGEEP(^]USVW]ffSf Y?Pj GFuXHhXGEEP3f Vf B@;v_^[]Vf> t f D$fF^Vf>t mfD$F^Vf>t MfD$F^Vf>t -fD$F^Vf>t fD$FD$ F ^Vf>@t f@D$N@F ^!}+|~! ~ ~Q$GÃ|~@uf!fa3VV$GL$%}/|~% ~ ~QV(G^|~@ujQV 3VL$V|jVt$f& 3^V,}f F^UVuY}%=uXHhXGEEPf F^]UVEPQ&Gu2`UjV2WUj-^VPGUVP-:}t-UVP 'UVP:} t UVP:^US]VWɋt C3j 3Yǀ0T53FuM +΅ɉM~Ѹ0000ʃD5NC#_^[<>Gf0eVu ‹UuEčMPeU4u谵YƋM^d UQV3ɃM`tX+tAHHt7Ht,tu\f9JpHulHPrppBRPbBNNjYfBVtMHtDHt2Ht*+tEh(GPEJjj(r r rHQrBRP^UDeVu Mu EPo^UDeVu Mu蔱EPo^UQt4Ht+Ht!HHtEh(GPENAQ ËA3AAU$EPGEU`hHhtHE@ GP Gt&MQЅtŰE;Uw r9EsEËUÍEE PGE;ErE3RQQ$GUQVEWPEPW(Gu%@}2EM_^3VjhPQV^VWjjjvd3ޱ־>;w r;s'+jhRPwv2_^UEVP0GEVP,G^á I@s I@ IUQQe= ISVWډMv) I7EV轸tEE; Ir2_^[FMF CFM jX܋ ISVW3v! I\$;Xu \$;X tG;r2_^[p[mR>GJQQ ISU33V;WMva I1~;}u~ ;} u8]t9^u9u.B;r0V8^t MP~PuM ۋM8]t=}9t6jx YȉM;ˉ]t l 3MMV7NtM_^3[d d>GrQeVjeuэMPu uMEtPQM^d >G"QQeVeeRUu EueEtPQM^d VW|$ tWPtPQ>_^L$`@HUEV#EWu3UE#E u3MFRQP8W F_^]@t)tWtt jX;t3jXjXj XËL$w@HUSVW};ȉMrEF]SuRPQ FEN_^[u3jZn]L$H3ɉH@HHVW|$ NtW0Ft3 f~ǃV_^t,It%Ittt@ø@øWøjX3ËL$` Hf@@@USVW};ȉMrEF]SuRPQ F EF _^[]UQQEVW3ɋ+tHt HtjX4jjYSG]SQv6PRG EEFG [_^VN йf ^VW|$ ~ t;~t艹F FF~3_9F ^UQV~$u@N F+WFF}WvVQPR N F$EN_VtANF 2^Ë` @ËQ;QtBQVW|$ ~ t;~t$ظF ~3_9F ^V~ u&V NW~+W-F u~FF _FF ^Ë` <@ËA@;AAuø>G64SVW3jM̉ủuЉu#QOu;tDJf8.t;t HH+EM;tDJf8/t;t HH+;tDJf8\t;t HH+;jMuuuPjMEu؉u܉uP9]E~W9u~RuEPgPMEOEuͫYEuPoPMEOEu襫Y WMOj_MuE@j[EU؍M4EPVTt^u;]uWUuM4u=u5u-M d _^[U VWMUVu OEPfW_^t$t$t$3@(GHHH H(H$H,H8H<G@GUjhGu  u ME?jh8Gu y tjhGu c uEٍP#ʋU PQ3@] D$@@L$IAu tjP3VD$tVЩY^VN8GFGyN^UEt }SVWt1u~~tC~$NV F;rw;r;u ;u3@+3;r w9EvE^72.ENPuu MUt3V ~$V(~,_^[t3HGu@~ % U9EsEVMjQPu jM^d V~ uhYF ^ø?GQVuv ev(YYNXEvݘY^Md ÃI@3A8A$A4A<ø?G*S39] VWu8^4ugjM]]]Z=M]u umYP~(W5ĶHut݋?jWNMtuMF41YENPu uu2$uUN@F@EF8^<3;E M_^[d UVWF$;s;+;} r} N WuQ]UN@ W.~$)} }~8F@V<u u_^]?GSVWNt`F$M33ۅv$V MP;uFv$V ~$E~4Mv(eMu"MMg@M_^[d ;^Fut !uJuFRҸr4w;v.3;Mw#r;ss3M;rw;rE^e}eMQh8GW39Eu;KWM_^d [jEĉEȉEXEGEЋEQύYE؅Ethf$@h`@pSjVƋu3eEEE;}KNu E;FsFE}u뮃eMQh8GWEESuuPQ E؅EtPQ}Et Mjot$eMEMtPQeMӘEMtPQ3Mtjjjf f`S\$Vt$W~hf$@7jVtW职Y_ktViY^[S\$VW|$t$yqY 6jjSWVP_^[ t$D$t$@t$PQ U}Vuu FN E MU FRuuu PQMtU W+V}~ y_^]D$VpHt$ @ D$PVQR^ VW|$ jX;s>t9~tω~3ɉ_^V$&^t$Q3AA QAAA$ËAQSVq 3Wy+;_^[vIUQQSVWF ~;r~+F 3;É]tWN QPm ~ F;tU]RWV RPQ }E~ N F;u^ 9FuF$^N ;Nv~FE_^^[VF ;Ft ^t^3^UQtEEhGPVvN(FH^VN4ffff ^VvN(t$ ^VWNFP~(PIQu v3_^U SVuW~tuvPuu VP ]t#}F ;F0}dV4NVz+9}s}Wu P t;} )}~;VDr w;F@vF@VDFN;HuF f늋FjEFEFj@$EEP38FH@@P4Gt^Ht.Hu$N~(YPkGO |-@4Fu%vPMQuu VP tM F 3_^[AV3@a I^UM38At"IT;u@'uuuu QP}uU Ut@]9EuU UuA AVu;t V3^UExt@Tu@uu PQM H@MHD3] T@G!QSVWF@PE0G^3ˉ}蜓N蔓E;~EWWEWWNEMuu ~0~8Ή~4~_^VL$F;r QNu3F F^VW|$ vvv wo _^S\$VWt#|$t.t$WuWt$P/~ t;3_^[UVW}Gw +;uvuOVu QEw t0_^u }t@3]UUVuRuFu PQ MUNV^t ]VW|$ ;~t&t+;sNj URPuSQ MM+uu3_^[UVuEuPu;u^]UVuEuPu+E%@^]USVW}ڋt-;sNjURPSVQ ]+}u9Euָ@3_^[]SVW~^u Xu>~~u Du*f~ N t3 V@&_^[Vt$N~uNA3^a-SVW~^GFtN ~ t~x~Np~_^[f~HVWjܸHZ33HHxHH H Hj3HHpHH H H3 HHhH H H H^jXPH4H8HH(H`HtEhpGPE̼H萰t~t0HhXGEEPptjfi@0MrF \|;}܍x}Cuj3h9x jh@M40MEu}}EffDu~~N j}9yyM_^d ø(CGh VWVX8uEbVXH @ tMb Mefe3@HMft4GXHru]ux`YƋM_^d vUQVUhMf9u wv2^UQSًM W}C;~+ljE E ~-VEC 0ɉMtu_YMu^u WEm_[FCGAQQSMh_Y]et,VuWVFF K PEjd{dY_^3ۋMMSAM[d VD$tVL_Y^XCG賝QVuLGe:kMkM^d q _YøCGqQVW}WueG PN GNPEpG$N$PE`G0N0PEPGF~PFpPj W;$F] M ׋QjV;M8 G}܍U܍MEVeM;u }EF0] Ht HuZIM T;ȉE  }E3;} }/E苎  @];tE GE{G̿ Gu MSwMJU܍M}M8] E8u9]Mb9]jM]]]EPEPE 8tJ8^\t 8^~tFpF8X,t$38^[t 8^}tNh38^Zt 8^|tV`3PQMtuEUYEčV$PMh8E t88EP8] tvuUuUY}YE 8^XMuЍXE 蒏:qF4+tCHHuZUuRUuJU }܍ME MaMEasU RҋF#׍~pRV~ҋ#RXuRpRuPQ;tAuTuTuT E GME`ME`E +"HHHHuHtAmTueTu]T E GEM\`ME'`@e,Tu$TuT E GME`ME_@$F4uuF4SuSuS E GE&uSuSuS E GEM_MEj_F4 GF4M葦:Q5HM]MЋQME蹉uE%SvYuVPu;t, SuSuRuR}ElRuRuRuR}EEЍMPJMEΥ:HEPM@vuEVPu;t4^RuVRuNRuFRu>R}E*Ru"RuRuRu R}EUMs:5HM MЋQMEPuEQvYuVPu;tEQuQuQuQuQ}EM]MEO]H\QuTQuLQuDQuvNeDL_3^].GGfoSVW}Nji3P30YE;ƉuthAAhIApWhV8xtM3_^[d kGGoQVWh)DhnOAjjVu=t3}~h6ChnOAjFjPEth6ChnOAjFDjPEsM~T~X~\~tFlG~|_^d V8D$tV/Y^ tj SUVW43ځ 3ɃAjPSUh_^][QSUVWٍG    v3UjQPh3QjRPhۋ`ËދUjUWfhjYg_^][YS\$Vt$W~h)D7jV'stW.Y_\tV.Y^[GGmS3VW]E̪GhM؉]u30@;r=s)u`EPEUE;]Ee<0UKUϋe;u7E} rE}rdzME̪G9M_^[d 2V3v#SW<؁3<:I3F;r_[^SVW3مvL$F;r_^[GGk8SVWuj_e̪GM3ƃeu;tM39VM-u @F3MăeeMEUE̵;FuEP,YEEth)DhnOApWjV8sp3EuvAMeM}MEUԍ4EӉF EPN^E]MFu3EUv"3ۋEԺNA Q,u.EF;rM 3ɅvFEԃ8tA;r1nj^iEȋP%MUWVӉEsty+}] uj3_Ee܋U]RPSWuVM3QeMME̪G;7ƋM_^[d SV3W9t$v׋b;D$uF;t$r_^[2Vt$vVNv F3^SUW339/vVw+g+C;r^'_][VN^tjVWt$ ֋_^ øGGieVu Mu1eM$EPuc*YƋM^d GGh S]eMKVWQF;~e+Hf!eY,0EMPPE\/ G}:}t5}u/E UGDUQRPNjMRPE'}EuM̈ED9,MPEE̍MP%9$$EPEPj4ut$MEx,MEC,uEMET,ME,$$PEPj4t'UMčG+ME +E,EY,EMPPEZHGM$P&M u D ,MYuYMU3BME*MEq*u,wuMkYYMUƋM_^[d (IG\SVMU Wj\MEePuVuU~D؍EPMTu(MEu$u uVuPSeu;~DYuuY_M^[d $V)FN T$FHN^>IG[QVj8NYȉM3;ȉEtuMPM^d VW|$ N GFGFG F GFGFGFGFG PG,F,G0F0G4F4_^IGU[SVW}$M3ۉU_ ___j_$___ __(]]NDžGE]8tjXE@3;ÉE~~MhEEhl8u$Eh@ 0RVtfEuqlhhlEu]MFY;u|hYȉM$;Et3Z,EhpGPEHZEhpGPEоHZ3;]tVP}MEA I‰:ӈN0F4t:uEuPQ ;ÉE$t$;]tVPM&E$J9]܉]EM@ ME$EE8thl]&E$h0T#EMPE$MPR$;ÉE,:jME!MEEhGk&MuEE9X;M$A;- DAf8.t;t HH+EM9]EM$@PEPM̍EPE;ÉEMȾH ;uM$P1PME 豽EEY;tMDAf8.t;t HH+;|]@MPP MPE EE:9]Y|'MH;tuMmMubuEYuE,u$SPEPu(=@EDMPMddE$uPR(;ÉE$O9]*E89H]LM4M ;ÉE$|RE9E$~JMju$PM ju$P$M$j )MM$QDE%E@EEE;H|9Ht,TXEEMuuPQ ;ÉE$jMЉ]Љ]ԉ]@MURE P;ÉE$9]tMURP4;ÉE$4]$;~78M$9X4tM@0PQR;ÉE4E$9E$|ɋ8DME$8u 8]ujY3ɈH,MH$MH(EPTu hXUlVuuQM$P;ÉE$E8u TXhlMUUMH P$H(H,E u9XqYMEP",ENEuIEYE;E=;GGG G$GG G(E]@WH O@$GtVPM!3M_^[d u;Y]tVPuMEo!,Emul;Y]tVP@ME4!,E2u1;Y]tVPu$wME ,Eu;Y]tVPu$>uYEM ,Eu;Y]tVPu$uYEMw ,Euut;Y]tVPu$uVYEM5 ,E3u2;Y]tVPu{uYEM,Eu;Y]tVPu$<YEM,Eu;Y]tVP@MEhpGPEHURPJGQQQSV3Wu`GFGFPG^ ^]^^ N$jEYY謷N8jEYY薷NDjEYY耷FZF[F\XXX @ Gj8E 0GF GFGwYE;E t W3PE bM_^[d UjhGu yQ u EȍP4jhxGu YQ tjhXGu CQ uEȍPP#ʋU Q3@] Vt$N F ut VY3^JG7PQQVuEtPQW} GE EfE_tPQEtPQvDIv8Av$9F EtPQFetPQvMtVPM^d ø|!uW u W}E;~|ЋE_^[UVWF9E~EM yt3EWP-3~SM UЋ f A@;f S|[~F_^]SVW|$F9~\$S iVTRARAPrM _^[l$dl$l$Pl$`KGK$SW39_VG M47eP~Mud ~Yu jSPM^uAh\HMSVЍMEBPE)u uЃM YYC;_o^M_[d øtKGZJSVWME,HE330f9t G@@f9uM9y|:EWP)։];uÃM YuMBtE}tf=|t f=:tf="uj_XPMaG;~|ME;tMf|A.uHjPMMEPu9 EYM_^[d øKGGSVWM3jM}}}}{39~}~";t j\MF M4C;^|ދMEPiuEYM_^[d øKGG(eVMEeMuBh\HMMQME>PME\uFùe:YYEPu%YƋM^d á I0s  I@ Iø4LGkF@SVWMj Gu3M}Uu9}Et'uMUȍMEuEY9} t'u MUMEuEpY}~~M`METEԍME4N;}})EM4;M|H[ u !EEf E܋PuEuGY;}Y|uMEeMuȍMEMMM_^[d HLGESVWʉU3Mjuuu_u;tRu~<MfHf= u9ut MEPEuf0 PME9]|9ut MEPu Y_M^[d ø\LGjDDSM39 IVWE IEM06eM,F(MEF,Evv~,MEF$E~ W艅 WVuFM EP9MMEC; Iv_^M3[d SV3jN ^^YY蓩^^ ^$F(FG^0^4F,G^8^[øpLGSCMSMVWQt1DVf8\t;t HH+EMj._t1DVf98t;t HH+to1DVf98t;t HH+3;|M;E|H;|D@PEP}u9w~G 9t EP.} F;w|uYM_^[d VW39~ ~F$D$ ? tG;~ |_^S\$VW39{t9~~FS }G;~|_^[VW39~~FL$ H tG;~|_^LGASMM VWT}3Wsff.t ft @@+}ڋË+PEVPMeEPW}M|H u3M VuMsWY;|M_^[d M uY2ڸLG@QSVjKYuetW}W N WE_3MVM^[d LG@QVj<YȉM3;ȉEtuMPCM^d LGM@QVW}uN GFGFG PVeGPN6f0f4N,G,PEGdG8MF8_^d LG?QV3uFFF FEGL uQM^d VWv|$ffYGvPwwv~A _^SUl$ VW}FP* 3ۅ~E 4*C;|_^][LG?S3VWf]f]u }W]uRQP;tf} u f9] f9]t@MM9HM_^[d t$jMG> SVW3f}f}URju}PQ;tMMGf}u] u?f9}] {f8MMG9{uYFP蟣f}f}֋6MQjuEVP;t5f}u#j.?u܋)MM:G3,f9}t@MMGMMG@M_^[d ,MGp=SV3Wf]f]Eu U]R^j uPQ;t4f}@u EEf9]t@8_,tG$G(FEMMtFM_^[d MG<|SVW3u;tPQ>F0~4VMf8y jM}}}}蚢EE;tJMDAf8.t;t HH+;|(@MPEPPMEޡuEYjMqhGu9} E|u ME3ۉ} 9x~JE@ EP~|"E PE MȍM E؋Mȉ SMEC;X|9}u} jMR }9} tMHn;jxxG}}] MVE|EWWWWPQ;tUME u P};u9} u#j^u]YExo>E}E}]MVEk|EVhPEN }|Yu]4u])YEYxMEuuYYjXM_^[d 39}~7M؋U R y0rI43ҊqʋUʊx@;E|M 3;] sEU3Ɋl <uC;] r;] u3Ɋl33E7E؋MIEH0ɉMtRU B;wH@439MvUӉUċUĊ:u,AE;MruxTE5x5x7uC;] 3339}~E؋=t PxF;u|MxMPuGuuutYEYxO-MH;tMȾH{;}}EGMVE'zE]WWWWPQ;uME PӉu Pz;tuEGY} eˍE3EREaErE!EE+ȍD5:uZFr{ suNC tH39}~AEغH4E@H ;tC;]|jSMWME؉0uEEG2Y}hHM4MEPE{uEEM$HMEPE MuEEY3҃9}ԋ~u FMCI49~ u\t IMVVME EUPEPMEPKE軚uuu =EP;}3N$UH QPMPKEjuTYE E;tPQ3ME u,u$YY$MG4QQSV3W]]]8]Et$j;Yt XG3PMpEN9]uIj@YȉM;Et J3VMEjM}}}^jÉ} ^f8GfEEVj_Jj#E-fx_jZ#J-f8#҃K-fP}t$ SffEt$ SffEt$ TffEfeEPMtdUEMPvj ЍMEMQMEPME;u%uue MEP誧uEYf>u_NU Ef>@uF9~ u9~tE܃PVGujˉ;{{'mu U܋j1\f>t ֋1Kv}3ɍ@jZttf$GEf@@A|܋EfE@@PPËM_^[d OG%\SVW3ۉe9_&]URhGQ]9] MeE GwEPYE;Ethf$@h`@XVjS0k*3E3;_G 4fefeVME~Eu]EtaMfDAf=-ujf=+u jM]-f}t8EMHPEPPME#Eu Y UN 9E܍MPmˍEMP.,uYEM-C03E}}}EHGE3;u}EM0FuEuuPQ E;MtFTE GMEjeM5EM;tPQƋM_^d [ME;tjaXE GME eMEM;tPQ3룋MtjXjj#UQSVWU6]+;^t Q +wrw P , RP,_^[SUVWًxsV3~ UE;|ShA _^][ËD$ @ SY~QVq W+ƒt$׋t$S2Ouye x|E褏Et5t,5Hx|MPzxME Mge E]u^~,tXF$x F0Pu t8} u2u)G<Et@Pw39~ ~`F$} X t EȍK Pwu6}u,EPpMEuEYG;~ |MPG]}ETpEP&]ME8MEMEME舏E?u h`H&N\ENPvuYMEdME=Ex|uY*D3u} MWQHQMQtP Et<]MEQMEMEME衎uEZ}E]MEMEMElMEEuEx|uYYHEMZu~MYgMi}F$EH EP}E trMufHGOh$H腌EԍOP uuY]ME!MEME"rMEKE# UԋMYunHGOhHEOPtEԍOPtuuY]ME$zMEEME%MEʌu4YE3ۉ]hHME'UGzM SVueWFPex ?u @yN@P iN@PY8GtFLOj@ N@@PR5NHGPQHEPN@jPERu؀eE[EYC,~Et0jYt`G3tVPE0j@޷YȉMEt < 3ۀe]tSPwNHEEP:FDPEu u8EEF@8HGN@PuWu茷eYtSPEulY3 AøM_^d [ HUGQEeSVH@Weu P AøM_^d [T$JujX"D$;rAR L$ V4‰1^DA3 UGCTE SVW3ۍUHe]荳EMPqE}}Aj0MM؋QMEPME~ZuhuE\YY빋uMF(Puj.ME!E؍MP@4MV4j YȉM ;Et #3;Eu tVPES^PNE^.:uHG;EtVPE03u讵u覵YY ~AøM_^d [ UGQESVWH}EE]~3}8FE~u15@HMnEMEFPEuٲY~]ԉ}tF$uE}܍NQȍWG}3t4t&~t;uG;Fu EEEEEE űM nE G;EE9E}5MEEM űEԋM +EE;E|֋E9E}BMEMMEЋI 438Nu M̋M EE;E|‹M Ⱦ]ME趽ME聽eMuM|fM_^d [UQQtmItAItEh(GPE?UMUE;Er)3;E3UMUE;Es3;EuPGVGPVQMqpej M衋MVËMj 莋Mu讋EMP9pEhHP_^VGSډMjCY;~vVWM3C M~I  Eu?5F;t$r[_^]WvSVw@jFKu^[w_QSUVW3f._@jψD$JufD$̓f |3_^][YjXUQSV3W^ 9]v-jO@ψEu8Etu肋C;]rjX_^[3UQQVMjUuEMFEF ^UQQVMjUuEFEF 3^U VMj UEF$fEEFEFEFE uFtFVM@Pu3^UQQAjEA MUED$3D$rW+T$@ ,H(H L$f@fD$ 3@8XG3fMfM} ,MuE8HXtpTMpPuMMM&M3d TXG(SVW3ۉe]f]f]΋EEHtutPt2E@<s H HPMgE9X\pMvEH;tlU9EMP?VE8XXtNpTpPM>E9X\t6Sp E@t'SP$M0MEuEYuMM̈]3 AøM_^d [`XGP S] Vu W~@e3WjPPESEQNFSPQ E uYMQjjjSPMU+E FXWNPVTu'SNSN\E E AËue} tVPE AøM_^d [lXG|QSVueWENFePQF`u PQ N`jcv`N N`E FDVHE tAËue} t NFPQE AøM_^d [VhNHu|$tN@S 3^@+Vt$fXF\t PQf\vdNFPQ3^XGnDSV3W9]e]}t}uE 9t Wu}9^\t vTvPWP MQW]]P;] 39]M EEuQSWP;ÉEtE e;tPQER9]u 9] u3AuWPj ;YtXXTG3;}tWPu OEO__GE ;t PQ] j8贔YȉM;Et 3ۅE]tSPjuEF\tVjjvDv@PQEt5EtSPEtWPE etPQELNdjENdFPVTFPC FTC$FXGOC(K,JEt;EEtPQEEtPQE etPQEMeMEY}Et~\tovdMEt]tGMEEEtPQEEtPQE etPQEIEGuOE؋GeE܋FdjuPQEtLtkME EEtPQEEtPQE etPQEFdP@كhpэMP@vdtj.G9Eu"GO+E؉M9EuME.j^MEn}t WP3}EVPQEEtPQEtWPE etPQ AøM_^d [VvvݑYY^øXGGX}SVW}3;u @MQMQMQSWP;uMF P9]]]]f]f]֋MQj SWEP;t f}@tW]ME܍UEEME]M0f]f]ƋMQjSWEP;tf}u̍MKEE;tJMDAf8\t;t HH+;|(@MPEPJPME4uE耐YSUM芘PMEeu^9]YtMuLYMĈ]7f]f]֋MQjSWEP;t(f9]tξW]Mf} uf9]t0W]Mff9]t]MMWMԈ]9]tlf]f]ƋMQjSWEP;t f}tW]M{E̍MĉEEЉE]_`M WVuUuz[9]tWQ9^Tu@EF<9]~8Etu MF@NDMFTSSuWPQ;u NTU SMMƋM_^[d rUSW~;Gr t @F(j Y+ȃ ^0 IV ʃNs_[^Ãl$El$l$l$'l$l$l$ l$ l$ l$l$l$l$#l$Hl$l$Hl$l$ ~l$`l$a|$Vt$tA38D$ 30T @|Fy F As3ys-Q#twrs tjX3^jYjZ;tjZ;tA~3ɃðøRZG~QSVW39^~u.hƃYȉM;ˉ]t3MPωd8]t~9^~uv]S2ҍMhE;ÉEtEM;tPQENE;t WhHGP9uEM;tPQ@ EM;tPQ6u N F PQ M_^[d rZGQVuFEt  PQFetPQvMtVPM^d øZG:QSVW}w}eFeURh(GPEt]W jRPQ ؅t MEbEMtPQeEE } tNFURhȤGPEu @u PQ ؅tMEtPQNM #GtjX3u#PQ2} tLe vM QhGVEE t PQ uEPQuE EtPQtEMtPQEMtPQ3M_^[d D$3D$rW+T$@ |HxH L$f@fD$ 3D$ 3ZG^3fMfM} ,MuE8H8tp4Mp0buMIMMM3d ZGPS3Vf]f]E]tnHt[u9^SH3fzHe] AEf C~WMHKu{EPM PMEeumOYLF MQMfx PMEeuO;F fxf9uvEfPM PMEWùe=m;Yu?j1M蜡MQME褣PMEumuelYYOyEBPM PMEeulOYiF MQMfx PME euVt$N,xNx3^L$39A L$3`\G֪3fEfE}Et}v'}w!EMpDp@ӳEMp 菲uM誴MMM3d \GbSV3W9]e]}t}uE 9t W0Eu]܉]pDp@VQ ;]39]MEWQSVP;ÉE tE];tPQE 9]u 9]u3WVP;tE];tPQjj;Yt%@GXXX XpG@`GE];ÉE tPQj8EjYȉM;Et 3;E}tWPSVE]EM;H E܋MG(G O,O$;EMSS@$SS0VP;ÉEt:EE;tPQE E;tPQE];tPQEuE SSuVPQ ;u3EuH@MEECE;t PQ]SVPEE;tPQE E;tPQE];tPQ BøM_^d [UjhGu 苨 tjhGu u uEPٍP#ʋU Q3@] Vt$NFut0ViY3^\Gi$SV3W9u eut WEj00hYȉM ;Et 3ۀe;މ] tSP}E;w}HeG ME0G4 M؍KDE܍EP$EEtPQF볋(EM 3 BøM_^d [ UQSVW3339F$E~GEȋF(xXV( QI ًPjjjQRuEE;F$|3F~F F^3_^[Ë3ɉHH H$H(@,@GGUjhGu 蘦 tjh8Gu 肦 uMEPQ3@] Vt$NFut VgY3^\G聥QVquGesMrM^d ø\GFQjHfYȉM3;ȉEt Md VW30GN FG~j9yy ~~ ~$F(FG~0~4~8F<F,GGFG_^UjhGu T u ME?jhȥGu 4 tjhGu  uEٍP#ʋU PQ3@] Vt$NFut VeY3^]GQQVWuN,Enq~}GEqeLqv XeY_M^d XH%]]G訣QVj dYȉM3;ȉEtuMPWGM^d UQSًM W}C;~+ljE E ~-VEC 0ɉMt udYMu^u Wr_[UQAU e;~+RPuD]E(]G٢QVuGe`pM,pM^d ø>]G衢QVWjcYuetEt PQ3MVCFM_^d UQAS]MM ;~+ÉE E ~4VWEE@ 48ttPQVcYMu_^u MSp[VD$tVacY^P]GȡQVuGeOoMoM^d VW|$ tPQGFG F GFGFGFGF_^VnD$tVbY^d]G3eVRMueM=EP6"ubYƋM^d l$l$@l$l$mmf]G袠QSVWu0G^FxGFdGF TGj3~hj}9yyE M7G;~rj]McJMEPuYEYM_^[d SVڋP$Jˀ PJ^[À s0Ã7U$eV‹U܋UE܋Pݍ^ø^G荗 SVW3ۃM]uǙ+‹ jM]]]ǃ+‰]A~* MiPME\]uXYEm%MBPME|\]urXYEkuMU薎uWXYME_^[d VW~tj HW_^ø^G蔖8S3V];WM]vR j^ uHujMԉ]ԉ]؉]]3@HEt~jM]]]E;t PMs?׍MMP0HME PMEu[unWuEbWYYUM]uJWYG|HgMEPyu%WEYM_^[d úH`|^GvQeSVuWEeVPuu aG#BjX R#BøM_^d [Vt$NFPQt$ .3^SVt$ 3WƆX;tPQƴ;tPQ_^3[_G腔SV3W9ueud}t}uE 90t WV}]w|wxSP MQSuԉuP;,u 39uM EEuQVSP;ƉEtE e;tPQE9uu 9u uSP;t.VVwtwpPQ;ƉEtE e;tPQEj8TYȉM;EtEutVPjSEBVM蜤3ۉ]]쉝04H8EeE` 0`904tu EE;EuceUeRh0PQ Et90EEEtPQE etPQEME+ȉM +ˉMMQ39MQMQ0ȍEQP48dMEEEF V$N(V,ut }ueE t }0M tNvJ4SS؅t80EEEtPQE etPQ38]F 9]GxF$G|F(F,jX} 8Gjx)Gx|G|3E t PQe EVPQE0EEtPQE etPQ{E0EEEtPQE etPQE~}t:Ej^;Gt#~~MТE0Njj^BEEtPQE etPQ3 (BøM_^d [VNlb\N^\F_GSVWMu 39}uMooj[9]^u;u @MQMQMQWVP;g9}tMf}f}ʋMQjWV}P;tf9}tf} uf9}tWMMXMM舘9}f}f}MQjWV]P;uf}tWuuVP ;tMM7MM&\蜣]}CD\MQWVEP;ljEtEM;tPQEguM%9{} ~cCM sQhMYȉM3;ȉEtsH#Md HnE_GQVupGexYMDYM^d UQSًM W}C;~+ljE E ~-VEC 0ɉMt?uMYMu^u W\Z_[V_D$tVLY^_G<QVuvLYxGeXMXM^d UQSًM W}C;~+ljE E ~-VEC 0ɉMtwuELYMu^u WY_[VD$tVLY^_G|QVuxGeXMWM^d Ü_G<eVRMjueM{EPuKYƋM^d l$l$l$l$ l$ l$ D$rW+T$@ E MQjF jjWPu4EM+WKFNN贙3jX 0BøM_^d [Vt$Ft PQf3^(`GESV3W9]e]}t}uE 9t W}uwwVP MQV]܉]P;X]39]MEE u QSVP;ÉEtE];tPQE9]u 9]u3u VPjH;YtXXܭGu];utVPuNEr^^E;t PQ]j8HYȉM ;Et su ] ;EutVPjuEWwGSSVRPQ;tE E;tPQEE]j E HYȉM;Et 3VME覗NFW jRPQ ;tuj_lG} MuWSSVPQR Euj_H;tBEE;tPQ;EtWP;EtVPE];tPQEm3;t VP]EWPQE;EtPQE E;tPQEE;tPQE];tPQ 2BøM_^d [3@GHH HHHHG@GUjhGu  tjh(Gu ۅ uEPٍP#ʋU Q3@] Vt$NFutFVhFY3^j(4FYt``G3HH>l$Ol$n`G莄SVWuuNj~T3ZGMOOO W^hKKK SN|RE|F|GjEddžGE3ɉ9HE~P ʉU܋U܋RA;H|ev'j'j'EE;r܋E39>vj'jN|u'G;>rEPeeJUE]@ e<+L+߅]v:UU~`]E;}]E<}B;8r׉UUexv8UU܋~t]E}E<}B;xrىU܋UJUZM_^[d `G讂QVW}WueGPNPG(N(PEG;|ju)N|3҅~@tuB;|3W_^] bG9uQVuGeBMBM^d øbGuQVWjW6YuetEt PQ3MVM_^d bGtQVuGe3BMAM^d øbGttQVWj5YuetEt PQ3MVM_^d UQAS]MM ;~+ÉE E ~4VWEE@ 48ttPQVe5YMu_^u MSB[bGsQVh 5YȉM3;ȉEtuSMPcM^d V,D$tV4Y^VD$tV4Y^:cG5sQVW}lju؍O#NPGeFGFG F GFGGtNxFtGxPEPEPEǴWE)MG_^d xcGzrQVW}utPQGeFtPQGNFG F GPEBG$N$PE2G8N8PEnLNLWE^M_^d cGqQV3uFFF FEG[?uuM^d cGqQV3uFFF FEԱG?uNM^d cGMqQV3uFFF FEG>uM^d cGqQV3uFFF FEGw>uM^d cGpQV3uFFF FEG+>ujM^d cGipQV3uFFF FEG=uM^d SUl$ VW}FP=3ۅ~E 4C;|_^][SUl$ VW}FP=3ۅ~E 4EC;|_^][UVuFuMURuu PQ MNUV^t ] dGpo,SVuW3G>UM~}̉}Љ]uMȉ}԰UЋMu`;tduuuo K}؉}܉]hME舰ME܉EyMAWQP | fE tN;Hr ;UER+RURPQ }9E};}r+}PYGMt=MEE8t ;sAM;t uuQn t_E9}rŋE>V)}uWP7p} ?u܉]/Yj_:u܉]v/uЉ]k/YY*j^ߋEj_u܉]~J/YuЉ]>/YNjM_^[d H IËHVquH u3^jX^Ë F5@ødGLm$SVqoNLNPfDFHF^øeGaLSVWuMGM3}'9}u WKMff=XujWMF~~贿9M|EM}f|A\u HjPMEPuYM_^d Vqu2^ËjVPR@G3ɀ8/^UESVW3;t89}t$u^ VFN;ډErw;r;u ;u3@N$F}MN( Qy;ډUw r9}sEQI M;rwM;r@EEM+붋MFV(<+O_;OMӍ_Uu;StSjRuPQuJOG +ME3;r w9MvM?MQuu WP M3NV  MStU_^[UEt6Ht HtMMQAU IM!EM UPEM MHMt @A3]UVuW3FtURuu PQ ~tuU NyPFEMFVt_^]U fVf=u ~u6B(fu,~t"W>U'!MU+_;Nu M3W^XfGVSVWQMMe MU u+thM^;^;uwV sQjZ3IM qBt) tIIu/w+=s$w=@s rws븾WuYƋM_^[d ølfG%V yuWff=uJ s?jXM3@f=u+VMrUeMuZY^WUMd VW~tIHt9pHJt)xHatlH*t2 '_^øfGHU VtSt tWGfz9rMe֍MVu%WuY3M^d UQV1WUwv'3 E+_^UQV~u+f:t M8u98EtEjXM #BU;FtW E M3^VN*3ɍFxNtHHH @GFh^V3F`FTFXF\FPG^Vj3ZHHH PܱGjP$^GHHH @GH,H0H4p8P(pLH@HDHHP<^øhGSSVuWΉ}dhE(3ۍMȈoEGM]]uME`dF0];uuuj~;Yt X(G3;}tWPEj(GE GEGE NEM5;YtXXG3;utVPWNEcMIFEN^PMȉ^^ tEE;tPQ;EtWPEEME;H0$}uFEEHE E 8tW E OxGtwt;tPQ8_htAh+YE;Et Q 3PEGlbGl;t3GpOpR;tHHEEE]P(GMEGE9]ĉ]EM@ 4]]SUvME 6a;ÉE&]~E u,~u&M;sQMa8_ht1uOl$9]uMa8_ht uOlEOxPz EE ;tPQEE ;tPQEE;tPQEE;E#OP OpP9]ĉ]]]U]EM]@ ME4URh(GPEE;t0MI M.MuIQPR ;ÉEgE;EtPQ8],tC]URhGPEE;tu0PQ ;ÉEyE;EtPQ]܋6MQhxGVEE;M$;]URQEP ;]]EGE(uME EME!4Vx9]]~(EMUf  3EՋMTE;E|؋EVuPQ u;uEG YYu,GE;EtPQEEjH@M썍pEԱGpj\E$l\u썍pE%u\9]sEuEFHMȍ\PEMuKEE ;tPQEE;tPQHE E7E]P(GMEGuE EE ;t PQM;EtQPHEEE]P(GMEGE@EE;tPQHENEpE]P(GMAEGME=MM@u9]]N];~F U9tE9M|;|N DNH6EN0];~F4U9E9M|;MpPEEE;EwhOpu|VP\E$?pE0F;uĉuE;EtPQHEEE]P(GMEGEMEE;tPQHEEE]P(GMEGuEEE;tPQHEKEmE]P(GM>EGME:MME;EtPQHEEE]P(GMEGE@u,GEE;tPQHE{EE]P(GMnEGEqV uEGG YYu,GEE;tPQHE"E*E]P(GMEGE#MMM\E$pEHE&EE]P(GMEGME'MMJ@2PEP@08_ht GlMHp9]u\HE(E"E]P(GMEGE)MMMjrDžGuЍE*39]~Eԍ0F;u|u EUEGtjSRuЋSPQ E6EM](MMYƋM_^[d ,U SVWڋ]KP39w~G t QK\F;w|39GEE~]G M4M^FSP0vE6HP v"uj}EuHSVW 9uu}H@PMmEGeMZEGjM_EDEGF`EE苆;Nj~NfPMEEWfE̋MȋL/fE̋MȋLfC;|;~xj Yt`G3ۅۉ]tSPE̍MEDCEPjYt3PM?EEtPQG;|339]~SSWPG;}|9uVEGME MEy EGME eMZ EGE@ENXPEP09] tkjhDžhԱGNdE3E9v";}uu ShPNdEG;F9^ v9hHMÅ3F ;svCO;suYEMEEtPQEEtPQz667u Kl)uYEMaEEtPQEEtPQexV3EPQBjX BøM_^d [qGQQVW}ewuGEe?MtWPM_^d øqG.QeSVuWFlet PQflNp 3 BøM_^d [VSXqpf[PE3^VW NN(N<NPNd~xOOOO_^QSd$UVWL$wt;iD$ƙ+‹W ‹‹[9u;t2;w r9s@D$9t$uȋiVtG l_^][YqGQVuGeMM^d UQSًM W}C;~+ljE E ~-VEC 0ɉMtuYMu^u W_[qGQVuGemM9M^d V'D$tV+Y^VD$tVY^VD$tVY^qGZQVuGeMM^d ø"rG"QVuNj P;ƉEt0u誹YEGME eMvE'UEPEPj j;ƉEt0u]YEGME ^eM)Ef8f:8QjuE SP;ƉEt?8EuYEGME eMEpf98t}f8t(8Eu衸YEGE@sEnPMEk\RGYY8E-fHfJHQjuESP;ƉEt?HEuYEGMEeMEqf9Hue CfH t(HEu蜷YEGEf9PE EÍHEbfhfjhQjuESP;ƉEt?hE(u)YEGME*eMEf9hue?fh t(hEuѶYEGE+f9pEhE}teeeeuu} u}t E$EÀ}fxfzxQjuESP;ƉEt?xE$u%YEGME&eMEfxt%xEuܵYEGE9EME MtG}tAxEu衵YEGEMeMmWxE_EMPruEPEYr轿tE访tOPPE;ƉEtEtEEEGMEeMElGDžuЋMQhhGSEE;uURURPEQ ;t^u,GEE;tPQtEHE9EGME CeM9utu썍uouE,Ge _:t2;tO<8ɈM tPW}s2ۀ:u} u  tGDt@t ƅ   G=G>G?G(G,G0G4 G9$G$%GH&E!euMQhxGVE#u̍OdUPVu PPEPjJtnEE"tPQE!E0EEtPQtE'EEGE$MPP<E̅E"tPQE!EEEtPQtE萼E聼EGE%M苽eMV BøM_^d [)tGQVWu~13FDFHEFLFPhEk%M_^d Ë3ɉHHH SV3jN(YYWU^:^;^<^=^>^?^[ø SVuW3ۉe@]迻N 3;]E M4jME7}uWjMEf9BuIjjMUԍMu<uԋE@ueuY*PQN ċtuY"ueYCF3 :BøM_^d [VWF VP>u7f8:tW(jj%FPu G%W_^VW|$ ' t*Pjf8Su)jjԩ׋uW Pj趩3_^tGQVuGeMM^d øtGXQVj@语YȉM3;ȉEtuMPM^d UQSًM W}C;~+ljE E ~-VEC 0ɉMtF>G?F?_^tG SVWF ~ jM}EGFN03ۍM؉]39^~F M؋G;~|39^0~F4M؋~G;~0|VDM39^~F M؋TOG;~|MM贷j 3Y0jhGY]ȉ]̉]ЉMԉEE]]]ME9^E]~PF M]<9_vuM軍EE;Gr9_]vuM蝍EE;GrEE;F|39^~.F Uj [ @0M G;~|3ۍMEݶMMѶ0E ]0Mj_t E} |Muэ0jZuC |MMk2M_^[d VWxV~ jeNu_^;QrËA V~t f^VW~,~ t GO DF_^Vt$L$ t$F^ U SVj 蟩Yt Wu_3sPFN ^DMC[`M HD$ppt$ yUQSM/]KOt.KVWr} |;w|G M4S_^[UQEhDHEEPVF;FrNAN^VF+F9D$ v39D$ vV T$ F@;D$ r^T$VW|$ 3ɋF+F;r w;vn~_^V RP^USVWF;Fr;FE@3ɉFMMMM]tC;Fr~M E UmEE}@GF|ËEU_^[EH#MgEUV^ҋwv^VF;FvNN^VF;FvdNуRN^UQSVWjNF+>[]t<;u|;t CC;؉]r;ux;EtM;Y| SKM~]ff@@GGMu_f$XEYF^[tGJ SVWMj ^(_Wa'et3S3EGE؉EhMԉE&EWSPE}~ ^$ U tϋ+N F$;Br; EEPE+RUPuQ EEtt} vȋE3҃UEvWEUM< 7t ;sBU;tu7EE;Er͋ME)EuPQA ;Mj^9EMj PF(P+ }Ej~ Yك ^$QQSWPRuEGOYƋM_^[d VW3H1HH:uF|jO Z+G@_^2VW3H9HH:u9G|jN Zx;Fu&jX<0u@ r~u~u32jX_^VWfHfL7|$ N QjjjWPut$Wu W3_^Vt PQ&^VN t N^tGPSVWN4]W]ee}܃eeG}eEPAuM}趣CYK |NNE EPEPE~`E3;MԉM~.MLÉMEEM E UMEMuߋEE E؉GtNSGNHjXGE Gt"N/POE#uNwE tGEGEME{HωEЮuEv&E܋NNEPuaMu݋};}sW+}K(MWήuD39uv0S3Ʌ~C 90t A;||F;ur MV聄{0tvNp}uEF\M; rGeEE;Flz_^[øvG*<SVW}.F 8F$<N.0N/81tMF0~4EF<^8EF@N4EFDjEZ39M) U U9M }WjQQPRURjjjPQM܋U+EUUu ;s+MEPNjjؙRPQSWD O <u t<u tIyڅ+EU +}U]}]jjuEuPQt ;EtN V$E @DE Eu3}w}w |sjXjjSWPQ3;MԉMEGuMM uU& t\ME ЃNHVLUϋ}à M؉;EteEЍMPVE3GEEĉEE]NEuutuEu PPPD@t ]Eo}u ]E3`}~lMQEȍM0VNut@uFHFLu ΉW]EMDMEeMuEGYƋM_^[d vGbQSVWeeuu u OBjXM_^d [ vG#QVjXzYȉM3;ȉEtuHMPkM^d vGQVj 3YȉM3;ȉEtujMPkM^d vGQVuGeMM^d øvG]QVWj 賈Yu3;EtuΉFFG蘇ƃMPjM_^d USًM W}C;~+ljE E ~"VEC 0tjMu^u W賕_[]wGQVW}WueGPNG(N(PEFGYFYT$|_^SVW\t$~P38\$u~LWh(GP9u@%9^Lu@;uFLVjSSPQ_^[VFPt PQfPFLt PQfL^ËALjjjjPQUV38FtE F E8F t2S]W39E vNP-G;} ru N'_F[u N@u&^]QS\$AA[;Au UVW} FN+;vE h(GPE WuP ~_^]V~tF =~ t$t+N|FT$ȁ3 :I3ȉNN@^UA9AuEh(GPES]A[]VWj^t$ nl$ Nu_^UVWj^uMEU jY(NEU u_^]UQQeSVWjM3_jX39U rw9Er]F?|EU ˻EuM~"uMEU jY蠻NEU u_^[U(SVW}MGRP]e G MEE4F EFEMU6 t EE}@rEH|%EU\HjEY}؉U}݊EjY$9Nu9Nt3ɄE } ]I}J QuE؋P} tjvjvt}tjubuvEE;G39_~&G Mj4؍4,MjvC;_|ڋG0~3~G4Mj4F;w0|_^[UQeSVuW39~ٰ~4N <tEuueG;~|`}+jcYuEtGfNG3VlE`萲Ex,t0NPE uFEGME nMEn4EEtWP@e U RPE Q u EtJ,GEGME knME6n4EbEtWPuNEu ,GM 3Vu;ƉEtDEGME mMEm4E;EtWPu3M ;ƉEtDEGME mMEum4E;EtWPuwu܉wuԋEuԍLEkE<tLPEP EL0Vlt+xu:`t|Pƅx|xf L4PojEE;T@EE䋍XEȋ@;EMȋS\I; P~|WRP0HDhLPE RPPUEc GGCHe0 1Ex0~-EEMC p0BEEME;H0|ۋEuHF^^ ^(;|H3ɉN O;LJf9.t;t II+;;};AωFPEPD9]]t`MHQjM܉]܉]]39]E~Efxf=sPMcH!NHNHN?H"N:H$X#F F$GF;G8^;u8^:u F F$tj[M__^[d zGLQQSV3Wu^^^ G]^~ ^8jNCøM_^d [ |Gy`SVW3eEfEfEUM jEB(r[ȋ4H~p~~N j}9yyM_^d ø|G4rQQVWue~d}PGE?Ey?~P}XGE?eW?MNM_^d Vv4A3v(93v13v)3^ËD$H*3UEVuFE F EF$EF@EN,FD耂E F8F03FHF(FLF9FF^]VF4t PQf4f9Nv,t$VP^A8$@@Pø }Gp SVW~FN(V$ex @ ʋύ ϋI[pN(MN I9MM}PMэ<׋W Ip S ;Q u2S;Qu*t&~0uN UI <tEEM;M|E+F(FuFf}~dNtC;Fv(D=fK=FKNu  FC F F N(@ <38F0Euۃ~tՋN F(I <u3}N,F$]jSPQ}R;uRE;u:F,jPQ;u:F(F9iEM;tPQ9~udMPQ@REM;tPQ=Eu^$F,~4WSPRu9u 8F0uEv,uVPM_^[d VW~9ukF N(;H}`FN(N$P @ ʋI@pxu:F4t PQf4u!F,WPQuF(N F(;A|3_^Ë}Gan S]V3W;؉eEEt} ~9~<;} r} 3ۅvH8]u ^8F4teURWuPQ }؀~tFtNHW+N uQ { E}tM})} )~<~HFtu0F4t PQf4F,jPQuF(N F(;A|3^ø}G^kSVW3}e}E߀}t E@$E9} 9}}ĉ}Ep33;EEs_}uM MQ(I‹ PIp4Nu(PEH;Et}]ȋ~EF 33ًE@}]ȋ]uȋuSP 3j8}ĉ}ȉtx+YȉM;Et 轥3e;hutVPWSE&j+;Yt"@Gxxx xpG@`G3;ljEtPQl}}}}}j$EC+YE;Et 3;uEutVPEu|EE;tPQEE;tPQEE;tPQEE;tPQEE;tPQEԀe;tPQM_^d [j|\Dž|GE }E;E }t E M4}EG(W `ASpE@38pÃe}MSQVWE PEE tPQ|E5EEtPQEEtPQEEtPQEEtPQEEtPQEԀePQSWP`Et PQ!ujWPEE uQOuE}p38pÃe}MSQVWE Pu SWPt EE Et PQejWPEE GPM|EE49u}j|ZEj|ZUE33BR ΉEME;E}uM EG(MWȋ PIp4NuLPO];EuFE;E}j|+ZEj|ZFV E33ΉEMElhEĉA(EȉA,tA xA$jP'Yt3ɋHHH,H4`G3}tWPsXME vpK\u4|uuuPEP.E`!F'HHHt7EE EċEEȋE̅[PQP}u3h&YȉMEt j3PME EFvFMP@}u1hX&YȉMEtR3PME EuFMDlu4hh &YȉME tÜ3PME luE@!EM3p`sXuEeeEuG@OD+GHOL ME;AM}@4MF\EuS]vxK#uFtF3UjCFx3j^SRPQt EE 5EM@9EuEeeNEa }uadP\PEEE tPQ|E0EEtPQEEtPQEEtPQEEtPQEEtPQEԀe"PQdEӀ}rGHOLEċthjM\[B(xJ,xr ʉtB$=;EE ;tPQ|E/EE;tPQEE;tPQEE;tPQEE;tPQEE;tPQEԀe;O@GD+OHGLMEuv 3MEd3;r w;vUuE@+t?Ht(HtHuNEME(EMElMR EE؍USRSuuPQ E9]}EE tPQ|E.EEtPQEEtPQEEtPQME`METeMHE{E_}uuG@OD+GHOL twVtjME |E-MEMEMEMEMEeMEMEċEE E|EZ-MEeMEYMEMMEAME5eM)3]QOCø}G_QVuGFGFGf NoeNPFM􀦄GFGFpG^d UjhGu _ u EȍP4jhؤGu _ tjhGu _ uEȍPP#ʋU Q3@] D$@ @ L$I A u tjP3VD$tVY^}Gf^QVuGFGFpGeNPMNM^d Ë3ɉHHH HHH H!8GVt$NFut VpY3^}G]QVu`GNe*fF4tPQv,MtVPM^d ËD$L$@$3SVt$ 3W8tC<3uS.GV@t @B__^[~G1]QVuXGe*M*M^d UQSًM W}C;~+ljE E ~-VEC 0ɉMt¼uEYMu^u W+_[~G\QSVWhYȉM3;Ήut u }MW7+C M4_^[d SUVW3wt%_ .+‹T$ :t#sh;uދD$Vϊ*G 0_^][VD$tVkY^VD$tVOY^,~G[QVuPGe=)M )M^d ø@~G~[QVW}Wu&GxeFxtPQM_^d b~G=[QSVW}_GNSuF?C@FHCDFLeGPPNPdNdWEM_^[d ~GZQSVW}_GFfGfFfGfFfGfFfGfFfG fF fG fF GFGNSuFMEEe SH 2(^(WE] K WE M_^[d ~GZQV3uFFF FEXG'u]M^d ~GYQV3uFFF FEPGC'unM^d UQAS]VWMsƉuP['3~/C j4Yt NH3MPG;}|ыE_^[SUl$ VW}FP'3ۅ~E 4C;|_^][~GXQVj BYȉM3;ȉEtuMPM^d VW|$ WtG F GFGFfGfFfGfFfGfF_^l$;l$l$l$l$l$UQV;Fr t A^ÍEhTHPEaXSVW33f΃ |f_^[SVW33΃ |_^[ø~GWSV3jM]]]]]G:ÈEt uM MEP.uEYM^[d ~G4WVEWPwuePuMYEPPPN EtumY_M^d D$WHtVpNu^_GV4SVu W^xΉ] 3VSSSu P;M VuHj;VE SSRQu P;xh8}u ^u o}w}9ωFH/N ωFL5ψFψF fF fF f=fFfFfFFt+fF>ψF4FFPFt FP Ft F0Pf9^ ]veOωEfEψEEFP!jP;Yt MMH3PNPF E9E|NLE 3SVSRQu P;u {{f9^ ]jM]]ĉ]Ѻω]ωEωEXfEMωE CM  ȉMԋ-fE܍EPnPMEu]YvXM;FX}OuHƆiHPE PW]7;8] HNP\PXjf%RPWQ;;Mw~r;EwuE ;tO~uURSPQ ;gFjdYu)FM EčPEĉUȋPQR;ÉEDMH]Hy 5HH'MH-9^]E j^;ÉuURhGPE;f]f]ڋURjPEQ uXf}uQuMEjPME&PME蹮uE YhHMu;t' YMEoREM;tPQL^ YEMHREM;tPQ3%MH*ƒMHEM_^[d VvH v< v0 6 ^øGHHQVW3ju>~~荮N0j}9yyxNME?ADE}܍ME?eM Ef9Eue8f} t'ME@DE}Ef9EEME@fefeMQj5SVEPEt>ME@DEQ}܍ME eMZEf}uEf%f 1f}t'ME-@DE}E (EMPE?fefeMQj SVE PE39Et>ME?DE}܍ME eMEZf9EuLGf}@t'MEy?DE;}E tLM9DuLME9?fefeMQjSVEPEt>ME ?DE}܍ME eMEf}u44EjЍ(EP\E({4El }t j/\ MEA>hPjEt`DE}܍ME(eMEf}tME=DE}EtPjEt2DEq}܍MEeMzE=}fefeMQjSVEPEt>MEE=DE}܍MEEeMEf}t@ME=DE}EMeMWEMTEXEF>_^d G0,SVuMW3ۉUjMȉ^h] ]]ȉ]̉]4jMԉ]]ԉ]؉]Eu UMVK;E8F\jdLV``VhJV p4vxvjv$j5tHP +F\ V0jd6FTjPP* V<j tkj VH%tW~]tV(Et?~^tV,Mjt'33@;|񍍐Cu@MVPc_^V39t$~+Њ ɈtF@;t$|^U SjRMPE|26VjZ+Ѕ~W ΃_u@Fu^uY[ø$G'0VjeZu MuEčMPej ЋuYƋM^d U S] VWSuMEj Z;~<3FFF3jD>EYG3E|uaY6+Ѕ~ʸ ً˃uuR(u+_^[B;D$|2A@u@Gq&pVuWM~d} VSVMQe5xHGMEL؉U]UEeM EPsu\MWPEuLuMSutE5dhE0FdFhFj5HxE]P]ptB$ MI 4Tz8^uauESSuuPQ ;ÉEẼ;dK@;h<hMd';ÉEyFNEЋESPMԋQ E;E;PQM8^=I ;zWhE3W`SwdSVRPQ;lwG$ESSwdw`PQ;{wh3wGEEċMpXHXX uESSuuPQ ;<Ẽ;%@;EwMw ; uЋE}EԍTEgE؋E M;HM#MECME7M],MM M_^[d EE;tPQEE;tPQE];tPQ뭍TEEE;tPQEE;tPQE];tPQWbEE;tPQTEjEE;tPQEE;tPQE];tPQuEE;tPQTEEE;tPQEE;tPQE];tPQuEE;tPQTEEE;tPQEE;tPQE];tPQuTEE;tPQTE\EE;tPQEE;tPQE];tPQ@EE;tPQTEEE;tPQEE;tPQE];tPQu;tPQTETEEE;KPQ@@TEgGQh(YȉM3;ȉEtMd øGQhYȉM3;ȉEtH #Md HH΃GOQSVW39^ ~ u,jYE;É]t e3MPωF7-jn;Yt XгG3;}tWPj_[FuG_ Fu EuPQ EtMtWPE`FWPQ EtMtWPE99_tMtWP@fMF F^tWP3M_^[d UMVuj V]uuF uuuu PQ ^]Vt$3FXF\F`FhFl^GQVW}Wu eGPNG NHF G$F$G(F(G,F,G0F0G4F4G8F8GS3VW]]Љ]]]ԋEURh8GPE;tEԈ];h PQ] 9]j t;D;YtXXhG3WM}*uԍO*__< ;YtXXG3WM}*uO*___OE;È]tPQFjYE;8^Dt9]u 8^D MĈ]]E9]E]@ UE@ E;tSSSSPQ;U } SSWP;ÉESSSSWP;ÉE8^DE~l@9u8jxYE;Et ^53;EFht3P)8^TE@3Fh9Xtuwh8Y};Et TGGDG3NhPtEFtG)FUNtrwA FtNLVHQR8PW ;L u NtFh9XtuVj$4Y};Et 0GG G3NhPtEFp(FpNLVHQR8PW MU] ;ESSSSPQ;uNpu ;Fhu PQ ;~Fh} EF MȊ:ÈE"9^`~`<}jFd?I;YtXX GE]uN`'F@j_ffF ffF4ffF(ffvE F0ff8^,jE Džt Džx Dž|DžDž Dž XujXMPPtPE ;?E 0E !EEEADF$fDžLfNTF@fDž\f^dEE E ]̋URh8GPEE;t N }0M~@~H~D~L~\~`FXG_^d ËD$3D$rW+T$@ |HxH L$f@fD$ 3D$3D$rW+T$@ $H H L$f@fD$ 3G,SVW3ۉe]f]f]ʋE EtX$t8)t,EHxP|+HpPtR(E:tjPMJ_EHp@t tPPQMDEM؍iSЍME0MEPuuEYYuMUMȈ]3 rCøM_^d [ ЅGSVMW3ۋjM]]]]9nw];~?F;E| PMnEVwEPE 3Ɉ0E8tA8uMMEPZmuEYM_^[d ËD$L$@3 GOSVW3ۉe]f]f]EM E@4E DtwHtlHtVHtFHt%HENhPjEENhPj}EKTP1vvMUvvS8F PEPЍME蒬0METuuEYE~hPSuDEPSAt MUU'NUtEPEPPGu]]EPM2}aHtOtB_EhPStSEPStjM*jV|MMPEPE0ME3 uuEFA<s HHPME f~jMԉ]ԉ]؉]DkFEfcuq5HMENhPfEEf]j-M׶E@tRPj ZtMPj M襶}[F@t=ENhP2t#3Ƀ sfU Hf;upAu5H5HM蓦j MEf s 4HoNjȃ t_IIt=Rt0It%ItRPj tZ9tP<5H45 H,5H$5HMFthpH5HMuԍM uEY!Stv F$PM uMY eM 3 oCøM_^d [VW39~~F L$ 4u G;~|2_^D$f8ux v Mm eEURhxGPEW9F ~ uEWhxGP?3;$MMQWEP 3;tu,GjMEEE(a}E u@}u:uMQwjUME =PME uuE 8uMwjUME PME ޿u׻uE ˻EYYuuPQ ut)讻Yu,GEE1PQ&腻Yu,GEEt(PQ EQQPR t܋EE=u39~,~N0EЋf9tG;~,|E;~,ujefEfEjߺY3;t"@GHHH HpG@`G3PMm E̍N$PMЋEvF0e@EЋURh(GPEE>KUMjRPQ EETj_f;u"h*Yk`XG^f=u*hHYEEt 3E.f=ujչYEEt܋f=bu h谹YEEtWnf= u 3f=vE 8DW2ҍMPtME{u}E MEWuEEtPQeEЍURhGPEEtuPQ t EEEEtPQeCE ~~u8jx誸YEEt 3EFt3P;Nut-}t uNxN}t>sNss u,NEPv8Euj_ uuyFuPQ tEENPQCFvME}tNDu *uMguEЍSRjuuPQ uEE]PQR@ueE EEtPQEEtPQEEtPQe}t EPQM}5E#EEt\tPQEEtPQEEtPQe}t EPQM}t E؃PQtPQ}EEtE@;C E}t9Mjj uu?؋EtPQNEPS]te}t }t3jXM EEtPQEEtPQEetPQE؃Mt HPQ3M_^[d t HPQUjhGu  tjhxGu  uEPٍP#ʋU Q3@] UjhGu  tjhxGu  u EPٍ4#ʋU Q3@] Vt$NFut V Y3^d\GYV8GGԷGFķG^UjhGu  u EȍP7jhxGu  tjh(Gu  u Eȍ8P#ʋU Q3@] Vt$NFut V(Y3^V\4\0G``GGFGG^UjhGu  tjhGu  uEPٍP#ʋU Q3@] ]G SVW3ۍMe]j33}E]؉]E}t E@E9]3;Ms4}tE }xX׋x@}EA3Nj}VRWP ;teMj8]̉]Љ]؉]蟲YE;Et ,3;EutVPSWE,]ԋE;ELE؋ΉF E܉F$ẺF(EЉ]]]]ĉF,-;tEE;?PQ4]39]E}Et} E Mԋu[YMu^u W貸_[XGQVu0Ge5MM^d UQSًM W}C;~+ljE E ~-VEC 0ɉMtuªYMu^u W_[nGQVWjkYuetEff@Ft PQ3MV诌M_^d UQSًM W}C;~+ljE E ~-VEC 0ɉMtuYMu^u W[_[VD$tVԩY^G;QVu8GeµM莵M^d VMD$tV耩Y^VD$tVdY^GQVu0GeRMM^d q AGYSUl$ VW}FPb3ۅ~E 4C;|_^][GIQVj蠨YȉM3;ȉEtuMPM^d D$Vffff NPGQ^l$l$,l$4l$4+l$4l$El$l$gl$l$Sl$2l$l$8l$8l$8yD$3G\SVW3M܉e}E@Ge]E};}uIpJ Eu2uQYE@GMEReM@Z EURURURWPQtuYE@GE }|}qpExt}tK tE39EjMЉEЉEԉE KffERj WPEQt1ECuDuNH^,^DjEYY?M^TFU^[d V3jN FFFFAA>^ËA3҅V~ f1f rfw BAA;|^2^øHG4SVu W3>~f}f}]S}uRQP;tf}@u EEF f9}tWMMWM_^[d VvHBv:YY^ø#GSVWuEčN39]]}E }EEM0SM]艝9]Mf9Xu_pjPME XMQEpE]腘9]Y;EuMfYȻH葞;ff=wMPSMEMȺ8HX;u MȺ(H<;u džvMȺH;u dž YMȺH;u dž MSW$_^[GSMM VW]DG3}EEMEMfE;vf}E8u%xuMMQE8u%xuMMQE8u%xuMMQE8ur_MgMv+uM$MuMEVPM EPuM+މ}ʈYuM}诈YMjSM_^[d U(SVWEjPMOuEfMEوFfEfFfEfFEމFEF E~^fN EgEcQMPEE3Ƀff;v#MMMMQMQMW,SVP_^3[GBSVu3W8e(FHNLG@]ODQP;XE;DHXP;tX]vqX7:tOZu7F ;du7F;hu,F;lu!F;puF;tu F$;|t"X]jXM_^d [E~,fEf踒EPXƆ]3뭸CCV>3ɍF|NlNpNtFxFh8GHHG^VW3N j9yy*~0~4~8F<F,8G_^fAf;Bt2fIfRf;uVf=t f=w ##+^@U  VuWMFE3Ph}P}M+ʉM;HHuUЍ;tA@O;vE3;s@ AEP+P MPrNfNf+NjMV RP jX vv3_^GQQSVuWeeVF3ۙFHVLG@WDFVRP~u`{;HHuNlωEbωEXM;N u+N;Mu#N;uN3ҋ1;uA;u 3 ECjXM_^d [U8SVuWEj*PMƆrEȋM܈F@EɈFAEʍ^Eˍ~ MFfẺMMfFfEΉMfFMEЉMfMFEfNBMF E؉NDM3NHGCFLMF PEPf}vEMPFHPWFhSPEP}tEhhHPEEM|PV_^3[U8Vu uu=Ej8P6t E;THtjXEMMHMHMH 3^ G$VWUR3jVVPQ;SuԉuEG*MSu+E؋MEE;w r;sE]}+E_SVΉEQuMPR;t;EC;E]SuCto;|huM ;PHuTrGT D ;XHu7H@ VPMQωEtNGHOLEVMQPt8M39T t;Kyj^uEG$Y[M_^d 3ًGHG@GLGD jH V@YFÉV ^ +EE܋NU^;u;t+ӉG@WD몸ϋG(SVWM貌wVjuu PQ6;E (F;E_ hu 7F+M GE;Er ;Me;LHXeXP+uj]XP }t)Ku]URPESPu*MXF+M E;EiwYMXv+E u;Eu ;uu3jXM_^[d USVEPf@fDEU W}MuEGEJwF@7NDQPu&؃u:F@ FDu2uFHENLwM7QPu؅u FHF@FLFDFP_ujX^[G0SVW}xE^ ;DHFe+FNN  PukPƅLGP} t"GjdYuE GRPu Qu S8t%MHMwMNVEePO} t+Eu] URPESPF;PH;LH\\PE43;9MuN9OM~:G M|K ݂t EE;G|CHKL+EMF@NDE;GoG3ۉEE;rO Ù+JHRL+N@VD9Mu9Ut9Uwr9MrÍXO fEKhfC@NEčKhP\!C ;hC$;EC;lC;pC;tC;x|K PfEK|fCBECDEP|zEΈFPtoM\EEO9M39O~G V@)PHVDPLA;O|3M_^[d j^M\DՃM\1jXD$fffPfQfPfQfPfQPQP Q f@fAD$fffPfQPQPQP QPQPQPQPQ P Q$P$Q(@(A,GSVWMefhuau E3ۋPEP]uECËuE3ۃMt;MIM~fWS^@vL^DvHPQ;;FH?G;FL3FP/ EPEPu u;O+EMEԋF@)EFDMEj0ESP~e^F +~@^D;THEFhE܍Hj,PΉUHMP>E܋M,QPFP`tU}uW}uQEM;u>M;u7M;u0E;u)E;Eu!E;EuE;EuE;Et&ExtjX{EhhHPEHF;XHu4ΉE܉U;}u;]uFPtF;PHutjPtMPMtf}tEEtf}tE‰Etf}t EęEUtf}t EƙEUt}t E3E}3t}t Ẻ}EEPFXPl9}uv9}uqEf9Ef9EE;EE;Et E9xfN ME;AFiFFPFFT3M_^d [EhhHPE輵GNQSVWj(v3Y;tXXG3;utVPG@ODE]M QPC7NEMFEF^^^ _^[d V1tVP^UQQURju uPQt2E;Eu E;E ujX3&GzQSVhuYuet)W}Wff_3MVXM^[d VD$tVuY^Q@v jX; VW|$ ;wǍ4;s4:VX_^SVt$W&ff9 QuJ rEA j_+;v7Hf+;vfus+ڋL$ȋ@F2_^[D$VW f9UTqu1r,A @N3j_tr9L$ tA|2_^L$VFAt< t3jXЍN ~Yt^Àu2^FA@ttItt~ރ~كt0ҋvD t^à t HHtHtH뤋FD^ÊAAV3t< u tqDIt^À|$t fD$f A D$f!At$jt$hUVWh~uEhhGPE2uuf0f4_^]D$T$A0Q4D$A@|$ AN,M Ƀ;GYMu^u W.L_[3ɉHHH @ԸGødG}QVuԸGeJMbJM^d øzG|QVjH.>YȉM3;ȉEtujMP M^d UQSًM W}C;~+ljE E ~-VEC 0ɉMtHu=YMu^u W3K_[G/|QVuGeIMIM^d øG{QVhK=YȉM3;ȉEtu6MPM^d UQSًM W}C;~+ljE E ~-VEC 0ɉMt0uGxQh.:YȉM3;ȉEtlMd øRGxQh9YȉM3;ȉEtXlH#Md `H1VhN&u^hN8u^hN`u^hu^ËFuEFu2^ð^ÐjhGdPd%VWt$ܸGD$ND|$ D$覭D$tWP~`|$ D$聭D$tWQ~8|$ D$\D$tWRt$ D$4vD$tVPL$_^d ÐVt$FHFutVI83^VN趭N8覭N`薭SUWr ptf pOÈWOB‰W;u;HuBMdžOʬ_][^ÐjhБGdPd%`D$xSUVW|$$u $3;Ƅ$l$Xl$\t);t#@;ʼnL$XD$\wrwƄ$|$4$$Ol$xR\$($O+FO8PO8VO`RO`v VNnn FFl$L$QhGSƄ$3ۉl$l$Hl$L$l$Pl$Tl$@l$Dl$8l$<3+t;l$(L$$UPD$@PQR ;D$(t ++u|$ `DŽ$|$0|$$OWG)O$AQ@;‰AuĪˀt!$u Ӏt E$!G33ۊHPX 3ۊX$ Ӌ‹T$D$,ōTD$T$iT$H|$L3T$<;r 9l$8T$`RT$XRT$XRPQ u@D$8T$`L$<|$dD$@‰L$DD$8D$TωL$EM;r ̌D$ @L$EU$D$% ЋE U$E T$DT$<++U }$+‰E =s>EM;r XD$ @L$EU$D$% ЋE U$E D$D3u 6'3^ÐV&'^ÐVT$8W<++ʉ8r^S@K;r PD$ @L$<D$8% Ћ<8s[_^_^jYÐSVW3% Ou_^[Ðjh[GdPd%QVW3GFľG~~~~$t$~0@|$oooNL$  poopoGFG_^d ÐD$VWG3tHG3uL$D$ PR_3^ G3u3D$ tT$HP Q_3^ T$3P Q_3^ _@^ D$HAHVt$FHFutV3^jhɓGdPd%VWt$GFGD$ poP(Go@|$ D$0~ D$tWQt$ D$vD$tVRL$_^d ÐjhGdPd%QVqt$D$}v D$tVPL$^d ÐUjh GdPd%SVWeoou O p pu 2ot#op;u3Md _^[]Ë_pEo+׈pPEEth dDhdDXWhS8Z3Eop3EZo +ύ qpt ؅upG;r3Md _^[]ËΉpËMd _^[]øcDøM_^d []Ë3ɉHHHHÐVN`NXNPN^GVoUWoƆpp3v8S3ۋoptO  pE;r[ot Hxh dDQhPYW8_džo]^ÐS\$VW3XD4 F|WL$T$ uD|$ r|$Eu~|$8uw|$Pup|$uio3;_^[1uG|$ Au@T$Y:u6|$&u/|$Su(8L$u"o 33o_^[_^[D$SUVWoh3;p3;vr\$,oT$,k pt0O;FO;6O;&L$,pE;L$,rl$(3ED<G||$B|$Z|$hD$<0<9%Eo,pl>I? ppƆpƆpƆpo(p$po,pp3v"3틎oL)JpG;r pwp3v"3틖oL* pG;r p^(p$p@H8P +ËT+ϙ3+ӋRPt_^][_^][@Ho88+ T$+3ۙ+OӋ_ыRPT$D$,RPZD$,\$L$(T$QD$RGP`QRUT$ D$(tL$T$FPQ & D$ VRT$P;D$u@GO+ +3ۙ+OӋ_ыRP6#_^][_^][3_^][SUV$WT$<\$t $$;@3$33|$(bD4DF|3DDt0Bt%ϋ֋G ʉF||$(oxt$TKT؃\$@0RF$3D0@;|$3L$3tD$F;L$uD40~ L4/L40N/G;D$0r$ l$(D$L$؍E3~LL$tL$+ˈ<GE;|} <+ϋ3ʃ3|$X33 |TDTGA8r33ۉ|$T>~T\$ DT+|$,tljLPDP DTI ;s?+ÍD$$Ȋ‹؊fË\$ ̓|$,ŋl$(؉\$ Be33tABrҋD$L$@ư;D$;\$<33l$l$8l$l$ l$T$D$u@t$8D$@;$3D$2 @,ɋ$ +Ft$82+΋r|$E$O|$;s 3Ɋ(M(E(; r HG;s ϋ rMBJ ;rT$JrT$D$, @L$,BBL$, B sL++tTFD$t<$|$t$%׉FOu|$t$D$ D$(;1IL$03Ɂt $ щ$H;sB+@D$$ A7_ƃ ‹ GD$$wHӉD$$uыL$0 ʋT$H## ȉ$$%;\$< A ʉAL$D$qL$ |$AL$ $+ωD$;r2h@;u($D$$_2;^]@[_^][QVW~++ʁrLS^K;r ApD$ @L$ VD$ % ЋVs[_^YË_^YÐQVW~+@rLS^K;r oD$ @L$ VD$ % ЋVs[_^YË_^YÐSUVW30+Khu3>< ,<~,u$YFb u2^ FBwF^ÐVN U F G ^ÐVu/u uV}D^ÐL$gVƀD$tQ,Gi^UjhPGdPd%SVWeu3ۋ|P0G8tP,GM_^3d []8t j뜋PE]A Q(+™A0Q4،@;u;ujEP,GWΈ]a1UE~DËMܸ~DUE@~DËuE3;EURdjhkGPd%SV3GF GFľG^ N F ^>`@DT`džpt|L$GFGFԾGx^dž^d [ ÐD$VWG3uD$ tvT$HP Q_3^ G3uD$ tFT$HP Q_3^ 8G3u3D$ tT$HP Q_3^ T$3P Q_3^ _@^ Vt$F HF utVy3^jhٔGdPd%VWt$GFGFԾGD$P(G||@|$ D$mD$tWQ t$ D$^v D$tVRL$_^d ÐjhGdPd%QVt$D$mvD$tVPL$^d ÐUjhGdPd%SVWe||u Mu k0xt F;u3Md _^[]ËE{~+׈ RdEEthDhpDXWhS8.;3Ex3E^x + ʉt ؅uG;r3Md _^[]ËΉËMd _^[]øXDøM_^d []Ð3ɉH ÐV^VxUW|Ɔ 3v;S3ۋxt FE;r[xt HxhDQhP9W_džx]^ÐSUVW3ۋO$G w ;t$rT[l$@GL$M<O;voL$A;r [tML$BL$:t|.F.FD$C.Fu.F3;r|.F_^][_^][AVt$ W|$ ~USX;}ފP+ΈPH ʈL$HH++ˉHuH \$A@[_^D$j%PT$3jP]SVW|$3+P |_^[S\$VW|$@vbF(;rG+ËN, ȋ+ڋV VNB‰V;uiF(F,w_^[F(+NjȉF(F, ÈF,_^[D$j%PoSVW|$3+P |_^[hSUVWjl$X$$|M V M jP43ҹ@T$`3$pT$d3ۉT$hT$lv$|3Ҋ8@;ƈpr3ptЈDpCL`@=r3D4`P/Fr3D `t4pR FrۋED$<3$p󫋌$|E |$<33I\$8T$$|D$ L$ \$p$| 3:وL$t \q@:u؃\$,|SL$pI\\\\\\\\\\\\\\}\$,L$~\o\pH\$,ۈL$puBVt#J‹$>FppAu݁|>F> >ttFAD$\$ $@;D$\$ t#J‹$>FppAu݋D$8=} ʈ>>F>llFAt$ 3ۍ$p8IuM\$\|$HQD$P|$,4Q+QT$S1t$XT$L\$\܌t2ƊT$+ƃAMAQ|$KD$HAs D$3Xs D$!s D$` D$|$jWL$LjQ׋3׉D$\$UL$$33vp*F;rn;~ ;|$ttT$u +pl$$3;|;}3(T$8@;|D$ދt$+OFD$t$l$$ol$TD$(\$3ҍ 3B;|3ɍ6L$4D$T$<3t$p3A=r3ۊAG2};L$ rډL$0D$$D$33L$p3ۃ*@;|;t$$sL$D$t$$D$L$@;D$|l$TL$43)6ЋD$A@ L$4D$3ɍT$pCA;ω|L$0D$ ;3] 3ɋƃ8uT$8A;|jhS0 D$G;|D$(HD$(3L$D@@;|D$@3/63:tjD4AF:uj~ L4?L4@NL$LG;D$@rUD$(T$L$3j͋V 3ۋD$3Ҋ;t'j;s jvF jjN;uj\D$8C;|D$(T$L$@;D$(T$|3D$0D$4D$$D$6D$(D$t$<3Ɋ 0@D$r 3Ҋ0@D$T$0u3t$(32Ft$(tut$4PD$$D$4JT$03ҊET$$<~SH;}ΊP+L$ΈPH ًL$X+P+щPuP  A@T$ D$;܌t>Mt$XT$P|$,Y++;w tD$P|$HG|$,_^][hSUVWj1jAjYj&jSjYL$33\$T$ *L$u2v*T$L$3< I3Iu3/:uG ٿ\$T$3 I3L$ E;rЋW,T$ D$RP_^][SUV\$ WԌ3D$FD$D$щL$ P@+ʋT$(L$L$,D$D+8+t:D+u;szE;ssyWUSsL$(W+QUaF<P@+D$ǃv+QjT$F+ʊT$PT$(HD$FRSL$0,H+NY+ӊ\$tK+Ջl$+;se|$(I +tl$+AMuL$ʋV:+zL$_Ԍ|Ԍ@Ԍ^][ ׃+ljAv_FD$F^][ SUV3ۍL$FD$ \$D$\$NL$(ԌpWPQR8t#،+Ћx DԌ3;v1|t O3B(Ԍ;rՋD$T$ RV D$ +QR8،G;u39tH@[k(+3ӉD$T$T$RRPQ ؋ x+ _^][D$UЉL$T$SVW@D$3ۿ(F(;rC+ËN, +ڋVVNB‰V;u[F(F,wF(+NjȉF(F, ÈF,D$E;rD$ L$_^[PD$%P] djh8GPd%D$ SUVWC=3ۅvt3틎xt9n[HN܌0tDC;rn hqJu @h2Yu T$0RJJD$4PPYXYG(G,t$03ۍ\$(tjB'jZjhN0Qx|3;v,xE;r3ۍ|3;v,xDE;r3ۍ;F,D$(;t PQ^,T;t PRTx΋PP؅kD$@t[EM]+MыωD$T$W_(+3L$D$D$@QL$T$QPR ؅0x΋Rs3jSjrJjEAj88jP/h#tP5o(sdv^G(;rC+ËO, ȋG+ڋ WOB‰W;uWG(G,wG(+ŋȉG(G, ÈG,3ۋcWF,;D$(t PQ^,T;t PRT`F,D$(t PQF,Tt8&F,D$(t PQF,TtPRdžTËL$ _^][d V1F,t PQF,TtPRdžT^ÐUjhPGdPd% EMUSVWePEQM RPQMEMd _^[]UEDËEMd _^[]M踹DUËEMd _^[]ՙDËM_^d []D$SU3VWl$t$|$EHts t-f>FsLJsf>Fu;lGM v lG2f>uHNXO+s v O D$ C;B_^]3[_^]W[L$D$s ǁ3l$̃l$F̃l$ṽl$&jhkGdPd%Qh0prD$D$ tL$d ËL$3d ÐjhGdPd%QhD$D$ tL$d ËL$3d Ð `H=+pGA`GI SUVW|$G u DG u_^][l$0\$,wFۉD$t +ʋSVT$u;s +D$L$ L$QL$$PG PQR uHD$t>L$$tW P^u+D$ЉNNtUVVUR uq3_^][D$L$P @A3jhGdPd%QSUVWj]3ۃ;t$@GXXX XpG@`G3;t$tVPT$$RSSWUV\$4Q ;D$tVPL$_^][d j3Ƀ;t!@GHHH HpG@`G3Ð H )jh˕GdPd%QVhh at$3;D$t.PjHGF8GF$GF GFGƋL$^d ÐVD$t V^jhGdPd%VWt$GFGFGF ЯGFG~HD$|$ D$f@ D$tWPt$ D$OvD$tVQL$_^d ÐjhGdPd%QVht$3;D$t)GF GjNFpGF`GƋL$^d ÐD$VWG3uD$ tFT$HP Q_3^ 8G3u3D$ tT$HP Q_3^ T$3P Q_3^ _@^ Vt$FHFutV93^t3 H]&l$̃l$jh;GdPd%QSV3ۉt$GFGFGF GFtG^^^^,^8NH\$=D$ L$P Q L$ R ƆS ] GFGFGF ЯGFG^[d QUV~@roW~HO;r =t @L$  FhD$ @FhD$ V@% +ʋNp ͉Np3Ɋ IFD ȍBNDF@s_L$Vpn@n@H#Vp^]YQS\$ UVW3~@rtnHEM;r @=tE@L$E FhD$@FhD$V@% +ʋNp ˉNp3Ɋ IFD ȍBNDF@s\$n@FD+苎 %;s3Ҋ1D ; rB;sʉn@npnpt + +Ń sGfsuu)tlj1~H;|$}LTHG3uj j ~;|$}GH;|$_^][Y_^]2[Y$SUVWjj͈H v _^]2[$ÅunƅI E@Upكj͉E@Up[D P t _^][$j5D 3%_;^][$ÃƅI uw$|$t $$t󫉔$$$󫊅Q L 2jj͉D$ v@j͉L f؊Q uL v _^]2[$33;󊎠G}j(D< D< Frع3|$8 333D t4D4FA0r3|$4x D$\4t4+|$Ktϋvx ΃ Gx ;s9(D +Ȋ‰L$؋f΃D$|$D$BZ33D t ABr؋\$L Ӎ$׋RPnu _^][$ù3$u$f3$ˍ|$tʃ󤋍L $ȃL$tQMx u _^]2[$Í$xR _^][$ÐSUVWT r3R u0Q O%PLFu_^][S hOHE7tڄtOH7G@ wDwhwpƇS R QO ^ƇH T Ƈ\ l$(;T ;~Z;X HOT A+‹QH;r‹YqQFƉq;uFT 3M;l$(;X\ t$H Ƈ\ I D v{O@ u,OHGLwH;r 6t AOh AOhGpO@OpOpWwO2qQFƉq;uED NMƉD wD l$(\ ChXw@4JF+苏 %;s3Ҋ9x; rB;sڋʉ^0^0Lt++= =s+WwO2qQFƉq;u EMl$(PW=Q -t33ҊGGL$33ҊGGL$r]D$NPD$]u F(D$@F(D$% +ʋN0 ˉN03Ɋ IF ȍBNsV0͉H#L$DL$(;V0D$D$vL$HF+苏 %;s3Ɋ:x ;ź r iB;sڋʉ^0+ʉ^0t+à rL \$ ; 3ҊGraD$NPD$u F(D$@F(D$% +ʋN0 ˉN03Ɋ IF ȍBNs\$ V0͉H#L$QOV04GVtcD$T$(L$++ȉT$(L$ul$(vTƇ\ T$l$(T X v.LJT _^]3[_^][l$(_^]3[VN;rt2u^D$@^VL$WF+O;rV$t=V;s6NUl$+;v-V+;v$9ʼnFABMu]_^_2^;~u3N8FN@G;FuAMu]_^UjhXGdPd%F,t PRF,NjMd _^[] EiDM ËE Md _^[] UE DËME _^d [] `DÐVFt =6,t PQ^ÐL$SVW|$QGwVP W G \$ SPR D$$L$PSQ9VR_^[Vt$ u W^L$SW ADQLY<++3ۙ+NjydNjyXӋYT׉_V[3^D$L$P@C-3Vt$FLt PQFL3^D$ǀH ƀG F QH S3UjhpGdPd%S]VWۉeEtu~;MEE QNUF(t{;MU+#~@\$D+|$tljL~@\$D+|$tljL+AO+TJ;v;s,+׊E:*uCE;rD$T$f\Q_][t@ȉ u^$ÐVW u7|$ v/ׄt_^_^S\$ U3VffWl$f|$Ѝ3ff.fwϋT$3f_3f^][SUVW;t<33ff+L$,_3f^][3ۋΉv3f;u_^][Q3f|B;v$3fLBT$,G P|_^][+33;0fdžfdžre33fBfY=fs 3ۊI3ۊIÃ3ۊ3.3Yf;uE;v|$;\$D$ 933fhɉL$tf|M;L$Q+3Ɋ 31L$;sfYD$+|$;s+Ǎ|$Hu3D$ fE=s 3ɊI3I˃3ۊL$ӻ\$$y3Ɋ;sfL$fOfG3fM;u|L$ \$;ˉL$ ts=s 3ɊI3ɊI3Ɋ3fE+=s 3ɊI3I˃3ۊӋ\$$C\$$O\$L$D$C;؉\$L$4T$,SR#_^][T$,SR ؋D$fLED$ffʉOfW_^][W3fu _V3ftA3fAD$ NQω1^_W@󫍺Ƃ f _ÐQD$U3VW3D$ ҹu D$3S\$ ‹T$J;}\$3ҊT+\$ G;};tX;}<t;D$tC@ CDCH3D$u ;u  D$E;r[_^]Y S\$VW|$pvwF(;rK++ȊËVN, VNB‰V;u`+N(F(F,w_^[Un(+"N, +n(N,]_^[SVWL$ 33D$D$ u D$ L$$3҅ɉT$>Ul$0t$L$(I;}l$$3ɊL*l$0L$D$C;} ;t$;\$}&D$,L3ҊRQKut9;t$tD$,L3ҊRQKD$,M@3ҊPRQsj; D$,MD3ҊPRQRjD$,MH3ҊPRQ6jS)D$3ۅt$uD$ ;uD$ D$T$L$(B;щT$]_^[VW|$ Wh <| P|W\j Q _^Ul$V33Wv3҃>QF;r_^]D$ S\$UVW+ȋT$Q ׋S_^][ VWh<Ph |jhGj \ ~_^Ð3UVW | 󫋮;uH )9 u"N F+;tD$ P L$ Q Br`W3fI @fT$ fQL$ s3I N3ҊIʃ 5+ŠD$T$|f|ffA+lj| AƆ | _^]ÐV񊆴W|$ 3 8u H@=r䋎3v8S3ҊIu Hш@;r[3 u HGш@ r_^UT$V3vbSW3ۋUU%UU %3333 ȋ% ܊.+F;_r_[^]Uh l$<| `\j M3ɉD$ &SVW L$ ff=r{33fAp(<| F(;++ȊËN, NVNB‰V;u$N(F(F,wx%33ɉD$IpT$*=v}F(;rK++ȊË.N, N)nNEʼnn;u 9$T$N(F(F,w#n(+"N, +N,n(D$l$3ۊ3ۊ+ÅvqF(;rG++F,N ЋVNB‰V;u#N(F(F,w#F(+"ӊ^, +Lj^,F(L$ 3fA=D$s 3ҊI3IL$3Ҋ)\vuF(;rG++ȊËVN, VNB‰V;u"N(F(F,w#F(+"ӊ^, +Lj^,F(D$3ɊG 4G+vZF(;r0++F, R=(N(F(F,w#n(+"N, +N,n(l$D$@;D$_^[|3Ɋ<QRp]ÐSVW|$vy\$F(;rK++ȊËVN, VNB‰V;u!N(F(F,w_^[F(+"ӊ^, +Lj^,F(_^[QSUVW|$p|$D$=rL$ +ńɉD$t u3jPbjjWF(;s"NV,VNB‰V;u j%P^(F,jсQ?L$+3ۅv'V ; VNB‰V;uz C;rًL$D$+ͅL$_^][Y LD$PSU VWȋPDP_G;rS|j׋SW<QRSW\PQ[6D+_^]SVW|$=rA\$St$VRPQ T$_^[djhGPd%SUVW;u9u333u;u 9u3‹Έ;/|$0 ;l$l$tWQ;tPRΉF40DD$4pPyG(G,t$4Lˉl$(\$0HUl$@ǃDQjƆ :V F+ЋPjUD$L$ƒD$L$t=_(+3L$D$D$PT$ UQUR ؅u\$0V F+tYD$(t+^ltBD$(tPQdžPRdžtG(;s"OG,WOB‰W;uω_(G,؋3D$(;t PQ;t PRËL$ _^][d V1tPQdžtPRdž^ÐUjhGdPd%EUSVWEePERU PERPMd _^[]MDUËEMd _^[]DËM_^@d []D$L$ T$PD$QRH ED$L$T$PD$QL$RT$PQJjhGdPd%QVhh qt$3;D$t-PPGFGFGF tGFdGƋL$^d Ðjh;GdPd%QVht$3;D$t(GF GPNFGFGƋL$^d Ð H D$Hd3D$Vt$VPD$P HV^ Ul$VW|$E3Ʌv0D$t$P>u+fzu$r=wA;r_E^3]_^W]D$jjHD$ɋL$ L$ QPR D$H 蔻3D$Vt$VPD$PH 6^ |$ tW L$T$3@B3 h8t&@G@ǀ G@G3ÐD$ A L$ H u Q3h訜t4@ G@G@ ǀ0G@ G@G3ÐD$AL$Hu QO3 H}l$̃l$̃l$f̃l$ṽl$F̃l$V I Ð IÐjhGdPd%QV3t$GFGFFFF$F0N@D$hNpD$w j@D$e j@D$S L$TGFDG^d ÐD$VWG3uD$ tFT$HP Q_3^ (G3u3D$ tT$HP Q_3^ T$3P Q_3^ _@^ Vt$FHFutV)3^jh՗GdPd%VWt$D$m D$] NpD$P ~@|$ D$p D$tWPt$ D$'vD$tVQL$_^d ÐjhGdPd%QVqt$D$v D$tVPL$^d ÐVF$t PQF$FLt PRFL^ÐSUVW9n8r`~@D$PD$ u F`D$@F`D$V8% +ʋNh ˉNh3Ɋ IF< ȍB;ʼnNr]T$DNRD$H5u F(D$D@F(D$D% +ʋN0 ͉N03Ɋ IF ȍBNsF0.ȃ.F0ًD$ 3;D$rSw9D$PrKOWOB‰W;uD$L$ K;D$L$ wr9D$PsOT$P\$H+M;rW$tsW9T$PsjG+;v(W+;vˉOML$H@EIL$Hu3;ou3W ( GO@E;Gu%D$HHD$Hu͋D$L$ l$ÃD$L$ 9tVMp=z>r]T$NRD$u F(D$@F(D$% +ʋN0 ˉN03Ɋ IF ȍBNsF0ȃF0W WOB‰W;uAD$L$ D$L$ L$ T$(;w ;D$$T$ L$(;rIw;D$$vAD$ uI3f~L$8 f>u3VT$RPQ uSD$t F;s _@^YËFN ȊFN Ft=@s_F3^Y3F3_^YÐjhԘGdPd%QSV3Wt$ GN^^0^4^D\$^PD$ hD$Gq;tXXG3;tWQ;tPRL$_^[d Vt$FHFutVp3^AtPQÐD$HAHVt$FHFutVip3^jh GdPd%Vt$D$tPQW~0|$ D$D$tWRt$ D$v D$_tVPL$ ^d Ðjh+GdPd%QVt$D$Iv D$tVPL$^d ÐVFDt PQFDFt PRFt PQ^ÐVt$N0u ^QA,VqT$ W~ ++ʉF$rrN;r D$ @L$N;r D$ @T$F L$T$ N$ ‰N$F s_^YSUV3W3j7D4(Fr3|$@33D (tw2T$33+D$ $;sL$t$$_^]2[Ĵ _^][Ĵ V~$rrN;r D$ @L$N;r uD$ @T$F L$T$ N$ ‰N$F s^Ð$SUVWtEU M;r@E,u;ruN;r D$ @L$N;r D$ @T$F L$T$ N$ ‰N$F ;sj|$v _^]2[$Êt*ju DžiSYF$~ +ȃ ΉF$EF$^ +ȃ ΉF$ |$Ehtt3ɄE,+Q/F$F D$ ЉUXF$ EXHEX\33N;r 7D$ @L$T$ρ ڃ rɋD$K]HD$u_^][$ÃEi@3j4Fr3|$ (333 tDFA0r3|$D$\t+|$etϋv΃ L`G;s9(H+Ȋ‰L$؋f΃D$|$D$B]33tL`D`(ABrۍ$h RPu _^][$ËMd$Q RPu _^][$ËEd=s+3ʃ󪍄$MlP0 u _^][$Í$hQRFu _^]2[$Í$4 P2 _^][$ÐW3 󫍺>_Ð,SUVWuDžF$ tEhuu9~$rpN;r D$ @L$N;r D$ @T$F L$T$ N$ ‰N$F ;suqƅDžu)j1ÄtW W 3ɈXpH H3EXE\E`~]t$@E4UXM0+HQ;r‹yڊyQGljy;uBONljt$@t$@8u;Ƌr++񉅴EhL$t$@tN}u0ًG;r oAVVNB‰V;uKuuF$~ +ȋ;s3ۊ(4 ; r HC;sN$ˋN$r]N;r D$ @L$0V L$D$$D$$%  ыN$V N$sLh++r\Md;؃HL$=V$~ X +;sH3*\=sU0}4M0:yQGljy;uL$\ \ ;D$rQ@;sD$V$ЋʉV$raN;r D$ @L$ V L$ D$(D$(%  ыN$V N$sD$0 ++x Z G|$sUXDXTXEX&sÃHMif]V$~ ++‰F$rJΈD$0T$0D$,F L$, N$ ƒF N$s~ D$F$+ȋ;s3ۊ)H ; r HC;sN$ˋN$rI@ΈD$85V L$8D$4D$4%  ыN$V N$s++(|$0V$~ +V$+ȁl߉\$L$U\EXU`E\MX|$D$;vUXWRM0%t1D$T$++ׅD$T$u(D$t$@v_^][,D$_^]3[,A;rrBÐdjhHGPd%0S\$PUVWu WKD$D$PL$PVRdl$TtMUQGtPRo~0P+SVPt$8D$<ωD$H/\$L$D$ Ë\$`D$‰T$$D$ϽL$+ȋD$‰D$u ;sɋtzUt‹FNn,+ +3+NՋnՉD$0T$4L$ l$$+L$0D$(D$(PT$0QSR u5^VD$@R΋D$H'VD$LPVD$LQŋL$@_^][d <VFtPQ^ÐUjh`GdPd%EMUSVWePEQM RPQMEMd _^[]UEeEËEMd _^[]EËM_^d []D$L$P33Vt$Ft PQF3^D$u@D$ǀQH03D$VrZwUs *h N0Fdu ^hN!^%W^3SUV$W|$ 33ɍ3)\DCAr3ۉ|$>~D\$D+|$tljL@D DDD`L;sB+Í3 D$Ȋ‹؊fË\$̓|$ŋ$؉\$Be33*tL`D`ABr_^][Ĕ_^]2[Ĕ3SUV$W|$ 33ɍ3)\DCAr3ۉ|$>~D\$D+|$tljL@D DDD`L;sB+Í3lD$Ȋ‹؊fË\$̓|$ŋ$؉\$Be33*tL`D`ABr_^][Ĕ_^]2[Ĕjh{GdPd%QVt$GFGFGF GFGND$acHN`HKtPQN8D$YL$^d Ð@D$VWG3u"D$ T$HP Q_3^ (G3u"D$ T$HP Q_3^ ؤG3uD$ tvT$HP Q_3^ G3uD$ tFT$H P Q_3^ XG3u3D$ tT$HP Q_3^ T$3P Q_3^ _@^ D$HAHVt$FHFutVU3^D$ VWs _W^ L$|$ (Kq<rN<@wJrBw=hO4蜧u _^ hH֍O\_%^ _@^ SV3ۋ0K+tHuZ^[FD^PNF ҟ_^][l$Ṽl$̃l$̃l$&̃l$̃l$jhGdPd%QSVhPK0Lt$3;\$GFGWFGF G~8FtG^ω^蚞-KHKNGFGFGF GFGnN`~0 _^[L$d ËL$ ^3[d ÐjhGdPd%Qh8KRKD$D$ tL$d ËL$3d Ð H}VW~GF苝D$ F0N4TG!_^Vt$FHFutVJ3^VHN4TG:"N0BVN_^ÐSUVW|$,39_0u U;ÉG0u_^][wh%u_^][D$0GF ^FF^F ^$NF;tAND,C|݊G(T$,ڃF u_^]@[o4hHN!u_^][8S֋(3D$,D$D$L$uaFt,Jt uOwJ.r=w8%=r$=wC;r_^]3[ _^]W[ VW~GFęF0N4dždždždG|_^ÐSUVW|$(39o0u Q;ʼnG0u_^][wh֘u_^][_4hH\$u_^][D$0GF NnȉFNnn RˉG|$V\VNB‰V;uOFVNB‰V;u0G(;D$,T$(RW0hRPl$$l$(Q ;D$(;3;v%G0L$3Ҋ9G(;D$(C;rۋT$L$͉T$L$L$<;t/FV ^+™Ë^D$D$PD$T$$PQR ;uFD$,T$(RW0hRPQ ;^_^][|$x885_^][ǁSUV3W3+fr@rf@vǂz3~+fn@;r3fjKuƋ;t<|$D$D$$D$ *\$D$;s3;Չvdžzv~+fo@;r|$3D$fV~HD$uǁǁ3+frr@r_f&^][Ð SUVW~xu0NPu_^][ ChNPu_^][ ~HO;3^8F<  Mu^@Fx|$ u _^]3[ Fx~OV|HNFxA+‹QH;r‹Y+YQCÉY;uuFxO|$ 5FlF@3@fM3H3vr/FV N;r 袤D$ @T$D$%ɉ^YÐSUVl$3ҋNWD$3ҍ|D$N+؉N3ŀt@@uz%?@F;r0FVN;r ݣD$ @T$D$%FNɉNV ЉVj+>G~_^][ SUVt$ W^3fM~C3Hl$U 3D$$f:;v|$$G|$$3f:;wT$$3>fDU3FT$$|83fDU3F+ȉ^3ŀt@@uz%?@F;r0FVN;r 誢D$ @T$D$%FNɉNV ЉVjL$$+GI3~)DMt$fIuf}EMIMU3ɅE2v33fPf8+GfxUA;rE3҉T$$Hv{]L$\$;sASf;f;:s#f*f+l$)\$f:)EA;rʋL$T$$EBAxF;׉T$$L$\$rt$lUfEfEJu_^][EHlEfmfUfMf;wAfMHu_^][djhؙGPd%(SUl$LVWu WET$HN]D$4FRPD$\Q D$L~PNFUPQ t$(D$,D$@ D$D$4ډT$؋D$H+ȋ‰D$4usɋtyD$HPD$HD$XtFPVXN`+™NdыωD$ T$$膮L$+L$щD$D$XT$T$RT$$RPQ D$Hup\D$,F$D$@t PQF$D$TPRdD$@îF$t PQF$D$TPRD$H1D$@萮F$t PQF$D$TPRD$HL$8_^][d 4VFt =6F$t PQF$VFPR^ÐUjhGdPd% EMUSVWePEQM RPQMEMd _^[]UEAEËEMd _^[]MBEUËEMd _^[]5BEËM_^d []D$L$PL胝3Vt$FXt PQFX3^D$u@D$@pH|QH3jhGdPd%SUVWL$$蘜3$t$\t$`t$pt$|hL$(Ƅ$|u?unN33;vLL$N@;rV3;v V @ AT0#V;r  |0$+3ʃ_^[ĀUL$(3q33;D$ \$\$\$\$\$\$\$\$\$rhw;vbFVPL$,b"NV QL$,R"jT$L$,C"3LLu@|T$T$;rw T$ D$;rV$L$(#]_^[ĀÐQSU3VWE l$~t$E΋l$3Qj RP>D^][D$VWH~ t}S@Ul$D$3ۋσu \$ѹ+3ҊUL$D$ EG@u SF$VP3NNFÉFD$HD$u]~ [_^~ _^SUV3WFN~ Sj@PQ=3SjRP=ǃT$;u\$+ʋT$ ЉT$Gt-uSN$VQNNFÉF\$GuӋT$SF$VT$PΉl(NNFÉFD$@@@@Mu݋[^ _^][D$VHtSS@W|$D$3ۋV D$F @F u!SN$VQΉ^ -NNFÉFD$HD$u_[^SUV3WFN~ SjPQb<3Sj RPR<D$GT$t-uSV$VRNNFÉF\$GuӋL$D$SV$QD$RΉl(t=^ _^][Vt$cv W^ W|$ ;w$tBSv(V:؋G$v;rPG(PSB 3ۋO(Q3_(w$[(΋t$3_^ $SUVW$G O@4VlMT$TQO,RW(h$VP3v%ȃѹ+ʋTT@;ňTrۍDSPO0%fL\fO ST$,)_^]3[ĈW|$v.VA33ҊhH 3ҊP ONu^_SVWHIF ^<WSVQ W|$Ӌ见u jV 藁_^[ D$0j PL$j T$k |$ tW L$T$3ǁrw%W 2%W T$SUE KQL$$譀u1vVW}t$ʃ_^Lf f3][j ÐSVW|$3…v+Ȋ:uF@;r_^[_^2[T$ VW|$(L$$j u"D$j PN0j T$ L$3_^+HÐA3҉TDPPP ÐQS\$ UVWۋO|$ltut(2@FKtur!WMZI+ߋ|$t13jՉAAA MZI3(2@FKtu_^][YS\$Vt$W|$V׍CVWK0_^[ S\$Vt$W|$VWK0V׍ _^[ Q Vt$%3:I3‹QA %‹Qi@A3^:I3‰AS\$VW|$3GxV4G gE#GxV4vUoD$ QgF;r]G_^[PIu3 IÐ VD$j PHIyD$L$D$F P IuL$j QVPL$j T$r}^ D$ V3v6SUl$W|$.ψ\$L2Ëψ.D$P{FD$;r_][^ T$VL$j |u"F P IuL$j QVP3^ D$ V3v8SUl$W|$؊.2؋ψ\$D$P.FD$;r_][^ hVL$D$tL$pPQL$ D$,֍L$ ^hL$8SU0T$L$83XD$RPWQ urpjPWQu_VR |$\$WSVPr?ˋ.9t_^]3[Đ$VR _^]3[Đ@_^][ĐS\$VWt$D$P׋Ή\$ЅuD$t+u3_^[D$_^[̋D$jPQ$PD$Ѕu $HYS\$VWt%D$PF׋Ή\$ЅuD$t+u3_^[D$_^[S\$VN3+NWu%9v!NFD$D$@PVЋL$N; s NT1_^[SVN3+NW|$u%9v!F?@v@NWVЋN;sN_T1^[Q3VWGw+u O_^S\$ ;vVL8QR@w 3[_3^3AAIA0EuEAЄEAEA E3AA̋IApE̅u3Q(:QI;Y̅u3jhQj`G̅thjQdGhGhG GP GtЅt Hu`IVu3^á`IW=`Gt(=@w!rL0jHh #Qjׅu jhVj_^Ws3_SUl$V3I|8uHt8L8  8 |$t++L8L88;v^][_QVWs_3^YSUl$t$3Tʀu{L8ـum8 T8Ƀ  |$t++ދt$L 8L8\8;l][_^YQVWs_3^YSUl$t$38ˀHurL8рud\8 L8 ˃ t L$++t$΋t$H8\8 ш\8T8;v][_^YQVWs_3^YSUl$t$38@u L8tL8ـuzT8 L8  |$t++ہ? ދt$8L8T8\8;S][_^Ỹ D$U3L$s 3] SVt$TWt$ D$T$L$<);sItG;r++L$;v3Ol$tJtEEItG+ـGKt tul$EsO O O I|$(t*++֋څt>G+΋ʄtu +΋t$ J3뮋t$ шOWT$O__^[vT$3] T$I] ̃,s3,D$0SUV+WT$(D$D$$G3L$ D$t$T$ D7D7ꙃD7D7D77ËՉL$\$,l$0&ڋ3҉D$4ȁ  % |$Dt L$$ +T$+T$@%3 L$43   L$ 8L$؋H#T$0#D$, ؋ˋL7ËՈ7͈D7\7D7L7t$D$F)t$D$ND$D$;D$(_^][,̃D$(SUl$(WL$(T$ w _]3[L$0T$Vt$@T$$;;T$4D$<;r+׋D$T$ D$@vbÍV+ƉT$8D$ D$L$4D$;r+NjT$3D$ D$L$$Q+Ձ$v`.J ((v@ H(l$;|$,|$$t$t d$39D$,vX4@tT ?ρT4D;D$,rD$_^][_^][Q $X3$PX3R!$$ỸSVL$333ҋD$D$\$ L$T$D$L$ T$ D$$L$T$(D$^[ VstC et5FPN QVR3lFPNQVRVS^3^SVWy3W3TpGo3Dpn3#F(3ʋڋV +,l$$n+l$l$ nV F  L$$3;Ns+ъ:u\$QS\$T$;t$;Vs+T$:uL$QTtX;D$t+׊ : 8u@B;D$uD;D$u3VF$L$ FFF;Fu_][^ÃsN,RVQNRV$QRVQL$8RT$,QRFFF+;Fux_][^SVڋVs!FFF;Fu6^3[ËWyI 3DpN ~%8F,SPFPFPF$PPFPQRdFFF+;Fu_^[SUVWI~r8A V  NF,NPFQN$PQNPQW ^F^;FuI+u_^][SUVWI~rEQI 3DpV N%F,NPFQN$PQNPQW^F^;Fu+u_^][QSUVWT$^r^AI3DpV n3#N(%/~  F,NPFQN$PQNPQS~F~>;Fu3)|$y_^][ỸSUVWT$FD$H3LpPXn3Dp^ 3#F(3^ ;FuX)|$@_^][QSUVWT$~r}xXH3Lpn3Dp׋~ 3#F(/~ 3сF FN$~F~>;Fu)|$\_^][YSVWڋd$~r2QI 3DpV % VFV$ ~F~>;Fu!+u_^[ EB0EBEB EyTuBEBEËIHuB@EBEÃuBpEBEBEB EVW39~t2NFH~~ ~mNeN=NF0P,GFHN ~,;N$N0Q0G_F,^V~W~HtX~uR~,F tF0P,GF,SN N^;~HtN$GPN ;~HuF[_^V~Wt*~FtN\NN~(tF0P(GF(NNNN N$_^̃>uN0Ct NF(uN|uٍNpuWN uWN$3uD$T$PNFFu3S\$t:UVt$W|$+$D, ŋ+,nBKu_^][̃|$tIS\$UVt$W|$AAi3)3#D$+,A.BL$ u_^][̃|$tVS\$UVt$W|$$i3i3i3#D$+,A.BL$ u_^][|$tRS\$UVt$W|$A)3i3i3#D$+,A.BL$ u_^][̃SUVW$<D$@0F4xytP_\S0GXU0GgΉD$UL$5,G++SU녋H3F=v$+F\΍X*F(N`V @PD$n +n؃@D$kFH;r<+vN(VpRV`UCPF Q VtQ+n.LL$pD_^][̃SUV + W3ۍj|$$T$\$ G;=d$3ҋ;+9,tJ@džp,40 D<@z(XQ,GpHdžTLEXR0GdžTpH @ @T$W;Ut% $Eu/_^][Ë +ȋD$T$;rD$+@;sD$ȋ +D$;s;l$ L$IL$t~@+THP$~4u:~8uNLڿ׋qNPG8؍(~tNH_^3[ĀD$SUًxW { @r _][Vt$ uDЉt0CL$T$D$V QRP׋u ^_][S(hEMuSs,hEx@6t^_][^_]3[SVWx3ۋω^ ^F ^@FO NW`VGpF$O$W GHOGO W,_$^[̃,xVN,FtNH?FF @FV NN@FrV+N RVIF @F^VF;F uF^̋SYUVqW9/GI$3% 4;r%+֊::D$u+N_p^][D$_^][QSYUVqT$ Q$W9O3 G3 %4\$;r?+D=:u3+HȋD$HL=:Ou_^][YD$;r+Ί 9:u+Np_^][Y̋AVWy4I|ytxGS^ZOu[A_^SUVFNW<TVu/FHNrNV+V F(UF+_^][ËVN+WF(UЋWPu+F_^][QSU-0GVWT$$F;F 39~0t.ND^t~0~8~4詻NH衻N@yND!N\Q,G^tNL~XwNPV\RՉ^XFtN+Ã?FF @FV NN@FrV+N RV+F ÉFFN^)\$NDF&_^][YQSU-0GVWT$$F;F 39~0t.ND^t~0~8~4詺NH衺N@yND!N\Q,G^tNL~XwNPV\RՉ^XFtN+Ã?FF @FV NN@FrV+N RV+F ÉFFHNr@N$3NV%F^)\$NDF_^][YQSUV3WT$]F;F 9n0t.ND^tn0n8n4苹NH胹N@[NDN\Q,G^tNLnXYNPV\R0G^XFtN+Ã?FF @FV NN@FrV+N RV+F ÉFFHNr8H@n$3L~3N% 3F^)\$NDF_^][YEB0EBEB EBEVxFHtCHt&~XEuPEtA(EBpE^ǁtEA(@EB@E^ǁtEA(B@EB`E^̃V(wTu‹ ȋЈD$D$D$PL$ T$ jT$ D$ H+^^̸Ax#̋Qxw$EA|ux$<v AtAt Qt At@AtI|QpÊQ| Ap`@Ap@rË<kV WA2~G_^_1Qǁ^ÐE9EHEfEuEẼ S\$UVL$(~xWT$D$uD$,3_^][ D$T$Nxn$ ;u |$(t,t' ;|$ A SGFx|$ Nt++‰D$$D$;w D$N|;T$~xuC3Ҁ…t njdž D$$;vljD$$ET$ PFF$RPm~$ ~0uF +N,;wF0D$$~,D$ )FtFtFx~xu[3҃3Ʌu 9u 9P3D$$FxNp;vL$$T$,D$RT$$PL$,QR/ T$$N$)VpT$ ~p+)Ntnt D$,uuu+u'u#NxL$,9u~x_^][ D$,_^]3[ L$,_^]3[ T$,_^]3[ ̃$SUVW|$@T$(T$8 L$,D$I~(9~$uF$V$+ډT$0;v|$ D$$ыL$DT$ L$$T$<3ɉT$T$H ~xL$D$H3D$L$@D$<)D$D$0~$N\$(+WQSL$8D$D8+σ \$(L$,D$4d$|$ L$D$Vxn$ ;u |$$ t+t&;D$AL$D$Fx+Nt+3ۉD$;wN|\$;\$uC3Ҁ…t ojdž!D$;vljD$FV$L$VPQR~$ ~0uF +N,;wF0D$D$D$)Ft~,FtFxu[3҃3Ʌu 9u 9Pq3D$FxNp;vL$T$HL$RSD$ PQ/T$N$)VpT$T$^p+)Nt~t3;~D$H;u;uu+;u';u#nxL$H9u~x_aD$HPL$HAT$H2-_^][$_^]3[$̃L$S39_Ul$ÉD$ D$ ;s ][ +ÉD$%WD$PhL$QSjbT$Vu,t$ F;s*w"G G Jd3u'^]3[ T$ځrL$+΍S;G G t.KL.ST.Sa+D$P.P))\$$L$, _W tD$0V;3L$1|$['^]3[ ^][ 39Gt9G@  ؈]EMFME39Gt OML$ WGGG ;tS;t^] [ L$3^][ V8"F8F4F0^̃8SVW |$L$2"K4{,s8 ~ Ot$@K4ˉ{,s8!{0S3‹wQr=s=Fƙ|$@ȅux΃ ~ 럅ƙux닅u=v3;w r;s‰t$C0_^[8̃SUl$3W\$\$9]@uMDЉE@;u _]C[UD$ t';L$ QT$a;T$ WT$(__ GGEHMDPQh 4^;T$$M@VRD$(PQD$0;uk$\$$\$T$0GT$O tt$Vt$VQʋP҅u)3t(D$(U@PL$(QRD$0t 3ۋ];uL$(jT$(D$(Ѓ u^_][̃SUiVt$$3ۉT$W|*PD$9\$0UD$(& L$(QT$_3;uT$OO WGGEHMDT$0PQh RT$<\9G wur W;T$0sjD$T$$+jL$,QRD$4؅uGL$(t/OT$SPG PQD`u9G rwG;D$0r  \u(|$4t!;D$u_^][L$$_^][SUًW@Ћu_][VO=OGV\$t;^(t,AM x+FV +>+fM=s ہr_^][SUVؽW ݐD$>#ȉD$D$ PP x+FV +>+f =s Xۋ3L$#r_^][VW3ҋƍz=rd$B=sOu㸡+‹r_^S3W<~3Ɂr_[SUV3 ʋ#ڋ\$k3ɋ3#Ӂr^][SUl$VtgW|$D$M X u+FV +Ћ+ȋT$f Z=s  ߅u_^][ SUl$ V~oD$W$L]|$ u+FV +Љ+fL]=s Nl$ L$u_^][SUl$ VWsD Ⱥ+Љf=s UjDP_^][ Nn +ы+f=s |$GsM й+ȉfO=s hT$RjP _^][ Nn +ы+fG=s T$RjW_^][̃ K$5 UT$L$ 3W;T$#ƒ3t0l$,lk3<u|$L$ |$\$@;s.ۍݠ\$D+|$|$D0K@u\$@]'iEH'$Xx v;͠͠sT$B3QAAA D$@DŽ$$L$ $+D\ HD$(:T$ BL$(:At$$;vB+ʊ:uG@;rD$T$;s* R+Ѝ͠T$0H@uT$0$RT$ ͋L$0D$HiL$LύXx [ɉD$PT$,ͼڋ;QsQT$Q$AO0sу$uFD$@4T$4FȉL$,;vʉT$,;L$ sT$(<+ъ:u@G;D$,r+‰D$<|%$ƹ*D$,#%D$(L$DʋT$Di%WT$^tRPSWЅt 3FvU,G_^][̋V t N;t'HAЋV@ȋЉF uËVt F;At"IAЋPV@ȋЉFtǍNtN:EtC8uNAY ;uF$LGu$ BfD$L$fD$u NL$@F8t8u@NH++ȍ;w ; JD3D$l$C8;C4tC8&t 3tfrVDZ 6gt:^ V~ gʍЀnFn FuՋ>N 3ۃF^^>~r_][ ̋FD$F=}SUW>frVDZ ft8^ V~ fʍЀnFn FuՋ>N FFF>~r_][̋FD$S^)F~|UWI>frVDZ et:^ V~ eʍЀnFn FuՋ>N 3ۃF^^>~r_][QSUVWD$>rVDZ Xet9^ V~ AeʍЀnFn FuՋ>N NFF)L$>u_^][ÝSUVWf8t$hM;$$u(PERPj1ωo7_^][G]H$U;$$tyUHuW8O3L L$L(L,L0L4L8L<@r؋UD HUHD uAP+PS|AMPQSgωo_^][G9OXP:h@8O Ӄ P&EOO;$$u1 QP +ƒfωoL_^][PH +f GG3IL L$L(L,L0L4L8L<@rMD GIG @;tD$P ؋A\$3 $\$;$$t?p\ L #Ju֋D$t$ (QPUT$D$fil$D$$pL #Jul$L$t$Ul$EPQ~KsKuf#KSωo(_^][V3F,3ҋ rAD~BIuTX@&rܸfdž026h:;jP){ 3d$0@rȺ=sIJ0uAQ@=r^̋VV,ȋ@3F$F,^SVڋV,t9^$t=W|$GЋ؃F$F,F@ЉF,_u^[^$^[TXL$LXVt$+ʍRW<T}tX;t6tWJ+΍4v4UnlWn]OLXO_^̃SUW3hUPl$|$F( yF0 ;F4t(D$ &*;tCd$9ht3H I< xu$YXiH I< t@;uL$ u/\$;ËH[;v?Bx~}x,JuT1}|X;t6|WJ+ύ<<olWo3HLXH;7_][V~(u#rtH^ËǍ@&t.9tSKPSϋ[^D>XNxf~|$fT$ L$fP(D$(;Cs@PL$fFfF3F;usE;|$(uMyxD}NTXVC<;t/EESX_U^]3[_^ C<]3[uf>@MEUfFfED}NTXVE _E^][U3;ыL$U_^][UV3W3SYxji*)Ouk+C<_+C4^C8]C0C$S؋C@C,Ul$ VsWC8;ut~?@VɀʈNFfOfNC<;t1WCXGN N' C<N NȃV3v;i;3tNIuF*ˆF.FfF;~V^v;3u{D33SYxji*)OuK$k+C<+C4C0C8;rOC9xt@CxuSj (K$I;wۋC_^]C(C [_^][̋T$LSUVWBxH3 9l$du D$F$L$ht D$hK>t'NB:t 8uA~_][(̋SUVpGfX;tHI)(fifh;ufXHjрH+39W HɉL$  T$L$ T$H+T$ H:Hv9fXf\$ IYfYfY;t :YwfT$ fQL$IL$u@8A8t( D$ЍDU3fND$<)vD$)D;}VT8XV|$@XҀӈPT$^G]fH[ЃK;t #A`H9@P09@PNu+l$ ^fiHB]G[̋SthVWx?;2Fk x@;ލV4H3_+f0^[ʋT$ 4L$[VFPfQH:Hv/HSWfxfYfXfyNy|v_[NAQ ƒ~ u ;F(F V$)D$T@33ɍF)P(hhhTPhhhTPh h h TP h hՉTfD$PVu|$T&]_^[@̃SUVW_ G$o ۃ?D/(EۋD$8t?u WD$D/(E8uL/(T/)L/*T/+L/,WT/-\$L/.D//WGFNVGFONWVGFO NW V GF ON WV GF O NW VGFONWVGFONWVGFONWVGFONWVGFONWVGF3g jGgGrn;|$ +*)FNQ0 R S8D$@+~ F;vD$ NWP1 RwCD$08|$,)|$ ~VF $dF~RVN St qFrFhNQNFPQSFNPQBFNPQ]1FNPQ FNPQFNPQFFu 9D$(tVV\$F;u|$u|$(t L$0_^]3[_^][|FFFĂFՂFFFD$SVW|$ڋutAut8ut/ut&utut ut _^[ AЅu _^[x _FFFFF `FFF^3[VWjF_^̃|$tD$P>K?̍D$PD$PD$PD$PD$PBCT$3Ƀ|$ SV39^~ W~Pt tGC;^|_VFt A^[^[̍DV4D$W|$D0|4!utu_B^WP7_^ Љu _^F0FFPFF pFFF_@@3^̃$Ul$,EVD$ D$8WET$T$HL$ t$uЉGu _F^]$9wtD$DS3t$9wL\$,uD$@T$$+L$EFEw:G4W8O0T$ 9GWNQTR,3 ߃ Mu|$]t$DCuӍL$D$DST$+_^ [̃8SUVWGjPL$1|$ X3ST$,t$(D$,gD$EST$,+ UD$9GD$$w t$N VQRL$0XFPQL<0FL$߃T$$WT$,D$EWT$,+ D$L$D$@D$;Art$$ÃtFL$+VT$,fD$-D$,D$EVT$,+ u}D$$t$$D$ЉD$(EjT$,Ѓ uPOL$0T$1KPL$,\$,9D$(f`HfD$2Ej T$,Ѓ  _^][8SUV~ WtF;FuTnl-;t _^][ЋtFtN PQW0 Ӌ~ nNT$ANL$ F _PT$H L$^]H3[S\$UVNWSЋ QN׋ V_ŃV ^][̋D$VNPFV ^́SU$VWfE[<3;E XHf\HL$fT$L$SL$D$$D$j T$Ѓ  ;L$0;tD$8\$<\$@t8!^F<$T$T$L$ F D$F\$\$R;U$$DŽ$`F$$$p$t$\$Q$RT$;$T$$D$(D$+3L$,D$ T$$t$@+@Fu4@$fM<W$DL$T$+ u6L$T$+ЋD$,RQL$0PQlHu$2_^][İ̃$SVWL$dHlHD$lHT$b9t$ ux&D$uՋ];.t ^]D$PUNtߋt$SX3;;D$ 6;T$$W|$`L$(ww3ɉG ;u _[^A]L$$;v]L$(|$w t$(L$ ~W+td؋D$ V+Ӎ tM OtDD$$D$(@D$$;D$rtIT$ Cuu+_[^]_[^][^]̋L$Ul$Wu |$v _]3;u;uEV׋Ћu F^_]L$SjW؅uL$UWVQ'؋E֋Ћ[^_]̋3 S^ FG j֋ЅuFjj T$Wu3f`HU:D$u :d$K33 N9N|> s][L$|w؃~|>v3ȉL$؉FG j֋ЅujST$(uxD$ I|uKyu)~x\> i][:ÙVF#  FG j֋Ѕjj T$f`H:D$:d$D$L$$$ff ffv][L$9D$ \$3۸+ù͉NG j֋ЅN$($$QUSWR'.$$SD$Ë\$̓ #t~wvrspwhrsb؃ىNG j֋ЅL$T$L$|$$$ff;T$][H][[3AAUVW39>vS3ۋNˋG;>r[VE3_FF^]̃SUVW933333L$D$D$|&qG ?^0OuL$;1sI4vL3_^][ËL$t$_^][̃S3UVWT$T$ T$D$;}I L$IQ333t/)uM;rw;r@ދ;rL$T$D$ ;r4w;r.D$@\$|$ D$L$;D$rD$T$ _^][_^][̃$SVWG 3jT$ω|$t$t$;cL$t$4T$UL$Vl$@UD$ PVL$,T$0#d$;CuV|EҋЋS @QRU{ $L$LSA Ћ|$kl$@S @ʋL$T$ PL$$HT$(P L$,HT$0P FttG j֋ЅuvL$4hI34hI34h!I34hIT$,T$hIl$3hI3h!I3hIl$,|$(,hI3p(3P 3,hI3,h!IhI3hIL$(3h!IL$, 3,hI3hI3h 3XL$t$ T$<͋ hI3 hI3 h!I3 hIt$4hI|$34hI34h!I34hIT$hI|$3hI|$ 3h!I3p3hI|$ 3P3H|$+~&WPvG> ;uF t$F N Ff_^[jYSVWj33 3Y95uI~teIt_@ tYPVeIYYH t0|$uPYtC|$utPYu eI4VYYF;5uI|j |$Yt_^[Vt$ WV^fN jX_[^3^Ã|$Vt t$ F tV)f f&fY^UQSVW} }E}Eu3ufF tFEEN t)Ft";؋rWu6!)~> +}F;]rFt VYuy}t 3u+Wuv0 tGE+;r>})EVP2YYt.EFKEEPE_^[ÃN E+3u ULSVu 3WMFۉMMЉu N Mĺ}+ |xÊG3GE$F3MEEȉE؉E܉EEà t;t-tHHtMMMMMy*u#EPBYE_M؉EQEˍDAe9*uEPYEMEˍDAЉEIt-htltw }MM >6u~4uFFMu e IeDAtEPuP Fu EPuP mÃg8eXCHHtpHHtl fE0u }}tuEPfEYȉMu LHMENf8@@E M@}}EfE0u }fEEPt;wPP8 E}2E)Zt2 tH<YEEEPYt2Ht+}tMEEeMHHEPugu>E59U~U}~$E]PYEt}EEuEuHM@EPEWPIut}uWIYgu uW IY?-uMG}WYiHHtQHHE'<+u HHMNt8t@+EEEEt\EE0QEEGEEt: U5EPHE Yt fMfME=M@E Et EPYAE t!E@EPt Y%YE@EPtYY3E@t|s؃EڀMUEUEue}} Ee9E~EE EueEEEME Et?EWVuu WVu؃0u9EU~]̋EM믍E+EEEEtM90uu M@M0E}]@t&tE-tE+ t E Eu+u+u uEPuVj *EPEuuPEtuEPuVj0}tA}~;E]xfCPEPCu4YY~2MQuPEPOuEPuuuEtEPuVj }t uYeYu Fۉu E_^[FFF2FiFrFF>FUM IxE Qu*YYEu]]VW|$O~!t$Vt$t$ >tO_^S\$ KVW~&|$t$WFt$Pu ?tK_^[ËD$@ËD$AQËD$f@UVuW 9>t( E@ft~to}uijVuu V~ tP8csmu,9xv'HItU$Ru uVuuu Pу u uu$Vuuu P jX_^]UE e@E|M;A|~ SVucsmW 9K~ub9~u]~uWxl&pl@pjVEE2YYu 9~u9~u ~u9~9~}EPEPWu u؋E;E9;|;{wCEC E~dF@ xE~v7u= uM9EME}$uu$u S7uuuuu V ,}Ei}t jVqYY_^[À}u u$u uuuuu V UQQVW|xht!u$u uuuu uus}EPEPWu uE;EsO;>|C;~>F NHtyu&ju$u VjPuuuu u ,E_^VW|$ GtJxPtAt$N;tQRYYu"ttD$tt t u3jX_^Ujh GhtFdPd% SVWe]su};utU~;w|eGDt hSPmMu/YËeM}]uG4u릉sMd _^[ËD$8csmt3U} S]VW} tu SWu},uuWu, u$6uuWFhu(@Gs uuWu,tWP_^[]Ujh0GhtFdPd%SVWe]]ԃeu FE@lE @pE}xlMHpeEu uSuVEԃeM:EԋMd _^[unYËeejEPYY3ϋu }E؉FzMHloMHp?csmu)u# u}u}tPWYYËD$8csmuxux u xujX3UjhHGhtFdPd% SVWeMAuxkA`U | etDujv-YY0jW-YYFMQPYYutR]jsW-YYjWa-YYvsW` ~V뗃~]jsu:,YYjW -YYt~vVsYYPW f,YYtVjW,YYtHv,Yt;tjFPsYYPvWFPsYYPvWMMd _^[jXËePUjhXGhtFdPd%QQSVWeEtHIteQpnMMd _^[38E ËeL$Vt$Qƅ| 42I ^USQE EEUuMmzVW_^]MUuQX]Y[ VG`Ht:jtjXYYt)V5`HGtVYXGNjX^3^ËD$@PI@VWHG5`HGu?jtjYYt&V5`HGtVYXGNj_YW|G_^á`HVt$u PGtlF$tPYF(tPYF0tPYF8tPYF@tPYFDtPYFP=ItPYVYj5`HG^UjhhGhtFdPd%QQSVWe3u9p`tEP`u jXËeeM)UjhGhtFdPd%QQSVWeedHtEjXËeeMIV5G5H5H5H5lH^UEVWj;YujYj>YWu G>IYj Y_60G^]UE4hH,G]ËT$L$u<:u. t&:au% t:Au t:au uҋ3Ð@ËtB:uA ttf:u t:au tVt$8csmuxux u6ItP!(Yt V6I3^hdFG6I56IGáeIthܠHhȠHhĠHhHjjt$  jjt$  Wj_9=,7Iut$GPG|$ S\$=(7I$7Iuj,P'Y;Yt0@8t9;uA8uj SP$ tttEP}Y[3j9D$hP̡GeIt6eIu h$Y u^ u5eIȡG3jXh@j5eIGxeIuËL$%peI%teIjleI |eIdeIXáteI xeI ;sT$+P r3UMSVu AW+y iDMIM11UVUU] u~J?vj?ZK;KuL sL!\D u(M!!JL! uM!YM] MS[MZU MZRSJ?vj?Z]]+u]j?u K^;vMщMJ;v;tcM q;qu@ s!tDLu&M!1K!LuM!qM qINM qINu ]}u;M\ щ^NqNqN;Nu`L MLs%}uM DD )}uJM YJꍄ ED0EpeI heI5dGH h@SQ֋ heIpeI PpeI heI@peI@HCpeIHyCu `peIxuiSjp ֡peIpj5eIGteIxeIȡpeI+ȍLQHQPE teI;peIvmxeIleIE=heIpeI_^[UteIxeISVWu;peIuM; heIu%peIMB_^[áteI deIVW3;u0DPP5xeIW5eIG;tadeIxeIteI xeIhAj5eI4G;ljFt*jh hW`G;ljF uvW5eIG3N>~teIF_^UQMSVWqA3ۅ|Cj?iZ0DE@@Jujy hhW`Gup;wtƍ4;sCu0jX^;uCF;sN;Euq )u 9U }ƍ4;urq;s~;Esvu@j^X;u%C@;]s +q aq16;s)E 9U r4맍;]s +‰A aAFk+3_^[UQUS] V W}e+G ;M|vE+ȈG`seE4;wU;s 8u@;uBE;w+;v';s338u@<tC cC+MEE_^[UHSVWhYujDY5`dI`eI ;sffF `dI$ލEPܡGf}E8X;E;|9=`eI}VddIhGYt<`eI ;s``@ $9=`eI|=`eI3~LEt8t2u QءGt#΋ `dIM  HEFC;|3ۋ `dIۃ<4uMFujX HPuN@u NNC|5`eIԡG_^[UjhGhtFdPd%SVWuu u uw3;uj^u 3ۉ]eIuA};=|eIw|j dY]WOYEM9]t^uH3ۋu j YÃuA;5\Iw9j !YEPYEML9]tVSu8 9]u>Vj5eIGE9]u'907ItV1Y03ۋu j YËEMd _^[SWj3Yj_9=uI~]VeItA@ t PCYtC|)eI P(GeI4eIY$G;=uI|^jY_[Vt$;5`eIs8΋ `dIDtWVV(V* _^  ^Vt$WV]Yt<tujFj=Y;YtV1YPpGu HG3VƃY`dI dt WY3_^Vt$F ttv趿ff 3YFF^Vt$F @t F f F u VYFvvv1 FtotjV ‚u7NWt<`dI ɍ<`IO_ႀu V ~uN t uFHFA^ F f^S\$;`eIVWsr<`dIÃ4D0tRSYD0t)SYPGu HG3t0 SY _^[Vt$;5`eIs@΋ `dIDt%WV_t$t$V(V_^) ' ^USVW39}}}u3fE`dIE4D0 tjWuD @E 9}E}M+M ;Ms)ME uE @@ȍ+ʁ|̋+EjPWP40GtCEE;| E+E ;Er3E;9}tbj^9uuL 0AHGEǍMWQuu 0Gt E}EHGEuOY,D0@t E 88+E_^[USVu F ^@tfN$F F fe $ f F u"HtHu SsYuVYfF WtgF>+HNIN~WPSv E 6tˋ `dI`I@ t jjS FMjE_WPS E 9} _tN E% F ^[]VvL$3I;t"F=Irr"$wB ^5 I^Árw ^^8/ UQSV vPu&YYXۉ]u `jXNTMM NTHhI lIW;}' R~P d9=hIlIB;|]~X=u FX^=u FXN=u FX>=u FX.=u FX=u FX=uFXvXjY~XY_`QYEFT u G^[ËT$ tIVt$92Wtt }w u,9uv'E"tME$ƉEtEEtE؉EE E t83_^[̍B[Í$d$3D$ST$t B8tфtQu WV ؋ ~333ƃu%t%uu^_[3ËB8t6t8t't8tt8tt^_B[ÍB^_[ÍB^_[ÍB^_[̋L$WSV|$tiqtOL$F8tt F8t u^[_3ÊF8u~at(8uĊAtf8t3^[_G^[_Ë^[_UWVSM&ً}3ˋu F3:GwtIIы[^_ËL$V; `eIWsX<`dI4@t78t2=DHu3+tItIuPjPjPjG 03C A _^ËD$;`eIsȃ `dIDt ËD$SȃVW4`dI`dI<~u#j~Yu F PGFj%YD8 P0G_^[ËD$ȃ `dID P,GVt$;5`eIs@΋ `dIDt%WVPt$t$V(V_^  ^U e}S] VWEȃ4`dI<`dIƊHHt@< tMSED0 EjPuR40Gu9HGj^;uq o0m$PYUUL0D0t ; u $E ME;ME<< t CEI9MsE@8 uE^ CEsEjPEEjP40Gu HGuG}tAD0HtE< t CD1);] u } u jju } t CM9MGt0@u +] ]E3_^[l6Ih蝩YL$At I AI AAAAaVt$;5`eIs@΋ `dIDt%WVt$t$V(V_^ ^Vt$WVJYu n -t$jt$PGuHG3t PY΃Ƌ `dIdD_^W|$j$L$WtAt;u~Ѓ3ƒtAt#ttt͍y yyyL$ tAtdGu~Ѓ3‹tt4t'ttljD$_fD$G_fD$_ÈD$_USVWj*uY;(bIY]u3pV3Ҹ8I9tt0B=(IrEPS Gj^;!j@%DdIY3@cI9u󫪉(bI}MA;AcI@ej@Y3@cI4RHI;t,Qt%;wU0IAcI@;vAA9uE}rEEPj^Vh$GVGtEPVh GVSGjX8Iu$E;up8Iuuu uPG9]u8IESSuu E @Pu@GE;tc]<ǃ$'euWSVG jXËe33M;t)uVuu ju@G;tuPVuG3e̋Md _^[UV3PPPPPPPPU I tB$uA tF$s ^UV3PPPPPPPPU I tB$u t F$sF ^UWVSu }h8Ixu; t.F'G8t,A<ɀ A,A<ɀ A8tx$bI= bIj $bIj赿$3ې t'FG8tPS8؃.8tX u $bI jſ[^_UWVSM u} h8IxuNAZ I& t! tFG8r8w8r8w8u Iu38$bI= bIj $bIjž$33ۋ t# tFGQPSG؃=Y;u Iu3;t rX u $bIjƾˋ[^_UQ=p8ISVWuEAZ ]j;^}%95<I~ VSUYY IX#ƅue IDJte jE] X e ]VjMjQPEPW5p8Im t;uE EM _^[%GD$@SUVD$qfo1 d$fofoJfoR foZ0fo| fffffo| f8f8f8f8fo< f8f8f8f8fo| f8f8f8f8߃ ufo< f8f8f8f8ffo2ffforfJffor fR ffor0fZ0@(>fo foD ff8D f8 f8D uf8 fffosfq^][SUVD$qfo ރ 5IffD f8D f8 f8D  uf8 fsfD^][$SUVD$qfo1 MEEEE ރ $d$fo}ffoffoffoffoދfo| fffffo| f8f8f8f8fo< f8f8f8f8fo| f8f8f8f8߃ ufo< f8f8f8f8ffJfR fZ0ffJfR fZ0@&;fufoD ff8D f8 f8D  uf8 ffsft^][SUVW|$l$t2B33DOu|$+3:L:t:3 333tL: 333܋3ƃu3:׋|$+t2B33DO_^][SUVW|$l$t2B33DOu|$+3:% 3L:33L3 3D:33D3u3:׋|$+t2B33DO_^][̍MGF̍MG2̍MmG̍MYG ̍MEG̍M G̍MPMfM HG龇̍MMMMG钇̍MMMGn̍MGZ̍Mn GF̍MH؛0UM7,MWpMnVMfVM^VMVVMNVMFVM>VM6VM.VM&VHGY̋MMMVMU(G+̋MUhG̋MUG̋MUG̋MUGڅuJYøGąMMMoU("Mt#MTUuYJYÍOM7UMM'UMUMU $MpMhM`UMTMTuIYÍM< $MMTMTxG鶄̍MG预̋MMG逄M nM$M4MDMTMhM| %MVMh\G ̋MMk%M0M%MM @G麃̋MM MM$M0M@GőM'SGZ̋MSGF̋MM$M0M]MOMAM3MRMR0GԂM<MLM`vRMtM]RMURMMRG适M nM$M4MDMTMhM| #MQMQMQMQ(G ̋MQG̋M.MQGׁ̋MQG̋M{Q G鮁̋MgQHG隁̋MSQpG醁̋MGr̋MM%M$%M QMQMPG-̋MPG̋MP8G̋MP`G̋M *MPGӀ̋MPG龀uEYËMG頀MgMG醀̍MGr̍MM0GV̍M/`GB̍M/G.̍Mw/G̍Mc/MMMEG̍M1G̍M8GuDYø`GMG̍MG̍MG~̍MGj̍M(GV̍MPGB̍M}MuMmxG̋MjuCYøG~̋MNG~̋M6MNG~̍MMMM8G~̍MMxG~̍MGn~̍MGZ~̍MGF~̍M G2~̍M鸩MeM]MUMMHG}̍M9G}̍M%G}̍MM MG}̍MMMMPG}̍MMGj}̍MMGN}̍M8G:}̍Mu`G&}̍MaG}̍MMMEG|̍M G|̍M1MLMLG|̍M MoL@G|̍MpG|̍MM\\f\M!MLMLG9|̋MKG&|u@Yø G|u@YøHG{u@YøpG{u@YËMG{MM{M$ G{̋M[KG{̋MGK(Gz{̍MMPG^{̍MMGB{̍M}G.{̍MiG{̍MUG{̍MA(Gz̍M-M%MPGz̍M Gz̍MMMM?MGz̍MGrz̍x MMMMM:eMf G+z̍MeM]MUGz̍MAM9M1M)M!MMGy̍MMM0Gy̍MMhGy̍MEMËEMËEMyÍMpMhM`MXMPGy̍M=M5Gx̍M!EM ËEMÍM@GxMGx̍MPqMMMG^x̋MGGx̍MG2x̍Mm8Gx̍MY`G x̍MEGw̍M1M)Gw̍MM Gw̍MDMbGw̍M?@Gw̍M+hGzw̍MMMMGNw̍MMMyG*w̍MeGw̍MQ0Gwu;YøXGvMGv̍MMGv̍MMMMMGv̋M4PM8EM`:Md/Mh$MlMpMt G&v̋M4M8M`MdMhMlMpGu̍MGűMmM5@GűMymMpG{u̍MGfu̍MGRu̍MG>u̍M$G*u̍MMDu9YÍM@GtMG$Gt̍M3$ Gt̋MHGt̍MpGt̸Gt̍M< MMr̋MyG*r̍Me@Gru6YËMGhGqMAGq̋M!M M M$M0M@Gq̍MGq̸8Gzq̸Gnq̸Gbq̍Mv@GNq̍MbhG:q̍MuMFM>MqM@M@M@M=M5M-M@X|M@M@M@Mx@Mp@Mh@MMMP@MH@MMM0@M(@MMM@M@MMzM?M?MMZM?M?M?M?M Go̸HGo̸Go̸Go̍MPGo̸xGo̸Go̍M(G~o̍Mu<4YÍM5MGPoMOG>őM;M@nMP(GoM`Go̍MMGn̍MGn̍MMMGnh)DjjuwËMbh6CjjEPwh6CjjEDPwËMX+MlWPGCn̍MMG&nu2YøGnh)DjjuwËMh6CjjEPvøGm̍M0Gm̍MMut2YøXGmMGm̍MMMGbm̍MGNm̍MG:m̍MM<@Gm̍MM3HHfu+YÍMMMMMMMMHfMM !{HpfMH^f̋MM zM\MhM5@Hfu*YøHfMM:M/HeMMM MHe̍MMul*YÍMMMM=5M55M-5(H`ex(t JMMMwMoH eM]MUMM Hd̍M9M1M)M!P Hd̍MMM Hd̍MM MRM yM14H \M4\3\3\3\3MVx]M?]M;MhM3M7|M$|M{3M |M`3M|MM=3M|M"3MM[\MvSf`UJ? HbM-M%M Hb̍M MM Hb̋M Hb̋MMC2( Hvb̍MX Hbb̍M+M#M 2M2u'YÍMMMcM[MSu &YÍMAM9M1u &YÍMMMu&YÍM(M ux&YÍM HaM(eM_̍MyH*_̍M>H_̍M*H_̸@H^̍M u#YÍMMu#YÍMH^̍MMPH^̍M cuX#YÍMQuF#YÍM?MMzMrHJ^̍MM}MuMmMeM]MUH^u"Yø8H]MM`H]MH]u"YøH]MMMMHz]̍MMMM|MMMzMrpg H]M.H]̍MM9H\̸ H\̸H\̍M Mu!YÍMMM~0H\MlMMM鹿M鱿M驿MzMrHJ\̍MM u !YÍMMu YÍMH\̋M:pH[u YøH[M驎M\M`u{ YøH[̋MH[̋M L(Ho[̋M4PHW[̋M鎾xH?[̋MM\H[uYøH[uYÍMHZMM(HZMMM XHZ̍MHZ̍MHZ̍M KMCu8YÍM1MHLZuYø`H8ZM<H#Z̍M6HZ̍MMM9M M)M!MMM ttMMMiMӼM˼MüM黼MM髼M1MtHLYM鉼M遼MyMqMiMaMYMQMIMAHX̍MPHX̍MM uYÍMxHXu xYÍM qMiHXMG(` HzXu@Yø HdXM 鞻M鳸M ( HW̋M&X"H*W̍M>"HW̍M*"HW̍MM5M-@#HV̍MMM x#HV̍MMM#HV̍MѹMɹMM鹹#HjV̸($H^V̍M 'uYÍM0$H-V̍MBM:MuYÍM(%HUp%HUuYø%HUuYø%HUM%&HŰMk%@&HŰMW%h&HU̍MŸ&HvU̍M&HbU̸&HVU̍MMu YÍMMuYø8'HŰMMT$Mh$M|$M$'HTM$M$M(u$(HTMc$MX$M(M$@(HTMKM@M%$M$$M8$ML$x(H7T̋M$(H"T̋M$(HT̋M$)HS̋MM通MxM^M#Ms#@)HS̋MoMdMI#M$>#M83#)HfS̍MO)HRS̍,*H;S̋ME#M鷙MxMM"M"M"(*HR̍MMMM*HR̋Mg"*HRu`Yø*HRM?"+HrRu8Yø8+H\Ru$Yø`+HHRMMИMx/MM!+HRMMM!M$!M8!+HQ̋Mx",HQ̋Md"@,HQ̋MW!h,HQ̋MC!,HvQ̋M(",HbQ̋M",HNQ̍MSMK-H2Q̍MFM>M6M.M&MMMMMMMM8-HP̍M-HP̍MM鶿-HP̍MMM鹳M/ M' .HZP̍M镳`.HFP̍M遳MyMqMi.HP̍MU.HP̍MAM9.HO̍M%MMM MMMMM /HO̍MѲMɲ/HzOu@Yø/HdOu,YËM/HHOM0H6O̍Mq80H"O̍M]`0HO̍MI0HN̍M50HN̍M!0HN̍M 1HN̍MMt MwMo~ uNYÍ^M,M4M,M$MMM M驹M8Mfp\MMMMMoM\{MIhM6UM#BM/M(1H%M̋M 2HM̋M M\3 MM2HLM3HLuYø03HLMsX3HL̋M_3HLuXYÍM MIMAM9M1M)M]3HDLM0$M%MwMMMMhu YÍ`\|MMMd{McM[MSMKMCM;M3M+M#4HVK̍MM4H:K̋M (5H#K̋MM"MMXMMP5HJ̋M M|5HJ̋M M_5HJ̍MLMCM<M3u8Yø6H\JMH6HJJ̋MMF!MMX MMMp6HI̋MMTMhM|6HI̋Mo7HIuhYø07HIMGX7HzIu@Yø7HdIM7HRIuYø7HMP3:HfG̍M/M':HJG̋MM:H(GM(;HG̍MP;HF̋M׫MlMp`7MDMXx;HF̋ME#醫MlhMp7MD?M7;HjF̋M\7M0q8MpMMHD̍MMMEM=M5>HC̍MMMM}CM ?HC̋M{Mc?HC̸@HC̋MCX@HvC̋M/@HbC̋M@HNC̋MXMM(M@HCMaMλMMMMM޻MMAHB̍M邻M麺MtMkM cxAHB̍M:YMGM?MWX釱M$MMM MM8LMMXMHMMhMMxMMzMrltaMTM\MM<V_2M.MMAHAA̋Mb~MLMP@CHA̍M*xCHA̋M"~MLCH@MCH@̋M0DH@uYøXDH@M_MWMODH@̍MxDHn@̍MEHZ@̍MfhaCMM@EH+@̍MMEH@̍MmfEH?̍M(<MA|dPtMl{#Mwx^MFM>EHq?̍M{M#L8 pMcMMMhre$`\eM`FH>̍MvM9eMqzMM{MsFH≯@GH>u`YøGH>uLYøGHp>M+GH^>u$YøHHH>MTM M( 8HH >M pHH>̋MHH=̍M M HH=̍M M HH=̍M鋾M@ IH=̍M_ MW MO MG M? M7 M/ PIHb=̍MguL 8AM M>M M M M IH=M JH<̋EM鱽ø8JH≮`JH<̍,| Lq uvYÍMo4鈼MA |鸟u;YÍM$ M ѧM M M L 4*,M M ?&  @|uYÍMy\>MK MC M; M3 M+ M# M M t qM JH(;M M(LH;̍MIMAXLH:̍MMڳMҳMʳM³M麳M|LH:̍MLH:̋M+MXM MM8BMMMMM鈨MlI>MmMeMMMEM=kHp'MM ΛM$龛lHH'M驛M鞛M(MPMTlH'̍MB(mH&̋MTMIM>M隧M鏧M 鄧PmH&̋MRM\dM`YmH|&M饫M/mHb&̋M鄬MnHC&̍M 8nH.&̍M`nH&uYÍM٦+M̋EPYø(|H#̋EPYøP|H̋Mn[M8ZIMp/SM!Sx|H̋M.[M8IMpRMRM QMF|Hi̋M 0}HS̍M8Qh}H6̸}H̋EPYø}H̋EPYø ~H̋EPYøH~H̋EPYøp~H̋MqM0ZMG~Hj̋MuqM0YMM ~H2̋M H̍M阄8H̸`H̋M8EH̋EPYøH̋EP_YøH̍Mx@Hf̸hHN̍t酯MbXMl Ml ܛMԛl ƛM龛l 鰛M騛l 際M钛l 鄛H̋M `pH̸Hn̍lRWMWM xM xMxMxܚMԚxɚMx鶚M鮚x飚M雚x鐚M鈚x}H̸ЂH̋MCHHv̍MpHV̋EPYøH3̍MH̋EPYøH̋EPYøH̋M8H̋EPoYø`H̃}E EEMM!MHG̋MMH̋EPYøH̃}E EEMiM鑸MHґ‘hЈ*<LbxΉډ.<JXh~ȊԊ $8Ld|ȋ؋.@P`n|Ȍ܌(>Rjčҍ*D^tΎڎ,8JVbpʏ؏"<JXhzʐ0H`p 2 @N$@@@(HH HHH ЩH H H H HxHdHHH0HHHHHHШHHHHHHpH`HPH DH!4H"$H# H$H%H&H'ЧH)H*H+H,H-hH.TH/4H0H1 H2H3̦H4H5H6H7HxH`HDH8Hm9@8@59@6@Q9@7@X_@g_@g_@n_@_@_@_@.F.F.F.F.F.F.Fi#@'i#@'i#@'i#@'i#@'5i#@'4i#@'2i#@'1i#@'0i#@'%i#@'$i#@'#i#@'"i#@' i#@'i#@'i#@'i#@'i#@'i#@'i#@'i#@'ai#@'`i#@'Pi#@'@i#@'0i#@'i#@'i#@'i#@'i#@'i#@'8C@J@@X@YV@hW@_U@8C@,X@V@d@d@Se@X_@5d@d@de@e@f@f@+g@b@b@b@b@c@c@%d@8C@.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F@?4CMS@W@U@T\@^\@h\@;@S@ @ZT@I@Se@Z@@o@@@@@@&@.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F?Z@EY@[Z@Y@[@YV@c[@8C@<@^\@F@@@ @@q@@@3@.F.F.F.Fd@n@x@@F@P@Z@F@(@2@<@2@ @@@@@@@@@@@@@@@8@@@@@@t@~@@@V@`@j@@@O@h@u@@.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.FB?4C*Au@4@8C@@?4C@@@?4C@z@@?4Cj@_@.FHHHԻHHHHHHAA@?4C*A`B,A?4C,A@:@@,A@?4CA@-A<@^\@F@@@ @@q@@@3A@=A=A5A[BsB@ @sBBBuBuBuBtB.F.F.F.F.F.F.F@?4CBY@@?4C*A@@?4CmHA@BTBNBBB^\@BCB @vB C.F.F.F.FBیB8C@BBB7BB^\@8B͞BB @B^BB^\@ãBBBB @ BvBBBBBAȸBҸBܸBHBBwBB8BXB\B%BŐBqBM Cb CGABطB?BBABTBBuB8C@@?4CmHA@BBB?4CoB@8@8C@@?4C4CC7C;D8C@:C@?4CL4CrC@?4C :CC(MCU=CGADD;DYD EADLD`WDdEpWDMDMDND`D0ODVD.F.F.F.F.FYD E@YDZD ZDYDXDYD E@YDZD ZDYDXDYD E@YDZD ZD[DZDYD E@YDZD ZD[DZDYD E@YDZD ZD[Dp[DYD E@YDZD ZD[DP[DYD E@YDZD ZD[DpZDYD E@YDZD ZD[DPZDYD E@YDZD ZD[DZDYD E@YDZD ZD[DZDYD E@YDZD ZD[D0[DYD E@YDZD ZD[D[DYD E@YD]D ]DYD E@YD]Dp]Dk0-6_[Om>Ic3n+ecc1^'Oo;{mqi_IzOU!jrRd!3M\cX~Twb)bUfXDu&6(GwCji \0BO$`>a[p_#^]bc4aDOrvoQr} ,5NWN`~YfkD|Rdpk)w4X^QX%.Nq}E) f3&bwA@ir~o<8.);W8V^l;lw0IWa:v6Il1l=RWq&'; $z<P5+R?# %85e&`z=jnt7& {drY 2lrefRZl~|DdE |D`{D``D`DaDvD0wDPwD.F.F.F.F@D-EPDD DP-E0DDD`*ED0DAA ADAAAвDAAADDAAA0DAAADDD DdE0DD0D`DD0D  (08@P`p  (08@P`p  0@`  0@`        (08@P`p  (08@P`p  0@`  0@`      PDDDD@DDD@D`Dp-E@DPDD@-E D0DD)EDDpDDPDdE`DD@D`DDPDDPE`EDpD E0ED`DEEDDPDEED@DEED0DDD DDp-E-EE0D@-EP-EED)E`*EE`D D@EPE`E0DE E0EDEEEDDEEEpDDEEEDpDDDDDp-E-EEE@-EP-EEE)E`*EEEEYD E@ E0EYD E EE EEEE(E)E)E(E(E(E(EP'E(E(E(E'E'E`(Ep(E(E0$E"E#E$E&Ep-E-E-E`+E@-EP-E`-E*E)E`*Ep*E+EYD EP/E/EYD E2E3E@^E]EdEdEdE YEpdEdEdE@ZEP_E`D`EZE[E\E@dEPdE`dEWE dEdE0dEWEdEdEdE@ZE bE`DcEZE[EXEC^\@[ChEiE;C @C]DhE.F.F.F.F.FC^\@[ChEiE;C @C]DhEC^\@[ChEiE;C @C]DhEkernel32.dllGetLargePageMinimum   m1'Y GQcg)) '8!.m,M 8STs e jv.,r迢KfpK£Ql$օ5pjl7LwH'4 9JNOʜ[o.htocxxȄnjlPxqFGظFcsm OFϾF#F-FjFFiFFFFF.FF1FEEE50P (8PX700WP `h````ppxxxx(null)(null)iFsFFFF.F2FFFFFFGetLastActivePopupGetActiveWindowMessageBoxAuser32.dll6"G:"G"G"Gn$Gr$GH:mm:ssdddd, MMMM dd, yyyyM/d/yyPMAMDecemberNovemberOctoberSeptemberAugustJulyJuneAprilMarchFebruaryJanuaryDecNovOctSepAugJulJunMayAprMarFebJanSaturdayFridayThursdayWednesdayTuesdayMondaySundaySatFriThuWedTueMonSunSunMonTueWedThuFriSatJanFebMarAprMayJunJulAugSepOctNovDecHGGHG G,GHȢH@G G`G G-G G-G G,-G G@-G @GT-G hGh-Gp-Gx-G G-G-G-G-G G-G-G-G G-G @G-G hG.G .G.G".G-.G8.G.G@.G.GK.G V.Ga.G.G i.G.G t.G.G.G.G.G.G.G.G.G HG.G.G/G /G G /G G4/G GH/G G\/G (Gp/GH0G`GPG G/G/G/G/G/G/G/G/G/G/G/G/G/GH0GR0GZ0Ge0Gp0Gx0G0G/G/G 0G0G0G%0G-0G80G@0G G0G G0G0G  G0G0G0G0G0G0G 1G1G#1G `G<1GD1GO1GZ1Gh1Gv1G G1G1G1G1G1G1G G1G (G1G  PG2G 2G2G"2G02G>2GL2GZ2Gb2G Gt2G2G2G2G2G2G2GHGG  HG2G2G2G2G2G2G 3G3G3G%3G-3G G@3G GT3G_3G Gt3G @G3G hG3G G3G G3G G3G3G3G3G4G 4G 0G4G XG04G GD4G GX4Gc4G Gx4G G4G4G 0GPG4G4G hG H\@ H\@ H]@ H7]@H]@ ȲH1^@ Ha^@ȢH^@H^@^@ (G4G PG4G4G G4G G5G G5G G05G85G@5G 0GT5G XGh5G G|5G G5G G5G G5G  G5G HG5G pG5G G6G6G6G G,6G76G GL6G (G`6Gk6G XG6G6G6G6G G6G6G G6G G6G G6G @G7G hG7G 7G(7G07G87G GL7GHGG G`7G 8Gt7G|7G7G pG7G7G7G7G G7G7G7G G7G7G7GHG G XG7G G8G G$8G G88G@8G GT8G (Gh8Gp8Gx8G `G8G8G G8G G8G8G8G8G8G8G8G8G G9G @G$9G hG89G GL9G G`9Gj9G G|9G9G9G  G9G HG9G pG9G9G G9G9G G:G G:G  G0:G HGD:G pGX:G`:Gh:G G|:G G:G:G:G:G:G G:G  @G:G:G:G:G:G:G;G ;G ;G:G G ;G(;G0;G  GD;GL;GT;G\;G\;Gd;Gl;Gl;Gt;G PG;G;G;G G;G;G  G;G;G;G;GG >G (G >G PG4>G xGH>G G\>G Gp>Gx>G G>G>G>G>G>G @G>G>G>G>G>G>G?G ?G G$?G/?G:?GE?GP?G[?Gf?G G|?GHG0G G `G?G?G G?G?G G?G G?G G?G 8G @G `GG @G(@G0@G:@GGI@жHG0GG GL@G @G`@G hGt@G G@G GGG@H d@H ,AGG@0G  pG@G@G@G@G@G@G@G@G@G@G@G GAGAG'AG2AG:AG 0GLAGTAG\AGdAGlAG xGAGAG GAGAG GAGAG GAG  0GxGAGAGAGBGBGBGBGGA G,BG4BG GHBGPBG  GdBGoBG PGBG xGBGBGBG GBG GBG GBGBGBG 8G CG `G CG G4CG>CG GPCG GdCGlCGwCGCGCGCG 0GCG XGhGG2A GGGA GG0GA `GCG GCG .G GDGDG DG(DG0DG8DG@DGHDGPDGXDG`DG hDGsDG{DGDGDGDGDG DGDG DGDGDG DGDGDGDGDGDGDGDGDG EG! EG EGEGEG #EG&+EG3EG;EGCEGKEGSEG,-8Gq,A hGxGG-A GGGs/A G(G@G/A pGEG GGGu0A GGG0A HG`GEGxG1A GGEGEGEGEGG:3A  GEG HG FGFGFG GG4FGG4A GHFGPFG GdFG 8GxFGFGFG pGFGFGFGFGFGFG GGGGG G$GG G8GGJGGUGG PGxGG xGGGGGGG GGG GGGGGGG GGG 8GGG `GHGHG G,HG4HG_G %H%H%H+B %H\_G &Hp_G 8&H_G `&H_G &H_G &H_G &H_G 'H'H('H 0B X'H'H_G_G`G`G`G`G'H2B 'H4`G?`GJ`GU`G``G ((Hx`G`G`G `(H`G`G`G (H`G`G`G`G`G`G (HaG )H(aG 8)HjGIjGTjGbjG 5H|jGjG 5HjGjG  6HjGjGjGjGjG h6HjG 6HkG kGkG!kG,kG:kGHkG 6H\kGgkGrkG}kG (7HkG P7HkG x7HkG 7HkG 7HkG 7HkG 8H lG @8H lG(lG p8H9H@lGHlGPlG[lGflGqlGylGlGlGlG lG lGlG lGlGlGlG@9HP9H]B B 9HlG 9HlGmGmGmG 9H,mG :H@mG 8:HTmG `:HhmGsmG~mGmGmG :HmGmGmGmG :HmGmG ;HnG nG H;H nG p;H8nG ;HLnGWnGbnGmnG{nG ;HnGnGnGnGnG (HpGpGpGpGpG>HzB H>H>HpGpGpGpGpGpGpGpG qGqGqG"qG >HB ?H8qG@qGHqGPqG  @?H?HdqGlqGtqG|qGqG?H?HѴBB ?HqGqG  @H0@HH@HB x@HqG @HqG @HqG @HqGrGrGrG  0AH,rG4rGC POHOH{G|G |G|G{GOH@C OH@PH(|G0|G8|G@|GV|GK|Ga|Gl|Gw|G|G hPH xPHDC4EC PH|G PH|G PH|G  QH|G|G|G|G `QH}G QHQHQH.LC QHhRH$}G.}G6}G>}GF}GN}GV}G`}Gh}G s}G {}G }G }G }G }GRHXC RH}G RH}G SH}G (SH}G PSH~G xSH$~G SH8~G SHL~GW~G SHl~Gt~G~G 0TH~G XTH~G TH~GHTHTH TH~G UH~G~G 8UHGG hUHG UH0G8GCGNG UH`G UHtG  VHGGGGG hVHGGG VHVHVHpC VHGG GG G.G HWHHGSG^GiGtGG WHWHGGGGGGWHvC  XHXXHЀGڀGGGGpXH|C XHXHGXHP}C YHG (YH,G PYH@GHGSG YH`ZHhGpG{GGGGGGGGGÁGˁGӁGہGGGG GGGG$G,G4GxZHC ZHHGPGXG ZHlGwG [HG 8[HG `[HGG [HԂG܂G [HGGGG \HG (\H0G8G X\HLGTG\GfGnGvGG \HG \HG ]HGƃG 0]H؃GG `]HGGGGG$GG.G9GDG OG ZG eGpGzGGGḠGׄGGGGGGGG X^HG ^H(G ^HRjčҍ*D^tΎڎ,8JVbpʏ؏"<JXhzʐ0H`p 2 @N$OLEAUT32.dll4CharUpperA*CharNextA7CharUpperW&CharLowerA)CharLowerW.CharPrevExAUSER32.dllSetConsoleCtrlHandlerFileTimeToLocalFileTime GetCommandLineW SetFileApisToOEMGetVersionExAzDeleteCriticalSectionGLeaveCriticalSectionEnterCriticalSection+GetConsoleModeSetConsoleModeGetStdHandlekMultiByteToWideCharWideCharToMultiByteiGetLastErrorFreeLibraryHLoadLibraryA AreFileApisANSIuGetModuleFileNameARLocalFreeFormatMessageAFormatMessageWGetWindowsDirectoryAGetWindowsDirectoryW.CloseHandleSetFileTimePCreateFileWSetLastErrorSetFileAttributesARemoveDirectoryAdMoveFileASetFileAttributesWRemoveDirectoryWgMoveFileWECreateDirectoryAHCreateDirectoryW|DeleteFileA}DeleteFileWlstrlenAaGetFullPathNameAbGetFullPathNameW8GetCurrentDirectoryASetCurrentDirectoryASetCurrentDirectoryW9GetCurrentDirectoryWSearchPathASearchPathWGetTempPathAGetTempPathWGetTempFileNameAGetTempFileNameWFindCloseFindFirstFileAFindFirstFileWFindNextFileAFindNextFileWMCreateFileA[GetFileSizeSetFilePointerDeviceIoControlReadFileWriteFileSetEndOfFile:GetCurrentProcessGetProcAddress3CompareFileTimeFileTimeToSystemTimeGetSystemInfoGlobalMemoryStatuswGetModuleHandleADosDateTimeToFileTimeFileTimeToDosDateTimeNSystemTimeToFileTimeGetSystemTimeWaitForMultipleObjectssOpenEventAeUnmapViewOfFile^MapViewOfFilevOpenFileMappingAGetTickCountGetProcessTimesPLocalFileTimeToFileTimeQueryPerformanceCounter>GetCurrentThreadId;GetCurrentProcessIduVirtualAllocxVirtualFreeWaitForSingleObjectICreateEventA SetEventResetEventeCreateSemaphoreAReleaseSemaphoreInitializeCriticalSectionRtlUnwindRaiseExceptionHeapAlloc HeapFreeHeapReAllociCreateThreadYTlsSetValueXTlsGetValueExitThreadGetCommandLineAGetVersionExitProcessVTlsAlloc=SetUnhandledExceptionFilterQTerminateProcessHeapSizePGetEnvironmentVariableA HeapDestroyHeapCreate,IsBadWritePtrSetHandleCount^GetFileTypeGetStartupInfoAFlushFileBuffersbUnhandledExceptionFilterFreeEnvironmentStringsAFreeEnvironmentStringsWMGetEnvironmentStringsOGetEnvironmentStringsWInterlockedDecrement"InterlockedIncrement)IsBadReadPtr&IsBadCodePtr,SetStdHandleGetCPInfoGetACPGetOEMCP:LCMapStringA;LCMapStringWGetStringTypeAGetStringTypeWKERNEL32.dllVb@u@#z@$|@V|@@@*@]@@ AAsBBBB,B3BJBB9C/kC(CC"@DXDYDYD\D^Dp^D DPDDDPDD`DDDpE.EUEpVEcE0hEkElE|FFGFFFH | Tot: ---------------------------------------------------------------- Avr: %2d: KB/s %% MIPS MIPS Speed Usage R/U Rating Dict Compressing | Decompressing usage:Benchmark threads: CPU hardware threads:size: MB, # %s %3d RAM %s Avg:%2d: %5d SizeG.?AVCCtrlBreakException@NConsoleClose@@G.PAXG.PADSetConsoleCtrlHandler failsPH@H0H(HHHܣHȣHHHxHlHCan't allocate required memoryCan not open file as archiveCan not open encrypted archive. Wrong password?Error: Sub items Errors: $HHH H إHH H HH CompressedAttr Date TimefoldersfilesListing archive: LabelCluster SizeFree SpaceTotal SizeErrorLinkModeSector SizeCreator ApplicationShort NameIDVirtual AddressCharacteristicsChecksumHeaders SizePhysical SizeCPUBig-endian64-bitVolumesBlocksLinksOffsetMultivolumeVolumeVersionFilesFoldersPrefixPositionCommentBlockGroupUserFile SystemHost OSMethodAntiTypeCRCDictionary SizeSplit AfterSplit BeforeEncryptedCommentedSolidModifiedAccessedCreatedAttributesPacked SizeSizeFolderNamePath = FileTimeToLocalFileTime errorincorrect item, GetPropertyValue errorArchives: ---------- ---- -- is not file: hH`HܣHHHHHH7zCon.sfxUnsupported archive type7-Zip cannot find the code that works with archives.Incorrect command line Usage: 7za [...] [...] [<@listfiles...>] a: Add files to archive b: Benchmark d: Delete files from archive e: Extract files from archive (without using directory names) l: List contents of archive t: Test integrity of archive u: Update files to archive x: eXtract files with full paths -ai[r[-|0]]{@listfile|!wildcard}: Include archives -ax[r[-|0]]{@listfile|!wildcard}: eXclude archives -bd: Disable percentage indicator -i[r[-|0]]{@listfile|!wildcard}: Include filenames -m{Parameters}: set compression Method -o{Directory}: set Output directory -p{Password}: set Password -r[-|0]: Recurse subdirectories -scs{UTF-8 | WIN | DOS}: set charset for list files -sfx[{name}]: Create SFX archive -si[{name}]: read data from stdin -slt: show technical information for l (List) command -so: write data to stdout -ssc[-]: set sensitive case mode -ssw: compress shared files -t{Type}: Set type of archive -u[-][p#][q#][r#][x#][y#][z#][!newArchiveName]: Update options -v{Size}[b|k|m|g]: Create volumes -w[{path}]: assign Work directory. Empty path means a temporary directory -x[r[-|0]]]{@listfile|!wildcard}: eXclude filenames -y: assume Yes on all queries 7-Zip (A) 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18 G.?AUCSystemException@@Errors: Archive Errors: CRC: Size: Compressed: Files: Folders: WARNING: Cannot open Error: sWARNING: Cannot find file---------------- : WARNINGS for files: Decoding Error CRC Error Codecs: ( Formats:G.?AW4EEnum@NExitCode@@HxHLH8H$H Internal Error # Unknown Error ERROR: Can't allocate required memory! Break signaled Error: G.HG.?AV?$CStringBase@D@@G.?AV?$CStringBase@G@@G.?AUCArchiveCommandLineException@@G.?AVCNewException@@System error:HtH`HTHScanningUpdating archive Creating archive [Content] is not supported archive: WARNING: StdOutCompressing Anti item WARNING: HHH(Y)es / (N)o / (A)lways / (S)kip all / A(u)to rename all / (Q)uit? ? Enter password (will not be echoed):xH--switch is not fullswitch must be singlemaxLen == kNoLenHHԴHдHrIllegal character in input streamError reading input streamUnexpected end of input stream8Hwt?* "/:<>\|...Empty file path@PhysicalDrivePhysicalDrive\\?\Advapi32.dllSeLockMemoryPrivilegeAdjustTokenPrivilegesLookupPrivilegeValueAOpenProcessToken\Hout of memory-+kernel32.dllGlobalMemoryStatusExG.?AUCInBufferException@@ȶH7ztG.?AUCOutBufferException@@HHHHHHػHԻHлH̻HȻHĻHHHHHHHHHH|HHHdH HHܺHHtHHlHhH`HXHDOSWINUTF-8I won't write data and program's messages to same terminalI won't write compressed data to a terminalIncorrect wildcard in command lineIncorrect wildcard in listfileIncorrect item in listfile. Check charset encoding and -scs switch.Cannot find listfile*BLEDARVUANAXAIXIWOMPYTBDBA-HELPH?asut0-SCRCSSCSSWSLTSCCSCSSLPADSEMLAOSOSISFXPQRXYZW0123cannot find archivethere is no such archivestdout mode and email mode cannot be combinedCannot use absolute pathnames for this commanddata errorIncorrect mapping dataMapViewOfFile errorCan not open mappingIncorrect volume size4HHHERROR: Can not delete output file ERROR: Can not rename existing file ERROR: Can not create file with auto namecan not open output file ~rar001can't decompress folderCan not create output directory THLHDHfHa5WiَU(ߌ BhA-T @6 G.?AVtype_info@@dFeIeIFGGdFF6I6I6I6I8H8HPHPH8H         ! 5A CPR S WY l m pr   )     x \G0G G GGG`G4GGGGdG@@ (BY00 %   h>( 'CCCCCCCCCC"2CCCCCCCCCCCCCCCCCC.CCCCCCCCCCCCCCCCCCCCSV Vt4S2V Vs4OD/vN<_k)Gt=Ev< Y+. } [FK!,Cl[Wzyyycl|@;%Nd @X@T/@dENx6@GKyEPP9xs k K}m +f9 !Vst4X6R%o2 KKK[zKK;  +z8;K{[[5kK K \{{<<< \ <L| \L <L\M]  = -] |*=  m-=  }]M : **  ^+ >~ >  N + ; _ <<!!!  pP00$8 @##""""""!!!!!!  o o o oD L%$$$$$$######""""""! ?  ? # A%&&&&&%%%%%%$$$$$#  O~ S{ M(('('''''&&&&&&%%#~'   =(*)))))(((((('''&~ ["!!!!! ! n.#.... y =)+++++******))))'}nnn.>nn @###""""""!!!!!! )--,,,,,,,+++++&]Mb Y%$$$$$#$#####""""""!!(.......------,('}" C%&&&&%%%%%%$$$$######"" NyNy00000//////...(&&.s('('''''&&&&&&&%%%%$%$$$"9>02211111000000$ #.*)))))(((((((''''''&&&&&&% y%3333332222221% \*+++++******)))))((((((''''''*_5555444444333& / ---,,,,,,++++' L, <&***)))))))(((o5776666655555' $d D(//......-----$&&'+++++******)( 8888887777772 E 10000000/////." 5,-,,,,,,,++++z% %::99999998888eoUUUUUUu 0022222111111000P.....------,*zz<;;;;;;:::::: 2444433333332222///////.....U;===<<<<<<;;;; 26665555544444441j ,111000000//*E`??>>>>>=======@ 0/88887777777666664'%5e222222111110e%2@@@@@????>>>>>;fV 6Vv*8:::999999888888776O(44433333222#eBBBAAAAA@@@@@@@????51%%%$%$$$$(35<<<<;<;;;;;;::::99999. /i Z555554444441@(CCCCCCBBBBBBAAAAAA@@@@@@??????>>>>>======<<<<<<;;;;;1x N^ /77666665555ue:EEEDDDDDDCCCCCCBBBBBBAAAAA@@@@@@@????>>>>>>>======8h"88877777776< &GFFFFFEEEEEEEDDDDDCDCCCCBBBBBBBAAAAAA@@@@@??????>=% 8jJ:9999999888/fHHHGHGGGGFGFFFFEFEEEEDDDDDDDCCCCCBBBBBBAAAAAA@@:w$* ;;;;::::::99&0JIIIIIIIHHHHHGGGGGGGFFFFFEEEEEDDDDDDDCCCCCCBB/gg.==<<<<<;;;;V@9KKKKJJJJJJIIIIIIHHHHHHGGGGGGFFFFFFEEEEEDDB5$Gw y>>>======<<vJMMLLLLLKKKKKKKJJJJJIIIIIIHHHHHHGGGGGGF?.WvY@@@????>>>>>(6NNNNNMMMMMML( ' ' '#v15DGKKJJJJJIIIIIIEA3!v6- 9AAA@A@@@@??/@PPPOOOOONNN2 &FfffffffffF &v#CCBBBBBAAAA:@FQQQQQPPPPPP(FDDDDDCCCCCBB@*SSRRRRRRQQQ)UFEEEEEDEDDDD@*TTTTTSTSSSS)u5 AGGGFFFFFFFE@+VVUUUUUUUTT*E6IHHHHHGGGGG7@,WWWWWWVVVVV+@%%%%%%%%%%%7JJJIIIIIIHH@@,YYYXXXXXWWW,@;KKKKKKKJJJJ )@-ZZZZZZYYYYY,@MMMMMLLLLKKK@.\\\[[[[[[[Z-GONNNNNNNMMMM@/^]]]]]\\\\\.PPPPOOOOOOOB@H___^^^^^^^]C'@RQQQQQQPPPP<8``````_____GwWSSSSSRRRRRQ=bbbbaaaaa``]2UUTTTTTTSSS1`cccccccbbbbGgNVVVVVUUUUUTHhIeeeddddddcc4G'XXXWWWWWWWVV(*hffffffeeeeeU$gYYYYYYXXXXXUH(hhgggggggfff ?A[[[ZZZZZZZY@_iiiiihhhhhg#XgZ]\\\\\\[[[[*x?kkjjjjjjiiiOX/^^^^]]]]]]]\(Hw%Xllllkkkkkkkj@xQ``_____^^^^U(jnmmmmmmllllQh%`aaaaa```````/7oooonnnnmnnm@ Zccbbbbbbbaaa w(mppppppoooooZh@edddddccccccPKrrrqqqqqqppp8! !ZfffffeeeedddG?tssssssrrrrrn1UhhgggggfffffX_?buuttttttsssse!b!5iiiiiihhhhhhg&^(VvvvvvvuuuuuttX :Jhkkjjjjjjjiii_~^MxwwwwwwwvvvvvN!S!jmmllllllkkkkj'^'uyyyyxxxxxwwww=:"annnnnmmmmmmllW~><~{zzzzzzyyyyyxx> $ S:cpppoooooonnnnj.d||{{{{{{zzzzzzY d%Torrqqqqqppppppo7~^.y}}}}||||||{{{{i;D ;<tsssssrrrrrrqqqPd"D~~~~~}}}}}}||y)Td%%4dt"Suuuuutttttsssssc>{~~~~~~~Q /eqwwwvvvvvvuuuuutp=dSpJ# (Ueyyxxxxxxwwwwwwvvv'T-\yK5 )Ub{zzzzzyyyyyyxxxxxx9zC]\3f6Ys|||||{{{{{{{zzzzzzy:zy]mL4f$F &+VKRr~~~~~~}}}}}}|||||{{{{:y=y@y|vuuuuuutt~~~~~~~~}}}};ySy/Y~z$Iyxvi2Xx RxExX(jVHB9gwv.W2 1W}t?w(Gfs7g g11LyzZ'V&:fmAv6Ff 6CvqzxTT'F f e  1U1U1U1U1U1U1U1U1U&  eEe%eu0 dTTdT$ ????????ǀ?ǀ????? ?? ??00p??????????????(` !!!!!!!!!!! !!!!!!!!!!!!!! !!!!!!![f4#;4jF} Ye?":3iD{ 85!? bi&^-3,3?v>dcT? .*__?__`?<g_k_?bZ&_m _A?\6 __tX_:\!?tM__ ?pe _y_G!@b`` 5Uu=sF0 B(&5cnvB?+U ======5=====%==4 ========<5(=======$ "" !#"+22) !+McyaA"$] }W+ \  P&G""Wl/ k*8 y "8FF^bNF,>0(I 6Zfq1" wNu K *l_(('z+ | yGJ _*- M `  v'9 _)7 f\mw  _)-+   \^3W_)9E_)! H_(0; ! eH*! %*"##"""""!!! } g W UC77G W g 8" %%%%$$$$####" G' :v71 )('''''&&&&%" K DN-)**)))(((((fz"!!!!!  O ]'& > ,,+++++***(%G6/2"/./26;!~$###"#""""!!!! vJ +-....-----(i v2/! \%&&&%%%%$$$#####" S-"u 7*0000////.*] o,- a%%(('''''&&&&%%%%%$#g/0"222211111,^A$H J"(***))))((((''''&&&& 5"c555444433+Mo !R*-,,,,,++),) )*)))))(($ (>%-776666654S*F A"-/.....--*1!+++++***)m) 888888777#P?? @ E c 4+11100000/+j  C'---,,,,,&2  &0;;;;;::::E :34443333322,M[.////.... 7 ]b===<<<<<<;W -`!066665554442$J$1110000/$ / 0????>>>===3I ( 4R"/6988888777766f @|G/3322221,P @< +BBAAAA@@@@@???92++*+**,38<<<;;;;;;:::995*A n!45544443vj$DCCCCBBBBBAAAA@@@@??????>>>====<=<<<;:-_ Q 3 __37666655' 4EEEEDDDDDCCCCCBBBBAAAAA@@@@????>>>>>8z$ 4 2(" /088888770 0 " :>HGHGGGFFFFEFEEEDDDDDCCCCBBBBAAAAA:0nR 8#*;;:::::9\! &)YEJIIIIIHHHHGGGGGFFFEEEEDEDDDCCC@7,Q +&\v==<<<<;;!D *<"sJLKKKKJJJJJIIIIHHHHGGGGGFFFFD9'K )2 1 4:??>>>===+^ #D0NNNMMMMK1 /:"s*49=>?>>>><:3+d 8$ AA@A@@@?5`3PPOOOONFH '222222 *"0 0CCBBBBBA>o ;RQQQQQPF? K 5# /EDDDDDCCCo ?TTTSTSSH? f +@GGFFFFFE o AVVUUUUUJ? %P *X #m *o (] %E " 3};IHHHHHGG ,o BXXWWWWVL?D ( ) / 4 6 7 6 5 4 1>JJJJJIII #o CZZZZYYYN?6MMMMLLLKKo E\\[[[[[O?2ONNNNNNMIo?^^]]]]]UT5$ $ (QPPPPOOOB N 8````___Z&g,< CMSSSSRRRQ?_-;0}bbbabaa`7 n #m0UUTTTTTS0V*1'c_ddccccbH  ! BWWVVVVVUQ) %,Uffffeee_<@ /=NYYYYXXXT9 !  Lhggggggf*if,l'mX[[Z[ZZZG %d5jjiiiihhM ! @]]]\\\\\8 13kllkkkkkjH t9& jNZ`____^^Y%f@% XnmmmmlllJ 7 0Haaaa`a``O %6& r/lnoooonnne&X &$bccccbbbb?1  #Xrrqqqqpp[0 4%{'Mffffeeeda) %J<qssssrrrqJ x3 !X=fhggggfgfH 4"?;euuuuttttq5t  & m(`bjiiiiihhdLo,.dwwwwwwvvvn3o /1%'>kmlllllkkiAI F`yyyxxxxwwh-a ]!   Q#O\onnnmmmmm]@ m1 'Rr{zzzzzyyyn3l G. 8+adpppppoooon4w6 9vw}}|||||{{xP*f 70* 0(,0,x <tsssrrrrrqoH%J ]K~~~~}}}}}|]? ~%X$R#R#R#R$b&r!HRquuuutttsssX% 3. f~~lF/#@jwwwwwvvvvvuf E<&&_|O%J<Hqzzzzyyyyxxxxl D9+)/`x_B.Z9 ;(Q=|[u}|||{{{{{{zzzi,\M<'=%^yph\XWWWWW_got}~~~~~}}}}}||p,\`>*-B}{|g)y*,0ZtvL- s@ '63Ri"D_?) ;`m=u F& u ,OT~nE- $8:; A :Jvk,S'c9 ^(F{lv|mW*L ,1 b ",N;hKXa``a``VMDz.R$@  F'-0R        A1' i J+% =$e {y%A!:016$ :0.@NNNNNNNN>">4!;.72!=8?@8?@?8?@?0?@????????@????? ?>?????(P gIIII*$I< GIIIIIIIIIF1IIIII7IIIIII] _UgW H`m~(kwcdq09^[p2E?a/@</Z#"4Y/YQt\/j1#J/@!Gu(/?-"t 2Bg6j{%![0kXWVa CY![[[[[%Y[[[1#[[@=[[[[[[ZO2[[[[[["%33-! 0 6 H K @ ("Is  `& *qP4 {Q V  ]!#-0%.*% J08)( [&Y p.'*" X>  gj " _ 'K (7 q & , h \ / i  - t2!!  R4-^3#####""""!u@/+%'-J q'K @!&&&&%%%%$# P;Jb"? 9#)))(((('% @ 5!! $E 1 :<1!$,++++***&p_,A(+&)'*.*_'!###""""!!!!wU+o#....----$ 61:-#L,&&&%%%$$$#### P8)i/110000/&*9$) W!((((''''&&&&%%%##/4333322&)k&,+++++**)()(((('' c'G "7666555*' \/ e I%....---)l g(++****(k'C58888774P 755<[ 2.110000/*Y~---,,,,% W(;;;;:::3 > 344333332+ 5 ////...r 4 "b *9>===<<<7 )  %l(2776666552! 0  =-211100##5w@@@@????>4(vZKKKKKTo$*5::::9998881]| H,443333/ 7u $.5CCCBBBBAAA@?=<<<;;;======<<<;;:4 /` 6 >3666555V ,CEEEDDDDCCCBBBBAAAA@@@@???>>>>=) ;+* 2"8,888877&nHHHGGGGFFEFEEDDDDCCCCBBBAAAA6% .e 3" ";;::::3,JJJJIIIIHHHGGGGFFFEEEEEDA<0 z &- =R>==<<<8=B ;MMLLLLG0*4>FIIIIHHHHFB7&U"( 7 > %@@???><Y`APOOONN*   2R_____M 02 7 7CBBBAA@sv 'FQQQQPP#ob *% 1;EDDDDCC!!z/JTTSTSS$o}5#8@GGFFFF% !/LVVVVUU%o wE&54FVV V V VVU "C:25# / 87>IIIHHH, "/NYYXXXW&o g8FKKKKJJ( ! 0P\[[ZZZ'ot;NNNNNML%z !{ "O^]]]]\0 / QPPPOOMd t  K```___=7yESSSRRRNX OFcbbbbaN $- -VUUUUTM *?0yeedddd\A)c )@XXXWWWK3 g6fgggffe.t. n0R[ZZZZY< 5 ZjiiihhNA *r]]\\\\\&k#AllkkkkjE 5 `P`___^^U0Y(JhnnmmmmJ j -(h`bbaaaaA ,./ Vppppook+d 6" Oeedddcc!V 4.,cqsrrrrqb/%3  CggggfffV P _!`uuutttsU  +# +idiiiiihf-o<)"IwwwwwvvvNb/%(FlmllllkkQ &\YVyyyyxxxtI )+&  d'Xaooonnnmh"O=0 1k|{{{{zzzV.=  + h5ulrrqqqqpn> T"0%Kv~~}}}}|{j&NV);3(1(1(2(35L}.JquutttssrQ 6 r=y}~vG00ffwwwwvvvvub272 zB}}S(O ;;ykzzzzyyyxxxi//65  ByhQ6j ? 4.[A\q|}}|||||{{{g"GX<66fy}||{{|~~~}f:r@65kyS# oA6Jq+Uh@ 5  g)VuC J2#U8O|tI.02:& ~ 4\YqQ3_ X25 67@q\mvxxxxwojN;j/  ;*(3  %&5) F  88./"/6]    zZ8/167 " # # # "     p??????>?????(H `T&uuup.u[luuufnuuuui3uuuuu-UuuuuuG#)%`T46#^,) EKw"' F H}cc!G-R|EG 98+qGC8xQ]G{(N&4G  #gO'\%A}7[M 0E+fj 7= XsoR5 = bAS'*} _!% w  I# '   g 0\ @ AV>g F  vz g@ n ; [ g+ c v -:  g)G g+ w og*"""""!!!  r h N N mF g/&%%%$$$$#{?  P X T+_)((('''&!p'  adiX (+++++**)#&V%8#0# &$*4 ##""""!!!! NH ) v....---+i *p&&&%%%$$####3 |( `$-111000,Y &  N G)))(((('''&&&%L#444333._ Y(  Mr*,,,++* _())((('#  mH7776664l U 3 0(&  0 5!.///..-+++++*(+Q+:99998*  +"02221110"..---- :>A<=<<<;;*Q#36555444.s 6,1000/-*$)(@???>>>;"X 3 & % % % % ,@j"1899988876& 0 >333222vp % %:BBBAAA@@@?<777668;=<<<<;;;::1yh 7= .365554&2VDEEDDDDCCCBBBAAAA@@@???>>>=: &- 2 *888871!i+HHHGGGFFFFEEDDDDCCCBBBAAA4uw 2f;;:::9K:KKJJJIIIHHHHGGGFFFEEE@5(W) :"4?>====<{@ "ENMMLLD mU&1:?AAA@@>90p5: 3$ A@@???&#_ IPPOOO1 % & & & & 3 4CCCBBB/ %k8NSRRRQ0~ #; . DEEEED3 ' 8PUUUUT2 !ouH (> 5 ?HHHGG9 ' 8SXXXWW3C $ +3543 07 DKKJJJ9 ' 8U[ZZZZ5J NMMMML8 'u *W^]]]\=n +PPPPOO2 %i  V```__K 4 #7@SSSRRR. #GQcccbbY $3i-VVUUUTR 0m9feeeeb$[2=& AYXXXXU-?0!Qfhhggg<*( #W[[[ZZJ *%]kjjjib*4&0^^^]]]:$ Fmmmmll6.7 #Saa````E &I CDlpooooc,p2 .tdddccbT , )UrrrrqqJM1 G^gfffed/yo,`uuutttq; M)#Viiiihh_03)Twwwwvvr2m, +Ommlllki1v@i6rzzzyyyq3l N& %y#MooooonnR5-)<|y|||{{{vD  ^"&) (& ): :Yrrrrqqqc={;%; P~~~~~}|Y0 q l l l 4pjvuuutttp+`20 _ [wR5 -^byyxxxwwwv9|8"6 ]|`:r @ /$JJoz||{{{zzzwAM9  S{rgbbbbdltz~~~}}}v@ m>8  ?u~p2e r? 9  "?gR)lA9 X1Yof'KK)= ,Oa\*P1+:/ o ,9dk{w]7d1S4 1#x $?3ZExQQQQL=n2X7 t(1 YT%3% _  E/9.5!;) : ; ; ; : ;1"='81 7???@? ?|???(@ B/j*ykT$,imR"gQgmcv__{zd_<@q_P%=t</8j u+$zzzzozzz zz,zzzzzxg*zzzzz %)EE1! A Q e Y 0E Y9-2eE?B:f V}#"R?-N  ?2b z ;f  ?&  v g ?( ?( K !!!  ? ?&`%%$$$###!s/3w s> 1_((('''&&%  ~ \N++++***! 9v"J7'"+'>##""""!!!(*9&-/...--  f-' m&&&%%%%$$##%#221110 #q"**)))(('''&&&7V655444 5" q I*---,,)U**)))(Z+ 388877-["**2V -"11000/) 1 %--,,,%[<;;;:: *"4443333*"*.0///.c . o2??>>==1 / 3v088877766 l32221&d ,BBBAAA@@@=521115;<<<;;;:::/Al/455543 !"~EEDDDDCCBBBAAAA@@@??>>>=7W"/S)88877VA7HHHGGGFFFEEEDDCCCCBBBA2W 2 # s<;;::# qFKKKJJJIIIHHHGGGFFFC3w 3! .?>>==0 %= ONNNMF +Gg(24433,"zK "4BAA@@: )]1RQQQP<z  %bDDDCCC ,a@UTTTS> 'N! $]AGGFFF -@XWWWVA/ ( " $ $ # ! $UAJJJII -@[ZZZZC #! %iMMMMLL ,m2^]]]]J #EPPPOOG +]aa``_X{;TSSSRD (? e\dcccb3-WVVVU1 #$ 4Bffffe1{7 eFZYYYX%k "'_jiiihP  !\]\\\[( llllkk@0 S6``___Pq YIooonnT(#accbbb.y !%9rrrqqq/j"Ifffeea]uutttp:x&"/pjiiihh;%U)3wxwwwvl * -Ilmlllkf DvG{zzzyyj3q'%+amppooon-h%P* e}}}|||w/a F &NAttssrrrI6u~~R.#Jdwwwvvvu`6Y0yZ#F 4j`{zzzzyyyh%<|/t|aK:s:s:s:s@Pg|~~~}}}||ka | b^ t s1 ^XXYt&2999983h|,&.433#8DDCCBBBAA@@??>>==;# L- 7771 $EHHHGGFFEEDDCCBA9! 0;L<;;: ;# ! GMLLK5+7@CCCB>5!{6&- 1 @??>b *:3aQPPK ""/ 1 DCCB } 0H7%oUTTN   d '! CGGG' 3_7'oYXXR < # # - . , + HKKJ'2[7&g]\\W %/ % POON"p0F "Gaa`^@(* ,7TTSRV *- #_edd2 "kk*{XWWV "2 UhhhQ) G\[[M s6mllkA bXB_``_7  #jppoU "* $ Iddcb4 $8Kttss=!$  3}hhhgL6 = rxxwu3n U'  K'Ymmmlg<*P* 6oz{{zw?  O$ % N7ynqqqo; 8+O~~}Z0   *UuvuuuT .'#2 V[-X$#*UVy{zzyy^"Q#M L}snmmry~~}Z  v9#L0Zz|;u t<#)D{zS! T.  0U_e?t -!!  -+L6_6_6_+M3 !<0* E  _+)2&#' ''!#7. g0|G0|0|x~???? ?????????( @  PB2KP=PJPP( PP, m_~a+./_o@!o`_msoaoSc"ss+| [3 d ^3 | V|(PfhL^5:h7 b!  uZ o ! o  ""! t b c] #))&u  ! veI +"0/*1Q$('&&%#* P763+"" O 6&.."+*"4"0=<1 S'655  +00Jt *CCBA@;9:>==</Edq66! kIIHGGFEED>,G +$o (=<2!.OO#t<WYS 1 #59CB@ ,/6VU_ v !m "8 ',EHG 0?8\[#c <ONK .2 0~ba3v/UTG %@hgS$&+y[Z9 @dmlA VVa`T :ssa  18hgZ&E a lyxW   m.hnnm'] #>|~}i4 {hp HuttH+3)*Sa8n!A9<-[Mv|{zV d.4t~D x* 8euW+ UJ(9dOTRCy)J , #o  !J) `C`C`app9 <???(  @lM2V{2Aec/7^xFXlM  W13 J >* =',  O C$ g<? k /0%1n F&$u % |?-s}-6vX3 = ]:A)/+f4?tgH=rD=J% PET|/W _ (\p"L  ]>` # `s#Hs9C;q7 ? "djRUr~F w  ~,PZojO7 T  Ea ^ 5  !qnapi-0.1.9/src/0000755000174100017410000000000012567301464013314 5ustar jenkinsjenkinsqnapi-0.1.9/src/ffprobemovieinfoparser.h0000644000174100017410000000052012567301464020236 0ustar jenkinsjenkins#ifndef FFPROBEMOVIEINFOPARSER_H #define FFPROBEMOVIEINFOPARSER_H #include #include "movieinfo.h" class FFProbeMovieInfoParser { QString ffProbePath; public: FFProbeMovieInfoParser(const QString & ffProbeExePath); MovieInfo parseFile(const QString & movieFilePath) const; }; #endif // FFPROBEMOVIEINFOPARSER_H qnapi-0.1.9/src/qnapisubtitleinfo.h0000644000174100017410000000321612567301464017227 0ustar jenkinsjenkins/***************************************************************************** ** QNapi ** Copyright (C) 2008-2009 Krzemin ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation; either version 2 of the License, or ** (at your option) any later version. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** *****************************************************************************/ #ifndef __QNAPISUBTITLEINFO__H__ #define __QNAPISUBTITLEINFO__H__ // Orientacyjne okreslenie czy napisy na pewno pasuja lub nie do naszego filmu enum QNapiSubtitleResolution { // nie wiadomo (lub nie jestesmy pewni) SUBTITLE_UNKNOWN, // podejrzenie, ze napisy nie pasuja // (np. zostaly oznaczone jako nieprawidlowe) SUBTITLE_BAD, // napisy prawdopodobnie pasuja (np. nazwa pliku czy releasu sie zgadza) SUBTITLE_GOOD }; // struktura opisujaca napisy struct QNapiSubtitleInfo { QNapiSubtitleInfo(QString l = "", QString e = "", QString u = "", QString n = "", QString c = "", QString f = "", QNapiSubtitleResolution r = SUBTITLE_UNKNOWN) : lang(l.toLower()), engine(e), url(u), name(n), comment(c), format(f), resolution(r) {} QString lang; QString engine; QString url; QString name; QString comment; QString format; QNapiSubtitleResolution resolution; }; typedef QList QNapiSubtitleInfoList; #endif qnapi-0.1.9/src/qnapiconfig.h0000644000174100017410000001073412567301464015770 0ustar jenkinsjenkins/***************************************************************************** ** QNapi ** Copyright (C) 2008-2009 Krzemin ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation; either version 2 of the License, or ** (at your option) any later version. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** *****************************************************************************/ #ifndef __QNAPICONFIG__H__ #define __QNAPICONFIG__H__ #include #include #include #include #include #include #include #include #include #include #include #ifdef Q_OS_MAC #include #endif #include "version.h" enum SearchPolicy { SP_SEARCH_ALL = 0, SP_BREAK_IF_FOUND = 1 }; enum DownloadPolicy { DP_ALWAYS_SHOW_LIST = 0, DP_SHOW_LIST_IF_NEEDED = 1, DP_NEVER_SHOW_LIST = 2 }; enum ChangeEncodingMethod { CEM_ORIGINAL = 0, CEM_CHANGE = 1, CEM_REPLACE_DIACRITICS = 2 }; class QNapiConfig { public: void reload(); void save(); bool firstRun(); QString version(); QString p7zipPath(); void setP7zipPath(const QString & path); QString ffProbePath(); void setFFProbePath(const QString & path); QString tmpPath(); void setTmpPath(const QString & path); QString nick(const QString & engine); void setNick(const QString & engine, const QString & nick); QString pass(const QString & engine); void setPass(const QString & engine, const QString & pass); QString language(); void setLanguage(const QString & language); QString languageBackup(); void setLanguageBackup(const QString & language); bool noBackup(); void setNoBackup(bool noBackup); #ifdef Q_OS_MAC bool showDockIcon(); void setShowDockIcon(bool show); #endif QList > engines(); QStringList enginesList(); void setEngines(QList > engines); SearchPolicy searchPolicy(); void setSearchPolicy(SearchPolicy policy); DownloadPolicy downloadPolicy(); void setDownloadPolicy(DownloadPolicy policy); bool ppEnabled(); void setPpEnabled(bool enable); ChangeEncodingMethod ppEncodingMethod(); void setPpEncodingMethod(ChangeEncodingMethod method); bool ppAutoDetectEncoding(); void setPpAutoDetectEncoding(bool change); QString ppEncodingFrom(); void setPpEncodingFrom(const QString & encoding); QString ppEncodingTo(); void setPpEncodingTo(const QString & encoding); bool ppShowAllEncodings(); void setPpShowAllEncodings(bool show); bool ppRemoveLines(); void setPpRemoveLines(bool remove); QString ppSubFormat(); void setPpSubFormat(const QString & subFormat); QString ppSubExtension(); void setPpSubExtension(const QString & subExtension); bool ppSkipConvertAds(); void setPpSkipConvertAds(bool skip); QStringList ppRemoveWords(); void setPpRemoveWords(const QStringList & words); bool changePermissions(); void setChangePermissions(bool change); QString changePermissionsTo(); void setChangePermissionsTo(const QString & permissions); QString previousDialogPath(); void setPreviousDialogPath(const QString & path); QStringList scanFilters(); void setScanFilters(const QStringList & filters); QString scanSkipFilters(); void setScanSkipFilters(const QString & filters); bool scanSkipIfSubtitlesExists(); void setScanSkipIfSubtitlesExists(bool skip); QString lastScanDir(); void setLastScanDir(const QString & dir); QStringList movieExtensions(); QString movieExtensionsFilter(); QStringList subtitleExtensions(); QString subtitleExtensionsFilter(); private: QNapiConfig(); QNapiConfig(const QNapiConfig &); ~QNapiConfig(); QSettings *settings; bool isPortableMode; friend QNapiConfig& GlobalConfig(); }; QNapiConfig & GlobalConfig(); #endif qnapi-0.1.9/src/qnapiapp.cpp0000644000174100017410000002654112567301464015641 0ustar jenkinsjenkins/***************************************************************************** ** QNapi ** Copyright (C) 2008-2009 Krzemin ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation; either version 2 of the License, or ** (at your option) any later version. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** *****************************************************************************/ #include "qnapiapp.h" QNapiApp::QNapiApp(int & argc, char **argv, bool useGui, const QString & appName) : QSingleApplication(argc, argv, useGui, appName) { openDialog = 0; f_progress = 0; f_options = 0; f_about = 0; f_scan = 0; f_convert = 0; f_napiProjektUpload = 0; f_napiProjektCorrect = 0; f_napiProjektReport = 0; getAction = 0; scanAction = 0; convertAction = 0; napiGetAction = 0; napiAddAction = 0; napiCorrectAction = 0; napiReportAction = 0; napiCreateUserAction = 0; osGetAction = 0; osAddAction = 0; settingsAction = 0; aboutAction = 0; quitAction = 0; napiSubMenu = 0; osSubMenu = 0; trayIconMenu = 0; trayIcon = 0; } QNapiApp::~QNapiApp() { if(openDialog) delete openDialog; if(f_progress) delete f_progress; if(f_options) delete f_options; if(f_about) delete f_about; if(f_scan) delete f_scan; if(f_convert) delete f_convert; if(f_napiProjektUpload) delete f_napiProjektUpload; if(f_napiProjektCorrect) delete f_napiProjektCorrect; if(f_napiProjektReport) delete f_napiProjektReport; if(getAction) delete getAction; if(scanAction) delete scanAction; if(convertAction) delete convertAction; if(napiGetAction) delete napiGetAction; if(napiAddAction) delete napiAddAction; if(napiCorrectAction) delete napiCorrectAction; if(napiReportAction) delete napiReportAction; if(napiCreateUserAction) delete napiCreateUserAction; if(osGetAction) delete osGetAction; if(osAddAction) delete osAddAction; if(settingsAction) delete settingsAction; if(aboutAction) delete aboutAction; if(quitAction) delete quitAction; if(napiSubMenu) delete napiSubMenu; if(trayIconMenu) delete trayIconMenu; if(trayIcon) delete trayIcon; } frmProgress * QNapiApp::progress() { if(!f_progress) { f_progress = new frmProgress(); if(!f_progress) abort(); connect(this, SIGNAL(request(QString)), f_progress, SLOT(receiveRequest(QString))); connect(this, SIGNAL(downloadFile(const QString &)), f_progress, SLOT(receiveRequest(const QString &))); } return f_progress; } void QNapiApp::createTrayIcon() { getAction = new QAction(tr("Pobierz napisy"), 0); connect(getAction, SIGNAL(triggered()), this, SLOT(showOpenDialog())); scanAction = new QAction(tr("Skanuj katalogi"), 0); connect(scanAction, SIGNAL(triggered()), this, SLOT(showScanDialog())); convertAction = new QAction(tr("Konwertuj napisy"), 0); connect(convertAction, SIGNAL(triggered()), this, SLOT(showConvertDialog())); napiGetAction = new QAction(tr("Pobierz napisy"), 0); connect(napiGetAction, SIGNAL(triggered()), this, SLOT(showNPGetDialog())); napiAddAction = new QAction(tr("Dodaj napisy"), 0); connect(napiAddAction, SIGNAL(triggered()), this, SLOT(showNPUploadDialog())); napiCorrectAction = new QAction(tr("Popraw napisy"), 0); connect(napiCorrectAction, SIGNAL(triggered()), this, SLOT(showNPCorrectDialog())); napiReportAction = new QAction(tr("Zgłoś niepasujące"), 0); connect(napiReportAction, SIGNAL(triggered()), this, SLOT(showNPReportDialog())); napiCreateUserAction = new QAction(tr("Załóż konto"), 0); connect(napiCreateUserAction, SIGNAL(triggered()), this, SLOT(showNPCreateUser())); osGetAction = new QAction(tr("Pobierz napisy"), 0); connect(osGetAction, SIGNAL(triggered()), this, SLOT(showOSGetDialog())); osAddAction = new QAction(tr("Dodaj napisy"), 0); connect(osAddAction, SIGNAL(triggered()), this, SLOT(showOSUploadDialog())); osCreateUserAction = new QAction(tr("Załóż konto"), 0); connect(osCreateUserAction, SIGNAL(triggered()), this, SLOT(showOSCreateUser())); napisy24GetAction = new QAction(tr("Pobierz napisy"), 0); connect(napisy24GetAction, SIGNAL(triggered()), this, SLOT(showNapisy24GetDialog())); napisy24CreateUserAction = new QAction(tr("Załóż konto"), 0); connect(napisy24CreateUserAction, SIGNAL(triggered()), this, SLOT(showNapisy24CreateUser())); settingsAction = new QAction(tr("Opcje"), 0); connect(settingsAction, SIGNAL(triggered()), this, SLOT(showSettings())); aboutAction = new QAction(tr("O programie"), 0); connect(aboutAction, SIGNAL(triggered()), this, SLOT(showAbout())); quitAction = new QAction(tr("Zakończ"), 0); connect(quitAction, SIGNAL(triggered()), this, SLOT(tryQuit())); napiSubMenu = new QMenu(0); napiSubMenu->setTitle(tr("NapiProjekt")); napiSubMenu->addAction(napiGetAction); napiSubMenu->addSeparator(); napiSubMenu->addAction(napiAddAction); napiSubMenu->addAction(napiCorrectAction); napiSubMenu->addAction(napiReportAction); napiSubMenu->addSeparator(); napiSubMenu->addAction(napiCreateUserAction); osSubMenu = new QMenu(0); osSubMenu->setTitle(tr("OpenSubtitles")); osSubMenu->addAction(osGetAction); osSubMenu->addAction(osAddAction); osSubMenu->addSeparator(); osSubMenu->addAction(osCreateUserAction); napisy24SubMenu = new QMenu(0); napisy24SubMenu->setTitle(tr("Napisy24")); napisy24SubMenu->addAction(napisy24GetAction); napisy24SubMenu->addSeparator(); napisy24SubMenu->addAction(napisy24CreateUserAction); trayIconMenu = new QMenu(0); trayIconMenu->addAction(getAction); trayIconMenu->addAction(scanAction); trayIconMenu->addAction(convertAction); trayIconMenu->addSeparator(); trayIconMenu->addMenu(napiSubMenu); trayIconMenu->addMenu(osSubMenu); trayIconMenu->addMenu(napisy24SubMenu); trayIconMenu->addSeparator(); trayIconMenu->addAction(settingsAction); trayIconMenu->addAction(aboutAction); trayIconMenu->addSeparator(); trayIconMenu->addAction(quitAction); trayIcon = new QSystemTrayIcon(0); trayIcon->setContextMenu(trayIconMenu); trayIcon->setIcon(QIcon(":/icon/qnapi.png")); connect(trayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(trayIconActivated(QSystemTrayIcon::ActivationReason))); trayIcon->show(); } void QNapiApp::showTrayMessage(QString title, QString msg) { trayIcon->showMessage(title, msg); } bool QNapiApp::showOpenDialog(QString engine) { QStringList fileList; if(!openDialog) { openDialog = new QNapiOpenDialog(0, tr("Wybierz jeden lub więcej plików z filmami"), GlobalConfig().previousDialogPath(), QNapiOpenDialog::Movies); } else if(openDialog) { openDialog->raise(); return true; } else if(f_progress) { f_progress->raise(); return true; } if(openDialog->selectFiles()) { fileList = openDialog->selectedFiles(); if(!fileList.isEmpty()) { QString dialogPath = QFileInfo(fileList[0]).absolutePath(); GlobalConfig().setPreviousDialogPath(dialogPath); GlobalConfig().save(); } } delete openDialog; openDialog = 0; if(!fileList.isEmpty()) { if(!engine.isEmpty()) { QStringList e; e << engine; progress()->setEngines(e); } progress()->enqueueFiles(fileList); progress()->download(); } else if(progress()->isBatchMode()) { return false; } return true; } bool QNapiApp::showScanDialog(QString init_dir) { if(!f_scan) f_scan = new frmScan(); if(f_scan->isVisible()) { f_scan->raise(); return false; } f_scan->setInitDir(init_dir); bool result = false; if(f_scan->exec() == QDialog::Accepted) { result = true; progress()->enqueueFiles(f_scan->getSelectedFiles()); progress()->download(); } delete f_scan; f_scan = 0; return result; } void QNapiApp::showConvertDialog() { if(!f_convert) f_convert = new frmConvert(); if(f_convert->isVisible()) { f_convert->raise(); return; } f_convert->exec(); delete f_scan; f_scan = 0; } void QNapiApp::showNPGetDialog() { showOpenDialog("NapiProjekt"); } void QNapiApp::showNPUploadDialog() { if(!f_napiProjektUpload) f_napiProjektUpload = new frmNapiProjektUpload(); if(f_napiProjektUpload->isVisible()) { f_napiProjektUpload->raise(); return; } f_napiProjektUpload->exec(); delete f_napiProjektUpload; f_napiProjektUpload = 0; } void QNapiApp::showNPCorrectDialog() { if(!f_napiProjektCorrect) f_napiProjektCorrect = new frmNapiProjektCorrect(); if(f_napiProjektCorrect->isVisible()) { f_napiProjektCorrect->raise(); return; } f_napiProjektCorrect->exec(); delete f_napiProjektCorrect; f_napiProjektCorrect = 0; } void QNapiApp::showNPReportDialog() { if(!f_napiProjektReport) f_napiProjektReport = new frmNapiProjektReport(); if(f_napiProjektReport->isVisible()) { f_napiProjektReport->raise(); return; } f_napiProjektReport->exec(); delete f_napiProjektReport; f_napiProjektReport = 0; } void QNapiApp::showNPCreateUser() { QDesktopServices::openUrl(QUrl("http://www.napiprojekt.pl/rejestracja")); } void QNapiApp::showOSGetDialog() { showOpenDialog("OpenSubtitles"); } void QNapiApp::showOSUploadDialog() { QDesktopServices::openUrl(QUrl("http://www.opensubtitles.org/upload")); } void QNapiApp::showOSCreateUser() { QDesktopServices::openUrl(QUrl("http://www.opensubtitles.org/newuser")); } void QNapiApp::showNapisy24GetDialog() { showOpenDialog("Napisy24"); } void QNapiApp::showNapisy24CreateUser() { QDesktopServices::openUrl(QUrl("http://napisy24.pl/cb-registration/registers")); } void QNapiApp::showSettings() { if(!f_options) { f_options = new frmOptions(); f_options->readConfig(); } if(f_options->isVisible()) { f_options->raise(); return; } if(f_options->exec() == QDialog::Accepted) f_options->writeConfig(); delete f_options; f_options = 0; } void QNapiApp::showAbout() { if(!f_about) f_about = new frmAbout(); if(f_about->isVisible()) { f_about->raise(); return; } f_about->exec(); delete f_about; f_about = 0; } void QNapiApp::tryQuit() { if(progress()->isVisible() && !progress()->close()) return; quit(); } void QNapiApp::trayIconActivated(QSystemTrayIcon::ActivationReason reason) { if(reason == QSystemTrayIcon::Trigger) #ifndef Q_OS_MAC showOpenDialog() #endif ; } bool QNapiApp::event(QEvent *ev) { if(ev->type() == QEvent::FileOpen) emit downloadFile(static_cast(ev)->file()); else return QApplication::event(ev); return true; } qnapi-0.1.9/src/movieinfo.h0000644000174100017410000000144312567301464015462 0ustar jenkinsjenkins/***************************************************************************** ** QNapi ** Copyright (C) 2008-2009 Krzemin ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation; either version 2 of the License, or ** (at your option) any later version. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** *****************************************************************************/ #ifndef __MOVIEINFO__H__ #define __MOVIEINFO__H__ struct MovieInfo { bool isFilled; int width, height; double frameRate; double durationSecs; }; #endif qnapi-0.1.9/src/qcumber/0000755000174100017410000000000012567301464014752 5ustar jenkinsjenkinsqnapi-0.1.9/src/qcumber/qsingleapplication.cpp0000644000174100017410000001104612567301464021346 0ustar jenkinsjenkins/**************************************************************************** ** ** Copyright (C) 2006-2008 fullmetalcoder ** ** This file is part of the Edyuk project ** ** This file may be used under the terms of the GNU General Public License ** version 2 as published by the Free Software Foundation and appearing in the ** file GPL.txt included in the packaging of this file. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ****************************************************************************/ #include "qsingleapplication.h" #include "qmanagedrequest.h" #include "qinterprocesschannel.h" #include /*! \brief Constructor */ QSingleApplication::QSingleApplication(int& argc, char **argv, bool useGui, const QString & appName) : QApplication(argc, argv, useGui) { setApplicationName(appName); pChannel = new QInterProcessChannel(this); connect(pChannel, SIGNAL( message(QString) ), this , SLOT ( message(QString) ) ); connect(pChannel, SIGNAL( request(QStringList) ), this , SLOT ( request(QStringList) ) ); setMessagingPolicy(Signals); setInstanciationPolicy(None); } /*! \brief Destructor */ QSingleApplication::~QSingleApplication() { pChannel->close(); } /*! \return Wheter the creation of an instance is allowed. */ bool QSingleApplication::isInstanceAllowed() const { return pChannel->isServer(); } /*! \return The current messaging policy */ QSingleApplication::MessagingPolicy QSingleApplication::messagingPolicy() const { return m_messaging; } /*! \brief Sets the messaging policy \see messagingPolicy() */ void QSingleApplication::setMessagingPolicy(MessagingPolicy p) { m_messaging = p; } /*! \return The current instanciation policy */ QSingleApplication::InstanciationPolicy QSingleApplication::instanciationPolicy() const { return m_instanciation; } /*! \brief Sets the instanciation policy \see instanciationPolicy() */ void QSingleApplication::setInstanciationPolicy(InstanciationPolicy p) { m_instanciation = p; } /*! \brief Launchs the application if allowed \see instanciationPolicy() */ int QSingleApplication::exec() { int ret = -1; if ( isInstanceAllowed() ) { ret = QApplication::exec(); } else { switch ( instanciationPolicy() ) { case ForwardArguments : qWarning("QSingleApplication : forwarding parameters"); sendRequest(arguments()); break; default: qWarning("QSingleApplication : all instances already occupied"); break; } } return ret; } /*! \overload */ void QSingleApplication::sendRequest(const QString& s) { sendRequest(QStringList(s)); } /*! \brief sends a message to the running instance of the application \param l A list of arguments that make up a request to be sent. */ void QSingleApplication::sendRequest(const QStringList& l) { if ( !pChannel || l.isEmpty() ) return; /* qDebug("sending message to %s:%i over TCP/IP : \"%s\"", qPrintable(pManager->address().toString()), pManager->port(), msg.constData()); */ pChannel->sendMessage(QManagedRequest::joinArguments("--request", l)); } /*! \internal */ void QSingleApplication::message(const QString& s) { if ( s.isEmpty() ) return; switch ( messagingPolicy() ) { case Events : /* QRequestEvent *e = new QRequestEvent(s); postEvent(s); */ break; case Signals : emit request(s); break; default: break; } } /*! \internal */ void QSingleApplication::request(const QStringList& l) { if ( l.isEmpty() ) return; switch ( messagingPolicy() ) { case Events : /* QRequestEvent *e = new QRequestEvent(s); postEvent(s); */ break; case Signals : emit request(l.join(" | ")); break; default: break; } } /*! \internal */ bool QSingleApplication::event(QEvent *e) { return QApplication::event(e); } qnapi-0.1.9/src/qcumber/qinterprocesschannel.h0000644000174100017410000000423112567301464021355 0ustar jenkinsjenkins/**************************************************************************** ** ** Copyright (C) 2006-2008 fullmetalcoder ** ** This file is part of the Edyuk project ** ** This file may be used under the terms of the GNU General Public License ** version 2 as published by the Free Software Foundation and appearing in the ** file GPL.txt included in the packaging of this file. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ****************************************************************************/ #ifndef _QINTER_PROCESS_CHANNEL_H_ #define _QINTER_PROCESS_CHANNEL_H_ #include "qcumber.h" /*! \file qinterprocesschannel.h \brief Definition of the QInterProcessChannel class. */ #include #include #include #include class QTimer; class QTcpServer; class QManagedSocket; class QCUMBER_EXPORT QInterProcessChannel : public QThread { Q_OBJECT public: QInterProcessChannel(QObject *p = 0); virtual ~QInterProcessChannel(); bool isServer() const; QString messageBuffer() const; public slots: void close(); void reconnect(); void sendMessage(); void sendMessage(const QString& s); void sendMessage(const QByteArray& b); void setMessageBuffer(const QString& s); signals: void connectionLost(); void message(const QString& s); void request(const QStringList& l); void gotServerRole(); void serverRoleChanged(bool y); protected: QString rcFile; virtual void run(); private slots: void init(); void check(); void connection(); void message(const QString& m, QManagedSocket *s); private: QString sMsg; QHostAddress m_addr; quint16 m_port, m_max; QTcpServer *pServer; QTimer *pServerTimer; }; #endif // !_QINTER_PROCESS_CHANNEL_H_ qnapi-0.1.9/src/qcumber/qcumber.h0000644000174100017410000000172412567301464016565 0ustar jenkinsjenkins/**************************************************************************** ** ** Created using Edyuk IDE 0.8.0 ** ** File : qcumber.h ** Date : Fri Feb 2 21:07:45 2007 ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ****************************************************************************/ #ifndef _QCUMBER_H_ #define _QCUMBER_H_ //#ifdef _QCUMBER_BUILD_ //#if (defined(QT_DLL) || defined(QT_SHARED)) && !defined(QT_PLUGIN) //#define QCUMBER_EXPORT Q_DECL_EXPORT //#else #define QCUMBER_EXPORT //#endif //#else //#define QCUMBER_EXPORT Q_DECL_IMPORT //#endif #include namespace QCumber { enum Events { FirstEvent = QEvent::User + 100, SystemRequestEvent = FirstEvent, CustomRequestEvent, LastEvent }; } #include #endif // _QCUMBER_H_ qnapi-0.1.9/src/qcumber/qmanagedrequest.cpp0000644000174100017410000000546412567301464020655 0ustar jenkinsjenkins/**************************************************************************** ** ** Copyright (C) 2006-2008 fullmetalcoder ** ** This file is part of the Edyuk project ** ** This file may be used under the terms of the GNU General Public License ** version 2 as published by the Free Software Foundation and appearing in the ** file GPL.txt included in the packaging of this file. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ****************************************************************************/ #include "qmanagedrequest.h" /*! \file qmanagedrequest.cpp \brief Implementation of the QManagedRequest class. */ QManagedRequest::QManagedRequest(const QString& cmd, const QStringList& args) : sCommand(cmd), lArguments(args) { } QManagedRequest::QManagedRequest(const QManagedRequest& r) : sCommand(r.sCommand), lArguments(r.lArguments) { } QManagedRequest::~QManagedRequest() { sCommand.clear(); lArguments.clear(); } QManagedRequest QManagedRequest::createSystemRequest(const QStringList& args, int id) { QManagedRequest r("--request"); r.lArguments = args; r.lArguments.prepend( QString::number(id) ); return r; } QManagedRequest& QManagedRequest::operator = (const QManagedRequest& r) { sCommand = r.sCommand; lArguments = r.lArguments; return *this; } QString QManagedRequest::toString() const { return QString::fromLocal8Bit(joinArguments(sCommand, lArguments)); } QManagedRequest QManagedRequest::fromString(const QString& s) { QManagedRequest r(""); r.lArguments = splitArguments(s); r.sCommand = r.lArguments.takeAt(0); return r; } QStringList QManagedRequest::splitArguments(const QString& s) { int i = -1; QStringList d, l = s.split(QRegExp("\\s")); while ( ++i < l.count() ) { if ( l.at(i).startsWith("\"") ) { QString arg; do { arg += " "; arg += l.at(i); } while ( !arg.endsWith("\"") && (++i < l.count()) ); arg.remove(0, 2); if ( arg.endsWith("\"") ) arg.chop(1); d << arg; } else { d << l.at(i); } } return d; } QByteArray QManagedRequest::joinArguments(const QString& cmd, const QStringList& l) { QByteArray msg; msg += cmd.toLocal8Bit(); foreach ( QString a, l ) { if ( a.isEmpty() ) continue; if ( a.contains(QRegExp("\\s")) ) a = "\"" + a + "\""; msg += " "; msg += a.toLocal8Bit(); } return msg; } qnapi-0.1.9/src/qcumber/qmanagedsocket.cpp0000644000174100017410000000274012567301464020447 0ustar jenkinsjenkins/**************************************************************************** ** ** Copyright (C) 2006-2008 fullmetalcoder ** ** This file is part of the Edyuk project ** ** This file may be used under the terms of the GNU General Public License ** version 2 as published by the Free Software Foundation and appearing in the ** file GPL.txt included in the packaging of this file. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ****************************************************************************/ #include "qmanagedsocket.h" /*! \file qmanagedsocket.cpp \brief Implementation of the QManagedSocket class. */ #include QManagedSocket::QManagedSocket(QTcpSocket *s, QObject *p) : QObject(p), pSocket(s) { if ( !s ) qFatal("QManagedSocket fed with invalid socket descriptor..."); connect(s , SIGNAL( readyRead() ), this, SLOT ( readyRead() ) ); connect(s , SIGNAL( disconnected() ), this, SLOT ( deleteLater() ) ); } QManagedSocket::~QManagedSocket() { } void QManagedSocket::send(const QByteArray& msg) { pSocket->write(msg); } void QManagedSocket::readyRead() { if ( pSocket ) { QString msg = QString::fromLocal8Bit(pSocket->readAll()); emit message(msg); emit message(msg, this); } } qnapi-0.1.9/src/qcumber/qinterprocesschannel.cpp0000644000174100017410000002051312567301464021711 0ustar jenkinsjenkins/**************************************************************************** ** ** Copyright (C) 2006-2008 fullmetalcoder ** ** This file is part of the Edyuk project ** ** This file may be used under the terms of the GNU General Public License ** version 2 as published by the Free Software Foundation and appearing in the ** file GPL.txt included in the packaging of this file. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ****************************************************************************/ #include "qinterprocesschannel.h" /*! \file qinterprocesschannel.cpp \brief Implementation of the QInterProcessChannel class. */ #include "qmanagedsocket.h" #include "qmanagedrequest.h" #include #include #include #include #include #include #include #define WAIT_TIMEOUT 5000 /*! \class QInterProcessChannel \brief A generic network-based communication channel for applications. QInterProcessChannel offers communication facilities between several instances of the same application. It initializes itself so that the first created instance acts as a "server" which recieve messages from the others instances. This is particularly handy when creating a single-instance application which, for example, uses file association through a command line interface. \see QSingleApplication */ /*! \brief Constructor Check for a valid server and create one if none found. */ QInterProcessChannel::QInterProcessChannel(QObject *p) : QThread(p), pServer(0), pServerTimer(0) { #ifdef Q_OS_WIN rcFile = QDir::tempPath() + QDir::separator() + QApplication::applicationName() + "rc"; #else rcFile = QDir::tempPath() + QDir::separator() + QApplication::applicationName() + "-" + getenv("USER") + "-" + getenv("DISPLAY") + "-" + "rc"; #endif init(); } /*! \brief Destructor */ QInterProcessChannel::~QInterProcessChannel() { while ( isRunning() ) quit(); close(); } /*! \return Wether the instance has a server role */ bool QInterProcessChannel::isServer() const { return pServer; } /*! \return The current buffered message */ QString QInterProcessChannel::messageBuffer() const { return sMsg; } /*! \brief Sets a buffered message */ void QInterProcessChannel::setMessageBuffer(const QString& s) { sMsg = s; } /*! \overload Sends the content of the current message buffer */ void QInterProcessChannel::sendMessage() { sendMessage(sMsg); sMsg.clear(); } /*! \overload */ void QInterProcessChannel::sendMessage(const QString& s) { sendMessage(s.toLocal8Bit()); } /*! \brief Send a message to server instance */ void QInterProcessChannel::sendMessage(const QByteArray& msg) { if ( !pServer && msg.count() ) { //qDebug("Sending msg : %s", msg.constData()); QTcpSocket *pSocket = new QTcpSocket(this); pSocket->connectToHost(m_addr, m_port); pSocket->waitForConnected(WAIT_TIMEOUT); pSocket->write(msg); pSocket->waitForBytesWritten(WAIT_TIMEOUT); } else { //qWarning("Empty messages are not carried out..."); } } /*! \brief Closes the communication channel \see reconnect() */ void QInterProcessChannel::close() { if ( pServer ) { pServer->close(); delete pServer; pServer = 0; QFile::remove(rcFile); } } /*! \brief Attemps to reconnect When the server instance is closed (or crashes...) the connectionLost() signal is emitted. As an alternative to closing the client instances it is possible to try a reconnection so that one of theclient will become a server. \note When several clients are running side by side this function is very likely to cause a fork and create several (independant) clients whose only one will be reachable by newer clients... \see connectionLost() */ void QInterProcessChannel::reconnect() { //qDebug("attempting to reconnect"); init(); } /*! \internal */ void QInterProcessChannel::run() { /* There we check that the server lives... If connection fails notify it... */ if ( pServer ) return; //qDebug("timer setup..."); pServerTimer = new QTimer; pServerTimer->setInterval(100); pServerTimer->setSingleShot(false); connect(pServerTimer, SIGNAL( timeout() ), this , SLOT ( check() ) ); pServerTimer->start(); exec(); } /*! \internal */ void QInterProcessChannel::check() { //qDebug("checking connection..."); QTcpSocket *pSocket = new QTcpSocket(this); pSocket->connectToHost(m_addr, m_port); if ( pSocket->error() != -1 ) { emit connectionLost(); return; } pSocket->waitForConnected(WAIT_TIMEOUT); if ( pSocket->error() != -1 ) { emit connectionLost(); return; } } /*! \internal */ void QInterProcessChannel::init() { while ( isRunning() ) quit(); if ( pServerTimer ) { pServerTimer->stop(); delete pServerTimer; pServerTimer = 0; } bool ok = true; m_port = 0; m_addr = QHostAddress::LocalHost; pServer = new QTcpServer(this); pServer->listen(m_addr, m_port); connect(pServer , SIGNAL( newConnection() ), this , SLOT ( connection() ) ); if ( QFile::exists(rcFile) ) { /* found a server config file, let us assume it is from a running server */ //qDebug("checking old server..."); QSettings conf(rcFile, QSettings::IniFormat); m_port = conf.value("port").toUInt(); m_addr = QHostAddress(conf.value("address").toString()); QTcpSocket *pSocket = new QTcpSocket(this); if ( !m_addr.isNull() && m_port ) { pSocket->connectToHost(m_addr, m_port); ok = pSocket->waitForConnected(WAIT_TIMEOUT); if ( ok ) ok &= (bool)pSocket->write("--check"); if ( ok ) ok &= (bool)pSocket->waitForBytesWritten(WAIT_TIMEOUT); if ( ok ) ok &= (bool)pSocket->waitForReadyRead(WAIT_TIMEOUT); if ( ok ) ok &= (pSocket->readAll() == "[ALIVE]"); } else { ok = false; } if ( !ok ) { QFile::remove(rcFile); } pSocket->disconnectFromHost(); delete pSocket; } if ( !QFile::exists(rcFile) ) { // no server found... Create one //qDebug("setting up new server..."); m_port = pServer->serverPort(); m_addr = pServer->serverAddress(); QSettings conf(rcFile, QSettings::IniFormat); conf.setValue("port", m_port); conf.setValue("address", m_addr.toString()); emit gotServerRole(); emit serverRoleChanged(true); } else { // server found we'll hook on it later on... pServer->close(); pServer = 0; emit serverRoleChanged(false); } start(); } /*! \internal */ void QInterProcessChannel::message(const QString& msg, QManagedSocket *s) { if ( !pServer ) return; //qDebug("message from Inter Process channel : %s", qPrintable(msg)); QStringList argv = QManagedRequest::splitArguments(msg); const QString cmd = argv.at(0); //const int argc = argv.count(); if ( cmd == "--check" ) { s->send("[ALIVE]"); } else if ( cmd == "--request" ) { argv.removeAt(0); emit request(argv); } else { emit message(msg); } } /*! \brief internal */ void QInterProcessChannel::connection() { if ( !pServer ) return; //qDebug("incoming Inter Process connection"); while ( pServer->hasPendingConnections() ) { QManagedSocket *s = new QManagedSocket(pServer->nextPendingConnection(), this); connect(s , SIGNAL( message(QString, QManagedSocket*) ), this, SLOT ( message(QString, QManagedSocket*) ) ); } } qnapi-0.1.9/src/qcumber/qsingleapplication.h0000644000174100017410000000431312567301464021012 0ustar jenkinsjenkins/**************************************************************************** ** ** Copyright (C) 2006-2008 fullmetalcoder ** ** This file is part of the Edyuk project ** ** This file may be used under the terms of the GNU General Public License ** version 2 as published by the Free Software Foundation and appearing in the ** file GPL.txt included in the packaging of this file. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ****************************************************************************/ #ifndef _QSINGLE_APPLICATION_H_ #define _QSINGLE_APPLICATION_H_ #include "qcumber.h" /*! \file qsingleapplication.h \brief Definition of the QSingleApplication class. */ #include class QInterProcessChannel; class QCUMBER_EXPORT QSingleApplication : public QApplication { Q_OBJECT public: enum InstanciationPolicy { None, ForwardArguments }; enum MessagingPolicy { Ignore, Events, Signals }; QSingleApplication(int& argc, char **argv, bool useGui, const QString & appName); virtual ~QSingleApplication(); bool isInstanceAllowed() const; MessagingPolicy messagingPolicy() const; void setMessagingPolicy(MessagingPolicy p); InstanciationPolicy instanciationPolicy() const; void setInstanciationPolicy(InstanciationPolicy p); public slots: virtual int exec(); void sendRequest(const QString& s); void sendRequest(const QStringList& l); signals: void request(const QString& s); protected: virtual bool event(QEvent *e); protected slots: virtual void message(const QString& msg); virtual void request(const QStringList& r); private: QInterProcessChannel *pChannel; MessagingPolicy m_messaging; InstanciationPolicy m_instanciation; }; #endif // !_QSINGLE_APPLICATION_H_ qnapi-0.1.9/src/qcumber/qmanagedsocket.h0000644000174100017410000000254312567301464020115 0ustar jenkinsjenkins/**************************************************************************** ** ** Copyright (C) 2006-2008 fullmetalcoder ** ** This file is part of the Edyuk project ** ** This file may be used under the terms of the GNU General Public License ** version 2 as published by the Free Software Foundation and appearing in the ** file GPL.txt included in the packaging of this file. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ****************************************************************************/ #ifndef _QMANAGED_SOCKET_H_ #define _QMANAGED_SOCKET_H_ #include "qcumber.h" /*! \file qmanagedsocket.h \brief Definition of the QManagedSocket class. */ #include class QTcpSocket; class QCUMBER_EXPORT QManagedSocket : public QObject { Q_OBJECT public: QManagedSocket(QTcpSocket *s, QObject *p = 0); virtual ~QManagedSocket(); virtual void send(const QByteArray& msg); signals: void message(const QString& m); void message(const QString& m, QManagedSocket *s); protected slots: virtual void readyRead(); private: QTcpSocket *pSocket; }; #endif // _QMANAGED_SOCKET_H_ qnapi-0.1.9/src/qcumber/qinterprocesschannel_win32.h0000644000174100017410000000353612567301464022406 0ustar jenkinsjenkins/**************************************************************************** ** ** Copyright (C) 2008 Krzemin ** ** This file may be used under the terms of the GNU General Public License ** version 2 as published by the Free Software Foundation and appearing in the ** file GPL.txt included in the packaging of this file. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ****************************************************************************/ #ifndef _QINTER_PROCESS_CHANNEL_H_ #define _QINTER_PROCESS_CHANNEL_H_ #include "qcumber.h" #include "qmanagedrequest.h" #include #include #include #include #include /*! \file qinterprocesschannel.h \brief Definition of the QInterProcessChannel class. */ // buffer size for input/output pipes static const int bufferSize = 2048; class QCUMBER_EXPORT QInterProcessChannel : public QThread { Q_OBJECT public: QInterProcessChannel(QObject *p = 0); virtual ~QInterProcessChannel(); bool isServer() const; QString messageBuffer() const; public slots: void close(); void sendMessage(); void sendMessage(const QString& s); void sendMessage(const QByteArray& b); void setMessageBuffer(const QString& s); signals: void message(const QString& s); void request(const QStringList& l); protected: virtual void run(); private slots: void init(); private: QString uniqPrefix, pipeName, globalMutexStr, blockerMutexStr; QString sMsg; bool serverMode; }; #endif // _QINTER_PROCESS_CHANNEL_H_ qnapi-0.1.9/src/qcumber/qmanagedrequest.h0000644000174100017410000000313012567301464020306 0ustar jenkinsjenkins/**************************************************************************** ** ** Copyright (C) 2006-2008 fullmetalcoder ** ** This file is part of the Edyuk project ** ** This file may be used under the terms of the GNU General Public License ** version 2 as published by the Free Software Foundation and appearing in the ** file GPL.txt included in the packaging of this file. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ****************************************************************************/ #ifndef _QMANAGED_REQUEST_H_ #define _QMANAGED_REQUEST_H_ #include "qcumber.h" /*! \file qmanagedrequest.h \brief Definition of the QManagedRequest class. */ #include class QCUMBER_EXPORT QManagedRequest { public: QManagedRequest(const QString& cmd, const QStringList& args = QStringList()); QManagedRequest(const QManagedRequest& r); ~QManagedRequest(); static QManagedRequest createSystemRequest(const QStringList& args, int id = -1); QManagedRequest& operator = (const QManagedRequest& r); QString toString() const; static QManagedRequest fromString(const QString& s); static QStringList splitArguments(const QString& s); static QByteArray joinArguments(const QString& cmd, const QStringList& l); private: QString sCommand; QStringList lArguments; }; #endif // _QMANAGED_REQUEST_H_ qnapi-0.1.9/src/qcumber/qinterprocesschannel_win32.cpp0000644000174100017410000001523512567301464022740 0ustar jenkinsjenkins/**************************************************************************** ** ** Copyright (C) 2008 Krzemin ** ** This file may be used under the terms of the GNU General Public License ** version 2 as published by the Free Software Foundation and appearing in the ** file GPL.txt included in the packaging of this file. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ****************************************************************************/ #include "qinterprocesschannel_win32.h" /*! \class QInterProcessChannel \brief A generic network-based communication channel for applications. QInterProcessChannel offers communication facilities between several instances of the same application. It initializes itself so that the first created instance acts as a "server" which recieve messages from the others instances. This is particularly handy when creating a single-instance application which, for example, uses file association through a command line interface. \see QSingleApplication */ /*! \brief Constructor Check for a valid server and create one if none found. */ QInterProcessChannel::QInterProcessChannel(QObject *p) : QThread(p) { uniqPrefix = QApplication::applicationName(); pipeName = QString("\\\\.\\pipe\\%1%2").arg(uniqPrefix).arg("_uniquePipeName"); globalMutexStr = uniqPrefix + QString("_globalMutexId"); blockerMutexStr = uniqPrefix + QString("_blockerMutexId"); init(); } /*! \brief Destructor */ QInterProcessChannel::~QInterProcessChannel() { //while(isRunning()) // quit(); close(); } /*! \return Wether the instance has a server role */ bool QInterProcessChannel::isServer() const { return serverMode; } /*! \return The current buffered message */ QString QInterProcessChannel::messageBuffer() const { return sMsg; } /*! \brief Sets a buffered message */ void QInterProcessChannel::setMessageBuffer(const QString& s) { sMsg = s; } /*! \overload Sends the content of the current message buffer */ void QInterProcessChannel::sendMessage() { sendMessage(sMsg); sMsg.clear(); } /*! \overload */ void QInterProcessChannel::sendMessage(const QString& s) { sendMessage(s.toLocal8Bit()); } /*! \brief Send a message to server instance */ void QInterProcessChannel::sendMessage(const QByteArray& msg) { if(msg.count()) { // a lot of simultaneous clients cause that pipe sometimes omits // some of these clients despite results of writing functions are ok ;/ // workaround: reserve mutex, wait 100ms before every write operation HANDLE mutex = CreateMutexA(NULL, FALSE, qPrintable(blockerMutexStr)); WaitForSingleObject(mutex, INFINITE); Sleep(100); HANDLE hPipe; // loop to get pipe's handle for(;;) { hPipe = CreateFileA( qPrintable(pipeName), GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL); if(hPipe != INVALID_HANDLE_VALUE) break; if(GetLastError() != ERROR_PIPE_BUSY) { ReleaseMutex(mutex); return; } // wait max 1s and retry WaitNamedPipeA(qPrintable(pipeName), 1000); } // ok, now we have pipe's handle, we can prepare buffers and write to the pipe char buffer[bufferSize]; strncpy(buffer, msg.constData(), bufferSize); buffer[bufferSize-1] = 0; DWORD bytesWritten; bool writeSuccess = WriteFile( hPipe, buffer, strlen(buffer) + 1, &bytesWritten, NULL); if (!writeSuccess) { ReleaseMutex(mutex); return; } CloseHandle(hPipe); ReleaseMutex(mutex); } else { //qWarning("::sendMessage(%d): Empty messages are not carried out...", GetCurrentProcessId()); } } /*! \brief Closes the communication channel */ void QInterProcessChannel::close() { if(serverMode) { // if we want to quit pipe server thread, we have to send --quit message sendMessage(QString("--quit")); } } /*! \internal */ void QInterProcessChannel::run() { if(!serverMode) return; HANDLE hPipe; char buffer[bufferSize]; bool connected, readSuccess; DWORD bytesRead; // thread loop for(;;) { hPipe = CreateNamedPipeA( qPrintable(pipeName), PIPE_ACCESS_INBOUND, PIPE_TYPE_MESSAGE | PIPE_READMODE_MESSAGE | PIPE_WAIT, 1, 0, bufferSize, 0, NULL); if(hPipe == INVALID_HANDLE_VALUE) break; connected = ConnectNamedPipe(hPipe, NULL) ? TRUE : (GetLastError() == ERROR_PIPE_CONNECTED); if(!connected) { CloseHandle(hPipe); continue; } readSuccess = ReadFile( hPipe, buffer, bufferSize, &bytesRead, NULL); buffer[bufferSize - 1] = 0; if(!readSuccess || !bytesRead) { CloseHandle(hPipe); continue; } QStringList argv = QManagedRequest::splitArguments(QString(buffer)); const QString cmd = argv.at(0); // if server instance is going to suspend thread... if ( cmd == "--quit" ) { CloseHandle(hPipe); break; } else if ( cmd == "--request" ) { argv.removeAt(0); emit request(argv); } else { emit message(QString(buffer)); } CloseHandle(hPipe); } } /*! \internal */ void QInterProcessChannel::init() { //while(isRunning()) // quit(); // create global mutex to check single instance CreateMutexA(NULL, FALSE, qPrintable(globalMutexStr)); serverMode = !(GetLastError() == ERROR_ALREADY_EXISTS); // start listening thread in single instance mode if(serverMode) start(); } qnapi-0.1.9/src/qnapiconfig.cpp0000644000174100017410000004247012567301464016325 0ustar jenkinsjenkins/***************************************************************************** ** QNapi ** Copyright (C) 2008-2009 Krzemin ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation; either version 2 of the License, or ** (at your option) any later version. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** *****************************************************************************/ #include "qnapiconfig.h" QNapiConfig::QNapiConfig() { reload(); } QNapiConfig::~QNapiConfig() { if(settings) delete settings; } void QNapiConfig::reload() { if(settings) delete settings; QString localQNapiIniPath = QCoreApplication::applicationDirPath() + QDir::separator() + "qnapi.ini"; isPortableMode = QFileInfo(localQNapiIniPath).exists(); if(isPortableMode) { settings = new QSettings(localQNapiIniPath, QSettings::IniFormat); } else { settings = new QSettings(QSettings::IniFormat, QSettings::UserScope, "qnapi"); } } void QNapiConfig::save() { settings->setValue("qnapi/version", QNAPI_VERSION); settings->setValue("qnapi/firstrun", false); settings->sync(); } bool QNapiConfig::firstRun() { return settings->value("qnapi/firstrun", true).toBool(); } QString QNapiConfig::version() { return settings->value("qnapi/version", "").toString(); } QString QNapiConfig::p7zipPath() { // Odczytujemy z konfiguracji QString p7z_path = settings->value("qnapi/7z_path", "").toString(); if(!p7z_path.isEmpty() && QFileInfo(p7z_path).isExecutable()) return p7z_path; // Przeszukiwanie sciezek systemowych QString path = QProcess::systemEnvironment().filter(QRegExp("^PATH=(.*)$")).value(0); QStringList paths = path.mid(5).split(":"); paths.removeAll(""); if(paths.size() == 0) paths << "/usr/bin" << "/usr/local/bin"; #ifdef Q_OS_MAC // Pod MacOS X 7zip jest w zasobach aplikacji paths << QDir(QApplication::applicationDirPath() + "/../Resources").canonicalPath(); #endif QStringList binaries; binaries << "7z" << "7za" << "7zr" << "p7zip"; for(QStringList::iterator i = paths.begin(); i != paths.end(); i++) { for(QStringList::iterator j = binaries.begin(); j != binaries.end(); j++) { p7z_path = (*i) + "/" + (*j); if(QFileInfo(p7z_path).isExecutable()) return p7z_path; } } #ifdef Q_OS_WIN // Pod systemem Windows program 7za.exe musi byc w tym samym katalogu, // co qnapi.exe p7z_path = QFileInfo(QApplication::applicationDirPath() + "/7za.exe").absoluteFilePath(); if(QFileInfo(p7z_path).isExecutable()) return p7z_path; #endif // Jesli wszystko inne zawiodlo...;) return "7z"; } QString QNapiConfig::ffProbePath() { // Odczytujemy z konfiguracji QString ffprobe_path = settings->value("qnapi/ffprobe_path", "").toString(); if(!ffprobe_path.isEmpty() && QFileInfo(ffprobe_path).isExecutable()) return ffprobe_path; // Przeszukiwanie sciezek systemowych QString path = QProcess::systemEnvironment().filter(QRegExp("^PATH=(.*)$")).value(0); QStringList paths = path.mid(5).split(":"); paths.removeAll(""); if(paths.size() == 0) paths << "/usr/bin" << "/usr/local/bin"; #ifdef Q_OS_MAC // Pod MacOS X 7zip jest w zasobach aplikacji paths << QDir(QApplication::applicationDirPath() + "/../Resources").canonicalPath(); #endif QString binary = "ffprobe"; for(QStringList::iterator i = paths.begin(); i != paths.end(); i++) { ffprobe_path = (*i) + "/" + binary; if(QFileInfo(ffprobe_path).isExecutable()) return ffprobe_path; } #ifdef Q_OS_WIN // Pod systemem Windows program ffprobe.exe musi byc w tym samym katalogu, // co qnapi.exe ffprobe_path = QFileInfo(QApplication::applicationDirPath() + "/ffprobe.exe").absoluteFilePath(); if(QFileInfo(ffprobe_path).isExecutable()) return ffprobe_path; #endif // Jesli wszystko inne zawiodlo...;) return "ffprobe"; } void QNapiConfig::setP7zipPath(const QString & path) { settings->setValue("qnapi/7z_path", path); } void QNapiConfig::setFFProbePath(const QString & path) { settings->setValue("qnapi/ffprobe_path", path); } QString QNapiConfig::tmpPath() { QString tmpPath = settings->value("qnapi/tmp_path", QDir::tempPath()).toString(); if(!QFileInfo(tmpPath).exists() || !QFileInfo(tmpPath).isWritable()) { if(isPortableMode) { tmpPath = QDir::tempPath(); } } return tmpPath; } void QNapiConfig::setTmpPath(const QString & path) { settings->setValue("qnapi/tmp_path", path); } QString QNapiConfig::nick(const QString & engine) { QString nick = settings->value(engine + "/nick", "").toString(); // Konwersja z konfigow <= 0.1.5 if(nick.isEmpty() && (engine == "NapiProjekt")) { nick = settings->value("qnapi/nick", "").toString(); if(!nick.isEmpty()) { settings->remove("qnapi/nick"); setNick("NapiProjekt", nick); } } return nick; } void QNapiConfig::setNick(const QString & engine, const QString & nick) { settings->setValue(engine + "/nick", nick); } QString QNapiConfig::pass(const QString & engine) { QString pass = settings->value(engine + "/pass", "").toString(); if(pass.isEmpty() && (engine == "NapiProjekt")) { pass = settings->value("qnapi/pass", "").toString(); if(!pass.isEmpty()) { settings->remove("qnapi/pass"); setPass("NapiProjekt", pass); } } return pass; } void QNapiConfig::setPass(const QString & engine, const QString & pass) { settings->setValue(engine + "/pass", pass); } QString QNapiConfig::language() { return settings->value("qnapi/language", "pl").toString(); } void QNapiConfig::setLanguage(const QString & language) { settings->setValue("qnapi/language", language); } QString QNapiConfig::languageBackup() { return settings->value("qnapi/language_backup", "en").toString(); } void QNapiConfig::setLanguageBackup(const QString & language) { settings->setValue("qnapi/language_backup", language); } bool QNapiConfig::noBackup() { return settings->value("qnapi/no_backup", false).toBool(); } void QNapiConfig::setNoBackup(bool noBackup) { settings->setValue("qnapi/no_backup", noBackup); } #ifdef Q_OS_MAC bool QNapiConfig::showDockIcon() { const bool show_default = true; QString infoPlistPath = QFileInfo(QApplication::applicationDirPath() + "/../Info.plist").canonicalFilePath(); QFile plistFile(infoPlistPath); QDomDocument doc; if(!doc.setContent(&plistFile)) return show_default; if(!doc.hasChildNodes()) return show_default; QDomNodeList nodes = doc.childNodes(); QDomNode node; int i; for(i = 0; i < nodes.size(); ++i) { node = nodes.at(i); if(node.nodeName() == "plist") break; } if(i == nodes.size()) return show_default; if(!node.hasChildNodes()) return show_default; nodes = node.childNodes(); for(i = 0; i < nodes.size(); ++i) { node = nodes.at(i); if(node.nodeName() == "dict") break; } if(i == nodes.size()) return show_default; if(!node.hasChildNodes()) return show_default; nodes = node.childNodes(); for(i = 0; i < nodes.size(); ++i) { node = nodes.at(i); QString subText; if(node.hasChildNodes()) { subText = node.childNodes().at(0).toText().data(); } if(subText == "LSUIElement") break; } if(i < nodes.size()) { node = node.nextSibling(); return (node.nodeName() != "true"); } return show_default; } void QNapiConfig::setShowDockIcon(bool show) { QString infoPlistPath = QFileInfo(QApplication::applicationDirPath() + "/../Info.plist").canonicalFilePath(); QFile plistFile(infoPlistPath); QDomDocument doc; if(!doc.setContent(&plistFile) || !doc.hasChildNodes()) return; QDomNodeList nodes = doc.childNodes(); QDomNode node; int i; for(i = 0; i < nodes.size(); ++i) { node = nodes.at(i); if(node.nodeName() == "plist") break; } if((i == nodes.size()) || !node.hasChildNodes()) return; nodes = node.childNodes(); for(i = 0; i < nodes.size(); ++i) { node = nodes.at(i); if(node.nodeName() == "dict") break; } if((i == nodes.size()) || !node.hasChildNodes()) return; nodes = node.childNodes(); for(i = 0; i < nodes.size(); ++i) { node = nodes.at(i); QString subText; if(node.hasChildNodes()) { subText = node.childNodes().at(0).toText().data(); } if(subText == "LSUIElement") break; } if(i >= nodes.size()) return; node = node.nextSibling(); node.toElement().setTagName(show ? "false" : "true"); QString modifiedContent = doc.toString(4); plistFile.close(); if(!plistFile.open(QIODevice::WriteOnly | QIODevice::Truncate)) return; QTextStream plistStream(&plistFile); plistStream << modifiedContent; plistFile.close(); } #endif QList > QNapiConfig::engines() { QList inList = settings->value("qnapi/engines").toList(); QList > map; QSet names; foreach(QVariant v, inList) { QStringList sl = v.toStringList(); if(sl.size() != 2) continue; QString key = sl.at(0); bool value = (sl.at(1) == "1"); map << qMakePair(key, value); names << key; } QStringList allNames; allNames << "NapiProjekt" << "Napisy24" << "OpenSubtitles"; QString name; foreach(name, allNames) { if(!names.contains(name)) { map << qMakePair(name, true); } } return map; } QStringList QNapiConfig::enginesList() { QList > map = engines(); QStringList list; for(int i = 0; i < map.size(); ++i) { QPair e = map.at(i); if(e.second) list << e.first; } if(list.isEmpty()) { list << "NapiProjekt" << "OpenSubtitles" << "Napisy24"; } return list; } void QNapiConfig::setEngines(QList > engines) { QList outList; for(int i = 0; i < engines.size(); ++i) { QPair e = engines.at(i); QStringList sl; sl << e.first << (e.second ? "1" : "0"); outList << sl; } settings->setValue("qnapi/engines", outList); } SearchPolicy QNapiConfig::searchPolicy() { return (SearchPolicy) settings->value("qnapi/search_policy", 0).toInt(); } void QNapiConfig::setSearchPolicy(SearchPolicy policy) { settings->setValue("qnapi/search_policy", policy); } DownloadPolicy QNapiConfig::downloadPolicy() { return (DownloadPolicy) settings->value("qnapi/download_policy", 1).toInt(); } void QNapiConfig::setDownloadPolicy(DownloadPolicy policy) { settings->setValue("qnapi/download_policy", policy); } bool QNapiConfig::ppEnabled() { return settings->value("qnapi/post_processing", false).toBool(); } void QNapiConfig::setPpEnabled(bool enable) { settings->setValue("qnapi/post_processing", enable); } ChangeEncodingMethod QNapiConfig::ppEncodingMethod() { if(settings->contains("qnapi/change_encoding")) { bool encodingEnabled = settings->value("qnapi/change_encoding", false).toBool(); settings->remove("qnapi/change_encoding"); ChangeEncodingMethod method = encodingEnabled ? CEM_CHANGE : CEM_ORIGINAL; setPpEncodingMethod(method); return method; } return (ChangeEncodingMethod) settings->value("qnapi/encoding_method", 0).toInt(); } void QNapiConfig::setPpEncodingMethod(ChangeEncodingMethod method) { settings->setValue("qnapi/encoding_method", method); } bool QNapiConfig::ppAutoDetectEncoding() { return settings->value("qnapi/auto_detect_encoding", true).toBool(); } void QNapiConfig::setPpAutoDetectEncoding(bool change) { settings->setValue("qnapi/auto_detect_encoding", change); } QString QNapiConfig::ppEncodingFrom() { return settings->value("qnapi/enc_from", "windows-1250").toString(); } void QNapiConfig::setPpEncodingFrom(const QString & encoding) { settings->setValue("qnapi/enc_from", encoding); } QString QNapiConfig::ppEncodingTo() { return settings->value("qnapi/enc_to", "UTF-8").toString(); } void QNapiConfig::setPpEncodingTo(const QString & encoding) { settings->setValue("qnapi/enc_to", encoding); } bool QNapiConfig::ppShowAllEncodings() { return settings->value("qnapi/show_all_encodings", false).toBool(); } void QNapiConfig::setPpShowAllEncodings(bool show) { settings->setValue("qnapi/show_all_encodings", show); } bool QNapiConfig::ppRemoveLines() { return settings->value("qnapi/remove_lines", false).toBool(); } void QNapiConfig::setPpRemoveLines(bool remove) { settings->setValue("qnapi/remove_lines", remove); } QString QNapiConfig::ppSubFormat() { return settings->value("qnapi/sub_format", "").toString(); } void QNapiConfig::setPpSubFormat(const QString & subFormat) { settings->setValue("qnapi/sub_format", subFormat); } QString QNapiConfig::ppSubExtension() { return settings->value("qnapi/sub_ext", "").toString(); } void QNapiConfig::setPpSubExtension(const QString & subExtension) { settings->setValue("qnapi/sub_ext", subExtension); } bool QNapiConfig::ppSkipConvertAds() { return settings->value("qnapi/skip_convert_ads", false).toBool(); } void QNapiConfig::setPpSkipConvertAds(bool skip) { settings->setValue("qnapi/skip_convert_ads", skip); } QStringList QNapiConfig::ppRemoveWords() { QStringList defaultRemoveWords; defaultRemoveWords << "movie info" << "synchro "; return settings->value("qnapi/remove_words", defaultRemoveWords).toStringList(); } void QNapiConfig::setPpRemoveWords(const QStringList & words) { settings->setValue("qnapi/remove_words", words); } bool QNapiConfig::changePermissions() { return settings->value("qnapi/change_permissions", false).toBool(); } void QNapiConfig::setChangePermissions(bool change) { settings->setValue("qnapi/change_permissions", change); } QString QNapiConfig::changePermissionsTo() { bool ok; int perm = settings->value("qnapi/permissions", 644).toInt(&ok); if(!ok || perm > 777) perm = 644; QString str = QString("%1").arg(perm); while(str.size() < 3) str = QString("0") + str; return str; } void QNapiConfig::setChangePermissionsTo(const QString & permissions) { bool ok; int perm = permissions.toInt(&ok); if(ok && perm <= 777) { QString str = QString("%1").arg(perm); while(str.size() < 3) str = QString("0") + str; settings->setValue("qnapi/permissions", str); } } QString QNapiConfig::previousDialogPath() { QString path = settings->value("qnapi/prev_dialog_path", "").toString(); return (QDir(path).exists() ? path : QDir::homePath()); } void QNapiConfig::setPreviousDialogPath(const QString & path) { settings->setValue("qnapi/prev_dialog_path", path); } QStringList QNapiConfig::scanFilters() { QStringList defaultScanFilters; defaultScanFilters << movieExtensionsFilter() << "*.*"; return settings->value("scan/filters", defaultScanFilters).toStringList(); } void QNapiConfig::setScanFilters(const QStringList & filters) { settings->setValue("scan/filters", filters); } QString QNapiConfig::scanSkipFilters() { return settings->value("scan/skip_filters", "PL dubbing").toString(); } void QNapiConfig::setScanSkipFilters(const QString & filters) { settings->setValue("scan/skip_filters", filters); } bool QNapiConfig::scanSkipIfSubtitlesExists() { return settings->value("scan/skip_if_subtitles_exists", false).toBool(); } void QNapiConfig::setScanSkipIfSubtitlesExists(bool skip) { settings->setValue("scan/skip_if_subtitles_exists", skip); } QString QNapiConfig::lastScanDir() { return settings->value("scan/last_scan_dir", "").toString(); } void QNapiConfig::setLastScanDir(const QString & dir) { settings->setValue("scan/last_scan_dir", dir); } QStringList QNapiConfig::movieExtensions() { QStringList exts = { "avi", "asf", "divx", "mkv", "mov", "mp4", "mpeg", "mpg", "ogm", "rm", "rmvb", "wmv" }; return exts; } QString QNapiConfig::movieExtensionsFilter() { QStringList moviePatterns; foreach(QString ext, movieExtensions()) { moviePatterns << "*." + ext; } return moviePatterns.join(" "); } QStringList QNapiConfig::subtitleExtensions() { QStringList exts = { "srt", "sub", "txt" }; return exts; } QString QNapiConfig::subtitleExtensionsFilter() { QStringList subtitlePatterns; foreach(QString ext, subtitleExtensions()) { subtitlePatterns << "*." + ext; } return subtitlePatterns.join(" "); } QNapiConfig & GlobalConfig() { static QNapiConfig cfg; return cfg; } qnapi-0.1.9/src/qmultiparthttprequest.cpp0000644000174100017410000000631212567301464020535 0ustar jenkinsjenkins/***************************************************************************** ** QNapi ** Copyright (C) 2008-2009 Krzemin ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation; either version 2 of the License, or ** (at your option) any later version. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** *****************************************************************************/ #include "qmultiparthttprequest.h" void QMultipartHttpRequest::addBoundary() { addElement(requestElement::ET_BOUNDARY); } void QMultipartHttpRequest::addEndingBoundary() { addElement(requestElement::ET_ENDING_BOUNDARY); } void QMultipartHttpRequest::addContentDisposition(const QString & contentDisposition) { addElement(requestElement::ET_CONTENT_DISPOSITION, contentDisposition.toLatin1()); } void QMultipartHttpRequest::addContentType(const QString & contentType) { addElement(requestElement::ET_CONTENT_TYPE, contentType.toLatin1()); } void QMultipartHttpRequest::addData(const QByteArray & data) { addElement(requestElement::ET_DATA, data); } void QMultipartHttpRequest::addData(const QString & data) { addElement(requestElement::ET_DATA, data.toLatin1()); } QByteArray & QMultipartHttpRequest::requestStream() { generateBoundary(); QVector::iterator el; const char *endl = "\r\n"; buffer.clear(); for(el = elements.begin(); el != elements.end(); el++) { switch((*el).type) { case requestElement::ET_CONTENT_DISPOSITION: buffer += QString("Content-Disposition: form-data; ") + (*el).elementData + endl; break; case requestElement::ET_CONTENT_TYPE: buffer += QString("Content-Type: ") + (*el).elementData + endl; break; case requestElement::ET_BOUNDARY: buffer += QString("--") + boundary + endl; break; case requestElement::ET_ENDING_BOUNDARY: buffer += endl + QString("--") + boundary + QString("--") + endl; break; case requestElement::ET_DATA: buffer += endl + (*el).elementData + endl; break; } } return buffer; } QString & QMultipartHttpRequest::boundaryTxt() { return boundary; } void QMultipartHttpRequest::generateBoundary() { bool binarySafe; QVector::iterator el; QTime midnight(0, 0, 0); qsrand(midnight.secsTo(QTime::currentTime())); do { boundary = QString::number(qrand()); binarySafe = true; for(el = elements.begin(); el != elements.end(); el++) { if((*el).elementData.indexOf(boundary) >= 0) { binarySafe = false; break; } } } while (!binarySafe); } void QMultipartHttpRequest::addElement(requestElement::elementType type, const QByteArray & data) { requestElement el; el.type = type; el.elementData = data; elements.push_back(el); } qnapi-0.1.9/src/qnapicli.cpp0000644000174100017410000002640012567301464015622 0ustar jenkinsjenkins/***************************************************************************** ** QNapi ** Copyright (C) 2008-2009 Krzemin ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation; either version 2 of the License, or ** (at your option) any later version. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** *****************************************************************************/ #include "qnapicli.h" bool QNapiCli::isCliCall(int argc, char **argv) { QString p; #ifdef Q_OS_WIN for(int i = 1; i < argc; i++) { p = argv[i]; if((p == "--quiet") || (p == "-q")) return true; } return false; #else for(int i = 1; i < argc; i++) { p = argv[i]; if(p == "--options") { return false; } if( (p == "--console") || (p == "-c") || (p == "--quiet") || (p == "-q") ) { return true; } if( (p == "--help") || (p == "-h") || (p == "--help-languages") || (p == "-hl")) { return true; } } #if defined(Q_OS_MAC) return false; #elif (defined(Q_OS_UNIX) || defined(Q_OS_LINUX)) if(getenv("DISPLAY") == 0) return true; return false; #else return false; #endif #endif } bool QNapiCli::analyze() { QString p; QStringList args = arguments(); for(int i = 1; i < args.size(); i++) { p = args[i]; if((p == "--help") || (p == "-h")) { mode = CM_HELP; return true; } else if((p == "--help-languages") || (p == "-hl")) { mode = CM_HELP_LANGUAGES; return true; } else if((p == "--console") || (p == "-c")) { if(mode == CM_UNSET) { #ifdef Q_OS_WIN mode = CM_QUIET; showPolicy = SLP_NEVER_SHOW; #else mode = CM_CONSOLE; #endif } } else if((p == "--quiet") || (p == "-q")) { mode = CM_QUIET; showPolicy = SLP_NEVER_SHOW; } else if((p == "--lang") || (p == "-l")) { ++i; if(i >= args.size()) return false; p = args[i]; lang = QNapiLanguage(p).toTwoLetter(); if(lang.isEmpty()) { printCli(QString("Niepoprawny kod jezykowy: %1").arg(p)); return false; } } else if((p == "--lang-backup") || (p == "-lb")) { ++i; if(i >= args.size()) return false; p = args[i]; langBackup = QNapiLanguage(p).toTwoLetter(); langBackupPassed = true; } else if((p == "--show-list") || (p == "-s")) { if(mode != CM_QUIET) showPolicy = SLP_SHOW; } else if((p == "--dont-show-list") || (p == "-d")) { showPolicy = SLP_NEVER_SHOW; } else if(QFileInfo(p).isFile()) { movieList << p; } } #if (defined(Q_OS_UNIX) || defined(Q_OS_LINUX)) if((getenv("DISPLAY") == 0) && (mode == CM_UNSET)) mode = CM_CONSOLE; #endif return true; } int QNapiCli::exec() { if(!analyze()) return EC_CMD_LINE_ARG_PARSING_ERROR; if(mode == CM_UNSET) return 1; if(mode != CM_QUIET) printHeader(); if(mode == CM_HELP_LANGUAGES) { printHelpLanguages(); return EC_OK; } if((mode == CM_CONSOLE || mode == CM_QUIET) && (movieList.isEmpty())) { printCli("Nie znaleziono pliku!"); return EC_MOVIE_FILE_NOT_FOUND; } if(mode == CM_HELP) { printHelp(); return EC_OK; } if(!QNapi::checkP7ZipPath()) { printCli("Sciezka do programu p7zip jest nieprawidlowa! Sprawdz swoje ustawienia."); return EC_P7ZIP_UNAVAILABLE; } if(!QNapi::checkTmpPath()) { printCli("Nie można pisac do katalogu tymczasowego! Sprawdz swoje ustawienia."); return EC_CANNOT_WRITE_TMP_DIR; } if(!napi.addEngines(GlobalConfig().enginesList())) { printCli(QString("Blad: ") + napi.error()); return EC_UNSUPPORTED_ENGINE; } if(lang.isEmpty()) lang = GlobalConfig().language(); if(!langBackupPassed) langBackup = GlobalConfig().languageBackup(); foreach(QString movie, movieList) { printCli(QString(QString(" * Pobieranie napisow dla '%1'")).arg(QFileInfo(movie).fileName())); napi.setMoviePath(movie); if(!napi.checkWritePermissions()) { printCli(QString(" Brak uprawnien zapisu do katalogu '%1'!").arg(QFileInfo(movie).path())); return EC_NO_WRITE_PERMISSIONS; } printCli(QString(QString(" Obliczanie sum kontrolnych..."))); napi.checksum(); bool found = false; SearchPolicy sp = GlobalConfig().searchPolicy(); foreach(QString e, napi.listLoadedEngines()) { printCli(QString(QString(" Szukanie napisow [%1] (%2)...").arg(lang, e))); found = napi.lookForSubtitles(lang, e) || found; if(sp == SP_BREAK_IF_FOUND) break; } if(!found && !langBackup.isEmpty()) { foreach(QString e, napi.listLoadedEngines()) { printCli(QString(QString(" Szukanie napisow w jezyku zapasowym [%1] (%2)...").arg(langBackup, e))); found = napi.lookForSubtitles(langBackup, e) || found; if(sp == SP_BREAK_IF_FOUND) break; } } if(!found) { printCli(QString(QString(" Nie znaleziono napisow!"))); return EC_SUBTITLES_NOT_FOUND; } int selIdx = 0; bool showList = false; bool napiShowList = napi.needToShowList(); if((mode != CM_QUIET) && (showPolicy != SLP_NEVER_SHOW)) showList = napiShowList; else if(showPolicy == SLP_SHOW) showList = true; // jesli mozna i potrzeba, listujemy dostepne napisy if(showList) { bool ok = false; printCli(QString(" 0)\tNie pobieraj napisow dla tego filmu")); printCli(" Znalezione napisy:"); int i = 1; QList list = napi.listSubtitles(); foreach(QNapiSubtitleInfo s, list) { QString resolution = ""; if(s.resolution == SUBTITLE_GOOD) resolution = " (good)"; else if(s.resolution == SUBTITLE_BAD) resolution = " (bad)"; printCli(QString(" %1)\t%2 (%3) (%4) (%5)%6") .arg(i++) .arg(s.name) .arg(s.format) .arg(s.lang) .arg(s.engine) .arg(resolution)); } while(!ok) { std::cout << " Wybierz napisy do pobrania: "; char line[8]; std::cin.getline(line, 8); selIdx = QString(line).toInt(&ok); if(!ok) { printCli(" Wpisz liczbe!"); std::cin.clear(); } else if((selIdx > list.size()) || (selIdx < 0)) { ok = false; printCli(" Wpisz liczbe z listy!"); } } --selIdx; } else { selIdx = napi.bestIdx(); } if(selIdx == -1) continue; printCli(QString(QString(" Pobieranie napisow z serwera..."))); if(!napi.download(selIdx)) { printCli(QString(QString(" Nie udalo sie pobrac napisow!"))); return EC_COULD_NOT_DOWNLOAD; } printCli(QString(QString(" Rozpakowywanie napisow..."))); if(!napi.unpack()) { printCli(QString(QString(" Nie udało sie poprawnie rozpakowac napisow!"))); return EC_COULD_NOT_UNARCHIVE; } if(napi.ppEnabled()) { printCli(QString(QString(" Przetwarzanie pobranych napisow..."))); napi.pp(); } printCli(QString(QString(" Dopasowywanie napisow..."))); if(!napi.match()) { printCli(QString(QString(" Nie udalo sie dopasowac napisow!"))); return EC_COULD_NOT_MATCH; } napi.cleanup(); } return EC_OK; } void QNapiCli::printHeader() { printCli(QString("QNapi %1, %2\n") .arg(QNAPI_DISPLAYABLE_VERSION) .arg(QNAPI_URL)); } void QNapiCli::printHelp() { printCli(QString("QNapi rozprowadzany jest na warunkach licencji GNU General Public License v2.\n")); printCli(QString("Skladnia: %1 [opcje] [lista plikow]").arg(QFileInfo(arguments().at(0)).fileName())); printCli(QString("Dostepne opcje:")); printCli(QString(" -c, --console pobieranie napisow z konsoli")); printCli(QString(" -q, --quiet pobiera napisy nie wypisujac zadnych komunikatow")); printCli(QString(" ani nie pokazujac zadnych okien (implikuje -d)\n")); printCli(QString(" -s, --show-list pokazuj liste napisow (dziala tylko z -c)")); printCli(QString(" -d, --dont-show-list nie pokazuj listy napisow (dziala tylko z -c)\n")); printCli(QString(" -l, --lang [jezyk] preferowany jezyk napisow")); printCli(QString(" -lb,--lang-backup [jezyk] zapasowy jezyk napisow\n")); printCli(QString(" -o, --options wywoluje okno konfiguracji programu (tylko GUI)\n")); printCli(QString(" -h, --help pokazuje tekst pomocy")); printCli(QString(" -hl,--help-languages listuje jezyki, w jakich mozna pobierac napisy\n")); } void QNapiCli::printHelpLanguages() { printCli(QString("Oto lista rozpoznawanych przez QNapi jezykow i odpowiadajacym")); printCli(QString("im dwuliterowych kodow:\n")); QNapiLanguage L, LB; QStringList langs = L.listLanguages(); foreach(QString lang, langs) { L.setLanguage(lang); printCli(QString(" %1 - %2").arg(L.toTwoLetter()).arg(lang)); } L.setLanguage(GlobalConfig().language()); LB.setLanguage(GlobalConfig().languageBackup()); printCli(QString("\nAktualnie ustawiony domyslny jezyk napisow: %1 (%2)") .arg(L.toFullName()).arg(L.toTwoLetter())); if(LB.toFullName().isEmpty()) { printCli(QString("Brak ustawionego zapasowego jezyka napisow")); } else { printCli(QString("Aktualnie ustawiony zapasowy jezyk napisow: %1 (%2)") .arg(LB.toFullName()).arg(LB.toTwoLetter())); } } void QNapiCli::printCli(const QString & string) { if(mode != CM_QUIET) std::cout << string.toStdString() << std::endl; } qnapi-0.1.9/src/qnapilanguage.cpp0000644000174100017410000001027312567301464016637 0ustar jenkinsjenkins/***************************************************************************** ** QNapi ** Copyright (C) 2008-2009 Krzemin ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation; either version 2 of the License, or ** (at your option) any later version. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** *****************************************************************************/ #include "qnapilanguage.h" QNapiLanguage::QNapiLanguage(QString source) : QObject(0) { fill_tables(); setLanguage(source); } void QNapiLanguage::setLanguage(QString source) { idx = -1; if(source.length() == 2) { idx = codes2l.indexOf(source.toLower()); } else if(source.length() == 3) { idx = codes3l.indexOf(source.toLower()); } else { idx = names.indexOf(source); } } QString QNapiLanguage::toTwoLetter() { if(idx > -1) { return codes2l.at(idx); } return ""; } QString QNapiLanguage::toTriLetter() { if(idx > -1) { return codes3l.at(idx); } return ""; } QString QNapiLanguage::toFullName() { if(idx > -1) { return names.at(idx); } return ""; } QStringList QNapiLanguage::listLanguages() { return names; } void QNapiLanguage::fill_tables() { codes2l << "sq"; codes3l << "alb"; names << tr("Albański"); codes2l << "en"; codes3l << "eng"; names << tr("Angielski"); codes2l << "ar"; codes3l << "ara"; names << tr("Arabski"); codes2l << "bg"; codes3l << "bul"; names << tr("Bułgarski"); codes2l << "zh"; codes3l << "chi"; names << tr("Chiński"); codes2l << "hr"; codes3l << "hrv"; names << tr("Chorwacki"); codes2l << "cs"; codes3l << "cze"; names << tr("Czeski"); codes2l << "da"; codes3l << "dan"; names << tr("Duński"); codes2l << "et"; codes3l << "est"; names << tr("Estoński"); codes2l << "fi"; codes3l << "fin"; names << tr("Fiński"); codes2l << "fr"; codes3l << "fre"; names << tr("Francuski"); codes2l << "gl"; codes3l << "glg"; names << tr("Galicyjski"); codes2l << "el"; codes3l << "ell"; names << tr("Grecki"); codes2l << "he"; codes3l << "heb"; names << tr("Hebrajski"); codes2l << "es"; codes3l << "spa"; names << tr("Hiszpanski"); codes2l << "nl"; codes3l << "dut"; names << tr("Holenderski"); codes2l << "id"; codes3l << "ind"; names << tr("Indonezyjski"); codes2l << "ja"; codes3l << "jpn"; names << tr("Japoński"); codes2l << "ko"; codes3l << "kor"; names << tr("Koreański"); codes2l << "mk"; codes3l << "mac"; names << tr("Macedoński"); codes2l << "de"; codes3l << "ger"; names << tr("Niemiecki"); codes2l << "no"; codes3l << "nor"; names << tr("Norweski"); codes2l << "oc"; codes3l << "oci"; names << tr("Oksytański"); codes2l << "fa"; codes3l << "per"; names << tr("Perski (farsi)"); codes2l << "pl"; codes3l << "pol"; names << tr("Polski"); codes2l << "pt"; codes3l << "por"; names << tr("Portugalski"); codes2l << "pb"; codes3l << "pob"; names << tr("Portugalski-BR"); codes2l << "ru"; codes3l << "rus"; names << tr("Rosyjski"); codes2l << "ro"; codes3l << "rum"; names << tr("Rumuński"); codes2l << "sr"; codes3l << "scc"; names << tr("Serbski"); codes2l << "sl"; codes3l << "slv"; names << tr("Słoweński"); codes2l << "sv"; codes3l << "swe"; names << tr("Szwedzki"); codes2l << "sk"; codes3l << "slo"; names << tr("Słowacki"); codes2l << "tr"; codes3l << "tur"; names << tr("Turecki"); codes2l << "vi"; codes3l << "vie"; names << tr("Wietnamski"); codes2l << "hu"; codes3l << "hun"; names << tr("Węgierski"); codes2l << "it"; codes3l << "ita"; names << tr("Włoski"); } qnapi-0.1.9/src/synchttp.cpp0000644000174100017410000000244212567301464015676 0ustar jenkinsjenkins/***************************************************************************** ** QNapi ** Copyright (C) 2008-2009 Krzemin ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation; either version 2 of the License, or ** (at your option) any later version. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** *****************************************************************************/ #include "synchttp.h" SyncHTTP::SyncHTTP() : manager(this) {} QNetworkReply* SyncHTTP::syncGet(const QNetworkRequest & req) { QNetworkReply *reply = manager.get(req); connect(reply, SIGNAL(finished()), &loop, SLOT(quit())); connect(reply, SIGNAL(error(QNetworkReply::NetworkError)), &loop, SLOT(quit())); loop.exec(); return reply; } QNetworkReply* SyncHTTP::syncPost(const QNetworkRequest & req, const QByteArray& data) { QNetworkReply *reply = manager.post(req, data); connect(reply, SIGNAL(finished()), &loop, SLOT(quit())); connect(reply, SIGNAL(error(QNetworkReply::NetworkError)), &loop, SLOT(quit())); loop.exec(); return reply; } qnapi-0.1.9/src/qnapiopendialog.cpp0000644000174100017410000000733312567301464017200 0ustar jenkinsjenkins/***************************************************************************** ** QNapi ** Copyright (C) 2008-2009 Krzemin ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation; either version 2 of the License, or ** (at your option) any later version. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** *****************************************************************************/ #include "qnapiopendialog.h" QNapiOpenDialog::QNapiOpenDialog(QWidget * parent, const QString & caption, const QString & init_path, FilterMode filterMode) : QFileDialog(parent) { setAttribute(Qt::WA_QuitOnClose, false); setWindowTitle(caption); if(filterMode == Movies) { setNameFilter(tr("Filmy (%1);;Wszystkie pliki (*.*)").arg(GlobalConfig().movieExtensionsFilter())); } else if(filterMode == Subtitles) { setNameFilter(tr("Napisy (%1);;Wszystkie pliki (*.*)").arg(GlobalConfig().subtitleExtensionsFilter())); } if(QFileInfo(init_path).isDir()) setDirectory(init_path); else setDirectory(QDir::currentPath()); QStringList sideUrls; #ifdef Q_OS_MAC sideUrls << "/Volumes"; #endif sideUrls << QString(QDir::homePath() + "/Movies") << QString(QDir::homePath() + "/movies") << QString(QDir::homePath() + "/Video") << QString(QDir::homePath() + "/video") << QString(QDir::homePath() + "/Filmy") << QString(QDir::homePath() + "/filmy") << QString(QDir::homePath() + "/Wideo") << QString(QDir::homePath() + "/wideo"); QList urls = sidebarUrls(); foreach(QString sideUrl, sideUrls) { if(!QDir().exists(sideUrl)) continue; QUrl url = QUrl::fromLocalFile(sideUrl); if(!urls.contains(url)) urls << url; } setSidebarUrls(urls); } bool QNapiOpenDialog::selectFile() { #if defined(Q_OS_WIN) || defined(Q_OS_MAC) files.clear(); QString file = getOpenFileName(this, windowTitle(), directory().path(),nameFilters().join("\n")); if(!file.isEmpty()) files << file; return !file.isEmpty(); #else if(!placeWindow()) return false; setFileMode(QFileDialog::ExistingFile); return exec(); #endif } bool QNapiOpenDialog::selectFiles() { #if defined(Q_OS_WIN) || defined(Q_OS_MAC) files = getOpenFileNames(this, windowTitle(), directory().path(),nameFilters().join("\n")); return !files.isEmpty(); #else if(!placeWindow()) return false; setFileMode(QFileDialog::ExistingFiles); return exec(); #endif } bool QNapiOpenDialog::selectDirectory() { #if defined(Q_OS_WIN) || defined(Q_OS_MAC) files.clear(); QString dir = getExistingDirectory(this, windowTitle(), directory().path()); if(dir == directory().path()) dir = ""; if(!dir.isEmpty()) files << dir; return !dir.isEmpty(); #else if(!placeWindow()) return false; // QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks ? setFileMode(QFileDialog::DirectoryOnly); return exec(); #endif } #if defined(Q_OS_WIN) || defined(Q_OS_MAC) QStringList QNapiOpenDialog::selectedFiles() const { return files; } #endif bool QNapiOpenDialog::placeWindow() { if(isVisible()) { raise(); return false; } QRect position = frameGeometry(); position.moveCenter(QDesktopWidget().availableGeometry().center()); move(position.topLeft()); return true; } qnapi-0.1.9/src/qnapi.h0000644000174100017410000000743212567301464014603 0ustar jenkinsjenkins/***************************************************************************** ** QNapi ** Copyright (C) 2008-2009 Krzemin ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation; either version 2 of the License, or ** (at your option) any later version. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** *****************************************************************************/ #ifndef __QNAPI__H__ #define __QNAPI__H__ #include #include "qnapiconfig.h" #include "engines/qnapiabstractengine.h" #include "engines/qnapiprojektengine.h" #include "engines/qnapisy24engine.h" #include "engines/qopensubtitlesengine.h" #include "qnapisubtitleinfo.h" // globalny menedzer pobierania napisow class QNapi { public: QNapi() {} ~QNapi(); // sprawdza sciezke do 7zipa static bool checkP7ZipPath(); // sprawdza katalog plikow tymczasowych static bool checkTmpPath(); // sprawdza czy wlaczone jest przetwarzanie napisow static bool ppEnabled(); // listuje dostępne silniki pobierania static QStringList enumerateEngines(); // wlacza silnik pobierania napisow o podanej nazwie bool addEngine(QString engine); // za jedym zamachem wlacza silniki pobierania napisow o podanych nazwach bool addEngines(QStringList engines); // ustawia sciezke do pliku z filmem void setMoviePath(QString path); // zwraca sciezke do pliku z filmem QString moviePath(); // sprawdza uprawnienia zapisu do katalogu docelowego bool checkWritePermissions(); // oblicza sume kontrolna pliku z filmem void checksum(); // szuka napisow w podanym jezyku bool lookForSubtitles(QString lang, QString engine = ""); // zwraca liste znalezionych napisow QList listSubtitles(); // decyduje (na podst. konfiguracji) czy pokazywac liste napisow bool needToShowList(); // jesli nie potrzeba pokazywac listy, zwracamy najlepszy indeks napisow int bestIdx(); // pobiera napisy o i-tym indeksie z listy subtitlesList bool download(int i); // rozpakowuje pobrane napisy, a sciezke do nich zapisuje w subtitlesTmp bool unpack(); // dopasowuje pobrane napisy bool match(); // wykonuje przetwarzanie na dopasowanych napisach void pp(); // czysci rozne smieci i pliki tymczasowe void cleanup(); // zwraca komunikat o bledzie, w przypadku niepowodzenia QString error(); // zwraca wskaznik do zaladowanego! silnika z napisami po nazwie QNapiAbstractEngine * engineByName(QString name); // na odwrot ;) QString nameByEngine(QNapiAbstractEngine * engine); // listuje zaladowane moduly pobierania QStringList listLoadedEngines(); private: // sciezka do pliku z filmem QString movie; // aktualny komunikat o bledzie QString errorMsg; // lista zaladowanych silnikow z napisami QList enginesList; // lista znalezionych napisow QList subtitlesList; // offsety w indeksach w powyzszej liscie napisow dla poszczegolnych silnikow QHash offsetsList; // wskaznik do obiektu silnika, na ktorym aktualnie pracujemy // ustawiany po wykonaniu metody download() QNapiAbstractEngine * currentEngine; // najlepszy indeks napisow int theBestIdx; }; #endif // __QNAPI__H__ qnapi-0.1.9/src/syncxmlrpc.cpp0000644000174100017410000000254512567301464016230 0ustar jenkinsjenkins/***************************************************************************** ** QNapi ** Copyright (C) 2008-2009 Krzemin ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation; either version 2 of the License, or ** (at your option) any later version. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** *****************************************************************************/ #include "syncxmlrpc.h" SyncXmlRpc::SyncXmlRpc(const QUrl & endPoint) : rpc(endPoint) {} bool SyncXmlRpc::request(const QString & method, const QVariantList & args) { rpc.call(method, args, this, SLOT(whenResponse(QVariant&)), this, SLOT(whenFault(int, const QString &))); loop.exec(); return result; } QVariant SyncXmlRpc::getResponse() const { return resp; } QVariant SyncXmlRpc::getError() const { return QString::number(error) + " " + message; } void SyncXmlRpc::whenResponse(QVariant & response) { result = true; resp = response; loop.exit(); } void SyncXmlRpc::whenFault(int err, const QString & msg) { result = false; error = err; message = msg; loop.exit(); } qnapi-0.1.9/src/encodingutils.cpp0000644000174100017410000000367012567301464016675 0ustar jenkinsjenkins#include "encodingutils.h" #include EncodingUtils::EncodingUtils() { diacritics = QString::fromUtf8("ąćęłśżźĄĆĘŁŚŻŹŠŒŽšœžŸ¥µÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿ"); replacements <<"a"<<"c"<<"e"<<"l"<<"s"<<"z"<<"z"<<"A"<<"C"<<"E"<<"L"<<"S"<<"Z"<<"Z"<<"S"<<"OE" <<"Z"<<"s"<<"oe"<<"z"<<"Y"<<"Y"<<"u"<<"A"<<"A"<<"A"<<"A"<<"A"<<"A"<<"AE"<<"C"<<"E"<<"E"<<"E"<<"E" <<"I"<<"I"<<"I"<<"I"<<"D"<<"N"<<"O"<<"O"<<"O"<<"O"<<"O"<<"O"<<"U"<<"U"<<"U"<<"U"<<"Y"<<"s"<<"a" <<"a"<<"a"<<"a"<<"a"<<"a"<<"ae"<<"c"<<"e"<<"e"<<"e"<<"e"<<"i"<<"i"<<"i"<<"i"<<"o"<<"n"<<"o"<<"o" <<"o"<<"o"<<"o"<<"o"<<"u"<<"u"<<"u"<<"u"<<"y"<<"y"; codecs << "windows-1250" << "windows-1257" << "ISO-8859-2" << "ISO-8859-13" << "ISO-8859-16" << "UTF-8"; } QString EncodingUtils::replaceDiacriticsWithASCII(const QString & str) { QString output; for (int i = 0; i < str.length(); i++) { QChar c = str[i]; int dIndex = diacritics.indexOf(c); if (dIndex < 0) { output.append(c); } else { QString replacement = replacements[dIndex]; output.append(replacement); } } return output; } QString EncodingUtils::detectBufferEncoding(const QByteArray & buffer) { QString from; int bestMatch = 0; foreach(QString codec, codecs) { QTextStream ts(buffer); ts.setCodec(qPrintable(codec)); QString encodedData = ts.readAll(); QStringList chars = QString::fromUtf8("ą/ś/ż/ć/ń/ł/ó/ę").split("/"); int i; for (i = 0; i < chars.count(); i++) { if(!encodedData.contains(chars[i], Qt::CaseInsensitive)) break; if(i + 1 > bestMatch) { bestMatch = i + 1; from = codec; } } } return from; } qnapi-0.1.9/src/version.h0000644000174100017410000000144312567301464015154 0ustar jenkinsjenkins/***************************************************************************** ** QNapi ** Copyright (C) 2008-2009 Krzemin ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation; either version 2 of the License, or ** (at your option) any later version. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** *****************************************************************************/ #ifndef __VERSION__H__ #define __VERSION__H__ #define QNAPI_VERSION "0.1.9" #define QNAPI_DISPLAYABLE_VERSION "0.1.9" #define QNAPI_URL "http://qnapi.github.io" #endif qnapi-0.1.9/src/qmultiparthttprequest.h0000644000174100017410000000332012567301464020176 0ustar jenkinsjenkins/***************************************************************************** ** QNapi ** Copyright (C) 2008-2009 Krzemin ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation; either version 2 of the License, or ** (at your option) any later version. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** *****************************************************************************/ #ifndef __QMULTIPARTHTTPREQUEST__H__ #define __QMULTIPARTHTTPREQUEST__H__ #include #include #include class QMultipartHttpRequest { public: void addBoundary(); void addEndingBoundary(); void addContentDisposition(const QString & contentDisposition); void addContentType(const QString & contentType); void addData(const QByteArray & data); void addData(const QString & data); QByteArray & requestStream(); QString & boundaryTxt(); private: struct requestElement { enum elementType { ET_CONTENT_DISPOSITION, ET_CONTENT_TYPE, ET_DATA, ET_BOUNDARY, ET_ENDING_BOUNDARY, }; elementType type; QByteArray elementData; }; void generateBoundary(); void addElement(requestElement::elementType type, const QByteArray & data = ""); QVector elements; QString boundary; QByteArray buffer; }; #endif qnapi-0.1.9/src/xmlrpc/0000755000174100017410000000000012567301464014621 5ustar jenkinsjenkinsqnapi-0.1.9/src/xmlrpc/client.h0000644000174100017410000000545512567301464016261 0ustar jenkinsjenkins// vim:tabstop=4:shiftwidth=4:expandtab:cinoptions=(s,U1,m1 // Copyright (C) 2005 Dmitry Poplavsky #ifndef CLIENT_H #define CLIENT_H #include #include #include "xmlrpc/variant.h" namespace xmlrpc { /*! \class xmlrpc::Client client.h \brief The xmlrpc::Client class provides an implementation of the XML-RPC client. The class works asynchronously, so there are no blocking functions. Each XML-RPC request has unique identifier, which is returned by xmlrpc::Client::request() and is emited with done() and failed() signals. \code client = new xmlrpc::Client(this); connect( client, SIGNAL(done( int, QVariant )), this, SLOT(processReturnValue( int, QVariant )) ); connect( client, SIGNAL(failed( int, int, QString )), this, SLOT(processFault( int, int, QString )) ); client->setHost( "localhost", 7777 ); int requestId = client->request( "sum", x, y ) \endcode After the request is finished, done() or failed() signal will be emited with the request id and return value or fault information. */ class Client : public QObject { Q_OBJECT public: Client(QObject * parent = 0); Client(const QString & hostname, quint16 port = 80, QObject * parent = 0L); void setHost ( const QString & hostname, quint16 port = 80, QString path="/" ); void setProxy ( const QString & host, int port, const QString & username = QString(), const QString & password = QString() ); void setSocket ( QTcpSocket * socket ); void setUser ( const QString & userName, const QString & password = QString() ); void setUserAgent( const QString & userAgent ); virtual ~Client(); int request( QList params, QString methodName ); /* overloaded methods */ int request( QString methodName ); int request( QString methodName, Variant param1 ); int request( QString methodName, Variant param1, Variant param2 ); int request( QString methodName, Variant param1, Variant param2, Variant param3 ); int request( QString methodName, Variant param1, Variant param2, Variant param3, Variant param4 ); signals: //! request requestId is done with return value res void done( int requestId, QVariant res ); //! request requestId is failed with fault code faultCode and fault description faultString void failed( int requestId, int faultCode, QString faultString ); //! authenticationRequired signal passed from QHttp void authenticationRequired ( const QString & hostname, quint16 port, QAuthenticator * ); //! proxyAuthenticationRequired signal passed from QHttp void proxyAuthenticationRequired(const QNetworkProxy &, QAuthenticator *); protected slots: void requestFinished(int id, bool error); private: class Private; Private *d; }; } // namespace #endif // CLIENT_H qnapi-0.1.9/src/xmlrpc/AUTHORS0000644000174100017410000000006212567301464015667 0ustar jenkinsjenkinsDmytro Poplavskiy ( Dmitry.Poplavsky@gmail.com ) qnapi-0.1.9/src/xmlrpc/client.cpp0000644000174100017410000002072312567301464016607 0ustar jenkinsjenkins// vim:tabstop=4:shiftwidth=4:foldmethod=marker:expandtab:cinoptions=(s,U1,m1 // Copyright (C) 2005 Dmitry Poplavsky #include "xmlrpc/client.h" #include "xmlrpc/request.h" #include "xmlrpc/response.h" #include #include #include //#define XMLRPC_DEBUG namespace xmlrpc { class Client::Private { public: QString hostName; quint16 port; QString path; QString userName; QString password; QString userAgent; QHttp *http; QAuthenticator proxyAuth; QMap serverResponses; QMap methodNames; // id->methodNames }; /** * Constructs a XmlRPC client. */ Client::Client(QObject * parent) : QObject( parent ) { d = new Private; d->port = 0; d->path = "/"; d->userAgent = "QXMLRPC"; d->http = new QHttp(this); connect( d->http, SIGNAL(requestFinished(int,bool)), SLOT(requestFinished(int,bool)) ); connect( d->http, SIGNAL(proxyAuthenticationRequired(const QNetworkProxy &, QAuthenticator *)), this, SIGNAL(proxyAuthenticationRequired(const QNetworkProxy &, QAuthenticator *) ) ); connect( d->http, SIGNAL( authenticationRequired ( const QString &, quint16, QAuthenticator * ) ), this, SIGNAL( authenticationRequired ( const QString &, quint16, QAuthenticator * ) ) ); } /** * Constructs a XmlRPC client for communication with XmlRPC * server running on host \a hostName \a port. */ Client::Client(const QString & hostName, quint16 port, QObject * parent) : QObject( parent ) { d = new Private; setHost( hostName, port ); //important: dissconnect all connection from http in destructor, //otherwise crashes are possible when other parts of Client::Private //is deleted before http connect( d->http, SIGNAL(requestFinished(int,bool)), SLOT(requestFinished(int,bool)) ); } /** * Destroys the XmlRPC client. */ Client::~Client() { // it's necessary to delete QHttp instance before Private instance // to be sure Client slots will not be called with already deleted Private data delete d->http; delete d; } /** * Sets the XML-RPC server that is used for requests to hostName * on port \a port and path \path. */ void Client::setHost( const QString & hostName, quint16 port, QString path ) { d->hostName = hostName; d->port = port; d->path = path; d->http->setHost( hostName, port ); } /** * Enables HTTP proxy support, using the proxy server host on port port. * username and password can be provided if the proxy server * requires authentication. */ void Client::setProxy( const QString & host, int port, const QString & userName, const QString & password ) { #ifdef XMLRPC_DEBUG qDebug() << "xmlrpc client: set proxy" << host << port << userName << password; #endif d->http->setProxy( host, port, userName, password ); } /** * Replaces the internal QTcpSocket that QHttp uses with socket. * This can be useful for adding https support with QtSslSocket. * * Check * \l{http://trolltech.com/products/qt/addon/solutions/catalog/4/Utilities/qtsslsocket/} * and QHttp::setSocket() for more information. */ void Client::setSocket( QTcpSocket * socket ) { d->http->setSocket( socket ); } /** * Set the user name userName and password password for XML-RPC * ( or http ) server that require authentication. */ void Client::setUser( const QString & userName, const QString & password ) { //d->http->setUser( userName, password ); d->userName = userName; d->password = password; } /** * Set the user agent HTTP value instead of default "QXMLRPC" */ void Client::setUserAgent( const QString & userAgent ) { d->userAgent = userAgent; } /** * Call method methodName on server side with parameters list * params. Returns id of request, used in done() and failed() * signals. * * The parameters order is changed in overloaded methods to * avoid situation when the only parameter is the list. * \code * QList parameter; * ... * int requestId = client->request( methodName, parameter ); * \endcode * This leads to this method be called, with parameter treated * as parameters list. It's possible to fix this with next code: * \code * client->request( methodName, xmlrpc::Variant(parameter) ); * \endcode * but to avoid such kind of bugs, the parameters order in * overloaded methods was changed. */ int Client::request( QList params, QString methodName ) { QBuffer *outBuffer = new QBuffer; QByteArray data = Request(methodName,params).composeRequest(); QHttpRequestHeader header("POST",d->path); header.setContentLength( data.size() ); header.setContentType("text/xml"); header.setValue( "User-Agent", d->userAgent ); header.setValue( "Connection", "Keep-Alive"); if ( !d->userName.isEmpty() ) { QByteArray authData = QString(d->userName + ":" + d->password).toUtf8(); authData = authData.toBase64(); authData = QByteArray("Basic ")+authData; header.setValue("Authorization", authData.data() ); } //header.setValue("Connection", "close"); header.setValue("host",d->hostName); //d->http->setHost( d->hostName, d->port ); int id = d->http->request( header, data, outBuffer ); d->serverResponses[id] = outBuffer; d->methodNames[id] = methodName; d->http->close(); #ifdef XMLRPC_DEBUG qDebug() << "xmlrpc request(" << id << "): " << methodName; qDebug() << Variant(params).pprint(); #endif return id; } /** * Call method methodName on server side with empty parameters * list. This is an overloaded member function, provided for * convenience. */ int Client::request( QString methodName ) { QList params; return request( params, methodName ); } /** * Call method methodName on server side with one parameter. * This is an overloaded member function, provided for * convenience. */ int Client::request( QString methodName, Variant param1 ) { QList params; params << param1; return request( params, methodName ); } /** * Call method methodName on server side with two parameters. * This is an overloaded member function, provided for * convenience. */ int Client::request( QString methodName, Variant param1, Variant param2 ) { QList params; params << param1 << param2; return request( params, methodName ); } /** * Call method methodName on server side with three parameters. * This is an overloaded member function, provided for * convenience. */ int Client::request( QString methodName, Variant param1, Variant param2, Variant param3 ) { QList params; params << param1 << param2 << param3; return request( params, methodName ); } /** * Call method methodName on server side with four parameters. * This is an overloaded member function, provided for * convenience. */ int Client::request( QString methodName, Variant param1, Variant param2, Variant param3, Variant param4 ) { QList params; params << param1 << param2 << param3 << param4; return request( params, methodName ); } void Client::requestFinished(int id, bool error) { if ( !d->serverResponses.count(id) ) { return; } #ifdef XMLRPC_DEBUG qDebug() << "request" << d->methodNames[id] << "finished, id=" << id << ", isError:" << error; #endif if ( error ) { //if ( d->serverResponses.count(id) ) d->serverResponses.take(id); emit failed(id, -32300, d->http->errorString() ); return; } if ( d->serverResponses.count(id) ) { QByteArray buf = d->serverResponses.take(id)->buffer(); //qDebug() << "xml-rpc server response:\n" << QString(buf); Response response; QString errorMessage; if ( response.setContent( buf, &errorMessage ) ) { Q_ASSERT( !response.isNull() ); if ( response.isFault() ) { qDebug() << "request failed:" << response.faultCode() << response.faultString(); emit failed(id, response.faultCode(), response.faultString() ); } else { #ifdef XMLRPC_DEBUG qDebug() << response.returnValue().pprint(); #endif emit done( id, response.returnValue() ); } } else { #ifdef XMLRPC_DEBUG qDebug() << "incorrect xmlrpc response:" << errorMessage; qDebug() << QString(buf); #endif emit failed(id, -32600, "Server error: Invalid xml-rpc. \nNot conforming to spec."); } } } } qnapi-0.1.9/src/xmlrpc/response.h0000644000174100017410000000203612567301464016631 0ustar jenkinsjenkins// vim:tabstop=4:shiftwidth=4:expandtab:cinoptions=(s,U1,m1 // Copyright (C) 2007 // Author Dmitry Poplavsky #ifndef RESPONSE_H #define RESPONSE_H #include "variant.h" namespace xmlrpc { /** * \brief The xmlrpc::Response class contains XmlRPC response * information. * * xmlrpc::Response class is usually not intended to be used * directly but from the xmlrpc::Server and xmlrpc::Client, * except of building custom server implementation. */ class Response { public: Response(); Response( const Variant& returnValue ); Response( int faultCode, const QString& faultString ); virtual ~Response(); bool isNull() const; bool isFault() const; int faultCode() const; QString faultString() const; Variant returnValue() const; bool setContent( const QByteArray& requestData, QString *errorMessage = 0 ); QByteArray composeResponse() const; private: class Private; QSharedDataPointer d; }; } // namespace xmlrpc #endif // ifndef RESPONSE_H qnapi-0.1.9/src/xmlrpc/qsyncxmlrpcclient.h0000644000174100017410000000407512567301464020562 0ustar jenkinsjenkins/***************************************************************************** ** QNapi ** Copyright (C) 2008-2009 Krzemin ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation; either version 2 of the License, or ** (at your option) any later version. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** *****************************************************************************/ #ifndef __QSYNCXMLRPCCLIENT__H__ #define __QSYNCXMLRPCCLIENT__H__ #include "client.h" #include class QSyncXmlRpcClient : public xmlrpc::Client { Q_OBJECT public: QSyncXmlRpcClient(QObject * parent = 0); QSyncXmlRpcClient( const QString & hostname, quint16 port = 80, QObject * parent = 0L); ~QSyncXmlRpcClient(); void connectSignals(); void setRequestTimeout(int t); // sync requests; returns 1 if success or 0 if fails int request(QList params, QString methodName); int request(QString methodName); int request(QString methodName, xmlrpc::Variant param1); int request(QString methodName, xmlrpc::Variant param1, xmlrpc::Variant param2); int request(QString methodName, xmlrpc::Variant param1, xmlrpc::Variant param2, xmlrpc::Variant param3); int request(QString methodName, xmlrpc::Variant param1, xmlrpc::Variant param2, xmlrpc::Variant param3, xmlrpc::Variant param4); QVariant & result(); protected slots: void requestDone(int idx, QVariant res); void requestFailed(int idx, int errorCode, QString errorString); void abort(); private: QEventLoop loop; QTimer timeoutTimer; int timeout; int requestID, status, errCode; QString errString; QVariant resultVar; }; #endif qnapi-0.1.9/src/xmlrpc/request.cpp0000644000174100017410000001017612567301464017022 0ustar jenkinsjenkins// vim:tabstop=4:shiftwidth=4:expandtab:cinoptions=(s,U1,m1 // Copyright (C) 2007 // Author Dmitry Poplavsky #include "request.h" #include using namespace xmlrpc; class Request::Private : public QSharedData { public: Private() :isNull(true) {}; Private( const Private& other ) :QSharedData(other) { isNull = other.isNull; methodName = other.methodName; parameters = other.parameters; } bool isNull; QString methodName; QList parameters; }; /** * Construct an emty XmlRPC request. */ Request::Request() { d = new Private(); } /** * Construct XmlRPC request with methon name \a methodName and * parameters list \a parameters. */ Request::Request( const QString& methodName, const QList& parameters ) { d = new Private(); d->isNull = false; d->methodName = methodName; d->parameters = parameters; } Request::~Request() { } /** * Returns true if the request is null ( not initialised ); * otherwise returns false. **/ bool Request::isNull() const { return d->isNull; } /** * Return method name of request */ QString Request::methodName() const { return d->methodName; } /** * Return parameters list of request */ QList Request::parameters() const { return d->parameters; } /** * This function parses the XML-RPC request from the byte array * \a requestData. If a parse error occurs, this function * returns false and the error message is placed in * \c{*}\a{errorMessage}. */ bool Request::setContent( const QByteArray& requestData, QString *errorMessage ) { d->isNull = true; d->methodName.clear(); d->parameters.clear(); QDomDocument doc; QString domErrorMsg; int domErrorLine; int domErrorColumn; if ( !doc.setContent( requestData, &domErrorMsg, &domErrorLine, &domErrorColumn) ) { if ( errorMessage ) { *errorMessage = QString("%1\nline: %2 column:%3")\ .arg(domErrorMsg)\ .arg(domErrorLine)\ .arg(domErrorColumn); } return false; } QDomElement methodCall = doc.firstChildElement("methodCall"); QDomElement methodNameElement = methodCall.firstChildElement("methodName"); d->methodName = methodNameElement.text(); if ( d->methodName.isEmpty() ) { if ( errorMessage ) *errorMessage = QString("Method name is missing"); return false; } QDomElement paramsElement = methodCall.firstChildElement("params"); if ( paramsElement.isNull() ) { if ( errorMessage ) *errorMessage = QString("Parameters are missing"); return false; } QDomElement paramElement = paramsElement.firstChildElement("param"); while ( !paramElement.isNull() ) { QDomElement valueElement = paramElement.firstChildElement("value"); Variant v( valueElement ); if ( !v.isValid() ) { if ( errorMessage ) { QString variableXmlText; *errorMessage = QString("Invalid parameter: %1").arg(variableXmlText); } d->parameters.clear(); return false; } d->parameters.append( v ); paramElement = paramElement.nextSiblingElement("param"); } d->isNull = false; return true; } /** * Compose XmlRPC request data. */ QByteArray Request::composeRequest() const { Q_ASSERT( !isNull() ); QDomDocument doc; QDomElement methodCall = doc.createElement("methodCall"); doc.appendChild( methodCall ); QDomElement methodNameNode = doc.createElement("methodName"); methodNameNode.appendChild( doc.createTextNode( d->methodName ) ); methodCall.appendChild( methodNameNode ); QDomElement paramsNode = doc.createElement("params"); methodCall.appendChild( paramsNode ); foreach ( Variant parameter, d->parameters ) { QDomElement paramNode = doc.createElement("param"); paramNode.appendChild( parameter.toDomElement(doc) ); paramsNode.appendChild( paramNode ); } return doc.toByteArray(2); } qnapi-0.1.9/src/xmlrpc/response.cpp0000644000174100017410000001335112567301464017166 0ustar jenkinsjenkins// vim:tabstop=4:shiftwidth=4:expandtab:cinoptions=(s,U1,m1 // Copyright (C) 2007 // Author Dmitry Poplavsky #include "response.h" #include using namespace xmlrpc; class Response::Private : public QSharedData { public: Private() :isNull(true), isFault(false), faultCode(0) {}; Private( const Private& other ) :QSharedData(other) { isNull = other.isNull; isFault = other.isFault; faultCode = other.faultCode; faultString = other.faultString; returnValue = other.returnValue; } bool isNull; bool isFault; int faultCode; QString faultString; Variant returnValue; }; /** * Construct an emty XmlRPC request. */ Response::Response() { d = new Private(); } /** * Construct XmlRPC successful response with returnValue value */ Response::Response( const Variant& returnValue ) { d = new Private(); d->isNull = false; d->isFault = false; d->returnValue = returnValue; } /** * Construct XmlRPC failed response with faultCode and * faultString values */ Response::Response( int faultCode, const QString& faultString ) { d = new Private(); d->isNull = false; d->isFault = true; d->faultCode = faultCode; d->faultString = faultString; } Response::~Response() { } /** * Returns true if the response is null ( not initialised ); * otherwise returns false. **/ bool Response::isNull() const { return d->isNull; } /** * Returns true is this response is fault response. */ bool Response::isFault() const { return d->isFault; } /** * Returns fault code assotiated with this response. * * It is valid only for fault responses. */ int Response::faultCode() const { Q_ASSERT( isFault() ); return d->faultCode; } /** * Returns fault string assotiated with this response. * * It is valid only for fault responses. */ QString Response::faultString() const { Q_ASSERT( isFault() ); return d->faultString; } /** * Returns return value assotiated with this response. * * It is valid only for not fault responses. */ Variant Response::returnValue() const { Q_ASSERT( !isFault() ); return d->returnValue; } /** * This function parses the XML-RPC response from the byte array * \a requestData. If a parse error occurs, this function * returns false and the error message is placed in * \a * errorMessage. */ bool Response::setContent( const QByteArray& responseData, QString *errorMessage ) { d->isNull = true; QDomDocument doc; QString domErrorMsg; int domErrorLine; int domErrorColumn; if ( !doc.setContent( responseData, &domErrorMsg, &domErrorLine, &domErrorColumn) ) { if ( errorMessage ) { *errorMessage = QString("%1\nline: %2 column:%3")\ .arg(domErrorMsg)\ .arg(domErrorLine)\ .arg(domErrorColumn); } return false; } QString errorString; do { QDomElement methodResponse = doc.firstChildElement("methodResponse"); if ( methodResponse.isNull() ) { errorString = "Missing methodResponse tag"; break; } QDomElement resNode = methodResponse.firstChildElement(); if ( resNode.tagName() == "params" ) { // the call was successful d->isFault = false; QDomElement paramValue = resNode.firstChild().firstChild().toElement(); d->returnValue = Variant( paramValue ); if ( !d->returnValue.isValid() ) { errorString = "Invalid return value"; break; } d->isNull = false; break; }; if ( resNode.tagName() == "fault" ) { // server returned fault code, return error id and string d->isFault = true; QDomElement paramValue = resNode.firstChildElement(); Variant res(paramValue); // should be a map if ( res.type() != QVariant::Map ) { errorString = QString("Expected struct for xmlrpc fault, received %1").arg( paramValue.firstChildElement().nodeName() ); break; } QMap map = res.toMap(); if ( !map.contains("faultCode") || !map.contains("faultString") ) { errorString = "Fault struct doesn't contain fault code or string values"; break; } d->faultCode = map["faultCode"].toInt(); d->faultString = map["faultString"].toString(); d->isNull = false; break; } errorString = QString("Unexpected tag: %1").arg( resNode.tagName() ); } while (0); if ( d->isNull ) { if ( errorMessage ) { *errorMessage = errorString; return false; } } return true; } /** * Compose XmlRPC response data. */ QByteArray Response::composeResponse() const { Q_ASSERT( !isNull() ); QDomDocument doc; QDomElement methodResponse = doc.createElement("methodResponse"); doc.appendChild( methodResponse ); if ( isFault() ) { QDomElement fault = doc.createElement("fault"); methodResponse.appendChild( fault ); QMap faultValue; faultValue[ "faultCode" ] = faultCode(); faultValue[ "faultString" ] = faultString(); fault.appendChild( Variant(faultValue).toDomElement(doc) ); } else { QDomElement params = doc.createElement("params"); methodResponse.appendChild( params ); QDomElement param = doc.createElement("param"); params.appendChild( param ); param.appendChild( d->returnValue.toDomElement(doc) ); } return doc.toByteArray(2); } qnapi-0.1.9/src/xmlrpc/variant.h0000644000174100017410000000465012567301464016443 0ustar jenkinsjenkins// vim:tabstop=4:shiftwidth=4:expandtab:cinoptions=(s,U1,m1 // Copyright (C) 2005 Dmitry Poplavsky #ifndef XMLRPC_VARIANT_H #define XMLRPC_VARIANT_H #include #include namespace xmlrpc { /*! \class xmlrpc::Variant variant.h \brief The xmlrpc::Variant class acts like a union for XML-RPC variables types. The xmlrpc::Variant class is the version of QVariant with set of types restricted to types supported by XML-RPC specification. For this purpose, the Variant( const QVariant& ) constructor is declared as private, and xmlrpc::Variant construcors defined for all the XML-RPC supported types. This allows to perform the compile time XML-RPC types checks. The xmlrpc::Variant class also provides deserialization and serialization from/to QDomElement, according to XML-RPC specification, with top DOM element. */ class Variant : public QVariant { public: Variant(); Variant( const Variant& ); Variant( const QDomElement& ); /*! Next constructors should be used to build xmlrpc::Variant values from users data, to be passed to the xmlrpc::Client::request call*/ Variant ( uint val ); Variant ( int val ); Variant ( bool val ); Variant ( double val ); Variant ( const QByteArray & val ); Variant ( const QString & val ); Variant ( const QStringList & val ); Variant ( const QDateTime & val ); Variant ( const QList & val ); Variant ( const QMap & val ); //! this variable is casted to string XML-RPC type Variant ( const QChar & c ); virtual ~Variant(); //! serialize Variant data to the QDomDocument, according to XML-RPC specification. QDomElement toDomElement( QDomDocument& ) const; QString pprint(); private: static QString encodeDateTimeIso8601(QDateTime); static QDateTime decodeDateTimeIso8601(QString, bool *ok=0); /*! decode the dom node */ static Variant decodeStruct( const QDomElement& node ); /*! decode the dom node */ static Variant decodeArray( const QDomElement& node ); /** * Variant( const QVariant& ) constructor is declared private * to prohibit casting from any QVariant type. * This allows to perform the compile time checks * for variables types, passed to xml=rpc request. */ Variant( const QVariant& ); QString pprint( int column ); }; } // namespace #endif // XMLRPC_VARIANT_H qnapi-0.1.9/src/xmlrpc/request.h0000644000174100017410000000166012567301464016465 0ustar jenkinsjenkins// vim:tabstop=4:shiftwidth=4:expandtab:cinoptions=(s,U1,m1 // Copyright (C) 2007 // Author Dmitry Poplavsky #ifndef REQUEST_H #define REQUEST_H #include "variant.h" namespace xmlrpc { /** * \brief The xmlrpc::Request class contains XmlRPC request * information. * * xmlrpc::Request class is usually not intended to be used * directly but from the xmlrpc::Server and xmlrpc::Client, * except of building custom server implementation. */ class Request { public: Request(); Request( const QString& methodName, const QList& ); ~Request(); bool isNull() const; QString methodName() const; QList parameters() const; bool setContent( const QByteArray& requestData, QString *errorMessage = 0 ); QByteArray composeRequest() const; private: class Private; QSharedDataPointer d; }; } // namespace xmlrpc #endif // ifndef REQUEST_H qnapi-0.1.9/src/xmlrpc/variant.cpp0000644000174100017410000002517012567301464016776 0ustar jenkinsjenkins// vim:tabstop=4:shiftwidth=4:foldmethod=marker:expandtab:cinoptions=(s,U1,m1 // Copyright (C) 2005 Dmitry Poplavsky #include #include #include "xmlrpc/variant.h" namespace xmlrpc { Variant::Variant() : QVariant() { } /** Constructs a copy of the variant, p, passed as the argument * to this constructor. */ Variant::Variant( const Variant& val ) : QVariant( val ) { } Variant::Variant( const QVariant& val ) : QVariant( val ) { } /** Constructs a new variant with an integer value, val. */ Variant::Variant ( int val ) : QVariant( val ) { } /** Constructs a new variant with an integer value, val. */ Variant::Variant ( uint val ) : QVariant( val ) { } /** Constructs a new variant with a boolean value, val. */ Variant::Variant ( bool val ) : QVariant( val ) { } /** Constructs a new variant with a double value, val. */ Variant::Variant ( double val ) : QVariant( val ) { } /** Constructs a new variant with an QByteArray value, val. */ Variant::Variant ( const QByteArray & val ) : QVariant( val ) { } /** Constructs a new variant with a string value, val. */ Variant::Variant ( const QString & val ) : QVariant( val ) { } /** Constructs a new variant with a strings list value, val. */ Variant::Variant ( const QStringList & val ) : QVariant( val ) { } /** Constructs a new variant with a char value, val. XmlRPC string type will be used. */ Variant::Variant ( const QChar & c ) : QVariant( QString(c) ) { } /** Constructs a new variant with a date time value, val. */ Variant::Variant ( const QDateTime & val ) : QVariant( val ) { } /** Constructs a new variant with a list value, val. */ Variant::Variant ( const QList & listVal ) : QVariant() { QList qVal; foreach( Variant val, listVal ) { qVal.append(val); } setValue(qVal); } /** Constructs a new variant with a map value, val. */ Variant::Variant ( const QMap & mapVal ) : QVariant() { QMap qVal; QMapIterator i(mapVal); while (i.hasNext()) { i.next(); qVal.insert( i.key(), i.value() ); } setValue(qVal); } /** * Constructs a new variant from XmlRPC xml element node. * note name must be "value" */ Variant::Variant( const QDomElement& node ) { Q_ASSERT( node.nodeName() == "value" ); if ( node.nodeName() == "value" ) { QDomElement data = node.firstChild().toElement(); if ( data.isNull() ) { (*this) = Variant(node.text()); } else { QString tagName = data.tagName(); QString tagText = data.text(); bool ok = true; if ( tagName == "i4" || tagName == "int" ) { (*this) = Variant( tagText.toInt(&ok) ); } else if ( tagName == "string" ) { (*this) = Variant( tagText ); } else if ( tagName == "double" ) { (*this) = Variant( tagText.toDouble(&ok) ); } else if ( tagName == "base64" ) { (*this) = Variant( QByteArray::fromBase64( tagText.toLatin1() ) ); } else if ( tagName == "boolean" ) { bool val = tagText.toInt(&ok) == 1; (*this) = Variant( val ); } else if ( tagName == "dateTime.iso8601" ) { (*this) = Variant( decodeDateTimeIso8601(tagText,&ok) ); } else if ( tagName == "struct" ) { (*this) = decodeStruct( data ); } else if ( tagName == "array" ) { (*this) = decodeArray( data ); } else { qDebug() << "unexpected node:" << tagName; (*this) = Variant(QVariant::Invalid); } } } else { qDebug() << "'value' node expected, got"< res; QDomElement member = node.firstChild().toElement(); while ( !member.isNull() ) { Q_ASSERT( member.tagName() == "member" ); QString name; Variant value; QDomElement child = member.firstChild().toElement(); while ( !child.isNull() ) { if ( child.tagName() == "name" ) { name = child.text(); } if ( child.tagName() == "value" ) value = Variant( child ); child = child.nextSibling().toElement(); } if ( !name.isNull() && value.isValid() ) { res[name] = value; } member = member.nextSibling().toElement(); } return Variant(res); } Variant Variant::decodeArray( const QDomElement& node ) { Q_ASSERT( node.tagName() == "array" ); Q_ASSERT( node.firstChildElement().tagName() == "data" ); QList res; QDomElement data = node.firstChildElement().firstChildElement(); // while ( !data.isNull() ) { if ( data.tagName() == "value" ) { res.append( Variant( data ) ); } else qDebug() << "unexpected tag:<"+data.tagName()+">, expected"; Q_ASSERT( data.tagName() == "value" ); data = data.nextSibling().toElement(); } return Variant( res ); } /** * Generate QDomElement with XmlRPC presentation of variant * value. */ QDomElement Variant::toDomElement( QDomDocument& doc ) const { Q_ASSERT( isValid() ); QDomElement valueEl = doc.createElement("value"); QDomElement data; switch ( type() ) { case Int: case UInt: data = doc.createElement("int"); data.appendChild( doc.createTextNode(toString()) ); break; case String: data = doc.createElement("string"); data.appendChild( doc.createTextNode(toString()) ); break; case Double: data = doc.createElement("double"); data.appendChild( doc.createTextNode(toString()) ); break; case DateTime: data = doc.createElement("dateTime.iso8601"); data.appendChild( doc.createTextNode( encodeDateTimeIso8601( toDateTime() ) ) ); break; case Bool: data = doc.createElement("boolean"); data.appendChild( doc.createTextNode( toBool() ? "1" : "0" ) ); break; case ByteArray: data = doc.createElement("base64"); data.appendChild( doc.createTextNode( toByteArray().toBase64() ) ); break; case List: case StringList: { data = doc.createElement("array"); QDomElement arrayData = doc.createElement("data"); data.appendChild( arrayData ); QList list = toList(); QList::iterator it; for ( it = list.begin(); it!=list.end(); ++it ) { arrayData.appendChild( Variant(*it).toDomElement(doc) ); } break; } case Map: { data = doc.createElement("struct"); QMap map = toMap(); QMap::Iterator it; for ( it = map.begin(); it!=map.end(); ++it ) { QDomElement member = doc.createElement("member"); data.appendChild( member ); QDomElement name = doc.createElement("name"); name.appendChild( doc.createTextNode( it.key() ) ); QDomElement value = Variant(it.value()).toDomElement(doc); member.appendChild( name ); member.appendChild( value ); } break; } default: { // this should never be called qWarning("type %s is not supported", typeName() ); Q_ASSERT_X( false, "Variant::toDomElement", "type not supported" ); } }; if ( !data.isNull() ) { valueEl.appendChild( data ); } return valueEl; } /** * Return human readable presentation of xmlrpc::Variant value * in JSON like format. */ QString Variant::pprint() { return pprint(0); } QString Variant::pprint( int column ) { column = qMin( column, 48 ); QStringList items; switch ( type() ) { case Int: case UInt: items << QString::number( toInt() ); break; case String: items << QString("\"%1\"").arg( toString() ); break; case Double: items << QString::number( toDouble() ); break; case DateTime: items << QString("'%1'").arg( toDateTime().toString() ); break; case Bool: items << ( toBool() ? "true" : "false" ); break; case ByteArray: { QString data = toByteArray().toBase64(); if ( data.length() > 128 ) { data = data.left(64)+"..."; } items << data; break; } case List: case StringList: { items << "[ "; QListIterator it( toList() ); while( it.hasNext() ) { QString val = Variant(it.next()).pprint( column+2 ); if ( it.hasNext() ) val += ","; items << val+" "; } items << "]"; break; } case Map: { items << "{ "; QMapIterator it(toMap()); while( it.hasNext() ) { it.next(); QString val = Variant(it.value()).pprint(column+2); if ( it.hasNext() ) val += ","; items << it.key()+"="+val+" "; } items << "}"; break; } default: items << "unexpected element " + toString(); }; QString res; int columnPos = column; foreach ( QString item, items ) { if ( columnPos + item.length() > 128 ) { // move to the new line res += "\n"; res += QString( column, ' ' ); res += item; columnPos = column + item.length(); } else { res += item; columnPos += item.length(); } } return res; } } qnapi-0.1.9/src/xmlrpc/qsyncxmlrpcclient.cpp0000644000174100017410000000741412567301464021115 0ustar jenkinsjenkins/***************************************************************************** ** QNapi ** Copyright (C) 2008-2009 Krzemin ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation; either version 2 of the License, or ** (at your option) any later version. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** *****************************************************************************/ #include "qsyncxmlrpcclient.h" QSyncXmlRpcClient::QSyncXmlRpcClient(QObject * parent) : xmlrpc::Client(parent) { timeout = 30000; // 30 s. timeoutu connectSignals(); } QSyncXmlRpcClient::QSyncXmlRpcClient(const QString & hostname, quint16 port, QObject * parent) : xmlrpc::Client(hostname, port, parent) { connectSignals(); } QSyncXmlRpcClient::~QSyncXmlRpcClient() {}; void QSyncXmlRpcClient::connectSignals() { connect(this, SIGNAL(done(int, QVariant)), this, SLOT(requestDone(int, QVariant))); connect(this, SIGNAL(failed(int, int, QString)), this, SLOT(requestFailed(int, int, QString))); connect(&timeoutTimer, SIGNAL(timeout()), this, SLOT(abort())); } void QSyncXmlRpcClient::setRequestTimeout(int t) { timeout = t; } // sync request. returns 1 if success or 0 if fails int QSyncXmlRpcClient::request( QList params, QString methodName ) { timeoutTimer.start(timeout); requestID = xmlrpc::Client::request(params, methodName); loop.exec(); return status; } // sync request. returns 1 if success or 0 if fails int QSyncXmlRpcClient::request( QString methodName ) { timeoutTimer.start(timeout); requestID = xmlrpc::Client::request(methodName); loop.exec(); return status; } // sync request. returns 1 if success or 0 if fails int QSyncXmlRpcClient::request( QString methodName, xmlrpc::Variant param1 ) { timeoutTimer.start(timeout); requestID = xmlrpc::Client::request(methodName, param1); loop.exec(); return status; } // sync request. returns 1 if success or 0 if fails int QSyncXmlRpcClient::request( QString methodName, xmlrpc::Variant param1, xmlrpc::Variant param2 ) { timeoutTimer.start(timeout); requestID = xmlrpc::Client::request(methodName, param1, param2); loop.exec(); return status; } // sync request. returns 1 if success or 0 if fails int QSyncXmlRpcClient::request( QString methodName, xmlrpc::Variant param1, xmlrpc::Variant param2, xmlrpc::Variant param3 ) { timeoutTimer.start(timeout); requestID = xmlrpc::Client::request(methodName, param1, param2, param3); loop.exec(); return status; } // sync request. returns 1 if success or 0 if fails int QSyncXmlRpcClient::request( QString methodName, xmlrpc::Variant param1, xmlrpc::Variant param2, xmlrpc::Variant param3, xmlrpc::Variant param4 ) { timeoutTimer.start(timeout); requestID = xmlrpc::Client::request(methodName, param1, param2, param3, param4); loop.exec(); return status; } QVariant & QSyncXmlRpcClient::result() { return resultVar; } void QSyncXmlRpcClient::requestDone(int idx, QVariant res) { if(idx != requestID) return; status = 1; resultVar = res; loop.exit(); } void QSyncXmlRpcClient::requestFailed(int idx, int errorCode, QString errorString) { if(idx != requestID) return; errCode = errorCode; errString = errorString; status = 0; loop.exit(); } void QSyncXmlRpcClient::abort() { status = 0; requestFailed(requestID, 0, "timeout"); loop.exit(); } qnapi-0.1.9/src/xmlrpc/COPYING.GPL0000644000174100017410000004312712567301464016304 0ustar jenkinsjenkins GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) 19yy This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) 19yy name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. qnapi-0.1.9/src/engines/0000755000174100017410000000000012567301464014744 5ustar jenkinsjenkinsqnapi-0.1.9/src/engines/qnapiabstractengine.cpp0000644000174100017410000002135712567301464021502 0ustar jenkinsjenkins/***************************************************************************** ** QNapi ** Copyright (C) 2008-2009 Krzemin ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation; either version 2 of the License, or ** (at your option) any later version. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** *****************************************************************************/ #include "qnapiabstractengine.h" #include "subconvert/subtitleconverter.h" #include "subconvert/subtitleformatsregistry.h" #include #include // ustawia sciezke do pliku filmowego void QNapiAbstractEngine::setMoviePath(const QString & path) { movie = path; } // zwraca sciezke do pliku filmowego QString QNapiAbstractEngine::moviePath() { return movie; } // ustawia sciezke do pliku z napisami void QNapiAbstractEngine::setSubtitlesPath(const QString & path) { subtitles = path; } // zwraca sciezke do pliku z napisami QString QNapiAbstractEngine::subtitlesPath() { return subtitles; } // dopasowuje napisy do pliku z filmem bool QNapiAbstractEngine::match() { QFileInfo stf(subtitlesTmp); if(!stf.exists()) return false; QString targetExtension = stf.suffix(); if(!GlobalConfig().ppSubFormat().isEmpty() && GlobalConfig().ppSubExtension().isEmpty()) { targetExtension = GlobalFormatsRegistry().select(GlobalConfig().ppSubFormat())->defaultExtension(); } else if(!GlobalConfig().ppSubExtension().isEmpty()) { targetExtension = GlobalConfig().ppSubExtension(); } QFileInfo mf(movie); subtitles = mf.path() + "/" + mf.completeBaseName() + "." + targetExtension; QFileInfo sf(subtitles); if(!QFileInfo(sf.absolutePath()).isWritable()) return false; if(QFile::exists(subtitles)) { if(!noBackup) { QString newName = mf.path() + QDir::separator() + mf.completeBaseName() + "_kopia." + sf.suffix(); if(QFile::exists(newName)) QFile::remove(newName); QFile::rename(subtitles, newName); } else QFile::remove(subtitles); } bool r = false; #ifdef Q_OS_WIN // Pod windowsem, aby "wyczyscic" atrybuty pliku, tworzymy go na nowo QFile f(subtitles), f2(subtitlesTmp); if(!f.open(QIODevice::WriteOnly) || !f2.open(QIODevice::ReadOnly)) { f.close(); } else { r = f.write(f2.readAll()) > 0; f2.close(); f.close(); } #else // pod normalnymi OS-ami nie trzeba sie gimnastykowac z atrybutami r = QFile::copy(subtitlesTmp, subtitles); // Zmiana uprawnien do pliku if(GlobalConfig().changePermissions()) { bool validPermissions; int permInt = GlobalConfig().changePermissionsTo().toInt(&validPermissions, 8); if(validPermissions) { int perm = 0; perm |= (permInt & 0700) << 2; perm |= (permInt & 0070) << 1; perm |= (permInt & 0007); changeSubtitlesPermissions(QFile::Permissions(perm)); } } #endif return r; } // Dokonuje post-przetwarzania pliku z napisami (na podstawie konfiguracji) void QNapiAbstractEngine::pp() { // Usuwanie linii z plikow z napisami if(GlobalConfig().ppRemoveLines()) { ppRemoveLinesContainingWords(GlobalConfig().ppRemoveWords()); } // Zmiana kodowania pobranych napisow switch (GlobalConfig().ppEncodingMethod()) { case CEM_REPLACE_DIACRITICS: ppReplaceDiacriticsWithASCII(); break; case CEM_CHANGE: // Jesli automatycznie nie uda mu sie wykryc kodowania, to jako kodowania // zrodlowego uzywa kodowania wybranego przez uzytkownika if (!GlobalConfig().ppAutoDetectEncoding() || !ppChangeSubtitlesEncoding(GlobalConfig().ppEncodingTo())) { ppChangeSubtitlesEncoding(GlobalConfig().ppEncodingFrom(), GlobalConfig().ppEncodingTo()); } break; case CEM_ORIGINAL: // Nie ruszaj pobranych napisów! break; } if(!GlobalConfig().ppSubFormat().isEmpty()) { SubtitleConverter sc; QString targetFormat = GlobalConfig().ppSubFormat(); sc.convertSubtitles(subtitlesTmp, targetFormat, subtitlesTmp, movie); } } QString QNapiAbstractEngine::ppDetectEncoding(const QString & fileName, int testBufferSize) { QFile f(fileName); if(!f.open(QIODevice::ReadOnly)) return ""; QByteArray testData = (testBufferSize > 0) ? f.read(testBufferSize) : f.readAll(); f.close(); return encodingUtils.detectBufferEncoding(testData); } // zamienia znaki diakrytyczne na ASCII bool QNapiAbstractEngine::ppReplaceDiacriticsWithASCII() { if(!QFileInfo(subtitlesTmp).exists()) return false; QString from = ppDetectEncoding(subtitlesTmp); if(from.isEmpty()) return false; QFile f(subtitlesTmp); if(!f.open(QIODevice::ReadOnly)) return false; QByteArray fileContent = f.readAll(); QString contentStr = QTextCodec::codecForName(qPrintable(from))->toUnicode(fileContent); f.close(); fileContent.clear(); fileContent.append(encodingUtils.replaceDiacriticsWithASCII(contentStr)); if(!f.open(QIODevice::WriteOnly)) return false; f.write(fileContent); f.close(); return true; } // Konwertuje napisy z jednego kodowania na inne bool QNapiAbstractEngine::ppChangeSubtitlesEncoding(const QString & from, const QString & to) { QFile f(subtitlesTmp); if(!f.open(QIODevice::ReadOnly)) return false; QByteArray fileContent = f.readAll(); QString contentStr = QTextCodec::codecForName(qPrintable(from))->toUnicode(fileContent); f.close(); if(to.compare("UTF-8", Qt::CaseInsensitive) != 0) { fileContent = QTextCodec::codecForName(qPrintable(to)) ->fromUnicode(contentStr.constData(), contentStr.size()); } else { fileContent.clear(); fileContent.append(contentStr); } if(!f.open(QIODevice::WriteOnly)) return false; f.write(fileContent); f.close(); return true; } // Konwertuje napisy z jednego kodowania na inne, dokonujac proby autodetekcji // kodowania zrodlowego bool QNapiAbstractEngine::ppChangeSubtitlesEncoding(const QString & to) { if(!QFileInfo(subtitlesTmp).exists()) return false; QString from = ppDetectEncoding(subtitlesTmp); if(from.isEmpty()) return false; return ppChangeSubtitlesEncoding(from, to); } // Usuwanie linii zawierajacych podane slowa z pliku z napisami bool QNapiAbstractEngine::ppRemoveLinesContainingWords(QStringList wordList) { if(!QFileInfo(subtitlesTmp).exists()) return false; wordList = wordList.filter(QRegExp("^(.+)$")); QString fromCodec = ppDetectEncoding(subtitlesTmp); if(fromCodec.isEmpty()) fromCodec = GlobalConfig().ppEncodingFrom(); QFile f(subtitlesTmp); if(!f.open(QIODevice::ReadOnly | QIODevice::Text)) return false; QList lines = f.readAll().split('\n'); QList out; foreach(QByteArray line, lines) { int i; while((i = line.indexOf('\r')) >= 0) line.remove(i, 1); QTextStream ts(line); ts.setCodec(qPrintable(fromCodec)); QString encLine = ts.readAll(); if(encLine.isEmpty()) { out << line; continue; } bool found = false; foreach(QString word, wordList) { if(encLine.contains(word, Qt::CaseInsensitive)) { found = true; break; } } if(found) continue; out << line; } f.close(); if(!f.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Truncate)) return false; foreach(QByteArray line, out) { f.write(line); f.write("\n", 1); } f.close(); return true; } #ifndef Q_OS_WIN // Zmienia uprawnienia do pliku z napisami bool QNapiAbstractEngine::changeSubtitlesPermissions(QFile::Permissions permissions) { if(!QFileInfo(subtitles).exists()) return false; return QFile::setPermissions(subtitles, permissions); } #endif // generuje nazwe dla pliku tymczasowego QString QNapiAbstractEngine::generateTmpFileName() { static bool gen_inited; if(!gen_inited) { qsrand(time(0)); gen_inited = true; } return QString("QNapi.%1.tmp").arg(qrand()); } qnapi-0.1.9/src/engines/qopensubtitlesengine.cpp0000644000174100017410000002066012567301464021723 0ustar jenkinsjenkins/***************************************************************************** ** QNapi ** Copyright (C) 2008-2009 Krzemin ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation; either version 2 of the License, or ** (at your option) any later version. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** *****************************************************************************/ #include "qopensubtitlesengine.h" #include "forms/frmopensubtitlesconfig.h" // konstruktor klasy QOpenSubtitlesEngine::QOpenSubtitlesEngine(const QString & movieFile, const QString & subtitlesFile) : QNapiAbstractEngine(movieFile, subtitlesFile), rpc(openSubtitlesXmlRpcUrl) { p7zipPath = GlobalConfig().p7zipPath(); lang = GlobalConfig().language(); noBackup = GlobalConfig().noBackup(); tmpPackedFile = QString("%1/%2").arg(tmpPath).arg(generateTmpFileName()); } // destruktor klasy QOpenSubtitlesEngine::~QOpenSubtitlesEngine() { cleanup(); if(isLogged()) logout(); } // zwraca nazwe modulu QString QOpenSubtitlesEngine::engineName() { return "OpenSubtitles"; } // zwraca informacje nt. modulu QString QOpenSubtitlesEngine::engineInfo() { return "Modul pobierania napisów z bazy www.opensubtitles.org"; } // zwraca ikone w formacie XMP QIcon QOpenSubtitlesEngine::engineIcon() { static const char *icon[]={ "16 16 14 1", ". c #000000", "h c #111111", "c c #222222", "j c #333333", "g c #444444", "l c #555555", "e c #777777", "k c #888888", "a c #999999", "b c #aaaaaa", "f c #cccccc", "i c #dddddd", "d c #eeeeee", "# c #ffffff", "................", ".##.##.##.##.##.", ".##.##.##.##.##.", "................", "................", "...a##b..cd##d..", "..ea..be.fg.hi..", "..ic..hi.ig.....", "..dh..hd.g##ij..", "..ea..ak.k..gi..", "...b##b..fd##l..", "................", "................", ".##.##.##.##.##.", ".##.##.##.##.##.", "................"}; return QIcon(QPixmap(icon)); } // zwraca czy silnik jest konfigurowalny bool QOpenSubtitlesEngine::isConfigurable() { return true; } // wywoluje okienko konfiguracji void QOpenSubtitlesEngine::configure(QWidget * parent) { frmOpenSubtitlesConfig config(parent); config.exec(); } // oblicza sume kontrolna dla pliku filmowego QString QOpenSubtitlesEngine::checksum(QString filename) { if(filename.isEmpty()) filename = movie; QFile file(filename); if(!file.open(QIODevice::ReadOnly)) return QString(""); fileSize = file.size(); quint64 hash = fileSize; quint64 tmp, i; for(tmp = 0, i = 0; i < 65536/sizeof(tmp) && file.read((char*)&tmp, sizeof(tmp)); i++, hash += tmp) ; file.seek(qMax(0, (int)((qint64)fileSize - 65536))); for(tmp = 0, i = 0; i < 65536/sizeof(tmp) && file.read((char*)&tmp, sizeof(tmp)); i++, hash += tmp) ; return (checkSum = QString("%1").arg(hash, 16, 16, QChar('0'))); } // szuka napisow bool QOpenSubtitlesEngine::lookForSubtitles(QString lang) { if(checkSum.isEmpty()) return false; if(!isLogged() && !login()) return false; subtitlesList.clear(); QVariantMap paramsMap; paramsMap["sublanguageid"] = QNapiLanguage(lang).toTriLetter(); paramsMap["moviehash"] = checkSum; paramsMap["moviebytesize"] = (int) fileSize; QVariantList requestList; requestList << paramsMap; QVariantList args; args << token << (QVariant)requestList; if(!rpc.request("SearchSubtitles", args)) return false; QVariantMap responseMap = rpc.getResponse().toMap(); if(!responseMap.contains("data")) return false; QVariantList dataList = responseMap["data"].toList(); QVariantList::iterator i; i = dataList.begin(); while(i != dataList.end()) { responseMap = (*(i++)).toMap(); if((checkSum != responseMap["MovieHash"]) && (fileSize != responseMap["MovieByteSize"])) continue; QNapiSubtitleResolution r = SUBTITLE_UNKNOWN; if(responseMap["SubBad"].toString() != "0") { r = SUBTITLE_BAD; } else if(QFileInfo(movie).completeBaseName() == QFileInfo(responseMap["SubFileName"].toString()).completeBaseName()) { r = SUBTITLE_GOOD; } else if(QRegExp(QString("^%1").arg(responseMap["MovieReleaseName"].toString()), Qt::CaseInsensitive) .exactMatch(QFileInfo(movie).completeBaseName())) { r = SUBTITLE_GOOD; } QString subtitleName = responseMap["MovieReleaseName"].toString(); if(subtitleName.isEmpty()) subtitleName = QFileInfo(movie).completeBaseName(); subtitlesList << QNapiSubtitleInfo( responseMap["ISO639"].toString(), engineName(), responseMap["IDSubtitleFile"].toString(), subtitleName.trimmed(), responseMap["SubAuthorComment"].toString(), QFileInfo(responseMap["SubFileName"].toString()).suffix(), r); } return (subtitlesList.size() > 0); } // wyniki wyszukiwania QList QOpenSubtitlesEngine::listSubtitles() { QList good, unknown, bad; foreach(QNapiSubtitleInfo n, subtitlesList) { switch(n.resolution) { case SUBTITLE_GOOD: good << n; break; case SUBTITLE_UNKNOWN: unknown << n; break; case SUBTITLE_BAD: bad << n; break; } } subtitlesList.clear(); subtitlesList << good << unknown << bad; return subtitlesList; } // Probuje pobrac napisy do filmu z serwera OpenSubtitles bool QOpenSubtitlesEngine::download(int idx) { if(idx >= subtitlesList.size()) return false; QVariantList paramsList; QVariantList requestList; QNapiSubtitleInfo s = subtitlesList.at(idx); subFileName = generateTmpFileName() + "." + s.format; paramsList << s.url; requestList << (QVariant)paramsList; QVariantList args; args << token << requestList; if(!rpc.request("DownloadSubtitles", args)) return false; QVariantMap responseMap = rpc.getResponse().toMap(); if(!responseMap.contains("data")) return false; QVariantList responseList = responseMap["data"].toList(); if(responseList.size() == 0) return false; QByteArray subtitleContent = QByteArray::fromBase64(responseList.at(0).toMap()["data"].toByteArray()); QFile file(tmpPackedFile); if(file.exists()) file.remove(); if(!file.open(QIODevice::WriteOnly)) return false; int r = file.write(subtitleContent); file.close(); return (bool)r; } // Probuje dopasowac napisy do filmu bool QOpenSubtitlesEngine::unpack() { if(!QFile::exists(tmpPackedFile)) return false; if(!QFile::exists(movie)) return false; QStringList args; args << "e" << "-y" << ("-o" + tmpPath) << tmpPackedFile; QProcess p7zip; p7zip.start(p7zipPath, args); if(!p7zip.waitForFinished()) return false; QString unpackedTmp = tmpPath + QDir::separator() + QFileInfo(tmpPackedFile).completeBaseName(); subtitlesTmp = tmpPath + QDir::separator() + subFileName; QFile::copy(unpackedTmp, subtitlesTmp); QFile::remove(unpackedTmp); return true; } void QOpenSubtitlesEngine::cleanup() { if(QFile::exists(tmpPackedFile)) QFile::remove(tmpPackedFile); if(QFile::exists(subtitlesTmp)) QFile::remove(subtitlesTmp); } bool QOpenSubtitlesEngine::login() { QString userAgent = QString("QNapi v%1").arg(QNAPI_VERSION); QVariantList args; args << QString("") << QString("") << lang.toLower() << userAgent; if(!rpc.request("LogIn", args)) return false; token = (rpc.getResponse().toMap())["token"].toString(); return !token.isEmpty(); } void QOpenSubtitlesEngine::logout() { QVariantList args; args << token; rpc.request("LogOut", args); token = ""; } qnapi-0.1.9/src/engines/qnapisy24engine.cpp0000644000174100017410000002424012567301464020472 0ustar jenkinsjenkins#include "qnapisy24engine.h" #include #include QNapisy24Engine::QNapisy24Engine(const QString & movieFile, const QString & subtitlesFile) : QNapiAbstractEngine(movieFile, subtitlesFile) { p7zipPath = GlobalConfig().p7zipPath(); lang = GlobalConfig().language(); noBackup = GlobalConfig().noBackup(); tmpPackedFile = QString("%1/%2").arg(tmpPath).arg(generateTmpFileName()); } QNapisy24Engine::~QNapisy24Engine() { cleanup(); } QString QNapisy24Engine::engineName() { return "Napisy24"; } QString QNapisy24Engine::engineInfo() { return "Modul pobierania napisów z bazy www.napisy24.pl
"; } QIcon QNapisy24Engine::engineIcon() { static const char *icon[] = { "16 16 256 2 ", " c #FFFFFF", ". c #FFFFFF", "X c #FFFFFF", "o c #FFFFFF", "O c #FFFFFF", "+ c #FFFFFF", "@ c #FFFFFF", "# c #FFFFFF", "$ c #FFFFFF", "% c #FFFFFF", "& c #FFFFFF", "* c #FFFFFF", "= c #FFFFFF", "- c #FFFFFF", "; c #FFFFFF", ": c #FFFFFF", "> c #FFFFFF", ", c #FFFFFF", "< c #FFFFFF", "1 c #FFFFFF", "2 c #FFFFFF", "3 c #FFFFFF", "4 c #FFFFFF", "5 c #FFFFFF", "6 c #FFFFFF", "7 c #FFFFFF", "8 c #FFFFFF", "9 c #FFFFFF", "0 c #FFFFFF", "q c #FFFFFF", "w c #FFFFFF", "e c #FFFFFF", "r c #FFFFFF", "t c #FDFDFD", "y c #FBFBFB", "u c #FBFBFB", "i c #FBFBFB", "p c #FBFBFB", "a c #FBFBFB", "s c #FBFBFB", "d c #FAFAFA", "f c #F8F8F8", "g c #F7F7F7", "h c #F7F6F6", "j c #F5F6F5", "k c #F2F4F3", "l c #F6F6F6", "z c #FFFFFF", "x c #FFFFFF", "c c #FCFCFC", "v c #FAFBFB", "b c #FBFBFB", "n c #FBFBFB", "m c #FAFBFB", "M c #FBFBFB", "N c #FAFAFA", "B c #F6F8F8", "V c #F4F6F7", "C c #F6F6F5", "Z c #F4F5F5", "A c #F2F2F1", "S c #EFF2F1", "D c #F3F4F4", "F c #FFFFFF", "G c #FFFFFF", "H c #FCFDFC", "J c #FAFCFB", "K c #FAFCFB", "L c #FAFCFC", "P c #FAFCFA", "I c #FAFCF9", "U c #F9FBFA", "Y c #FFFFFD", "T c #FFFFFC", "R c #F4F7F6", "E c #F7F9F6", "W c #FBFBF8", "Q c #EFF2F0", "! c #F3F4F4", "~ c #FFFFFF", "^ c #FFFFFF", "/ c #FBFCFC", "( c #F9FAF8", ") c #F9F9F7", "_ c #F7F9F7", "` c #FAFDFF", "' c #F9FCFF", "] c #FDFDFB", "[ c #C0D6E8", "{ c #BACFE5", "} c #FFFFF8", "| c #D3E1EC", " . c #799DC7", ".. c #F2F2F0", "X. c #F2F3F3", "o. c #FFFFFF", "O. c #FFFFFF", "+. c #FBFBFA", "@. c #F8F9FB", "#. c #F5F2DD", "$. c #F3CF73", "%. c #F3E4B2", "&. c #FFECBB", "*. c #BED3E6", "=. c #3D76B5", "-. c #1D5DAF", ";. c #C6D7E3", ":. c #4E84C0", ">. c #3F74B6", ",. c #F8F9F3", "<. c #F0F0F1", "1. c #FFFFFF", "2. c #FFFFFF", "3. c #FBFBFA", "4. c #F6F8FB", "5. c #F7F1DE", "6. c #F6CA48", "7. c #F2CF62", "8. c #FAD35D", "9. c #E7F0F8", "0. c #90B5D5", "q. c #5A8EC2", "w. c #6C9DCA", "e. c #3C7BBA", "r. c #6E9BCC", "t. c #FBF6F5", "y. c #EFF0F1", "u. c #FFFFFF", "i. c #FFFFFF", "p. c #FAF9F8", "a. c #F9FBFF", "s. c #FAF0D1", "d. c #F6D97D", "f. c #F7EBBE", "g. c #FFDE77", "h. c #B1CBE5", "j. c #2567B5", "k. c #6B9ECD", "l. c #3371BB", "z. c #2970B9", "x. c #3A77B8", "c. c #DDE5EA", "v. c #F5F4F3", "b. c #FEFFFF", "n. c #FFFFFF", "m. c #FAFAFA", "M. c #F7F7F7", "N. c #F7F6F4", "B. c #FAFAF9", "V. c #FAFBFA", "C. c #FEFCEF", "Z. c #CDD9E8", "A. c #6795C3", "S. c #6D97C5", "D. c #E4EBEE", "F. c #3375B9", "G. c #769FCF", "H. c #FCF9F3", "J. c #ECEDEF", "K. c #FFFFFF", "L. c #FFFFFF", "P. c #FAFAFA", "I. c #F6F7F6", "U. c #F6F7F7", "Y. c #F5F5F8", "T. c #F4F4F5", "R. c #F2F4F5", "E. c #FDFCF9", "W. c #FFFFFB", "Q. c #FFFFFD", "!. c #FFFEF8", "~. c #C2D4E6", "^. c #C7D6E6", "/. c #EDEDED", "(. c #EEEEEF", "). c #FFFFFF", "_. c #FFFFFF", "`. c #F9FAF9", "'. c #F4F6F5", "]. c #F5F7F6", "[. c #F5F7F6", "{. c #F5F7F6", "}. c #F5F7F6", "|. c #F3F6F5", " X c #F2F5F5", ".X c #F2F6F5", "XX c #F4F6F6", "oX c #FAF8F7", "OX c #F3F3F2", "+X c #E8E9EC", "@X c #EFEFF0", "#X c #FFFFFF", "$X c #FFFFFF", "%X c #F8F9F9", "&X c #F4F6F5", "*X c #F5F7F6", "=X c #F4F6F5", "-X c #F4F6F5", ";X c #F4F6F5", ":X c #F4F6F5", ">X c #F5F7F6", ",X c #F2F4F4", " , < 1 2 3 4 5 6 7 8 9 0 q w e ", "r t y u i p a s d f g h j k l z ", "x c v b n m M N B V C Z A S D F ", "G H J K L P I U Y T R E W Q ! ~ ", "^ / ( ) _ ` ' ] [ { } | ...X.o.", "O.+.@.#.$.%.&.*.=.-.;.:.>.,.<.1.", "2.3.4.5.6.7.8.9.0.q.w.e.r.t.y.u.", "i.p.a.s.d.f.g.h.j.k.l.z.x.c.v.b.", "n.m.M.N.B.V.C.Z.A.S.D.F.G.H.J.K.", "L.P.I.U.Y.T.R.E.W.Q.!.~.^./.(.).", "_.`.'.].[.{.}.|. X.XXXoXOX+X@X#X", "$X%X&X*X=X-X;X:X>X,Xerror() != QNetworkReply::NoError) return false; QByteArray respData = reply->readAll(); if (!respData.startsWith("OK-2")) return false; QFile file(tmpPackedFile); if(file.exists()) file.remove(); if(!file.open(QIODevice::WriteOnly)) return false; int r = file.write(respData.mid(respData.indexOf("||")+2)); file.close(); if (!r) return false; subtitlesList << QNapiSubtitleInfo( lang, engineName(), tmpPackedFile, QFileInfo(movie).completeBaseName(), "", "txt", SUBTITLE_UNKNOWN); return (subtitlesList.size() > 0); } QList QNapisy24Engine::listSubtitles() { return subtitlesList; } bool QNapisy24Engine::download(int idx) { Q_UNUSED(idx); return (subtitlesList.size() > 0); } bool QNapisy24Engine::unpack() { if(!QFile::exists(tmpPackedFile)) return false; if(!QFile::exists(movie)) return false; QProcess p7zip; p7zip.start(p7zipPath, QStringList() << "l" << "-slt" << tmpPackedFile); if (!p7zip.waitForFinished(5000)) return false; QString resp = QByteArray(p7zip.readAll()); #ifdef Q_OS_WIN QRegExp r("\r\nPath = ([^\r\n]*)\r\n"); #else QRegExp r("\nPath = ([^\n]*)\n"); #endif r.setPatternSyntax(QRegExp::RegExp2); if (r.lastIndexIn(resp) == -1) return false; QString subFileName = r.cap(1); subtitlesTmp = tmpPath + "/" + subFileName; if(QFile::exists(subtitlesTmp)) QFile::remove(subtitlesTmp); QStringList args; args << "e" << "-y" << ("-o" + tmpPath) << tmpPackedFile; p7zip.start(p7zipPath, args); // Rozpakowujemy napisy max w ciagu 5 sekund if(!p7zip.waitForFinished(5000)) return false; return QFile::exists(subtitlesTmp); } void QNapisy24Engine::cleanup() { if(QFile::exists(tmpPackedFile)) QFile::remove(tmpPackedFile); if(QFile::exists(subtitlesTmp)) QFile::remove(subtitlesTmp); } qnapi-0.1.9/src/engines/qnapiprojektengine.cpp0000644000174100017410000003262712567301464021357 0ustar jenkinsjenkins/***************************************************************************** ** QNapi ** Copyright (C) 2008-2009 Krzemin ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation; either version 2 of the License, or ** (at your option) any later version. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** *****************************************************************************/ #include "qnapiprojektengine.h" #include "forms/frmnapiprojektconfig.h" #include #include #include "ffprobemovieinfoparser.h" #ifdef Q_OS_WIN // for SetFileAttributes #include #endif // This sadly has to be added in order to build under VS >= 2005 #ifdef _MSC_VER // from Visual Studio 2005 onwards // https://msdn.microsoft.com/en-us/library/2ts7cx93%28v=vs.80%29.aspx #include #define snprintf _snprintf_s #endif // konstruktor klasy QNapiProjektEngine::QNapiProjektEngine(const QString & movieFile, const QString & subtitlesFile) : QNapiAbstractEngine(movieFile, subtitlesFile) { p7zipPath = GlobalConfig().p7zipPath(); nick = GlobalConfig().nick(engineName()); pass = GlobalConfig().pass(engineName()); noBackup = GlobalConfig().noBackup(); tmpPackedFile = QString("%1/%2").arg(tmpPath).arg(generateTmpFileName()); } // destruktor klasy QNapiProjektEngine::~QNapiProjektEngine() { cleanup(); } // zwraca nazwe modulu QString QNapiProjektEngine::engineName() { return "NapiProjekt"; } // zwraca informacje nt. modulu QString QNapiProjektEngine::engineInfo() { return "Modul pobierania napisów z bazy www.napiprojekt.pl"; } // zwraca ikone w formacie XMP QIcon QNapiProjektEngine::engineIcon() { static const char * const icon[] = { "16 16 5 1", " c #FFFFFF", ". c #000080", "+ c #0052CC", "@ c #005CE6", "# c #BFD9FF", " ... ", " ... . ", " ... ... ", " ... .... ", " ... .... ", " ... .... ", ".. .... ", "....+ ", " ...............", " . . . . . . . .", " ...............", " .@@####@####@@.", " .@@#@@#@#@@#@@.", " .@@#@@#@####@@.", " .@@#@@#@#@@@@@.", " ..............."}; return QIcon(QPixmap(icon)); } // zwraca czy silnik jest konfigurowalny bool QNapiProjektEngine::isConfigurable() { return true; } // wywoluje okienko konfiguracji void QNapiProjektEngine::configure(QWidget * parent) { frmNapiProjektConfig config(parent); config.exec(); } // oblicza sume kontrolna dla pliku filmowego (md5 z pierwszych 10MB pliku) QString QNapiProjektEngine::checksum(QString filename) { if(filename.isEmpty()) filename = movie; return (checkSum = checksum(filename, true)); } bool QNapiProjektEngine::lookForSubtitles(QString lang) { if(checkSum.isEmpty()) return false; subtitlesList.clear(); SyncHTTP http; QString urlTxt = napiDownloadUrlTpl.arg(npLangWrapper(lang)) .arg(checkSum) .arg(npFDigest(checkSum)) .arg(nick) .arg(pass) #ifdef Q_OS_WIN .arg("Windows"); #elif defined(Q_OS_MAC) .arg("Mac OS X"); #else .arg("Linux/UNIX"); #endif QUrl url(urlTxt); QNetworkReply *reply = http.syncGet(QNetworkRequest(url)); if(reply->error() != QNetworkReply::NoError) return false; QByteArray buffer = reply->readAll(); if(buffer.indexOf("NPc") == 0) return false; QFile file(tmpPackedFile); if(file.exists()) file.remove(); if(!file.open(QIODevice::WriteOnly)) return false; int r = file.write(buffer); file.close(); if(!r) return false; subtitlesList << QNapiSubtitleInfo( lang, engineName(), urlTxt, QFileInfo(movie).completeBaseName(), "", "txt", SUBTITLE_UNKNOWN); return (subtitlesList.size() > 0); } QList QNapiProjektEngine::listSubtitles() { return subtitlesList; } // Probuje pobrac napisy do filmu z serwera NAPI bool QNapiProjektEngine::download(int idx) { Q_UNUSED(idx) return (subtitlesList.size() > 0); } // Probuje rozpakowac napisy do filmu bool QNapiProjektEngine::unpack() { if(!QFile::exists(tmpPackedFile)) return false; if(!QFile::exists(movie)) return false; subtitlesTmp = tmpPath + "/" + checkSum + ".txt"; if(QFile::exists(subtitlesTmp)) QFile::remove(subtitlesTmp); QStringList args; args << "e" << "-y" << ("-p" + napiZipPassword) << ("-o" + tmpPath) << tmpPackedFile; QProcess p7zip; p7zip.start(p7zipPath, args); // Rozpakowujemy napisy max w ciagu 5 sekund if(!p7zip.waitForFinished(5000)) return false; return QFile::exists(subtitlesTmp); } void QNapiProjektEngine::cleanup() { if(QFile::exists(tmpPackedFile)) QFile::remove(tmpPackedFile); if(QFile::exists(subtitlesTmp)) QFile::remove(subtitlesTmp); } // Sprawdza uzytkownika w bazie bool QNapiProjektEngine::checkUser(const QString & nick, const QString & pass) { SyncHTTP http; QString urlTxt = napiCheckUserUrlTpl.arg(nick).arg(pass); QUrl url(urlTxt); QNetworkReply *reply = http.syncGet(QNetworkRequest(url)); if(reply->error() != QNetworkReply::NoError) return false; QString buffer = reply->readAll(); if(buffer.indexOf("ok") == 0) return true; return false; } // Wrzuca napisy do bazy NAPI QNapiProjektEngine::UploadResult QNapiProjektEngine::uploadSubtitles(const QString & language, const QString & nick, const QString & pass, bool correct, const QString & comment) { if(!QFile::exists(movie) || !QFile::exists(subtitles)) return NAPI_FAIL; FFProbeMovieInfoParser mip(GlobalConfig().ffProbePath()); MovieInfo movieInfo = mip.parseFile(movie); unsigned long movie_size = QFileInfo(movie).size(); QString movie_md5 = checksum(movie); QString subtitles_md5 = checksum(subtitles, false); QString newSubtitlesName = tmpPath + "/" + movie_md5 + ".txt"; if(QFile::exists(newSubtitlesName)) QFile::remove(newSubtitlesName); if(!QFile::copy(subtitles, newSubtitlesName)) return NAPI_FAIL; QString zipFileName = QFileInfo(newSubtitlesName).path() + "/" + QFileInfo(newSubtitlesName).completeBaseName() + ".zip"; if(QFile::exists(zipFileName)) QFile::remove(zipFileName); QStringList args; args << "a" << "-t7z" << "-bd" << "-y"; #ifndef Q_OS_WIN args << "-l"; #endif args << zipFileName << (QString("-p")+napiZipPassword) << newSubtitlesName; QProcess p7zip; p7zip.start(p7zipPath, args); if(!p7zip.waitForFinished()) return NAPI_FAIL; QFile::remove(newSubtitlesName); if(!QFile::exists(zipFileName)) return NAPI_FAIL; // Przygotowujemy dane do zapytania POST QMultipartHttpRequest postData; postData.addBoundary(); postData.addContentDisposition("name=\"kmt\""); postData.addData(comment); postData.addBoundary(); postData.addContentDisposition("name=\"poprawka\""); postData.addData(QString(correct ? "true" : "false")); postData.addBoundary(); postData.addContentDisposition("name=\"v\""); postData.addData(QString("other")); postData.addBoundary(); postData.addContentDisposition("name=\"l\""); postData.addData(npLangWrapper(language)); postData.addBoundary(); postData.addContentDisposition("name=\"t\""); postData.addData(npFDigest(movie_md5)); postData.addBoundary(); postData.addContentDisposition("name=\"m_filename\""); postData.addData(QFileInfo(movie).fileName()); postData.addBoundary(); postData.addContentDisposition("name=\"nick\""); postData.addData(nick); postData.addBoundary(); postData.addContentDisposition("name=\"pass\""); postData.addData(pass); postData.addBoundary(); postData.addContentDisposition("name=\"s_hash\""); postData.addData(subtitles_md5); postData.addBoundary(); postData.addContentDisposition("name=\"MAX_FILE_SIZE\""); postData.addData(QString("512000")); postData.addBoundary(); postData.addContentDisposition("name=\"plik\"; filename=\"" + QFileInfo(zipFileName).fileName() + "\""); postData.addContentType("subtitles/zip"); QFile fZip(zipFileName); if(!fZip.open(QIODevice::ReadOnly)) return NAPI_FAIL; postData.addData(fZip.readAll()); postData.addEndingBoundary(); fZip.close(); QFile::remove(zipFileName); QByteArray data = postData.requestStream(); QString movie_fps = QString::number((int)ceil(movieInfo.frameRate * 100)).replace(".", ","); QString urlTxt; if(!movieInfo.isFilled) { urlTxt = napiUploadUrlSimpleTpl.arg(movie_md5).arg(movie_size); } else { urlTxt = napiUploadUrlTpl.arg(movieInfo.durationSecs).arg(movieInfo.width) .arg(movieInfo.height).arg(movie_fps) .arg(movie_md5).arg(movie_size); } QUrl url(urlTxt); QNetworkRequest req(url); req.setHeader(QNetworkRequest::UserAgentHeader, QString("QNapi ") + QNAPI_VERSION); req.setHeader(QNetworkRequest::ContentTypeHeader, "multipart/form-data; boundary=" + postData.boundaryTxt()); SyncHTTP http; QNetworkReply *reply = http.syncPost(req, data); if(reply->error() != QNetworkReply::NoError) return NAPI_FAIL; QString response = reply->readAll(); if(response.indexOf("NPc0") == 0) return NAPI_ADDED_NEW; if((response.indexOf("NPc2") == 0) || (response.indexOf("NPc3") == 0)) return NAPI_OK; return NAPI_UNKNOWN; } // Wysyla blad o niepasujacyh napisach QNapiProjektEngine::ReportResult QNapiProjektEngine::reportBad(const QString & language, const QString & nick, const QString & pass, const QString & comment, QString *response) { QFileInfo fi(movie); subtitles = fi.path() + "/" + fi.completeBaseName() + ".txt"; if(!QFile::exists(subtitles)) return NAPI_NO_SUBTITLES; checksum(); QMultipartHttpRequest postData; postData.addBoundary(); postData.addContentDisposition("name=\"nick\""); postData.addData(nick); postData.addBoundary(); postData.addContentDisposition("name=\"pass\""); postData.addData(pass); postData.addBoundary(); postData.addContentDisposition("name=\"l\""); postData.addData(npLangWrapper(language)); postData.addBoundary(); postData.addContentDisposition("name=\"md5\""); postData.addData(checkSum); postData.addBoundary(); postData.addContentDisposition("name=\"kmt\""); postData.addData(comment); postData.addEndingBoundary(); QByteArray data = postData.requestStream(); QUrl url(napiReportBadUrlTpl); QNetworkRequest req(url); req.setHeader(QNetworkRequest::UserAgentHeader, QString("QNapi ") + QNAPI_VERSION); req.setHeader(QNetworkRequest::ContentTypeHeader, "multipart/form-data; boundary=" + postData.boundaryTxt()); SyncHTTP http; QNetworkReply *reply = http.syncPost(req, data); if(reply->error() != QNetworkReply::NoError) return NAPI_NOT_REPORTED; *response = QTextCodec::codecForName("windows-1250")->toUnicode(reply->readAll()); return NAPI_REPORTED; } // oblicza sume kontrolna dla pliku filmowego (md5 z pierwszych 10MB pliku) QString QNapiProjektEngine::checksum(QString filename, bool limit10M) { QFile file(filename); QByteArray fileArray; if(!file.open(QIODevice::ReadOnly)) return QString(""); fileArray = limit10M ? file.read(NAPI_10MB) : file.readAll(); file.close(); QByteArray b = QCryptographicHash::hash(fileArray, QCryptographicHash::Md5); fileArray.clear(); QString out; char next[3]; for(int i = 0; i < 16; i++) { snprintf(next, 3, "%.2x", (unsigned char)b[i]); out += next; } checkSum = out; return checkSum; } // Tajemnicza funkcja f() QString QNapiProjektEngine::npFDigest(const QString & input) { if(input.size() != 32) return ""; int idx[] = {0xe, 0x3, 0x6, 0x8, 0x2}, mul[] = {2, 2, 5, 4, 3}, add[] = {0x0, 0xd, 0x10, 0xb, 0x5}, a, m, i, t, v; QString b; char tmp[2] = { 0, 0 }; for(int j = 0; j <= 4; j++) { a = add[j]; m = mul[j]; i = idx[j]; tmp[0] = input[i].toLatin1(); t = a + (int)(strtol(tmp, NULL, 16)); v = (int)(strtol(input.mid(t, 2).toLocal8Bit(), NULL, 16)); snprintf(tmp, 2, "%x", (v * m) % 0x10); b += tmp; } return b; } QString QNapiProjektEngine::npLangWrapper(QString lang) { lang = QNapiLanguage(lang).toTwoLetter().toUpper(); if(lang == "EN") lang = "ENG"; return lang; } qnapi-0.1.9/src/engines/qnapiabstractengine.h0000644000174100017410000001047412567301464021145 0ustar jenkinsjenkins/***************************************************************************** ** QNapi ** Copyright (C) 2008-2009 Krzemin ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation; either version 2 of the License, or ** (at your option) any later version. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** *****************************************************************************/ #ifndef __QNAPIABSTRACTENGINE__H__ #define __QNAPIABSTRACTENGINE__H__ #include #include #include #include #include #include #include #include #include "qnapiconfig.h" #include "qnapisubtitleinfo.h" #include "encodingutils.h" class QNapiAbstractEngine { public: // destruktor virtual ~QNapiAbstractEngine() {}; // ustawia sciezke do pliku filmowego void setMoviePath(const QString & path); // zwraca sciezke do pliku filmowego QString moviePath(); // ustawia sciezke do pliku z napisami void setSubtitlesPath(const QString & path); // zwraca sciezke do pliku z napisami QString subtitlesPath(); // dopasowuje napisy do pliku z filmem bool match(); // dokonuje przetwarzania napisow void pp(); // probuje wykrywac (polskie) kodowanie znakow w pliku tekstowym QString ppDetectEncoding(const QString & fileName, int testBufferSize = 10240); // zamienia znaki diakrytyczne na ASCII bool ppReplaceDiacriticsWithASCII(); // zmienia kodowanie znakow w pobranych napisach bool ppChangeSubtitlesEncoding(const QString & from, const QString & to); // zmienia kodowanie znakow w napisach na podane, dokonujac autodetekcji kodowania zrodlowgo bool ppChangeSubtitlesEncoding(const QString & to); // usuwa linie z pliku zawierajace conajmniej jedno z podanej listy slow bool ppRemoveLinesContainingWords(QStringList wordList); // usuwa polskie znaki diakrytyczne ze stringa QString removePolishDiacritics(const QString & str); #ifndef Q_OS_WIN // zmienia uprawnienia do pliku z napisami bool changeSubtitlesPermissions(QFile::Permissions permissions); #endif // powinna zwracac nazwe modulu virtual QString engineName() = 0; // powinna zwracac informacje nt. modulu (prawa autorskie itp.) virtual QString engineInfo() = 0; // zwraca ikone silnika pobierania virtual QIcon engineIcon() = 0; // zwraca czy silnik jest konfigurowalny virtual bool isConfigurable() = 0; // wywoluje okienko konfiguracji virtual void configure(QWidget * parent) = 0; // powinna obliczac i zwracac sume kontrolna pliku filmowego, // a takze ustawiac wartosc zmiennej checkSym virtual QString checksum(QString filename = "") = 0; // szuka napisow w podanym jezyku virtual bool lookForSubtitles(QString lang) = 0; // zwraca liste dostepnych napisow virtual QList listSubtitles() = 0; // powinna pobierac napisy do filmu i zapisywac w jakims pliku tymczasowym virtual bool download(int idx) = 0; // powinna rozpakowywac pobrane napisy, a ich sciezke zapisywac w polu // subtitlesTmpPath virtual bool unpack() = 0; // powinna czyscic pliki tymczasowe itd. virtual void cleanup() = 0; protected: // sciezka do pliku filmowego QString movie; // sciezka do napisow (zazwyczaj taka sama jak do napisow z innym rozszerzeniem) QString subtitles; // sciezka do tymczasowego pliku z napisami QString subtitlesTmp; // sciezka do katalogu tymczasowego QString tmpPath; // suma kontrolna pliku filmowego QString checkSum; // okresla czy uzytkownik wylaczyl wykonywanie kopii zapasowej, gdy napisy do // zadanego filmu juz istnieja bool noBackup; // konstruktor klasy QNapiAbstractEngine(const QString & movieFile = "", const QString & subtitlesFile = "") : movie(movieFile), subtitles(subtitlesFile) { tmpPath = GlobalConfig().tmpPath(); noBackup = GlobalConfig().noBackup(); }; // generuje nazwe dla pliku tymczasowego QString generateTmpFileName(); private: EncodingUtils encodingUtils; }; #endif qnapi-0.1.9/src/engines/qopensubtitlesengine.h0000644000174100017410000000433712567301464021373 0ustar jenkinsjenkins/***************************************************************************** ** QNapi ** Copyright (C) 2008-2009 Krzemin ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation; either version 2 of the License, or ** (at your option) any later version. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** *****************************************************************************/ #ifndef __QOPENSUBTITLESENGINE__H__ #define __QOPENSUBTITLESENGINE__H__ #include #include #include #include "qnapiabstractengine.h" #include "version.h" #include "qnapilanguage.h" #include "syncxmlrpc.h" const QUrl openSubtitlesXmlRpcUrl = QUrl("http://api.opensubtitles.org/xml-rpc"); class QOpenSubtitlesEngine : public QNapiAbstractEngine { public: QOpenSubtitlesEngine(const QString & movieFile = "", const QString & subtitlesFile = ""); ~QOpenSubtitlesEngine(); // zwraca nazwe modulu QString engineName(); // zwraca informacje nt. modulu QString engineInfo(); // zwraca ikone silnika pobierania QIcon engineIcon(); // zwraca czy silnik jest konfigurowalny bool isConfigurable(); // wywoluje okienko konfiguracji void configure(QWidget * parent); // oblicza sume kontrolna pliku filmowego QString checksum(QString filename = ""); // szuka napisow bool lookForSubtitles(QString lang); // wyniki wyszukiwania QList listSubtitles(); // probuje pobrac napisy bool download(int idx); // probuje rozpakowac napisy bool unpack(); // czysci smieci, pliki tymczasowe void cleanup(); private: QString p7zipPath, lang, tmpPackedFile, subFileName; quint64 fileSize; SyncXmlRpc rpc; QString token; QList subtitlesList; // sprawdza czy dana instancja klasy jest zalogowana na sewerze bool isLogged() { return !token.isEmpty(); } // loguje na serwer OpenSubtitles bool login(); // wylogowuje z serwera void logout(); }; #endif qnapi-0.1.9/src/engines/qnapisy24engine.h0000644000174100017410000000150612567301464020137 0ustar jenkinsjenkins#ifndef QNAPISY24ENGINE_H #define QNAPISY24ENGINE_H #include "qnapiabstractengine.h" #include "synchttp.h" #include #include class QNapisy24Engine : public QNapiAbstractEngine { public: QNapisy24Engine(const QString & movieFile = "", const QString & subtitlesFile = ""); ~QNapisy24Engine(); QString engineName(); QString engineInfo(); QIcon engineIcon(); bool isConfigurable(); void configure(QWidget * parent); QString checksum(QString filename = ""); bool lookForSubtitles(QString lang); QList listSubtitles(); bool download(int idx); bool unpack(); void cleanup(); private: quint64 fileSize; QString p7zipPath, lang, tmpPackedFile, subFileName, fileName; QList subtitlesList; }; #endif // QNAPISY24ENGINE_H qnapi-0.1.9/src/engines/qnapiprojektengine.h0000644000174100017410000000647212567301464021023 0ustar jenkinsjenkins/***************************************************************************** ** QNapi ** Copyright (C) 2008-2009 Krzemin ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation; either version 2 of the License, or ** (at your option) any later version. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** *****************************************************************************/ #ifndef __QNAPIPROJEKTENGINE__H__ #define __QNAPIPROJEKTENGINE__H__ #include #include #include #include #include "qnapiabstractengine.h" #include "qmultiparthttprequest.h" #include "synchttp.h" #include "movieinfo.h" #include "qnapilanguage.h" const unsigned long NAPI_10MB = 10485760; const QString napiZipPassword = "iBlm8NTigvru0Jr0"; const QString napiDownloadUrlTpl= "http://www.napiprojekt.pl/unit_napisy/dl.php" "?l=%1&f=%2&t=%3&v=other&kolejka=false&nick=%4&pass=%5&napios=%6"; const QString napiCheckUserUrlTpl = "http://www.napiprojekt.pl/users_check.php?nick=%1&pswd=%2"; const QString napiUploadUrlTpl = "http://www.napiprojekt.pl/unit_napisy/upload.php" "?m_length=%1&m_resolution=%2x%3&m_fps=%4&m_hash=%5&m_filesize=%6"; const QString napiUploadUrlSimpleTpl = "http://www.napiprojekt.pl/unit_napisy/upload.php" "?m_hash=%5&m_filesize=%6"; const QString napiReportBadUrlTpl = "http://www.napiprojekt.pl/unit_napisy/zlenapisyadd.php"; class QNapiProjektEngine : public QNapiAbstractEngine { public: enum UploadResult { NAPI_ADDED_NEW, NAPI_OK, NAPI_FAIL, NAPI_UNKNOWN }; enum ReportResult { NAPI_REPORTED, NAPI_NO_SUBTITLES, NAPI_NOT_REPORTED }; QNapiProjektEngine(const QString & movieFile = "", const QString & subtitlesFile = ""); ~QNapiProjektEngine(); // zwraca nazwe modulu QString engineName(); // zwraca informacje nt. modulu QString engineInfo(); // zwraca ikone silnika pobierania QIcon engineIcon(); // zwraca czy silnik jest konfigurowalny bool isConfigurable(); // wywoluje okienko konfiguracji void configure(QWidget * parent); QString checksum(QString filename = ""); bool lookForSubtitles(QString lang); QList listSubtitles(); bool download(int idx); bool unpack(); void cleanup(); QString name() { return QString("NapiProjekt"); } static bool checkUser(const QString & nick, const QString & pass); UploadResult uploadSubtitles(const QString & language, const QString & nick, const QString & pass, bool correct = false, const QString & comment = ""); ReportResult reportBad(const QString & language, const QString & nick, const QString & pass, const QString & comment, QString *response); private: QString p7zipPath, nick, pass, tmpPackedFile; QList subtitlesList; QString checksum(QString filename, bool limit10M); QString npFDigest(const QString & input); QString npLangWrapper(QString lang); }; #endif qnapi-0.1.9/src/qnapithread.h0000644000174100017410000000160212567301464015764 0ustar jenkinsjenkins/***************************************************************************** ** QNapi ** Copyright (C) 2008-2009 Krzemin ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation; either version 2 of the License, or ** (at your option) any later version. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** *****************************************************************************/ #ifndef __QNAPITHREAD__H__ #define __QNAPITHREAD__H__ #include class QNapiThread : public QThread { Q_OBJECT public: QNapiThread() : abort(false) {} void requestAbort() { abort = true; } protected: bool abort; }; #endif qnapi-0.1.9/src/qnapiopendialog.h0000644000174100017410000000272312567301464016643 0ustar jenkinsjenkins/***************************************************************************** ** QNapi ** Copyright (C) 2008-2009 Krzemin ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation; either version 2 of the License, or ** (at your option) any later version. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** *****************************************************************************/ #ifndef __QNAPIOPENDIALOG__H__ #define __QNAPIOPENDIALOG__H__ #include #include #include #include #include #include #include #include "qnapiconfig.h" class QNapiOpenDialog : public QFileDialog { Q_OBJECT public: enum FilterMode { None, Movies, Subtitles }; QNapiOpenDialog(QWidget * parent = 0, const QString & caption = QString(), const QString & init_path = QString(), FilterMode filterMode = None); bool selectFile(); bool selectFiles(); bool selectDirectory(); #if defined(Q_OS_WIN) || defined(Q_OS_MAC) QStringList selectedFiles() const; #endif private: bool placeWindow(); #if defined(Q_OS_WIN) || defined(Q_OS_MAC) QStringList files; #endif }; #endif qnapi-0.1.9/src/qnapicli.h0000644000174100017410000000416212567301464015270 0ustar jenkinsjenkins/***************************************************************************** ** QNapi ** Copyright (C) 2008-2009 Krzemin ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation; either version 2 of the License, or ** (at your option) any later version. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** *****************************************************************************/ #ifndef __QNAPICLI__H__ #define __QNAPICLI__H__ #include #include #include #include #include #include "version.h" #include "qnapi.h" #include "qnapilanguage.h" class QNapiCli : public QCoreApplication { public: QNapiCli(int argc, char **argv) : QCoreApplication(argc, argv), mode(CM_UNSET), showPolicy(SLP_USE_CONFIG) {} static bool isCliCall(int argc, char **argv); int exec(); private: QStringList movieList; QNapi napi; enum CliExitCode { EC_CMD_LINE_ARG_PARSING_ERROR = -1, EC_OK = 0, EC_NON_CLI_MODE = 1, EC_P7ZIP_UNAVAILABLE = 2, EC_CANNOT_WRITE_TMP_DIR = 3, EC_UNSUPPORTED_ENGINE = 4, EC_NO_WRITE_PERMISSIONS = 5, EC_SUBTITLES_NOT_FOUND = 6, EC_COULD_NOT_DOWNLOAD = 7, EC_COULD_NOT_UNARCHIVE = 8, EC_COULD_NOT_MATCH = 9, EC_MOVIE_FILE_NOT_FOUND = 10 }; enum CliMode { CM_UNSET, CM_HELP, CM_HELP_LANGUAGES, CM_CONSOLE, CM_QUIET }; enum ShowListPolicy{ SLP_SHOW, SLP_USE_CONFIG, SLP_NEVER_SHOW }; CliMode mode; ShowListPolicy showPolicy; QString lang; QString langBackup; bool langBackupPassed; bool analyze(); void printHeader(); void printHelp(); void printHelpLanguages(); void printCli(const QString & string); }; #endif qnapi-0.1.9/src/qnapiapp.h0000644000174100017410000000617612567301464015310 0ustar jenkinsjenkins/***************************************************************************** ** QNapi ** Copyright (C) 2008-2009 Krzemin ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation; either version 2 of the License, or ** (at your option) any later version. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** *****************************************************************************/ #ifndef __QNAPIAPP__H__ #define __QNAPIAPP__H__ #include #include #include #include #include #include #include #include #include "qcumber/qsingleapplication.h" #include "forms/frmprogress.h" #include "forms/frmabout.h" #include "forms/frmoptions.h" #include "forms/frmnapiprojektupload.h" #include "forms/frmnapiprojektcorrect.h" #include "forms/frmnapiprojektreport.h" #include "forms/frmscan.h" #include "forms/frmsummary.h" #include "forms/frmconvert.h" #include "qnapiconfig.h" #include "qnapiopendialog.h" class QNapiApp : public QSingleApplication { Q_OBJECT public: QNapiApp(int & argc, char **argv, bool useGui, const QString & appName); ~QNapiApp(); void createTrayIcon(); void showTrayMessage(QString title, QString msg); frmProgress * progress(); public slots: bool showOpenDialog(QString engine = ""); bool showScanDialog(QString init_dir = ""); void showConvertDialog(); void showNPGetDialog(); void showNPUploadDialog(); void showNPCorrectDialog(); void showNPReportDialog(); void showNPCreateUser(); void showOSGetDialog(); void showOSUploadDialog(); void showOSCreateUser(); void showNapisy24GetDialog(); void showNapisy24CreateUser(); void showSettings(); void showAbout(); void tryQuit(); signals: void downloadFile(const QString & fileName); private: bool event(QEvent *ev); QSystemTrayIcon *trayIcon; QMenu *trayIconMenu, *napiSubMenu, *osSubMenu, *napisy24SubMenu; QAction *getAction, *scanAction, *convertAction, *napiGetAction, *napiAddAction, *napiCorrectAction, *napiReportAction, *napiCreateUserAction, *osGetAction, *osAddAction, *osCreateUserAction, *napisy24GetAction, *napisy24CreateUserAction, *settingsAction, *aboutAction, *quitAction; QNapiOpenDialog *openDialog; frmProgress *f_progress; frmOptions *f_options; frmAbout *f_about; frmScan *f_scan; frmConvert *f_convert; frmNapiProjektUpload *f_napiProjektUpload; frmNapiProjektCorrect *f_napiProjektCorrect; frmNapiProjektReport *f_napiProjektReport; private slots: void trayIconActivated(QSystemTrayIcon::ActivationReason reason); }; #endif qnapi-0.1.9/src/encodingutils.h0000644000174100017410000000062612567301464016340 0ustar jenkinsjenkins#ifndef ENCODINGUTILS_H #define ENCODINGUTILS_H #include #include #include class EncodingUtils { public: EncodingUtils(); QString replaceDiacriticsWithASCII(const QString & str); QString detectBufferEncoding(const QByteArray & buffer); private: QString diacritics; QStringList replacements; QStringList codecs; }; #endif // ENCODINGUTILS_H qnapi-0.1.9/src/qnapi.cpp0000644000174100017410000001165012567301464015133 0ustar jenkinsjenkins/***************************************************************************** ** QNapi ** Copyright (C) 2008-2009 Krzemin ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation; either version 2 of the License, or ** (at your option) any later version. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** *****************************************************************************/ #include "qnapi.h" QNapi::~QNapi() { cleanup(); foreach(QNapiAbstractEngine *e, enginesList) { if(e) delete e; } } bool QNapi::checkP7ZipPath() { return QFileInfo(GlobalConfig().p7zipPath()).isExecutable(); } bool QNapi::checkTmpPath() { QFileInfo f(GlobalConfig().tmpPath()); return f.isDir() && f.isWritable(); } bool QNapi::ppEnabled() { return GlobalConfig().ppEnabled(); } QStringList QNapi::enumerateEngines() { QStringList engines; engines << "NapiProjekt"; engines << "OpenSubtitles"; engines << "Napisy24"; return engines; } bool QNapi::addEngine(QString engine) { if(engine == "NapiProjekt") { enginesList << (new QNapiProjektEngine()); return true; } else if(engine == "OpenSubtitles") { enginesList << (new QOpenSubtitlesEngine()); return true; } else if(engine == "Napisy24") { enginesList << (new QNapisy24Engine()); return true; } else { errorMsg = QString("Nieobsługiwany silnik pobierania: %1.").arg(engine); return false; } } bool QNapi::addEngines(QStringList engines) { foreach(QString e, engines) { if(!addEngine(e)) return false; } return true; } void QNapi::setMoviePath(QString path) { movie = path; currentEngine = 0; } QString QNapi::moviePath() { return movie; } bool QNapi::checkWritePermissions() { return QFileInfo(QFileInfo(movie).path()).isWritable(); } void QNapi::checksum() { foreach(QNapiAbstractEngine *e, enginesList) { e->checksum(movie); } } bool QNapi::lookForSubtitles(QString lang, QString engine) { subtitlesList.clear(); bool result = false; if(engine.isEmpty()) { foreach(QNapiAbstractEngine *e, enginesList) { e->setMoviePath(movie); result = e->lookForSubtitles(lang) || result; } } else { QNapiAbstractEngine *e = engineByName(engine); if(e) { e->setMoviePath(movie); result = e->lookForSubtitles(lang); } } if(!result) { errorMsg = "Nie znaleziono napisów!"; } return result; } QList QNapi::listSubtitles() { int curr_offset = 0; subtitlesList.clear(); foreach(QNapiAbstractEngine *e, enginesList) { QList list = e->listSubtitles(); offsetsList.insert(nameByEngine(e), curr_offset); curr_offset += list.size(); subtitlesList << list; } return subtitlesList; } bool QNapi::needToShowList() { theBestIdx = 0; int i = 0; bool foundBestIdx = false; foreach(QNapiSubtitleInfo s, listSubtitles()) { if(s.resolution == SUBTITLE_GOOD) { theBestIdx = i; foundBestIdx = true; break; } ++i; } if(listSubtitles().size() <= 1) return false; if(GlobalConfig().downloadPolicy() == DP_ALWAYS_SHOW_LIST) return true; if(GlobalConfig().downloadPolicy() == DP_NEVER_SHOW_LIST) return false; return !foundBestIdx; } int QNapi::bestIdx() { return theBestIdx; } bool QNapi::download(int i) { QNapiSubtitleInfo s = subtitlesList[i]; currentEngine = engineByName(s.engine); if(!currentEngine) return false; int offset = offsetsList.value(s.engine, 0); return currentEngine->download(i - offset); } bool QNapi::unpack() { return currentEngine ? currentEngine->unpack() : false; } bool QNapi::match() { return currentEngine ? currentEngine->match() : false; } void QNapi::pp() { if(currentEngine) currentEngine->pp(); } void QNapi::cleanup() { foreach(QNapiAbstractEngine *e, enginesList) { e->cleanup(); } } QString QNapi::error() { return errorMsg; } QNapiAbstractEngine * QNapi::engineByName(QString name) { foreach(QNapiAbstractEngine *e, enginesList) { if(name == (e->engineName())) { return e; } } return 0; } QString QNapi::nameByEngine(QNapiAbstractEngine * engine) { return engine->engineName(); } QStringList QNapi::listLoadedEngines() { QStringList list; foreach(QNapiAbstractEngine *e, enginesList) { list << e->engineName(); } return list; } qnapi-0.1.9/src/syncxmlrpc.h0000644000174100017410000000315112567301464015667 0ustar jenkinsjenkins/************************************************************************* Copyright (C) 2005 by Iulian M eti@erata.net modifications by Piotr Krzemiński Copyright (C) 2008-2015 This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . *************************************************************************/ #ifndef SYNCXMLRPC_H #define SYNCXMLRPC_H #include #include #include #include #include "maiaXmlRpcClient.h" class SyncXmlRpc : public QObject { Q_OBJECT public: SyncXmlRpc(const QUrl & endPoint); bool request(const QString & method, const QVariantList & args); QVariant getResponse() const; QVariant getError() const; private slots: void whenResponse(QVariant & response); void whenFault(int err, const QString & msg); private: bool result; int error; QString message; QVariant resp; QEventLoop loop; MaiaXmlRpcClient rpc; }; #endif qnapi-0.1.9/src/synchttp.h0000644000174100017410000000260112567301464015340 0ustar jenkinsjenkins/************************************************************************* Copyright (C) 2005 by Iulian M eti@erata.net modifications by Piotr Krzemiński Copyright (C) 2008-2015 This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . *************************************************************************/ #ifndef SYNCHTTP_H #define SYNCHTTP_H #include #include #include #include #include class SyncHTTP : public QObject { Q_OBJECT public: SyncHTTP(); QNetworkReply* syncGet(const QNetworkRequest & req); QNetworkReply* syncPost(const QNetworkRequest & req, const QByteArray& data); private: QEventLoop loop; QNetworkAccessManager manager; }; #endif qnapi-0.1.9/src/ffprobemovieinfoparser.cpp0000644000174100017410000000304512567301464020576 0ustar jenkinsjenkins#include "ffprobemovieinfoparser.h" #include FFProbeMovieInfoParser::FFProbeMovieInfoParser(const QString & ffProbeExePath) : ffProbePath(ffProbeExePath) {} MovieInfo FFProbeMovieInfoParser::parseFile(const QString & movieFilePath) const { MovieInfo mi; mi.isFilled = false; QStringList args; args << movieFilePath << "-v" << 0 << "-select_streams" << "v" << "-print_format" << "flat" << "-show_entries" << "stream=r_frame_rate,width,height,duration"; QProcess ffProbe; ffProbe.start(ffProbePath, args); if(!ffProbe.waitForFinished(15000)) return mi; if(ffProbe.exitCode() != 0) return mi; QString ffProbeOut = QByteArray(ffProbe.readAll()); QRegExp rWidth("streams\\.stream\\.0\\.width=(\\d+)"); if(rWidth.indexIn(ffProbeOut) == -1) return mi; mi.width = rWidth.cap(1).toInt(); QRegExp rHeight("streams\\.stream\\.0\\.height=(\\d+)"); if(rHeight.indexIn(ffProbeOut) == -1) return mi; mi.height = rHeight.cap(1).toInt(); QRegExp rFrameRate("streams\\.stream\\.0\\.r_frame_rate=\"(\\d+)/(\\d+)\""); if(rFrameRate.indexIn(ffProbeOut) == -1) return mi; long frL = rFrameRate.cap(1).toLong(); long frM = rFrameRate.cap(2).toLong(); mi.frameRate = (double)frL / frM; QRegExp rDuration("streams\\.stream\\.0\\.duration=\"(.+)\""); if(rDuration.indexIn(ffProbeOut) == -1) return mi; mi.durationSecs = rDuration.cap(1).toDouble(); mi.isFilled = true; return mi; } qnapi-0.1.9/src/qnapilanguage.h0000644000174100017410000000210112567301464016273 0ustar jenkinsjenkins/***************************************************************************** ** QNapi ** Copyright (C) 2008-2009 Krzemin ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation; either version 2 of the License, or ** (at your option) any later version. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** *****************************************************************************/ #ifndef __QNAPILANGUAGE__H__ #define __QNAPILANGUAGE__H__ #include #include class QNapiLanguage : public QObject { Q_OBJECT public: QNapiLanguage(QString source = ""); void setLanguage(QString source); QString toTwoLetter(); QString toTriLetter(); QString toFullName(); QStringList listLanguages(); private: QStringList codes2l, codes3l, names; int idx; void fill_tables(); }; #endif qnapi-0.1.9/src/qcheckedlistwidget.h0000644000174100017410000000366112567301464017342 0ustar jenkinsjenkins/***************************************************************************** ** QNapi ** Copyright (C) 2008-2009 Krzemin ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation; either version 2 of the License, or ** (at your option) any later version. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** *****************************************************************************/ #ifndef __QCHECKEDLISTWIDGET__H__ #define __QCHECKEDLISTWIDGET__H__ #include class QCheckedListWidget : public QListWidget { public: QCheckedListWidget(QWidget * parent = 0) : QListWidget(parent) { setMouseTracking(true); } void setItemCheckState(int i, Qt::CheckState state) { QListWidgetItem * it = item(i); if(it) it->setCheckState(state); } Qt::CheckState itemCheckState(int i) { QListWidgetItem * it = item(i); return it ? it->checkState() : Qt::Unchecked; } void selectAll() { for(int i = 0; i < count(); ++i) { item(i)->setCheckState(Qt::Checked); } } void unselectAll() { for(int i = 0; i < count(); ++i) { item(i)->setCheckState(Qt::Unchecked); } } void invertSelection() { Qt::CheckState state; for(int i = 0; i < count(); ++i) { state = item(i)->checkState(); state = (state == Qt::Checked) ? Qt::Unchecked : Qt::Checked; item(i)->setCheckState(state); } } }; #endif // __QCHECKEDLISTWIDGET__H__ qnapi-0.1.9/src/main.cpp0000644000174100017410000001436212567301464014752 0ustar jenkinsjenkins/***************************************************************************** ** QNapi ** ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation; either version 2 of the License, or ** (at your option) any later version. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** *****************************************************************************/ #include #include #include #include #include #include #include #include #include "version.h" #include "qnapiconfig.h" #include "qnapiapp.h" #include "qnapicli.h" #include QStringList parseArgs(int argc, char **argv); void regSignal(); void sigHandler(int); int main(int argc, char **argv) { bool useGui = !QNapiCli::isCliCall(argc, argv); regSignal(); if(useGui) { QNapiApp app(argc, argv, true, "QNapi"); QStringList pathList = parseArgs(argc, argv); QString resourceDir = QLibraryInfo::location(QLibraryInfo::TranslationsPath); QTranslator cuteTranslator; cuteTranslator.load("qt_" + QLocale::system().name(), resourceDir); app.installTranslator(&cuteTranslator); app.setQuitOnLastWindowClosed(false); if(app.arguments().contains("-o") || app.arguments().contains("--options")) { app.setQuitOnLastWindowClosed(true); app.showSettings(); return 0; } if(!app.isInstanceAllowed()) { for(int i = 0; i < pathList.size(); i++) { QString & fileName = pathList[i]; QFileInfo fi(fileName); app.sendRequest(fi.absoluteFilePath()); } return 0; } if(GlobalConfig().firstRun()) { if(QMessageBox::question(0, QObject::tr("Pierwsze uruchomienie"), QObject::tr("To jest pierwsze uruchomienie programu QNapi. Czy chcesz go " "teraz skonfigurować?"), QMessageBox::Yes | QMessageBox::No ) == QMessageBox::Yes ) { app.showSettings(); } } // Jesli podano parametry, ustawiamy tzw. batch mode if(pathList.size() > 0) { app.progress()->setBatchMode(true); QString batchLang, batchLangBackup, p; bool invalidLang = false, batchLangBackupPassed = false; for(int i = 1; i < argc; i++) { p = argv[i]; if((p == "-l") || (p == "--lang")) { ++i; if(i < argc) { batchLang = QNapiLanguage(argv[i]).toTwoLetter(); if(batchLang.isEmpty()) invalidLang = true; } else invalidLang = true; } else if((p == "-lb") || (p == "--lang-backup")) { ++i; if(i < argc) { batchLangBackup = QNapiLanguage(argv[i]).toTwoLetter(); batchLangBackupPassed = true; } break; } } if(invalidLang) { if(QMessageBox::question(0, "QNapi", "Niepoprawny kod językowy!\n" "Czy chcesz pobrać napisy w domyślnym języku?", QMessageBox::Yes | QMessageBox::No) != QMessageBox::Yes) { return 0; } } app.progress()->setBatchLanguages(batchLang, batchLangBackup, batchLangBackupPassed); if(QFileInfo(pathList.at(0)).isDir()) { if(!app.showScanDialog(pathList.at(0))) return 1; } else { app.progress()->enqueueFiles(pathList); if(!app.progress()->download()) return 1; } } // Jesli nie dzialamy w trybie pobierania, mozemy ew. utworzyc ikone w tray-u // badz pokazac okno wyboru plikow z filmami if(!app.progress()->isBatchMode()) { // Jesli nie ma traya, od razu wyswietlamy okienko z wyborem pliku if(!QSystemTrayIcon::isSystemTrayAvailable()) { if(!app.progress()->isBatchMode()) { app.progress()->setBatchMode(true); if(!app.showOpenDialog()) return 1; } } else // Jesli ikona w tray-u jest obsligiwana, tworzymy ja { app.createTrayIcon(); } } return app.exec(); } else { QNapiCli app(argc, argv); return app.exec(); } } QStringList parseArgs(int argc, char **argv) { QStringList pathList; for(int i = 1; i < argc; i++) { QString p = argv[i]; if(p.startsWith("file://")) p = p.remove(0, 7); if((pathList.size() == 0) && QFileInfo(p).isDir()) { pathList << p; break; } if(QFileInfo(p).isFile()) pathList << p; } return pathList; } void regSignal() { #ifdef Q_OS_WIN signal(SIGTERM, sigHandler); signal(SIGINT, sigHandler); #else struct sigaction sa; memset(&sa, 0, sizeof(struct sigaction)); sigemptyset(&sa.sa_mask); sa.sa_handler = sigHandler; sigaction(SIGTERM, &sa, 0); sigaction(SIGINT, &sa, 0); #endif } void sigHandler(int sig) { Q_UNUSED(sig); qDebug() << "\nQNapi: usuwanie plików tymczasowych..."; QString tmpPath = GlobalConfig().tmpPath(); QStringList filters; filters << "QNapi-*-rc"; filters << "QNapi.*.tmp"; QDir dir(tmpPath); QStringList files = dir.entryList(filters); foreach(QString file, files) { QFile::remove(tmpPath + QDir::separator() + file); } exit(666); } qnapi-0.1.9/src/subconvert/0000755000174100017410000000000012567301464015506 5ustar jenkinsjenkinsqnapi-0.1.9/src/subconvert/subtitleconverter.h0000644000174100017410000000251612567301464021446 0ustar jenkinsjenkins#ifndef SUBTITLECONVERTER_H #define SUBTITLECONVERTER_H #include #include #include class SubtitleConverter { public: QString detectFormat(const QString &subtitleFile); QString detectFormat(const QStringList &subtitleLines); bool convertSubtitles(QString subtitleFile, QString targetFormatName, QString targetFileName, double movieFPS, double fpsRatio, double delayOffset); bool convertSubtitles(QString subtitleFile, QString targetFormatName, QString targetFileName, QString movieFile); bool convertSubtitles(QString subtitleFile, QString targetFormatName, QString targetFileName, std::function determineFPS, double fpsRatio = 1.0, double delayOffset = 0.0); private: long ts2frame(long ts, double frameRate); long frame2ts(long frame, double frameRate); QStringList readFile(const QString & filename, long atMostLines = 0); bool writeFile(const QString & filename, const QStringList & lines); }; #endif // SUBTITLECONVERTER_H qnapi-0.1.9/src/subconvert/formats/0000755000174100017410000000000012567301464017161 5ustar jenkinsjenkinsqnapi-0.1.9/src/subconvert/formats/subrip.h0000644000174100017410000000160212567301464020635 0ustar jenkinsjenkins#ifndef SUBRIPSUBTITLEFORMAT_H #define SUBRIPSUBTITLEFORMAT_H #include "subconvert/subtitleformat.h" class SubRipSubtitleFormat : public SubtitleFormat { public: virtual ~SubRipSubtitleFormat() {} bool isTimeBased() { return true; } QString formatName() { return "SRT"; } QString defaultExtension() { return "srt"; } bool detect(const QStringList &lines); SubFile decode(const QStringList &lines); QStringList encode(const SubFile & subFile); private: struct SrtTimestamps { int h1; int m1; int s1; int ms1; int h2; int m2; int s2; int ms2; }; void addEntry(QVector & entries, QString & tokensBuff, SrtTimestamps & timestamps); QStringList encodeEntry(const SubEntry & entry, int i); QString encodeToken(const SubToken & entry); }; #endif // SUBRIPSUBTITLEFORMAT_H qnapi-0.1.9/src/subconvert/formats/mpl2.h0000644000174100017410000000114312567301464020203 0ustar jenkinsjenkins#ifndef MPL2SUBTITLEFORMAT_H #define MPL2SUBTITLEFORMAT_H #include "subconvert/subtitleformat.h" class MPL2SubtitleFormat : public SubtitleFormat { public: virtual ~MPL2SubtitleFormat() {} bool isTimeBased() { return true; } QString formatName() { return "MPL2"; } QString defaultExtension() { return "txt"; } bool detect(const QStringList &lines); SubFile decode(const QStringList &lines); QStringList encode(const SubFile & subFile); private: QString encodeEntry(const SubEntry & entry); QString encodeToken(const SubToken & entry); }; #endif // MPL2SUBTITLEFORMAT_H qnapi-0.1.9/src/subconvert/formats/subrip.cpp0000644000174100017410000001161712567301464021177 0ustar jenkinsjenkins#include "subrip.h" bool SubRipSubtitleFormat::detect(const QStringList &lines) { QStringList lines2 = lines; while(!lines2.isEmpty() && lines2.first().trimmed().isEmpty()) { lines2.pop_front(); } QString firstEntryBuff; foreach(QString line, lines2) { if(line.isEmpty()) break; firstEntryBuff += line + "\r\n"; } QRegExp r("^(\\d+)(\\n|\\r\\n|\\s+)(\\d{2}):(\\d{2}):(\\d{2})\\,(\\d{3})\\s+\\-\\->\\s+(\\d{2}):(\\d{2}):(\\d{2})\\,(\\d{3})(.*)"); return r.exactMatch(firstEntryBuff); } SubFile SubRipSubtitleFormat::decode(const QStringList &lines) { SubFile sf; QRegExp r1("^(\\d+)\\s+(\\d{2}):(\\d{2}):(\\d{2})\\,(\\d{3})\\s+\\-\\->\\s+(\\d{2}):(\\d{2}):(\\d{2})\\,(\\d{3})(.*)"); QRegExp r2("^(\\d{2}):(\\d{2}):(\\d{2})\\,(\\d{3})\\s+\\-\\->\\s+(\\d{2}):(\\d{2}):(\\d{2})\\,(\\d{3})(.*)"); QRegExp rNumLine("^\\d+"); QString tokensBuff = "", numsBuff; SrtTimestamps tss; foreach(QString line, lines) { if(r1.exactMatch(line)) { if(!tokensBuff.isEmpty()) addEntry(sf.entries, tokensBuff, tss); tss.h1 = r1.cap(2).toInt(); tss.m1 = r1.cap(3).toInt(); tss.s1 = r1.cap(4).toInt(); tss.ms1 = r1.cap(5).toInt(); tss.h2 = r1.cap(6).toInt(); tss.m2 = r1.cap(7).toInt(); tss.s2 = r1.cap(8).toInt(); tss.ms2 = r1.cap(9).toInt(); numsBuff.clear(); } else if(r2.exactMatch(line)) { if(!tokensBuff.isEmpty()) addEntry(sf.entries, tokensBuff, tss); tss.h1 = r2.cap(1).toInt(); tss.m1 = r2.cap(2).toInt(); tss.s1 = r2.cap(3).toInt(); tss.ms1 = r2.cap(4).toInt(); tss.h2 = r2.cap(5).toInt(); tss.m2 = r2.cap(6).toInt(); tss.s2 = r2.cap(7).toInt(); tss.ms2 = r2.cap(8).toInt(); numsBuff.clear(); } else if(rNumLine.exactMatch(line)) { numsBuff += line + "\r\n"; } else if (!line.trimmed().isEmpty()) { if(!numsBuff.isEmpty()) { tokensBuff += numsBuff; numsBuff.clear(); } tokensBuff += line + "\r\n"; } } if(!tokensBuff.isEmpty()) addEntry(sf.entries, tokensBuff, tss); return sf; } QStringList SubRipSubtitleFormat::encode(const SubFile & subFile) { QStringList lines; int i = 1; foreach(const SubEntry & entry, subFile.entries) { lines << encodeEntry(entry, i++); lines << ""; } return lines; } void SubRipSubtitleFormat::addEntry(QVector & entries, QString & tokensBuff, SrtTimestamps & timestamps) { SubEntry se; se.frameStart = 3600000L * timestamps.h1 + 60000L * timestamps.m1 + 1000L * timestamps.s1 + timestamps.ms1; se.frameStop = 3600000L * timestamps.h2 + 60000L * timestamps.m2 + 1000L * timestamps.s2 + timestamps.ms2; se.tokens = decodeTokenStream(tokensBuff); while(!se.tokens.isEmpty() && se.tokens.back().type == STT_NEWLINE) se.tokens.pop_back(); entries.push_back(se); tokensBuff.clear(); } QStringList SubRipSubtitleFormat::encodeEntry(const SubEntry & entry, int i) { QString tokensBuff; foreach(const SubToken & token, entry.tokens) { tokensBuff += encodeToken(token); } int h1 = entry.frameStart / 3600000; int m1 = (entry.frameStart - h1 * 3600000) / 60000; int s1 = (entry.frameStart - h1 * 3600000 - m1 * 60000) / 1000; int ms1 = entry.frameStart - h1 * 3600000 - m1 * 60000 - s1 * 1000; int h2 = entry.frameStop / 3600000; int m2 = (entry.frameStop - h2 * 3600000) / 60000; int s2 = (entry.frameStop - h2 * 3600000 - m2 * 60000) / 1000; int ms2 = entry.frameStop - h2 * 3600000 - m2 * 60000 - s2 * 1000; QStringList out; out << QString::number(i) << QString("%1:%2:%3,%4 --> %5:%6:%7,%8") .arg(h1, 2, 10, QChar('0')) .arg(m1, 2, 10, QChar('0')) .arg(s1, 2, 10, QChar('0')) .arg(ms1, 3, 10, QChar('0')) .arg(h2, 2, 10, QChar('0')) .arg(m2, 2, 10, QChar('0')) .arg(s2, 2, 10, QChar('0')) .arg(ms2, 3, 10, QChar('0')) << tokensBuff.split("\r\n"); return out; } QString SubRipSubtitleFormat::encodeToken(const SubToken & entry) { switch(entry.type) { case STT_WS: return " "; case STT_WORD: return entry.payload; case STT_NEWLINE: return "\r\n"; case STT_BOLD: return ""; case STT_BOLD_END: return ""; case STT_ITALIC: return ""; case STT_ITALIC_END: return ""; case STT_UNDERLINE: return ""; case STT_UNDERLINE_END: return ""; case STT_FONTCOLOR: return QString("").arg(entry.payload); case STT_FONTCOLOR_END: return ""; default: return ""; } } qnapi-0.1.9/src/subconvert/formats/tmplayer.cpp0000644000174100017410000000505212567301464021524 0ustar jenkinsjenkins#include "tmplayer.h" bool TMPlayerSubtitleFormat::detect(const QStringList &lines) { foreach(QString line, lines) { if(!line.trimmed().isEmpty()) { QRegExp r("^(0\\d|\\d\\d):(0\\d|\\d\\d):(0\\d|\\d\\d):(.*)"); r.setPatternSyntax(QRegExp::RegExp2); return r.exactMatch(line); } } return false; } SubFile TMPlayerSubtitleFormat::decode(const QStringList &lines) { SubFile sf; foreach(QString line, lines) { if(!line.trimmed().isEmpty()) { QRegExp r("^(0\\d|\\d\\d):(0\\d|\\d\\d):(0\\d|\\d\\d):(.*)"); r.setPatternSyntax(QRegExp::RegExp2); if(r.exactMatch(line)) { int h = r.cap(1).toInt(); int m = r.cap(2).toInt(); int s = r.cap(3).toInt(); QString tokenStream = r.cap(4); SubEntry se; se.frameStart = 1000L * (3600L * h + 60L * m + s); se.tokens = decodeTokenStream(tokenStream); sf.entries.push_back(se); } } } for(int i = 0; i < sf.entries.size(); ++i) { long plus5s = sf.entries[i].frameStart + 5000L; sf.entries[i].frameStop = plus5s; if(i < sf.entries.size() - 1) { sf.entries[i].frameStop = std::min(plus5s, sf.entries[i + 1].frameStart - 1); } } return sf; } QStringList TMPlayerSubtitleFormat::encode(const SubFile & subFile) { QStringList lines; foreach(const SubEntry & entry, subFile.entries) { lines.append(encodeEntry(entry)); } return lines; } QString TMPlayerSubtitleFormat::encodeEntry(const SubEntry & entry) { QString tokensBuff; foreach(const SubToken & token, entry.tokens) { tokensBuff += encodeToken(token); } long ss = entry.frameStart / 1000; int h = ss / 3600; int m = (ss - h * 3600) / 60; int s = ss - h * 3600 - m * 60; return QString("%1:%2:%3: %4") .arg(h, 2, 10, QChar('0')) .arg(m, 2, 10, QChar('0')) .arg(s, 2, 10, QChar('0')) .arg(tokensBuff); } QString TMPlayerSubtitleFormat::encodeToken(const SubToken & entry) { switch(entry.type) { case STT_WS: return " "; case STT_WORD: return entry.payload; case STT_NEWLINE: return "|"; case STT_BOLD: return "{y:b}"; case STT_ITALIC: return "{y:i}"; case STT_UNDERLINE: return "{y:u}"; case STT_FONTCOLOR: return QString("{c:$%1}").arg(entry.payload); default: return ""; } } qnapi-0.1.9/src/subconvert/formats/microdvd.cpp0000644000174100017410000000370012567301464021474 0ustar jenkinsjenkins#include "microdvd.h" bool MicroDVDSubtitleFormat::detect(const QStringList &lines) { foreach(QString line, lines) { if(!line.trimmed().isEmpty()) { QRegExp r("^\\{(\\d+)\\}\\{(\\d+)\\}(.*)"); r.setPatternSyntax(QRegExp::RegExp2); return r.exactMatch(line); } } return false; } SubFile MicroDVDSubtitleFormat::decode(const QStringList &lines) { SubFile sf; foreach(QString line, lines) { if(!line.trimmed().isEmpty()) { QRegExp r("^\\{(\\d+)\\}\\{(\\d+)\\}(.*)"); r.setPatternSyntax(QRegExp::RegExp2); if(r.exactMatch(line)) { SubEntry se; se.frameStart = r.cap(1).toLong(); se.frameStop = r.cap(2).toLong(); QString tokenStream = r.cap(3); se.tokens = decodeTokenStream(tokenStream); sf.entries.push_back(se); } } } return sf; } QStringList MicroDVDSubtitleFormat::encode(const SubFile & subFile) { QStringList lines; foreach(const SubEntry & entry, subFile.entries) { lines.append(encodeEntry(entry)); } return lines; } QString MicroDVDSubtitleFormat::encodeEntry(const SubEntry & entry) { QString tokensBuff; foreach(const SubToken & token, entry.tokens) { tokensBuff += encodeToken(token); } return QString("{%1}{%2}%3") .arg(entry.frameStart) .arg(entry.frameStop) .arg(tokensBuff); } QString MicroDVDSubtitleFormat::encodeToken(const SubToken & entry) { switch(entry.type) { case STT_WS: return " "; case STT_WORD: return entry.payload; case STT_NEWLINE: return "|"; case STT_BOLD: return "{y:b}"; case STT_ITALIC: return "{y:i}"; case STT_UNDERLINE: return "{y:u}"; case STT_FONTCOLOR: return QString("{c:%1}").arg(entry.payload); default: return ""; } } qnapi-0.1.9/src/subconvert/formats/tmplayer.h0000644000174100017410000000116612567301464021173 0ustar jenkinsjenkins#ifndef TMPLAYERSUBTITLEFORMAT_H #define TMPLAYERSUBTITLEFORMAT_H #include "subconvert/subtitleformat.h" class TMPlayerSubtitleFormat : public SubtitleFormat { public: virtual ~TMPlayerSubtitleFormat() {} bool isTimeBased() { return true; } QString formatName() { return "TMP"; } QString defaultExtension() { return "txt"; } bool detect(const QStringList &lines); SubFile decode(const QStringList &lines); QStringList encode(const SubFile & subFile); private: QString encodeEntry(const SubEntry & entry); QString encodeToken(const SubToken & entry); }; #endif // TMPLAYERSUBTITLEFORMAT_H qnapi-0.1.9/src/subconvert/formats/microdvd.h0000644000174100017410000000114212567301464021137 0ustar jenkinsjenkins#ifndef MICRODVD_H #define MICRODVD_H #include "subconvert/subtitleformat.h" #include class MicroDVDSubtitleFormat : public SubtitleFormat { public: virtual ~MicroDVDSubtitleFormat() {} bool isTimeBased() { return false; } QString formatName() { return "mDVD"; } QString defaultExtension() { return "sub"; } bool detect(const QStringList &lines); SubFile decode(const QStringList &lines); QStringList encode(const SubFile & subFile); private: QString encodeEntry(const SubEntry & entry); QString encodeToken(const SubToken & entry); }; #endif // MICRODVD_H qnapi-0.1.9/src/subconvert/formats/mpl2.cpp0000644000174100017410000000370212567301464020541 0ustar jenkinsjenkins#include "mpl2.h" bool MPL2SubtitleFormat::detect(const QStringList &lines) { foreach(QString line, lines) { if(!line.trimmed().isEmpty()) { QRegExp r("^\\[(\\d+)\\]\\[(\\d+)\\](.*)"); r.setPatternSyntax(QRegExp::RegExp2); return r.exactMatch(line); } } return false; } SubFile MPL2SubtitleFormat::decode(const QStringList &lines) { SubFile sf; foreach(QString line, lines) { if(!line.trimmed().isEmpty()) { QRegExp r("^\\[(\\d+)\\]\\[(\\d+)\\](.*)"); r.setPatternSyntax(QRegExp::RegExp2); if(r.exactMatch(line)) { SubEntry se; se.frameStart = 100L * r.cap(1).toLong(); se.frameStop = 100L * r.cap(2).toLong(); QString tokenStream = r.cap(3); se.tokens = decodeTokenStream(tokenStream); sf.entries.push_back(se); } } } return sf; } QStringList MPL2SubtitleFormat::encode(const SubFile & subFile) { QStringList lines; foreach(const SubEntry & entry, subFile.entries) { lines.append(encodeEntry(entry)); } return lines; } QString MPL2SubtitleFormat::encodeEntry(const SubEntry & entry) { QString tokensBuff; foreach(const SubToken & token, entry.tokens) { tokensBuff += encodeToken(token); } return QString("[%1][%2]%3") .arg(entry.frameStart / 100) .arg(entry.frameStop / 100) .arg(tokensBuff); } QString MPL2SubtitleFormat::encodeToken(const SubToken & entry) { switch(entry.type) { case STT_WS: return " "; case STT_WORD: return entry.payload; case STT_NEWLINE: return "|"; case STT_BOLD: return "{y:b}"; case STT_ITALIC: return "{y:i}"; case STT_UNDERLINE: return "{y:u}"; case STT_FONTCOLOR: return QString("{c:%1}").arg(entry.payload); default: return ""; } } qnapi-0.1.9/src/subconvert/subtitleformatsregistry.h0000644000174100017410000000106612567301464022702 0ustar jenkinsjenkins#ifndef SUBTITLEFORMATSREGISTRY_H #define SUBTITLEFORMATSREGISTRY_H #include #include #include #include "subconvert/subtitleformat.h" class SubtitleFormatsRegistry { private: QMap formats; public: SubtitleFormatsRegistry(); ~SubtitleFormatsRegistry(); void registerFormat(SubtitleFormat *format); QStringList enumerateFormats() const; SubtitleFormat* select(const QString & format) const; }; SubtitleFormatsRegistry & GlobalFormatsRegistry(); #endif // SUBTITLEFORMATSREGISTRY_H qnapi-0.1.9/src/subconvert/subtitleformat.cpp0000644000174100017410000000663112567301464021264 0ustar jenkinsjenkins#include "subtitleformat.h" #include QVector SubtitleFormat::decodeTokenStream(QString tokenStream) { QVector tokens; SubToken tok; QMap tokenTypes = { {"{y:b}", STT_BOLD}, {"{b}", STT_BOLD}, {"", STT_BOLD}, {"{y:i}", STT_ITALIC}, {"{i}", STT_ITALIC}, {"", STT_ITALIC}, {"{y:u}", STT_UNDERLINE}, {"{u}", STT_UNDERLINE}, {"", STT_UNDERLINE}, {"{/y:b}", STT_BOLD_END}, {"{/b}", STT_BOLD_END}, {"", STT_BOLD_END}, {"{/y:i}", STT_ITALIC_END}, {"{/i}", STT_ITALIC_END}, {"", STT_ITALIC_END}, {"{/y:u}", STT_UNDERLINE_END}, {"{/u}", STT_UNDERLINE_END}, {"", STT_UNDERLINE_END}, {"{/c}", STT_FONTCOLOR_END}, {"", STT_FONTCOLOR_END}, {"|", STT_NEWLINE}, {"\r\n", STT_NEWLINE}, {"\n", STT_NEWLINE} }; QString wordBuff; while(!tokenStream.isEmpty()) { tok.payload.clear(); bool matched = false; foreach(QString token, tokenTypes.keys()) { if(tokenStream.startsWith(token, Qt::CaseInsensitive)) { tok.type = tokenTypes[token]; tokenStream.remove(0, token.size()); matched = true; break; } } if(!matched) { QRegExp colorR1("^\\{c:[$#](.*)\\}"); colorR1.setPatternSyntax(QRegExp::RegExp2); colorR1.setCaseSensitivity(Qt::CaseInsensitive); QRegExp colorR2("^"); colorR1.setPatternSyntax(QRegExp::RegExp2); colorR1.setCaseSensitivity(Qt::CaseInsensitive); if(colorR1.indexIn(tokenStream) == 0) { tok.type = STT_FONTCOLOR; tok.payload = colorR1.cap(2); tokenStream.remove(0, colorR1.cap(0).size()); matched = true; } else if(colorR2.indexIn(tokenStream) == 0) { tok.type = STT_FONTCOLOR; tok.payload = colorR2.cap(2); tokenStream.remove(0, colorR2.cap(0).size()); matched = true; } else if(tokenStream[0] == '/' && wordBuff.isEmpty()) { tok.type = STT_ITALIC; tokenStream.remove(0, 1); matched = true; } else if(tokenStream[0].isSpace()) { while(!tokenStream.isEmpty() && tokenStream[0].isSpace()) tokenStream.remove(0, 1); tok.type = STT_WS; matched = true; } else { wordBuff += tokenStream[0]; tokenStream.remove(0, 1); } } if(matched) { if(!wordBuff.isEmpty()) { SubToken wordTok; wordTok.type = STT_WORD; wordTok.payload = wordBuff; tokens.push_back(wordTok); wordBuff.clear(); } tokens.push_back(tok); } } if(!wordBuff.isEmpty()) { SubToken wordTok; wordTok.type = STT_WORD; wordTok.payload = wordBuff; tokens.push_back(wordTok); } if(!tokens.isEmpty() && tokens[0].type == STT_WS) { while(tokens[0].type == STT_WS) tokens.pop_front(); } return tokens; } qnapi-0.1.9/src/subconvert/subtitleconverter.cpp0000644000174100017410000001537212567301464022005 0ustar jenkinsjenkins#include "subtitleconverter.h" #include "subconvert/subtitleformatsregistry.h" #include "qnapiconfig.h" #include "ffprobemovieinfoparser.h" #include "movieinfo.h" #include "version.h" #include #include QString SubtitleConverter::detectFormat(const QString &subtitleFile) { const QStringList & lines = readFile(subtitleFile, 15); return detectFormat(lines); } QString SubtitleConverter::detectFormat(const QStringList & subtitleLines) { foreach(QString format, GlobalFormatsRegistry().enumerateFormats()) { if(GlobalFormatsRegistry().select(format)->detect(subtitleLines)) { return format; } } return ""; } bool SubtitleConverter::convertSubtitles(QString subtitleFile, QString targetFormatName, QString targetFileName, double movieFPS, double fpsRatio, double delayOffset) { return convertSubtitles(subtitleFile, targetFormatName, targetFileName, [=]() -> double { return movieFPS; }, fpsRatio, delayOffset); } bool SubtitleConverter::convertSubtitles(QString subtitleFile, QString targetFormatName, QString targetFileName, QString movieFile) { return convertSubtitles(subtitleFile, targetFormatName, targetFileName, [&]() -> double { FFProbeMovieInfoParser mip(GlobalConfig().ffProbePath()); MovieInfo mfm = mip.parseFile(movieFile); if(mfm.isFilled) return mfm.frameRate; else return 0.0; }); } bool SubtitleConverter::convertSubtitles(QString subtitleFile, QString targetFormatName, QString targetFileName, std::function determineFPS, double fpsRatio, double delayOffset) { QStringList subtitleLines = readFile(subtitleFile); QString detectedFormat = detectFormat(subtitleLines); if(detectedFormat.isEmpty()) return false; SubtitleFormat * inputFormat = GlobalFormatsRegistry().select(detectedFormat); SubtitleFormat * targetFormat = GlobalFormatsRegistry().select(targetFormatName); SubFile sf = inputFormat->decode(subtitleLines); double frameRate = 0.0; if(inputFormat->isTimeBased() != targetFormat->isTimeBased()) { frameRate = determineFPS(); if(frameRate <= 0.0) return false; if(targetFormat->isTimeBased()) { // convert frames to timestamps for(int i = 0; i < sf.entries.size(); ++i) { sf.entries[i].frameStart = frame2ts(sf.entries[i].frameStart, frameRate); sf.entries[i].frameStop = frame2ts(sf.entries[i].frameStop, frameRate); } } else { // convert timestamps to frames for(int i = 0; i < sf.entries.size(); ++i) { sf.entries[i].frameStart = ts2frame(sf.entries[i].frameStart, frameRate); sf.entries[i].frameStop = ts2frame(sf.entries[i].frameStop, frameRate); } } } if(fpsRatio != 1.0) { for(int i = 0; i < sf.entries.size(); ++i) { sf.entries[i].frameStart = (long)floor(fpsRatio * sf.entries[i].frameStart); sf.entries[i].frameStop = (long)floor(fpsRatio * sf.entries[i].frameStop); } } if(delayOffset != 0.0) { long offset = (long)(delayOffset * 1000.0); if(targetFormat->isTimeBased()) { for(int i = 0; i < sf.entries.size(); ++i) { sf.entries[i].frameStart = std::max(0L, sf.entries[i].frameStart + offset); sf.entries[i].frameStop = std::max(0L, sf.entries[i].frameStop + offset); } } else { if(frameRate <= 0.0) frameRate = determineFPS(); if(frameRate <= 0.0) return false; for(int i = 0; i < sf.entries.size(); ++i) { sf.entries[i].frameStart = std::max(0L, ts2frame(frame2ts(sf.entries[i].frameStart, frameRate) + offset, frameRate)); sf.entries[i].frameStop = std::max(0L, ts2frame(frame2ts(sf.entries[i].frameStop, frameRate) + offset, frameRate)); } } } if(!GlobalConfig().ppSkipConvertAds() && !sf.entries.isEmpty()) { SubToken stQNapi; stQNapi.type = STT_WORD; stQNapi.payload = "QNapi"; if(!sf.entries.last().tokens.contains(stQNapi)) { SubEntry adEntry; if(targetFormat->isTimeBased()) { adEntry.frameStart = sf.entries.back().frameStop + 2000L; adEntry.frameStop = adEntry.frameStart + 8000L; } else { adEntry.frameStart = sf.entries.back().frameStop + 50L; adEntry.frameStop = adEntry.frameStart + 200L; } QString ad = QString("Napisy pobrane i przetworzone programem QNapi|"); adEntry.tokens = targetFormat->decodeTokenStream(ad); SubToken urlToken; urlToken.type = STT_WORD; urlToken.payload = QNAPI_URL; adEntry.tokens.push_back(urlToken); sf.entries.push_back(adEntry); } } QStringList targetLines = targetFormat->encode(sf); return writeFile(targetFileName, targetLines); } long SubtitleConverter::ts2frame(long ts, double frameRate) { return (long)floor(frameRate * ts / 1000.0); } long SubtitleConverter::frame2ts(long frame, double frameRate) { return (long)floor(1000.0 * frame / frameRate); } QStringList SubtitleConverter::readFile(const QString & filename, long atMostLines) { QStringList buff; long current = 0; QFile inputFile(filename); if (inputFile.open(QIODevice::ReadOnly | QIODevice::Text)) { QTextStream in(&inputFile); while (!in.atEnd() || current < atMostLines) { buff += in.readLine(); ++current; } inputFile.close(); } return buff; } bool SubtitleConverter::writeFile(const QString & filename, const QStringList & lines) { QFile outputFile(filename); if(outputFile.open(QIODevice::WriteOnly | QIODevice::Text)) { QTextStream out(&outputFile); foreach(QString line, lines) { out << line << "\r\n"; } outputFile.close(); return true; } else { return false; } } qnapi-0.1.9/src/subconvert/subfile.h0000644000174100017410000000145312567301464017313 0ustar jenkinsjenkins#ifndef SUBFILE_H #define SUBFILE_H #include #include enum SubTokenType { STT_WS = 0, STT_WORD = 1, STT_NEWLINE = 2, STT_BOLD = 3, STT_BOLD_END = 4, STT_ITALIC = 5, STT_ITALIC_END = 6, STT_UNDERLINE = 7, STT_UNDERLINE_END = 8, STT_FONTCOLOR = 9, STT_FONTCOLOR_END = 10 }; struct SubToken { SubTokenType type; QString payload; bool operator==(const SubToken & other) const { return type == other.type && payload == other.payload; } }; struct SubEntry { long frameStart, frameStop; // if time-based, they represent frames as milliseconds // if frame-based, they represent exact frame numbers QVector tokens; }; struct SubFile { QVector entries; }; #endif // SUBFILE_H qnapi-0.1.9/src/subconvert/subtitleformatsregistry.cpp0000644000174100017410000000217712567301464023241 0ustar jenkinsjenkins#include "subtitleformatsregistry.h" #include "subconvert/formats/microdvd.h" #include "subconvert/formats/mpl2.h" #include "subconvert/formats/subrip.h" #include "subconvert/formats/tmplayer.h" SubtitleFormatsRegistry::SubtitleFormatsRegistry() {} SubtitleFormatsRegistry::~SubtitleFormatsRegistry() { foreach(QString formatName, formats.keys()) { delete formats[formatName]; } } void SubtitleFormatsRegistry::registerFormat(SubtitleFormat *format) { formats.insert(format->formatName(), format); } QStringList SubtitleFormatsRegistry::enumerateFormats() const { return formats.keys(); } SubtitleFormat* SubtitleFormatsRegistry::select(const QString & format) const { return formats[format]; } SubtitleFormatsRegistry & GlobalFormatsRegistry() { static SubtitleFormatsRegistry registry; if(registry.enumerateFormats().isEmpty()) { registry.registerFormat(new MicroDVDSubtitleFormat); registry.registerFormat(new MPL2SubtitleFormat); registry.registerFormat(new SubRipSubtitleFormat); registry.registerFormat(new TMPlayerSubtitleFormat); } return registry; } qnapi-0.1.9/src/subconvert/subtitleformat.h0000644000174100017410000000105612567301464020725 0ustar jenkinsjenkins#ifndef SUBTITLEFORMAT_H #define SUBTITLEFORMAT_H #include "subconvert/subfile.h" #include class SubtitleFormat { public: virtual ~SubtitleFormat() {} virtual bool isTimeBased() = 0; virtual QString formatName() = 0; virtual QString defaultExtension() = 0; virtual bool detect(const QStringList & lines) = 0; virtual SubFile decode(const QStringList & lines) = 0; virtual QStringList encode(const SubFile & subFile) = 0; QVector decodeTokenStream(QString tokenStream); }; #endif // SUBTITLEFORMAT_H qnapi-0.1.9/src/forms/0000755000174100017410000000000012567301464014442 5ustar jenkinsjenkinsqnapi-0.1.9/src/forms/frmopensubtitlesconfig.cpp0000644000174100017410000000314412567301464021743 0ustar jenkinsjenkins/***************************************************************************** ** QNapi ** Copyright (C) 2008-2009 Krzemin ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation; either version 2 of the License, or ** (at your option) any later version. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** *****************************************************************************/ #include "frmopensubtitlesconfig.h" #include "../qnapi.h" frmOpenSubtitlesConfig::frmOpenSubtitlesConfig(QWidget *parent, Qt::WindowFlags f) : QDialog(parent, f) { ui.setupUi(this); QNapi q; q.addEngines(q.enumerateEngines()); setWindowIcon(q.engineByName("OpenSubtitles")->engineIcon()); load(); connect(ui.pbRegister, SIGNAL(clicked()), this, SLOT(pbRegisterClicked())); QRect position = frameGeometry(); position.moveCenter(QDesktopWidget().availableGeometry().center()); move(position.topLeft()); } void frmOpenSubtitlesConfig::accept() { GlobalConfig().setNick("OpenSubtitles", ui.leNick->text()); GlobalConfig().setPass("OpenSubtitles", ui.lePass->text()); QDialog::accept(); } void frmOpenSubtitlesConfig::pbRegisterClicked() { ((QNapiApp*)qApp)->showOSCreateUser(); } void frmOpenSubtitlesConfig::load() { ui.leNick->setText(GlobalConfig().nick("OpenSubtitles")); ui.lePass->setText(GlobalConfig().pass("OpenSubtitles")); } qnapi-0.1.9/src/forms/frmprogress.cpp0000644000174100017410000002567212567301464017533 0ustar jenkinsjenkins/***************************************************************************** ** QNapi ** Copyright (C) 2008-2009 Krzemin ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation; either version 2 of the License, or ** (at your option) any later version. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** *****************************************************************************/ #include "frmprogress.h" #include "qnapiapp.h" frmProgress::frmProgress(QWidget * parent, Qt::WindowFlags f) : QWidget(parent, f) { qRegisterMetaType("QNapiSubtitleInfoList"); ui.setupUi(this); setAttribute(Qt::WA_DeleteOnClose, false); setAttribute(Qt::WA_QuitOnClose, false); setBatchMode(false); connect(&getThread, SIGNAL(fileNameChange(const QString &)), ui.lbFileName, SLOT(setText(const QString &))); connect(&getThread, SIGNAL(actionChange(const QString &)), ui.lbAction, SLOT(setText(const QString &))); connect(&getThread, SIGNAL(progressChange(int, int, float)), this, SLOT(updateProgress(int, int, float))); connect(&getThread, SIGNAL(selectSubtitles(QString, QNapiSubtitleInfoList)), this, SLOT(selectSubtitles(QString, QNapiSubtitleInfoList))); connect(this, SIGNAL(subtitlesSelected(int)), &getThread, SLOT(subtitlesSelected(int))); connect(&getThread, SIGNAL(finished()), this, SLOT(downloadFinished())); QRect position = frameGeometry(); position.moveCenter(QDesktopWidget().availableGeometry().center()); move(position.topLeft()); } void frmProgress::receiveRequest(const QString & request) { enqueueFile(request); if(!getThread.isRunning()) download(); raise(); activateWindow(); } void frmProgress::enqueueFile(const QString & filePath) { static QMutex locker; locker.lock(); if(QFile::exists(filePath)) { getThread.queue << filePath; updateProgress(-1, getThread.queue.size(), -1); } locker.unlock(); } void frmProgress::enqueueFiles(const QStringList & fileList) { for(int i = 0; i < fileList.size(); i++) { enqueueFile(fileList.at(i)); } } bool frmProgress::download() { if(summary.isVisible()) { summary.close(); } if(!QNapi::checkP7ZipPath()) { QMessageBox::warning(0, tr("Brak programu p7zip!"), tr("Ścieżka do programu p7zip jest nieprawidłowa!")); return false; } if(!QNapi::checkTmpPath()) { QMessageBox::warning(0, tr("Nieprawidłowy katalog tymczasowy!"), tr("Nie można pisać do katalogu tymczasowego! Sprawdź swoje ustawienia.")); return false; } if(getThread.queue.isEmpty()) { QMessageBox::warning(0, tr("Brak plików!"), tr("Nie wskazano filmów do pobrania napisów!")); return false; } if(!isVisible()) { QRect position = frameGeometry(); position.moveCenter(QDesktopWidget().availableGeometry().center()); move(position.topLeft()); show(); } showSummary = true; closeRequested = false; ui.pbCancel->setEnabled(true); getThread.start(); return true; } void frmProgress::updateProgress(int current, int all, float stageProgress) { static int lastCurrent, lastAll; static float lastStageProgress; static QMutex m; m.lock(); if(current >= 0) lastCurrent = current; if(all >= 0) lastAll = all; if(stageProgress >= 0) lastStageProgress = stageProgress; QString windowTitle = (lastAll > 1) ? QString(tr("QNapi - pobieranie napisów (%1/%2)")).arg(lastCurrent + 1).arg(lastAll) : QString(tr("QNapi - pobieranie napisów...")); setWindowTitle(windowTitle); ui.pbProgress->setMaximum(lastAll * 100); ui.pbProgress->setValue(lastCurrent * 100 + (int)(lastStageProgress * 100)); m.unlock(); } void frmProgress::selectSubtitles(QString fileName, QNapiSubtitleInfoList subtitles) { frmSelect.setFileName(fileName); frmSelect.setSubtitlesList(subtitles); int selIdx; if(frmSelect.exec() == QDialog::Accepted) { selIdx = frmSelect.getSelectedIndex(); } else { selIdx = -1; } emit subtitlesSelected(selIdx); } void frmProgress::downloadFinished() { hide(); QStringList queue = getThread.queue; getThread.queue.clear(); mutex.lock(); if(showSummary) { if(!getThread.criticalMessage.isEmpty()) { QMessageBox::critical(0, tr("Błąd krytyczny!"), getThread.criticalMessage); } else if(queue.size() > 0 && !(getThread.gotList.isEmpty() && getThread.failedList.isEmpty())) { summary.setSummaryList(getThread.gotList, getThread.failedList); summary.exec(); } } if(closeRequested) close(); mutex.unlock(); if(batchMode) qApp->quit(); } void frmProgress::closeEvent(QCloseEvent *event) { if(getThread.isRunning()) { if( QMessageBox::question(this, tr("QNapi"), tr("Czy chcesz przerwać pobieranie napisów?"), QMessageBox::Yes | QMessageBox::No) == QMessageBox::Yes ) { mutex.lock(); showSummary = false; getThread.requestAbort(); ui.lbAction->setText(tr("Kończenie zadań...")); ui.lbFileName->setText(""); ui.pbCancel->setEnabled(false); qApp->processEvents(); closeRequested = true; mutex.unlock(); event->ignore(); } else { event->ignore(); } } else { event->accept(); } } void frmProgress::dragEnterEvent(QDragEnterEvent *event) { QUrl url(event->mimeData()->urls().at(0)); QFileInfo fi(url.toLocalFile()); if(fi.exists() && fi.isFile()) event->acceptProposedAction(); } void frmProgress::dropEvent(QDropEvent *event) { QList urlList; QFileInfo info; urlList = event->mimeData()->urls(); foreach(QUrl url, urlList) { info.setFile(url.toLocalFile()); if(!info.exists() || !info.isFile()) continue; enqueueFile(url.toLocalFile()); } } void GetThread::subtitlesSelected(int idx) { selIdx = idx; waitForDlg.unlock(); } #define ABORT_POINT {if(abort){ delete napi; return;}} void GetThread::run() { abort = false; criticalMessage.clear(); if(queue.size() <= 0) return; QString windowTitle, md5; napiSuccess = napiFail = 0; gotList.clear(); failedList.clear(); QNapi *napi = new QNapi(); if(!engines.isEmpty()) { napi->addEngines(engines); } else if(!napi->addEngines(GlobalConfig().enginesList())) { emit criticalError(tr("Błąd: ") + napi->error()); delete napi; return; } emit progressChange(0, queue.size(), 0.0f); QString language = !lang.isEmpty() ? lang : GlobalConfig().language(); QString languageBackup = langBackupPassed ? langBackup : GlobalConfig().languageBackup(); for(int i = 0; i < queue.size(); i++) { ABORT_POINT QFileInfo fi(queue[i]); emit fileNameChange(fi.fileName()); napi->setMoviePath(queue[i]); emit progressChange(i, queue.size(), 0.1f); emit actionChange(tr("Sprawdzanie uprawnień do katalogu z filmem...")); if(!napi->checkWritePermissions()) { emit criticalError(tr("Brak uprawnień zapisu do katalogu '%1'!").arg(QFileInfo(queue[i]).path())); delete napi; return; } emit progressChange(i, queue.size(), 0.3f); emit actionChange(tr("Obliczanie sumy kontrolnej pliku...")); napi->checksum(); ABORT_POINT bool found = false; SearchPolicy sp = GlobalConfig().searchPolicy(); foreach(QString e, napi->listLoadedEngines()) { emit progressChange(i, queue.size(), 0.4f); emit actionChange(tr("Szukanie napisów [%1] (%2)...").arg(language, e)); found = napi->lookForSubtitles(language, e) || found; if(sp == SP_BREAK_IF_FOUND) break; ABORT_POINT } if(!found && !languageBackup.isEmpty()) { foreach(QString e, napi->listLoadedEngines()) { emit progressChange(i, queue.size(), 0.45f); emit actionChange(tr("Szukanie napisów w języku zapasowym [%1] (%2)...").arg(languageBackup, e)); found = napi->lookForSubtitles(languageBackup, e) || found; if(sp == SP_BREAK_IF_FOUND) break; ABORT_POINT } } if(!found) { ++napiFail; failedList << queue[i]; continue; } // jesli mozna i potrzeba, listujemy dostepne napisy if(napi->needToShowList()) { emit selectSubtitles( QFileInfo(queue[i]).fileName(), napi->listSubtitles()); waitForDlg.lock(); waitForDlg.lock(); waitForDlg.unlock(); } else { selIdx = napi->bestIdx(); } ABORT_POINT if(selIdx == -1) { ++napiFail; failedList << queue[i]; continue; } emit progressChange(i, queue.size(), 0.5); emit actionChange(tr("Pobieranie napisów dla pliku...")); if(!napi->download(selIdx)) { ABORT_POINT ++napiFail; failedList << queue[i]; continue; } ABORT_POINT emit progressChange(i, queue.size(), 0.65); emit actionChange(tr("Rozpakowywanie napisów...")); if(!napi->unpack()) { ++napiFail; failedList << queue[i]; continue; } if(napi->ppEnabled()) { emit progressChange(i, queue.size(), 0.8f); emit actionChange(tr("Przetwarzanie napisów...")); napi->pp(); } emit progressChange(i, queue.size(), 0.9); emit actionChange(tr("Dopasowywanie napisów...")); if(!napi->match()) { ABORT_POINT ++napiFail; failedList << queue[i]; emit criticalError(tr("Nie udało się dopasować napisów!!")); return; } ++napiSuccess; gotList << queue[i]; napi->cleanup(); emit progressChange(i, queue.size(), 1.0f); } emit progressChange(queue.size() - 1, queue.size(), 1); delete napi; } qnapi-0.1.9/src/forms/frmnapiprojektcorrect.h0000644000174100017410000000415712567301464021237 0ustar jenkinsjenkins/***************************************************************************** ** QNapi ** Copyright (C) 2008-2009 Krzemin ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation; either version 2 of the License, or ** (at your option) any later version. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** *****************************************************************************/ #ifndef __FRMCORRECT__H__ #define __FRMCORRECT__H__ #include "ui_frmnapiprojektcorrect.h" #include #include #include #include #include #include #include #include "qnapithread.h" #include "qnapiconfig.h" #include "engines/qnapiprojektengine.h" #include "qnapiopendialog.h" class PostThread : public QNapiThread { Q_OBJECT public: void run(); void setPostParams(const QString & movie_file, const QString & subtitles_file, const QString & comment_txt, const QString & lang) { movie = movie_file; subtitles = subtitles_file; comment = comment_txt; language = lang; } QNapiProjektEngine::UploadResult taskResult; signals: void postFinished(bool interrupted = false); void invalidUserPass(); private: QString movie, subtitles, comment, language; }; class frmNapiProjektCorrect: public QDialog { Q_OBJECT public: frmNapiProjektCorrect(QWidget *parent = 0, Qt::WindowFlags f = 0); ~frmNapiProjektCorrect() {}; private: void closeEvent(QCloseEvent *event); Ui::frmCorrect ui; PostThread postThread; private slots: void selectMovie(); void selectSubtitles(); void checkPostEnable(); void pbPostClicked(); void postFinished(bool interrupt = false); void invalidUserPass(); }; #endif qnapi-0.1.9/src/forms/frmopensubtitlesconfig.h0000644000174100017410000000224312567301464021407 0ustar jenkinsjenkins/***************************************************************************** ** QNapi ** Copyright (C) 2008-2009 Krzemin ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation; either version 2 of the License, or ** (at your option) any later version. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** *****************************************************************************/ #ifndef __FRMOpenSubtitlesCONFIG__H__ #define __FRMOpenSubtitlesCONFIG__H__ #include #include "ui_frmopensubtitlesconfig.h" #include "qnapiconfig.h" #include "qnapiapp.h" class frmOpenSubtitlesConfig : public QDialog { Q_OBJECT public: frmOpenSubtitlesConfig(QWidget *parent = 0, Qt::WindowFlags f = 0); ~frmOpenSubtitlesConfig() {} public slots: void accept(); void pbRegisterClicked(); private: Ui::frmOpenSubtitlesConfig ui; void load(); }; #endif qnapi-0.1.9/src/forms/frmconvert.cpp0000644000174100017410000002027112567301464017335 0ustar jenkinsjenkins#include "frmconvert.h" #include #include #include #include #include #include "subconvert/subtitleformatsregistry.h" #include "ffprobemovieinfoparser.h" #include "qnapiconfig.h" #include "qnapiopendialog.h" frmConvert::frmConvert(QWidget *parent, Qt::WindowFlags f) : QDialog(parent, f), targetFileNameSelected(false) { ui.setupUi(this); setAttribute(Qt::WA_QuitOnClose, false); QRect position = frameGeometry(); position.moveCenter(QDesktopWidget().availableGeometry().center()); move(position.topLeft()); ui.lbDetectedFormatValue->setText(""); ui.cbTargetFormat->clear(); foreach(QString format, GlobalFormatsRegistry().enumerateFormats()) { ui.cbTargetFormat->addItem(format); } connect(ui.pbSrcSubFileSelect, SIGNAL(clicked()), this, SLOT(srcSubSelectClicked())); connect(ui.leSrcSubFile, SIGNAL(textChanged(const QString &)), this, SLOT(srcSubFileLoaded(const QString &))); connect(ui.cbTargetFormat, SIGNAL(currentIndexChanged(int)), this, SLOT(targetFormatChanged(int))); connect(ui.cbTargetExtension, SIGNAL(currentIndexChanged(int)), this, SLOT(targetExtensionChanged())); connect(ui.pbMovieFPSSelect, SIGNAL(clicked()), this, SLOT(movieFPSSelectClicked())); connect(ui.pbTargetMovieFPSSelect, SIGNAL(clicked()), this, SLOT(targetMovieFPSSelectClicked())); connect(ui.cbDelaySubtitles, SIGNAL(toggled(bool)), this, SLOT(subDelayToggled())); connect(ui.pbConvert, SIGNAL(clicked()), this, SLOT(convertClicked())); if(GlobalConfig().ppSubFormat().isEmpty()) { targetFormat = GlobalFormatsRegistry().enumerateFormats().first(); } else { targetFormat = GlobalConfig().ppSubFormat(); ui.cbTargetFormat->setCurrentText(targetFormat); } if(!GlobalConfig().ppSubExtension().isEmpty()) { ui.cbTargetExtension->setCurrentText(GlobalConfig().ppSubExtension()); } } void frmConvert::srcSubSelectClicked() { QNapiOpenDialog openSubtitle(this, tr("Wybierz plik z napisami"), QFileInfo(ui.leSrcSubFile->text()).path(), QNapiOpenDialog::Subtitles); if(openSubtitle.selectFile()) { ui.leSrcSubFile->setText(openSubtitle.selectedFiles().first()); } } void frmConvert::srcSubFileLoaded(const QString & srcSubFileName) { bool fileExists = QFileInfo(srcSubFileName).exists(); ui.lbDetectedFormat->setEnabled(fileExists); ui.lbDetectedFormatValue->setVisible(fileExists); if(fileExists) { QString detectedFormat = subConverter.detectFormat(srcSubFileName); if(detectedFormat.isEmpty()) { ui.lbDetectedFormatValue->setText(tr("niepoprawny")); ui.lbDetectedFormatValue->setStyleSheet("QLabel { color: red }"); } else { ui.lbDetectedFormatValue->setText(detectedFormat); ui.lbDetectedFormatValue->setStyleSheet("QLabel { color: black }"); } srcFormat = detectedFormat; } else { srcFormat = ""; } ui.lbTargetFormat->setEnabled(!srcFormat.isEmpty()); ui.cbTargetFormat->setEnabled(!srcFormat.isEmpty()); ui.lbTargetExtension->setEnabled(!srcFormat.isEmpty()); ui.cbTargetExtension->setEnabled(!srcFormat.isEmpty()); ui.cbChangeFPS->setEnabled(!srcFormat.isEmpty()); ui.cbDelaySubtitles->setEnabled(!srcFormat.isEmpty()); ui.pbMovieFPSSelect->setEnabled(!srcFormat.isEmpty()); ui.lbTargetFileName->setEnabled(!srcFormat.isEmpty()); ui.leTargetFileName->setEnabled(!srcFormat.isEmpty()); ui.pbConvert->setEnabled(!srcFormat.isEmpty()); checkFPSNeeded(); generateTargetFileName(); } void frmConvert::targetFormatChanged(int targetFormatIdx) { targetFormat = GlobalFormatsRegistry().enumerateFormats().at(targetFormatIdx); checkFPSNeeded(); } void frmConvert::checkFPSNeeded() { bool fpsNeeded; if(srcFormat.isEmpty() || targetFormat.isEmpty()) { fpsNeeded = false; } else { SubtitleFormat * srcSF = GlobalFormatsRegistry().select(srcFormat); SubtitleFormat * targetSF = GlobalFormatsRegistry().select(targetFormat); fpsNeeded = (srcSF->isTimeBased() != targetSF->isTimeBased()) || (ui.cbDelaySubtitles->isChecked() && !targetSF->isTimeBased()); QString targetDefaultExt = targetSF->defaultExtension(); ui.cbTargetExtension->setItemText(0, tr("Domyślne (%1)").arg(targetDefaultExt)); generateTargetFileName(); } ui.cbMovieFPS->setEnabled(fpsNeeded); ui.lbMovieFPS->setEnabled(fpsNeeded); ui.pbMovieFPSSelect->setEnabled(fpsNeeded); if(fpsNeeded) { QFileInfo srcSubFI(ui.leSrcSubFile->text()); QString movieFilePathBase = srcSubFI.absolutePath() + "/" + srcSubFI.completeBaseName(); foreach(QString movieExt, GlobalConfig().movieExtensions()) { QString movieFilePath = movieFilePathBase + "." + movieExt; if(QFileInfo(movieFilePath).exists()) { QString fps = determineMovieFPS(movieFilePath); ui.cbMovieFPS->setCurrentText(fps); ui.cbFPSTo->setCurrentText(fps); break; } } } } void frmConvert::movieFPSSelectClicked() { QNapiOpenDialog openMovie(this, tr("Wybierz plik z filmem"), QFileInfo(ui.leSrcSubFile->text()).path(), QNapiOpenDialog::Movies); if(openMovie.selectFile()) { QString moviePath = openMovie.selectedFiles().first(); QString fps = determineMovieFPS(moviePath); ui.cbMovieFPS->setCurrentText(fps); } } QString frmConvert::determineMovieFPS(const QString & movieFilePath) { FFProbeMovieInfoParser mip(GlobalConfig().ffProbePath()); MovieInfo mi = mip.parseFile(movieFilePath); return QString::number(mi.frameRate, 'f', 3); } void frmConvert::targetMovieFPSSelectClicked() { QNapiOpenDialog openMovie(this, tr("Wybierz plik z filmem"), QFileInfo(ui.leSrcSubFile->text()).path(), QNapiOpenDialog::Movies); if(openMovie.selectFile()) { QString moviePath = openMovie.selectedFiles().first(); QString fps = determineMovieFPS(moviePath); ui.cbFPSTo->setCurrentText(fps); } } void frmConvert::targetExtensionChanged() { generateTargetFileName(); } void frmConvert::generateTargetFileName() { if(!targetFileNameSelected) { QFileInfo srcSubFI(ui.leSrcSubFile->text()); QString extension; if(ui.cbTargetExtension->currentIndex() == 0) { SubtitleFormat * targetSF = GlobalFormatsRegistry().select(targetFormat); extension = targetSF->defaultExtension(); } else { extension = ui.cbTargetExtension->currentText(); } QString defaultTargetPath = srcSubFI.absolutePath() + "/" + srcSubFI.completeBaseName() + "." + extension; ui.leTargetFileName->setText(defaultTargetPath); } } void frmConvert::subDelayToggled() { checkFPSNeeded(); } void frmConvert::convertClicked() { double fpsRatio = 1.0, delayOffset = 0.0; if(ui.cbChangeFPS->isChecked()) { double fpsFrom = ui.cbFPSFrom->currentText().toDouble(); double fpsTo = ui.cbFPSTo->currentText().toDouble(); fpsRatio = fpsTo / fpsFrom; } if(ui.cbDelaySubtitles->isChecked()) { delayOffset = ui.sbDelayOffset->value(); } if(subConverter.convertSubtitles(ui.leSrcSubFile->text(), targetFormat, ui.leTargetFileName->text(), ui.cbMovieFPS->currentText().toDouble(), fpsRatio, delayOffset)) { QMessageBox::information(this, tr("Przekonwertowano napisy"), tr("Poprawnie zmieniono format napisów z '%1' na '%2'").arg(srcFormat, targetFormat)); } else { QMessageBox::warning(this, tr("Problem podczas konwertowania napisów"), tr("Wystąpił problem podczas zamiany formatu napisów!")); } } qnapi-0.1.9/src/forms/frmscan.cpp0000644000174100017410000002306712567301464016607 0ustar jenkinsjenkins/***************************************************************************** ** QNapi ** Copyright (C) 2008-2009 Krzemin ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation; either version 2 of the License, or ** (at your option) any later version. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** *****************************************************************************/ #include "frmscan.h" frmScan::frmScan(QWidget *parent, Qt::WindowFlags f) : QDialog(parent, f) { ui.setupUi(this); setAttribute(Qt::WA_QuitOnClose, false); connect(ui.pbDirectorySelect, SIGNAL(clicked()), this, SLOT(selectDirectory())); connect(ui.leDirectory, SIGNAL(textChanged(QString)), this, SLOT(leDirectoryTextChanged())); connect(ui.pbScan, SIGNAL(clicked()), this, SLOT(pbScanClicked())); connect(&scanThread, SIGNAL(addFile(QString)), this, SLOT(addFile(QString))); connect(&scanThread, SIGNAL(folderChange(QString)), this, SLOT(folderChange(QString))); connect(&scanThread, SIGNAL(scanFinished(bool)), this, SLOT(scanFinished())); connect(ui.pbSelectAll, SIGNAL(clicked()), this, SLOT(pbSelectAllClicked())); connect(ui.pbUnselectAll, SIGNAL(clicked()), this, SLOT(pbUnselectAllClicked())); connect(ui.pbInvertSelection, SIGNAL(clicked()), this, SLOT(pbInvertSelectionClicked())); connect(ui.lwMovies, SIGNAL(itemClicked(QListWidgetItem*)), this, SLOT(lwMoviesClicked(QListWidgetItem*))); if(QFileInfo(GlobalConfig().lastScanDir()).isDir()) ui.leDirectory->setText(GlobalConfig().lastScanDir()); QList scanFilters = GlobalConfig().scanFilters(); ui.cbFilters->clear(); for(int i = 0; i < scanFilters.size(); i++) { ui.cbFilters->addItem(scanFilters[i]); } ui.leSkipFilters->setText(GlobalConfig().scanSkipFilters()); ui.cbSkipIfSubtitlesExists->setChecked(GlobalConfig().scanSkipIfSubtitlesExists()); iconFilm = QIcon(":/ui/film.png"); QRect position = frameGeometry(); position.moveCenter(QDesktopWidget().availableGeometry().center()); move(position.topLeft()); } frmScan::~frmScan() { QList scanFilters; for(int i = 0; i < ui.cbFilters->count(); i++) { scanFilters << ui.cbFilters->itemText(i); } GlobalConfig().setLastScanDir(ui.leDirectory->text()); GlobalConfig().setScanFilters(scanFilters); GlobalConfig().setScanSkipFilters(ui.leSkipFilters->text()); GlobalConfig().setScanSkipIfSubtitlesExists(ui.cbSkipIfSubtitlesExists->isChecked()); GlobalConfig().save(); } void frmScan::setInitDir(const QString & dir) { if(!dir.isEmpty() && QFileInfo(dir).isDir()) { ui.leDirectory->setText(QFileInfo(dir).absoluteFilePath()); } } void frmScan::closeEvent(QCloseEvent *event) { if(scanThread.isRunning()) { scanThread.requestAbort(); scanThread.wait(); } event->accept(); } void frmScan::keyPressEvent(QKeyEvent * event) { if(event->key() == Qt::Key_Escape) close(); } void frmScan::selectDirectory() { QString dir = QFileInfo(ui.leDirectory->text()).path(); dir = QDir().exists(dir) ? dir : GlobalConfig().lastScanDir(); QNapiOpenDialog openDialog(this, tr("Wskaż katalog do skanowania"), dir, QNapiOpenDialog::None); if(openDialog.selectDirectory()) { dir = openDialog.selectedFiles().first(); if(QDir().exists(dir)) ui.leDirectory->setText(dir); } } void frmScan::leDirectoryTextChanged() { ui.pbScan->setEnabled(!ui.leDirectory->text().isEmpty() ? QDir().exists(ui.leDirectory->text()) : false); } void frmScan::pbScanClicked() { if(!scanThread.isRunning()) { ui.leDirectory->setEnabled(false); ui.pbDirectorySelect->setEnabled(false); ui.pbScan->setText(tr("Przerwij")); ui.lbAction->setText(tr("Skanowanie katalogów...")); ui.pbGet->setEnabled(false); enableControlWidgets(false); enableFilesWidgets(false); ui.lwMovies->clear(); scanThread.setSearchPath(ui.leDirectory->text()); scanThread.setFilters(ui.cbFilters->currentText()); scanThread.setSkipFilters(ui.leSkipFilters->text()); scanThread.setSkipIfSubtitlesExists(ui.cbSkipIfSubtitlesExists->isChecked()); scanThread.setFollowSymLinks(ui.cbFollowSymLinks->isChecked()); scanThread.start(); } else { scanThread.requestAbort(); ui.lbAction->setText(tr("Przerywanie skanowania katalogów...")); ui.pbScan->setEnabled(false); qApp->processEvents(); scanThread.wait(); ui.pbScan->setEnabled(true); scanFinished(); } } void frmScan::addFile(const QString & fileName) { QListWidgetItem * item = new QListWidgetItem(iconFilm, QFileInfo(fileName).fileName(), ui.lwMovies); item->setToolTip(fileName); item->setFlags(item->flags() | Qt::ItemIsUserCheckable); item->setCheckState(Qt::Unchecked); ui.lwMovies->addItem(item); } void frmScan::folderChange(const QString & dirName) { ui.lbAction->setText(QString("Skanowanie katalogu %1..").arg(dirName)); } void frmScan::scanFinished() { enableControlWidgets(true); enableFilesWidgets(ui.lwMovies->count() > 0); ui.pbScan->setText("Skanuj"); ui.lbAction->setText(tr((ui.lwMovies->count() > 0) ? "Zaznacz filmy, do których chcesz pobrać napisy." : "Nie znaleziono plików z filmami.")); } void frmScan::enableControlWidgets(bool enable) { ui.lbDirectory->setEnabled(enable); ui.leDirectory->setEnabled(enable); ui.pbDirectorySelect->setEnabled(enable); ui.lbFilter->setEnabled(enable); ui.cbFilters->setEnabled(enable); ui.lbSkip->setEnabled(enable); ui.leSkipFilters->setEnabled(enable); ui.cbSkipIfSubtitlesExists->setEnabled(enable); ui.cbFollowSymLinks->setEnabled(enable); } void frmScan::enableFilesWidgets(bool enable) { ui.lbMovies->setEnabled(enable); ui.lwMovies->setEnabled(enable); ui.pbSelectAll->setEnabled(enable); ui.pbUnselectAll->setEnabled(enable); ui.pbInvertSelection->setEnabled(enable); } void frmScan::lwMoviesClicked(QListWidgetItem * item) { Q_UNUSED(item); checkPbGetEnabled(); } void frmScan::pbSelectAllClicked() { ui.lwMovies->selectAll(); checkPbGetEnabled(); } void frmScan::pbUnselectAllClicked() { ui.lwMovies->unselectAll(); checkPbGetEnabled(); } void frmScan::pbInvertSelectionClicked() { ui.lwMovies->invertSelection(); checkPbGetEnabled(); } void frmScan::checkPbGetEnabled() { for(int i = 0; i < ui.lwMovies->count(); ++i) { if(ui.lwMovies->item(i)->checkState() == Qt::Checked) { ui.pbGet->setEnabled(true); return; } } ui.pbGet->setEnabled(false); } void frmScan::accept() { selectedFiles.clear(); for(int i = 0; i < ui.lwMovies->count(); i++) { if(ui.lwMovies->item(i)->checkState() == Qt::Checked) selectedFiles << ui.lwMovies->item(i)->toolTip(); } QDialog::accept(); } void ScanFilesThread::run() { abort = false; fileList.clear(); visited.clear(); QDir::Filters filters = QDir::AllDirs | QDir::Files | QDir::NoDotAndDotDot | QDir::Readable | QDir::Hidden; if(!followSymLinks) filters |= QDir::NoSymLinks; emit scanFinished(doScan(searchPath, filters)); } bool ScanFilesThread::doScan(const QString & path, QDir::Filters filters) { QString myPath = QFileInfo(path).absoluteFilePath(); if(!QDir().exists(myPath)) return false; QString myCPath = QDir(path).canonicalPath(); if(visited.contains(myCPath)) return true; visited << myCPath; emit folderChange(myPath); QFileInfoList list = QDir(myPath).entryInfoList(scanFilters, filters); for(QFileInfoList::iterator p=list.begin(); p != list.end(); p++) { if(abort) return false; if((*p).isDir() && ((*p).absoluteFilePath() != myPath)) { if(!doScan((*p).absoluteFilePath(), filters)) return false; } else { if(!QFile::exists((*p).absoluteFilePath())) continue; bool subtitleFileFound = false; if(skipIfSubtitlesExists) { foreach(QString subExt, GlobalConfig().subtitleExtensions()) { if(QFile::exists((*p).absolutePath() + "/" + (*p).completeBaseName() + "." + subExt)) { subtitleFileFound = true; break; } } } if(subtitleFileFound) { continue; } bool skip = false; for(QStringList::iterator s = skipFilters.begin(); s != skipFilters.end(); s++) { if((*s).isEmpty()) continue; if((*p).fileName().indexOf(*s) >= 0) { skip = true; break; } } if(skip) continue; fileList << (*p).absoluteFilePath(); emit addFile((*p).absoluteFilePath()); } } return true; } qnapi-0.1.9/src/forms/frmnapiprojektreport.h0000644000174100017410000000417012567301464021104 0ustar jenkinsjenkins/***************************************************************************** ** QNapi ** Copyright (C) 2008-2009 Krzemin ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation; either version 2 of the License, or ** (at your option) any later version. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** *****************************************************************************/ #ifndef __FRMREPORT__H__ #define __FRMREPORT__H__ #include "ui_frmnapiprojektreport.h" #include #include #include #include #include #include #include #include "qnapithread.h" #include "qnapiconfig.h" #include "engines/qnapiprojektengine.h" #include "qnapiopendialog.h" class ReportThread : public QNapiThread { Q_OBJECT public: void run(); void setReportParams(const QString & movie_file, const QString & lang, const QString & comment_txt) { movie = movie_file; language = lang; comment = comment_txt; } QNapiProjektEngine::ReportResult taskResult; signals: void reportFinished(bool interrupt = false); void serverMessage(QString msg); void invalidUserPass(); private: QString movie, language, comment; }; class frmNapiProjektReport: public QDialog { Q_OBJECT public: frmNapiProjektReport(QWidget *parent = 0, Qt::WindowFlags f = 0); ~frmNapiProjektReport() {}; private: void closeEvent(QCloseEvent *event); Ui::frmReport ui; ReportThread reportThread; private slots: void selectMovie(); void checkReportEnable(); void cbProblemChanged(); void pbReportClicked(); void reportFinished(bool interrupt = false); void serverMessage(QString msg); void invalidUserPass(); }; #endif qnapi-0.1.9/src/forms/frmprogress.h0000644000174100017410000000713312567301464017170 0ustar jenkinsjenkins/***************************************************************************** ** QNapi ** Copyright (C) 2008-2009 Krzemin ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation; either version 2 of the License, or ** (at your option) any later version. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** *****************************************************************************/ #ifndef __FRMPROGRESS__H__ #define __FRMPROGRESS__H__ #include "ui_frmprogress.h" #include #include #include #include #include #include #include #include #include "frmsummary.h" #include "qnapi.h" #include "qnapithread.h" #include "qnapiconfig.h" #include "qnapiopendialog.h" #include "frmlistsubtitles.h" class GetThread : public QNapiThread { Q_OBJECT public: GetThread() { connect(this, SIGNAL(criticalError(const QString &)), this, SLOT(setCriticalMessage(const QString &))); } signals: void fileNameChange(const QString & newfileName); void actionChange(const QString & newAction); void progressChange(int current, int all, float stageProgress); void criticalError(const QString & message); void selectSubtitles(QString fileName, QNapiSubtitleInfoList subtitles); private slots: void setCriticalMessage(const QString & msg) { criticalMessage = msg; } void subtitlesSelected(int idx); public: void setEngines(QStringList enginesList) { engines = enginesList; } void setLanguages(QString language, QString languageBackup, bool languageBackupPassed){ lang = language; langBackup = languageBackup; langBackupPassed = languageBackupPassed; } void run(); QStringList queue, gotList, failedList, engines; QString lang, langBackup; bool langBackupPassed; int napiSuccess, napiFail; QString criticalMessage; QMutex waitForDlg; int selIdx; }; class frmProgress: public QWidget { Q_OBJECT public: frmProgress(QWidget *parent = 0, Qt::WindowFlags f = 0); void setEngines(QStringList enginesList) { getThread.setEngines(enginesList); } signals: void subtitlesSelected(int idx); public slots: void receiveRequest(const QString & request); void enqueueFile(const QString &file); void enqueueFiles(const QStringList &fileList); bool download(); void updateProgress(int current, int all, float stageProgress); void selectSubtitles(QString fileName, QNapiSubtitleInfoList subtitles); void downloadFinished(); void setBatchMode(bool value) { batchMode = value; } void setBatchLanguages(QString lang, QString langBackup, bool langBackupPassed) { getThread.setLanguages(lang, langBackup, langBackupPassed); } bool isBatchMode() { return batchMode; } private: void closeEvent(QCloseEvent *event); void dragEnterEvent(QDragEnterEvent *event); void dropEvent(QDropEvent *event); Ui::frmProgress ui; GetThread getThread; frmListSubtitles frmSelect; frmSummary summary; bool batchMode, showSummary, closeRequested; QMutex mutex; }; #endif qnapi-0.1.9/src/forms/frmnapiprojektcorrect.cpp0000644000174100017410000001437512567301464021575 0ustar jenkinsjenkins/***************************************************************************** ** QNapi ** Copyright (C) 2008-2009 Krzemin ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation; either version 2 of the License, or ** (at your option) any later version. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** *****************************************************************************/ #include "frmnapiprojektcorrect.h" frmNapiProjektCorrect::frmNapiProjektCorrect(QWidget * parent, Qt::WindowFlags f) : QDialog(parent, f) { ui.setupUi(this); setAttribute(Qt::WA_QuitOnClose, false); connect(ui.pbMovieSelect, SIGNAL(clicked()), this, SLOT(selectMovie())); connect(ui.pbSubtitlesSelect, SIGNAL(clicked()), this, SLOT(selectSubtitles())); connect(ui.leMovieSelect, SIGNAL(textChanged(QString)), this, SLOT(checkPostEnable())); connect(ui.leSubtitlesSelect, SIGNAL(textChanged(QString)), this, SLOT(checkPostEnable())); connect(ui.teComment, SIGNAL(textChanged()), this, SLOT(checkPostEnable())); connect(ui.pbPost, SIGNAL(clicked()), this, SLOT(pbPostClicked())); connect(&postThread, SIGNAL(postFinished(bool)), this, SLOT(postFinished(bool))); connect(&postThread, SIGNAL(invalidUserPass()), this, SLOT(invalidUserPass())); QRect position = frameGeometry(); position.moveCenter(QDesktopWidget().availableGeometry().center()); move(position.topLeft()); } void frmNapiProjektCorrect::closeEvent(QCloseEvent *event) { if(postThread.isRunning()) { if( QMessageBox::question(this, tr("QNapi"), tr("Czy chcesz przerwać wysyłanie poprawki?"), QMessageBox::Yes | QMessageBox::No) == QMessageBox::Yes ) { pbPostClicked(); } event->ignore(); } else event->accept(); } void frmNapiProjektCorrect::selectMovie() { QString fileName; QNapiOpenDialog openDialog(this, tr("Wskaż plik z filmem"), GlobalConfig().previousDialogPath(), QNapiOpenDialog::Movies); if(openDialog.selectFile()) { fileName = openDialog.selectedFiles().first(); GlobalConfig().setPreviousDialogPath(openDialog.directory().path()); } if(!fileName.isEmpty() && QFile::exists(fileName)) ui.leMovieSelect->setText(fileName); QFileInfo fi(fileName); QString propSubtitleFile = fi.path() + "/" + fi.completeBaseName() + ".txt"; if(QFile::exists(propSubtitleFile)) ui.leSubtitlesSelect->setText(propSubtitleFile); } void frmNapiProjektCorrect::selectSubtitles() { QString fileName; QNapiOpenDialog openDialog(this, tr("Wskaż plik z napisami"), GlobalConfig().previousDialogPath(), QNapiOpenDialog::Subtitles); if(openDialog.selectFile()) { fileName = openDialog.selectedFiles().first(); GlobalConfig().setPreviousDialogPath(openDialog.directory().path()); } if(!fileName.isEmpty() && QFile::exists(fileName)) ui.leSubtitlesSelect->setText(fileName); } void frmNapiProjektCorrect::checkPostEnable() { ui.pbPost->setEnabled( QFile::exists(ui.leMovieSelect->text()) && QFile::exists(ui.leSubtitlesSelect->text()) && !ui.teComment->toPlainText().isEmpty() ); ui.lbAction->setText(ui.pbPost->isEnabled() ? tr("Teraz możesz wysłać poprawione napisy.") : tr("Wypełnij wszystkie pola, aby wysłać poprawkę")); } void frmNapiProjektCorrect::pbPostClicked() { if(!postThread.isRunning()) { ui.leMovieSelect->setEnabled(false); ui.pbMovieSelect->setEnabled(false); ui.leSubtitlesSelect->setEnabled(false); ui.pbSubtitlesSelect->setEnabled(false); ui.teComment->setEnabled(false); ui.pbPost->setText(tr("Zatrzymaj")); ui.lbAction->setText(tr("Wysyłanie poprawki do serwera...")); postThread.setPostParams(ui.leMovieSelect->text(), ui.leSubtitlesSelect->text(), ui.teComment->toPlainText(), (ui.cbLanguage->currentIndex() == 0) ? "PL" : "ENG"); postThread.start(); } else { postThread.requestAbort(); ui.lbAction->setText(tr("Przerywanie wysyłania...")); ui.pbPost->setEnabled(false); qApp->processEvents(); } } void frmNapiProjektCorrect::postFinished(bool interrupted) { ui.leMovieSelect->setEnabled(true); ui.pbMovieSelect->setEnabled(true); ui.leSubtitlesSelect->setEnabled(true); ui.pbSubtitlesSelect->setEnabled(true); ui.teComment->setEnabled(true); ui.pbPost->setEnabled(true); ui.pbPost->setText(tr("Wyślij")); if(interrupted) { ui.lbAction->setText(tr("Przerwano wysyłanie poprawki.")); } else { switch(postThread.taskResult) { case QNapiProjektEngine::NAPI_FAIL: ui.lbAction->setText(tr("Błąd podczas wysyłania poprawki.")); break; default: ui.lbAction->setText(tr("Poprawka wysłana.")); } } } void frmNapiProjektCorrect::invalidUserPass() { QMessageBox::information(this, tr("Błąd!"), QString(tr("Nazwa użytkownika lub hasło jest niepoprawne."))); } void PostThread::run() { abort = false; if(!QNapiProjektEngine::checkUser( GlobalConfig().nick("NapiProjekt"), GlobalConfig().pass("NapiProjekt"))) { emit invalidUserPass(); emit postFinished(true); return; } if(abort) { postFinished(true); return; } QNapiProjektEngine *napi; if((napi = new QNapiProjektEngine(movie, subtitles))) { taskResult = napi->uploadSubtitles( language, GlobalConfig().nick("NapiProjekt"), GlobalConfig().pass("NapiProjekt"), true, comment); delete napi; } postFinished(); } qnapi-0.1.9/src/forms/frmoptions.h0000644000174100017410000000354412567301464017021 0ustar jenkinsjenkins/***************************************************************************** ** QNapi ** Copyright (C) 2008-2009 Krzemin ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation; either version 2 of the License, or ** (at your option) any later version. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** *****************************************************************************/ #ifndef __FRMOPTIONS__H__ #define __FRMOPTIONS__H__ #include #include #include #include #include #include #include #include "ui_frmoptions.h" #include "qnapiconfig.h" #include "qnapilanguage.h" class frmOptions: public QDialog { Q_OBJECT public: frmOptions(QWidget *parent = 0, Qt::WindowFlags f = 0); ~frmOptions(); public slots: void writeConfig(); void readConfig(); private slots: void le7zPathChanged(); void leFfProbePathChanged(); void select7zPath(); void selectFfProbePath(); void leTmpPathChanged(); void selectTmpPath(); void twEnginesSelectionChanged(); void twEnginesItemChanged(QTableWidgetItem * item); void pbMoveUpClicked(); void pbMoveDownClicked(); void pbEngineConfClicked(); void pbEngineInfoClicked(); void subFormatChanged(int format); void encodingMethodChanged(int method); void autoDetectEncodingClicked(); void showAllEncodingsClicked(); void restoreDefaults(); private: Ui::frmOptions ui; void showAllEncodings(); }; #endif qnapi-0.1.9/src/forms/frmnapiprojektreport.cpp0000644000174100017410000001573112567301464021444 0ustar jenkinsjenkins/***************************************************************************** ** QNapi ** Copyright (C) 2008-2009 Krzemin ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation; either version 2 of the License, or ** (at your option) any later version. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** *****************************************************************************/ #include "frmnapiprojektreport.h" frmNapiProjektReport::frmNapiProjektReport(QWidget * parent, Qt::WindowFlags f) : QDialog(parent, f) { ui.setupUi(this); setAttribute(Qt::WA_QuitOnClose, false); connect(ui.pbMovieSelect, SIGNAL(clicked()), this, SLOT(selectMovie())); connect(ui.leMovieSelect, SIGNAL(textChanged(QString)), this, SLOT(checkReportEnable())); connect(ui.cbProblem, SIGNAL(currentIndexChanged(int)), this, SLOT(cbProblemChanged())); connect(ui.leProblem, SIGNAL(textChanged(QString)), this, SLOT(checkReportEnable())); connect(ui.pbReport, SIGNAL(clicked()), this, SLOT(pbReportClicked())); connect(&reportThread, SIGNAL(reportFinished(bool)), this, SLOT(reportFinished(bool))); connect(&reportThread, SIGNAL(serverMessage(QString)), this, SLOT(serverMessage(QString))); connect(&reportThread, SIGNAL(invalidUserPass()), this, SLOT(invalidUserPass())); ui.cbProblem->setCurrentIndex(4); cbProblemChanged(); QRect position = frameGeometry(); position.moveCenter(QDesktopWidget().availableGeometry().center()); move(position.topLeft()); } void frmNapiProjektReport::closeEvent(QCloseEvent *event) { if(reportThread.isRunning()) { if( QMessageBox::question(this, tr("QNapi"), tr("Czy chcesz przerwać wysyłanie raportu?"), QMessageBox::Yes | QMessageBox::No) == QMessageBox::Yes ) { pbReportClicked(); } event->ignore(); } else event->accept(); } void frmNapiProjektReport::selectMovie() { QString fileName; QNapiOpenDialog openDialog(this, tr("Wskaż plik z filmem"), GlobalConfig().previousDialogPath(), QNapiOpenDialog::Movies); if(openDialog.selectFile()) { fileName = openDialog.selectedFiles().first(); GlobalConfig().setPreviousDialogPath(openDialog.directory().path()); } if(!fileName.isEmpty() && QFile::exists(fileName)) ui.leMovieSelect->setText(fileName); } void frmNapiProjektReport::checkReportEnable() { ui.pbReport->setEnabled( QFile::exists(ui.leMovieSelect->text()) && ((ui.cbProblem->currentIndex() == 4) ? !ui.leProblem->text().isEmpty() : true) ); ui.lbAction->setText(ui.pbReport->isEnabled() ? tr("Teraz możesz wysłać raport.") : tr("Wskaż plik z filmem oraz opisz problem.")); } void frmNapiProjektReport::cbProblemChanged() { ui.leProblem->setEnabled(ui.cbProblem->currentIndex() == 4); checkReportEnable(); } void frmNapiProjektReport::pbReportClicked() { if(!reportThread.isRunning()) { QFileInfo fi(ui.leMovieSelect->text()); if(!QFile::exists(fi.path() + "/" + fi.completeBaseName() + ".txt")) { ui.lbAction->setText(tr("Brak pliku z napisami dla podanego filmu!")); QMessageBox::warning(this, tr("Brak pliku z napisami!"), tr("Brak pliku z napisami dla podanego filmu!")); } else { ui.leMovieSelect->setEnabled(false); ui.pbMovieSelect->setEnabled(false); ui.cbLanguage->setEnabled(false); ui.cbProblem->setEnabled(false); ui.leProblem->setEnabled(false); ui.pbReport->setText(tr("Zatrzymaj")); ui.lbAction->setText(tr("Wysyłanie raportu do serwera...")); reportThread.setReportParams(ui.leMovieSelect->text(), (ui.cbLanguage->currentIndex() == 0) ? "PL" : "ENG", (ui.cbProblem->currentIndex() < 4 ? ui.cbProblem->currentText() : ui.leProblem->text()) ); reportThread.start(); } } else { reportThread.requestAbort(); ui.lbAction->setText(tr("Przerywanie wysyłania...")); ui.pbReport->setEnabled(false); qApp->processEvents(); } } void frmNapiProjektReport::reportFinished(bool interrupted) { ui.leMovieSelect->setEnabled(true); ui.pbMovieSelect->setEnabled(true); ui.cbLanguage->setEnabled(true); ui.cbProblem->setEnabled(true); ui.leProblem->setEnabled(true); ui.pbReport->setEnabled(true); cbProblemChanged(); ui.pbReport->setText(tr("Wyślij raport")); if(interrupted) { ui.lbAction->setText(tr("Przerwano wysyłanie poprawki.")); } else { switch(reportThread.taskResult) { case QNapiProjektEngine::NAPI_NO_SUBTITLES: ui.lbAction->setText(tr("Brak napisów dla wskazanego pliku.")); break; case QNapiProjektEngine::NAPI_NOT_REPORTED: ui.lbAction->setText(tr("Błąd podczas wysyłania raportu.")); break; default: ui.lbAction->setText(tr("Raport wysłany.")); } } } void frmNapiProjektReport::serverMessage(QString msg) { if(msg.indexOf("NPc0") == 0) msg = tr("Zgłoszono raport do serwera."); else msg = tr("Odpowiedź serwera: ") + tr(qPrintable(msg)); QMessageBox::information(this, tr("Raport wysłany"), msg); } void frmNapiProjektReport::invalidUserPass() { QMessageBox::information(this, tr("Błąd!"), QString(tr("Nazwa użytkownika lub hasło jest niepoprawne."))); } void ReportThread::run() { abort = false; if(!QNapiProjektEngine::checkUser( GlobalConfig().nick("NapiProjekt"), GlobalConfig().pass("NapiProjekt"))) { emit invalidUserPass(); emit reportFinished(true); return; } if(abort) { emit reportFinished(true); return; } QNapiProjektEngine *napi; if(!(napi = new QNapiProjektEngine(movie))) { emit reportFinished(true); return; } QString *response = new QString(); taskResult = napi->reportBad( language, GlobalConfig().nick("NapiProjekt"), GlobalConfig().pass("NapiProjekt"), comment, response); if(taskResult == QNapiProjektEngine::NAPI_REPORTED) emit serverMessage(*response); delete response; delete napi; emit reportFinished(); } qnapi-0.1.9/src/forms/frmnapiprojektupload.h0000644000174100017410000000541712567301464021062 0ustar jenkinsjenkins/***************************************************************************** ** QNapi ** Copyright (C) 2008-2009 Krzemin ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation; either version 2 of the License, or ** (at your option) any later version. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** *****************************************************************************/ #ifndef __FRMUPLOAD__H__ #define __FRMUPLOAD__H__ #include "ui_frmnapiprojektupload.h" #include #include #include #include #include #include #include #include "qnapithread.h" #include "qnapiconfig.h" #include "engines/qnapiprojektengine.h" #include "qnapiopendialog.h" class ScanThread : public QNapiThread { Q_OBJECT public: void run(); void setSearchPath(const QString & path) { searchPath = path; } void setFollowSymLinks(bool follow) { followSymLinks = follow; } QStringList fileList; unsigned int folders, movies, subtitles; signals: void scanFinished(bool result); void folderChange(const QString & folder); private: bool doScan(const QString & path, QDir::Filters filters); QString searchPath; QStringList searchFilters; bool followSymLinks; QSet visited; }; class UploadThread : public QNapiThread { Q_OBJECT public: void run(); void setMovieList(const QStringList & list) { movieList = list; } unsigned int added_new, added_ok, failed; bool invalidUP; signals: void progressChange(int progress); void fileNameChange(const QString & filename); void checkingUserPass(); void invalidUserPass(); private: QStringList movieList; }; class frmNapiProjektUpload: public QDialog { Q_OBJECT public: frmNapiProjektUpload(QWidget *parent = 0, Qt::WindowFlags f = 0); ~frmNapiProjektUpload() {} private: void closeEvent(QCloseEvent *event); Ui::frmUpload ui; ScanThread scanThread; UploadThread uploadThread; private slots: void selectDirectory(); void leSelectDirectoryChanged(); void pbScanClicked(); void folderChange(const QString & folder); void scanFinished(bool result); void pbUploadClicked(); void fileNameChange(const QString & filename); void checkingUserPass(); void uploadFinished(); void invalidUserPass(); }; #endif qnapi-0.1.9/src/forms/frmnapiprojektconfig.h0000644000174100017410000000222512567301464021035 0ustar jenkinsjenkins/***************************************************************************** ** QNapi ** Copyright (C) 2008-2009 Krzemin ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation; either version 2 of the License, or ** (at your option) any later version. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** *****************************************************************************/ #ifndef __FRMNAPIPROJEKTCONFIG__H__ #define __FRMNAPIPROJEKTCONFIG__H__ #include #include "ui_frmnapiprojektconfig.h" #include "qnapiconfig.h" #include "qnapiapp.h" class frmNapiProjektConfig : public QDialog { Q_OBJECT public: frmNapiProjektConfig(QWidget *parent = 0, Qt::WindowFlags f = 0); ~frmNapiProjektConfig() {} public slots: void accept(); void pbRegisterClicked(); private: Ui::frmNapiProjektConfig ui; void load(); }; #endif qnapi-0.1.9/src/forms/frmabout.cpp0000644000174100017410000000177612567301464017000 0ustar jenkinsjenkins/***************************************************************************** ** QNapi ** Copyright (C) 2008-2009 Krzemin ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation; either version 2 of the License, or ** (at your option) any later version. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** *****************************************************************************/ #include "frmabout.h" frmAbout::frmAbout(QWidget * parent, Qt::WindowFlags f) : QDialog(parent, f) { ui.setupUi(this); setAttribute(Qt::WA_QuitOnClose, false); ui.lbTitle->setText(QString("QNapi ") + QNAPI_DISPLAYABLE_VERSION); QRect position = frameGeometry(); position.moveCenter(QDesktopWidget().availableGeometry().center()); move(position.topLeft()); } qnapi-0.1.9/src/forms/frmsummary.h0000644000174100017410000000212212567301464017012 0ustar jenkinsjenkins/***************************************************************************** ** QNapi ** Copyright (C) 2008-2009 Krzemin ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation; either version 2 of the License, or ** (at your option) any later version. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** *****************************************************************************/ #ifndef __FRMSUMMARY__H__ #define __FRMSUMMARY__H__ #include #include #include #include "qnapiconfig.h" #include "ui_frmsummary.h" class frmSummary: public QDialog { Q_OBJECT public: frmSummary(QWidget *parent = 0, Qt::WindowFlags f = 0); ~frmSummary() {}; void setSummaryList(const QStringList & listSuccess, const QStringList & listFailures); private: Ui::frmSummary ui; }; #endif qnapi-0.1.9/src/forms/frmsummary.cpp0000644000174100017410000000365012567301464017354 0ustar jenkinsjenkins/***************************************************************************** ** QNapi ** Copyright (C) 2008-2009 Krzemin ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation; either version 2 of the License, or ** (at your option) any later version. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** *****************************************************************************/ #include "frmsummary.h" frmSummary::frmSummary(QWidget * parent, Qt::WindowFlags f) : QDialog(parent, f) { ui.setupUi(this); setAttribute(Qt::WA_QuitOnClose, false); QRect position = frameGeometry(); position.moveCenter(QDesktopWidget().availableGeometry().center()); move(position.topLeft()); } void frmSummary::setSummaryList(const QStringList & listSuccess, const QStringList & listFailures) { ui.lwSummary->clear(); ui.lbSuccess->setVisible(!listSuccess.isEmpty()); ui.lbFail->setVisible(!listFailures.isEmpty()); QIcon succIcon(":/ui/accept.png"), failIcon(":/ui/exclamation.png"); foreach(QString successItem, listSuccess) { ui.lwSummary->addItem(new QListWidgetItem(succIcon, QFileInfo(successItem).fileName())); } foreach(QString failureItem, listFailures) { ui.lwSummary->addItem(new QListWidgetItem(failIcon, QFileInfo(failureItem).fileName())); } ui.lbSuccess->setText(tr("Pobrano napisy dla %1 %2") .arg(listSuccess.size()) .arg(tr(listSuccess.size() > 1 ? "plików" : "pliku"))); ui.lbFail->setText(tr("Nie pobrano napisów dla %1 %2") .arg(listFailures.size()) .arg(tr(listFailures.size() > 1 ? "plików" : "pliku"))); } qnapi-0.1.9/src/forms/frmnapiprojektupload.cpp0000644000174100017410000002600712567301464021413 0ustar jenkinsjenkins/***************************************************************************** ** QNapi ** Copyright (C) 2008-2009 Krzemin ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation; either version 2 of the License, or ** (at your option) any later version. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** *****************************************************************************/ #include "frmnapiprojektupload.h" frmNapiProjektUpload::frmNapiProjektUpload(QWidget * parent, Qt::WindowFlags f) : QDialog(parent, f) { ui.setupUi(this); setAttribute(Qt::WA_QuitOnClose, false); connect(ui.pbSelectDirectory, SIGNAL(clicked()), this, SLOT(selectDirectory())); connect(ui.leSelectDirectory, SIGNAL(textChanged(QString)), this, SLOT(leSelectDirectoryChanged())); connect(ui.pbScan, SIGNAL(clicked()), this, SLOT(pbScanClicked())); connect(&scanThread, SIGNAL(scanFinished(bool)), this, SLOT(scanFinished(bool))); connect(&scanThread, SIGNAL(folderChange(QString)), this, SLOT(folderChange(QString))); connect(ui.pbUpload, SIGNAL(clicked()), this, SLOT(pbUploadClicked())); connect(&uploadThread, SIGNAL(finished()), this, SLOT(uploadFinished())); connect(&uploadThread, SIGNAL(progressChange(int)), ui.pbProgress, SLOT(setValue(int))); connect(&uploadThread, SIGNAL(fileNameChange(QString)), this, SLOT(fileNameChange(QString))); connect(&uploadThread, SIGNAL(checkingUserPass()), this, SLOT(checkingUserPass())); connect(&uploadThread, SIGNAL(invalidUserPass()), this, SLOT(invalidUserPass())); if(QFileInfo(GlobalConfig().previousDialogPath()).isDir()) ui.leSelectDirectory->setText(GlobalConfig().previousDialogPath()); QRect position = frameGeometry(); position.moveCenter(QDesktopWidget().availableGeometry().center()); move(position.topLeft()); } void frmNapiProjektUpload::closeEvent(QCloseEvent *event) { if(scanThread.isRunning()) { if( QMessageBox::question(this, tr("QNapi"), tr("Czy chcesz przerwać skanowanie katalogów?"), QMessageBox::Yes | QMessageBox::No) == QMessageBox::Yes ) { scanThread.requestAbort(); ui.lbAction->setText(tr("Kończenie zadań...")); qApp->processEvents(); scanThread.wait(); event->accept(); } else { event->ignore(); } return; } else if(uploadThread.isRunning()) { if( QMessageBox::question(this, tr("QNapi"), tr("Czy chcesz przerwać wysyłanie napisów?"), QMessageBox::Yes | QMessageBox::No) == QMessageBox::Yes ) { pbUploadClicked(); } event->ignore(); } else event->accept(); } void frmNapiProjektUpload::selectDirectory() { QString dir = QFileInfo(ui.leSelectDirectory->text()).path(); dir = QDir().exists(dir) ? dir : GlobalConfig().previousDialogPath(); QNapiOpenDialog openDialog(this, tr("Wskaż katalog do skanowania"), dir, QNapiOpenDialog::None); if(openDialog.selectDirectory()) dir = openDialog.selectedFiles().first(); if(!dir.isEmpty() && QDir().exists(dir)) ui.leSelectDirectory->setText(dir); } void frmNapiProjektUpload::leSelectDirectoryChanged() { ui.pbScan->setEnabled(!ui.leSelectDirectory->text().isEmpty() ? QDir().exists(ui.leSelectDirectory->text()) : false); } void frmNapiProjektUpload::pbScanClicked() { if(!scanThread.isRunning()) { ui.leSelectDirectory->setEnabled(false); ui.pbSelectDirectory->setEnabled(false); ui.pbScan->setText(tr("Przerwij")); ui.lbAction->setText(tr("Skanowanie katalogów...")); ui.lbFoldersCount->setEnabled(false); ui.lbFoldersCount->setText(tr("Katalogów: 0")); ui.lbMoviesCount->setEnabled(false); ui.lbMoviesCount->setText(tr("Filmów: 0")); ui.lbSubtitlesCount->setEnabled(false); ui.lbSubtitlesCount->setText(tr("Napisów: 0")); ui.pbProgress->setEnabled(false); ui.pbUpload->setEnabled(false); ui.cbFollowSymLinks->setEnabled(false); scanThread.setSearchPath(ui.leSelectDirectory->text()); scanThread.setFollowSymLinks(ui.cbFollowSymLinks->isChecked()); scanThread.start(); } else { scanThread.requestAbort(); ui.lbAction->setText(tr("Przerywanie skanowania...")); ui.pbScan->setEnabled(false); qApp->processEvents(); scanThread.wait(); ui.pbScan->setEnabled(true); scanFinished(false); } } void frmNapiProjektUpload::scanFinished(bool result) { ui.leSelectDirectory->setEnabled(true); ui.pbSelectDirectory->setEnabled(true); ui.cbFollowSymLinks->setEnabled(true); ui.pbScan->setText(tr("Skanuj")); ui.lbAction->setText(""); if(result) { if(scanThread.fileList.size() == 0) { QMessageBox::warning(this, tr("Nie znaleziono napisów"), tr("W wybranym katalogu nie znaleziono żadnych napisów!")); } else { ui.lbAction->setText(tr("Teraz możesz wysłać napisy na serwer.")); ui.lbFoldersCount->setEnabled(true); ui.lbFoldersCount->setText(tr("Katalogów: ") + "" + QString::number(scanThread.folders) + ""); ui.lbMoviesCount->setEnabled(true); ui.lbMoviesCount->setText(tr("Filmów: ") + "" + QString::number(scanThread.movies) + ""); ui.lbSubtitlesCount->setEnabled(true); ui.lbSubtitlesCount->setText(tr("Napisów: ") + "" + QString::number(scanThread.subtitles) + ""); ui.pbProgress->setEnabled(true); ui.pbUpload->setEnabled(true); } } } void frmNapiProjektUpload::pbUploadClicked() { if(!uploadThread.isRunning()) { ui.lbSelectDirectory->setEnabled(false); ui.leSelectDirectory->setEnabled(false); ui.pbSelectDirectory->setEnabled(false); ui.pbScan->setEnabled(false); ui.pbUpload->setText(tr("Przerwij wysyłanie")); ui.pbProgress->setValue(0); uploadThread.setMovieList(scanThread.fileList); uploadThread.start(); } else { uploadThread.requestAbort(); ui.lbAction->setText(tr("Przerywanie wysyłania...")); ui.pbUpload->setEnabled(false); qApp->processEvents(); } } void frmNapiProjektUpload::folderChange(const QString & folder) { ui.lbAction->setText(tr("Skanowanie katalogu ") + folder + ""); } void frmNapiProjektUpload::fileNameChange(const QString & filename) { ui.lbAction->setText(tr("Wysyłanie napisów dla ") + filename + ""); } void frmNapiProjektUpload::checkingUserPass() { ui.lbAction->setText(tr("Sprawdzanie nazwy użytkownika i hasła...")); } void frmNapiProjektUpload::uploadFinished() { ui.lbSelectDirectory->setEnabled(true); ui.leSelectDirectory->setEnabled(true); ui.pbSelectDirectory->setEnabled(true); ui.pbScan->setEnabled(true); ui.pbUpload->setEnabled(true); ui.pbUpload->setText(tr("Wyślij napisy do serwera")); ui.pbProgress->setValue(0); if(!uploadThread.invalidUP) { ui.lbAction->setText(tr("Zakończono wysyłanie napisów.")); QString msg = tr("Wysłano napisów: %1\n").arg(uploadThread.added_new+uploadThread.added_ok) + tr("W tym zupełnie nowych: %1\n").arg(uploadThread.added_new) + tr("Nie udało się wysłać: %1\n").arg(uploadThread.failed); QMessageBox::information(this, tr("Rezultat wysyłania"), msg); } } void frmNapiProjektUpload::invalidUserPass() { ui.lbAction->setText(tr("Nazwa użytkownika lub hasło jest niepoprawne.")); QMessageBox::information(this, tr("Błąd!"), QString(tr("Nazwa użytkownika lub hasło jest niepoprawne."))); } void ScanThread::run() { abort = false; folders = movies = subtitles = 0; fileList.clear(); visited.clear(); searchFilters.clear(); foreach(QString ext, GlobalConfig().movieExtensions()) { searchFilters << "*." + ext; } QDir::Filters filters = QDir::AllDirs | QDir::Files | QDir::NoDotAndDotDot | QDir::Readable | QDir::Hidden; if(!followSymLinks) filters |= QDir::NoSymLinks; emit scanFinished(doScan(searchPath, filters)); } bool ScanThread::doScan(const QString & path, QDir::Filters filters) { QString myPath = QFileInfo(path).absoluteFilePath(); if(!QDir().exists(myPath)) return false; QString myCPath = QDir(path).canonicalPath(); if(visited.contains(myCPath)) return true; visited << myCPath; emit folderChange(myPath); ++folders; QFileInfoList list = QDir(myPath).entryInfoList(searchFilters, filters); for(QFileInfoList::iterator p=list.begin(); p != list.end(); p++) { if(abort) return false; if((*p).isDir() && ((*p).absoluteFilePath() != myPath)) { if(!doScan((*p).absoluteFilePath(), filters)) return false; } else { if(!QFile::exists((*p).absoluteFilePath())) continue; ++movies; if(QFile::exists((*p).absolutePath() + "/" + (*p).completeBaseName() + ".txt")) { ++subtitles; fileList << (*p).absoluteFilePath(); } } } return true; } void UploadThread::run() { added_new = added_ok = failed = 0; abort = false; invalidUP = false; emit checkingUserPass(); if(!QNapiProjektEngine::checkUser( GlobalConfig().nick("NapiProjekt"), GlobalConfig().pass("NapiProjekt"))) { invalidUP = true; emit invalidUserPass(); return; } if(abort) return; int size = movieList.size(); QNapiProjektEngine *napi; for(int i = 0; i < size; i++) { QFileInfo fi(movieList[i]); napi = new QNapiProjektEngine(movieList[i], fi.path() + "/" + fi.completeBaseName() + ".txt"); if(!napi) continue; emit fileNameChange(fi.fileName()); emit progressChange(i * 100 / size); switch( napi->uploadSubtitles( GlobalConfig().language(), GlobalConfig().nick("NapiProjekt"), GlobalConfig().pass("NapiProjekt"), false ) ) { case QNapiProjektEngine::NAPI_ADDED_NEW: ++added_new; break; case QNapiProjektEngine::NAPI_FAIL: ++failed; break; default: ++added_ok; break; } delete napi; if(abort) break; } emit progressChange(100); } qnapi-0.1.9/src/forms/frmconvert.h0000644000174100017410000000160212567301464016777 0ustar jenkinsjenkins#ifndef __FRMCONVERT_H__ #define __FRMCONVERT_H__ #include "ui_frmconvert.h" #include #include "subconvert/subtitleconverter.h" class frmConvert : public QDialog { Q_OBJECT public: frmConvert(QWidget *parent = 0, Qt::WindowFlags f = 0); ~frmConvert() {} private: Ui::frmConvert ui; SubtitleConverter subConverter; QString srcFormat, targetFormat; bool targetFileNameSelected; void checkFPSNeeded(); QString determineMovieFPS(const QString & defaultMovieFilePath); void generateTargetFileName(); private slots: void srcSubSelectClicked(); void srcSubFileLoaded(const QString & srcSubFileName); void targetFormatChanged(int targetFormatIdx); void movieFPSSelectClicked(); void targetMovieFPSSelectClicked(); void targetExtensionChanged(); void subDelayToggled(); void convertClicked(); }; #endif // __FRMCONVERT_H__ qnapi-0.1.9/src/forms/frmscan.h0000644000174100017410000000547312567301464016255 0ustar jenkinsjenkins/***************************************************************************** ** QNapi ** Copyright (C) 2008-2009 Krzemin ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation; either version 2 of the License, or ** (at your option) any later version. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** *****************************************************************************/ #ifndef __FRMSCAN__H__ #define __FRMSCAN__H__ #include "ui_frmscan.h" #include #include #include "qnapithread.h" #include "qnapiconfig.h" #include "qnapiopendialog.h" #include "frmsummary.h" class ScanFilesThread : public QNapiThread { Q_OBJECT public: void run(); void setSearchPath(const QString & path) { searchPath = path; } void setFilters(const QString & filters) { scanFilters = filters.split(" "); } void setSkipFilters(const QString & filters) { skipFilters = filters.split(" "); } void setSkipIfSubtitlesExists(bool skip) { skipIfSubtitlesExists = skip; } void setFollowSymLinks(bool follow) { followSymLinks = follow; } QStringList fileList; signals: void addFile(const QString & fileName); void scanFinished(bool result); void folderChange(const QString & folder); private: bool doScan(const QString & path, QDir::Filters filters); QString searchPath; QStringList scanFilters, skipFilters; bool skipIfSubtitlesExists, followSymLinks; QSet visited; }; class frmScan: public QDialog { Q_OBJECT public: frmScan(QWidget *parent = 0, Qt::WindowFlags f = 0); ~frmScan(); void setInitDir(const QString & dir); QStringList getSelectedFiles() { return selectedFiles; } public slots: void accept(); private: void closeEvent(QCloseEvent *event); void keyPressEvent(QKeyEvent * event); Ui::frmScan ui; ScanFilesThread scanThread; QIcon iconFilm; QStringList selectedFiles; private slots: void selectDirectory(); void leDirectoryTextChanged(); void pbScanClicked(); void addFile(const QString & fileName); void folderChange(const QString & dirName); void scanFinished(); void enableControlWidgets(bool enable); void enableFilesWidgets(bool enable); void lwMoviesClicked(QListWidgetItem * item); void pbSelectAllClicked(); void pbUnselectAllClicked(); void pbInvertSelectionClicked(); void checkPbGetEnabled(); }; #endif qnapi-0.1.9/src/forms/frmlistsubtitles.cpp0000644000174100017410000000731212567301464020570 0ustar jenkinsjenkins/***************************************************************************** ** QNapi ** Copyright (C) 2008-2009 Krzemin ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation; either version 2 of the License, or ** (at your option) any later version. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** *****************************************************************************/ #include "frmlistsubtitles.h" frmListSubtitles::frmListSubtitles(QWidget *parent, Qt::WindowFlags f) : QDialog(parent, f) { ui.setupUi(this); QRect position = frameGeometry(); position.moveCenter(QDesktopWidget().availableGeometry().center()); move(position.topLeft()); } void frmListSubtitles::setFileName(const QString & name) { ui.lbSelectSubtitles->setText(QString( "Z poniższej listy wybierz napisy, które" " chcesz dopasować do pliku %1:") .arg(name)); } void frmListSubtitles::setSubtitlesList(const QList & list) { QNapi n; n.addEngines(n.enumerateEngines()); ui.twSubtitles->clear(); ui.twSubtitles->setColumnCount(4); ui.twSubtitles->setRowCount(list.size()); ui.twSubtitles->horizontalHeader()->hide(); ui.twSubtitles->verticalHeader()->hide(); ui.twSubtitles->verticalHeader()->setDefaultSectionSize(20); ui.twSubtitles->verticalHeader()->setSectionResizeMode(QHeaderView::Fixed); int i = 0, good = 0, bad = 0; foreach(QNapiSubtitleInfo s, list) { QTableWidgetItem *item; bool highlight = (s.resolution != SUBTITLE_UNKNOWN); QBrush brush((s.resolution == SUBTITLE_GOOD) ? QColor(qRgb(200, 255, 200)) : QColor(qRgb(255, 200, 200))); if(highlight && (s.resolution == SUBTITLE_GOOD)) ++good; else if(highlight && (s.resolution == SUBTITLE_BAD)) ++bad; QString lang_path = QString(":/languages/") + s.lang + ".gif"; if(QFile::exists(lang_path)) { item = new QTableWidgetItem(QIcon(lang_path), ""); } else { item = new QTableWidgetItem(s.lang); } if(highlight) item->setBackground(brush); item->setToolTip(s.comment); ui.twSubtitles->setItem(i, 1, item); item = new QTableWidgetItem(s.name); if(highlight) item->setBackground(brush); item->setToolTip(s.comment); ui.twSubtitles->setItem(i, 2, item); item = new QTableWidgetItem(s.format); if(highlight) item->setBackground(brush); item->setToolTip(s.comment); ui.twSubtitles->setItem(i, 3, item); QNapiAbstractEngine *e = n.engineByName(s.engine); if(e) { item = new QTableWidgetItem(e->engineIcon(), ""); if(highlight) item->setBackground(brush); item->setToolTip(s.comment); ui.twSubtitles->setItem(i, 0, item); } ++i; } ui.twSubtitles->resizeColumnsToContents(); if(good == 0) ui.lbGreenHint->hide(); if(bad == 0) ui.lbRedHint->hide(); } int frmListSubtitles::getSelectedIndex() { return ui.twSubtitles->currentRow(); } void frmListSubtitles::accept() { if(ui.twSubtitles->selectedItems().size() == 0) { QMessageBox::warning( this, "Nie wybrano napisów z listy", "Musisz wybrać napisy z listy!"); } else { QDialog::accept(); } } qnapi-0.1.9/src/forms/frmoptions.cpp0000644000174100017410000004256112567301464017356 0ustar jenkinsjenkins/***************************************************************************** ** QNapi ** Copyright (C) 2008-2009 Krzemin ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation; either version 2 of the License, or ** (at your option) any later version. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** *****************************************************************************/ #include "frmoptions.h" #include "qnapiapp.h" #include "subconvert/subtitleformatsregistry.h" frmOptions::frmOptions(QWidget * parent, Qt::WindowFlags f) : QDialog(parent, f) { ui.setupUi(this); #ifndef Q_OS_MAC ui.cbShowDockIcon->hide(); #endif #ifdef Q_OS_WIN // Pod Windowsami chowamy kontrolki odpowiadajace za zmiane uprawnien - i tak sie nie przydadza ui.cbChangePermissions->hide(); ui.sbOPerm->hide(); ui.sbGPerm->hide(); ui.sbUPerm->hide(); #endif QString tlcode; ui.cbLangBackup->addItem("Brak", QVariant("")); foreach(QString lang, QNapiLanguage("").listLanguages()) { tlcode = QNapiLanguage(lang).toTwoLetter(); ui.cbLang->addItem(QIcon(QString(":/languages/%1.gif").arg(tlcode)),lang,QVariant(tlcode)); ui.cbLangBackup->addItem(QIcon(QString(":/languages/%1.gif").arg(tlcode)),lang,QVariant(tlcode)); } setAttribute(Qt::WA_QuitOnClose, false); connect(ui.le7zPath, SIGNAL(textChanged(const QString &)), this, SLOT(le7zPathChanged())); connect(ui.pb7zPathSelect, SIGNAL(clicked()), this, SLOT(select7zPath())); connect(ui.leFfprobePath, SIGNAL(textChanged(const QString &)), this, SLOT(leFfProbePathChanged())); connect(ui.pbFfprobePathSelect, SIGNAL(clicked()), this, SLOT(selectFfProbePath())); connect(ui.leTmpPath, SIGNAL(textChanged(const QString &)), this, SLOT(leTmpPathChanged())); connect(ui.pbTmpPathSelect, SIGNAL(clicked()), this, SLOT(selectTmpPath())); connect(ui.twEngines, SIGNAL(itemSelectionChanged()), this, SLOT(twEnginesSelectionChanged())); connect(ui.twEngines, SIGNAL(itemChanged(QTableWidgetItem *)), this, SLOT(twEnginesItemChanged(QTableWidgetItem *))); connect(ui.pbMoveUp, SIGNAL(clicked()), this, SLOT(pbMoveUpClicked())); connect(ui.pbMoveDown, SIGNAL(clicked()), this, SLOT(pbMoveDownClicked())); connect(ui.pbEngineConf, SIGNAL(clicked()), this, SLOT(pbEngineConfClicked())); connect(ui.pbEngineInfo, SIGNAL(clicked()), this, SLOT(pbEngineInfoClicked())); connect(ui.cbSubFormat, SIGNAL(currentIndexChanged(int)), this, SLOT(subFormatChanged(int))); connect(ui.cbEncodingMethod, SIGNAL(currentIndexChanged(int)), this, SLOT(encodingMethodChanged(int))); connect(ui.cbAutoDetectEncoding, SIGNAL(clicked()), this, SLOT(autoDetectEncodingClicked())); connect(ui.cbShowAllEncodings, SIGNAL(clicked()), this, SLOT(showAllEncodingsClicked())); connect(ui.pbRestoreDefaults, SIGNAL(clicked()), this, SLOT(restoreDefaults())); showAllEncodings(); foreach(QString format, GlobalFormatsRegistry().enumerateFormats()) { ui.cbSubFormat->addItem(format); } QRect position = frameGeometry(); position.moveCenter(QDesktopWidget().availableGeometry().center()); move(position.topLeft()); } frmOptions::~frmOptions() { } void frmOptions::le7zPathChanged() { QFileInfo f(ui.le7zPath->text()); ui.le7zPath->setStyleSheet( f.isFile() && f.isExecutable() ? "" : "color:red;" ); } void frmOptions::leFfProbePathChanged() { QFileInfo f(ui.leFfprobePath->text()); ui.leFfprobePath->setStyleSheet( f.isFile() && f.isExecutable() ? "" : "color:red;" ); } void frmOptions::select7zPath() { QString path7z = QFileDialog::getOpenFileName(this, tr("Wskaż ścieżkę do programu 7z"), QFileInfo(ui.le7zPath->text()).path()); if(!path7z.isEmpty()) { if(!QFileInfo(path7z).isExecutable()) QMessageBox::warning(this, tr("Niepoprawna ścieżka"), tr("Wskazana przez Ciebie ścieżka do programu 7z jest niepoprawna. Jeśli nie możesz " "odnaleźć programu 7z, spróbuj zainstalować pakiet p7zip-full.")); else ui.le7zPath->setText(path7z); } } void frmOptions::selectFfProbePath() { QString pathFFProbe = QFileDialog::getOpenFileName(this, tr("Wskaż ścieżkę do programu ffprobe"), QFileInfo(ui.leFfprobePath->text()).path()); if(!pathFFProbe.isEmpty()) { if(!QFileInfo(pathFFProbe).isExecutable()) QMessageBox::warning(this, tr("Niepoprawna ścieżka"), tr("Wskazana przez Ciebie ścieżka do programu ffprobe jest niepoprawna. Jeśli nie możesz " "odnaleźć programu ffprobe, spróbuj zainstalować pakiet ffmpeg.")); else ui.leFfprobePath->setText(pathFFProbe); } } void frmOptions::leTmpPathChanged() { QFileInfo f(ui.leTmpPath->text()); ui.leTmpPath->setStyleSheet( f.isDir() && f.isWritable() ? "" : "color:red;" ); } void frmOptions::selectTmpPath() { QString tmpDir = QFileDialog::getExistingDirectory(this, tr("Wskaż katalog tymczasowy"), QFileInfo(ui.leTmpPath->text()).path(), QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks); if(!tmpDir.isEmpty()) ui.leTmpPath->setText(QFileInfo(tmpDir).path()); } void frmOptions::twEnginesSelectionChanged() { QNapi n; n.addEngines(n.enumerateEngines()); if(ui.twEngines->selectedItems().size() < 1) return; QNapiAbstractEngine * e; e = n.engineByName(ui.twEngines->selectedItems().at(0)->text()); int currentRow = ui.twEngines->row(ui.twEngines->selectedItems().at(0)); ui.pbMoveUp->setEnabled(currentRow > 0); ui.pbMoveDown->setEnabled(currentRow < ui.twEngines->rowCount() - 1); ui.pbEngineConf->setEnabled(e->isConfigurable()); ui.pbEngineInfo->setEnabled(true); } void frmOptions::twEnginesItemChanged(QTableWidgetItem * item) { bool foundActive = false; for(int i = 0; i < ui.twEngines->rowCount(); ++i) { if(!ui.twEngines->item(i, 0)) { return; } if(ui.twEngines->item(i, 0)->checkState() == Qt::Checked) { foundActive = true; break; } } if(!foundActive) { item->setCheckState(Qt::Checked); QMessageBox::warning(this, "Ostrzeżenie", "Przynajmniej jeden moduł pobierania musi pozostać aktywny!"); } } void frmOptions::pbMoveUpClicked() { int currentRow = ui.twEngines->row(ui.twEngines->selectedItems().at(0)); QTableWidgetItem *current, *above; current = ui.twEngines->item(currentRow, 0); above = ui.twEngines->item(currentRow - 1, 0); QTableWidgetItem tmp = *current; *current = *above; *above = tmp; ui.twEngines->selectRow(currentRow - 1); } void frmOptions::pbMoveDownClicked() { int currentRow = ui.twEngines->row(ui.twEngines->selectedItems().at(0)); QTableWidgetItem *current, *below; current = ui.twEngines->item(currentRow, 0); below = ui.twEngines->item(currentRow + 1, 0); QTableWidgetItem tmp = *current; *current = *below; *below = tmp; ui.twEngines->selectRow(currentRow + 1); } void frmOptions::pbEngineConfClicked() { QNapi n; n.addEngines(n.enumerateEngines()); n.engineByName(ui.twEngines->selectedItems().at(0)->text())->configure(this); } void frmOptions::pbEngineInfoClicked() { QNapi n; n.addEngines(n.enumerateEngines()); QString engineName = ui.twEngines->selectedItems().at(0)->text(); QString engineInfo = n.engineByName(engineName)->engineInfo(); QMessageBox::information(this, QString("Informacje o silniku %1").arg(engineName), engineInfo); } void frmOptions::subFormatChanged(int format) { if(format == 0) { ui.cbSubExtension->setItemText(0, tr("Domyślne")); } else { QString targetFormatName = ui.cbSubFormat->currentText(); SubtitleFormat * targetSF = GlobalFormatsRegistry().select(targetFormatName); QString targetDefaultExt = targetSF->defaultExtension(); ui.cbSubExtension->setItemText(0, tr("Domyślne (%1)").arg(targetDefaultExt)); } } void frmOptions::encodingMethodChanged(int method) { ChangeEncodingMethod cemMethod = (ChangeEncodingMethod) method; bool enableEncodingSettings = cemMethod == CEM_CHANGE; ui.cbEncFrom->setEnabled(enableEncodingSettings); ui.lbConvert->setEnabled(enableEncodingSettings); ui.lbConvertFrom->setEnabled(enableEncodingSettings); ui.cbEncTo->setEnabled(enableEncodingSettings); ui.cbAutoDetectEncoding->setEnabled(enableEncodingSettings); ui.cbShowAllEncodings->setEnabled(enableEncodingSettings); autoDetectEncodingClicked(); } void frmOptions::autoDetectEncodingClicked() { bool checkedCE = (ChangeEncodingMethod) ui.cbEncodingMethod->currentIndex() == CEM_CHANGE; bool checkedADE = ui.cbAutoDetectEncoding->isChecked(); ui.cbEncFrom->setEnabled(checkedCE && !checkedADE); ui.lbConvertFrom->setEnabled(checkedCE && !checkedADE); } void frmOptions::showAllEncodingsClicked() { QString encFrom = ui.cbEncFrom->currentText(); QString encTo = ui.cbEncTo->currentText(); if(ui.cbShowAllEncodings->isChecked()) { showAllEncodings(); } else { ui.cbEncFrom->clear(); ui.cbEncTo->clear(); QStringList codecs; codecs << "windows-1250" << "windows-1257" << "ISO-8859-2" << "ISO-8859-13" << "ISO-8859-16" << "UTF-8"; ui.cbEncFrom->addItems(codecs); ui.cbEncTo->addItems(codecs); } ui.cbEncFrom->setCurrentIndex(ui.cbEncFrom->findText(encFrom)); ui.cbEncTo->setCurrentIndex(ui.cbEncTo->findText(encTo)); } void frmOptions::showAllEncodings() { ui.cbEncFrom->clear(); ui.cbEncTo->clear(); QList codecs = QTextCodec::availableCodecs(); qSort(codecs.begin(), codecs.end()); for(QList::iterator i = codecs.begin(); i != codecs.end(); i++) { ui.cbEncFrom->addItem(*i); ui.cbEncTo->addItem(*i); } } void frmOptions::writeConfig() { GlobalConfig().setP7zipPath(ui.le7zPath->text()); GlobalConfig().setFFProbePath(ui.leFfprobePath->text()); GlobalConfig().setTmpPath(ui.leTmpPath->text()); GlobalConfig().setLanguage(ui.cbLang->itemData(ui.cbLang->currentIndex()).toString()); GlobalConfig().setLanguageBackup(ui.cbLangBackup->itemData(ui.cbLangBackup->currentIndex()).toString()); GlobalConfig().setNoBackup(ui.cbNoBackup->isChecked()); #ifdef Q_OS_MAC GlobalConfig().setShowDockIcon(ui.cbShowDockIcon->isChecked()); #endif QList > engines; for(int i = 0; i < ui.twEngines->rowCount(); ++i) { engines << qMakePair(ui.twEngines->item(i, 0)->text(), (ui.twEngines->item(i, 0)->checkState() == Qt::Checked)); } GlobalConfig().setEngines(engines); GlobalConfig().setSearchPolicy((SearchPolicy) ui.cbSearchPolicy->currentIndex()); GlobalConfig().setDownloadPolicy((DownloadPolicy) ui.cbDownloadPolicy->currentIndex()); GlobalConfig().setPpEnabled(ui.gbPpEnable->isChecked()); GlobalConfig().setPpEncodingMethod((ChangeEncodingMethod) ui.cbEncodingMethod->currentIndex()); GlobalConfig().setPpAutoDetectEncoding(ui.cbAutoDetectEncoding->isChecked()); GlobalConfig().setPpEncodingFrom(ui.cbEncFrom->currentText()); GlobalConfig().setPpEncodingTo(ui.cbEncTo->currentText()); GlobalConfig().setPpShowAllEncodings(ui.cbShowAllEncodings->isChecked()); GlobalConfig().setPpRemoveLines(ui.cbRemoveLines->isChecked()); GlobalConfig().setPpRemoveWords(ui.teRemoveWords->toPlainText().split("\n")); QString targetFormat = ui.cbSubFormat->currentIndex() == 0 ? "" : GlobalFormatsRegistry().enumerateFormats().at(ui.cbSubFormat->currentIndex() - 1); GlobalConfig().setPpSubFormat(targetFormat); QString targetExt = ui.cbSubExtension->currentIndex() == 0 ? "" : ui.cbSubExtension->currentText(); GlobalConfig().setPpSubExtension(targetExt); GlobalConfig().setPpSkipConvertAds(ui.cbSkipConvertAds->isChecked()); GlobalConfig().setChangePermissions(ui.cbChangePermissions->isChecked()); QString permissions = QString("%1%2%3").arg(ui.sbUPerm->value()) .arg(ui.sbGPerm->value()) .arg(ui.sbOPerm->value()); GlobalConfig().setChangePermissionsTo(permissions); GlobalConfig().save(); } void frmOptions::readConfig() { GlobalConfig().reload(); ui.le7zPath->setText(GlobalConfig().p7zipPath()); ui.leFfprobePath->setText(GlobalConfig().ffProbePath()); ui.leTmpPath->setText(GlobalConfig().tmpPath()); ui.cbLang->setCurrentIndex(ui.cbLang->findData(QNapiLanguage(GlobalConfig().language()).toTwoLetter())); ui.cbLangBackup->setCurrentIndex(ui.cbLangBackup->findData(QNapiLanguage(GlobalConfig().languageBackup()).toTwoLetter())); ui.cbNoBackup->setChecked(GlobalConfig().noBackup()); #ifdef Q_OS_MAC ui.cbShowDockIcon->setChecked(GlobalConfig().showDockIcon()); #endif QNapi n; n.addEngines(n.enumerateEngines()); ui.twEngines->clear(); QList > engines = GlobalConfig().engines(); ui.twEngines->setColumnCount(1); ui.twEngines->setRowCount(engines.size()); for(int i = 0; i < engines.size(); ++i) { QPair e = engines.at(i); QTableWidgetItem *item = new QTableWidgetItem(n.engineByName(e.first)->engineIcon(), e.first); item->setCheckState(e.second ? Qt::Checked : Qt::Unchecked); ui.twEngines->setItem(i, 0, item); } ui.twEngines->horizontalHeader()->hide(); ui.twEngines->verticalHeader()->hide(); ui.twEngines->verticalHeader()->setDefaultSectionSize(20); ui.twEngines->verticalHeader()->setSectionResizeMode(QHeaderView::Fixed); ui.twEngines->setColumnWidth(0, 300); ui.cbSearchPolicy->setCurrentIndex(GlobalConfig().searchPolicy()); ui.cbDownloadPolicy->setCurrentIndex(GlobalConfig().downloadPolicy()); ui.cbEncodingMethod->setCurrentIndex(GlobalConfig().ppEncodingMethod()); ui.cbAutoDetectEncoding->setChecked(GlobalConfig().ppAutoDetectEncoding()); ui.cbEncFrom->setCurrentIndex(ui.cbEncFrom->findText(GlobalConfig().ppEncodingFrom())); ui.cbEncTo->setCurrentIndex(ui.cbEncTo->findText(GlobalConfig().ppEncodingTo())); ui.cbShowAllEncodings->setChecked(GlobalConfig().ppShowAllEncodings()); ui.cbRemoveLines->setChecked(GlobalConfig().ppRemoveLines()); ui.teRemoveWords->setText(GlobalConfig().ppRemoveWords().join("\n")); int formatIdx = 1; foreach(QString format, GlobalFormatsRegistry().enumerateFormats()) { if(GlobalConfig().ppSubFormat() == format) { ui.cbSubFormat->setCurrentIndex(formatIdx); } ++formatIdx; } ui.cbSubExtension->setCurrentText(GlobalConfig().ppSubExtension()); ui.cbSkipConvertAds->setChecked(GlobalConfig().ppSkipConvertAds()); ui.cbChangePermissions->setChecked(GlobalConfig().changePermissions()); QString permissions = GlobalConfig().changePermissionsTo(); unsigned short o, g, u; o = permissions.at(0).toLatin1() - '0'; g = permissions.at(1).toLatin1() - '0'; u = permissions.at(2).toLatin1() - '0'; ui.sbUPerm->setValue((o <= 7) ? o : 6); ui.sbGPerm->setValue((g <= 7) ? g : 4); ui.sbOPerm->setValue((u <= 7) ? u : 4); encodingMethodChanged((int) GlobalConfig().ppEncodingMethod()); showAllEncodingsClicked(); ui.gbPpEnable->setChecked(GlobalConfig().ppEnabled()); } void frmOptions::restoreDefaults() { GlobalConfig().setP7zipPath(""); GlobalConfig().setFFProbePath(""); GlobalConfig().setTmpPath(QDir::tempPath()); GlobalConfig().setLanguage("pl"); GlobalConfig().setLanguageBackup("en"); GlobalConfig().setNoBackup(false); GlobalConfig().setChangePermissions(false); GlobalConfig().setChangePermissionsTo("644"); #ifdef Q_OS_MAC GlobalConfig().setShowDockIcon(true); #endif QList > engines; engines << QPair("NapiProjekt", true) << QPair("OpenSubtitles", true) << QPair("Napisy24", true); GlobalConfig().setEngines(engines); GlobalConfig().setSearchPolicy(SP_SEARCH_ALL); GlobalConfig().setDownloadPolicy(DP_SHOW_LIST_IF_NEEDED); GlobalConfig().setPpEnabled(false); GlobalConfig().setPpEncodingMethod(CEM_ORIGINAL); GlobalConfig().setPpAutoDetectEncoding(true); GlobalConfig().setPpEncodingFrom("windows-1250"); GlobalConfig().setPpEncodingTo("UTF-8"); GlobalConfig().setPpShowAllEncodings(false); GlobalConfig().setPpRemoveLines(false); QStringList words; words << "movie info" << "synchro"; GlobalConfig().setPpRemoveWords(words); GlobalConfig().setPpSubFormat(""); GlobalConfig().setPpSubExtension(""); GlobalConfig().setPpSkipConvertAds(false); GlobalConfig().save(); readConfig(); } qnapi-0.1.9/src/forms/frmlistsubtitles.h0000644000174100017410000000235312567301464020235 0ustar jenkinsjenkins/***************************************************************************** ** QNapi ** Copyright (C) 2008-2009 Krzemin ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation; either version 2 of the License, or ** (at your option) any later version. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** *****************************************************************************/ #ifndef __FRMLISTSUBTITLES__H__ #define __FRMLISTSUBTITLES__H__ #include #include #include #include "ui_frmlistsubtitles.h" #include "qnapi.h" class frmListSubtitles : public QDialog { Q_OBJECT public: frmListSubtitles(QWidget *parent = 0, Qt::WindowFlags f = 0); ~frmListSubtitles() {} public slots: void setFileName(const QString & name); void setSubtitlesList(const QList & list); int getSelectedIndex(); void accept(); private: Ui::frmListSubtitles ui; }; #endif qnapi-0.1.9/src/forms/frmabout.h0000644000174100017410000000176512567301464016443 0ustar jenkinsjenkins/***************************************************************************** ** QNapi ** Copyright (C) 2008-2009 Krzemin ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation; either version 2 of the License, or ** (at your option) any later version. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** *****************************************************************************/ #ifndef __FRMABOUT__H__ #define __FRMABOUT__H__ #include #include #include #include "ui_frmabout.h" #include "version.h" #include "qnapiconfig.h" class frmAbout: public QDialog { Q_OBJECT public: frmAbout(QWidget *parent = 0, Qt::WindowFlags f = 0); ~frmAbout() {} private: Ui::frmAbout ui; }; #endif qnapi-0.1.9/src/forms/frmnapiprojektconfig.cpp0000644000174100017410000000313212567301464021366 0ustar jenkinsjenkins/***************************************************************************** ** QNapi ** Copyright (C) 2008-2009 Krzemin ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation; either version 2 of the License, or ** (at your option) any later version. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** *****************************************************************************/ #include "frmnapiprojektconfig.h" #include "../qnapi.h" frmNapiProjektConfig::frmNapiProjektConfig(QWidget *parent, Qt::WindowFlags f) : QDialog(parent, f) { ui.setupUi(this); QNapi q; q.addEngines(q.enumerateEngines()); setWindowIcon(q.engineByName("NapiProjekt")->engineIcon()); load(); connect(ui.pbRegister, SIGNAL(clicked()), this, SLOT(pbRegisterClicked())); QRect position = frameGeometry(); position.moveCenter(QDesktopWidget().availableGeometry().center()); move(position.topLeft()); } void frmNapiProjektConfig::accept() { GlobalConfig().setNick("NapiProjekt", ui.leNick->text()); GlobalConfig().setPass("NapiProjekt", ui.lePass->text()); QDialog::accept(); } void frmNapiProjektConfig::pbRegisterClicked() { ((QNapiApp*)qApp)->showNPCreateUser(); load(); } void frmNapiProjektConfig::load() { ui.leNick->setText(GlobalConfig().nick("NapiProjekt")); ui.lePass->setText(GlobalConfig().pass("NapiProjekt")); } qnapi-0.1.9/res/0000755000174100017410000000000012567301464013316 5ustar jenkinsjenkinsqnapi-0.1.9/res/ko.gif0000755000174100017410000000060112567301464014416 0ustar jenkinsjenkinsGIF89a tᦦ|||SjEEhgg銊>F7oﻺWWWenyã!, @P<%HI0|cz݆= @ p 00;bq1/v: 8W=3*-<: W2+4;:)=$'7%=,<;0;= (<< (;KM ! &)6.A;qnapi-0.1.9/res/resources.qrc0000644000174100017410000000310712567301464016040 0ustar jenkinsjenkins opensubtitles.gif qnapi-22-mono.png qnapi-48-icon.png qnapi-48.png qnapi.png napisy24.gif napiprojekt.jpg el.gif ar.gif bg.gif cs.gif da.gif de.gif es.gif fi.gif fr.gif hr.gif hu.gif id.gif it.gif ja.gif ko.gif mk.gif nl.gif zh.gif vi.gif tr.gif sv.gif sr.gif sq.gif sl.gif ro.gif pt.gif pl.gif pb.gif et.gif no.gif ru.gif sk.gif en.gif folder.png arrow_down.png arrow_up.png wrench.png information.png film.png accept.png exclamation.png qnapi-0.1.9/res/sq.gif0000755000174100017410000000056212567301464014436 0ustar jenkinsjenkinsGIF89a REl83910|snctjD==I)R)dHHǀhdZ u  6!{/0:u=4&%5.) 2%#3$!# Y[!5$ LMA;qnapi-0.1.9/res/qnapi-48.png0000644000174100017410000000447012567301464015372 0ustar jenkinsjenkinsPNG  IHDR00WsRGB pHYs  IDATh{l?vb;& 'MB@H+1h*U]l`!ݘV=R) X#B @xd<0&O'>NؐcG:%={={.>]2 Xg@>`3na${ Q8J>HV)yi00UR.6:[G6{ρ!V(F0. ,/p\(f`0{Jl/ľi.zhj }fPl Np=~,/ˁ!lWཱི*jKlXuiPu{aNV܏y~|ؑ VX+uV5?,ЧiZ.l9I恲MP/@pl"9<B/~@iq&IabfWUM0~3u\"(Zr4Wӏ/݄657QzrÔ-g1ɇ kt+u:lĺqy3OCaj utu^ҙS&nG!C&hP.Eyt~tFX=ah=(xW+; ({4hy4 F%Jh w/']wԚe R .Ɏ@@`7ANhjj[{̰d20>^wU#j4{c PY=/> \ǘz`&@]/i~S p7p cvT(mP7B=tҢ"{fvtunTꀮnC7 A#lZccZ) n=izh\>[*NdY\(0Z d3S݁X>lS.8zS m^Xa08! OmX0nj=',UXM柆G!m)f6gA|v1AiIp=؁7k5j& N{0/oԷZ[-#`Ja7 W` O)qph /K@p. GR<'G#&՚lw{`GN!21ʥHٝhDF) 2Mwこl)@d"!EH%d?01&lFe!Rl">>XMQwo\<{R\L@lOke.6#r{ȩtjA^#d3&#Uvd9 Ќ lHG" HiOINĘ@|d}K 1\燀$@ݑ3(տӀtMZW"K r`& F Q?nER ؁caFynG ~D\ݱfM_ ]^|Q'C䰇6\ 붘{USJ䶪̣ZU!r{e9냁'BCx\al %D+㬶_2|P;h-O3Z[$Wuv#=N!-g-ŧ }QϭpN0Nߥ3韘μE͍"hL|ۜ0Fu\Hwyza WVQ[_b>N=*7e;e5-un۴ P7pY2IENDB`qnapi-0.1.9/res/hu.gif0000644000174100017410000000054512567301464014425 0ustar jenkinsjenkinsGIF89a ccabH44TTUULL]]kk ..}ttEE%==::{{8LL//**$$**BB<=77QQGGYY11yy@@IISSKKjj\\32DD!, @P(('eX^cliI$ZU \ N'7LuJT$:<: vy{}<8y4|~< 510#7? 37  ??A;qnapi-0.1.9/res/zh.gif0000755000174100017410000000055612567301464014437 0ustar jenkinsjenkinsGIF89a Haa65\y22YEE//@@++..PP%%XXXVQ JJonEExNN::::BBjjK]]66JI11??RK\YOOff_GTwqPQ==<<{TTrsyvE!, @'-/x!aDIzWa| 6z׎HM&3#w y |98,*   ,' y &> ")- >?Z\ 5&%KMN>>%%>A;qnapi-0.1.9/res/information.png0000644000174100017410000000141212567301464016347 0ustar jenkinsjenkinsPNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDAT8˥kW?wLdL&1 6Ѩ(hR,M!R;TA.\tm\ >VtZ΢043$BH|=/_>8U}T!su4-WNV8 (wOo^uŕr#ɞF֮`!r pzyeHnVZԜგ[C*³2??\S +K;EСzrc%5*cb]3_槻i4|vQ @hԎdÅ"@IzSlՒ,Ѿ1AֆFޟXq AǏd'bβE.r`o+)ȶ6P)G!wGCqnfG SJy8ux8q8+g~jnBs14({^&xqXxXƘ0 `~Mqrd;;?ln]-G "8:Z &V#_M_G_8T-y/LZOr_wnYf .m[/-q_1rdߪr^LJ&KӼ~-<]0(Œ1n+iU ' 4`)7 r珁s?w ?{Y!IENDB`qnapi-0.1.9/res/napisy24.gif0000644000174100017410000002600312567301464015457 0ustar jenkinsjenkinsGIF89aF&s(iku;װOPbi7(zKvFY3_ TṶڪ1۹F5u\֚"gج7Dӛ]k,`VLtq恫<~)T _2ܜ[Ѐԙiӿ9 +\)L9Rܤ$S=.Ǒ.~(d͊ c쎭0l= [9 `j>gf2|L{RӍ1z`#jd_lަEЗW!pLӠ'0;޴;瘯`!*0!,F H*\ȰÇ#JHŋ3jȱǏ Iɓ(S\ɲ˗0cʜI͛4Ǎ)'Ϟ;:ԧПF UѧP:mT*TL&Z5jW^Z֧qΦEv[pѾeKܻm╫/ߺ~ X޻ bƒGv<rp1՜9Ϡ+gtgӟQn|ujנɞM۸sͻ Nqd'|9sПK<ԣg~ݺػs籧'LJܛl'~H 72FhR8 jx JBX(zsb+,(0(c4҈Y7&ڨ"yJZ7唃n)ziZzj*kjkz:++J~l"lBN+f[-vkbmf[뭺k:[֫o<|/ ð7<S<[1k119@%Lr,/1,(0,Ls#0A}HOSK4;(Uwt(-QMS'vE;\34-sˍtۜ7wܷuߤ2AB;ْ[mZg5TwjU7=4G8ܺ=89'qFێҺ?|,>PHpT{} k )pC{ lLpC277/?{?ޓn3?P<"Ox7 聂Pw7P8CМ9vcjC S}0wd\|7\ wȽ+ޯtv9Ђؿyr9^aL0ylъC&:A!h ۞І뻣 >^ c IH@8< F2|Be ^-vrɮY{4 @7MCf9?d ," 7v kSa2X;74$$YH A 5)?R6 d2G"r<$Q?2+OxVҰ~o P^s|Lh?A@(bЁVǠ<0_{ 0bH(; +ѥ< sM^OMitOmni>!}'v+OM .蚵׵ujZ.wC@'@Z3,zE˽OF0^Qalao+ۦ]q,eThWZ PyȰU=^j+8'\bָpaƕ'6DOa"9jTѱ4YP0^*OX|*j$08 mۊ ¯o:6B*\B`OU^ B5\Ut S šu!OZc hWp@Z/ֵe܂5zb72~gf7{v6-gS{[3 7%#>/a9Q9 nhCLLeh`J8􂕠Ҷ}HPc,LP @]O{],Cͩ.texdzqW,w\62f.C41:t BtJ|5ct{3Pӻ}o4@AF B 9@"0f |-v1ٍPBD'Q _ t@K?keԄt 7`Y8 ~F/| P_u808Uwu>; % @nd%v0T`vfG\p&h6 0#J i 1x@YeQWXWl "PEP Q 00ǰǰM /0IpЅ@psH > < tɀ @\ 0 @HF   %y;y7iC DJy! m cpKmS @0vpkBs`H ͈pk@ .@ k>p h`Q`P`M[SMP x P [`0 `ЅY@   pɜ c @P@S0xS@Q0pP ' )LB p6BP N@L@P$0 ;i;h6$ {p pvgזvAP Xv(DkG i `>PQi`.{I }Z`5` 0PO"y8@9X 2@UhPJؚe؛t` ֙YĜpx!p[ [8ieS4QКC!  2P &@BYFZCN | jV`Jl3 { Atɖ榁m`bGn#= ;vke" а qp ;z r-Z :TOlVzR BP ?0ȚSpP hpЕX P/p i` mjP  P|!t xUy hfF EC Sp & 2T К=T[ Z;HN ! Nڙ 3 3P 8Pg78d@nD ꬬP $}. V1F@`hh`q aYw[" b뙁Uj k T[]@+{'{p{ph Ի[p`kj/ ni ۹c`][^ Hu@$ `9P8D8 Pvlp { 03[> +l`} -E q0 e LڤO RJpM(\kgPI0 /\X 3 k]`2 `k0lB`  Ij/p<ك\+ Lp+` `N ʖ\ P_ ʏP l\@D@JA- {̰>$-@.OP, @_01 οjF  /` @II `x l< { аKx p| 0Z@ ϔ !ΰ, =@_`Mܾ``DC NI/-@UI*X-Ip*z`_ fwvzv 3 <͑? ,@( W&)h ? ̰ 0r@2k - I :j 330(YS C)Z՟BZ?;xA D BBgg=P轤`Nc-֘0ndtfW  $ -`6E}۬E @+Mʤr5@ P3Zț@CBQ@I@I`I ``p M- {!K`MP"P &V0 i Z`M=+, (ԏ%@%@n @ɠN>! V D< @Ðu9lPNZd@vs @D, @` M)^PJ *EP& IC` -M: lv |I0e'̠Ep1`אv Р%} P V II ۡP &`` PyOp1p H02pxY zPT D @ 0w s &þENn췶"NP .뿼bv&P.: n h0L2. 0PcPįk|NFPP3p ;` } VYŌ ]\],2P0_b_ &`ZP8eH MT iP NXD^?*T @&4m0%("8H1‚,JЃM/>4S1=>ĊqaHP\h @|2*[3GEbt0".̣8`AAgtJ#EL8pT$L!ƏKt (`1ÙBؚ-jh%:?TDH)d9eD0Ɉ! -i8C JEJ٫/ˁGa A @ˈTHxpCzY`H|z#DA3z" I S@/@6A@+ Pj |@m%^`>Y@tv́,K$pu D&@ l .PBbM }GA.@ k#`$VB^;U8@h!2D^P[` Z$ȎE%2Zi@iIh%r7]+%%(8m`H .@A0'K]p!)Oq@b%$(KLa؀ ~Cd ,D[F hl-'1cVFB 8 AA6A E(53*DC72! vo" 2LHp)Q(wBv`f @4B3 %f"hFU*0p)z H%/0N1 R b7 Oe`OOޜ $(0 tRw &x'!)Sj H` ,(Agް:P8%(6܂*$ [XT`)4>5̎SU'-JB0bF^ l`=W 5< hk۝D.x4hxxЅBhBPր%Da 0&: ,v*RqiҔ9`Cv &0H@ժf/Pc 9$ZI{8@;( Ғ&@#tyBvIЎ"#xӣ &:Q ?1P lE*dՖ Ҹ3.X8 p ixv 8 fTA~h!A9p4,a Ύ`\. a 0x\g(|,Zh=;; #2+Cw@ XT w3ɓwx*=Ȁ^Ȱ"**2pS8@;)(۽+(B(=`>ʙfC1ڃ> ڽ#@P%sZ? S`{K<8E~#E?.85bÀ$Ȱą78_vPS#У%81<rfc6\Ek*WyFPЀ8!ἣAev'{d&ZbZF-Z hDdpÆBsGBG{t_pAăT@6xǂ2B1wx1z>L9K pCEw_8;+ #HGHĬF$ST(Cɑ E02_E?b<#$ŁDC_4®J&;KHZ̻H̠;wL,|ȡ(U`dPz=/; .!`M8FN9P1=h8ދL `LkkPpCC5l=gЀ>QP;yCPG*_>\%pa088R8$=R%M#`r\AXœ,e6x]ZUZcHKHZZ5uv5 pmZk;ZP0 [`۰wU**{t(wՊ,\elYԽ:A= PXPHBT9mkk\: ͽ@mfA@EU}}f`QĥЪ<|xS)MN%m[=^Mu-}^X|wJe^u^U^M^p^eQ/?ЂP6mQ;+sC؅݆O] ܀iQ h kT M`\9U]%=kH#(`76<]c X]`] -;282hbGvd0d"d"c>dm0"NdOJ>eT&e =R`YW&*Mb%8X[bi@5@gc7v8NPcgS8\kBvBC]Pu`R>e)XFgtu>euhv~u&ez OV;RP6t(.X6 OFl\vh~huHfٵ[̿j>==a_O`&SF^hih&jꚌHnjjy.ay~eZ*.aԪSn[w$QlmՕ~iAUXEN>kƶnl~lɎlflȶɶTm.NmFm~mVmnm٦نۖmӶn.gĦVFfnFnNnnnnon6&oFon`.`ooo6pO/ppfwp ppΥecpfnfqq?qWO7f_q7w!7]"'"O#7rUr&w\r(Gr)&r('-(r),0''237$G5W6d=dMsLs99';t@BGEWCwt:gG7tH/HbLKMLtNuQtPuQ/uR'uT7uVWT?W_VXwYMXuXu^GZ`v\N7$FvMWv,vgcvcgvjVVh,vnvovppvq/wr?qOwsWwt_wwowxgwyywzw{z;qnapi-0.1.9/res/ja.gif0000755000174100017410000000055612567301464014410 0ustar jenkinsjenkinsGIF89a ;;//66**FF55++44UU<3> %Gk?a"^g:;:   &8*))11??'' ;( "#,!$0:,6 <X; :/4-(! 2 $$vLZVjZn1WhYgw.j,;%z|~>9"{}>"0 !)2! A;qnapi-0.1.9/res/da.gif0000755000174100017410000000056612567301464014403 0ustar jenkinsjenkinsGIF89a TTzzvu>>II]]CC..EE"" %%>>aa11YY77++jjff]]AB22NNTT55XX99;;OO!, @o8&J%|<|x> j@/rfMИ­vNw.dix uj#?(?<<48%;+&+ ?& %7w#$'*3;7 =Y[;) 2/' K! .1 **==*A;qnapi-0.1.9/res/film.png0000644000174100017410000000121512567301464014752 0ustar jenkinsjenkinsPNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDAT8˥OhAn RK%JzQAP4 KOyd^*DQT4"RKmNZIcgotד ?v7aZ`|j8q\yR И}>9[TbۢY3CG:1AN0]efB8pA'/h|GWMa:h(⋐R.{!2I{ =p?q4Ot\"M'gS m9?hubָnlÁ1ҫ Rb=`g\9niܦ5ZFͦ7~ynHt*s)^d+Gt?`_A`Sw37Sk#`ƿ#Sk؅逅%Q~9Nf X Y5ͳASdhhJ ܻPjbKq[myzkd@lhZpwIΚbX(d>_M2hYVhrЂIENDB`qnapi-0.1.9/res/napiprojekt.jpg0000644000174100017410000001350212567301464016347 0ustar jenkinsjenkinsJFIFHHC     C   F K !1AQa"2q#R3Br Cbcs%FS-!1A"2Qa#B$3Rb ?zP(*f@5qhC/+P5Gq2U-ͻws}(k'ېSrTͯVB?vG Ҁ염 m/cE~@Gv|EyV5_B^In eP;Լ!$ d퐿 HǬ\j8Mm0ˋ p_ 8BrN@2ukWOn]o}@Ti7ySݔRԀ@)# UKn$_<- Y¸hdBw4ڵ]tnϝE@PPPVI@RzaoP&[ck,d)ƒV)qjQmG_uurnl|N5 :rq*e*zJ̠ԸfGz٥N{$ǰݹ׊on|*d_F2Տzk&i^F޺٧mdx;\9[JdUԋXnT(ZojJAcҹVkGOks5ٯVʑ^4yaA%+ܒ2<ǭyi/zD)^܃OqZ#hJGpx(fkIrq׹.V^,x{ǰ'^V:0=IEK=`FO{Ӛi9 N!u}B'8ɣNL4ҺW=7`Sb` pA5QB=d+[2@v< F`< m]TWho:~|3VqX8JVIbڪ+lh78Z[$%`.Sױ_zSZz5Ie8Ɏʅ8I iUS:oG#&abۡK~*!0НCxRyNkiJ47ݤ>ՊeSƺ0(JRO`Q][Ok6˨Vա˼tB $t:Yj;E8վsR! $ inrNV_URb*:}1 t1ߍ@6=iZgquKM,mKf*zjܒTHVV2#)>vzxhemmPVq8怈ՍoIZOFÊi)*I^Bfސ$-AsDkol~QCB'N&ţ5R{(?]a= ˾Mr#"H`8PJ˅*l|l~W)?ɗB%$WB1DK얃k_R9[ !>dVkI/]TgF mV?BgCv谓Ur ޟꟋD v*\RJ'>1XJ'&W260?_C.G:gF$fWil%dNO ]Nqs|X4|O;kii+3/46.Z7|mwS͖ïB~!ΠtEJKJaڄ2\u-Vp>|CICi[R-cfC\v*'%8◵#l (hyq@YѩN-۩V1ug8Hm yiS,yڷHO#O'COUI9OJFutҶUߠ_bhm1-#%*@Ş wkp҃gp'>Kcn?'Ӗ+kKz&4i $5 wus@>TnĽ]VSpASAk)9݀`|+0:{meKR@B@ZЄeEn -/JiEK"5Ps@h*wT&ϳ"4d5-$щO^6ɪj"e*/?Tn)%#,}})MtR4Hia+/rPwE&{8,،³+,|h>n7(щuJ-]:G؃ygSZdIJO^'O̶Par>/vlZOZ"Ƅ*~$~ĥcO., 1մJZ.pui>Tu9pX=Qx %VHJSܹۛ'TVcR-e@x$2{ނED/d5 "5/; 0!̐d}⦭  jyØ#)Fp{z{&hMDz:4 Cm|MVG]d(|AKx@Ycrw7=1@mq$mVԄ8w3.R7{,Sǘ>ubM8+\JV;}"ǓU1ѯ쀴:W%AM_.sEk6n䭇iN7;d JEJޒR J;@tdSqQ)Jy(,@F1XCxpd)>v]X G$ԠÎý.,,e$ A4%1]eYc߷r3YTu |(JWq.t^juI[=6"[N!6V4{h~9}ճ:~جC?%AMO,IX =a:ΠyR\(?JqUgS]zv PF،6=B)"cC6wH/}~ƽzCk}ٮٳ6~[7[??0!RR$8pre?'Sk 1ࠃ5vA;ydO@KrCH5?"$n0 \ ږIU4(r HMk̈_4_ziy'"[ n1rM_A`b=$Ik_p-qS~=li~3Bv"qZAԧ̸r[G]<&e!'ڸ67 yq$OX!=_~1Gs~EZQx&qWK3!ޤunkzGrjQnIENDB`qnapi-0.1.9/res/pl.gif0000755000174100017410000000055012567301464014423 0ustar jenkinsjenkinsGIF89a nn;;JJ..XY`` EE55//**$$::JI33??]]OOSTOOeeCCtthhjj!, Q/)dGt:ZV۵T5v^xp\S]pX0% "!' # 1 %  '66A;qnapi-0.1.9/res/bg.gif0000644000174100017410000000055012567301464014375 0ustar jenkinsjenkinsGIF89a FF66V$yq--Iy<}ϓb,o4bJ2_Gp;֡ B n_8 :YɈ!ؾuͼkJiop7?+rɜ[ǸʌU!85>B?MQz `/=W,f''1,/V&DV]}73*1714J3F6.<B IF|>Co\d)$хN|:|=NSy؀&4%7}F8”yCquʘlTnEl%xa}N]M֩J,Ch5K6| n{~`bz| d=[" T %kZY1G|*P-~CzC\>O~}^e- (\|ttgH.ݒ}.f.‘0&]]`Ab}_h+>pW3G?# Em-IZ۳U٣dF]|rLİvF,sؕOeKdgľz JR5'UQ3>ڍh4"~,>HuY >ٓս ǰnwwͦi /]ot;KR\wVT}kT 8$r7k4{[ Ű}xssy4/۸g-+pYTXzH͖{Jz'X7Z;r>\U,~*'zّ\aoY?fJչ?/Ƽ6q¤]i'KVJ\}{:h䦍ےjpbWd?o|X?HنtԾiXL[ )=#*ї[Mm$QeBEAniL[*2ZPquRH<7:qXVrkU;/u)D ^̐X&w;N6%Y 3ZQa/81s(ڣ[Y a^zF~=}϶3&E{gkC탢Ao 0DxBh&BqUC#V w ffE8aG2xJ'Zǂ(s+Q[@]5Ҹ[d}2_GQw@7V 86FM_&ԃE!g>/퉚_E>s՟Q{>|{{ڨ>zm/;h&Z( e2Xh@IENDB`qnapi-0.1.9/res/pt.gif0000644000174100017410000000056112567301464014432 0ustar jenkinsjenkinsGIF89a CZZG-,sV22Qjj5WW65tt$$<<KKIIccRR==kkDDT {{<=76xxvOQ K"">A;qnapi-0.1.9/res/qnapi-22-mono.png0000644000174100017410000000113512567301464016323 0ustar jenkinsjenkinsPNG  IHDRnsRGB pHYs  IDAT(͓;hSq7\hhLZ(b-QSj 8ŊB,")JQqP+EAtj@Ƞڴ57΁:!TXf)>n;pP;1"Z*cT`K z f&P w8f<^2村N6Z]}^kw}ELq àDzW]b_ !a^LL4lٶ/.Hr?XPd5vbGȗ*K5C糾U0X!P6_to^T..DQsI sɮ<',V:DU`"[yLe!G~(s7k~Kn޾]8$cTԌڙ a(n"yϝ2?!BA 9UgH}pYiDAņD9>7*Kx\M\j-B)2YBw6##7<==v6;%%; [1*>;LN07 4A;qnapi-0.1.9/res/sv.gif0000644000174100017410000000055712567301464014444 0ustar jenkinsjenkinsGIF89a Fu2;3,|l#\kL=5iq3}$l9= i V@Cf%yCQF+{Y/X`0tT!KcOy2]KS#wSPPUXA\pI0C!, j4LD`:PMIG1Bt0Kgtr, =)#  4+ <+=;- & gl3(b$750hlLN1(A;qnapi-0.1.9/res/sr.gif0000644000174100017410000000035612567301464014435 0ustar jenkinsjenkinsGIF89a YP330sxkVrdX\R>C[77`U^aw5U!, k`$Fi.(!,;S"@BP0 L5ǨTz?_y<0 ƥ@-p8yt+V| (U m3 " ұ /q$y |L|.8wY)Woy0%C@x%hhR[A Rߔ-#!)Ɏ!EbB"*# ҹ 㿊zq۳޼=R$`g+4X_Adz% mf+< ie ƶO)1bed1|t h 2g_1 m;6X I>.Y_Q[F eɒώx 3b@XЂd{x\)B1΁mf|Z9P, +,ZhB o홢9y&/iFJuj(Vjxt h Ga^s$.w*l" ?Q ѣEP(ed@:Zd)Ov\^xx>aExԌͼKɰ+:qѣ6))Dey|J~֩p. \[-b)r .2=ƃ%Dk{Y[NnjfiPKpZSM-a?(0Υ{Y x ձJ\DAg;k{ G=EВ.Th;{O^D>529oһٯ\m׶ V]&WJ2xlqV!XN_]d0 i`{9WV;;6ބgiz۬h?  2NHxGlz=zxfgaƫ!A̱5ziDI Hw*oyܵkkm@XCpj@D;ZIZ/o!"hF,:[uގ|DH`⺌rn= fGG=#(x=4=I^Aƿ(UKɲjucd}ds0ERz[،ReE& ? [ h҅<ˎg{%=duwϢP,!/+TA-,:,^ӼG Zk|ZgwRdhIMmGJeh'ha-ƿ6l}=]j Qs<DIr?`u]׎K)^d44A,?kt-^i!cHKR}ޅXVwٱ  md wOգK5Ὁz^22},ɌUQ3-dfIu1:IB1itA,?mUtk-՜d; iYm-!xOģ&0d'Dc1xJz Wm z>0~S ׊<7=S%Jf -F= B^O$@Ф+;h:-' z(n^֪\C//z~ƽ rgZDye/M!VMk^ X^{!)bTO;SdaICF@̱T0 Ln^vjP0Fc jk{6yKKoO![#M9Ͽ[$W71^CEyZB،lӫ޽A)#C&Qƿx^o9jkݳOGC\;u$@Y8gvDf*(9VtyNjlgyܮ&:=^:" 4y2g31[˿g4^~l%|T|!0Qm]* ϖ491?1^!`=eZ[ڿza&i ݣ%?VCm bo8ƈ':ߥ641= 72o\SВ>ΘLފ" F7skAn^_^e{wqFsekDu1g mr=e2eԮ=&<֨},?ֈw5^GYw?(2-)OV~(N#iy =K2lheeԒy{צex`aƿe)kmeQcaz-/Ԑ%7lZl$`ܵdwD4ZOm 0|IIy{sZ"YB^=ZgaedN< _>A-ւ?܈™@x.pǝj5uQݻXPZA>YBPQ#~DGE8]Ϧ(( kxNd`& {2jK0l16l&1J/ YC?}rd0?[ ƨ~TU\!XzjF0#G`z=bA +fȇe">RX8MoDy< v,T {E {%0~ ӄOl5٩ik? ɒgрȀ73 wɐ0:~ W[ }=˟)-A׹{$'a:k{<o+iH:n%3GJ!l)-ې+-(`iJfO/&Jp'ߟۿO ;$Jj]GC^K22P޻h9 9{&ѷ8[]lY'^HxdDXQ_6~c~V'3P2' E{s<J:[[|,Ʌ>0>YqSh(Gnu<L\.,aԧOY[ֱ>d,jnΞgo#) Kѩ+r3tKJu|Oqm]s{GiÒa!>Ga&X-G '|‹$H86B J .rb% Yã:D1oDcYI}W$H"" ?`)MoXmu/l32p6C>~59rpxdU@Jg OumOhQ9kK^?Ƽ$=$DÉ Nh P??+&4kI]3&Gi Nf yk[-8d[:6'-T$ﭼCS94ƁjsD`$)e)] QOHƉ\#&!3wfZ~g%EA89{\.RP=2YxY). [tLiRm\y" GxG6%a2ǂ@PRN*N '%+Tgy.72тesa&{^9k& nݳFK"a-ƿ]OIA֑$F!%)<8<9A$.Hc_-C]sҴ!+>\HF2-ysUjE <_kW7{(_c6߇rH.$ dk$ff/_XA /X$|Fwb` "GG+#9ӿW3{%f !eս/1NIrg}׍[& ['+f+ }0®-J<AZ;D;y:"gjegED ptD@z &W_6 `8 n-9JD'&P=5P[q^``Dk%-8sJIB IE)UΈZ2Jy!7;eܙʃ%w(^& p<6q N־31J[ ’H5^ɟ>D)S6J6p9" ;YmX6tOn0o++/d$_q=߾nǎpLtHE`mv_ VP v* uf+bp_޿ 0ʞ;CG:sԙu\K@v;/ 1S&`* *I@x%; bJa^5S Kxs LA ln9#A^;- Z$"k9]f{`,)/s PX* pzd(xVTFgt #68r.da(8͜BZKӿ.?2Fw8fR U$=d?(f`XES [1̶Ary 𪄜Ih$i`^h cQXye9]*eaIgvpJVMy{TXD{lbyKif=-BAY?btKiqH (PF8py̦)˄JDC8a$ ی1fRetG@9Bi4dAX `CX #Sa?!Fz]lc2`D ~l.(0+N}oJ~^ƽ@/,Ǖ zNYJ]&IP`5,:\s5wȇ~B(wyC_P0$ 6!<"0ߒxdž'o+/K`? I5 V6B?\,M< =v-[{l NO/ 2r.<(Ί-X.)Pp(`wA9 PVsJ:q\ W#f&=Z ¶YO[^urXDO)ĕ]f d%h-/saxY]ۥt?[5-KEOT(,l1)(`GAXÎss[%Ft" a]K8(NAcW2ga$ GR{0@0h,VȋUe BeHxQ_(~v~幧irs?9W @9Ԣ"  btK@~{[[4"K BJu&¿< W/%3qށK DсE! ۾=!]za g3`G:-刦}dFw#6hbeEr4<Ϡe.BSyV+ƒa(t '+o$0rauN{w$YGSې1aKoi($]`,Vt| OA>eS-݇^c>r!ae"!AN裩)ۜ얤 (d;G# atL(_0ZxKS8 H\\X+fԸ|!QcD@0Mt˕d\RȈb"=}7k 0 L3<QL9tn?[gIzHf-=1'OiTbB!Dȧd{ S-K3FN STyyKi[aN;FN#1 Sƚ"xg  (eθE}踣/,SKD򍉀_EVr笈ĺNhXØ<6B`];Aֆ0=o:E( t `K"l!f3PFbt-uW2BHA嬭 BATct-+o.0 PZAkVa\$/Sf?قj@ Ka,͟7pL+Mɐ3F=V< 0\ "F=Ɯ9;j]K{d 8:)S,Y@{)0PJf2ߡ|&W_{PmA֎MRf ܖh 0xKog( F 1;c}"C" <~IxsJSUf<xygq*$4 4:o7>&seU@zN`VR UdIBZG GpmЙl])tr}څ جLֿ $/9tXLaD'rdҕXr8*V1 [SXutrO)s0QY"~ϵS`sZ Ԯ$Aah8> =s@]զ qMIK` #VJcR]Nغ̪R[KI/96brZupRX-w"/ L5%4&-QsW"Vh\OFa-=]RxA6PX25͠U:'.de Zd Uf"gcfjŊDB^dT^a(="aMɨ[+PS`V>Ofv)*!-3–g(k3UN?ju̦R qgxޣ095\GQ`a:n;Jo1l}H@V@Z 0DCi+/qVg'f@w9jjc%b2"" bX!6 ?&(k6D49V`ʓ3-Ḏ 0$X^;/G0v瓃@  HexN>ZbXRksJ5Nr'wN?weneE O`N~ ax#CgH7Ῥ3B<_3H\m@sBAO22C ꒮7^z0odZm"\ȎQiScǟ<ɁRW6bN $8 ^{ ׬a a 8ŗ zmbP'QҪG Q6bj DQK[$@y;h9L 0TXruZ$Qq|~35 FDz';(Iut!s&g _9:I XLLui[yq&Yh u\2kZgZaBǙ4M [Zo1eeHGFDGzu;!e?֢"?O2g+j1(IRtSqTVg )Pc&z~e%3&%?Vo ,]O}K-b^%5Rg}k 2g} E_t%"AHVv'䵛0CrѲRHG}ʜ,OrF*he2 iԊ*H )8HZ]LhUxΖgj 5\t;yl`gʮp8>"acii 1GO ""&U[26` XTo` m|Jr(X$Glxݪ^9K晢d5DatcŮ4a:x6ώX͒i'4lsLv_ gY(1*%F2^,{o+yH\#KRSј̻LI@>D22D2[ӧWg XXCDƘ`x)NEAA[#B"+~ijT(y@R5l5>'cT^)\!~[P"a]~az ݍ쥿zt~Wn4X+l>.sw{m/YciP29LgDoq&ikY'CN#sĬߪA15kU_r$ ޒ g&L`l(nX$t;JIA{{I4"/ldY{7l^G55SdX[z2g-T-=)|ialQ ƻ` ]a@v Ɵ`=k |z;pI$Nz3р{U$`FrCD!㍿ ЉJj SM 1K%KmOP0D*L:aN X$-͎om8H˴bKdu/ OXrLkPlPy+\ / mJD~Hg**Zd V^9<>Ke=yO߁(J)ux[V6w$WqFøyA޿"#> FMIJ%J]|Q[k\yC#=]k}Z#`732;[8F12%juK%vv'HEN Goa/1essHb`P5lJ~f4 %*bw+pQ/- MZ18[s>QzFón)$PU+"l$:Ȋd{q[@xt"GB ƞc&6CK"<[HOT\*ڞɟ@4pg;etd)1gN"3L"+=}Sl>KUs7!pwuD@|eOX  q-`Au)9|SUT޿o,(m,{攡E$KoUWF22L畏#ez-X{",bN D S$e||̅_sK_JsÉz=(y[KzK S.=scy;r5a5YgheX錤d]/Wq2- l[D<%A~WΓj 2o?&pgOG') Oю}Q"9xc&m"5/[)/>^1ۋ '|[ a)NEnl*_N T?@_zn++jx[bLâUՏe])sIUU91HHp&tk !@YLmZp/@n1¥ sݒ%C[RK!ʐTd+\ (vKk5٫f'vĂo\W>v <מ<ML\C_yZ ߕ3=^O =ksEDFtsZϭhL{Mw)]V`R_.BbJ4G$z[|ֲHi$ȻzՕ"-$!?:VCK_rx|-! 3"VvpM`u @ Vc vJd֞zrJ 5 r `Z"s㹛 bS|i x5Z{"ZKܶ‹.yL,F. IDATdRn<{HA.? /S$i y8ʯMN9Rg*b2k;w͝5Mj@R<ђRT"/5Q8yStR> [>8$i5:/{><޿dv+F]T %]lmA ü+Nѱ®p]3KrYz'dA$'1GTq<'_B6 {xkӻxю^YBBkz)Q_@J7 (y M( o>1z%"8egm\a/aOvh `I 2U|{{̇=lqM[ߋPgK2}Yef=:J ܿ.j~@l a&sTJIt_:vz/ ,PWOj ֦ECA{!܁ 5P +X](>cBaxWrdp).8N?-ν1G*m\6 +%s"<$籡;rh).96 8KصbVrVCt"I *e/YX"vJZ!]⺩s޿u< 2\(:b]6:fɡ)5nݗ Y ?+b+s2"L5>hV'AbeKT  &ǞpxCvCY"Mrgzp̞1{wC/1бyn>G,oSW?Qzj譌ՐceOﭨ6WǿAoX oGy+TIg:Lvȷiq0ǰ]p;1[jpȅgیO+/e%\H1jc@h`&;L;%oY^i=YzwE%%/I,cOAw($:BV(#ʘ2DPNIJ'[EyAe[z(D jz{$G}N ZKzGW/5ZW@X܂%L=%v?^:LlR lØv;!kZ<h&*Pxt2+/%!h@΃y@S*|[f(0u4k˓л?$|m~RL0<ykϹh1E (2pM5l+Wj;]:tAD6U (q-!e,v[(V"GMoJYag䂉y׼W&jM$@@X xÓfio;(yTAke 488\fDn\5ɭ 3k5)} Yi4<m3 Bܤp}!TxxKߩk7$H^Q’WayTjC7OS[PĞfbWXۥsܘ\EL+2D4,':p%%l 걠^XFjP:(AmX5YZ}DV*L_HIT5T֚9w:>ul6Q[[]TPߝ'O9tU*w)nr<+I4Ca}zCᩤXl".PԈ)Tٝ5-17e>e~ڥhD~(x_@WakZoAhU-vX?_ZgdE60seٕ[ 1,Zhr kQ+h5-ϟK#D> ,J W+R>^*iG4e}+$I8ǂen"{?AةXoG}$HFsZ1چw$g`'mѳ! 웳GzGDћ혩Ug(E/z?#'"†H-Ha5z12V#rͮ4=@{^#F+IQP2-U^y5왡̽E2~MbSkK>QAPz?"zAa$ ޼Q1-=YEZkh"C{j{NUd\{&Ygw&|Dd@@0 `vF1x5QnE4bY%Ɖ1cn-N&蓴7bqoO"P7ND7=e 1ކ(.x1Z AK‡Vz1dƿϬ `m}撜>)#'zAa$敆*+vhD0$+iܫo 3DY;Ru@D$Wm{rSg.񧲏zAaU$l4VRϨƛx]2icU{MOqΡFB ZKOojURH5xьlyYZ1=ǥ.~XfKO":%HZ}3.&Mb 1e8(oǶġ6I[=<: k2U'[׸[sOIJ""‘{ 7EO yĔ9 [.~Y:{TD+aMN>e/4so Ȳ G&y(9wf~hb|gCS͐7P2N'"񒀳DN>Fz1V|kZ]%2`yݍe18-Duۆ~4{"^-%Ur]Sz) {ӛv= [mnZFf٢1elQڬR"u"'-^w|j 5V=-o^P$`"0R1zD6Yhc˹H{";hxS 9A2agtyBߥYbj' 4*"g k57EVJLY/4[t Sۡ^IO%&#zAyI@K)GtX{܇aHG9׵넍1$",l-yacD q㛠O4Jg~mRd8z"}2e/lchztL N) zɓi|Wemu޼WdT+)-1"sƘ9yB8&L#( 76k*lwεH%Q:0mKbm')m6[ 2C^L>EK2/$ymek{5MBgZאfDXPY -idEMJ{,o[`TzVOe<Xa#"ʵX0Z\^U D1>EEի9/ѯN;Zv*I,r^9L8]`w|mTOOK^PXr4d ?q6˹aNX 7V!`z%G?ֳE-;\h瓁"2?: @@/(l~t%J dQa|X#ZRx摆<гCjƙ8w} V˞fgg\t'j%LATG '$$xEH% A>Qf%>b u "6iRH1@ˣnRh5ިC$4LBӹN@ 15ɣᓲzAA$z# UٿUKi4Գz5wUK2d"zAAD la,0Fq{#ޕ=6(?J6ߚ "zAA$E8 -G/g˽vvDHdk8[SzAAD'ȅ-[Lv˞>ЧqOH.AclџMȡ^P bת0^^SYM ,E\$FTl0^P!0bhn[Rн]J7/ar/6ަG/#"zAAD`/{M *"=T#uݺaYG dB5V@u,LtdVϮE5X~ "kF,X3A&c}ʷ$"zAA$`{uu3DZZϪWCs%i}}[G B |nPF*GU"zAAD@K%g"zAA$@SJFd \>A8b})} "pQr!DA@/( ‘DɁւ^P@ɂֆ  HK (HKA"$ H c+ H ]ZZczAA2 E)H7ik%ARC }5uA@FZkT/+ftu}tkW*R±\nAaANAAAAAAAAAAAAAAAAAPTZ+~ork;?p.V x77x5LW+@](r|xbsxxk=hHW+~]U\̟x=>aF AO5wWp| |oNih>.l uհ5 U!DXð \! yxNnD֏/( &\wu?? +NrD6'axk_pi4Ж j\ 34 k-4ߍA`x0;j D c |6x'g~Ώ_Ht}<|/I1jٝG2 }>}˴N Sö TT.W=|'N*]Y.IxAcu5-$> qp'}V4W9[>=x}/$#1!xh?uUi|^G#7oq}VC5L>Iѧ \Oɣ'Z4N/N?Yˀƽ>H^ē$ΓtwCə׮|1x|.r"No]>g>a/HڈQs gXoĺKB16 _ <{Q8л4.h <_3<.x pZ  7V>E!X-:r+M?+Mk4Ejи_}>ƞN*G4' I7u9) lT y"UҊ~NuZYf5ou1왯T3FFdx}_8I*I +$I~ۈp-AXf^N?a* vCA2گ CV_+pXia{KIDATWF弾tM8ظ?0S +|NrEf|k o+i= ?7~IHg'|]/N pR}DRONX\8Oq#$Mnأ$Ò͟ ,\8v?< ɇO'̎+.xuOɰC'gp+̇q\ay`\IX14^W1F.7)|hay,e|jFAsݒaɇOInDs3> 8%?͟:+0WA]3o/aɇOIDc8950'^>h_)|ha^`.@]Y=h?aɇOI"ucsK%Ò͟ ,'@EW+-u7h(|ha/ w't|v$"?8hT ^[9.791*.SK psQ"ͨMwyk?xw^uBeP`puԝc,'0p_O~T?p**8ï=+xO%;rIMvUޱ's}}eg8N R\GNX n D-z}?Ng:FsJT/ #K>O˄SBupsp|*-YaǓ0!qM,KNZ% q{Yω~}X&D׍K  p\('kAÿI  > QAAAA8><4 qCaADa                               B3 56 IENDB`qnapi-0.1.9/res/vi.gif0000644000174100017410000000056212567301464014426 0ustar jenkinsjenkinsGIF89a <<zzKK,<=]]vvDDDwJRN..RR5TUqrnn %% C-@@aaEE**YY4$N*!, +8RDbB 4# N d3cQ|}d90w)-%1+$>-&/35$ '!.4<; (*".:t *X6[ '((=KM**=A;qnapi-0.1.9/res/qnapi-16.png0000644000174100017410000000117312567301464015362 0ustar jenkinsjenkinsPNG  IHDRasRGB pHYs   IDAT8˥_huαbVm1ucNHNBSMN0Rv2o0% $r^#] E`c폳<^tntA_9.W8ߡ͒3;cSl_AU.<5seڗWQZ-I;u|B|,hS';[<#b-ޭQe >)v%nl[_r3WR%![hC`h•)V>'A,+i'hI8ˏft XM03S>h 6RgBZtRNS@fbKGDH pHYs  tIME "[IDAT] AA@T`26˕~q P!88zO!Aw(uR#Py29f@tBԎigz/l(e}m Di֔ C,HOmekI = IENDB`qnapi-0.1.9/res/folder.png0000644000174100017410000000103112567301464015272 0ustar jenkinsjenkinsPNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDAT8œA[EtQg7wALCWA0P017p2=:A3cb2'pܪ$Vme@ ݬ2OTO1W/`z8% ;O;9P#9B}^nO;Ǫo~ d~E dpɳ__j59;=?; 8?=<:??>??69=3 6A;qnapi-0.1.9/res/ru.gif0000644000174100017410000000055112567301464014434 0ustar jenkinsjenkinsGIF89a --=h'V00UU[[dd*+""PP==ttGpDD;;JJM??44E FF@@66;;OO44oo}}jDD{2_PO!!!, @P(D0LX~g"ZYeΘ4`xUEyN(U*@Bqs,wy{}*q/xz|~)&1477$$768 5.;;%%- ##< --WV{{"v!xxзDD̬psa` t<<θ){(ͳиHG_^̱ȩQPɬTSK!, @P@$q8QɓT, 6(vNe xU~>5x%!:0"+6(-(x!==;( $- ?  )'2$ 4. 1" ?WY4( JL??A;qnapi-0.1.9/res/de.gif0000644000174100017410000000055212567301464014377 0ustar jenkinsjenkinsGIF89a n?/uu뗨}//GG}ViihiJH:xLK))凝||xxxff<48/'!##/A;qnapi-0.1.9/res/qnapi-128.png0000644000174100017410000001513112567301464015445 0ustar jenkinsjenkinsPNG  IHDR>asRGB pHYs  IDATxy|ǿIHH.&H]*( hQKoźַԪV-j@+bp\w!@ dOn=sg޹7!g>IL99f30 9 @&#K͍ۿ\$[WXdol¡E$`i .%?y"5zOfo,LqPOwZ w ɰr??LjVfsU7Ê{O(.M`")-m 0XoOqݛYKvmg;( φ'ώf3j" lm` 7Stoú- 0'Kdoڂ3CȡcxJhnPkކOՆ_|xX^50m7klL'^10W=05N@9v?3nHN^: w > ˀɎs|2="xý0%, unv':, y ŗ=6p?J`K 1tK:+!<7D3Bn੼Oˤ*YMhKa):0|i 6GEt<4Jtc\*q_8|Py Xx>|Ǜ4ElT aRL'b*9?Ǐ<3aB/J|q~ 8~e0`B׼XpK?hk1.0s%TKj94?|l,poh&doA4 "W -gCQo<bͧ{ >{ s*YԜQ-Fxcl/ ^5!B!|??ہR%Z~gb }"6Oȵთ6+^m  Y<6' Ln*f"B~g@TVl2G~f3ṴX.qO3QYYwH@lԌKhr]@QG[tRYdj\Njz`E{M?_^SH}*um&쿥@Q8-9%ϔ GdO@a_UfJ R{! &]>cD'lWmrG"gT?#љd[;¹ h` s۷VF;X1(|w[wѕ_ /‘h6;G+|9&4Ol^e+Ŋ=(z&T.rapxXv;[+xrwFVeJZpP /ș,=Ypp8ܛe)>Gxh_ &dZp(ýEj!垓S"` ް}#"Ds҈ٔ^iB6 %Q BVU/^+gжs{&94ث *E3kjX~TCz?:T"TFk:{d:#Sy IOvYÒa`y,.1]2 lǍp_'gSiQYe"A';nnd`B]#)p&xl Gõ`a,)/tNl6=7fiN(9)NIR>~[9~sGO1pbCGA f\gnpS{18W!2[9RCwB?]H1")TIq gC]w +|^ > Yn;ߧcŠ.+3 pE /N)뇸`F_IYw}a0JM Dx $ CSLk9^9Xc&r_~0`6cx"EѨӟ˅YΔ:Yp^~Q"ҩf=Wp[&Ab&S.'ge\u>ϜPaOvu:V_%fM[p2U {*|[iG$Tw~IW 惰Sk/Vg;"enD`bSQ~#vsZPcwJ "י!%+GpaWqfw3/r^$?ѡ*ad[蝈 0**U΀\IGO'8jPoW=T츰B (t/ Nx~6vS)vN(WnvsQ&p /% &q`Z:Mr\:_IҨtMpJ}a4 Ƥ&gLˀ%eP\o*z!­kxO0}?ʠnJ-I߫D+}ˑr T1GƤt9#U"\K T|^*aR9&Dp1o[#)EAxX: c0AY≻?)i,slC >|b plW 09/QNpQQk[t۶zp6 iLGo$*O١y#>+~s᲌iRo#X}Z%PƷ‚.qY)cٖs6B~y!"،"~f-N~X]BX@R[*TA\'׬cpY ++aRT4'2MtB[0XS>&Ѐ,_BqmlwhCyWCA5x(wH1pa"LH$ 5:eNݫe =%W QG g*N0 =J_V|ӣ*z/mpQ BWD>usP-pŸޏ,Ჰ5 _|Orr v7?H10;椇TYka pFvG61BUXS00:`IGV~+1pȠTߦ&G֩n^ r&5Pɂx_׉VĔoq 9Fbz*"XQ-=FF"7=WY'Rq/]^G> m"TۖҀ<#`] Cޫӊka)xJtXo5wobYVAb}'kpc97pI,Z|3FFl!Mya)v(5 }pG%< caMV*{,h (Cabo~/O 0.:de:'+~uC!|l]qE=dۢIG2jgr}$Rb}|;p~Ep%V$(ɖ0=?'"6M8е8_n `J5P/6˂[r{4+"=b`HXscjN x l0b2wY-'dGХQ0\1f#p[Ϧp lAB"}BL "Db/#r`#L=J;#1vQYw.{ue01=J #ܯj#D ({9 X/]΍3ZъVD~pUtjwrỆ+zoކW:|wA$O6}4N.|׫zB5jA{A ՈG8 -ʞp,0_pj1]Y&!I/J|Qi!sMDD!\Rr{{Zr_ ȉ֦+ cL; q/[έr^i +,I]DŽv4}[]iD_X`l8DB(74%mLGaE=4ȼ0{unjIxfIƧW8*@IӾ]|,Fl1sbM*+VQipbXn&QÔo[CstXIh tY,s3@AhNr?{\)gC/?.HF"@Fᗡ- 3d%È}# 6p;'p}DT #&K!U4o:iZ~iǍ:Xkn'!.!$T h󒎉{P.4|ff.[5qP9#\;V gIENDB`qnapi-0.1.9/res/exclamation.png0000644000174100017410000000127512567301464016335 0ustar jenkinsjenkinsPNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<OIDAT8˥Ka SAoc6.PDC Dբ@Zxh1N"CN:vf}󶰾6uvyy1=!4ИvCv$ HS8d*P. M`+Sذnv~cHVr}ފOKW55Bb `l`yj`yk1AjE @EoqS2FE64(l=$6#1![?@Dw$-WfW&D$Fn>SRJuZNWc#di@% b_s Rۆ^t&:?!DmSQeJWeJÈqMT 'DB:RE_as3ȯC2Vz9W[9ŢwU*B4!B|zPJ fVcdEmZVw!Opřzp!MuS>x9f0Uއx8GHv=}uʡGBy=-Ka J8K+${?`vLЉ37ӿѯLjIENDB`qnapi-0.1.9/res/mk.gif0000644000174100017410000000057612567301464014424 0ustar jenkinsjenkinsGIF89a YV8ov97p3,y;FuuGGGGYqOee9/&wY,'SSL@ m9G4j'7CmXfGv*-M7AQ8+ZxfbY]+9,BT]!, G$Zdrdd PLHghm lz/2\n5(s8 '0  $$ 93|a 8 "")). (?&<'''.(4< 1:!(+5>~ ! ;(+I ** (2A;qnapi-0.1.9/res/it.gif0000644000174100017410000000055612567301464014427 0ustar jenkinsjenkinsGIF89a LLUU==..XYW \\CBTU}{{eTT%%OOv2211II++yytto66XX,,KK77::hh\\55DD`a!, Si& e4rp:].f0 jy=g Fd 6}Dd=>?x!{~-t?;!$ u6(0;60/ &c 2 7 *,,7A;qnapi-0.1.9/res/arrow_down.png0000644000174100017410000000057312567301464016212 0ustar jenkinsjenkinsPNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe< IDAT8˥?KQi H*.EA!XX vc!v{;,ӻ\}Ï7Ibc0u2B^h gw`4+@jɥ s5"H hPǁh"H.EBFݜ& 5EɃZn+;l8r9~c$ h>*k>hLLjƳRwUd:<$hݸIENDB`qnapi-0.1.9/res/el.gif0000755000174100017410000000056012567301464014411 0ustar jenkinsjenkinsGIF89a G^PDl⟟oѦ೰,Ws!, A  H8DžVg0H.&au؜]Ob;!  |6~3)*'"2#b%'9-,,74$$"A;qnapi-0.1.9/res/et.gif0000644000174100017410000000055412567301464014421 0ustar jenkinsjenkinsGIF89a 'g;;;^ttu7RL*++"""JJJ Y=FFF666@@@TTT71*{{AOOOCGT000xoooItX\XXXoC!, @GJHd2Q@ KvڌpBU4NLArǍ9A)~[$`+?x{}/|~?5'!!;9<#:==:-';==,9<"800 %%-,""A;qnapi-0.1.9/res/tr.gif0000644000174100017410000000056312567301464014436 0ustar jenkinsjenkinsGIF89a II<<KKCCFF]]zz<=11vv~~.. QQTUaaqrnn @@%%YY;:qqjjff]]7722,,XX66bbSSUU55ee!, +:@ " Ɍt˂pF OrSl \\$>!(B  *x69f ,;4&">0! -5"2# 3<()$1):Z 28(=KM))=A;qnapi-0.1.9/res/opensubtitles.gif0000644000174100017410000000621312567301464016707 0ustar jenkinsjenkinsGIF89a2FYiK]lJ\kL^mM_nUfuhwdDXhH[jpxXz}tͿ]q{ȄX⍴sU|MޣUŘ0mخӜPχ:p؏ (Z  1AUi ̿!,2Hpʅ3ȰÇ#JHŋDpCIɊȕ"I͙)IDp0(QJA AͣH"WBeKգE.b(ΣQ`" G Yڥ+[,% Aч)KDPؿI)gK X*HJu 18`^: 퐬S?a-ײ(]Pj$ІJT&Mೇ"Ub j$Ǖ(Pg#M +%[x!FCװj%J#ZjDt& DcL5X8朣Gjšk1)2Y XsNˆ&nIkTқ cz(R9眓"š.eX,SL 65!"trJ$3ԂeEϤca,B2J/@<'Sb03㗄J6ΌiA3ücL0424r'p2RK+% _*AhM; J,ق 0Ĉ@ C60$| i,`瘳ի;":fˣ0P :PCM7: #%lBer\d[NηM:%| 1ē#o7c=4pŔ$0HP; j"M؟CL5=p6SO#4C/²FR ce!6 p3O;!X  NҌj _16O<휓_9H;!lG" `M<=x)Z(DN3 >JR3#<(5@j0H"Lp3SA+$@ LO8A?A3'l xt} C!.,^H!X > B)a D># f Dr迚 S:0ZG pB8X-nQ VG  ` x0*0w@n'>q70 ?:Q v#G; uH?p# B10A T``w(DP|b@E+FIX0 Hs<3qMGp8㗿#0aCD0Cs4&3CŔ&D%P Bp (x(:>!| QPkhH@%5H 6a LB?@2s CȉZӡ}(#zGDJ"oX&LWtB@!jFC|F- }Pa4ECBtWmhFiLdd.%tA l(G}R@.pa aID>h;?Bn.PA i :V(HE Ї>ap/&Eg/x#>1x! Jp,d\SSJ `R8 @(K? ]4P* XB>Ҹ~a7`"06āc(B/,a _P* !D"ш'{U*ui4l1 EЅ VXVs0g$ULx7CF Z?(B1HAȓ\jdh63t E(S"w90֎P28 P Y+%y.0M[d҆; Dط)xǡ! W` "A c/3Tf"X%ekC1&&X?@Y8]ST-fIC0wX>1! ch`̠>0J- vghUY"0:Q l:mx3ZB da5b+ +F6 rgx?,غYً Nh k;o< 0uի9|$P V3ɣĝs+}h} *@ d Ӄk÷IH/P! QChdc0hs1xB(B݉.tB؀mԚ5ێ'= 5kI-H5p|f&hݷ郓Kkp^zpO 6m U~[3v~u`meV 8oЀB`PZYp3"oc c;qnapi-0.1.9/res/hr.gif0000644000174100017410000000055412567301464014422 0ustar jenkinsjenkinsGIF89a 0zzwcj++00SSFllcc[]]cs:uunU66@@H^BYY&&XLT}DDIITKKWW\\JzhilQ!, + H$ 8Lpd̀DRZT gH"  ||C-8z:uxyn$x0/:o$ )==.6"5e5##' "*9( ++869 33 A;qnapi-0.1.9/res/qnapi-32.png0000644000174100017410000000264612567301464015366 0ustar jenkinsjenkinsPNG  IHDR szzsRGB pHYs  KIDATX{GϽw_<hv]@YBJjC+mŔZDŔbli>m &SP-TĴ協Dz{w=q+,doΜ3ߙ3gLN1M%QlZā% ٌ ׌ьFj E~=ξ:<®۪2E-#~yWʌk14V\?;s?dBgWNV쭊]?E}ڠւA=ȷ 2 gf6֕+_l%؋x[P_@"AO8VX~ԒΩ[u5 _763HО4j躲Nuͱ'lzP2y;F[m,_m`$]&;u&|͞1k8AbT+ir1N&6LqJQTe񫚌>A6kHW&=>AĴMͥLWk}M "&$V4YE\*}LTe}pN%,v-ؘXsAN<(bqEX-}V'r_b{ o($'fΏ(##/\ zSq5>fMU(ؚgI6sXrR1?ecEcqOo*x!^gk{W ڂE.ΔuE1laX)'1`c3蘾NPh/Vve'xy'_O0!*g)`wM6ȗ)3>18,ϰȪw BLؒMm@[&qX'!Sx%B.,e.RtE@/q #t${* ncj pb']yB8=EcJz~6ִiLer(}L@OVN഼ո 񉴚{p=ڛ*`Xz-Du7MO?5O ޜO|p!d IENDB`qnapi-0.1.9/res/ro.gif0000644000174100017410000000055312567301464014430 0ustar jenkinsjenkinsGIF89a -\T|"x11IIWWS,,<($$KzmdJtt;A5@l=j==GL$Ox77X0DjoXQ`ewEpEq=96C!, @o{`9*bdlYRiɡK9zΤyQ1& :xp-&8=| (',7=%7%6"l ++;gh?"".4''?A;qnapi-0.1.9/res/en.gif0000644000174100017410000000055712567301464014416 0ustar jenkinsjenkinsGIF89a ݃⊊uuUU룣鞞((rr11MM66zz<9_ZAX(Cp$ j=Dҹc)+K%gNwY]nxU  n^e>i.V{ b.3f(w|v 2@>6g3xEu`#B:)Tkf܋1v#4VKFQю~il8K qtHxöy"X3bJ:}yebV@mOpOOa m]q*fnL닸6nkI F`H?G*#{twSۊVIekp=NgAd"eKinACo[>hgJkkwOĽV,ʈ+˵bQ;Çt^u%:QqEM+L1C,sDdZ|>J;g2"7Id'r$ؒIcDq0ZTu`2J4VxL';sSYbJAR믲Y;jӜb/+EFET]bGX]".(-DAx&֎K[ܐV8:q9gvpYG ܚbSxF droƵxD?'ՅXI,6 edo u 5LV[4^\Nln".Mjp @c~B$<{IENDB`qnapi-0.1.9/macx/0000755000174100017410000000000012567301464013455 5ustar jenkinsjenkinsqnapi-0.1.9/macx/Info.plist0000644000174100017410000000227012567301464015426 0ustar jenkinsjenkins CFBundleDocumentTypes CFBundleTypeExtensions rm mpg mpeg mov avi rmvb mkv m4v mp4 asf divx ogm wmv CFBundleTypeIconFile qnapi.icns CFBundleTypeName QNapi supported file CFBundleTypeRole Viewer LSUIElement CFBundleExecutable QNapi CFBundleGetInfoString Created by Qt/QMake CFBundleIconFile qnapi.icns CFBundlePackageType APPL CFBundleSignature ttxt LSUIElement qnapi-0.1.9/macx/qnapi.icns0000644000174100017410000006547012567301464015457 0ustar jenkinsjenkinsicnsk8is3243IG*@ݙ$ I\,3v$-֪u-W-Ą8eA2 1r }?I / @K trI yߢںD*_V%$pd#!WkqoeE kV(1_U  [;K9(Q L 3: 9+1 - 6,''&' )   s8mkdS =.ܽ 4r+-I^LҿC 97 }UpRy>L=N@"Eq>NU9< =|^ eG t%`y il32G  Qٵ}*MɆŗ8,m2}M1D~.h:N`cnX g^  Gլ“M ! h^H*),C@GS pfh"43 Ёr (^/A+> %B TzxGl'  (MetwuiW; %az~{|zm@ CwxwrZD?@Nfqpr_GvrnC -\ii\4nka  GbbO`e`F[[-9c`-NSJO[O0NLUU1FH*NP?A.HJ7:-BC35' <:/&+//-(.0 3446621133/')+"1.'  $** %# **" $ $#      l8mk9TWVJ#Bu"@ k x_#6 %^{4*a_f# \$"==<%G4וOI/`dw)1il?= QeKoT!v <ދw'\ǰEga r2byVgqk 6~q*NtUߞe]uqdZLth>~y~dZk$  ldI=b'L}cn}2w{5ih32eãw2 fΈk ɐB<ݜn\p؃Z7<6SFA-ʁ ^ց{ڀ0- LxeË5]Y8X%hp}pmV EIjmF r-u,Q$rՀÀ،FU]HAց=$r؀L2Ձ 5j!+`, zE16mmÕu(tۈH( =٤_%(  ! :Ynyyxm[B9s}J;~ Hlr! zqP9/9Nk~~}|z+|YSyxxv's~~}}s"huttsn\zyc Ypo]+wvvug [kj3csrrncggf^!oonn8/cb&HkkjdZ^^]GaggfA8ZZYWcb$VVUU!__^^ RRQQ!([[ZZNNMM&&WWVVCJII*$SSRREFEE#OONN())(BBAAKKJJIIHGGFFEC2 >>==CGFFEED CCBBAA@@=( :998,CBBAA@>53 9==<<;;9")665-?>>==(766. 22111::99 !2 11'..-+6655+ '.--,+**)!2110'))(''&&)--,,& %$##" &('& ! !$$##"!                 h8mk FtR iԅ)#Z{ OҁL##(Kyo GAtqLaIC!0 ;8P8ARRRRD"`8^T(;F-(|`D{$nU+8*7b!ayVSؗxV-'cǮH !| 22222(12221222))nRe;y E}vR[,@ǦxUP`(@JJm (@{ʧF*(B)(;Q)sP=`9_%\\ET4%\\Z;\\\#:\\\\\\Lit32U&6vՕF&fv61֛'Gg WwgשW( ۳2YIyyՖfF&Vyf6z5 Uˏz# UԎT{e=DT".;͋ T~~ :.'"!^V J׉!^?1Љ!G(@Ϩ@`X@׈(Xx(h׼g'GH8WH@آƈ)@7F@&FfF&6'vv69W@ƇGygÈVfw & Jեկhx  وuƆ/ZŋfV6VvOĈ`@0Ս%eej z %e0P 5z Dي&&_  L,<o  .y&s9؋'CN]Y='@=~ [M~'AO~SL?  ?#@דoDߏpP00$_ΐ> Nڎ+ʥ>~**}]M=ٕm-=]̌=  |̄ ~~Q /qwvutp"~}||y)Sutscy}|{icponjuyxw=anmllWMxwvNjmmlkj'(vuttXhkkji_buutse5ihg&tsrnUhhgfXKrqp8 ZfedmpoZedcP7onmnnmZccba jnmlQ%a`/%lkjQ``_^U?kkjiO/^]\_ihg#Z]\[*hhgf A[ZY@*feU$YXUIedcc4XWVV`cbNVUTba``]2UUTS1`_GSRQ=_^]CRQP</^]\.POB.\[Z-ONM-ZY,MLK,YXW,;KJ ,WV+7JIHH+VVUTT*6IHG*TSTS)AGFE*SSRQ)FEDEDQP(DCBBPON2  CCBA:NML( #15DGKKJIEA3!A@A@??/JMMLKJIHGF?.@@?>(9KJIHGFEDDB5$>=<<0JIHGFEDCBB/.==<;HGHGFGFEFEDCBA@@:;:99 GFEDCDCBA@?>=%:98/:EDCBA@?>=8"876(CBA@?>=<;1/7765BA@?51%$%$(35<;<;:9. 5412@?>; *8:98776(432#??>= /8764'210;=<; 26541,10//*<;:2432/. ::98 0210.-,* 872 10/." ,-,+57765' (//.-$'+*)(543&-,+'  &*)(%321%*+*)('02210$*)('&% 0/.(('('&%$%$"(.-,( %&%$#"" )--,+& %$#$#"!! )+*) #"!  (*)('& "! !  (('('&%%#  %&%$#    %$#"!   ##"!  !                     t8mk@ TӴdT$ dߔT%eu0Ee eeff VF1g B2XHxxxXyyySy=C-Ԥddd%%4dtD ;d^>$ S:~^!S :~?b!_!h w(hwxXHgH?G(ghw@'@@G@@@@@@%%%%%%%%%%%@ԤE@u5 @U@Fv#- vYw vg@$*&<8jN^eei @%5UEoUUUUUUuz E% $d* /y\#N&.>}"yݝMbyͭ}nnn.>nnn.#....  {8<<;+^:*M-]\<<<< \{{k؋K K;K{ʫ[[5 KKK[zKK;  +zʚ8X6R%o2 !Vst4K}m +f9É9xs k EPP6@GǥKy/@dENxX@T @l|@;%Nd[WzyyycCݳl,![FK } Y+.OD/vN<_k)Gt=Ev< S2V Vs4SV Vt4'CCCCCCCCCC"2CCCCCCCCCCCCCCCCCC.CCCCCCCCCCCCCCCCCCCCqnapi-0.1.9/macx/content/0000755000174100017410000000000012567301464015127 5ustar jenkinsjenkinsqnapi-0.1.9/macx/content/7za0000755000174100017410000640406412567301464015574 0ustar jenkinsjenkins!H__PAGEZERO__TEXT__text__TEXT y __stubs__TEXTp \ p __stub_helper__TEXT̎ R̎ __const__TEXT ? __gcc_except_tab__TEXT B __cstring__TEXT'__unwind_info__TEXT+=0E+=__eh_frame__TEXT`}`__DATAP __program_vars__DATA(__got__DATA((__nl_symbol_ptr__DATA  __la_symbol_ptr__DATA0 0__mod_init_func__DATAH __data__DATAP-P__const__DATA@?X@?__bss__DATA7__common__DATApHH__LINKEDITP@48"08 G#+(Q\= P88,z /usr/lib/dyldz)?%ٱ^-$  *  h{/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation 84/usr/lib/libstdc++.6.dylib 8/usr/lib/libSystem.B.dylib&<pjHHH}HuHHHH9uH謏 C UHH%HH ]UHHHH LHHA]fDUH1ɸLfffff.΃ށ 1։Hyށ 1։ށ 1։ށ 1։ށ 1։ށ 1։ށ 1։ށ 1ցA4H_H 3H=uH H H]UHS&f@t#D@D13܁DAAA@HH3B3B3HwHt'ffffff.DD13HHu[]DUH]&UHAWAVAUATSPIIILmI)I1Mt LuLLLA$u HEHuՉH[A\A]A^A_]@UHAWAVATSHHIILefH)I1Ht"H]LLLAuHMHuH[A\A^A_]@UHHHHEHUu1H}DH]fffff.UHHHHuHu1PH]fUHAWAVSPHII1H;t*HuLHAuHHuLI H3LAVH[A^A_]UHAWAVAUATSPIIILmI)I1Mt!LuLLLAT$u HEHuԉH[A\A]A^A_]UHAWAVATSHHIILefH)I1Ht#H]LLLAWuHMHuH[A\A^A_]UHH 5HHEHHHGH#HGHHG]fUHAWAVSPIIHHS(Hs0HH)HM1H9u11I?t)HC(HE@HC Hs8HUHHMHK0I;sIHK(HL8IH[A^A_]@UHAWAVSPIIHHS(Hs0HH)1H9u71I?t/HC(I?@rI@HC Hs8HLIHK0I;sIHK(HL8IH[A^A_]fUHHw(1]@UHAWAVSPIIIG(I_0H9t4H)IH9HGJD88HHH| I_(I1H[A^A_]I HLH[A^A_]fUHHG0HG(H HG]UHHG0HG(]f.UHHH]UHAWAVSPII1I>t,H_HuHLuIHuL)| I6HSH[A^A_]ÐUHHH]UHHHG]UHAWAVAUATSE1Hi H Lffffff.4HuLL5H) A ȃAAE 8 D< AAE1ƉD ȉ D 1D AAAAA  M|$ D CCCG HE,DAED1ÉكҾAEAE1ʉ׃1AE1D1D1 D AA1A1EAA D E 1߉D D ʉ ÉD AA A AE AG,CCC MfH?H hHHH OHHH NH[A\A]A^A_]UHAWAVATSIHIMtbH Mgffffff.CA1CA1GCA1GA1G LLL8IACAGCAGCAG H[u[A\A^A_]fff.UHAWAVAUATSH}HL-ffffff.HuHUWUčZDDEDNDMNMF E4HuDtA1D\A1ˋTD1DdE1LHH]fIBHEȉDEEDAEG3\E@E3DDG3tA3T@E3 DDEC3A3 A3RE3E3 E3rHEE3dAAE3ZE3E3 E3bLUDىEDADE3DEAADA3\AE3|D@E3DDAG3A3DDA3 E3 E3 C3LAAA3AC3 A3JE3B E3zA3MHE$L B4 D؉EDAF$ UF A G B4B<DD BAEE HEFG$ DF4AE D ҉UHHEH)LULHUI)DF$ AA ACD ډ@B<AAFAD B  H}B3DB3TF3dDEB D Hu3 3HuD3gDf3WV3G HUHʉF HvEEGEGEG 7[A\A]A^A_]fff.UHAWAVAUATSH(IHIH_HHEMHMfLmAuAFLLLHMMHH EHCHUȉUH U0KM0KM0KM0KM0KM0KM0KM0KM0KM0KM0KM0KM0KM0KM0KM0 IH^HHH;EuH([A\A]A^A_]Xs f.UHAWAVAUATSADEA1Et1DDHD9DrAH9AE)AN\MDEA)1L=)z L-"y fI4FL1AuB1AB8B2*ЉB( ЉB* B (AE1fpNF4DEAEX 0 X Et2AAD@uD1EtDD)IوhHۈX1MuIAAMDcHuiLXI)LL)E1H/E1 wtKLAIÃMJ7ffffff.L9rH)HL)1HwA[A^A_]ÐUHAWAVAUATSM̉UHu1HHE1Ifff.Mȍ AA݃}DE HH-o D$AMffffff.AIALHHHDDtTD\D4LHL I(H HII I I M DLHHHH!HH9HH IIAA AL!EDɾHcI!ADفHH AI I DIM DLوlLHLLHLLH LI(D\II)AHH;Ev[A\A]A^A_]ÐUHAWAVAUATSHhAD]AL1AHEHUDuD A1HE1D9DAB)DHUDDE]LHD9rE9vaEuԋEEHEH HD9sED9DAB)LHs9tA9DLELAHHELM{DKA1AD HAAALH9uAUIM HAC1AUEuHu1DEJ1IA| LA YHrAAALA9HuL]AUD HUA<1ɍ_AA41f.A49tG)t=?A ߁A<rA A tAHY#Y  1HW(D,_OEffff.D9<DHL)ADyA:tAANDAE~EL$MD$0I $AT$AD$A\$<\$$)AAD$I$AD$AD$A;D$ uLADH [A\A^A_]fUHAVSHIA~veIAA3I1A#N8%EFIV(4DIN(DENMF0IAVEVAF tH; ǃH{ v!Hj!H ^!H"H "[A^]ff.UHG]UHAWAVAUATSHHIIHEIHEIHEMLeMLmIHEIHE*ffff.At6EAH}H} H}E_DML!H}P!L8EoAr3AGxA)ALDAw|HIw(AW8DEoEgMEԉà AE)EdAG`A9rVAW|HIW(A)AAO8AwI?IH$ADGHHMMDEAEdEEgDIH}ȾLeLmHLX9 LP9 LHLLsH)IIL&9 L9 AXHH[A\A]A^A_]fUHSPHHk ȉAH HH[]fUHAWAVAUATSH8IHAN@)MLLeAE1@DmM)DDE9DABED)D9CΉD)D9CuDAK)r)9FD)AAE9EFD)9G΃MHAAEԋrHLD+4E|$MK|H|$T$$}DEEEmEEK H)HHC MHHHAD;}ЋEsMAAËDLeD)A)DDA9øDDDDmAMD;}9H8[A\A]A^A_]UHAVSAHuH5 ǃHCA?AJ4H DAr!A)HDD)uH^5 ǃ[A^]UHAWAVAUATSHHH`HEHHEL`LHHEL{`&{Lt:D(H}*H}LYH}E1.ff.LHDL Aƃ{HtH[A\A]A^A_]UHHLJLJLJLJLJLJLJLJLJLJG@LJLJGXG`LJLJ`LJLJ`]@UHSPHHHHPHǃH[]DUHAVSIHHH{@~HLAVHǃ[A^]UHAWAVAUATSHMEljMAAHHHEDc, ?Hu*LDAHHHt[HHKAA H}DDMEMtHH53HڹFtH[A\A]A^A_]H{@H5Hڹ@H[A\A]A^A_] ffff.UHAWAVATSAIIH1;HǃH{ wuoHgu_H WuOHDDu9H 1Du$CH{LLbu 1 H [A\A^A_]fffff.UH'1]UH1]UHAVSHLCCǃǃLEL-IHCC,CIF(HC AF|C(HK0IF0HAF AF`AFIHAFAFAF<[A^]ff.UHH@]fUHSPHC,{)NjS(Hs AC,CH[]fUHSPHH{@(%CHKHSCACC{r+{,S(Hs C,CH[]ÐUHH]UHSPHC;CuHgCH[]ffff.UHHcH]UHHLG0LLO A A#AJ1EWAA9r!LH)A A: uD)‰PH]UHHLG0LLW A ASA3DʁAKED1ɋE Afffff.UHAWAVAUATSHHLMDEIHuIHHEHARHuupƒ@tAzuAc@L\AdžAdžAdžLmDAI9vHEH]ILLHUHMLMHMI $ED)AIV0)IA)AHE81Hu5L9u09A9AdžHE8L}IσLu HEADGLHH9HHA HL}wy AwiDkmADD(k9 @ A( DAFAi @(@ƍ4AAFAdžIAyL}I̸ pIv0H;uHU} HECHE4EAH=8Hc4HEErAu& [AdžFA/A A AA|@AA AA@ A|@I$II)LmL}I)AL9LFAYH9uOuAdžAdžAAdžL1 LmM9vL}MMI~I~0L}LL# LMn0A~DtAF@Av AF@)L9wAvDAEn@HEHA)A9ƿDAI~HE1HH[A\A]A^A_]Ð)=dxUHAWAVAUATSHHDMLEHMHUHH}IHEH:HIH]LmLmLeM|$0ID$8I9u ID$0E1I4?HL)H9H}HGDEDGLH]HHMLMLAHEHMHI)LmHH]It$LMl$0MM)H]HL"" HEL EHMuE1M9tLHL)L9H1DHH[A\A]A^A_]ffffff.UHAWAVAUATSHD$DIHIHI $HM}I$IEHMAHDž@HDž8<(H]tƒ EUԉЈeՉEUH(HuӺH,AEHH@L`EEEEH(H HI$HLHLD$H]IyAHXIEEu;ADDH(Hu*DH[A\A]A^A_]ÐUHSPH/CDC@HC8H[]DUHAWAVATSH@IID$ IL$(IT$0HUHMHEID$HEID$HEI$IL$HMHEH}/Et$4AD$@ NAL$DD}܅ODK$șADDD NA#EșADEADEt$4L.IL$8Hu9AD$H HHCHHFH9HBIL$8|%IT$HD H9v1HHcH9s DEA\$@E|$DH@[A\A^A_]fUHAWAVATSIIPTAH1HtoLcL-CLCHHC@LChHCPL{XLs`fffff.HH =huHhH[A\A^A_]DUHAVSIhI<HtIvXIV`J9IH huIh*IvPIFXHPI~XHGL[A^]ff.UHAVSH@HIHC HK(HS0HUHMHEHCHEHCHEHHKHMHEH}-HMHH ʃI LHHL1H@[A^]UHH-1ɐʃ'wփ J9w]fff.UHAWAVAUATSHHIHUHuIMuhLuA(Ls H;uI}X6HH HLAAEHA9|ʃGI}Pu#IEXHǾHIMPHHEHEH8Iuo2pHEH8HuHU蓂TIEpEAExAE|ADžIMXME`I}hHu ?1DHEIuPH}HUHMAELeLMt$IupLHAA DEMuHEH8vAEHuHEHǺH E1HuxDsH HMLmMHMIHMIIUXHMIIIM@IhHH HLIpAxIhWHH[A\A]A^A_]HEH8@DUHAWAVAUATSHHLMLEHHUuHHELoHM;D}IOt=hHEI>Iuq0AE9I>HuHU蕀AEKD=pECD=xCD=|CDŽ=MEXMM`I>HuHU ?AELuOt=pIE1HEI9slH3HEH)HEHuH}HU1AEu>HEH HH A HtILuA tHEH8R?DEHEH8??EEu+EE1t!HAH;EtHHH HME1DHH[A\A]A^A_]f.UHAWAVAUATSH8HH]HUHH:H}H}E yHAIL9HEL)HEH9II#*MMAuI}HMLMLA>D}MLHuMt"LuIw IFL91?ffff.HEHHIHMMLH H9b1D}EADCAOHUH)ڸH9*IxAGdDLtHI8M=EMH)LHL D}E)D}MMhLHMHHu2HEHXI8+HIxtAxtAxELAW @7HvVnNAxt A@FA@A@MxIHtHLH L9u HEL01H8[A\A]A^A_]ÐUHG`G\GltG@GDGdtGd]ÐUHHG0G`G\GlG@GDGd]UHAWAVAUATSH8MLuDEHMIHuHL!HIAHCpHE M̃{dtWK =tH{5HTH5 0 CXCTCPCLCHCdClE1!IDur EHLL!W}uHMЀ9%KqCr Ks Ct ȉC,C(C`Cl1HEH9C0C\u{,u[ELtLcKT,Lk HHu HMHC L)HIfff.AL DLpAF48AwDL9rDsl Dsl}t&HHuL}t HUHS HHueHME)C HU)DHIClI)IŁ{\{`L$@pAMPSlLpHIIŋClMu؃HHE1qHE1cHE1UHEDH}LL DclHEL DHMH띋C,u HEC,H8[A\A]A^A_]ÐUHAVSDO\MALGHG0H)L9DBDwLLW8DtO@D_ O@D)9wD_DщO@A)DO\uI/LL)DJIfL9IBHƊ1AHuILO0[A^]UHAWAVAUATSOAAAD@E!DwHLuAMLGGpO,Dg(AvI1H/ LNAHEA ED9DuEu IlGOD!DDHO0HuHO8HWTD)iM@lHEЃwtA"ff.)A)ՍL ÁZA<@Av1I9VA IAD 9sɉA믋OLHG01H9sHW8H)HHODA&fD)A)Ս|?AΉADHEDD!HHEPAv1I9A IAD A9sD1AΉAHEE@D)E)Av1I9PA IAD A9sMdE1ATHEA@)A)Av1I9A IAD 9s_Cpv1I9A I 9sI9=@))HEA@)A)Av1I9MA IAD 9sPHEE@)A)Av1I9A IAD A9r)A)DMh A AE'v1I9A IAA ED9sAO|_E1A{D)D)AOv1I9YA IAA DD9sAO_AAD)D)IAAAffffff.A GAv1I9A IAD 9s A )A)Ս|?D9rArD)D߉HApLFعfffff.LA<@Av1I9:A IAD 9s ɉA )A)ՍL Ã@r w ωȺH)ƒ@HM@\)fff.Aw1I9A IAAD)D!)uIDfE@Av1I9sQA IAD A9s ɉA )A)ՍL uI9AAE[A\A]A^A_]fUHAWAVAUATSHHUILHHHPfK\CDEtC@ELS0Lu*LS0LL)ЋK@S )H9w MLu MLHUKK{,xDC(E1Ls HK8HM)щpȉ|HCHECXECTECPEHKHMЋCLEȋCHEΉtHh HhHdH`HlHXfDEAD#tEAAO$HEB`AvA6 IAD 9F)HEfB `I}ĉ ELXt IAA DD9s)fCgE)fC gMI9ʸHBELH)HHED C< A T@AvA IA)Љ 9s'DE̾)fAA DẺ)fA))AMF A!HLLH A4_vA I 9s)fA_A1E)fA4_))Gd$FE!LLLHA4_=vA> I 9s)fA_E1E)fA4_))Gd$LEAE!LLDHA4OvA I 9s)fAOE1E)fA4O))Gd$LMAE!LLDHAOvA I 9s)fA IAA DD9s)fAOE)fAOD)D)Gd$AHuF$EIL]z )HUfBb)ދMJIA)AvA> IAD 9s/)MfALE H`MD]3)fAKU U )A)AKAvA IAD 9)fAKCcM܁vA> IK9AA DD9sT)fADMI9ʸL]IBLH)HHuBEIƒ}D E)fA DD)D)ËMD])MfAL)ALA)AvA> IAD 9s!)fALMD])fAL)ALA)AvA IAD 9s)D])A)؉)fD]DËEEfALEEMȃ}D@EHhMvD]D]A6 IAA DD9s%)AfJDHE1ɹ)fD)D)HvA IAA DD9s+)fpAJHA')fHD)D)HAAA@EBhAvA IAD 9s)fB4hEA)fBh)A)Gl-A9rA)E͋Ẽ sẺEMMEEAIApLGLHALAvA> IAD 9s)A)A)Љ)AfDfALLL ALvA I 9s)fALE)fAL))G|?OC<\vA I 9s)fC\E)fC<\))G|?LUEMC\vA> I 9s)fC\E)fC\))G|?EMC \vA I 9s)fC\E)fC \))G|?DLA4LvA> IAA DD9s)fALE)fA4LD)D)G|?AAWsAAAA JH)AMI)։ːAMHEF<`AvA IAEA ED9s D)DHEfB<`ۉE!DA)HEfF<`A D)E)؍\yAAEȋMD;MAAD)f.AvA IADAD)‰FLOD!uA$F=vA IAAD 9s)fA$F!)fA$F)A)ADALDvA6 I 9s)fALD)fALD))AL ЉA|D=vA I 9s)fA|D)fA|D))A|?ADDvA> IAA DD9s)fADD)fADDD)D)AAAA9LU}D@E̋EEEEEEL;UsAD}M9L]IBLL)HH]L)EL9DBӉL A)]M9v9HuJ DJE1f.HL9؈IDHuDMT"JHuIL)fA AIHuIL;UsHuL]L;uAv'EAEELUA IAUHPLq HDC(C,Dk\LS0MĉK@EȉCLECPECTECXSHC 9rCDHLHLL9s0sHEH9C 1K\1r C\1HĘ[A\A]A^A_]fUHAWAVAUATSHHDMLEHMHUHH}IHEH:HIH]LmLmLeM|$0ID$8I9u ID$0E1I4?HL)H9H}HGDEDGLH]HHMLMAHEHMHI)LmHH]It$LMl$0MM)H]HL HEL EHMuE1M9tLHL)L9H1DHH[A\A]A^A_]ffffff.UHSPHHHsHPHCH[]ff.UHAVSHIIvHSIFIvHSIF[A^]f.UHAFN F V AC‰G M0HuEEEEEHEHEHEHEELAAƇ\ AƇ] AADAAADFHcAT$I\ AH DAAuff.D1rwɁr@wɁrwɁrw)LHA\,IAYILJhCILJH8[A\A]A^A_]@UHSPHqHHtHHH[]fDUHAVSHIIhCHSIHSIdžhCIdž[A^]fffff.UHAWAVSPIIHH{@LH8L2HhCLAVHLAVHǃhCHǃHLAVHǃH[A^A_]fff.UHAWAVSPIIHH{@LaH8L袐HhCLAVHLAVHǃhCHǃHLAVHǃIFLHH[A^A_]UHAWAVSPHHǃxǃ7Hǃ7Hǃ6ǃpHǃƃtHHHnE1Hǃǃfǀf@fǀf@fǀf@HQfǀf@fǀ  f@fǀ f@fǀf@fǀf@fǀf@fǀf@fǀf@fǀf@fǀf@fǀf@fǀf@fǀ fH@ fDŽKDfDŽKEfDŽK EfDŽK8EHDXCTCDt%1HhCfJH9uDXCHFL= L HPGL HGL HPHL HHL HIfǃIfǃIL HJLv HKLb H fǃfǃL< H L( H L HIL DǃH ǃL ǃ6\CʉdC`CH[A^A_]f.UHAWAVAUATSPIAhuLLA6A AؑA\CAAM\,MI1fffff.LL\A9uA\CAAI1LL[A9uH[A\A]A^A_]ffff.UHSHH THHEAF\ D҃DȈE1ۅtaMIщID)AD)E1fIDGH΃%D1D\, uFIAcE1Mffff.E1҃PCDу@1LHHBFف1\,uLHHEB 7A‹PCA9rr5ffffff.ҋ 7ցD𰉄 7;PCrMIB 7LH  ;B7;B71҉;B7;Lff.D` JB 7;HHƒ|uIIALJHQHH;Eu H[] UH1f.ʃBDTA GIށ1DILAG A \,ځD1\,BWI%1\,BOI%1\,A CLILJLC]ffff.UHHLJHL] ffff.UHAWAVAUATSPIIAH11fʃwJ9wLEЉPCǃǃHu2LA$HHHHH0t0hu C8DXCDTCHhCHtHt D9dLAT$HLAT$HǃhCHǃDLcMLLA$HhCLLA$HHhCHtHu7LAT$HLAT$HǃhCHǃDdC8D)ҍD9BхLMt-6L{@LA賧ucL{0LH 5L86LAӆt,L{0LH虑H1HHǃ1H[A\A]A^A_]ffff.UHLJHxHLJLL]\fff.UH8u]H@]麩f.UHHHx0]`UHSPHH{0S6H)H[]UHAWAVAUATSH(MEIHHHEHUIHEEǃǃǃtH HdDHǃxǃpHǃƃtHEHHHǃǃHAH߾DuD)AHMI)}DȉH([A\A]A^A_]DUHAVSHIIFH9s AFHI~H' I)^I^H[A^]UHAWAVAUATSHUIHCLHHEAtIx0LIAǀAA <1AtAǀ At AǀAǀ<tAǀ<IHtIH0HHQHIx0LSuHH)fI=ApIx=H9IH;A?9rrDA9 Iz0LASEIAH1YfA6HH׊X:8u5HHߊ:8u(HH)^A90:7HvtHƒvADeDƃuEA6Iz0LEAL A9H t*H @HE t A x MEL A)?AǂH AǂL A6uLHuLBIAEP AT EEX AwEAHH8LSID@HH HRAHUHMDGE11fA6HHD:uMHHي:u@HH)fH΍ND9s 0HN:7tƉtEB;tDGHƒu DA6DD|A9rDMDOEA9r&EA\.ED=EHMHIH xA8tAw ADuHH HA7HhA` ATC)A`C!@HHLH`EdCA!JapCHUBapCHA\,tDiIhCH~AA1ɋxf.D46DD!DL1LDWAAAAAE1IAC\,A!DrCA1LWށ1A\,=rtA Aǂ Aǂ HEHH?HA\,tHhAzDHH?HA\,UxD8u\AzEHA\,UH`B`PEHA\,9sA Aǂ Aǂ 1uD9AEBAwEA$Aǂ HEHMD9HPHJHDGDH@HHxDff.@HE1wfff.MB\HrA7LDDMGMEH HH[HHIi@L։ϋ ;rsrBD:BHHɍqwIAMcLDUABAF1;Ev!HAAӋHILPAHʋ7JDHD\,f.AB;\.wADFADtDE=IIA#.1AtAǂ A-Aǂ-H)Ѓt,;Is1IIIH I+H;`H)ILT2f-ffffff.AIi@DEZAHBHDMAMD\.IwH HB ;=D) KHHDD2\ LY 7 CDH@HEAD;\ s-H\ D1DŽt ADx DŽd DD;\.AE1E9HAƋHILPS f`xA8Lu HhM9GӉ1f.AAq9sHhDL:;tAsMHhH. EHXDMIMH8A#dCH8ADpCHH?HCZDHH?HA2\,A\,ELGT E9s=CL DD)D1HDADH@HDŽ\ @9ލ[uHAH8Hi@HHD}AB B[EH\,ATPEHH?H \,DIH @HA; \ Hhs6I \ 8E t ADŽ x ADŽ d ADŽ h EM(DdDt@A1H8NDHHHU: DxH؊: I1ɺ$ fẢAAD;`s"DFD;H]AL$pA}AVE:tC1A9L@L8LrD LP?AT HtAEs DtDL)؉ H HX HHAGB\0LыHAATCAdCAA!FApC)A#`CDDxLDiIF|0IC<ALhCA1F\,?D!DDLD1ADDGDADŽ2x ADŽ2d A+]AX 9C؋Lx$P p(HHALPGA69ӉGE`Hh $(LILHuL&;6 MT P HHuD LHuDL{1IAIAtfH ȈHII;uNAuDIIH)HHMMH9t Aǂ IIIIIxuAtIH%HIxIz0LSIA6HH<ATC)A`C#iHMHH)D!MhCLEA7AL@DHEA @ AĀu3)Ix)Ap)щfA@=ApIx=rH9wIHIIAtfH ȈHII;uNAuDIIH)HHMMH9t Aǂ IIIIIxuAtLLEIH%HIxEAHA7H P A73H HH ALf.IIAtffffff.H ȈHII;uNAuDIIH)HHMMH9t Aǂ IIIIIxuAtLLEIH%HIxEAxtD1!‰tɉx!DHEA @ AĀu3)Ix)Ap)щfA@=kApIx=H9vIHIx)Ap)fApv HApIxr H9wIHHIAtfH ˆHII;uNAuDIIH)HHMMH9t Aǂ IIIIIxuAtH DEIHHIxA7ARD A Ix)Ap)fARDApApIxrH9wIHIIAt@H HII;uNAuDIIH)HHMMH9t Aǂ IIIIIxuAtDELIHHIxEA7ABEAp Ap)fABEAp=ApIxrH9wIHIIAtffff.H HII;uNAuDIIH)HHMMH9t Aǂ IIIIIxuAtLIHHIxA7HLJrPEBrPE Au3)Ix)Ap)‰f=TApIx=rH9wIHIIAtfff.H ȈHII;uNAuDIIH)HHMMH9t Aǂ IIIIIxuAtLIH%HIxZDA6EA7AJEAp Ix)Ap)fAJEApApIxrH9wIHIIAtH ˆHII;uNAuDIIH)HHMMH9t Aǂ IIIIIxuAtL DEIHHIxA7AR E A;)fAR E=ApIx=rH9wIHIIAtf.H ȈHII;uNAuDIIH)HHMMH9t Aǂ IIIIIxuAtLIH%HIxI܉Ix)Ap)fAR EApvLApIxrH9wIHLIAtDH ˆHII;uNAuDIIH)HHMMH9t Aǂ IIIIIxuAtL DEIHHIxA7AR8E Au;)!H؉IxH)Ap)ΉfAR8EApApIxrH9wIHIIAt@H HII;uNAuDIIH)HHMMH9t Aǂ IIIIIxuAtDELIHHIxAuA7A7A6A7A6A6EA6AuHA7H zAhAWDHhHHDLLIA7H .;)fARD=ApIx=rH9wIHIIAtH ȈHII;uNAuDIIH)HHMMH9t Aǂ IIIIIxuAtLIH%HIxA7H A7AhEgDHpHIDDLLMAEw \ ) J\ DP HEIDAHCHxALfDEE ɉMHxHLDLPFPF3 HEAAAu;)Ix)Ap)ʉfA=ApIx=rH9wIHIAtffffff.H ȈHII;uNAuDIIH)HHMMH9t Aǂ IIIIIxuAtHIH%HIxMzHEHUЃAAAt$@M) υtHHHUAAfDDxIAtff.H ȈHII;uNAuDIIH)HHMMH9t Aǂ IIIIIxuAtHDxIH%HIxD;tEE A}}DHEABH AAu3)Ix)Ap)щfABHAp=yApIx=H9}IH(IxAȉMEADE؋3 !HЁIxvH =rH9wIHHIIAtH ȈHII;uNAuDIIH)HHMMH9t Aǂ IIIIIxuAtHLIHHIxE}AAEE A}}DABI AAu3)Ix)Ap)щfABIAp=ApIx=rH9wIHDEIAtH ȈHII;uNAuDIIH)HHMMH9t Aǂ IIIIIxuAtHDEIH%HIxAALCHA7A7A6A7A6A6EA6AA6D)A6DD9Ahu3ArLL9IALCrLLqIIz0LSHمIIH)HHH9t Adž IIIIIxuAtLIH%HIxA7AFD Ap)fAFDAp=r ILeII$=rH9wIHIAtH ȈHII;uHAu>IIH)HHH9t Adž IIIIIxuAtLeIH%HIxIHELmA7H q A7AhIIM\,DLH1D*IHEIHEIHELHHMHHMLAHtHMILEf.H}U UAɉUACTF3 Dɸ?Eu;)I)3)ʉfCTFA$p=H}I=rH9w HHDMIHM H ȈHIHEH;uNHEЃ8uEIMHEH0H)HEHHHH9t HE HEHHEHIMLHIuHU H]DMHH%HIEIEffffff.H‰M3 !HI =rH9w HHIHM fDH ȈHIHEH;uNHEЃ8uEIMHEH0H)HEHHHH9t HE HEHHEHIMLHIuHU H]HH%HIMIHM H ȈHIHEH;uNHEЃ8uEIMHEH0H)HEHHHH9t HE HEHHEHIMLHIuHU H]HH%HIEM MEEMEACLI Eu3)HI8H))щfCLIA$p=zI=H9HH>H1t ǂHX[A\A]A^A_]UHAWAVATSIII|$0AT$A$X I|$0I$\.AT$ A1EtjAGA\.A;$6tPI|$0AT$A$X ADFAOA\.H@D9sˊTH<3[:8tA$6E>[A\A^A_]ÐUHAWAVAUATSHHLMDEMUIH}A ȃ)A)fA=r M~MnAMnIF=rH9w IINHqII^AN@H ȈHI^I;^ u3A~@u,Iv(IF0H)HHH9tAF@ I^8I^(I^INIFuANINH%HIFM~LEHEI^ANH ȈHI^I;^ u3A~@u,Iv(IF0H)HHH9tAF@ I^8I^(I^IIEuANH}IH%HIEMɋED ɉMEĉHETGA DeAAuA6)IN)A)ʉfLGA=wAIF=H9IHOIv)A)fAAIF=rH9w IVHzII^ANH ȈHI^I;^ u3A~@u,Iv(IF0H)HHH9tAF@ I^8I^(I^INIFuANALIVH%HIF GЃ}A)fOA=AIF=rH9w INHpII^ANH ȈHI^I;^ u3A~@u,Iv(IF0H)HHH9tAF@ I^8I^(I^INIFuANLINH%HIFM~EEHEAI^ANH ȈHI^I;^ u3A~@u,Iv(IF0H)HHH9tAF@ I^8I^(I^IIFuANH}IH%HIFMąEE ɉMDHEGA DeAAuA6)IN)A)ʉfGA=wAIF=H9IHMIv)A)fGA=AIF=rH9w INHuII^ANDH ȈHI^I;^ u3A~@u,Iv(IF0H)HHH9tAF@ I^8I^(I^INIFuANLINH%HIFM~EA @EE ɉMDGA DeAAuA6)IN)A)ʉfGA=AIF=rH9wIHyI^ANfff.H ȈHI^I;^ u3A~@u,Iv(IF0H)HHH9tAF@ I^8I^(I^IIFuANH}IH%HIFMą}ut HtHH[A\A]A^A_]HUHH[A\A]A^A_]DUHAWAVAUATSGAAكDD4F DADHF,E1bE90D1ffffff.J (LOށ1uDIi@HBIArEMi@Igfff.E9A\$1ffff.J (Oہ14uDECAArE9sSEE@Ap1@_ށ1 uDCIE9uHBH[A\A]A^A_]fffff.UHDWEAu2HHBPEHH%?H5\,B\,]AB\,W Et$\,W8E)1\,]fffff.UHAVSH @HDt Dx H fADEЉL4@IN7x DH @Hd u F7t EgABDŽ7d DZF7t Ah t8DH@HDŽd l t Ap x F7x F7t Dx t L [A^]ÐUHGGLJ]fUHSPHeH{fHÐHH[]f@UHSPHǃH{DiuH4itH[]H5HHH[]adUHAWAVSPHLL{Le u11u&H (LGe tH[A^A_]ÐUHSPHǃH{et H[]HH[]FdfDUHH]dfUHHǐ]?effffff.UHAWAVAUATSPIHAIMt$ L{ HtDHI+L`I $I\`ItDLI+`IL$M`A\$u.ID$1HtI4$IT$H EA\$L H[A\A]A^A_]fffff.UHH7HGHGLJhLJG8G@LJ]ff.UHSPHHC0H1fDH(HH@H@ǀhǀ@8@@ ǀHhuH{@eHèHH[]efUHAWAVAUATSPI1E1f.IPcIcA tMADŽ(M(LbMuLaL#bL{cIncIHA0HuIihIIHPIIHHA0HuIihIIHPIHIHhMI|$@| IĨLH[A\A]A^A_]| UHAWAVAUATSHGELJHG(1fHDŽHDŽH uHLJHLJHLJLH}E1APIhHEI0HuIihHMHIII8H;t=I8H@0HPIH0H3H@0HAI0HYI HuIihHMHIII(H;Ht>I(H@0HPIHpH3H@0HAI HALJxALJ|IcA L~cIŅA DDL}AD;uLmMAffff.Lh{8utHlHHHPǃ@H{@bA HbA H0HH5H ^A LAD}E9lI(E11AE9H _HhANtD}ADžHA I^IP^Et!M1fL(_IhD9uDuEt1IPf.Hh_HH\_HhAuEuEDH[A\A]A^A_]D}afUHAWAVAUATSHXH}HHEHhHEDG(HHMI19tHHUH}Y^A HUB(H2N19tHǃ`t;HihDŽHHP]A DDAaH}HHBHELzLnHuE1ffffff.Ht0H]LLHUAUAE8HEIIH)HuHEHL;0DLimhHEF(HJ(PH\A HMLAq(HHQH@8D<$HHMMAEHMA(H HDŽHDŽH}\A u|A HEduiHMHHqH@ HUHA H;EuEJ+-\A DDEu"E1EH}DHX[A\A]A^A_]HEHLs@Lv uDLv HEHLLv uDLv LiuhH]BDŽ3HBDŽ3LJ3Pk[J3^[RUHSPHHC@11ff. w‰Ήff.3uʈTlH&uƃƃHHH@H%u ƃƃƃ1@ uPHuHH@8H@0H@(H@ H@H@H@HHH߾t H[]ffffff.UHSPHHHs@HPC4HC@H[]@UHAWAVSPI׉IIv@Ht A9^4tJLAWAF4IF@؃)ANh؍tLAH1IN@Ht A^4H[A^A_]DUHSPHs$ƃfǃƃ@H[]ÐUHSPHHr ShHs@HHCX{4H0ALLAIH#DkTHL)HH{`H{HC8{${ AC{0{,C LKPLKL DHfHfBHSHHSHHsH+S@H3VfDHSLDfDfH=uL` E1L (z MDI{LLfDB 1@)fVfVfVHfVfVЃfVfVfHvuIIAuHC8fKCCfKCHS@(CfKCCfKCCfKCCfKCCfKCCfKCCfKCCfKCCfKCCfKCCfKCCfKCCfKCCfKH+H[]@UHHLA8)9MIEPHp@B4)9HHL Dk AxD9HHH D@(IHHBB)fBJ H:]ÐUHSPHHC@H fAH:Hv=fD@fpfxfxx8PHfpHHfD@HKx}rHB{u+HCH@HH HC@H;CXvHCHH[]HH[]UHAWAVAUATSH8HLwAANAvEVHW@HU@HELLM9tIL)HHHHHHRIFffAVfAVAVAIM9uIɈANfAvfEVHPAF)D؃EAAE^AÉEHH}0FHEH@IDFHELDYDLy}ЋEȍYDLQAA9vPUDay AMӐMfAUfAUAUAUM]M9t E{E9wEeA]fAEfA}UAՋ}A)DMnHE8LMs)HEH@ILFIf0DAՐAŀ9HItf0IHMH}D9D9t9|9fD(DAAwAAACAAAI@A)EIHJIIDRBfzfrAAA9HA AC8uLvAHtRIq@>AHHL_Y_YH H uAAE+A@ELLLMZ ILA+q@IpMDAD)IfHI@IA@IAH8[A\A]A^A_]f.UHSPHHHSHR9ɉK K,f@HKAA<}rHk{u+HCH@HH HC@H;CXvHCHH[]HH[]fff.UHHGPшHG G,u&HGH@HH HG@H;GXv HGH]]Lfff.UHSPHHf@HKAA<}rHC0C,HH[]UHAWAVAUATSH(IID$D@xxI $DIMIT$@fB< uAD<BD wALH4 8 uHOff.8FHvuDvD:vsH,HNfD^fDVf^f^^FDvfD^fDVAIFPA^0H0ɺLL>AHH#kTHH)HIVXIV@AF4A^$A^ ACA^,A^(AF MNHMNMD>IIBIfBIV@IVHIv@A+V8I6VIVLDfDfH=uM11LgV A>X9tDO1LfDB1@)fSfSfSHfSfSЃfSfSfH[uIHƃDuIc1E1fIxr(FAXƻ 9Ht@fPHuHIAu[A^]fUHHLA t~EAk A9AEQHx8EB<4 9HHL ƃEAIXHHBB)fBJ H\:]ffff.UHSPHHC@H fAH:Hv=fD@fpfxfxx8PHfpHHfD@HKx}rHB{u#HCH@HH HC8H;CXrHC HHCHH[]UHAWAVAUATSH8HHODYDQDAHW8HU@HEH4HH9tFH)HHHHHHRHAf.fQfQQHH9uHDQfDQfDAHXA)ЃEQ‰EHH}DABHEH@HDAHEHfPL]x]ȍXDL`A9vTDHP UDpMDMfASfASASAMkI9t E}E9wEKA[fEsUfASUԉ)DEApHE8Luf)HEH@HLAIfDπ9HIt)ILeHMfET fE\ E EAD A )C(AT 1A?ǁA)C>A\ A+v8C(C)wAIHшHIHHIND@DHfDXfDP9tLA+F8IAI`IIv8Q<?AHDI6 DHI68?VuM)IfHIHI@IF8IFH8[A\A]A^A_]DUHSPHHHSHR9ɉK K(f@HKAA<}rH{u#HCH@HH HC8H;CXrHC HHCHH[]fff.UHSPHHCHĀHC C({u#HCH@HH HC8H;CXrHC HlHCHH[]fffff.UHSPHHf@HKAA<}rHC,C(HHCHH[]ff.UHAWAVAUATSH8IIFD@DPM@EE1IHE1HIV8< uLdD<D |DH4]8uIOf.8FHvuE׊F:FsI,LffDNf~f^f^^]׈^FfDNf~AD$HI+V8fQfQLINIFP HPIVPMnPINXI9rLH8[A\A]A^A_]HuIF8I)ŅbIHMIFfDhEAfD@ffEl$fED$IAFMt IIN81iYHIV8H <t8|H4:IF8:t 8FHvuFbAuA(HtTA(AH1AVHIF@)A6k 9w HIN@LLIHLL:HMHIIFH8[A\A]A^A_]UHAWAVAUATSHIHµHHEIGDOAE1ۅu H@AA ECf@ DH@AAI8AHH HtH1b9t7t8Ht7I_ff.8^Hvu^rw2È^fD8&t8<7A@t8@D @\8Ht8~F D9WI8HEqDΊ7?A(HtIG8TA(AHL1DuA1Htg/H?H8HH0fH(fHE+w8ADpHI+O8E9I4$Md$fNfVHDHMHH;EHHĸ[A\A]A^A_]ff.UHAWAVATSHIIHHHEAL$`ID$8HIL$PMt$M9unHfff.AFfAF 9vLLEvID$8IM;4$AuAF(AFfAAAFIL$8<?A^A^ftfAvAVH4IVI9t$Xt6A$(|A$|A+t$8A$(A$ HD ID$XB BЃLL1EvID$8IM99M A|$d%1ɺpfffff.AtA4HuAT$0At$HA+t$@k)At$XA+t$P)9It$NfH4It$Luff.It$L11W)E)E)E)E)E)p)`)P)@HEID$@I;D$HtIL$X94f.HA @HHIH .AEhEulN1ANEEhD1AT 9sbHAAEpAUh 1r=%AEhIExAHA EulAUhAUhAEpAEpAE Ldff.A<$ 9IÉuVA9I\$DA)AEpAEpEul)AAUhFfffff.%AEhIExAHA EulAUhAUhAEpAEp 1rƁrH/ AD$ƄIEfDƄHu2AA)AUpAUpEulAA}hI\$?fDځAUhIExAHA EulA}hA}hAUpAUp1=rǁvI]E|$LrFAXAE NB)WHA]lVA}(AuhAuhL Ly`1y`9AEpAMh>%AEhIExH A]lAMhAMhAEpAEp1rȁvAH ٍfAIEHHIMDxLEv)AEpAEpA]l@)AUhCffff.%AEhIExH A]lAUhAUhAEpAEp 1rȁvAA ) fA?HH 4 AE8- IEHƄ AE ff.A9ED)EepEepA]lAAuh?DAAEehIExH A]lAuhAuhEepAEepB&D1=rƁvHfHD)DH@HƄHuIEHAMfDAMPAHIu8HIED4HA8tDH)ȋL2HE1Dfy15!HA)H9uLHHHB<&AEhA]l1AEEh1AD9X1Hffffff.L7Av H9vA)AUpAUpA]lAAuhFffffff.ځAUhIExH A]lAuhAuhAUpAUp1=rɁvHJwJuf"BBMuE>LLI]D;L:HÞHH;EuDH( [A\A]A^A_]~) UHSPHssHCxHKpCpHCxHKpCpHCxHKpCpHCxHcpH[]ÐUHAWAVAUATSHAIHHHEM<$IL$8A?A9D9uwL49AD$hAt$pA_1LAL$h@1=ry%AD$hID$xHAL$hAL$hAt$pAt$pAD$ Ll\AAMAUD9IuH( AEƄIAfDAMƄ IuAD$hAO1At$pAt$p)AL$h@1=r%AD$hID$xHAL$hAL$hAt$pAt$pAD$hAw1A\$pA\$pAL$hI@f%AD$hID$xHljAL$hAL$hA\$pA\$p 1=rˁvMl$LAGAXAD$ AOB!WHAwLAT$(AD$h AIHQ`Q`D9At$hAD$pAfفAL$hIL$xHωAt$hAt$hAD$pAD$p 01rʁvH ٍfM|$LAt$pAt$p@)AD$h6%AD$hID$xHAD$hAD$hAt$pAt$p 1r=v A ) f ?HH - AD$% AƄAD$ ]@%AD$hID$xHAD$hAD$hAt$pAt$p 1r=vAfAAD$I $1fAD$QHI|$8H I $@84tLH{II$DhMl$81fDAuD9tQ5A"MƄ5IȃuӋ4AD$h1At$pAt$pAD$hI}E1f.A@7H@֊"WA9uAD$h1A\$pAMA\$pAL$h:%AD$hID$xHljAL$hAL$hA\$pA\$p 1=rˁvAOwAOufA'AGAGMl$L Mt$LHHH;EuH[A\A]A^A_]" UHg jGgGrn[A^]DUHAWAVAUATSHIIAH4HuLA; E_E\$AA@HEЍ@I$ A DF11HD9At?HHHH I$H@ƀu@ADEǸEDH;H],AExEHED) ID$A DFEM11H@D9A4:HHHH I\$H@ƀu@ADEEEAAD]E1IHEAE)EMIA KD DGMOL11HD9/A:HHHH I1HÀuЄDDHEAA)A DGM ?11IfE9C4)HHHH ÃI@ƀu@ADDEtmAHMD)H9wYHwSC\ DLK|$H AID;ufffff.1HMA9sDAŸA<tH[A\A]A^A_]@UHAWAVAUATSHHuIDnEGDHMD9u<1fff.;u}I|P)HcHHHMH;|t;uE~0I_xE1fDI7HtH{HtEGH(AE9|AGIwHtIHPIGEAGA݃E17HcHHHMHTLD"AAED;u|LHEAE19McLHHMȋT Ht$IH{AAAH(EuqD;u|AOA~61ff.ID8ID ADHAOQ9|E1~#IE1E1H{H(AE;w|DH[A\A]A^A_]ff.UHGHGXHGPHGHHG@]ffff.UHHwhHGpGxHLJHLJHLJ(HLJPGHGXHGPHGHHG@]fffff.UHAWAVSPIAFx~/IE1IvhHtH{HtAFxH(AA9|AFxIvpHtIFhHPIFpH[A^A_]fffff.UHAWAVAUATSHXDL8IHHIHvHHEM0LHH0HIIHIHHEIxHIHIHIH IHIE(HIH(IEHIHIEhH fff.HEHD$$HLLHHLL@E1AHHHLLHqH@H8HHHHHI] EHIHM9.A]I]A}HLeLH|Iu H(LH1I]0IE(AEAEAEIEHAEH(AEHH@HAEHAAEAH8HAudIu(HAE IE8IE0H(HHYHAU H |AE`AEAIAEAM9t3)H9FىILHB A]H8HIHH 5AEIEXAEHH@HAuHHHAEQAMAMt-HH8HAEIGAA?IA}kAAEA9tA)IDH9GÉAEAEHHpDHpH  AAMA;M s7HH8HAAMQAUIAA: QMe0IE8L9sEI)L9LFA}`LLzAE`H(LL3H8L Me8Mt>AAM`1H5s3 IAAM`H8HIE8IE0AEIMe0AEH(HPHHH A}w+HH8HAAMQAUA IDAEAEAE`AA9AE )H9FىILHW A]H8HIA} AEIEPIE@AHAI;E0A]H D0H4yAA9LAA A9HfAH Zf;t,E1H uA?uDHH8HIE@IAMMffff.ɃwH0I9uAAE@/AEAE1H8HLH)ÃH0uHH HH)HHH@I9mH9dHEE1HEE1HHc HAEH w;AwAH1~: uyPAUAH8HIAA fAEHpwAA;ufAMffDAHLnHH;EuDHX[A\A]A^A_] 8OKeUH0?uG@]fUHt 1u HG@]ËGHG@]UHAVSHIHCHL[A^]fffff.UHHt]6H]cUH]fDUHHHEH$DM}HU H]ÐUHAVSH HL5mIHMH k|fQfU M܈eEH}uHu܉EHߺ H IH;MuH [A^] DUHAWAVAUATSHIIHlHHEAG@tI7HVÃAGyIwH6AGI$DAAĐIwAJ- AJ-AwDHAWL A_I Au ƄuAHHLtB=ALHLAH kL9H H;MuH[A\A]A^A_]D fDUHAWAVAUATSHHIHEkHHEHwIH}H]LuELHsELLHAH9`L}AHL}wfff.HEI\$J4+LJt+AJ|5AƋ}LLhsEH]HLLH L9H]ILuHEHI;D$rMLeDu MH]DAA)EEELu}LLrEH]HLLL9uoMEЉEHuHߺHuMIIADmAH}eErHuH yEffEHߺ H H iH H;MuHH[A\A]A^A_]G fUHAWAVAUATSPIIHuHLkMuHC HCH9CuiLtHL!L9uiLHLA$IŸMtNHS1HtHHsL~ HL/HCLkLsHHHKHM|HMIL1H[A\A]A^A_]UHHGH]Jf.UHH]fUHHGHG]@UHHGH]ff.UHAWAVAUATSHHXHHPIHgHHEHH=?wHH5AwHHHDžHpIMMLhu DEff#CfH3LAE]H vfQfUȋ MĈeʈEH}ʾpHuĉELH`HǺ H t D4Lc1MItfA$HDž LA<$uAD$$Dž "A|$ tAD$$Dž HHDŽ!DŽ L$HHHtHH`HHDžoAEH\HHPHHDžHMHHxH= uuHAHDžHDžHDžI7HH tAEPAWHI H tLAE%HLhHpHMHEHHLHXAEHHHHH)H1t)1@Ƅ @uAJ=@H HH@DHA H9uBHL)HHH sAEuHH`AHHtH=UsWsHDžHhHt{HDžhHH5s HcHH;EuDHĈ[A\A]A^A_]a UHSHHHHmcHHEH}EH rfQH}fU MeE!lHuEHߺ H tH}HH}H5^rQHbHH;Eu HH[] UHSPHHCHHCH[]UHAWAVATSIIHHCHAIH{LIHCD[A\A^A_]fffff.UHH]UHH]UHH]#UHH]3UHAWAVAUATSH(IIHM/1MILcHffff.{PtI$@HCHH9C@u6HC@HCHHCHs8HLueI$Hu CP1H+C@HEM/H{HK8HK@DKPHEHD$$LLLES0HMHK@I?u HtaH([A\A]A^A_]ÐUHSHHHaHHEHEHHƺ ku*H}H5Np u HuH?H `H H;MuH[] UHAWAVATSHHIIIH`HHEHL/luAA$  HLkuHLH #`H H;MuH[A\A^A_] DUHLG1H1 ff.HGH HrHHL9rH]fffff.UHLG1ɾH(HGH0HHHHrHHL9rH]UHHGHGH]UHAWAVATSIII?t$E11@ILLqI(HI;rIwLAVIGIIG[A\A^A_]f.UHH1Ht!HWH11fDHH(HH9r]ffffff.UHSLE1MNKHOL\HT1H1IH3HrHHH9rHIHr IM9rL[]UHAWAVAUATSHLPH8H`HH0H(H]HHEHDžHHߺSAEHH`Hfffff.HhH`HAIH AH`HLAT$AELH iAExHfH blf;H`L8I L8E1ffff.H`L8AI !AILHOHHH`HLAT$AELHHڹhAEAIIHLNHL)HFH@tHAaH`HHTHAH ?HDH`HL1AT$AELH hAEHfAH jf;fffhAfH!dA9L4HL)H`HLAT$AESL<AI97HPHLAHLHHLgHAEAIA>HLHXIHBcLA;H~HXHHpH2HAtsLK $AH;XwYIAIHhHPHIHXL)HHLAAI<$HAMHHOHPHSHXL9L9It HP0HpHH1H&@H9HHHHrHHPHH9rHPHAH7ID8HL0"HHH`HLAVAEHH gLHHuĺ ]bAEH}H5f AHHuAE}fhf;DA_ILHIHH4HPHIAMIDLHCHHtHsHHL8 HsHPHPL{L3H(IFHKHxHHIt ITILHhHpITI E1H`H8t^H0HH`1SAEu@H8cHH`H+0H8HHA 1HUHH;EuDHĸ[A\A]A^A_]u UHHGPHGHHG@HG8HG0HG(HG HGHGHGHLJHGxHGpGX]UHHGPHGHHG@HG8HG0HG(HG HGHGHGHLJHGxHGpGX]UHAWAVAUATSHLPDHpHIHHcH`HAHHAHHHEEHEEHUHEEHωHpH@@K4+4H}]A@W)EHDžHHPqMt I$H@LHHHt HH@LHAHvHHL=IA^;] IAEHIEMtL ALHJHHIMHIE0 HCL;HCH@HtH Mt IEH@LH{Ht HH@LkDHHHJ+HCHC C(H}H@ H@Ht HH@Mt IEH@LAIHHHDHH@6 I)IIIIH@Ht HH@MIEH@LElW)0) )))]DžHcDuDžD9Ds/HHt J< HD]DDž89Ht L I>HHu[A^A_][A^A_] ffffff.UHAWAVAUATSPIHH;EfD;c w N<3HtO HCHN<L< HH;Dc DcI6L7 H{EfD;cw N<9LkHt IEIEN<L HI}DcDcIvL H{ Ef(D;c,w N<9Lk Ht IEIEN<L| HI}Dc,Dc(Iv Lu H{0Ef8D;cHt L I>HHu[A^A_][A^A_]| UHAVSHHHHHw He HHt. HxHt H H H[A^] IIIH H HHt HxHt H诺 H H覺 L Ifffff.UHAVSHH7HHH藨HHH[A^]۩IIIHbH趩HH誩LH ffff.UHAVSHH{HHt H{8Ht H{(Ht H{Ht H{Ht HH@H;Hu&[A^]IH;Ht HH@L l H[A^]`@UHAWAVSPIE~ffffff.AAtJDIHHtH;Ht HH@H IH I>Ht L3 I>HHu[A^A_][A^A_] ffffff.UH0GtGuG]@UH]f.UH] fDUH]f.UH]p fDUHHE1L L/A:HItL @B C: MIuA~H:HP1]ffffff.UHGG]fUHGȉGuHP 1]UHH՝HHHHu]H]`fff.UHAVSHHHHH{Ht HH@H[A^]d IHY L荿 UH]f.UH]0 fDUHH1LL @DD E: HIu~H:HP1]UHGG]fUHGȉGuHP 1]UH]f.UH]頾 UHAWAVAUATSHXHuIL}耾 IAFH{HHIHhIFIFxIFpIF`IFXIFPIFHIF@IF8IF0IF(IF IFM7MtL IHtHPMwI?HIwXP0ÅfIGHE1DA;G(r EE1<]EIO L4H}޵ INHHEHEI~HuHUWAAEH]Hu)H]Hu @AIIHt HH@HHEHHHH52 HUH}HtHEp@HH@(AAEuE1DmH}Ht HH@Et.EIXIH}HHHH@:HEHHHH5a HUHuHt3LHUƣAHuJIH}HHH@AF1fE19sIHHAWBuHt HH@HAEHEHHHH5 HUHEH}u$H]EH8HuE1HkH]DpPIEL` HLAPt,LAH1ҾA ~ ;,3H9rH}HH@(HDAEEEAHtH EHEHEQIHHĺ HuH}HuH] HH@H]Ht HH@HH}HuD HH@DH}HtHPEAL}HX[A\A]A^A_]IH]H}Ht HH@Ht HH@HH}Ht HH@H}Ht HH@L( ۹ H H ƹ H UHAWAVAUATSHL LPHHHHII<$HuLHAEyI<$HP8W)E)EAD$`lE1Lufffff.AA$A9rcHE1HHH`AHxKp9rx1ې;lI<$HH@@11L HH}H~mIIIHEE1ID\w IAGH`IL}MtLװ HMHIGH}Hu茰 , HEHEL8HxA9t EAH]RDADHxH< HEAEJHLuLո LHt訷 EH]HEJH}Ht HH@A$pIH}H HH@ D\A@A$ AL$`ID$x1fDID$X9r*)H9r H5|+H1* HHHH8H(HEE1ʉ@L HxALpJ H0D@fL| EMLpDHID$XH8H]99@u~D9`t LH]THxH<! HHLmLH0 MLHxAtL LHxAHHH Ë`]D9t@H]Lp>ID\L} ID\M L AMDEdJ<h HDHHL}Lc MI<$HH@@H(L}L1MtL 0 H(@HkHJHHXHPH@ H@HtHH_ HH`HH@ E1HDž0L8菴 H`HH1Lu"HpHE1҉H0H@HEHDž0HDž8IHp * IAD$HHI$ID$MtL藬 H}t&H}HH@HDž8LpL0I|$Ht"HH@HDž8LpL0HEID$ID$HDž8LpL0e L HL0L@HA#/ EHDHxH ‹]HD4KMHE;H8DuE1L5ILeAD$A9sGA@`IxxHϋ71 )9 IPX<9s1ۅtH11fH9uAppH@9sIxh9\ HIuyAM1fff.9s:HEHF9uHIL}DeE_AD$IǐAL+MtI}Lz Lޛ HE,տIΛ HIvXHYIIH3AƆ1HĘ[A\A]A^A_]IHv L誛 v H5H1胛 UH]fDUHAWAVAUATSH(IIIF8IF0IF(IF IFIFIFAF@AFDI^ IFHEI~HH} I~XH} AAG$}H]п衚 H5H1讚 II~0Ht\ HԒ D IIHt6 IHt% IHt IHt IHt IHt I~xHtә I~hHtř HEH8Ht贙 I~HHH]t袙 I~0Ht蔙 H EnEt>A]ff.IFL$MtI|$HtX LV AHEuI~Ht7 HEH8Ht HH@L\ HH]L葑 I~0A_A;^A]ff.ID$LHt L, I>HHu[A^A_][A^A_]̏ UHSPHHHt誏 H{hHt蜏 H{XHt莏 H{HHt耏 H{8Htr H{(Htd H{HtV H{HHu[][]? ff.UHAWAVAUATSPH}DgeHEHAN HCID$CAD$CAD$IAHAHMH L$HL襍 Hٍ HEH[A\A]A^A_]UHAWAVAUATSPH}DgeHEHANMt0MoMtIfK|/Hte IuILS M&A^H[A\A]A^A_]fUHHE1L[ L/A:HItLg @B C: MIuA~H:HP1]ffffff.UHGG]fUHGȉGuHP 1]UHHEsHHH]T@UHSPHH sHHH{0HH[]L fUH]f.UH]0 fDUHHE1LK L/A:HItLW @B C: MIuA~H:HP1]ffffff.UHGG]fUHGȉGuHP 1]UHH5sHHHHu]H]`fff.UHAVSHHrHHH{Ht HH@H[A^]$ IH LM UHHE1L+ L/A:HItL7 @B C: MIuA~HGHHP1]ff.UHGG]fUHGȉGuHP 1]UHAVSHH?HHH HXHCH{ Ht HH@H{Ht HH@[A^]IH{HtHH@IL; UHAVSHH?HHH HXHCH{ Ht HH@H{Ht HH@H[A^]骈 IH{HtHH@肈 IH胈 L跈 UHHHE1L L@/A:HItL @B C: MIuA~HGHHP1]ff.UHGG]fUHGȉGu HHP 1]@UHAVSHHo>HHHKHXHH{Ht HH@H{Ht HH@[A^]IH{HtHH@IL談 ^ UHH] fUH]f.UH]@ fDUHH1L\ @DD E: HIu~H:HP1]UHGG]fUHGȉGuHP 1]UH]f.UH]鰆 fDUHAWAVAUATSHLÉAHILHt HH@HHDAEuE$(DE1EW)EE1HDž D IE9\Dt HBI$ H9uoUEHEH@H@Ht&E覅 HEEEH}Hu4~ H}H\REȅtFHML,A;]u6LIIIIH}H AE]HEH@H@HH}Hu} LH}Htτ EHMLI$4I$I$4H4IpHL,DI$+E}DRffffff.E;}t{Me LP E}MeA]D9AE}AE}9vLDLIIIH}Hb XDA\Hփ IMuDLLՄ M`OHHH@(HAEEȉLutO@Iffff.L#MtI|$Ht= L; ȉHuMtL HH=HH@/HϢMH HH跁HLt HH@HHLL1+HIHLHDžHEHEȉ115f. aHLHHHEHHHHO8HG0賂AEH E1;HHHCHXׁ ILLMt IH@LЋ Hu CH z4D$$LCLH1MAEt[E1IIIIH) IIdII`H$ IIH;t E1EvD{HHHHBAwL$1L+$HHHDžtHHH5P HHƅƅHHK,L$(HHL$HHL$HD$HH$D$ HHEMAA@tcEtmAutLDE\RH H LDE Í\LIF0ANH1;Hu6EHHt HH@Mt IH@LЅLtTIIR H IIHHHt HH@MtPIH@LBHHt HH@Hw ILIIL~ HHt HH@HHMw LLu]ȅt?CM,fffff.MeMtI|$HtL~ LJ~ IuMtL-~ HHHt HH@H'~ HAu0~ HH5hH1~ 5H~ H~ } ADHĈ[A\A]A^A_]} H} ]H} HIzUHAWAVAUATSPII x} IAA$AGAD$ID$ID$A_Ht&H<} ID$A\$A\$IwHH2~ IGID$EnE;n tM>QDADHEH<| IIJLH} Ht H| EnM>HEAF DM$AFHANH[A\A]A^A_]HL| H| UHAVSHH{xu H{pHt HH@H{HHtA| H{8Ht3| H{(Ht%| H{Ht| H{Hur[A^]IH{pHtHH@IH{HHt{ H{8Ht{ H{(Ht{ H{Ht{ H{Ht{ L{ { [A^]{ ffffff.UHAWAVSPIE~ffffff.AAtJDIHHtH;Ht HH@H9{ IH,{ I>Ht{ LS{ I>HHu[A^A_][A^A_]z UH]fDUHAWAVATSHCH-HH-HCHC(HC HǃHCxHCpHChHC`HCXLcXL{ (gz IAFH9HIIFLsMtLr I?Ht HH@M7[A\A^A_]IH{xHty H{hHty I<$Hty H{(Ht HH@I?Ht HH@Ly y DUHAWAVATSAIIHMt I$LPH{(HtHPLc(D{PCTLsHC`CpǃC1C0[A\A^A_]ffffff.UHAWAVAUATSH(IIE@IE8HEfff.AETA;EPrE1HEI}(IMH4HH@HHUгvAWEAETMuH]Ht HH@HI~Ht HH@I^IEH@@$@ H}HAE1HEHHH5۸ HUH}Hu E1HH@(HuAEuAE0E1H}HHH@HH}HHH@I}(HH@P1AijESEE;tI]xQDEdJ<w HMuxJHLx MtLZw EI]xEDHAEe`E;edtI]XADEtLw HM}XHLLx Mt Lv Ee`I]XEudD}AE`EepIE@ ЉEE;ettI]hKDE|J<v HMuhJHLw Mt L{v EepI]hE}tDM AEp0DeH}HtHPDeMDH([A\A]A^A_]HH}Ht HH@HTv v H)v UHAWAVAUATSPHDkpHC@ ЉED;kttLshKDEdJ<u IL{hJLLv Mt Lu DkpLshDctDMA CpH[A\A]A^A_]fff.UHAWAVAUATSPHH{(H1PPuLsI~HtHPIFC1C0Ds`D;sdtL{XADEdLu ILkXLLLv Mt Lt Ds`L{XDcdDAC`HC@HEDD;tLsxQDEdJ<t IL{xJLLu MtLct DLsxDDHMI DkpHC@ ЉED;kttLshKDEdJ<t IL{hJLLu Mt Ls DkpLshDctDMA Cp1H[A\A]A^A_]UHAWAVAUATSPIAIHMtA1EtkLm2ffff.KT1;KPsNH>Hu8Et3C1tH{ HLDLP(uEHtMtAHC@1H[A\A]A^A_]fUHH@H9r$9s HGxHG0t HG8H1]ffffff.UHHOx@H9r$9s HGpHG(t HG0H1]ÐUHHE1L L/A:HItL @B C: MIuA~HGHHP1]ff.UHGG]fUHGȉGuHP 1]UH]j fDUHAVSHj H[A^]q IHq Lq fUHHHE1L L@/A:HItLdz @B C: MIuA~HGHHP1]ff.UHGG]fUHGȉGu HHP 1]@UHH]i fUHAVSHHHi H[A^]p IHp Lp ff.UHAVSHHo#HH#HCH{xHtwp H{hHtip H{XHt[p H{(Ht HH@H{ Ht HH@[A^]ILip IH{ Ht HH@LLp o UHH1L, @DD E: HIu~H:HP1]UHGG]fUHGȉGuHP 1]UHHU.HHHHu]H]`fff.UHAVSHH.HHH{Ht HH@H[A^]4o IH)o L]o UH]fDUHAVSIAFH"IH"IFIF IF8(n HCH/HHHCI^HtHfg I~ Ht HH@I^ [A^]HI~8Ht HH@I~ Ht HH@Hn =n ffffff.UHAWAVATSMHHs(S@KDLC0Mt ILPD}DeH{8HtHPLs8DcLD{MCHCN17CDH @HC(H1H<u&HuH1uCHHK0;Ar1[A\A^A_]fDUHSPHKHHS01;Js3KDH IHC(H1H<uHu HtH[]UHAWAVAUATSPHCHHK0H At DsLAHEDcDAċs@DH{8HH@8HUDAELkL}Mt IH@LI}Ht HH@M}CMHKHA$A$A CNDHRH{(EHH4HsPt"DLHH}Ht HH@Hrl 1H}u&D9 vHDu DH{8HH@@AH}HtHPDH[A\A]A^A_]k UHAWAVSPIM~IHtHPIGAFNAFHI~8HH@HH[A^A_]@UHAWAVSPHCHKDH IHS(HE1Du*E1Dt E1CMtHsv 9t D4IL{IHtHPIGCHCNCHH{8HH@HDH[A^A_]UHAWAVAUATSPIAIHMtALmfD1fffff.E,CNHStHCPDH9CЉUH{ HLLP(1MHHCPH)HCPMtAHCPIA)Hnfffff.HCHHK0;A@CDH@HK(HH<#HtZDHuIH,u=CHHK0I9sSDHRHs(HH<t91MtE&1H[A\A]A^A_]fff.UHHHO0;qswDHvHO(HHH1]f.UHHHO(;qsw1]ff.UHH>1]ff.UH1]fff.UH1]fff.UHHAAuDHHt8HHt,H4HH)HHwHpHAAQ1]f.UHHAAuDHHt8HHt,H4HH)HHwHpHAAQ1]f.UHAWAVAUATSHHhIHHHEH6 1EICHH H)IHHHDžHxOA0ff.H HMAAE1Ht.HHE1fffff.I:I HuHHAtHNHNA u11#HNHH HHƅI9A 7A=H |  ;H踄 H ^ AFA!H 1  Hi H  AAH vsHD3A]H SAƉxDk9A Ai ህwD D(uuLAwAAH U AH B ;?Hn H # Ƅ:ƄlƄcƄH2 1H  uL D*wEt H[A\A]A^A_]IIHtHH@ILE IIXHtE EgPEt7A\$fIGHL,AMtI}# LYE HEuIHHt=E I8L> LkE E UHSPHH{HtE HCCCC(H{0HtD HC0H{8HtD HC8H{@HtD HC@H{HHtD HCHH{PHtD HCPH{XHtnD HCXH{`Ht XD HC`HChH[]ffff.UHAWAVAUATSPH}DguHEHAN HEuH}Ht|> H}Htn> DuEt;A^ffff.HEL$AMtI|$ L8> HEuH}Ht> DH`[A\A^A_]ID}EA_@HEL$AMtI|$F L= HEuIH& \IWID}Et=A_ffffff.HEL$AMtI|$ Lx= HEuH}Ht\= H}HtN= D}Et;A_ffff.HEL$AMtI|$ L= HEuH}Ht< L6= UHAWAVATSH IMt$8AD$@t>1L=;I IH<ʃuHLŔ AD$@9rڅW)EL}Lϑ HH H5H A|$(HDL HuLs5 H}HtI< DuEt5A^HEL"xIHfxuPWLJ" AL-" $ HMuEt HAxHAxƁ1HX[A\A]A^A_]fff.UHAWAVAUATSHIωHHHWH)EHE@0@ƅt$t$tƅuHu H>@uuHuH} H E16fffff.6 HPHt~6 AŅDD;A@M IH@8LDH|HxLtAE HP` Hff@xe|dt(D,ƅfHDžHH (H9ueH HjH HuH AW;sLIet(A?II IIIIHH5D(H[ATgIHH0LD9 vDH$fe01D9v#DH;u10 HH<H0iD9v#DHu10 HH4ֲH8jD9w10DH2tHH4H@kH 6fDžfDž HDžIH@@LD HAEf0ftAWfup`hH fEfEHEIH@@LD HMAEuVfEfu+107H IIH}AWf@uHMH0iE1H}? Eht|fEfEHEIH@@LD HMAEu1fEfu10AWf@uHMH8jE1H} Et|fEfEHEIH@@LD HMAEu1fEfu10AWf@uHMH@kE1H}5 E^fDžfDžHDžIH@@LDHAEfftjAWfHH蔇 HHH辥HH迉 HHt1 HHt1 Ha fDžfDžHDžIH@@LDHAEf0ft!AWf fgH fDžfDžHDžIH@@LDHAEf0ftAWf wffHc ftHDžHDžhuht`$gHPHD d%fDžfDžHDžIH@@LDHAEu:AWfu*HHHHAWfHIIIIHHt. HHt. HIIHIIH}HIIHbHuIIHGH 1H}H(' DHHIIH HHt%. HPH. IIHHt- Hph& - W))pDžƅH W)@)0DžPƅTHX΂ HH,HP8HpHIAEAXH;wAIIyIIH@Ht - H0% - IILIHt, ID$I$IL, HHLHPL- L0HILAEAE,DžPHDž(IHH55n H(LƅDžHH(HHDž HH@(HH AĻEuU1ۃu D:IIH _ 1H HDt1H跃 H + L$u0ۈ$PHIHHD֊u0*ITHXHƃ L犏ƅHpHL uH0ALELO(E0Ʌҳt_hrHGpHHGxHHH$Ci$$HDžDžHDžHDžHDžHDžHDžHDžH003* H5k H(HDž(IHLHH(HHD$HL$L<$HUH`L0LLAED}Et8A_fDHEL4MtI~(HtI) LG) AHEuHEH}Ht) W)EHH`H0H‹AH(Ht HH@H0" H` " H(Ht HH@HXHt( H@Ht( H0! HHtr( HHta( Hp H}HtG( D}Et8A_fDHEL4MtI~(Ht( L( AHEuH}H~' tII/IIH(HtHH@IIH0! H` IIH(HtHH@IIHXHtv' H@Hte' H0 HHtH' HHt7' Hp H}Ht' DmEt?A]fff.HEL$MtI|$(Ht& L& AHEuH}Ht& L& HAu0& HH5H1& 5H& H& & ADH[A\A]A^A_][& II9IIH} IIH}@UHH]rfUHSPHbCACZCcHC[HCPHCHCYCXH[]ffffff.UHAWAVAUATSHIH}| H}J_ E1L%ff.EHEJHHu HMH9uWH}BHuLH}Hu@ÉHMH4H} y H}H5 ] <u0IALLHH}Hx" H}H5 ] <uIZLLCH}H5 ] <u-EHuLÅ1EWEH}H5W D] <u"Iw\LdÅAG[1H}H5$ ] <u"Iw]L.ÅAG^1H}H5 \ <uIw_LÅupAG`1gH}H5Ū \ <uIwaLÅuAAGb18H}H5 z\ <uIcLLHuLLH}Ht H}Ht H8[A^A_]HH}Ht H! UHAWAVAUATSHhMHUHuIADžXI}(Hx֊AEiAƅAƅIDžIExIEpAƅ1AƅnfL< EXIPE\DHHMHLHMH AXDeH}Ht HEHMHDe@;MHEH4HMH}v H}MY }ucAWHIHIH}Ht H HAy HH5ӓH1 Huȃ>bHEf8uH]H1 HHuHUAĻEH}ȃ?:tAWH]H1觀 HHuHUGAĻE}EXHEHEHEHEE;\t IP]DE|LHy HMPLHHLq MHxHUMEAMu8AE@1ffffff.9sIHʃzu NztAX1IPAW9tAW94HI9rЅt.1fDIPHH:D:A;XrLp L^A}`tGAXt/1ff.IPHHDA;XrIUHL1& AXffffff.E19sCAu@IPAW9ts,AW94HIrH H  ADHh[A\A]A^A_]fUHAWAVSPIIAWtB1L1} I8su,L1 ~ LLWtL1} 1ۉH[A^A_]fff.UHH]2UHAWAVAUATSPII  ILL* I}ILr A^A;^ tTM>IE}Et0A_fIEL$AMtI|$ Lx HEuI}Hty\ rDHEH<L IM&HLLG Mt L A^M>HEAF M,AFHANH[A\A]A^A_]IL L @UHAWAVAUATSPHIH INjACAGHCIGHs(HCIGHCIGHC IG I(q C8AG8C<$AG$AG>C?$AG?C@$AG@CA$AGACB$AGBCC$AGCEnE;n tM&QDADHEH<  IIJLH Ht H EnM&HEAF DMHt L AHEuIHt IHt Ip I`Ht IPHt} I@Hto I0Hta I HtS IHtE I?Huu[A\A^A_]II`Ht# IPHt I@Ht I0Ht I Ht IHt I?Ht L  [A\A^A_] UHAWAVAUATSPIEfrfIANHHu [A\A]A^A_][A\A]A^A_] fff.UHAWAVAUATSPHI IƋAC$AFHI~H El$E;l$ tM<$UDADHEH< II$JLH Ht H` El$M<$HEAD$ DM4AD$HAL$H[A\A]A^A_]HL& HZ @UHAWAVAUATSPIIEgEt;A\$fffff.IL,AMtI}8 L HEuAGEfE9g s$J< HI?Ht IEg E1ffffff.E9sWw HIJ4F$CHH{^ AGHAOIHIIH& LZ LH[A\A]A^A_]ÐUHAWAVAUATSHAIH_HHE0A|$ Et$0A 11Et$(AtD IAvHL DAL$fD9s2ID$A9vADADHèt0M3L$AL$(19s=ID$ 4A9vAD5AD5H¨tHML  HE LD9rMMtL D I1Et:AwHL 1'HSLD9}A A k;CrHMtL W)E)E)E)E)E)p)`)PHDžHE1D4DD(1EED DDHHHDH(1D0L EHHDD 8L4D<H(;8IE9HHDHHDHHHDH 1,fffff.? DHDDDDD4Ƌ(D,0H ;0A9uDDAD4 (DDHD;qGDAEIHHt+HQ1 AL  PHD9rMHt 1LHHtq 1ff.PHfDs PPHƒ uH1HP u@2H0΍IsAH8D|J<A HDHHL8L LHyoH HL8HHHt H8H~ H DElJ<j HDHHLHLb M]P0Mt L% 0H H H;MuH[A\A]A^A_]HH8 K ffff.UHGtRHHHpHQH;Qt@xHDG pɉHt&H4vHTHPpAtH IHL HL G]fUHSPGtXHLKpIAI;AtCxHDW D[EADKt(AO[JDHCpAtDH@HD JD GH7DNIt6AAFO IJDHFpJTJLJD GDG H[]T@UHGHt(HOH@HLHOpHtHTHD ]fDUHHHHHE1]fUHAWAVSPIIHCtPHHHpHQH;Qt@xHS pɉHt%H4vH|HxptH IHL HL CINpHAH;As]HPHQH <tAI~p_H9s>A;Gs=IHHHHHLE1H[A^A_]'H[A^A_]W ffff.UHBUHHGH;GsHHHOH] fff.UHwBUHAVSIHHCHKH)L9rHHHHL# Ls[A^]UHHOHGH)H9r HHG]fffff.UHSPH2HSHKH)H9rHHKH[]Offffff.UHAVSLGLOM9HBu LL)H|NtIFT@M)1A!t.I9tQADHI AHZ vL!DHJtLHILG[A^]UH7H9s]fDUH H5|H1 UHHGHHH;Ow HHO]ffff.UHHGHHH;Ow HHHO]fff.UHAWAVAUATSH(HUIHHLHIǺ AEA?7zuw'unueHE1;f<H@u+pvE1䀻ME1䀻=H}tAHEH8"H]" IL}IIOIWIwIuIUIMIEE1IE HE1ffffff.HHrHzHRIUI}IuIEIHEHL)H=BA}EIH@(LHuHMAEVAEԅ@fEDHI|5IT ff.HI|5H9w;?7t3A|57u$H{A|57HvuHA|57uHHHH9IM);7u{zu{w{m{'c{YIMtL L H{ ڃ;C!HHKHSHsH}HwHWHOHDLHuHHHHt IH@0L11AMtL DH([A\A]A^A_]fff.UHAWAVATSIHIIdžAFI>Ht HPIAFxHMIH1LP0ucHIH1P0uHI4$HH11P0u3LHL#u!Ht HHPI>HtHPI1[A\A^A_]DUHSPHCH;Ht HPHCxH[]UHAVSI'@I^pHDHSHKH)H9rHHKI~p$Hu[A^]UDUHAWAVAUATSH8ILuILmHH]H9BL 1E11K@K|/HtK\/0 HKD/MCL/ECD/LEILuLmH]A9wIUIuH9MEM>HFIEI}D 7ADɃH)H91҅tHt71҉ϐHH HuHIELMIK/At>ELEHAL9;CD/HL9%CD/ELECD/CD/A H}}H9K\/AO9t/t5Od/H;Ht  HI$MtL HM4$HH]HCHsH)L9H3H9L Ls]EA9Nt41ۅtHk HAI~HtI I^DANE1GDAI^LH9BLH9BDIDA9r]9AA)E9f(t,E19tDH II~ Ht M~ Ef(AuG1fffff.9s(AV1@9sIv9HIuPyIN 9u:1A&ffffff.LL9s2IN HD9rH8[A\A]A^A_]pf\fff.UHH HOXFHH H)HO`HMHEHEH}H$HEH;EuH ]ÿ h3H5tH1 UHAWAVAUATSPIIAFII8H~I(ttHL,MI)IIwVE9f s LDN Mt/II)HI(If. HHIuEfIDH[A\A]A^A_]fffff.UHAWAVAUATSPIAIL I$81Hts1I$(tfDHL,MI)1I?wHAwL u81I9t1HI$(IN1ffffff.SH1L9rH[A\A]A^A_]UHAWAVSPII6fffff.HtA9^ sHt HI>A^ A^tHþH [A^]%L[A^]'UHAWAVAUATSH(III|$pIƸI9j=fff.HXI\$pHzHSHKH)H9<HHKI|$pUH uA^IHt HH IGE71E1$IGL,I|$pLHID9rIGDL,L}FfI\$pHHSHKH)H9HHK5 H}Ht' I|$pH tHuH([A\A]A^A_]W)E)ELDLVH}HtHH}Ht H}Ht H *e [ff.UHAWAVAUATSHILPII:f.H I^pHHSHKH)H9 HHKI~pH uLH{pH9I{ EEH}HILzIFpHHHHXLxEeA\$I}HHt L<L IEHHxAI}PHt L IEPI}XHtx HHx IEXI}@HtZ L^ IE@IExHEML}MGpLE11LHEDžlHEDžtMDžpff.HHXIL+XHx9=IEXL4H`LL6HHMH9r Le1EEI^ffffff.D kGHu"uHEHPpHHRDA9GtsAGtIHEMHM9IxIPH9r LeEHBI@I0D4Av H5=lH1Le IMtKHEHPpHrH;rt@xpʉPt%H4vH|HxptH IHL HL EL ILL(IH}H]IH]H} IH]LHt? H^H. Q7 H5lkH1LeF H)H9v Le5/1ۅt HT1ۉfDH:H HuHI@MAM1w5#f 0HUHHH9tH9GIF9uH}H AAt9LIŸI9r LeLH9r LeMDMs< H5qjH1LeK Es H5MjH1Le' MA LMOH9r LeMIPI+PH9v Le-H!+"HEHPpHHRA8Gp1AGp(DeAHMu}u A1jEuU H5iH1Led AD$E]9s' H5\iH1Le6 w Ar H5,iH1Le 9lrLm H}Ht Iʼnl؉ÅtsHL AD9pH}rI Htg LmDg IDpuHL f.;]HEHxpH9riD9s ADt"LmM H5:hH1 ADHEHxpEH9r LmMD9s At"LmM H5gH1 AED+}1At4@1D9s'H}H9rLmMH1D9s HAAuA9tLLmLPLE"LmM H5@gH1 HMIM@UH`IMHtHB0f.HEHXpH`HSHKH)H9HHKLIHEHxp2HH uG1ALfffff.;ZsIHEHxpL9SLHJ0ۉHAHr H_H LH]1L}LH]HCPHxLC8HS@MHt IIFMtL| IMn(q IAD$HPI$MtL IID$ID$ Ml$H`HHXHH0HEHD$HxHD$HpHD$D$(D$ H$HHPDMAE19hw(kHM I$H@LE1H`Hu,I>LaE1HpH;t\Mt I$H@LЋE!PHXHHH1H H0Ht H Ht H@Ht HP Hĸ[A\A]A^A_]HH( HH0HtP H Ht? H@Ht. HP H\  UHAWAVAUATSH8MHHHHHxpIYHu>IT$IL$H)H9HIL$I~p)IMfpLMuW)EHuOHPL<$H`HMLLLLAE=HPH`I~pW)E)E)EHu8HHXHuLELMLHHPHXI~plIADžHI~pKHH9rADžA9s|IHt IDžADžHH<@ t4HHHHRffff.AAAHHuIAHAEpE;tt IhhLDElJ< LhJHHL MtL DpHHhDtIDH ApDxEpE;tt MhcDDHH<] IIhDHLHU HtH( EpMhHAtDIApDxEpLEu&W)EDeHEHHEH }u"W)EHEHHEHE;tt MhcDDHH<q IIhDHLHi HtH< EpMhHAtDI Ap1W)EHMHHMHLEtD HEDeHD!EtAt$HH W)p)`IHIHIHIHDž\ff.HPHPpHrH;rt@xpʉPt%H4vH|HxptH IHL HL ƅXI~pvHI~pH'XHINpHQHAH)H9vƅXƅYHHHPLHAH@HH zHHR Hc HIHH8H > IzIrIjIIƅHƅIH@LHU|IFpMLpHXMI)M90tBI(Ht IDž(IDž0I9tL I(M0MI^pHCHsH)L9s0H3I(L LcAI8HtD HHD I8E1E1IE;I(LLL)LL)H1HHH9sHSHHfHt L AHEuH}Ht DH8[A\A]A^A_]IH}Ht H}Ht H}Ht { IL}DmEt?AEIffff.L#MtI<$Ht> L< AHEuMtL LW c a,fff.UHAVSHDsǃD9s,HxHt J< HxDDDǃD9s,HHtU J<T HDDE1E1D1Mf;CHxlj Hs0<tHBtHS0AD;EC;s4HAK4ITEuuHBE1AHx ;Cr[A^]UHAWAVAUATSHxLHHxHIHDHHEH! IHHAA@AAHلWL򋂬LLMMHpH:HHH1P0AEHH8HH1P0AEHIL+IAEBAAEL)HH8H11P0AE[HH8HLAE6AGAAOA/ff.u q5t,HɅV uЉƀ5uA)H LKHH8HH11P0AEHpƁM)HHHH HPHǁ ƁAM9H@I9&MuAMƁE1HuƂIG HKD7 HK>HH+PH9sƂAIH>HHL1P0AEL. HH;HLAEQHL^J;t!AuAƅƅƅHHHLE1%W)H{pIE1HHIHHPpHrH;rt@xpʉPt%H4vH|HxptH IHL HL ƅILDEt>AEIfff.L#MtI<$Ht L AHEuM=L 0IPHH$I`HLLxLZADELEuE1L*AIrrMtQHHPpHrH;rt@xpʉPt%H4vH|HxptH IHL HL ƅHHHHHHLME1,I~p#HtAƅLHILHxHLRAEu L;AGLIfL+MtI}Ht. L, AHEuMtL tQHHPpHrH;rt@xpʉPt%H4vH|HxptH IHL HL ƅHHt H>HH;Eu1DHx[A\A]A^A_]IHHtf L DUHAVSIHCxtAƆ=@u<; H5p<H1N Hǃu! AƆ [A^]Ãu AƆ ffffff.UH H5;H1 UHAVSIAFA9^ sI>Ht} IA^ A^AFA9^s!I~HtO HP IFA^A^[A^]ffffff.UHAWAVAUATSPH IIFIDkD;k tL;PDADHEH< IL#JLL Mt L DkL;HEЉC DM4CLH[A\A]A^A_]UHAWAVAUATSHHUAIA_A;_ tM/ODHEH<< IM7HLL7 Mt L A_M/HEAG EAKtK|D)HH IHMJ AGH[A\A]A^A_]f.UHHE1L L/A:HItL @B C: MIuA~H:HP1]ffffff.UHGG]fUHGȉGuHP 1]UH]f.UH] fDUHSHH`:HHEHNfHfMEEEHuHH H;MuH[] UHAWAVSH(IL59IHEHEHmIIII HH(HH0HH8HH}ĈEDEDMȈ]ɈMʈUHFEHmHHMHHMHH MHH(MHH8H0E҈MӋFEԈeՉME׾0BHuEeMEIwIH;Mu H([A^A_] fffff.UHAWAVATSHAHIH8HHEIHtHPILJMwxIxHt HPIHt HHPIHtHPIEuHHH5j HLи@@I>tHHLfHfMԋEEEIHuкouI>H1LP0H 7H H;Mt H H[A\A^A_]fffff.UHSPHHHtHPHǃH{xHtHPHCxH[]fff.UHSH(H`7HHEW)EHEHHuкH H;MuH([] UHGtHG]G uHGh]H ]ʷf.UHAWAVAUATSPIHuIAEt M}AE tUMt:Me H]MAM(QAU(I$ AE(A;E,uLjHIuA}HuLB?AE'IM`IEhH)L9r&I}XHHuL M}hH[A\A]A^A_]ÿ H5'5H1 DUHAVSAHCtHC`C t@C(HK(HK D4C(;C,u H{ 请A֋C1H73CHChH9C`tHHHKhHKXD4[A^]ÿ$ H54H11 UHAVSILLAL1L[A^] UHAVSHI LLLHH LHH(LHH0LH8L[A^]fUHAWAVSPII1@0E1A(fDLHL9w@ IH~@ DLH@Lff.ALI˅H[A^A_]ffffff.UHAWAVAUATSH8IH3HHE10DvIE1A*@ALI˅LHUz1bDLH@LJEL~fL5HAEHEJt8LL5EHU;B:EH:AIJ?Nd?H˃wHHHHKHu~!HCff.THHȍHE0B|?u B|?AH}M E L^LHuHoEHEJD81@0D0E1*fDѸHL9w@ IH~@ DLH@LfALI˅1@0HEFt8E11ffff.ѸHL9w@ IH~@ DLH@LKfAL4I˅M 1E1@06ffff.ѻHL9@ HHAA~@tzFE1fff.DHELz@0AǺE1E11fff.ѸHH9w!@ IHAA~@ DHH@L9L%HAE1@0HEEtE10fff.ѸHL9w@ IH~@ DLH@LfALI˅AHUD;bz(E1fff.DHJ I@0D<E112fffff.ѸHL9w@ IH~@ DLH@LfALI˅ALD;r(ZH.HH;EtP蓹 D IH@LHL9vDLHL_H8[A\A]A^A_]ff.UHAWAVSPIIAwt>01fI?  uLAw09rπu H[A^A_]LH[A^A_]f.UHAWAVATSIIEfAA1@0E1A&@LHL9w@ IH~@ DLH@L=ff.AL$I˅AvtH01fff.I>  uLAv09rπu [A\A^A_]L[A\A^A_]fffff.UHAWAVATSIIAGI11fff.4H9rL KA;_u Lg1L1/Aw0ffffff.I?  uLAw09rπt LAGt[E1@DI t@IGLLLLxAGAA9r[A\A^A_]UHAWAVAUATSPHMIIIAL-1@0E1A%LHL9w@ IH~@ DLH@Lff.ALI˅1@0EoE1A.fff.LHL9w@ IH~@ DLH@L=ff.AL$I˅L AE1ffffff.DI@0HE1E1&ѸHH9w!@ IHAA~@ DHH@LLuHAEAE;olLHuL1H[A\A]A^A_]8H[A\A]A^A_]fUHAWAVAUATSPIIIALL 1@0EoE1A(fDLHL9w@ IH~@ DLH@L}ff.ALdI˅1L1NAt IH4LOA;_rL A~8E1fff.DIN0@0L,E11%ѸHL9w@ IH~@ DLH@LfALI˅AE;~8mLLL1H[A\A]A^A_]JH[A\A]A^A_]ff.UHAWAVAUATSHLEHMIL`HPILXAD$(19s-IT$ <HItL E1A|$(11ffff.9PIt$ <rL |AD$('1ff.MuLIT$ MAAuL`ufffff.AA9IDHMH E1@0L<14ffffff.ѻHL9w!@ HHAA~@ LH@LHDAHIAEAƋMA9IuL`AD$(M9IL`W)E)E11HEHljщMIHEA׉ЉE։1HMtf.ALI˅AD$(AA9DIL$ 1@0D<E1-fѸHL9w@ IH~@ DLH@L[xfD19rvGH 1t  uLAv09rπt LL1H[A\A]A^A_]UHAWAVSPIIAOtmI711>H9rtQLLAAGt31fff.I tIGH4L%AG9rH[A^A_]UHAWAVAUATSHhMLEHMHHuH}0襩 IAFHHIIF(1Mt L͢ I~(H]H HCINIF IFHt HH@IF(A_A;_ tM/B|H} IM'LLH Mt L A_M/HEAG ADAGHEH8Hp-'EEoE;otMgSDADHEH<螨 II_JLH蘩 Ht Hk EoMgHEAGDMA AGHEH@HEH}计 HMHHUHuHt$HL$H$HD$I0HMH}L1IM.Mt ILPHh[A\A]A^A_]HMt IH@LH 誧 fff.UHAWAVAUATSHIAEpLv@FHH1ɅtI611ffff.H H9rH L{xuLHL{pLLH}HKPE1L1L LLLH4W)E)E)EHH@1ɸHPHHL ȉLH(ȉ1HDžX։׉fffff.H\ HHHEDmDHH I L(HHD4HUBEH H HPHLXH H@;H8HL4@BDu H8ʉ JHH097HH}Htw H}Hti H}Ht[ H蕥 D|HJ<E HXIDHHXLH6 HtH HXHED}DHXHHHEH@EH0F|H(9uR\IH觤 HPDHPLL蛥 LHtn HPHE]DAHPD<L}AGEH0Ft H89DlHJ< HHIDHHHH H HtgHMLELLHHHL1H}Ht苣 H}Ht} H}HL@th A?L1@0E7E1A"LHL9w@ IH~@ DLH@L]ff.ALDI˅W)EAEHu]H财 HE]A]HHH11ft00HH9rJHULL@W)E)pEAL$ ILu]]DžxL ILp|xH@DELIHE101E0AuCDϊ$4A>t0A9(v I 2A?uDAAԈHHD9rtHULAtHpLLpMtL H}HL@t H}Ht AL@HH11Iffff.H<|?IH9rIIfff.΃HHNL9vLL1@0E1A.fff.LHL9wV@ IH~@CHHpHt H}Ht֟ H}hHH}\DLH@L@ALI˅E1L1H@8Ltrfffff.DHIL<1ffff.IXLXLA;_vAH@D;0LrHLHLHLpHILYW)`H@DžhHu h H脞 H`lH@DhEIH11ffffff.ك8HHD9rH`LAE1ffffff.H@D;0sdIDH IDt9\L LLLAHH`H`HtH` L1L1H[A\A]A^A_]fDUHAWAVAUATSHHIIHHHEA$A$9tA@dA$9tA@JA$9tA@0A$9tA@A$(9tA@A|$Hu-A|$(u%A D$xuHE111AIHuE1E04zuE1B$IDE0HtB$uE0HtAIIIG8I_ H AGEwHUAG IGLL"EHI_H趛 ILuH]MwXHUI_`IGhAGAG LLIGI;GhtCAA@HHHpHt? H`賓 # W)p)`EEH]HMAE$$EIu(HHH`IEHhW)P)@)0) ))HhHUHPL@LLAAEAG Hu6c H5H1p 艚 HhHCL~H]W))HPHLHHHtә HHt™ H@HLE1L1 Xt#1HPHH9rH]E1H0Hta H HtP HHt? HHt. H@\ HPHt HhH}Ht HpHt H`Z LuMtLɘ AH9H܏AE%EgAHIH]I7IxH11P0AE]H؈eHHEHHEHH EHH0HH(EDEAEAMIMIH8LH0LH8@}LH(]DuLH LeH}DUD]]M@uˆUDeċeDEDMǾHuEeMEI^AH HH;E7DH[A\A]A^A_]HHHtB HHt 1 HH0Ht H Ht HHt HHt H@ HPHt˖ Hh[H}Ht豖 HpHt蠖 H` H}Ht膖 H s DUHAWAVAUATSH(HMȉUuHD{bfff.DEtL= IL#DLL= Mt L D{L+Ds uDADD{AD{A9w D;{ tL+HHMUDkpffff.DE|J<訕 ILsDHLL裖 Mt Lv DkLcD{uDIDkADkA9w D;ktLcHCHMHUH H([A\A]A^A_]ffff.UHAWAVAUATSHIHIIH ES IDcHKS!IDIIHKS"D/IHKS#DS$LD IL؍ IIFHD$IINHL$H$L迍 H[A\A]A^A_]UHAWAVAUATSPI0+ HHCHCCHC C(EnE;n tM>QDADHEH<˓ IM&JLLƔ Mt L虓 EnM>HEAF DIAFHH[A\A]A^A_]fUHAWAVAUATSPUЉuIE(A9fE;,t M MDElL II DLH HtH E(M E,DAE(AE(D;uvI MԋUЈH[A\A]A^A_]UHAWAVAUATSPII舒 HHLtEnE;n tM>QH]DA\H<I IM&JLLD Mt L EnM>A^ H]DIAFHANH[A\A]A^A_]IH L UHAWAVAUATSPIEgE;g tM7DElJH<@衑 IEt6JH@INfAAAHHuEgIDHH@LH^ Ht H1 EgM7Eo HUHJDH@ILH HRITI AGHAOH[A\A]A^A_]@UHHE1L L_ A: H@tE1L @A>BC:MRtL @fffff.B C: MIuA~H:HP1]ffffff.UHGG]fUHGȉGuHP 1]UHH5wHHH(Hu]H]`fff.UHAVSHHvHHH{(Ht HH@H[A^]鴏 IH詏 Lݏ UH]f.UH]透 fDUHAWAVAUATSH8IADžhEE11MAt'MIL; IILL: EI`HEMDD9s'؍XI<uI<ljI4D)H A1fD9s'AI<uI<ωI4D)Hя AE11ffffff.D9؍XI<uIHEA$lt HEL(1;c IHEH81Ht A A$hHML)ADŽ$lIDE$hAE$hI4D)HH} ALE1E9DD`I<uIHED;lt HEHyH]DADHEH<蟍 HL}HEHDHHHMH菎 HL}tH^ EhHEHMHHEAlLL}DHDhADhDI4D)HH}+ AE1ff.E9DD`I< uIHED;lt HEHyH]DADHEH<诌 HL}HEHDHHHMH蟍 HL}tHn EhHEHMHHEAlLL}DH DhADhDI4D)HH}; AE1ff.E9DD`I<uIHED;lt HEHyH]DADHEH<迋 HL}HEHDHHHMH诌 HL}tH~ EhHEHMHHEAlLL}DHDhADhDI4D)HH}K AE1ff.E9DD`I<uIHED;lt HEHyH]DADHEH<ϊ HL}HEHDHHHMH迋 HL}tH莊 EhHEHMHHEAlLL}DHDhADhDI4D)HH}[ AE1ff.E9DD`I<uIHED;lt HEHyH]DADHEH<߉ HL}HEHDHHHMHϊ HL}tH螉 EhHEHMHHEAlLL}DHDhADhDI4D)HH}k AE1ff.E9DD`I<uIHED;lt HEHyH]DADHEH< HL}HEHDHHHMH߉ HL}tH讈 EhHEHMHHEAlLL}DHDhADhDI4D)HH}{ AE1ff.E9DD`I<uIHED;lt HEHyH]DADHEH< HL}HEHDHHHMH HL}tH辇 EhHEHMHHEAlLL}DHDhADhDI4D)HH}苈 AE1ff.E9DD`I< uIHED;lt HEHyH]DADHEH< HL}HEHDHHHMH HL}tHΆ EhHEHMHHEAlLL}DH DhADhDI4D)HH}蛇 AE1ff.E9DD`I<uIHEHlD;lt HEHEHuHEH]DADHEH< HHEHDHHHMH HtHׅ HEDhHEHMHHEHUH]DHDhADhDI4D)HH}褆 AHEHlHECL59r HEHLebH]ȉωMHN HHEHDHHIHC HtH HEDhHELHLeEA$H]DHLIvr !LI~!H@lAHhELE1E1HDž-f.L r LXHN4닕PMBPq IIFIE9t M}HAM}EJ<q HJLXHLLr MZMLIIIIHEHHPxHpu$HPxuHE@$H ƅH1HѨHH8H' HH LP@ff.Lp E~IEf DX AFLPHpH(;}H L4AF<tAF?uAF>uIF HtX1ۀHAN81IH=H8HPDžXH`蠳H HPIv(L1D? <uVLHHLe? <u71Lf9s"H@uL8 ho 1L8 HP@$HHH HL4E~E;~ tIDEdJ<&o HM.JHL!p MP?@H] uE1 n IAEH'IEM}LMt IEH@LHHt HH@LHEH0F$t!H(LILan A@HHDž8HH@(H8HЉPPu1H8Ht 1LH8DP$HH1YAEHAELW) 1E1MALpMfffff.Llm L D,؉E,H(C(H MLpAH(D;)DIH A<tA?u4A>u.Hy t'ȋ H9tH IHhHDu9w IHXIH D|J<l IĉHLLm MH H5&Le E1H HX(HHLh/l IMHXD;HBIML<ƅƅƅƅH/AG=AG@tAG8ƅIGHAGA$IO0HAOBIOHAOCAO>ƅIO HAO?AG?u0AG>uI I(HLXIHHHXtk HMHj @A7LHHA7LH@kH`HHHHHh^LpHtj HH@H1H`HP@H81LIG(Hp0HXH@pHHffffff.HH‹HHHHEH0Hc HRHE@$AHHE@$u)HHHxHmW)HDžDžDž +i HHHia HHCHCH CH1Hb HLDEt=AGIffffff.AL#MtI|$F Lh HEuMLtLjh H`qHtHHƅHILDEAGIffffff.AL+MtI}LF Lg HEu)HDžDžDž g HHH_ HHCHCH CH1H` LLH A9t HbDEdLH4g HLHHH!LHLh MtLf DHDDHHDHLDE*AGIfff.AL#MtI|$D L}f HEILDEt3AGIfDAL+MtI}D L.f HEuMtLf MLIƅDžHHHH0H8PLh;H H@9T HHLHLHcIE0; IIEIMHHЍsHH HH)IXHHHHMAAEHHX(H:^ HH HhHHdLhI@HLH@1H`L8MLld El$HL8IEt$LL⋵PDHHH BHLhH@H ;s(L7I@Hȍ 7H+HHDjHD;jLt%IIIIIPIDEtJ<c HM?JHLd M%L8HHcI@@ H@ufPIH8HHHDz8D;z\ƅ[Z?Hr((hpqr@sLH誴H`H`H8HH(HxIH(PLHHLhHDpAMu DW)JH<@a[ HLHLDDE1LHA9sfIEB4HpHHHLT HHHHSHKHHILIlHH5H T HH<Z HH1HHH9uH@DžPLpfff.9rE1HTHHE1Mffffff.IHHHJ(9'L;H@IHLc HEL;` HE@(tML{(L/AL.x D9}UExPC0MHH=:Lpt1HHtY :1sITIOMIH4H;EuHHsLpIHHtX HHSX IEDNL X HHHt HH@HH@HHHHIHuDLhH`XHHQ HHHHT$H8HT$HL$HH $HL1HILX tAPLLp|H`@H9Hs%HN8H8HH HN8H9rHHF0DžE1L%@OW EtABuILhL IE9=HHB H@HpH HƅƅƅƅHx(C=C@tC8ƅHCHCA$HK0HKBHKHKCK>ƅHK HK?C?u0C>uH{ H(HxHL趮tIHV NILIHxHtU H'HH@H3LHH3LHxL VtADžP@uHCXABB tmHChBHCxJHHH`tƅƅƅƅE1HHHHxHxHH`Da(D;a,t HY LptIDADHHH<T HL Mn JHLU Mt L|T Ef(I^ HHAF,LLpL DA(DLE1퉅LHt HH@HHHHt T EH@HtS HHu Lp LpS DPDPHLJHHtS HHtS HL EcAYLDPIH@HtFS HHt5S HźHHtS HHtS H{K KLA@;8u#HSAEuE1H`L t>HL$1M<$MtAI?HtR LR DI9Ӎ[uHHtdR LH@K Hv HHHDžH@9H(HDž0Mt IH@LH0HtQ H0HtQ HX HH;E:DHx [A\A]A^A_]IHP M􋕜tGHL<1f.M7MtAI>HtlQ LjQ DI9Ӎ[uHHuM@Q M LIH@J LIH> HHHDžH@8H(HDž0HHtHH@IH0HtP H0HtP LP P P W)0HBH(H1ƅ@H HDž01HrP IH8۳IH5P IH%P H6P fffff.UHAWAVAUATSPLEIIHHH11P0AE0O IAEH-HIEIEMtAEHtHH@HI}Ht HH@I]MuIE AE((gO HCHEHHH HXHCHC HCHtCHLL1E1LMAEu1L9s A@DDHt HH@HMt IELPDH[A\A]A^A_]IHtHH@HIMt IEH@LLN zN fff.UHNW9|u9|]UHSPH H4DF>AHS>D8t @K?F?$8tuAЃ Hv(H{(1C?t C>DȉH[]UHLAOROLKDHBLJKHE0E19v!HBu10 HJаHA 9v$HBuE1E0HNALADI!E0E19v!HBu10 HJаHQA"9v$HBuE1E0HNALADI#09 v HB$A$]UHAWAVAUATSPIIM&AD$?$IK?8t <Pt&AD$>$K>8uHs(I|$(&u H(I(AOAV9Aw HHs(A~ HI|$(1Lk(IT$(HUAGIMH4A~HH:KCAD$Cut,tzCCtHKIT$H9rauYHK IT$ H9rILLeu:H3I<$u-IqIz9|u 9|H[A\A]A^A_]f.UHAWAVAUATSH(IW)EHEEEH}|1H}i1H} V1H}C1H}131HuLB HuLB EgE;gtMwIDElLH4J II_LHLH/K Ht HJ EgMwEoDHIDIAGD`EgE;gtMwIDDlLHI II_DHLHJ Ht HI EgMwEoDHHILIAGD`EgE;gtMwIDDlLH z> fff.UHAVSHH HH{0Ht HH@H{Ht HH@H[A^]6> IH{HtHH@> IH> LC> ffff.UHH1L~ @DD E: HIu~H:HP1]UHGG]fUHGȉGuHP 1]UHH HHHu]]e= UHSPHH HH{HtC= HH[];= UHAVSHH? HGUHX5 HPHt HH@H0Ht HH@H Ht HH@H[A^]4 IIHXr5 HPHtHH@IH0HtHH@IIH Ht HH@HV4 L< G< fUHAWAVAUATSPH5 Dk(D;k,tLEu L{ E1%N$L< IL{ LLL= Mt L; Dk(Ls Dk,Dk8D;kAvAF AFAF[Mo(L/AAD$AFL.וxD9} AG0AF AF A;G0 L}L|Ef ;ffffff.<s E9EHMȈEADIMuAH / H}fff.tGH1< t7u € t,8u1HHAff.< tHuEF-HH}HtP8 H8 LwE;H}Ht*8 H[A\A]A^A_]UHAWAVATSHI1 IFIFDcMt*MIL7 IFEfEfHsHL8 M~C AF C$$AF$I~(H(H裎[A\A^A_]HHI?Hty7 L/ H7 ^7 UHAWAVAUATSHHuIIGI~EHtH37 IEAG ME1D;usa 7 IHEHJLHM/ HCID$CAD$CAD$IAGHAOIML$I"IMH[A\A]A^A_]IL6 I}Ht6 L6 fUH]f.UH]`6 fDUH]fDUHAVSHH[A^]/6 IH$6 LX6 fUHAWAVATSIAD$ADŽ$ADŽ$H I$IDŽ$ IDŽ$0M$XIDŽ$PLUAƄ$ADŽ$P5 HH5/ I$(Ht HH@HI$0Ht HH@I$0ADŽ$@[A\A^A_]II IH5 L- I$PHt HH@I$0Ht HH@I$ Ht HH@L, L4 4 UHAWAVSPIAGH4 IIGIG0(4 HCH HHHCI_HtCIHt HH@I_H[A^A_]II0Ht HH@IHt HH@L=4 3 fUHHE1Lt L/A:HItLv @B C: MIuA~HGHHP1]ff.UHGG]fUHGȉGuHP 1]UHHHE1Lws L@/A:HItLgu @B C: MIuA~HGHHP1]ff.UHGG]fUHGȉGu HHP 1]@UH]f.UH]2 fDUH]f.UH]2 fDUH1]fUHWw'H5YB 0H  1fAH]fUH1]fUHWw'H5 B 0H <  1fAH]fUHAVSHIfEfEHEF&tA,uqG<tkHw@H}, \Gt.JtNuMG=tGHwHG>t;HwPG?t/HwXŠG8$4ȍA G;Dƃ@G:DH}N H]HL H 1H[A^]fff.UH1]fUHAVSHIfEfEHEtuG<tHw@ G=t HwHH}E H]HL& H 1H[A^]UHAWAVSHHIH HHEIH@0HuHߺ B}B}Z}hMـϸL}L`\uL\AF8Ht HH@HI~(Ht HH@I^(Ht HH@HI~0Ht HH@I^0AF91PHH/ Iƃu3x/ L0H5ң H1/ / Hi/ Hy/ \/ H H H;MuH[A^A_]fffff.UHSPHH rF1;Bu?1{Zu71{hu/K1w"HH,[u HZH[]ffffff.UHAVSIHHP0C8Mt ILPH{0HtHPLs01[A^]ÐUHAWAVSPIHHCLsLP0C0Mt ILPI~0HtHPM~01H[A^A_]UHSPHHC@HC8H{0HtHPHC0H{(HtHPHC(1H[]UHAWAVAUATSH(LAIt E1ru>t AW]AD$<tIt$@HHH@(HHEHHH@8EDHUH1DAEEuE1H}HH}HH@@DAD$9t0I|$(A@HQHH@0111AEt 5AD$9q, HHRHHtHH@HHHHMIt$0HH@0HA$H}HH@@AEt4AWIIIIH@, IIr 2, HCH[ HHHCHtH% H]MLuMt IH@LHEHxHt HH@HELpH@H}HtHH@HEH+ ILn*Mt IH@LLHu*L}H}HLJpE1MMMf0MF8L+AE.EtMCLedIIM)I)I9vA@ADIw +XB9sHE@;AI됄uHE@:AyMu'LeAD$8AH}qtIHH`LpH L)HEL@L9uE1AIIL'* RIIMAIH@L0H}HuLVdAA`AHEL`@IMD$HM|$PHpID$XAD$<HH@8H}t H}HH@AAD$8tSAAD$;uEAHEqu2AAD$:u$AAtEtHEAE1E1HEMt IH@LH}Ht HH@H}Ht HH@EuUH}HH@HDA@IIH}Ht HH@H}Ht HH@Au*L( D(( H}HtoHH@dIIH}Ht HH@Lz( IAu0a( L0H5 H1q( 2HU( He( H( ADH([A\A]A^A_]' IIH( H ( DUH1]fUH1]fUHAWAVAUATSHHIIIW@MI$HUHMLEL1P8Å}tifEfEHEI$H@@HML1ЉÅu fEft%Wf u Wf}tH}w /H}i }fEfEHEI$H@@HML1ЉÅu Wf}tH} H]H} I$LHP(ÅHEI$H@HHUL1ЉÅHf& IL5%LuMt IEH@LLL%+& IL|1MtIH@LIvI`L1 Åu3IH@(HuLHU1E1MЉÅuI$H@PL1ЉMt IH@LMt IEH@LH}HHPHLp% =HLc% HMtIH@LHMtIEH@LHH}HthHH@] % W}u0I(1HtH111P0ÅuIG(HL1ÉHH[A\A]A^A_]HH}& H$ HH}H$ H$ DUHH]fUHH`]ғfUHHH]“fUHAVSe$ HH6 H[A^]IH;$ Lo$ fUHAVS%$ HH Hu1HC[A^]IH# L%$ UHHE1Lc L A: H@tE1Ld ABC:MRt1Ld AdB C: MItE1Ld fK A: H@tLd @F G: MRuA~HGHHP1]H:HGHGf.UHG G ]fUHG ȉG uHP 1]UH] fDUHAVSH H[A^]" IH" L" fUHH]^ fUHGG]fUHGȉGu HHP 1]@UHH]* fUHAVSHHH H[A^]" IH " LA" ff.UHH] fUHGG]fUHGȉGu HHP 1]@UHH] fUHAVSHHH H[A^]! IH}! L! ff.UHH]> fUHGG]fUHGȉGu HHP 1]@UHH]  fUHAVSHHH H[A^] IH L!! ff.UHAWAVATSIH IH9 IGHn IGH IGIpHt EwhEt:A^fff.IG`L$AMtI|$LX HEuI`Ht< I0Ht HH@I(Ht HH@[A\A^A_]ILF II(Ht HH@L)  fffff.UHAWAVSPHC H HH3 HCHh HCH HCHC0HC(L{(H{`Z H[A^A_]IH{0Ht HH@I?Ht HH@L 4 fDUHAWAVAUATSPIIGIIWtLύH[A\A]A^A_]IEgEA\$ff.IL,AMtI}(L HEuNIIHt EgEt4A\$IL,AMtI}Lj HEuI?HtO L UH]f.UH]0 fDUHH1LL^ @DD E: HIu~H:HP1]UHGG]fUHGȉGuHP 1]UHH HHHHu]H]`fff.UHAVSHH HHH{Ht HH@H[A^]T IHI L} UHH=e ]tUHSPHHCHudHCHH[]UHAVSHH HH{SH[A^] IH L @UHHU HH]UHH5 HH]UHAWAVAUATSHIIIIH HHEAW HLH.AAEAO)A9}IwHL.fAG$tTAOu8A>HIW:C6zK'AGA  u EGAAG 1Ʌt0H1H3HuHH\2u 1Hr 1HÅuAD A1AIOEGJ1t138HuIHDكu 1Hr 1Hu1A9u DA_1H ߏ H H;MuH[A\A]A^A_] ffffff.UHAWAVSPIIA_AG)9CډIGHH$ A_MtA1H[A^A_]ÐUHH1L Z @DD E: HIu~H:HP1]UHGG]fUHGȉGuHP 1]ÐUH1]fUHWw'H5)* 0H  1fAH]fUH1]fUHWw'H5) 0H <  1fAH]fUHAWAVAUATSHHPH. HHEfEfEHEHGH{8HX\{8LuLEHXL_{VpHh pAAvDLLHHxH ȋ8KMLtHL搊NHHƄuAE:HCN7F]60܃'H %HcHOPHGHp<.G1t%HO11ffffff.H<wH9rH}HIHhH%K LL\IoHhH}HhXGVHO11ffffff.H<ыHH9rH}swT1 HGHp82Hwh‹wd뽃GG`$4ȍAGaDƃ GbD7XHwPH}HIHXHt 3 HIH}H8 HAu3 HH5y H1/ H H H   H I H H;MuHĈ[A\A]A^A_]f UHAVSHIH HHEfEfEHEHGH_ t ˃HHXHh ?H HcHH}IhC"tSHuH藊H}HuʈHuH}mH}Ht H}H HIKH}H1肁H}Hu%kH}Ht{ HIH} HIH}HtY H}HG s"H}SsH}:Bs"{Hxz<uHxHp uDžpDžtH}Hp[Sփ1ɁtHɍCʉHT׃vHuLD@H H ʊUuHuHHuVHHƄuw :HƉ>H}Hu:u5HW0 S׃1tp΍CH}sH]HLTH,1]HIH}H HAu3 HH5 H1  H H  H ԅ H H;MuHĀ[A^]:iii'ii3@UHAWAVAUATSHHHHIII$H@0H}HEHEHEHHH5P HUHHLxMt IH@LHDžpID$PHID$H1E0AƐLxMNW))Hg HDž`IH@LH`Ht HH@L`H}HHJAL$a M MрAL$aAL$b MҀAL$bUIT$H<ʋw8;u: H4AV)H<A)^[A\A^A_]DUHHE1L+( L/A:HItL( @B C: MIuA~H:HP1]ffffff.UHGG]fUHGȉGuHP 1]UHSPHH HH{PHtCH{@Ht5H{0Ht'H{ HtHHH[]UHAVSHH/ HH{PHtH{@HtH{0HtH{ HtH{H[A^]IHLfff.UHH1L& @DD E: HIu~H:HP1]UHGG]fUHGȉGuHP 1]UH].fDUHAVSHH[A^]IHLfUHAWAVAUATSPIIIGIEfMt(LHHIEgEg I6HHMgIvLIF IG I(Iv(AAAAH[A\A]A^A_]HEPHEA_t6DsfDI$N,MtI}HtLI΅uI<$HtI?HtH}UHAWAVAUATSPHIA$CAD$CAD$CMt$ Hs AD$C AD$ CAD$CAD$fCfAD$CAD$CAD$L)I|$0Hs0)Ml$@Hs@L)I|$PHPH{)H[A\A]A^A_]I%II}Ht II|$0HtI>HtLffff.UHAWAVAUATSHHuIIGI~EHtHIEAG ME1D;us|(vIHEHJLH(CAD$CAD$CAD$IƋCAD$fC fAD$ fC"fAD$"AGHAOIML$I"IMH[A\A]A^A_]ILI}HtLfffff.UHAVSHH HH{ #uHC H{PHt HH@H{@Ht HH@[A^]IH{PHtHH@ILIH{@Ht HH@Lifffff.UHAWAVSPIE~ffffff.AAthDIHHtHHt HH@HHIHIHI>HtLI>HHu[A^A_][A^A_]eUHH1L! @DD E: HIu~H:HP1]UHGG]fUHGȉGuHP 1]UHSPHH HHH{`HHH[]fffff.UHSPHH HHH{`谢H{wHH[]fUHHE1L L A: H@tE1L" ABC:MRt1L" AeB C: MItE1L" fL A: H@tL7 @F G: MRuA~HG HHP1]HGHGHGfUHG(G(]fUHG(ȉG(uHP 1]UHAVSHH HHH HHHKHHKHHKHHHC H{x4H{hHt HH@H0H[A^]IH0HL!ff.UHAVSHH? HHH HHHKHHKHHKHHHC H{x褠H{hHt HH@H{0YH[A^]gIH{0AHSLUHH]xfUHG G ]fUHG ȉG u HHP 1]@UHAVSHHo HHHKHHH HHKHHKHHHCH{pԟH{`Ht HH@H(H[A^]IH(HsLff.UHAWAVSPHH HHHKHHH HHKHHKHHHCH{pALsH{`Ht HH@H(HLH[A^A_]IH(HLLfffff.UHH]fUHGG]fUHGȉGu HHP 1]@UHAVSHH HHHKHHHKHH HHKHHHCH{hTH{XHHt HH@H0H[A^]IH0HL=UHAVSHH_ HHHKHHHKHH HHKHHHCH{hĝH{XHHt HH@H{0uH[A^]IH{0]HoLffff.UHH]fUHGG]fUHGȉGu HHP 1]@UHAVSHH HHHKHHHKHHKHH HHHCH{`H{PHHt HH@H0H[A^]IH0HLUHAVSHH HHHKHHHKHHKHH HHHCH{`TH{PHHt HH@H{0H[A^]IH{0HL3ffff.UHH]fUHGG]fUHGȉGu HHP 1]@UHAVSHH HHHKHHHKHHKHHKHHHH{XtH{HHHt HH@H0H[A^]IH0HL]UHAVSHH HHHKHHHKHHKHHKHHHH{XH{HHHt HH@H{0H[A^]IH{0}HLffff.UHAVSHH HHH HHHKHHKHHKHHHC H{xDH{hHt HH@H0H[A^]IH0HL1ff.UHAVSHHO HHH HHHKHHKHHKHHHC H{x贙H{hHt HH@H{0iH[A^]wIH{0QHcLUHAVSHH HHHKHHH HHKHHKHHHCH{p$H{`Ht HH@H(H[A^]IH(HLff.UHH]fUHAVSHH HHHKHHHKHH HHKHHHCH{h脘H{XHHt HH@H0H[A^].IH0HLmUHH]dfUHAVSHH HHHKHHHKHHKHH HHHCH{`H{PHHt HH@H0H[A^]IH0HLUHH]fUHAVSHH HHHKHHHKHHKHHKHHHH{XDH{HHHt HH@H0H[A^]IH0HL-UHH]$fUHAWAVSPIE~ffffff.AAt[DIHHtHHt HH@HH}IH]IH^LAFH[A^A_]fUHAWAVATSII~xHtI~hHt I~XHtI~HHtEfEt>A\$fff.IFLHu [A\A^A_][A\A^A_]{UHAWAVATSHLs LH{0 Lc@LH{PfCCC\A^A_]I$II<$Ht IH{0HtI>HtL)UHSPHH9uH[]ÿH5G H1fUHSPHH9uH[]ÿH5F H1fUHAWAVAUATSHHuI1Ifffff.I$I;D$sHHI $D(DmLHuDmEM;|$@uQL9tLE1Ht'HIMtI9HIBIt$8LI|$8Ht DmMt$8I\$@ID$8F,8HIINLuH}fDI$I;D$sHHI $EHLLXt^EH߄uAD$IH5/_ H[A\A]A^A_]LuE9~ s LDIt$8I>LE~IB8뾿H55E H1 ff.UHAVSHINHLH[A^];ff.UHAWAVSPIAO LufAO AO IIWEGEWAW afff.H~8^HudHAA)EWD)D9rVAw@H9s HCA: t19AEWD)D9r%DIMOHA8uHDRE)EWAO A9r)D!IO0A)EW)AW IHH4AW EG$D)IG8Ht0I0AwHHH9wTHH)AGH؉H9vI0u E+GD9uA+O I7I(HLP(uMH[A^A_]ÐUH0~ uN0~uFNO`0$r9VW 0w+VWdt09wFFGFGNO]@UHAWAVAUATSHHHIIHC HHEAGHfAD$@AD$BAD$CAD$El$Et@A]fffff.ID$L4MtI>HtLAHEuAD$I$HI\$ 1HP0AE I$Hu jLAEH] HMH;}}E$MΉJ4Mt9HEȈB(b)J,H B0IHDžHE10+HCH$ HHHCHtH*ILHHtHH@HDžHMHI}HtHH@HDžHMI]L0AIEIE HDžHMAE(MkHHEHCHEHCHEHMHKHLk HHLH8HH@(IHMLAEL8I_IL@7IHH?HHtAHHH8HIHEH[ HxEHHHEE HDžHE1E E 0`HHHHhHEHBHEHBHEHMHJHHHEDžt LhYHhLpD苝p| u5|u.T$rtw4wtt.9v*IÉpL AELtHHTW(TW)TW,E1LO0HEHG I0cHH8AHU HHHAL0MMt+IH@E1LH8HxHt HH@E1H8LpHItLHH@E1HLH D)H09w!LF(HF HF؉t)LHFHF F(DH8HHIWIG(IG K HIHIGAG0AG4IAEI_IG(IG M/ HIGAG01AG4L8HHH(AGHMgI@u4I8Ht IG8IG@IG8IG@H0X4IƃHPLHH9tH5< H1HPLO8OHuHtDHHuHE,$AFxHELet$1I $HA;FxrLeHuE>AF`E9~dDIs&I~XHtxJ<wIFXE~dAE~`AFpA9^ts$I~hHt>H?IFhA^tAA^pE1t+1INXINhE>D9rAELmHM_E^xE1E1HHEH8Ht軶I~hHt譶I~XHt蟶HEH8Ht莶I~8Ht耶I~(HtrI~HtdHEH8HtSH荶D)u1fDEd4I~XD$I~hB4B;\rA݋EȋuA)E)}EAHEHBtFEuNuDD)DU1LefDA4<II 4I $HtHIA^ A^tI1fMt I HuIHIHIH H IHIH Hu[A\A^A_]fUHAVSIHKHCHS8HH KHs(HSHL[A^]UHAWAVAUATSPIHHCHEfMt(MILHDcDc I6HLHCHCEfMt+N<LñHCDcDcIvHL輲HCHEHC(HC En(Mt+N<LwHC Dk(Dk,Iv HLpHC8HC0En8Mt/Lc N<L/HC0Dk8DkHt&HH}LO@UH1]@UHAWAVSHIIA0ALJA9s,IxHt赮H<贮IxAA4ALJA9s,IHtnH<mIAA0t]1IXH<tHI8HIH H ArAIxH A;0r1A4tf1f.IhH<tHIHHIH H ArAIH A49rI Ht3HIXIhLH IHIxH6MP(8MhMA0IXIxI(HLt$$P(AAt<1ff.IL4I>HtHPIA9rAt51@IL4I>HtHPIA9rH[A^A_]fDUHAWAVAUATSPII~dM~XEf`AL-d! IAtZDIHHu#AH ?! HH HCH>LHǃH{}H߫AAF`1A;^0sL$H趯tH[A\A]A^A_]UHH]"fUHAVSHHCxHKT4L0LHpHLץH0OH[A^]HH04HZ ffffff.UHAVSIHnHCpKxHMt ILPH HtHPL [A^]DUHAVSIHHCpKxHMt ILPH(HtHPL([A^]DUHAVSIA~`t&1ffff.IFXH<A;^`r[A^]@UHAVSIA~Xt&1ffff.IFPH<聮A;^Xr[A^]@UHAWAVAUATSHXHUHuILu1fffff.A;FxrAHEǀLufff.HPC;AljEMfIFpJHELDDAAtDIMHHtH;H?11ffffff.AIv(FHtHPIAME;~@rE1q螧H5 H1諧ff.IvpMHHL4HMHHt HHPI>HtHPIAME;~P6DINH Av 1Ґ9lI~|9r)HHH@HަIHΦLHELL͞H}H"IH}HHH@HELDAAt0DIMHHtH;Ht HH@H8XHEǀLufffff.HPC;\s=HELHuIH}HtIH}HHH@EHHH5]HUIFpJH HuH(HHH5/HUH}Ht-H}t8HH@(DH}HH@0DH}Ht HH@H}HIH}HtHH@IH}Ht HH@L!1HX[A\A]A^A_]äDUHOx119sHGpHH9u]UHAWAVSPIWA9O@MWA9OPLuLLs1.ffffff.A;_htIOpHQH]DA\H<IM&JLLMt LEnM>A^ H]DIAFHANH[A\A]A^A_]IH貟LUHAWAVAUATSPIHH H}I ߙH HHH{IwHHIHIIH[ HHAHHǃHǃxEMt7N$LHxDDIxHL֟LxHǃHǃEMt7N$L艞HDDIHLvLALIL誘HIǰL蠘H[A\A]A^A_]I0II ILI>HtI}HtҝHƕH}ÕL讝UHAWAVAUATSHIHI>H;Ht HH@I~H{Ht HH@AFCAFCHC HCEf Mt+N<LHHCDc Dc$IvHLAHCHEHC0HC(Ef0Mt+N<LHC(Dc0Dc4Iv(HLHC(HEHC@HC8Ef@Mt+N<L谜HC8Dc@DcDIv8HL詝HCPHCHEfPMt/Lk8N<LhHCHDcPDcTIvHHLaH[A\A]A^A_]I=I'III}HtHEH8HtHEH8HtH{Ht HH@H;Ht HH@L躛HܛHԛfff.UHAWAVAUATSPIIIGIA~AHtHxIEg LHEE1E9s?WHIJH8H;Ht HH@AGHAOIHIH[A\A]A^A_]HHEHLH8HtHHUHAWAVAUATSPIIIGIA~AHtH訚IEg LHEE1E9sk臚HIJH8H;Ht HH@AGHAOIHIHHEHLH8Ht$H^H8H[A\A]A^A_]ÐUHSPHHsHSH{(覀H C H[]UHH1L@DD E: HIu~H:HP1]UHGG]fUHGȉGuHP 1]UHAVSHH/W HHH(HԀ[A^]ILjIH(H谀fffff.UHAVSHHV HH耀H{(wH[A^]՘I还IH{(UH跘LUHAVSHIHUH{1Ht HHMP(UHKMtAH[A^]ÐUHAWAVAUATSHHLEILuUIILeIAL%HLMHL豪AEHLLE1LeL}ȿڗIHsH]EDxLLјHEHIff.AI;H]vAHuDHMHHHI4A)LL耘LuMuH]fEDD)LHH@(HHMAEEAF<0D;}rEMA)AD))HME1E9HuWDHff.A8DH[tD9rHE$I<LsHU譗uHEHE1IMH]t=Lo3MtL`H]HtHODHH[A\A]A^A_]IHtH-LgUHAWAVSPID?At!LyLD|L x H[A^A_]L H[A^A_]|fUHAWAVATSI}|AFAFAAF@AF E~(Et2A_@IF L$AMtI|$sLXHEuAF(AF8IF0IL[A\A^A_]鲏UHAWAVAUATSHxIIH}@H}AW}`H}ȃ?xu,H]H1AE HLLZzA+H5oԖu5L}L1AE I LLLzAH}HuyADHMH4H}EH}H5 HMȄtUHH}HXAUIH}LL!zAH}H\RIIH}H5! H<uqIu@L$xE1AWfA>H}H5aI HuLLeAH}HTIH}E1A@Eă@LhEuIdDxEt;Egff.HpJAHtH{DqH֒IEuHpHt跒AƋEA9W)E)p)pH}LHp藋H}H_UIDxEA_fffff.HpL$AMtI|$pL%HEuNIH}HtDxEt1A_HpL$AMtI|$CpLՑHEuHpHt趑H}HtU訑NIMHHt9LsI>HHu[A^A_][A^A_]UHAWAVATSHIIHUH{E1HtHHMLP(AC$t{ ULC EHCMtADH[A\A^A_]ÐUHAWAVAUATSHIIH HHEAFIFAF(IF LFEňELFEĈELFÈ]LFAD}LFELFELFELFELFADmLrFMA$ A+t$p99s}}ċE>AEAFEnANAE11E1NLEA$K A+t$p91D AAA~tff.LxEuA$ A+T$p99sE>AAFIFM~H1AFA9Fu LAFID,AFHøH]LDAA$< A+T$p9"EuE>AAF(IF M~ H2fAF(A9F,u L^AF(ID,AF(HøHLDAA$ A+T$p9rvEuE>AtD6fDLCA$wA A+T$p9r+Ã~A$w A+L$p9H N H H;MuH[A\A]A^A_]UHAVSHHIH HHEH)CEHCEHCEHCEHBEHBEHBEHBM狋wF +Sp99s.EAFEAF w +Kp9H Z H H;Mu H[A^]!UHSHHH- HHEHEHHƺBuECEC 1H H H;MuH[]@UHAVSH IHH HHEEEߋEHu$ECECECEL utHsSLєu1H d H H;Mu H [A^]+ffff.UHSHH0 HHEGEG EHEHHƺiH H;MuH[]Ҁ@UH1]fUHWw'H50H   1fAH]fUH1]fUHWw'H5o0H <  1fAH]fUHAVSH0IHfEfEHE+k@(H8H}H1qH}HuHHuH}WH}HtVH}HDF,t6-HpxHu:GtgJt!N@]t~Hph@\trHp` @^tfHppH}|[WHIHIH}Ht~H}HtS~LHXэJ @[Dʉ΃@@ZDH}ZH]HL^H\1ZHIH}\Hs~HAu0Z~HH5 H1j~#HN~H^~A~H0[A^]DUH1]fUHAVSH0IHfEfEHEI,@("H8H}H1HuH}4UH}H}?t| x,H]HJiH}HZ@*Hv`H5I bHIH}H}@]tHphH}YQHtGp4@\u Ht2Hp`H = H4H}UHt p0H}XH]HL\HZ1ZHIH}ZH|HAu0h|HH5 H1x|#H\|Hl|O|H0[A^]UHHHHxHu1!HEHHHHMHHuHUP0H]ÐUHAVSH IHH8 HHEHHЅCXIH@0HMLHЅHEHHC`HuLEC0EC4Mt IH@LHHt HH@LCXCY1PHH"{Iƃu3 {L0H5d H1{3{HzH {zH 4 H H;MuH [A^]fUHAWAVSPHIIH@0IHH@0HIL{xL<t'L<Cp Ctǃƃ II~(ÅIH +Qp49HHAxH+H)IFxAFX1fHHӃuyyMHHyIƃu0yL0H5 H1y'HyHyyH[A^A_]UHH]fUHSPHHC`HCxC^fC\CXHHtHPHǃHHP81H[]UHAWAVAUATSHAIt E1Gu>t AW2HELHH@8EHUHI1AE=EuE1H}LHXHH@@п(>xIAGH8 HIIGMtLpLuMt IH@LIHt HH@MwIGAG$AG H}HtHH@HEHwHL}HwvHt HH@HHH]HXvAD$Y$gI$Hu@A@IIjHHwL}II'IIH wLHH@0111AEIILsxL8IHMuL}CL}L8Cp Ctǃƃ AD$YI$HELeHEHDLL`xL+ +Hpƅs1I)AHhHDžxH}Lg0HxHG8vAEH}賹H}誹HEH0EAt gH}4vAƉtHMH1Aw +Vp9ʹBAEEtuHE@X4HFxHH+I9u E1EtSHE@ZII*IIIIH}HtuH}HttAPHMLyA HH@PHH1HMAHhHEHLJ L`xLLL)DPp D)҉HuHvHxH)AvE0IDt!w9sMHE@[M)EtE0IDكADPpӨHEH0H}?AHEHLILbxL+ +JpI)AvE0Dt|Et+w9raHE@[AE0LHEH HE9tAƅs$HxD)H 9tƅsDC6E0H}HtsH}HtsDtAu*HEL``HxHHhHhHHp@\@]@^H}t H}HH@оHE@XtA@[u6su(@ZuAtHEEEu1HXHH@HHEAH}HL}t HH@Mt IH@LH}HHH@IIH}Ht HH@H}HtHH@IIH}Ht HH@LqHAuCqHH5 H1qLqD(q6HqHqqADHĈ[A\A]A^A_]CqDUH1]fUH1]fUHAWAVAUATSHIHIH| HHEAWA@MIEHtHpLlL1P8AEAD$(8AD$)9AD$*:It$8LHAD$,AHXHthHHHtgHr HH;EuNDH[A\A]A^A_]HH(5FHXHtgHHHtgHggHHHgfUHH]RfUHHǘ]ffffff.UHH]fUHAVSEgHHaH[A^]IHgLOgfUHAVSgHHaHu1HC[A^]IHfLgffffff.UHH /1?$11 DG1AO1ɺHO HVAtmHH H G1HW19HH9uH|:)H)օuHHAtiHHB1HH9s H~<1uHHH=HHGH9 H1H9HL1H)HAtjHHB1HH9s H~<1uHHH=HHGH9H1H9HL1H)HAtHrqHHHt_11tNHʃt'u=1@u:Hr/Q1f9QtHtI1w]ÐUHHE1LL A: H@tE1LPABC:MRt1LcAdB C: MItE1LrfK A: H@tLg@F G: MRuA~HGHHP1]H:HGHGf.UHG G ]fUHG ȉG uHP 1]UH]]fDUHAVSH]H[A^]/cIH$cLXcfUHH]]fUHGG]fUHGȉGu HHP 1]@UHH]z]fUHAVSHHHb]H[A^]bIHbLbff.UHH]]fUHGG]fUHGȉGu HHP 1]@UHH]\fUHAVSHHH\H[A^]bIH bLAbff.UHH]\fUHGG]fUHGȉGu HHP 1]@UHH]Z\fUHAVSHHHB\H[A^]aIH}aLaff.UHHE1LL/A:HItL@B C: MIuA~H:HP1]ffffff.UHGG]fUHGȉGuHP 1]UHH5$ HHHu]H]`UHAVSHH$ HH{Ht HH@H[A^]x`IHm`L`ff.UHAWAVATSIH! IHy" IGH" IGH" IGIHt `EEt7A^fDIL$AMtI|$C>L_HEuIHt_IHt HH@IHt HH@IHHt~_I8HuO[A\A^A_]IIIHt HH@IHHtA_I8Ht3_Lm_ _[A\A^A_]_DUHAWAVAUATSHIAG H IH+! IGH`! IGH! IGI_8H}IHtILJILJLHHEMLjX ^HH11;H HHH HHHKHHKHHKHHHC IHtC(IHt HH@IH[A\A]A^A_]IH;IL(^IxI IH]IHt]LuEEt5EuI$JAHtH{;H]IEuI<$HLuti]IHt HH@HEH8Ht HH@IHHt1]I8Ht#]L]]]fUHHE1L;L/A:HItL@B C: MIuA~HGHHP1]ff.UHGG]fUHGȉGuHP 1]UHH]BDfUHAVSHH{-DH[A^]K\IH@\Lt\fffff.UHHHE1LGL@/A:HItL@B C: MIuA~HGHHP1]ff.UHGG]fUHGȉGu HHP 1]@UHH]RCfUHAVSH_HHHH5jHUл@H}H/HH@(Iw ЉH}HtHPHEEgAuCI~HHH5dHUл@H}HHH@(LЉÅMnI?IEI~LHMAuZHEI~HHH5HUH}HtHH@(ЅDH}HH@0ЅDH}Ht HH@ЅuIHtINH9u1H}HtHPH([A\A]A^A_]HH}HtGHH@t AWAEDtIuPHH@(HHEHH@8EDHUH1DAEEuE1H}@HH@@HDп @PIAGHh HIIGMtLIIH]Ht HH@HIHt HH@I_IGH}HtHH@HEHOILNLMt IH@LLHHPNAEAtNI}0Hu)A@uHIHLIBOHH@0111AEt ;AEALpL}W)EIU8Au(LxH}AE1ɳA1E1f_H`HhHpHO0HW8HOAEHxDp(AA H}HuDHMTAEhED9t|10EtHhA@CHxAGA_H`\Hx@@AHIH}L}BHxP(EAt MˆMAҊ\ˆ]HuHNMHHL=ˆMHNMTˆUHVHULA=HtHH9"1Ut7%fffff.D9t9tvH}HuHUHpaAIHEHMHQHApHhAHxHxE1HEtACHhHAPHQXLy`ADAEAFAA@t8AACu,AAGu AABuAAtEu5E1H}t H}HH@HPHH@HHEDAH}L}LpMt IH@LMt IH@LH}HHH@LpHIHpHt HH@MtIH@LHIH}Ht HH@HlKHAu3SKHH5 H1cK|KHDKHTK7KAH| HH;EuDHĈ[A\A]A^A_]JHI|HJABE15f.UHhJ@H  HH  HHH@8H@0@(]UHH 1?~HOHt1HH9wcHt!HrS1 uKHt1x=Wt01!9t9t v݃]fUHhI@H HH : HHH@8H@0@(]UHH1?HθH 1HOHt1HH9wfHt!HrV1uNHt1x@Wt31$fD9t9t v݃]ÐUHHE1LLp A: H@tE1Lĉ@AOBC:MRtLՉ@fffff.B C: MIuA~HGHHP1]H:fDUHGG]fUHGȉGuHP 1]UHAVSHH HHu HCH{8Ht HH@H{0Ht HH@[A^]IH{0HtHH@ILGGUHAVSHH HH HCH{8Ht HH@H{0Ht HH@H[A^]KGIH{0HtHH@#GIH$GLXGfUHHHE1L7L@p A: H@tE1L@AOBC:MRtL@fffff.B C: MIuA~HGHHP1]H:fDUHGG]fUHGȉGu HHP 1]@UHAVSHH/ HCH HH{0Ht HH@H{(Ht HH@[A^]IH{(HtHH@ILFEUHH]@fUHHE1LL/A:HItLw@B C: MIuA~H:HP1]ffffff.UHGG]fUHGȉGuHP 1]UHH5 HHHu]H]`UHAVSHH HH{Ht HH@H[A^]DIHDLEff.UHH=e 0H= ]#UHAWAVAUATSH(HUIIH HHEHuLWHMH A $EAD$MȸʃAT$AT$ AT$ f_At$$tuˁ?FٸwWMl$sA9t$sL菂MuLLH;VAHMIM@€<uAT$H ظ H H;MuH([A\A]A^A_]Cff.UH1]fUHWw'H5W0H L  1fAH]fUH1]fUH@]DUHAVSHIfEfEHE,uGDt HwHH}&H]HL"H 1H[A^]@UH1]fUHAWAVAUATSHXIIH HHEfEfEHE H sHcHI H}L1аHuH}sH}HIH}HAA}Hu )<`H}Hu+NAuH}<AED1IuHH}H}H5 ޅA]8E9Eu H}ـEAHMEE}0H}H5 MLeDL~nH}L2E}4H}H5 LeDLOnH}LE9Eu H}REHMmEA}8r2A]L0H5O H1?JH>A>HH@0HH>H>>ADH[A^A_]fUHH]fUHSPHHCHCDH{PHtHPHCP1H[]ff.UHHUHHkHGHHG]f.UHH%HH;HGHHG]f.UHGO1Ɖw1]DUHAVSHKC C DsA)DsщS&DA DsSSC C 1rw(%CAH{(HGH;GtHHHO[A^]ffff.UHSPwGw119s 19@)ʉ)H[]ff.UHAWAVAUATSHxhMAHpt1ۅu>t WHEIHuLP0ÅHEIH@8EDHUL1DЉÅ_Eu 1H}\IH@@LDH}H}HpH@PHEE1[IĻMMH;IL:Mt IEH@LLL;LpAF8H HH HH BHHHLxL`Av4uH HH HwAF8t AsAA~<bLp0u_H`IL:MI ILxH5 H H5 HPHHHHHt6.H8HU!.KHu=fDž(fDž*HDž0H}HH@(H(AEuAWf(taH(# HhHt-HXHt-H}Ht-H}Hty-H}Hg-H0HH( I_HEw0E;w4tMg(TLDE|J<%-III](JLH.Ht H,Eu0Me(E}4MDHI AG0HH Ht HH@IHH a'LH Ht HH@ЋC HHHH@0H1AEHHX'HDžH}HH@0HHAtGDAAHH HHH@HHu DCIfDžfDžHDžH}HH@(HЉÅuWftH AALLLH LLsHDc0D;c4tLk(KDE|J< +ILs(JLL,Mt L*Dc0Lk(D{4DHILC0HHn%C HHHH@0H1ЅDDEDHHt HH@DHHtD*EADm{ DATHHHt HH@HHt)HH(=HhHt)HXHt)H}Ht )HH}Ht)H}HtE)>H}H}Htg)H}HtHPDH([A\A]A^A_]HH}Ht 2)HH}Ht HH@HU))HH}nH)HHUUHAVSHHA1Et^HH@0HDMHH(Iƃu0(L0H5 H1(H(H(([A^]ÐUHAWAVSPIIFHAF@IF8E~ DAAt>DINHHtH;Ht HH@H(IH'L/(AF AF01H[A^A_]fff.UH 1]fff.UHAVSHIfEfEHEBr(u0Hw8H}!HH}H'HwHH}H]HLH1H[A^]ffffff.UHAWAVAUATSH(MAH}t1ۅu>t WHEHpHIH@(LЉÅHEIH@8EDHUL1DЉÅEu 1H}[IH@@LDЉÅ(d&IAD$H HHI $HXID$ID$ ID$MtLLH&IL$LeMt IH@LE1LMHH]1W%E1 fHEL` AHED;x LL`8L`0HIA&ÅDHMHIHL0IH@0L111ЉÅH}HH@(HUL1E1MЉÅuerLII.%IILHLet~HH@sIH}HtHH@HEH}HH@H1ЉLHLet HH@Mt I$H@LH}HHH@}IIMtI$H@LIIH}Ht HH@L{$HAu0b$HH5 H1r$0HV$Hf$I$H([A\A]A^A_]#IIH$UHAWAVAUATSH8HWHHU8#IAFH HIIF0IF(MtL$LuMf(E1fD;k W)E)EEHCJL0Mt IH@LLuHC(JHELHuH}Ht HH@AIIL#HA#HH5Z H1#IIH]IIH}HH]t HH@HtHH@HE1E1 fDIAHED;h0s8DI $H LqI$HHXH9HHH@01ЅuHEHELpH@@ HEHMH1H4"HD"'"H8[A\A]A^A_]!UHH]fUHAWAVSPP!HCHk HH HCHC0HC(HC HCL{H{8vHH[A^A_]IH{(HtU!LHK!L!2!UHAWAVAUATSPHI(!HEH;H8Ht HH@El$E;l$ tM<$MDEtJ< II$JLH!Ht H El$M<$Et$ DHMI AD$HAL$H[A\A]A^A_]H fff.UHAWAVAUATSH(HH]H}H}uHCHEDsC uRL}DEA^HcHMH 49L0}AuE1L1y}IcHLeEf.EEoHEHZt7zuGLa2}0HH}HtyHLA}HED` yAHUB9B uHHGoHڋBHUH D$BEaHMAzAADDAƻLefDHMD<ED9E9EuLnEH}D.|AIcLuxWHEH4L |HH}{AIcLuffffff.xHEH4L{HHuH}vH}HuHUqH}HtHEH([A\A]A^A_]fDUHAWAVAUATSPHI IH;I>Ht HH@HCIFHCIFHCIFEl$E;l$ tM<$UDADHEH<uII$JLHoHt HBEl$M<$HEAD$ DM4AD$HAL$H[A\A]A^A_]H)UHHE1L+]Lp A: H@tE1L]@AOBC:MRtL]@fffff.B C: MIuA~HGHHP1]H:fDUHGG]fUHGȉGuHP 1]UHSPHH HHf HCH{8HtH{(HtHHH[]@UHAVSHH HH HCH{8HtH{(HtH{lH[A^]IHLffff.UHHHE1L[L@p A: H@tE1Ld\@AOBC:MRtL%\@fffff.B C: MIuA~HGHHP1]H:fDUHGG]fUHGȉGu HHP 1]@UHSPHHP HCH HH{0HHttH{(HtfHHH[] UHAVSHH HCH HH{0HHt#H{(HtH{H[A^]IHL/fUHAWAVSPIE~ffffff.AAtJDIHHtH;Ht HH@HIHI>HtyLI>HHu[A^A_][A^A_]Sffffff.UH]f.UH]0fDUHH=ժ ]pUH 1]fUHW w'H5-0H   1fAH]fUH1]fUHWw'H5-0H ̴  1fAH]fUHAVSH0IHˍ HHEfEfEHEF$,tA-H6GtHuLH}Ht98 2HH}HtD% =HH}Ht1 *HuLH}Ht H0[A\A^A_]HH}Ht H fff.UHAWAVATSH IΉIfEfEHEI@tSIO0H4oHIH}H IAp L0H5~ H1 AWA9wPLAEIwXYu4J H HcH2`H`HUL1I567~x2-~H#H@HUL1 HULNx/u,HC0t2t5uDt0H}HF~x2uHuFHH}HHvHHH}~jH~ HtaHu<uTH}HuYEv(H}7HPHUL1#Zu~x1u~HtH@HUL1H}LE1H}H~HqADH [A\A^A_]Ð3P@UHAWAVAUATSHT|HpIID$@HEHMl$HLEuA\$8H}t E1R1tIID$011@H|u Hp4HH[A\A]A^A_]UHt(tu3HwG8HW(HR0HHp1HxHw1HtH11]@UHAWAVAUATSPIAIDIO0L,AEx<2SBC:MRtL54@fffff.B C: MIuA~H:HP1]ffffff.UHGG]fUHGȉGuHP 1]UHSPHHP HH{@Ht#H{0HuH[]HH[]`UHAVSHH HH{@HtH{0Ht HH@H[A^]IHLffff.UHAWAVAUATSHHI7HCIGHCIGHC IG I@H}Hs@C(AG(C,AG,C0AG0C4AG4C8AG87IPH}HsP7Mo`Hs`Lw7HCpIGpCxAGxCy$AGyCz$AGzILJILJDMt6MILIEEHHLH[A\A]A^A_]H=H'HHI}HtsHEH8HtbHEH8HtQI?HtDH~UHAWAVATSIE~EtpEgDIJHtPHHtH{`HtH{PHtH{@HtH;HtHAIEuI>Hu [A\A^A_][A\A^A_]ff.UHAVSHHO HH HCH* HCH_ HCH HC H(Ht HH@HHtHHt HHtHHtH{XHtH{HHt HH@H{@Ht HH@H0H[A^]IHHtHHtHHtrHHtaH{XHtSH{HHtHH@IH{@HtHH@IL_IH0HLHffff.UHHE1L/L/A:HItL'/@B C: MIuA~H:HP1]ffffff.UHGG]fUHGȉGuHP 1]UHH HHHHu]H]`fff.UHAVSHH_ HHH{Ht HH@H[A^]IHLUHAWAVATSH}1Ls@Lq1LcPLe1H{`\1HǃHǃ[A\A^A_]I#III<$HtfI>HtYH;HtLLUH1]fUH1]fUHAWAVATSH0EEIfEfEHEHH@@HMЉÅfEfWfHuH}CAu(H}Hu1aH}Hu4EH}HtAu+H}LeAu$%HH}HtNXGHuLD_E1H}Ht6WEu1H}H0[A\A^A_]HH}Ht HH}_H-UHAWAVAUATSHHˉHH@tA@ XA@HHGW)EHHHHDE1=ffff.OH}HtAH}Ht3AEED;UH}.H}.H}.Hu)AA@IHIHHH@8HDHlHhLdAAEThElEdpDtfDžPfDžRHDžXHH@@HDHPAEfP0ftAWf fXEHPSfDž@fDžBHDžHHH@@HD5H@AEuYf@ftUAWfuAEAE=HPA!IHH@"H@ЋHEH@fDž0fDž2HDž8HH@@HD H0AEf01ftAWf@H8NHxH0HDHMDAjAAE8Et?HEt7PHM</t*HH 9uH}'HME/EHDHMDE1AAEHDHMDE1AAEltsfDž fDž"HDž(HH@@HDH AEuAWf t H H(HEH E1H}Hp[EH}HIHH}HtH}HtH}HtH}LIƃL0H5M[ H1HtH}H51HHz@H0HMHDIc&AH}HH~ADH[A\A]A^A_].IH0IHIHHPxIHH0aH0oIHH >fUHH6NHBuu$tNR9|]ff.UHH]UHAWAVAUATSPIIPXHHL^EnE;n tM>QH]DA\H<IM&JLLMt LEnM>A^ H]DIAFHANH[A\A]A^A_]IHLUHAWAVAUATSH(IIWHUHpL?鐉MIDHE HIDDD4 A9wgMA9rLM.EKtLHI|LHMAHمA DI\H}HHHIAMHUMxHMILM]ffff.IDIILIHEHHUfffff.IIDٍ 9waMrL/ItHHI|MLMALM ÉMtH}LLHIAMHUMxHMILHH([A\A]A^A_]fUHAWAVATSIHAAGCIGHCIGLs Iw HCAGCAG$CAG$CAG$CL'Lc0Iw0L'H@I@HL'[A\A^A_]HHI<$HtSI>HtFHf.UHAWAVATSIE~EtREgDIJHt2H{@HtH{0HtH{ HtHAIEuI>Hu [A\A^A_][A\A^A_]UHAWAVSHHIH W HHEH&IGd1HUfDwHHuE1| tLt HuLWH1HUL9 1 1H9I|Hu1IHu1twIǔ1HM@wAHIuE1f| tH\ HuHTV0HUH9t 0ɀ uHH9H U H H;Mu HH[A^A_]f.UHAVSH@IHU HHEO G O uYGHWH O GH w W O HHH HH H H H I>Hm1HMffffff. wHHuE1| tH\ HuHUI0HMH9t< H T H H;Mu H@[A^]Xf.UHAVSH@IH[T HHEGHWH G7_O WH _ w DG H H_ HGHH H H L ItuHjH?d1HM wHHuE1| tH\ HuHSH0HUH9t< IH ^S H H;Mu H@[A^]%UHAWAVAUATSHHHHHH S HHEǃH0!H$!ƅHC`HhHCPH`HC@HpHC HXHCHHCHILh0ffffff.~HH0E1AExAE1@=HHHt>HHt-HHtHHt H@HtH4H@HHdrH3H@c drH0H0Hc H@LHHtHHtoHHt^HHtMH@Ht<H8 HH;EuHĸ[A\A]A^A_]mffffff.UHAWAVSHIHf8 HHE1t+)LLHI^I>LHH #8 H H;MuH[A^A_]UHAWAVSHIH7 HHELLfD1wIGI?LtH 7 H H;MuH[A^A_]VUHAWAVAUATSPIHIFHCIFHCIF HC H{@Iv@AF(C(AF,C,AF0C0AF4C4AF8C8oH{PIvPbH{`Iv`UIFpHCpAFxCxAFy$CyAFz$CzHED;w MI>IIHt'IEIEMILHI}DDILHH[A\A]A^A_]fffff.UHAVS0HHDH[A^]IHLfUHAVS0HHHu1HC [A^]IHQLUHH=R ]UHAWAVAUATSHXMDILHHHEHHt!HHH@HH}Ht HH@HHH}HEHEHHH5HUAF1tJI1fHBtHR"Ia HH?H<׋HWHHuLHHH@(AE (@H HJHHXHPH@ H@Ht@HHǾILL菽Mt IH@LLH 0膾@H HHH@Ht@HHt)HHH@HHxHt HH@1HDžHHHHfHE1H HtɽH}Ht軽H}Ht譽H}HLt蘽HpHt臽H0HtvEELA;VHIG8IG0LAE؉IHH0CCXHs H0Hs0H}Hs@H}Ct8E518IIL蹼IIIsE0HCH@HCHPEEDž\Dž`HHHEHH H4H0`H CuCtZsH6H DAAtA(tE2HpH C EHCH@HCHHH{uAAWHDž(H@H@HEL}H}H0AAE6HHHHH@(H1E1LAAEHHH HEHHEH@H9H}HAA@sHHH@HHЃuEVAtAtHHHDžHHH5HHHtXHH@(H11LE1Ѕu!HH@H}HPHHt HH@HsHZHDA}AAEubE1tSE1HpHLH@H@HE1HHtHH@HDžE1EHHt EIHH/HH@L!IHHҸLH)HH@01AAEL}HH@ H@H}H0AAEu{H}HH@0H@1AAEuRH@HuH}0AAEu0HHH@PH@1HDEDEHHt HH@EILHHHH@wHH LHH}Hy蓦oLH55 LLLH t6HH 9uH H  HLH}H.$HLt+9uLI HL}HHt蠥HtHHH@HHt HH@HHHItLHH@HHHt HH@Lƃ1aHHHtH0H57 7H5Hc HH;EuHB[A\A]A^A_]迤fff.UHAWAVSPIIHHH@0HLLFMHH蛤Iƃu0胤L0H5 H1蓤%HwH臤jH[A^A_]fff.UHAVSIHHP0Mt ILPHHtHPLƃƃ1[A^]ÐUHAVSIHHCHHP0Mt ILPHHtHPLƃƃ1[A^]fUHSPHfǃHǃHǃHǃHCxHCpHChƃƃƃǃHHHtHPHǃHHtHPHǃ1H[]fUHHHH@(]fffff.UH@]DUHAWAVAUATSHxHHpIAF<W)HH5 5 HӟH苟4H 4LHAHHDžE11L LI9uBDžHpHH@(HHAEE1HL)H H)HHLHHޅDHH$HHL辟HHHxHH~HVlNt W3IwxIH@(LHEIH@0HuLЉÅHEIH@8EDHUL1DЉÅ*Eu 1H}IH@@LDfEHEHEHEHEHEHEEHk HxHEH訝HHwH]HtHH@HH}Ht HH@H]H}LۜLeAt/I@H"HH@0111ЉÅt AƇIHUHxoÅID$ IL$(IT$0IIIID$IID$IGxI$IL$IOpIGhAƇEtXEuLu@Eu5u)uHEuH9H}HtHH@HEIH@HLЉH?j HxH}Ht HH@H}HHH@IIHi HxH}HtHH@IIH}Ht HH@L襛HAu0茛HH5 H1蜛0H耛H萛sHh[A\A]A^A_](IIIIHJffffff.UH1]fUH1]fUHAWAVAUATSH(IAIIH}G,At#WEH}蚬,@MI$HUHMLEL1P8Å|}tifEfEHEI$H@@HML1ЉÅu fEft%Wf u Wf}tH}mxH}_x}fEfEHEI$H@@HML1ЉÅWf}I$H@(L}LLЉH}wH@\zAE Eȉ@HDž8H8I$H@HLL1ЉÅH8H)fDžfDž LHH@QHCwnIE HE1ffff.E;e8swDIM0L4AU$HLlE1fE;~sBDIH4>HH@ADžtHHHAAE$LEH5ILMt IH@LLHHLp'HHLHLHH@HIEHO,WctGtN DžXHLj!HMIH@LDžDž Dž uYGH01Bffffff.Hw@H4΃>u#f~uVWtbwZH9rɻWtAH}HHHuHHH@P1Љ (Mt IH@LH8HtoHPgHHtH8HtlHH@aW}u6I1HtH111P0ÅuIHL1JÉH([A\A]A^A_]HH}2tH賕HH}H}tHfUHH]fUHAWAVAUATSPAHIH}LJLo LE1fff.E9s[K4LHHIƅt8HH1IƃL0H5o H1% HEЃxXtT1HMa L}fAAw"HsIPHANtދAL}иWA HMЋA8HY0I1fH9sH Hzu HNztHdAN8WwXu8HHxHxuH5s>H?H5b Wt1H$H4H[A\A]A^A_]DUHH]BfUHAVSœHH$H[A^]IH蛓LϓfUHAVS腓HHHu1HC[A^]IHQL腓ffffff.UHH]%UHH]%UHHE1L;L A: H@tE1LABC:MRt1LAdB C: MItE1L"fK A: H@tL@F G: MRuA~HGHHP1]H:HGHGf.UHGdGd]fUHGdȉGduHP 1]UH]2fDUHAVSHH[A^]ߑIHԑLfUHH]fUHG\G\]fUHG\ȉG\u HHP 1]@UHH]鮌fUHAVSHHH薌H[A^]XIHML聑ff.UHH]XfUHGTGT]fUHGTȉGTu HHP 1]@UHH]fUHAVSHHHH[A^]ȐIH轐Lff.UHH]ȋfUHGLGL]fUHGLȉGLu HHP 1]@UHH]鎋fUHAVSHHHvH[A^]8IH-Laff.UHHE1L;L/A:HItLW@B C: MIuA~H:HP1]ffffff.UHGG]fUHGȉGuHP 1]UHH] HHHu]H]`UHAVSHH\ HH{Ht HH@H[A^](IHLQff.UHAWAVAUATSPIHY IH6Z IGHkZ IGHZ IGIHt跎IHt HH@IHt HH@IPHtEwHEtt W8HEHpIH@(LHEIH@0HuLЉÅHEIH@8EDHUL1DЉÅ'Eu 1H}IH@@LDп IAD$H-H HI$ID$MtL蟃H]Ht HH@HI|$Ht HH@I\$ID$H}HtHH@HEH{ILJMt IEH@LLLȈHEHxHH@0111ЉÅ8#ILuAGH' HIAG(IG IGIGMt LIHMHqH@(LL1E1MЉÅtKAtChHIHIL肈HIMIH@LE1Mt I$H@LH}HH@HE1DЉMt IH@LMt IEH@LMt I$H@LH}HHH@HIMt IEH@LMtI$H@LHIH}Ht HH@H诇HAu0薇HH5 H1覇0H芇H蚇}H([A\A]A^A_]2HIHL@UH (@H U HH@]UHHrH@@HFH?]ø]ÐUHHE1LL/A:HItL@B C: MIuA~H:HP1]ffffff.UHGG]fUHGȉGuHP 1]UHHT HHHu]H]`UHAVSHHT HH{Ht HH@H[A^]؅IHͅLff.UHHE1LL/A:HItLw@B C: MIuA~H:HP1]ffffff.UHGG]fUHGȉGuHP 1]UHH= ]UHAWAVAUATSPAIIII~ u:0ۄHHI^Ht HHPI~ HtHPI^ (衄HCHl HHHtH}IF,HCHC HCI~HH@0LLDAEutH[A\A]A^A_]I~ HH@(LHLMLMH[A\A]A^A_]UHSPHZ~HChHC`HCXHǃHCxH[]UHSPH~HChHC`HCXHǃHCxH[]UHAWAVAUATSH@LH`HHIHH HHEAWHr HDžHHE1H5HHHЉtE1AE1HDžxAHE1(@H A HHH@Ht@LMt1IMHIILILHxHtHHIIILHxLhH@@ E1E1IE1(X@H @ HHH@Ht@HHHIIILHyHtHH@IILHxHHAHAA$A E1E1IHHt HH@Et D AD$(L`ID$0HAD$0t MZLpIE IMIV IvMHG HEH8HEH@ID$HH0ID$hHHGHP0H1HDžXfD1HrMt$xI=HH8tHD b8 AD$tI$v4HH9HhH;LrzIHID$0Mt HA@ DžLID$0H}IHHuLH HH@L7 HhG Hpt"HpHH@0111AEtHHH@8H1AEWHHH@0111AE9HH@I$uX(~HHg$I\$xE1HtE1H tHH@HII$Ht HH@M$AD$H@3Mt$xIH}HCH HAHHA`HCHC8HC0CL{0H9vH HAHHA`HCI$HtCIHt HH@IAD$t<w I$AAT$@It$8I$HH@8AEI$HrADIHxII?Ht |IH|Hx0}|HCH F HAHHA`HCI$HtCIHt HH@IAT$@It$8I$HH@8HHH@(Hп@H̿AE̿HtHпHpHH@0111AEyI$H*xAEUI|$xHH@HHAE4ID$xHXID$ Hh HjHI|$Xuc({HCH q HAHHAXHCHC HCI\$XHtCI|$`Ht HH@I\$`HM$1MtAIH@LL0IHHxHHH@HI|$`HH@(HxH1E1L`AEAEƉHt HH@HEDHAD$p?8yIIF0IF(IF IFIFIFIHI IH\I IFIF MtAFHH8Ht HH@HL0HAD$p?PCyILMt IH@LHH8HtHH@ILjHAD$p.  AD$pHHHHAEHL0A@M{HDžIHLH5HHHt,AD$PH0HDL_AǻEu 1DHHt HH@ЅHM$E1MIH@LMIHHu HxHH@HxIMu HxIEH@LHxE1HtHHH@HIAD$pH:AvAHH8HH@(HxL1E1L`AEEEDMt IEH@LEt DHHH@0HH1HPAEH@HGH8HHHWHH9$ItBAD$t:I$HmAEu4HHH@01HPAEuHfAFE1HXHt HHH@PHxHtHPHX HH;EupDH@[A\A]A^A_]HH@HHxHXHtHHH@PHH IHxHt HH@HLu]uuHzuUHHE1LkL/A:HItL'@B C: MIuA~HGHHP1]ff.UHGG]fUHGȉGuHP 1]UHH%D HHcD HGH Hu]H]`DUHAVSHHC HH-D HCH{ Ht HH@H[A^]=tIH2tLftUHHLGE1L GL@/A: HItL @B C: MRuA~H:HGLP1]ff.UHGG]fUHGȉGu HHP 1]@UHHC HGHBC HHHu]H]`DUHAVSHHB HCH C HH{HHt HH@H[A^]sIHsLBsfff.UHHE1LL/A:HItL׵@B C: MIuA~HGHHP1]ff.UHGG]fUHGȉGuHP 1]UH]f.UH]@rfDUHHLGE1L WL@/A: HItL @B C: MRuA~H:HGLP1]ff.UHGG]fUHGȉGu HHP 1]@UH]f.UHH]|qfUH]f.UH]`qfDUH]f.UHH]E|$ffff.IJAHtH{TIHjIEuIHtjHEH8Ht HH@IHtjL,H}eH}jIHtvjL,cj^jUH1]fUHW w'H5i0H |  1fAH]fUH1]fUHWw'H5'0H ,  1fAH]fUHAVSH0IHfEfEHEW1F#jHHH}H+H}Hu1<HuH}@H}Ht5iH}Ht#ij$)tF,SHH+pxGH1$H} H}BHIHIH}HthH}H|hHpxH}EXt H HH+pxHH}DwɍqD HPxDHy*t H HH)։σHH9Bω΃DH}CH]HL1GH F1ZHIH}EHgHAu0gHH5 H1g#H{gHgngH0[A^]fUHAWAVSPIH۪M~EtAD9{ s HDI6L3ELLhC>H<uKHH[A^A_]IH;HtfLfff.UHG(1]UHAWAVAUATSHHIH HHEfEfEHEIO L44M'H eHcHHp\EMf AAFtHpLu=u$AFqIFINAHE DHpLDHp'HpH}'=HpHveIIHpH!VeLH})?IvH}AIv(ANX1ffff.9s)IVPHIVPHf:uHzrHRzAuـzEuf:IL3I^A~uL3fE~HAfAcHH5\NAFX1 fDH9UIVPHf:uHzrHRzAuՀzEufDzzE-@Hu3HHuIIHHBw`8@AFX1fffff.H9IVPHf:uHzrHRf:uZH 1 fD wHQ9HuHrH>\HH5)E:HuZHHu (HH5HH59 uH&H fA wAH 1 HCAH 1 ffffff.wHQ99HuHZ H]H茌HH=fAuAtHH5HHH}7HHtV^OINIFAAFqHD8Hw Hy1 H H]HH}Hk7AvH}{:H]HH=H<1]IIH}<LG^HAu3.^HH5 H1>^W^H^H/^^H X H H;MuH[A\A]A^A_]Ðaao,aaaaa aaaaaaaaaaSUHHHuHUHHHuHUP0H]UHHHuHHHu1P(H]fffff.UHHHuHHHu1P0H]fffff.UHAWAVAUATSHHIIIIH@0M~0LLLHSAEH0 HEH]Ht HH@HHEHۺHEIv L@AHf0 HEH}HHH@HH=0 HEH}Ht HH@H\IH@0L\nHI[H[HAu0[HH5 H1[2H[H[[ADH[A\A]A^A_]\[HoHv[fffff.UHAWAVSPIE~(ffffff.AAt5DIN HHtHqVH[IHZL([AF(I0LR1H[A^A_]ÐUH]fDUHAWAVSPIAFH4. IIFZHHDI^Ht HH@HI~Ht HH@I^H[A^A_]I IH8ZI~Ht HH@LZZ Zffffff.UHAWAVAUATSHMMIIHHY HHEHuL qluE@}u:@}u/H{HHu˺P0uH{HLL1MMP(H H H;MuH[A\A]A^A_]Y@UHAWAVAUATSHLLIHIHEJu @trBX1H9suH~rHvf>uIƅƅ'ƅHEE1DH[A\A]A^A_]fctIƅƅƅ'^BX1fffff.H9sHrPH4f>uH~rHv~Auـ~EuIf>ƅ'ƅE1(XHCHY HHHCHtCMt$IH@E1LH{Ht HH@E1LsHCC$C IT$'t H+H sE1E1-HIZHHHAt$tIt$HHE11H{LH0E1LHE1H(L8HHDxPLhHLD9sIEHLcf9uA9HDžhf`faflffVHCH b HHHtCHhHt HH@Hh'HƋGXE1LE11HWPHf:uHzrHRzAuzEtH9rH0H HDrBH^(HIE1L8PUHCHh HHH H`HCHC8HC0CL{0H7NHi HHH HHhHKHHHI]HtCI}(HtHH@E1L8LH^(Hu?HDž8H(HFVII?HtTHTE1H0 H(HH@E1L8HH(H@H8DuH8HH@@E1Hu׺AE1EL8H0 HLh H(ME1L8TIL11i+IDžIDžH HHIMHHxIMHIMHI`H(LhMtAEHx HtHH@E1L8H(Lh MuE1IEH@E1L8LLhH(Mu~E1L80BSIAEHi HHIMH`IEH(L(MtAEHxHtHH@E1L8H(LhMuE1IEH@E1L8LHEIEHH5HULAƻEH(Hx@Hu0H(HX@HHHH5HH;HHEHH@(HuAƻEH}̕HuHtZu'4H}1H}Hu1bH}Hu襘H}HtQH}HtQH}HH@(UHuЅE1H}HtQE1H}IIH}HtQQH}Ht{CQtHp聧H}HpH}HuH}HtQHpBIIH}HtPHpHt PIH}HtPH}RdH}HH@(11AƻEu1H}HtL8HH@E1E1H(gL8H0IE1H}Hu L8HH@E1L8ff fX PHH4Ht HH@HHhHt HH@Hhg(OHCH7F HHH HXHCHC HCHtCHhHt HH@HhWOHHViHt HH@HHhHt HH@HhIHOfbuK@NHH߾Ht HH@HHhHt HH@HhXfrHEE1ADKHHh1WtADAHhtH`LIE1HhHt HH@E1E1Et3H0wIE1HhHHH@E1vIMHL`HDžXI$HH5HXLHXHt1HWHH@(HWAEu1EHXHt HH@E1E1t6H0EIE1HXHHH@E1HDžHI$HH5aHHLHHHtHH@(uAƻEu1EHHHt HH@E1LE1t3H0IE1HHHHH@E1H3H(Hx8tL`0dIE1TLHHI\$0E1HtE1HtHH@E1HII|$8Ht HH@E1LL`0Lh8H8H8I$HtH8HH@E1HHt HH@E1H8H'u)H8H(HxE1H0CAH8H(toHHJRHxE1H0LAE1ELFH(HxE1HGMAE1ELG$4DH8E1H0HAE1ELI<$tYE1H0H(Lx0HX8Ht HH@HЀ'upH(HxBu\DAHH@8E1H0E1tH0AE1H0LtH0HH@E1HHHH@(HLAHH1LAAu AE1)EtA@u HEE1AE1EHt HH@HE4ƅFAHuA H9BAH't.H0IHHH@HHH mHH0tH0HH@H(HxHFHH0AtƅFAuF@HME1H8Ht HH@Hu3H=IH8Hu H0PHH@H0>HH@HHHt HH@HMzILP0lIHt HH@HHHtHH@IMt IH@0LL HGILHGIIHGE1$fUHAWAVAUATSHXMĉADILW)E)E)E)E)EHEADuG(HE1HHI 11AuIIA|HIH}>L>ff.UHH]9fUHGG]fUHGȉGu HHP 1]@UHH]9fUHAVSHHHx9H[A^]=IH=L!>ff.UHH1L}@DD E: HIu~H:HP1]UHGG]fUHGȉGuHP 1]UHH HHHu]H]`UHAVSHH HH{Ht HH@H[A^]=IH =LA=ff.UHAWAVSPIE~ffffff.AAtADIHHtH"8H<IH<I>Ht<L<I>HHu[A^A_][A^A_]l<UHAWAVATSIH I$HP ID$H ID$E$Et?A^fffff.I$LHt9L:I>HHu[A^A_][A^A_]9fffff.UHAWAVATSII~`Ht9EfXEt9A\$fDIFPLHH(KH(HHvHHtJH0IPH(i1D9}H vD}DHM1H @AAwLHsH}*LHAOtރ}tH0HuAAEu&HPAWDDDEH}HtzH}HtlEEIJHH}Ht JHH}Hd3ZHHHL1H HPfffff.w2H91uEEKH}H5-(@L<7fA?#HHHtH}eH}/IH}H5'K<H}yqH}H5'HPu#ƃfHH}He4[H}H5'Yu ƃ/H}H5'<t}tAAWCƃƃƃ)H}H5x'HPuƁƁE1H}HtEEEstH}H5R'JHMȄHHpHdHpLHfAHpHt&AEHPƀEHHpH HH57!I<uLH>AH}H5H<uGLH8AAEtH8uEZH@EHH}H5H<u>LH@AAEH@uEH8H}H5IH<DžlHXH5%$cHXLHlnAHXHt AEHPƁlEiHHXHh H}H5G<uLHAH0HuLAAEEuE1EH}Ht H(HAEHDH[A\A]A^A_]HH}Ht H f.UHH]UHAWAVAUATSPHIH INJ$AC$AGHs C$AGC$AGC$AGCAGC AG CAGCAGHCIGI PHC0IG0HC8IG8HC@IG@EnE;n tM&QDADHEH< IIJLH Ht H EnM&HEAF DMI4$HH11P0u)Ht HHPIHtHPI1[A\A^A_]fff.UHSPHƃfǃǃHHtHPHǃH[]fUHAWAVAUATSHHILmHuHCxHCpHChHC`HCXHCPHCHHHtHǃHǃHC@HCPHCXMI}HEHuHUH}M(HMHK@HMԉKHt IIFt(LIMfI6L[A\A^A_]u[A\A^A_]UHHHuEH]UHHHuEH]UHHHuEH]ÐUHHHuHEH]UHAWAVSPIAF8u)tL}fLLPuH[A^A_]ÉLHIF@H9t߿H52u H1UHAWAVSPHIHt L}LLHuH[A^A_]UHAWAVATSI։IuAFIIA9^ s L9?M&LLAIf.<uAN[A\A^A_]UHAWAVAUATSHhLMLEHxHUAIDbEt>A\$HEHLHEHEHEfEHEHEHEHEHuL}PKHhL=fAWf;jfAfhf9t.ftfB1!fuuu2AG;EucIGH;xuQIGH;pu?AG(;Eu1I HuuHuEAGtI0@AGp1Hh HĈ[A^A_]HHiHHhf.UHAWAVAUATSHHIHn HHEE1LE16DE|7E19s%1Lffff.H9uAƺD)DHLHDDA1҉ffffff.ȍ~D9^Pu⁼PKuA|7B;|+uHT HVH~L HN)HcI$I@HLP0H }m H H;MuH[A\A]A^A_];ffff.UHAWAVATSHHI1CpLHdHCHIFHHCIstHHH@011ЅHuL}PKuaHuLD}HuLpDeHuL[D;{uL9cuMиH9Ku1H[A\A^A_]H@UHAWAVAUATSHHH}Hl HHECqHu*HEMHSHHUHSHUHSHxC@HH HH0cACKffsHECH CHEHKH HCL}LH0MHEfCBMI HCDDEfEHCHuC(HC {dHhLpLc ED9k,s LD4M4$H}LDAAI$fD<uK(LpHhdt'HEH$HSPH}HMLxLM5M@ucEEL9cht8H{`Ht HC`HCh1fEt/LHC`Lch 1fEtHC`H}HD1H ?j H H;MuHĈ[A\A]A^A_]ffffff.UHF HF HGFHG]DUHHFHHF(HGHF0HG]UHAVSH@IHHi HHEHxlHH11P0uWHHu8u>}PKu0HMHԸH9wHEIHEIFHEIF1H 4i H H;Mu H@[A^]ffff.UHAWAVAUATSHxHpHHh HHEHIHHM1P0AELuIbbABA`ALhLHM)L}Mo@IHH@0L1LAEAM9uHEHHHh_AEHHhH)HxDhSDA|s.HEHpPHtLL9tHxM9tMxAEkAD<PtAEPAB<+PuEB<3PKuALyA|PKjA|^MdHxN<0L}A|PKhI|,\IDHpHIDHAIDHAM)HE1HELxHIHtHjLHEHHH@0L11ЅHEHHu8}PKHEHԹH9HEHpHHEHAHEHAHEH@HE1HHtH6f HH;EDHx[A\A]A^A_]HEHHH@011ЅHEHHu8}PKHEHԹH9HEHpHHEHAHEHAHMHAPE1HAH7AD HpHAD HBALHJL+hI)HE1LuI)HELpHfDUHAWAVAUATSHLHH0H@HPIDvfAAt(DHPH HHtHHKHP@LHHHK@H8H@1P0AEPAH@H8H93H,C8LmLXff.HI'LH8HH+@H;0HHuԺIA}PKLHx2HEH@H@HfAE IEIEIEIELHQAEuCHPHHH,HPpHHHH@AEHX,DDHĸ[A\A]A^A_]IHXIHLUHAWAVAUATSHMIIIHHuuuHEI$HUIUMtIHuLPIUHSHI $HLMWu4H{Hu(IUHSPI $HLM,u HCPHCH1H[A\A]A^A_]ffffff.UH(@w f]fDUHAWAVAUATSHIHPIDfff.AAt(DHPH HHtHH;HP@IE@HHH]Lufff.HXfAE<=PKHx/IFIFIfC HCHCHCHHHHHI+EPHELHXHEXt}LHX IƃLeHP@t+EHPHHx(@w fx#A-HXeIHH@0HhHHAEuHPHXLLHuԺEAEAG8L袦IG@HLH@HLLhHX'IFIFIfAE IEIEIEIEHH8Au}HH8@Ht&HpHHH@ЉAu:HHttHA<=PKDEDH8EAALH+HH HDHHu 1ADE1 AGxHHH@HIGpADAΈDHL(IAG<=PKt@1ƅ1HHHHDžDž^AƇHuLH]HuL,nHEHHEHHEHHEHEEH,tHLufLLHuHuLEAG<@ KEtHHH)IOHH@E0䋕ѻH9 H9HH;HƅHH;@tƅHy=PKu|HuLHuLLuH|LMwHM9HHxLxAG<=PKH LH H(0HII HH0HH tGEÉfHHEHfDHuHƉHuʃHDI9t LHHEtHHH)IOHH@Lu2IOHIGPH9t%A|$tH)1ɐI$HHBHA;L$rLE1HHCq$AFqINjA9`HJHCHAL$1/ffff.4I<$L4I~HH9tH9G΍vF9rLH AF(;C(uHs I~ MxIFH;CjIFH;C\fAVf;SMffAf9t*ftfB1!fAF;C fC@fAF@I~PHsPafCBfAFBCDAFDI~`Ht IF`IFhH{hHIF`Hs`MLchHLMfhML@ LHuBH9u!'H9uJ9tAƆII9tDIHtIdžIdžft1HII ftILHƉAF8L詞H3fu1H;HuH;@t Au1H6IH8Hu IH LATfDUHAWAVSPIIHHӃuIG@IG`AG8,uDA~tAƇ1H[A^A_]HHaAG8fUHAWAVATSIII0HHCHA HHHCHtHGMgHIHH@0L11MMt IH@LH{Ht HH@L{LsHC C(H[A\A^A_]IHt HH@HL}UHAWAVAUATSPHIhIffAIFIFH{Ht :IFHsH[HH7I^El$E;l$ tM<$UDADHEH<II$JLHHt HEl$M<$HEAD$ DM4AD$HAL$H[A\A]A^A_]HLHfUHAWAVAUATSPIHxhILLAGtAFtDkD;k tL;PDADHEH<!IL#JLLMt LDkL;HEЉC DM4NjCHKH[A\A]A^A_]HLHff.UHAWAVAUATSPHuIEgEt?A\$ffff.IL4MtI~HtZLXAHEuAGHEDhE9o s$J<0HI?HtIEo E1@AGHAOIHIE9sqHHEHN$fA$fHCHCI|$HtHCIt$Md$HLLcIHLLH[A\A]A^A_]ÐUHB0f? uPO rHHH f)H|80r)G9Gf?uރrD7D7B]DUH0f?UTulDGArbAHDH@u51fffff.0w8As0Ar*9t AH0u0At Ar]ffffff.UHH L]fff.UHSPHHKHCACqHD H{ KuZ0CqtRSA0wGKDAHr2tu-@ t0H[]UHAVSHHSHCAKqHDtE1 u E1tDsD< H{ KuV0CqtNSA0ɃwCCDAHr.tu)%@% =t=0DAD[A^]ËCD fUHAVSIHHCACqt8uCDAxAHKCqHD H{ 6Ju=0Cqt>SA0w3KDAHrt#u0@u 0t A@0[A^]Á 0t鐐UHAWAVSPIHHCHL{LgtOMt ILPH;HtHPL3Ls LH;H@HH@01HH[A^A_]H[A^A_]@UHHwH]fDUHSPHw@H?H11P0ÅuH[]ÿNH5AG H1_ffffff.UHWXҺEЉЃ D‰GTDGP]@UHE1H9GXAFЉЃ D‰GTDGP]fffff.UHH9H9ȺGXEʉȃ EDGTDGP]UHAWAVAUATSPIIAEtCM~Lffff.AEANQAVI AFA;FuLiIHuMfHH[A\A]A^A_]fffff.UHSPHCHKHK@4C;Cu H{HCHH[]f.UHAWAVSPAHCHKHKD<LsC;Cu LCHCHHKDHS,C;CuLHCHH[A^A_]UHAWAVSPAHCHKHKD4L{C;Cu L[CHCHHKDHS,C;Cu L2CHCHHKDHS C;Cu LCHCHHKAHKD4C;CuLHCHH[A^A_]fff.UHAWAVATSIIM|$IAD$HAL$ID4AD$A;D$uLtID$Hu[A\A^A_]fUHAWAVAUATSHHuI~;M}1EԉHL$fA$AEHAMIAEA;Eu LAEIEHHAMIM<AEA;Eu LAEIEHI\$HAMIMAEA;Eu LAEIEHHAMfىIU,AEA;EuLvIEHHIEHMt$EtBI\$EfAMQAUI AEA;EuL+HIuIEHDHIMHEHu;FH[A\A]A^A_]@UHAWAVATSIHAFsNK<-@-@uHC 0L{C;Cu LCHCHANPSHS C;Cu LCHCHfE&HKHKD$C;Cu LTCHCHHKDHS,C;Cu L+CHCHfEfHKHKD$C;Cu LCHCHHKDHS,C;CuLHCHAvH6AvH[A\A^A_]"fUHAWAVAUATSHIII}Iu@IuHH11P0AEt-D8H5A H1=AAEXuAI9FwI9FALPKALL1EuAvLE~ALgLD\A^(AEHAMIMM}AEA;Eu LAEIEHHAMIM<AEA;EuLIEH1EHDIV0HUAV8t(HEH01ff.H>HHD8HuHA;MTt@DeAMQAUIU fAEA;Eu LAEIEHHAMIM<AEA;EuLIEHHIEHLuEv(Mt?HEHX MAMQAUI AEA;EuLHIuIEHLIEH}u2LuILHuLVIIEHH[A\A]A^A_]AEHAMIMAEA;Eu LAEIEHHAMIMAEA;Eu LAEIEHHAMIMAEA;ELuu LAEIEHHAMIMAEA;EuLIEHMf IAEHAMID$AEA;EuLXIEHuMfIAEHAMID$AEA;EuLIEHIf.UHSPHH8Hp@HpHH11P0ÅuH[]ÿH5z= H1UHAWAVAUATSH8IIMfHIVINHMȳH9wI9H9HULPKAF@AMQAUIU M}AEA;Eu L2AELeIEHANAPAUIU AEA;EuLIEHӈ]LLAH9]ȾwAvL9H9]wEfLD$A^(AEHAMIMAEA;Eu L茿AEIEHHAMIM<AEA;EuLbH9EH9E H9EIEH1}uHUAA$LDI^PAVXt!H31H>HHD8HuH]AUrAuIIID$AEA;Eu L设AEIEHHAMfDIU,AEA;Eu L耾AEIEHI^hHAMIMAEA;Eu LRAEIEHHAMfىIU,AEA;Eu L%AEIEHHAMIMAEA;Eu LAEIEHHAMIMAEA;Eu LϽAEIEHfA^BHAMIMAEA;Eu L蠽AEIEHHAMIM<AEA;EuLvIEHAvDLH9EwAvHLLuEv(Mt:HEHX MfAMQAUI AEA;EuL HIuMuH}LuAEHAMIMAEA;E]u LɼAEIEHHAMIMAEA;Eu L螼AEIEHHAMIMAEA;Eu LtAEIEHHAMىIU,AEA;EuLHIEHH9ErII^Affff.HAEHAMIAEA;EuLIEHAuиH9ErEMff.IAEHAMID$AEA;EuL註IEHuиH9ErEMfHf.IAEHAMID$AEA;EuLXIEHuAAEHAMIM AEA;Eu LAEIEHHAMIMAEA;Eu LAEIEHHAMIM AEA;Eu LǺAEIEHHAMIMAEA;EuL蜺IEHL1AEHAMIMAEA;Eu LiAEIEHHAMIMAEA;Eu L>AEIEHHAMIMAEA;Eu LAEIEHHAMIMAEA;EuLIEHAvtLHAvxL HHC@HC8Lk8H{PޞI\$Ht HHPI|$HtHPI\$AI|$LH[A\A]A^A_]IH{@Ht HH@I}Ht HH@H2Lfff.UHHHHHH]UHSPHHCHu@tGHCHH[]UHAWAVSPIHHC0HC Mt ILPLs H{HtHPL{IL1LP0uRH{HHK(1P0u9H{Hs H1LP0u"HC HC0HC(HC8HCHHC@1H[A^A_]UHAWAVATSIIM|$0DIL$H1HIt$@I9t$0tI|$H1LP0unIt$@IL$HH?@H)H9HCL9ICIt$I|$HWu1ID$0HID$0I9D$8sID$8I\$@I)\$HI)Md1[A\A^A_]fUHHwH]"fUHAVSH1H[A^]IHL8fUH]fDUHAVSHH HHsHHs(H;s8t H{HH@8Hs H;s0tH{HH@011H{HEH{Ht HH@[A^]IH{HtHH@IL蕲Hf.UHAWAVAUATSHHuIHtHM1AM} IuHHuLH`Ht HXHLhH}HH@(HHHH'LhHDžHvMLHtHHӦHN@@FхҸEƒHV HD"E0Ir AEuOHH \u A H jIA t!EHA0D"IH x6HHfxu"@x@@NH蛓x4HHfxu HC= F+H臓 ~ i@ `yH1I1HHH BH D1AuHHH1L9AG0ɃHrDAA)HѨIL蠧Mt IH@LLHuH@H[%E1HDžW)0HDž fDAHD;`HIF0HIF8LΨÅDHH HHHH@H@HHf@ H@H@H@HHHaHXH@H@HHxf@ H@H@H@HƅCt CHH L,HL4AEt,HH3tAAA@tIL\IIII~H(H迢CtCCuMHDž s H}HH@HH ЅAtqAH( <uHHHH(HSPH13HH(HTZHCIF(H}HH@P1ЅDEDl@H uAAW-HHHH(:HS0Pt$H~HDžHHHH H@LL|"At)AIHHHH@0t$HH(yHH(VHH}HH@P1AtA-HH8HHH0HE1HHt HH@H Ht HH@EIH HHH@HDžAF@HH$HHHHL(M$AtA+AF@HIF(H0H(<IF(E1H(HԞAADSIH(貞H覞H0_LΣÅu1HH0H`H0H@H@HHPf@ H@H@H@HHAGHH@H@HHf@ H@H@H@HƅAD$tA$uqAD$HH HHH译CttHH话tA@IHpHdA$AD$DAD$L9}WHHLHp IT$0HA0tA$HO4AF8SHDžhHHhjHHhHLtHHLHp I~ 0C0tC$SHp HHpHLHtHhHHH@Hp訽<HHLHpsIT$H1HHpGH3IHhHHH@HL`IH@)usHDž`HH`HH`َHC)H{P衔CYH[PH{@ZH莔H`Ht HH@ЋH1ҹxAHBM4IHtHH@IdžLAƆApA{HJA^ff.IEL$MtI|$HtȉLƉAHEuLmAG8I_PEgXEt5Et$HN,MtI}HtzLxAIEuAGXE<HEfDpfAGcAGHEHE.H}HEHEfE@@ADHu@EUPDphpHuHdH}HtʈH8[A\A]A^A_]HH}Ht誈Hfffff.UHAWAVAUATSH(MHIILuC5LM@AE|IGHHBHJtHHBHMHEI} Hs I}PAE%CfEfAECAEHC0IEtHC8IE|HC@IC$A较Mu0L貃1IL$HIMHEE8IUIMAu(ff.H0D9s'I>Hf;uH{rH{Au׳EuDLôLLIHULHMHMudHEHYBtHBIwHHrH HuHHHUHMID$HIEHILL*uHuI6Lg1H([A\A]A^A_]fDUHAWAVAUATSHIIIII4$IHM1P0ÅuUI\$HEHuLHuLHLB;H}HtHPuIILLLP(ÉH[A\A]A^A_]HH}Ht HH@HPDUHG1]ÐUHH1L@DD E: HIu~H:HP1]UHGG]fUHGȉGuHP 1]UH]~fDUHAVSHiH[A^]_IHTL舅fUHH1Ll@DD E: HIu~H:HP1]UHGG]fUHGȉGuHP 1]UHHZ HHHu]H]`UHAVSHHZ HH{Ht HH@H[A^]鈄IH}L豄ff.UHH1L@DD E: HIu~H:HP1]UHGG]fUHGȉGuHP 1]UHAVSHH_Y HH{PiH{@Ht HH@H{8Ht HH@[A^]IH{@HtHH@IL΃IH{8Ht HH@L豃dfDUHAWAVATSIH||AFCAFCAF$CAF$CAFCH{ E~(D;{,v2Lc Ht ID$I$LHI<$D{,LD{(Iv AF0$C0H{8Iv8IFHHCHAFP$CPH[A\A^A_]UHAVSIHA ulx(H Hfxu@xABH߾ QH]DA\H<艀IM&JLL脁Mt LWEnM>A^ H]DIAFHANH[A\A]A^A_]IH"LVUHAWAVSPIHfAffAFfCfAFfCIFH{ Iv HCIFHCAFCAFCH{0Iv0E{H{PIvPfAF@fC@fAFBfCBAFDCDIFHHCH{H{`Ht wHC`HChI~hHt eHC`Iv`M~hHLbL{hAFp$CpAFq$CqHH[A^A_]f.UHAVSHIHt HHPIHtHPIHt HHPIHtHPI[A^]UHAWAVAUATSPHI~ILHyHCtIFtHC|IF|HI$AEl$E;l$ tM<$UDADHEH<9~II$JLH3Ht H~El$M<$HEAD$ DM4AD$HAL$H[A\A]A^A_]HL}H~f.UHAWAVAUATSPIIHt HH@IhHt HH@I`Ht HH@I8Ht\}I HtN}EwEt:A^ffff.IL$AMtI|$[L}HEuI?HH[A\A]A^A_]IIhHtHH@III`Ht HH@I8Ht|I Ht|EgEt.A\$IL,AMtI}ZLz|HEuI?Ht_|L|L|[A\A]A^A_]C|ffffff.UHAWAVSPIE~ffffff.AAtADIHHtHbwH{IH{I>Ht{L |I>HHu[A^A_][A^A_]{UHAVSHH{8#}H{Ht{H{Htu{H;HuB[A^]IH{HtW{H{HtI{H;Ht HH@Lr{%{H[A^]`ffff.UHAVSHYH{|H[A^]WIH{v|IHWL{zfDUHAWAVAUATSPIE1fff.A_A9s{DI7IOHHtyLyI̅uIHHu [A\A]A^A_][A\A]A^A_]yfffff.UHAWAVSPIAƇIHt)C`@H{8!{CALs8I~@zL{At I`L^_LH[A^A_]|_fff.UHAWAVSPIE~ffffff.AAtADIHHtHtHxIHxI>HtxL yI>HHu[A^A_][A^A_]xUHAWAVAUATSPIE~DxyEADff.IEoJf;uAAEyEHtH{HtAxH?xAVIDJHtHPIA uzHt HHPI<$HtHPI$xHAG$t!Ht HHPI>HtHPIKA u#Ht HHPI<$HtHPI$!Ht HHPI}HtHPI]E<ufI>t`fHHZ Ht HHPI<$HtHPI$M6Mt ILPHHtHPL1H[A\A]A^A_]IHeLeff.UHSPHHHEDHuHAH}HtHP1H[]HH}Ht HH@Hgeefff.UHSPHEHUvH}Ht HH@1H[]HH}HtHH@HHdd@UHSHHEHEDHUHME13H}Ht HH@H}HtHP1H[]HH}HtHH@HH}Ht HH@HkddUHAWAVATSII1H p 9s@HHH9{uIMt I$LPI?HtHPM'HsLܻ1[A\A^A_]ÐUHAWAVAUATSHIH HHEH}ҸL.L/AHp觸H`蛸D9~S~OI7HpaIH4H`<6HHH`HubkHpL脻x9|uHpxLXHp_xA@L}Leff.D9tSE,ADLɓLHpLLoLH`H})EDAEEHu}HpHXH觺HuHH`H謻H;(H`HtaHpHtaH}HtaH+ HH;EuAHĈ[A\A]A^A_]HHpHt{aH}HtmaHaaUHAVSHH7 HHE8 HCH{x*H[A^]&aIHaLOafUHH7 HH7 HGH]-*ffff.UHAVSH7 HGH7 HH_H)H[A^]`IH`L`UHH57 HH{7 HGH])ffff.UHH7 HGHJ7 HH]})ffff.UHSPHHHM/HtM 1Ʉ@EH[]ffff.UHAWAVATSIIMtAA1LLmaHHy _8tM@HDt uA1[A\A^A_]fDUHSPH˸w%HHM-HtHMH 1Ʉ@EH[]ÐUHH,1Ʉ@E]DUHH,1Ʉ@E]DUHHGHP1Ʉ@E]UHAVSHIHH{HM1MHPMtA1Ʉ@EH[A^]ff.UHSPH˸w%HHM,HtHMH 1Ʉ@EH[]ÐUHAVSHIHHHMH1X,@t2HL1@tHuHUH,1Ʉ@EH[A^]fUHAWAVATSIIMtAAԿLL_HHy ]8tM@HDt uA1[A\A^A_]ÐUHHE1LLp A: H@tE1L@AOBC:MRtL@fffff.B C: MIuA~HGHHP1]H:fDUHGG]fUHGȉGuHP 1]UHHHE1LL@p A: H@tE1LԜ@AOBC:MRtL՜@fffff.B C: MIuA~HGHHP1]H:fDUHGG]fUHGȉGu HHP 1]@UHH1L@DD E: HIu~H:HP1]UHGG]fUHGȉGuHP 1]UH]f.UH]@[fDUHHE1L[L/A:HItL@B C: MIuA~H:HP1]ffffff.UHGG]fUHGȉGuHP 1]UHH2 HH]#UHAVSHH2 HH{#H[A^]QZIHFZLzZ@UHH1L\@DD E: HIu~H:HP1]UHGG]fUHGȉGuHP 1]UH]f.UH]YUH]fDUHAWAVATSHC`H2 HHJ3 HCH3 HCH3 HCH3 HC LL{pL5 L d5 H5 H54 H=4 H@4 H 3 HK(HC0H{8Hs@HSHLKPLCXHCxHCpHǃHǃHǃHǃHǃHǃHǃ&HChHu!XH5 H1X[A\A^A_]IHHt HH@HHt HH@HHt HH@HHt HH@HHt HH@HHt HH@I<$Ht HH@H{xHt HH@I?Ht HH@LWWUHAVSHH[A^]WIHtWLWfUH]fDUHAVSHHHH[A^]8WIH-WLaWff.UHAVSHHHjH[A^]VIHVL!Wff.UHAVSHHH*H[A^]VIHVLVff.UHAVSHHHH[A^]xVIHmVLVff.UHAVSHHHH[A^]8VIH-VLaVff.UHAVSHHHjH[A^]UIHUL!Vff.UHAVSHHH*H[A^]UIHULUff.UHAVSHHHH[A^]xUIHmULUff.UHAVSHHøHH[A^]8UIH-ULaUff.UHAVSHHðHjH[A^]TIHTL!Uff.UHAVSHHèH*H[A^]TIHTLTff.UHAVSHH- HHU. HCH. HCH. HCH/ HC H9/ HC(L0 H o0 H(0 H5/ H=/ HK/ HC0H{8Hs@HSHHKPLCXH{hHHt HH@HHt HH@HHt HH@HHt HH@HHt HH@HHt HH@HHt HH@H{xHt HH@H{pHt HH@[A^]IHHtHH@IHHtHH@IHHtHH@IHHtHH@IHHtHH@IHHtHH@IHHtHH@IH{xHtHH@ILRIH{pHt HH@LRBR@UHH]fUHH]fUHH]fUHH]rfUHH]bfUHH]RfUHH]BfUHH]2fUHHǸ]"fUHHǰ]fUHHǨ]fUHAVSHtHH+H9vHChAHHL1eu L1[A^]ffffff.UHAWAVAUATSH8LMMHUHuIILJAƇIHP(IHEMAuIHME1IIff.ADtHEHHEH+DH9DvIwhH}HFdhHEHH}tH}HHMHHP(>E1E9s9DDH1ffffff.IwhH<:H‰uE)EAtHEH1HUH; D)HEDIwhHHUH}aDeIwhIHDP0AE9wEE6Dfff.IOhHA9uIwhIHDP0AE1EtCAtHEHHMH+DH9vAIwhDH}Hbu HEH1H8[A\A]A^A_]UHAVSIHǃMt ILPH{xHtHPLsxHǃƃHH[A^]`(DUHAVSIHChMt ILPH{`HtHPLs`HǃCtHH[A^]`(ff.UHSPHH{xHtHPHCx1H[]UHSPHH{`HtHPHC`1H[]UHAWAVAUATSHIHtHMfDIxAtII+H9vIwhAL1H[A\A]A^A_]ÐUHH]rfUHHHH@(]ff.UHHpHH@(]fffff.UHHHH@(]ff.UHHpHH@(]fffff.UHHHH@0]ff.UHHpHH@0]fffff.UHHHH@(]ff.UHHpHH@(]fffff.UHHHH@(]ff.UHHpHH@(]fffff.UHHH]`(fffff.UHHpH]`(UHHHH@(]ff.UHHpHH@(]UHAWAVSPIII1H Hffff.:HRt1Hf:H@t1Hfy: HIt1H…fb:H@t1H҇fK: HIt1Hf4:H@t1Hf: HIt1Hf:H@t1H‡f: HIt1H†f6:H@t1H†fN: HIt1Hrf_:H@tHt@ffffff.`: HItM>yH.DM>iIG]IGTIGKIG BIG(9Iu%IIHHH5̆ЅIG0Iu%IIHHH5tЅIG8Iu%IIHHH5\ЅIG@Iu!IIHHH5DЅutIGH`Iu!IIHHH5ЅuCIGP/Iu!IIHHH5҄ЅuIGXIILP1H[A^A_]ffffff.UHG`G`]fUHG`ȉG`uHP 1]UHH]d>fUHGXGX]fUHGXȉGXu HHP 1]@UHH]$>fUHGPGP]fUHGPȉGPu HHP 1]@UHH]=fUHGHGH]fUHGHȉGHu HHP 1]@UHH]=fUHG@G@]fUHG@ȉG@u HHP 1]@UHH]d=fUHG8G8]fUHG8ȉG8u HHP 1]@UHH]$=fUHG0G0]fUHG0ȉG0u HHP 1]@UHH]<fUHG(G(]fUHG(ȉG(u HHP 1]@UHH]<fUHG G ]fUHG ȉG u HHP 1]@UHHǸ]d<fUHGG]fUHGȉGu HǸHP 1]@UHHǰ]$<fUHGG]fUHGȉGu HǰHP 1]@UHHǨ];fUHGG]fUHGȉGu HǨHP 1]@UH]f.UH]p?fDUH]f.UH]P?fDUH]f.UH]0?fDUH]f.UH]?fDUH]f.UH]>fDUH]f.UH]>fDUHG4G0HG(HG HGHGHGH]UHG4G0HG(HG HGHGHGH]UHAVSIHHEI~HtI9^(t#IFI^(HIFH[A^]H>H >UHSPHH{HCH[]H=UHHG HGHHGG0G4]fff.UHAVSHH0C0uIHsHC HH)HC H3HsHMS(H{HP(AEu EH HHKHC0H[A^]ÿ*=D0H5$ H1:=f.UHAVSIH^u C40HHHH A[A^]ff.UHSPH"uC4 HHHH H[]ÐUHAWAVATSIHIIIOH)L9s?E1IHHIB#IM9s@II;GrL<tM&MtLfDHHHuILIL[A\A^A_]fff.UHAWAVSPHIE1ffff.IIOH)H9s&HIH)ILuLH[A^A_]HIIUH]fDUHAVSHH{誐HCs HHCC H{(~H HHCHǃX[A^]IH1H{Ht;LA;H{Ht::UHSPHHXu:HXH[]DUH]fDUHAVSHHXHt:H{HH{Ht"[A^]f:IH{HtU:L:[A^]IHYH{Ht-:":@UHLJ`ƇdHLJhLJp]@UHAWAVATSHIItwAdtMf&MfH5ULL0tIAƆdHMLLl 0t(ApUL·ApEIh9H[A\A^A_]ffffff.UHAWAVATSIIA`H=wQ)9CAIXHLL:ApLL8ApE`D)MhMLL[A\A^A_]UHAWAVAUATSHHIIIGIPA@A`Hu E11H[A\A]A^A_]ÐUH]FfDUHAVSH1H[A^]5IH5L6UHAVSHIΉHEHSH+S H9HC1ɅҸt H{HHMP(MHK HuC(1MtAH[A^]fUHAWAVSPIIHUMtAHsHK(1H9s_H)H9sMHs0H;s uHCHs H{H11P0u*HCUH8HHMLP(MMtAHK HKH[A^A_]DUHttu$HwHw(1HxHw1HtH11]UHAWAVAUATSPIIIII8[4HCH HHCHtHZ0Mt I$H@LH{Ht HH@LcL{0L{ HCLk(I$H@0LL11AEu6HH@0E1H111I*IHt HH@HL3Ht HHPDH[A\A]A^A_]g3fUHAWAVAUATSH(HuIUHtHMI|$1I;|$8A\$ AD$@IIDIT$HDDHKH[A\A^A_]fDUHttu$HwHw(1HxHw1HtH11]UHAVSHIHH{ HHMP(MMtAHSHHSH9SsHSH[A^]UHttu:HwHw1Hx&HwHtH1HwHw(H HH@011]]ffff.UHHwHw(H HH@8]UHHE1LlL_ A: H@tE1Ll@A>BC:MRtLl@fffff.B C: MIuA~H:HP1]ffffff.UHGG]fUHGȉGuHP 1]UHH HHHu]H]`UHAVSHH_ HH{Ht HH@H[A^]+IH+L+ff.UHHE1LkL_ A: H@tE1Lk@A>BC:MRtLk@fffff.B C: MIuA~H:HP1]ffffff.UHGG]fUHGȉGuHP 1]UHSPHH HH{HHt*H{(HuH[]HH[]`UHAVSHH HH{HHtB*H{(Ht HH@H[A^]**IH*LS*ffff.UHHE1L+jL_ A: H@tE1L$j@A>BC:MRtL%j@fffff.B C: MIuA~H:HP1]ffffff.UHGG]fUHGȉGuHP 1]UHSPHH HH{0Ht)H{(HuH[]HH[]`UHAVSHH HH{0Ht(H{(Ht HH@H[A^](IH(L(ffff.UHHE1LhL_ A: H@tE1Lh@A>BC:MRtLh@fffff.B C: MIuA~H:HP1]ffffff.UHGG]fUHGȉGuHP 1]UHH HHHu]H]`UHAVSHHo HH{Ht HH@H[A^]x'IHm'L'ff.UHHE1L{gL_ A: H@tE1Ltg@A>BC:MRtLug@fffff.B C: MIuA~H:HP1]ffffff.UHGG]fUHGȉGuHP 1]UHSPHH HH{PHtc&H{HuH[]HH[]`UHAVSHH HH{PHt"&H{Ht HH@H[A^] &IH%L3&ffff.UHHE1L fL_ A: H@tE1Lf@A>BC:MRtLf@fffff.B C: MIuA~H:HP1]ffffff.UHGG]fUHGȉGuHP 1]UHH HH Hu]H]`UHAVSHH HH{ Ht HH@H[A^]$IH$L$ff.UHAWAVAUATSPLEAIIHLkL&H;HH@0L11AEuH;HH@(LDHMAL%DH[A\A]A^A_]HL%H[$$UHAVSHIΉHHEH{HsLEHʉ=MHKMtAH[A^]ÐUHAVSHII>kIIFIv0HrbHt]HHH1H0H9uGI0Ht8Hr"HINfHHINHHuHIIF[A^]UHSPHH;ϵHHCH[]fUHHGHu1]HHO]fDUHHt HGHHw]f.UHAWAVATSIIIHWM9H;CHHCHsHMHIH1HL9urڴHHt`Ir)INHSffffff.HHHSHHuHHHCHC`E)E~L{`DshDsl1ɉ[A\A^A_]fUHAWAVATSIHIIWI9w;ffff.L)HLLLHL1t L9u[A\A^A_]ff.UHSPHHC`H;HHCH[]ÐUHAWAVSPIMwL"I_Hu1HIGL"HH[A^A_]ffff.UHAWAVATSAIHMt^LcLM"HCIL{L@"Au9H{`+"Ch;Cl~H{`[A\A^A_]"ChH[`H{@!H[A\A^A_]UHAVSIHCt,fff.H H4LJCȉCuHC[A^]UHAVSIHCt,fff.H H4LCȉCuHCH;HtHCH[A^]UHAWAVAUATSHHUIIMl$DHEE1>@@E;t$s5DI $H4L;mLIBʼnH}H3u I)AMu1H[A\A]A^A_]UHAVSHAHJ4CH׉HJ[A^]ff.UHAWAVSPIIA_t8IH4AWLIHA_A_uIGH[A^A_]ffff.UHAWAVSPII1AFtRA^tC~CI`A_hA;_l~I` A_hI_`H{@pHAF1H[A^A_]f.UHAWAVAUATSH8ILuIILeA]t8fDIEH4AULIEHA]A]uIEAD$$AEID$A|$INHM1E1ffff.EI $J4H9H]EeE;e tI][HuDADHEH<HMuJHLMt LEeI]HEAE HuDH4AELuLeH]AT$LI$JI$JH]ID$AE;|$$IEA\$t<I$H4AT$LeI$HA\$A\$uID$H8[A\A]A^A_]ÐUHAVSIH{t&H;H5s8tH;H5{W<uA.H;H5O8tH;H5RW0tA[A^]fff.UHAVSHI tWAHwH}q}t(H}H57ftH}H5ī4W<uA1H}H578tH}H5WWtA1H}Ht+$HH}HtHfA1ۉH[A^]UHAVSHIHHuHAHEH)HH[A^]fff.UHAWAVSPIIfftWfuIWAu=FA31At,IHuH葍HUH)HWA;WuA1H[A^A_]fUHAWAVATSHIAIA|$u3fuFA[HEHHuJEAEA6Wfu.I$HuHHUH)HWA;T$uA1H[A\A^A_]DUHAVSH HfEfEHEEuLuLHuHLUH [A^]HLAHfUHSPHC;Cs&H {HH{HCH[]ÿH5 H1UHAWAVAUATSHHHUHuIAGHDAJ<6HELHH{"L0HHHMEt.HMHff.ffAHAHH9uLhHEE1fE;gs`E9r%H5& H1LuIJ4HMBHLIIIIHEHtuEfEfEHEEH0H]HE9r!0H5 H1=EHMBLH7HOAH}HH@(HuHUDLuAH}HtH}t0IHt Hfff.I|HuL|DHH[A\A]A^A_]HILuH}HtMH}t*IHtHfDI|HuLLVUHOfxHH90u]fDUHOfx1HHƒ:ux fzuJ F]@UHAWAVAUATSHHIIH}E1Hs AWDA&H3I<$jQHAƄtAWAEfEfEHEDuADI?HuIHUH)HAWAwzAW99uAWrhҋJ rCAWf btICgt ktm+ )ѾAW9H}MfEfEHEAt%A uEI7H}wHH}^HuL<uH}@At9M'HuL=HML)HA;Ou H} I7H}#sH}HUrAH}AWAu!E1HuH}v H}AWH}DHH[A\A]A^A_]HH}HPf.UHSPHHff9t2f u%HuHZ0u%uH0fu HHH[]fDUHAWAVAUATSHhIHxW)EEH}gEl$E1Lu!HMD<EHD9}jI$D:EIL eE1xHA9_vA_IOIH4H]HbLHAH}Ht5 DH[A\A^A_]HH}Ht HN UHAWAVSHIHI{t0H;H5GuLHLCÉH[A^A_]ûWfA?uIwH]HaLHH}Ht HH}Htn H UHAWAVSPIHIMwHt HHPIHtHPI_HH@0HL11H[A^A_]ff.UHHHH@(]fffff.UHAVSHIHu1Hx"HsH{HHMP0Mt HMH+KIH[A^]fDUHHwHHH@8]UHAVSIEI>HtA9^t IA^՜IH[A^]HG H? UHSPHH;远HH[]H fUHGGG GHG G0]f.UHOHG HȋWH)9vOH]UHAWAVSPHDsCD9rDsA)H{(HtH3HELz L{(H{1Ht!EsH3HH@(HMDDuKDKS9u C1ɋs9u C0C19GщS DHK H[A^A_]HUHSPHK1;Kt HtH[]UHAVSIfDAFA;Ft+LÅtH5| H1[A^]ÐUHSPHHsH{hjƃH[]fff.UHSPHH{P CYH{P H{hC)C(HsƃHC CH[]ffffff.UHAVSHHSLshLHsLƃ[A^]fffff.UHAVSHHCHHpLshLuHsL{1[A^]@UHAWAVAUATSHhAHH| HHEC(tHHDP(2HxHtHMHCHHEHC0HEDH{HEDcpD;cttNL{hHEHEHEHEHCHXHEHu1ҹt2DEtJ<cILkhJLL]Mt L0DcpL{hDstDHMI NjCpHKpHKhH<@D"D}EC;Cp'HshHSHK HLL10HCH2 HHC(HtHHIMIEHKHC HCMt IEH@LH{(Ht HH@Lk(HEHMuGH[A\A]A^A_]IIHt HH@HMt IEH@LLEIELH[A\A]A^A_]`ffffff.UHSPHH{HCHH[]UHAVSIIH9sJHAr HHHHGHH9HFI~HqH0Ht INI[A^]ffff.UHAVSIIV 1Hr_IFH9rIFJHAr HHHHGHH9HFI~H1HtIFI^IV HHH[A^]@UHAWAVSPHHH;LpLx L9{t2Ht HHC1MtLHH;L{LLH[A^A_]UHAWAVAUATSPIAHuHMtA1EEH{ HLHCH9rHKQHAr IIHALGII9LFH{LHHt2HKLcH{ HtHuLLk 1MtE71H[A\A]A^A_]ÐUHAWAVATSIΉIM|$I|$ I)I9LGI|$LM|$ MtE>1Mu 1Ʌ۸@D[A\A^A_]ÐUHAVSHIHH{HHMP(MHKMtAH[A^]fUHSPHH{莅HCH{譅HCH[]HfDUHAWAVATSA։IA 0?wsAIIHtM;g tUL-HIO0Ht@Mg IHtE9w,t'DHDŽHIO0Ht Ew,A_([A\A^A_]HVfffff.UHHw0HG8O,H1HWHHH9r]f.UHAWAVAUATSHHuIHtHM1#IM0Iu81H9H)H9Gfff.IEJAE(Iu8HUЈHHCH!H)ÉH9HCALILuLLLXHEHtHEIu8LIu8HUD)MLu1tzAE(HHAM,AIII!߈MIIMMeJ9]HUкHHHIEIM0H)H9HFK4LHP8HUЅ H[A\A]A^A_]ffff.UHttu$Hw8Hw01HxHw81HtH11]ÐUHHE1L[0L_ A: H@tE1LT0@A>BC:MRtLU0@fffff.B C: MIuA~H:HP1]ffffff.UHGG]fUHGȉGuHP 1]UHSPHH HH{ԁHCH{HCH[]HDfff.UHSPHHP HH{脁HCH{裁HH[]Hffff.UHH1L.@DD E: HIu~H:HP1]UHGG]fUHGȉGuHP 1]UHHb HHHHu]]1ffff.UHSPHHb HHH{HtHH[]UHAWAVAUATSPIIIIILeff.1Ht8H9úBIH@(LLLЋMIu IH)1uH[A\A]A^A_]Hf.UHAWAVAUATSHHUHIE1LeIff.Mt7I9ƺABIH@(LHLЅuEIHI)ƅuL;mH[A\A]A^A_]HUHAWAVAUATSHHUHIE1LeIff.Mt7I9ƺABIH@(LHLЅuEIHI)ƅu1L;mȸ@DH[A\A]A^A_]HWffffff.UHAWAVAUATSPHIIALeffffff.1Ht3L9BIH@(LLLЅuMIH)˸@uH[A\A]A^A_]HUHAWAVAUATSHHUHuIEt$ID$HEE1 AEEEE9tNG4/AI$IL$BHHHH9wrH0H}>ANEHDIEHUA\$H}DI։GL9LII<$I9T$tBIHt I$ID$1LHtHILHI<$IT$HuH[A\A]A^A_]fDUHO1t"H11fff.HLu Lu"LLƃ1t H[A^A_]HH5HH[A^A_]@UHAWAVSPHLsLgu/LHHLL8t1H[A^A_]fUHƇH]ff.UHSPHƃ{t H{quH[]HHHH[]UH1E1LpY 1fffff.I΍< I׍<MJIύ ׁI ?ʁIэ ρI ?ʁIэ<IAC M`]ÐUHE11LX 1fffff.I֍<Iύ< MJI׍ ρI?сIʍ ׁI?сIʍ< IACM`]ÐUHSPHHHu 6xHHH[]DUHSPHH;xHH[]ÐUHAWAVATSIAXA\)PAXAAwLM`II;hrL艨AX HHI A\AXwAA[A\A^A_]ff.UHAWAVATSI)AT$A\$ At$)AAAArHM|$II;D$rLۧAt$ HHI A\$ At$wD[A\A^A_]UHAWAVATSIAT$A\$ )AT$AArKM|$f.II;D$rLKAT$ HHI A\$ AT$wAAD[A\A^A_]UHAWAVAUATSHxH`lHY HHEHnAuHxLHxW_ )‰WAALrGLwIH;GrILyLA HHI É_ AwAAH`D`W_ )уWAAr?LwIH;GrIL LA HHI É_ AwAH`D`D;lW))))p)`)P)@)0) )))))))LoWO 1DžHȹ)AAArQfffff.AIEH;GrHLHA HHIMD O AwAAHDtHmE1f.DHc|RAẢrBfAIEH;GrHLGHA HHIMA Dg Aw+t+ 8LHH ͰƉDIA8tȹ)AAAArIfAIEH;GrHLwHA HHIMA Dg AwAADAND)уAAArEfAIEH;GrHLHA HHIMD O AwA AErARFD^@1ffffff.H;|HDžWO E1DAĸD;DRAArNfffff.AIEH;GrHLHA HHIMA Dw Aw+bIc̊ fD HɅ눅HDHHH;1Hpff.wW )wAăs 1HI@AIEH;GrHLHA7 HHIMD ‰W A71ɃwDAԉH HH;=@HHIMA Dg AAEAD)HЍPAADrIfAIEH;GrHLHA HHIMA Dg AwD))AEA=f.AIEH;GHL蓟HAHH=)HHcHYHipHFHnH߈HpHHp;HHxIIEHHDžE1EDE1$ADAAƸD9nu9D;XECD%HHiIFHAĻ2A}D!HHxsEDuE=HHxDiK>A;$qrM$0pMtJMwIGHt5HiبHXfffff.I<HXHXuL3IDŽ$0p[A\A^A_]IHt/Hèff.IgHXHuLLfffff.UHAWAVATSIA@puI@p<Å=AquIqÅI0ptA8p1A;qMqL3EqIAqE8pIiܨH{)L HEtBHHHAA(ǁǁ(HH9uI0pHteE1DA1E;'sQI0pDHiLtAqtH>ÅtEqLYH[A\A^A_]f.UHSPH{(u H{(Xu2uH?u(uH(&tH[]H{H5HH[]RfUH0?u'0ru0Eu08u0Pu]fff.UH0?1u'0Au0Yu0&u0SuY]fff.UHAWAVAUATSH(HuIHH HHEAƇqM`AXA\E1@)PAXAAwJ@I$I;hrLAX HHI $ A\AXwAFt-IA uAH} )9EM E M MƸtn1}A}Y}&}S}YuzAƇqA$p3A$p1\}ruV}EuK}8u@}Pu5}ːu*AƇqAƇq1A;$pt AƇqH F H H;MuH([A\A]A^A_]f.UHAWAVAUATSHHII(pPE1M0pDHiبI<u#M$6cHI $H|AqtH2pHHvDžpHCTE1E1AL1tDA0ADDH\pDTDXA - 9s&S)HHH@谹ALLvAjf.HB(Ht QHDIŰAuH - H H;MuH[A\A]A^A_]Xf.UHAWAVAUATSPIAA_)AAAAD;g$A F;$MvsH}ADAr8KD>K<>T8K>A;$prM$MtDMwIGHt/HiؘHhpI<١HhpHhpuL3IDŽ$[A\A^A_]IHt/HØff.I腡HhpHuLߤL̤fffff.UHAWAVAUATSPIAuI9ÅAuIÅsItAG1A;pVL*EpIAtEwIiޘH{3L0HEtJHHHHAǁǁǁǁHH9uIHE1A1E;pMDLiO5AttK5融ÅuIK5苍Åu6K5xÅu#KT5K5H5N詈ÅoEpLH(/H[A\A]A^A_]ff.UHtoLG EPD9EDBAxDAE)Dɉ AxDDD)AHE9uEAJAIHB<A@)D9ADu]UHLG EXAfffff.E9DABAPEA)Dщ APDD)AHA9uEAKAIHBA@)A9AEu]fUHLG AxDAf.A9ABApEA)DD ApD)AH9uAyA8Ix@4A@A)A9‰Eu]fff.UHAVSAALO EqA@E9DABAYEA)DD AYDD)AIA9uE1ANA IIB1AAA)A9AEuLG EpDAfE9DABAXEA)DD AXDD)AHA9uE0ANAIHB1A@A)A9AEuLG EXAfDE9EEBAPDEE)Dщ APDDD)AHE9uEAKAIHBA@)E9AEuLG AxDAA9ABApEA)DD ApD)AH9uAyA8Ix@4A@A)A9‰Eu[A^]fUHAWAVAUATSPAAIM``A\AhrAhA)DD I $DAhA;luL&A)ADžXAƅ\Et-AXA9sD)AXAA\ A\H[A\A]A^A_]ffffff.UHAWAVAUATSPAIM`Amffff.A\AhrAhA)DD I $DAhA;luLFA)ADžXAƅ\Et-AXA9sD)AXAA\ A\H[A\A]A^A_]ffffff.UHAWAVAUATSPIM`DAkfff.A\AhrAhA)DD IDAhA;luLgA)ADžXAƅ\Et-AXA9sD)AXAA\ A\H[A\A]A^A_]UHAWAVAUATSPuIM`1Eԍ)EDAmfffff.A\AhrAhA)DD IDAhA;luLwA)AdžXAƆ\Et-AXA9sD)AXAA\ A\E1H[A\A]A^A_]fUHAWAVAUATSHAHHH HHELG IApE1AfA9ABAxD)ˆD Ax)AH9uAqA0Ip@<A@A)A9‰AuLH{HD:AHCF4LK IAAqffffff.A9ABAyD)ˆD Ay)AI9uA qA1Iq@<AAA)A9‰AuW)E)E)E)E)E)p)`)P)@)0) ))))))Eu1!DHƄH1u1f.t"HHHƄ Hc҈HE1=uHDE1fDMW AZF AADA9މABArD)ˆD Ar)AJ9uA YAIZ@4 ABA)A9ƉAuIAt@LHH%MO AyFAAf.A9ABAYD)ˆD AY)AI9uA yA9IyAAA)A9ÉAuIARLHL{LHHIľRH@HCHE11EHHtHJu)A`DEADC /HL AAEuL=rAHA AIE1H;fL EADB*HL AAEuLDAHH @< AD<ǃHHc11H=uHHL@ AEHD)ɍ4AA_ S1HiQH4HH$HxH&IHXAD)҉T)Pd`A@ODžl f.ƒ1 LtGtdATAHHF HOHDlDLډpLF EHCpXstDAtD`DBDAfE9DABAxD)ˆD AxD)AHA9uAYAIX@< A@A)A9AAuDhHL@ ApAHxAA9ABAxD)ˆD Ax)AH9uAqA0Ip@<A@A)A9AuDMcMiLXE1Dtffffff.D1AD޺tIc1H9rFD9E7E9tAtLDAD)u L Hc+I1L@9D9ˈHD9|A)IEAENAD$HiHAHNH1DHHDpAE1E1L@L1LHffff.D4AtA AHƒ1E9rEAE1L1LIHiLË\(H9|LD9s B6AHD9|IC61HiLNj4H9|A1E9Lfff.E1L9uH;|HiI4IdHiIT(MAQ8MIHED9|19fHD9|D1ɊHLHMl$ A6EeMu18ȸM}MMA@HAfffff.E9DABD)ˆAAA?EAD D)A?A A9uAMqAuI6@<AD)A9AAuHLh EeMuHLQ8 LM}MM>A1fDE9DABD)ˆщA?AA D)A?A A9uAMYA]I@< AD)A9AAuE~(IcHffff.HHAEHH1Hx9ˆL0HHiHAD(MD$ MApAAAffff.A9ABAxD)ˆD Ax)AH9uAqA0Ip@<A@A)1A9AuMEfHHIMd$ D(Et$Ml$MD$ML$A9DAfffff.E9DABD)ˆAAAEAD D)AA A9uA $qA4$IuAD)A9AAuLMr A~E1DD;Asp9BA^AA)DD A^D)AN9uAyA>I~AFA)9‰DuAnffff.9BA^AA)DD A^D)AN9uAyA>I~AFA)9‰DuAMb Et$Ml$MD$ML$D;ZDE1Ҿff.D9DBƉ)ˆDA8AA D)A8A A9uA $YA$I]@< AE)9AΉuHHNj9LHHE1E1;EHEfDH ACtAÉ AEu7EC6HiIdHHiML (AA2E<Et~Ml$ HDAufA9ABA}D)ˆD A})AM9u AMqAuIu@<AEA)A9ljAuAHA9DA$tDhpt3MD$ AEHPD)ɍD9AʼnlH- HH;EuHĘ[A\A]A^A_]ffff.UHAWAVATSIIMG AxA1AfA9ABApEA)DD ApD)AH9uAyA8Ix@4A@A)A9‰EuMG AxAAAf.A9ABApEA)DD ApD)AH9uAyA8Ix@4A@A)A9‰EuMG AxAYAf.A9ABApEA)DD ApD)AH9uAyA8Ix@4A@A)A9‰EuMG AxA&Af.A9ABApEA)DD ApD)AH9uAyA8Ix@4A@A)A9‰EuMG AxASAf.A9ABApEA)DD ApD)AH9uAyA8Ix@4A@A)A9‰EuMG AxAYAf.A9ABApEA)DD ApD)AH9uAyA8Ix@4A@A)A9‰EuA1AAH V AAff.CIƒu,1tEAf.D1AD3$1uA8AED1AD3$AA9rALDLLD[A\A^A_]ffff.UHAWAVAUATSH(AIIIF 0PU)AHUEE0 M̃sAuEnArL@ED ÉMt CADA8D t KA:D uD9rD9rE0EAuEIuAAILLDDEU)LLDM\$ MAA[A)ٍEAKuM{AA)E1ɈM@ A)AsAA9ډAB@D)ЈD As)AK9uA YAI[@4 ACA9uM^ ẼA)ECEACIF D @EADELLDTA+MFIV +J:D ]ȉ+MDD)9D]sXD9t,MD)HR1DA4 2A4 29rMIV uD)DΉ )JHU*)؉BIN AE׈AHUJAA|H([A\A]A^A_]fDUHAWAVAUATSH(MUHuHL`Uą1ff.HMHED,Afff.\hrhA)DEAD IDA拃h;luLzE)ǃXƃ\Et)XA9sD)ቋXA\ \HMH;MGDmAEDafD\hrhA)DEAD IDA䋃h;luLyE)ǃXƃ\Et)XA9sD)鉋XA\ \H([A\A]A^A_]UHAWAVAUATSH8LMHUHuIMT'E1@MDAttFLiK4hK4hK4hHiۘAAI|u#MtqgHIH~I<u:M4YFHIHUH IDH2)ILAE;pMu LB I`H߾nvIXHEHEIE8LCHEIxHH]vADžXIH}Aƅ\ADžADžxAƅ}Aƅ|TgABAnA\AhrAhA)D} L}IDAhA;luLQwL}E)؉ADžXAƅ\AZEt=AXA9xD)AX@A\ A\AAZLeqDAXA9rvA\AhrAhA)DD I $DAhA;luLvA)ADžXAƅ\EuAhAD)AXAA\ A\AAhoffffff.A\AhrAhA)DD I $DAhA;luLuA)ADžXAƅ\Et-AXA9sD)AXAA\ A\A0DAhA\AhrAhA)DD I $DAhA;luL&uA)ADžXAƅ\Et-AXA9sD)AXAA\ A\AtLuL}ȻLeMI4$L9DLLeuJH}tAETIE@IE I+E0HEL\sA+XHHMH}HLLP(tH8[A\A]A^A_]IHcADžMLicApt71ffff.IHi˘HcA;prL`cLuLcApt21IHi˘HScA;prLcALeAeA\AhrAhA)DA H}HDAhA;lusA)DADžXAƅ\ArEAAXA9vD)AX@A\ A\AArsAXA9ruA\AhrAhA)DD H}HDAhA;lu:rA)ADžXAƅ\EEuAD)AXAA\ A\AEfA\AhrAhA)DA H}HDAhA;luqA)DADžXAƅ\A8EAAXA9vD)AX@A\ A\AA8sAXA9rzA\AhrAhA)DD H}HDAhA;lupA)ADžXAƅ\APEuLeAD)AXAA\ A\AAPLesAXA9rvA\AhrAhA)DD I $DAhA;luL pA)ADžXAƅ\EuAAD)AXAA\ A\AAoffffff.A\AhrAhA)DD I $DAhA;luLVoA)ADžXAƅ\Et-AXA9sD)AXAA\ A\ALH}tUHSPE/HHӃuw wu w wH[]fUHAWAVAUATSHMIHuIIAHE1fff.ILP8IID;es{HEB wWfA}2AuW )HH!HiZ| H'H 랃uA딃 t H H xEAI΃ NHH t6u?HHHHOʉH "H rH H ˅tftH؉)  ~LHH!ÉH ؃ rHH!H HI1H[A\A]A^A_]HH!HUHH]"fUHEƃ@@Fȉp1]ffff.UHEƃ@@Fȉ`1]ÐUHAWAVAUATSfffff.P @84uBAAIHfDDJBDzB?BHDrADJDjDZDbRB7B?AB7B/BB/BBAM@BDwAEtDɍQHHɅu@7[A\A]A^A_]fUHHE1L;Lp A: H@tE1L4@AOBC:MRtLյ@fffff.B C: MIuA~HGHHP1]HGDUHGG]fUHGȉGuHP 1]UHHHE1LgL@p A: H@tE1Ld@AOBC:MRtL@fffff.B C: MIuA~HGHHP1]HGDUHGG]fUHGȉGu HHP 1]@UHHHE1LL@p A: H@tE1L@AOBC:MRtL5@fffff.B C: MIuA~HGHHP1]HGDUHGG]fUHGȉGu HHP 1]@UHAWAVAUATSPIMwA~E1AUAGAWrAwA)DD IDAGA;GuLhA)AAGEtA9sD)AAAO AOLH[A\A]A^A_]hff.UHAVSHH{HCH;}HHJXH>XH2XHH[A^]VIIH XHWIIHWHHzVLxp+pffff.UHAVSq%pHHDH[A^]IHoL/pfUHAVSoHHtH[A^]IHoLoUHH=% ]/UHAVSH1H[A^]ooIHdoLofUH]fDUHAVSHHo\ HH{HeHdH{PdHH[A^]dIHdHdH{PdHHdLof.UHSPHH{euH{PeuHetH[]HkHHH[]eDUHAWAVAUATSHMIHuAWEHH{H}cApH{PHPocAMHHHIcA'LL'cAH{uHCAHHHpMILeuHDžhƅg IEHtHHhH=gHEHH@IID$0H}cIGID$hHPcIGI$HHbIGI$LL8bI$H5яIDŽ$ADŽ$HpAƄ$mH5ҮHUHEHHHHEE1Dž\HEHEE1f`@E1Ҋ]ffff.Uf`)֍Bfff.E]X;]AAAHUHBB0B HJ HJB ;B$'\MD\1;`Lexs61ffff.IT$H41 HAu鋅`+EHEE1fA<AθDHu)}It$LH@HH@(HMAED9EADžIuEA1fffff.D9ID$D4AD$ HAL$ IL$D4AD$ A;D$$u H}aAtOAuEC}uSDuC+ HH}Ht HH@HOjIHp1fHDuGH}aAEuCHP`AEu/HH`AEuHpLfH8`AH}HtHPDHĨ[A\A]A^A_]H}`$D>A9v]ÐUH1]UH1r:DDDYF DQBy>BD >AF9v]fUHO@H DE H]ffffff.UHO@H E H]ÐUHH1L@DD E: HIu~H:HP1]UHGG]fUHGȉGuHP 1]UH]f.UH]NfDUHH1L @DD E: HIu~H:HP1]UHGG]fUHGȉGuHP 1]UH]f.UH]`NfDUHH= H= ]UHAVSHHD HH E HCH{H[A^]NIHML/NfUHHD HHD HGH]}ffff.UHAVSHHOD HCHD HH{HDH[A^]MIHwMLMDUHHD HHCD HGH]ffff.UHHC HGHD HH]ffff.UHAWAVAUATSHLLEIIII}unHIMHIE Mu ffff.EH}tHEHI+H=wEԉIuI$LHMP(uCU1Ht9MtIuL `u$UԉIHtHHLLP(xH[A\A]A^A_]fUHHG H1]ÐUHHGH1]ÐUHAWAVATSIII(KHCHaB HH B HKHC HCHt H`EHH@(HLL1E1MAHt HHPD[A\A^A_]IHt HH@HLyK,Kfffff.UHAWAVATSHIIIHUؿ(KHCHA HH A HKHC HCHt HDHH@(LEHLL1MAEuHK 1H;MA@DDHt HHPDH[A\A^A_]IHt HH@HLJFJUH(HJ@H @ HQHHXHHH@ H@]ÐUHH= ]UHAVS IHH߾1 H HHH HHHKHHKHHKHHHC H[A^]IH{ILIfUHAVSpeIHH HHH? HHCCH{,HC HHH HXHCH[A^]IHHL/IUHHE1L L/A:HItLNJ@B C: MIuA~HGHHP1]ff.UHGG]fUHGȉGuHP 1]UHH]0fUHAVSHH{/H[A^]HIHHLDHfffff.UHHHE1LL@/A:HItL׉@B C: MIuA~HGHHP1]ff.UHGG]fUHGȉGu HHP 1]@UHH]"/fUHAVSH_H /H[A^]*GIHGLSGffff.UHAVSHHo> HHH HHHKHHKHHKHHHC H{xH{hHt HH@H0H[A^]HDHHƒvEHHC@E1E1AL1f.DDA0ADDHH\DD@DDTA -9s&S)HHHH@6&ALLvApH@B(Ht PQPHHDIŰAuH - H H;MuHĘ[A\A]A^A_]$ffff.UHAWAVAUATSHH@Hޙ HHEEHEHEHEHEHEHEHEHHH10(>H"DHHvEHHC@E1E1AL1DDA0ADDHH\DD@DDTA -9s&S)HHHH@V$ALLvApH@B(Ht PQPHHDIŰA uH J H H;MuHĘ[A\A]A^A_]#f.UHAWAVAUATSHH@H HHEEHEHEHEHEHEHEHEHHH10(>HDHHƒvEHHC@E1E1AL1f.DDA0ADDHH\DD@DDTA -9s&S)HHHH@v"ALLvApH@B(Ht PQPHHDIŰA uH m H H;MuHĘ[A\A]A^A_]+!ffff.UHAWAVATSHIws`L{L% HCH;Cr L HHI ) s@As ƃsw) A;v$r[ fDA;4H@s‰k@HHcA+4)HcAt@w A[A\A^A_]ÉAUHAWAVATSHIws`L{L% HCH;Cr L HHI ) s@As ƃsw) A;v$rX fDA;4H@s‰k@HHcA+4)HcAt@w A[A\A^A_]ÉAUHAWAVSPIAN)9v0AF0tFAV09v<AF )9v@AF)9v6IAvHH fHH°uH[A^A_]DA;VADEDIqAvɈAFA;F uLktAANDfUH]f.UH]fDUHɸIOy ɉOWy |@ L։W y ɉO uWu| LʉO]UHDNID^VDF vEy Dȅy |A@ ALEy EDuAuA|A A ELډPC΋ 9GʉEEE۹AEˉu LJ ]à  LJ ]à LJ ]fUH@]fUHAVSH AHHǃǃHǃHǃHǃƃ8HuHǃHǃD9Hǃ8EEEEEE7H pCHCEHEHCH 4CHEҍ H(H0HLH [A^]HLH?fUHSPHHu"CHHH(H8u"0HH8Ht-HuVHHHu8Hu)赬HHHH8utCpC`D A)Ȋ9L ̻ EHߺt2HDtPtC<ƃ81H[]fff.UHH EEEEEEHE1L |fffff.D]HIA9sJFAwWfzu?AWAw0DOcMAD]D]D]D]Hu1H ]Ð@UHSPHHKHǃHHǃHHǃH8֪Hǃ8H[]@UH]fDUHAVSHHʪHǃH胪HǃHlHǃH8UHǃ8H5 HHÐH[A^] IHÐHv Lfffff.UHAVSH0IH، HHEAt6AH IIA`t DAAtHLHLgIf1Ifzf ~Iff4Q9r΍HA;u`A 9tUEFE+FAA9DGMHDAIf.D9sBLLˍrA: tIfyAtADAA`uAdHw HH;Eu H0[A^];ffff.UHAVSIA`u+t'At L LAd[A^]f.UH剗hFDDAfDDfDFfFfDffDuFDl]fDUHAWAVAUATSHIHl9ht0DDFAlDlA)ǃhǃlH/LA AzAEtAD;vBADIA`PE~EC$HDGL}11+dHcHpHfǃLǃPfǃTfA1L n fff.AATAfDŽ\f^3pHwB HBHpXH~ADIDWQ9DE9HvE1EE}E9A ~zD@D+dHcH pAM;@s@fDDfEtCEEIIAHc]f.AA4L AuIt[D9LAtIcAHM4H EDmAVLeAt$@H AHD MIVEA %AVIAwDLl ALD#AVIAwHLG ALD3 LM]uE1ADMu9DRE1AH}H;}H8[A\A]A^A_]DUHAVSIII I ArIP IPI A[A^]Lfff.UH1tfDHHu]ff.UHS1At%IAE1fDAAHIAuD9t(D)DH41f9>HHuD[]UHH0E11AH= u11ffffff.4  HuE11DP AH u11L 2f.B P H uDD]ffffff.UHAWAVAUATSPHǃ\HP D01LuL% c L-d :1+dHcH;47fft)d00l;hu@ D9`uK;K\;t HLU HL(\Q\H9pf4B4& uftHwB . B .HP  dƃ`H[A\A]A^A_]fUH1ffff. u pH=u惿t>1La @F A1u H0B p;r1H f0fD upH u]ffffff.UHtvDD%UUEAપA BAA33%DD)HD AAA%D ʉHu]UHAWAVAUATSHIL}1fDA UUҁ⪪ ʉ33AHp ʉ)ف  A Hu1APUUҁ⪪ ʉ33AHp ʉ)ف  APHuA\u M'M1fffff.EԉMAfyADAA LMHEH_ D$C'CLI(I0B!B M)LHEEtAwH_ ADH _ HL}AAPL9H-D+4H-LDEA;\AALH[A\A]A^A_]ff.UHAWAVAUATSHM̉UIMffffff.uԁADGD9M LvL1gAw:AAQAI AA;uLALJAƇAL޺L޺EtgIDuAADFA֋EH)f.AQAIU AA;uLHAuƋMԉD)D)eЁH[A\A]A^A_]ffff.UHAWAVAUATSHIHx HHEHcHiLI$8DA$0H|HHPLM$I$HpI$PHhI$P H`I$ HXM$|A$LZA$\A =PFwA =Xw=DA LHXL EH`HhHp ĘLLaiHPL@HqA$P=r HBA<tHqQA$Tr A<H@tW)E)E)E)EEHEH]LHA$TI$HyI$I$H߹A1ADŽ$XH *AtA;$Xr pA$XA:HuL11ffffff.AtHƒuH1v HH;Uu3ȋMkUJkMAk$XDHĈ[A\A]A^A_]UHAVSHH8HcHiLD0HLLRH HHHHHHxHpHhH`HXHPHHH@H8H0H(H HHHHHHHHHLHHU[A^]ffff.UHAWAVAUATSHHUԉuHL8HcLiLCƄ/B 0C/DdEED\uAXAAvEDK/BHEH8B(D0B(HLLDEH HHHHHHxHpHhH`HXHPHHH@H8H0H(H HHHHHHHHHLHRHDEAAE9HMECO/D01f.G)D(wLMD9C/ACƄ/@DF}}DMAsD<K4/HuL}L8LmDmEDmIcLiLK<7@MHEC7DHEHUHC7HHDAD@EC7D@sDDmHMD)A)A@sDHEHMH@HEK7DHEL8EȃHcHELiLK<>Hu@G>DC>HHE)dHHuȋUED9HU ACċMdMHH[A\A]A^A_]f.UHAWAVAUATSPUԉIM84L1M8\HcHiLA @uLiLC%At"C%DAdELyMELC%BLI8B DA0B HAMLH HHHIIIxIpIhI`IXIPIHI@I8I0I(I IIIIIIIILL LI1A )ѺAH= u1DA )ѺAP H uII L A ؟IP IPHڹ A 跟tA AtL޺LAPLATLAXLlAXt/1f.A:L>A;XrM1@AUUҁ⪪ ʉ33AHp ʉ)ف AHuAPIILHMIATLHMLK%DIdA)H[A\A]A^A_]UHSPHHH9ȺBЉUHHHMP(MH H[]fDUHAWAVAUATSHMIIH t ƃH HELH>HHHCHHtLLLǃƃǃlǃhL8ADŽ$I$LOHAƄ$L I$}I$uI$mI$eI$]I$UI$MAƄ$fADŽ$ADŽ$ǃdLmfDADŽ$ƃ`H߾JC;CH߾H8HEMt1L+HHMILHuLP(umC;CnuWw5QH ;uL&ǃƃLH[A\A]A^A_]fffff.UHSPe#HHu  @H[]DUHSPH!#HHTu T M@H[]ÐUHH EEEEEEHHE1L xf.D]HIA9sJFAwWfzu?AWAw0DOcMAD]D]D]D]Hu1H ]Ð@UHH EEEEEEHHE1L xf.D]HIA9sJFAwWfzu?AWAw0DOcMAD]D]D]D]Hu=1H ]Ð@UHSPH!#HHTu T M@H[]ÐUHH EEEEEEHHE1L xf.D]HIA9sJFAwWfzu?AWAw0DOcMAD]D]D]D]Hu1H ]Ð@UHH EEEEEEHHE1L xf.D]HIA9sJFAwWfzu?AWAw0DOcMAD]D]D]D]Hu=1H ]Ð@UHH]鳂UHH]ÂUHAWAVATSAIZff.AVI fffff.H9A AAAEFAVHHcI|ADIAuH[A\A]A^A_]ÐUHAVS HH11`Hc HHH HHHKHHKHHKHHHC H[A^]IHNLfff.UHAVSp5HHb HHHc HHCCH{1Hf HHH HXHCH[A^]IHLUHH= ]?UHHc1]ffffff.UHSPHwHHHCH[]f.UHHDOE1Xffffff.FAw8Wfzu>At&A t WEu(D WEtAwHIA9rDO1]f.UHHDOE1Xffffff.FAw8Wfzu>At&A t WEu(D WEtAwHIA9rDO1]f.UHHGEHHMHHκ1P(H]UHHGEHHMHHκ1P(H]UHH賏1]ffffff.UHSPHwHHHH[]f.UHWu G1]fDUHWu G1]fDUHX@ǀH HH 0 HH]f.UH @ǀH Z HH HHH HH]ÐUHHE1L*Lp A: H@tE1L,@AOBC:MRtL,@fffff.B C: MIuA~HGHHP1]HGDUH勇]fff.UH勇ȉuHP 1]fUH]f.UH]fDUHIHIxE1L )Lؐc A: H@tE1L +@ABBC:M[tL +@fffff.B C: MRuA~ILHP1]ff.UH勇]fff.UH勇ȉu HHP 1]fffff.UH]f.UHH]fUHIHIxE1L (LؐQ A: H@tE1L *@A0BC:M[tL *@AB C: MRtILHP1]fUH勇  ]fff.UH勇 ȉ u HHP 1]fffff.UH]f.UHH]fUHHE1L'L/A:HItL)@B C: MIuA~HGHHP1]ff.UH勇]fff.UH勇ȉuHP 1]fUH]f.UH]fDUHHLGE1L 'L@/A: HItL (@B C: MRuA~H:HGLP1]ff.UH勇  ]fff.UH勇 ȉ u HHP 1]fffff.UH]f.UHH] fUHH= ]|UH]fDUHAWAVAUATSPHCHa HH HCHCC HC0HC@L{XLLsLL L8L@ HH߾@ H[A\A]A^A_]HH HL4 L, L$LH:ffffff.UHAWAVAUATSH8MHUHuHSPL{THC`wHELkXnHELkXL5Z fIEHMH;r L˧SP HHIM ) @A A7 ΃A7SPwLmЃSPE1ɉffff.HHIM׹ ) H Y A AsPsPAAMAD;E$AAHcHMHEH<AHHHEBL0E;EMEċsPLuwDhDIEI;rH}nsP HHIM )AAD DH X A AsPwsPDfIEI;H}sP0;Mu H}Hu H8[A\A]A^A_]ÿ{H5V H1UHSHHHW HHEyt#HHH߹0t>H8HH߹@0tHpHH@H 2W H H;Mu HĈ[]f.UHAWAVAUATSHL(MIIIHV HHEI\$XHH߾hI|$H8 CWM5HDžHIHMl$0H81x Mt$pHAD$P AD$TADŽ$A$yt+I$HLI$8HHL@tzI$HHPL@BHMl$PI$HHHL=V fff.At_fAD$ HAL$ IL$AD$ A;D$$u H8HHHHHDsI9rDuL=U uH84D HHDHHHHH;TH(tVfuQA$ID$xID$XI+D$h A+L$PH)H@H(HH@HHP(AUwA$tffffff.ID$XI;D$`rHAU HHH )A $A$@A At$T ΃At$TAUwAUA$RA$|L$HL¸?1A$|HLAD?A$ȃ?tAƉ4AUwA$pff.ID$XI;D$`rH̠AU HHH )A $A$@A At$T ΃At$TAUwAUA$D4$4AHHI9AeA$yt'HLeroHI;D$`rHޟAT$PA$ HHH ) A$AAL$T AL$TAUwAUA$@AD$ PAT$ IT$ AD$ A;D$$u H8THHHHHw H8H DQ H H;MuH[A\A]A^A_]@UHSP#HHu  H[]DUHWt4xɃ|$yȃ1]ffff.UHWt4pɃt$qȃ1x]ÐUHHE1LL/A:HItL@B C: MIuA~HGHHP1]ff.UHGG]fUHGȉGuHP 1]UH]fDUHAVSHH[A^]IHL(fUHHHE1LL@/A:HItL@B C: MIuA~HGHHP1]ff.UHGG]fUHGȉGu HHP 1]@UHH]fUHAVSHHHH[A^]IH LAff.UHAVSHH HH HCHH8HH{XĚHH[A^]IIIH8HH{X膚HHJLKffff.UHSPHH6HH[]UHSPHHHH[]UHHHu]]UHHHu]]UHSHH M HHEW)E)E)E)EEt1DH9rGDLJEAE1E1E11?fDB\D0w~BEFTHABPAIAE0uNtB1f.Ht#PʉPHcH 9rH L H H;Mu HĨ[]ff.UHAWAVATSHI3wC`L{L%HL HCH;Cr Ln3 HHI ) S@A C ȃC3w)1fHэA1҅~HQA;|@st:։3k@BA+<)A|HA;s I[A\A^A_]ÐUH@t]]oUHG0H HH$ HGHY HGH HGH HG H HG(ƇHG@HG8HGhHG`]ff.UHG0H> HH HGH HGH HGHK HG H HG(ƇHG@HG8HGhHG`]ff.UHAVSHqH[A^]/IH$LXfUH]FfDUHAVSHHH*H[A^]IHLff.UHAVSHHHH[A^]IHLff.UHAVSHHHH[A^]hIH]Lff.UHAVSHHHjH[A^](IHLQff.UHAVSHHH*H[A^]IHLff.UHAVSHH? HH HCH HCH HCHL HC H HC(H{PH5t H{@dH{8Ht HH@[A^]IH{8HtHH@ILifffff.UHH]BfUHH]2fUHH]"fUHH]fUHH]fUHSPHua6H{PHt rt=uW1@*ɉu$H{@ucHHK@Ht1H[]DUHSPHueH6H{PHs 膩rt=uW1@*ɉu$H{@uKcHHK@Ht1H[]ÐUHHH1]fffff.UHHH1]fffff.UHAVSHIHt HHPI~8HtHPI^81[A^]ff.UHAVSHIHt HHPI~ HtHPI^ 1[A^]ff.UHSPHH{8HtHPHC81H[]UHSPHH{ HtHPHC 1H[]UHSPHHt HHH{PHCLCHHǃHǃ1H[]ff.UHSPHH_t HHH{PCLCHHǃHǃ1H[]f.UHAWAVAUATSH8MHUIHH{@HHLPPHHEHHEHCPHEHCLHECH;CLu-CLCHHs@I$LHMP(9LHL)H=@@HGuHHH+H9HCKLCH)HMLHS@HH}HME1LME0H}{HHHHL)HL9HHAt H;AƅA HH9DDu*HshH}ADuEEucHHH9u HǃMILHuHUP(H8[A\A]A^A_]HshH}݃}UHAWAVAUATSH(IAIHMtAHCPHELkLSf@ɉID)1Hu HA9ACHKL9u2CLCHH{8Hs@HLP(CHKL)HMtHH+DH9sADHMHS@HMH $HH}LHULEE1HusHHHUHMtAWH([A\A]A^A_]UHH]fUHH]]UHH]]UHHE1L{ LA:HItE1L@ AB C: MRt1L? ffffff.ABC:MItE1L> fffff.|A:HItE1LD @AaB C: MItL @fffff.F G: MRuA~HG(HHP1]HGHGHGHG UHG0G0]fUHG0ȉG0uHP 1]UHH]fUHG(G(]fUHG(ȉG(u HHP 1]@UHH]fUHG G ]fUHG ȉG u HHP 1]@UHH]TfUHGG]fUHGȉGu HHP 1]@UHH]fUHGG]fUHGȉGu HHP 1]@UHH]fUHGG]fUHGȉGu HHP 1]@UHSPHCHy HH HCH HCHC H=j H5j HC HtH[]ÿgH5< H1t@UHSPHCH HH? HCHt HCHC H=qj H5zj uHC HtH[]ÿH5F< H1@UHAVSHH HH HCH HCH{ Ht訪H[A^]vIHkLfUHH% HHk HGH HGH Hu]]Kff.UHAVSHH HCH$ HHZ HCH{HHtH[A^]IHLDUHAVSHH HCH HCH HH{HHt褩H[A^]rIHgLDUHH% HHk HGH HGH Hu]]Kff.UHH HGH* HH` HGHHu]] ff.UHH HGH HGH HHHu]]˨ff.UH tu'Wf>u'FHB8Wf>uFBD &u1]fffff.UHAWAVAUATSHXIIH}LmLE1fLLu]IIA9s9C< tu׸WfA>u7AFHEиWfA>u!AFEHEHx HuKVHX[A\A]A^A_]DUHH]BfUHSPHH 螨EHuHߺ:H[]UHSPHHnEHuHߺ H[]UHAWAVAUATSHXLIILuLTLeLL{ULmLHlSH۹IEI LL1 t t uMMMu UHX[A\A]A^A_]UHH]cVUHH]sVUHH]UUHH]UUHHE1LkLp A: H@tE1L$@AOBC:MRtL%@fffff.B C: MIuA~HGHHP1]HGDUHGG]fUHGȉGuHP 1]UHHHE1LL@p A: H@tE1LT@AOBC:MRtLU@fffff.B C: MIuA~HGHHP1]HGDUHGG]fUHGȉGu HHP 1]@UHHHE1LL@p A: H@tE1L@AOBC:MRtL@fffff.B C: MIuA~HGHHP1]HGDUHGG]fUHGȉGu HHP 1]@UHAVSHHtH[A^]IHLfUHAVS(HHH[A^]IHkLUHH=b ]VUHG0H. HH HGH HGH HGHK HG H HG(ƇƇHG@HG8LJLJ@ƇƇHLJGLGHHGhHG`]fUHG0Hn HH HGH HGHN HGH HG H HG(ƇƇHG@HG8LJLJ@ƇƇHLJGLGHHGhHG`]fUHAVSHqH[A^]韾IH蔾LȾfUH]FfDUHAVSHHH*H[A^]XIHML聾ff.UHAVSHHHH[A^]IH LAff.UHAVSHHHH[A^]ؽIHͽLff.UHAVSHHHjH[A^]阽IH荽Lff.UHAVSHHH*H[A^]XIHML聽ff.UHAVSHH/ HH HCHҿ HCH HCHL HC H HC(H{PH5_ H{@\OH{8Ht HH@[A^]IH{8HtHH@ILټ茼fffff.UHH]BfUHH]2fUHH]"fUHH]fUHH]fUH剗1]fUH剗1]fUH剗1]fUH剗1]fUHSPHH{@Ht1;t/YN.NHHK@Ht1H[]UHSPHH{PH D^ Ww%ʸH5zHcHWc@\@UɉuOƃH{@Ht1;t/M~MHHK@Ht1H[]äUHSPHH{HH ] w%ʸH5~HcHWg@`@YɉuSHƃH{@Ht1;t/LLHHK@Ht1H[]àfff.UHHt HHHLJHLJHP]fDUHHLJGLGHƇHt HHHLJHLJHP觤1]UHHLJG,G(ƇHHt HHHLJHLJHPC1]ffffff.UHAWAVAUATSHXHMHUHuHH{@HHL, HH)H9LBHHEHCLHEHCPHEHHECH;CLu.CLCHHs@H}HHMP({LLL)E1t%HH+E1H9wDAHƋKLCH)HMLHS@HH}HMLMEAE0HusHHHHL)HL9HHAt H;AA EuL9DD<uzHH)HshH}&HHHH9uHǃHǃ1ҋL,HH)H9LBEuBɉu`HNpxCBt\WH;ApxCWCWy4Wy B$B(ApxCWTq~θWA HxCȸWB$r(1u1fuvHFHBjWfuaWwWNH=OHc4HWw8B* &J !J,JJJ JJJ41]fUHAWAVAUATSHHIIH}LmLE1fLLuJIIA9s&C<uܸWfA> u)fA~EHEHx Hu~;HH[A\A]A^A_]UHH]RfUHSHHHEH HuHUkuHUHuHgH[]UHSHHHEHHuHU+uHUHuH'H[]UHAWAVAUATSHXLIILuL8LeLL9LmLH7H۹IEI LJ L J LLsHMIO( t t uMMMu 9HX[A\A]A^A_]ÐUHH]s:UHH]:UHH]9UHH]9UHHE1L{Lp A: H@tE1L4@AOBC:MRtL5@fffff.B C: MIuA~HGHHP1]HGDUHGG]fUHGȉGuHP 1]UHHHE1LL@p A: H@tE1Ld@AOBC:MRtLe@fffff.B C: MIuA~HGHHP1]HGDUHGG]fUHGȉGu HHP 1]@UHHHE1LL@p A: H@tE1L@AOBC:MRtL@fffff.B C: MIuA~HGHHP1]HGDUHGG]fUHGȉGu HHP 1]@UHAVSHHH[A^]IH軤LfUHAVS0襤HHH[A^]IH{L诤UHH=MG ]:UHSDGA A1ɐAʀ|%tmABD%DYBT% DIBD% ЍQt% ƋG9|+_ 9}$IB\%L؈|%B\%D%D9z[]UHAWAVAUATSPAIIHtAE$HME1Vf.DD)AE)9BщI|%EK47HHAEAEA=u LXuE9r1H}t HED01H[A\A]A^A_]I}HH@(LDH[A\A]A^A_]ffff.UHAWAVSPIAW1tmAG$t LJAW1Lu)ډIt%IHLP(u:@Mt.AW9rAWAWAG@A"G$$AG$1H[A^A_]ÐUHH1LL@DD E: HIu~H:HP1]UHGG]fUHGȉGuHP 1]UH]f.UH]頡UH@]fUHAWAVATSAHCH HL{LbHCPCXLsPHChHCxHǃƃƃD(IAD$H HI$LMt AD$HHt HH@L[A\A^A_]IHHt HH@L耖LbLƠyff.UHSPHH{P莗tH[]HH[]UHAWAVSPA_HDLC7GLHD)D)H[A^A_]UHAWAVAUATSHHMHUHuIHJ HHEMl$E1ff.A\$HE|$LAGAD$LL蓜D) B\5IAuM$xHuLm0҄u'H HH;ELHH[A\A]A^A_]11VA\$HE|$LAGAD$LLD) 0҃E;Est#HEHMHEȉEHELLțtu2A\$HE|$LAGAD$LL蝛D) 0҃눃t 0ɃrDA\$HE|$LAGAD$LLQD)LLB0ɃHMHU )HйHH$k)TfDUHAWAVAUATSHIHR HHEMuAtIEI;Er L`HIL虚EeHA]LCAELL肚A)AA0AAA]HAELA)At\AELL;DtADžAA]HE}LAGAELLD)Dg AELLޙD8E}HD HzI>DH9rL[IMI6 HwI6DAE H9rL[IMI HVID H9r L[ HBI A莘UHHPg]fUHAWAVAUATSHhAHHxuRǂLjLH ZHBL t uLH覔HڊlLbPLe~ EoDtHHEHB\HEHBXHELeHHEHd HEHHEHBHEƸDALwDI uDmA/wAADADzHDrLtgAraCD4BLLmL苒H}L詒¸u D)D)AAAFHHHUH HuȋQI$ HM;u H}讋LSHBH;BIrH}}WƂǂHPHRHt ADtZHDrLAFBLLIːD)AAAtVA_HEwLAFAGLL莐LEoHAGLEЍ@AGLtD)+MAAA LDtHADa$A AAǂHǂwHB\HEHBXHEHHEE1H]f.AAtZHu+qH׋WdI9AB֍xI4$L ; HM;uLLꋊɉAGLet)A1Hh[A\A]A^A_]@UHAWAVAUATSHMHAWMIHEHs(HHPHHChHHLP8AEL{PL5IfL(LH)HMHBHAEuUMt‹CDHC0HCH+C +KLH)HELɇL)HEIH@(LHuHUAErHHP0DH[A\A]A^A_]HH@0HAILaIHH@0HLJffffff.UHSP#HHu  H[]DUH@HtDu H@$@ H@LJHP$1]fff.UHSPHNWwVwPDH{P 蜅tHH߾Q1ɄEH[]ÐUHAWAVAUATSHH H. HHEHEHEHEHEHEHEHEHEHH10'>HDHHƒvEH(CDE1E1AL1f.DDA0ADDH(\DDDDH4A -9s&S)H(HH@規ALLvApH B(Ht 0Q0H(DIŰAuH  H H;MuHĸ[A\A]A^A_][ffff.UHAWAVSPIV8F<)DE;~$r^ E;HHEHEHEHEHEHEHEHEHEHH10'>H"DHHvEH(CDE1E1AL1DDA0ADDH(\DDDDH4A -9s&S)H(H H@趉ALLvApH B(Ht 0Q0H(DIŰAuH H H;MuHĸ[A\A]A^A_]hf.UHAWAVAUATSHH H^HHEHEHEHEHEHEHEHEHEHH10'>H"DHHvEH(CDE1E1AL1DDA0ADDH(\DDDDH4A -9s&S)H(HlH@ևALLvApH B(Ht 0Q0H(DIŰAuH H H;MuHĸ[A\A]A^A_]舆f.UHAWAVSPIV8F<)DE;~$ra E;wYDvA@wAH{`Qt(HàHh# HD- D[A^]fUHAVSHWrrHK@>wYDvA@wAH{`t(HàH" HD D[A^]DUHAWAVAUATSHUHuHKt1Ƀup HCxHChHCpHǃƃǃH{8PuǃKǃKHK[ KtHKH+KMH9vELc8L1E1M,@LL uxHMB1IED9uuҊLKtǃK1ɅyK1ɉH[A\A]A^A_]UHAWAVAUATSHMMHUIHH{0uHHK0HLHHLP8LKffffff.LKHs0HߺAHKL)Hs0H}nu^EDuV1KtKMt'HChHH+CxHEILHuLP(uKtHK1H;KlH[A\A]A^A_]ffff.UHHKt HHKHLJKLJK1]ffff.UHHyKt HHKHLJKLJ|K1]ffff.UHAVSHIHt HHPIKHtHPIKI1[A^]fffff.UHAVSHIHt HHPIKHtHPIKI^x1[A^]ÐUHSPHHKHtHPHǃK1H[]ÐUHSPHHKHtHPHǃK1H[]ÐUHAWAVSPIHLKMt KD)AH[A^A_]UHAWAVSPIHLKHHMt KD)AH[A^A_]ÐUHH]UHH]UHHE1L+L A: H@tE1LABC:MRt1L#AeB C: MItE1L2fL A: H@tLǺ@F G: MRuA~HG HHP1]HGHGHGfUHG(G(]fUHG(ȉG(uHP 1]UHH]wfUHG G ]fUHG ȉG u HHP 1]@UHH]vfUHGG]fUHGȉGu HHP 1]@UHH]vfUHGG]fUHGȉGu HHP 1]@UHH]VvfUHGG]fUHGȉGu HHP 1]ÐUHIƃ A DNDAuA A AHAADWD9v3fffff.w9wA9v7uIcH G]UHAVSHCH؀ HH HCHS HCHC Ls(Lǃ|KǃxKǃKLHJ[A^]HL HxfUHAVSHCHH HH HCHÀ HCHC Ls(L ǃ|KǃxKǃKLH[A^]HLz HxwfUHAVSHH HH HCH: HCH{ HH5 H{(! H[A^]vIH{( HvLvfUHAVSHH? HH HCH HCH{ = HH5 *H(H[A^] IH(H LvUHH]fUHH]fUHAVSHH~ HH~ HCH* HCH{ HH5 H(H[A^] IH(H LuUHAVSHH?~ HCH~ HH~ HCH{H9HH5 &H(H[A^] IH(H Luffffff.UHAVSHH} HCH~ HCH9~ HH{HHH5 H(H[A^] IH(H Luffffff.UHAWAVATSHAE1AEAE5@A$W4DE#HIA9s}BwDbufAuHL9DBѸWfAD"W 'tA\$WE덃 tEwEAIǃ NAuA  JAADD9v/fwA9wA9DGAuHcH D DxKD|KDK1[A\A^A_]f.UHH]bfUHHKExKEHEHHƺ†H]fff.UHHpKEhKEHEHHƺ肆H]fff.UHAWAVAUATSH(MIHuHH{ uHHK H+H{(H} xKLHG LLcPHC@HC0HCHHC8HCXC`LchLqKL3HEff.Hs H}HHMP(utE1E̅u.wfDHK LLC`uBAƋEA9r؉HEMtHC0HCXH+C@HELHHHuHUP(qH([A\A]A^A_]LH}ffffff.UHH]UHH]UHHE1LLp A: H@tE1L@AOBC:MRtL@fffff.B C: MIuA~HGHHP1]HGDUHGG]fUHGȉGuHP 1]UHHHE1L'L@p A: H@tE1L@AOBC:MRtL@fffff.B C: MIuA~HGHHP1]HGDUHGG]fUHGȉGu HHP 1]@UHIHIxE1L TLؐp A: H@tE1L @AOBC:M[tL@fffff.B C: MRuA~HGHHP1]ILfUHGG]fUHGȉGu HHP 1]@UHAVSKenHH~kH[A^]IH;nLonfUHAVSK%nHHH[A^]IHmL/nUHAWAVSPHC(Het HHH HHxHKHHKHHKH@HC HC0Ls`LRƃKHǃKH{87LsXHH[A^A_]ILmIHKHt HH@LL_mm@UHH=E ]UH@]fUHAWAVSPAHCHv HLsLHCPD8LH{XH[A^A_]ILlIH{P2L*Ll[lffff.UHAVSH1H[A^]?lIH4lLhlfUH]fDUHAVSHHu HH{XH5Y \H{PHH[A^]IH{PIHHvLkkfUHAWAVAUATSH8LHEMLmHUIHH{PuHHKPH=LcL0L{8HC(HCHC HC@CHCLLVHKH;K EHAHCuAAAĸAf/AA @AH{XH}H "_H}9GH}DDlHEEfCHEHt&HCHC@H+C(HEHHuHUP(MAt$MuHEL9I)ILCLkPE1H}9ACHuEx Gd=IM9uL}HsPH}Lh}H}LmuhKL1YAtJKL0҅ɉu?8t4u"H}9CLu CHuuu1H8[A\A]A^A_]LME׸CHfUHIƺDƒ A DNDAuAHAADNDWD%9v(@=w 9wA9vuA@G u AG ]ffffff.UHAVSHqH[A^]hIHhLHhfUH]FfDUHAVSHHH*H[A^]gIHgLhff.UHAVSHHq HHq HCH{`H5 H{X8HH[A^]IH{XIHHLgfLJƇ?fLJƇ@fLJLJ|@LJ@fGHufLJLJH@LJL1@fDfGPHufLJLJ@LJ1@fDfGHufLJLJ@LJ1@fDfGjHufLJhDBȉLJt6փG1fff.fw@76HufDŽO$$BȉxLJ|t5փۺG1ff.fw@7HufDŽO**BȉDLJHt4ЃպG1ffff.fGLHufDŽGLLJLJ1fGHufLJN]ffffff.UHAWAVAUATSH8AIAMu`LAEXAEHAEL1۸A=r)IE`I;Ehr LW HHI AEXۉAEX AuA]PADž11EI]~oE1 AHAtdAAEA+qAU$9AB֍T H pAuAEA;EuHSAD$AHHDHUH]Me`IHMIHMIMHHMM@DHiI|L6YAMQAUIEAEA;Eu H},SEȉEԅAH}L}LXAAvL}E~AFEăH}HuX@ƒEtvE`AEXE1fD=r*IE`I;Ehr Lg HHI $ AEXEAEXA uEANjEHiIHuXsA})AUXEɉME1r+IE`I;Ehr L HHI $ЁAUXEAUXA uMEAƋEA9DGH}DVt*E)A9@A)EEAH8[A\A]A^A_]fff.UHAWAVAUATSHMHAWMIHEHsxHS(HHLP0L{LOILOLH)HMHBu LPAeHAEuMMtHHC`H+CpHELhOL)HEIH@(LHuHUAEqLPDH[A\A]A^A_]HLOH Y@UHSP/HHӃuX Xu X XH[]fUHSPH@Ht2ǃH{1u H1H[]@UHSPHWA@H{MtH`H߾1ɄEH[]ÐUHAWAVATSIAL$F1vAAVEDTAA9wECT|HDTKL|C<1f.fHD9RufAT$f-AL$AD$21A<$uAMffff.~ED|D)fALTE $D9fD‰r11At|fff.DFE9rAIA9DrUD@fALtfA\Tf9s0E4fA\tAA4fALTEE $D9sDJfALLfALTHʃu5A $QITTAtLDf9fGf:Hfu[A\A^A_]fUHAWAVATSAIA<$A\$1E|$A)E|$DA4$D1\Mt$;fHHI AD$E\ AL$A E|$1Āt@tM@uF?A4$@A4$AD$=rID$I;D$ {LcA4$s)A\$[A\A^A_]ÐUHAWAVAUATSHL(IIHL}L@HDž`DžhHDžxHELKALmH}E EH`IALxH`PJH kTH{ `]TH +UE1ƅ7H H8AHDž sAArSHEH;ErLL}LH HHHMD D)DAA DuAD}AwLAD}DUEԃ D)9D#HDA AA1D L-L}LH HHHMֹ D) UAD}ApLAD}AADu#HtNAL 0AƉLȉHLe>@t ABƄ+ H8VR1 uKƄ H1uf uƄ H1=ufIA=IMB+ tƄ 0fBkA͈7L}$@MI ALefffff.HEH;ER8Au1Dffffff.Ɋ @ `9DLK HwLeLcB; `@t#AU @xHcLj `f.AG~XB; `hQhH` HhHH 9u H`GI@DA uAvƅ7Ƅ fDtC ƅ7H`]FILXH(uD07{LH+ H=rڸ +EMHMHMH+MH)HPH(HH@(HPHXAEL >H`FAH`QEH}xDHĸ[A\A]A^A_]HH HHLeH`EL9HWOUHSP/HHӃuO Ou  O OH[]ÐUHSPHH{>HCH{-HCH{ HC H[]ffff.UHAVSHHZ HH{HCH{HCH{ H[A^]/NIH$NLXNfUHSPHH@Z HH{HCH{sHCH{ bHC H[]UHSPHHY HH{4HCH{#HCH{ HC H[]UHAWAVAUATSHLHIIHHHELuLHDž`DžhHDžxHEIG0LALeH}*H`YBAHxH`BH}H@AH@ȉ%=pAAAA`YDAAAΉIGA;w(tH!1HtIuHI HAtIGIcIGI RIG H<IGAHHIGAHHIG AHrAG(IGDfǀIGAAEƀE10۾ E1Dž,}fD0ۋ;HIG;A;IwD fD,~AH AE,AE؉,γIԉH @@HBHf.L ,A9tH}H@Hz IH`;@H8A1HtYHL)1H rHHËEHEHEH+EH0HHH@(H0H8A1EIL @P@ D@AL1A ՋA9D#D;D;,L1ADr*IwIW Ɉ IWB=wIW ˈtIOHA9uIO L`ff.IG hQhH` HhHH 9u) 10ۺDž,L?H˃u(EHEHEH+EIG0H`)?AŅDEH`=H} HTHH;Eu9DH[A\A]A^A_]HH`=H} HGGffff.UHSP/HHӃuG |Gu |G uGH[]fUHAWAVAUATSHHIHHHHE0Ib0;W0{KS0`<ЃEH0&ҹEȉMMEIHU1 1A1fE;EsH;}EE;E ȹDEE@E@EAff.A9t.M9DACAAH}HL,GDM)LA1ɉtPT t ֍9D9w)#u0;us;u3 1EALH H H;MuHH[A\A]A^A_]EUHDG0D;FuA0;u910fL:LHRu#D9rHW 0H;V uHvHBF]ffff.UHAWAVAUATSHxH;?um1{H{ t6w1H|(1fDHK  HrH;s s L HrH|()HDLpL " AIHDžhL{E1fffff.SLL""HsHS L"LHh!1fff. hH@tIM9rH(HpH$Hx[A\A]A^A_]@LL(;Crf.UHAWAVAUATSPIIEfE1AT :T HIt1I0E9IFJAE;CuAM; u19rIU H;S uHsI}SDu1ffffff.L(AL(H uEt!IvJIH~LDIFHH[A\A]A^A_]UHAWAVATSIH uNL{C;r.IPL$MtI|$HtBLBCȉCL1L[A\A^A_]?[A\A^A_]ffffff.UHHG8HG0HG(HG HGHGHGGpHGhHG`]DUHHG8HG0HG(HG HGHGHGGpHGhHG`]DUHAVSIH=ǝ CI^LHtH= H5H= HuH+H=d H\LHQH=b [A^]BHH=O BH@A@DUHLJHwxH= m"1]fUHGHwH= @"1]fff.UHAWAVSPIHDIwI|xD)H@DC0E{44SHuEIL1P(K41D t}1ɺtEt A ЈEIHuL1P(u5S4HtHs8LSuEtHxDLHwSu1H[A^A_]fDUHHh]ffffff.UHAVSI`b?HH߾ HXHHH HHpHKHHCHtCIHtHPI1[A^]IH>L"?fff.UHSHG@HG8HG0HLJHGx1LG0DDЃ?A1ADO4WrtAADNEAEDˉ_4ALW9wDuMEt(AɃDHxf.Hu1A8@L[]ffffff.QD8A;O4rUHHh]ffffff.UHAWAVATSAIHH{HEL9{Pt4Ht y=HCHHCP1EtLf=HH{HL{PLLd>1[A\A^A_]DUHAWAVATSAIHH{@EL9{Ht4Ht =HC@HCH1EtL<HH{@L{HLL=1[A\A^A_]DUHAVSHII~IHuILP8ÅIHEHHH5nHUЉÅuJH}HH@(IvX ЉÅu.H}HH@0IvxЉÅuIHH@(ЉH}HtHPH[A^]HH}Ht HH@H'<;H;@UHHHH@0]ff.UHAVSI`;HH1 HHHH HHpHKHHCHtCIHtHPI1[A^]IHA;Lu;UHAWAVAUATSPIԉIH;IA$AAD$AFID$IL$INIFIF IFI|$ Ht":IFIt$Ml$ HL;Mn ID$@IF@ID$8IF8ID$(IL$0IN0IF(LLH[A\A]A^A_]3HL_:H:ffff.UHAWAVATSIEfEt7A\$@IFLHEHLLmHLMLH#LHH/W)EEEE؈e]LLH޺LMH޺HHADBEDLHItffff.HHuArk@LH #LLH޺iLH޺9EDHHIt@0HHuAAwDHHH)LIϋH9HHH;EuH[A\A]A^A_]!UHAWAVAUATSHLDHHHHHHHUHHHL}MAH0LLfff.HL!HHHJW)Dž DHLHLHLs!HL.IABDžHHLItff.>:HHuLH)MLAI9IHWHH;EuH[A\A]A^A_] UHAWAVAUATSHHLpLm lLlLLHQ lLL-E1LXL1* u$LLLH`1!!HPLHPLLHLAdLHL=LH޺ }AuAAHHpHIC HĘ[A\A]A^A_]UHAWAVAUATSHIIHHHEH=z AG tLkLHLm=fD߃FLLHHuNt7tlLQLL LLvL.DžDѫrLHD`LL PLL5]H=y HʒHH;EuHĘ[A\A]A^A_]UHSPHy HKH= HHG H[]ÐUH#EgGGܺG vT2GHG]UHAWAVAUATSH4H(H HHHEЋODW D1ʋDGD!D1DwE1DFFB|BAD1!1DFLFDE;yZDDyZEAD1D!1BT AD1D!BM_D1DDD yZDDyZADD1D!DD1D!D1FLDDD1AFyZMAAAAADD1EA֋V HC0HC81EtL+ HH{0L{8LL) 1[A\A^A_]f.UHAWAVATSAIHWAcwNH{(EL9{0t4Ht HC(HC01EtL HH{(L{0LL 1[A\A^A_]f.UHAWAVATSHHHԀHHED{DDAD4EA1D@L;GD ȍOL  D; Ή@HRuH{0Hs8AL $DH@L@AgAG$6A0A11уƃ5@@tHA9uH{@Jt5LfBD%fC,HuH<DUHHDŽ4HDŽ,ǃHH;Eu1Hİ[A\A^A_]T fDUHGHD HD]ffffff.UHAWAVATSIHCL{D$H= LD+HHP(LLLTt [A\A^A_]H,LH޺[A\A^A_]+ff.UHAWAVSHHL=~IHEH@LuL mHL IH;Mu H[A^A_]B @UHWuGWt wO1]UHWu#LJWt w1]ffff.UHAVSH IH}HHEA^؃HEHHuu+I~ SHHu< 1fLfAH }H H;Mu H [A^]FUHH1w0:Ht]DUHAWAVATSH IIH}HHEAL}HL u?I@H]LH޺ 1 wAI0:H[tA1H |H H;Mu H [A\A^A_]nUH)G]f.UH)G]f.UHAWAVAUATSPIHAFHEMdAuIIK)HIII9LFIM)DLHf.A 0HHuIIsL.HEI|LHH LHHI)LMtOHEIDIDI|H L1ffff.A 0 HI9uDAH[A\A]A^A_]f.UHAWAVSPIHHALH@HLLDH[A^A_]fffff.UHAWAVSPIHH{@ALHHLLLDH[A^A_]ÐUHO1Hj| 3 OOi‰WO13 O]ffff.UHGxV4GgE#AxV4GxV4AgE#AxV4uxV4D_ DO$O(1]L{ fDA1AE3D_HDEADDiADODD1A3 ʉOAuUHG xV4GgE#AxV4GxV4AgE#AxV4uxV4XLS{ A1AE3D_ HDEADDiADWDD1A3 ʉOAuD_DWO 1]UH1]UHOȃ]fUHAWAVAUATSHAIHL-xIEHEH=!z L}L DEADe΋C CC$CC(CHHL P0LL IMH;MuH[A\A]A^A_]ffff.UHtrGLy Aff.DD1шHƋGD1A3GGiOGDA1C3AɉGu]fUHSHHH}wHHEHEHHƺ "u&C CC$CC(CHuHHߺ P01H 1wH H;MuH[]fff.UHAWAVStzLx AfDDWDуȃEADE2DE1G3H}Hu1*iHuHSH}Ht$H}HtMt6C9C u HJCH  CHLRH([A^A_]IIH}HtH}Ht IH;HtLfffff.UH]ffffff.UH1t t]UH w r0]DUH+]AUH+]1UHAVSHHIH5 H"uFHIv IV0HPH5lHlHIHLH nH8:H nCH9eH mCH9ICIF$CIF$CIF@H$4CIFu@uH0 IFt$4H nC$C[A^]fff.UHAWAVAUATSHLLIAHAW)EHPD}HPHDLE1ue}u_1L0LPLm ?;]HMH@0uLLLL|H0HtH@>L}tHEH0H@uOH1҃}tH@H5(H:H5jHjHCII&I!I IHH@Ht`HPIH0HPD}DEuI5HH5H1H5.jHiH/IH+W) 1LeLL f.HD9sGLJIH8L輧LLHHtI_IHFW)H HoHHLE1D;EHFHtLAHEuH HtAGLIL3MtI>Ht_L]AHEuMtL>H[A\A]A^A_]IHQHHtD(Et@A\$ff.H LH5uEHHp\LAtIAt9u1A,AHIH5ЁH E1DAE0t0H{HEDDzHHpA t*H{H(ED1DDHHpC0HE0hu HADHxw Aű AŃt u BtE0ptHBȉA|(HH5H1aHH@HpHH{8LG{@Hڹu(HH5mH1}HDtH0EALEHBHMuH9HAD AEAHH}H5SDEHt0Au H}nHUH߾A8AH}HHAtOAHA8ȀDHHقDAAHD;bDHBHȃ{uAPHH5UH1IH}HtLHH:@u.HDLHE^Mt@AHKDH4ȀDLHڹE0AHlAt7IiHDINHHH5H*;HB$HC HB$CHtH{PHBHH0IDLHB@$C HrFxItHH0HhKDIvHxHHHIFLE1LuLe"D_H}HtQLHBAD;IL{@Ls@DIOHH4LCH}=k$Åx(CHMH4LC9]v]HMHLFH}HVLIH}IH}HtH}r@`$LA$Dpu#AD$t AD$t AD$u AƄ$HB`tAƄ$AƄ$HBx$A$tHJyA$HJ0A$tHHV1A$HHHWHA$LtHwIA$IAHfA$fA$fA$fA$u AƄ$fA$fA$u AƄ$fA$fA$u AƄ$IF$A$IFL󊀨$A$Lb}L|A|$Dtu IEHxt(HH5zH1}W))Hs8u D2H@DEDHHsPt$HXEDH1ҹEt"IT$8EDH19}H1[|H{AD$HCHH0H>LHHI$HHHtUxhAD$AD$AD$2HH5YzH1H5+[HZH,IHHH<MIM$HH11H1IHH^xTIHDHCIt"I$HH0H>H譺ADŽ$IFtHcH A$AD$ tADŽ$AƄ$AL$01t tA$\tu#ADŽ$ ADŽ$AƄ$DEt?A_ff.HL4MtI>HtWLUAHEuHHt3H~ IDEt?A\$f.HLDIuA0|)3w$HcTAAH59]HxLHDtAL`AA9HLqAEHI$IH0~0HIEHxL}uRA$0HH HMHMHHMHUHHE1AHx?!H+5HH0HxHH6AtMHH38EHXBHEHBHEHMHJHE1HHHHtLHHHt3E)E1!I!IHHt IHbHHtHxHHDIHHH5qH0H5RHzRHIH7I4I,I$7HHA$A$t!HAHH0I$H6HHAHI1Of.LE$HI$@E$LDHH A$HH;HHH8H=HHHt4<uLIHHHHH5_pLH5lQHQLmE$HE;$Lt I$@)DE|J<HM$@JHLMH(#HHtI$H"\A$fA$fA$"fA$fA$ fA$fA$$fA$fA$&HH@($A$tKHH@H0H0I$H4A$tH8.uAƄ$H1=AL$A$AD$$A$HHVA$(HVA$)A$tKHH5mH1PILwH(H>AD$t(0HH5mH1tI$HFHH0w3A|$0 +A$(HH52mH1.ADŽ$;|IFHH8?t$HMA$H8ZHHIFHHH5lH,&'=0H5NH13L\nLmA$dI$PIt$hCAD$$A$aA$$A$bHĘ[A\A]A^A_]ttttfff.UHAWAVAUATSH8DEĉMUIL}H}E11DAE;oHANH4H}J/HB@1A!H)mCE0AH 1V ~CE1rD}uRAA6H=mAEu E1AAuAAE1CAAAN94HvlL}DIHC_HPlLH}XE0MȋEDH}HUKmLBHH}HHE0HUȋEȋED1HuELH}HL}tAEAIQE9ot;}IDIHHLHH5oKH KLpH8[A\A]A^A_]HLJHTfffff.UHAWAVAUATSH(DMEʼnIHuIW)EL͜HH5jHL6H5JHJHIII IHDeEt5A\$HELH~{DADHEH<lII$JLHfHt H9El$M<$HEAD$ DM4AD$HAL$H[A\A]A^A_]HLH3ffff.UHSPHH{hHtH{XHtH{@HtH{0HtH{ HtH{HtH;HHu[][]qffff.UHAWAVAUATSHHIT%I|$H}HsB%I|$ H}Hs 0%Ml$0Hs0L%Mt$@Hs@L%CP$AD$PM|$XHsXL$I|$hHhH$H[A\A]A^A_]HaHKH5H"HHI?HtI>HtI}HtHEH8HtrHEH8HtaI<$HtSHUHAWAVAUATSHIw"I|$H}i"I|$ H}["Ml$0LN"Mt$@LA"AD$PM|$XL."I|$h$"H[A\A]A^A_]HaHKH5H"HHI?HtI>HtI}HtHEH8HttHEH8HtcI<$HtUHfUHAWAVSPIE~ffff.HAAtODIHHtH{H;HtIH;HtHI>HtLI>HHu[A^A_][A^A_]ffff.UHAVSHH{8H{(H{H{Hu?[A^]IIIH{(H{H{Ht4Ln![A^]f.UHAWAVSPIE~ffffff.AAtADIHHtH|HIHI>HtLI>HHu[A^A_][A^A_]UHAWAVAUATSPH}DghHEHANHr{LuDEtJ<`II$JLHZHt H-El$M<$Et$ LuDM4AD$HAL$H[A\A]A^A_]HLH'UHAWAVAUATSPI(IL I~AF AF$El$E;l$ tM<$gHI>Ht}vDADHEH<tII$JLHnHt HAEl$M<$HEAD$ DM4AD$LH[A\A]A^A_]HL H@f.UHAWAVATSII~XHtEfPEt8A\$fDIFHLHu [A\A^A_][A\A^A_]UHAWAVATSHIIHUH{E1HtHHMLP(AC tH{(HULPEHCMtADH[A\A^A_]@UH]fDUHAWAVAUATSH8IAEHIEH2IEHgIEfAE0IE(AE*AE,IE@HEI}XH}AE.IEPIEHIE@I}hH}IDžIDžIH}IH}AƅAƅAƅIDžIDžIDž0IDž(M`I(HEAƅBIDžHIDžxIDžpIDžhIDž`HILMMt IH@LIHHt HH@MHH8[A\A]A^A_]III=I$H HLRH]IpHt7Aht3Ds@I$NE}fH`N$MtI<$Ht6L4AIEuHE(MǃhǃxfAVfS0IHS(HUHS8U@AL}MHǃXHPt ILPH{@HtHPL{@LsHHCHHLtHHQIH{@HHH5eLIIH{@HHH5LI>Ht9EHHuP(t E}uI>Ht HPILe LuHLH@AH(L^L{Xǃ<ƃ8HEHC LLTL,HhI>HrH([A\A]A^A_]HHfffff.UHAVSHX1BucH@1HtXHH@(MHHXIƃu0@L0H54H1PH4HD'[A^]ffffff.UHAVSHHHy@1H$BHHHL@0HPHXAL9s?HbHH蘿Iƃ|L0H53H1茿Hffff.HHHH9HwL9sH&Hff.HHHH9HwHɾHEH1HLHEHHuH@0%HH@0H߾HҾH[A^]fDUHAVSHHHH@(MHH莾Iƃu0vL0H52H1膾HjHz][A^]DUHH]fUHAWAVSPIIHA~t&xxu IH IuAGIHXLHaA~t^1t/AGA9G u L AGI/AGIH4L,I?eA;^rH[A^A_]ÐUHAWAVSHMIAfEfEHEHG H8HMHH@@ЉÅu1fEft&@f@uHEIH9wA1H}AH[A^A_]HH}(HUH勷HG HHH]8ff.UHAWAVATSH`IHL@IL`HH}H5UH}HH}Hu1%+H}HuHUH}HuH50H}HuLHuLAԉH}HtH}HtܻH}HtλH}HtH}Ht費H}Ht褻H`[A\A^A_]H]HJH7H$HHH}HtkH}Ht]H}HtOH}HtAH}Ht3H}Ht%H_fUHAWAVAUATSHIIHLg@I$LhHHxH5$HXHeHhHX1)H}HxHh9HHH5H}HuHHH}HuLH8H5H}HuH8 H}HuL HuLAՉH}HtH}HtH8HtH}HtH}HtڹHHHtɹH}Ht軹HhHt誹HXHt虹HxHt船HĨ[A\A]A^A_]HHHHvH`HMH:H$HHH}Ht-H}HtH8HtH}HtH}HtHHHtH}HtӸHhHt¸HXHt豸HxHt蠸Hڸ@UHAWAVSHI׉uuHw H}LuLLLŖ1bHHhIƃuPL0H5,H1`I%H:HJwHOH9HLS@H[A^A_]@UHAWAVAUATSHHpAIHIt!IH{HtHH@HCAƅ IHtHH@IDžAƅAƅAƅIDžAƅEH}t I} L7HUDA0AEIHLD,AE}IHupfEfEHEIH@@HMLDAE,fEft#A@fHEIAƅIH}̔LDH+AEIIHhAI} x2AEILDH',AEAE.u E1uI}8Ht+H3HU/@E1<AH`W)pA8AExttLxA< LxI} HpD+AEA}xDxEAE1@HpL$MtI<$HtLHA9uDHpH4ߋx)H)xIILxH}Hp1A@xEAMxtpE0D9v91 E0D9sNI(H H9HpHH0/<t˃A@AAuvAEtgE1f.HpL$MtI<$HtֳLԳHA9uDHpH4NjxD)H̴D)xEI Iu[0茳HCHHH{ IHt HH@HIHt HH@IIE IHAID`IH`HpQH H`H~ H`HtѲMIIHp HH@0AHpDAM IIH`H s DE1䃽HxuHE1AAu;A@tGI@H ŊHHE1Ht @II L@ fDžPfDžRHDžXHH@@HPӉ޺ AEk fPft'A@fO XAAƅAƅHPݏAƅfEfEHEIE HMH8HH@@޺ AIEu7fEft+A@f@u"HEHH9wAE1HXH}PE AƅfEfEHEIE H8HMHH@@޺ AIEu7fEft+A@f@u"HEHH9wAE1HPH}躎E AƅfEfEHEIE H8HMHH@@޺ AIHxEu>fEft2A@f@u)HEHxHH9wAE1H}Eg ƅOIE H8HO޺$AE: H`tAE0$AE1`A}xtA}`HpHp(H8HpuOxHu>HHpHHtH;HtҮHЮxȉxyH(HpH(L~H6I`H(ߧME$xE;$|t M$p[DEtJ<DII$pJLH:HtH E$xM$pE$|D苍`A A$x1H(A$t1A$HXHDHA$t1A$HPHDHA$tA$HxuIL$ 1HHDMOH(Ht;HH84A}xuH8聁u;IuXHHHHHHt֬HLtsHHHHFOuCE1E1AIIH( IIHHcH;RRHLL}HH1q<HA|tAE1IHH߾/TpHHHHLLHHt蟫I~@H1AHhHDLR8LEHALxLDHHHH\$H$AAAEHA@AH HcHIIHH\RIIHH<Ǫ2H@|E1A/H@|A@AH@|E1HHtiEHA|HtHHFH5'?HHA@DEHHH/FHu5H5>HATIIHH訩HHOE1u,H5f>HHA@DEAHHtLEuiE1dHt()OuH5=HHA&TuH5=HHcAAHHtͨE1E HHHCOt(EIIHH{X~HCHgHHH9HHCCH{ HHHCLIHHtHH@HIAHHLJPHTxuWH5Z<HL5AAIIH裧IIHHHH@At0HHHHH@011AAEu:Ht HH@HLIHt HH@IE1EHt HH@HE1EEu1HLMu E1E1EI$H@E1LEHHt覦H8Ht蕦ELpIIHHtiH8HTvLIMt I$H@LH{Ht HH@LcIHt HH@HMt I$H@LIMI~(HHIFAF Aƅ E1HtqHpHE1bMt]I$H@LNIIH}IIIIMI$H@L~HP譃DxEtAA\$fff.HpL4MtI>HtLAHEuHpH}ߤvIIHդDxEt@A]ff.HpL$MtI<$Ht薤L蔤AHEuHpHt&rH}ӂH}HtgY`IIH}HtCLYHAu0@HH5H1P5H4HD'ADHĘ[A\A]A^A_]ףIIIIH}2pIIHPIIH}IIH}IIH蓣IIUHAVSHHtHHHI8HHH3IƃL0H5qH1'|ƇuAu ƇHG@HHHALEHZ@HH订H辢衢[A^]fUHAWAVATSAIIHtVHH@@AD|HH>Iƃ["L0H5|H12KA tmIHx(HH@AAIIHCIAƆH{HtHH@HCAƆ Iu MI1AtIAHEAtIAHEAtAt IIN 1HHDH0rIHPIAƆAMIHtHH@IdžAuAI~ ILAt!IAt IIAt IAt IIAtAtAICI~@HH@PADHHޟ[A\A^A_]fUHAVSIHH{PHu!H{@HPHHH5EHЅu^H;HH@(LMHHrIƃu0ZL0H5H1jHNH^A[A^]H)UHH]RfUH9|t]ËNW9|]fff.UHAWAVAUATSHxDhLhIMAJ<肞IAhtAI`1ff.ATH4H>1t H/uA49rAr^MfD@LD赛uLfff.ADALIITAAFSLyH˃wLp1fDHEE1D9Y#IHpHjH臝LHpHETHULHpD,fEfEHEHA IH8HH@@D HMA0Eu3fE0ft%A@f@uHEHEH9wE1䈕H}K{EfEfEHEIF H8HH@@D HMAE0Eu6fEE0ft'A@f@uHEHEAH9wAE1H}zEfEfEHEIF H8HH@@D HMA0Eu3fE0ft%A@f@uHEHEH9wE1H}IzEI`HMHH8AMtHuu1At EHUu1ALhtHMuIE HHD=HEHHpHt:DHx[A\A]A^A_]IL_IH}}y}IH}ly\IH}[yKUHH1L @DD E: HIu~H:HP1]UHGG]fUHGȉGuHP 1]UHHHHHu]H]`UHAVSHHHH{Ht HH@H[A^](IHLQff.UHHE1L+L/A:HItL7@B C: MIuA~H:HP1]ffffff.UHGG]fUHGȉGuHP 1]UHHHH Hu]]EUHSPHH`HH{ Ht#HH[]UHHE1L;Lp A: H@tE1L@AOBC:MRtL@fffff.B C: MIuA~HGHHP1]HGDUHGG]fUHGȉGuHP 1]UH]fDUHAVSHٕH[A^]IHLHfUHHHE1L'L@p A: H@tE1L@AOBC:MRtL@fffff.B C: MIuA~HGHHP1]HGDUHGG]fUHGȉGu HHP 1]@UHH]ڔfUHAVSHHH”H[A^]IHL1ff.UHHHE1LL@p A: H@tE1Lt@AOBC:MRtLu@fffff.B C: MIuA~HGHHP1]HGDUHGG]fUHGȉGu HHP 1]@UHH]麓fUHAVSHHH袓H[A^]IHݕLff.UHAVSLMI f.1)y{H߉HDD6A9wesFEBDуD4ϸA9|tF\\D9|DODD߸E9|uD;L|L[A^]ÐUHAWAVAUATSPIHIHIGHSIGIpHtҔEhEtBA\$ffff.I`L4MtI>Ht藔L蕔AHEuI`HtsIHHt HH@E0Et>A\$fI(L4MtI>Ht'L%AHEuI(HtIHt HH@IHt HH@IHtȓIHt跓IHt HH@IHt HH@IhHtIXHtqIPHt HH@IHHt HH@I@Ht HH@H[A\A]A^A_]IE0Et:A]DI(L$MtI<$HtLAHEuI(HtҒIHtHH@IIIHt HH@IHt荒IHt|IHtHH@IIIHt HH@IhHt:IXHt,IPHtHH@IIHHtHH@IL8II@Ht HH@LΑUH]f.UH]fDUH]f.UH]頑fDUH]f.UH]逑UHAVSHHHt>HH@(fHHfIƃuINL0H5H1^8H1Ht%HH@H)H9[A^]@UHAVSHHHt>HH@0fHH֐IƃuI辐L0H5H1ΐ8H1Ht%HH@H虐H詐茐[A^]@UHAWAVSHI։HfEfEHEFptbHvxH}gHIH}gnHIAL0H5NH1wiH HcHHv`H}:gJvXH}vi6Hv8H}l'vXH}kH@ HHHPH}lH]HLnHm1HYHiLH[A^A_]fetUHH]fUHAWAVAUATSHHHUIIHAGphIHtHHЉÅJH}I(HULGcuH}HPHuI8S<uλAGXu¿p,ILuAEHdHHIMH`IEHHIEAE I}(I]HHIEAEHHHIMH`IEIDžhMtL證AE$HuH\u"MIEH@LIG8HEEE;t M_DADHEH<IIJLHHtHEMHEADHMI AH}HuIHuH}Ht蓌AA;t MP|H}tIMLLHpMtLCAMHEAAAHAA\M`Mt IH@LIhHt HH@MhHEL(1gIIH}Ht 赋IIMtIEH@LIIH}Ht腋L蛋HAu0肋HH5H1蒋0HvH膋iHH[A\A]A^A_]IIIILvDUHH]"fUHAVSHIHHHHEHHH5HUH}HtzHH@(LЉH}HHH@HIH}HtHH@HIH|HAuQcHH5H1sKH@Ht*HH@LЉH6HF)H[A^]Hfffff.UHH]UHHE1LLA:HItE1LAoB C: MItE1L2fAUBC:MRtLe@fffff.B C: MIuA~HGHHP1]HGHGffffff.UHG G ]fUHG ȉG uHP 1]UH]逆fDUHAVSHkH[A^]韈IH蔈LȈfUHGpHx1]ff.UHH]fUHGG]fUHGȉGu HHP 1]@UHH]܅fUHAVSHHHąH[A^]IHL!ff.UHH]醅fUHGG]fUHGȉGu HHP 1]@UHH]LfUHAVSHHH4H[A^]hIH]L葇ff.UHG`HhO1]ff.UHH]քfUHGG]fUHGȉGu HHP 1]@UHH]霄fUHAVSHHH脄H[A^]鸆IH譆Lff.UHAWAVAUATSPIHIHIGH#IGHXIGIHt HH@IHt2IHt!EEtAA\$fff.IL4MtI>HtLAHEuIHtÅIxHt赅I`Ht觅I(HH[A\A]A^A_]IIHtwIHtfEEt7A]fIL$MtI<$Ht6L4AHEuIHtIxHtI`HtI(HtL"[A\A]A^A_]фffff.UH]tfDUHAVSH_H[A^]韄IH蔄LȄfUHH]0fUHAVSHHHH[A^]XIHML聄ff.UHAVSHHHHH H`HCHht-\H`HHhHt HH@H[A^]M#IHB#L賃DUH]f.UH]頃fDUHFAHWHG H)I9DGEt1fHWHWHA9uDHHGHtD1]@UHAWAVAUATSPIIIAG$I_H)AL9IGAG(tIHLHAG)tA,LH%AG,A_$MtA1L9@DH[A\A]A^A_]fUHAWAVSPIAHC t{DCMtE>1H[A^A_]@UHSHHHC@BHC@BH}1-uHiM@BHcEH17Hi@BHHC肂HC@HC8H[]UHAVSHIHHC HK(HS0IV0IN(IF HCIFHCIFHHKINIH}1蒂uHiM@BHcEH1蜃Hi@BH+IHH+K@HK8HK8HC@INH[A^]UHAWAVAUATSHHIIHLkXL̂Ee@LƂEE1H{h HC0HK8HS@HUHMHEHC(HEHC HEHCHKHMHEH}1踁LcuHiM@BHcEH1辂Hi@BI+$HE HH+KPHKHHKHHCPHMHCX@Dt(IHC0HEIHC8HEHuH{hH1P&IHC8HEIHC0HEHuH{hH1PAE1EtH[XH謁Ds@H要EDHH[A\A]A^A_]fUHHHWHwHHABsH$ffffff.HHHHHwHABsH"ffff.HHHHHwHHDHHDHHi@B1H1H]ÐUHHHOLGHGH=ABsHIHHH=HwHABsH#fffff.HHHHHwMLDHHDH1HH1I]@UHHHWHABs HHHHHHwHɿHEH1H]@UHGG G]fUHAWAVSIɁADCuGwAAfff.AAƸA6DE~1D=wDD9rHHHHfIABs LDHLHIIwHҾHEIH1H[A^A_]ff.UHDWG HABs HHHHHHwMHLHHEIH1H]DUHAWAVSIȁADCAAfDAAøA8DAAEs1DfDwDDD9rHABs HDHHHHHwHHHHfHHEIH1H[A^A_]fUHHABsI#fffff.HIIHLwHiHHHEII1H]DUHAWAVAUATSHXAIIHHHEM0A HEEIHEI(Ht I H;MtDIdž(H]H I(I HtAHHMHEu_1HtkfI0:iiω:ziPF߉zI(@<2I H9sHH}DxI I(AI~0tVI IHHt I9@t: IdžHH IHI@HtAHa0(zHHCC HHHOHCI1 DeHCLi EHCLctAHIHt HHPIHtHPIIdžP1IXuK0tyHHCC HeHHHCIPHtC IXH{HtH{t9 HC HCHCAH IPC,C(C)C$IN0HtHH@E1HHH%HZI^(1HtHH@E1HHH}HEHHH5HUHuHHEHEHUL_AŻE8HEH}HHH5OHUH}Ht!IXHH@(AŻEHEH}HHH5HUH}HHH@(IAŻEy(wIAGHIMtAGW)EHEIGIG IGNwIAD$HI$AD$ Mt AD$AD$I~0HHH@(I~0HH@0HuHsAG1ɻ9IHHBuAWHvH#HvHMI$H@LI~(HH@(LL1E1E1AŻEu1Mt I$H@LMt IH@LЅu1H}Ht HH@H}Ht HH@H}HHMtIHH@IL1DDHt HHPH4HH;EDHX[A\A]A^A_]HMtIH@LHH}Ht HH@H}Ht HH@H}HuLe HH@LeMt I$H@LHhuuvuH8uUHAWAVAUATSH8IID$8HEH@8H@0HEH@0HEM|$0MtIH@E1LMt$(E1MtIH@E1LMIHH5HULM(tHL}CHHHtHKrH]H}Ht@HH@(It$` ЉÅ_H}HH@0LHЉÅ<E11Ipf.I$Q,MDDtAEu@A9DI$A$I$ HUH A$HUHJ8IAHuID$XI9xI$Ht2HMH H)HrHH@ЉÅID$XHMH1HHI9tLHHtE0A$tHAHuI$@,I9@(Dx)@$I|$0I$ I$(I$HsI|$0HH@(A$ I$HI|$0HH@0I$HI$I$ [jHH}HLmHH@I$ I$(HuHNHF HFI$I|$(ML$HHH@(1E1ЉÅuAI|$(HtHH@ID$(I|$01HtHH@ID$01H}HLut MHH@Mt IH@LH}HtHPH8[A\A]A^A_]HMt IEH@LH}Ht HH@HqHqHHeqffff.UHAWAVAUATSHhAI(%qHCHHHtHnH]EMMt'@EKIH@E1L*HKE1HtHH@E1HILeHEIHH5HULH}uIP@x$_pIAD$HI$AD$ MtLnHEI\8HC8HC0HEIHH5QHULHC0HEH}HtAu HH@(AtuE1H]H}Ht HH@Et1tHH}H9HH@+HoHEIHH5vHULHuHt%AHEI`HUVÅSHEIHH5 HULLxH}Ht!IPP$HpHH@(ЉÅHELxIHH5ԱHULH}Ht!HH@(IЉAu E1tH}Ht HH@EoH}Ht?HH@(Iu` ЉÅJH}HH@0LHЉÅ'E1MNffff.AD$ tAD$лA9A HMHAHMHA8IM;}XyIHt,HEHL)H=rHH@ЉÅHEL0AIHHHuHNHV HFAD$A H}At AAL$ IHu@I;@HpIHnIHH@(AIHIHH@0I IHL蔀kHLxHlHH}Ht HH@H}HHH@ HEMLHIHH@(L1LEЉÅuSaUHAWAVAUATSHDIHIH+HHE_A+lGÉGIljtDžpW)PH`覵LLE1L@LDAE;l$~DI $HfDž@fDžBHDžHH0HH0{H{Hx5HHx8u{ubHsLD7IDXEY&A^HPL$AMtI|$=Le_HEu&LH9w\;I%I%Im;H0H57Z<uyH H5@CH LHpDH Ht^ۋEÉ\@IH H^H0H5ߎ<uOH0HL賴LLHt{DHiIHHth-^aHPH0LREȉH0Ht]LQ<Dn(IH0Ht]H@<#$HLMIHH5LM@HDž)ffff.MHHHH1^uHi@BLcI1_Li@BwLi@BLHD(H1]uHi@BHcH1^Hi@BH HHHHHHHxHpHhH`HXHPIM)L9LDL1IILHjH ^_9~)؃_HcȅɸHHLHHH PHЋIi@BH=HBHH9MHwptHHHà I?BIH@LIH@LIHH5LIHH5pLH HHHHHHHxHpHhH`HXHPHHH H\_XHcHIIHH PLIHH5LIHH5LH H(H HHHHHHHHHHH0=H/[_[HcHIIHH LIH@LЋtAW8$=-$HPgCy E1ƅHPHfxuDxƅhuH5ԉH`LHDžDž DžƅHPBxHPHfxuD@2HPBLAAADDtHHD$HHD$L4$AHPH߾A$A"HH`JHLHH5<uHH5"HH`菰HH<LAHM"AEljDž'E1LL%(xL5HDž@IAMIK| 1DATÀÿs Z BCH9tIIzIrIjIbIZIRIJIBI:I2I*KD HC LX&HHH@HHHHHH5HIE1틅tI E1fAwA]A]9GLLLLLLLxLpLhL`LXLPHHW_ XHcȅIHLHHH PHAŋt94ELHH@HHHHH@HDHdUHDtAH4HApUD1I HDžA ;}f.AwD;wDH@3fffff.Aɀ @uHHcƄ @:HHcƄ @ HcƄ@HHHHH@E1ADHDHD;HHH@HIAEAwAt$3tAt$9GIHHDžHPH$HD$ D$HD$HD$HHDLu-AE LLLLLLLLxLpLhL`LXLPLHH+HT_XHcȅɸHHLHHH PHHHN,IhHHH@HDAHAE1HHHH@HHHHH5HIE1H E1E9HJHHHHHHHxHpHhH`HXHP1HHHHHS_ XHcȅIHLHHH PHIHEtHH5oox<ƅE1fDAO4H_NlH@L'H/Hi@BHCHC -HCPHCHrLH5LeA LȷAEGALr#ALAE9sHHD8EzHDžI\$8HC HK(HS0Hs8H{@HHHHHHCHKHHH}1-LsuHiM@BHcEH1.Hi@BI+He,HH+KPHKHHKHHCPHHDžHDžID$XEHt;I$1D1fxHH8HHHuDHMHHH@HAE1HHDž8ƅ<MIHE1fHIMD;MiKD5HEC5Hu FHC5 N HHHHBH1HHHDKD5XK\58HEHChHHC@HC@BHC(@BH}18+uHiM@BHcEH1B,Hi@BHCHC *HCPHCH IEXKD5XHx xHxHfxuHɸNCL5 M1HLr^fff.H9A]HIED AE IXH5"LAIHEt1H1AEHHHE11I&IňHHHH;sDHE1LHIfHA9sHA$DEAHIEoD8E_HHX8HC HK(HS0Hs8H{@HHHHHHCHKHHH}1(LsuHiM@BHcEH1*Hi@BI+HO(HH+KPHKHHKHHCPHHH@HHHHGXHt3H11@WHHHHHLjuHMHH@HHH1AEuHHH@HAH(HX$H}Ht&D}Et;A_f.HxL$AMtI|$#L&HEuHxHt&DHh[A\A]A^A_] IH'HXJ$IH}HtG&D}Et7A_fDHxL$AMtI|$L&HEuHxHt%L0&%DUHAWAVAUATSHHLDHAIHEHpH]H|EAEƉHuHIA@yHDLHHDžHH1IAH9-HDž1ٷHDžH覷HHHtHu AIHL1HDEHHD1HHHDHHEEHLHHHuADž@JH6#HDžhHHH5eHhLHhHtXHDž`H}H`_ At3HHHhHHH@HEHJD?HHHHJD? HJD?0BL?(Ht fDADiPFAD HuBD?8E1MtJD?8ABL?H[A\A]A^A_]IHt"fff.IHxuLL@DUHAWAVAUATSPIAGAGIGPIGHIG0IG(AƇAƇILJ(IG(HEHuyH &yHHIpILJILJILJILJILJILJILJII8ILJhILJ`ILJXILJPILJH(YH[A\A]A^A_]IEhEt6EefDI`JAHtH{HIEuI`HtwIXHt HH@HwHI8IHILJHHwHII(וILJ(IHt HH@IHt HH@I0Ht HH@HEH8Ht HH@Lfffff.UHAVSHH7wHHH{?H[A^]}IHrLUHAWAVAUATSH(IIIA\$B9~a)HcI$<.uRKH4H:<<u?LmLL%SLLLUH}HHH}GL.J^~HH]H߉LRLHLGUH}HtIBHH}HtHAuH83LLULLLTL^LH([A\A]A^A_]ÐUHAWAVAUATSHXLEHAAAL}LSVEHHEHCHEHCHEHCHEC Hs(EDuDmDeLbYHuH}H}HtHX[A\A]A^A_]HH}HtHffffff.UHAWAVAUATSHMLuȉIIH}UEnx II $fDH4DnyLuE9n s LDzOM6ELmCHEȋPA)KHtvHf.UHSPHHHP0LAH4I HPHH[]ffffff.UHSPHHHP0LAH8I HP HH[]ffffff.UHAWAVAUATSPHDkD;k tIEuL;E1$N$LIL;LLLMt LDkL3Dk DkD;ktLEu L{E1%N$LdIL{LLLcMt L6DkLsDkDk(D;k,tLEu L{ E1%N$LIL{ LLL Mt LDk(Ls Dk,Dk8D;kHt%L#CȉC[A^]fff.UHG@HG8HG0HG(HG HGHGHGHHGhHG`HGXHGPHGH]ffffff.UHG@HG8HG0HG(HG HGHGHGHHGhHG`HGXHGPHGH]ffffff.UHAWAVAUATSHH$ H(LmLHκ*LH}LH}HtH(H@0HLmL@L0LOH}HXHWAu3H(H\H}Ht4tWtFH}HtH}H[A\A]A^A_]HH}H)H $HXL1xcLL/qKMH( $LHALHHLIH(DDLCH0Ht61H@HM1HHH0HtH@Ht HH}Ht HH}HtH}Hff.UHAWAVAUATSHL@HH0IIIDžLADžHtLLHA~tLLLID$0H(1,f.H}HH0t<;C8MtI?Ht/L-AIEuHL}LetHAŋEH}D;oDHHA{tLH[Aƃ}Dt"A|$tLL-W)EHMHL$$H{DHLEMEH]DeE3IL}DmEt?AEIffff.L#MtI<$HtL AHEuMtLL'L1HX[A\A]A^A_]UHAWAVAUATSHLHL(H@40IL8]uLByƅ$u$LuMt2H@LHHHHhP8HcpILA H(x$1fDAE09s>IM(H@xHH8rÄtHHHI0H1E1ED@ff.DHPH8HIH<AE0$HP9\DžL01;fffff./H0HtHP$A;M LuD9st㉍$HPIMHHSLH@`EH GH0H Hw t HHLH H-# HP$8(Ht+ HHH@*BHHHHtHHH@0H$E1LePffffff. _uPzMA=ADPLuHEHH`H_)u HHH@DPAHHt  tD HPȉ$IM(HHHHH}H@cCH} EHuH`1u=HHHuII{IH}eDuACW)PHPHHuEL1HyDDXEtCEnffffff.HPJHtH;HtHAIEuHPHtDC6HHHu@IDXEt7A\$fHPLDsff.H@N,MtI}HtLI΅uH@HtL8H}HtH}HtL(HPqIH}HtH}Iwu HHL@|W)Lt$HHH$D$Hߋ04H L@L>ADEt?Ewff.HJHtH;HtHAIEuHHtE틅(AEʼn(L8L0IDEtDA\$ffffff.HLA\$fff.HELHtLIͅuH}HtH}HMtEPAE؉DLeqIDeEt2A\$HEL1]u͉H[A\A]A^A_]fff.UHAWAVAUATSHLLHxHpHHE8H@0H@(H@ H@H@H@HHE@*uYHL} E1E1HDžHDž1{ff.LE9HHHNQtEHAFID9uH1HA9v%HB0HHJ+HHAD;WHHHuHHH۸HHH} HH@(HAHIHHpHHHXHHLHpHEt5HpH8L<uxH8t/tE0DLLH7FAEu3LAH6FAEu6HE@&tr8LAD%IH8H|7HH8Z<tD0tD|HD9t HGDEdJ<HDHHLL MtLEHHHD4DHD(DE1Hu'Lu IH@pLIH@xL1AAAH8Ht`E1EAtH}H`'}HH5*m%HHH5W%L LHH"H}L'LH HtHHtHHtHUDJ+B*J-HӃHHT$HUHT$HUHT$ $HEAHHhLLE C-TDHHH@HC*HH1LAfDžfDžHDžHHH@P,HE1E1NH5BH1dIL1IIH Ht_LHHtGHH2H}vLidD(E@DDHH5:#HHHHUp H}0Hd%HHtE1HHE1ILIHHLtpHH[H HcHDRDED8IH{HHHLAE1EuE1HE@*uH-AH} HH@xDAH`HtHpHtH}HtH}HtxDeEt8A\$fDHEL4MtI>HtJLHAHEuH}Ht)HHtAEucHE@*uLLXLHHLx0HHHH8HE0x@EDAHHtHHDILH`Ht hIE1HpHt OIE1H}Ht 9IE1H}Ht #IE1DeEt;A\$fHELIH@(LHЅIH@0HLЅudHHHHU8HB HHHB(HHB0DžHHBHHBCHHH@0HBHHt HHH@MtLHHtH[A\A]A^A_]LIHHtHHt~LkH #_HH5<H1HhIMUHAWAVAUATSPIIIEIEA~AHtHIEE} M1f.D9sG IH HQHPHQHPHHIHHHHAMQAUI$HH[A\A]A^A_]IIMI<$Ht`L@UHAWAVAUATSPIIhHt0IXHt"I0HtEgEt4A\$fIGL4MtI>HtLAHEuIHtLH[A\A]A^A_]IIhHtIXHtI0HtEoEt7A]DIGL$MtI<$HtYLWAHEuIHt8L\Ljffffff.UHAWAVSPIE~ffffff.AAtADIHHtH HIHI>HtLI>HHu[A^A_][A^A_]UHAVSHHHtiHHtXHHtGHHt6H{pHt(H{HHtH{8Ht H{Ht HH@H{Ht HH@H{Ht HH@H;HuT[A^]IH{HtHH@IIH{Ht HH@H;Ht HH@LtH[A^]`fff.UHAWAVAUATSPIAE(IE IEIEIEIEM}0LfAEHIE@AELIEPMeXL:I}h1H[A\A]A^A_]II<$HtIII?HtEeEt>A\$fff.IELUHAWAVAUATSPIAVE1fDIJ{tEEEgFHtH;HtHAVIJH5 tI>H5u H HLH{uH5HCH[A^]IH;HtLIUHAWAVATSHIW)EHEHHX=HuL,DeEt@A\$fffff.HELHtL AHEuH}HtDHĸ[A\A]A^A_]IH@HtķDeEt@A\$HH]f.L;MtI?Ht菷L荷AHEuH}HtmL觷Zfff.UHAWAVSPIIFHA~t/1fIFLI@0II-IM"IIE1`詯IAFH8IH@IFH0IFAF I~(H(IFAFMtIH@E1LЋTHMHH@[X0MHHhHH\HHtӮ[tM\MHxHhT:I~AVHx~1ۄu:IELxPHxLHA׃DEDHHxHt5M\\IEH@HHLлMAIHHuMAIHxHuM*跭Mff.DHHH;HH@(ЋsHHíAD;rDP1ۋ\E11Mffff.MMHE1탽t RtHH`HAMMH`Eu!IEH@0LHлIH@(LHhHtлtHXH`\[HHDPIEH@X\LHHл9IEH@0LHЅDEMHHtMt IH@LЅvhDHHH8HH@0HhAD;rzIL蛫E1HHt聫MIH@LHhrHhIEH@`HLAHh=EH[HH`Hh貨DHĸ[A\A]A^A_]IHhH=IH HHHh`L諪ffff.UHHu!tofff. G HuRAwt@IHHNJA0Ht HH@L辩H襩DADHEH<蛩II$JLH蕪Ht HhEl$M<$HEAD$ DM4AD$LH[A\A]A^A_]@UHAWAVSPIE~ffffff.AAtXDIHHtH{HtH;Ht HH@HۨIHΨI>Ht軨LI>HHu[A^A_][A^A_]镨UHHHH@E]UH6H/wH 9H<]ff.UHAWAVSPII1fffff.A;_0sIG(HH0I>ÄtˉH[A^A_]ff.UHAWAVAUATSHXHIW)E)EHEHH_HuHSE1HEHEDuI(HEHED}H]$fffff.oH}HtaIE9OHH}HEJ4HE9s6HEJ4H}H}H5HuEHELHJH}HrhII(IDuIH}Ht踦H}Ht誦L}Et7AFIDL+MtI}Ht~L|AHEuMtL]L}DmEt5AEI@L3MtI>Ht/L-AHEuMtLLHEt7AFHMHL#MtI<$HtޥLܥAHEuH}Ht輥ELet8AGIL3MtI>Ht菥L荥AHEuMtLnHX[A\A]A^A_]ff.UHAWAVAUATSHIH}El$Et;A]f.I$LHr{LuDEtJ<`II$JLHZHt H-El$M<$Et$ LuDM4AD$HAL$H[A\A]A^A_]HLH'UHAWAVAUATSPIIX؛HHLEnE;n tM>QH]DA\H<虛IM&JLL蔜Mt LgEnM>A^ H]DIAFHANH[A\A]A^A_]IH2LfUHAWAVATSHIA$HCID$HCID$Mt$HsLM|$(Hs(L;HC8ID$8C@$AD$@CA$AD$ACDHsHAD$DI|$H[A\A^A_]H HLI>Ht耚H躚mffffff.UHAWAVATSIE~EtCEgDIJHt#H{Ht*H;HtHAIEuI>Hu [A\A^A_][A\A^A_]UHAWAVAUATSHHuIIGI~AHtH赙IEo L}E1DAGHAOIHIE9sa肙HHEHN$HCHI|$HtPHI4$Md$HLMLcI#IL}H[A\A]A^A_]IHHEH8HtL(fUHAWAVAUATSHHuIIGI~AHtH赘IEo L}E1E9 蓘IHEHJLHtI|$HHcAGHAOIL$III<$Ht/IIL} ILHEH8HtL=H[A\A]A^A_]UHAWAVATSIEfPEt6A\$@IFHLH"H2[A^]ffff.UHSPHH{NH{0HtHPHC01H[]fffff.UHG 1]UHAWAVSHIHHHEfEfEHEHOHMLPLsH@LT{tOH9LuH@HHsH@.HH@o{(tRH9LuH@HH H@.HH@HH@H}iH@H6#6Bru {PHsHH}itc C[Hsp$HIH@H諑HsH}5nR$uMH3NuCCYt=Hs`CZt1HshCXt%H0H}Hn{@t Hs8H}hH]HLpHo1]HIH}oH1HAu3HH5rH1(AH HH BH H;MuHĨ[A^A_]ff.UHAWAVAUATSHxlUHuu_ H0t E11t2HG11}uHUHHrH9uH}LH}HH@(пH&ILMt IH@LALHu1s0HL}CHmHHHCHtHHxHEHX0Ht HH@HHxHxHt HH@HxHX(p@H oHHH@HHtH!H]ȿ(5EDh@HIHJIHXIVIF IFMtL貈LplE1HE<DM|$L}l@H}5DuH]HDuDhD9r]E1HpHt HH@H}Ht HH@HxHL}t HH@MIH@LH}HEHG0HG8貎AEuHE}HMu&)IIL9L}IIHEH]HAL$H}HH@8HUЋMAAEgIIH}HyHH@HpkH}HH@@uAAEH]Ht HH@HHEHxHt HH@HEHXH}HtHH@HEHELx@ @!I4$HEHx0HH@011AAEHxL~HF F(HpHH@(HU1E1LMAAEuNHEHxHxHtHH@HEH@H}HH@HЅMEDAH}HH]t HH@EuIIHpHtHH@IIH}HtHH@IIHxHt HH@H}Ht HH@L貋HAu0虋HH5H1詋2H荋H蝋耋ADHx[A\A]A^A_]3IIHMDUHAVSHЉHWH0H H1HQHVMHHIƃu0L0H5PH1HH݊[A^]DUHH]rfUHAVSHIfEfEHEAHH@@HMЉÅufEft@f u f}A1H}hH[A^]HH}hH8UHHкH]kff.UHHк@H]Kff.UHHк?H]+ff.UHHкAH] ff.UHAWAVAUATSHxHxpAIA@I|$BƅwH}I|$HH@0DHMLELMAt'AH}zgAAIHuHt}Ru H}ofEfEHEI<$HH@@DHMЉÅufEft@fuHuH}H}H5AH}fwHxHL8H}HuH2]HxHHH]HHuLHH}Ht H}Ht^WIIH}HtH}HӇևHHHuHx1HEEI|$HH@(DHUHMAtA:E;pu AE1$uAA@}wE1AH}Ht&ADHx[A\A]A^A_]IH}jeH}HtL*IHUHAWAVAUATSH8IAIIHA HHMLELMDP0EȃQuw]A9\$ s LuA\$I $GI$1ff.HU2HHUЉ4H9rA\$I $E17fEfEHEI?HH@@HMDAEu#fEft(A@fuHuL!H} dAD$I$I\$H}cE1;ILfEfEHEI?HMHH@@DAEfEftIA@fuxAD$A9D$ u LI $.AD$HuLH}6cE1DH8[A\A]A^A_]HH}cHHH}H}bfUHAWAVATSHIAIÅ1A$ tI<$fEfEHEHH@@HMDAЉE0u"fEE0ft@f u f}A1H}[bu1Et1HϷL1H[A\A^A_]HH}"bH҃f.UHAWAVSHIIfEfEHEAIH?HHMH@@ЉÅuLE؃ 1ۅt=@6wH RHcHEE HEEIA1H}naH[A^A_]HH}UaH#UHAWAVATSHIIIfEfEHEAA$AD$I?HMHH@@ ЉÅu7fEft@f@u#HE1AtII$A1H}`H[A\A^A_]HH}y`HGUHAVSH0@HtXHH@(MHHIƃu0߁L0H59H1HӁHƁ[A^]fffff.UHH]rfUH1]UHHHHy1Ht%HA(HEHtHHEHH HUHP0H]ffffff.UHHt1ttu HtG]ÿNH5UH1UHHGG GHHGG0HG(]fUHAWAVAUATSHXMIIIAƅIDžIDžIL)IIE0AE@HUAE(IE IE8AEPIEHfEfEHEIH@PLGЉÅMI#tA$M1tItuMtA$E0MtA$E!NH5H1AE$H}]fEfEHEHUIH@PLHЉÅtH}]+HH}7M1t0tuE!NH5fH1AE(H}7]fEfEHEHUIH@PL7ЉÅfEftI}8ft H5HuH}\fEfEHEIH@PHULIЉÅfEftI}Hft H5uHu.H}u\}t1A$1AE$MILLLÅfEfEHEIH@PHUL$ЉÅuAIMȻ@t&u#HcMtt uMHMH1H}[uVMIHL)I1At/I $II9sIAE L)IE0 1I9vAE!1ۉHX[A\A]A^A_]HH}B[H}H}1[HH}H}[HH}H} [HH}fffff.UHAWAVSHIIAfEfEHEHH@PHUؾ,ЉÅu>Eػ@t*u'HcEtt uEHEIA1H}fZH[A^A_]HH}MZH|DUHAWAVSPIΉII?LzuuI>1HtkIHIH@tAHEHHH5;HUH}HtHH@(H}HtHPIwXHt I>u1H[A^A_]HH}Ht HH@HV{ {H+{UHAWAVATSH HIHaHHEH{81HtdHH11P0uSLLDžH{8HLLP(u"Ht,1H9s1HRtH H H;MtzAF"1H [A\A^A_]ffff.UH1]UH1]UHHHHy1Ht%HA(HEHtHHEHH HUHP0H]ffffff.UHHHHy1Ht)HHA(HEHtHHEHH HUHP0H]ff.UHH1]ÐUH1]UH1]UHAWAVAUATSHHILHHHHEH;Ht HPHH{HtHPHCH{HtHPHCHC0C@C(HC HC8CPHHHCHC,ƃHǃ)HH.xHH4HOHC HW)IxH:HDž81Hx@AFtIV HhIcVHHHPE011HHHHH HHHHH1HD?wDLLLLLH(HDHHH HHHHEIIH9gHH@L&Lu!IcH8 LLDHJHAt:LHHHHAgEe"AE&AHAGE1Hfffff.AfH3I蚕AHtPIHHtZYHHtIYHHLt1YHHuLH* YHH@HI}Ht HH@I]HHH@I}Ht HH@HIE1A>HLH(AuE1HH HHtcXHHLtKXHHt:XHHt)XHHt HH@EY ZIHPLLHt HH@MtLWHHH@HHH@ H11AA1ɉDž .DD DLHDID;xmE9t DhHHMDEtJ<WHDHHLL XLHtVDHMHDHDIHIHH@P‰AOE1LxD &oVE ȋ AH@PB !A9D9uЉ HDE|J<VHDHHLLWLHzpILHH8U@HHD|HH|HCHCHC0HtH!THxUHH(VHiVALUHHH@0HHH0U1E1DH0DL(MfTEMML(H0HHH0 ;#HHcHx AHIH@N AAAtvIAAyPuR1fIIHHHxr3HBH8@HH A AAyP9rLBH0D9 IJIMHMMDEtJ<SHDHHLLTLHMHL(H(H8HH@0111ЉA`S@HHX4HHHCHCXHCPHtHOHH(HHMt HH@HHHxHt HH@HHXI^HHt HH@HHHxHt HH@HHX1I~HtHHH5HHI~HHH@(Hx1ЉLmHL`PLHxX@HxLtLHI<$Ht QI$HH@X@QHHAPHH@X@H1AFu*1A u!HHH1A|u 1H9uHAINIVIvHƅHEHHKHHHHHHK8HHKpHƅHHIHIN HLH`H 1SH=HHXHGHH)HItHM9LL)H9HFM$1LuTHLH+ JD1fff.HH9sT848HH HWA<1tI:H9I:HHIC (CD(HH IMAtL+ Lƅ1Hƅ'IDHDHB4) ttHBzHH HINAHDI9[IHHH HqHHH;X5H 1Hfff.:HR H9r0EM;HDHHH@NHMEMt AMDL9uH@BLuAEDI9LH)HIEH#H; HH+ H;HHaADž@ HH9vDž@ E0u!uƅAƅ'HH8HyHH8HDž0u91u.HH9s H1A/HB HBHPtMHHBAHMu H&HHHHxAE i/M6 H0H9 ШHt= 'H $HLȀLIIHIފLxIވ$H f.L9s؉H8Ht>HHt>HHt}>HHtl>HHH;Eu\HH[A\A]A^A_]IHHt 4>IHHt>HHt >LG>=U>IILUHAWAVAUATSH8LMMĉUHuH}1HUHEHHEȅHEH@HULAzDDyD;y tH[DADHEH<I]=HM.JHLX>Mt L+=E~IHEAF LLMDHUȉAHEHHUEBP1fff.A:H[t3D9IBHH/Mg81LLAAƆHt HH@HMt I$LPDH[A\A]A^A_]IMIHt HH@HMt I$H@LL.m.ffffff.UHAWAVATSHIA\$L5oL} f.˅xeHEI $HH8HHLLH}HtHH@(H}HtHPHH}Ht HH@H .H[A\A^A_]-UHAWAVSPIA^:ff.IL:SAH}oEyH}LrEn7H}HxH}DL]kH}HurH}Ht&AHuL#{AGy`H}E0#t>*E0t@HH}HtH}HtHAGAGAAE;njDIH<:RF$(DHEyEfDD)IHH}i}H]{u6atrt0ɃeAGAGAG0ɃsHHHuK0HuH9ttn0Ƀ~uqr JC0Ƀs.fbtIRgt ktmu> tu+(@)ѾH0H9sHIGAGAĄEEكH}Ht8E0H}HtDH8[A\A]A^A_]fUHAWAVAUATSHHIHuH}E~Et'A_IHQH]DA\H<9IM&JLL4Mt LEnM>A^ H]DIAFHANH[A\A]A^A_]IHLUHAWAVATSIE~Et`EgDIJHt@H{HHtH{8Ht|H{ HtnH{Ht`H^AIEuAF[A\A^A_]UHAVSI։HOHH@HHt HH@HI>Ht HH@I1MHHIƃu0L0H5CH1HH[A^]UHAVSIIAFPHHtDH{HHtiH{8Ht[H{ HtMH{Ht?H=AFAF[A^]@UHAWAVAUATSPIIHHLEnE;n tM>QH]DA\H<IM&JLLMt LEnM>A^ H]DIAFHANH[A\A]A^A_]IHrLUHAWAVATSHIII^(HkH}HLfHuI~8H}Htu:3H5{H1)HH}HtHEEtDA\$ffffff.ILHt HH@H{I~Ht HH@H{I~Ht HH@H{I~Ht HH@ЊC $AF C!$AF!M~8C"Hs8$AF"C#$AF#C$AF$C(AF(C,AF,HC0IF0L^I~HHsH^CX$AFXCY$AFYM~pCZHsp$AFZC[$AF[C\AF\C`AF`CdAFdHChIFhLZ^LHHHG^MHL1^MHL^IH^AAHI$AHIHI$AHIHIHI$A $A  $A  $A  $A  $A $A[A\A^A_]HI?kHI?GHhHGH#HHI<$HtI?HtIHtI~pHtI~HHtI~8HtI~Ht HH@I~Ht HH@I~Ht HH@I>Ht HH@Ht'HIHAH9H1fUHAWAVAUATSPHIHIHCIGMwHsL[Mg Hs L[HC0IG0Mo8Hs8L[IHHsH[CX$AGXCY$AGYCZ$AGZC[$AG[C\$AG\C]$AG]HC`IG`HChIGhHCpIGpCxAGxC|$AG|H[A\A]A^A_]H$HHI}HtI<$HtI>HtH4fffff.UHAWAVATSIE~Et`EgDIJHt@H{HHtH{8HtH{ HtH{HtH~AIEuI>Hu [A\A^A_][A\A^A_]Off.UHAWAVSPHC H%"HHH HHxHKHHKHHCLs(LEXH{`HtVLf.UH]f.UH]0fDUH]f.UH]fDUH]f.UH]fDUHAWAVATSHC(HC HCHCHCHC,HC0L{8LVH{HVC`HCXCdHChL{pLVHHVLLVLL|VHpVƃfǃ ǃ [A\A^A_]II?kII?GIhIGI#III<$HtI?HtHHtH{pHtH{HHtH{8HtH{Ht HH@H{Ht HH@H{Ht HH@H;Ht HH@Lw*fff.UHAWAVATSHLsLVUL{ LJULc8L>UH{H5UC|fC\CX[A\A^A_]H#HHI<$HtI?HtI>HtHUH1H s tHHu]ÐUHAWAVAUATSHAIHA@u?A~ I~u ?HuAH}H޺PZO kfaAF1H5ffff.s t1HHu0m05 fH}SA~ H 3%Arru-AwC%wu-AA@ SDAxҲxu-AruA-SuA-AAAAAxuA-Dwu-DcuA-uA-DKDSDCCDs t sEuSCt sEuSCt tEuTC C tC H H-H}H!fA~H-[fA~Hm*H-HtHI~H!+VtGHr&t!NH5qH10CxA~HH, LHH[A\A]A^A_]HoUHAWAVAUATSHHIHqHHEf>uHvL,TsLmL1fAB|%uD{E9~ s LD>KIE~#1@AUHIōQ9ىuIE~BHqHH;EuHH[A\A]A^A_]UHAWAVATSH@HAIHpHHECHAF=rH5lHfA?tH5\HiAOHLDC9C u H:CH  CAOHLDTAGtlEg C9C u HY:CH  CH5HAE9s/DD)r$fC<'uC|<LeL'HLAAGtlEgC9C u H9CH  CH5pHbAE9s/DD)r$fC<'uC|<L}Ly'HL.AC9C u H~9CH  CL}DL:'HL@HoHH;Eu H@[A\A^A_]ffff.UHAWAVAUATSH8IIHnHHE9vH5L@)ʃvAC<>t H5bGl7DmB9wCL7CD7 CL7 CD7 ȉEC|7}CD7ECD7HwH !H4R u8Au2CL7 H5!fDƒwH~9HuHwPuoAuiIO E1H5"L-HcHHHHHA;t H…Lu"~˃uHHk"HtH53L"?C|>u/C|7u'L}LuH]}H;%LH>H5L>K>HEL}LuAD$AHMF490Ar7DA9D$ u L6AD$I $AD$AA0A rA7EA9D$ u L6AD$I $D,AD$A9D$ u L6AD$I $ AD$IADmHEHEHMtWH\LufAD$A9D$ u L<6AD$I $-AD$;L#LL=HAuHkHH;EuH8[A\A]A^A_]UHAWAVAUATSHhIE1A}HEHHH57HUE1H}{W)EEuLHH{L0HHHMHxEt/HEHfff.ff@H@HH9uE1H]zff.H߾Sf}EȉEHMkI|$HuiHHEЃ8%A|$(HtAE;}r|E1E1ELEIHEKADmE9EHEJHHEE9uDElJ<HDHHLMtEIEN$fEfEHEH}LdKA|$EtlHM+-H1IL} HH}Htd]It$HHH9wuH}Hu<ILuLHH}HHLxH}HLxMtLyHH}t.IHHtf.I|HuL<mYH}HH@(LHUDAMLxtLEu6E1H}t,IHHtDI|FHuLE1L}Et6AEI@L#MtI<$HtLAHEuMtL}H}HtHPDHh[A\A]A^A_]I~DmEuL};AEL}IDL#MtI<$HtLAHEuMt LIH}Ht HH@L UHAWAVSPIIA^AGI?A9_ s!HtH<HI?A_ A_t 1H9uH5LLH[A^A_]8f.UHHH H1HH8]mUHAWAVAUATSHIIWHUHoL?鐉MADE ADDD4 A9wgMA9rLM.EKtLHI|LHMAHمA DI\H}HHHIAMHUȋMxȋMALM_ffffff.ADAALAEHHUȹffffff.AADٍ 9waMrL/ItHHI|MLMALM ÉMtH}LLHIAMHUȋMxȋMALIH[A\A]A^A_]ÐUHAVSIAFtSfffff.IHH8IAFPHHtH;Ht3H1AFAFu[A^]ÐUHSH(HH}KDH=Ht=H}H~3HuH1]H}Ht)"HH}Ht1*H5$HDH}HtHH([]HH}HtyHffff.UHAWAVSPIAF0E1t/1E1IV(H H9Ht9DEAF09rDH[A^A_]ff.UHAWAVATSIIAD$0AtDA1fffff.IT$(H H9HtHL衿uE0AD$09rAD[A\A^A_]ffffff.UHAWAVAUATSHHIHbHHEHtHIGHHIG(HLPL0L@HHHH$HHHFbHHLfHPHtH}HtH}HL0tHP>fffff.AO@9ȍIBȉIwIW8HH9H)IwAG AG A;G0rHEH}uAA H`HpLHUBDXL0ALLLx?LLmDH@HtH0HtHH}HHH@HH|HtHH0[HH@HtOH0;H HL>X5IAD$HI$HID$AD$I|$ .HID$LeMt I$H@LH}Ht HH@LeH H}HLJPH1萻u!UHLw`IXH HEH@HH}H BHHuH HH>HH HtHPHtH}HtH}Ht HH@HHH L$ID$ H9t&I|$H11P0IGID$ II)ƋL9LBI|$HHHDP(uuID$ IOHIOIWHIWI;W vIW I;L$(vIL$(HHtI9\$ u AG IGuDž@Eu DžHN^HH;EuH[A\A]A^A_]UHw7tt t HwHwHw HwHwHtH1G 1]fUHAWAVAUATSPIAF0M~(E1@IA9smIJHK(LH)II9sH{HLP8u^Lc(AF09@IHH{HtHPHCH{臓LAF0A9rIFIFAF Mf 1H[A\A]A^A_]ÐUHAWAVATSHAIH@HsL{ LLeAAuC8HC0L.CAEC(A9uDs(DHK IANH4H}?=H{0Hu t@H{0Huq?D9s(v>Ds(DHK *HH}HtHC8HC0H}HtH[A\A^A_]fUHAVSH HIHsHS 9{8tJH}о.<H0H}HuH9HuL?H}HtH}HtLH [A^]HHH}HtH}Ht HI>HtHUHAVSH HIHsHS 29{8tJH}о.N;H@H}HuH 9HuL?H}HtTH}HtFLH [A^]HHH}Ht$H}Ht HI>HtH>UHAVSH HIHsXHS r8{8tGH}о.:HS0H}HuM8HuLa>H}HtH}HtH5L=HhLH'>LH [A^]HHH}HtIH}Ht ;HI>Ht)Hcffff.UHAVSHz0Lst'HHHPIVHPIVHH@IFIA>yRHHCHHCHC HCtHHBAx[A^]f.UHAWAVAUATSH8IHIH}8AD$yH}H5D;PHKH0@@,x0u H}O8H@(H0H}9H}Hu;H}HtH}Hu9A$tH}H5:LHHu:;I$Hu);I|$PA$LE1LuL}fE;l$@seDIL$8HH{@L:H{PL:H{A$HAHH}HtPIHH}Ht;4H}HtH}HtH8[A\A]A^A_]HH}HtHf.UH0$uG ta4]UHAWAVAUATSHHHMHUuH}HHEHHEE1Mf.IIHEBHEF4EtzD9tHuZaA| zDcA| JAAaD| AzAFAD|DA9q/u A/bHEHB4HUu2HBtM/tHEtCAIc0$hA:$iI(H(LA MHbA1ffff.;xs5HpHHH0LHH@pHAEt.A@A@tEtYHPH(H5 )EHHtXH(HxHt;HULHH@xAEu1HxMHx@&HHH0H@H $H@HP1+1<u[p1ۨtOHPHHXHH`HHHhHDžH@HtMHxH8IH@HtHxIHxIH0I"I"LLv(LLMHPHHHHH@(H@AAE1LHHt!AE;n@AuED<uDIN8H4HLH1<uHPH@H5*'HHL'Dž<@WIH!LW)]HHHDžHHHH@8HЅHVL`E1fff.D;r1L#Hp@Dž|HDL;GAkHDHpCt AJHDHqCt A)pqHL$atHDHXHsJAHDHPHrIAfDž@fDžBHDžHHH@@HD(H@ЅAu!f@u.H|A@rH@<AD/H@%DxE1HHPAH`HtAADA7E1H@t4E1`Ht&HDžH9IHLHbLLIHIF(HE1HHHHHHHHH0HAHHHHHH@HH<*AHHt`DAljH1#IH`@IBI:I!IIcIt$H)HH&"HHty0EMA"FHzIHHtKHH6HMHEIHt HH@HH}HtHH@HtKHH@H=IIH`D,HD(H DHUdH}Hu*H bHH5=H1MHH@0HuЅ@Uă DH HIH A:t@A8t@W)E)EAP1f.KHHDAAA AHH9uDeLuDHHHLMtLH]D}DeDH LlHHHTE1LH}Ht7xۋu;r x$ȉxHHH}8E0C$HtMHLh1E0%fDH}HtAt!EH;PEDžhDžlDžpDžtƅxH@(ƅiƅhAƅjƅkpƅiH`H8xHkn;OHHL4Hp LLHM6A H@!u(EIIIIL:!L/!9EH}L`L1HUHME1<E`E9Eu H}/EHM:EHI]H}HAAIH}HtH}HH}HutLeLH xHHhHLpA9t H]DE|JH$HHHEHHHAPt HEHHXA E1HDžH@AH0HpnH0H@ wH0HtɟH5!6H1eIHPHvHHXI IIIH0Ht<H@HS 'I H@jH@HtA$A`HXHXE1tJHDž@HHH51E1HIHDž1HDžXHCHHH0HCCH{ HHCHt4HH@E1HDžHHH@HDžIHHIH =L{HHhL`xE1L ffff.A>Hh@`E~DHHLHHHp}LHHHtQH HHǀPL1*<1H L腸IIHHtH HHHI HHpJLHKHHIH8uAHh@`ȾHPHHLH@H5cDžx@H Ht'HtHI݋x E1HIA@ H`t$H`HHA@H HXE1HDž`袽IAD$H)I$ID$@ID$8ID$0ID$(I\$(Mt$HLMt6I$H@E1HDžLI$H@HDžMLID$8HD`E;|$Dw6JqII|$8HtҼHȻLȼ貼I\$8HtH覼HCHJMLH艼ID$8E|$DE|$@HHXHHuMLHHpHHHH47LHHHtHHtH ID$XAD$$ID$ID$ID$ 1LMRIIHHt藻HHuLMRw@E1HLMH}HHLACL`.ILAGH HAIHA`IGH0IGAG I(HIGAG0MtIH@LAG$IHH1ubHPH@H5HHHDžx@ILFIL`u>E1LMuLMIH@1LLMI1ۿXIAEHIEH0IEAEI} cHIEMtIEH@1LLHHpI}HIDžP1Q1ۄuE螹HPHHHH@H55Džx@HHtMuyLLL1lt=xXIL̸LIHHuLy衸LoMtLLYtx1MLu LIEH@LLMt IH@LЅt@xIHLt HH@HMIH@LLLALH`HHuu Hu3E1H5HHH@HHIHxHHH@0111Ѕt L H{HH1'lt LAt3E1HHHH@HHI0IAEHIEIE MtAEHt"HHH@I} Ht HH@HIE HIE(IEIEH}HH@(ULHXAH}HH@ EAA DžDžE1fHHAD;uscDHHMDtTxHXHHDtŋDxHHHHtHHyHuHH9rnHHtHxHTZMAD$0t>1fffff.IT$(H H9HtHH AD$09rHtH VA@Mt;AD$0E1t/1E1IT$(H H9HtUDEAD$09rMuELDPILtIMu L]IEH@LLGIEH@LLDAHHt HH@Mu*LHX5IHHt3HH@(IEH@LHXLHu8DBIMt IEH@LHXHHH@HH@HDAMD}Et6A_DHEL4MtI>HtzLxAHEuH}HtYH}HMtHDAH}HD,t HH@лDH}HHЅ<EIHDeEt8A\$fDHELHtLAHEuDž(M'IF8H0HHtsHxz]uc HPH5H@ HxHH A@HHHT\JHxHW1ۄDHt:LtI>HHu[A^A_][A^A_]UHAWAVAUATSPIzEgEt=A\$fff.IL4MtI>Ht˦LɦAHEuI?HHuj[A\A]A^A_]IEoEt>A]ffff.IL$MtI<$HtjLhAHEuI?HtJL脦[A\A]A^A_]3ffffff.UHAVSI։HOHH@8HHt HH@HI>Ht HH@I1MHHIƃu0٥L0H53H1HͥHݥ[A^]UHAWAVAUATSPIA_A;_ DdJHHtI<$HtI?HtH%ffffff.UHAVSHHHMHHϡIƃu0跡L0H5H1ǡH諡H軡螡[A^]fDUHAVSHHH@MHH^Iƃu0FL0H5H1VH:HJ-[A^]DUHAVSHHH@MHHIƃu0֠L0H50H1HʠHڠ轠[A^]DUHH]fUHAWAVAUATSPMIHAII$HH@ЅDI$HHt HMtHDA1MAHL1H9tkI$Ht HHȋH(A1MHHٟIƃu0L0H5H1џ)H赟Hş訟H[A\A]A^A_]fDUHAVSHIfEfEHEwwH HcHH}yWHHtKp0H}{=HHt1H"HHtHHHt HH}_|H]HL@~H}1H[A^]ÐvUHH1]ffffff.UH1]fff.UH1]fff.UHt1]UHt1]UHH>1]ff.UHH>1]ff.UHHA1]@UHHA1]@UHHAA>tYu^uUHHH4Dt>tH9t0LMt$ILX0HHt H?H4v(L]A1]ff.UHHAA>tYu^uUHHH4Dt>tH9t0LMt$ILX0HHt H?H4v(L]A1]ff.UHAVSH0IHHfEfEHEHZt69wHK9wHukHO8HWLHRLH HTH}虜HuH}LsH}H螛HIH}H聛|DtH>#t?tsH}1wH}|2t,u9D x1HH HH0H}rP| x D>DutPt?uFtH9t8HHt,HHY@HHt H H q(HLӉDH9HHq0H4ƃ> H=*HcHH}HΉHuH}qH}HttmHIH}Ht}vv0CH6H}}v>v0H}u0HH}`w!HH?uv@H}sH}L!y1H}wcHIH}wH菙HAu9vHH5 H1膙?bHaHqTH0[A^]fww +w9GV\fff.UHAWAVAUATSHXHUIHHIL(A@ADIHH@AEIHH@ AEzIDHEATxIH@0HDp0AA"ADE0xIH HDp AADH}QADxIH H4HH}}5HEx+IH}衘H}HuTH}Ht誗IHH@0HuȺAED0臗HHC HCHCHCHHp~HHHC(Hu4HC HCHCLIIH}HzH^H{(HC HCHCHt HH@HC(HEHE1H}H視IIHtHH@HIIH}H8p.IIHL`0H})HuH1AAH}Ht0ED0At[HCHmHHHtHHEHE1IIH}H`ĕHCHMlHHH H`HCHwHHCC H{(/LuH HHCCHt HH@HA$XAIH}ŕH{SHuduVMIL`8L}NLLAAAeIIHܔIIH}Htt轔mIt&H=CIIcH=/HEHE11H}HtqHt HH@HAucIIHt HH@HLSHAu0:HH5H1J2H.H>!ADHX[A\A]A^A_]ԓIIHfDUHAVSHHH@@MHH输Iƃu0覓L0H5H1趓H蚓H誓荓[A^]DUHOXt9AGƉHOPHH1]UHAWAVSHhIIHHHE~H]HPH}H4H]}wH߾0mIIBIw`H}E9Eu H}EHM.EH}Hu7IpH}L'XsHCH\jHHH.HHCCH{ HHHCHt HH@HH{HuHǃP1bu4;D0Ht-HH@HIIHt8HH@H*IE1H}Ht褑H}Htx薑qIIH}Ht耑H}HtrL舑HAu3oHH5H1蘑H`HpSAHHH;EuDHh[A^A_]IIHIIHOfUHAVSHHH@HMHHΐIƃu0趐L0H5H1ƐH誐H躐蝐[A^]DUHH]fUHAVSHHH@PMHHNIƃu06L0H5H1FH*H:[A^]DUHH]UHHE1LL A: H@tE1LABC:MRtE1Lfffff.ABC:MIt1Lffffff.ABC:MRtE1Lfffff.}A:HItE1LAfB C: MItL@fffff.F G: MRuA~HG(HHP1]H:HGHGHGHG fffff.UHG0G0]fUHG0ȉG0uHP 1]UH]FfDUHAVSH1H[A^]IHL8fUHH]fUHG(G(]fUHG(ȉG(u HHP 1]@UHH]ŒfUHAVSHHH誌H[A^]鈍IH}L豍ff.UHH]lfUHG G ]fUHG ȉG u HHP 1]@UHH]2fUHAVSHHHH[A^]IHL!ff.UHH]܋fUHGG]fUHGȉGu HHP 1]@UHH]颋fUHAVSHHH芋H[A^]hIH]L葌ff.UHH]LfUHGG]fUHGȉGu HHP 1]@UHH]fUHAVSHHHH[A^]؋IH͋Lff.UHH]鼊fUHGG]fUHGȉGu HHP 1]@UHH]邊fUHAVSHHHjH[A^]HIH=Lqff.UHAVSHHOHHHCHRHCHHCHķHC HHC(HHt HH@HHt HH@HHt HH@H{pHt茊H{`Ht~H{PHtpH{8H[A^]IHHtHH@IIHHt HH@H{pHtH{`Ht H{PHtH{8HtL)܉[A^]ىDUH]f.UH]fDUH]f.UH]頉fDUH]f.UH]选fDUH]f.UH]`fDUHSPHH{rH=<HHH[]qUHAWAVAUATSHIωH@H(W)E)EG8d^HL4LňIčCH4LELL虈HE]]1ffff. H9uDIH}HtWH}HtIL胈IHtL,ʼn]E1LH}H5H@L8LH0rzHLpH]HH0Dxf. H@HL$It$KL,I}uAD$ A2E uAFAIHAuW)EH}dԄE1HEHL} @?AD;dLH(D%HHLEHMHMHH}HtI+I&I!IHEHIH}Ht蹆HD Et3A\$HEL]tsH;drHDžXH Dž`DžT`;dH0Tr9;dr"`1+LLLzHMH(H@0HHH9H0rTAE1HHEHD$H@HN4`;dr MnAHhHEJH8Iv=I^u'AF HHR09te$<y1HhHEN,HH `I~%II E~$IM THHHt1THH@H HHH=HHEN,AF$uH=LHHH hI EM AF#AF,DI^HHHyt:tuNHeHuWpHHuKpEЋM9rP>HulHHulEȋM׿n?H5H1{tu4HI!IHh]HI!IHhCAF"uHHHI;4H1HhH HI!I T`HHHt@@uMAF!HXHuHDžXqA9uw HXIE<:t HXvIHHpLOHpHpHpHttL6tL-H H LH H8@H LXH8LH8X;X u L8IE11dIHH藁IIF 1fffff.DDHH9uLL8XIHHLLVMt L)A\$M4$A\$ D}Et;A_f.HEL4MtI>HtLAHEuH}HtɀHHt賀H}Ht襀H}Ht藀H[A\A]A^A_]IH耀UHAWAVATSD6HN$It$D?JH{u,C $AL$ 8t <ЃE9r[A\A^A_]ffff.UHAWAVATSHIIHLeL,LHE9Eu H}E؉HM EH}LXE9Eu H}E؉HM EH}LqHHuHVH5H8Hp&I IHRH}HtLNUHH?Hu]]~fff.UHAWAVAUATSHHUHuIE}E;} t MeDEtLH~IEt4LHIL$ fDAAHHuE}I]DHLHlHt H?~E}MeEu DHHMILHMI AEHAMH[A\A]A^A_]ÐUHAWAVAUATSH(HMIHuHE1E1fDAL xHA|HI!IA:/HI!@@HL H AILV|IEAMH HUHTL$DtAEAD;{LDHEdAAtHH>HEH}I7H=vI7Hv9HuHuHuЉGIH3H=TivH3H}]vI>H HH;EtuHuHu1H[A^A_]k0@IR[dfff.UHGH1]ff.UHAWAVSHIHCu3HL}L1—H{LvH}HttCH{I1HEH[A^A_]HH}HttHtUHH]bfUHAVSIHG(G0G1HGxHHSH=H3tHLYH11[A^]H:tfUHAWAVSHAωIIIH0H=tu.HH=EHEIH0ltUHsMuI7H=Dt-HsH}؉KHuLH}HtUsIUIF8AF01H[A^A_]HH}Ht"sH\sH6sfffff.UHAWAVAUATSH(IHcHHE藶E1H-ff.HAA wwDAADsL HEAGt%A9G u L4AGI AGLL貹AD!HEHI?HtHrHrtLE0ExHu‰AGt%A9G u L迱AGI AGHuL<HeHH;EuLH([A\A]A^A_]#rDUHAWAVAUATSH(EMAHtHHHEtdHH0H= 1rHqLH}DNIuH}rH}Ht7qH7HC`C0MtRL\sHtEHH0H=" qHHL HHC`C0EtcHH0H= qqHLH}DI7H}FqH}HtxpHxHChC1LuMtRLrHtEHH0H=h pH8HLIHHChC1H 1H([A\A]A^A_]HpHpHoHoHoHoUHSPHHH3H= PpH1H[]HoUHAWAVSHIIZI~xuGAF0t IFHAF1tIFPIF@IH3H= oHH$oIFHIH3H=! oIvxHHIFH@t~tyMLI7H= coMuI7H= Eo-HnH}؉L HuLH}HtVnIV1ۉH[A^A_]HH}Ht*nHdnH>nH6nfffff.UHAWAVATSHHIIIH}H5ʪ%LHpu+H}H5Ӫ}HH}HtmHmH}LH}H5H}HH}H5pH}H5sH}LgH}H5ȫWIHuWHH,H$AF1H}Htm1H[A\A^A_]ÐUHHE1LLp A: H@tE1L@AOBC:MRtLe@fffff.B C: MIuA~HGHHP1]H:fDUHGG]fUHGȉGuHP 1]UHHHHHGHHu]]kfDUHSPHHHHNHCH{HtkHH[]kfDUHHHE1L׫L@p A: H@tE1LԮ@AOBC:MRtL%@fffff.B C: MIuA~HGHHP1]H:fDUHGG]fUHGȉGu HHP 1]@UHHHGHBHHHu]]jfDUHSPHHpHCH HH{HHtjHH[]|jUH@E]fDUHSPHHC@H0H=v jHHH[]`8HEjffff.UHH]`8DUHH]钃fUHAVSHLs@LLHH[A^]`8DUHH]`8DUHGHt Hw(HGH]`8UHSPHHtCHtH{HHGH؁HHH[]`8fUHAWAVAUATSHIH}H]HE1AHM EAE;gDIHDpEADABHEHH t?AEFffff.9u HdEЉHM-EA΋Mu9nH6E^HH}HtihHhHEHH LuL}M9u LEЉHM-EuH}H5WHEHH LuM9u L葧EЉHM-EuIHuL{LO}H}HtgH[A\A]A^A_]fUHAWAVAUATSH8IH}LuL輼ID$HEE1/fffff.HM EAurAE;l$DHMH HHsLCD{EADB)~ADFAA)HEHH M9eLͶEUHHHH}H5ͼE )Å~NHEHH Lufffff.M9u LaEЉHM EuH}HuԿLuH}H5I H}H5EI^HuHzHx{LHu|IH@8LЉH}HteH}HteH8[A\A]A^A_]HH}HteH}HtteHeUHAWAVAUATSH8UIDwhD;wlH_tLcXSL}DE|J<)eILkXJLL#fMt LdDs`LcXD{dL}DDuE4C`LeLLH{HL-^H}HtdHHL\yH5OH]xH}DaHuH5yH}HtkdH8[A\A]A^A_]HH}HH}Ht=dHwdUHSPHH;HHH[]`8fff.UHAWAVAUATSH8DHHHHIHHEЃzHH@HE1HHHffffff.DH L,ƅtHItAUH譸IHI@eIAEBD)X~J=H¾ 9dHcLƄHLHvAHD;bUƅHHtS4uGLLLd )~aHcHHLHL c~@AG`1ffff.A9Gdu L蒛AG`I $-AG`A;|H]H;]H[A\A]A^A_]@UHAWAVAUATSHhAΉIHpHHHELeL趰L}L]Du\wH ŌH4L虡3HLMt LL?LuL蟈LLdH5L}tH5.L0Hx菞E1LxHxEAċEA9sAD>Hu.ALADHTIMf@Mtiff^tMJ5PE~ A\$HS SJD3HPMMf@J5PMHHstHH0H S@HcRH5TN$(AO4H9rMLcD)J%P~HS *SJD#HPMMHTHH9XLsHHHHHHuHXHH@@H=HH追GEw,HH胧D+ADL=vt1Au/DDCw )HcHHI7QHLA)AD$w D)HcHHI7pQHHPHHH ~PHHH Qt"HMHH0Q4HWPE,H%RHA)J5PMAEtE1AuEAEAEIH7A^HSHH PJD+ƄPIcLLPHHcLHHPI<E)EHIZH--HH-HOHH0 O1HHH;Et~OH@OH8OH0OHH[A\A]A^A_]@UHSPH>u~t)HEHH@tH}H޺0H[]ÿN{3H5H1NUHAWAVAUATSHH0H@HHH(HHHEHF H HFH1L5{Lpf.FHHX1uCHHGHFE(4 E0HxHHzHHL%ܼHDžHDžHDž19ffffff.ALL%HX91HuHH L4tVHDžHpHH1HHtDxHHHߙI6Hp1 <u tLyI4$H=EI6L~HH3H=EHDHEPHHDžNHHHtDHHCHBDH>H>H>H>HHIHHpH8訔H87H8Ht:>AH"~xHHIHHXI4$H=>I4$H=<>LHI^ HHrIIt$XLHݪH赨M>fEfEHEIH@PL,LeLЉÅu1ۿ,1L/LA I^0HL5tWLHH,IH@hLH4At4_ HH8H < H<H<E1D;4HDž(IH@pLDH(H$L"ЉAuiL(D$fEfEHEIH@PLDHUЉÅu1DLHUH}ۋ<EDH(裟AE䉝<1S HH(} HH}<ዅ90u H;L%I4$H=PZ<IH@XLHЅ0@HHDE1ffff.D;HDžIH@`LDHH L ЉAusfDžfDžHDžIH@@ LDHЉAu"E1H HwH 6HcHHEH@2EEEW5NH5H1d5H1ۈHH}vA_HDžPƅXfEfEHEIH@@LDHMЉD,M1ƅ mHH}VH bHcHHMHP2MMMo4NH5ΨH1|4 X1HH}AwH`@HfEfEHELHH@@, HMAEtE10=HH}}fE0E1ft A@f@uLuL`ƅhE1AH}AEHDH{ H``yL`Ls C(HpHC0zD,t }~H DH@RAZTHHL5(uIu@u7HtHHHH9кHDHƅHuƅHuƅu*I6Hx3L]H H }(upDxgI6H=2I6H(H=2I6H=B2LHHHH@DHy II$C`IFhHChIFpHCp[A\A^A_]fDUHAWAVATSIE~EtDEgDIJHt$H{Ht%H{Ht%H%AIEuI>Hu [A\A^A_][A\A^A_]%UHAWAVAUATSPIIEIEMu LzMe0LiI]@HzI}XhH[A\A]A^A_]I5I#IIH;Ht%I<$Ht$I>Ht$L1$L%$UHAWAVAUATSHW)EHUlUȃuH=E1HEHHtH;Htv$Ht$UHEHHHp{%MH0#H+HHuH0+H0E1H=^ H`IH0j#D}Et8A_HEL4MtI>Ht#L#AHEuH}Ht#DH[A\A]A^A_]HH!H8L-HLE-HL(8t L1PHH00(9#ILAD$HHI$fAD$ ID$ID$MtLr"1$AD$ 2$AD$!L~Åt"H5H1"H` )A|$uSu`tH`$)<u2p"H HH5ÖH1y"IW)HuHL لu*"H lHH5lH1""EgID$HhW)1f.LHHxH HD?E1 @B!A4D9tqD9OˍsDNA9u9u'HR!LHpAD$DI4IHHHDžHDžHDžtHHHXÅtH5ߌH1HDžHDžHDžHDžHDžHDžH@LHHHHHT$(Lt$ HHT$Ld$HL$H$IHHHLHL7Aƃ@ukEIMRI$H@L@I9IH <HIHHHxHL蝂IuH=4AH8L螂EA@EELiI|$(rJIuH=It$(L$H<IuH=fIt$@LHI\$8E0H;t&IuH=AH3L΄HAI|$Ht(IuH=+It$HL螄H趁AI|$Pt%IuH=OIt$PLnH膁I|$ht5LvI|$ht%IuH=It$hL1HII\$`H;t7L6AH;t&IuH=H3LH AExI|$HuI|$pt>LހI|$pjIuH=vIt$pL蕃H譀@E7H t'IuH=#9H LVHnH(uH u H0tIuH=H(LH)H0tNIuH=H0LHIuH=HL蹂HIuH=uHL蒂HHH3H=LHHiHHtHLزHq9HHHHx{H8Ht&HHXHt HrHHHHHtM I$H@L IIH8HtHHXHtHHHHHHvxHXH \QHDžHDžH@HDD68LxHHHt$HHHt$@HHt$8HHT$0HLD$(L|$ LD$HH\$AD\$AD$LLLA8tCHt9HHg}H3H=| HH=%H=}HuDžx8uDžxHHEH|H3H=HH= H|DžxjLH`Y<7tuHH59UiHEHHxƅƅLLfL0xt ÈLLLiƅHDžHDžHDžHDžDžƅƅHEHDžPHDžHHDž@HDž8HDž0HDž(HDž HDžHL`LHƅZLeƅpE$Z0xt pLLh$ƅXƅYD EtAA_ffff.HL4MtI>HtLAHEuDž Dž0LLHLHxHHL$H$D$HHhH@LLLA/AHDHLeA1Lf.H;XuHPH4HL,(LHHtLIrIIH HBHHxHH=IIIHHtHHt HHt LHHq gHHt HHt LHHt H DxHAHHxHH"c ` ƅHDžHDžHDžHDžDžƅ(ƅ)LH<HHpHDžhHDž`HDžXHDžPHDžHHDž@HDž8HDž0HaE$(D8Et>A\$fH0LHtLAHEuH}HtLIHHHHHHHH{HsHkHcH[HSHKHCH;H3H+H#HUHAWAVSPAII7H=KI7H=I7HvI7H=vgI7H8tH=cLHHH=H.I7H==I7H=:'L tH0|H=HEH=H=I7H=AuI7H=H[A^A_]HHHHHHHHf.UHAWAVAUATSHXIHUH}E1{pLmqI6H=lLVqLNqDkpE1L} /IE9srHChJH0L@qH0H=3HCxB4LѣHuLqHpH}HtHH}HtHHI6H=تfLpI6H=ҪOLDsH0H=Ϊ5ArI6H= LdpA}H}ZH]{0tHs(H}^H}H5H4^{tHsH}^H}H5H^{ tHsH}^H}H5oH]3t4H}蟢H}Hur^H}HtH}H55H]}tH5+HLoHuHoAH}Hu_AeHH}HtCH}kHH}_D{PEu.{p,I6H=LoHLnI6H=LnLnE1Lm IE9seHCHJH0LnH0H=èUHCXB4LaHuLnH}nH}HtHH}HvI6H=uLGnI6H=LDpH0H=kArI6H=\LnADHX[A\A]A^A_]HHHHHHHHHHUHAWAVAUATSPIEEtCA\$fffff.IxL4MtI>Ht7L5AHEuIxHtIhHtEXEtBA\$ffff.IPL4MtI>HtLAHEuIPHtI IHtIEEt:A\$DIL4MtI>HtGLEAHEuIHt#EEtCA\$fffff.IL4MtI>HtLAHEuIHtEgpEt3A\$IGhL4MtI>HtLAHEuIhHtyIPHtkI8Ht]Eg(Et=A\$ff.IG L4MtI>Ht*L(AHEuI Ht ILH[A\A]A^A_]IIHtI9EEt@A]ff.IL$MtI<$HtLAHEuIHtrEEtCA]fffff.IL$MtI<$Ht6L4AHEuIHtEopEt3A]IGhL$MtI<$HtLAHEuIhHtIPHtI8HtEo(Et=A]ff.IG L$MtI<$HtyLwAHEuI HtXILL9IhUHAWAVATSIE~EtCEgDIJHt#H{HtH;HtHAIEuI>Hu [A\A^A_][A\A^A_]UHAVSHHXHtHHH(Ht|HHtkHHtZHHtIHHt8H{PH{8H(H[A^]IH(HtHHtHHtHHtHHtH{PI IH{8H(HLDUHAWAVSPIE~ffff._H]AAtODIHHtH{H;HtIH;HtHI>HtLAI>HHu[A^A_][A^A_]ffff.UHAWAVATSIE~EtCEgDIJHt#H{HtH;HtHAIEuI>Hu [A\A^A_][A\A^A_]\UHAWAVATSII~xHt8EfpEt8A\$fDIFhLHtLJ@UHAVSHH.HHHHtHH[A^]NIHHtHH.LDUH]f.UH]fDUH]f.UH]`fDUHH1L|9@DD F: HIu~H:HP1]UHGG]fUHGȉGuHP 1]UHHmHHH] @UHAVSHHmHHH{H[A^]IHLUHAWAVSPIE~ffffff.AAtADIHHtHHBIH5I>Ht"L\I>HHu[A^A_][A^A_]UHAWAVAUATSHHIAEAEAEAEIE(IE IEIEIEHEI}8H}LI}PH}LIEpIEhADžIDžIDžIDžIDžIDžIDžIDžIHELHHEIEhHEIDLfADžIDžAƅAƅAƅIDžIH} ADždAƅbfADž`IDžXIDžPMPIhKIDžIDžxHH[A\A]A^A_]IIHuH_HEEXEt4E~I$JHtH;HtHAIEuI<$HtH}FH]IHtH}IEEt@A^ff.IL$MtI<$HtvLtAHEuIHtREEtCA^fffff.HEHL$MtI<$HtLAHEuHEH8HtEupEMtBA^fffff.HEHLHtJLHAHEuI} Ht)H}LZ ffffff.UHAWAVAUATSHHCCHC CCHC CHC8HEHC(HEH{PH}CCCC HC@HC8HC0HC(CHǃƃLLHƃƃLL~HƃƃƃLLZHLLKHǃ H(5Hfǃ@Hǃ8Hǃ`HǃXHǃPHǃHH[A\A]A^A_]HVHHH5H#HHI<$HtpI?HtcI>HtVI}HtHH}H}H}Hgfff.UHAWAVSH(IHOiH(iH}WwL H}bxH([A^A_]HHӃ u'HhH0H=c븃 u/HhH\H3H=j/넃u@wIHhH3H=$I6Ha\H9\M?u@2IE>AH.hH0H=Hu>IHgH3H=vA6Hw]H[Au@IHgH3H=3I6H[Hl[ru@eIHqgH3H=dH3I>H'[;-u@ IH,gH3H=H3LHZu1D0HfH3H=dHDe\HHHfH0H=ɛ6HHfHWZA@u&H3H=)gHHH@H ZH3H=ۚH ZA6H}͌HuHZHYH}Ht HH}Ht H HHH}uHuHHHHHwHoHgH_HWHOUHGs@E]fDUHH] fDUHH] fDUHAWAVSHIHCHuOCu0HsL}L1H{L7I~HHuUH}HtILL_H5LH}u~HuLXH}HtH=+?&H8[A\A]A^A_]HHH}HH}HtOH=>H}0fUHƇƇ1]f.UHAWAVATSHIIHIuDt;Hs@LeLHLZ8H}Htƃ$AHB1IHEH[A\A^A_]HH}HteHfUHAWAVSHIHIu6Hs@L}L1HL7H}HtƃHBI1HEH[A^A_]HH}HtHUHSPHK=HH=RHRHH[]UHAWAVAUATSHII6H=L=fDI6H=LMIH]HH5`U1EH'HQ'H}ȃ}tcs mauHAD w61AIcLA$AAAE0DHtAAM4H[A\A]A^A_]HH{UHAWAVSH(AHIH3H=HGH=H}H{!AH3H=HGH=ˌH}HB!E;EuH]H}Ht:H HH5PH1fHH}HtDR=HtHCHuLKH}Ht$LH([A^A_]HH}HtH?HHUH]vZUH]fDUHAWAVAUATSPAIEuIEIEIEM} LDMe0L0DL4[J<tHHt%J HfHBHBHH9uIIEH[A\A]A^A_]I#III<$HtI?HtEeEt9A\$IELHNAuH*EJ|I1HHD9ҍRuLHQGHH;Et!0@>HH ]fUHH@HHGHHEH9v_AIffff.HIDk HD) 0AHcBDHwՀ0H~Au~H 1Affff.HIH#Dk D)ʃ0AcBT w؃0HNuHKfHŠTuIt1-EJTI1f.HHD9эIuLHFHH;Et0HH@]UH1HHHuHfD@0HHu]UH1uH V0v7CֈHu]ÐUH1HHHuHfD V0v7CֈHHu]UH H0@7FCȉ B0R7NC‰ J0R7Cʉ DB0R7FDC‰  DH0@7DCȈNA07Bȃ B0R7CFDNDF G0W7CˆF]fffff.UHH HDHHE AADHIH#Dk D)Ƀ0AƒcBLwڃ0>HNAuH.EJ|I1HHD9ҍRuJ4H{CHH;EtK0>HH ]fff.UHH@HH>CHHEH9AIfHIDk HD) 0AHcBDHwՃ0HFAt.EJTI1:8HHD9эIuJn v~1AHIH#Dk D)ʃ0AcBT w؃0HNuHfHTuJtH+BHH;Et0HH@]fff.UHHy -HH]UHHy -HH]tUHAWAVAUATSHAIHH HHDžHHLAHHLLH޺RE02HHdE0H 4H APZHE0@EHu1E1bIŋHH|LAA|H;HH@HЋ9sHJ11HAAue9seAt5tr4HIM(Lfff.HHA|=At5 t&4H9r׉HE1MtL5E0EBzHh H9tsHhHLhHHdL葙dH;HH@HЋdAHh<upp;du\Au;HhH@u55IHhH HHhDq;1HhHtE0=HP'1HAA9søA9|II1EuH[A\A]A^A_]HHfUHAWAVAUATSPIIfff.1E.E'E9tiUAaD|#AzA\$AD| DAa| AzAA| DmAŸD9U|II1EmH[A\A]A^A_]HHfffff.UHAWAVSPIIAFAN )9s؉tLiAFAIHHHӺ)H}H[A^A_]UHGO )9r]t] fUHAWAVAUATSPIE~A9wJ sB{IM.ALLLMtLM&A^ H[A\A]A^A_]ÿ)3H55H1fUHAVSI{|IA^A^ [A^]fff.UHGt]&fDUHAWAVATSI։IAF9B؍{IM'A_A_ I6LHA[A\A^A_]UHAWAVATSI։IAF9B؍{̿IM'A_A_ I6LHA[A\A^A_]UHAWAVAUATSPIIEoA}}IM4$AEl$El$ I7ELLkC>AC>H[A\A]A^A_]fff.UHAWAVAUATSPIIEoA} IM4$AEl$El$ I7ELLC>AC>H[A\A]A^A_]fff.UHAWAVAUATSPEHMAIIC|,蘾HIC,AFAF EHLL艿J<3AT$HuwH[A\A]A^A_]@UHAWAVAUATSPEHMAIIC|,(HIC,AFAF EHLLJ<3AT$HuH[A\A]A^A_]@UHAWAVAUATSPIZDfB|#HHEL.贽IM>B#AFAF LLL訾K<'HuH薾LH[A\A]A^A_]UHAWAVAUATSPHID~HHEE1fffff.DAĀ<uC<'+IM.CD'AFAF LHuLK|=DH LH[A\A]A^A_]UHAWAVAUATSHIH}E1DDAA<uDbC<4HHE蟼IHML)CD4AA ILLH荽I|AHuLyLH[A\A]A^A_]UHSPH=HCC H[]fUHSPH HCC H[]fUHAVSIڻIAFAF @[A^]fff.UHAVSI蚻IAFAF @[A^]fff.UHAWAVSPIIff.A<u{?IA^A^ @AHIDŽuH[A^A_]fDUHAWAVSPIIff.A<u{ߺIA^A^ @AHIDŽuH[A^A_]fDUHAWAVSPIIA^{蔺IA_A_ IfDHHuH[A^A_]UHAWAVSPIIA^{DIA_A_ IfDHHuH[A^A_]UHAWAVSPAH{ tL;$IH;HtϹL;C CE7H@HH[A^A_]fUHAWAVATSIIAfAC<'uE;f wI#AD$oHI>HtSIEf Ef@AHIDŽuL[A\A^A_]DUHAWAVATSIIM9tHEfE;g wI!A|$HI?HtIEg EgI HHuL[A\A^A_]fDUHAWAVSPHI1AAB<;uANAV )D9sDAtLKANIf HHÄuE~LH[A^A_]UHAVSIHANCS )9sȉtHCHIHHuAFCH[A^]UHAWAVATSAIHD9{ rL# A踷IH;Ht蜷L#D{ ELLL褸HB8D{[A\A^A_]ff.UHSDFEuQDOf.AҸ1E9s4D9s AD9sHD PHD: tARA9Du[]f.UHOHtH@8t tHu]ÍD )]f.UHAVSII>HH@H H wHrH)tH)AV芷A)^[A^]UHOL1I ʍxHcA41H wIrt HcAG]UHAVSIAVAF 9utLAVI6H~IAF[A^]UHAWAVAUATSPIAI1fYACLLL=AFDAFH[A\A]A^A_]fffff.UHAWAVAUATSPIAIEwMtaAEAM )D9sDtLAEC<&DIMHH4)诵I]I7HL藵EuH[A\A]A^A_]UHLL @Ht;@8uD)x/LcMȋWfA@8tAI9rAD+DG]fff.UH@8tUE1A)fff.D)DD)AHȅx+LcCAD;WsELMLؐ@8tHu]UHAWAVAUATSH(HuIFE̅qHЋHM9MtL}!H0HHEH8JCL}HHEHEAU1fAE)MA9DFEt(C4DIMHHH)%AUD)AUHED`MtlAE )D9sDtLAUC<4DIEHH4D)H³I]HEH0HL観AUDAUDuD9scHED@EAtJfff.A1A9s=fDD9sA 69sIENI:8tANA9uEH([A\A]A^A_]f.UHAVSIAV) 09F؅t3IHHH)A)^[A^]ffff.UHSPHH HH<S)該KH[]DUHAVSIt I)AVHH4pA)^[A^]ffff.UHAWAVSPAAHCK )D9sDtHhCEDHH4J<)HH[A^A_]UHGO )9r]t] fUHAWAVATSIE~A9wE s={HsII6ALL蟲I>HtFM&A^ [A\A^A_]ÿD)3H5$H1QUHAVSI{HIA^A^ [A^]UHGt]6fDUHAWAVSPHAI<uD9DBAH蔯EIE~E~ HHL踱IBH[A^A_]fUHAWAVSPHAI<uD9DBAH$EIE~E~ HHLHIBH[A^A_]fUHAWAVSPI։IAF9B؍{HɮIA_A_ I6HHIH[A^A_]fUHAWAVSPI։IAF9B؍{HiIA_A_ I6HH莰IH[A^A_]fUHAWAVAUATSPIIEoA}H IM4$AEl$El$ I7ELL#CACH[A\A]A^A_]DUHAWAVAUATSPIIEoA}H虭IM4$AEl$El$ I7ELL賯CACH[A\A]A^A_]DUHAWAVAUATSPEHMAIHC|,H$IL3C,CEC LLLCKB#AFAF LLL`KHt菧IEf EfAHIuL[A\A^A_]UHAWAVATSIIM9tZEfE;g wI%A|$H=HI?Ht!IEg EgIffffff. HHuL[A\A^A_]@UHAWAVSPHI1AAB<uANAV )D9sDAtLANHIfffff. HHuE~LH[A^A_]fffff.UHAVSIHANCS )9sȉtH|CHHIffff.HHuAFCH[A^]ÐUHAWAVAUATSPAIIE9} rMe&AH谥II}Ht蓥MeE} DLLHƧIEA]H[A\A]A^A_]UHAWAVAUATSPII1f.AC<,usA;v wM>(uԉHII>HtM>uAv t#1L@A$HIčP9؉uCAvH[A\A]A^A_]ff.UHAWAVATSII1ffff.AC<'uKAFAV )9sLt LAFIt%H1fDA?:HIǍ~9މuLAFDAF[A\A^A_]UHSDFEuQDOf.AҸ1E9s4D9s AD9sHDPHD;tARA9Du[]f.UHOHt HH9t t Hu]HD H)Hffffff.UHAVSII>HH@H H wHrH)Ht H4)AVHA)^[A^]fffff.UHOL1I ʍxHcA4H wIrtHcAG]fffff.UHAVSIAVAF 9utLAVI6H~HGIAF[A^]ffffff.UHAWAVAUATSPIAI1fYAC<utpSANAv )9stރLANADEIJ4H<D)H蟢IJfDD9sAL59sI$H4)AVHA)^[A^]ÐUHAWAVATSAIAD$ Hc語HE1Ht4ED#L{MtLLL莞AD fADADL[A\A^A_]UHAWAVATSAIF$IL3H1Ht+HLRDHHMt HL H[A\A^A_]ffff.UHAWAVSPH1HtK11<uAI~话I1MtAFAILHL蘝LH[A^A_]fDUHHu]H]ff.UHHu1]ËG]fffff.UHHu1]ËG]ff.UHSPHf;uH{Ht H詜f1H[]ÐUHAWAVAUATSPHIfA?uIHt HmfAf;u~LsE1MtEfAD$ Hc蒜HHuIGZED#LkMtLLLjAD fADADMoMtfAHHKIOI1H[A\A]A^A_]f.UHNW9rw9r]ÐUHH]BxfUHH]xUHH]b{fUH ]DUHAVSx腚HCHHH{wH[A^]IHIL}UHH1L\@DD E: HIu~H:HP1]UHGG]fUHGȉGuHP 1]UH]f.UH]鰙fDUHH=L]_0UHAWAVSH(IIAGtI?AGH}LH}Hu1 H}Ht2H}؀?cu HG:HDH5"*řHIHAGH}HtHH([A^A_]HH}Ht)ӘHHH}Ht躘H֘HH˘UHSPHCtH;CH[]UHAWAVATSAII/D I $AD$I?ĘÃuI?詘u%H EHH5p H1&EH FHH5B H1nHI<$Ht詗H诗H EHH5 H1踗.AD$A9D$ ,LAD$L[A\A^A_]fDUHAVSII>ԗÃu I>蹗t[A^]ÿ&H EHH5y H1/ffffff.UHAWAVSPIIAGIXҖH DHH5% H1ۖff.AGA9G u L.AGIAGI>ÃuI>tH[A^A_]fUHH?Ζ]ÐUHSPHCtH;蝖CH[]ÐUHHu HH# $ H= H5 HO ] UHAVSIHCtH;)u HCH5CL/HHC[A^]H腕ffff.UHSPHCtH;˕0u HCH[]ff.UHH?褕]ffff.UHSPHH3 蘕HH[]UHAWAVATSH0IIHD:D H}hAAE܁u2H}LH}Hu H}2HH}HtxgqH}LH}HuH}Ht<I6H}H}Ht"LH0[A\A^A_]HH}Ht HHH}HtH f.UHHH R9 Eсu H% ]HH]gUHAVSHIH 9EЁu HH H"I6H; [A^]Hbf.UHAVSH0HHHHEHcLuLH3L输HsHH;Et CHHH0[A^]ÐUHAVSH0HH;HHELuHL%H3L^HHH;Et H襒HH0[A^]ÐUHAVSH HHHHELuЉLֿH3LHHH;Et 脒HFHH [A^]fUHAVSH0HH{HHELuHL5H3L螒HSHH;Et #HHH0[A^]ÐUHSPHCtH;-u HCH[]ÐUHAVSH HHL5:H5HLH蓑HHH5HLH[A^]eUHAWAVAUATSH(IH}A|$H}3I4$1譐IM11L菐IL~L蛐L荐I1LmA։HMȉEHL9s?LHPfAƋE9EuLpEHH}Ht<HvLHuH}+H}H}HtL}LH1@HMD4EHA;\$s,I$D4E9EuLEHH}bHuH}H}Ht荏HEH([A\A]A^A_]fDUHAWAVAUATSH0IIHHHEA|$I$Hz1fffff.ffMHH9vH1HێH11HIH诎L1ώLLL衎L聎LLHLLTE1*ffffff.HIE;l$s|I$B|+9uLH?믋9uHHHtH;LbHL3HHtƍH;HH;EuLH0[A\A]A^A_]UHAVSHHLuLfHL H}HtaH[A^]HH}HtGH聍ff.UHAVSHHLuLHLH}HtH[A^]HH}HtH!UH1Ht8H>11fffff.1w0/D)k 19wBLHDD< rHtH>]@UH1Ht9H>12fffff.1w0/D)k 19wBLHDA@Ѓ rHtH>]@UHE1HtZH>E1Rfff.1HI9wLHHH AI1MK 1L9w AIHH< rHtH>L]ÐUHE1HtCH>E1;fff.1HI9w3MOALH1I9wMHЃ rHtH>L]f.UHSHtH>LODA-LEA tiLM1A/M2fff.D)k 19w- vTAKIAЃ rL] M1MA-u v1xHtLDA-E[]UH1Ht*H>1#fffff.1w  H<rHtH>]@UHE1Ht2H>E1*fff.1HI9w$II HH<rHtH>L]fUH1Ht*H>1#fffff.©1w7 H< wވ<wш<vHtH>]f.UHE1Ht2H>E1*fff.©1HI9w:II H< wՈ<wȈ<vHtH>L]UHLDIA1tgIy@y10@rTHHOwB:4sB)ƹA 0y*w% HA9uI0Lr]f.UHAVSHHICHHEANIHu1Eu9s sHuANIH;Hu"HMKHH[A^]ÐUHAWAVAUATSHuH)HEHBHEE1LM7fff.Ht BB\IMI9B:MwxHtBIM11fff.IIpwB:sHEN$8HEN,8C)E1I IABD9tLLtCDyfffff.UHAWAVAUATSHIIEeEt=A\$ff.IELHtnLnAHEuH@HtmH8H8HtmLuDeEt7AD$IDL;MtI?HtmLmAHEuMtLmH[A\A]A^A_]IHXIHhkHXfHXHtBm7mIDHEt:A\$DH@LHtjLjAIEuAGH[A\A]A^A_]fff.UHAWAVAUATSPDAIAHjILLE}EuA]H[A\A]A^A_]ÐUHAWAVAUATSPHI8jILHhC$AFC$AFC$AFC$AFEl$E;l$ tM<$UDADHEH<iII$JLHjHt HiEl$M<$HEAD$ DM4AD$HAL$H[A\A]A^A_]HLeiHiUHAWAVAUATSPIIHHiHHLhEnE;n tM>QH]DA\H< iIM&JLLjMt LhEnM>A^ H]DIAFHANH[A\A]A^A_]IHhLhUHAWAVAUATSHHuIFEA_D4E9w s8DHhhIM/HLLHdiMtL7hM'Ew ME1fDD;usv&hIHEHJLHeC$AD$C$AD$IƊC$AD$C$AD$AGHAOIML$HLgHgLH[A\A]A^A_]fUHAWAVAUATSPHIXgILHtI~HHgEl$E;l$ tM<$kHI>H2g{LuDEtJ< gII$JLHhHt HfEl$M<$Et$ LuDM4AD$HAL$H[A\A]A^A_]HLfHfUHAWAVAUATSPIfILʻAFAFAFEl$E;l$ tM<$UDADHEH<MfII$JLHGgHt HfEl$M<$HEAD$ DM4AD$LH[A\A]A^A_]HLeHfUHAWAVAUATSPIHI$HLsIt$L贼L{It$L7eLk(It$(L8eH8I8HL%eH[A\A]A^A_]HH HLbLbI>Ht:eHte'efUHAWAVAUATSHHuIIGI~EHtHdIEAG ME1D;uspdIHEHJLHbC$AD$C$AD$IƊC$AD$C$AD$AGHAOIML$I"IMH[A\A]A^A_]ILJdI}Ht6dLpdf.UHAWAVAUATSPIIIGIA~AHtHcIEo L}E1f.E9sAHcHIJ4HwcAGHAOIHII#IL}H[A\A]A^A_]IHzcHEH8HtccLcUHHG]fUHSPHH{OHCH[]ÐUHHGHH]UH]DUHc@H DHH@]ÐUHH1L@DD E: HIu~H:HP1]UHGG]fUHGȉGuHP 1]UH]f.UH]PbfDUHH=]UHAWAVSHIHHHEH豥T H 7HcHtNtOWuaH5OguPH5VH5MH5DH5;H52H5)H5 u H52cHHt*H肧NHHHtaHJaLHL0bEHL2HL1HHt`H)HH;EuLH[A^A_]`f KUHAVSH IH]H覶H}H1H}Ht>`Hu>cu HF~:HDL轤H}Ht`LH [A^]HH}HH}Ht_H'`UHAWAVAUATSH8IHAIH9HHE1MLaIA/u[A1E9H5HaHLaff.Iff.H/tuD~wKA:uD1E9gHL[aIff.H/tuD.1A"ƅcƅ:H_H1HH`H1AL1D9ILHLHL1GHHtJ^HH{`H5أH``HLU`DHDIft6H/uIHHHt]H&^HHHHt]H 4H H;MuH8[A\A]A^A_]]@UHAWAVSHIIHH]HH踳H}H1H}HtP]H]؀;cu HC{:HDH(H_u6HHHEHX-HH}Ht]H=]HH}1_HEHEMt2AAGH H H H HMHEMt2AAFH H HHH {M HEHuH^H}Ht[\H[A^A_]UHAWAVATSHHH H HMHui\E0HHHH8t*H0\(HHHt[H[H0]E0cĀf4%=@==#LH54 L\HE0HHH[IH[E0ML7]E0HL\E0ff!H>[f4f#ٹH[^4tG@uf#HZ't %mf4f#yHZAHHt0ZHHH;EuDHİ[A\A^A_]bZ@UHSHHHt8u=Z0(H}H_H}[H}HtYH[]f.UHAWAVAUATSH@HHH H HMHHHHHH[ADY83LHE0 0TZà L108ZAAALпfDDL@zZIMy Y8tIMI1fffff.LLZIMy X8tDXAEEEXEAEE0uNHH #Zu4fRf#$HXuH.ZAtE0HHtWHHtWHOHH;EuKDHĸ@[A\A]A^A_]HHHt WHHHtWHWWfDUHSHHHt8uW0-H}HH}mXH}Ht"WH[]DUHAWAVAUATSHxHH}HH}H4H}/V~*MQ9u uHMy:H}xH}Hu諭DmLuLxLe fDVHuHt>uV6HLH}~WH}Ht6V}V8L/菲A0E4AEHc0HM<:LDLLLqHxHFuvUE0*LH}Ⱦ9VAH}HtTHhHtT0EMH}HtTH}HtTH}HtTHx[A\A]A^A_]HHhHtTH}Ht tTHH}HtaTH}HtSTHTUHSHHHt8u}T0(H}HH}UH}HtSH[]f.UHAWAVAUATSHIH}I4$H}1!At?]u+S A%HH}HtSHS E0H}Ht_SE0EHpLLAx9|uHp7xAHpB/ABDxD9|DuHpxHp*xH8HpPH(HIۧHp@H8HE1<D9xvDxHpBHL tHGAuHpHt5>uC.HHpoHH(HQ*RA2H}KH}SAH}HtQAEH(HtQH`HttQH8|OHpHLtPQE0AI<$1E0tpI4$Ht>u1!0ۄ$I6Ht >O0HH}jH}HL輢HuHt>uaOE0H}7H}~H}PAH}HtNH}HH}Ht/N(HHHHNHHHt NHH@HtjNHrL[H}H}$PH}Ht7NHPHt&NH}HtNH[A\A]A^A_]HHPHtMH}HtMHNMUHSH@HH:HHECHHEHHMDž0twHH}H H H;Mu H@[]Mfff.UHSH(HH]HHeH}H1藽H}HtLH}`MH}HtLH([]HH}HH}HtLHLfUHAVSH0IHHHEƅcƅ:HHMH0Ht\HHHHH11HLҤHHt%LHHtLH H H;Mu>H0[A^]HHHHtKHHtKHLLfUHAWAVATSH @IIIHHHEAD$I$HEHHMDžmt=wHLSALLCE0L/蓧I$H4LA9\$vA\$I$HaHH;EuDH @[A\A^A_]KUHAWAVSHIHLuLHLLH}HtJH[A^A_]HH}HtiJHJffff.UHH5`]fff.UHAWAVSPIIH80tHSL1L0tH[A^A_]UHAVSHIAtNIvHt>uJ0%H}4H}mKH}HtI4AH[A^]UHAWAVAUATSHhIIAHpHȾHHEL="LJXCOLJIDž|1؉@AA A1@I@IA||cLHp٠AD A0I7CD Q0I7ECDDD w07UCDD  {0[7uCD^07AB Y0I7B˃ X7@0}B؃ B0R7CME]MuEt4AD$A9D$ u LAD$I $.AD$LHuŠP?DALHtLH5N虠I<$@<xI4$HtHI1RtImIHt>u G-H}H}SHH}Ht Gt&TGA8AD$I$0H TH H;MuHh[A\A]A^A_]GUHAWAVATSH III0ۄtnH]HћH5*H蒞H}HuL肚H}IT$LAH}Ht?F0EtA$H}Ht#FH [A\A^A_]HH}Ht FHH}HtEH*F@UHAWAVSHIIuQL <uEMtA?uF0;H}L&H}_GH}HtE0uAI~LH[A^A_]fff.UHAWAVSH(IIAtIA0ۄtkH]HdH5H%H}HuLH}IW1qAH}HtD0EtAH}HtDH([A^A_]HH}Ht DHH}HtDHDfff.UHSPHtH{ H[]ÐUHSPHHk-H=,HHgD14Ff/%F %5fH[]UHAWAVATSH IIH/ΌAAu-H5L{3H5wL*H3AD$;CrWt/1fffff./EŠLH„uH#LH蔉LH艉HLwIc@Hƅ~8HFH |1/tL}LH輂LLH}HtzBsuH5L^HH}8LeLHpLLLH}Ht+B$HH}HtuBHBLH>H [A\A^A_]ÐUH0G t)O00t HW(0:.ut0uz.]fUHSPHH;HtB0u HH[]UHAWAVAUATSHh|HpIII?Ht7B0ۅ}IH]HLߗH}H1H}HtwAHuHt H HLOH0H1莬I(H0.H0Ht=H Htp==!t uHH@X>HH@!?Df@ D։  IwAG -Iwp-Iw`-AG$D%f=@IHH5H#HHăHH5豃<8Q>HH薃HH5f胃E<HHHwH5HHHA<Z<IIH0Ht;H Ht;L<IHIH;HHIHHH;Eu1H[A\A]A^A_]ÿ;H QHH5H1;UHAWAVSPIII?Hu; Sff.I?<HHt-IwHHuIwLH1 6;0H[A^A_]ff.UHG HGHGHGH]@UHAWAVSH(IIHEH}*~H}!~H}LLoH}\8H([A^A_]HH}Ht*:Hd:HH}*8HP::DUHSH8HH};H}H1M0<uEH}Ht9H8[]HH}Ht9H9UHSH8HH}ێH}H10<u ]H}Htd9H8[]HH}HtJ9H9fffff.UHSH8HH}kH}H1}H}Ht9H8[]HH}Ht8H!9ff.UHHH?t Hk]Hw(H1]fUHAVSHII>t LH/Iv(LH10t0C t(K0tHS(:.utuz.t[A^]ffffff.UHAWAVSPIHIffff.I?tLHuLIw(LH1<u7C t C0tHK(9.utuy.tAH[A^A_]A78ᐐUHH?Hu]]p7fff.UHAVSHHOoHH{Ht=7H[A^]77IH{Ht 7H7LR7fff.UHAVSHHnHH{Ht"[A^]6IH{Ht6L7[A^]UHAVSHHnHgH{Hu[A^]IH{Ht|6L6[A^]k6UHAWAVAUATSHHDEAHHHIP;ctI Lk{:LE1B8DD68D}A@DA6ADeMtÃt u  AFHr8te}u_Iv4L`7AF0~;}yAFAdž8HcAD4EtL70Ʌ7A~LދU06AFH  LeLLyH}L1H}Ht4H}xALm1Lm"fff.HMD<EH;]sDHEDw H?;@HsIINHKHHLWy=tf C[A^]H/))H &HH5lH1")fUHf]aUHf]QUHf]QUHf]AUHSPH2HH[]UHf]UHf]UHAVSIHt>?%w rH0yf C@uHCHffCL+HCHu2Mt-'H HH5RH1(H'H[A^]UHSPH2HH[]UHSPHHH[]UHSPH 1t@?%w rHBy f C@uHCH1H[]H7'ffffff.UHAWAVSPIIAt@?'w rL̊y fA AG@uIGIfAfAGL(H1GIGHt,1fff.A9w3IGHz&d&H qHH5H1m&LH[A^A_]ffffff.UHAVSAHtDf tC?%w rHډyf C@uHCHf AffCH[A^]H%@UHAVSAHt>?%w rH`yf C@uHCHffC1DHCHu-2%H ?HH5H1;%H%[A^]fffff.UHAVSIAtFftF?'w rL誈y fA AF@uIFIfAA^L[A^]H$fff.UHAVSIAtFftF?'w rL*y fA AF@uIFIfAA^L[A^]H$fff.UHAVSIAtFftF?'w rL誇y fA AF@uIFIfAA^L[A^]H#fff.UHAVSIHtDftC?%w rH*yf C@uHCHfLsH[A^]H#ffffff.UHAVSIHtDftC?%w rH誆yf C@uHCHfLsH[A^]H"ffffff.UHAVSIHtDf@tC?%w rH*yf C@uHCHf@IHCH[A^]H"fff.UH?w r @uHGH1]H!fffff.UH1t1?w r j@uHGH1]Hp!UHAVSHI.>w"H?;@HsHHKINI1 LH&[A^]H!fUHAVSIHt9? w rH谄y[A^]Ã@uHCHIINHKHfA1H UHAVSHIt9? w rH@y[A^]Ã@uHCHIINHKHfA1H+ UHff9tf9B]H1?HHc HNW8]fNfWf9}fNfWf9sxNW9}gNW9sVHNHWH9}BHNHWH9s.fNfWf9|]Ã@u HH][@rUHAWAVSHAAHHuu0uHfMf'r%%iG€0Hi')%ik )i LC i{@0@{ik )@0@sik )0K0C-Mi0Ck )0KC-Mik )00ASK uyA LCMi0C k )р0K C :Mik )00ASKu*A:Eiʀ0Sk ) 0CHIAH[A^A_]UHSH(HH]HHEHu'1DLЉ uH)HH;EuH([]@UH?<wH HcH]I]I]IH]J@uCH]H]OHc]OH]O+fu-?F:H?]9J?F]t~UHSH(HHHHE?VH HcH?CHH7M@udHHuкF1@LЉ uQHHaNBHcHfD+C?C:H?HKHHH;EuH([]!33u0HiEHEH CH[]ffff.UHAVSH H^HHELUID0A 0 0A;A;HHEE@u-AIiQHH%kdA)uH'i)DžuEDAimDHiQHH%)H't.AH}ffffff.DHDۅukDHkޱHȉH F]ff.UHHɪH9rF0]HHyF0]HiǀH F]UHGH H HBzՔHHHoIH]UHGH H H>ޱH9w 0]HBzՔHHHoIHHH9r 0]É]f.UH' ]HUHSHHH}H1&H}?cu HG:HDH}HtmH[]HH}HtUHUHAWAVAUATSHhHUH|H}UH}UH3IH}VH}HuHUH}HtHMHqHbH߾0H`H}HtH}HtHHEDhEtޱHȉH F]ff.UHSH8HӍ6>E?E uȉẺ PHE}ЉMEHYH>ޱHiHȉH CH8[]fffff.UHHBzՔH'HHoIHйH9v0]UHAVSHHIGH H HBzՔHHH}oIHUyHP P Ht0x@ f;Mt `fAH[A^]ffffff.UHAWAVAUATSPID'_1HELuLDh H L LDh H+EHcHiigHAH AGH[A\A]A^A_]@UHAWAVAUATSDWI I HLHIMHBzՔLHHLHbȼk9IW)QΠEI%I$I$IMI?I'O48JHHHH?HHH\HH?HH?HHIIMI?LH>I HKY8m4OD8HiI)LHILH?LII 5tϊJDI?XBEAiـQ)HcHiųH HA AAHH?AN0nKHH)LcIiƉH I)LHDljHIHH?H HkޱHH}EH EHH[]ffff.UHAWAVATSLGIfDO fA;qfDW fA;afD_fAQLAGf >DwfE/fAt@0ۨu:HcHiQHH?HH%DkdD)uH'iҐ)LHHRHHOHD;4f=AMMMfAA_ A_HcHiQHH?H%iӧiHcDޱHȉH CH[]f.UHHH}11 u%EHcHiMbHH?H&iE 1' iH]Ð%}%}%}%}%}%}%}%}%}%}%}%}%}%}%}%}%}%}%}%}%}%}%}%}%}%}%}%}%}%}%}%}%}%}%}%~%~%~%~%~% ~% ~%~%~%~%~%~%~%~%~%~% ~%"~%$~%&~%(~%*~%,~%.~%0~%2~%4~%6~%8~%:~%<~%>~%@~%B~%D~%F~%H~%J~%L~%N~%P~%R~%T~%V~%X~%Z~%\~%^~%`~%b~%d~%f~%h~%j~%l~%n~%p~%r~%t~%v~%x~%z~%|~%~~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%%%%%% % %%%%%%%%%% %"%$%&%(%*%,%.%0%2%4%6%8%:%<%>%@%B%D%F%H%J%L%N%P%R%T%V%X%Z%\%^%`%b%d%f%h%j%l%n%p%r%t%v%x%z%|%~%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % %%%%%%%%%% %"%$%&%(%*%,%.%0%2%4%6%8%:%<%>%@%B%D%F%H%J%L%N%P%R%T%V%X%Z%\%^%`%b%d%f%h%j%l%n%p%r%t%v%x%z%|%~%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%€%Ā%ƀ%Ȁ%ʀ%̀%΀%Ѐ%Ҁ%Ԁ%ր%؀%ڀ%܀%ހ%%%%%%%%%%%%%%%%%%%%%% % %%%%%%%%%% %"%$%&%(%*%,LUsAS%Eshhh4hVh{hhhhhhhxhnhdh'ZhAPh_Fhwh4h*h; hUho hhhhhhh#h2h?hLhdhuhhhvhlhbhXhNhDh:h0h%&h4hIhVhehshhhhhhhc|w{ko0g+׫vʂ}YGԢr&6?4q1#'u ,nZR;ֳ)/S [j˾9JLXCM3EPfHa5WiَU(ߌ BhA-T @6    m1'Y GQcg)) '8!.m,M 8STs e jv.,r迢KfpK£Ql$օ5pjl7LwH'4 9JNOʜ[o.htocxxȄnjlPxq15ICompressCoder2N11NCoderMixer12CCoderMixer2EN11NCoderMixer11CCoderInfo2E11CVirtThreadN8NWindows16NSynchronization14CBaseEventWFMOEN8NWindows16NSynchronization15CBaseHandleWFMOE19ISequentialInStream20ISequentialOutStream25ICompressGetSubStreamSizeN8NArchive3N7z15CFolderInStreamEN8NArchive3N7z16CFolderOutStreamE- &N8NArchive3N7z8CHandlerE10IInArchive19IArchiveGetRawProps14ISetPropertiesN8NArchive3N7z11COutHandlerEN8NArchive17CMultiMethodPropsECopyLZMA2BT2LZMAN8NArchive3N7z28CUnsupportedFeatureExceptionEN8NArchive3N7z19CInArchiveExceptionE9IInStream13CMyUnknownImp  @ @ @   a bc29CSequentialInStreamSizeCount2N8NArchive3N7z17CFolderOutStream2EN8NArchive3N7z14CThreadDecoderEN8NArchive3N7z22CCryptoGetTextPasswordE22ICryptoGetTextPasswordN8NWindows5NFile3NIO7CInFileEN8NWindows16NSynchronization21CManualResetEventWFMOE14ICompressCoder33ICompressGetInStreamProcessedSizeJ&N8NArchive4NBz28CHandlerE18CInBufferException16CSystemException8IUnknown15IArchiveOpenSeq11IOutArchiveN8NArchive4NCab17CCabBlockInStreamE O&'P1 Can't open volume: N8NArchive4NCab8CHandlerEN8NArchive4NCab16CFolderOutStreamEN9NCompress8NDeflate8NDecoder9CCOMCoderE20ICompressSetInStream25ICompressSetOutStreamSizeN8NArchive4NCab23CUnexpectedEndExceptionEN11NCoderMixer14CCoderMixer2MTEN11NCoderMixer7CCoder2E20CCrossThreadProgress21ICompressProgressInfo15CDummyOutStreamcrcmt26CSequentialInStreamWithCRC16CInStreamWithCRC12CMultiStream17COutStreamWithCRC -J.gzN8NArchive3NGz8CHandlerEN8NArchive3NGz24CCompressProgressInfoImpE27ICompressSetCoderPropertiesN9NCompress8NDeflate8NEncoder6CCoderEN8NArchive5NLzma8CHandlerEN8NArchive5NLzma24CCompressProgressInfoImpE N8NArchive5NPpmd8CHandlerE'OfileN8NArchive6NSplit8CHandlerE19IInArchiveGetStream 56Z-S.tarN8NArchive4NTar8CHandlerEN8NArchive4NTar13CSparseStreamEustar00J&N8NArchive3NXz8CHandlerEN8NArchive3NXz16CSeekToSeqStreamEN8NArchive3NXz30CVirtProgress_To_LocalProgressEN8NArchive3NXz29CVirtProgress_To_OpenProgressELZMA2N8NArchive3NXz12IDecodeStateEN8NArchive3NXz9CStatInfoEN8NArchive2NZ8CHandlerEN8NArchive4NZip12CLzmaEncoderE15ICompressFilter18ICryptoSetPassword !X)N8NArchive4NZip8CHandlerEN8NArchive4NZip12CProgressImpEN8NArchive4NZip12CLzmaDecoderEN8NArchive4NZip13CProgressVirtEN7NCrypto10NZipStrong8CDecoderEN7NCrypto14CAesCbcDecoderE17ICryptoProperties30ICompressSetDecoderProperties2memaes128192256zipcryptomtN8NArchive4NZip12CUnexpectEndEN8NArchive4NZip17CMtProgressMixer2EN8NArchive4NZip16CMtProgressMixerEN8NArchive4NZip15CCacheOutStreamEN8NWindows16NSynchronization19CAutoResetEventWFMOEN8NWindows16NSynchronization14CSemaphoreWFMOE13CInFileStream16CStdInFileStream14COutFileStream17CStdOutFileStream14IStreamGetSize12CFilterCoder21ICompressSetOutStream15IOutStreamFlush29ICompressWriteCoderProperties22ICryptoResetInitVector27CSequentialOutTempBufferImp7ztN8NWindows5NFile3NIO8COutFileE26CLimitedSequentialInStream16CLimitedInStream16CClusterInStream14CExtentsStream27CLimitedSequentialOutStream13CTailInStream22CLimitedCachedInStream14CTailOutStream28CLockedSequentialInStreamImp+-16COffsetOutStream10IOutStream19COutBufferException13COutMemStream19CMtCompressProgress14CLocalProgress15CBinderInStream16CBinderOutStream12CBufInStream19CDynBufSeqOutStream19CBufPtrSeqOutStream29CSequentialOutStreamSizeCount15CCachedInStream13CReferenceBuf19ICompressSetCoderMtN9NCompress6NBZip28CDecoderEN9NCompress6NBZip212CNsisDecoderEk0-6_[Om>Ic3n+ecc1^'Oo;{mqi_IzOU!jrRd!3M\cX~Twb)bUfXDu&6(GwCji \0BO$`>a[p_#^]bc4aDOrvoQr} ,5NWN`~YfkD|Rdpk)w4X^QX%.Nq}E) f3&bwA@ir~o<8.);W8V^l;lw0IWa:v6Il1l=RWq&'; $z<P5+R?# %85e&`z=jnt7& {drY 2lrefRZl~N9NCompress6NBZip28CEncoderEBZip219ICompressSetBufSizeN9NCompress5NBcj28CEncoderEN9NCompress5NBcj28CDecoderEBCJ216CBCJ_x86_Encoder16CBCJ_x86_Decoder9CBranch86BCJ16CBranchConverter15CBC_ARM_Encoder15CBC_ARM_Decoder16CBC_ARMT_Encoder16CBC_ARMT_Decoder15CBC_PPC_Encoder15CBC_PPC_Decoder17CBC_SPARC_Encoder17CBC_SPARC_Decoder16CBC_IA64_Encoder16CBC_IA64_DecoderPPCIA64ARMARMTSPARCSwap2Swap410CByteSwap210CByteSwap4N9NCompress10CCopyCoderECopyDeflate64N9NCompress8NDeflate8NDecoder11CCOMCoder64E       (08@P`p  (08@P`p  0@`  0@` N9NCompress8NDeflate8NDecoder6CCoderE  (08@P`p  (08@P`p   0@`  0@`     N9NCompress8NDeflate8NEncoder9CCOMCoderEN9NCompress8NDeflate8NEncoder11CCOMCoder64EDeflateDelta13CDeltaEncoder13CDeltaDecoder6CDeltaN9NCompress8NImplode8NDecoder10CExceptionEN9NCompress8NImplode8NDecoder6CCoderEN9NCompress6NLzma28CDecoderEN9NCompress6NLzma28CEncoderELZMA2N9NCompress5NLzma8CDecoderEN9NCompress5NLzma8CEncoderELZMAN9NCompress4NLzx20Cx86ConvertOutStreamEN9NCompress4NLzx8CDecoderEN9NCompress5NPpmd8CDecoderE N9NCompress5NPpmd8CEncoderEPPMDN9NCompress8NPpmdZip8CDecoderEN9NCompress8NPpmdZip8CEncoderEN9NCompress8NQuantum8CDecoderEN9NCompress7NShrink8CDecoderEN9NCompress2NZ8CDecoderEN7NCrypto7NSevenZ8CEncoderEN7NCrypto7NSevenZ10CBaseCoderEN7NCrypto7NSevenZ8CDecoderEN7NCrypto7NSevenZ5CBaseEN7NCrypto14CAesCbcEncoderE7zAESN7NCrypto12CAesCbcCoderEAES256CBC11CSha1HasherSHA1N7NCrypto6NWzAes8CEncoderEN7NCrypto6NWzAes10CBaseCoderEN7NCrypto6NWzAes8CDecoderEN7NCrypto4NZip8CEncoderEN7NCrypto4NZip7CCipherEN7NCrypto4NZip8CDecoderEN7NCrypto10NZipStrong10CBaseCoderE20CArcCmdLineException7UString2pqrxyzw-r*ERROR: : : 18COutStreamWithHash8CGetProp23CArchiveExtractCallback8IGetProp23IArchiveExtractCallback16COpenCallbackImp20IArchiveOpenCallback26IArchiveOpenVolumeCallback29IArchiveOpenSetSubArchiveName16CInFileStreamVolmtCRCcrc32*LZMAd18CBenchmarkInStream19CBenchmarkOutStream13CCrcOutStream18CBenchProgressInfo21CBenchCallbackToPrint12CBenchBuffer14CBenchInfoCalc14IBenchCallback21CBenchRandomGenerator~*./Can not create output directory #...[]*Scanning error11CHashBundleCRC329IHashCalc25CEnumDirItemCallback_Hash20IEnumDirItemCallbackexe* $N[Content]:[DELETED]/Unknown errorUnknown warning000001Rar!N8NArchive7NParser8CHandlerE27CArchiveOpenCallback_Offset32CExtractCallback_To_OpenCallbackexe0pc3d5b7-9lBsDEF./.tmprsfxonSFX file is not specified7-Zip cannot find specified SFX moduleUpdating for multivolume archives is not implementedThere is some data block after the end of the archiveScanning errorThe file already existsstdout7-Zip cannot delete the file7-Zip cannot move the file18COutMultiVolStream.7-Zip cannot open SFX module7-Zip cannot open file7z26CEnumDirItemUpdateCallback22CArchiveUpdateCallback23IArchiveUpdateCallback222IArchiveUpdateCallback20IArchiveGetRootProps23ICryptoGetTextPassword219CPrintBenchCallback19IBenchPrintCallbackN13NConsoleClose19CCtrlBreakExceptionEN13NConsoleClose18CCtrlHandlerSetterEWarning: The archive is open with offset Can not open the file as [] archive The file is open as [] archive23CExtractCallbackConsole18IExtractCallbackUI29IFolderArchiveExtractCallback9IProgressSize Name20CHashCallbackConsole[Content]15IHashCallbackUI20CCallbackConsoleBase = #15IOpenCallbackUIFi#@'i#@'i#@'i#@'i#@'i#@'i#@'i#@'i#@' i#@'i#@' i#@'0i#@'@i#@'Pi#@'`i#@'pi#@'qi#@'ai#@'i#@'i#@'i#@'i#@'i#@'i#@'i#@'i#@'i#@'i#@'i#@' i#@'"i#@'#i#@'$i#@'%i#@'0i#@'1i#@'2i#@'3i#@'4i#@'5i#@'@i#@'`i#@'ai#@'i#@'i#@'i#@'i#@'i#@'i#@'i#@' i#@'0 ( Error: 7zCon.sfxN9NExitCode5EEnumE18IUpdateCallbackUI217IUpdateCallbackUI7CCodecs13CNewException7AString20COpenCallbackConsole22CUpdateCallbackConsole[Content]10CCrcHasherCRC327IHasher13CSha256HasherSHA256*...14CXzCrc64HasherCRC64c:/c:/tmp/.tmpN8NWindows5NFile3NIO9CFileBaseE) X=  T<Kryt=9D>_G _4.Z_3 . 9<  3   WI 9i j_ - _ >- 9@  g Oi ) v  " O C < 9> ?} Oyg.ATO9Ob[9gAK_'W v~x ")$j  9w'446'446GSIH 4' { S- 68J@H[| r) wW_ QրNO E) J5R$~v 'Ras}uGSIH(6*??0E(s #X X "Mo7*ń#3U +\PL;+gi\Fck/* F S%Fzq,<%  o # cz .1  z mE oUBkY\DtFv OqllA!s !(y!L A 6  K W f)'&'446'UUwdpu<rVp. )'!! ,4[ t)4/ U }X8J@H)' X(6*40IB`\k^40PBlcge40IB`\k^˃=   n  a.  c c hs J!5VOv" q  ?M_ wAh cW})'LLT4 k#~aGSIH'uM & \G  :3QcCc  i}  "IAY}krm# (6*'7M IAP@TB.3&4/HA_[j]4/OAkbfd4/HA_[j](6*4%%<  N--  .N 7! *>}@)'ii >t(s**TEgU{5GUfs4PsP" =} €4HIh{y!} """[ #H =9;l  4> _H  N-5,gL,:14iiL4!! ,N<4003c# Sk5q ~l i^mOlb =# @   3  - } < '  > ' % 'b     N  j  ^   '% S sN `}`)'UU*Z4NNv]B 4NNW^Bu5( & \f0Z'0b^(~}44$$ /[?~4A/XToV )'//?)'<ꀀhX c & Q'zVjÀA  )'\\ujK2A}'Au&A(#7 A@#R A[pAA #$AhWAlAA 2;-2<7s0? A0 AA9 L AXIAlÀAwwVw_|)'))0<| X@ LVP ʃH=l)ll19&Ohe`b0 `?bv   u KH O > J g S @ Z s ~Gl7ÀAss5f €4 D1DB?}  ' N {R [n}u.D75NQ. Ɓff r .2 qu$ ! 2  P  *+<.+- 7r# # N ZLT)'!! ,(6*       | l tk  s  5  [  c   <  >#  5 >s  G)'$)'.%M6(0(>))$q(8Y(OJ B )' B ( UB} 9 R . :R_ 8F) DR     gx 3' q o~Z)oP ,j)(G,oH[kI TD~gc(c(v~%.. :&  ! !|#(!z)?!#" #d###(##$#$m% %& 3_&:(&#R7' q(C'G'(' ! c( (o(Z(((P)(U)-[yy9bL&b+0[w 4$=6TP_R4$D6`W[Yhu p8Mbdxb ||cN1vq@vHwv րN66>/m 44 V n yn րNf RXP '/L €4(-'=8:}X邀Vwn8 a l 4cR*>Cx a884NPnL}}ہzzRQ"sO\#Ci 27Ax3)'$)'.% """IA' 'S gz )' @)1(6*)uj  :_l n| KA}u~   q ;},,U ;8'*;Y   3UT 4w   0}4 ]FpH04G[Im^hfEրN"" <OQdY<u y( m x7}+:^c %Ip~slB .wo/.T! (,;g 0rZ *e I , J $0 j' e  '  ' nA  5 h' L 0 ",B=\^f}XL aU 4XX l yÀA~~ N44 V n y[N5pGeac  4K_MqbljE\n^'\s^1\n^'ce=`rb'`wb1`rb'`wb1`rb'`wb1\n^'\s^1\n^'`rb'`rb'`rb'4K_Mqblj-ÀA O'g/ T8U  I .=^  m      2 `   (  3 =}`4ll )'u][uu;}D@@ Ek'(MP? GSIXGSIX)'zz JJIA..U=X ld )'!! ,(, I`M %<q}uX'Bix4 )?pxDD@PX|4/ U {}R4/ U {}R4 A 1,D <IA ? 5)B :KÀAtt( 4XX9 A`89 x9GꀀhS*o]:r$2&)'UU {a3 )GSIHN=hOg p%%}N=zS > zG`%}X€4)38} Njw"20)}}LZQW= UZrj  m.0VA LQ:}},݂eL Kg5!6V v %+mi$=' ,]0 e +Yjmd,'#m )'$)'.% """$2&4)6}uK#S . 3 83)  h,,4Cw S' "4<-SOog? e r3 2 2[]T%)'UU lb9bIJQh"mbQS<   Q 1Jq-i}t4/HA_[j]4/OAkbfd4/HA_[j]$2&i[^It I3 lv>}$i[=ZT&zZ+}||BP+5,+r0cyHR&mmH] CA?H-5BA+:me)'00 I9#/C10/K1;/C103O5;NN'5   u! 4,<Sk+4b`m !( ; BY6 B!7'446cc$ % .   .;€4 -(%M`^!}DXdZ:3 ><E၀MuP}-2ta  #Q}`y B}h, !3'-M  %^}'3354SS n; PD? THGSIH4 "  7}u|H|*)'!! ,€47YQ(y'}4x,b1G ][440d 4€4ooh>NE}#B%;Y2L;7,cG}6 V<aw V !?~P$tV|/}N,<Nj """"2@4Nccp }  hSEg \A~Zj ~v (6*ÀAS#X+ ]4\ÀA39%r  :\߁    !5; ! {2> p y}p)'!! ,4ggo4PP \Zv  + 9 j  r D  u(ÀAkkbsOPb)'$)'.%P NNiV}G  n1fvW A:=AN*B TA1 bB  C n  T B [ n  N   3 CB : րNU2=B#Cf €4F O }h€4j sH'} ]k6tN aP \X cU|<a2"Q6zI;€4,*"L_]'}hMM#$%:fH9  !9q  %CVTM}@+WLEv u?G&16~6&N)fI dT6.4fbI}h)'$)'.% """$2&[`u   lw  €4Cb(8}MFM/^:sx> Mc}M/1+I\ZB}$2&[..26w&X+E0cX < ]K <N  :*f/v  p- F c   4< S   =S -  > G< 4 /=13A5ÀAeem.4^ ,NS+ex "Xki%})'$$ m/Vx Tl#CT X @(TT T%\A}$R_ZtRM M  D}9KA>IA' r4wLr օL o$DCE  xKK   $ f o~   [4 `  & W E d \ x E  L & KE q E / e  = / H .    = EU#-7VD (o-&S0;'<<>|#T39 ^3f  $ -K^\?} ""$2&8J@H4  [ m#5GY^HTJHÀAcc42 j `D  MI3gv5NOo 8   0 ; h  v 4   !  y  D &  l#&`Dbi}l)'xx}  | r? {{   d* g9 ^B{-%R8N* /*)S /c#J)'AAFIAJ / !GÀA DրN_*g-M6 %#)'!! ,OW +94X3&:9.;L]8}Y a7:FqDFI yKY Az  A|&YItYF Q5 1Y* i   }ԳUAd{x}}<4]]3 )'D4YYo~ &(6*)'$)'.%'::J?IA??h  IAEE RZ 4@oh <#(f]8$d  d! #[f $ G$$Z/ Q1  i ( d1 ~i - 7v   Dv D i Y 1   d1   4 $ Z *  G !    "4 "f  :  Zv}x   =LZ reu #G ?a0 #=00F#X du # L p#GSsB#   #] 8"g 8  ! !! h"! (! G!"I! "a!!G"f8" I"D" N",#z##f###F$$$ $2&[ F-h?]Y[ {} )'AAI)'!! ,Tl6)'!! ,IA$6H]|8J@H' <jtlIA $ 2'E= 7A<8J@HIA@@ `L  IA}0E!>h )>Sr {"n  'Y N Y%EA..Doq9?KA68|6W8')O/( !'M+U2+4]6? !'G,O4#)'NNVo4B*+U_W 4 5*LHWJIAW=n?+j ][TTY %quG2; 4( 5) )IA = #=S  """""""""""Rl'9*KhG =G? N N ,0?IA'==P!''O8W@ !4,, TWu_)IA \$>,3_igIAkZin z^ 4aa`-$2&2@42@4$2&2@4$2&IA44*x^{ )'LL:b;TC$][ eR')'9 rF@][) |T (0#SNAA J$n/)'ccq7)'hh u)'$I4Q; ']] fS}u1e1 *6 ?*i3}$IAuu 'UUqd4$=6TP_R4$D6`W[Y"$XF% -![ A A FUtl% 2#6F|&<-;-N ~Y-M X5M X9I yT-'% "[~$ y0 < gT4=%'Y4  r}}<@[RrmJrWE}{ЕĕπA >& <1 :s>}p ""4* VOvrt[ O J% q1 l:R7 4  n,}} $'69`A$ ""րN*t/ o; G w.%4(M-%'nn/8 :}}[f* a6 B Ni= )'$)'$ Niف*o  =?O *3 $? &X"f& ( !.} !:}}HL)'$#4('8,IAaaw) IAiiF )'d#T)'88dF1  \n^'\s^1\n^'ce=`rb'`wb1`rb'`wb1`rb'`wb1'}75}},09mGl}} du- .} .}d .}8)' a T)'88 aC1IAc w  .}h "IA f+ \7 ai" """""4V{t3D87H<7H<)'$)'$ """""4V{t3RF7VJ7VJ)'$)'$'qO[\5+ *(?LD  .}'B)9'G)C """"4Doq{vq{v.[F1.VF'.VF'2ZJ'2ZJ')'$)'$IAVp,IA%WC bLi~n 4=(KDbI "4H3VOmT'{)'T6 :}}<@][JJ x Ob} :}}'K?43_CK :}})'__doIA))Fo  )'q)[NKKi?-)'n&[ "%% " "%9;)'EE NI)'EE NW)'K#;)'N&;)'%% =."N '6 k.I)'88V@5 1E> 9 u > CHC,8d o 11LM,Un7    (W11XB(#!50.^to@Q'%x> /S-  " 'Y O-  > D" & [ "  n  A  *K W!x  Y e"{=M'z ;JRB/E@Qq'")'<][HH-zu)zF / 84 O4!! , 9ꀀh%% 7 E V q }ꀀh""{0:GZb lE XNUIA = 3 8@hR$8J@H4!! ,N<Ɓ+3HZps/}zu zNddS# S!74& N/}u` m`2 4 1 =€4+/-"Ob`!}t€4' _%%}s€4"9LJ!}ts=A_ꀀh00 <K\p<<K`w€4 ?$;_|p<}qOmM+n(3(J` (~ U(V;( i# U7 : N4i0 b< sT  T  b d f + d dN  x /  RN !NN#Xd 9m-Le LuL>dnvnvN(-}LoπA$)H$!}nπA,94)]9%}nQA$ >EC"exv)}Ln][1A:{X]m$2& ""$^9YpU; 1;3 πA!"Ami!k!}hlπA!"Ami!k!}lπA< JE6{ J}k߁D]`; S!z;!R !# g!om!494m~M}jh/ Lng&4}`j """O Qr "4UcWfvn /I k  #,1n +g?T+1K*\΁Q#}1X   _mr0mm.P 8XdK`TuKF fCK  )[ tt3bKC%IAM ~X2 ҇A46q }\ ^{+ >  i *  n b      xm 8%8 ]8` SH x cP  /  = 0f  (  B ` ~ `  wP  c 3  @}  B  /!)!D!~! J" ($ 4$N$" $%$X&[&&x&&&j', &(.T(E (2(x C*2u* t+EE QL H z j|<b rV+ Uv- ) v/ Q g' 8 % b ' # / r L 2  J q[[ "  b%9m )xk=W; )FHyH uRA(h>[uTq6;    "  ;  KN W_KIG'@KEK+." 1%-!4?=!Q&ELJ '4b% # =Ry3rmcT~YO^m)h6cG+ JJ4EEl''=5 -!ÀA[[iBl)'ff{6)'GGL)'[[ fBB .:j,Co6? PH ꀀhj&qe4 #7)'(;"= 8E Xg Q ]= E M .{)Z@s ~ UN qD= w, ( T ; c / C  / .  499&f&4/ U iqX +LրN## C, [8&^nf 9y80 :HYzxE F% i'%l9N( T c  4 R H  3 n   L "wn }  w ^ A b>ALr.v40v-A@L Q+A6*;A- 9TA1-gx)'0 U _m4,$ 8J@HIA/IABnv  )'335mh+)'(( C3M)'NNe] 4ꂀ**:  (s{o%Pk~1 6+ G xK(m ,4%% @RdTBB 30c )-m &QwY  7Oj-E d8{fr   w m , 8 +c 3  UaWHÀA"  NÀA ; ! 4!! ,N<OiW/#<1mB? dE*:B)'!! ,)'LAzIACCy42 j ^ÀA2 Y q |k[ vd8)'NN])'!! ,)'|| ;€4%A9(atr!}JNmZZ?H=}dJks3sTmk 8fQKf&97D}dI€4)'"I\Z!}I-l5KUU_G?`p   8ÀA7+nh3F'WW cs@ IzO Xg€4 "@SQ!}`G X H fTGf999rg 6 ?lNNN krD€4'F?'fyw!}FI; ;o: NL.|s j  p    &   a5K(V?;v4`(>?;^I EF>:*M"jueK6lD!J.!lh!?;8"b#@".#`#6#=s#d##N;#J"$%6$%%%L&"%&W.'w.#'.'2. .=././.s07b434 3f53W7.7.8 %29d#9E9?;v:{:4VVNbCC OH  1c=5Xtq4X1M^Ɓ !   b kH b=Pn;/>}ue 5C0NpXu8 4Q~k&y&Â;;B7 8hWk 2 |7 [W t< D < L HT \  3p fmftT  L 0< EGFM2 )'!! ,00DP Y t8  )'44wDրN5>3.@3R o |R  , o k'SB d yS\N88+Oc OF J)'  #`,M4/R1 B=U MIA/P1 F:S K\43V5 FAY QIA3T5 J>W O`4/HA_[j]4/OAkbfd4/HA_[j]/=13A5#79?OGeOv f{n0FU72*-ÀA66 N Z g4CK T ]}uOW   p7 ÀAU*Z2 _;W4:;0 9V8 8C {} sVN ÀA&& 2Pcr1RR p   !QA W r r&ˀA;;= i|~;T=*)' _ÀA$$6zF RfÀA$$2zF RfN$$6 C kJ][,,Gs D FY(W?wEA ` l=OOWU<p <(V;<V2Vm 2 !9 >& oj3z Yu 2 { n 2z  X a   2 ` , Q | 2,, :K  3%  8!&!7uJxR-<#%Hekt :Jc)mR.FB4,Hck+z)0Axzb+ ;3@+E S3c  S3  !S3!1!=!S3[!2 /"+"""++## #>H#+W#+#+#$$# )$z$A+$ %%K33%B%%&'$& 'G&'x&C'&f'x' %'+'R-6(*+#)d<+!*8+\*<+*6+*<++:+U+R-k+ ++++R-+ k+R- ,B,"!,c- -/.`.w/}0/=/22/ 0/0000"1 u041W1 2 522222 3P0 E9VbXHs€4'F?'fyw!}*)'++ 8k)') .€4"8KI!}*€4"9LJ!})€4"9LJ!}t)€4,.+},)i[~  E 6&0}(O %\ L&\CU  h h   D}'€4"9LJ!}t'0 $F Ub WwO 4,-SLejff}&€4"9LJ!}t&€4"9LJ!},& """""IA^s!=NK^xp:5 J  :z0+nV:+z:N$$} (<04 *C OEAOTo  #hJJ 0 D#  L':)'.. p:O7V<"߀[3 cjh QÀAtt*K+'GG S'z> > &9>B | 5$hX Rd l Z 9R4++LJewL +ꀀhM9g][~~GocVÀA <D'iiq1hzzDFg F o wn4""* E3][>>i_r$A&aqg433 ? wL[ZZp&  [ZZk&  ҀNW&\p.6 5 ⁀^^ec3 N%2->N`mh}NoytHՁhp9Zv~49N/4EA7 ?`ww>W  j  rF u'!p= )L!W zx ! '!  ! !.O 6 E !    A 8 # U 3 ] ?  ( ' h D #X ( N S ; {    R 7     :*  !\exkPpZ!  - 9F! 2     A W cV bҀN @O [p |,߀[DD Z f_  @11%V q8 > -5'AtS |_,4e!=mB3րN%]1b=gE l  "=E  8: 8 1 *DnYY m%@omc =) L]Y[ E Me   ,F e + U X /  {    ;3' G 3 Z  ] e m  u9 }v   O     < i  ec&e| f $oe \Jaui,4PWUd 37 \F )*e~(30I 5Y e}ee!"3 ⁀ " .6&A .\ jhz r 6 >   F N K6 BA 7   ( 4+_rZ @1Z|   ? .*E :\ v  pIA  E @8րN |  h(& E XNU4$$A, F844>5R f^  -!8J@H[Xe ?~  hjoty~  ք)) K50e v{  v1" 3.$R ^7   .6.d p"    l'YOo]}}}}}}} } }<8<)'88 zDO'547'G4 5' @h, 8P \j xv %  ÀA'' 3%T-@EA '%7 /Ca VIA++%sP&v  IA//fF#i }u IA44Ey  NN&V? & ++&4ME YQ )'GGVa)'55DU' 3 ?h '%-R /f~0E44@K\)'r^^Xo  ; ] Qzl 'M o x5'M o x?'Z  H)'%% 6.4) 5gvg][yy/ (*K9߀[== I \o {R'DDNI .K6).K6)-J5).K6)ꀀh11G \Q^l `N00]8C{]_;)' <%0)' <%0'G i rO 4)'  )6=;ELJ$)'!! ,e[WAQp  )'!! ,&-S4rUd)'#"bEb)' ()'WW%|6e[a*X<[ ld )' eCJH$OOe/_Q{hS%U hy w:]| 4!! ,N<)'&րN00 pA uNz}44 V n y}4/ U iqXÀAA? _74mKvS<4xx"ÀA((Yh:sÀA__ mkwm<][77 dO3[u h \4 l{ dT~$$!RExJ `Y  p |i 8L##7O)& lHu : H Q~4\;eB<4^^o~y)'J/44//Rge4<<_rbÀA $A@^NAQQB 41 J:313ZHudi P- :I_րN&& Y/rC2u ~ )'G#=)'I#?)'<%03;+0'0NPPl Q j422G]YÀA ~,= It ,2 B$Y <aIE(0x&Y.3,4.t6F(0r.l6>.l6>.l6>.i6;.i6;.l6>: "!@&" =OJ (e0=(e0= ! -  )'// N9.u'' 6 ?b= F"LLZMA2:LZMA:LZMALZMA2PPMDDeltaBCJ2BCJ7zAESrsfxhchcfhetctatmv7z lzma 7z ace arc arj bz bz2 deb lzo lzx gz pak rpm sit tgz tbz tbz2 tgz cab ha lha lzh rar zoo zip jar ear war msi 3gp avi mov mpeg mpg mpe wmv aac ape fla flac la mp3 m4a mp4 ofr ogg pac ra rm rka shn swa tta wv wma wav swf chm hxi hxs gif jpeg jpg jp2 png tiff bmp ico psd psp awg ps eps cgm dxf svg vrml wmf emf ai md cad dwg pps key sxi max 3ds iso bin nrg mdf img pdi tar cpio xpi vfd vhd vud vmc vsv vmdk dsk nvram vmem vmsd vmsn vmss vmtm inl inc idl acf asa h hpp hxx c cpp cxx rc java cs pas bas vb cls ctl frm dlg def f77 f f90 f95 asm sql manifest dep mak clw csproj vcproj sln dsp dsw class bat cmd xml xsd xsl xslt hxk hxc htm html xhtml xht mht mhtml htw asp aspx css cgi jsp shtml awk sed hta js php php3 php4 php5 phptml pl pm py pyo rb sh tcl vbs text txt tex ans asc srt reg ini doc docx mcw dot rtf hlp xls xlr xlt xlw ppt pdf sxc sxd sxi sxg sxw stc sti stw stm odt ott odg otg odp otp ods ots odf abw afp cwk lwp wpd wps wpt wrf wri abf afm bdf fon mgf otf pcf pfa snf ttf dbf mdb nsf ntf wdb db fdb gdb exe dll ocx vbx sfx sys tlb awx com obj lib out o so pdb pch idb ncb optbzip2bz2 bzip2 tbz2 tbz* * .tar .tar.cabNoneMSZipQuantumLZX[ERROR-LONG-PATH]Cabcabfgzipgz gzip tgz tpzUnknownFATAMIGAVMSUnixVM/CMSAtariHPFSMacintoshZ-SystemCP/MTOPS-20NTFSSMS/QDOSAcornVFATMVSBeOSTandemOS/400OS/Xlzmalzma86PPMd:o:mem:rPpmdpmdaa01Split001OEMUTF-8[ERROR-NAME]cp././@LongLink@LongLinktarNoCheckCRC32CRC64SHA256xzxz txz* .tarSBPPCIA64ARMARMTSPARCCheck-Zz taz:EOSBZip2JpegWavPackStoreShrinkReduced1Reduced2Reduced3Reduced4ImplodeTokenizingDeflateDeflate64PKImplodingZipCryptoStrongCryptoDESRC2a3DES-1683DES-112pkAES-128pkAES-192pkAES-256RC2BlowfishTwofishRC4AESclcucopydeflatedeflate64ppmdzipzip zipx jar xpi odt ods docx xlsx epubONOFFmdmemocpblclpfbmfmcpassamteosxreduceSize?h-helpbabdtypwiaiaxanursfxsisoaosemladslpsltlsscscrcsaspdspespfsnhsnlsnisnssnrsncsdelstlstxDuplicate archive path:The command must be spcifiedUnsupported command:Unsupported -spf:Cannot find archive nameArchive name cannot by emptyCannot use absolute pathnames for this command-ai switch is not supported for this commandstdout mode and email mode cannot be combinedOnly one archive can be created with rename commandIncorrect Number of benmchmark iterationsI won't write compressed data to a terminalIncorrect volume size:incorrect update switch command-I won't write data and program's messages to same terminalThere is no second file name for rename pair:Unsupported rename command:Incorrect item in listfile. Check charset encoding and -scs switch.Cannot find listfileEmpty file pathToo short switchIncorrect wildcarc type markeraudtexlbihCannot find archiveseaasut0-Can not open output file Can not delete output fileCan not delete output folderCan not rename existing fileCan not create file with auto nametesttimeCPU Freq:size: CPU hardware threads:CRC32:4SizeAvg:usage:Benchmark threads: CompressingDecompressingMethodDictSpeedUsageR/URatingE/UEffecKB/s%MIPSCPUAvr:Tot:LZMA:x1LZMA:x5:mt1LZMA:x5:mt2Deflate:x1Deflate:x5Deflate:x7Deflate64:x5BZip2:x1BZip2:x5BZip2:x5:mt2BZip2:x7PPMD:x1PPMD:x5Delta:4AES256CBC:1AES256CBC:2CRC32:8SHA1RAM MB, # | there is no such archivecan't decompress folderpeCan't create hasherrarisoudfwimrpmvhdxarelfmachomubteRHS8DAdNTsLCOnE_ERRORUNSUPPORTEDs:d:S-1-0xTrustedInstallerAdministratorsUsersGuestsPowerUsersAccountOperatorsServerOperatorsPrintOperatorsBackupOperatorsReplicatorsBackup OperatorsPreWindows2000CompatibleAccessRemoteDesktopUsersNetworkConfigurationOperatorsIncomingForestTrustBuildersPerformanceMonitorUsersPerformanceLogUsersWindowsAuthorizationAccessGroupTerminalServerLicenseServersDistributedCOMUsersCryptographicOperatorsEventLogReadersCertificateServiceDCOMAccess0DialupNetworkBatchInteractiveLogonServiceAnonymousProxyEnterpriseDCSelfAuthenticatedUsersRestrictedCodeTerminalServerRemoteInteractiveLogonThisOrganization16IUserIISLocalSystemLocalServiceNetworkServiceDomainsP7ZIP_HOME_DIRtype of archive is not specifiedcan't find archiveupdate operations are not supported for this archiveInternal file name collision (file on disk, file in archive):Duplicate filename in archive:Duplicate filename on disk:Internal collision in update action set SetConsoleCtrlHandler fails (SIGINT)SetConsoleCtrlHandler fails (SIGTERM)file already exists. Overwrite with <> : Error : Error #Error: Can not open encrypted archive. Wrong password?Can not open file as archiveCan't allocate required memoryErrors: Warnings: Sub items Errors: Can't allocate required memory!ERROR: Everything is OkNo files to processIs not archiveHeaders ErrorHeaders Error in encrypted archive. Wrong password?Unavailable start of archiveUnconfirmed start of archiveUnexpected end of archiveThere are data after the end of archiveUnsupported methodUnsupported featureData ErrorCRC ErrorProcessing archive: There are some data after the end of the payload dataUnexpected end of dataUnavailable dataData Error in encrypted file. Wrong password?CRC FailedCRC Failed in encrypted file. Wrong password?Unsupported MethodSkipping Testing Extracting : WARNING: FoldersFilesAltStreamsAltStreams size : for data: for data and names: for streams and names: Scanning = , is not file: Can not open the file as archive-- PathWarning: The archive is open with offsetType---- ---------- ArchivesVolumesTotal archives size12NameExtensionFolderPacked SizeAttributesCreatedAccessedModifiedSolidCommentedEncryptedSplit BeforeSplit AfterDictionary SizeCRCAntiHost OSFile SystemUserGroupBlockCommentPositionPath PrefixVersionVolumeMultivolumeOffsetLinksBlocksTime Type64-bitBig-endianPhysical SizeHeaders SizeChecksumCharacteristicsVirtual AddressIDShort NameCreator ApplicationSector SizeModeSymbolic LinkErrorTotal SizeFree SpaceCluster SizeLabelLocal NameProviderNT SecurityAlternate StreamAuxDeletedTreeSHA-1SHA-256Error TypeErrorsWarningsWarningStreamsAlternate StreamsAlternate Streams SizeVirtual SizeUnpack SizeTotal Physical SizeVolume IndexSubTypeShort CommentCode PageIs not archive typePhysical Size can't be detectedZeros Tail Is AllowedTail SizeEmbedded Stub SizeLinkHard LinkiNodeStream IDListing archive: Errors:Warnings:Open : Can not open the file as [] archive Date TimeAttrCompressedstreamsalternate streamsfilesfolders Formats:KSNFMGOPBELHoffset= || Decoding Error Archives: OK archives: Can't open as archive: Archives with Errors: Archives with Warnings: Open Errors: Folders: Files: Alternate Streams: Alternate Streams Size: Size: Compressed: Incorrect command lineWARNINGS for files: : ----------------WARNING: Cannot find filesWARNING: Cannot open Unsupported archive type7-Zip cannot find the code that works with archives. (locale=,Utf16=onoff,HugeFiles=on, CPUs CPU) Usage: 7za [...] [...] [<@listfiles...>] a : Add files to archive b : Benchmark d : Delete files from archive e : Extract files from archive (without using directory names) h : Calculate hash values for files l : List contents of archive rn : Rename files in archive t : Test integrity of archive u : Update files to archive x : eXtract files with full paths -- : Stop switches parsing -ai[r[-|0]]{@listfile|!wildcard} : Include archives -ax[r[-|0]]{@listfile|!wildcard} : eXclude archives -bd : Disable percentage indicator -i[r[-|0]]{@listfile|!wildcard} : Include filenames -m{Parameters} : set compression Method -o{Directory} : set Output directory -p{Password} : set Password -r[-|0] : Recurse subdirectories -scs{UTF-8|UTF-16LE|UTF-16BE|WIN|DOS|{id}} : set charset for list files -sfx[{name}] : Create SFX archive -si[{name}] : read data from stdin -slt : show technical information for l (List) command -so : write data to stdout -ssc[-] : set sensitive case mode -t{Type} : Set type of archive -u[-][p#][q#][r#][x#][y#][z#][!newArchiveName] : Update options -v{Size}[b|k|m|g] : Create volumes -w[{path}] : assign Work directory. Empty path means a temporary directory -x[r[-|0]]]{@listfile|!wildcard} : eXclude filenames -y : assume Yes on all queries 7-Zip (a) [64] 9.38 beta Copyright (c) 1999-2014 Igor Pavlov 2015-01-03 p7zip Version 9.38.1System error: Command Line Error: Break signaled ERROR: Can't allocate required memory! Error: Internal Error # Unknown Error : can not open the file as [ is not supported archive: WARNING: StdOutAnti item Compressing WARNING: Creating archive Updating archive Enter password (will not be echoed) :Verify password (will not be echoed) :password verification failed(Y)es / (N)o / (A)lways / (S)kip all / A(u)to rename all / (Q)uit? ? Unknown switch:Multiple instances for switch:Too short switch:Too long switch:--Error reading input streamIllegal character in input streamUnexpected end of input streamwtNo more filesE_NOTIMPLE_NOINTERFACEE_ABORTE_FAILSTG_E_INVALIDFUNCTIONE_OUTOFMEMORYE_INVALIDARGError Directoryerror #%xrb./fillin_CFileInfo - internal error - MAX_PATHNAME_LENstat error for ()out of memory INTERNAL ERROR - WaitForMultipleObjects(...) wait_all(%d) != FALSE INTERNAL ERROR - WaitForMultipleObjects(...) timeout(%u) != INFINITE INTERNAL ERROR - WaitForMultipleObjects(...) count(%u) < 1 ERROR : no constructors called during loading of plugins (please look at LINK_SHARED in makefile.machine)hw.ncpuP7ZIP_HOME_DIR=%s/-no-utf16-utf16utf8 PT!QXQX!a aQ QQQ w"2p Bp `  D Px   p     0 P h p @  d P   @ < \    ( h < h   P    D pd P $ @%$ `&d ' + -X 3 = @ @ C$ 0DD Dd PE E J LL O 0Q TT h i k< p q s @u u@ x` `y pz P( p    `, `   ( \  0 @  , L P 4 `   p<@ A M N @O( R `T Ul 0V `V W$ [X ^ d h Ph$ iP @jp j `k k l @mP n| o s xD `|  ` @h @ D p p   h  ` L l p    `  , вL `l     `  , L  н   8 0x @  x   8 X   T  D  p  `X  T `t    @   P Pt 0% p% 0)4 )T @*t * + , `- 0 1 02 p3P 3 7L ;x pD D 0F! pGH! Jh! M! O@" @UL# Vx# W# @X# X# `[# cl& d& d& `e& h' j( @k% l% n\( p( r( r) t0) ul) {* }`* * + pH+ `h, - ) l- p- - - - p . Й,. . P. / P\/ / 0 0 0 1 1 $2 `P2 3 H4 4 04 5 6 6 07 08 8 8 8 9 (9 H9 h9 p9 P9 8: p0; P; ; 8= X= x= = "> @%`> %> /p >p @p PA q BXq Cq @Dq 0Eq pEq Fr F0r GPr Gpr `Hr Ir Ir 0Jr Js ]0s bps Pps Pts s t ~ ? DP J M O( P PQ S @TԀ U U 0V4 pVT Wt X Y 0Zԁ 0\ \ hL hx ~ Ђ p$ P 0  p \  p `  0X 0ȉ  `4 T  @ l   <   `   0  X   @0 PP pp ` <   8    `  ܖ     <  \ @ |  ` @ 0" ` + X f o < P} ̢ } @  , p l Ё 0 p 4 І \ Љ Х  @ 8 p Г L d Ч d ` ܩ X P x `   P p Ȯ p p @ ` @ p t L 8 P x Ĵ H h 4 P      ܸ   0 p P  0  P 0 P  R X W  0\ ^ h 0_ _ `i @ pk ( m q t pt u @w Px  y { 0| 4 p} }   L `  p 0  L P  @ T ` H <  < @ P ` ` ` P P T 0  < 0 8 < P < P ` , L  l P ` p    0  p  ` 0  \ ` p  4    p " # $ \ ' *  + 8 0 2 3 P4 T 5 5 = B @E `^ p _ @` 4 b b c d H f 8 g  T p L l p ` h p @ ( 0 h    Х  Ч @ 0 $ ` P @  0  p 0 d   0 X @   D` l`   X@     H | P 0 @ p    H t   40"  # d# $ % <& hP' P( P* < , , . 00 D 2 `5 8 h ;  @? ?  A D E p  G H J 0N Q \pR R @S U <pU \U |V X Pa ,b t`b c d e pe <`f df g h h i ,i Tj |j j 0k k l Dpl lm y y 0z  o@`p0@` P  @@ %%,-P--p.`//1224`5p6889: ;=>`??ABDE FFG`HpHJKMPN OOPPP`Q@R`R0S@SSS TU`VV@WWX@Y[bc e f`flpmppqpP P``p` `@ ! ""##0$((@)`123P3`56690;PDKKpP@QQX@Y__0`epgh`hh iiij0k@kkk l`llmmmoqqr@uuvwy0zPp@PP@p0P0и p л p 0``0`  0pp Ppp   P @0`Pp0 0P@PP 0! "&&''''(0(P((0)@0 35 66809`9999:@::::;<=> @0AAAB E F@J[[ \] ^ 0apeef g`h@ijj@k  0@ 0  0   0` @$*, - .2C@E`LLMMOO P@Q pRS@S TU@V[`\^bh`jjmw@~ ЃЄ @Г @ЕЗ`Й @p `@Pp P@p `0  ` P0PPp p0P0    P`p++ , ,P--0.../022 P33@4P55p666@7 78088`9990:::;;@<<`==>>>0?@??? @@A APBC DEF`PPQpVX`Z @[`[p[P_@bbddeePh i0iijo pr r psPtuwyyzzP{{|`|~0p0@@ЊЋЌ  P@ pp0pp0PP` P@p 0@о `  Pp P`P` @P@``PpP  P@` pP0@ 0`@p  PP` 0 0`@ 0 `  p!!"#0$%&& p''' (.P/01 2346G GMOQRS0TTT`0a0cc ee fg0gpgp p@qr0rvyyy 00@Ѓ0``@Ї p@` @`ФPpP0P  pp  ` Ppp P pp  0 p`@`p@P`0  @      0p `  `  !%@'( (*8 `9 @:@;<P=p>?@@APAAPBBCPDD F`GK`KY Z@ZZ0[P[[[\\ p]]^^___`aaaapbdd0e`p @pPP    @ P p  @p   P0`0   `0д@0pP и@  P` ` ` p P`   @p0Pp0Ppp 000@`@P p0@P `0p`` 0 `P 0  P    @      `  p p@ ``@@ p@ !`!! ! ""@$P% % %&&`''( )@**++,,0-.. /0:; <P<`<<== > p@@`AI@JLO@OOOO0PTU@UU V@V`VZ]^`_`0a`aaaab@bbcccddPegjpk lm m`mmpnn oqpsu0  p@p @УФ0`p `  pP  p`p@Pp@`   !P!!""" # p$$$P%%&&@'p''@((`) **@++p,---@//0@B C`CC DDDDEEGPHMOPRS0UVVV@W0YY^P__``b cPccdf@g@noPww z `z z{`| |}`~~0 @pp @`Ї`ЈЉp  PДPpЖPPp0p0П0 @```p 00@ `0@@0`@ 0о0Ppп` @p 0Pp 0 @p` ``pP@   @``p `0P  `p    @ P  0 @ @  @!0' '@))+`, -- .0/P//011233p44606P6667P777 8`8p88889::: ;;0<p<==>p>???DEF0HH`IIJPJ`JJ0KPKQQR[0\`__`` apa b@bddpeef@ffgggiij@kpk ll mmno`pq0t@t 0uuvp|`@``ПPpp  0Хp @Ю ` 0   жpP `p`@` 0Pp0p 0@P`p`p `  0  9;HR VZ[@[P\0^`^`___```aa bd d Phhh iilPlm@nPoo`rrsv0yz Ћ ` 0Pp 0 ` 0` p`0  P p  @ 0   0   000  p02 @4`9 p>P@ ApA BKMP`STV0XXY ZZP[ p\0]^p^^__ ```aaPbc ccddeePf ijpk pll n 0o`opr@s@ux|`}}0 P0`  @P0@P 0 @p P0@P0Pp0Pp` P`Pp0p P`@ p00@    0@  @  @`  ` P    0  ` 0 0% &'@PAB PD D`EEFG0IIf h0lpq0r r@t t uu0v vz| Ѐ p pP @ P  @PpPp  ` @ В 0PЗPЙP`@p`` p0` pвPP`P@ оp0P0P00 @ pp`  @0@ @`0 d P p0 P    `  p0 pp`0  !"""## % &p( ) ,`,..1 2`5088 P9P:@; ;; <<P? @@ A B CC DFGJ@KpK L `L L 0M`MMNNOPOORRS@TPUUV`WWPXpYYpZZZ[ [ p\\ ]`]]]P^^ _ _p` aa bb cc d pd d eef `g ipijl0llmnpor0s Ps s0vpvw@ww@{{`}}zRx $@AC $D8*AC $l@AC zRx $AC A$D AC zRx ,x\AC J,L\AC K$|؉2AC $AC $PAC F,]AC J,$@]AC K$Tp>AC $||AC F$~AC F$8 AC $ gAC F$hAC $D`AC $lXAC $@OAC F$hAC $PAC zRx , (AC I,L AC G,|AC I,`AC M,@>AC I$ PAC C$4AC ,\QAC IzRx $ AC $D AC $lAC $ AC $hAC $`AC $ XAC $4@AC $\8AC zRx $AC $DAC A$lHAC E,AC IzRx $ؘtAC EzRx ,AC IzRx ,AC M,LPAC MzRx $AC ,D]AC P,t WAC PzRx ,8(AC PzRx $ AC $DAC $l AC $تAC $2AC B$ت$AC $ AC $4تAC G$\AC $H>AC C,`6AC J$pAC B$(AC ,,AC I$\AC I$H AC B,0AC M$AC I,:AC I$4(AC F$\AC ,AC M$AC C$0AC I$ȹAC G,,0AC K$\AC G,hWAC M$AC GzRx $8VAC $DpAC C,lAC G$AC C$0 AC ,'AC M$^AC B,DPAC M$tAC C,HAC M$AC $+AC B$@AC C,DAC M,tAC G$0 AC $ AC $AC C$AC $D.AC B$loAC B$ AC $#AC B$AC $ YAC $4AC $\xPAC ,AC J$@GAC C$hAC F$AC C$,8AC $T9AC $|DAC A$0RAC $hVAC zRx $^AC $D^AC $l2AC ,AC M,!AC M,AC PzRx $H+AC B,DPgAC K,tAC G$eAC C$HAC G$4AC ,IAC M,LAC M,|x}AC MzRx $?AC $D8AC ,lOAC M$AC C,AC I,'AC P,$!AC M$T%AC B$|6AC C$AC ,1AC M,yAC M,,NAC PzRx $OAC $D0-AC $l8QAC ,pzAC J$4AC B$4AC B$UAC E$<(AC ,dAC M$p *AC B$x BAC C$ AC F$  AC F$4p VAC F,\AC J$HHAC H$pAC $(#AC ,0cAC J$4p4AC $\AC $AC $h AC B,` AC M$@=AC C,,X=AC P$\RJAC C$RAC L$SAC $TAC G,T7AC M,,VI AC M,\_AC G,X`AC M,gAC I$XiAC $iAC CzRx $jAC $Dj,AC B$ljOAC B$joAC F$k:AC B$(kAC $ kAC ,4kAC J$dkEAC $kAC B,(lMAC J,HmAC M,pAC MzRx $PsAAC B$Dxt,AC B$lt{AC F$t/AC B$t\AC B$wAC $ wAC B,4xFAC M$d8{AC B${TAC ${=AC B,{AC M, gAC P$<AC F$dHuAC zRx $AC F$D&AC $lAC $yAC F,XAC G,ȆRAC PzRx $ AC $D؊AC F,l@AC PzRx $AC B$D,AC B$lwAC F$P2AC B$hAC C$PAC $ ؖAC B,4P+AC M$dPAC B$bAC B$EAC B,(XAC M, XAC P,<AC N,lAC K$8AC A,AC J,AC M$$ AC CzRx $AC F,DAC PzRx $жoAC B,D5AC PzRx $EAC $D8TAC F,lpAC N,п3AC GzRx $%AC $D>AC zRx ,AC M$L0.AC B$t8.AC B$@LAC F$h8AC C$-AC C$cAC F$<2AC B$dDAC F$dAC F$X^AC F$2AC B$ AC $,CAC C$T<AC B$|CAC C$<AC BzRx $3AC $D#AC $l5AC B$0/AC $82AC $PMAC B$ xAC zRx $AC $D(AC $lAC zRx $AC AzRx $sAC A$DpAC $lh{AC $4AC $AC F,p{AC M$AAC $<pAC F$dP~AC F,HAC G,AC M$KAC C,,AC M,DAC M$t3AC $rAC $rAC F,XAC P$AC $D AC $l"AC C$AC $ AC $/AC zRx ${AC G,D(JAC P,tHAC M,AC J$AC $AC $$AC $LAC ,tAC P$AC E$AC B,xBAC G$$ AC $L AC $th AC $P AC ,8AC MzRx $}AC E,D8AC N$tBAC $MAC $AC ,fAC G$@1AC $DXiAC A,lAC PzRx $xAC $D@xAC zPLRxF 4$xFAC P4\AC J4(AC J,AC F,d0AC J$@AC $AC $AC $  AC ,.AC C$dAC $AC 4LAC J,( AC F, AC C,H AC C, AC C,D AC F$x AC $p AC $,X AC $T@ AC $|( AC $ aAC $X AC $@ AC $8 $AC ,@ IAC C$t` AC $H AC $0 @AC $H AC $0 AC $<( AC $d AC zPLRx? 4$ 7AC MzRx ,4AC J4(AC P4 AC P44[AC J4L 5OAC J,5KAC F$\- AC 4-'AC M45AC J,P6AC M$$/ AC 4/'AC J46/AC J,(73AC F$7AC B,7AC J4p8AC M,|89AC J,9AC J$(:aAC $p:AC $,X:AC $TP:AC $|H:.AC B$P:AC $8: AC $ :aAC $h:AC $DP:AC $lH:$AC ,P:IAC C$p:eAC $:AC $:AC ,:pAC C,:/AC C$;AC ,;pAC C$;AC $;AC $D; AC $l;@AC $;AC $;AC $;AC $ x; AC zPLRxm7 4$@; AC P4\(DcAC J,EWAC C,EgAC FzRx $F AC zPLRx=6 4$E+AC G,FqAC G4(GAC M,JAC J,4JAC J,dLAC J$LAAC $LeAC $0MAC $ MAC $4M AC ,L.AC C$xMAC $pMAC ,XM5AC C,hMAC C$<M@AC $dMAC $MAC $M$AC ,MIAC CzRx $M AC zPLRx52 ,$MAC C,HNAC G$NXAC B4OY7AC J$$(PLAC F$LPPAC F,tPAC J$(R6AC $RuAC F$ReAC $ SAC $DSAC ,,SoAC C,\@S~AC C$TAC ,ToAC C$$HTAC $L0T@AC $tHTAC $0TAC $(T$AC ,0TICAC CzRx $8TAC B$DUAC BzPLRx- 4$lAC J$WAC $VAC $V7AC ,VC;AC I4XR_AC M$`[AC C$[AC I$\AC $\AC $D\AC $l\fAC 4,]AC P,xdiAC G4(g][AC P,PiAC C$dpj6AC B$kAC $@lAC $(lAC $ l AC ,l.kAC C$\(lAC $ lAC ,Dl5 AC C$8lAC $0lAC ,l5AC C$\HlAC $@lAC ,D(l5KAC C4t8l;AC J$mAC B,<nAC J$loAC B$oAC B4Thp AC J$@qAC $(q AC $DqAC $lp AC $pAC $p AC $pAC $ p AC zRx $hpAC $D`p?AC CzPLRx% 4$Xp AC K4\s AC K4ؓ# AC J4Pt' AC M4w|+ AC P4<P=7AC J$AC $AAC B,,Ȉ#AC M,  AC I,$؊ AC I4TH> AC M$PtAC F,AC M4Ȕ AC J$@AC ,(AC M,ttg AC C4w AC G,DЗAC J4 `/ AC J4D# AC JzPLRxM! 4$ AC PzRx $^AC $DȞAC B$lP:AC $hAC $`AC F$( AC $ $AC $4 AC $\?AC C$"AC $ 1AC B$8AC C$РAC $$ȠAC $L#AC $tȠ$AC 4Р4 AC M,أAC G$x0AC B$,KAC C,TAC M$mAC ,`AC J,AC J$ kAC F$4ȩAC F$\PAC C4AC M4@ AC P4L(e AC M$,qAC C,T8AC M$ؽAC F4Pz_ AC K4<S AC P,PAC J40 AC P$8]AC C4p AC P,<X AC C,AC M$DaAC $lAC $AC $AC $ AC $ AC zRx $P]AC E$DAC IzPLRx] 4$`"w AC K$XDAC B$PAC E$&AC ,<AC J$l`AC C$@AC C$AC C$XAC F, AC M$<PvAC F,dAC G,=AC G,7AC J,AC J4x AC P,\PAC J,AC J$PAC F4|AC M, AC J4pj AC P4SAC P,0SAC M,` AC M, AC J4 AC J, AC J$ AC $@ AC $( AC $, $AC ,( IAC C$H AC $0 AC zPLRx 4$ 3AC MzRx $xAC $D`aAC zPLRx5 ,$7[AC C,TAWAC CzRx $7AC G$DAC $lAC zPLRx% zRx $OAC F,DcAC G$tPAC C, AC G$BAC B,AC G$$X1AC C,LpAC G,|eAC MzPLRx] ,$AC G$)AC B4|)AC P4@H AC J,O AC M$hI-AC ,QAC M$@IyAC B$DI(AC ,lRvAC M,pJAC J,UAC J$PW@AC $$hWAC $LPWAC ,HWdOAC C,Ws_AC C$W@AC $WAC $$WAC $LWAC $tW/AC B,WAC C,XAC J,@YAC J,,YAC J4Z[AC M4ICAC M4$[_AC G4\8\AC M$<\AC $d\ AC $\ AC , \.AC C4<\]AC G,t]#AC F$L`^eAC $t^AC $^AC $_AC $_AC $ ^ AC $< ^AC $d ^ AC zRx $^AC $Dp^7AC $l^AC $p^7AC $^AC G$0_AC $ _mAC GzPLRxM ,$@_rAC I$`aAC B$`?AC C$`PAC F$aPAC B4@aAC M$\fAC 4Tf+#AC M$iAC $iAC $ iAC ,i7WAC C,4iASAC C$iAC $hjAC $PjAC $ Hj AC ,0j.AC C$dPjAC $HjAC ,0j5OAC C$`jAC $ XjAC ,@j5AC C$dpjAC $hjAC ,Pj5AC C4`jAC G,(kAC F4kAC J$PlAC $8l AC $ l@AC $8lAC $$ lAC $Ll$AC ,D lIAC CzRx $Hl-AC BzPLRx ,$0l<+AC C$@lAC $8lAC ,0l!AC P$0nIAC F$<Xn@AC $dpnAC $XnAC zRx $8nAC $D n7AC $l8nAC $ n7AC zPLRxu 4$n"#AC P,\0sAsAC J4pvAC P4xAC G4`AC G$|\AC B$}uAC F$<h}?AC C$d}JAC C4};AC M$PAC C44Ȁ7AC M$$@AC $L(AC L$taAC B4AC P$ AC $țaAC $$AC $LAC $t]AC B,(tKAC C$x@AC $AC $xAC $Dp AC ,X.AC C4XAC J40AC J4TAC M,ОAC C,@AC F$@AC $؟AC $AC $2AC B$DП7AC B$lAC $AC $AC ,,AC C,\AC C$D`AC ,XcAC C,SAC F$XAC ,<PAC C,l AC C$T @AC ,8AC C,AC C$ (AC ,L AC C,| {AC C, kAC C, P[AC C, KAC C$ AC ,d AC C$L XAC , @AC C$ AC , AC C$ AC ,l ЦkAC F,T @AC G4 ЧKAC GzRx $7AC B$D(7AC B,l@AC M$%AC C$AC F$ \AC zPLRxe 4$8F +AC P,lAC J, NAC C$@AC C,AC M,$AC M,T8:AC I,HAC GzPLRx ,$AC FzRx zRx $ AC zPLRx 4$PAC M,AC G,AC G$:AC C4|AC JzRx $ AC zPLRx 4$AC J4\`AC G4AC G$  AC $4xAC I47AC J,AC J$HAC ,0qAC J4 AC J$THKAC C$|pKAC C$<AC C$<AC C4CAC M$,-AC $TAC F4<sAC J4t8AC M43AC J4;AC JzRx $(0AC B$D0@AC $lHAC $0AC zPLRx ,$RkAC C,T8[{AC CzRx $PCAC GzPLRx5 zPLRx 4$8/AC MzRx $nAC F,D`AC G,t`AC JzPLRx 4$gAC M,(AC G4AC MzRx ,AC J,LhoAC K$|5AC zPLRx $aAC $AC $AC $< AC ,EcAC CzRx $AC $D*AC B$l*AC BzPLRx= ,$AC G$@AC B$ (AC $4 *AC BzRx ,AC M$L=AC $taAC $@AC $(AC $ AC zPLRxe ,$<AC C,TAC FzRx ,`mAC KzPLRx zRx ,hAC M$LAC G$t\AC E$AC G$LAC E$AC $7AC $<AC $d7AC zPLRx ,$AC G$8AC ,| AC G$4?AC ,.AC G,YAC F$AC $]AC B48AC P$DAC 4 AC P$AC $AC $AC ,7SAC C,AOAC C$|DAC $AC $AC $AC $ AC ,.AC C$tAC $AC ,<5#AC C$AC $AC ,5AC C$tAC $AC ,<5cAC C$aAC $AC $DAC $l AC , EAC C4<;AC G4tAC M$4eAC $\AC $AC $AC ,L2SAC C$ pAC $, hAC ,P3AC C$ `AC $ H AC zRx $8AC zPLRxm 4$,3AC K$ AC ,~OAC C4_AC M$,AC $T7AC $|AC $-AC $AC G$P AC ,8 AC I,L ,AC K$| ?AC C$ PAC F$ TAC B$ ?AC 48 6AC P$T@@AC $|XAC $@AC $AC $AC $AC $DAC ,,oAC C,\~AC C$AC ,oAC C$$PAC $L8aAC $tAC $hAC $` AC ,XEAC CzRx ,UAC M$LAC $t7AC $AC $ AC $\AC G$AC zPLRx] 4$AC M$8AC , AC F$AC $5AC B$<&AC $d&AC $AC $AC C$PEAC B4xzAC P,\AC C$l AC $ AC $p AC ,h a?AC C, l/AC C$D!AC ,4!aAC C,d!pAC C$ AC $x AC $!AC FzRx $"AC $Dx"7AC $l"AC $x"7AC $"AC GzPLRxu 4$"0_AC P4\2AC J43zAC M,`*+AC C,*CAC F$  +AC ,T+ AC G4x+ AC M4`.AC M484AC J$ 0AC ,T/AC F$d4AC $5AC $4AC $4LAC B,$5c7AC C$45AC $\5PAC B,6gAC C,X6AC F$6AC $ 6 AC zRx $6AC $D67AC $l6AC $67AC zPLRxm ,$6NAC G$ 7AC F4|8 sAC P4TAC J,<AC F$8=BAC C$`=JAC C$$=AC B,LTAC G$|=AC $= AC 4=AC J$H?!AC ,,P?_AC M4@AC K4hAAC K4CAC P,KAC M$4(MLAC 4PMGAC J$OAC 4OAC M$8QAC $R,AC $DSAC $lSAC $S AC ,S.AC C$SAC $SAC ,S5AC C$lSAC $SAC ,S5+AC C$SAC $SAC ,S5AC C$lSAC $SAC ,S5kAC C$SAC $8TAC $< TAC $dT=AC B,0TSAC C4`ThAC M,UAC G,lVAC C$T xWaAC $| WAC $ WAC $ W$AC ,< WI;AC C4l W+AC GzRx $XAC zPLRx 4$W9AC K4\XAC P40_AC J$ ^EAC $4^AC ,\h_AC M4L` AC G,paAC GzRx $avAC I$Dc&AC G$ld)AC GzPLRxM 4$e/AC PzRx $tAC ,DtAC P$tX{ AC zPLRx] 4$ |AC P$~yAC L,"AC J$L~AC LzPLRx ,$87oAC C,THAkAC CzPLRx 4$hO GAC PzRx zRx $P&AC $DX AC zPLRx- 4$  AC J$AC $Ѝ7AC $AC $<Ѝ7AC ,AC I$AC ,TAC I$PAC $HAC $<@'AC B$dH@AC 4$`AC P,\AC F$OAC C$@WAC C$DxAC B$lAC $ AC 4TAC P4CAC M$,AC 4GAC P$AC 4L'AC J$pAC ,X7'AC C,hA#AC C$tAC $`AC $HAC $@ AC ,(.AC C$DHAC $l@AC ,,(5AC C$XAC $PAC ,85AC C$DhAC $l`AC ,,H5_AC C$XaAC $AC $AC $< AC ,xEAC C4,AC J$0 AC $ AC $ AC zRx $AC $Dh-AC $lpAC $X AC $@AC $(WAC G$ `VAC GzPLRx% ,$xAC G$h1AC B4|AC M$)AC $ +AC $4aAC $\@AC $(AC $ AC ,EAC C$8aAC $,AC $ThAC zPLRxݨ 4$`JAC JzRx $`AC ,DHpAC J$t@AC B$@AC B4S AC P$eAC $$(AC $LAC $t+AC ,P7AC C$AC $+AC ,tTAC C$LeAC $t(AC $AC $AC $ AC $XAC $<pAC $dX AC $`AC $H AC $0AC $ AC $,eAC $THAC $|0AC $(+AC $0;AC B$ȾAC $0+AC $D8;AC B4/AC JzRx $$AC $D AC zPLRx} 4$p /AC M$XAC $@7AC $XAC $<@7AC ,XAC G,,AC F$ AC 4AC P$$(AC $L "AC $t("AC 440bAC M,lh AC F$ AC ,AC F,\ AC M4$AC P4\gAC J4cAC P$4(AC $\AC $AC $ AC ,l.AC C$AC $,AC ,5;AC C$AC $AC ,l5AC C$@AC $,AC $TAC $| AC ,<E+AC C,lAC F4 AC G,AC C,KAC F,@AC G4d AC J4 AC M$<`@AC $dxAC $`AC $XAC $@ AC $ (eAC $, pAC $T XAC $| PAC $ 8 AC $ AC $ hAC $ AC $D AC $l FAC $ VAC B$ AC $ FAC $ ZAC B$4 AC $\ FAC $ ZAC B$ %AC $ IAC $ `AC B$$ AC $L `AC $t HAC $ @FAC $ hVAC B$ PAC $ HFAC $< pZAC B$d HAC $ @FAC $ hZAC B$ IAC $`AC B$,AC $T AC $|AC $AC $pAC $h+AC $p;AC B$D8AC $l`%AC $AC $ AC zRx $AC zPLRxŒ 4$AC P4\`)AC J$AC 4&sAC P$4AC 4AC JzRx $@8AC $DX@AC ,lpAC G$@GAC B,hAC M$8AC $0\AC $Dh"AC zPLRx  ,$Pw3AC F$AC F,mAC G$H AC $<@ AC $d8AC $0 AC $(pAC F$p@AC F,yAC G4AC M40>AC J,8AC M,lAC L,sAC P4 AC K,l !AC P$"AC $"AC $"AC G4h#AC M4'=AC P4=AC J,(AC M$p)AC 4h)AC P4, AC P,9AC F4L:7AC G4<=?AC JzRx $p=kAC $D=AC $l >AC $>AC B$>AC C$H?AC CzRx $?AC F$D0@ AC $l@AAC B$@@,AC $H@2AC $`@@AC , x@rAC J$<@6AC B$d@mAC F$(AAC F,A^AC G,BlAC M,@C>AC G,DPDAC M$tGHAC B,GAC M,XOAC MzPLRxU ,$UAC F,TU.#AC C$|U@AC $VAC $UAC $U$AC ,$UI{AC C$LVAC $tV AC zPLRx ,$U7AC C,TUAAC CzRx ,VAC JzPLRx ,$VAC F$VBAC F4|WgAC M$WAC 4WSAC J$\`XAC $XX-AC B$`XAC F,XAC G$YAC ,Y.AC C$\Y AC ,<hY_AC C,YAC M$[=AC $ [dAC C4\%$AC P$lp@AC $AC $pAC $h AC ,P.AC C$<P@AC $dhAC $PAC $H AC ,@EAC C$ `@AC $4xAC $\`AC ,<XoAC C,AC G$HAC C41OAC J4CAC J$|@AC F,|AC J4}AC M$ `AC C,4AC M4oAC J4TqcAC J,ȊwAC F,(gAC C,JkAC C4AC J$tAC F,|،GAC F,8AC J4~AC M$\ p AC $ X@AC $ pAC $ XAC $ PAC $$ 8 AC $L AC $t  AC $ @AC $ AC $ AC $ AC , Ќ.;AC C,$ Ќ+AC C,T GAC C, AC F, pAC F, `AC C$\ AC zRx $AC $DAC zPLRxMw ,$S+AC E$RAC $AC $ AC ,AC G$dx#AC $#AC $>AC C$@AC $&AC $,&AC ,_AC G,(WAC G,LX)AC B,|X]AC C,uAC B$DؓAC $lГAC $ȓ$AC ,TГ)AC B,ГWAC C$@AC C$DAC $lAC $OAC CzRx $&AC $D &AC ,l(AC M$xIAC ,ZAC J$Д~AC CzPLRxq 4$CAC J,\d7AC B,\GAC B,WAC E,poAC GzPLRxp 4$T#AC PzPLRxup ,$G+AC CzRx $#AC ,HAC C$tș#AC $Й#AC $ؙ3AC B,jAC G$0?AC B$DHAC $l@AC $8AC $0EAC G$X?AC B$ pnAC G,4mAC G$dAC $pAC $XAC $AC $@AC $,AC $TAC $|AC $؛ AC $aAC $AC $AC $DAC ,<AC C$@AC $AC $AC $AC $<Л AC zRx $ AC zPLRxj 4$hAC G,\0.AC C$0 AC ,5wAC C,(5gAC C,85WAC C,DH5GAC C,tX57AC C,h5'AC C,x5AC C,5AC C,45AC C,d5AC C,5AC C,ȝLAC C$4AC $\ПAC $AC $AC $AC $pAC $$XAC $L@AC $t(AC $AC $AC $QAC C,IAC M$D8[AC C$lpUAC C$)AC B$)AC B,TAC M$AC ,ТVSAC F$lAC $cAC C$0oAC C$xiAC C$ )AC B$4Ȥ)AC B,\ФAC M$ AC $AC $AC $AC $,AC $TAC $|AC $إAC $ХAC $ȥAC $ AC $D AC $l AC $ AC $ AC , q AC F$ بAC $< AC $d بAC $ AC $ AC $ AC $ 8AC $, PAC $T hAC $| AC $ AC $ AC $ ȩAC $ AC $D AC $l AC $ x AC $ `AC $ H AC $ 0AC $4  AC $\ AC $ AC $ ШAC $ AC zRx $@AC $D@AC zPLRxe\ ,$_AC C,TȨ)AC B$Ȩ$AC $ШAC G$<85AC C$dP/AC B,XAC G$ȩ`AC FzRx $ AC zPLRxZ ,$CAC C$+AC B$ AC ,|AC C$p AC $<(,AC ,d0AC K,AC G4oAC P,AC J,h.SAC CzRx $PgAC G$DAC F$l=AC zPLRxX 4$AC J,[AC M$JAC ,D8AC K$t(KAC $PAC G$ȱ7AC G$AC G,hAC K$D(=AC $l@HAC G$hSAC $AC $AC $ AC $4AC $\ AC ,EAC C$AC $AC $hAC $,`=AC B,xSSAC C$AC $ AC $AC $=AC B,SAC C$THAC $|AC $AC $ AC ,dEAC C$$AC $L0AC $tAC $=AC B,4(SCAC C$XAC $жAC $DAC $l AC ,EAC CzPLRxP 4$cAC JzRx $KAC GzRx $AC C$Dp'AC B$lxAC $pAC ,hAC G,(eAC G$h/AC B$DpCAC F,lAC G$MAC C$iAC C,XAC M$5AC C$DcAC F$lvAC F,`AC MzRx $tAC CzPLRx=M ,$0AC G$4AC G$wAC F,`AC K,нgAC G$DXAC B4,HP[AC M$`*AC $hLAC 43AC M$,ZAC B4 oAC M,XAC J4|AC M4pAC K,AC IzRx $@UAC F$DxAC $lpJAC G$AC zPLRxmI zPLRxMI ,$PY AC C,T'AC BzRx $h&AC $Dp AC ,hAC F$-AC B$JAC CzRx $$AC B$DQAC B$lP2AC C$h<AC C,AC M$qAC $H-AC zPLRxF zPLRxF 4$۩AC MzRx $pIAC F4AC J$| AC zRx $GAC $D(GAC zPLRx-E 4$0yGAC G$xAC E$AC $@AC $<AC $dAC ,$d{AC C,T sAC CzRx $XAC ,D@AC J$tAC $AC I$}AC C$JAC B,AC G$D@AC $lAC $AC $EAC BzPLRxA ,$kAC F$4@AC $\AC $AC $AC ,@AC CzRx $gAC F$D=AC zPLRxE@ 4$SAC J$`(AC B$hcAC C$|AC C$<iAC F,dPAC J,_AC G$07AC G,H:[AC B4XSAC G$T6AC ,|cAC M$(=AC $@AC $AC $$AC ,DKAC B,CCAC B$@AC $AC $AC $$#AC $L3AC BzPLRx=< 4$SAC J4\(CAC M43AC M4#AC JzRx ,(AC M,LAC M$|1AC $AC FzRx $AC F$Dx^AC F$lAC $LAC BzRx $AC zRx $+AC B$D AC B,lAC G,AC G,AC G,X AC P,,AC P,\ AC J$ AC A$ AC zPLRx7 4$h[AC J,\P.WAC C$dP AC ,85AC C,HAC C$AC 4<BAC G4tv'AC G$PnAC B$4AC $4AC ,AC M,,VAC M$\RAC E, `AC M4P[AC M$xAC $pAC $<hBAC C$d/AC B$ AC $RAC B4AC M$0#AC $<h9AC C$d9AC C$)AC B$)AC B$AC 4,UcAC M$<AC $d0AC $AC $AC $AC $PAC $,8AC $T0 AC ,.?AC C$8AC $0AC ,$5ߙAC C$, HAC $T @AC ,(5AC C,8oAC C,AC C$  AC $4  AC zRx $fAC B$D 0AC B$l \AC B$H AC $0 fAC CzPLRxE. 4$X JgAC J,<p sAC M,l AC M$@AC $ AC 4 e˗AC G,D.ǗAC C$T AC ,5AC C,5AC C,oAC C$ pAC $4XAC 4|@RKAC G4hSAC J$yAC $hAC $AC $D8AC C,l AC J,AC J,pAC J,AC J,,#AC P,\`?AC I,)AC G,P-AC M,/AC M,`1 AC M,l;GϔAC B,|<AC M$=AC $=#AC $>AC $$(?AC $L?AC $t?AC $`@AC ,X@AC J,@[AC CzPLRx' ,$XA7sAC C,ThA7oAC CzPLRx& ,$xA.KAC CzRx $`A AC ,HAAC C$tA[AC B,pPAC G4AAC P$PAC C,|IMAC E$\0IAC $HIAC $@IAC B$IAC B,pJ1AC M$,`PAC F$THQAC C,0NYAC E$Q@AC $QAC $QAC $$QeAC $LRAC $tQAC $Q]AC B$(RbAC B$RAC $R]AC B$< SfAC B$dhSAC $PS AC zPLRx! ,$S7ˏAC CzRx $SAC zRx $S!AC $DSAC $lS@AC $SAC $SAC $SAC $ S AC $4S AC $\pSAC $XS AC $@S AC zRx $S5AC $D(S5AC $l@SAC $(S AC $SAC zRx $`SAC $DXSAC BzRx $8SAC $D0SAC $l(SAC $ SAC $SAC $SAC $ SAC $4SAC $\RAC $RAC $RAC $R AC $RAC $$R AC $LRAC $tpR AC $XRAC $@R AC $(RAC $R AC $<QAC $dQ AC $QAC $Q AC $QAC $Q AC $,hQAC $TPQ AC $|8QAC $ Q AC zRx $P%AC $DP%AC $lQ%AC $Q%AC $Q%AC $Q%AC $  Q%AC $4(Q%AC $\0Q%AC $8Q%AC zRx $xQAC $D`Q/AC $lhQAC $PQGAC $xQ!AC $Q!AC $ Q@AC $4QAC $\QAC $QAC $hQ AC $PQ@AC $hQAC $$PQAC $LHQAC $t0Q AC zPLRx ,$QGGAC CzRx $ Q#AC ,(QKAC C$tHQ#AC $PQ#AC ,XQAC M$(RAC 4l R?AC G4RSAC KzRx $8S=AC zPLRx ,$PSwAC C,TSwAC CzRx $SeAC $D TAC $lTAC $TAC ,<S2GAC C$xTAC $pTAC ,XT3AC C,hT׀AC C,TǀAC C,L(UAC C,|UAC F,VAC C,hVAC C, VwAC C,<8WgAC C,lWWAC C,XGAC CzRx $XAC F$DYAC F$lYAC ,HpAC G$hYKAC ,YAC M,ppAC G,LP\AC P$|qAC C,qAC P,8sAC P,tAC P,4bAC M,dhvAC G,8wAC G$xAC FzPLRx  4$h/}AC M,DXjRAC G$tj;AC $j<AC C$j<AC C$k)AC B$k)AC B$< k,AC 4|Xk|AC J$kAC ,kMAC G$vAC $v AC zRx $`vAC $DvAC $lwAC zPLRx%  ,$xw'zAC G$xxdAC B$ yAC $4xzlAC B$\z AC ,z zAC C$({AC J$|FAC C$|jAC ,,}AC M$\AC F$h{AC B$AC E$hAC , AC G,,0AC M$\TAC C$8%AC $@iAC A$AC , ~AC J$,pAC $TAC ,|`uAC M,AC M,AC P$ Ў3AC C,4AC M,dhAC J$X:AC B,pAC M,\Й;uAC B,?uAC B$LAC ,?uAC B$AC $0 AC $ AC zPLRx ,$`ttAC C,TttAC CzRx zRx $AC $D&AC B$lvAC $ȟ0AC $П0AC $؟AC $ П&AC B$4؟AC $\6AC $AAC $0AC $AC $AC $$AC $L AC $t("AC $"AC $(eAC $pAC $hAC $<`AC $dH AC $"AC zRx $ AC zPLRx 4$pAC J,pAC M$AC H,hAC P,(;SpAC B$T8CAC $|eAC $AC $AC $ج AC ,.oAC C$L@AC $t8AC ,\ 5'oAC C,0oAC CzRx $(AC B$D(AC B$lAC $AC $5AC H,AC GzRx $hAC zRx $HuAC $DuAC zPLRx ,$د.[mAC C$د AC ,|5#mAC C,Я5mAC C,5mAC C, 5lAC C,<5lAC C,llAC C$AC $,xAC $T`AC $|HAC $0AC ${AC B$pAC B$ȰAC $D5AC C$l5AC C$)AC B$)AC B$ UAC B$ XVAC B,4AC M,d`]AC M$AC $-AC $AC $ AC $4AC $\AC $еAC $AC $AC $8 AC $$ AC zRx $|AC B$D|AC BzPLRx] ,$ WhAC C$P5AC ,|h[gAC C,[gAC C$Dȶ5AC $l5AC $5AC $BAC ,8AC M$AC $<-AC B$d-AC B,AC M$`AC $ظAC $ AC $4hAC $\AC $X AC $@ AC $( AC $ AC zPLRx ,$H7dAC C,TX7dAC CzRx $pAC $DAC zPLRx ,$.+dAC C$ AC ,|h5cAC C,x5cAC C,5cAC C, 5cAC C,<5cAC C,lcAC C$8AC $, AC $TAC $|AC $غAC $AC $AC $XAC B$DAC B$lAC B$(:AC $@]AC $xaAC , AC M,<0QAC G$l`5AC C$x5AC C$)AC B$)AC B, [AC M$<AC $ddAC F, BAC M$`bAC $AC $ AC $4AC $\AC $AC $AC $AC $ AC $$ AC zRx $uAC B$DuAC BzPLRxu ,$(e]AC C$hCAC ,|i]AC C,i]AC C$DCAC $l8CAC $`CAC $~AC , AC M$AC $<x@AC E$d@AC E,AC M$hAC $AC $ AC $4pAC $\AC $` AC $H AC $0 AC $ AC zPLRx ,$P7ZAC C,T`7ZAC CzRx $xAC A,DAC J$tAC F$@AC $0AC $AC $AC $< AC zRx $AC zPLRx 4$XAC G$h/AC B$pMAC F,AC M,AC P$L8AC F,tAC P$|AC C,AC P,AC P,,HAC P$\AC ,AC M$AC F$AC F$AC F4Q/VAC M,$ ;_VAC B$0TAC $hsAC B$P@AC $ hAC $4PAC ,HbUAC C,LlUAC CzPLRx% ,$.SUAC CzRx $ AC ,x5UAC C,5TAC C,5TAC C,$5TAC C,TTAC C$4HAC $\0AC $AC $AC $AC C$PAC C,$]AC M,TAC M$3AC $0BAC C$X?AC C$p/AC B$$x/AC B$L8AC F$t?AC F$AC $AC $pAC $AC $<AC $dAC $AC $ AC $ AC zRx $`AC zPLRx ,$PAC C,TPAC C,xwPAC C,msPAC C$$AC $LAC ,4mPAC C,dqPAC C,hqOAC C,AC G$4(4AC ,\AC M$AC $AC $pAC $AC $,AC $T( AC $| AC zPLRx5 ,$H7#NAC C,TX7NAC C,hNAC FzRx zRx $AC zPLRx- ,$MAC F,T .MAC C$ AC ,gMAC C,HAC M$LAC ,4`.[MAC C$` AC ,H5#MAC C,XrMAC C$,AC ,TAC I$P AC ,l8LAC F,AC M$ @AC $4AC $\AC $eAC $AC $AC $XAC $$ AC $Lh AC zRx $AC ,DAC M,t`AC GzPLRx] 4$ OJAC M,\GCJAC B$,LAC B$T [AC B,|(AC GzPLRxU 4$IAC P,\GIAC BzRx zRx $pCAC BzPLRxu ,$x^[IAC C$MAC B$MAC B4HAC P,GHAC B,LAC MzRx $HSAC ,DVAC M,tAC J,`qAC GzPLRxm 4$GAC J,,hmAC G$\ AC $[AC $8[AC ,p/GAC C$'AC $,$AC $T AC F$|AC ,FAC C$0AC A,8kAC G,,xkAC G,FAC G$xAC ,p'FAC C$0AC $ AC $4AC $\ AC ,.EAC C$AC $AC ,45#EAC C$4%AC $\AC ,8DAC C$@%AC $HAC ,4@8cDAC C$4P AC ,8.+DAC C$8AC , 5CAC C$0AC $ AC $4AC $\ AC ,p.CCAC C$ AC $AC ,45BAC C$4%AC $\AC ,8BAC C4$sBAC J$AC $  AC $< iAC CzPLRx ,$AAC C,TAAC CzRx zRx ,*AC K,LAC K,|PpAC N, AC K, AC PzRx $!wAC $D"wAC $lX"EAC $"2AC B$">AC B$"YAC B$ "[AC B$4 #AAC $\H#AAC $p#AC E$h$AC $P$ AC $x$ AC zPLRx ,$@$^[>AC C,Tp$aW>AC CzRx zRx ,$ AC P,L&AC PzRx ,'MAC P,L(6AC P$|*9AC BzRx $*0AC ,D* AC P$t3XAC ,3AC J,X4AC J,5AC J,,6fAC G,\6AC JzRx $7 AC B$Dx7AC $l`7AC $H7 AC $7@AC $7AC $ 7AC $4x7AC $\`7 AC zPLRxe ,$H6P9AC C$6AC $6 AC zRx ,6vAC G,L 7vAC G,|p7zAC N$8!AC ,8uAC G$9\AC I$,P9-AC $T9AC G$|:+AC ,:AC K$x:AC $p:AC ,$h:&AC J$Th;BAC F$|;BAC FzRx $;CAC $D;AC $l<AC $<AC ,<AC M$@=~AC $=tAC E$<=AC EzRx ,@>RAC K$Lp>AC J,t?XAC K,@UAC K$8@&AC F,@AAC PzRx $C AC zPLRx] ,$`C4AC I$ DAC $DAC $DAC $ DAC $4CAC ,C4{3AC C$iAC 4tDtO3AC P,XiAC J4IS4AC P4iC7AC J4LXbB77AC M4 j8_7AC J4(k#c7AC J$4 lsAC B4xl?7AC M4T`mw7AC M,(n7AC F,nv7AC C,n7AC F,\XoAC J4Lo{7AC J4pb7AC M4dX8AC M4 p/8AC J,lp:AC GzRx ,qlAC K$Lr AC zPLRx 4$qs7AC M4\@u7AC M,(w7AC C,wJ7AC G,xk7AC C$xAC $xAC F,thy7AC I$y%AC 4yg7AC K4{|7AC P,<`}'8AC I4l}?8AC P,H:AC C4:AC G, :AC C$AC $ؕ4AC 4:AC M$4@AC $\AC $AC $ AC ,dxEW:AC C$aAC $,AC $TșAC $|AC $/AC B$AC $8AC $ AC $D AC ,.8AC C$AC $AC ,|58AC C$PAC $DHAC ,058AC C$@AC C4Tț@7AC J$ОAC $$ AC $LAC $t AC $pAC $X AC zPLRx ,$ K7AC C,To7AC C,B7AC IzRx $AC 4w7AC M$|AC ,Tp7AC G$`AC $HAC $$AC $LؤAC $tФ AC ,L.7AC C$AC $ФAC $ȤAC ,56AC C$tAC $ؤAC ,t56AC C$ФAC $AC $DAC ,Ȥ56AC C4Lؤ6AC J$p AC ,X.5AC C$,XAC ,@55AC C,4P{{5AC C$AC $ AC zRx $X\AC ,DAC J$t<AC F$mAC E$PAC G,ȧgAC M$AC $DAC $lLAC $AC $AC E$Ъ[AC $ AC E$4[AC zPLRx 4$ث2AC M$AC E43AC M4h'4AC M$LvAC 4Po5AC M$/AC B$AC ,xVAC J,,AC P,\xAC P$(AC $ AC $AC L,AC N4,3AC P$lAC 4< s7AC P4tX@ s8AC P4`9AC P$<x@AC $dAC $xAC $pAC $X AC $@@AC $,XAC $T@AC $|80AC B,L@A8AC C$`/AC B,hDs8AC C$,@AC $TAC $|AC $AC $h AC $P@AC $ hAC $D PAC $l HAC $ 0 AC ,d@6AC C, sAC P$ ]AC F4k6AC G$| ;AC B, AC M4|0V6AC J4Xs6AC G4ro6AC G$| (/AC B$ 0*AC C,t 8_6AC F4 h6AC J4 B6AC J, @6AC CzPLRxՒ 4$%6AC MzPLRx} 4$6AC M4\86AC J46AC MzRx $1AC B$D1AC B,luAC J,P AC M$0DAC C$XqAC $qAC 4  UC5AC P4D0"5AC P4|%5AC M4& 5AC P,$6AC M4(4'6AC M4T66AC J,x7[6AC C,7s6AC FzRx ,7dAC JzPLRxM 4$86AC P4\hP9AC J4Q1s9AC J,R{9AC F,hRk9AC C4,XS 9AC JzRx ,(TAC JzPLRx ,$xT39AC F,TT/9AC G,8U}+9AC C4U'9AC KzPLRx 4$0V8AC PzRx 4tk:AC J$TX^VAC F,|^[AC G$^ AC ,^%AC M4\` k9AC P$< jAC ,hk:AC F$kAC zRx $k%AC $DkUAC FzPLRxE 4$k9AC M4\0nJ9AC M4xv9AC J4o|:AC P4vw:AC J, rAC M,rAC J$PsVAC F4s9AC M4v9AC G,HwxAC G4dw9AC M4`x9AC M4(y9AC GzRx $xyUAC zPLRx ,$yW9AC L4TS9AC J4HzG9AC G$zAC $,z7AC $TzAC $|z AC $z AC ,zs8AC C${2AC B,$AC G$Tz AC ,<z 8AC L4l}{;8AC M,Ђ{9AC C$ AC ,8AC G$lXAC $PAC $HAC $@AC 48O8AC M4G8AC M4<؇8AC K,t8AC I408AC K,r8AC C$LAC $tAC $؉AAC $MAC $(>AC 4@7AC M, 78AC I,<'8AC F,lW8AC C,AC N$ AC $4AC $\hAAC $EAC $AC $AC $AC 4p];'7AC P,\AC M4Lhk:AC K4:AC P$HlAC C4`K;AC N4 8;AC J4T 'AC M4 yG>AC M, AC J$< AC $d AC $ xAC ,t pc=AC C, l=AC C$ AC , g=AC C,, p=AC C$ AC $ AC $ xAC , poK=AC C,~[=AC C$tAC ,\oC=AC C$AC $AC $HAC $D0AC $l(+AC ,T0PAC G4hZ>AC M,P_k?AC C$<_)AC ,$_G?AC I,TakC@AC C$aAC ,ak3@AC C$ bAC $DbbAC $lPcAC $8cAC $0c AC ,c.?AC C$8cAC $<0cAC ,$c5#?AC C$HcAC $@cAC ,(c5>AC C$XcAC $<PcAC ,$8c5c>AC C$hcAC $`cAC ,Hc5>AC C$xcAC $<pcAC ,$Xc5=AC C,ThcK=AC C$dAC $pd AC $XdAC $<@d AC $d(dAC $d AC $cAC $c AC $ c1AC BzPLRx]b 4$c'AC BzRx $zAC zPLRxY ,$y3{8AC B$y AC $yAC $y+AC C$ y AC $4yAC $\y7AC B4Dy7AC M4|P{(7AC M4H}/7AC M$,@~$AC B,TH~&AC P$HMAC C4lps7AC J4o7AC P$0qAC I,DAC MzRx ,0<AC M,L{AC GzPLRxV 4$6AC J4\6AC M406AC J4(6AC M47AC M4<X>K7AC M,t`!o7AC 4`g7AC P$ThAC B407AC P,<G8AC L$AC I48AC P,دAC C,<{BAC C$AC 4oBAC G4P^BAC M$xAC 4,pBAC K,dBAC I$h1AC BzPLRx]F 4$`[BAC M,\x7WBAC IzRx $p AC zRx $@ AC zPLRxUE 4$#AAC J$ AC ,AC J4wAAC M,, AC MzRx $ AC $D"AC B$l AC $ AC $x4AC $qAC A$ eAC $4AC $\AC $AC $ AC $0AC $xAAC zRx $(AC $DMAC $lHAC $OAC $8PAC $`AC $ AC $4DAC $\AC $AC zPLRxu@ 4$ =AC PzRx $hdAC CzRx $&AC $D+AC $l+AC $'AC zPLRx%? 4$ 0(02> 2>`ph$.;@5 )0p 4 p567=P!"0%@%P(p,$Pp @P@  '@%@HJ@PAPGIBEIrpsx`yqwt@uuP00@UPD HpF0P`V@OQQWJ`TRXn@mhlkr@`0@p@0@(`- ,D Y@krnl@Й@Ч`p0K0RUO0QSRPLPЀг@`  @ @` `0 `  /0Fd``e@pТ@p@/P-0.,mcpepdfkgli@  pPp46PQ0ZR0`  `0`@   p    `~ І Ё `| z  Ч  `    ` P  ` @ P       Px 0z w u v  y 0 ~     p P { @w @ ` P  P @    P  P  0 e  c f d c pf     @ p     p `  # P( % 0" P' # $ & ܎       " , 6 @ J T ^ h r |        ̏ ֏        & 0 : D N X b l v        Ɛ А ڐ        * 4 > H R \ f p z        ʑ ԑ ޑ       $ . 8 B L V ` j t ~       Ē Β ؒ        @o`1GZPs@`466; >pB`Kp `[]hhPo        0* 0H 7zXZYZ p    ͖ @  (@ 0@p p0@  00 @ `    KKpKKPKL0L L7z'p @ ` 8z'P   PVV V0V@Y Л   @(0 P YY`YYМ    P0n@n/5HBZhhPhp]``aa@bbpc`0@Pp aЯab 0@`pbв``c@ `  pMSCF MSCF  P p p@1P1H0%p%%%% AAB** BBAF @UUUPVj` 0s@stustar@ Ъ@P 7zXZ  P`   @P` `p "XY Y@YYdd0eef`"Y`ZpZZZe@f"@[[[[0\ g"\] ]P]] ` @ Ф"^^^ c0cdd0eef"_ `0`@cPce@f"aaa`cpc g #gg8!` 0 p$PKPKPK00PK8PP % @%` (  @ `  &LM`&M M"0M@M@&PM`M &pMMMM(pVV@Y Ч @   @@@      `) Pw  )pP @ 0*p3333  5 6 9: 0:`: :: : ; P;;̱ << << 0B0BL BC ` -pEF``aa@bbpc`-0@PF G a-ЯG`Hab- 0@IIpb-0JJ`c pnn 0@̵  ` 0 @  ! < P`P * * 0^^^`[p[dd0eef0_ `0`[[e@f0aaa[[ g 0\\<  hh|  `1~    2   p2P22p2@ `  4///  P,-@-4/00  `- c&  ǽ   4{ @ (55 Љ  4 5@6  п (6(630 @ 3P ` 3p  f#/r#v#z#~#O#####8 p (6` p2@  8  8  `8  @8   8    :p p2P `: :`  @ ; >;>:  `:  0> ` p         d    p)  4?pp?P` @0$$$$@%!0#@%0&@&`&&p# pBBpCCCC=@P+:-  `+p+2202P2kT0LBCCD D0D2@3@2p2BpDDDDDppBEE E@EPE@f@L 0Pp (Cp @ Cp`  @D M`MpMMN 0 pD` ENNNNO PFhiiii[p^p[[^ZZZPZ`Zdd]gFijj0j@j ^FjjjjjgdFk k0kPk`kh 0Pp `Grrroo@r 0Hpp`|p0x@sssPs`s 0H0@`p p[`fnJpI PIPp О  Jpp PKPnnnnn0 pKpp LP`0 L@Pp  M& '0'P''p p   pO(() )0)@p   P ` P0%pO`)p))))0pO)**0*@*$@pO***** % 0Pp P+++++` P0QC@DPDpDD 9:p77;666P6`6P:0Q`EFF0FF: 0PQF G0GPGpG@;Р PRU`VpVVWMNJ JOI@IPIII MRpWX X@XXN 0PSpop p@ppcddd`eZ0Z@ZZZhSqqqq rj@ 0V{`||ptpssss0{` V 0@`p|VЖV@P`VЗ @ 0Pp (V`0pPС Y`@Ppp@PPpYY@P`Y  ! 0Pp d`Z` 0 Z` [ [ 0PpPp 0`p 0\0\P @ `p@`PLM M@MPM/01%%D"" "`"p"ggx@`MMMMMxg@`N N0NPN`Nfwf{f ffffg g!gh &/7BJT `ab1   `NNNO0Op2 0p`0/`// 8! `  /%bbP`P0@ b` Pb0p` P $c///p+ +P,-@-c/00 ,+`- &@d001 101, d@11112--0. $Pe@22222. p iFJJ54@;BB@C=P>> @DEPEEEF@F i0J@JPJ0: 5pBC ipJJJ@:`5D iJJJP:5=> iJKK`:5@ i0K@KPKp: 6A ipKKK:`6D iKKK:60EpE iKLL:6E i0L@LPL: 7E ipLLL:`70F iLLL:7`F  ` &p @&( 0"8p@`&H&P#X`Pj@U pjV `k_``p``` WW kaaaabYpZ0 lpbc c@ccZ[P m P0\p pmcdddd\]  n eeee0f]^ nf0g@g`gg^@__ $0oP`h <$&*,.147:=@EG JNPp@Ppp $`q0p0ЇP` $q@p P`r@  Pr@Pp `s0pЩ ps0@`p pt@ pt0@`p ppuP  @ pv@`` vPPv P  `)x x 0@`p@xЪ @y`0@y00@y@ @ `p)z 0`0p0 %z011011P,0&p&z2p2223P&&`  0*p{5P5`55570754Я |*|5P5`55570754 |*|5P5`5`6p670760 ` P}5P5`5887076P7P |}5P5`5887076p7p |P~5P5`58870767 |~5P5`58970767 |P5P5`59 970767а |5P5`509@970767 |P5P5`5P9`970768 |Ѐ5P5`5p997076080 |P5P5`5997076P8P |Ё5P5`5997076p8p |@=@=P=p==<< ` Ђ===>>@<P<! ` XXY>@>p?p@ YYY@?>@0 `p``aa@bbpc`p0@P  apЯPabp 0@`pbp`c ` (`///00 `P00001@p `ppCDD0D@D `pDDE E0E@ `pPp00PpPp` ` p`&.0Pp P` ` #. 0P`а0@`p `# P``0pм`p0pл 0@P`00p `# (00 P0``p  `p`&@@P @``@p@@Pp@0@0@P @p0 `#0* (0  0p`p `p`&@PP pВ0p  `pP`  @ `p  P   0  @ @P`   `# (Е@P@`Еp 0PЕ@@@з `p`&0*p**P   @*+ +p$@$(P%@@+++@%$0' ` `pP`34@ ``VVVWW`=` `0@`>>D `RSSSSOPMNKKSTT0T@T@OhTTTTUL`PUpUUUUK `  / P`&&P V0VOPNP`VpV@OVPW`WWWOPPNMW`XpXXX@OhXYYYYN P#^^^ggdd0eef_ `0`gge@faaagh g` ` "pp0p~~~~й `1 PІ0` `   @@@@ c d0dPdd  d`epeee ffff0g@ @#H@ 0@@` `  `  0` WWWWWWPX`XXX` Ф^^^^ _dd0eef`Ф_ `0`P``e@fФaaaab gФpbb " `[]_ehkmo"*qsNux{~!  `0@0p @Pp0@`pPP  pЪp0Ż P2л 2PP           0 P ` p      0 P ` p     333P .폏!S폏"ߞ|..y-n+%L#eX"`"l"|(x"x(":("("NEE"/zz"/zz" zz"~"w&""""@ | `| p| | |  0 | | }  } P} @ } } P p4 p ~ `~ p~ ~ ~  f p~ ~    0   P5p# # @(  (5     5z { { { 0|           P | @} P} p} }  @ 0P~ ~       p     P  ` 3P`   0 ` @ P     `  P `     2P%%%%%%%%%%%%%&&.&?&B&K&W&d&s& #!#"###$ $%$&*$'9$(I$)U$*f$+$,$-$.$/$0$1%2;%9O%=f%>v%8\l#mWwnd#`p    `  У  p $   @ P    0    P    P           0  p    0 P `         0 @ P p          @8P`88P P(0  0   :  0  ))')[)x)))))) *   0 P         `    p @ `   `! p! ! !  0 :P " `" p" " " " " " $ @( ' * -  ; ;_+b+{++ 0 0!  0 `,%\,^,+`,e,o,!v,,,,,,,,,,,, ,,",,- --- -)-6+>+5-=-D-P-W-]-@,d-n-u-J"-----------. ..!...4.?.H.T.e.i.q.v.|............///(/2/F/f/|//////0P p   0 P `  :@     0 0  @ `   Х    Ч `  ; ;` и    p         й  T `1p@          `1 ) ) ) *  *  ) 0) P) `)  `1pU U @Y ` "`B`ERB`BTBpRAppRApRBp(pRBpRBRBpRBRBpRBRBpRBRBRBRBRApRBpRDpRBpRFpRLpRBRBpRCRERBRBpRBTBRBRBRBpRBRBpRBpRBpRBRBpRASDSA]AWAXAWAWBRBRBRDSEpRBRAppRASDUEpSEpSEpTEpRBpRATEXDRCppppSDppRBRBpRBpREp\AXAWAWARBRBRB[AXAWBRBpRBp0pRBpRCRESApRBRBRBRBRBRBRBRBRBRBpRBpRBpRDpRBpRDpRDTBRBRNVBpppRBpRARApRBpRCRApSApRApRApRApRApRApRApRApRApRAp]AWAXAWAWBRBpRATApRAppYApXApVApRAp[AXAWBTApRApRBpREpp0pRBRBRBRBpRBpRFpRDRBRBRBYAWARBpRCpppSAp(SARBpp(RApRBppRBpRDpRC`BRBRBRBRBRBRBpRBpRDpRJpRHpp(RBRBppHpxRBpphpRNpRHVBppppppRAppppp(XAWBpXAWBp`AZAWAXApXAWBpWApppRBRBWAppp`AWAXAWApWAppp`BpppWApppTARBZATAppppWApppWApppWApppXBpppXBpppWAppp`A`AWAXAWApWAppp`AWApWAppp`AWAp`AWAp`AWAWAWAXBpXBppp`AWAXAYBp(p0pXBpppRBRBRBRB`BpppXAWBp`AXAWB \B`AWApTBRBpppYAWApppWAppppppYAWApWApppYApppWAppp`AXAWAXAWAWAWAXAWAWAWAWB pWApppWApppXBpppXBpppXBpppWApppXBpppXBpppYApppWApppYApppYApppWApppWApppWApppWApppXBpppWApppWApppWApppXBpppZAWBpZAXAWApYAWAWApWAYAXBppppZBpppZBpppYCpppZBRBZBRBZBRBZBRBZBRBZBRBZBRBZBRBZBRBZBRBXBpppXBpppXAWBp]AWAXAWAWBpXAWBpXAWBpZAWAWBpYAWApXAWBp]AWAWAXAWAWBpYAWAWAp^AWAXAXAWAWBpYAWAWApWApppYAppp\AWAXAWAWApYAWAWApWAXAWBppppXBpppWApppWAppp\AWAWAWBpppTAppSB[AWAWAppp[AXAWBpZBpppYAWApRBpSAppSAZAWAWBpppYAWApRBpSAppSAYAWARB\AXAWApSApppRBpppRBpRB p ]AWAWAWApppWApppp\AXAWAWApWApppWASApWApppWApTBRBUARB`AWApYAWAp\AWBp`AppYAppp`AZAXAWAWAWApTBRBSA\B`AWBp^BpppTAp`]BXBRB`Appp[AWApZBpppZBpppTAQ@__ZTIPKcQr@__ZTIi@__ZTVN10__cxxabiv116__enum_type_infoEt`@__ZTVN10__cxxabiv117__class_type_infoE x@__ZTVN10__cxxabiv120__si_class_type_infoEX8, 8 x; @__ZTVN10__cxxabiv121__vmi_class_type_infoE)xxxxxxxxxx x xx @__ZdaPv`@__ZdlPv@__Znam@__Znwm@___cxa_pure_virtual p <@___gxx_personality_v0@___stack_chk_guard@___stderrp@___stdinp@___stdoutp@dyld_stub_binder@__ZN10CArcInfoExC2ERKS_Qr@__ZN10CArcInfoExD2Ev@__ZN10CByteSwap214QueryInterfaceERK4GUIDPPv@__ZN10CByteSwap26AddRefEv@__ZN10CByteSwap27ReleaseEv@__ZN10CByteSwap2D0Ev@__ZN10CByteSwap2D1Ev@__ZN10CByteSwap414QueryInterfaceERK4GUIDPPvp@__ZN10CByteSwap46AddRefEv@__ZN10CByteSwap47ReleaseEv@__ZN10CByteSwap4D0Ev@__ZN10CByteSwap4D1Ev@__ZN10CCrcHasher14QueryInterfaceERK4GUIDPPv@__ZN10CCrcHasher6AddRefEv@__ZN10CCrcHasher7ReleaseEv@__ZN10CCrcHasherD0Ev@__ZN10CCrcHasherD1Ev@__ZN10CErrorInfoC2Ev@__ZN10CListStat26UpdateERKS_@__ZN10CObjArray2IN8NArchive3N7z10CCoderInfoEE7SetSizeEj@__ZN10CTempFilesD2Ev@__ZN10IInArchiveD0Ev@__ZN10IInArchiveD1Ev@__ZN10IOutStreamD0Ev@__ZN10IOutStreamD1Ev@__ZN11CCrcThreadsD2Ev@__ZN11CSha1Hasher14QueryInterfaceERK4GUIDPPv@__ZN11CSha1Hasher6AddRefEv@__ZN11CSha1Hasher7ReleaseEv@__ZN11CSha1HasherD0Ev@__ZN11CSha1HasherD1Ev@__ZN11CVirtThreadD2Ev@__ZN11IOutArchiveD0Ev%@__ZN11IOutArchiveD1Ev@__ZN11NCoderMixer11CCoderInfo2C2ERKS0_@__ZN11NCoderMixer11CCoderInfo2D2Ev@__ZN11NCoderMixer14CCoderMixer2MT12SetCoderInfoEjPPKyS3_@__ZN11NCoderMixer14CCoderMixer2MT14QueryInterfaceERK4GUIDPPv@__ZN11NCoderMixer14CCoderMixer2MT6AddRefEv@__ZN11NCoderMixer14CCoderMixer2MT7ReleaseEv@__ZN11NCoderMixer14CCoderMixer2MTD0Ev@__ZN11NCoderMixer14CCoderMixer2MTD1Ev@__ZN11NCoderMixer14CCoderMixer2MTD2Ev@__ZN11NCoderMixer21CBindReverseConverterD2EvP@__ZN11NCoderMixer7CCoder2C2ERKS0_@__ZN11NCoderMixer7CCoder2D2Ev@__ZN11NCoderMixer9CBindInfoC2ERKS0_@__ZN11NCoderMixer9CBindInfoaSERKS0_@__ZN12CArchiveLinkC2Ev@__ZN12CArchiveLinkD2Ev@__ZN12CArchivePathC2ERKS_@__ZN12CArchivePathC2Ev@__ZN12CArchivePathD2Ev@__ZN12CBenchBufferD0EvW@__ZN12CBenchBufferD1Ev@__ZN12CBitlEncoder9WriteBitsEjj@__ZN12CBitmEncoderI10COutBufferE5FlushEv@__ZN12CBufInStream14QueryInterfaceERK4GUIDPPv@__ZN12CBufInStream6AddRefEv@__ZN12CBufInStream7ReleaseEv@__ZN12CBufInStreamD0Ev@__ZN12CBufInStreamD1Ev@__ZN12CEncoderInfo20DecodeThreadFunctionEPv@__ZN12CEncoderInfo20EncodeThreadFunctionEPv@__ZN12CEncoderInfoC2Ev@__ZN12CEncoderInfoD2Ev@__ZN12CFilterCoder14QueryInterfaceERK4GUIDPPvл@__ZN12CFilterCoder6AddRefEv@__ZN12CFilterCoder7ReleaseEv@__ZN12CFreqThreadsD2Ev@__ZN12CLzOutWindow9CopyBlockEjj@__ZN12CMultiStream14QueryInterfaceERK4GUIDPPv@__ZN12CMultiStream6AddRefEv@__ZN12CMultiStream7ReleaseEv@__ZN12CMultiStreamD0Ev@__ZN12CMultiStreamD1Ev@__ZN12CStdInStreamD1Ev@__ZN13CCrcOutStream14QueryInterfaceERK4GUIDPPv@__ZN13CCrcOutStream6AddRefEvȳ@__ZN13CCrcOutStream7ReleaseEv@__ZN13CCrcOutStreamD0Ev@__ZN13CCrcOutStreamD1Ev@__ZN13CDeltaDecoder14QueryInterfaceERK4GUIDPPvб@__ZN13CDeltaDecoder6AddRefEv@__ZN13CDeltaDecoder7ReleaseEv@__ZN13CDeltaDecoderD0Ev@__ZN13CDeltaDecoderD1Ev@__ZN13CDeltaEncoder14QueryInterfaceERK4GUIDPPv@__ZN13CDeltaEncoder6AddRefEv@__ZN13CDeltaEncoder7ReleaseEv@__ZN13CDeltaEncoderD0Ev@__ZN13CDeltaEncoderD1Ev@__ZN13CFieldPrinter5ClearEvЇ@__ZN13CFieldPrinterC2Ev@__ZN13CInFileStream14QueryInterfaceERK4GUIDPPvP^@__ZN13CInFileStream6AddRefEvX^@__ZN13CInFileStream7ReleaseEv^@__ZN13CObjectVectorI10CArcInfoExE3AddERKS0_@__ZN13CObjectVectorI10CArcInfoExED2Ev@__ZN13CObjectVectorI10CFieldInfoE3AddERKS0_@__ZN13CObjectVectorI10CFieldInfoE6AddNewEv@__ZN13CObjectVectorI10CFieldInfoED2Ev@__ZN13CObjectVectorI11CArcExtInfoE3AddERKS0_@__ZN13CObjectVectorI11CArcExtInfoEC2ERKS1_@__ZN13CObjectVectorI11CArcExtInfoED2Ev@__ZN13CObjectVectorI11CRenamePairE6AddNewEv@__ZN13CObjectVectorI11CRenamePairED2Ev@__ZN13CObjectVectorI12CHasherStateE6AddNewEv@__ZN13CObjectVectorI12CHasherStateED2Ev@__ZN13CObjectVectorI13CStreamBinderE6AddNewEv@__ZN13CObjectVectorI14COneMethodInfoE13DeleteFrontalEj@__ZN13CObjectVectorI14COneMethodInfoE3AddERKS0_@__ZN13CObjectVectorI14COneMethodInfoE5ClearEv@__ZN13CObjectVectorI14COneMethodInfoE6InsertEjRKS0_@__ZN13CObjectVectorI14COneMethodInfoED2Ev@__ZN13CObjectVectorI16CInOutTempBufferE6AddNewEv@__ZN13CObjectVectorI16CInOutTempBufferED2Ev@__ZN13CObjectVectorI21CUpdateArchiveCommandE3AddERKS0_ @__ZN13CObjectVectorI21CUpdateArchiveCommandED2Ev@__ZN13CObjectVectorI4CArcE3AddERKS0_@__ZN13CObjectVectorI4CArcED2Ev@__ZN13CObjectVectorI5CPropE3AddERKS0_@__ZN13CObjectVectorI5CPropEC2ERKS1_@__ZN13CObjectVectorI5CPropEaSERKS1_@__ZN13CObjectVectorI7CBufferIhEE6AddNewEv(@__ZN13CObjectVectorI7CBufferIhEEC2ERKS2_ @__ZN13CObjectVectorI7UStringE15ClearAndReserveEj@__ZN13CObjectVectorI7UStringE3AddERKS0_@__ZN13CObjectVectorI7UStringEC2ERKS1_ @__ZN13CObjectVectorI7UStringEaSERKS1_@__ZN13CObjectVectorI8CArcItemE13AddInReservedERKS0_@__ZN13CObjectVectorI8CArcItemE15ClearAndReserveEj@__ZN13CObjectVectorI8CDirItemE3AddERKS0_@__ZN13CObjectVectorI9CMyComPtrI19ISequentialInStreamEE15ClearAndReserveEj@__ZN13CObjectVectorI9CMyComPtrI19ISequentialInStreamEE3AddERKS2_@__ZN13CObjectVectorI9CMyComPtrI19ISequentialInStreamEEC2ERKS3_@__ZN13CObjectVectorI9CMyComPtrI19ISequentialInStreamEED2Ev@__ZN13CObjectVectorI9CMyComPtrI20ISequentialOutStreamEE15ClearAndReserveEj@__ZN13CObjectVectorI9CMyComPtrI20ISequentialOutStreamEE3AddERKS2_@__ZN13CObjectVectorI9CMyComPtrI20ISequentialOutStreamEEC2ERKS3_@__ZN13CObjectVectorI9CMyComPtrI20ISequentialOutStreamEED2Ev@__ZN13CObjectVectorI9CMyComPtrI8IUnknownEE3AddERKS2_@__ZN13CObjectVectorI9CMyComPtrI8IUnknownEED2Ev@__ZN13CObjectVectorI9CMyComPtrI9IInStreamEE3AddERKS2_@__ZN13CObjectVectorI9CMyComPtrI9IInStreamEED2Ev@__ZN13CObjectVectorI9COpenTypeE3AddERKS0_ @__ZN13CObjectVectorI9COpenTypeEC2ERKS1_@__ZN13CObjectVectorI9CPropertyE3AddERKS0_@__ZN13CObjectVectorI9CPropertyED2Ev@__ZN13CObjectVectorI9CPropertyEaSERKS1_@__ZN13CObjectVectorIN11NCoderMixer7CCoder2EE3AddERKS1_@__ZN13CObjectVectorIN11NCoderMixer7CCoder2EED2Ev@__ZN13CObjectVectorIN12CMultiStream14CSubStreamInfoEE3AddERKS1_@__ZN13CObjectVectorIN12CMultiStream14CSubStreamInfoEED2Ev@__ZN13CObjectVectorIN18COutMultiVolStream14CAltStreamInfoEE10DeleteBackEv @__ZN13CObjectVectorIN18COutMultiVolStream14CAltStreamInfoEE3AddERKS1_@__ZN13CObjectVectorIN18COutMultiVolStream14CAltStreamInfoEED2Ev@__ZN13CObjectVectorIN7NCrypto7NSevenZ8CKeyInfoEE6InsertEjRKS2_@__ZN13CObjectVectorIN8NArchive3N7z10CCoderInfoEE6AddNewEv@__ZN13CObjectVectorIN8NArchive3N7z11CMethodFullEE3AddERKS2_@__ZN13CObjectVectorIN8NArchive3N7z11CMethodFullEE5ClearEv@__ZN13CObjectVectorIN8NArchive3N7z11CMethodFullEEC2ERKS3_@__ZN13CObjectVectorIN8NArchive3N7z11CMethodFullEED2Ev@__ZN13CObjectVectorIN8NArchive3N7z11CMethodFullEEaSERKS3_@__ZN13CObjectVectorIN8NArchive3N7z11CUpdateItemEE3AddERKS2_@__ZN13CObjectVectorIN8NArchive3N7z18CExtractFolderInfoEE3AddERKS2_@__ZN13CObjectVectorIN8NArchive3N7z7CFolderEE6AddNewEv@__ZN13CObjectVectorIN8NArchive3N7z7CFolderEED2Ev@__ZN13CObjectVectorIN8NArchive4NCab11CDatabaseExEE13DeleteFrontalEj@__ZN13CObjectVectorIN8NArchive4NCab11CDatabaseExEE5ClearEv@__ZN13CObjectVectorIN8NArchive4NCab11CDatabaseExEE6InsertEjRKS2_@__ZN13CObjectVectorIN8NArchive4NCab11CDatabaseExEED2Ev@__ZN13CObjectVectorIN8NArchive4NCab5CItemEE15ClearAndReserveEjP@__ZN13CObjectVectorIN8NArchive4NCab5CItemEEC2ERKS3_@__ZN13CObjectVectorIN8NArchive4NTar11CUpdateItemEE3AddERKS2_@__ZN13CObjectVectorIN8NArchive4NTar11CUpdateItemEED2Ev@__ZN13CObjectVectorIN8NArchive4NTar7CItemExEE3AddERKS2_@__ZN13CObjectVectorIN8NArchive4NTar7CItemExEE5ClearEv@__ZN13CObjectVectorIN8NArchive4NTar7CItemExEED2Ev@__ZN13CObjectVectorIN8NArchive4NZip11CMemBlocks2EE3AddERKS2_@__ZN13CObjectVectorIN8NArchive4NZip11CMethodItemEE3AddERKS2_@__ZN13CObjectVectorIN8NArchive4NZip11CMethodItemEED2Ev@__ZN13CObjectVectorIN8NArchive4NZip11CThreadInfoEE3AddERKS2_p@__ZN13CObjectVectorIN8NArchive4NZip11CThreadInfoEED2Ev@__ZN13CObjectVectorIN8NArchive4NZip11CUpdateItemEE3AddERKS2_@__ZN13CObjectVectorIN8NArchive4NZip14CExtraSubBlockEE3AddERKS2_@__ZN13CObjectVectorIN8NArchive4NZip14CExtraSubBlockEEC2ERKS3_@__ZN13CObjectVectorIN8NArchive4NZip14CExtraSubBlockEEaSERKS3_H@__ZN13CObjectVectorIN8NArchive4NZip7CItemExEE3AddERKS2_@__ZN13CObjectVectorIN8NArchive4NZip7CItemExEED2Ev@__ZN13CObjectVectorIN8NArchive4NZip8CItemOutEE3AddERKS2_p@__ZN13CObjectVectorIN8NArchive4NZip8CItemOutEED2Ev@__ZN13CObjectVectorIN8NArchive7NParser10CParseItemEE10DeleteBackEv@__ZN13CObjectVectorIN8NArchive7NParser10CParseItemEE3AddERKS2_@__ZN13CObjectVectorIN8NArchive7NParser10CParseItemEE5ClearEv@__ZN13CObjectVectorIN8NArchive7NParser10CParseItemEED2Ev@__ZN13CObjectVectorIN9NWildcard11CCensorNodeEE3AddERKS1_@__ZN13CObjectVectorIN9NWildcard11CCensorNodeEEC2ERKS2_@__ZN13CObjectVectorIN9NWildcard11CCensorNodeEED2Ev@__ZN13CObjectVectorIN9NWildcard11CCensorPathEE6AddNewEv@__ZN13CObjectVectorIN9NWildcard5CItemEE3AddERKS1_@__ZN13CObjectVectorIN9NWildcard5CItemEEC2ERKS2_@__ZN13CObjectVectorIN9NWildcard5CItemEED2Ev@__ZN13CObjectVectorIN9NWildcard5CItemEEpLERKS2_@__ZN13CObjectVectorIN9NWildcard5CPairEE3AddERKS1_@__ZN13CObjectVectorIN9NWildcard5CPairEED2Ev@__ZN13COutMemStream12SetOutStreamEP10IOutStream@__ZN13COutMemStream14QueryInterfaceERK4GUIDPPv@__ZN13COutMemStream6AddRefEv@__ZN13COutMemStream7ReleaseEv@__ZN13COutMemStreamD0Ev@__ZN13COutMemStreamD1Ev@__ZN13COutMemStreamD2Ev@__ZN13CRecordVectorI11CUpdatePairE3AddES0_@__ZN13CRecordVectorI12CRefSortPairE4SortEPFiPKS0_S3_PvES4_@__ZN13CRecordVectorI12CUpdatePair2E11ReserveDownEv(@__ZN13CRecordVectorI12CUpdatePair2E18ReserveOnePositionEv@__ZN13CRecordVectorI16CExtrRefSortPairE12SortRefDown2EPS0_jj@__ZN13CRecordVectorIN8NArchive3N7z13CFolderRepackEE4SortEPFiPKS2_S5_PvES6_@__ZN13CRecordVectorIN8NArchive3N7z8CRefItemEE4SortEPFiPKS2_S5_PvES6_@__ZN13CRecordVectorIN8NArchive3N7z9CFileItemEE3AddES2_@__ZN13CRecordVectorIN8NArchive4NCab7CMvItemEE4SortEPFiPKS2_S5_PvES6_@__ZN13CRecordVectorIPvE4SortEPFiPKS0_S3_S0_ES0_@__ZN13CRecordVectorIPvE6InsertEjS0_@__ZN13CRecordVectorIiE4SortEPFiPKiS2_PvES3_p@__ZN13CRecordVectorIiE6InsertEji@__ZN13CRecordVectorIjE4SortEPFiPKjS2_PvES3_@__ZN13CRecordVectorIjE6InsertEjj@__ZN13CRecordVectorIyE6InsertEjy@__ZN13CReferenceBuf14QueryInterfaceERK4GUIDPPvJ@__ZN13CReferenceBuf6AddRefEvB@__ZN13CReferenceBuf7ReleaseEv@__ZN13CReferenceBufD0Ev@__ZN13CReferenceBufD1Ev@__ZN13CSha256Hasher14QueryInterfaceERK4GUIDPPv@__ZN13CSha256Hasher6AddRefEv@__ZN13CSha256Hasher7ReleaseEv@__ZN13CSha256HasherD0Ev@__ZN13CSha256HasherD1Ev@__ZN13CStdOutStreamD1Ev@__ZN13CTailInStream14QueryInterfaceERK4GUIDPPv@__ZN13CTailInStream6AddRefEv@__ZN13CTailInStream7ReleaseEv@__ZN13CTailInStreamD0Ev@__ZN13CTailInStreamD1Ev@__ZN14CBenchEncodersC2Ej@__ZN14CBenchEncodersD2Ev@__ZN14CExtentsStream14QueryInterfaceERK4GUIDPPv@__ZN14CExtentsStream6AddRefEv@__ZN14CExtentsStream7ReleaseEv@__ZN14CExtentsStreamD0Ev@__ZN14CExtentsStreamD1Ev@__ZN14CLocalProgress14QueryInterfaceERK4GUIDPPv @__ZN14CLocalProgress6AddRefEv@__ZN14CLocalProgress7ReleaseEv@__ZN14CLocalProgressD0Ev@__ZN14CLocalProgressD1Ev@__ZN14COutFileStream14QueryInterfaceERK4GUIDPPv@__ZN14COutFileStream6AddRefEv@__ZN14COutFileStream7ReleaseEv@__ZN14COutFileStreamD0Ev@__ZN14COutFileStreamD1Ev@__ZN14CTailOutStream14QueryInterfaceERK4GUIDPPv@__ZN14CTailOutStream6AddRefEv@__ZN14CTailOutStream7ReleaseEv@__ZN14CTailOutStreamD0Ev@__ZN14CTailOutStreamD1Ev@__ZN14CUpdateOptionsC2Ev@__ZN14CUpdateOptionsD2Ev@__ZN14CXzCrc64Hasher14QueryInterfaceERK4GUIDPPv@__ZN14CXzCrc64Hasher6AddRefEv@__ZN14CXzCrc64Hasher7ReleaseEv@__ZN14CXzCrc64HasherD0Ev@__ZN14CXzCrc64HasherD1Ev@__ZN14ICompressCoderD0Ev@__ZN14ICompressCoderD1Ev@__ZN14ISetPropertiesD0Ev@__ZN14ISetPropertiesD1Ev@__ZN14IStreamGetSizeD0Ev?@__ZN14IStreamGetSizeD1Ev@__ZN15CBC_ARM_DecoderD0Ev@__ZN15CBC_ARM_DecoderD1Ev@__ZN15CBC_ARM_EncoderD0Ev@__ZN15CBC_ARM_EncoderD1Ev@__ZN15CBC_PPC_DecoderD0Ev@__ZN15CBC_PPC_DecoderD1Ev@__ZN15CBC_PPC_EncoderD0Ev@__ZN15CBC_PPC_EncoderD1Ev@__ZN15CBinderInStream14QueryInterfaceERK4GUIDPPv@__ZN15CBinderInStream6AddRefEv@__ZN15CBinderInStream7ReleaseEv@__ZN15CBinderInStreamD0Ev@__ZN15CBinderInStreamD1Ev@__ZN15CCachedInStream14QueryInterfaceERK4GUIDPPv@__ZN15CCachedInStream6AddRefEv@__ZN15CCachedInStream7ReleaseEv@__ZN15CCachedInStreamD0Ev@__ZN15CCachedInStreamD1Ev@__ZN15CDummyOutStream14QueryInterfaceERK4GUIDPPv@__ZN15CDummyOutStream6AddRefEv@__ZN15CDummyOutStream7ReleaseEv@__ZN15CDummyOutStreamD0Ev@__ZN15CDummyOutStreamD1Ev@__ZN15IArchiveOpenSeqD0Ev@__ZN15IArchiveOpenSeqD1Ev@__ZN15ICompressCoder2D0Ev@__ZN15ICompressCoder2D1Ev@__ZN15ICompressFilterD0Ev@__ZN15ICompressFilterD1Ev@__ZN15IOutStreamFlushD0Ev @__ZN15IOutStreamFlushD1Ev@__ZN16CBCJ_x86_Decoder7SubInitEvب@__ZN16CBCJ_x86_DecoderD0Ev@__ZN16CBCJ_x86_DecoderD1Ev@__ZN16CBCJ_x86_Encoder7SubInitEv@__ZN16CBCJ_x86_EncoderD0Ev@__ZN16CBCJ_x86_EncoderD1Ev@__ZN16CBC_ARMT_DecoderD0Ev@__ZN16CBC_ARMT_DecoderD1Ev@__ZN16CBC_ARMT_EncoderD0Ev@__ZN16CBC_ARMT_EncoderD1Ev@__ZN16CBC_IA64_DecoderD0Ev@__ZN16CBC_IA64_DecoderD1Ev@__ZN16CBC_IA64_EncoderD0Ev@__ZN16CBC_IA64_EncoderD1Ev@__ZN16CBinderOutStream14QueryInterfaceERK4GUIDPPv@__ZN16CBinderOutStream6AddRefEv@__ZN16CBinderOutStream7ReleaseEv@__ZN16CBinderOutStreamD0Ev@__ZN16CBinderOutStreamD1Ev@__ZN16CBranchConverter14QueryInterfaceERK4GUIDPPv x@__ZN16CBranchConverter6AddRefEv x@__ZN16CBranchConverter7ReleaseEv x@__ZN16CBranchConverter7SubInitEv x@__ZN16CBranchConverterD0Ev@__ZN16CBranchConverterD1Ev@__ZN16CClusterInStream14QueryInterfaceERK4GUIDPPv@__ZN16CClusterInStream6AddRefEv@__ZN16CClusterInStream7ReleaseEv@__ZN16CClusterInStreamD0Ev@__ZN16CClusterInStreamD1Ev@__ZN16CInFileStreamVolD0Ev@__ZN16CInFileStreamVolD1Ev@__ZN16CInFileStreamVolD2Ev@__ZN16CInStreamWithCRC14QueryInterfaceERK4GUIDPPv@__ZN16CInStreamWithCRC6AddRefEv@__ZN16CInStreamWithCRC7ReleaseEv@__ZN16CInStreamWithCRCD0Ev@__ZN16CInStreamWithCRCD1Ev@__ZN16CLimitedInStream14QueryInterfaceERK4GUIDPPv>@__ZN16CLimitedInStream6AddRefEv@__ZN16CLimitedInStream7ReleaseEv@__ZN16CLimitedInStreamD0Ev@__ZN16CLimitedInStreamD1Ev@__ZN16COffsetOutStream14QueryInterfaceERK4GUIDPPv @__ZN16COffsetOutStream6AddRefEv@__ZN16COffsetOutStream7ReleaseEv@__ZN16COffsetOutStreamD0Ev@__ZN16COffsetOutStreamD1Ev@__ZN16COpenCallbackImp14QueryInterfaceERK4GUIDPPv@__ZN16COpenCallbackImp17SetSubArchiveNameEPKwH@__ZN16COpenCallbackImp4InitERK7UStringS2_@__ZN16COpenCallbackImp6AddRefEv@__ZN16COpenCallbackImp7ReleaseEv@__ZN16COpenCallbackImpC2Ev@__ZN16COpenCallbackImpD0Ev@__ZN16COpenCallbackImpD1Ev@__ZN16COpenCallbackImpD2Evȼ@__ZN16CStdInFileStream14QueryInterfaceERK4GUIDPPv@__ZN16CStdInFileStream6AddRefEvи@__ZN16CStdInFileStream7ReleaseEv@__ZN16CStdInFileStreamD0Ev@__ZN16CStdInFileStreamD1Ev@__ZN17CBC_SPARC_DecoderD0Ev8@__ZN17CBC_SPARC_DecoderD1Ev@__ZN17CBC_SPARC_EncoderD0Ev@__ZN17CBC_SPARC_EncoderD1Ev@__ZN17COutStreamWithCRC14QueryInterfaceERK4GUIDPPvЙ@__ZN17COutStreamWithCRC6AddRefEv@__ZN17COutStreamWithCRC7ReleaseEv@__ZN17COutStreamWithCRCD0Ev@__ZN17COutStreamWithCRCD1Ev@__ZN17CStdOutFileStream14QueryInterfaceERK4GUIDPPv0@__ZN17CStdOutFileStream6AddRefEv@__ZN17CStdOutFileStream7ReleaseEv@__ZN17CStdOutFileStreamD0Ev@__ZN17CStdOutFileStreamD1Ev@__ZN17ICryptoPropertiesD0Ev@__ZN17ICryptoPropertiesD1Ev@__ZN18CArcCmdLineOptionsC2Ev@__ZN18CArcCmdLineOptionsD2Ev@__ZN18CBenchProgressInfo14QueryInterfaceERK4GUIDPPv@__ZN18CBenchProgressInfo6AddRefEv@__ZN18CBenchProgressInfo7ReleaseEv@__ZN18CBenchProgressInfoD0Ev@__ZN18CBenchProgressInfoD1Ev@__ZN18CBenchmarkInStream14QueryInterfaceERK4GUIDPPv@__ZN18CBenchmarkInStream6AddRefEv@__ZN18CBenchmarkInStream7ReleaseEv@__ZN18CBenchmarkInStreamD0Ev@__ZN18CBenchmarkInStreamD1Ev@__ZN18CMemBlockManagerMtD2Ev@__ZN18COutMultiVolStream14QueryInterfaceERK4GUIDPPv@__ZN18COutMultiVolStream6AddRefEv@__ZN18COutMultiVolStream7ReleaseEv@__ZN18COutMultiVolStreamD0Ev@__ZN18COutMultiVolStreamD1Ev@__ZN18COutStreamWithHash14QueryInterfaceERK4GUIDPPv@__ZN18COutStreamWithHash6AddRefEv@__ZN18COutStreamWithHash7ReleaseEv@__ZN18COutStreamWithHashD0Ev@__ZN18COutStreamWithHashD1Ev@__ZN18ICryptoSetPasswordD0Ev@__ZN18ICryptoSetPasswordD1Ev@__ZN18IExtractCallbackUID0Ev8@__ZN18IExtractCallbackUID1Ev@__ZN19CBenchmarkOutStream14QueryInterfaceERK4GUIDPPv@__ZN19CBenchmarkOutStream6AddRefEv@__ZN19CBenchmarkOutStream7ReleaseEv@__ZN19CBenchmarkOutStreamD0Ev@__ZN19CBenchmarkOutStreamD1Ev@__ZN19CBufPtrSeqOutStream14QueryInterfaceERK4GUIDPPv@__ZN19CBufPtrSeqOutStream6AddRefEv@__ZN19CBufPtrSeqOutStream7ReleaseEv@__ZN19CBufPtrSeqOutStreamD0Ev@__ZN19CBufPtrSeqOutStreamD1Ev@__ZN19CDynBufSeqOutStream14QueryInterfaceERK4GUIDPPv@__ZN19CDynBufSeqOutStream6AddRefEv@__ZN19CDynBufSeqOutStream7ReleaseEv@__ZN19CDynBufSeqOutStreamD0Ev@__ZN19CDynBufSeqOutStreamD1Ev@__ZN19CMtCompressProgress14QueryInterfaceERK4GUIDPPv@__ZN19CMtCompressProgress6AddRefEv@__ZN19CMtCompressProgress7ReleaseEv@__ZN19CMtCompressProgressD0Ev@__ZN19CMtCompressProgressD1Ev@__ZN19IArchiveGetRawPropsD0Ev@__ZN19IArchiveGetRawPropsD1Ev@__ZN19ICompressSetBufSizeD0Ev)@__ZN19ICompressSetBufSizeD1Ev@__ZN19ICompressSetCoderMtD0Ev@__ZN19ICompressSetCoderMtD1Ev@__ZN19IInArchiveGetStreamD0Ev@__ZN19IInArchiveGetStreamD1Ev@__ZN19ISequentialInStreamD0Ev@__ZN19ISequentialInStreamD1Ev@__ZN20CArcCmdLineExceptionD1Ev@__ZN20CCallbackConsoleBaseD2Ev@__ZN20CCrossThreadProgress14QueryInterfaceERK4GUIDPPv|@__ZN20CCrossThreadProgress6AddRefEv@__ZN20CCrossThreadProgress7ReleaseEv@__ZN20CCrossThreadProgressD0Ev@__ZN20CCrossThreadProgressD1Ev@__ZN20IArchiveGetRootPropsD0Ev@__ZN20IArchiveGetRootPropsD1Ev@__ZN20IArchiveOpenCallbackD0Ev@__ZN20IArchiveOpenCallbackD1Ev@__ZN20ICompressSetInStreamD0Ev@__ZN20ICompressSetInStreamD1Ev@__ZN20ISequentialOutStreamD0Ev@__ZN20ISequentialOutStreamD1Ev@__ZN21CBenchRandomGenerator8GenerateEj@__ZN21CBenchRandomGeneratorD0EvV@__ZN21CBenchRandomGeneratorD1Ev@__ZN21ICompressProgressInfoD0Ev@__ZN21ICompressProgressInfoD1Ev@__ZN21ICompressSetOutStreamD0Ev@__ZN21ICompressSetOutStreamD1Ev@__ZN22CArchiveUpdateCallback14QueryInterfaceERK4GUIDPPv@__ZN22CArchiveUpdateCallback6AddRefEv@__ZN22CArchiveUpdateCallback7ReleaseEv@__ZN22CArchiveUpdateCallbackD0Ev@__ZN22CArchiveUpdateCallbackD1Ev@__ZN22CArchiveUpdateCallbackD2Ev@__ZN22CLimitedCachedInStream14QueryInterfaceERK4GUIDPPv@__ZN22CLimitedCachedInStream6AddRefEv@__ZN22CLimitedCachedInStream7ReleaseEv@__ZN22CLimitedCachedInStreamD0Ev@__ZN22CLimitedCachedInStreamD1Ev@__ZN22CUpdateCallbackConsoleD2Evȼ@__ZN22IArchiveUpdateCallbackD0Ev[@__ZN22IArchiveUpdateCallbackD1Ev@__ZN22ICryptoGetTextPasswordD0Ev@__ZN22ICryptoGetTextPasswordD1Ev@__ZN22ICryptoResetInitVectorD0Ev@__ZN22ICryptoResetInitVectorD1Ev@__ZN23CArchiveExtractCallback14QueryInterfaceERK4GUIDPPv@__ZN23CArchiveExtractCallback6AddRefEv@__ZN23CArchiveExtractCallback7ReleaseEv@__ZN23CArchiveExtractCallbackD0Ev@__ZN23CArchiveExtractCallbackD1Ev@__ZN23CArchiveExtractCallbackD2Ev@__ZN23CExtractCallbackConsole14QueryInterfaceERK4GUIDPPv@__ZN23CExtractCallbackConsole6AddRefEv@__ZN23CExtractCallbackConsole7ReleaseEv@__ZN23CExtractCallbackConsoleD0Ev@__ZN23CExtractCallbackConsoleD1Ev@__ZN23IArchiveExtractCallbackD0Ev@__ZN23IArchiveExtractCallbackD1Ev@__ZN23IArchiveUpdateCallback2D0Ev @__ZN23IArchiveUpdateCallback2D1Ev@__ZN23ICryptoGetTextPassword2D0Ev@__ZN23ICryptoGetTextPassword2D1Ev@__ZN24CMtCompressProgressMixerD2Ev@__ZN25CEnumDirItemCallback_Hash12ScanProgressEyyyPKwb]@__ZN25ICompressGetSubStreamSizeD0Ev@__ZN25ICompressGetSubStreamSizeD1Ev@__ZN25ICompressSetOutStreamSizeD0Ev4@__ZN25ICompressSetOutStreamSizeD1Ev@__ZN26CEnumDirItemUpdateCallback12ScanProgressEyyyPKwb@__ZN26CLimitedSequentialInStream14QueryInterfaceERK4GUIDPPve@__ZN26CLimitedSequentialInStream6AddRefEv@__ZN26CLimitedSequentialInStream7ReleaseEv@__ZN26CLimitedSequentialInStreamD0Ev@__ZN26CLimitedSequentialInStreamD1Ev@__ZN26CSequentialInStreamWithCRC14QueryInterfaceERK4GUIDPPv@__ZN26CSequentialInStreamWithCRC6AddRefEv@__ZN26CSequentialInStreamWithCRC7ReleaseEv@__ZN26CSequentialInStreamWithCRCD0Ev@__ZN26CSequentialInStreamWithCRCD1Ev@__ZN26IArchiveOpenVolumeCallbackD0Ev@__ZN26IArchiveOpenVolumeCallbackD1Ev@__ZN27CArchiveOpenCallback_Offset14QueryInterfaceERK4GUIDPPv@__ZN27CArchiveOpenCallback_Offset6AddRefEv@__ZN27CArchiveOpenCallback_Offset7ReleaseEv@__ZN27CArchiveOpenCallback_OffsetD0Ev@__ZN27CArchiveOpenCallback_OffsetD1Ev@__ZN27CLimitedSequentialOutStream14QueryInterfaceERK4GUIDPPv@__ZN27CLimitedSequentialOutStream6AddRefEvȲ@__ZN27CLimitedSequentialOutStream7ReleaseEv@__ZN27CLimitedSequentialOutStreamD0Ev@__ZN27CLimitedSequentialOutStreamD1Ev@__ZN27CSequentialOutTempBufferImp14QueryInterfaceERK4GUIDPPv@__ZN27CSequentialOutTempBufferImp6AddRefEvر@__ZN27CSequentialOutTempBufferImp7ReleaseEv@__ZN27CSequentialOutTempBufferImpD0Ev@__ZN27CSequentialOutTempBufferImpD1Ev@__ZN27ICompressSetCoderPropertiesD0Ev@__ZN27ICompressSetCoderPropertiesD1Ev@__ZN28CLockedSequentialInStreamImp14QueryInterfaceERK4GUIDPPv@__ZN28CLockedSequentialInStreamImp6AddRefEv@__ZN28CLockedSequentialInStreamImp7ReleaseEv@__ZN28CLockedSequentialInStreamImpD0Ev@__ZN28CLockedSequentialInStreamImpD1Ev@__ZN29CSequentialInStreamSizeCount214QueryInterfaceERK4GUIDPPv@__ZN29CSequentialInStreamSizeCount24InitEP19ISequentialInStream@__ZN29CSequentialInStreamSizeCount26AddRefEv@__ZN29CSequentialInStreamSizeCount27ReleaseEv@__ZN29CSequentialInStreamSizeCount2D0Ev@__ZN29CSequentialInStreamSizeCount2D1Ev@__ZN29CSequentialOutStreamSizeCount14QueryInterfaceERK4GUIDPPvc@__ZN29CSequentialOutStreamSizeCount6AddRefEv؛@__ZN29CSequentialOutStreamSizeCount7ReleaseEv@__ZN29CSequentialOutStreamSizeCountD0Ev@__ZN29CSequentialOutStreamSizeCountD1Ev@__ZN29IArchiveOpenSetSubArchiveNameD0EvЂ@__ZN29IArchiveOpenSetSubArchiveNameD1Ev@__ZN29ICompressWriteCoderPropertiesD0Ev@__ZN29ICompressWriteCoderPropertiesD1Ev@__ZN29IFolderArchiveExtractCallbackD0Ev-@__ZN29IFolderArchiveExtractCallbackD1Ev@__ZN30ICompressSetDecoderProperties2D0Ev@__ZN30ICompressSetDecoderProperties2D1Ev@__ZN32CExtractCallback_To_OpenCallback14QueryInterfaceERK4GUIDPPvП@__ZN32CExtractCallback_To_OpenCallback6AddRefEv@__ZN32CExtractCallback_To_OpenCallback7ReleaseEv@__ZN32CExtractCallback_To_OpenCallbackD0Ev@__ZN32CExtractCallback_To_OpenCallbackD1Ev@__ZN33ICompressGetInStreamProcessedSizeD0Ev@__ZN33ICompressGetInStreamProcessedSizeD1Ev@__ZN4CArcC2ERKS_@__ZN4CArcC2Ev@__ZN4CArcD2Ev@__ZN5NBitl8CDecoderI9CInBufferE8ReadBitsEj@__ZN7AStringD1Ev@__ZN7CCodecs14QueryInterfaceERK4GUIDPPv{@__ZN7CCodecs6AddRefEvȜc@__ZN7CCodecs7ReleaseEv@__ZN7CCodecsD0Ev@__ZN7CCodecsD1Ev@__ZN7IHasherD0Ev@__ZN7IHasherD1Ev@__ZN7NCrypto10NZipStrong10CBaseCoderD0Ev@__ZN7NCrypto10NZipStrong10CBaseCoderD1Ev@__ZN7NCrypto10NZipStrong8CDecoder14QueryInterfaceERK4GUIDPPv@__ZN7NCrypto10NZipStrong8CDecoder6AddRefEv@__ZN7NCrypto10NZipStrong8CDecoder7ReleaseEv@__ZN7NCrypto10NZipStrong8CDecoderD0Ev@__ZN7NCrypto10NZipStrong8CDecoderD1Ev@__ZN7NCrypto12CAesCbcCoder14QueryInterfaceERK4GUIDPPv @__ZN7NCrypto12CAesCbcCoder6AddRefEv @__ZN7NCrypto12CAesCbcCoder7ReleaseEv @__ZN7NCrypto12CAesCbcCoderD0Ev@__ZN7NCrypto12CAesCbcCoderD1Ev@__ZN7NCrypto14CAesCbcDecoderD0Ev@__ZN7NCrypto14CAesCbcDecoderD1Ev@__ZN7NCrypto14CAesCbcEncoderD0Ev@__ZN7NCrypto14CAesCbcEncoderD1Ev@__ZN7NCrypto4NZip7CCipherD0Ev@__ZN7NCrypto4NZip7CCipherD1Ev@__ZN7NCrypto4NZip8CDecoder14QueryInterfaceERK4GUIDPPvp@__ZN7NCrypto4NZip8CDecoder6AddRefEv@__ZN7NCrypto4NZip8CDecoder7ReleaseEv@__ZN7NCrypto4NZip8CDecoderD0Ev@__ZN7NCrypto4NZip8CDecoderD1Ev@__ZN7NCrypto4NZip8CEncoder14QueryInterfaceERK4GUIDPPv@__ZN7NCrypto4NZip8CEncoder6AddRefEv@__ZN7NCrypto4NZip8CEncoder7ReleaseEv@__ZN7NCrypto4NZip8CEncoderD0Ev@__ZN7NCrypto4NZip8CEncoderD1Ev@__ZN7NCrypto6NWzAes10CBaseCoderD0Ev@__ZN7NCrypto6NWzAes10CBaseCoderD1Ev@__ZN7NCrypto6NWzAes8CDecoder14QueryInterfaceERK4GUIDPPvp@__ZN7NCrypto6NWzAes8CDecoder6AddRefEv@__ZN7NCrypto6NWzAes8CDecoder7ReleaseEv@__ZN7NCrypto6NWzAes8CDecoderD0Ev@__ZN7NCrypto6NWzAes8CDecoderD1Ev@__ZN7NCrypto6NWzAes8CEncoder14QueryInterfaceERK4GUIDPPv@__ZN7NCrypto6NWzAes8CEncoder6AddRefEv@__ZN7NCrypto6NWzAes8CEncoder7ReleaseEv@__ZN7NCrypto6NWzAes8CEncoderD0Ev@__ZN7NCrypto6NWzAes8CEncoderD1Ev@__ZN7NCrypto7NSevenZ10CBaseCoderD0Ev@__ZN7NCrypto7NSevenZ10CBaseCoderD1Ev@__ZN7NCrypto7NSevenZ10CBaseCoderD2Ev@__ZN7NCrypto7NSevenZ13CKeyInfoCacheD1Ev@__ZN7NCrypto7NSevenZ8CDecoder14QueryInterfaceERK4GUIDPPv@__ZN7NCrypto7NSevenZ8CDecoder6AddRefEv@__ZN7NCrypto7NSevenZ8CDecoder7ReleaseEv@__ZN7NCrypto7NSevenZ8CDecoderD0Ev@__ZN7NCrypto7NSevenZ8CDecoderD1Ev@__ZN7NCrypto7NSevenZ8CEncoder14QueryInterfaceERK4GUIDPPv؟@__ZN7NCrypto7NSevenZ8CEncoder6AddRefEv@__ZN7NCrypto7NSevenZ8CEncoder7ReleaseEv@__ZN7NCrypto7NSevenZ8CEncoderD0Ev@__ZN7NCrypto7NSevenZ8CEncoderD1Ev@__ZN7UStringD1Ev@__ZN8CGetProp14QueryInterfaceERK4GUIDPPv@__ZN8CGetProp6AddRefEv@__ZN8CGetProp7ReleaseEv@__ZN8CGetPropD0Ev@__ZN8CGetPropD1Ev@__ZN8IGetPropD0Ev@__ZN8IGetPropD1Ev@__ZN8IUnknownD0Ev@__ZN8IUnknownD1Ev@__ZN8NArchive17CMultiMethodPropsC2Ev@__ZN8NArchive18CSingleMethodPropsC2Ev@__ZN8NArchive2NZ8CHandler14QueryInterfaceERK4GUIDPPv@__ZN8NArchive2NZ8CHandler6AddRefEv@__ZN8NArchive2NZ8CHandler7ReleaseEv@__ZN8NArchive2NZ8CHandlerD0Ev@__ZN8NArchive2NZ8CHandlerD1Ev@__ZN8NArchive3N7z11COutArchiveD2Ev@__ZN8NArchive3N7z11COutFolders21OutFoldersReserveDownEvp@__ZN8NArchive3N7z11COutHandlerC2Ev@__ZN8NArchive3N7z14CThreadDecoderC2Ev@__ZN8NArchive3N7z14CThreadDecoderD2Ev@__ZN8NArchive3N7z15CFolderInStream14QueryInterfaceERK4GUIDPPvu@__ZN8NArchive3N7z15CFolderInStream6AddRefEv@__ZN8NArchive3N7z15CFolderInStream7ReleaseEv@__ZN8NArchive3N7z15CFolderInStreamD0Ev@__ZN8NArchive3N7z15CFolderInStreamD1Ev@__ZN8NArchive3N7z15CFolderInStreamD2Ev؇@__ZN8NArchive3N7z16CFolderOutStream14QueryInterfaceERK4GUIDPPvy@__ZN8NArchive3N7z16CFolderOutStream6AddRefEv@__ZN8NArchive3N7z16CFolderOutStream7ReleaseEv@__ZN8NArchive3N7z16CFolderOutStreamD0Evy@__ZN8NArchive3N7z16CFolderOutStreamD1Ev@__ZN8NArchive3N7z16CUInt32DefVector11ReserveDownEv@__ZN8NArchive3N7z16CUInt32DefVector15ClearAndSetSizeEj@__ZN8NArchive3N7z16CUInt64DefVector11ReserveDownEvh@__ZN8NArchive3N7z17CFolderOutStream214QueryInterfaceERK4GUIDPPv@__ZN8NArchive3N7z17CFolderOutStream26AddRefEv@__ZN8NArchive3N7z17CFolderOutStream27ReleaseEv@__ZN8NArchive3N7z17CFolderOutStream2C2Ev@__ZN8NArchive3N7z17CFolderOutStream2D0Ev@__ZN8NArchive3N7z17CFolderOutStream2D1Ev@__ZN8NArchive3N7z19CArchiveDatabaseOut11ReserveDownEv@__ZN8NArchive3N7z19CArchiveDatabaseOut12SetItem_AntiEjb@__ZN8NArchive3N7z19CArchiveDatabaseOutD2Ev@__ZN8NArchive3N7z22CCompressionMethodModeC2ERKS1_@__ZN8NArchive3N7z22CCryptoGetTextPassword14QueryInterfaceERK4GUIDPPv@__ZN8NArchive3N7z22CCryptoGetTextPassword6AddRefEv@__ZN8NArchive3N7z22CCryptoGetTextPassword7ReleaseEv@__ZN8NArchive3N7z22CCryptoGetTextPasswordD0Ev@__ZN8NArchive3N7z22CCryptoGetTextPasswordD1Ev@__ZN8NArchive3N7z5CDbEx5ClearEv@__ZN8NArchive3N7z8CDecoderD2Ev@__ZN8NArchive3N7z8CFolders5ClearEv@@__ZN8NArchive3N7z8CFoldersD2Ev@__ZN8NArchive3N7z8CHandler14QueryInterfaceERK4GUIDPPvz@__ZN8NArchive3N7z8CHandler6AddRefEv@__ZN8NArchive3N7z8CHandler7ReleaseEv@__ZN8NArchive3N7z8CHandlerD0Ev@__ZN8NArchive3N7z8CHandlerD1Ev@__ZN8NArchive3N7z8CHandlerD2Ev@__ZN8NArchive3N7z8CRefItemC2EjRKNS0_11CUpdateItemEb@__ZN8NArchive3N7z9CDatabaseD2Ev@__ZN8NArchive3NGz24CCompressProgressInfoImp14QueryInterfaceERK4GUIDPPvȘ@__ZN8NArchive3NGz24CCompressProgressInfoImp6AddRefEv@__ZN8NArchive3NGz24CCompressProgressInfoImp7ReleaseEv@__ZN8NArchive3NGz24CCompressProgressInfoImpD0Ev@__ZN8NArchive3NGz24CCompressProgressInfoImpD1Ev@__ZN8NArchive3NGz8CHandler14QueryInterfaceERK4GUIDPPvȐ@__ZN8NArchive3NGz8CHandler6AddRefEv@__ZN8NArchive3NGz8CHandler7ReleaseEv@__ZN8NArchive3NGz8CHandlerC2Ev@__ZN8NArchive3NGz8CHandlerD0Ev@__ZN8NArchive3NGz8CHandlerD1Ev@__ZN8NArchive3NGz8CHandlerD2Ev@__ZN8NArchive3NXz16CSeekToSeqStream14QueryInterfaceERK4GUIDPPvȨ@__ZN8NArchive3NXz16CSeekToSeqStream6AddRefEv@__ZN8NArchive3NXz16CSeekToSeqStream7ReleaseEv@__ZN8NArchive3NXz16CSeekToSeqStreamD0Ev@__ZN8NArchive3NXz16CSeekToSeqStreamD1Ev@__ZN8NArchive3NXz8CHandler14QueryInterfaceERK4GUIDPPv@__ZN8NArchive3NXz8CHandler6AddRefEv@__ZN8NArchive3NXz8CHandler7ReleaseEv@__ZN8NArchive3NXz8CHandlerD0Ev@__ZN8NArchive3NXz8CHandlerD1Ev@__ZN8NArchive3NXz8CHandlerD2Ev@__ZN8NArchive4NBz28CHandler14QueryInterfaceERK4GUIDPPv@__ZN8NArchive4NBz28CHandler6AddRefEv@__ZN8NArchive4NBz28CHandler7ReleaseEv@__ZN8NArchive4NBz28CHandlerC2Ev@__ZN8NArchive4NBz28CHandlerD0Ev@__ZN8NArchive4NBz28CHandlerD1Ev@__ZN8NArchive4NBz28CHandlerD2Ev@__ZN8NArchive4NCab16CFolderOutStream14QueryInterfaceERK4GUIDPPv@__ZN8NArchive4NCab16CFolderOutStream6AddRefEv@__ZN8NArchive4NCab16CFolderOutStream7ReleaseEv@__ZN8NArchive4NCab16CFolderOutStreamD0Ev@__ZN8NArchive4NCab16CFolderOutStreamD1Ev@__ZN8NArchive4NCab16CFolderOutStreamD2Ev@__ZN8NArchive4NCab17CCabBlockInStream14QueryInterfaceERK4GUIDPPv@__ZN8NArchive4NCab17CCabBlockInStream6AddRefEv؄@__ZN8NArchive4NCab17CCabBlockInStream7ReleaseEv@__ZN8NArchive4NCab8CHandler14QueryInterfaceERK4GUIDPPvh@__ZN8NArchive4NCab8CHandler6AddRefEv@__ZN8NArchive4NCab8CHandler7ReleaseEv@__ZN8NArchive4NCab8CHandlerD0Ev@__ZN8NArchive4NCab8CHandlerD1Ev@__ZN8NArchive4NCab9CArchInfoC2ERKS1_@__ZN8NArchive4NCab9CArchInfoC2Ev@__ZN8NArchive4NCab9CDatabaseC2ERKS1_@__ZN8NArchive4NCab9CDatabaseD2Ev@__ZN8NArchive4NTar11CUpdateItemC2ERKS1_@__ZN8NArchive4NTar13CSparseStream14QueryInterfaceERK4GUIDPPv@__ZN8NArchive4NTar13CSparseStream6AddRefEv@__ZN8NArchive4NTar13CSparseStream7ReleaseEv@__ZN8NArchive4NTar13CSparseStreamD0Ev@__ZN8NArchive4NTar13CSparseStreamD1Ev@__ZN8NArchive4NTar5CItemC2ERKS1_@__ZN8NArchive4NTar5CItemC2Ev@__ZN8NArchive4NTar5CItemaSERKS1_0@__ZN8NArchive4NTar8CHandler14QueryInterfaceERK4GUIDPPv@__ZN8NArchive4NTar8CHandler6AddRefEv@__ZN8NArchive4NTar8CHandler7ReleaseEv@__ZN8NArchive4NTar8CHandlerD0Ev@__ZN8NArchive4NTar8CHandlerD1Ev@__ZN8NArchive4NTar8CHandlerD2Ev@__ZN8NArchive4NZip10CAddCommonC2ERKS1_@__ZN8NArchive4NZip10CAddCommonD2Ev@__ZN8NArchive4NZip11CExtraBlock22RemoveUnknownSubBlocksEv@__ZN8NArchive4NZip11CThreadInfo13StopWaitCloseEv@__ZN8NArchive4NZip11CThreadInfoC2ERKNS0_22CCompressionMethodModeE@__ZN8NArchive4NZip11CThreadInfoC2ERKS1_@__ZN8NArchive4NZip11CThreadInfoD2Ev@__ZN8NArchive4NZip11CZipDecoderD2Ev@__ZN8NArchive4NZip12CLzmaDecoder14QueryInterfaceERK4GUIDPPvв@__ZN8NArchive4NZip12CLzmaDecoder6AddRefEv@__ZN8NArchive4NZip12CLzmaDecoder7ReleaseEv@__ZN8NArchive4NZip12CLzmaDecoderD0Ev@__ZN8NArchive4NZip12CLzmaDecoderD1Ev@__ZN8NArchive4NZip12CLzmaEncoder14QueryInterfaceERK4GUIDPPv@__ZN8NArchive4NZip12CLzmaEncoder6AddRefEv@__ZN8NArchive4NZip12CLzmaEncoder7ReleaseEv@__ZN8NArchive4NZip12CLzmaEncoderD0Ev@__ZN8NArchive4NZip12CLzmaEncoderD1Ev@__ZN8NArchive4NZip15CCacheOutStream14QueryInterfaceERK4GUIDPPv @__ZN8NArchive4NZip15CCacheOutStream6AddRefEv@__ZN8NArchive4NZip15CCacheOutStream7ReleaseEv@__ZN8NArchive4NZip16CMtProgressMixer14QueryInterfaceERK4GUIDPPv@__ZN8NArchive4NZip16CMtProgressMixer6AddRefEv@__ZN8NArchive4NZip16CMtProgressMixer7ReleaseEv@__ZN8NArchive4NZip16CMtProgressMixerD0Ev@__ZN8NArchive4NZip16CMtProgressMixerD1Ev@__ZN8NArchive4NZip17CMtProgressMixer214QueryInterfaceERK4GUIDPPv@__ZN8NArchive4NZip17CMtProgressMixer26AddRefEv@__ZN8NArchive4NZip17CMtProgressMixer27ReleaseEv@__ZN8NArchive4NZip17CMtProgressMixer2D0Ev@__ZN8NArchive4NZip17CMtProgressMixer2D1Ev@__ZN8NArchive4NZip17CMtProgressMixer2D2Ev@__ZN8NArchive4NZip22CCompressionMethodModeC2ERKS1_@__ZN8NArchive4NZip22CCompressionMethodModeC2EvP@__ZN8NArchive4NZip22CCompressionMethodModeaSERKS1_@__ZN8NArchive4NZip5CItemC2ERKS1_@__ZN8NArchive4NZip5CItemD2Ev@__ZN8NArchive4NZip5CItemaSERKS1_@__ZN8NArchive4NZip8CHandler14QueryInterfaceERK4GUIDPPv@__ZN8NArchive4NZip8CHandler6AddRefEv@__ZN8NArchive4NZip8CHandler7ReleaseEv@__ZN8NArchive4NZip8CHandlerD0Ev@__ZN8NArchive4NZip8CHandlerD1Ev@__ZN8NArchive4NZip8CHandlerD2Ev@__ZN8NArchive4NZip8CMemRefsD2Ev@__ZN8NArchive5NLzma24CCompressProgressInfoImp14QueryInterfaceERK4GUIDPPv@__ZN8NArchive5NLzma24CCompressProgressInfoImp6AddRefEv@__ZN8NArchive5NLzma24CCompressProgressInfoImp7ReleaseEv@__ZN8NArchive5NLzma24CCompressProgressInfoImpD0Ev@__ZN8NArchive5NLzma24CCompressProgressInfoImpD1Ev@__ZN8NArchive5NLzma8CHandler14QueryInterfaceERK4GUIDPPv@__ZN8NArchive5NLzma8CHandler6AddRefEv@__ZN8NArchive5NLzma8CHandler7ReleaseEv@__ZN8NArchive5NLzma8CHandlerD0Ev@__ZN8NArchive5NLzma8CHandlerD1Ev@__ZN8NArchive5NPpmd13CRangeDecoder4InitEv@__ZN8NArchive5NPpmd8CHandler14QueryInterfaceERK4GUIDPPv@__ZN8NArchive5NPpmd8CHandler6AddRefEv@__ZN8NArchive5NPpmd8CHandler7ReleaseEv@__ZN8NArchive5NPpmd8CHandlerD0Ev@__ZN8NArchive5NPpmd8CHandlerD1Ev@__ZN8NArchive6NSplit8CHandler14QueryInterfaceERK4GUIDPPv@__ZN8NArchive6NSplit8CHandler6AddRefEv@__ZN8NArchive6NSplit8CHandler7ReleaseEv@__ZN8NArchive6NSplit8CHandlerD0Ev@__ZN8NArchive6NSplit8CHandlerD1Ev@__ZN8NArchive6NSplit8CSeqName11GetNextNameEv@__ZN8NArchive7NParser10CParseItemC2ERKS1_ @__ZN8NArchive7NParser10CParseItemC2Ev@__ZN8NArchive7NParser8CHandler14QueryInterfaceERK4GUIDPPv@__ZN8NArchive7NParser8CHandler6AddRefEvв@__ZN8NArchive7NParser8CHandler7ReleaseEv@__ZN8NArchive7NParser8CHandlerD0Ev@__ZN8NArchive7NParser8CHandlerD1Ev@__ZN8NWindows16NSynchronization14CBaseEventWFMO19IsSignaledAndUpdateEv @__ZN8NWindows16NSynchronization14CSemaphoreWFMO19IsSignaledAndUpdateEv8@__ZN8NWindows16NSynchronization16CCriticalSectionD1Ev@__ZN8NWindows5NFile3NIO7CInFileD0Ev.@__ZN8NWindows5NFile3NIO7CInFileD1Ev@__ZN8NWindows5NFile3NIO8COutFileD0Ev!@__ZN8NWindows5NFile3NIO8COutFileD1Ev@__ZN8NWindows5NFile5NFind11CEnumeratorC2ERK7UString@__ZN8NWindows5NFile5NFind9CFindFileD2Ev@__ZN9CDirItems8AddErrorERK7UStringj@__ZN9CDirItemsD2Ev@__ZN9IInStreamD0Ev@__ZN9IInStreamD1Ev@__ZN9IProgressD0Ev9@__ZN9IProgressD1Ev@__ZN9NCompress10CCopyCoder14QueryInterfaceERK4GUIDPPv@__ZN9NCompress10CCopyCoder6AddRefEv@__ZN9NCompress10CCopyCoder7ReleaseEv@__ZN9NCompress11NRangeCoder11CBitDecoderILj5EE6DecodeEPNS0_8CDecoderE@__ZN9NCompress11NRangeCoder11CBitEncoderILj5EE6EncodeEPNS0_8CEncoderEj@__ZN9NCompress11NRangeCoder8CDecoder4InitEv@__ZN9NCompress11NRangeCoder8CEncoder9FlushDataEv@__ZN9NCompress12CMtf8Decoder10GetAndMoveEj@__ZN9NCompress12CMtf8Encoder11FindAndMoveEh0@__ZN9NCompress2NZ8CDecoder14QueryInterfaceERK4GUIDPPv@__ZN9NCompress2NZ8CDecoder6AddRefEv@__ZN9NCompress2NZ8CDecoder7ReleaseEv@__ZN9NCompress4NLzx10NBitStream8CDecoder9NormalizeEv@__ZN9NCompress4NLzx20Cx86ConvertOutStream14QueryInterfaceERK4GUIDPPv@__ZN9NCompress4NLzx20Cx86ConvertOutStream6AddRefEv@__ZN9NCompress4NLzx20Cx86ConvertOutStream7ReleaseEv@__ZN9NCompress4NLzx20Cx86ConvertOutStreamD0Ev@__ZN9NCompress4NLzx20Cx86ConvertOutStreamD1Ev@__ZN9NCompress4NLzx8CDecoder14QueryInterfaceERK4GUIDPPv`@__ZN9NCompress4NLzx8CDecoder6AddRefEv@__ZN9NCompress4NLzx8CDecoder7ReleaseEv@__ZN9NCompress4NLzx8CDecoderD0Ev@__ZN9NCompress4NLzx8CDecoderD1Ev@__ZN9NCompress5NBcj28CDecoder14QueryInterfaceERK4GUIDPPv@__ZN9NCompress5NBcj28CDecoder6AddRefEv@__ZN9NCompress5NBcj28CDecoder7ReleaseEv@__ZN9NCompress5NBcj28CDecoderD0Ev@__ZN9NCompress5NBcj28CDecoderD1Ev@__ZN9NCompress5NBcj28CEncoder14QueryInterfaceERK4GUIDPPv@__ZN9NCompress5NBcj28CEncoder6AddRefEv@__ZN9NCompress5NBcj28CEncoder7ReleaseEv@__ZN9NCompress5NLzma8CDecoder14QueryInterfaceERK4GUIDPPv@__ZN9NCompress5NLzma8CDecoder6AddRefEv@__ZN9NCompress5NLzma8CDecoder7ReleaseEv@__ZN9NCompress5NLzma8CEncoder14QueryInterfaceERK4GUIDPPv@__ZN9NCompress5NLzma8CEncoder6AddRefEv@__ZN9NCompress5NLzma8CEncoder7ReleaseEv@__ZN9NCompress5NPpmd8CDecoder14QueryInterfaceERK4GUIDPPv@__ZN9NCompress5NPpmd8CDecoder6AddRefEv@__ZN9NCompress5NPpmd8CDecoder7ReleaseEv@__ZN9NCompress5NPpmd8CDecoderC2Ev@__ZN9NCompress5NPpmd8CEncoder14QueryInterfaceERK4GUIDPPv@__ZN9NCompress5NPpmd8CEncoder6AddRefEv@__ZN9NCompress5NPpmd8CEncoder7ReleaseEv@__ZN9NCompress6NBZip211CThreadInfoD2Ev@__ZN9NCompress6NBZip212CNsisDecoder14QueryInterfaceERK4GUIDPPv@__ZN9NCompress6NBZip212CNsisDecoder6AddRefEv@__ZN9NCompress6NBZip212CNsisDecoder7ReleaseEv@__ZN9NCompress6NBZip212CNsisDecoderD0Ev@__ZN9NCompress6NBZip212CNsisDecoderD1Ev@__ZN9NCompress6NBZip212CNsisDecoderD2Ev@__ZN9NCompress6NBZip26CStateD2Ev@__ZN9NCompress6NBZip28CDecoder14QueryInterfaceERK4GUIDPPv@__ZN9NCompress6NBZip28CDecoder6AddRefEv@__ZN9NCompress6NBZip28CDecoder7ReleaseEv@__ZN9NCompress6NBZip28CEncoder14QueryInterfaceERK4GUIDPPv@__ZN9NCompress6NBZip28CEncoder6AddRefEv@__ZN9NCompress6NBZip28CEncoder7ReleaseEv@__ZN9NCompress6NLzma28CDecoder14QueryInterfaceERK4GUIDPPv@__ZN9NCompress6NLzma28CDecoder6AddRefEv@__ZN9NCompress6NLzma28CDecoder7ReleaseEv@__ZN9NCompress6NLzma28CEncoder14QueryInterfaceERK4GUIDPPv@__ZN9NCompress6NLzma28CEncoder6AddRefEv@__ZN9NCompress6NLzma28CEncoder7ReleaseEv@__ZN9NCompress7NShrink8CDecoder14QueryInterfaceERK4GUIDPPv@__ZN9NCompress7NShrink8CDecoder6AddRefEv@__ZN9NCompress7NShrink8CDecoder7ReleaseEv@__ZN9NCompress7NShrink8CDecoderD0Ev@__ZN9NCompress7NShrink8CDecoderD1Ev@__ZN9NCompress8NDeflate8NDecoder11CCOMCoder64D0EvШ@__ZN9NCompress8NDeflate8NDecoder11CCOMCoder64D1Ev@__ZN9NCompress8NDeflate8NDecoder6CCoder14QueryInterfaceERK4GUIDPPv)$@__ZN9NCompress8NDeflate8NDecoder6CCoder18ReadAligned_UInt16Ev@__ZN9NCompress8NDeflate8NDecoder6CCoder6AddRefEv)$@__ZN9NCompress8NDeflate8NDecoder6CCoder7ReleaseEv$@__ZN9NCompress8NDeflate8NDecoder6CCoderD0Ev@__ZN9NCompress8NDeflate8NDecoder6CCoderD1Ev@__ZN9NCompress8NDeflate8NDecoder9CCOMCoderD0Ev@__ZN9NCompress8NDeflate8NDecoder9CCOMCoderD1Ev@__ZN9NCompress8NDeflate8NEncoder11CCOMCoder6414QueryInterfaceERK4GUIDPPv@__ZN9NCompress8NDeflate8NEncoder11CCOMCoder646AddRefEv@__ZN9NCompress8NDeflate8NEncoder11CCOMCoder647ReleaseEv@__ZN9NCompress8NDeflate8NEncoder11CCOMCoder64D0Ev@__ZN9NCompress8NDeflate8NEncoder11CCOMCoder64D1Ev@__ZN9NCompress8NDeflate8NEncoder9CCOMCoder14QueryInterfaceERK4GUIDPPv@__ZN9NCompress8NDeflate8NEncoder9CCOMCoder6AddRefEv@__ZN9NCompress8NDeflate8NEncoder9CCOMCoder7ReleaseEv@__ZN9NCompress8NDeflate8NEncoder9CCOMCoderD0Ev@__ZN9NCompress8NDeflate8NEncoder9CCOMCoderD1Ev@__ZN9NCompress8NHuffman8CDecoderILi15ELj19EE12DecodeSymbolIN5NBitl8CDecoderI9CInBufferEEEEjPT_@__ZN9NCompress8NHuffman8CDecoderILi15ELj19EE14SetCodeLengthsEPKh@__ZN9NCompress8NHuffman8CDecoderILi15ELj288EE12DecodeSymbolIN5NBitl8CDecoderI9CInBufferEEEEjPT_@__ZN9NCompress8NHuffman8CDecoderILi15ELj288EE14SetCodeLengthsEPKh@__ZN9NCompress8NHuffman8CDecoderILi15ELj32EE12DecodeSymbolIN5NBitl8CDecoderI9CInBufferEEEEjPT_@__ZN9NCompress8NHuffman8CDecoderILi15ELj32EE14SetCodeLengthsEPKh@__ZN9NCompress8NHuffman8CDecoderILi16ELj20EE12DecodeSymbolINS_4NLzx10NBitStream8CDecoderEEEjPT_(@__ZN9NCompress8NHuffman8CDecoderILi16ELj20EE14SetCodeLengthsEPKh@__ZN9NCompress8NHuffman8CDecoderILi16ELj249EE12DecodeSymbolINS_4NLzx10NBitStream8CDecoderEEEjPT_@__ZN9NCompress8NHuffman8CDecoderILi16ELj249EE14SetCodeLengthsEPKh@__ZN9NCompress8NHuffman8CDecoderILi16ELj656EE12DecodeSymbolINS_4NLzx10NBitStream8CDecoderEEEjPT_@__ZN9NCompress8NHuffman8CDecoderILi16ELj656EE14SetCodeLengthsEPKh@__ZN9NCompress8NHuffman8CDecoderILi16ELj8EE12DecodeSymbolINS_4NLzx10NBitStream8CDecoderEEEjPT_@__ZN9NCompress8NHuffman8CDecoderILi16ELj8EE14SetCodeLengthsEPKh@__ZN9NCompress8NHuffman8CDecoderILi20ELj258EE12DecodeSymbolIN5NBitm8CDecoderI9CInBufferEEEEjPT_@__ZN9NCompress8NHuffman8CDecoderILi20ELj258EE14SetCodeLengthsEPKh@__ZN9NCompress8NImplode8NDecoder6CCoder14QueryInterfaceERK4GUIDPPv@__ZN9NCompress8NImplode8NDecoder6CCoder6AddRefEv@__ZN9NCompress8NImplode8NDecoder6CCoder7ReleaseEv@__ZN9NCompress8NImplode8NDecoder6CCoderD0Ev@__ZN9NCompress8NImplode8NDecoder6CCoderD1Ev@__ZN9NCompress8NImplode8NDecoder6CCoderD2Ev@__ZN9NCompress8NPpmdZip8CDecoder14QueryInterfaceERK4GUIDPPv@__ZN9NCompress8NPpmdZip8CDecoder6AddRefEv@__ZN9NCompress8NPpmdZip8CDecoder7ReleaseEv@__ZN9NCompress8NPpmdZip8CEncoder14QueryInterfaceERK4GUIDPPv(@__ZN9NCompress8NPpmdZip8CEncoder6AddRefEv@__ZN9NCompress8NPpmdZip8CEncoder7ReleaseEv@__ZN9NCompress8NQuantum11NRangeCoder13CModelDecoder6DecodeEPNS1_8CDecoderE@__ZN9NCompress8NQuantum11NRangeCoder8CDecoder6DecodeEjjj@__ZN9NCompress8NQuantum8CDecoder14QueryInterfaceERK4GUIDPPv@__ZN9NCompress8NQuantum8CDecoder6AddRefEv@__ZN9NCompress8NQuantum8CDecoder7ReleaseEv@__ZN9NCompress8NQuantum8CDecoderD0Ev@__ZN9NCompress8NQuantum8CDecoderD1Ev@__ZN9NWildcard11CCensorNodeC2ERKS0_@__ZN9NWildcard11CCensorNodeD2Ev@__ZNK12CMethodProps19Get_Lzma_NumThreadsERb@__ZNK7CCodecs15CreateInArchiveEjR9CMyComPtrI10IInArchiveE@__ZNK7CCodecs16CreateOutArchiveEjR9CMyComPtrI11IOutArchiveEH@__ZTI10IInArchiveY @__ZTI10IOutStream|@__ZTI11CVirtThreade @__ZTI11IOutArchive[  @__ZTI12CBenchBufferة@__ZTI13CMyUnknownImp)xxxxxxxxxxxxxxx xxxx @__ZTI13CNewException@__ZTI13CReferenceBufQ@__ZTI14CBenchInfoCalc@__ZTI14IBenchCallback@__ZTI14ICompressCoderx@__ZTI14ISetProperties[  @__ZTI14IStreamGetSize^@__ZTI15IArchiveOpenSeqZ@__ZTI15ICompressCoder2na@__ZTI15ICompressFilterط  !@__ZTI15IHashCallbackUIȃ@__ZTI15IOpenCallbackUI@__ZTI15IOutStreamFlush@__ZTI16CInFileStreamVol@__ZTI16CSystemException1@__ZTI17ICryptoPropertiesh@__ZTI17IUpdateCallbackUI@__ZTI18CInBufferException@__ZTI18ICryptoSetPassword@a @__ZTI18IExtractCallbackUI@__ZTI18IUpdateCallbackUI2@__ZTI19COutBufferException@__ZTI19IArchiveGetRawProps)Z@__ZTI19IBenchPrintCallbackȀЀ@__ZTI19ICompressSetBufSize+@__ZTI19ICompressSetCoderMtȲ@__ZTI19IInArchiveGetStreamj@__ZTI19ISequentialInStreamR1  4@__ZTI20CArcCmdLineException@__ZTI20CCallbackConsoleBase @__ZTI20IArchiveGetRootProps@__ZTI20IArchiveOpenCallback @__ZTI20ICompressSetInStream@__ZTI20IEnumDirItemCallback@__ZTI20ISequentialOutStream!80 x90 @__ZTI21CBenchRandomGenerator@__ZTI21ICompressProgressInfoJ  xxq  @__ZTI21ICompressSetOutStream@__ZTI22IArchiveUpdateCallback@__ZTI22ICryptoGetTextPassword[ @__ZTI22ICryptoResetInitVectorb@__ZTI23IArchiveExtractCallback@__ZTI23IArchiveUpdateCallback2@__ZTI23ICryptoGetTextPassword2؂@__ZTI25CEnumDirItemCallback_Hash@__ZTI25ICompressGetSubStreamSizeػW@__ZTI25ICompressSetOutStreamSize@__ZTI26CEnumDirItemUpdateCallback@__ZTI26IArchiveOpenVolumeCallback@__ZTI27ICompressSetCoderProperties  J@__ZTI29IArchiveOpenSetSubArchiveName@__ZTI29ICompressWriteCoderProperties؅>  @__ZTI29IFolderArchiveExtractCallback@__ZTI30ICompressSetDecoderProperties2? @__ZTI33ICompressGetInStreamProcessedSize@__ZTI6CDelta@__ZTI7AString@__ZTI7CCodecsz@__ZTI7IHasherH@__ZTI7UStringc@__ZTI8IGetPropp@__ZTI8IUnknownX @__ZTI9CBranch86z@__ZTI9IHashCalc@__ZTI9IInStreamj @__ZTI9IProgress @__ZTIN11NCoderMixer11CCoderInfo2E@__ZTIN11NCoderMixer12CCoderMixer2EȐn@__ZTIN13NConsoleClose19CCtrlBreakExceptionE@__ZTIN7NCrypto10NZipStrong8CDecoderEA@__ZTIN7NCrypto14CAesCbcDecoderEЂ@__ZTIN7NCrypto14CAesCbcEncoderE@__ZTIN7NCrypto7NSevenZ5CBaseE@__ZTIN8NArchive17CMultiMethodPropsE@__ZTIN8NArchive3N7z11COutHandlerE@__ZTIN8NArchive3N7z19CInArchiveExceptionE+@__ZTIN8NArchive3N7z28CUnsupportedFeatureExceptionE@__ZTIN8NArchive3NXz12IDecodeStateE>u@__ZTIN8NArchive3NXz9CStatInfoE@__ZTIN8NArchive4NCab23CUnexpectedEndExceptionE@__ZTIN8NArchive4NZip12CUnexpectEndE@__ZTIN8NArchive4NZip13CProgressVirtEFy@__ZTIN8NWindows16NSynchronization14CBaseEventWFMOE @__ZTIN8NWindows16NSynchronization14CSemaphoreWFMOE@__ZTIN8NWindows16NSynchronization15CBaseHandleWFMOE @__ZTIN8NWindows16NSynchronization19CAutoResetEventWFMOE@__ZTIN8NWindows16NSynchronization21CManualResetEventWFMOE@__ZTIN8NWindows5NFile3NIO7CInFileE@__ZTIN8NWindows5NFile3NIO8COutFileE!@__ZTIN9NCompress8NDeflate8NDecoder11CCOMCoder64E@__ZTIN9NCompress8NDeflate8NDecoder9CCOMCoderE@__ZTIN9NCompress8NDeflate8NEncoder6CCoderE@__ZTIN9NCompress8NImplode8NDecoder10CExceptionE@__ZTIN9NExitCode5EEnumE@__ZTS10IInArchive&@__ZTS10IOutStream @__ZTS11CVirtThread@__ZTS11IOutArchive@__ZTS12CBenchBuffer@@__ZTS13CMyUnknownImp@__ZTS13CNewExceptionY@__ZTS13CReferenceBuf@__ZTS14CBenchInfoCalc@__ZTS14IBenchCallback@__ZTS14ICompressCoder@__ZTS14ISetProperties@__ZTS14IStreamGetSize#@__ZTS15IArchiveOpenSeq@__ZTS15ICompressCoder2@__ZTS15ICompressFilter@__ZTS15IHashCallbackUI5@__ZTS15IOpenCallbackUI@__ZTS15IOutStreamFlush@__ZTS16CInFileStreamVol@__ZTS16CSystemException@__ZTS17ICryptoProperties@__ZTS17IUpdateCallbackUI8@__ZTS18CInBufferException@__ZTS18ICryptoSetPassword@__ZTS18IExtractCallbackUI3@__ZTS18IUpdateCallbackUI2@__ZTS19COutBufferException@__ZTS19IArchiveGetRawProps@__ZTS19IBenchPrintCallbackK@__ZTS19ICompressSetBufSize@__ZTS19ICompressSetCoderMt@__ZTS19IInArchiveGetStream@__ZTS19ISequentialInStream@__ZTS20CArcCmdLineException>@__ZTS20CCallbackConsoleBase@__ZTS20IArchiveGetRootProps@__ZTS20IArchiveOpenCallback@__ZTS20ICompressSetInStream@__ZTS20IEnumDirItemCallback5@__ZTS20ISequentialOutStream@__ZTS21CBenchRandomGeneratorD@__ZTS21ICompressProgressInfo@__ZTS21ICompressSetOutStream@__ZTS22IArchiveUpdateCallback#@__ZTS22ICryptoGetTextPassword@__ZTS22ICryptoResetInitVector@__ZTS23IArchiveExtractCallback@__ZTS23IArchiveUpdateCallback2 @__ZTS23ICryptoGetTextPassword28@__ZTS25CEnumDirItemCallback_Hash@__ZTS25ICompressGetSubStreamSize@__ZTS25ICompressSetOutStreamSize@__ZTS26CEnumDirItemUpdateCallback8@__ZTS26IArchiveOpenVolumeCallback@__ZTS27ICompressSetCoderProperties@__ZTS29IArchiveOpenSetSubArchiveName.@__ZTS29ICompressWriteCoderProperties@__ZTS29IFolderArchiveExtractCallback'@__ZTS30ICompressSetDecoderProperties2@__ZTS33ICompressGetInStreamProcessedSize@__ZTS6CDelta,@__ZTS7AString@__ZTS7CCodecs@__ZTS7IHasher@__ZTS7UString@__ZTS8IGetProp(@__ZTS8IUnknown@__ZTS9CBranch862@__ZTS9IHashCalc@__ZTS9IInStream@__ZTS9IProgress7@__ZTSN11NCoderMixer11CCoderInfo2Eо@__ZTSN11NCoderMixer12CCoderMixer2E@__ZTSN13NConsoleClose19CCtrlBreakExceptionEY@__ZTSN7NCrypto10NZipStrong8CDecoderE@__ZTSN7NCrypto14CAesCbcDecoderE@__ZTSN7NCrypto14CAesCbcEncoderE@__ZTSN7NCrypto7NSevenZ5CBaseE@__ZTSN8NArchive17CMultiMethodPropsE@__ZTSN8NArchive3N7z11COutHandlerE@__ZTSN8NArchive3N7z19CInArchiveExceptionE@__ZTSN8NArchive3N7z28CUnsupportedFeatureExceptionE@__ZTSN8NArchive3NXz12IDecodeStateE@__ZTSN8NArchive3NXz9CStatInfoE@__ZTSN8NArchive4NCab23CUnexpectedEndExceptionE@__ZTSN8NArchive4NZip12CUnexpectEndE@__ZTSN8NArchive4NZip13CProgressVirtE@__ZTSN8NWindows16NSynchronization14CBaseEventWFMOE@__ZTSN8NWindows16NSynchronization14CSemaphoreWFMOE'@__ZTSN8NWindows16NSynchronization15CBaseHandleWFMOE@__ZTSN8NWindows16NSynchronization19CAutoResetEventWFMOE&@__ZTSN8NWindows16NSynchronization21CManualResetEventWFMOE@__ZTSN8NWindows5NFile3NIO7CInFileE@__ZTSN8NWindows5NFile3NIO8COutFileE!@__ZTSN9NCompress8NDeflate8NDecoder11CCOMCoder64E @__ZTSN9NCompress8NDeflate8NDecoder9CCOMCoderE@__ZTSN9NCompress8NDeflate8NEncoder6CCoderE@__ZTSN9NCompress8NImplode8NDecoder10CExceptionE$@__ZTSN9NExitCode5EEnumE@__ZTV10IInArchive@__ZTV11CVirtThread@__ZTV11IOutArchive@__ZTV12CBenchBuffer@__ZTV13CReferenceBuf@__ZTV14ICompressCoder@__ZTV14ISetProperties@__ZTV15IArchiveOpenSeq@__ZTV15ICompressFilter@__ZTV16CInFileStreamVol@__ZTV18ICryptoSetPassword@__ZTV19IArchiveGetRawProps@__ZTV21CBenchRandomGenerator@__ZTV25CEnumDirItemCallback_Hash@__ZTV26CEnumDirItemUpdateCallback@__ZTV27ICompressSetCoderProperties@__ZTV7CCodecs@__ZTVN7NCrypto10NZipStrong8CDecoderE@__ZTVN7NCrypto14CAesCbcDecoderE@__ZTVN7NCrypto14CAesCbcEncoderE@__ZTVN8NWindows16NSynchronization14CBaseEventWFMOE@__ZTVN8NWindows16NSynchronization14CSemaphoreWFMOE@__ZTVN8NWindows16NSynchronization15CBaseHandleWFMOE@__ZTVN8NWindows16NSynchronization19CAutoResetEventWFMOE@__ZTVN8NWindows16NSynchronization21CManualResetEventWFMOE@__ZTVN8NWindows5NFile3NIO7CInFileE@__ZTVN8NWindows5NFile3NIO8COutFileE@__ZTVN9NCompress8NDeflate8NDecoder11CCOMCoder64E@__ZTVN9NCompress8NDeflate8NDecoder9CCOMCoderE@__ZThn152_N7NCrypto7NSevenZ8CDecoder14QueryInterfaceERK4GUIDPPv@__ZThn152_N7NCrypto7NSevenZ8CDecoder6AddRefEv@__ZThn152_N7NCrypto7NSevenZ8CDecoder7ReleaseEv@__ZThn152_N7NCrypto7NSevenZ8CDecoderD0Ev@__ZThn152_N7NCrypto7NSevenZ8CDecoderD1Ev@__ZThn152_N7NCrypto7NSevenZ8CEncoder14QueryInterfaceERK4GUIDPPv@__ZThn152_N7NCrypto7NSevenZ8CEncoder6AddRefEv@__ZThn152_N7NCrypto7NSevenZ8CEncoder7ReleaseEv@__ZThn152_N7NCrypto7NSevenZ8CEncoderD0Ev@__ZThn152_N7NCrypto7NSevenZ8CEncoderD1Ev@__ZThn160_N7NCrypto7NSevenZ8CEncoder14QueryInterfaceERK4GUIDPPv @__ZThn160_N7NCrypto7NSevenZ8CEncoder6AddRefEv@__ZThn160_N7NCrypto7NSevenZ8CEncoder7ReleaseEv@__ZThn160_N7NCrypto7NSevenZ8CEncoderD0Ev@__ZThn160_N7NCrypto7NSevenZ8CEncoderD1Ev@__ZThn16_N12CFilterCoder14QueryInterfaceERK4GUIDPPv@__ZThn16_N12CFilterCoder6AddRefEv@__ZThn16_N12CFilterCoder7ReleaseEv@__ZThn16_N13CDeltaEncoder14QueryInterfaceERK4GUIDPPvC@__ZThn16_N13CDeltaEncoder6AddRefEv@__ZThn16_N13CDeltaEncoder7ReleaseEv@__ZThn16_N13CDeltaEncoderD0Ev@__ZThn16_N13CDeltaEncoderD1Ev@__ZThn16_N16COpenCallbackImp14QueryInterfaceERK4GUIDPPvG@__ZThn16_N16COpenCallbackImp17SetSubArchiveNameEPKw @__ZThn16_N16COpenCallbackImp6AddRefEv@__ZThn16_N16COpenCallbackImp7ReleaseEv@__ZThn16_N16COpenCallbackImpD0Ev@__ZThn16_N16COpenCallbackImpD1Ev@__ZThn16_N22CArchiveUpdateCallback14QueryInterfaceERK4GUIDPPv@__ZThn16_N22CArchiveUpdateCallback6AddRefEv@__ZThn16_N22CArchiveUpdateCallback7ReleaseEv@__ZThn16_N22CArchiveUpdateCallbackD0Ev@__ZThn16_N22CArchiveUpdateCallbackD1Ev@__ZThn16_N23CArchiveExtractCallback14QueryInterfaceERK4GUIDPPv@__ZThn16_N23CArchiveExtractCallback6AddRefEv@__ZThn16_N23CArchiveExtractCallback7ReleaseEv@__ZThn16_N23CArchiveExtractCallbackD0Ev@__ZThn16_N23CArchiveExtractCallbackD1Ev@__ZThn16_N7NCrypto10NZipStrong10CBaseCoderD0Ev@__ZThn16_N7NCrypto10NZipStrong10CBaseCoderD1Ev@__ZThn16_N7NCrypto10NZipStrong8CDecoder14QueryInterfaceERK4GUIDPPv@__ZThn16_N7NCrypto10NZipStrong8CDecoder6AddRefEv@__ZThn16_N7NCrypto10NZipStrong8CDecoder7ReleaseEv@__ZThn16_N7NCrypto10NZipStrong8CDecoderD0Ev@__ZThn16_N7NCrypto10NZipStrong8CDecoderD1Ev@__ZThn16_N7NCrypto12CAesCbcCoder14QueryInterfaceERK4GUIDPPv @__ZThn16_N7NCrypto12CAesCbcCoder6AddRefEv @__ZThn16_N7NCrypto12CAesCbcCoder7ReleaseEv @__ZThn16_N7NCrypto12CAesCbcCoderD0Ev@__ZThn16_N7NCrypto12CAesCbcCoderD1Ev@__ZThn16_N7NCrypto14CAesCbcDecoderD0Ev@__ZThn16_N7NCrypto14CAesCbcDecoderD1Ev@__ZThn16_N7NCrypto14CAesCbcEncoderD0Ev@__ZThn16_N7NCrypto14CAesCbcEncoderD1Ev@__ZThn16_N8NArchive3N7z8CHandler14QueryInterfaceERK4GUIDPPv"@__ZThn16_N8NArchive3N7z8CHandler6AddRefEv@__ZThn16_N8NArchive3N7z8CHandler7ReleaseEv@__ZThn16_N8NArchive3N7z8CHandlerD0Ev@__ZThn16_N8NArchive3N7z8CHandlerD1Ev@__ZThn16_N8NArchive3NGz8CHandler14QueryInterfaceERK4GUIDPPv@__ZThn16_N8NArchive3NGz8CHandler6AddRefEv@__ZThn16_N8NArchive3NGz8CHandler7ReleaseEv@__ZThn16_N8NArchive3NGz8CHandlerD0Ev@__ZThn16_N8NArchive3NGz8CHandlerD1Ev@__ZThn16_N8NArchive3NXz8CHandler14QueryInterfaceERK4GUIDPPv@__ZThn16_N8NArchive3NXz8CHandler6AddRefEv@__ZThn16_N8NArchive3NXz8CHandler7ReleaseEv@__ZThn16_N8NArchive3NXz8CHandlerD0Ev@__ZThn16_N8NArchive3NXz8CHandlerD1Ev@__ZThn16_N8NArchive4NBz28CHandler14QueryInterfaceERK4GUIDPPv@__ZThn16_N8NArchive4NBz28CHandler6AddRefEv@__ZThn16_N8NArchive4NBz28CHandler7ReleaseEv@__ZThn16_N8NArchive4NBz28CHandlerD0Ev@__ZThn16_N8NArchive4NBz28CHandlerD1Ev@__ZThn16_N8NArchive4NTar8CHandler14QueryInterfaceERK4GUIDPPv@__ZThn16_N8NArchive4NTar8CHandler6AddRefEv@__ZThn16_N8NArchive4NTar8CHandler7ReleaseEv@__ZThn16_N8NArchive4NTar8CHandlerD0Ev@__ZThn16_N8NArchive4NTar8CHandlerD1Ev@__ZThn16_N8NArchive4NZip8CHandler14QueryInterfaceERK4GUIDPPv@__ZThn16_N8NArchive4NZip8CHandler6AddRefEv@__ZThn16_N8NArchive4NZip8CHandler7ReleaseEv@__ZThn16_N8NArchive4NZip8CHandlerD0Ev@__ZThn16_N8NArchive4NZip8CHandlerD1Ev@__ZThn16_N9NCompress5NLzma8CDecoder14QueryInterfaceERK4GUIDPPvb@__ZThn16_N9NCompress5NLzma8CDecoder6AddRefEv@__ZThn16_N9NCompress5NLzma8CDecoder7ReleaseEv@__ZThn16_N9NCompress5NLzma8CEncoder14QueryInterfaceERK4GUIDPPv@__ZThn16_N9NCompress5NLzma8CEncoder6AddRefEv@__ZThn16_N9NCompress5NLzma8CEncoder7ReleaseEv@__ZThn16_N9NCompress5NPpmd8CDecoder14QueryInterfaceERK4GUIDPPv@__ZThn16_N9NCompress5NPpmd8CDecoder6AddRefEv@__ZThn16_N9NCompress5NPpmd8CDecoder7ReleaseEv@__ZThn16_N9NCompress5NPpmd8CEncoder14QueryInterfaceERK4GUIDPPv@__ZThn16_N9NCompress5NPpmd8CEncoder6AddRefEv@__ZThn16_N9NCompress5NPpmd8CEncoder7ReleaseEv@__ZThn16_N9NCompress6NBZip212CNsisDecoder14QueryInterfaceERK4GUIDPPv@__ZThn16_N9NCompress6NBZip212CNsisDecoder6AddRefEv@__ZThn16_N9NCompress6NBZip212CNsisDecoder7ReleaseEv@__ZThn16_N9NCompress6NBZip212CNsisDecoderD0Ev@__ZThn16_N9NCompress6NBZip212CNsisDecoderD1Ev@__ZThn16_N9NCompress6NBZip28CEncoder14QueryInterfaceERK4GUIDPPv@__ZThn16_N9NCompress6NBZip28CEncoder6AddRefEv@__ZThn16_N9NCompress6NBZip28CEncoder7ReleaseEv@__ZThn16_N9NCompress6NLzma28CDecoder14QueryInterfaceERK4GUIDPPv%@__ZThn16_N9NCompress6NLzma28CDecoder6AddRefEv@__ZThn16_N9NCompress6NLzma28CDecoder7ReleaseEv@__ZThn16_N9NCompress6NLzma28CEncoder14QueryInterfaceERK4GUIDPPv@__ZThn16_N9NCompress6NLzma28CEncoder6AddRefEv@__ZThn16_N9NCompress6NLzma28CEncoder7ReleaseEv@__ZThn16_N9NCompress8NDeflate8NDecoder11CCOMCoder64D0Evؾ@__ZThn16_N9NCompress8NDeflate8NDecoder11CCOMCoder64D1Ev@__ZThn16_N9NCompress8NDeflate8NDecoder6CCoder14QueryInterfaceERK4GUIDPPv$@__ZThn16_N9NCompress8NDeflate8NDecoder6CCoder6AddRefEv$@__ZThn16_N9NCompress8NDeflate8NDecoder6CCoder7ReleaseEv$@__ZThn16_N9NCompress8NDeflate8NDecoder6CCoderD0Ev@__ZThn16_N9NCompress8NDeflate8NDecoder6CCoderD1Ev@__ZThn16_N9NCompress8NDeflate8NDecoder9CCOMCoderD0Ev@__ZThn16_N9NCompress8NDeflate8NDecoder9CCOMCoderD1Ev@__ZThn24_N12CFilterCoder14QueryInterfaceERK4GUIDPPv@__ZThn24_N12CFilterCoder6AddRefEv@__ZThn24_N12CFilterCoder7ReleaseEv@__ZThn24_N16COpenCallbackImp14QueryInterfaceERK4GUIDPPv@__ZThn24_N16COpenCallbackImp6AddRefEv@__ZThn24_N16COpenCallbackImp7ReleaseEv@__ZThn24_N16COpenCallbackImpD0Ev@__ZThn24_N16COpenCallbackImpD1Ev@__ZThn24_N22CArchiveUpdateCallback14QueryInterfaceERK4GUIDPPv@__ZThn24_N22CArchiveUpdateCallback6AddRefEv@__ZThn24_N22CArchiveUpdateCallback7ReleaseEv@__ZThn24_N22CArchiveUpdateCallbackD0Ev@__ZThn24_N22CArchiveUpdateCallbackD1Ev@__ZThn24_N8NArchive3N7z8CHandler14QueryInterfaceERK4GUIDPPv@__ZThn24_N8NArchive3N7z8CHandler6AddRefEv@__ZThn24_N8NArchive3N7z8CHandler7ReleaseEv@__ZThn24_N8NArchive3N7z8CHandlerD0Ev@__ZThn24_N8NArchive3N7z8CHandlerD1Ev@__ZThn24_N8NArchive3NGz8CHandler14QueryInterfaceERK4GUIDPPv@__ZThn24_N8NArchive3NGz8CHandler6AddRefEv@__ZThn24_N8NArchive3NGz8CHandler7ReleaseEv@__ZThn24_N8NArchive3NGz8CHandlerD0Ev@__ZThn24_N8NArchive3NGz8CHandlerD1Ev@__ZThn24_N8NArchive3NXz8CHandler14QueryInterfaceERK4GUIDPPv@__ZThn24_N8NArchive3NXz8CHandler6AddRefEv@__ZThn24_N8NArchive3NXz8CHandler7ReleaseEv@__ZThn24_N8NArchive3NXz8CHandlerD0Ev@__ZThn24_N8NArchive3NXz8CHandlerD1Ev@__ZThn24_N8NArchive4NBz28CHandler14QueryInterfaceERK4GUIDPPv@__ZThn24_N8NArchive4NBz28CHandler6AddRefEv@__ZThn24_N8NArchive4NBz28CHandler7ReleaseEv@__ZThn24_N8NArchive4NBz28CHandlerD0Ev@__ZThn24_N8NArchive4NBz28CHandlerD1Ev@__ZThn24_N8NArchive4NTar8CHandler14QueryInterfaceERK4GUIDPPv@__ZThn24_N8NArchive4NTar8CHandler6AddRefEv@__ZThn24_N8NArchive4NTar8CHandler7ReleaseEv@__ZThn24_N8NArchive4NTar8CHandlerD0Ev@__ZThn24_N8NArchive4NTar8CHandlerD1Ev@__ZThn24_N9NCompress5NLzma8CDecoder14QueryInterfaceERK4GUIDPPvs@__ZThn24_N9NCompress5NLzma8CDecoder6AddRefEv@__ZThn24_N9NCompress5NLzma8CDecoder7ReleaseEv@__ZThn24_N9NCompress5NPpmd8CDecoder14QueryInterfaceERK4GUIDPPv@__ZThn24_N9NCompress5NPpmd8CDecoder6AddRefEv@__ZThn24_N9NCompress5NPpmd8CDecoder7ReleaseEv@__ZThn24_N9NCompress6NLzma28CDecoder14QueryInterfaceERK4GUIDPPv@__ZThn24_N9NCompress6NLzma28CDecoder6AddRefEv@__ZThn24_N9NCompress6NLzma28CDecoder7ReleaseEv@__ZThn24_N9NCompress8NDeflate8NDecoder11CCOMCoder64D0Ev@__ZThn24_N9NCompress8NDeflate8NDecoder11CCOMCoder64D1Ev@__ZThn24_N9NCompress8NDeflate8NDecoder6CCoder14QueryInterfaceERK4GUIDPPv$@__ZThn24_N9NCompress8NDeflate8NDecoder6CCoder6AddRefEv$@__ZThn24_N9NCompress8NDeflate8NDecoder6CCoder7ReleaseEv$@__ZThn24_N9NCompress8NDeflate8NDecoder6CCoderD0Ev@__ZThn24_N9NCompress8NDeflate8NDecoder6CCoderD1Ev@__ZThn24_N9NCompress8NDeflate8NDecoder9CCOMCoderD0Ev@__ZThn24_N9NCompress8NDeflate8NDecoder9CCOMCoderD1Ev@__ZThn32_N12CFilterCoder14QueryInterfaceERK4GUIDPPv@__ZThn32_N12CFilterCoder6AddRefEv@__ZThn32_N12CFilterCoder7ReleaseEv@__ZThn32_N22CArchiveUpdateCallback14QueryInterfaceERK4GUIDPPv@__ZThn32_N22CArchiveUpdateCallback6AddRefEv@__ZThn32_N22CArchiveUpdateCallback7ReleaseEv@__ZThn32_N22CArchiveUpdateCallbackD0Ev@__ZThn32_N22CArchiveUpdateCallbackD1Ev@__ZThn32_N8NArchive4NTar8CHandler14QueryInterfaceERK4GUIDPPvи@__ZThn32_N8NArchive4NTar8CHandler6AddRefEv@__ZThn32_N8NArchive4NTar8CHandler7ReleaseEv@__ZThn32_N8NArchive4NTar8CHandlerD0Ev@__ZThn32_N8NArchive4NTar8CHandlerD1Ev@__ZThn32_N9NCompress5NLzma8CDecoder14QueryInterfaceERK4GUIDPPvs@__ZThn32_N9NCompress5NLzma8CDecoder6AddRefEv@__ZThn32_N9NCompress5NLzma8CDecoder7ReleaseEv@__ZThn32_N9NCompress5NPpmd8CDecoder14QueryInterfaceERK4GUIDPPv@__ZThn32_N9NCompress5NPpmd8CDecoder6AddRefEv@__ZThn32_N9NCompress5NPpmd8CDecoder7ReleaseEv@__ZThn32_N9NCompress6NLzma28CDecoder14QueryInterfaceERK4GUIDPPv@__ZThn32_N9NCompress6NLzma28CDecoder6AddRefEv@__ZThn32_N9NCompress6NLzma28CDecoder7ReleaseEv@__ZThn32_N9NCompress8NDeflate8NDecoder11CCOMCoder64D0Ev@__ZThn32_N9NCompress8NDeflate8NDecoder11CCOMCoder64D1Ev@__ZThn32_N9NCompress8NDeflate8NDecoder6CCoder14QueryInterfaceERK4GUIDPPv$@__ZThn32_N9NCompress8NDeflate8NDecoder6CCoder6AddRefEv$@__ZThn32_N9NCompress8NDeflate8NDecoder6CCoder7ReleaseEv$@__ZThn32_N9NCompress8NDeflate8NDecoder6CCoderD0Ev@__ZThn32_N9NCompress8NDeflate8NDecoder6CCoderD1Ev@__ZThn32_N9NCompress8NDeflate8NDecoder9CCOMCoderD0Ev@__ZThn32_N9NCompress8NDeflate8NDecoder9CCOMCoderD1Ev@__ZThn352_N7NCrypto10NZipStrong10CBaseCoderD0Evؒ@__ZThn352_N7NCrypto10NZipStrong10CBaseCoderD1Ev@__ZThn352_N7NCrypto10NZipStrong8CDecoder14QueryInterfaceERK4GUIDPPv@__ZThn352_N7NCrypto10NZipStrong8CDecoder6AddRefEv@__ZThn352_N7NCrypto10NZipStrong8CDecoder7ReleaseEv@__ZThn352_N7NCrypto10NZipStrong8CDecoderD0Ev@__ZThn352_N7NCrypto10NZipStrong8CDecoderD1Ev@__ZThn40_N12CFilterCoder14QueryInterfaceERK4GUIDPPv@__ZThn40_N12CFilterCoder6AddRefEv@__ZThn40_N12CFilterCoder7ReleaseEv@__ZThn40_N22CArchiveUpdateCallback14QueryInterfaceERK4GUIDPPv@__ZThn40_N22CArchiveUpdateCallback6AddRefEv@__ZThn40_N22CArchiveUpdateCallback7ReleaseEv@__ZThn40_N22CArchiveUpdateCallbackD0Ev@__ZThn40_N22CArchiveUpdateCallbackD1Ev@__ZThn40_N9NCompress5NLzma8CDecoder14QueryInterfaceERK4GUIDPPvج@__ZThn40_N9NCompress5NLzma8CDecoder6AddRefEv@__ZThn40_N9NCompress5NLzma8CDecoder7ReleaseEv@__ZThn40_N9NCompress6NLzma28CDecoder14QueryInterfaceERK4GUIDPPv@__ZThn40_N9NCompress6NLzma28CDecoder6AddRefEv@__ZThn40_N9NCompress6NLzma28CDecoder7ReleaseEv@__ZThn48_N12CFilterCoder14QueryInterfaceERK4GUIDPPv@__ZThn48_N12CFilterCoder6AddRefEv@__ZThn48_N12CFilterCoder7ReleaseEv@__ZThn56_N12CFilterCoder14QueryInterfaceERK4GUIDPPv(@__ZThn56_N12CFilterCoder6AddRefEv@__ZThn56_N12CFilterCoder7ReleaseEv@__ZThn584_N7NCrypto6NWzAes8CDecoder14QueryInterfaceERK4GUIDPPvq@__ZThn584_N7NCrypto6NWzAes8CDecoder6AddRefEv@__ZThn584_N7NCrypto6NWzAes8CDecoder7ReleaseEv@__ZThn584_N7NCrypto6NWzAes8CDecoderD0Ev@__ZThn584_N7NCrypto6NWzAes8CDecoderD1Ev@__ZThn64_N12CFilterCoder14QueryInterfaceERK4GUIDPPv@__ZThn64_N12CFilterCoder6AddRefEv@__ZThn64_N12CFilterCoder7ReleaseEv@__ZThn72_N12CFilterCoder14QueryInterfaceERK4GUIDPPv(@__ZThn72_N12CFilterCoder6AddRefEv@__ZThn72_N12CFilterCoder7ReleaseEv@__ZThn80_N12CFilterCoder14QueryInterfaceERK4GUIDPPv(@__ZThn80_N12CFilterCoder6AddRefEv@__ZThn80_N12CFilterCoder7ReleaseEv@__ZThn88_N12CFilterCoder14QueryInterfaceERK4GUIDPPv(@__ZThn88_N12CFilterCoder6AddRefEv@__ZThn88_N12CFilterCoder7ReleaseEv@__ZThn8_N10CCrcHasher14QueryInterfaceERK4GUIDPPv@__ZThn8_N10CCrcHasher6AddRefEv@__ZThn8_N10CCrcHasher7ReleaseEv@__ZThn8_N10CCrcHasherD0Ev@__ZThn8_N10CCrcHasherD1Ev@__ZThn8_N11NCoderMixer14CCoderMixer2MT12SetCoderInfoEjPPKyS3_@__ZThn8_N12CFilterCoder14QueryInterfaceERK4GUIDPPv9@__ZThn8_N12CFilterCoder6AddRefEv@__ZThn8_N12CFilterCoder7ReleaseEv@__ZThn8_N13CDeltaDecoder14QueryInterfaceERK4GUIDPPvF@__ZThn8_N13CDeltaDecoder6AddRefEv@__ZThn8_N13CDeltaDecoder7ReleaseEv@__ZThn8_N13CDeltaDecoderD0Ev@__ZThn8_N13CDeltaDecoderD1Ev@__ZThn8_N13CDeltaEncoder14QueryInterfaceERK4GUIDPPv@__ZThn8_N13CDeltaEncoder6AddRefEv@__ZThn8_N13CDeltaEncoder7ReleaseEv@__ZThn8_N13CDeltaEncoderD0Ev@__ZThn8_N13CDeltaEncoderD1Ev@__ZThn8_N13CInFileStream14QueryInterfaceERK4GUIDPPv^@__ZThn8_N13CInFileStream6AddRefEv^@__ZThn8_N13CInFileStream7ReleaseEv^@__ZThn8_N16CInFileStreamVolD0Ev@__ZThn8_N16CInFileStreamVolD1Ev@__ZThn8_N16COpenCallbackImp14QueryInterfaceERK4GUIDPPv@__ZThn8_N16COpenCallbackImp6AddRefEv@__ZThn8_N16COpenCallbackImp7ReleaseEv@__ZThn8_N16COpenCallbackImpD0Ev@__ZThn8_N16COpenCallbackImpD1Ev@__ZThn8_N19CBenchmarkOutStreamD0Ev@__ZThn8_N19CBenchmarkOutStreamD1Ev@__ZThn8_N22CArchiveUpdateCallback14QueryInterfaceERK4GUIDPPv@__ZThn8_N22CArchiveUpdateCallback6AddRefEv@__ZThn8_N22CArchiveUpdateCallback7ReleaseEv@__ZThn8_N22CArchiveUpdateCallbackD0Ev@__ZThn8_N22CArchiveUpdateCallbackD1Ev@__ZThn8_N23CArchiveExtractCallback14QueryInterfaceERK4GUIDPPv@__ZThn8_N23CArchiveExtractCallback6AddRefEv@__ZThn8_N23CArchiveExtractCallback7ReleaseEv@__ZThn8_N23CArchiveExtractCallbackD0Ev@__ZThn8_N23CArchiveExtractCallbackD1Ev@__ZThn8_N23CExtractCallbackConsole14QueryInterfaceERK4GUIDPPv$@__ZThn8_N23CExtractCallbackConsole6AddRefEv@__ZThn8_N23CExtractCallbackConsole7ReleaseEv@__ZThn8_N23CExtractCallbackConsoleD0Ev@__ZThn8_N23CExtractCallbackConsoleD1Ev@__ZThn8_N27CArchiveOpenCallback_Offset14QueryInterfaceERK4GUIDPPv@__ZThn8_N27CArchiveOpenCallback_Offset6AddRefEv@__ZThn8_N27CArchiveOpenCallback_Offset7ReleaseEv@__ZThn8_N27CArchiveOpenCallback_OffsetD0Ev@__ZThn8_N27CArchiveOpenCallback_OffsetD1Ev@__ZThn8_N29CSequentialInStreamSizeCount214QueryInterfaceERK4GUIDPPv@__ZThn8_N29CSequentialInStreamSizeCount26AddRefEv@__ZThn8_N29CSequentialInStreamSizeCount27ReleaseEv@__ZThn8_N29CSequentialInStreamSizeCount2D0Ev@__ZThn8_N29CSequentialInStreamSizeCount2D1Ev@__ZThn8_N32CExtractCallback_To_OpenCallback14QueryInterfaceERK4GUIDPPv@__ZThn8_N32CExtractCallback_To_OpenCallback6AddRefEv@__ZThn8_N32CExtractCallback_To_OpenCallback7ReleaseEv@__ZThn8_N32CExtractCallback_To_OpenCallbackD0Ev@__ZThn8_N32CExtractCallback_To_OpenCallbackD1Ev@__ZThn8_N7NCrypto10NZipStrong10CBaseCoderD0Ev@__ZThn8_N7NCrypto10NZipStrong10CBaseCoderD1Ev@__ZThn8_N7NCrypto10NZipStrong8CDecoder14QueryInterfaceERK4GUIDPPv@__ZThn8_N7NCrypto10NZipStrong8CDecoder6AddRefEv@__ZThn8_N7NCrypto10NZipStrong8CDecoder7ReleaseEv@__ZThn8_N7NCrypto10NZipStrong8CDecoderD0Ev@__ZThn8_N7NCrypto10NZipStrong8CDecoderD1Ev@__ZThn8_N7NCrypto12CAesCbcCoder14QueryInterfaceERK4GUIDPPv @__ZThn8_N7NCrypto12CAesCbcCoder6AddRefEv @__ZThn8_N7NCrypto12CAesCbcCoder7ReleaseEv @__ZThn8_N7NCrypto12CAesCbcCoderD0Ev@__ZThn8_N7NCrypto12CAesCbcCoderD1Ev@__ZThn8_N7NCrypto14CAesCbcDecoderD0Ev@__ZThn8_N7NCrypto14CAesCbcDecoderD1Ev@__ZThn8_N7NCrypto14CAesCbcEncoderD0Ev@__ZThn8_N7NCrypto14CAesCbcEncoderD1Ev@__ZThn8_N7NCrypto4NZip7CCipherD0Ev@__ZThn8_N7NCrypto4NZip7CCipherD1Ev@__ZThn8_N7NCrypto4NZip8CDecoder14QueryInterfaceERK4GUIDPPvp@__ZThn8_N7NCrypto4NZip8CDecoder6AddRefEv@__ZThn8_N7NCrypto4NZip8CDecoder7ReleaseEv@__ZThn8_N7NCrypto4NZip8CDecoderD0Ev@__ZThn8_N7NCrypto4NZip8CDecoderD1Ev@__ZThn8_N7NCrypto4NZip8CEncoder14QueryInterfaceERK4GUIDPPv@__ZThn8_N7NCrypto4NZip8CEncoder6AddRefEv@__ZThn8_N7NCrypto4NZip8CEncoder7ReleaseEv@__ZThn8_N7NCrypto4NZip8CEncoderD0Ev@__ZThn8_N7NCrypto4NZip8CEncoderD1Ev@__ZThn8_N7NCrypto6NWzAes10CBaseCoderD0Ev@__ZThn8_N7NCrypto6NWzAes10CBaseCoderD1Ev@__ZThn8_N7NCrypto6NWzAes8CDecoder14QueryInterfaceERK4GUIDPPvx@__ZThn8_N7NCrypto6NWzAes8CDecoder6AddRefEv@__ZThn8_N7NCrypto6NWzAes8CDecoder7ReleaseEv@__ZThn8_N7NCrypto6NWzAes8CDecoderD0Ev@__ZThn8_N7NCrypto6NWzAes8CDecoderD1Ev@__ZThn8_N7NCrypto6NWzAes8CEncoder14QueryInterfaceERK4GUIDPPv@__ZThn8_N7NCrypto6NWzAes8CEncoder6AddRefEv@__ZThn8_N7NCrypto6NWzAes8CEncoder7ReleaseEv@__ZThn8_N7NCrypto6NWzAes8CEncoderD0Ev@__ZThn8_N7NCrypto6NWzAes8CEncoderD1Ev@__ZThn8_N7NCrypto7NSevenZ10CBaseCoderD0Ev@__ZThn8_N7NCrypto7NSevenZ10CBaseCoderD1Ev@__ZThn8_N7NCrypto7NSevenZ8CDecoder14QueryInterfaceERK4GUIDPPv@__ZThn8_N7NCrypto7NSevenZ8CDecoder6AddRefEv@__ZThn8_N7NCrypto7NSevenZ8CDecoder7ReleaseEv@__ZThn8_N7NCrypto7NSevenZ8CDecoderD0Ev@__ZThn8_N7NCrypto7NSevenZ8CDecoderD1Ev@__ZThn8_N7NCrypto7NSevenZ8CEncoder14QueryInterfaceERK4GUIDPPv@__ZThn8_N7NCrypto7NSevenZ8CEncoder6AddRefEv@__ZThn8_N7NCrypto7NSevenZ8CEncoder7ReleaseEv@__ZThn8_N7NCrypto7NSevenZ8CEncoderD0Ev@__ZThn8_N7NCrypto7NSevenZ8CEncoderD1Ev@__ZThn8_N8NArchive3N7z15CFolderInStream14QueryInterfaceERK4GUIDPPv@__ZThn8_N8NArchive3N7z15CFolderInStream6AddRefEv@__ZThn8_N8NArchive3N7z15CFolderInStream7ReleaseEv@__ZThn8_N8NArchive3N7z15CFolderInStreamD0Ev@__ZThn8_N8NArchive3N7z15CFolderInStreamD1Ev@__ZThn8_N8NArchive3N7z16CFolderOutStream14QueryInterfaceERK4GUIDPPv@__ZThn8_N8NArchive3N7z16CFolderOutStream6AddRefEv@__ZThn8_N8NArchive3N7z16CFolderOutStream7ReleaseEv@__ZThn8_N8NArchive3N7z16CFolderOutStreamD0Ev@__ZThn8_N8NArchive3N7z16CFolderOutStreamD1Ev@__ZThn8_N8NArchive3N7z8CHandler14QueryInterfaceERK4GUIDPPv@__ZThn8_N8NArchive3N7z8CHandler6AddRefEv@__ZThn8_N8NArchive3N7z8CHandler7ReleaseEv@__ZThn8_N8NArchive3N7z8CHandlerD0Ev@__ZThn8_N8NArchive3N7z8CHandlerD1Ev@__ZThn8_N8NArchive3NGz8CHandler14QueryInterfaceERK4GUIDPPv@__ZThn8_N8NArchive3NGz8CHandler6AddRefEv@__ZThn8_N8NArchive3NGz8CHandler7ReleaseEv@__ZThn8_N8NArchive3NGz8CHandlerD0Ev@__ZThn8_N8NArchive3NGz8CHandlerD1Ev@__ZThn8_N8NArchive3NXz8CHandler14QueryInterfaceERK4GUIDPPv@__ZThn8_N8NArchive3NXz8CHandler6AddRefEv@__ZThn8_N8NArchive3NXz8CHandler7ReleaseEv@__ZThn8_N8NArchive3NXz8CHandlerD0Ev@__ZThn8_N8NArchive3NXz8CHandlerD1Ev@__ZThn8_N8NArchive4NBz28CHandler14QueryInterfaceERK4GUIDPPv@__ZThn8_N8NArchive4NBz28CHandler6AddRefEv@__ZThn8_N8NArchive4NBz28CHandler7ReleaseEv@__ZThn8_N8NArchive4NBz28CHandlerD0Ev@__ZThn8_N8NArchive4NBz28CHandlerD1Ev@__ZThn8_N8NArchive4NTar8CHandler14QueryInterfaceERK4GUIDPPv@__ZThn8_N8NArchive4NTar8CHandler6AddRefEv@__ZThn8_N8NArchive4NTar8CHandler7ReleaseEv@__ZThn8_N8NArchive4NTar8CHandlerD0Ev@__ZThn8_N8NArchive4NTar8CHandlerD1Ev@__ZThn8_N8NArchive4NZip12CLzmaEncoder14QueryInterfaceERK4GUIDPPv@__ZThn8_N8NArchive4NZip12CLzmaEncoder6AddRefEv@__ZThn8_N8NArchive4NZip12CLzmaEncoder7ReleaseEv@__ZThn8_N8NArchive4NZip12CLzmaEncoderD0Ev@__ZThn8_N8NArchive4NZip12CLzmaEncoderD1Ev@__ZThn8_N8NArchive4NZip8CHandler14QueryInterfaceERK4GUIDPPv@__ZThn8_N8NArchive4NZip8CHandler6AddRefEv@__ZThn8_N8NArchive4NZip8CHandler7ReleaseEv@__ZThn8_N8NArchive4NZip8CHandlerD0Ev@__ZThn8_N8NArchive4NZip8CHandlerD1Ev@__ZThn8_N8NArchive5NLzma8CHandler14QueryInterfaceERK4GUIDPPv@__ZThn8_N8NArchive5NLzma8CHandler6AddRefEv@__ZThn8_N8NArchive5NLzma8CHandler7ReleaseEv@__ZThn8_N8NArchive5NLzma8CHandlerD0Ev@__ZThn8_N8NArchive5NLzma8CHandlerD1Ev@__ZThn8_N8NArchive5NPpmd8CHandler14QueryInterfaceERK4GUIDPPv@__ZThn8_N8NArchive5NPpmd8CHandler6AddRefEv@__ZThn8_N8NArchive5NPpmd8CHandler7ReleaseEv@__ZThn8_N8NArchive5NPpmd8CHandlerD0Ev@__ZThn8_N8NArchive5NPpmd8CHandlerD1Ev@__ZThn8_N8NArchive6NSplit8CHandler14QueryInterfaceERK4GUIDPPv@__ZThn8_N8NArchive6NSplit8CHandler6AddRefEv@__ZThn8_N8NArchive6NSplit8CHandler7ReleaseEv@__ZThn8_N8NArchive6NSplit8CHandlerD0Ev@__ZThn8_N8NArchive6NSplit8CHandlerD1Ev@__ZThn8_N8NArchive7NParser8CHandler14QueryInterfaceERK4GUIDPPv@__ZThn8_N8NArchive7NParser8CHandler6AddRefEv@__ZThn8_N8NArchive7NParser8CHandler7ReleaseEv@__ZThn8_N8NArchive7NParser8CHandlerD0Ev@__ZThn8_N8NArchive7NParser8CHandlerD1Ev@__ZThn8_N9NCompress10CCopyCoder14QueryInterfaceERK4GUIDPPvȡ@__ZThn8_N9NCompress10CCopyCoder6AddRefEv@__ZThn8_N9NCompress10CCopyCoder7ReleaseEv@__ZThn8_N9NCompress5NBcj28CDecoder14QueryInterfaceERK4GUIDPPv@__ZThn8_N9NCompress5NBcj28CDecoder6AddRefEv@__ZThn8_N9NCompress5NBcj28CDecoder7ReleaseEv@__ZThn8_N9NCompress5NBcj28CDecoderD0Ev@__ZThn8_N9NCompress5NBcj28CDecoderD1Ev@__ZThn8_N9NCompress5NLzma8CDecoder14QueryInterfaceERK4GUIDPPv)@__ZThn8_N9NCompress5NLzma8CDecoder6AddRefEv@__ZThn8_N9NCompress5NLzma8CDecoder7ReleaseEv@__ZThn8_N9NCompress5NLzma8CEncoder14QueryInterfaceERK4GUIDPPv@__ZThn8_N9NCompress5NLzma8CEncoder6AddRefEv@__ZThn8_N9NCompress5NLzma8CEncoder7ReleaseEv@__ZThn8_N9NCompress5NPpmd8CDecoder14QueryInterfaceERK4GUIDPPv@__ZThn8_N9NCompress5NPpmd8CDecoder6AddRefEv@__ZThn8_N9NCompress5NPpmd8CDecoder7ReleaseEv@__ZThn8_N9NCompress5NPpmd8CEncoder14QueryInterfaceERK4GUIDPPv@__ZThn8_N9NCompress5NPpmd8CEncoder6AddRefEv@__ZThn8_N9NCompress5NPpmd8CEncoder7ReleaseEv@__ZThn8_N9NCompress6NBZip212CNsisDecoder14QueryInterfaceERK4GUIDPPv@__ZThn8_N9NCompress6NBZip212CNsisDecoder6AddRefEv@__ZThn8_N9NCompress6NBZip212CNsisDecoder7ReleaseEv@__ZThn8_N9NCompress6NBZip212CNsisDecoderD0Ev@__ZThn8_N9NCompress6NBZip212CNsisDecoderD1Ev@__ZThn8_N9NCompress6NBZip28CDecoder14QueryInterfaceERK4GUIDPPv@__ZThn8_N9NCompress6NBZip28CDecoder6AddRefEv@__ZThn8_N9NCompress6NBZip28CDecoder7ReleaseEv@__ZThn8_N9NCompress6NBZip28CEncoder14QueryInterfaceERK4GUIDPPv@__ZThn8_N9NCompress6NBZip28CEncoder6AddRefEv@__ZThn8_N9NCompress6NBZip28CEncoder7ReleaseEv@__ZThn8_N9NCompress6NLzma28CDecoder14QueryInterfaceERK4GUIDPPv%@__ZThn8_N9NCompress6NLzma28CDecoder6AddRefEv@__ZThn8_N9NCompress6NLzma28CDecoder7ReleaseEv@__ZThn8_N9NCompress6NLzma28CEncoder14QueryInterfaceERK4GUIDPPv@__ZThn8_N9NCompress6NLzma28CEncoder6AddRefEv@__ZThn8_N9NCompress6NLzma28CEncoder7ReleaseEv@__ZThn8_N9NCompress8NDeflate8NDecoder11CCOMCoder64D0Evؾ@__ZThn8_N9NCompress8NDeflate8NDecoder11CCOMCoder64D1Ev@__ZThn8_N9NCompress8NDeflate8NDecoder6CCoder14QueryInterfaceERK4GUIDPPv$@__ZThn8_N9NCompress8NDeflate8NDecoder6CCoder6AddRefEv$@__ZThn8_N9NCompress8NDeflate8NDecoder6CCoder7ReleaseEv$@__ZThn8_N9NCompress8NDeflate8NDecoder6CCoderD0Ev@__ZThn8_N9NCompress8NDeflate8NDecoder6CCoderD1Ev@__ZThn8_N9NCompress8NDeflate8NDecoder9CCOMCoderD0Ev@__ZThn8_N9NCompress8NDeflate8NDecoder9CCOMCoderD1Ev@__ZThn8_N9NCompress8NDeflate8NEncoder11CCOMCoder6414QueryInterfaceERK4GUIDPPv@__ZThn8_N9NCompress8NDeflate8NEncoder11CCOMCoder646AddRefEv@__ZThn8_N9NCompress8NDeflate8NEncoder11CCOMCoder647ReleaseEv@__ZThn8_N9NCompress8NDeflate8NEncoder11CCOMCoder64D0Ev@__ZThn8_N9NCompress8NDeflate8NEncoder11CCOMCoder64D1Ev@__ZThn8_N9NCompress8NDeflate8NEncoder9CCOMCoder14QueryInterfaceERK4GUIDPPv@__ZThn8_N9NCompress8NDeflate8NEncoder9CCOMCoder6AddRefEv@__ZThn8_N9NCompress8NDeflate8NEncoder9CCOMCoder7ReleaseEv@__ZThn8_N9NCompress8NDeflate8NEncoder9CCOMCoderD0Ev@__ZThn8_N9NCompress8NDeflate8NEncoder9CCOMCoderD1Ev@__ZThn8_N9NCompress8NImplode8NDecoder6CCoder14QueryInterfaceERK4GUIDPPv@__ZThn8_N9NCompress8NImplode8NDecoder6CCoder6AddRefEv@__ZThn8_N9NCompress8NImplode8NDecoder6CCoder7ReleaseEv@__ZThn8_N9NCompress8NImplode8NDecoder6CCoderD0Ev@__ZThn8_N9NCompress8NImplode8NDecoder6CCoderD1Ev@__ZThn8_N9NCompress8NPpmdZip8CEncoder14QueryInterfaceERK4GUIDPPv@__ZThn8_N9NCompress8NPpmdZip8CEncoder6AddRefEv@__ZThn8_N9NCompress8NPpmdZip8CEncoder7ReleaseEv@__ZdaPv@__ZdlPv@__Znam@__Znwmr@_CFReleaser@_CFStringCreateMutableCopyr@_CFStringCreateWithCStringr@_CFStringCreateWithCharactersr@_CFStringGetCStringr@_CFStringGetCharacterAtIndexr@_CFStringGetLengthr@_CFStringNormalizer@__ZSt9terminatevr@___cxa_allocate_exceptionr@___cxa_begin_catchr@___cxa_call_unexpectedr@___cxa_end_catchr@___cxa_free_exceptionr@___cxa_rethrowr@___cxa_throwr@__Unwind_Resumer@___bzeror@___cxa_atexitr@___errorr@___stack_chk_failr@___toupperr@_abortr@_chdirr@_chmodr@_clockr@_closer@_closedirr@_exitr@_fcloser@_feofr@_fflushr@_fgetcr@_fgetsr@_filenor@_fopenr@_fputcr@_fputsr@_freer@_ftruncater@_getcwdr@_getenvr@_getpassr@_getpidr@_getppidr@_gettimeofdayr@_gmtimer@_isattyr@_localtimer@_lseekr@_lstat$INODE64r@_mallocr@_memcmpr@_memcpyr@_memmover@_memsetr@_memset_pattern16r@_mkdirr@_mktimer@_openr@_opendir$INODE64r@_printfr@_pthread_attr_destroyr@_pthread_attr_initr@_pthread_attr_setdetachstater@_pthread_cond_broadcastr@_pthread_cond_destroyr@_pthread_cond_initr@_pthread_cond_waitr@_pthread_creater@_pthread_detachr@_pthread_joinr@_pthread_mutex_destroyr@_pthread_mutex_initr@_pthread_mutex_lockr@_pthread_mutex_unlockr@_putenvr@_putsr@_readr@_readdir$INODE64r@_readlinkr@_reallocr@_remover@_renamer@_rmdirr@_signalr@_snprintfr@_stat$INODE64r@_strcmpr@_strerrorr@_strlenr@_symlinkr@_sysctlr@_sysctlbynamer@_timer@_timegmr@_umaskr@_unlinkr@_utimer@_wcscatr@_wcscmpr@_wcscpyr@_wcslenr@_wmemcpyr@_write_ start_CSLAalign_MBPx86_Convert I D H Get Thread_ Event_ X"mainVariantCsync_TestConstructorFileTimeTokgNXArgenvironmh_execute_headerZ)_prognamerMtThread_ConstructompareFileTimeciticalSection_Init!UpdateCalcGenerateTable64$T48ePARC_Convert ortGroup ha256_ysqcTotLargePageSizemaphore_!InStream_ReadCheckInStream_(2ByteozmaocalFileTimeToFileTimekpThread_InStream_ToRead_SeekToLookReadRead2CreateVTableInit"Look_CreateVTableRead_CreateVTable"#esRMutoResetEvent_Create!GenTablesC_SetKey_#bc_tr_CodeEncodeDecodeInit'(0EncDec356allocfree==yia tAllocFree=>dxAllocFree>>>iglockSort t raState_%AllocFree>?_ConvertT_Convert?@P pmdC_Convert MDBDFA64_Convert sArc_ID_IIMXelta_ osDateTimeToFileTimeInit Encode Decode ``cuffman_Generate c3Zip_MatchFinder_ashThreadFunceapSort ftchFinder nualResetEvent_Create!_ MtGet Re MoveBlock N C Free Init PointerToCurrentPos IndexByte NumAvailableBytes nnnduceOffsets adIfRequired ooeedMove ormalize3 oponstruct reate qstVTablexzMatchesSpec1 SystemTimeTickCountz3Zip_MatchFinder_GetMatchesFillBlockThreadFuncGetMatchesSkip~GetMatchesSkipSync_Progress_SetCoder_ConstructGetNextBlockStopWritingDestructInit_2_0_Skip3_SkipGetCFreeMemDestructInitReleaseStreamNormalizeNPointerToCurrentPosIndexByteMatchesextBlock_umAvailableBytesHashBtбonstructreateеVTableMatchesCoder_%23GetMatchesSkip2DecProps_DecodeEncDecEnc_odeAllocateInitDecodeToProbsDicBufProps__InitNormalizeCreateDestroySetPropsWritePropertiesEncode_odeInitDecodeToFreeAllocateDicAndStateDicBufProbsProbsдзProps__odeInitNormalizeGetDictSize FSRestoreStateInitCDestrPrepareForLzma2MemGetEncodeWritePropertiesastPosInitreeLitsinishaveStateetPropsPriceTablessoreatenstructdeOneMemBlockuctoyPrepareEncodeNumAvailableBytesCurBufCStWaitSubThreadonstructlosereateopAndWaitartSubThreadМCoDestructnstructde78__z_RangeConstructFreeAllocInitMakeEscFreqUpdateDecodeSymbolEncodeSymbol1Bin2_0Dec_Enc_InitCreateVTableInitFlushData ConstructFreeAllocInitMakeEscFreqUpdateRangeDecodeSymbolEncodeSymbol1Bin2_0Dec_InitEnc_FlushDataиInitUpdate Final 64 C Wait reate lose C Set!Reset!Wait!reate lose!C!ReleaseN!Wait!reate!lose!NotSignaled!NotSignaled"z"Z__"F#C$Block_&Dec_Init&Unpacker_&Props_Init(s_(Write#Construct#Free#Read%ParseHeader&AddIndexRecord'Encode(Get(VarInt#Header'Footer'lags_GetCheckSize$ilterProps_Init(heck_$rc64UpdateT4%Init$Update$Final$Update$Calc$GenerateTable%VarInt%Header(Free%Set%Init%Props%FromMethod%Co&Free&Init&SetFromMethod&nstruct&de&ЄParse&WriteHeader'ReadHeader(I'Co'Free'GetExtraSize'nit'sStreamWasFinished'Гnstruct'de'Init(GetDigest(гEmpty(UnpackSize(PackSize(Construct)Free)Get)ReadBackward)NumBlocks)UnpackSize) N+T921957ExtractP7CCodecsRK13CObjectVectorI9COpenTypeERK13CRecordVectorIiERS1_I7UStringESC_RKN9NWildcard11CCensorNodeERK15CExtractOptionsP15IOpenCallbackUIP18IExtractCallbackUIP9IHashCalcRSA_R15CDecompressStat8pl4endlR13CStdOutStream3 8,112DKm9376CProps9AddProp32Ejj5NBitlϬ4CArcN,ICCGetPropArchive,WindowsA3N-1{4N9NItemName5N6NSplit8C΋2NZ8CHandler7NParser7z-GzXz8C/1]5CDbExt9CDatabaseD2Ev{22CC6UpdateEP9IInStreamPKNS0_5CDbExERK13CObjectVectorINS0_11CUpdateItemEERNS0_11COutArchiveERNS0_19CArchiveDatabaseOutEP20ISequentialOutStreamP22IArchiveUpdateCallbackRKNS0_14CUpdateOptionsEP22ICryptoGetTextPasswordޤDecoder0EncoderHHandler\FolderszInByte2RefItemC2EjRKNS0_11CUpdateItemEbC16DecodeEP9IInStreamyRKNS0_8CFoldersEiP20ISequentialOutStreamP21ICompressProgressInfoP22ICryptoGetTextPasswordRbSD_bj1D2Ev]1Eb12Eb1 31155B9F0Q7h4|2Cڝ6C8C2NConsoleClose1 O2ReOInʫTailInStreamSDelta˸CrcOutStreamArcErrorInfo11ClearErrorsEvFieldPrinterסbjectVectorI3utMemStream9C3N<1L5CPropEP721CUpdateArchiveCommandE8C4CArcEMyComPtrI4PropertyEOpenTypeE19ISequentialInStreamEE48IUnknownEE520ISequentialOutStreamEE@9IInStreamEE3AddERKS2_5D2Ev515ClearAndReserveEjC2ERKS3_3AddERKS2_5D2Ev]ІNCoderMixer5C?IOutArchiveD|9CBindInfo6167CCoder2>21CBindReverseConverterP8SetSizesEPPKyR13CRecordVectorIyERS3_IS1_EjaSERKS0_6C2ERKS0_4CCoderMixer2MT71CCoderInfo2@17687ReleaseEv9D98AddCoderEP14ICompressCoder9AddCoder2EP15ICompressCoder24482SetCoderInfoEjPPKyS3_91SetBindInfoERKNS_9CBindInfoE3ReturnIfErrorEiQueryInterfaceERK4GUIDPPv8AddCoderCommonEvAddRefEv9ReInitEv1Ev90Ev92Ev<Ќhn9SIV8:1u24_Nw35464_N12CFilterCoder72_N12CFilterCoder_N:0_N12CFilterCoder8_N12CFilterCoder1;2W8NArchive`9NCompress7NCrypto32CExtractCallback_To_OpenCallback1NCoderMixer14CCoderMixer2MT<3CȬ2CFilterCoder۳6C9CBenchmarkOutStreamD0CCrcHasher1<6ReInitEv2SetCoderInfoEjPPKyS3_<1SetBindInfoERKNS_9CBindInfoE1=8NArchiveK7NCrypto7NSevenZ8CKeyInfoEE6InsertEjRKS2_9NWildcard1NCoderMixer7CCoder2EE>2CMultiStream14CSubStreamInfoEE8COutMultiVolStream14CAltStreamInfoEE˄D2Ev>3AddERKS1_D2Ev?C7ExecuteEv4CodeEP21ICompressProgressInfoVirtThread?CUniqBlocksSha1HasherBenchProps1HashBundleRenamePair7PrepareEvD2Ev@6CreateEv5StartEv16WaitThreadFinishEvD2Ev@12SetCoderInfoEPPKyS3_C2ERKS0_D2EvA3AddERKS2_M15ClearAndReserveEjC2ERKS3_16NSynchronization1A5N6NError15MyFormatMessageEj4NCOM7NSystem4CB6CCriticalSectionD1EvBaseEventWFMO19IsSignaledAndUpdateEvBSemaphoreWFMO19IsSignaledAndUpdateEvIBCCompressCArchiveOpenSeqDOutStreamFlushDCoder2DCFilterD1EvC0EvCЗUnknownDCGetPropD1EvC0EvD 6D8CLockedSequentialInStreamImpG9M0T5Y7Z24CMtCompressProgressMixer1Ζ3CEIArchiveOpenVolumeCallbackDLimitedSequentialInStreamESequentialInStreamWithCRCcEnumDirItemUpdateCallback12ScanProgressEyyyPKwb14QueryInterfaceERK4GUIDPPvF6AddRefEvF7ReleaseEvFDF4ReadEPvjPj1EvF0EvFIGCRSequentialInStreamDGArchiveGetRawPropsD}InArchiveGetStreamDCompressSet1EvG0EvG14QueryInterfaceERK4GUIDPPvH6AddRefEvH7ReleaseEvHDH4ReadEPvjPjК1EvH0EvHЛ1I6EncodeEP19ISequentialInStreamPKyS5_RNS0_7CFolderER13CRecordVectorIyERyP20ISequentialOutStreamSA_P21ICompressProgressInfoJCJDK6CreateMixerCoderEPKyJ3EncoderConstrEvJ1ERKNS0_22CCompressionMethodModeEJ2ERKNS0_22CCompressionMethodModeEK1EvK2EvK3N7zK4N7NParser10CParseItemEE1K7CFolderEE0CCoderInfoEE6AddNewEvL1CN8CExtractFolderInfoEE3AddERKS2_]6CInOutTempBufferEM4COneMethodInfoEz3CStreamBinderE6AddNewEv1C2CHasherStateE0C6AddNewEvMD2EvPCSequentialMIInStreamSizeCount2MOutStreamSizeCountU4N1V6AddRefEvV7ReleaseEvVDVInitEP19ISequentialInStreamNReadEPvjPjMethodFullEENUpdateItemEE3AddERKS2_3AddERKS2_OD2EvQaSERKS3_Q5ClearEvQC2ERKS3_cordVectorIOferenceBufjEPPvEyE6InsertEjyːN8NArchiveiE16InsertEjjP4SortEPFiPKjS2_PvES3_C2ERKS1_P3AddERKS0_aSERKS1_D2EvQC21CreateReverseBindInfoERNS_9CBindInfoECQI}ORMemBlocksByteSwapArcInfoExTempFilesListStat26UpdateERKS_֤ErrorInfoC2EvͥCrcHasherbjArray2IN8NArchive3N7z10CCoderInfoEE7SetSizeEjRutBufferDynBufSeqOutStreamSBѐMtCompressProgressPrintBenchCallbackԕ1S6AddRefEvT7ReleaseEvTDT5WriteEPKvjPj4QueryInterfaceERK4GUIDPPvT9GetBufPtrForWritingEm1EvT0EvTITCSequentialOutStreamDUCompressSetInStreamDArchive1EvU0EvU14QueryInterfaceERK4GUIDPPvV6AddRefEvV7ReleaseEvVDV5WriteEPKvjPjЂЃ1EvV0EvV4QueryInterfaceERK4GUIDPPvV6GetSubStreamSizeEyPy1EvW0EvW9CSequentialInStreamSizeCount2W3C7CArchiveOpenCallback_Offset2CArchiveUpdateCallback1X6AddRefEvX7ReleaseEvXDX4QueryInterfaceERK4GUIDPPvX6GetSubStreamSizeEyPy1EvX0EvXICompressYCEnumDirItemCallback_Hash12ScanProgressEyyyPKwbGetSubStreamSizeDYSetOutStreamSizeD1EvY0EvZCZICompressSetCoderPropertiesDSequentialOutTempBufferImp[LimitedSequentialOutStreamArchiveOpenCallback_Offset14QueryInterfaceERK4GUIDPPv[6AddRefEv[7ReleaseEv[D[5WriteEPKvjPj1Ev[0Ev[ 7\Cj1j2k9GetParentEjPjS2_q4OpenEP9IInStreamPKyP20IArchiveOpenCallbacks5CloseEvs6AddRefEvtDtExtractEPKjjiP23IArchiveExtractCallback]ReleaseEvtЋ5CFolderInStream^6Cd1COuts9CArchiveDatabaseOutĂ3CStreamSwitchÃ07CFolderOutStream24CThreadDecoderC^4_1_9AddDigestEv`6AddRefEvb7ReleaseEvbDb1Ev_2Ev_InitEP22IArchiveUpdateCallbackPKjj_ReadEPvjPj`Х0OpenStreamEv`1CloseStreamEv`6GetSubStreamSizeEyPy`4QueryInterfaceERK4GUIDPPvbЦ3N`4Nֳ5N6NSplit8CHandler7NParser8CHandler7zaGz8CHandlerXz8CHandler1a8CHandlerp5CFolderInStreama6CFolderOutStreamf1a6AddRefEvb7ReleaseEvbDb6GetSubStreamSizeEyPyb4QueryInterfaceERK4GUIDPPvb1Evb0Evb2Evcж1Evc0Evcз14QueryInterfaceERK4GUIDPPvc6AddRefEvc7ReleaseEvcDc4ReadEPvjPj1Evd0EvdFolderOutStreamdUInt Ce4InitEPKNS0_5CDbExEjjPK13CRecordVectorIbEP23IArchiveExtractCallbackbbe1e8OpenFileEvf21CloseFileAndSetResultEf5WriteEPKvjPjf6AddRefEvg7ReleaseEvhDh1Eve2Eve7ProcessEmptyFilesEvf6GetSubStreamSizeEyPyf4gоifvf1g6AddRefEvh7ReleaseEvhDh6GetSubStreamSizeEyPyg4QueryInterfaceERK4GUIDPPvhFlushCorruptedEigQueryInterfaceERK4GUIDPPvg1Evh0Evh1Evh0EvhChICryptoPropertiesDOutStreamWithCRCiSBC_SPARC_ArcCmdLineParser14QueryInterfaceERK4GUIDPPvi6AddRefEvi7ReleaseEviDj5WriteEPKvjPj1Evj0Evj1Evj2Evj6j3l8GetArchivePropertyEjP14tagPROPVARIANTm4o0q1r5~GetNumberOfItemsEPjkAddDefaultMethodEv8GetNumberOfArchivePropertiesEPjl2GetArchivePropertyInfoEjPPwPjPtl5PropsMethod_To_FullMethodERNS0_11CMethodFullERK14COneMethodInfo1GetNumberOfPropertiesEPjAddMethodNameER7AStringymSet8Nm16CProps13SetCoderPropsEP27ICompressSetCoderPropertiesPKy9϶74CArc1ArchivenWindows5NFile3N7zn4N8Cn7CFolder14CheckStructureEj9CDatabase11C•Handler1oFolders15ParseFolderInfoEjRNS0_7CFolderE7IsFolderEncryptedEjo5SetMethodToPropEjP14tagPROPVARIANTrGetoQueryInterfaceERK4GUIDPPvtNumRawPropsEPjpRawPropInfoEjPPwPjq1p9GetParentEjPjS2_q6AddRefEvu7ReleaseEvuDu4p0GetRawPropEjjPPKvPjS5_rGetqQueryInterfaceERK4GUIDPPvtNumRawPropsEPjqRawPropInfoEjPPwPjqGetRawPropEjjPPKvPjS5_rFillPopIDsEvGetPropertyEjjP14tagPROPVARIANTsUpdateItemsEP20ISequentialOutStreamjP22IArchiveUpdateCallback HandlersArchiveFolders21OutFoldersReserveDownEvC2Evt9InitPropsEv123SetSolidFromPROPVARIANTERK14tagPROPVARIANT 5ClearEvt9FillLinksEvЂ    1Evt0Evt2Evz     1Evu0Evu  6u52_N7NCrypto7NSevenZ8Cё_Nu0_N7NCrypto7NSevenZ8CEncoder8NArchivev9NCompress7NCrypto1123Nv4N7z8CHandlervGz8CHandlerXz8CHandler1w6AddRefEvw7ReleaseEvwDw4QueryInterfaceERK4GUIDPPvw3SetPropertiesEPPKwPK14tagPROPVARIANTj   1Evw0Evw  8NArchivex9NCompress122CArchiveUpdateCallback3Nx4N7z8CHandlerxGz8CHandlerXz8CHandler1y6AddRefEvz7ReleaseEvzDz4QueryInterfaceERK4GUIDPPvz5GetFileTimeTypeEPj1UpdateItemsEP20ISequentialOutStreamjP22IArchiveUpdateCallback   1Evz0Evz Њ  5ClearEvzD2Ev{Ў D2Ev{3AddERKS0_13DeleteFrontalEj6InsertEjRKS0_5ClearEv   7CMultiMethodProps{8CSingleMethodPropsιC2Ev|24SetGlobalLevelAndThreadsER14COneMethodInfoj4InitEv11SetPropertyEPKwRK14tagPROPVARIANT 1Ev|0Ev|  I}CNUpdateArchive1إS}CompressCoderDetPropertiesD}treamGetSizeD1Ev}0Ev}З  1Ev}0Ev}  InArchiveD~OutStreamD1Ev~0Ev~  Get~SetHeaderMethodERNS0_22CCompressionMethodModeEFileTimeTypeEPjPropertyInfoEjPPwPjPt  И   MainMethodERNS0_22CCompressionMethodModeER13CObjectVectorI14COneMethodInfoEjPropertiesEPPKwPK14tagPROPVARIANTj    8SetSolidFromStringERK7UString1SetPropertyEPKwRK14tagPROPVARIANT         6InsertEjS0_4SortEPFiPKS0_S3_S0_ES0_Ǧ D2Ev16CreateEP20ISequentialOutStreamb5CloseEv29 D2Ev7AddFileERKNS0_9CFileItemERKNS0_10CFileItem2ERK7UString1 D2Ev6AddNewEv    6RemoveEv3SetEPNS0_10CInArchiveE PKRK7CBufferIhEhmb13CObjectVectorI7CBufferIhEE CInArchiveڄkSignatureE12҉4OpenEP9IInStreamPKy5CloseEv6WaitIdEy35Read2Readč4Read8ReadSubStreamsInfoERNS0_8CFoldersER13CRecordVectorIyERNS0_16CUInt32DefVectorE9ReadUInt64DefVectorERK13CObjectVectorI7CBufferIhEERNS0_16CUInt64DefVectorEj0ReadHeaderERNS0_5CDbExEP22ICryptoGetTextPasswordRbS6_AddByteStreamEPKhmReadDatabase2ERNS0_5CDbExEP22ICryptoGetTextPasswordRbS6_   89ReadBytesEPhmʈ17ReadNumEvReadByteEvĈSkipDataEЈ  y܈v  0Read1ParseFolderERNS0_7CFolderENumberEvUInt  32EvƉ64Ev̉  0FindAndReadSignatureEP9IInStreamPKy1ReadArchivePropertiesERNS0_14CInArchiveInfoE6ReadAndDecodePackedStreamsEyRyR13CObjectVectorI7CBufferIhEEP22ICryptoGetTextPasswordRbSA_Ј      7GetPathEjR7UString12GetPath_PropEjP14tagPROPVARIANT   HashDigestsEjRNS0_16CUInt32DefVectorEBoolVector2EjR13CRecordVectorIbEStreamsInfoEPK13CObjectVectorI7CBufferIhEERyRNS0_8CFoldersER13CRecordVectorIyERNS0_16CUInt32DefVectorE  PackInfoERNS0_8CFoldersEDatabaseERNS0_5CDbExEP22ICryptoGetTextPasswordRbS6_ UnpackInfoEPK13CObjectVectorI7CBufferIhEERNS0_8CFoldersEBoolVectorEjR13CRecordVectorIbE          32DefVector1ݏ64DefVector5ClearAndSetSizeEj1ReserveDownEvЉ CBufferIhEEUStringE6AddNewEvŐC2ERKS2_Њ  ufPtrSeqOutStreamenchmarkOutStream14QueryInterfaceERK4GUIDPPvϑ6AddRefEvՑ7ReleaseEvۑD5WriteEPKvjPj   1Ev0Ev  4WriteSignatureEv͓6Writeӓ0WriteBytesEPKvm1Write5Write9Write3Write2EncodeStreamERNS0_8CEncoderERK7CBufferIhER13CRecordVectorIyER13CObjectVectorINS0_7CFolderEERNS0_11COutFoldersE StartHeaderERKNS0_12CStartHeaderEHashDigestsERKNS0_16CUInt32DefVectorE   3SkipPrefixArchiveHeaderEv2WriteAlignedBoolHeaderERK13CRecordVectorIbEjhj0WriteUInt64DefVectorERKNS0_16CUInt64DefVectorEh OutArchive6GetPosEvUpdateItem1Е  WriteByteEhSkipAlignEjj UIntNumberEyFolderERKNS0_7CFolderEHeaderERKNS0_19CArchiveDatabaseOutERy32Ej64Ey  К  BoolVectorERK13CRecordVectorIbEUnpackInfoERK13CObjectVectorINS0_7CFolderEERKNS0_11COutFoldersEښ PropBoolVectorEhRK13CRecordVectorIbESubStreamsInfoERK13CObjectVectorINS0_7CFolderEERKNS0_11COutFoldersERK13CRecordVectorIyERKNS0_16CUInt32DefVectorE  PackInfoEyRK13CRecordVectorIyERKNS0_16CUInt32DefVectorEԚDatabaseERKNS0_19CArchiveDatabaseOutEPKNS0_22CCompressionMethodModeERKNS0_14CHeaderOptionsE         7SetItemEjby11ReserveDownEv   2SetItem_AntiEjb1ReserveDownEv 3AddERKS0_15ClearAndReserveEjaSERKS1_C2ERKS1_ 3N7z4NCab7CMvItemEE4SortEPFiPKS2_S5_PvES6_9CFileItemEE3AddES2_ԝ13CFolderRepackEE4SortEPFiPKS2_S5_PvES6_8CRefItemEE4SortEPFiPKS2_S5_PvES6_ BMFDzLzOutWindowArchiveEncoderInfoStdInStreamufInStreamȞitenchBufferD14QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEvD4   1Ev0Ev  I͟NCInStreamDProgressD1Ev0Ev   Е     5GetExtensionPosEvԠ2GetExtensionEvڠ Й 4InitEPKNS0_5CDbExEjPK13CRecordVectorIbEP20ISequentialOutStream18OpenFileEv9CloseFileEv21CloseFileAndSetResultEv5WriteEPKvjPj6AddRefEv7ReleaseEvDC2Ev 7ProcessEmptyFilesEv6ReleaseOutStreamEv4QueryInterfaceERK4GUIDPPv   О   7ExecuteEvD2EvC2Ev ryptoGetTextPasswordompressionMethodModeC2ERKS1_21CryptoGetTextPasswordEPPwؤ14QueryInterfaceERK4GUIDPPvӥ6AddRefEv٥7ReleaseEvߥD  Ј 4SortEPFiPKiS2_PvES3_6InsertEji      1Evǥ0Evͥ    Н 1Ev0Ev         ICCryptoݦArchiveUpdateCallbackDĔGetTextPasswordDResetInitVectorD1Ev0Ev  FileTime3NIOΧ5N4NDir7CInFile8COutFile9CFileBaseD48ReadPartEPvjRj1Ev0Ev    CompressبWildcard18N27NShrink8CDecoder6N5N4NLzx0C2CMtf81NRangeCoderCopyCoderopyStreamEP19ISequentialInStreamP20ISequentialOutStreamP21ICompressProgressInfoӣ14QueryInterfaceERK4GUIDPPvϫ6AddRefEvի7ReleaseEv۫D4CodeEP19ISequentialInStreamP20ISequentialOutStreamPKyS6_P21ICompressProgressInfo24GetInStreamProcessedSizeEPyǣ   10CCopyCoder8N6N5Nӓ14QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEvD24GetInStreamProcessedSizeEPyͣ   3ICompressGetInStreamProcessedSizeD0ICompressSetDecoderProperties2D2CExtractCallback_To_OpenCallback1Ev0Ev г 1Ev0Ev  Bz28CHandlerʮCabTarΒZip214OpenEP9IInStreamPKyP20IArchiveOpenCallback75CloseEv6AddRefEvDC2Evȹ1GetNumberOfPropertiesEPj8GetNumberOfArchivePropertiesEPj2GetArchivePropertyInfoEjPPwPjPt 5Get8GetArchivePropertyEjP14tagPROPVARIANT6GetNumberOfItemsEPj13SetPropertiesEPPKwPK14tagPROPVARIANTj4QueryInterfaceERK4GUIDPPvPropertyInfoEjPPwPjPtFileTimeTypeEPj д    GetPropertyEjjP14tagPROPVARIANTUpdateItemsEP20ISequentialOutStreamjP22IArchiveUpdateCallbackض  OpenSeqEP19ISequentialInStreamгExtractEPKjjiP23IArchiveExtractCallbackReleaseEv Bz28CHandlerTar8CHandlerZip714QueryInterfaceERK4GUIDPPv6AddRefEvDʸOpenSeqEP19ISequentialInStreamReleaseEvĸ    Bz28CHandlerTar8CHandler՞Zip8CHandler1ٵ6AddRefEv7ReleaseEvD5GetFileTimeTypeEPjҶ1UpdateItemsEP20ISequentialOutStreamjP22IArchiveUpdateCallback޶4QueryInterfaceERK4GUIDPPv    Bz28CHandlerTar8CHandlerɟ16AddRefEv7ReleaseEvD3SetPropertiesEPPKwPK14tagPROPVARIANTj4QueryInterfaceERK4GUIDPPv    1Ev0Ev2Ev¹     1Evڸ0Ev     1Ev0Ev     1Ev0Ev    C2Ev4InitEv13SetPropertiesEPPKwPK14tagPROPVARIANTj 1Ev0Ev  DummyOutStreamBLockedInStream4ReadEyPvjPjCachedInStreamPercentPrinter114QueryInterfaceERK4GUIDPPv޻6AddRefEv7ReleaseEvD5WriteEPKvjPj   1Ev0Ev  18CHandlerҾ9C7NHeader7kMarkerE7CCabBlockInStream6C0CInArc3CMvDatabaseEx6Dս74ReadEPvjPj14QueryInterfaceERK4GUIDPPvCreateEvϽAddRefEvƾ 0Ev1Ev2Ev   PreReadEP19ISequentialInStreamRjS4_ReleaseEv̾     214OpenEP9IInStreamPKyP20IArchiveOpenCallback5CloseEv76AddRefEvD1GetNumberOfPropertiesEPj8GetNumberOfArchivePropertiesEPj2GetArchivePropertyInfoEjPPwPjPt 5GetPropertyInfoEjPPwPjPt8GetArchivePropertyEjP14tagPROPVARIANT1GetPropertyEjjP14tagPROPVARIANT6GetNumberOfItemsEPj4QueryInterfaceERK4GUIDPPv      FolderOutStreamSignatureFinder4FindEv4InitEPKNS0_13CMvDatabaseExEPK13CRecordVectorIbEjyP23IArchiveExtractCallbackb19CloseFileEv8OpenFileEv65WriteEPKvjPj7ReleaseEvDЇ8CloseFileWithResOpEi5WriteEmptyFilesEv41UnsupportedEvЈWrite2EPKvjPjbAddRefEvFlushCorruptedEvQueryInterfaceERK4GUIDPPvЙExtractEPKjjiP23IArchiveExtractCallbackReleaseEvCabTarZip11CDatabaseExEE5CItemEE6InsertEjRKS2_13DeleteFrontalEjD2Ev5ClearEv1Ev0Ev1Ev0Ev2EvDatabaseArchInfoC2EC2ERKS1_D2EvRKS1_vC2ERKS3_15ClearAndReserveEjQuantumDeflate8NHuffman8CDecoderILiImplode8NPpmdZipʂ8CDecoder11NRangeCoder16AddRefEv7ReleaseEvD4݈8CodeÉ9SetParamsEi4QueryInterfaceERK4GUIDPPv6SetOutStreamSizeEPKy1Ev0EvDecoderEncoder6CCoder9CCOMCoderD11CCOMCoder64Dȧ16AddRefEv7ReleaseEvDCԨ8424GetInStreamProcessedSizeEPy4QueryInterfaceERK4GUIDPPv5Re601SetInStreamEP19ISequentialInStream8ReadAligned_UInt16Ev1Ev0EvDeflate8NImplode8NDecoder6CCoderPpmdZip8CEncoderDecoderEncoder6CCoder9CCOMCoderD11CCOMCoder64D14QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEvD24GetInStreamProcessedSizeEPy1Ev0Ev8NDeflate8NDecoder6N5N6CCoder9CCOMCoderD11CCOMCoder64D16AddRefEv7ReleaseEvD4QueryInterfaceERK4GUIDPPv1SetInStreamEP19ISequentialInStream5ReleaseInStreamEv1Ev0Ev8NDeflate8NDecoder6NLzma28CDecoder5N6CCoder9CCOMCoderD11CCOMCoder64D16AddRefEv7ReleaseEvD4QueryInterfaceERK4GUIDPPv6SetOutStreamSizeEPKy1Ev0Ev2_N52_N7NCrypto10NZipStrong9NCompress8NArchive4NTar8CHandlerҢ12CFilterCoder22CArchiveUpdateCallback8NDeflate8NDecoder6NLzma28CDecoder5N6CCoder9CCOMCoderD11CCOMCoder64D14QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEvD4ReadEPvjPjì1Ev0Ev1Ev0Ev1Ev0Ev1Ev0Ev1Ev0Ev1Ev0EvhiveInfo5ParseEPKh48ReadNameER7AString12ReadOtherArcERNS0_9COtherArcE5Open2ERNS0_11CDatabaseExEPKySkipEjReadEPhjOpenERNS0_11CDatabaseExEPKy15CheckEv3AreItemsEqualEjj7FillSortAndShrinkEvВП1ERKNS_9CBindInfoE2ERKNS_9CBindInfoE1Ejj2EjjRKS0_зInitEPP19ISequentialInStreamPP20ISequentialOutStreamCodeEPP19ISequentialInStreamPPKyjPP20ISequentialOutStreamS6_jP21ICompressProgressInfoCArcCmdLineExceptionHashCallbackConsoleOpenCallbackConsolerossThreadProgressallbackConsoleBase16AddRefEv7ReleaseEvD2SetRatioInfoEPKyS1_4QueryInterfaceERK4GUIDPPv1Ev0Ev 19483025ܴ6IsString1PrefixedByString2PK7StringsAreEqualNoCase_AsciiPK FindSignatureInStreamP19ISequentialInStreamPKhjPKyRyCMArchive_IsItem_FolderP10IInArchivejRbGetUpdatePairInfoListRK9CDirItemsRK13CObjectVectorI8CArcItemEN13NFileTimeType5EEnumER13CRecordVectorI11CUpdatePairEReadNamesFromListFilePKwR13CObjectVectorI7UStringEjStringsAreEqualDoesWildcardMatchNameRK7UStringS1_my_windows_split_pathRK7AStringRS_S2_InOSLimitedInStreamClusterInStreamMemBlockManagerBRandomGeneratorStreamWithCRCOutTempBufferFileStreamVolD414QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEvDReadEPvjPjSeekExjPyЀ1Ev0Ev24ReplaceToOsPathSeparatorEPw19GetOSNameERK7UString3MakeLegalNameERK7UString0GetOSName2ERK7UString6ConvertToOSName2ER7UString2HasTailSlashERK7AStringj5WinNameToOSNameERK7UStringultiStreamethodProps414QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEvDReadEPvjPjSeekExjPyЇЈ1Ev0EvD2Ev3AddERKS1_ʑЉ5CItem18CHandler24CCompressProgressInfoImp0ReadHeaderEPN9NCompress8NDeflate8NDecoder9CCOMCoderE1ReadFooterWrite1EPN9NCompress8NDeflate8NDecoder9CCOMCoderE2EP19ISequentialInStreamHeaderEP20ISequentialOutStreamFooterEP20ISequentialOutStream214OpenEP9IInStreamPKyP20IArchiveOpenCallback75CloseEv6AddRefEvDC2Ev1GetNumberOfPropertiesEPj8GetNumberOfArchivePropertiesEPj2GetArchivePropertyInfoEjPPwPjPt5Get8GetArchivePropertyEjP14tagPROPVARIANT6GetNumberOfItemsEPj13SetPropertiesEPPKwPK14tagPROPVARIANTj4QueryInterfaceERK4GUIDPPvPropertyInfoEjPPwPjPtFileTimeTypeEPjИGetPropertyEjjP14tagPROPVARIANTUpdateItemsEP20ISequentialOutStreamjP22IArchiveUpdateCallback16AddRefEv7ReleaseEvD2SetRatioInfoEPKyS3_4QueryInterfaceERK4GUIDPPvOpenSeqEP19ISequentialInStreamExtractEPKjjiP23IArchiveExtractCallbackReleaseEvУ714QueryInterfaceERK4GUIDPPv6AddRefEvDOpenSeqEP19ISequentialInStreamReleaseEv16AddRefEv7ReleaseEvD5GetFileTimeTypeEPj1UpdateItemsEP20ISequentialOutStreamjP22IArchiveUpdateCallback4QueryInterfaceERK4GUIDPPvж16AddRefEv7ReleaseEvD3SetPropertiesEPPKwPK14tagPROPVARIANTj4QueryInterfaceERK4GUIDPPv1Ev0Ev2Ev1Ev0Ev1Ev0Ev1Ev0Ev1Ev0Ev9C1ߣ6CCoder7CTables14InitStructuresEv21Huffman_GetPrice_SpecEPKjPKhjS5_jɶ4ReadEPvS2_PmCOMCoderEncProps9NormalizeEv16AddRefEv7ReleaseEvD4CodeEP19ISequentialInStreamP20ISequentialOutStreamPKyS8_P21ICompressProgressInfo4QueryInterfaceERK4GUIDPPv8SetCoderPropertiesEPKjPK14tagPROPVARIANTj1Ev0Ev9CCOMCoder11CCOMCoder6416AddRefEv7ReleaseEvD4QueryInterfaceERK4GUIDPPv8SetCoderPropertiesEPKjPK14tagPROPVARIANTj1Ev0Ev1Ev0EvLzmaPpmd7CHeader5ParseEPKhb8C24CCompressProgressInfoImpDecoderHandler6CreateEbP19ISequentialInStreamD4CodeERKNS0_7CHeaderEP20ISequentialOutStreamP21ICompressProgressInfo1Ev2Ev214OpenEP9IInStreamPKyP20IArchiveOpenCallback75CloseEv6AddRefEvD1GetNumberOfPropertiesEPj8GetNumberOfArchivePropertiesEPjހ2GetArchivePropertyInfoEjPPwPjPt5GetPropertyInfoEjPPwPjPt؀8GetArchivePropertyEjP14tagPROPVARIANT6GetNumberOfItemsEPj1GetPropertyEjjP14tagPROPVARIANT4QueryInterfaceERK4GUIDPPvOpenSeqEP19ISequentialInStreamށExtractEPKjjiP23IArchiveExtractCallbackReleaseEvLzma8CHandlerPpmd8CHandlerÉ714QueryInterfaceERK4GUIDPPv6AddRefEvDOpenSeqEP19ISequentialInStreamReleaseEv16AddRefEvʄ7ReleaseEvЄDք2SetRatioInfoEPKyS3_܃4QueryInterfaceERK4GUIDPPvĄЈ1Ev0Ev1Ev0Ev1Ev0EvЎ5CItem10ReadHeaderEP19ISequentialInStreamRjÅ8CHandlerɅ13CRangeDecoder214OpenEP9IInStreamPKyP20IArchiveOpenCallbackۈ75CloseEv6AddRefEvD1GetNumberOfPropertiesEPj8GetNumberOfArchivePropertiesEPj2GetArchivePropertyInfoEjPPwPjPtÈ5GetPropertyInfoEjPPwPjPt8GetArchivePropertyEjP14tagPROPVARIANTɈ6GetNumberOfItemsEPjψ1GetPropertyEjjP14tagPROPVARIANTՈ4QueryInterfaceERK4GUIDPPvВOpenSeqEP19ISequentialInStreamExtractEPKjjiP23IArchiveExtractCallbackReleaseEv714QueryInterfaceERK4GUIDPPv6AddRefEvDOpenSeqEP19ISequentialInStreamReleaseEvCʊ4InitEvȋ1Evڊ2EvМ1Ev0Ev1Ev0Ev‹HandlerSeqName11GetNextNameEvđ2154OpenEP9IInStreamPKyP20IArchiveOpenCallbackڏ79GetStreamEjPP19ISequentialInStream6AddRefEv֑D1GetNumberOfPropertiesEPjڍ8GetNumberOfArchivePropertiesEPj2GetArchivePropertyInfoEjPPwPjPt5GetPropertyInfoEjPPwPjPt8GetArchivePropertyEjP14tagPROPVARIANT6GetNumberOfItemsEPj1GetPropertyEjjP14tagPROPVARIANT4QueryInterfaceERK4GUIDPPvБеOpen2EP9IInStreamP20IArchiveOpenCallbackԏCloseEvExtractEPKjjiP23IArchiveExtractCallbackReleaseEvܑ9GetStreamEjPP19ISequentialInStream14QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEvD3AddERKS2_D2Ev1Ev0Ev1Ev0Ev1Ev’0EvȒ815CItemΤCHandlerReadItemEP19ISequentialInStreamRbRNS0_7CItemExERNS0_10EErrorTypeE 21Ӕ954ӗ7C6D1GetNumberOfPropertiesEPj͔8GetNumberOfArchivePropertiesEPj2GetArchivePropertyInfoEjPPwPjPt5Get8GetArchivePropertyEjP14tagPROPVARIANT6GetNumberOfItemsEPj13SetPropertiesEPPKwPK14tagPROPVARIANTjß4QueryInterfaceERK4GUIDPPvPropertyInfoEjPPwPjPtFileTimeTypeEPjReadItem2EP19ISequentialInStreamRbRNS0_7CItemExEGetStreamEjPP19ISequentialInStreamϞOpen2EP9IInStreamP20IArchiveOpenCallback͗CloseEvOpenEP9IInStreamPKyP20IArchiveOpenCallbackInitEvOpenSeqEP19ISequentialInStreamExtractEPKjjiP23IArchiveExtractCallbackReleaseEv714QueryInterfaceERK4GUIDPPvȡ6AddRefEvΡDڡOpenSeqEP19ISequentialInStreamޙReleaseEvԡ1Ev2EvSkipToEjAddRefEvTar8CHandler18TarStringToUnicodeERK7AStringRN8NWindows4NCOM12CPropVariantEbZipGetPropertyEjjP14tagPROPVARIANTUpdateItemsEP20ISequentialOutStreamjP22IArchiveUpdateCallback31ͦCSparseStreamGetPropStringEP22IArchiveUpdateCallbackjjR7AStringjbUpdateArchiveEP9IInStreamP20ISequentialOutStreamRK13CObjectVectorINS0_7CItemExEERKS5_INS0_11CUpdateItemEEjP22IArchiveUpdateCallbackۨ414QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEvDReadEPvjPjÞSeekExjPyɞИ9GetStreamEjPP19ISequentialInStream14QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEvD16AddRefEv7ReleaseEvD3SetPropertiesEPPKwPK14tagPROPVARIANTj4QueryInterfaceERK4GUIDPPv7CItemExEE11CUpdateItemEE3AddERKS2_5ClearEvD2Ev1Ev0Ev¡2Ev1Ev0EvЭ1Ev0EvЮ1EvƢ0Ev̢16AddRefEv7ReleaseEvD4QueryInterfaceERK4GUIDPPv5GetFileTimeTypeEPj1UpdateItemsEP20ISequentialOutStreamjP22IArchiveUpdateCallbackЯ1Ev0Ev1Ev¤0EvȤC2EaSERKS1_ըRKS1_vг14QueryInterfaceERK4GUIDPPvץ6AddRefEvݥ7ReleaseEvD5WriteEPKvjPj1Ev0Evмо3AddERKS2_D2EvCNFileHeaderUpdateItemC2ERKS1_OutArchive1TarZip0WriteBytesEPKvj5WriteHeaderRealERKNS0_5CItemE1WriteHeaderERKNS0_5CItemEè6FillDataResidualEyɨ7WriteFinishHeaderEvϨ30CVirtProgress_To_LocalProgress8ProgressEvҩ8CHandlerة129CVirtProgress_To_OpenProgress8ProgressEvC2Ъ154OpenEP9IInStreamPKyP20IArchiveOpenCallback76AddRefEvDɵ1EvĪ2Evʪ1GetNumberOfPropertiesEPj8GetNumberOfArchivePropertiesEPj2GetArchivePropertyInfoEjPPwPjPt5Get֬8GetArchivePropertyEjP14tagPROPVARIANT6GetNumberOfItemsEPj13SetPropertiesEPPKwPK14tagPROPVARIANTj4QueryInterfaceERK4GUIDPPvPropertyInfoEjPPwPjPtFileTimeTypeEPjжGetPropertyEjjP14tagPROPVARIANTUpdateItemsEP20ISequentialOutStreamjP22IArchiveUpdateCallback7COpenCallbackWrapC6ܱ2IDecodeState6DecodeEP19ISequentialInStreamP20ISequentialOutStream1EP20IArchiveOpenCallback2EP20IArchiveOpenCallbackOpen2EP9IInStreamP20IArchiveOpenCallbackCloseEvֱOpenSeqEP19ISequentialInStreamExtractEPKjjiP23IArchiveExtractCallbackReleaseEvõ714QueryInterfaceERK4GUIDPPv6AddRefEvDOpenSeqEP19ISequentialInStreamбReleaseEvCSeekToSeqStreamg_Crc64TableInitEǟ4Ͳ14QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEvDReadEPvjPjSeekExjPy16AddRefEv7ReleaseEvD5GetFileTimeTypeEPj1UpdateItemsEP20ISequentialOutStreamjP22IArchiveUpdateCallback4QueryInterfaceERK4GUIDPPv16AddRefEvζ7ReleaseEvԶDڶ3SetPropertiesEPPKwPK14tagPROPVARIANTj4QueryInterfaceERK4GUIDPPvȶ1Ev0Ev2Ev1Ev0Ev1Ev0Ev¶1Ev0Ev1Ev0Ev214OpenEP9IInStreamPKyP20IArchiveOpenCallback5CloseEvº7Ⱥ6AddRefEvD1GetNumberOfPropertiesEPj8GetNumberOfArchivePropertiesEPj2GetArchivePropertyInfoEjPPwPjPt5GetPropertyInfoEjPPwPjPt6GetNumberOfItemsEPj8GetArchivePropertyEjP14tagPROPVARIANT1GetPropertyEjjP14tagPROPVARIANT4QueryInterfaceERK4GUIDPPvЀExtractEPKjjiP23IArchiveExtractCallbackReleaseEv1Ev0EvЌNZ0CopyStream_ExactSizeEP19ISequentialInStreamP20ISequentialOutStreamyP21ICompressProgressInfo٣8CDecoderü11CheckStreamEPKhm14QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEv4D8CodeRealEP19ISequentialInStreamP20ISequentialOutStreamPKyS7_P21ICompressProgressInfo1˾22CCompressionMethodMode8C5CItem4CEcd5ParseEPKh67CCdInfo2C0C31C7CMtProgressMixer2ۊ6CMtProgressMixer5CCacheOutStreamLzmaProgressImp1EncoderտDecoder14CodeEP19ISequentialInStreamP20ISequentialOutStreamPKyS7_P21ICompressProgressInfo6AddRefEv7ReleaseEvD8SetCoderPropertiesEPKjPK14tagPROPVARIANTj4QueryInterfaceERK4GUIDPPv12CLzmaEncoder8CHandler16AddRefEv7ReleaseEvD8SetCoderPropertiesEPKjPK14tagPROPVARIANTj4QueryInterfaceERK4GUIDPPvБAddCommonInArchiveC8CompressEP19ISequentialInStreamP10IOutStreamP21ICompressProgressInfoRNS0_18CCompressingResultED2Ev1ERKNS0_22CCompressionMethodModeE2ERKВNS0_22CCompressionMethodModeES1_Г1Ev0EvЯаб1Ev0EvNCryptoIHasherDɡCCodecsUStringAString4NZip6NWzAes17NSevenZÍ5NSha18C7CCipherEncoderDecoder167ReleaseEvD4QueryInterfaceERK4GUIDPPv1WriteHeaderEP20ISequentialOutStreamjAddRefEvFilterEPhj1Ev0Ev4NZip6NWzAes17NSevenZߔ8C7CCipherEncoderDecoder14QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEvD1Ev0EvD14InitEv1Ev0EvD17CryptoSetPasswordEPKhjߤ1Ev0EvICϔNCommandLineParser7CParserCryptoSetPasswordDExtractCallbackUID1Ev0Evж1Ev0Ev8C1EncoderDecoderAesCtr2C167ReleaseEvD4QueryInterfaceERK4GUIDPPv1WriteAddRefEvFilterEPhj1Ev0Evи8C10CBaseCoderEncoderDecoder14QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEvD1Ev0Ev0CBaseCoder2AesCtr2_D17CryptoSetPasswordEPKhj4InitEv1Ev0EvлD17CryptoSetPasswordEPKhj1Ev0EvC2EaSERKS1_RKS1_vFindNameForIdEPKNS0_13CIdToNamePairEjjIsStrangeItemERKNS0_5CItemE׀HandlerMemRefsD2EvC214OpenEP9IInStreamPKyP20IArchiveOpenCallback5CloseEv76AddRefEvD1Ev2Ev1GetNumberOfPropertiesEPj8GetNumberOfArchivePropertiesEPj2GetArchivePropertyInfoEjPPwPjPt5Get8GetArchivePropertyEjP14tagPROPVARIANT6GetNumberOfItemsEPj14QueryInterfaceERK4GUIDPPv3SetPropertiesEPPKwPK14tagPROPVARIANTjPropertyInfoEjPPwPjPtFileTimeTypeEPjGetPropertyEjjP14tagPROPVARIANTUpdateItemsEP20ISequentialOutStreamjP22IArchiveUpdateCallback7SetCompletedLocalEyy0SetTotalCDEy4SetCompletedCDEyC4CodeEP19ISequentialInStreamP20ISequentialOutStreamPKyS7_P21ICompressProgressInfo14QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEvD1Ev2EvZipDecoderOutArchiveۂThreadInfoExtraBlock22RemoveUnknownSubBlocksEv6DecodeERNS0_10CInArchiveERKNS0_7CItemExEP20ISequentialOutStreamP23IArchiveExtractCallbackP21ICompressProgressInfojRiD2EvExtractEPKjjiP23IArchiveExtractCallbackReleaseEv17CItemExEE8CItemOutEE˓1C4CExtraSubBlockEEMeUpdateItemEE3AddERKS2_ThreadInfoEEthodItemEEmBlocks2EE3AddERKS2_3AddERKS2_D2EvИ1Ev0Ev2EvК16AddRefEv7ReleaseEvD4QueryInterfaceERK4GUIDPPv5GetFileTimeTypeEPj1UpdateItemsEP20ISequentialOutStreamjP22IArchiveUpdateCallback1Ev0EvЛ16AddRefEv7ReleaseEvD4QueryInterfaceERK4GUIDPPv3SetPropertiesEPPKwPK14tagPROPVARIANTj1Ev0EvМ1Ev0EvD2Ev3AddERKS2_D2EvC2ERKS1_aSERKS1_ХC2ERKS3_3AddERKS2_aSERKS3_14QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEvD8CodeRealEP19ISequentialInStreamP20ISequentialOutStreamPKyS7_P21ICompressProgressInfo4CodeEP19ISequentialInStreamP20ISequentialOutStreamPKyS7_P21ICompressProgressInfoЭ1Ev0Ev167ReleaseEvD4QueryInterfaceERK4GUIDPPv0ReadHeaderEP19ISequentialInStreamAddRefEvFilterEPhj1Ev0EvЯ14QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEvDа1Ev0Ev0NZipStrong2CAesCbcCoder4CAesCbc8C10CBaseCoderDecoderKeyInfo11SetPasswordEPKhj16AddRefEv7ReleaseEvD4QueryInterfaceERK4GUIDPPv0ReadHeaderEP19ISequentialInStreamjy3CheckPasswordERb1Ev0Ev0NZipStrong2CAesCbcCoder4CAesCbc8CDecoder10CBaseCoderD14QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEvD1Ev0Ev0NZipStrong2CAesCbcCoder4CAesCbc8CDecoder10CBaseCoderD14QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEvD1Ev0Ev8CDecoder10CBaseCoder14QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEvD1Ev0Evк167ReleaseEvC4InitEvD4QueryInterfaceERK4GUIDPPv2SetFunctionsEj3SetInitVectorEPKhjʜ8SetCoderPropertiesEPKjPK14tagPROPVARIANTj֜AddRefEvFilterEPhjSetKeyEPKhjD17CryptoSetPasswordEPKhj1Ev0Evн167ReleaseEvD4QueryInterfaceERK4GUIDPPv3SetInitVectorEPKhjМAddRefEvSetKeyEPKhjĜ1Ev0Ev16AddRefEv7ReleaseEvD4QueryInterfaceERK4GUIDPPv8SetCoderPropertiesEPKjPK14tagPROPVARIANTjܜ1Ev0EvD17CryptoSetPasswordEPKhj1Ev0EvDecoderDEncoderD1Ev0EvDecoderDEncoderD1Ev0EvDecoderDEncoderDК1Ev0Ev167ReleaseEvD28CheckMacEP19ISequentialInStreamRbۣ4QueryInterfaceERK4GUIDPPv0ReadHeaderEP19ISequentialInStreamϣAddRefEvFilterEPhj1Ev0Ev14QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEvD1Ev0Ev84_N7NCrypto6NWzAes8CDecoder6_N12CFilterCoder14QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEvD21SetDecoderProperties2EPKhjɣ1Ev0Ev1Ev0EvЁCEcd645ParseEPKhUpdateERK13CObjectVectorINS0_7CItemExEERKS1_INS0_11CUpdateItemEEP20ISequentialOutStreamPNS0_10CInArchiveEbPNS0_22CCompressionMethodModeEP22IArchiveUpdateCallback45CloseEv12986OpenEP9IInStreamPKyS7FindAndReadMarkerEP9IInStreamPKy30Read2Read1ReadHeadersER13CObjectVectorINS0_7CItemExEEPNS0_13CProgressVirtE9CreateLimitedStreamEyyeekEykipEj0IncreaseRealPositionEy4ReadLocalItemAfterCdItemERNS0_7CItemExE3ReadLocalItemDescriptorERNS0_7CItemExE8ReadLocalItemAfterCdItemFullERNS0_7CItemExEReadTryReadCdER13CObjectVectorINS0_7CItemExEEyyPNS0_13CProgressVirtEˀBytesEPvjPjExtraEjRNS0_11CExtraBlockERyS4_S4_RjSafeReadBytesEPvjReadLocalItemERNS0_7CItemExEBufferER7CBufferIhEjUIntCdItemERNS0_7CItemExELocalsER13CObjectVectorINS0_7CItemExEEPNS0_13CProgressVirtE݀ДReadByteEvTryEcd64EyRNS0_7CCdInfoE16Ev32Ev64EvSkip64EyFindCdERNS0_7CCdInfoEŀReadCdER13CObjectVectorINS0_7CItemExEERyS6_PNS0_13CProgressVirtEрFileNameEjR7AStringHeaders2ER13CObjectVectorINS0_7CItemExEEPNS0_13CProgressVirtE8ParseEcdEPKh10ParseEcd64EPKh15CItem4CExtraSubBlock15Extract́0CLocalItem5IsDirEvNtfsTimeEjR9_FILETIMEUnixTimeEbjRj5IsDirEv12GetWinAttribEvς4GetPosixAttribERjՂ61˃31PrepareWriteCompressedDataZip64Ejbb27Write߇CreateEP10IOutStreamŃWrite8Ehه04SeekToRelatPosEy܅9WriteCommonItemInfoERKNS0_10CLocalItemEb6WriteLocalHeaderERKNS0_10CLocalItemE2SeekToCurPosEv8WriteCentralHeaderERKNS0_8CItemOutE5WriteCentralDirERK13CObjectVectorINS0_8CItemOutEEPK7CBufferIhEMoveCurPosEyօWrite6Ȇ7PrepareWriteCompressedData2Ejyyb2CreateStreamForCopyingEPP20ISequentialOutStreamPrepareWriteCompressedDataEjybCreateStreamForCompressingEPP10IOutStreamBytesEPKvjӇExtraERKNS0_11CExtraBlockE16Et32Ej64EyЅУffsetOutStreampenCallbackImp14QueryInterfaceERK4GUIDPPv6AddRefEv7D݉45WriteEPKvjPjReleaseEv׉SetSizeEyФ1Ev0Ev1Ev0Ev1D2EvC2ERK1WaitAndCodeEvՊ3StopWaitCloseEv617ReleaseEvǏD͏CreateEP9IProgressbAddRefEv7SetProgressOffsetEy2SetRatioInfoE4QueryInterfaceERK4GUIDPPviPKyS3_PKyS3_617ReleaseEvDCreateEP9IProgressb܌AddRefEv2SetRatioInfoEPKyS3_4QueryInterfaceERK4GUIDPPv8AllocateEv471ÎD5WriteEPKvjPj6AddRefEvInitEP10IOutStreamSeekExjPyMyWriteEmSetSizeEyReleaseEv0FlushCacheEv4QueryInterfaceERK4GUIDPPv0Ev1Ev2EvвЍ1Ev0Ev2Ev1Ev0EvА2C0C9CDynBufSeqOutStream12CopyToBufferER7CBufferIhE1C6CExtrRefSortPair7CompareERKS_MethodPropsƑArchivePath1ƀ19Get_Lzma_NumThreadsERb8Г3AddERKS2_D2Ev1͒6AddRefEv7DЗ45WriteEPKvjPj2SetOutStreamEP10IOutStreamœ4QueryInterfaceERK4GUIDPPv0DetachDataER14CMemLockBlocks7WriteToRealStreamEv3AddERKS2_D2EvD2Evɔ4InitEiP21ICompressProgressInfo6ReinitEi12SetRatioInfoEiPKyS1_СMemBlockManagerMtOutBenchArcCmdLineOptionsD2Ev19FreeЧ16AddRefEv7ReleaseEvD4QueryInterfaceERK4GUIDPPv2SetRatioInfoEPKyS1_Щ1Ev–0EvȖICompressCProgressInfoDSetOutStreamD1Ev0EvReleaseEvʗSetSizeEy1Ev0Ev2EvNS0_22CCompressionMethodModeES1_CompressProgressWrapCBench1EP21ICompressProgressInfo2EP21ICompressProgressInfo 5340֤129768HRESULT_To_SResiiReadStream_FAILP19ISequentialInStreamPvmCrcInternalTestvGetDefaultName2RK7UStringS1_S1_MakeCorrectPathbR13CObjectVectorI7UStringEbeqInStreamWrapCtdInFileStream1EP19ISequentialInStream2EP19ISequentialInStreametdOutFileStreamqOutStreamWrapCekInStreamWrapC1EP20ISequentialOutStream2EP20ISequentialOutStreamSRegisterCodecPK10CCodecInfoUpdatePrintHashStatR13CStdOutStreamRK11CHashBundlešResToHRESULTietPropertiesP8IUnknownRK13CObjectVectorI9CPropertyEortFileNamesRK13CObjectVectorI7UStringER13CRecordVectorIjE1EP9IInStream2EP9IInStreamBOExtentsStreamTailOutStreamMemLockBlocksLocalProgressUpdateOptionsXzCrc64HasheryteenchInBufWrapƠDynBuffer4FreeEv5AllocEj20ReadByteFromNewBlockEvC1Ev2EvyteOutBufWrapءinderInStreamC_К4FreeEv5CAllocEmFlushEv1Ev2EvRegisterHasherPK11CHasherInfoФFindHashMethodRK7UStringRyGetHashMethodsR13CRecordVectorIyEA֪EnumerateItemsRKN9NWildcard7CCensorENS_15ECensorPathModeERK7UStringR9CDirItemsP20IEnumDirItemCallbackParseOpenTypesR7CCodecsRK7UStringR13CObjectVectorI9COpenTypeEFindMethodReadStreamP19ISequentialInStreamPvPmPrintRightR19IBenchPrintCallbackPKcjRK7UStringRyRjS3_ۥyR7UStringCreateCoderyR9CMyComPtrI1ParseMtPropRK7UStringRK14tagPROPVARIANTjRjWriteStreamP20ISequentialOutStreamPKvmRegisterArcPK8CArcInfoGetPasswordP13CStdOutStreamb5ICompressFilterERS_I14ICompressCoderERS_I15ICompressCoder2Ebb4ICompressCoderERS_I15ICompressCoder2EbbCreateStringToBoolRK7UStringRbListArchivesP7CCodecsRK13CObjectVectorI9COpenTypeERK13CRecordVectorIiEbRS1_I7UStringESC_bbRKN9NWildcard11CCensorNodeEbbRbRSA_PKS1_I9CPropertyERySN_myFilteryR9CMyComPtrI15ICompressFilterEbʪHasheryR7UStringR9CMyComPtrI7IHasherEЪutoRenamePathR7UStringīddDirFileInfoiiiRKN8NWindows5NFile5NFind9CFileInfoER13CObjectVectorI8CDirItemEFileStreamBufferBaseD4714QueryInterfaceERK4GUIDPPv6AddRefEv0Ev1Ev¬2EvInFileStreamDeltaD7߮14QueryInterfaceERK4GUIDPPv6AddRefEv0Ev1EvReadEPvjPjڭSeekExjPy4ReadEPvjPj14QueryInterfaceERK4GUIDPPv6AddRefEvñ7ReleaseEvɱDϱGetSizeEPyٮReleaseEvGetSizeEPyReleaseEvutFileStreamneMethodInfo254SeekExjPy714QueryInterfaceERK4GUIDPPv6AddRefEvDCloseEvWriteEPKvjPjSetSizeEyReleaseEv5WriteEPKvjPj14QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEvD1Ev߱0Ev1Ev0Ev1Ev0EvilterCoderreqThreadsD2EvCD145267ReleaseEv1Ev2Ev0Evϳ1Evճ2EvD16AddRefEv7ReleaseEv0Ev1Ev2CFilterCoderҴ3CDeltaEncoderԻ6COpenCallbackImpD4ReadEPvjPj14QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEv0Ev1Ev2CFilterCoder6COpenCallbackImpD16AddRefEv7ReleaseEv0Ev1Ev¼D5WriteEPKvjPj14QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEv0Ev1Evȼ0_N8_N12CFilterCoderĸ12CFilterCoder9NCompress22CArchiveUpdateCallbackD5FlushEv14QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEv0Ev1EvμD16AddRefEv7ReleaseEv0Ev1EvԼD617ReleaseEv0Ev1EvڼDݹ16AddRefEv7ReleaseEv0Ev1EvD20WriteCoderPropertiesEP20ISequentialOutStream14QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEv0Ev1EvD16AddRefEv7ReleaseEv0Ev1EvD21SetDecoderProperties2EPKhj14QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEv0Ev1Ev4;2SetOutStreamEP20ISequentialOutStream6ReleaseOutStreamEv1SetInStreamEP19ISequentialInStream5Re7CryptoSetPasswordEPKhj3SetInitVectorEPKhj8SetCoderPropertiesEPKjPK14tagPROPVARIANTjWriteWithLimitEP20ISequentialOutStreamjQueryInterfaceERK4GUIDPPvCodeEP19ISequentialInStreamP20ISequentialOutStreamPKyS5_P21ICompressProgressInfoReadEPvjPj2SetOutStreamEP20ISequentialOutStream6ReleaseOutStreamEv4QueryInterfaceERK4GUIDPPvWriteEPKvjPjFlushEv7SetInStream_NoSubFilterInitEP19ISequentialInStream0WriteCoderPropertiesEP20ISequentialOutStream1SetDecoderProperties2EPKhj1SetInStreamEP19ISequentialInStream5ReleaseInStreamEv4QueryInterfaceERK4GUIDPPvleaseInStreamEvsetInitVectorEvЉ7CryptoSetPasswordEPKhj4QueryInterfaceERK4GUIDPPvSetKeyEPKhjAddRefEvSetKeyEPKhjAddRefEvЊ3SetInitVectorEPKhj4QueryInterfaceERK4GUIDPPv8SetCoderPropertiesEPKjPK14tagPROPVARIANTj4QueryInterfaceERK4GUIDPPvЋ5ResetInitVectorEv4QueryInterfaceERK4GUIDPPvДЕЖЗИЙ1Ev0EvCompressWriteCoderPropertiesDArchiveOpenSetSubArchiveNameDFolderArchiveExtractCallbackD1Ev0Ev1Ev0Ev1Ev0EvК1Ev0Ev1Ev0EvC49ReadB21ReadByte_FromNewBlockE1Ev2EvInBufferBZip2CrcDirItems6CreateEm4FreeEvInitEvSkipEmlockEvytesEPhmRhvC6CreateEvD15WriteEPKvj1Ev2Ev1Ev2EvУ13WriteToStreamEP20ISequentialOutStreamInitWritingEvWriteToFileEPKvjФD4OpenEPKwj6CreateEPKwb127SetTimeEPK9_FILETIMES5_S5_8SetMTimeEPK9_FILETIME95WriteEPKvjRj1Ev0Ev414QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEvDReadEPvjPjSeekExjPyreateLimitedInStreamP9IInStreamyyPP19ISequentialInStreamonvert414QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEvDReadEPvjPjSeekExjPy414QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEvDReadEPvjPjSeekExjPy414QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEvDReadEPvjPjSeekExjPyйLimitedCachedInStreamArchiveUpdateCallbackUpdateCallbackConsoleӥ414QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEvDReadEPvjPjSeekExjPy5WriteEPKvjPj4SeekExjPy714QueryInterfaceERK4GUIDPPv6AddRefEvDSetSizeEyReleaseEv1Ev0Ev1Ev0Ev1Ev0Ev1Ev0Ev1Ev0Ev1Ev0Ev13Allocate9FreeSpaceEmBlockEvSpaceEvBlockEPv3Allocate9AllocateSpaceAlwaysEPN8NWindows16NSynchronization8CSynchroEmmSpaceEPN8NWindows16NSynchronization8CSynchroEmmBlockEvSpaceEvBlockEPvb4FreeEP18CMemBlockManagerMt7FreeOptEP18CMemBlockManagerMtMemBlocks13WriteToStreamEmP20ISequentialOutStreamOutBuffer16GetProcessedSizeEvBenchInfoArcInfoEx13FindExtensionERK7UString9FreeBlockEiP18CMemBlockManagerMt4FreeEP18CMemBlockManagerMt18SwitchToNoLockModeEP18CMemBlockManagerMt6DetachERS_P18CMemBlockManagerMtPGetFindCharPosInStringPKMyStringLower_AsciiPwROPVARIANT_to_boolRK14tagPROPVARIANTRbarseStringToUInt32RK7UStringRjParsePropToUInt32RK7UStringRK14tagPROPVARIANTRjGetCompressRatingjyyynameWindowToUnix2PKwoderProps7AddPropERK5CProprcThreadsD2EvFindPropEjGetLevelEv8SetParamERK7UStringS2_21ParseParamsFromStringERK7UString6ParseParamsFromPROPVARIANTERK7UStringRK14tagPROPVARIANT1ParseMethodFromStringERK7UString6ParseMethodFromPROPVARIANTERK7UStringRK14tagPROPVARIANTInitEP10IOutStreamySeekExjPy6CreateEj49FlushPartEv5FlushEv14FlushWithCheckEvFreeEvInitEvЇFreeEvInitEvSeekExjPyЈЏАC4InitEP9IProgressb167ReleaseEvD1Ev2Ev2SetRatioInfoEPKyS1_4QueryInterfaceERK4GUIDPPvSetCurEvAddRefEv1Ev0Ev4ReadEPvjPj14QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEvDtha256HasherreamBinderdOutStream4ReadEPvjPj5WriteEPKvjPj16ReInitEvinderOutStreamC֗ranchConverter٘5WriteEPKvjPj14QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEvD2CreateEventsEv3CreateStreamsEPP19ISequentialInStreamPP20ISequentialOutStreamТФ1Ev0Ev1Ev0EvReadEPvjPjSeekExjPyCreate_BufInStream_WithNewBufPKvmPP19ISequentialInStreamRtlSecondsSince1970ToFileTimejP9_FILETIME4FreeEv14EnsureCapacityEmЬ45AllocEjj14QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEvDFreeEvInitEyReadEPvjPjSeekExjPyд1Ev0Ev14QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEvD1Ev0EvмReadStream_FALSEP19ISequentialInStreamPvmGetParseComplexSizePKwRyCompareFileNamesPKwS0_SplitPathToPartsRK7UStringR13CObjectVectorIS_E7AddUniqEPKhm13GetReverseMapEvUniqBlocks19GetTotalSizeInBytesEvArcCommand1ܥRenamePair10GetNewPathEbRK7UStringRS0_9InitTableEv5TableEBZip2Lzma26CState85CBase19CEncProps9NormalizeEi5AllocEv4FreeEv6CreateEv1D2EvCIsEndSigEPKhDecoderEncoder8CD4617ReleaseEvReadByteEvCodeRealEP19ISequentialInStreamP20ISequentialOutStreamP21ICompressProgressInfo8ReadBitsEj7ReadBitEv9ReadBlockEPjjPNS0_11CBlockPropsE1Ev2Ev0Ev1Ev2EvBZip2Lzma28C8C12CNsisDecoderDecoderEncoderD16AddRefEv7ReleaseEv0Ev1EvFreeEvCodeEP19ISequentialInStreamP20ISequentialOutStreamPKyS7_P21ICompressProgressInfoCreateEvAddRefEv0IsBlockSigEPKh2CNsisDecoder1CThreadInfo݃3ReadSignatureERj06SetRatioProgressEy1SetInStreamEP19ISequentialInStream5ReleaseInStreamEv8SetNumberOfThreadsEj4QueryInterfaceERK4GUIDPPvDecodeFileEP21ICompressProgressInfoCodeResumeEP20ISequentialOutStreamP21ICompressProgressInfoЎ2FinishStreamEv0ThreadFuncEv8SetNumberOfThreadsEj4QueryInterfaceERK4GUIDPPvЙ14ReadEPvjPj6AddRefEv7ReleaseEvD1SetInStreamEP19ISequentialInStream5ReleaseInStreamEv6SetOutStreamSizeEPKy4QueryInterfaceERK4GUIDPPv16AddRefEvł7ReleaseEv˂Dт1SetInStreamEP19ISequentialInStream5ReleaseInStreamEv4QueryInterfaceERK4GUIDPPvBZip2Lzma28C12CNsisDecoder8CEncoder16AddRefEv7ReleaseEvD6SetOutStreamSizeEPKy4QueryInterfaceERK4GUIDPPv20ELj258EE1р14SetCodeLengthsEPKh2DecodeSymbolIN5NBitm8CDecoderI9CInBufferEEEEjPT_Decoder10GetAndMoveEjEncoder11FindAndMoveEhЬЯ1Ev0Ev2Ev1Ev0Evг1Ev0EvеCoderMtDBufSizeD1Evу0Ev׃5AllocEv4FreeEv6CreateEvDŽ1̈́9Write݉22EncodeBlockWithHeadersEPKhjD2Ev201EncodeBlockEPKhjFinishStreamEbEncodeBlockɆThreadFuncEvWriteB1CD469WriteB87ReleaseEv2ReadRleBlockEPhÆ0WriteBytesEPKhjh8SetNj4QueryInterfaceERK4GUIDPPv3Ej݆2EPKhjj1Ev2Ev0Ev1Ev2EvDχ16AddRefEvō7ReleaseEvˍ0Ev߇1EvD16AddRefEv׍7ReleaseEvݍ0Ev1EvFreeEvCodeEP19ISequentialInStreamP20ISequentialOutStreamPKyS7_P21ICompressProgressInfoCreateEvAddRefEvits2Ejjщyte2Eh׉Bit2EbCrc2EjitsEjjyteEhWriteCodeRealEP19ISequentialInStreamP20ISequentialOutStreamPKyS7_P21ICompressProgressInfoBitEbCrcEjCoderPropertiesEPKjPK14tagPROPVARIANTjNumberOfThreadsEj8SetCoderPropertiesEPKjPK14tagPROPVARIANTj܌4QueryInterfaceERK4GUIDPPv8SetNumberOfThreadsEj4QueryInterfaceERK4GUIDPPvэгmEncoderI10COutBufferE5FlushEvlEncoder9WriteBitsEjjŸеBcj28CȎLzmaPpmdEncoderDecoderD5FlushEv8CodeRealEPP19ISequentialInStreamPPKyjPP20ISequentialOutStreamS7_jP21ICompressProgressInfo4CodeEPP19ISequentialInStreamPPKyjPP20ISequentialOutStreamS7_jP21ICompressProgressInfo14QueryInterfaceERK4GUIDPPv̖6AddRefEvҖ7ReleaseEvؖ0Ev1Ev2Ev1C8CodeRealEPP19ISequentialInStreamPPKyjPP20ISequentialOutStreamS7_jP21ICompressProgressInfo4CodeEPP19ISequentialInStreamPPKyjPP20ISequentialOutStreamS7_jP21ICompressProgressInfo6AddRefEv7ReleaseEvD2SetInBufSizeEjj͓3SetOutBufSizeEjj4QueryInterfaceERK4GUIDPPvޖBcj28CDecoderLzma8CPpmd8C16AddRefEv7ReleaseEvD2SetInBufSizeEjj3SetOutBufSizeEjj4QueryInterfaceERK4GUIDPPv1Ev2Ev8C11CBitEncoder9FlushDataEvDecoder4InitEvEncoderILj5EE6EncodeEPNS0_8CEncoderEjDecoderILj5EE6DecodeEPNS0_8CDecoderEƖ1Ev0Ev1Ev0Ev1Evʗ0EvЗJ_x86__EncoderDecoder9SubFilterEPhjDޙ7SubInitEv9SubFilterEPhjӘD7SubInitEv14QueryInterfaceERK4GUIDPPv67D4InitEvĚAddRefEvFilterEPhjʚReleaseEvؙSubInitEv1Ev0Ev1Ev0Ev1Ev0EvARM_PPC_EncoderDecoder9SubFilterEPhjD9SubFilterEPhjDARMT_̛IA64_ΝEncoderDecoder9SubFilterEPhjDܞ9SubFilterEPhjDEncoderDecoderٜ9SubFilterEPhjӜD9SubFilterEPhjDEncoderDecoder9SubFilterEPhjD̟9SubFilterEPhjȝDEncoderDecoder9SubFilterEPhjD9SubFilterEPhjD1Ev0Ev1EvО0Ev֞1Ev0Ev1Ev0Ev1Ev0Ev1Ev0EvƟ1Evܟ0Ev1Ev0Ev1Ev0Ev1Ev0Ev2Ƞ44InitEv614QueryInterfaceERK4GUIDPPv7ReleaseEvDFilterEPhjAddRefEv4InitEv614QueryInterfaceERK4GUIDPPv΢7ReleaseEvڢDFilterEPhjAddRefEvԢ1Ev¢0EvȢ1Ev0Ev0Ev1Ev2Ev0Ev1EvЂ1CCOMCoder646Huffman_GetPriceEPKjPKhjö9Huffman_ReverseBitsEPjPKhj16AddRefEv7ReleaseEvD4CodeEP19ISequentialInStreamP20ISequentialOutStreamPKyS8_P21ICompressProgressInfo4QueryInterfaceERK4GUIDPPv8SetCoderPropertiesEPKjPK14tagPROPVARIANTj1Ev0Ev1̦6AddRefEv7ReleaseEvD4QueryInterfaceERK4GUIDPPv8SetCoderPropertiesEPKjPK14tagPROPVARIANTj1Ev0Ev§1Evا0Evާ1Ev0Ev1Ev0EvЏ1Ev0Ev1EvȨ0EvΨ1Ebb2EbbReadBitsEjCodeϪadAlignedByteEvleaseInStreamEvDeCodeLevelTableEPhjSetOutStreamSizeEPKyReadTablesEvɪCodeResumeEP20ISequentialOutStreamPKyP21ICompressProgressInfoɬSpecEjbRealEP20ISequentialOutStreamPKyP21ICompressProgressInfoCodeEP19ISequentialInStreamP20ISequentialOutStreamPKyS8_P21ICompressProgressInfoReadEPvjPj8CDecoderI9CInBufferE8ReadBitsEj12kInvertTableE26g_InverterTableInitializerE5ELj6ELj19EE1߭288EE132EE12DecodeSymbolIN5NBitl8CDecoderI9CInBufferEEEEjPT_4SetCodeLengthsEPKh4SetCodeLengthsEPKh2DecodeSymbolIN5NBitl8CDecoderI9CInBufferEEEEjPT_4SetCodeLengthsEPKh2DecodeSymbolIN5NBitl8CDecoderI9CInBufferEEEEjPT_9CopyBlockEjj4InitEb1Ev0Ev 8C²6CreateEv޲25BaseSetEncoderProperties2EPKjPK14tagPROPVARIANTj4FreeEvD17MovePosEj9SetPropsEPKNS1_9CEncPropsEBaTryBlockEvCodeRealEP19ISequentialInStreamP20ISequentialOutStreamPKyS8_P21ICompressProgressInfo1EbҲ2Ebز1Ev2Ev0451TryDynBlockEijη3ԷGet޳MakeTablesEjWriteBlockEv·MatchesEvOptimalERjckwardERjjseCodeEP19ISequentialInStreamP20ISequentialOutStreamPKyS8_P21ICompressProgressInfoGetOptimalFastERjLevelTableCodeEPKhiS4_PKjLevelTableDummyEPKhiPjWriteStoreBlockEjjbȷWriteBitsEjiSetPricesERKNS0_7CLevelsECodeBlockEibNCDirItems1Compress8NDeflate8NEncoder6CCoder15GetLzBlockPriceEvWildcardTryFixedBlockEiGetBlockPriceEiiЪEncoderDecoderͼ4InitEv6Ź120WriteCoderPropertiesEP20ISequentialOutStreamλ7ReleaseEvҾDؾFilterEPhjAddRefEv̾8SetCoderPropertiesEPKjPK14tagPROPVARIANTj4QueryInterfaceERK4GUIDPPvƾEncoderӺDecoder߽16AddRefEv7ReleaseEvD8SetCoderPropertiesEPKjPK14tagPROPVARIANTjȻ4QueryInterfaceERK4GUIDPPv20WriteCoderPropertiesEP20ISequentialOutStreamǼ14QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEvD4InitEv621SetDecoderProperties2EPKhjٽ14QueryInterfaceERK4GUIDPPvп7ReleaseEvܿDFilterEPhjӽAddRefEvֿ21SetDecoderProperties2EPKhj14QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEvD1Ev0Ev1Ev0Ev1EvĿ0Evʿ1Ev0Ev1Ev0EvDecoder6CCoderHuffman8CDecoderC18CodeRealEP19ISequentialInStreamP20ISequentialOutStreamPKyS8_P21ICompressProgressInfo4CodeEP19ISequentialInStreamP20ISequentialOutStreamPKyS8_P21ICompressProgressInfo21SetDecoderProperties2EPKhj6AddRefEv7ReleaseEvD1Ev2Ev40ReadTablesEvReadLevelItemsERNS0_8NHuffman8CDecoderEPhiQueryInterfaceERK4GUIDPPv21SetDecoderProperties2EPKhj14QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEvD1Ev0Ev2Ev1Ev0EvCD11Ej2Ej1Ev2Ev4SetCodeLengthsEPKh2DecodeSymbolEPN5NBitl8CDecoderI9CInBufferEE8C12SetLzma2PropEjRK14tagPROPVARIANTR14CLzma2EncPropsDecoderEncoderCD2146AddRefEv7ReleaseEv1Ev2Ev0Ev1Ev2EvDecoderEncoderD21SetDecoderProperties2EPKhj14QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEv0Ev1EvDecoderEncoderD24GetInStreamProcessedSizeEPy14QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEv0Ev1EvD16AddRefEv7ReleaseEv0Ev1EvD16AddRefEv7ReleaseEv0Ev1Ev6NLzma28CDecoder5NLzma8CDecoderD4ReadEPvjPj14QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEv0Ev1Ev1SetDecoderProperties2EPKhj4GetInStreamProcessedSizeEPy1SetInStreamEP19ISequentialInStream5ReleaseInStreamEv6SetOutStreamSizeEPKy4QueryInterfaceERK4GUIDPPv1SetInStreamEP19ISequentialInStream5ReleaseInStreamEv4QueryInterfaceERK4GUIDPPv6SetOutStreamSizeEPKy4QueryInterfaceERK4GUIDPPvCodeEP19ISequentialInStreamP20ISequentialOutStreamPKyS7_P21ICompressProgressInfoReadEPvjPjЄЅІCD120WriteCoderPropertiesEP20ISequentialOutStream4CodeEP19ISequentialInStreamP20ISequentialOutStreamPKyS7_P21ICompressProgressInfo6AddRefEv7ReleaseEv1Ev2Ev0Ev1Ev2EvD16AddRefEv7ReleaseEv0Ev1EvD20WriteCoderPropertiesEP20ISequentialOutStream14QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEv0Ev1Ev8SetCoderPropertiesEPKjPK14tagPROPVARIANTj4QueryInterfaceERK4GUIDPPv8SetCoderPropertiesEPKjPK14tagPROPVARIANTj4QueryInterfaceERK4GUIDPPvАГЕ8C11SetLzmaPropEjRK14tagPROPVARIANTR14_CLzmaEncPropsDecoderEncoderCD128CodeSpecEP19ISequentialInStreamP20ISequentialOutStreamP21ICompressProgressInfo46AddRefEv7ReleaseEv1Ev2Ev0Ev1Ev2EvDecoderEncoderD21SetDecoderProperties2EPKhj14QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEv0Ev1EvLzma8CPpmd8CDecoderEncoderD16AddRefEv7ReleaseEv0Ev1EvLzma8CDecoderPpmd8CDecoderD16AddRefEv7ReleaseEv0Ev1EvLzma8CDecoderPpmd8CDecoderD16AddRefEv7ReleaseEv0Ev1EvD4ReadEPvjPj14QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEv0Ev1Ev 2SetInBufSizeEjj3SetOutBufSizeEjj7CreateInputBufferEv6SetOutStreamSizeEPKy1SetInStreamEP19ISequentialInStream5ReleaseInStreamEv0CodeResumeEP20ISequentialOutStreamPKyP21ICompressProgressInfo9ReadFromInputStreamEPvjPj4QueryInterfaceERK4GUIDPPv2SetInBufSizeEjj3SetOutBufSizeEjj4QueryInterfaceERK4GUIDPPvР1SetDecoderProperties2EPKhj2SetOutStreamSizeResumeEPKy6SetOutStreamSizeEPKy4QueryInterfaceERK4GUIDPPvCodeEP19ISequentialInStreamP20ISequentialOutStreamPKyS7_P21ICompressProgressInfoReadEPvjPj1SetInStreamEP19ISequentialInStream5ReleaseInStreamEv4QueryInterfaceERK4GUIDPPvеийкCD120WriteCoderPropertiesEP20ISequentialOutStream4CodeEP19ISequentialInStreamP20ISequentialOutStreamPKyS7_P21ICompressProgressInfo6AddRefEv7ReleaseEv1Ev2Ev0Ev1Ev2EvD16AddRefEv7ReleaseEv0Ev1EvD20WriteCoderPropertiesEP20ISequentialOutStream14QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEv0Ev1Ev8SetCoderPropertiesEPKjPK14tagPROPVARIANTj4QueryInterfaceERK4GUIDPPv8SetCoderPropertiesEPKjPK14tagPROPVARIANTj4QueryInterfaceERK4GUIDPPv20Cx86ConvertOutStream8CDecoder10NBitStream8CDecoder9NormalizeEv156AddRefEv7ReleaseEvD5MakeTranslationEv4QueryInterfaceERK4GUIDPPvWriteEPKvjPjFlushEv1Ev0Ev C5FlushEv8914CodeEP19ISequentialInStreamP20ISequentialOutStreamPKyS7_P21ICompressProgressInfo6AddRefEv7ReleaseEvD1Eb2EbReadBitsEjCodeReadTableEPhS2_jSetParamsEj0ReadTablesEv5ClearPrevLevelsEv6SetOutStreamSizeEPKy4QueryInterfaceERK4GUIDPPvSpecEjRealEP19ISequentialInStreamP20ISequentialOutStreamPKyS7_P21ICompressProgressInfo28EE1656EE10EE149EE14SetCodeLengthsEPKh2DecodeSymbolINS_4NLzx10NBitStream8CDecoderEEEjPT_4SetCodeLengthsEPKh2DecodeSymbolINS_4NLzx10NBitStream8CDecoderEEEjPT_4SetCodeLengthsEPKh2DecodeSymbolINS_4NLzx10NBitStream8CDecoderEEEjPT_ 4SetCodeLengthsEPKh2DecodeSymbolINS_4NLzx10NBitStream8CDecoderEEEjPT_ Ќ      1Ev0Ev  8C9CEncProps9NormalizeEiDecoderEncoderD21SetDecoderProperties2EPKhj8CodeSpecEPhj416AddRefEv7ReleaseEvC2EvĂ0Ev1Ev2Ev  DecoderEncoderD21SetDecoderProperties2EPKhj14QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEv0Ev1Ev DecoderEncoderD16AddRefEv7ReleaseEv0Ev1Ev D16AddRefEv7ReleaseEv0Ev1Ev D4ReadEPvjPj14QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEv0Ev1Ev       И  CodeEP19ISequentialInStreamP20ISequentialOutStreamPKyS7_P21ICompressProgressInfoReadEPvjPj 6SetOutStreamSizeEPKy1SetInStreamEP19ISequentialInStream5ReleaseInStreamEv4QueryInterfaceERK4GUIDPPv 6SetOutStreamSizeEPKy4QueryInterfaceERK4GUIDPPv  1SetInStreamEP19ISequentialInStream5ReleaseInStreamEv4QueryInterfaceERK4GUIDPPv   С   Ф      Х      Ц   CD1Ԁ20WriteCoderPropertiesEP20ISequentialOutStream4CodeEP19ISequentialInStreamP20ISequentialOutStreamPKyS7_P21ICompressProgressInfo6AddRefEv7ReleaseEv1Ev2Ev  0Ev1Ev2Ev€  D16AddRefEv7ReleaseEv0Ev1EvȀ D20WriteCoderPropertiesEP20ISequentialOutStream14QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEv0Ev1Ev΀ Ь   8SetCoderPropertiesEPKjPK14tagPROPVARIANTj4QueryInterfaceERK4GUIDPPv 8SetCoderPropertiesEPKjPK14tagPROPVARIANTj4QueryInterfaceERK4GUIDPPvв      и        8C9CEncProps9NormalizeEiDecoderEncoderCD4CodeEP19ISequentialInStreamP20ISequentialOutStreamPKyS7_P21ICompressProgressInfo14QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEv1Eb2Eb  0Ev҄1Ev؄2Evބ     D1݆C4CodeEP19ISequentialInStreamP20ISequentialOutStreamPKyS7_P21ICompressProgressInfo6AddRefEv7ReleaseEvň0Ev1Ev2Evц  D16AddRefEvш7ReleaseEv׈0Evˆ1Ev׆   8SetCoderPropertiesEPKjPK14tagPROPVARIANTj4QueryInterfaceERK4GUIDPPv 8SetCoderPropertiesEPKjPK14tagPROPVARIANTj4QueryInterfaceERK4GUIDPPvˈ 1Ev2Ev            InitEvCodeEP19ISequentialInStreamP20ISequentialOutStreamPKyS7_P21ICompressProgressInfo SpecEjRealEP19ISequentialInStreamP20ISequentialOutStreamPKyS7_P21ICompressProgressInfo     13CModelDecoder6DecodeEPNS1_8CDecoderE8CDecoder6DecodeEjjj    FreeEvCodeEP19ISequentialInStreamP20ISequentialOutStreamPKyS7_P21ICompressProgressInfo 0Ev1Ev2Ev    !!NCryptoCCodecsAStringҷUString7NSevenZ8CKeyInfo9IsEqualToERKS1_5NSha112CContextBase12PrepareBlockEPjj!8Cڍ15CBaseKeyInfo15CalculateDigestEvEncoderDecoder!3CKeyInfoCache0CBaseCoder4FindERNS0_8CKeyInfoE3AddERNS0_8CKeyInfoED1Ev!!C15CalculateDigestEv1Ev2Ev!!!120WriteCoderPropertiesEP20ISequentialOutStreamˑ6AddRefEv7ReleaseEvD5ResetInitVectorEv2CreateFilterEv4QueryInterfaceERK4GUIDPPv!16AddRefEv7ReleaseEvD5ResetInitVectorEvő4QueryInterfaceERK4GUIDPPvڗ!!EncoderDecoder20WriteCoderPropertiesEP20ISequentialOutStreamܒ14QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEvD!!21SetDecoderProperties2EPKhj16AddRefEv͘7ReleaseEvӘD٘!21SetDecoderProperties2EPKhj14QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEvD!17CryptoSetPasswordEPKhjٔ4InitEv6FilterEPhjDН!10CBaseCoder8C17CryptoSetPasswordEPKhjD!!!2CreateFilterEvߕ4QueryInterfaceERK4GUIDPPvǘ!Т!!!!!!1Ev0Ev!!EncoderDecoder14QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEvD!!!1Ev0Ev!!!!!1EvΗ0Evԗ!!Ъ!!!1Ev0Ev!!1Ev0Ev2Ev!!1Ev0Ev!!!Ю!!1Ev0Ev!!14QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEv™Dș!!!1Evؙ0Evޙ!!!!!1Ev0Evг!!!1Ev0Ev!!1EvĚ0Evʚ!!1Ev0Ev!!5CHmac7CHmac32›18CContext6SetKeyEPKhm5FinalEPhm!н!6SetKeyEPKhm5FinalEPjm16GetLoopXorDigestEPjj!!!1Ebj2Ebj!!!!!!!!!!!1Ev0Ev!!1Ev0Ev!!1Ev0Ev!!02Pbkdf2HmacEPKhmS2_mjPhmCContext32П!Pbkdf2Hmac32EPKhmPKjmjPjmCContextBaseҞ!4InitEvƞ8GenerateEPhj̞!!4InitEv14GetBlockDigestEPjS2_b!!!6UpdateEPKhm9UpdateRarEPhmbğ5FinalEPhʟ!!!6UpdateEPKjm5FinalEPj!!4InitEv65FinalEPh۠17ReleaseEvD!UpdateEPKvjՠAddRefEv!!3GetDigestSizeEv4QueryInterfaceERK4GUIDPPv!!!!1Ev0Evá!!1Ev١0Evߡ!!"""InitEPNS0_8CAesCtr2ECodeEPNS0_8CAesCtr2EPhm"HeaderEP20ISequentialOutStreamFooterEP20ISequentialOutStream""1SetDecoderProperties2EPKhjã3CheckPasswordVerifyCodeEvգ"""""1Ev2Ev"""Ѝ""0UpdateKeysEhӤ7CryptoSetPasswordEPKhj٤5DecryptByteSpecEv"""""""""""""О"CD1Ev1EPKcPKwХ2EPKcPKw֥""8IsFromExtractGroupEv1GetPathModeEv7IsFromUpdateGroupEv"""CĦ6Parse1EvԦ2EvڦЦ""1ERK13CObjectVectorI7UStringER18CArcCmdLineOptions2ER18CArcCmdLineOptionsک"EŨArchive_IsItem_AltStreamP10IInArchivejRbConvertMultiByteToUnicodeStringRK7AStringjUnicodeStringToMultiByteRK7UStringjnumerateDirItemsAndSortbRN9NWildcard7CCensorENS_15ECensorPathModeERK7UStringR13CObjectVectorIS3_ES8_ԩxtractDirPrefixFromPathRK7UString"""""aSERKS1_3AddERKS0_ݭD2Ev"3AddERKS0_D2Ev"Path̪LinkD2EvC2E13ParseFromPathERK7UString12EArcNameMode"RKS_v""5C11CCensorެPairEEիItemEED2Ev3AddERKS1_#11CCensorNode7CCensorD2Evج137AddItemEbR8AddItem2EbRK7UStringbbC2ERKS0_#NodeEEPathEE6AddNewEvD2Ev3AddERKS1_C2ERKS2_#D2Ev׭3AddERKS1_pLERKS2_C2ERKS2_##RenamePairEArcExtInfoE6AddNewEvD2Ev#D2Ev19AddPrefixEiiRK7UStringC8AddErrorERK7UStringj#StreamWithHashMultiVolStream5WriteEPKvjPj14QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEvD#CIArchiveExtractCallbackExtractCallbackConsole C4InitERK17CExtractNtOptionsPKN9NWildcard11CCensorNodeEPK4CArcP29IFolderArchiveExtractCallbackbbRK7UStringRK13CObjectVectorISC_Ey8SetTotalEy1279GetStreamEjPP20ISequentialOutStreami6AddRefEvD1Ev2Ev####2Set3GetUnpackSizeEv67SendMessageError2EPKcRK7UStringS4_8SetOperationResultEi4QueryInterfaceERK4GUIDPPvCompletedEPKyRatioInfoEPKyS1_DirsTimesEv##3CArchiveExtractCallback2CArchiveUpdateCallback1ݴ6AddRefEv7ReleaseEvD2SetRatioInfoEPKyS1_4QueryInterfaceERK4GUIDPPvМ#2CreateComplexDirectoryERK13CObjectVectorI7UStringERS1_1CryptoGetTextPasswordEPPw#GetTimeEijR9_FILETIMERbReleaseEv##SendMessageErrorEPKcRK7UStringPrepareOperationEi##714QueryInterfaceERK4GUIDPPvѹ6AddRefEv׹DGetPropEjP14tagPROPVARIANTݷReleaseEvݹ#####ArchiveExtractCallbackExtractCallbackConsole̚21CryptoGetTextPasswordEPPw14QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEvDƺ######1EvŹ0Ev˹#####1Ev0Ev#####1Ev0Ev2Ev#####1Evֺ0Evܺ#####1Ev0Ev##6CExtrRefSortPairE12SortRefDown2EPS0_jjܻ2C1CUpdatePairE3AddES0_•##1Ev0Ev##ArchiveCryptoGetTextPassword2DExtractCallbackDּUpdateCallback2D1Ev0Ev##1Ev0Ev## 8SetTotalEPKyS1_19GetStreamEPKwPP9IInStream21CryptoGetTextPasswordEPPw6AddRefEv7ReleaseEvD4InitERK7UStringS2_C2Ev#2SetCompletedEPKyS1_1GetPropertyEjP14tagPROPVARIANT4QueryInterfaceERK4GUIDPPv7SetSubArchiveNameEPKw##OpenCallbackImpտInFileStreamVolD19GetStreamEPKwPP9IInStream6AddRefEv7ReleaseEvD1GetPropertyEjP14tagPROPVARIANT4QueryInterfaceERK4GUIDPPv##$$21CryptoGetTextPasswordEPPw14QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEvD$$$$1Ev0Ev2Ev$$$$$$1Ev0EvЈ$$16AddRefEv7ReleaseEvD4QueryInterfaceERK4GUIDPPv7SetSubArchiveNameEPKw$$$1Ev0Ev$$$Њ$$$1Ev0Ev$$$1Ev0Ev2Ev$$1Ev0Ev$$$1Ev0Ev$Б$markInStreamProgressInfo4ReadEPvjPj14QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEvD$5WriteEPKvjPj14QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEvD$5WriteEPKvjPj14QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEvDГ$InfoCalc1Encoders2SetStartTimeEv3SetFinishTimeER10CBenchInfo$$16AddRefEv7ReleaseEvD2SetRatioInfoEPKyS1_4QueryInterfaceERK4GUIDPPv$8Get17GetRatingPerUsageEyUsageEvSpeedEy$$$6SetLzmaCompexityEv7GetCompressRatingEjyyy9GetDecompressRatingEyyyyy$$$$DecompressRatingyyyyyBenchMemoryUsagejj$4InitERK14COneMethodInfojjP20CBaseRandomGenerator6D2Ev20C2Ev$EncodeEvDecodeEj$$$$CallbackToPrintRandomGenerator715Set5PrintEPKcSetFreqEbyNewLineEv$EncodeResultERK10CBenchInfobDecodeResultERK10CBenchInfob$$$$PCheckUTF8PKcrintLeftR19IBenchPrintCallbackPKcjarseTypeR7CCodecsRK7UStringR9COpenType$$BenchP19IBenchPrintCallbackP14IBenchCallbackRK13CObjectVectorI9CPropertyEjbMain2iPPc$8GenerateEjD%1Ev0Ev%%%%1Ev0Ev%%%%%1Ev0Ev%%1Ev0Ev%%%%%1Ev0Ev%%%%%1Ev0Ev%%%%&D2EvC2EjЃ&&1Ev0Ev&DecodeThreadFunctionEPvEncodeThreadFunctionEPv&&Ѝ&&Г&&&5GetPrefixesPathERK13CRecordVectorIiEiRK7UString0Get&PhyPathEjLogPathEj&К&1ReserveDownEv6DeleteLastPrefixEv2EnumerateDirEiiRK7UString5EnumerateItems2ERK7UStringS2_RK13CObjectVectorIS0_EPS4_&&&1Ev2Ev&&&Ч&&DirItemE3AddERKS0_ArcItemE1&&&FindName9CFi1ndFileleInfo4FindEPKwbD2Ev5CloseEv9FindFirstEPKwRNS1_9CFileInfoEb8FindNextERNS1_9CFileInfoE&1CEnumerator32DoesDirExistEPKw8DoesFileOrDirExistEPKwC2ERK7UString7NextAnyERNS1_9CFileInfoE4NextERNS1_9CFileInfoE&Find_FileName_InSortedVectorRK13CObjectVectorI7UStringERKS0_ConvertPropertyToShortStringPcRK14tagPROPVARIANTjb&&C2ERKS1_3AddERKS0_Ј'D2EvC2Ev19KeepModeForNextOpenEv57ReleaseEv4OpenER12COpenOptions6ReOpenER12COpenOptions'D2Ev3AddERKS0_'D2Ev16ReOpenERK12COpenOptionsC2E'''akePathNameFromPartsRK13CObjectVectorI7UStringEyStringCompareNoCasePKwS0_Г'CoArchive_GetItemBoolPropP10IInArchivejjRbMyStringCompareNoCase_NPKwS0_jExtractFileNameFromPathRK7UStringDoesNameContainWildcardRK7UStringrrect_IfEmptyLastPartR13CObjectVectorI7UStringEnvert'CorrectFsPathRK7UStringFullPathNameWPKwjPwPS1_'GetScanUserYesNoAllQuitP13CStdOutStreamConvertCorrectFullFsPathRK7UStringOpenArcErrorFlagsRKN8NWindows4NCOM12CPropVariantEPb'16UpdateEPKvj7SetSizeEy5FinalEbbRK7UString0SetMethodsERK13CObjectVectorI7UStringE4InitForNewFileEv'''''HashCalcRKN9NWildcard7CCensorERK12CHashOptionsR7UStringP15IHashCallbackUIBenchConRK13CObjectVectorI9CPropertyEjP7__sFILE'AGetModuleDirPrefixvConvertUIntSplitPathToParts_2RK7UStringRS_S2_mySplitCommandLineiPPcR13CObjectVectorI7UStringEddHashHexToStringPcPKhjrchive_IsItem_AuxP10IInArchivejRb'6AddNewEvD2Ev'''''7AddExtsERK7UStringS2_C2ERKS_D2Ev'4LoadEv14QueryInterfaceERK4GUIDPPv6AddRefEvæ7ReleaseEvɦDϦ'214FindFormatForArchive2FindFormatForExtensionERK7UStringNameERK7UStringTypeERK7UString'''R13CRecordVectorIiE'3AddERKS0_D2EvC2ERKS1_'ArcInfoExEFieldInfoE3AddERKS0_D2Ev''''''8CHandler10CParseItemC2E1724OpenEP9IInStreamPKyP20IArchiveOpenCallback5CloseEv9GetStreamEjPP19ISequentialInStream6AddRefEvD3FindInsertPosERKNS0_10CParseItemE45GetPropertyInfoEjPPwPjPt8GetArchivePropertyEjP14tagPROPVARIANT6GetNumberOfItemsEPj1GetPropertyEjjP14tagPROPVARIANT'AddUnknownItemEyQueryInterfaceERK4GUIDPPv'AddItemERKNS0_10CParseItemEExtractEPKjjiP23IArchiveExtractCallbackReleaseEv'1GetNumberOfPropertiesEPj8GetNumberOfArchivePropertiesEPj2GetArchivePropertyInfoEjPPwPjPt''''''''''Ђ(9GetStreamEjPP19ISequentialInStream14QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEvDЃ(((((Archive_IsItem_DeletedP10IInArchivejRbGetOpenArcErrorMessagejIsPath1PrefixedByPath2PKwS0_SplitPathToParts_SmartRK7UStringRS_S2_WaitForMultipleObjectsjPKPN8NWindows16NSynchronization15CBaseHandleWFMOEij(9GetItemPathToParentEjjR13CObjectVectorI7UStringE1GetItem2GetItem(PathEjR7UStringSizeEjRyRb(Path2EjR7UStringMTimeEjR9_FILETIMERb(Б((21CryptoGetTextPasswordEPPw8SetTotalEPKyS1_16AddRefEv7ReleaseEvD(21CryptoGetTextPasswordEPPw14QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEvD((2SetCompletedEPKyS1_4QueryInterfaceERK4GUIDPPv(((43PrepareToOpenERK12COpenOptionsjR9CMyComPtrI10IInArchiveE1OpenStream2ERK12COpenOptions0OpenStreamERK12COpenOptions6OpenStreamOrFileER12COpenOptionsReadBasicPropsEP10IInArchiveyiCheckZerosTailERK12COpenOptionsy(((8SetTotalEy19GetStreamEjPP20ISequentialOutStreami6AddRefEv7ReleaseEvD(2Set6PrepareOperationEi8SetOperationResultEi4QueryInterfaceERK4GUIDPPvCompletedEPKyRatioInfoEPKyS1_Ф((16AddRefEv7ReleaseEvD2SetRatioInfoEPKyS1_4QueryInterfaceERK4GUIDPPv((((()))CloseEvOpen2ER12COpenOptionsP15IOpenCallbackUI)))))))))3AddERKS2_5ClearEv10DeleteBackEvD2Ev))5CreateInArchiveEjR9CMyComPtrI10IInArchiveE6CreateOutArchiveEjR9CMyComPtrI11IOutArchiveE))))))))1Ev0Ev)))))1Ev0Ev)))))1Ev0Ev))***1Ev0Ev*Ђ****1Ev0Ev***І**1Ev0Ev**RKS_v*RKS1_v***1Ev0Ev**1Ev0EvД**OpenCallbackDGetRootPropsD1Ev0Ev***И*WinAttribToStringPcjOctStringToUIntHexStringToUInt**PropertyToStringR7UStringRK14tagPROPVARIANTjbNtSecureToStringPKhjR7AStringFileTimeToStringRK9_FILETIMEP*****5ClearEvD2Ev**58SetMTimeEPK9_FILETIME4SeekExjPy714QueryInterfaceERK4GUIDPPv6AddRefEvDžDӅCloseEvWriteEPKvjPj****SetSizeEyReleaseEvͅ**2GetFinalPathEv5GetFinalVolPathEv1GetTempPathEv***1D2EvC2Ev5InitFormatIndexEPK7CCodecsRK13CObjectVectorI9COpenTypeERK7UString0SetArcPathEPK7CCodecsRK7UString****ArchiveP7CCodecsRK13CObjectVectorI9COpenTypeERK7UStringRN9NWildcard7CCensorER14CUpdateOptionsR16CUpdateErrorInfoP15IOpenCallbackUIP18IUpdateCallbackUI2bńProduceRK13CRecordVectorI11CUpdatePairERKN14NUpdateArchive10CActionSetERS_I12CUpdatePair2EP22IUpdateProduceCallbackȕ*3AddERKS1_10DeleteBackEvD2Ev++RefSortPairE4SortEPFiPKS0_S3_PvES4_UpdatePair2E1++++1Ev0Ev+++++8ReserveOnePositionEv1ReserveDownEvΕ+5ClearAndReserveEj3AddInReservedERKS0_+++C8SetTotalEyڇ19Getʋ26AddRefEvՑ7ReleaseEvۑD1Ev·2Evԇ+++2Set7GetUpdateItemInfoEjPiS0_Pj1Get4Ȍ0GetRawPropEjjPPKvPjS3_8SetOperationResultEi3GetVolumeSizeEjPy5GetVolumeStreamEjPP20ISequentialOutStreamCompletedEPKyRatioInfoEPKyS1_++16AddRefEv“7ReleaseEvȓDΓ2SetRatioInfoEPKyS1_4QueryInterfaceERK4GUIDPPv++RootPropEjP14tagPROPVARIANTPropertyEjjP14tagPROPVARIANT+16AddRefEv7ReleaseEvDĒ1GetRootPropEjP14tagPROPVARIANTċ4ǎ+ParentEjPjS0_StreamEjPP19ISequentialInStream+9GetParentEjPjS0_Œ16AddRefEv7ReleaseEvD+GetQueryInterfaceERK4GUIDPPvϑNumRawPropsEPjR+40GetRawPropEjjPPKvPjS3_GetՍQueryInterfaceERK4GUIDPPvNumRawPropsEPjRawPropInfoEjPPwPj+awPropInfoEjPPwPjootRawPropEjPPKvPjS3_+++GetRootRawPropEjPPKvPjS3_QueryInterfaceERK4GUIDPPv++++++++2CryptoGetTextPassword2EPiPPw1CryptoGetTextPasswordEPPw+22CryptoGetTextPassword2EPiPPwݐ14QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEvD++21CryptoGetTextPasswordEPPwɑ14QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEvD++++1Ev0Ev2Ev+++++1Ev0Ev+++++1EvԒ0Evڒ+++++1Ev0Ev++,,Ѐ,1Ev0Ev,,,Ё,,1Evޓ0Ev,,Ђ,1Ev0Ev,,1Ev0Ev,Ѕ,1Ev0Ev,,1EvԔ0Evڔ,,, D1Ev14GrowEj76CaSEpLE8TrimLeftEv9TrimRightEv,,,,5PrintEPKc7NewLineEv10CheckBreakEv,,,Т,5TestBreakSignalEv4CheckCtrlBreakEv8CCtrlHandlerSetter,,CD1Ev2Ev,,0Ev1Ev2Ev,,,8Set121CryptoGetTextPasswordEPPwƚ6AddRefEv7ReleaseEvĜDʜTotalEyErrorEiPKwjS1_jS1_,2ʙ6PrepareOperationEPKwbiPKy8SetOperationResultEib1SetPasswordERK7UString053ExtractResultEi4QueryInterfaceERK4GUIDPPvSetCompletedEPKyAskOverwriteEPKwPK9_FILETIMEPKyS1_S4_S6_PiMessageErrorEPKw,,,,,,,21CryptoGetTextPasswordEPPw14QueryInterfaceERK4GUIDPPv6AddRefEv7ReleaseEvD,BeforeOpenEPKwڛOpenResultEPKwib,,,,ThereAreNoFilesEvOpenTypeWarningEPKwS1_S1_,,,,,,1Evڜ0Ev,,,,,1Ev0Ev,,18SetTotalEy9GetStreamEPKwb0CheckBreakEv32S54FinishScanningEv1SetNumFilesEy8,StartScanningEvOpenFileErrorEPKwjPrintPropertyEPKcyˡAfterLastFileERK11CHashBundleѡ,canProgressEyyyPKwbetCompletedEPKy,CanNotFindErrorEPKwjBeforeFirstFileERK11CHashBundlePrintResultLineEyRK13CObjectVectorI12CHasherStateEjb,,,,,PrintSeparatorLineERK13CObjectVectorI12CHasherStateESetOperationResultEyRK11CHashBundleb,,,,,,,,,4InitEPK14CFieldInfoIniti7AddPropEPwjb18PrintSumERK5ClearEvC2Ev,,2AddMainPropsEP10IInArchiveˣ1AddRawPropsEP19IArchiveGetRawPropsѣ0PrintTitleEvף5PrintTitleLinesEvݣ3PrintItemInfoEjRK9CListStat,,,,,9CListStatyPKc10CListStat2,---6AddNewEvʤ3AddERKS0_ФD2Evܤ------D2EvC2Ev.....D2Evǥ20CanNotFindError_BaseEPKwj..D2Ev189GetStreamEPKwbȭ2ڭ.1Ev0Ev..1Ev0Ev.....1Evߦ0Ev......1230Open_ClearPasswordWasAskedFlagEv5Open_CheckBreakEv3Open_SetTotalEPKyS1_7Open_SetCompletedEPKyS1_м...6Open_CryptoGetTextPasswordEPPwĨ1Open_ʨ.GetPasswordIfAnyERbR7UStringWasPasswordAskedEv.о..01PrintStringEPK۩2ClosePrintEvթPrintRatioEv.cw..PrintNewLineEvRePrintRatioEv...03ī2S5CanNotFindErrorEPKwjǬ4FinishScanningEvͬ1SetNumFilesEy8SetOperationResultEiԭOpenResultEPKwiS1_CheckBreakEv߬.StartScanningEvFinishArchiveEv٬OpenFileErrorEPKwjέ.canProgressEyyyPKwbtartArchiveEPKwbӬet.......FinilizeEvSetTotalEy...CompletedEPKyRatioInfoEPKyS1_­.....2CryptoGetTextPassword2EPiPPw1CryptoGetTextPasswordEPPw....CĮD11EjԮ2Ejڮ..1Ev2Ev..1ParseStringERK7UStringPKNS_11CSwitchFormE2ParseStringsEPKNS_11CSwitchFormERK13CObjectVectorI7UStringE..4InitEv65FinalEPhذ1ް7ReleaseEvD.UpdateEPKvjҰAddRefEv..3GetDigestSizeEvӱ2SetFunctionsEjٱ8SetCoderPropertiesEPKjPK14tagPROPVARIANTj߱4QueryInterfaceERK4GUIDPPv...16AddRefEv7ReleaseEvD8SetCoderPropertiesEPKjPK14tagPROPVARIANTjڲ4QueryInterfaceERK4GUIDPPv....1Ev0Ev.....1Ev0Ev..UIntֳStringToUInt32ToStringjP64ToStringyPcw.cw.64To32ToHexjPcдOctyPcʴHexyPcִ...ConvertUInt32ToHex8DigitsjPcMultiByteToUnicodeString2R7UStringRK7AStringjUnicodeStringToMultiByte2R7AStringRK7UStringjRtlTimeToSecondsSince1970PK13LARGE_INTEGERPj...Int64ToStringxPԶStringToInt32PKwPS0_Ucw.//ccww///cS0_wS0_/NoCasePKwS0_̷_AsciiPKwPKc/25IsPrefixedBy_Ascii_NoCaseEPKc4FindERKS_jӾ11ReverseFindEcپ/25IsPrefixedBy_Ascii_NoCaseEPKc4FindERKS_j11ReverseFindEw//cS0_w/S0_PKc///// 14GrowEjԺ7ں6CaSEpLE8TrimLeftEv߾9TrimRightEvD1Ev130RemoveCharEcInsertSpaceERjjκSetStartLenEj//ReSetFromEPKcj;AllocEjplaceE//Grow_1EvInsertEjDeleteEjۿ/1Eϻ2EjRKS_RKS_PKcżvؽc/jRKS_RKS_PKcڼv޽c/c/cК/jS1_jԼ/jS1_j/RK7PKAStringUStringS1_PKc//cRK7AStringҽwRK7UString////С///У//cPKcRKS_/Х/Ц/PKcRKS_Ǿ///////InsertAtFrontEcDeleteFrontalEj/PKcRKS_///ccϿRKS_S1_տ/б/j/е//12SetFromAsciiEPKc30RemoveCharEwInsertSpaceEjjSetStartLenEjAddAsciiStrEPKc//ReSetFromEPKwjAllocEjplaceE//Grow_1EvInsertEjDeleteEj/1E2EjRKS_PKwvwPKwRKS_/jRKS_PKwvwPKwRKS_///wм/w/jS1_j/jS1_j/S1_PKw///////////wPKwRKS_///PKwRKS_/////////InsertAtFrontEwDeleteFrontalEj/PKwRKS_///wwRKS_S1_//j///AllocStringFreeStringStringtemTimeToFileTimeByteLenLen////ByteLenLen//learopy///4InitEv65FinalEPh17ReleaseEvD/UpdateEPKvjAddRefEv//3GetDigestSizeEv4QueryInterfaceERK4GUIDPPv////1Ev0Ev//4OpenEPKw5CloseEv22ScanStringUntilNewLineEb7GetCharEv12ReadToStringER7AString3EofEvD1Ev///////4OpenEPKc5lsE12PrintUStringERK7UStringR7AStringD1Ev/CloseEvFlushEv///PKwixjy/3StdOut_Convert_UString_to_AStringRK7UStringR7AString1ConvertPropVariantToShortStringRK14tagPROPVARIANTP///////////32PK64PKcPS0_wPS0_/0cPS0_wPS0_00Ђ032PKcPS0_64PKcPS0_0Є032PKcPS0_64PKcPS0_000TF8ToUnicodeRK7AStringR7UStringnicodeToUTF8RK7UStringR7AString000000000005CItem11CCensorNode7CCensor13AreAllAllowedEv9CheckPathERK13CObjectVectorI7UStringEb00120AreThereIncludeItemsEv9CheckPathEbRK7UStringb31FindSubNodeERK7UString60CheckPath2EbRK7UStringbRb5CheckPathToRootEbR13CObjectVectorI7UStringEbAreAllAllowedEvCheckPathVectERK13CObjectVectorI7UStringEbRbМ00AddItemSimpleEbRNS_5CItemEExtendExcludeERKS0_0NS_5CItemEK7UStringbbbbО00NeedCheckSubDirsEvCheckPathCurrentEbRK13CObjectVectorI7UStringEb00Х000000010FindPrefixERK7UString9CheckPathEbRK7UStringb07AddItemENS_15ECensorPathModeEbRK7UStringbb1003ExtendExcludeEv6AddPathsToCensorENS_15ECensorPathModeE0AddPreItemEbRK7UStringbb000000000004InitEv65FinalEPh17ReleaseEvD0UpdateEPKvjAddRefEv003GetDigestSizeEv4QueryInterfaceERK4GUIDPPv00001Ev0Ev000001928CTempDir60367MyGetFullPathNameEPKwR7UString9GetFullPathAndSplitEPKwR7UStringS5_SetDirTimeEPKwPK9_FILETIMES6_S6_MyMoveFileEPKwS3_0SetGetCurrentDirER7UStringMyGetTempPathER7UStringFileAttribEPKwjCurrentDirEPKw0RemoveDirEPKwC00reateDirEPKwTempFile0CreateComplexDirEPKwDeleteFileAlwaysEPKwGetOnlyDirPrefixEPKwR7UString001RemoveDirWithSubItemsERK7UString7RemoveDirectoryWithSubItemsERK7UString00000111624CreateRandomInTempFolderEPKwPNS0_3NIO8COutFileECreateEPKwPNS0_3NIO8COutFileERemoveEvMoveToEPKwb1111CreateEPKwRemoveEv1115NFind9CFileInfo6IsDotsEv3NIO9CFileBase9GetLengthERy1111CFileInfoBase5ClearEvDoesFileExistEPKw111Х111Ч1RbШ11D6CreateEPK5CloseEv4SeekE0Ev1Ev2Ev111cjjjjbwjjjjb1111xjRyyRy11OpenEPKwReadEPvjRjjjjb1111jj111CreateAlwaysEPKwjSetEndOfFileEv1л11WritePartEPKvjRjSetLengthEy1о111122NormalizeDirPathPrefixER7UString4IsAbsolutePathEPKw1GetFullPathEPKwS3_R7UString11120PropVarEm_Alloc_BstrEP14tagPROPVARIANTj117PropVar2CPropVariantEm_Set_StrEP14tagPROPVARIANTPKciant_ClearEP14tagPROPVARIANT1C1aSE9AllocBstrEj5ClearEv4CopyEPK14tagPROPVARIANT67CompareERKS1_1E2ERKP14tagPROPVARIANTS1_1RKP14tagPROPVARIANTS1_12InternalCopyEPK14tagPROPVARIANT3InternalClearEv111wKw1wKw1PRKbhijyxwK111wc1S1_14tagPROPVARIANT9_FILETIME111111111111111AttachEP14tagPROPVARIANTDetachEP14tagPROPVARIANT111cbbwbb11cw111121GetNumberOfProcessorsEv10GetRamSizeEv1112079GetSecondsSince1601EjjjjjjRy8DosTimeToFileTimeEjR9_FILETIMEFileTimeToDosTimeERK9_FILETIMERjGetCurUtcFileTimeER9_FILETIME111UnixTimeToFileTimeEjR9_FILETIMEFileTimeToUnixTimeERK9_FILETIMERj1UnixTime64ToFileTimeExR9_FILETIMEFileTimeToUnixTime64ERK9_FILETIME1111AddExeFlagRK7UString_getlocalev111111DosDateTimeLocalFileTimeSystemTime11122AsFileTime2Ї227_kExpEscape8_kExpEscape2Ъ21N2938Á6CDelta͝7١ 519043C86Cڀ2C7ICۆCompressArchiveOpenSeqOHashCallbackUICoder2Filter218N9N7NCrypto1NCoderMixer3NConsoleClose117CCoder2E2CCoderMixer2E1CCoderInfo2E4CCoderMixer2MTE22CIOutArchiveVirtThreadSha1HasherHashBundleͭ2WindowsArchive16NSynchronization5NFile3NIO121CManualResetEventWFMOE4C5CBaseHandleWFMOE9CAutoResetEventWFMOEBaseEventWFMOESemaphoreWFMOE22ICSequentialInStreamArchiveGetRawPropsInArchiveGetStreamCompressSetBenchPrintCallback2 05921678CLockedSequentialInStreamImp3ICSequentialOutStreamCompressSetInStreamArchiveEnumDirItemCallback2ICompressCEnumDirItemCallback_HashGetSubStreamSizeSetOutStreamSize23N17CMultiMethodPropsE4N5Nʊ6NSplit8CHandlerE2NZ8CHandlerE܍7NParser8CHandlerE7zGzXz18CHandlerE25CFolderInStreamE6CFolderOutStreamE1COutHandlerE9CInArchiveExceptionE7CFolderOutStream2E4CThreadDecoderE222IC؜InArchiveOutStream22ICSCompressCoderBenchCallbacketPropertiestreamGetSize2228CUnsupportedFeatureExceptionE2CCryptoGetTextPasswordE22ICBranch86InStreamHashCalcProgressާ2 MyUnknownImpInFileStreamTailInStreamOutMemStreamReferenceBufDeltaCrcOutStreamФNewExceptionαSha256Hasher2CSequentialIInStreamSizeCount2OutStreamSizeCount2222ICCryptoArchiveUpdateCallbackGetTextPasswordResetInitVector27CInFileE8COutFileE9CFileBaseEз2223ICompressGetInStreamProcessedSize0ICompressSetDecoderProperties2Б2CExtractCallback_To_OpenCallbackƥи2Bz28CHandlerECabTarZip2CIInBufferExceptionԀOutBench2SInLimitedInStreamClusterInStreamOBחystemExceptiontdInFileStreamй2IցCGetPropUnknownGetProp22218CHandlerE23CUnexpectedEndExceptionE7CCabBlockInStreamE6CFolderOutStreamE222CompressExitCode5EEnumE8N6N5N10CCopyCoderE4NLzxʞ7NShrink8CDecoderEӟ2NZ8CDecoderEٟDeflate8NImplode8NDecoderӝPpmdZip8CQuantum8CDecoderE͟DecoderDŽEncoder9CCOMCoderE11CCOMCoder64E6CCoderE22222н2CArcCmdLineExceptionӡHashCallbackConsoleOpenCallbackConsoleڱrossThreadProgressallbackConsoleBase2ICompressCBenchܤProgressInfoՆSetOutStream2DummyOutStreamBCachedInStream2CIArchiveOpenVolumeCallbackSequentialInStreamWithCRCLimitedSequentialInStreamEnumDirItemUpdateCallbackҥ2StreamWithCRCFileStreamVol2MultiStream߈FilterCoderB2CIOutStreamWithCRCStdOutFileStreamBC_SPARC_28CHandlerE݉24CCompressProgressInfoImpE22ICompressSetCoderPropertiesC26CCoderEĊ9CCOMCoderE11CCOMCoder64E2LzmaPpmd8CHandlerE8CHandlerE24CCompressProgressInfoImpE222228CHandlerE׋13CSparseStreamE݋226NMagic9kUsTar_00E9kLongLinkE10kLongLink2E28CHandlerE130CVirtProgress_To_LocalProgressEč29CVirtProgress_To_OpenProgressEʍ9CStatInfoE֍26CSeekToSeqStreamE2IDecodeStateEЍ22222218CHandlerE2CԎ3CProgressVirtE7CMtProgressMixer2Eܑ6CMtProgressMixerE5CCacheOutStreamELzmaProgressImpEUnexpectEndE֑EncoderEDecoderE22CryptoSetPasswordExtractCallbackUIҧUpdateCallbackUI22222217NSevenZߟ6NWzAesǠ4NZip0NZipStrongِ4CAesCbc2CAesCbcCoderE8CDecoderE10CBaseCoderE͡2DecoderEEncoderE2CryptoPropertiesʑUpdateCallbackUI±2222222222OutFileStreamExtentsStreamTailOutStreamLocalProgressBenchInfoCalcXzCrc64Hasher22222utStreamFlushpenCallbackUI2CompressWriteCoderPropertiesArchiveOpenSetSubArchiveNameFolderArchiveExtractCallbackا22SequentialOutTempBufferImpLimitedSequentialOutStreamArchiveOpenCallback_Offset22222222LimitedCachedInStreamArchiveUpdateCallbackUpdateCallbackConsole222ffsetOutStreampenCallbackImp22OutBufferExceptionMtCompressProgressDynBufSeqOutStreamBPrintBenchCallback2222inderInStreamїC_2inderOutStreamCranchConverter2ufInStreamenchBuffer22ufPtrSeqOutStreamޘenchmarkOutStreamʤ2222CoderMtBufSize2BZip2Lzma28C8Cř12CNsisDecoderEDecoderEߙEncoderE2222Bcj28CLzma8CPpmd8CEncoderEDecoderE22J_x86_Κ_EncoderDecoder2222ARM_PPC_EncoderDecoder22ARMT_țIA64_EncoderDecoder22EncoderDecoder22EncoderDecoder22Encoder̜DecoderҜ22ByteSwapCrcHasher242222222EncoderDecoderǝ22210CExceptionE6CCoderE22DecoderEEncoderE22DecoderEEncoderEĞ2220Cx86ConvertOutStreamE8CDecoderE22DecoderEEncoderE22DecoderEEncoderEǟ222228C10CBaseCoderE5CBaseEEncoderEDecoderE22222228C10CBaseCoderEEncoderEDecoderE2228C7CCipherEEncoderEDecoderEǡ22222UStringCCodecsȱAStringԱIHasher2StreamWithHashMultiVolStream̥22CˢIArchiveExtractCallbackExtractCallbackConsolȩ22ArchiveCryptoGetTextPassword2ExtractCallbackܣUpdateCallback222OpenCallbackGetRootProps2222markInStreamĤProgressInfo֤2222CallbackToPrintRandomGenerator222222222333335k_ActionSet_AddE8k_ActionSet_7k_ActionSet_FreshEѦ6k_ActionSet_SyncEצ3UpdateE˦DeleteEݦ3ȏ33333333339CCtrlBreakExceptionE8CCtrlHandlerSetterEƧ333Ж3333333 Unknown֨ProgressܨSInOut̩ArchiveCHasherܰFolderGetProp33etreamGetquentialtInStreamOutStreamЙ33StreamƩArchive3StreamArchive3FlushSizeProps33323OpenExtractCallbackGetRUpdateCallbackKeepModeForNextOpenAllowTailCallbackVolumeCallbackSeΫК333GetStreamȫ3tSubArchiveNameq33awPropsootProps33Л33233PropertiesܬCompressCodecsInfo333ryptoompressҭGetTextPasswordPropertiesResetInitVectorSet32̭М3ProgressInfoCodeSetĮWriteCoderPropertiesGetFilter3rcsInfo323CoderDecoderProperties2InStreamOutStreamBufSizePropertiesMt333InStreamProcessedSizeݯSubStreamSize3Н333Size3Size3333О3333PasswordаCRCְ333s3ArchiveExtractCallbackExtractToStreamCallbackП333333á3С3333Ԣ33333SIGFOOTER_SIGТD֢D8ײ1N2936CDelta7ICGetPropUnknownGetPropD 53C1̶9046C872CI˳CCompressArchiveOpenSeqOHashCallbackUICoder2FilterD18N9N7NCrypto1NCoderMixer3NConsoleClose117CCoder2E2CCoderMixer2E1CCoderInfo2Eƶ4CCoderMixer2MTED MyUnknownImpReferenceBufNewExceptionInFileStreamTailInStream̅OutMemStreamDeltaГCrcOutStreamŝSha256HasherDȣDCIOutArchiveVirtThreadSha1Hasher˘HashBundleأD1N8ƽ29I37 15940873C6C2CCIOutArchiveVirtThreadSha1HasherŘHashBundleD8N19NCompress7NCryptoWindowsArchive16NSynchronization5NFile3NIO121CManualResetEventWFMOE4C5CBaseHandleWFMOE9CAutoResetEventWFMOEBaseEventWFMOESemaphoreWFMOEDWindowsArchive16NSynchronization5NFile3NIO121CManualResetEventWFMOE5CBaseHandleWFMOE4C9CAutoResetEventWFMOEDBaseEventWFMOESemaphoreWFMOED1NCoderMixer3NConsoleClose18CCtrlHandlerSetterE17CCoder2E2CCoderMixer2E4CCoderMixer2MTEDICCompressArchiveOpenSeqOHashCallbackUICoder2FilterDIٽCGetPropUnknownGetPropХDICSequentialInStreamArchiveGetRawPropsInArchiveGetStreamCompressSetBenchPrintCallbackDICSequentialInStreamArchiveGetRawPropsInArchiveGetStreamCompressSetBenchPrintCallbackD 052179368CLockedSequentialInStreamImpICSequentialOutStreamCompressSetInStreamArchiveEnumDirItemCallbackD 052719368CLockedSequentialInStreamImpICSequentialOutStreamCompressSetInStreamEnumDirItemCallbackArchiveDICompressCEnumDirItemCallback_HashGetSubStreamSizeSetOutStreamSizeЧDICompressCEnumDirItemCallback_HashGetSubStreamSizeSetOutStreamSizeDICInArchiveOutStreamDШDICSCompressCoderBenchCallbacketPropertiestreamGetSizeDD17CMultiMethodPropsE3N4N5N6NSplit8CHandlerE2NZ8CHandlerE7NParser8CHandlerED7zXzGz128CHandlerE1COutHandlerE9CInArchiveExceptionE5CFolderInStreamE6CFolderOutStreamE7CFolderOutStream2E4CThreadDecoderEDDIC˂SCompressCoderBenchCallbacketPropertiestreamGetSizeDDICInArchiveOutStreamЫDجDD8CUnsupportedFeatureExceptionE2CCryptoGetTextPasswordEDICBranch86InStreamProgressHashCalcDInStreamProgressHashCalcDICCryptoArchiveUpdateCallbackGetTextPasswordResetInitVectorЮDIC҅CryptoArchiveUpdateCallbackGetTextPasswordResetInitVectorD7CInFileE8COutFileE9CFileBaseED7CInFileE8COutFileE9CFileBaseEDDDDD3ICompressGetInStreamProcessedSize0ICompressSetDecoderProperties22CExtractCallback_To_OpenCallbackD3ICompressGetInStreamProcessedSize0ICompressSetDecoderProperties22CExtractCallback_To_OpenCallbackDDSInLimitedInStreamClusterInStreamOBĉystemExceptiontdInFileStreamłDCIInBufferExceptionOutBenchDвDD8N6N5NÌ10CCopyCoderEߒ4NLzx7NShrink8CDecoderE2NZ8CDecoderEDeflate8NImplode8NDecoder6CCoderEPpmdZip8CؖQuantum8CDecoderEDecoderEncoder9CCOMCoderE11CCOMCoder64E6CCoderEDDDCompressExitCode5EEnumE8N6Nڋ5N10CCopyCoderE4NLzxϕ7NShrink8CDecoderE2NZ8CDecoderE—Deflate8NImplode8NDecoderPpmdZip8CQuantum8CDecoderEDecoderEncoder9CCOMCoderE11CCOMCoder64E6CCoderEDDCabZipBz28CHandlerETar23CUnexpectedEndExceptionE18CHandlerEDICompressCBenchProgressInfoSetOutStreamиDICompressSetCoderPropertiesCD6CCoderE9CCOMCoderE11CCOMCoder64EDICompressSetCoderPropertiesCƃDDDDD9CStatInfoE18CHandlerEۀ30CVirtProgress_To_LocalProgressE29CVirtProgress_To_OpenProgressED2IDecodeStateE6CSeekToSeqStreamED3N4N5N6NSplit8CHandlerE2NZ8CHandlerE7NParser8CHandlerEXz7zGz18CHandlerEՀ30CVirtProgress_To_LocalProgressE29CVirtProgress_To_OpenProgressE2IDecodeStateE6CSeekToSeqStreamEDDCryptoSetPasswordExtractCallbackUIUpdateCallbackUI2DICCryptoSetPasswordUpdateCallbackUI2ExtractCallbackUIDD18CHandlerE3CProgressVirtE2C7CMtProgressMixer2E6CMtProgressMixerE5CCacheOutStreamED17NSevenZȗ6NWzAesј4NZipۙ0NZipStrong4CAesCbc2CAesCbcCoderE8CDecoderE10CBaseCoderEݚDICCryptoPropertiesUpdateCallbackUID17NSevenZ6NWzAes4NZip4CAesCbc0NZipStrong2CAesCbcCoderEDecoderEEncoderED8CDecoderE10CBaseCoderEDDecoderEEncoderEDDDZipBz28CHandlerECabTar18CHandlerE3CProgressVirtE2C5CCacheOutStreamE7CMtProgressMixer2E6CMtProgressMixerEDUnexpectEndELzmaˁProgressImpEDDDICompressCBenchProgressInfoSetOutStreamDDDDDDDutStreamFlushpenCallbackUIDICSequentialCompressWriteCoderPropertiesArchiveOpenSetSubArchiveNameFolderArchiveExtractCallbackDDDICSequentialCompressWriteCoderPropertiesArchiveOpenSetSubArchiveNameFolderArchiveExtractCallbackDICCryptoPropertiesUpdateCallbackUIDutStreamFlushpenCallbackUIDDDDDOutBufferExceptionMtCompressProgressÈDynBufSeqOutStreamBPrintBenchCallbackD7z_PROPID_To_VARTYPE_OverwriteModesDReferenceBufInFileStreamTailInStreamƅOutMemStreamDeltaCrcOutStreamSha256HasherDDCoderMtBufSizeDCoderMtBufSizeDDDDDDDD10CExceptionE6CCoderED5CBaseE10CBaseCoderE8CDDDIHasherUStringCCodecsAStringDIHasherCCodecsD_lobal_use_CBfiledirNum͟HashersRandomGeneratorStdAesCodeaseSensitiveRCTableInitrcޠPagecsDDDArcCmdLineExceptionCHashCallbackConsole՞OpenCallbackConsoleDDDICArchiveCryptoGetTextPassword2ExtractCallbackUpdateCallback2DDICArchiveCryptoGetTextPassword2ExtractCallbackUpdateCallback2DDOpenCallbackGetRootPropsDIArchiveOpenVolumeCallbackCDDInStdInFileStreamLimitedInStreamClusterInStreamOBFileStreamVolStreamWithCRCDFileStreamVolStreamWithCRCDDenchCpuFreqTempZip2CrcTableInitDBMultiStreamFilterCoderenchBufferufInStreamDBenchInfoCalcOutFileStreamExtentsStreamTailOutStreamLocalProgressψXzCrc64HasherDDBMultiStreamFilterCoderenchBufferufInStreamDDRandomGeneratorCallbackToPrintםDRandomGeneratorCallbackToPrintݝDDDDDDDDIArchiveOpenVolumeCallbackCDOpenCallbackGetRootPropsDEnumDirItemUpdateCallbackSequentialInStreamWithCRCLimitedSequentialInStreamDEnumDirItemUpdateCallbackSequentialInStreamWithCRCLimitedSequentialInStreamDDDDDDDDDDDDDDDDDallbackConsoleBaserossThreadProgressDDDDDDDDDD9CCtrlBreakExceptionE8CCtrlHandlerSetterEDDDDDlstatutf16_conversionؠD18CHandlerE22CCryptoGetTextPasswordE5CFolderInStreamE6CFolderOutStreamE7CFolderOutStream2E4CThreadDecoderEDDEEEEInStreamSizeCount2OutStreamSizeCountEInStreamSizeCount2OutStreamSizeCountEEEEEEEEE18CHandlerE7CCabBlockInStreamE6CFolderOutStreamEE7CCabBlockInStreamE6CFolderOutStreamEEEEEEEEEECrossThreadProgressHashCallbackConsoleϞOpenCallbackConsole۞EEDummyOutStreamBՈCachedInStreamEDummyOutStreamBCachedInStreamEEEEEИEEOutStreamWithCRCStdOutFileStreamBC_SPARC_EOutStreamWithCRCStdOutFileStreamBC_SPARC_E8CHandlerE24CCompressProgressInfoImpEE8CHandlerE24CCompressProgressInfoImpEEEELzmaPpmd8CHandlerE8CHandlerE24CCompressProgressInfoImpEELzmaPpmd8CHandlerE8CHandlerE24CCompressProgressInfoImpEEEEEХEEE8CHandlerE13CSparseStreamEɀE8CHandlerEÀ13CSparseStreamEπEEЭEEEEEEEEEEELzmaProgressImpEEncoderEŁDecoderEEEncoderEDecoderEEйEEEEEEEEEEEEEEEEOutFileStreamExtentsStreamTailOutStreamLocalProgressɈXzCrc64HasherEEEEEESequentialOutTempBufferImpLimitedSequentialOutStreamArchiveOpenCallback_OffsetESequentialOutTempBufferImpLimitedSequentialOutStreamArchiveOpenCallback_OffsetEEEEEEEEEEEEELimitedCachedInStreamArchiveUpdateCallbackUpdateCallbackConsoleELimitedCachedInStreamArchiveUpdateCallbackUpdateCallbackConsoleEEEEEffsetOutStreampenCallbackImpלEffsetOutStreampenCallbackImpݜEEEMtCompressProgressDynBufSeqOutStreamBPrintBenchCallbackEEEEinderInStreamC_ŎEinderInStreamC_EinderOutStreamCύranchConverterEinderOutStreamCranchConverterEEEEEufPtrSeqOutStreamenchmarkOutStreamEufPtrSeqOutStreamenchmarkOutStreamEEEEEBZip2Lzma28C8C12CNsisDecoderEDecoderEԋEncoderEEBZip2Lzma28C8C12CNsisDecoderEDecoderEEncoderEEEEEEBcj28CLzma8CҔPpmd8CEncoderEDecoderEEEBcj28CLzma8CPpmd8CEncoderEÍDecoderEɍEEJ_x86__EncoderDecoderEJ_x86__EncoderDecoderEEEEEARM_׎PPC_EncoderDecoderEARM_PPC_EncoderDecoderEEEARMT_ŏIA64_EncoderݏDecoderEARMT_IA64_ϑEncoderDecoderEEEEncoderDecoderݐEEncoderאDecoderEEEEncoderDecoderEEncoderDecoderЀFFЁFEncoderɑDecoderFEncoderDecoderЂFFЃFByteSwapCrcHasher24ӒFByteSwapCrcHasher2͒4ْFFЅFFFFF9CCOMCoderE11CCOMCoder64EFFFFEncoderʓDecoderЏFEncoderDecoderFFFFFDecoderEEncoderEƔFDecoderEEncoderE̔FFFDecoderEEncoderEFDecoderEEncoderEFСFF20Cx86ConvertOutStreamEɕ8CDecoderEF20Cx86ConvertOutStreamE8CDecoderEFFХFDecoderEEncoderE̖FDecoderEƖEncoderEҖFFЫFDecoderEEncoderEFFDecoderEEncoderEFFFFFFFF8C10CBaseCoderEEncoderEDecoderEFдFEncoderEDecoderEFFFFFFFF8C10CBaseCoderEəEncoderEDecoderEϙF10CBaseCoderE8CFEncoderEÙDecoderEՙFFFF8C7CCipherE˚EncoderEDecoderEњF7CCipherE8CFEncoderEŚDecoderEךFFFFFFArchiveExtractCallbackExtractCallbackConsoleÞFOutBenchStreamWithHashݛMultiVolStreamFStreamWithHashMultiVolStreamFFFArchiveExtractCallbackќExtractCallbackConsoleɞFFFmarkInStreamProgressInfo˝FmarkInStreamProgressInfoѝFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGЂGGGЅGGGGGGGcvGGGGGCodecsHashersGGGGGHHHHStreamInƠOut̠ErrҠHHHȇH؇HHTableUpdate64TableơHHbc_tr_CodeDecodeEncodeHHHH@ 0``@ P``@p P     @0 @0``0@0p0`PP@P````@ 0p@@@ (0@P`0P0@  @{P 0Pp@ P00`@ 0  0@pP p P`00P@0p@Pp`@P@P@@0@0@P 0 @PpP@ 0 0   PPP p@p(@ 0  p 0P@  !p 0p 0Pp pp p@ P@p 0p @@ 0P`P@@p pp p@ 0P@ pp 0 @ @ @@#P `@ 0@0@ 000Ppp " p `PP0@    0Pp@P @ PpPP@0S0@ p@ 00p p @@pp@PP @P 0 @ @ @@ 0P 0@ P@ @@ `@Pp+p `@ 0@ @@     @@0`P @PP@@ 00@ ``Ppp@p P00@ 0@p @p`P@@@` @P 0 @ @ @p Pp @p @ @0@P`@ @@ p pp P @`@00 P ` pp pp @@  Pp Pp @@ PP 0P 0 @ @ @ @ @`p 0P P @P 0@@ 0@P`  @P 0 @ @ @p P 0``@00p Pp p@@p 0Pp 0`p p p 0@p 0@0@0@0@@000#  0 @ @@ P@ p p p P`p P`p P`p 0P` P` P` P`P` 0@ 0@ 0@P!@@P 0p p@  p P0@@@p`P 0@ 0P@P P  00@pH@ 0@ P@ `P@ @ 0 `` 00@p00``0` 00`@ P00P`p`pP0P00@p@ P@pp  @ p @@ 0@@@@@@@@@@@```00ppp00              @@`00@0`000p@PP@@P`  P @` @` P @` PP0 p0PPp@p@p`0P`` P `00 0P0`@@0P PP @ pP@ Pp@ @p@0pp`@@@@ PP@ 0@@` P0 0@p@@ ` P0` 00@@00    0 @ @p0`p0@@"P00   @@ 0`P `@ p `pp `p@ 0 @ @@ ` 0000000000P0P00@ @  P0P00@ p @p @ P `@@@@0000PpPp  `0p@@@@ 000 0 @P  0 0p p 0  @PPp 0p @00  0@@@@@ @@00``      `@``@@@P00   @@ 0@@@@@`@`p`@@00p      pPppPPP@@   @@ @ 0P @`@ pp0@@@@@@P@00@@     pp@@   @@ 0p0@@ p p PP` PP`PP P```00  pp p 0 @ 0 @ 0 @0@ 0 @ 0 @p P@@``PP`p @0`p P@  0`0@0 PPP ```  1 pp0)@@ Pp 0 0 @ @ 0  @ @  @0@`@pP ``   X `@0@ @ 0P0P@ @ @00`@@@P`p1`` 0```@@  PP@PPv pp pp pp p p 0P 0`0 p` P f@pp P` ppp  p0pp 0 @ @ @ @ @@p  P00P@@ 0 `@ 0@ 0@ @0 @0P0p 29pp@ @  00 0 @  @0@Pp p  PPP p0000PP0PP`0p00 PPppppp00@@``PP`p`pp@`PP``P0@p00 pp``pppp@@@@``PPpppPp``ppP@@ppp 00P@  0` 0@`@ @`````0p````pP`pp0`pPP 0@pp @Pp0p P 0@  ```p Pp0`@00`p`0 `PP000000`P`P  pPP`pp`0@`0`0p p0@`P`4`EpVg0w` 8?0CEpH I"I8pJTPLjM`O[\\0cpcc d0s t(@{:{LaЭv 0@`  @ " , <HV_@"l'~p) ,p--.=0AELNR!U-PV6 W>ZKjb }q0` @П0Aot0Ѓ P ) L Zp<>0>*>z?Ap]h&PhJ@oX 0%p% % `1 AB BN By B G N N pO @U U U3 ZA jc Psq  P   5 Y @g    @ P  P# , `: @%k  P   6 0 /p@@`pA!W"opy@| BeP3345  66-6;9T:p0:`:::: ;P;.;L;Z<n< >0BpBBC`K (0We@ `p2Y   Ci P1`W}P`* *,[:0\M\c]qh hhhPo~Ћ' pY@% W X f jo s `x x y ,  $ T N P  R t       p + R+ = B `^ _ @` Wb sb         4  B @ m           p   !p) !0* "!C m!0H {!`M !N ! ! !0 !P "` " 0" @" R" d"@ q"` ~"p " " " " "P #V 2# M# k# # # #" # $ $ :$ X$ t$ $ $ $ $ "% N% u%@ %` % %0 &P @&p l& & &д &P ' <' f'0 ', ' ' ' ' ( (D ((x :( M( `( s( ( ( ( (0 (P (h ( )d ) ,) >) P) b) u) )< )\ ) ) ) )( )h  *< *h 0* B* T* f* y* * *D *d * * *$ *d + "+ 4+ F+X X+ k+ ~+ +$ +D +d + + + ,L , ', 9, K,T ], o, , ,< , , ,@ ,` , - -( ,-p ?- R- e- x-, - - - -( -\ - -0 . ". 5., H.L Z.4 l.` ~. . .@ . . .( . / / (/l ;/ N/ a/$ t/X / / / /$ /P /p /  0 0 10 D0P W0| j0 |0 0D 0 0 0D 0 0 0h 1 "1 51 H1 [1h n1 1 1L 1l 1 1 1 1 2  2, ,2L ?2l R2 e2 x2 2 2  2, 2L 2 2 2  38 "3x 43 F3 X38 j3X |3x 3 3 3 3 3T 3 4D 4 %4 74 I4X [4 m4T 4t 4 4 4 4@ 4 4 5P 5t '5 :5 M54 `5T s5t 5 5 5 5 5 5 5  6P 6 06L C6x V6 i6 |6! 6H! 6h! 6! 6@" 6L# 6x# 6# 7# %7# 87# J7% \7% n7l& 7& 7& 7& 7' 7\( 7( 7( 8( 8) *80) <8l) N8) `8* r8`* 8* 8+ 8H+ 8h, 8- 8l- 8-  9- 9- 09- C9 . V9,. i9. |9. 9/ 9\/ 9/ 90 90 90 91 :1 !:$2 3:P2 E:3 W:H4 i:4 |:4 :5 :6 :6 :07 :08 :8 ;8 ;8 ';9 :;(9 M;H9 `;h9 s;9 ;9 ;8: ;0; ;P; ;; ;8= ;X= <x= <= ,<> ><`> P<> c<I >I &>(J 9>PJ L>J _>J r> K >K >M >`M >M >M > N >4N  ?TN ?N .?N @?N R?,O d?xO w?O ?O ?hU ?U ?U ?V ?Kv PK$v bKDv tKdv Kv Kv Kv Kw K$w KPw K|w Lw Lw (Lw :Lw LLx ^LT| QT dT wT T` T T T T< T̢ T U "U, 5Ul HU [U0 nU4 U\ U UХ U U8 Ud U V VL (V ;V NVd aV tVܩ V VX Vx V V V VP W WȮ *W m/Pm8/omH/mX/mh/m/m/ n/n/An1Sn01en1xn`7n7n>n>n?n0?oH"o`M@oX\oY}o^o^o_o`_ p0a5ppoJp]pip`vppppкp0pPp qqqqGqtqqqq@qPrr%r=rXZrirr s0 s%s`4sCs@Psp]sks{ssPvsvs`ssP,s{s0|tp|t{+t?JtBct0XptU~tXt0t tyt0ytxt t t u u uu4u1Bu`0PuP0\u| suturupsu0susu} uP~ u~ uP= v vЃ 1v ?vROv@nvpDvovpv 3v$v0 v` v  w $w EwP _w tw wp w w wP  xp x 2x@ Gx nx x` x0 x x x y 9y Wy ry y y@ yP yp z  z 3z Kz nz z z z z z z z { { ){ 8{ Q{ k{` { {0 {@ { { {Ъ{{0 |.|A|`U| j| || | |@ |@|}P}d/}dG}j]}es}@e}k}`m}m}o}o}p}p~p~P/~F~[~wp~ ~~~w~pw~Л~~ ~p 0" 5EVhx0`.B[q@`̀uv `_:0aOadY}ZPbZǁ`Zށ^`]3 UTp^x`^\]˂]8 :E-9?`7Yp7{P7`<7ȃ7ރ =87-70@POcr^_`Ԅp@P0RP.R;`QOX`hp !}0 P `.Ӆ30p !!2"A!R@-p,033=Ć;ՆP\c< =?([=PcW@f`Dw`ED" ևpuPtt u9`PP b u P@mjPjLj&҈  0   0 -P ; Qr_qnr{p  VP@Љ@Pxwx@z#/CwYgxЉɊ w Йp%Pw.@>P``o{~vNj ً`Уp##9* c&ӌ`' %`P r ΍P',P(]@E ppy 0| C* u#@  % ɐ H@ ( %@$E$lpt @#Ғ0"   $0 U  , ߓ q  ) ] x r, ǔ   ` ( C ^` w 0z Օ  ! *` H cpq Җ P   = jp ` ʗ `  A c`   Řн   X^  ` 9 o 0 ɚp   H 6 bp  p ͛r  Km xo  Ϝ0  p @ g0      * OP t  (` Q z  ϟp} @ 4@ Z   Π@  -@ o| ܡo p N  + g  ̣P  N _q P*  ڤP  =3<K@=e<P==p=ƥ=@< =$P<@=[>p>ж  Ȧ`  0p H bи |   ɧ ާ e  l<plkЃƨ`ި)F _` t LLȩ 0   Eshp ~p  ܪ   ;Ъ W~z0~~۫p~0F\@ĬެK%K;pP3f׮Oѯ(pe ʰf 0ޱ CpgDz0"@Fj^ _ ^ ׳`i m <0_ Y p  ´ܴ0 @ !{ 8@X͵p0@#:`Q@ }p  @  ` % < SB=÷PEF:TBzFP>ǸDE0Eq@FA@;K@Ci @>JEߺJ22*4A5X7o my|AvkԼ@P $p; f 0  Ƚ 0 P  : ~ i `~ p~ ž~ ݾ~ $To0Pɿp(0g0Pp6NP4 p3 2 5  5 0/ ] c y0 @D = f  O:OgNPNOMM/>P,]-{/@-/ +p++ I od c pf   D k ` @ 0Arxps @H4e ` Px ` =xc@`yP /W } P   Ч 2|P7P@u@kr 0z 4P \@   p:nzP @ D PQ9sU@qY@wG@`9m@O@` K0R2 o@Ѐ#UaгO  B@uw u v 4 m # P( `% H0" zP' # $ 80d` 0 9PTЇr0pP4 _ 0  DPD H pPЧtpFТ@ >_P  @ M h       F c `   @   ` -QPc0\O]mdddd  % Q }  @ І Ё 3 X P 0 ` 3@!L`!epbZ[c cc*@cCm@ `8Q jnmn'`m]p@1-1-N-p110.21f.@_M^o0g@g_g`g 3` p  `) )  ) /P) M) k0) )  * * YYK(KA Z s     ?p7c8}8P7887@9-09G7k 99@P0Jpd!!@"""@"`?P\}`/Pn`nnnngp < `@ 0   @n0n.Hbp|``MPM545+5F5g4557987B8]8xp899P899.0`p5-7KP5k07`56p6`6a7YYpZzaaba   '@ BPRhRS0SQP,QGQbQ}0P`3Ni_ WW``p``:`Ui}hiPiIjp@P p& ]   y E e 0   / Jlhn 0,@0`101 1p0<PX`t089p98`9P90&cp '0''P')@O0@2. 2,2N2j2@M0M   & ~ Z ~ |   0      |   1 `| S p| v |  |  Pk i, j k  k ` p ! У D  e         p " ` ?  \      5PR@o    S x   | @ C| f} P}  } "0E@ip`@ 2Uy@<`~0    L*KH3fp3p@s0s@08\`  p$Z~p"  " 4`" e" - '  - * " V" $ p" p( A # * " @( #p TP  0 P ) d`    p M<M[@z0@( #  * 9@* _# z Љ  $ [ {MpM 0 N     P L       P 8! q! ! ! " =" d" " " " #0 <#P ]#@ ~#P # e#]#^&$eL$es$0f$e$ $ %0 =% p% % %Ч &` /& `&Х & & &@ #' ['` ' '@ '0 (p 3( T( u(V(V(M(L())W)))`)0$*b*`**+`g+,,, b,,,,0-@:-@\-0~-`- -` -@ 4. ~. . .  / F/p / / / 0` W0 ~00 0 0 1 %1P G1i11 1 1 1 2H22022 30+3 O3ns3n3 3 4V64`4444p5=5g5555` 6P &6 ]6P~ 6p 6~ 7 .7 `7 7  770\8C8o8P8 8@8U'9R9~999P19@1:PT:`h:::;);ph;@ ; ; <><l<<<P< ,=Y== ==@ =0 '> MO>Mw> > >g>g?P R?` ?` ?  @  H@ x@ @@ @ 'A` RA0 }AYAYA W A0 $B hBp B B0\ Bpk  C C +C 9CSC{CcC@sC C C D 2Dp PD0 dD zD D D D D` D Ep &E @E XE qE E E E E E@ E0 Ep F0 'F ;FP PF aF vF` FT F FP Fp F F@ F Gp 3G` IGp `G qG GGG`G _ H^3H zHPHXHYI YBIYhI@YIpI`dIeJ^RJfJdJ^JdK0e+K^PK`cpKcKgKgK0cK cLp[1L`[RLpzLLLLM6M`tM WMWMMWNW8NWWN0NNNO=O0\O {O}O }OiOo2PoZP kP^P]P`bQa&Q`_MQp{rQyQzQQ$RHRlRRR`RSUScSSS d$T LT0dsTTdTPdT06UxUUUІU%VPFV gVNVOVPV0VW V>W0ZcWIWHW0RWJ*X JIXJhXPXVXM YPW0Y`WXYWzYWYMYRZK4ZKZSZSZSZS[`GD[ _[ }[@ [` [ [ [ \ %\@ ;\ R\ h\p \0 \ \ \@ \ ]@ ] 2] E]0 ]] q]P ] ] ] ]@ ] ] ] ^ %^ 9^ N^ _^ p^p ^ ^ ^ ^ ^0 ^p _ _I_a_0s______``P_``J``@a@mDaaa0abXb bpb`cPGcpic cc0cpdP.d`d d eHee@e?fffpVgg.hPqhh`6ihi`ipiXij@jjPjjkk@%llll]m@mm 9nn opnoo0op:pep@up0Ppiqf@qhqPfq@q/rlrrrs`V-s@OSsPsssp-tsttpttp)uPuwuuuu#"v0$av0#vv w!Nw@w!w$x$CxPrx`xpx@%x$yQEy|yQyy Mz`Xz zz@ 4{ f{`M{pM{{P$|WM|Nv|M|J| }`k}u}`T}N ~R~N~N~O~NPA5Y>`̀` *pV0X@ ӂPGI>2q:T+<0Qk02P2JB0L L/O^P+-І p+APL`+ه=@BpCfCΈ2')8CWCvE Glފ@R;I[`+++N+~+ K  č =P%َ(0> sp  ` VP ؐ@(b)`-0) ) ,=`ђ.[ ٓ=|1͕`p2gpٖPJ@̗03@WPԘP7Vpup[љd,gohd֚Z p[=ZZ`ZPZ0[wp^i^]?ieliiŝkpL й՞нCpwP0؟Ќ  CPЃh0ȡ`@+[p`ޢ3rt@rrԣ`opMr}ooѤox\psɥ0s=ss`sPs`|4pX}@p'Lm@^pǩ Ny`P:fp0P`ЙѬ/ ͭ04sj|tޮpssQs{`|ua0p{*P``uܱ} }<\|Ѳ OP  ѳ0PTH uֵp@߶  W շ0i@¸@@D̹ .@]p?mp߻A  ,vǽ@Rй`پp7кa@W 380Q\Np2 N4N_110OO0/{Bg`//0/%`@8@f0Pp` N}P`/0op.W`0Jy 7a S9RV` wP{%g;x~PLg "%L""p"`"?/01MD M9YyPM@MP@;<F G0GpG&PGX1302`3=p3^7C6 p7=66`6P64 9|:@D; P:HPDoDpD YPNN)Gh JUPIJGI@III>MN`VO MRpVyWVdpo3@ZkdZ0ZZZZcd`[Opv`e ph%pG@pilp P  &0 h z    @    ?  {   Z{ P 0| {  `:@l`;0hR,c ne 0k j k <l vpl f c c b Uc ~d c b c *pe Qd xc d j d -`f Rg wh h i i  `b Fj ~b [ [ 0\ ; \ j0V V] _ @] B] oP_ p] ] `^ =0` j^ VpVZ @[ =@Y gV X U pU U =2 i. ?  B @? 400 a`5 08 A > 0@ n8 ;  G H BE @B F B 25 Yp2 S PT S < pR Q pR @S ,Q Z`J  Q J ` /Pa f` ` s u :y m0y px t  y Bx yP* s Ps p % Cp mГ    "p 5 H[Nq0NX p@Cp?XY@>>6?U@@/P-C0.o,pPAc@ED)=K0o@?>#`>B>a P0JDo0@ xp \`0 $E f0&p&0P,11(Z&|P'101 0 %  `0 p0  |    0 @)   @ `' `    `1 k p  `=@dP@=_@ %q0/Q0s PpTp` @bP` ' I k `[@P ;]@PEwGz0;j0G~ Bj@ Do0 ,@ ?PyP`" `   !#!F!`i!!`!`"0N"""P#A#i##0 $0$Z$@$$ $0$%=%``%%%%;& u&p&м&'S'''P(`>(0a((0(`((0')0q))P.*V***@**  + .+Vi+`=+V,V-,7,W,W,F-pEN-pc-P-`a7.z.M.a.`M./@bl/pe/`/`h0b000]b1X1M1K1@L#2O2{222C"3`{3 3D14Di4@D40D45E555u5`w$6Z666@7;7|v7~7}768r8s8q8v"9vW99PQ:0o:@::>;`~s;@p;Pp;@t;Pt#<}^<`/<`< v=/=/=0>0=>nt>pd>f?kt?g?l@iV@@@XApAPA=BBBD``qY``)n``m`5`l``r`d`na a(52a`Hap^a&ta}aP}aaParavaKbP,bCb` Zb;qb:b@&b|bp{b~bP~bЁcP/c`sGc|_ckwc4cLc`kcpcc@dd dЀ8dPQd MjdPed"d>dd@d0e`eP7e Qe:ke;eetepteqe( f'fPBf :]f0*xf)fff02f ;gJg9g0Ug`8qg3gg(6gpgpg5hP8h &Uhsh nhh 8hPh& i(i Gi2fi@8i8i@6iij8)jjKjKmj3jjmjPjjpk0o?kCdkpuk3k`&k`:k#lFlol.|l>l0>l`1l 2lЪlP2ll*l5mmp2!mCmfmImJmm>mФ'n"Lnjn"n0nnn@o@&o FofoPo/ooop[+pMpDrp?p@p@Dp`qE>qpqqBq PqpOqq`Z&r[ZrZrYrrFrHs`GŻ M \ k {    ͉  О 20 ]  @ ֊` `  4 Q o`  @ Ћ   2 S t   ׌`  " I0 qp  ȍ@   H f 0  `  7 V u  Ə  С 9 X |@  Đ`    4 \  Р Ց  @ 6@ X `   * dЛ Ч ` Г0   P 9 Y z`   ݔ з Ъ F h   Ε`  " M { p זp @ 5p `  @ ̗` 0,$>Qdw@5seƘPLژ0 Ї c.qC )X m@m0l rdę`nڙ`5024Hp}_|vp~ruҚJp .0;E:\p's{{p~}ӛp sP|3kK4cK{kppÜdۜp L&e? 'Xp<qٝ < ;'Bt]0txqPpɞ0:P*)50P@Jlp87ܟ(`60@M5j@%' mP9p:&X w0209ԡ865.V7xj@K6ޢl$jGjn C0uأ6&"=G#m=̤1ڤ25'P37`Z0IIǥP!2"R0r``˦@.Rs  [D֧@? @#DKDxAOŨNZ-ZaZW@EөpH G$GCVh@T`[Ϫ`0$a?`bga\Q`PR  SAc%ɬ@%5oP(`ۭDdyypǮА *0wQ@vspx@ٯ p,-X04pX|XNY+YZYYTL?TmTUųTPU.KfpUUôUUpJIDmJJ`5ϵ@:!`iPpζ $0 X ~  Ʒ  * h  Ҹ0 ` &P MPŹ0@ pH`pbaκ@[[B[t0\[̻a gTa~ahμgpc`cA[h[pp׽pDD=DhDD$)N@**ؿ@*0*"@P`Hmgj0dfjjjj FqЖ.wN N0N `N1PNWPp.\@=`jp00o ) Q@=@e@Ey@P~ @?лp0p p Ir`HGa4}bЯ-P_=:Jn>JJ5P:P R ` p    W     ?@fE@LE: EePE@E %*3*]***V h>k{ k0k`kPkg@P`!G02`)V @  0] DI|I pbA0x@`I`~J@KK5:`:W0  @ P , Sp zЗ@Ny 00j@P @TP`  .@n0P`0/XJ0J`cJ`Rвbpb+\o] ]]P].0KbA@KPK 6p: : x    p^08xp.WpKDKK`6:;pEhKK0EK6#:@fff0gBfjKELL'6D:a0LE@LPL! 7>:[pL0FLL`7::Ln`FLL7:" S   й  LpPpB0J)CT@JuPJ 50:8Z }`P/PQpt/0`-(0K+h ,   8  ]0 p ` P } } ? yp   $ O {0   p8pv P@ [ `! p! ! ! @    %P P {` p0c  EP z`   `>P`lY`ZpZZ:Ze@f_ `e)0`SgwgPc@c[ [3 `j 0   W PX `X> Xb X @   8 \  @  d( `eS pe e e  3 _ ` 0 @O pV`V=W{`XpXXX"S`TT@T0TJP`C%p#0&@&+&X`&@3@2p2'CbCD20D  D.`)ip)0)))C~4Xij ^j)@jN0js 0|@Dpi`P O x3MogMMMMC`EF:FF>0FdpWXN  X9X_@Xqqqjb rq| @} P} J } p}  Y @Y Y Y > @? P&(!&]!2!p2!2!3"2B"p"""#?#f###$K$pr$$$P %B%o% % %p%PI&u& &0&&@=' ''0'@"(pO(`|( ((")P) x)P)0).*[***0*+0X+++p+`,B,,,,`-`<- Gs-F-0- a<.@r.P..  /?/ps/D/@0D[0E00E0 E1P0Q1@101021S2022`3N33@303@+(40'y4+4+4$5@%,5 ?5 R5 e5 x5 5 555555#5$6$6p&64:6J6?[62g6q6$66#666666666(?7,?757(L72^7` d7pr z7 #7 777778808C8S8d8m8t888899&9-949=9W9e9x99999999::*:5:?:J:U:\:c:j:q:x::::::::::::::::::;;;";-;4;C;K;S;[;d;l;~;;;;;;;;; < <3<F<V<f<t<<<<<<<<<<= === =*=8=@=J=R=[=c=q=w===========KPX_il" %c)*+-.u 0a / =   [ i j t /2q S v @  1nQ ,lmr ! ? A M P T  34568  ! " # $ 7okOg!$ #&;<= 1 7 8 = T 9:p* 9  ?@EH C DFGn >ABIJZf Y Z x V b O 9 xsS[d|Q { *301( vwx   QUXCk N u 6 * st KLMNx } '(5dt- %&'hje< K gi"! e ' OPRSTVWB,-./01235<=>?ACDEFHI4@BJLQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  E(?ANU~67y}~./01234FHKMNOP@KPX_il" %c)*+-.u 0a / =   [ i j t /2q S v @  1nQ ,lmr ! ? A M P T  34568  ! " # $ 7okOg!$ #&;<= 1 7 8 = T 9:p* 9  ?@EH C DFGn >ABIJZf Y Z x V b O 9 xsS[d|Q { *301( vwx   QUXCk N u 6 * st KLMNx } '(5dt- %&'hje< K gi"! e ' OPRSTVWB,-./01235<=>?ACDEFHI4@BJLQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ _LookToRead_Look_Lookahead_LookToRead_Look_Exact_LookToRead_Skip_LookToRead_Read_LookToRead_Seek_SecToLook_Read_SecToRead_Read_Aes_Encode_MatchFinder_ReadBlock_MatchFinder_CheckLimits_SkipMatchesSpec_Hc4_MatchFinder_GetMatches_Hc4_MatchFinder_Skip_Bt2_MatchFinder_GetMatches_Bt2_MatchFinder_Skip_Bt3_MatchFinder_GetMatches_Bt3_MatchFinder_Skip_Bt4_MatchFinder_GetMatches_Bt4_MatchFinder_Skip_MtSync_Create_HashThreadFunc2_BtThreadFunc2_GetHeads2_GetHeads3_GetHeads4b_GetHeads4_MtCallbackImp_Code_Lzma2EncInt_EncodeSubblock_LzmaDec_WriteRem_LzmaDec_TryDummy_LzmaDec_DecodeReal2_FillDistancesPrices_FillAlignPrices_LzmaEnc_AllocAndInit_MyWrite_LzmaEnc_CodeOneBlock_LzmaEnc_Encode2_Flush_ReadMatchDistances_LenEnc_Encode2_LenPriceEnc_UpdateTable_GetPureRepPrice_Backward_LoopThreadFunc_ThreadFunc_RestartModel_Rescale_UpdateModel_CreateSuccessors_AllocUnitsRare_SplitBlock_Range_GetThreshold_Range_Decode_Range_DecodeBit_RestartModel_Rescale_UpdateModel_CreateSuccessors_RestoreModel_AllocUnitsRare_SplitBlock_Refresh_CutOff_ShrinkUnits_Sha256_WriteByteBlock_BraState_Code_Lzma2State_Free_Lzma2State_SetProps_Lzma2State_Init_Lzma2State_Code_MyWrite_SeqCheckInStream_Read_SzBigAlloc_SzBigFree_SzAlloc_SzFree_SeqInFilter_Read__ZN8NArchive3N7zL21GetStringForSizeValueEPcj__ZN8NArchive3N7zL15GetBindInfoPartER7UStringRjS3___ZN8NArchive3N7zL14ThrowIncorrectEv__ZN8NArchive3N7zL14ThrowEndOfDataEv__ZN8NArchive3N7zL16ThrowUnsupportedEv__ZN8NArchive3N7zL14ThrowExceptionEv__ZN8NArchive3N7zL9CreateArcEv__ZN8NArchive3N7zL12CreateArcOutEv__GLOBAL__I_a__ZN8NArchive3N7zL10WriteRangeEP9IInStreamP20ISequentialOutStreamyyP21ICompressProgressInfo__ZN8NArchive3N7zL20CompareFolderRepacksEPKNS0_13CFolderRepackES3_Pv__ZN8NArchive3N7zL17CompareEmptyItemsEPKiS2_Pv__ZN8NArchive3N7zL7GetFileERKNS0_9CDatabaseEiRNS0_9CFileItemERNS0_10CFileItem2E__ZN8NArchive3N7zL18CompareUpdateItemsEPKNS0_8CRefItemES3_Pv__ZN8NArchive3N7zL14AddBcj2MethodsERNS0_22CCompressionMethodModeE_IsArc_BZip2__ZN8NArchive4NBz2L9CreateArcEv__ZN8NArchive4NBz2L12CreateArcOutEv__GLOBAL__I_a__ZN8NArchive4NCabL14CompareMvItemsEPKNS0_7CMvItemES3_Pv__ZN8NArchive4NCabL9CreateArcEv__GLOBAL__I_a__ZN8NArchive3NGzL9CreateArcEv__ZN8NArchive3NGzL12CreateArcOutEv_IsArc_Gz__GLOBAL__I_a__ZN8NArchive5NLzma7NLzmaArL9CreateArcEv_IsArc_Lzma__ZN8NArchive5NLzma9NLzma86ArL9CreateArcEv_IsArc_Lzma86__GLOBAL__I_a_Range_GetThreshold_Range_Decode_Range_DecodeBit__ZN8NArchive5NPpmdL9CreateArcEv__ZN8NArchive5NPpmdL10SzBigAllocEPvm__ZN8NArchive5NPpmdL9SzBigFreeEPvS1___GLOBAL__I_a__ZN8NArchive6NSplitL9CreateArcEv__GLOBAL__I_a__ZN8NArchive4NTarL18CompareUpdateItemsEPKPvS3_S1___ZN8NArchive4NTarL9ParseSizeEPKcRy__ZN8NArchive4NTarL10ParseInt64EPKcRx__ZN8NArchive4NTarL13WriteOctal_12EPcy__ZN8NArchive4NTarL9CreateArcEv__ZN8NArchive4NTarL12CreateArcOutEv__GLOBAL__I_a__ZN8NArchive3NXzL20OpenCallbackProgressEPvyy__ZN8NArchive3NXzL9CreateArcEv__ZN8NArchive3NXzL12CreateArcOutEv__ZL7SzAllocPvm__ZL6SzFreePvS___GLOBAL__I_a__ZN8NArchive2NZL9CreateArcEv_IsArc_Z__GLOBAL__I_a__ZN8NArchive4NZipL13BytesToStringERK7CBufferIhE__ZN8NArchive4NZipL9CreateArcEv__ZN8NArchive4NZipL12CreateArcOutEv__GLOBAL__I_a__ZN8NArchive4NZipL13SetFileHeaderERNS0_11COutArchiveERKNS0_22CCompressionMethodModeERKNS0_11CUpdateItemERNS0_8CItemOutE__ZN8NArchive4NZipL32SetItemInfoFromCompressingResultERKNS0_18CCompressingResultEbhRNS0_5CItemE__ZN8NArchive4NZipL17UpdateItemOldDataERNS0_11COutArchiveEPNS0_10CInArchiveERKNS0_7CItemExERKNS0_11CUpdateItemERNS0_8CItemOutEP21ICompressProgressInfoRy__ZN8NArchive4NZipL10WriteRangeEP9IInStreamRNS0_11COutArchiveERKNS0_12CUpdateRangeEP21ICompressProgressInfo__ZN8NArchive4NZipL11CoderThreadEPv__ZL16CompressProgressPvyy__ZL6MyReadPvS_Pm__ZL7MyWritePvPKvm__ZL17InStreamWrap_ReadPvS_Pm__ZL17InStreamWrap_SeekPvPx7ESzSeek__ZL13Wrap_ReadBytePv__ZL14Wrap_WriteBytePvh__ZL15ConvertPropertyRK14tagPROPVARIANTtRN8NWindows4NCOM12CPropVariantE__ZL10SplitParamRK7UStringRS_S2___ZL11CoderThreadPv__GLOBAL__I_a__ZN9NCompress6NBZip2L11DecodeBlockERKNS0_11CBlockPropsEPjR10COutBuffer__ZN9NCompress6NBZip2L8MFThreadEPv__ZN9NCompress6NBZip2L8MFThreadEPv__ZL11CreateCodecv__ZL14CreateCodecOutv__GLOBAL__I_a__ZL11CreateCodecv__ZL14CreateCodecOutv__GLOBAL__I_a__ZL11CreateCodecv__ZL14CreateCodecOutv__GLOBAL__I_a__GLOBAL__I_a__ZL17CreateCodecBC_PPCv__ZL20CreateCodecBC_PPCOutv__ZL18CreateCodecBC_IA64v__ZL21CreateCodecBC_IA64Outv__ZL17CreateCodecBC_ARMv__ZL20CreateCodecBC_ARMOutv__ZL18CreateCodecBC_ARMTv__ZL21CreateCodecBC_ARMTOutv__ZL19CreateCodecBC_SPARCv__ZL22CreateCodecBC_SPARCOutv__GLOBAL__I_a__ZL12CreateCodec2v__ZL12CreateCodec4v__GLOBAL__I_a__ZL11CreateCodecv__GLOBAL__I_a__ZL20CreateCodecDeflate64v__ZL23CreateCodecOutDeflate64v__GLOBAL__I_a__ZN9NCompress8NDeflate8NEncoderL7SzAllocEPvm__ZN9NCompress8NDeflate8NEncoderL6SzFreeEPvS2___GLOBAL__I_a__ZL18CreateCodecDeflatev__ZL21CreateCodecOutDeflatev__GLOBAL__I_a__ZL16CreateCodecDeltav__ZL19CreateCodecDeltaOutv__GLOBAL__I_a__ZN9NCompress6NLzma2L7SzAllocEPvm__ZN9NCompress6NLzma2L6SzFreeEPvS1___ZN9NCompress6NLzma2L10SzBigAllocEPvm__ZN9NCompress6NLzma2L9SzBigFreeEPvS1___ZN9NCompress6NLzma2L7SzAllocEPvm__ZN9NCompress6NLzma2L6SzFreeEPvS1___ZL11CreateCodecv__ZL14CreateCodecOutv__GLOBAL__I_a__ZN9NCompress5NLzmaL7SzAllocEPvm__ZN9NCompress5NLzmaL6SzFreeEPvS1___ZN9NCompress5NLzmaL10SzBigAllocEPvm__ZN9NCompress5NLzmaL9SzBigFreeEPvS1___ZN9NCompress5NLzmaL7SzAllocEPvm__ZN9NCompress5NLzmaL6SzFreeEPvS1___ZL11CreateCodecv__ZL14CreateCodecOutv__GLOBAL__I_a__ZN9NCompress5NPpmdL10SzBigAllocEPvm__ZN9NCompress5NPpmdL9SzBigFreeEPvS1___ZN9NCompress5NPpmdL10SzBigAllocEPvm__ZN9NCompress5NPpmdL9SzBigFreeEPvS1___ZL11CreateCodecv__ZL14CreateCodecOutv__GLOBAL__I_a__ZN9NCompress8NPpmdZipL10SzBigAllocEPvm__ZN9NCompress8NPpmdZipL9SzBigFreeEPvS1___GLOBAL__I_a__ZL11CreateCodecv__ZL14CreateCodecOutv__GLOBAL__I_a__GLOBAL__I_a__ZL14CreateCodecCbcv__ZL17CreateCodecCbcOutv__GLOBAL__I_a__GLOBAL__I_a__ZL12CreateHasherv__GLOBAL__I_a__ZN7NCrypto10NZipStrongL9DeriveKeyERNS_5NSha18CContextEPh__ZL26AddSwitchWildcardsToCensorRN9NWildcard7CCensorERK13CObjectVectorI7UStringEbN13NRecursedType5EEnumEbi__ZL23AddToCensorFromListFileP13CObjectVectorI11CRenamePairERN9NWildcard7CCensorEPKwbN13NRecursedType5EEnumEbi__ZL13AddRenamePairP13CObjectVectorI11CRenamePairERK7UStringS5_N13NRecursedType5EEnumEb__ZL12PrintResultsP19IBenchPrintCallbackRK10CBenchInfoybyP14CTotalBenchRes__ZL12CountCpuFreqjjj__ZL11MethodBenchybjRK14COneMethodInfojjP19IBenchPrintCallbackP14IBenchCallbackP11CBenchProps__ZL8CrcBenchyjjRyjPKjRK14COneMethodInfoP19IBenchPrintCallbackP14CTotalBenchResby__ZL9FreqBenchyjP19IBenchPrintCallbackbRyRj__ZL12PrintResultsR19IBenchPrintCallbackyyyby__ZL18FreqThreadFunctionPv__ZL17CrcThreadFunctionPv__ZL6CrcBigPKvjyPKjP7IHasherP19IBenchPrintCallback__ZL17EnumerateDirItemsRKN9NWildcard11CCensorNodeEiiRK7UStringRK13CObjectVectorIS3_ER9CDirItemsbP20IEnumDirItemCallback__ZL22EnumerateDirItems_SpecRKN9NWildcard11CCensorNodeEiiRK7UStringS5_RK13CObjectVectorIS3_ER9CDirItemsbP20IEnumDirItemCallback__ZL11SplitStringRK7UStringR13CObjectVectorIS_E__ZL23Archive_GetArcProp_UIntP10IInArchivejRyRb__ZL14MakeCheckOrderP7CCodecsR13CRecordVectorIiEjS3_PKhm__ZL15OpenArchiveSpecP10IInArchivebP9IInStreamPKyP20IArchiveOpenCallbackP23IArchiveExtractCallback__ZL18ReadParseItemPropsP10IInArchiveRK10CArcInfoExRN8NArchive7NParser10CParseItemE__ZL10ParseOwnerR7AStringPKhjj__ZL14CompareStringsPKjS0_Pv__ZL18CompareRefSortPairPK12CRefSortPairS1_Pv__GLOBAL__I_a__ZL15CompareArcItemsPKjS0_Pv__ZL10ThrowErrorPKcRK7UStringS3___ZN13NConsoleCloseL14HandlerRoutineEi__ZL8PrintSumR13CStdOutStreamRK12CHasherStatej__ZL9PrintTimePcPK9_FILETIME__ZL11PrintNumber11EAdjustmentiRK14CListUInt64Def__ZL17PrintArcTypeErrorRK7UStringb__ZL15ErrorInfo_PrintRK13CArcErrorInfo__ZL18PrintPropertyPair2jPKwRKN8NWindows4NCOM12CPropVariantE__ZL20PrintPropName_and_Eqj__ZL15PrintErrorFlagsPKcj__ZL20ShowCopyrightAndHelpR13CStdOutStreamb__ZL13WarningsCheckiRK20CCallbackConsoleBaseRK10CErrorInfoR13CStdOutStream__GLOBAL__I_a__GLOBAL__I_a__ZL12CreateHasherv__GLOBAL__I_a__ZL7AddNameR13CObjectVectorI7UStringERS0___ZL12CreateHasherv__GLOBAL__I_a__GLOBAL__I_a__GLOBAL__I_a__ZL13Utf8_To_Utf16PwPmPKcm__ZL13Utf16_To_Utf8PcPmPKwm__ZL16EnhancedMaskTestPKwS0___ZL12CreateHasherv__GLOBAL__I_a__ZN8NWindows5NFile4NDirL14CreateTempFileEPKwbR7UStringPNS0_3NIO8COutFileE__GLOBAL__I_a__ZL14filter_patternPKcS0_i__ZN8NWindows5NFile5NFindL16fillin_CFileInfoERNS1_9CFileInfoEPKcS5_b_Sbox_Rcon_kBranchTable_.memset_pattern_kLiteralNextStates_kShortRepNextStates_kRepNextStates_kMatchNextStates_.memset_pattern5_kInitBinEsc_kInitBinEsc_K__ZN8NArchive3N7zL9kArcPropsE__ZN8NArchive3N7zL8kPropMapE__ZN8NArchive4NBz2L6kPropsE__ZN8NArchive4NBz2L9kArcPropsE__ZN8NArchive4NCabL6kPropsE__ZN8NArchive4NCabL9kArcPropsE__ZN8NArchive3NGzL6kPropsE__ZN8NArchive3NGzL9kArcPropsE__ZN8NArchive5NLzmaL6kPropsE__ZN8NArchive5NPpmdL6kPropsE__ZN8NArchive6NSplitL6kPropsE__ZN8NArchive6NSplitL9kArcPropsE__ZN8NArchive4NTarL6kPropsE__ZN8NArchive4NTarL9kArcPropsE__ZN8NArchive3NXzL6kPropsE__ZN8NArchive3NXzL9kArcPropsE__ZN8NArchive4NZipL6kPropsE__ZN8NArchive4NZipL9kArcPropsE__ZN9NCompress6NBZip2L9kRandNumsE_.memset_pattern1__ZN9NCompress8NDeflateL24kCodeLengthAlphabetOrderE__ZN9NCompress8NDeflateL11kLenStart64E__ZN9NCompress8NDeflateL16kLenDirectBits64E__ZN9NCompress8NDeflateL11kLenStart32E__ZN9NCompress8NDeflateL16kLenDirectBits32E__ZN9NCompress8NDeflateL10kDistStartE__ZN9NCompress8NDeflateL15kDistDirectBitsE__ZN9NCompress8NDeflateL11kLenStart64E__ZN9NCompress8NDeflateL11kLenStart32E__ZN9NCompress8NDeflateL16kLenDirectBits64E__ZN9NCompress8NDeflateL16kLenDirectBits32E__ZN9NCompress8NDeflateL15kDistDirectBitsE__ZN9NCompress8NDeflateL10kDistStartE__ZN9NCompress8NDeflateL24kCodeLengthAlphabetOrderE__ZN9NCompress5NPpmdL7kOrdersE__ZL35kUpdatePairStateNotSupportedActions__ZN8NArchive7NParserL6kPropsE__ZZN4CArc11OpenStream2ERK12COpenOptionsE10kRarHeader__ZL11kPosixTypes__ZL11kUtf8Limits__ZL12MonthLengthsGCC_except_table2GCC_except_table3GCC_except_table4GCC_except_table5GCC_except_table11GCC_except_table16GCC_except_table17GCC_except_table18GCC_except_table19GCC_except_table20GCC_except_table21GCC_except_table31GCC_except_table0GCC_except_table2GCC_except_table3GCC_except_table4GCC_except_table5GCC_except_table6GCC_except_table8GCC_except_table9GCC_except_table12GCC_except_table13GCC_except_table14GCC_except_table18GCC_except_table34GCC_except_table38GCC_except_table39GCC_except_table43GCC_except_table0GCC_except_table1GCC_except_table2GCC_except_table3GCC_except_table1GCC_except_table3GCC_except_table13GCC_except_table18GCC_except_table19GCC_except_table24GCC_except_table1GCC_except_table4GCC_except_table14GCC_except_table15GCC_except_table19GCC_except_table25GCC_except_table2GCC_except_table6GCC_except_table7GCC_except_table18GCC_except_table20GCC_except_table21GCC_except_table27GCC_except_table32GCC_except_table37GCC_except_table43GCC_except_table46GCC_except_table51GCC_except_table3GCC_except_table5GCC_except_table6GCC_except_table7GCC_except_table8GCC_except_table9GCC_except_table13GCC_except_table14GCC_except_table15GCC_except_table18GCC_except_table23GCC_except_table24GCC_except_table26GCC_except_table27GCC_except_table0GCC_except_table17GCC_except_table29GCC_except_table30GCC_except_table31GCC_except_table35GCC_except_table36GCC_except_table38GCC_except_table40GCC_except_table42GCC_except_table2GCC_except_table17GCC_except_table21GCC_except_table23GCC_except_table24GCC_except_table28GCC_except_table36GCC_except_table0GCC_except_table0GCC_except_table1GCC_except_table9GCC_except_table11GCC_except_table12GCC_except_table25GCC_except_table26GCC_except_table33GCC_except_table41GCC_except_table42GCC_except_table46GCC_except_table47GCC_except_table53GCC_except_table54GCC_except_table55GCC_except_table7GCC_except_table12GCC_except_table15GCC_except_table19GCC_except_table20GCC_except_table25GCC_except_table30GCC_except_table35GCC_except_table40GCC_except_table41GCC_except_table42GCC_except_table43GCC_except_table58GCC_except_table1GCC_except_table4GCC_except_table5GCC_except_table6GCC_except_table7GCC_except_table8GCC_except_table13GCC_except_table15GCC_except_table19GCC_except_table25GCC_except_table30GCC_except_table32GCC_except_table33GCC_except_table34GCC_except_table35GCC_except_table36GCC_except_table49GCC_except_table50GCC_except_table54GCC_except_table55GCC_except_table60GCC_except_table61GCC_except_table67GCC_except_table68GCC_except_table73GCC_except_table74GCC_except_table76GCC_except_table77GCC_except_table78GCC_except_table80GCC_except_table82GCC_except_table84GCC_except_table104GCC_except_table106GCC_except_table6GCC_except_table8GCC_except_table0GCC_except_table1GCC_except_table5GCC_except_table1GCC_except_table2GCC_except_table3GCC_except_table8GCC_except_table12GCC_except_table13GCC_except_table18GCC_except_table30GCC_except_table31GCC_except_table32GCC_except_table33GCC_except_table4GCC_except_table5GCC_except_table0GCC_except_table3GCC_except_table6GCC_except_table12GCC_except_table3GCC_except_table6GCC_except_table7GCC_except_table9GCC_except_table11GCC_except_table13GCC_except_table14GCC_except_table17GCC_except_table20GCC_except_table24GCC_except_table25GCC_except_table31GCC_except_table36GCC_except_table41GCC_except_table46GCC_except_table51GCC_except_table52GCC_except_table53GCC_except_table109GCC_except_table114GCC_except_table1GCC_except_table3GCC_except_table4GCC_except_table11GCC_except_table17GCC_except_table25GCC_except_table26GCC_except_table30GCC_except_table36GCC_except_table7GCC_except_table9GCC_except_table17GCC_except_table18GCC_except_table22GCC_except_table23GCC_except_table27GCC_except_table28GCC_except_table5GCC_except_table6GCC_except_table7GCC_except_table8GCC_except_table9GCC_except_table11GCC_except_table12GCC_except_table13GCC_except_table14GCC_except_table16GCC_except_table21GCC_except_table26GCC_except_table27GCC_except_table4GCC_except_table6GCC_except_table7GCC_except_table8GCC_except_table15GCC_except_table18GCC_except_table19GCC_except_table20GCC_except_table23GCC_except_table25GCC_except_table31GCC_except_table36GCC_except_table41GCC_except_table46GCC_except_table51GCC_except_table58GCC_except_table59GCC_except_table61GCC_except_table77GCC_except_table108GCC_except_table2GCC_except_table3GCC_except_table4GCC_except_table8GCC_except_table3GCC_except_table3GCC_except_table0GCC_except_table1GCC_except_table0GCC_except_table2GCC_except_table8GCC_except_table10GCC_except_table15GCC_except_table16GCC_except_table22GCC_except_table23GCC_except_table26GCC_except_table28GCC_except_table31GCC_except_table32GCC_except_table37GCC_except_table42GCC_except_table47GCC_except_table52GCC_except_table57GCC_except_table58GCC_except_table7GCC_except_table9GCC_except_table16GCC_except_table0GCC_except_table5GCC_except_table10GCC_except_table15GCC_except_table81GCC_except_table2GCC_except_table7GCC_except_table8GCC_except_table10GCC_except_table14GCC_except_table15GCC_except_table17GCC_except_table19GCC_except_table20GCC_except_table21GCC_except_table26GCC_except_table31GCC_except_table38GCC_except_table44GCC_except_table45GCC_except_table46GCC_except_table47GCC_except_table48GCC_except_table50GCC_except_table51GCC_except_table2GCC_except_table3GCC_except_table5GCC_except_table8GCC_except_table8GCC_except_table18GCC_except_table19GCC_except_table21GCC_except_table23GCC_except_table28GCC_except_table29GCC_except_table30GCC_except_table33GCC_except_table34GCC_except_table35GCC_except_table36GCC_except_table50GCC_except_table17GCC_except_table18GCC_except_table23GCC_except_table0GCC_except_table1GCC_except_table1GCC_except_table3GCC_except_table5GCC_except_table11GCC_except_table13GCC_except_table17GCC_except_table22GCC_except_table27GCC_except_table31GCC_except_table34GCC_except_table35GCC_except_table38GCC_except_table41GCC_except_table42GCC_except_table43GCC_except_table44GCC_except_table45GCC_except_table46GCC_except_table48GCC_except_table52GCC_except_table70GCC_except_table71GCC_except_table77GCC_except_table78GCC_except_table79GCC_except_table80GCC_except_table2GCC_except_table6GCC_except_table13GCC_except_table14GCC_except_table15GCC_except_table16GCC_except_table17GCC_except_table21GCC_except_table22GCC_except_table6GCC_except_table7GCC_except_table8GCC_except_table9GCC_except_table0GCC_except_table0GCC_except_table2GCC_except_table30GCC_except_table1GCC_except_table2GCC_except_table4GCC_except_table5GCC_except_table6GCC_except_table7GCC_except_table8GCC_except_table9GCC_except_table10GCC_except_table11GCC_except_table12GCC_except_table13GCC_except_table14GCC_except_table15GCC_except_table35GCC_except_table58GCC_except_table2GCC_except_table3GCC_except_table1GCC_except_table4GCC_except_table9GCC_except_table18GCC_except_table3GCC_except_table25GCC_except_table30GCC_except_table35GCC_except_table45GCC_except_table50GCC_except_table55GCC_except_table0GCC_except_table1GCC_except_table5GCC_except_table8GCC_except_table11GCC_except_table13GCC_except_table15GCC_except_table16GCC_except_table17GCC_except_table0GCC_except_table1GCC_except_table4GCC_except_table0GCC_except_table2GCC_except_table2GCC_except_table8GCC_except_table9GCC_except_table11GCC_except_table16GCC_except_table2GCC_except_table10GCC_except_table11GCC_except_table38GCC_except_table39GCC_except_table0GCC_except_table1GCC_except_table2GCC_except_table3GCC_except_table10GCC_except_table11GCC_except_table13GCC_except_table14GCC_except_table16GCC_except_table17GCC_except_table25GCC_except_table32GCC_except_table41GCC_except_table52GCC_except_table57GCC_except_table62GCC_except_table63GCC_except_table64GCC_except_table5GCC_except_table10GCC_except_table11GCC_except_table13GCC_except_table14GCC_except_table15GCC_except_table18GCC_except_table19GCC_except_table34GCC_except_table49GCC_except_table0GCC_except_table1GCC_except_table0GCC_except_table2GCC_except_table5GCC_except_table7GCC_except_table17GCC_except_table0GCC_except_table0GCC_except_table2GCC_except_table8GCC_except_table9GCC_except_table0GCC_except_table1GCC_except_table6GCC_except_table11GCC_except_table22GCC_except_table23GCC_except_table27GCC_except_table28GCC_except_table33GCC_except_table34GCC_except_table40GCC_except_table41GCC_except_table46GCC_except_table47GCC_except_table16GCC_except_table26GCC_except_table3GCC_except_table8GCC_except_table34GCC_except_table35GCC_except_table38GCC_except_table0GCC_except_table1GCC_except_table1GCC_except_table7GCC_except_table14GCC_except_table19GCC_except_table20GCC_except_table2GCC_except_table4GCC_except_table5GCC_except_table6GCC_except_table7GCC_except_table8GCC_except_table9GCC_except_table2GCC_except_table4GCC_except_table5GCC_except_table0GCC_except_table1GCC_except_table2GCC_except_table4GCC_except_table5GCC_except_table6GCC_except_table7GCC_except_table8GCC_except_table9GCC_except_table2GCC_except_table4GCC_except_table5GCC_except_table0GCC_except_table1GCC_except_table1GCC_except_table18GCC_except_table19GCC_except_table25GCC_except_table26GCC_except_table0GCC_except_table2GCC_except_table3GCC_except_table4GCC_except_table5GCC_except_table6GCC_except_table1GCC_except_table2GCC_except_table3GCC_except_table4GCC_except_table7GCC_except_table8GCC_except_table9GCC_except_table0GCC_except_table1GCC_except_table2GCC_except_table1GCC_except_table2GCC_except_table4GCC_except_table7GCC_except_table9GCC_except_table10GCC_except_table15GCC_except_table4GCC_except_table5GCC_except_table0GCC_except_table1GCC_except_table1GCC_except_table4GCC_except_table5GCC_except_table4GCC_except_table9GCC_except_table14GCC_except_table19GCC_except_table21GCC_except_table26GCC_except_table31GCC_except_table36GCC_except_table41GCC_except_table43GCC_except_table45GCC_except_table50GCC_except_table55GCC_except_table60GCC_except_table62GCC_except_table0GCC_except_table1GCC_except_table0GCC_except_table1GCC_except_table9GCC_except_table1GCC_except_table7GCC_except_table9GCC_except_table12GCC_except_table13GCC_except_table14GCC_except_table15GCC_except_table16GCC_except_table18GCC_except_table19GCC_except_table20GCC_except_table21GCC_except_table22GCC_except_table24GCC_except_table25GCC_except_table26GCC_except_table27GCC_except_table2GCC_except_table3GCC_except_table5GCC_except_table6GCC_except_table7GCC_except_table10GCC_except_table12GCC_except_table13GCC_except_table14GCC_except_table15GCC_except_table17GCC_except_table18GCC_except_table19GCC_except_table22GCC_except_table27GCC_except_table37GCC_except_table42GCC_except_table47GCC_except_table49GCC_except_table0GCC_except_table1GCC_except_table2GCC_except_table4GCC_except_table7GCC_except_table13GCC_except_table19GCC_except_table24GCC_except_table30GCC_except_table31GCC_except_table36GCC_except_table41GCC_except_table43GCC_except_table14GCC_except_table16GCC_except_table17GCC_except_table19GCC_except_table29GCC_except_table31GCC_except_table32GCC_except_table33GCC_except_table43GCC_except_table45GCC_except_table56GCC_except_table60GCC_except_table63GCC_except_table65GCC_except_table66GCC_except_table69GCC_except_table75GCC_except_table76GCC_except_table77GCC_except_table0GCC_except_table0GCC_except_table1GCC_except_table2GCC_except_table11GCC_except_table12GCC_except_table13GCC_except_table14GCC_except_table16GCC_except_table18GCC_except_table19GCC_except_table20GCC_except_table1GCC_except_table2GCC_except_table3GCC_except_table4GCC_except_table5GCC_except_table6GCC_except_table1GCC_except_table2GCC_except_table4GCC_except_table5GCC_except_table0GCC_except_table4GCC_except_table9GCC_except_table18GCC_except_table2GCC_except_table3GCC_except_table4GCC_except_table5GCC_except_table7GCC_except_table11GCC_except_table12GCC_except_table14GCC_except_table15GCC_except_table16GCC_except_table1GCC_except_table2GCC_except_table3GCC_except_table9GCC_except_table13GCC_except_table14GCC_except_table15GCC_except_table17GCC_except_table22GCC_except_table23GCC_except_table24GCC_except_table25GCC_except_table26GCC_except_table27GCC_except_table33GCC_except_table34GCC_except_table35GCC_except_table36GCC_except_table45GCC_except_table47GCC_except_table48GCC_except_table50GCC_except_table51GCC_except_table52GCC_except_table54GCC_except_table55GCC_except_table56GCC_except_table57GCC_except_table58GCC_except_table60GCC_except_table61GCC_except_table63GCC_except_table64GCC_except_table69GCC_except_table70GCC_except_table74GCC_except_table75GCC_except_table79GCC_except_table80GCC_except_table84GCC_except_table90GCC_except_table95GCC_except_table96GCC_except_table98GCC_except_table111GCC_except_table147GCC_except_table206GCC_except_table1GCC_except_table0GCC_except_table0GCC_except_table3GCC_except_table5GCC_except_table8GCC_except_table9GCC_except_table10GCC_except_table11GCC_except_table12GCC_except_table14GCC_except_table16GCC_except_table17GCC_except_table26GCC_except_table27GCC_except_table32GCC_except_table33GCC_except_table69GCC_except_table1GCC_except_table2GCC_except_table3GCC_except_table4GCC_except_table6GCC_except_table19GCC_except_table21GCC_except_table22GCC_except_table24GCC_except_table25GCC_except_table27GCC_except_table33GCC_except_table38GCC_except_table43GCC_except_table48GCC_except_table53GCC_except_table58GCC_except_table59GCC_except_table0GCC_except_table5GCC_except_table5GCC_except_table2GCC_except_table3GCC_except_table5GCC_except_table7GCC_except_table9GCC_except_table10GCC_except_table11GCC_except_table12GCC_except_table13GCC_except_table14GCC_except_table15GCC_except_table1GCC_except_table8GCC_except_table9GCC_except_table10GCC_except_table15GCC_except_table16GCC_except_table2GCC_except_table3GCC_except_table4GCC_except_table5GCC_except_table6GCC_except_table7GCC_except_table8GCC_except_table9GCC_except_table11GCC_except_table12GCC_except_table14GCC_except_table15GCC_except_table16GCC_except_table17GCC_except_table23GCC_except_table24GCC_except_table26GCC_except_table0GCC_except_table1GCC_except_table3GCC_except_table5GCC_except_table11GCC_except_table12GCC_except_table16GCC_except_table17GCC_except_table44GCC_except_table45GCC_except_table48GCC_except_table49GCC_except_table0GCC_except_table3GCC_except_table0GCC_except_table1GCC_except_table2GCC_except_table3GCC_except_table4GCC_except_table1GCC_except_table2GCC_except_table4GCC_except_table8GCC_except_table11GCC_except_table14GCC_except_table16GCC_except_table17GCC_except_table19GCC_except_table20GCC_except_table0GCC_except_table1GCC_except_table1GCC_except_table4GCC_except_table0GCC_except_table4GCC_except_table12GCC_except_table13GCC_except_table9GCC_except_table1GCC_except_table3GCC_except_table1GCC_except_table5GCC_except_table7GCC_except_table8GCC_except_table9GCC_except_table10GCC_except_table11GCC_except_table0GCC_except_table1GCC_except_table2GCC_except_table3GCC_except_table0GCC_except_table1GCC_except_table2GCC_except_table9GCC_except_table12GCC_except_table14GCC_except_table16GCC_except_table17GCC_except_table18GCC_except_table19GCC_except_table23GCC_except_table24GCC_except_table26GCC_except_table27GCC_except_table28GCC_except_table29GCC_except_table30GCC_except_table31GCC_except_table32GCC_except_table38GCC_except_table39GCC_except_table42GCC_except_table43GCC_except_table0GCC_except_table1GCC_except_table2GCC_except_table3GCC_except_table4GCC_except_table6GCC_except_table8GCC_except_table10GCC_except_table11GCC_except_table13GCC_except_table14GCC_except_table16GCC_except_table21GCC_except_table23GCC_except_table0GCC_except_table4GCC_except_table6GCC_except_table9GCC_except_table10GCC_except_table11GCC_except_table12GCC_except_table0GCC_except_table1GCC_except_table2GCC_except_table3GCC_except_table4GCC_except_table2GCC_except_table0GCC_except_table1GCC_except_table4GCC_except_table12GCC_except_table15GCC_except_table16GCC_except_table17GCC_except_table18GCC_except_table19GCC_except_table20GCC_except_table21GCC_except_table22GCC_except_table23GCC_except_table24GCC_except_table25GCC_except_table26GCC_except_table27GCC_except_table28GCC_except_table29GCC_except_table30GCC_except_table0GCC_except_table7GCC_except_table0GCC_except_table0__ZL16g_WinAttribChars_pvars_g_Alloc_g_BigAlloc__ZN8NArchive3N7zL9g_ArcInfoE__ZN8NArchive4NBz2L9g_ArcInfoE__ZN8NArchive4NCabL9g_ArcInfoE__ZN8NArchive3NGzL9g_ArcInfoE__ZN8NArchive5NLzma7NLzmaArL9g_ArcInfoE__ZN8NArchive5NLzma9NLzma86ArL9g_ArcInfoE__ZN8NArchive5NPpmdL9g_ArcInfoE__ZN8NArchive5NPpmdL10g_BigAllocE__ZN8NArchive6NSplitL9g_ArcInfoE__ZN8NArchive4NTarL9g_ArcInfoE__ZL7g_Alloc__ZN8NArchive3NXzL9g_ArcInfoE__ZN8NArchive2NZL9g_ArcInfoE__ZN8NArchive4NZipL9g_ArcInfoE__ZL11g_CodecInfo__ZL11g_CodecInfo__ZL11g_CodecInfo__ZL12g_CodecsInfo__ZL12g_CodecsInfo__ZL11g_CodecInfo__ZL11g_CodecInfo__ZN9NCompress8NDeflate8NEncoderL7g_AllocE__ZL11g_CodecInfo__ZL12g_CodecsInfo__ZN9NCompress6NLzma2L7g_AllocE__ZN9NCompress6NLzma2L7g_AllocE__ZN9NCompress6NLzma2L10g_BigAllocE__ZL11g_CodecInfo__ZN9NCompress5NLzmaL7g_AllocE__ZN9NCompress5NLzmaL7g_AllocE__ZN9NCompress5NLzmaL10g_BigAllocE__ZL11g_CodecInfo__ZN9NCompress5NPpmdL10g_BigAllocE__ZN9NCompress5NPpmdL10g_BigAllocE__ZL11g_CodecInfo__ZN9NCompress8NPpmdZipL10g_BigAllocE__ZL11g_CodecInfo__ZL11g_CodecInfo__ZL12g_HasherInfo__ZL32k_Formats_with_simple_signuature__ZL15k_PreArcFormats__ZL12g_HasherInfo__ZL12g_HasherInfo__ZL12g_HasherInfo__ZL15gbl_synchroTest__ZN8NArchive4NCabL8kMethodsE__ZN8NArchive3NGzL9kHostOSesE__ZN8NArchive3NXzL7kChecksE__ZN8NArchive3NXzL11g_NamePairsE__ZN8NArchive4NZipL19k_StrongCryptoPairsE__ZN8NArchive4NZipL8kMethodsE__ZN8NArchive4NZipL19k_MethodIdNamePairsE__ZN8NArchive4NZipL7kHostOSE__ZN8NArchive4NZipL18k_SupportedMethodsE__ZL14g_NameToPropID__ZL12kSwitchForms__ZL6g_Hash__ZL7g_Bench__ZL8sidNames__ZL12sid_32_Names__ZL16services_to_name__ZL20k_ErrorFlagsMessages__ZL14k_DigestTitles__ZL19kStandardFieldTable__ZL13kPropIdToName_InvS_T_D__ZN9NCompress8NDeflate8NEncoderL10g_LenSlotsE__ZN9NCompress8NDeflate8NEncoderL9g_FastPosE__ZN7NCrypto7NSevenZL16g_GlobalKeyCacheE__ZN7NCrypto7NSevenZL31g_GlobalKeyCacheCriticalSectionE__ZL17g_CriticalSection__ZL9g_NumArcs__ZL6g_Arcs__ZL2CS__ZL14g_BreakCounter__ZL17g_CriticalSection__ZL22g_CountCriticalSection__ZL9gbl_umask__ZZN8NWindows5NFile4NDirL14CreateTempFileEPKwbR7UStringPNS0_3NIO8COutFileEE10memo_count__ZZ18mySplitCommandLineiPPcR13CObjectVectorI7UStringEE14p7zip_home_dir_ARMT_Convert_ARM_Convert_AesCbc_Decode_AesCbc_Encode_AesCbc_Init_AesCtr_Code_AesGenTables_Aes_SetKey_Dec_Aes_SetKey_Enc_AutoResetEvent_Create_AutoResetEvent_CreateNotSignaled_BigAlloc_BigFree_BlockSort_BraState_Free_BraState_Init_BraState_SetFromMethod_BraState_SetProps_Bt3Zip_MatchFinder_GetMatches_Bt3Zip_MatchFinder_Skip_BtFillBlock_BtGetMatches_BtThreadFunc_CMtThread_Construct_CompareFileTime_Crc64Calc_Crc64GenerateTable_Crc64Update_CrcCalc_CrcGenerateTable_CrcUpdate_CrcUpdateT4_CrcUpdateT8_CriticalSection_Init_Delta_Decode_Delta_Encode_Delta_Init_DosDateTimeToFileTime_Event_Close_Event_Create_Event_Reset_Event_Set_Event_Wait_FileTimeToDosDateTime_FileTimeToLocalFileTime_FileTimeToSystemTime_GetMatchesSpec1_GetSystemTime_GetSystemTimeAsFileTime_GetTickCount_HashThreadFunc_Hc3Zip_MatchFinder_GetMatches_Hc3Zip_MatchFinder_Skip_HeapSort_HeapSort64_Huffman_Generate_IA64_Convert_IID_IArchiveAllowTail_IID_IArchiveExtractCallback_IID_IArchiveGetRawProps_IID_IArchiveGetRootProps_IID_IArchiveKeepModeForNextOpen_IID_IArchiveOpenCallback_IID_IArchiveOpenSeq_IID_IArchiveOpenSetSubArchiveName_IID_IArchiveOpenVolumeCallback_IID_IArchiveUpdateCallback_IID_IArchiveUpdateCallback2_IID_ICompressCodecsInfo_IID_ICompressCoder_IID_ICompressCoder2_IID_ICompressFilter_IID_ICompressGetInStreamProcessedSize_IID_ICompressGetSubStreamSize_IID_ICompressProgressInfo_IID_ICompressSetBufSize_IID_ICompressSetCoderMt_IID_ICompressSetCoderProperties_IID_ICompressSetDecoderProperties2_IID_ICompressSetInStream_IID_ICompressSetInStreamSize_IID_ICompressSetOutStream_IID_ICompressSetOutStreamSize_IID_ICompressWriteCoderProperties_IID_ICryptoGetTextPassword_IID_ICryptoGetTextPassword2_IID_ICryptoProperties_IID_ICryptoResetInitVector_IID_ICryptoSetCRC_IID_ICryptoSetPassword_IID_IFolderArchiveExtractCallback_IID_IFolderExtractToStreamCallback_IID_IGetProp_IID_IHasher_IID_IHashers_IID_IInArchive_IID_IInArchiveGetStream_IID_IInStream_IID_IOutArchive_IID_IOutStream_IID_IOutStreamFlush_IID_IProgress_IID_ISequentialInStream_IID_ISequentialOutStream_IID_ISetCompressCodecsInfo_IID_ISetProperties_IID_IStreamGetProps_IID_IStreamGetProps2_IID_IStreamGetSize_IID_IUnknown_IsArc_Tar_IsArc_Zip_LocalFileTimeToFileTime_LookInStream_LookRead_LookInStream_Read_LookInStream_Read2_LookInStream_SeekTo_LookToRead_CreateVTable_LookToRead_Init_LoopThread_Close_LoopThread_Construct_LoopThread_Create_LoopThread_StartSubThread_LoopThread_StopAndWait_LoopThread_WaitSubThread_Lzma2Dec_Allocate_Lzma2Dec_AllocateProbs_Lzma2Dec_DecodeToBuf_Lzma2Dec_DecodeToDic_Lzma2Dec_Init_Lzma2Decode_Lzma2EncProps_Init_Lzma2EncProps_Normalize_Lzma2Enc_Create_Lzma2Enc_Destroy_Lzma2Enc_Encode_Lzma2Enc_SetProps_Lzma2Enc_WriteProperties_LzmaDec_Allocate_LzmaDec_AllocateProbs_LzmaDec_DecodeToBuf_LzmaDec_DecodeToDic_LzmaDec_Free_LzmaDec_FreeProbs_LzmaDec_Init_LzmaDec_InitDicAndState_LzmaDecode_LzmaEncProps_GetDictSize_LzmaEncProps_Init_LzmaEncProps_Normalize_LzmaEnc_CodeOneMemBlock_LzmaEnc_Construct_LzmaEnc_Create_LzmaEnc_Destroy_LzmaEnc_Destruct_LzmaEnc_Encode_LzmaEnc_FastPosInit_LzmaEnc_Finish_LzmaEnc_FreeLits_LzmaEnc_GetCurBuf_LzmaEnc_GetNumAvailableBytes_LzmaEnc_Init_LzmaEnc_InitPriceTables_LzmaEnc_InitPrices_LzmaEnc_MemEncode_LzmaEnc_MemPrepare_LzmaEnc_PrepareForLzma2_LzmaEnc_RestoreState_LzmaEnc_SaveState_LzmaEnc_SetProps_LzmaEnc_WriteProperties_LzmaEncode_LzmaProps_Decode_ManualResetEvent_Create_ManualResetEvent_CreateNotSignaled_MatchFinderMt0_Skip_MatchFinderMt2_GetMatches_MatchFinderMt2_Skip_MatchFinderMt3_Skip_MatchFinderMt_Construct_MatchFinderMt_Create_MatchFinderMt_CreateVTable_MatchFinderMt_Destruct_MatchFinderMt_FreeMem_MatchFinderMt_GetIndexByte_MatchFinderMt_GetMatches_MatchFinderMt_GetNextBlock_Bt_MatchFinderMt_GetNextBlock_Hash_MatchFinderMt_GetNumAvailableBytes_MatchFinderMt_GetPointerToCurrentPos_MatchFinderMt_Init_MatchFinderMt_Normalize_MatchFinderMt_ReleaseStream_MatchFinder_Construct_MatchFinder_Create_MatchFinder_CreateVTable_MatchFinder_Free_MatchFinder_GetIndexByte_MatchFinder_GetNumAvailableBytes_MatchFinder_GetPointerToCurrentPos_MatchFinder_Init_MatchFinder_MoveBlock_MatchFinder_NeedMove_MatchFinder_Normalize3_MatchFinder_ReadIfRequired_MatchFinder_ReduceOffsets_MidAlloc_MidFree_MixCoder_Code_MixCoder_Construct_MixCoder_Free_MixCoder_Init_MixCoder_SetFromMethod_MixMatches2_MixMatches3_MtCoder_Code_MtCoder_Construct_MtCoder_Destruct_MtProgress_Set_MtSync_Construct_MtSync_Destruct_MtSync_GetNextBlock_MtSync_Init_MtSync_StopWriting_MyAlloc_MyFree_NXArgc_NXArgv_PPC_Convert_PPMD7_kExpEscape_PPMD8_kExpEscape_Ppmd7_Alloc_Ppmd7_Construct_Ppmd7_DecodeSymbol_Ppmd7_EncodeSymbol_Ppmd7_Free_Ppmd7_Init_Ppmd7_MakeEscFreq_Ppmd7_Update1_Ppmd7_Update1_0_Ppmd7_Update2_Ppmd7_UpdateBin_Ppmd7z_RangeDec_CreateVTable_Ppmd7z_RangeDec_Init_Ppmd7z_RangeEnc_FlushData_Ppmd7z_RangeEnc_Init_Ppmd8_Alloc_Ppmd8_Construct_Ppmd8_DecodeSymbol_Ppmd8_EncodeSymbol_Ppmd8_Free_Ppmd8_Init_Ppmd8_MakeEscFreq_Ppmd8_RangeDec_Init_Ppmd8_RangeEnc_FlushData_Ppmd8_Update1_Ppmd8_Update1_0_Ppmd8_Update2_Ppmd8_UpdateBin_SPARC_Convert_SecToLook_CreateVTable_SecToRead_CreateVTable_Semaphore_Close_Semaphore_Create_Semaphore_ReleaseN_Semaphore_Wait_SeqCheckInStream_GetDigest_SeqCheckInStream_Init_SeqInStream_Read_SeqInStream_Read2_SeqInStream_ReadByte_SetLargePageSize_Sha256_Final_Sha256_Init_Sha256_Update_SortGroup_SysAllocString_SysAllocStringByteLen_SysAllocStringLen_SysFreeString_SysStringByteLen_SysStringLen_SystemTimeToFileTime_Thread_Close_Thread_Create_Thread_Wait_VariantClear_VariantCopy_XZ_FOOTER_SIG_XZ_SIG_XzBlock_Parse_XzBlock_ReadHeader_XzBlock_WriteHeader_XzCheck_Final_XzCheck_Init_XzCheck_Update_XzCrc64UpdateT4_XzDec_Init_XzFilterProps_Init_XzFlags_GetCheckSize_XzProps_Init_XzUnpacker_Code_XzUnpacker_Construct_XzUnpacker_Free_XzUnpacker_GetExtraSize_XzUnpacker_Init_XzUnpacker_IsStreamWasFinished_Xz_AddIndexRecord_Xz_Construct_Xz_Encode_Xz_EncodeEmpty_Xz_Free_Xz_GetPackSize_Xz_GetUnpackSize_Xz_ParseHeader_Xz_ReadHeader_Xz_ReadVarInt_Xz_WriteFooter_Xz_WriteHeader_Xz_WriteVarInt_Xzs_Construct_Xzs_Free_Xzs_GetNumBlocks_Xzs_GetUnpackSize_Xzs_ReadBackward__Z10FindMethodRK7UStringRyRjS3___Z10FindMethodyR7UString__Z10PrintRightR19IBenchPrintCallbackPKcj__Z10ReadStreamP19ISequentialInStreamPvPm__Z11CreateCoderyR9CMyComPtrI14ICompressCoderERS_I15ICompressCoder2Eb__Z11CreateCoderyR9CMyComPtrI14ICompressCoderEb__Z11CreateCoderyR9CMyComPtrI15ICompressFilterERS_I14ICompressCoderERS_I15ICompressCoder2Ebb__Z11GetPasswordP13CStdOutStreamb__Z11ParseMtPropRK7UStringRK14tagPROPVARIANTjRj__Z11RegisterArcPK8CArcInfo__Z11WriteStreamP20ISequentialOutStreamPKvm__Z12CreateFilteryR9CMyComPtrI15ICompressFilterEb__Z12CreateHasheryR7UStringR9CMyComPtrI7IHasherE__Z12ListArchivesP7CCodecsRK13CObjectVectorI9COpenTypeERK13CRecordVectorIiEbRS1_I7UStringESC_bbRKN9NWildcard11CCensorNodeEbbRbRSA_PKS1_I9CPropertyERySN___Z12StringToBoolRK7UStringRb__Z12myAddExeFlagRK7UString__Z12my_getlocalev__Z13PrintHashStatR13CStdOutStreamRK11CHashBundle__Z13RegisterCodecPK10CCodecInfo__Z13SResToHRESULTi__Z13SetPropertiesP8IUnknownRK13CObjectVectorI9CPropertyE__Z13SortFileNamesRK13CObjectVectorI7UStringER13CRecordVectorIjE__Z13UpdateArchiveP7CCodecsRK13CObjectVectorI9COpenTypeERK7UStringRN9NWildcard7CCensorER14CUpdateOptionsR16CUpdateErrorInfoP15IOpenCallbackUIP18IUpdateCallbackUI2b__Z13UpdateProduceRK13CRecordVectorI11CUpdatePairERKN14NUpdateArchive10CActionSetERS_I12CUpdatePair2EP22IUpdateProduceCallback__Z14AddDirFileInfoiiiRKN8NWindows5NFile5NFind9CFileInfoER13CObjectVectorI8CDirItemE__Z14AutoRenamePathR7UString__Z14EnumerateItemsRKN9NWildcard7CCensorENS_15ECensorPathModeERK7UStringR9CDirItemsP20IEnumDirItemCallback__Z14FindHashMethodRK7UStringRy__Z14GetHashMethodsR13CRecordVectorIyE__Z14ParseOpenTypesR7CCodecsRK7UStringR13CObjectVectorI9COpenTypeE__Z14RegisterHasherPK11CHasherInfo__Z15CrcInternalTestv__Z15GetDefaultName2RK7UStringS1_S1___Z15HRESULT_To_SResii__Z15MakeCorrectPathbR13CObjectVectorI7UStringEb__Z15ReadStream_FAILP19ISequentialInStreamPvm__Z16CompareFileNamesPKwS0___Z16GetCorrectFsPathRK7UString__Z16GetFullPathNameWPKwjPwPS1___Z16ParseComplexSizePKwRy__Z16ReadStream_FALSEP19ISequentialInStreamPvm__Z16SplitPathToPartsRK7UStringR13CObjectVectorIS_E__Z17GetCompressRatingjyyy__Z17ParsePropToUInt32RK7UStringRK14tagPROPVARIANTRj__Z17nameWindowToUnix2PKw__Z18AddHashHexToStringPcPKhj__Z18Archive_IsItem_AuxP10IInArchivejRb__Z18ConvertUInt32ToHexjPc__Z18ConvertUInt64ToHexyPc__Z18ConvertUInt64ToOctyPc__Z18GetModuleDirPrefixv__Z18SplitPathToParts_2RK7UStringRS_S2___Z18mySplitCommandLineiPPcR13CObjectVectorI7UStringE__Z19FindCharPosInStringPKcc__Z19FindCharPosInStringPKww__Z19GetBenchMemoryUsagejj__Z19GetDecompressRatingyyyyy__Z19MyStringLower_AsciiPw__Z19PROPVARIANT_to_boolRK14tagPROPVARIANTRb__Z19ParseStringToUInt32RK7UStringRj__Z20ConvertInt64ToStringxPc__Z20ConvertInt64ToStringxPw__Z20ConvertStringToInt32PKwPS0___Z20ConvertUTF8ToUnicodeRK7AStringR7UString__Z20ConvertUnicodeToUTF8RK7UStringR7AString__Z20GetCorrectFullFsPathRK7UString__Z20GetOpenArcErrorFlagsRKN8NWindows4NCOM12CPropVariantEPb__Z20ScanUserYesNoAllQuitP13CStdOutStream__Z21Archive_IsItem_FolderP10IInArchivejRb__Z21ConvertStringToUInt32PKcPS0___Z21ConvertStringToUInt32PKwPS0___Z21ConvertStringToUInt64PKcPS0___Z21ConvertStringToUInt64PKwPS0___Z21ConvertUInt32ToStringjPc__Z21ConvertUInt32ToStringjPw__Z21ConvertUInt64ToStringyPc__Z21ConvertUInt64ToStringyPw__Z21CreateLimitedInStreamP9IInStreamyyPP19ISequentialInStream__Z21DoesWildcardMatchNameRK7UStringS1___Z21FindSignatureInStreamP19ISequentialInStreamPKhjPKyRy__Z21GetUpdatePairInfoListRK9CDirItemsRK13CObjectVectorI8CArcItemEN13NFileTimeType5EEnumER13CRecordVectorI11CUpdatePairE__Z21MakePathNameFromPartsRK13CObjectVectorI7UStringE__Z21MyStringCompareNoCasePKwS0___Z21ReadNamesFromListFilePKwR13CObjectVectorI7UStringEj__Z21StringsAreEqualNoCasePKwS0___Z21StringsAreEqual_AsciiPKwPKc__Z21my_windows_split_pathRK7AStringRS_S2___Z22Archive_IsItem_DeletedP10IInArchivejRb__Z22GetOpenArcErrorMessagej__Z22IsPath1PrefixedByPath2PKwS0___Z22SplitPathToParts_SmartRK7UStringRS_S2___Z22WaitForMultipleObjectsjPKPN8NWindows16NSynchronization15CBaseHandleWFMOEij__Z23Archive_GetItemBoolPropP10IInArchivejjRb__Z23ConvertFileTimeToStringRK9_FILETIMEPcbb__Z23ConvertFileTimeToStringRK9_FILETIMEPwbb__Z23ConvertNtSecureToStringPKhjR7AString__Z23ConvertPropertyToStringR7UStringRK14tagPROPVARIANTjb__Z23Correct_IfEmptyLastPartR13CObjectVectorI7UStringE__Z23DoesNameContainWildcardRK7UString__Z23ExtractFileNameFromPathRK7UString__Z23MyStringCompareNoCase_NPKwS0_j__Z24Archive_IsItem_AltStreamP10IInArchivejRb__Z24ConvertHexStringToUInt32PKcPS0___Z24ConvertHexStringToUInt64PKcPS0___Z24ConvertOctStringToUInt32PKcPS0___Z24ConvertOctStringToUInt64PKcPS0___Z24ConvertWinAttribToStringPcj__Z24EnumerateDirItemsAndSortbRN9NWildcard7CCensorENS_15ECensorPathModeERK7UStringR13CObjectVectorIS3_ES8___Z24ExtractDirPrefixFromPathRK7UString__Z24MultiByteToUnicodeStringRK7AStringj__Z24UnicodeStringToMultiByteRK7UStringj__Z25ConvertUInt32ToHex8DigitsjPc__Z25MultiByteToUnicodeString2R7UStringRK7AStringj__Z25RtlTimeToSecondsSince1970PK13LARGE_INTEGERPj__Z25UnicodeStringToMultiByte2R7AStringRK7UStringj__Z26IsString1PrefixedByString2PKcS0___Z26IsString1PrefixedByString2PKwS0___Z27StringsAreEqualNoCase_AsciiPKcS0___Z27StringsAreEqualNoCase_AsciiPKwPKc__Z27StringsAreEqualNoCase_AsciiPKwS0___Z28ConvertPropertyToShortStringPcRK14tagPROPVARIANTjb__Z28Find_FileName_InSortedVectorRK13CObjectVectorI7UStringERKS0___Z29Create_BufInStream_WithNewBufPKvmPP19ISequentialInStream__Z29RtlSecondsSince1970ToFileTimejP9_FILETIME__Z31ConvertPropVariantToShortStringRK14tagPROPVARIANTPc__Z31ConvertPropVariantToShortStringRK14tagPROPVARIANTPw__Z33StdOut_Convert_UString_to_AStringRK7UStringR7AString__Z4endlR13CStdOutStream__Z5BenchP19IBenchPrintCallbackP14IBenchCallbackRK13CObjectVectorI9CPropertyEjb__Z5Main2iPPc__Z7ExtractP7CCodecsRK13CObjectVectorI9COpenTypeERK13CRecordVectorIiERS1_I7UStringESC_RKN9NWildcard11CCensorNodeERK15CExtractOptionsP15IOpenCallbackUIP18IExtractCallbackUIP9IHashCalcRSA_R15CDecompressStat__Z8BenchConRK13CObjectVectorI9CPropertyEjP7__sFILE__Z8HashCalcRKN9NWildcard7CCensorERK12CHashOptionsR7UStringP15IHashCallbackUI__Z9CheckUTF8PKc__Z9ParseTypeR7CCodecsRK7UStringR9COpenType__Z9PrintLeftR19IBenchPrintCallbackPKcj__ZN10CArcInfoEx7AddExtsERK7UStringS2___ZN10CArcInfoExC2ERKS___ZN10CArcInfoExD2Ev__ZN10CByteSwap214QueryInterfaceERK4GUIDPPv__ZN10CByteSwap24InitEv__ZN10CByteSwap26AddRefEv__ZN10CByteSwap26FilterEPhj__ZN10CByteSwap27ReleaseEv__ZN10CByteSwap2D0Ev__ZN10CByteSwap2D1Ev__ZN10CByteSwap414QueryInterfaceERK4GUIDPPv__ZN10CByteSwap44InitEv__ZN10CByteSwap46AddRefEv__ZN10CByteSwap46FilterEPhj__ZN10CByteSwap47ReleaseEv__ZN10CByteSwap4D0Ev__ZN10CByteSwap4D1Ev__ZN10CCrcHasher12SetFunctionsEj__ZN10CCrcHasher13GetDigestSizeEv__ZN10CCrcHasher14QueryInterfaceERK4GUIDPPv__ZN10CCrcHasher18SetCoderPropertiesEPKjPK14tagPROPVARIANTj__ZN10CCrcHasher4InitEv__ZN10CCrcHasher5FinalEPh__ZN10CCrcHasher6AddRefEv__ZN10CCrcHasher6UpdateEPKvj__ZN10CCrcHasher7ReleaseEv__ZN10CCrcHasherD0Ev__ZN10CCrcHasherD1Ev__ZN10CErrorInfoC2Ev__ZN10CListStat26UpdateERKS___ZN10CMemBlocks4FreeEP18CMemBlockManagerMt__ZN10CMemBlocks7FreeOptEP18CMemBlockManagerMt__ZN10CObjArray2IN8NArchive3N7z10CCoderInfoEE7SetSizeEj__ZN10COutBuffer14FlushWithCheckEv__ZN10COutBuffer4FreeEv__ZN10COutBuffer4InitEv__ZN10COutBuffer5FlushEv__ZN10COutBuffer6CreateEj__ZN10COutBuffer9FlushPartEv__ZN10CTempFiles5ClearEv__ZN10CTempFilesD2Ev__ZN10IInArchiveD0Ev__ZN10IInArchiveD1Ev__ZN10IOutStreamD0Ev__ZN10IOutStreamD1Ev__ZN11CBenchProps16SetLzmaCompexityEv__ZN11CBenchProps17GetCompressRatingEjyyy__ZN11CBenchProps19GetDecompressRatingEyyyyy__ZN11CCoderProps7AddPropERK5CProp__ZN11CCrcThreadsD2Ev__ZN11CHashBundle10SetMethodsERK13CObjectVectorI7UStringE__ZN11CHashBundle14InitForNewFileEv__ZN11CHashBundle5FinalEbbRK7UString__ZN11CHashBundle6UpdateEPKvj__ZN11CHashBundle7SetSizeEy__ZN11CRenamePair7PrepareEv__ZN11CSha1Hasher13GetDigestSizeEv__ZN11CSha1Hasher14QueryInterfaceERK4GUIDPPv__ZN11CSha1Hasher4InitEv__ZN11CSha1Hasher5FinalEPh__ZN11CSha1Hasher6AddRefEv__ZN11CSha1Hasher6UpdateEPKvj__ZN11CSha1Hasher7ReleaseEv__ZN11CSha1HasherD0Ev__ZN11CSha1HasherD1Ev__ZN11CUniqBlocks13GetReverseMapEv__ZN11CUniqBlocks7AddUniqEPKhm__ZN11CVirtThread16WaitThreadFinishEv__ZN11CVirtThread5StartEv__ZN11CVirtThread6CreateEv__ZN11CVirtThreadD2Ev__ZN11IOutArchiveD0Ev__ZN11IOutArchiveD1Ev__ZN11NCoderMixer11CCoderInfo212SetCoderInfoEPPKyS3___ZN11NCoderMixer11CCoderInfo2C2ERKS0___ZN11NCoderMixer11CCoderInfo2D2Ev__ZN11NCoderMixer14CCoderMixer2MT11SetBindInfoERKNS_9CBindInfoE__ZN11NCoderMixer14CCoderMixer2MT12SetCoderInfoEjPPKyS3___ZN11NCoderMixer14CCoderMixer2MT13ReturnIfErrorEi__ZN11NCoderMixer14CCoderMixer2MT14AddCoderCommonEv__ZN11NCoderMixer14CCoderMixer2MT14QueryInterfaceERK4GUIDPPv__ZN11NCoderMixer14CCoderMixer2MT4CodeEPP19ISequentialInStreamPPKyjPP20ISequentialOutStreamS6_jP21ICompressProgressInfo__ZN11NCoderMixer14CCoderMixer2MT4InitEPP19ISequentialInStreamPP20ISequentialOutStream__ZN11NCoderMixer14CCoderMixer2MT6AddRefEv__ZN11NCoderMixer14CCoderMixer2MT6ReInitEv__ZN11NCoderMixer14CCoderMixer2MT7ReleaseEv__ZN11NCoderMixer14CCoderMixer2MT8AddCoderEP14ICompressCoder__ZN11NCoderMixer14CCoderMixer2MT9AddCoder2EP15ICompressCoder2__ZN11NCoderMixer14CCoderMixer2MTD0Ev__ZN11NCoderMixer14CCoderMixer2MTD1Ev__ZN11NCoderMixer14CCoderMixer2MTD2Ev__ZN11NCoderMixer21CBindReverseConverter21CreateReverseBindInfoERNS_9CBindInfoE__ZN11NCoderMixer21CBindReverseConverterC1ERKNS_9CBindInfoE__ZN11NCoderMixer21CBindReverseConverterC2ERKNS_9CBindInfoE__ZN11NCoderMixer21CBindReverseConverterD2Ev__ZN11NCoderMixer7CCoder24CodeEP21ICompressProgressInfo__ZN11NCoderMixer7CCoder27ExecuteEv__ZN11NCoderMixer7CCoder2C1Ejj__ZN11NCoderMixer7CCoder2C2ERKS0___ZN11NCoderMixer7CCoder2C2Ejj__ZN11NCoderMixer7CCoder2D2Ev__ZN11NCoderMixer8SetSizesEPPKyR13CRecordVectorIyERS3_IS1_Ej__ZN11NCoderMixer9CBindInfoC2ERKS0___ZN11NCoderMixer9CBindInfoaSERKS0___ZN12CArchiveLink19KeepModeForNextOpenEv__ZN12CArchiveLink4OpenER12COpenOptions__ZN12CArchiveLink5CloseEv__ZN12CArchiveLink5Open2ER12COpenOptionsP15IOpenCallbackUI__ZN12CArchiveLink6ReOpenER12COpenOptions__ZN12CArchiveLink7ReleaseEv__ZN12CArchiveLinkC2Ev__ZN12CArchiveLinkD2Ev__ZN12CArchivePath13ParseFromPathERK7UString12EArcNameMode__ZN12CArchivePathC2ERKS___ZN12CArchivePathC2Ev__ZN12CArchivePathD2Ev__ZN12CBenchBufferD0Ev__ZN12CBenchBufferD1Ev__ZN12CBitlEncoder9WriteBitsEjj__ZN12CBitmEncoderI10COutBufferE5FlushEv__ZN12CBufInStream14QueryInterfaceERK4GUIDPPv__ZN12CBufInStream4ReadEPvjPj__ZN12CBufInStream4SeekExjPy__ZN12CBufInStream6AddRefEv__ZN12CBufInStream7ReleaseEv__ZN12CBufInStreamD0Ev__ZN12CBufInStreamD1Ev__ZN12CEncoderInfo20DecodeThreadFunctionEPv__ZN12CEncoderInfo20EncodeThreadFunctionEPv__ZN12CEncoderInfo4InitERK14COneMethodInfojjP20CBaseRandomGenerator__ZN12CEncoderInfo6DecodeEj__ZN12CEncoderInfo6EncodeEv__ZN12CEncoderInfoC2Ev__ZN12CEncoderInfoD2Ev__ZN12CFilterCoder11SetInStreamEP19ISequentialInStream__ZN12CFilterCoder12SetOutStreamEP20ISequentialOutStream__ZN12CFilterCoder13SetInitVectorEPKhj__ZN12CFilterCoder14QueryInterfaceERK4GUIDPPv__ZN12CFilterCoder14WriteWithLimitEP20ISequentialOutStreamj__ZN12CFilterCoder15ReleaseInStreamEv__ZN12CFilterCoder15ResetInitVectorEv__ZN12CFilterCoder16ReleaseOutStreamEv__ZN12CFilterCoder17CryptoSetPasswordEPKhj__ZN12CFilterCoder18SetCoderPropertiesEPKjPK14tagPROPVARIANTj__ZN12CFilterCoder20WriteCoderPropertiesEP20ISequentialOutStream__ZN12CFilterCoder21SetDecoderProperties2EPKhj__ZN12CFilterCoder27SetInStream_NoSubFilterInitEP19ISequentialInStream__ZN12CFilterCoder4CodeEP19ISequentialInStreamP20ISequentialOutStreamPKyS5_P21ICompressProgressInfo__ZN12CFilterCoder4ReadEPvjPj__ZN12CFilterCoder5FlushEv__ZN12CFilterCoder5WriteEPKvjPj__ZN12CFilterCoder6AddRefEv__ZN12CFilterCoder6SetKeyEPKhj__ZN12CFilterCoder7ReleaseEv__ZN12CFilterCoderC1Ev__ZN12CFilterCoderC2Ev__ZN12CFilterCoderD0Ev__ZN12CFilterCoderD1Ev__ZN12CFilterCoderD2Ev__ZN12CFreqThreadsD2Ev__ZN12CLzOutWindow4InitEb__ZN12CLzOutWindow9CopyBlockEjj__ZN12CMethodProps21ParseParamsFromStringERK7UString__ZN12CMethodProps26ParseParamsFromPROPVARIANTERK7UStringRK14tagPROPVARIANT__ZN12CMethodProps8SetParamERK7UStringS2___ZN12CMultiStream14QueryInterfaceERK4GUIDPPv__ZN12CMultiStream4ReadEPvjPj__ZN12CMultiStream4SeekExjPy__ZN12CMultiStream6AddRefEv__ZN12CMultiStream7ReleaseEv__ZN12CMultiStreamD0Ev__ZN12CMultiStreamD1Ev__ZN12CStdInStream12ReadToStringER7AString__ZN12CStdInStream22ScanStringUntilNewLineEb__ZN12CStdInStream3EofEv__ZN12CStdInStream4OpenEPKw__ZN12CStdInStream5CloseEv__ZN12CStdInStream7GetCharEv__ZN12CStdInStreamD1Ev__ZN13CArcErrorInfo11ClearErrorsEv__ZN13CCrcOutStream14QueryInterfaceERK4GUIDPPv__ZN13CCrcOutStream5WriteEPKvjPj__ZN13CCrcOutStream6AddRefEv__ZN13CCrcOutStream7ReleaseEv__ZN13CCrcOutStreamD0Ev__ZN13CCrcOutStreamD1Ev__ZN13CDeltaDecoder14QueryInterfaceERK4GUIDPPv__ZN13CDeltaDecoder21SetDecoderProperties2EPKhj__ZN13CDeltaDecoder4InitEv__ZN13CDeltaDecoder6AddRefEv__ZN13CDeltaDecoder6FilterEPhj__ZN13CDeltaDecoder7ReleaseEv__ZN13CDeltaDecoderD0Ev__ZN13CDeltaDecoderD1Ev__ZN13CDeltaEncoder14QueryInterfaceERK4GUIDPPv__ZN13CDeltaEncoder18SetCoderPropertiesEPKjPK14tagPROPVARIANTj__ZN13CDeltaEncoder20WriteCoderPropertiesEP20ISequentialOutStream__ZN13CDeltaEncoder4InitEv__ZN13CDeltaEncoder6AddRefEv__ZN13CDeltaEncoder6FilterEPhj__ZN13CDeltaEncoder7ReleaseEv__ZN13CDeltaEncoderD0Ev__ZN13CDeltaEncoderD1Ev__ZN13CFieldPrinter10PrintTitleEv__ZN13CFieldPrinter11AddRawPropsEP19IArchiveGetRawProps__ZN13CFieldPrinter12AddMainPropsEP10IInArchive__ZN13CFieldPrinter13PrintItemInfoEjRK9CListStat__ZN13CFieldPrinter15PrintTitleLinesEv__ZN13CFieldPrinter4InitEPK14CFieldInfoIniti__ZN13CFieldPrinter5ClearEv__ZN13CFieldPrinter7AddPropEPwjb__ZN13CFieldPrinter8PrintSumERK10CListStat2__ZN13CFieldPrinter8PrintSumERK9CListStatyPKc__ZN13CFieldPrinterC2Ev__ZN13CInBufferBase21ReadByte_FromNewBlockERh__ZN13CInBufferBase21ReadByte_FromNewBlockEv__ZN13CInBufferBase4InitEv__ZN13CInBufferBase4SkipEm__ZN13CInBufferBase9ReadBlockEv__ZN13CInBufferBase9ReadBytesEPhm__ZN13CInBufferBaseC1Ev__ZN13CInBufferBaseC2Ev__ZN13CInFileStream14QueryInterfaceERK4GUIDPPv__ZN13CInFileStream4ReadEPvjPj__ZN13CInFileStream4SeekExjPy__ZN13CInFileStream6AddRefEv__ZN13CInFileStream7GetSizeEPy__ZN13CInFileStream7ReleaseEv__ZN13CInFileStreamD0Ev__ZN13CInFileStreamD1Ev__ZN13CInFileStreamD2Ev__ZN13CObjectVectorI10CArcInfoExE3AddERKS0___ZN13CObjectVectorI10CArcInfoExED2Ev__ZN13CObjectVectorI10CFieldInfoE3AddERKS0___ZN13CObjectVectorI10CFieldInfoE6AddNewEv__ZN13CObjectVectorI10CFieldInfoED2Ev__ZN13CObjectVectorI11CArcExtInfoE3AddERKS0___ZN13CObjectVectorI11CArcExtInfoEC2ERKS1___ZN13CObjectVectorI11CArcExtInfoED2Ev__ZN13CObjectVectorI11CRenamePairE6AddNewEv__ZN13CObjectVectorI11CRenamePairED2Ev__ZN13CObjectVectorI12CHasherStateE6AddNewEv__ZN13CObjectVectorI12CHasherStateED2Ev__ZN13CObjectVectorI13CStreamBinderE6AddNewEv__ZN13CObjectVectorI14COneMethodInfoE13DeleteFrontalEj__ZN13CObjectVectorI14COneMethodInfoE3AddERKS0___ZN13CObjectVectorI14COneMethodInfoE5ClearEv__ZN13CObjectVectorI14COneMethodInfoE6InsertEjRKS0___ZN13CObjectVectorI14COneMethodInfoED2Ev__ZN13CObjectVectorI16CInOutTempBufferE6AddNewEv__ZN13CObjectVectorI16CInOutTempBufferED2Ev__ZN13CObjectVectorI21CUpdateArchiveCommandE3AddERKS0___ZN13CObjectVectorI21CUpdateArchiveCommandED2Ev__ZN13CObjectVectorI4CArcE3AddERKS0___ZN13CObjectVectorI4CArcED2Ev__ZN13CObjectVectorI5CPropE3AddERKS0___ZN13CObjectVectorI5CPropEC2ERKS1___ZN13CObjectVectorI5CPropEaSERKS1___ZN13CObjectVectorI7CBufferIhEE6AddNewEv__ZN13CObjectVectorI7CBufferIhEEC2ERKS2___ZN13CObjectVectorI7UStringE15ClearAndReserveEj__ZN13CObjectVectorI7UStringE3AddERKS0___ZN13CObjectVectorI7UStringEC2ERKS1___ZN13CObjectVectorI7UStringEaSERKS1___ZN13CObjectVectorI8CArcItemE13AddInReservedERKS0___ZN13CObjectVectorI8CArcItemE15ClearAndReserveEj__ZN13CObjectVectorI8CDirItemE3AddERKS0___ZN13CObjectVectorI9CMyComPtrI19ISequentialInStreamEE15ClearAndReserveEj__ZN13CObjectVectorI9CMyComPtrI19ISequentialInStreamEE3AddERKS2___ZN13CObjectVectorI9CMyComPtrI19ISequentialInStreamEEC2ERKS3___ZN13CObjectVectorI9CMyComPtrI19ISequentialInStreamEED2Ev__ZN13CObjectVectorI9CMyComPtrI20ISequentialOutStreamEE15ClearAndReserveEj__ZN13CObjectVectorI9CMyComPtrI20ISequentialOutStreamEE3AddERKS2___ZN13CObjectVectorI9CMyComPtrI20ISequentialOutStreamEEC2ERKS3___ZN13CObjectVectorI9CMyComPtrI20ISequentialOutStreamEED2Ev__ZN13CObjectVectorI9CMyComPtrI8IUnknownEE3AddERKS2___ZN13CObjectVectorI9CMyComPtrI8IUnknownEED2Ev__ZN13CObjectVectorI9CMyComPtrI9IInStreamEE3AddERKS2___ZN13CObjectVectorI9CMyComPtrI9IInStreamEED2Ev__ZN13CObjectVectorI9COpenTypeE3AddERKS0___ZN13CObjectVectorI9COpenTypeEC2ERKS1___ZN13CObjectVectorI9CPropertyE3AddERKS0___ZN13CObjectVectorI9CPropertyED2Ev__ZN13CObjectVectorI9CPropertyEaSERKS1___ZN13CObjectVectorIN11NCoderMixer7CCoder2EE3AddERKS1___ZN13CObjectVectorIN11NCoderMixer7CCoder2EED2Ev__ZN13CObjectVectorIN12CMultiStream14CSubStreamInfoEE3AddERKS1___ZN13CObjectVectorIN12CMultiStream14CSubStreamInfoEED2Ev__ZN13CObjectVectorIN18COutMultiVolStream14CAltStreamInfoEE10DeleteBackEv__ZN13CObjectVectorIN18COutMultiVolStream14CAltStreamInfoEE3AddERKS1___ZN13CObjectVectorIN18COutMultiVolStream14CAltStreamInfoEED2Ev__ZN13CObjectVectorIN7NCrypto7NSevenZ8CKeyInfoEE6InsertEjRKS2___ZN13CObjectVectorIN8NArchive3N7z10CCoderInfoEE6AddNewEv__ZN13CObjectVectorIN8NArchive3N7z11CMethodFullEE3AddERKS2___ZN13CObjectVectorIN8NArchive3N7z11CMethodFullEE5ClearEv__ZN13CObjectVectorIN8NArchive3N7z11CMethodFullEEC2ERKS3___ZN13CObjectVectorIN8NArchive3N7z11CMethodFullEED2Ev__ZN13CObjectVectorIN8NArchive3N7z11CMethodFullEEaSERKS3___ZN13CObjectVectorIN8NArchive3N7z11CUpdateItemEE3AddERKS2___ZN13CObjectVectorIN8NArchive3N7z18CExtractFolderInfoEE3AddERKS2___ZN13CObjectVectorIN8NArchive3N7z7CFolderEE6AddNewEv__ZN13CObjectVectorIN8NArchive3N7z7CFolderEED2Ev__ZN13CObjectVectorIN8NArchive4NCab11CDatabaseExEE13DeleteFrontalEj__ZN13CObjectVectorIN8NArchive4NCab11CDatabaseExEE5ClearEv__ZN13CObjectVectorIN8NArchive4NCab11CDatabaseExEE6InsertEjRKS2___ZN13CObjectVectorIN8NArchive4NCab11CDatabaseExEED2Ev__ZN13CObjectVectorIN8NArchive4NCab5CItemEE15ClearAndReserveEj__ZN13CObjectVectorIN8NArchive4NCab5CItemEEC2ERKS3___ZN13CObjectVectorIN8NArchive4NTar11CUpdateItemEE3AddERKS2___ZN13CObjectVectorIN8NArchive4NTar11CUpdateItemEED2Ev__ZN13CObjectVectorIN8NArchive4NTar7CItemExEE3AddERKS2___ZN13CObjectVectorIN8NArchive4NTar7CItemExEE5ClearEv__ZN13CObjectVectorIN8NArchive4NTar7CItemExEED2Ev__ZN13CObjectVectorIN8NArchive4NZip11CMemBlocks2EE3AddERKS2___ZN13CObjectVectorIN8NArchive4NZip11CMethodItemEE3AddERKS2___ZN13CObjectVectorIN8NArchive4NZip11CMethodItemEED2Ev__ZN13CObjectVectorIN8NArchive4NZip11CThreadInfoEE3AddERKS2___ZN13CObjectVectorIN8NArchive4NZip11CThreadInfoEED2Ev__ZN13CObjectVectorIN8NArchive4NZip11CUpdateItemEE3AddERKS2___ZN13CObjectVectorIN8NArchive4NZip14CExtraSubBlockEE3AddERKS2___ZN13CObjectVectorIN8NArchive4NZip14CExtraSubBlockEEC2ERKS3___ZN13CObjectVectorIN8NArchive4NZip14CExtraSubBlockEEaSERKS3___ZN13CObjectVectorIN8NArchive4NZip7CItemExEE3AddERKS2___ZN13CObjectVectorIN8NArchive4NZip7CItemExEED2Ev__ZN13CObjectVectorIN8NArchive4NZip8CItemOutEE3AddERKS2___ZN13CObjectVectorIN8NArchive4NZip8CItemOutEED2Ev__ZN13CObjectVectorIN8NArchive7NParser10CParseItemEE10DeleteBackEv__ZN13CObjectVectorIN8NArchive7NParser10CParseItemEE3AddERKS2___ZN13CObjectVectorIN8NArchive7NParser10CParseItemEE5ClearEv__ZN13CObjectVectorIN8NArchive7NParser10CParseItemEED2Ev__ZN13CObjectVectorIN9NWildcard11CCensorNodeEE3AddERKS1___ZN13CObjectVectorIN9NWildcard11CCensorNodeEEC2ERKS2___ZN13CObjectVectorIN9NWildcard11CCensorNodeEED2Ev__ZN13CObjectVectorIN9NWildcard11CCensorPathEE6AddNewEv__ZN13CObjectVectorIN9NWildcard5CItemEE3AddERKS1___ZN13CObjectVectorIN9NWildcard5CItemEEC2ERKS2___ZN13CObjectVectorIN9NWildcard5CItemEED2Ev__ZN13CObjectVectorIN9NWildcard5CItemEEpLERKS2___ZN13CObjectVectorIN9NWildcard5CPairEE3AddERKS1___ZN13CObjectVectorIN9NWildcard5CPairEED2Ev__ZN13COutMemStream10DetachDataER14CMemLockBlocks__ZN13COutMemStream12SetOutStreamEP10IOutStream__ZN13COutMemStream14QueryInterfaceERK4GUIDPPv__ZN13COutMemStream17WriteToRealStreamEv__ZN13COutMemStream4FreeEv__ZN13COutMemStream4InitEv__ZN13COutMemStream4SeekExjPy__ZN13COutMemStream5WriteEPKvjPj__ZN13COutMemStream6AddRefEv__ZN13COutMemStream7ReleaseEv__ZN13COutMemStream7SetSizeEy__ZN13COutMemStreamD0Ev__ZN13COutMemStreamD1Ev__ZN13COutMemStreamD2Ev__ZN13CRecordVectorI11CUpdatePairE3AddES0___ZN13CRecordVectorI12CRefSortPairE4SortEPFiPKS0_S3_PvES4___ZN13CRecordVectorI12CUpdatePair2E11ReserveDownEv__ZN13CRecordVectorI12CUpdatePair2E18ReserveOnePositionEv__ZN13CRecordVectorI16CExtrRefSortPairE12SortRefDown2EPS0_jj__ZN13CRecordVectorIN8NArchive3N7z13CFolderRepackEE4SortEPFiPKS2_S5_PvES6___ZN13CRecordVectorIN8NArchive3N7z8CRefItemEE4SortEPFiPKS2_S5_PvES6___ZN13CRecordVectorIN8NArchive3N7z9CFileItemEE3AddES2___ZN13CRecordVectorIN8NArchive4NCab7CMvItemEE4SortEPFiPKS2_S5_PvES6___ZN13CRecordVectorIPvE4SortEPFiPKS0_S3_S0_ES0___ZN13CRecordVectorIPvE6InsertEjS0___ZN13CRecordVectorIiE4SortEPFiPKiS2_PvES3___ZN13CRecordVectorIiE6InsertEji__ZN13CRecordVectorIjE4SortEPFiPKjS2_PvES3___ZN13CRecordVectorIjE6InsertEjj__ZN13CRecordVectorIyE6InsertEjy__ZN13CReferenceBuf14QueryInterfaceERK4GUIDPPv__ZN13CReferenceBuf6AddRefEv__ZN13CReferenceBuf7ReleaseEv__ZN13CReferenceBufD0Ev__ZN13CReferenceBufD1Ev__ZN13CSha256Hasher13GetDigestSizeEv__ZN13CSha256Hasher14QueryInterfaceERK4GUIDPPv__ZN13CSha256Hasher4InitEv__ZN13CSha256Hasher5FinalEPh__ZN13CSha256Hasher6AddRefEv__ZN13CSha256Hasher6UpdateEPKvj__ZN13CSha256Hasher7ReleaseEv__ZN13CSha256HasherD0Ev__ZN13CSha256HasherD1Ev__ZN13CStdOutStream12PrintUStringERK7UStringR7AString__ZN13CStdOutStream4OpenEPKc__ZN13CStdOutStream5CloseEv__ZN13CStdOutStream5FlushEv__ZN13CStdOutStreamD1Ev__ZN13CStdOutStreamlsEPKw__ZN13CStdOutStreamlsEi__ZN13CStdOutStreamlsEj__ZN13CStdOutStreamlsEx__ZN13CStdOutStreamlsEy__ZN13CStreamBinder12CreateEventsEv__ZN13CStreamBinder13CreateStreamsEPP19ISequentialInStreamPP20ISequentialOutStream__ZN13CStreamBinder4ReadEPvjPj__ZN13CStreamBinder5WriteEPKvjPj__ZN13CStreamBinder6ReInitEv__ZN13CTailInStream14QueryInterfaceERK4GUIDPPv__ZN13CTailInStream4ReadEPvjPj__ZN13CTailInStream4SeekExjPy__ZN13CTailInStream6AddRefEv__ZN13CTailInStream7ReleaseEv__ZN13CTailInStreamD0Ev__ZN13CTailInStreamD1Ev__ZN13NConsoleClose14CheckCtrlBreakEv__ZN13NConsoleClose15TestBreakSignalEv__ZN13NConsoleClose18CCtrlHandlerSetterC1Ev__ZN13NConsoleClose18CCtrlHandlerSetterC2Ev__ZN13NConsoleClose18CCtrlHandlerSetterD0Ev__ZN13NConsoleClose18CCtrlHandlerSetterD1Ev__ZN13NConsoleClose18CCtrlHandlerSetterD2Ev__ZN14CBenchEncodersC2Ej__ZN14CBenchEncodersD2Ev__ZN14CBenchInfoCalc12SetStartTimeEv__ZN14CBenchInfoCalc13SetFinishTimeER10CBenchInfo__ZN14CByteDynBuffer14EnsureCapacityEm__ZN14CByteDynBuffer4FreeEv__ZN14CByteInBufWrap20ReadByteFromNewBlockEv__ZN14CByteInBufWrap4FreeEv__ZN14CByteInBufWrap5AllocEj__ZN14CByteInBufWrapC1Ev__ZN14CByteInBufWrapC2Ev__ZN14CExtentsStream14QueryInterfaceERK4GUIDPPv__ZN14CExtentsStream4ReadEPvjPj__ZN14CExtentsStream4SeekExjPy__ZN14CExtentsStream6AddRefEv__ZN14CExtentsStream7ReleaseEv__ZN14CExtentsStreamD0Ev__ZN14CExtentsStreamD1Ev__ZN14CLocalProgress12SetRatioInfoEPKyS1___ZN14CLocalProgress14QueryInterfaceERK4GUIDPPv__ZN14CLocalProgress4InitEP9IProgressb__ZN14CLocalProgress6AddRefEv__ZN14CLocalProgress6SetCurEv__ZN14CLocalProgress7ReleaseEv__ZN14CLocalProgressC1Ev__ZN14CLocalProgressC2Ev__ZN14CLocalProgressD0Ev__ZN14CLocalProgressD1Ev__ZN14CMemLockBlocks18SwitchToNoLockModeEP18CMemBlockManagerMt__ZN14CMemLockBlocks4FreeEP18CMemBlockManagerMt__ZN14CMemLockBlocks6DetachERS_P18CMemBlockManagerMt__ZN14CMemLockBlocks9FreeBlockEiP18CMemBlockManagerMt__ZN14COneMethodInfo21ParseMethodFromStringERK7UString__ZN14COneMethodInfo26ParseMethodFromPROPVARIANTERK7UStringRK14tagPROPVARIANT__ZN14COutFileStream14QueryInterfaceERK4GUIDPPv__ZN14COutFileStream4SeekExjPy__ZN14COutFileStream5CloseEv__ZN14COutFileStream5WriteEPKvjPj__ZN14COutFileStream6AddRefEv__ZN14COutFileStream7ReleaseEv__ZN14COutFileStream7SetSizeEy__ZN14COutFileStreamD0Ev__ZN14COutFileStreamD1Ev__ZN14CTailOutStream14QueryInterfaceERK4GUIDPPv__ZN14CTailOutStream4SeekExjPy__ZN14CTailOutStream5WriteEPKvjPj__ZN14CTailOutStream6AddRefEv__ZN14CTailOutStream7ReleaseEv__ZN14CTailOutStream7SetSizeEy__ZN14CTailOutStreamD0Ev__ZN14CTailOutStreamD1Ev__ZN14CUpdateOptions10SetArcPathEPK7CCodecsRK7UString__ZN14CUpdateOptions15InitFormatIndexEPK7CCodecsRK13CObjectVectorI9COpenTypeERK7UString__ZN14CUpdateOptionsC2Ev__ZN14CUpdateOptionsD2Ev__ZN14CXzCrc64Hasher13GetDigestSizeEv__ZN14CXzCrc64Hasher14QueryInterfaceERK4GUIDPPv__ZN14CXzCrc64Hasher4InitEv__ZN14CXzCrc64Hasher5FinalEPh__ZN14CXzCrc64Hasher6AddRefEv__ZN14CXzCrc64Hasher6UpdateEPKvj__ZN14CXzCrc64Hasher7ReleaseEv__ZN14CXzCrc64HasherD0Ev__ZN14CXzCrc64HasherD1Ev__ZN14ICompressCoderD0Ev__ZN14ICompressCoderD1Ev__ZN14ISetPropertiesD0Ev__ZN14ISetPropertiesD1Ev__ZN14IStreamGetSizeD0Ev__ZN14IStreamGetSizeD1Ev__ZN14NUpdateArchive15k_ActionSet_AddE__ZN14NUpdateArchive16k_ActionSet_SyncE__ZN14NUpdateArchive17k_ActionSet_FreshE__ZN14NUpdateArchive18k_ActionSet_DeleteE__ZN14NUpdateArchive18k_ActionSet_UpdateE__ZN15CBC_ARM_Decoder9SubFilterEPhj__ZN15CBC_ARM_DecoderD0Ev__ZN15CBC_ARM_DecoderD1Ev__ZN15CBC_ARM_Encoder9SubFilterEPhj__ZN15CBC_ARM_EncoderD0Ev__ZN15CBC_ARM_EncoderD1Ev__ZN15CBC_PPC_Decoder9SubFilterEPhj__ZN15CBC_PPC_DecoderD0Ev__ZN15CBC_PPC_DecoderD1Ev__ZN15CBC_PPC_Encoder9SubFilterEPhj__ZN15CBC_PPC_EncoderD0Ev__ZN15CBC_PPC_EncoderD1Ev__ZN15CBinderInStream14QueryInterfaceERK4GUIDPPv__ZN15CBinderInStream4ReadEPvjPj__ZN15CBinderInStream6AddRefEv__ZN15CBinderInStream7ReleaseEv__ZN15CBinderInStreamD0Ev__ZN15CBinderInStreamD1Ev__ZN15CByteOutBufWrap4FreeEv__ZN15CByteOutBufWrap5AllocEm__ZN15CByteOutBufWrap5FlushEv__ZN15CByteOutBufWrapC1Ev__ZN15CByteOutBufWrapC2Ev__ZN15CCachedInStream14QueryInterfaceERK4GUIDPPv__ZN15CCachedInStream4FreeEv__ZN15CCachedInStream4InitEy__ZN15CCachedInStream4ReadEPvjPj__ZN15CCachedInStream4SeekExjPy__ZN15CCachedInStream5AllocEjj__ZN15CCachedInStream6AddRefEv__ZN15CCachedInStream7ReleaseEv__ZN15CCachedInStreamD0Ev__ZN15CCachedInStreamD1Ev__ZN15CDummyOutStream14QueryInterfaceERK4GUIDPPv__ZN15CDummyOutStream5WriteEPKvjPj__ZN15CDummyOutStream6AddRefEv__ZN15CDummyOutStream7ReleaseEv__ZN15CDummyOutStreamD0Ev__ZN15CDummyOutStreamD1Ev__ZN15CLockedInStream4ReadEyPvjPj__ZN15CPercentPrinter10ClosePrintEv__ZN15CPercentPrinter10PrintRatioEv__ZN15CPercentPrinter11PrintStringEPKc__ZN15CPercentPrinter11PrintStringEPKw__ZN15CPercentPrinter12PrintNewLineEv__ZN15CPercentPrinter12RePrintRatioEv__ZN15IArchiveOpenSeqD0Ev__ZN15IArchiveOpenSeqD1Ev__ZN15ICompressCoder2D0Ev__ZN15ICompressCoder2D1Ev__ZN15ICompressFilterD0Ev__ZN15ICompressFilterD1Ev__ZN15IOutStreamFlushD0Ev__ZN15IOutStreamFlushD1Ev__ZN16CBCJ_x86_Decoder7SubInitEv__ZN16CBCJ_x86_Decoder9SubFilterEPhj__ZN16CBCJ_x86_DecoderD0Ev__ZN16CBCJ_x86_DecoderD1Ev__ZN16CBCJ_x86_Encoder7SubInitEv__ZN16CBCJ_x86_Encoder9SubFilterEPhj__ZN16CBCJ_x86_EncoderD0Ev__ZN16CBCJ_x86_EncoderD1Ev__ZN16CBC_ARMT_Decoder9SubFilterEPhj__ZN16CBC_ARMT_DecoderD0Ev__ZN16CBC_ARMT_DecoderD1Ev__ZN16CBC_ARMT_Encoder9SubFilterEPhj__ZN16CBC_ARMT_EncoderD0Ev__ZN16CBC_ARMT_EncoderD1Ev__ZN16CBC_IA64_Decoder9SubFilterEPhj__ZN16CBC_IA64_DecoderD0Ev__ZN16CBC_IA64_DecoderD1Ev__ZN16CBC_IA64_Encoder9SubFilterEPhj__ZN16CBC_IA64_EncoderD0Ev__ZN16CBC_IA64_EncoderD1Ev__ZN16CBinderOutStream14QueryInterfaceERK4GUIDPPv__ZN16CBinderOutStream5WriteEPKvjPj__ZN16CBinderOutStream6AddRefEv__ZN16CBinderOutStream7ReleaseEv__ZN16CBinderOutStreamD0Ev__ZN16CBinderOutStreamD1Ev__ZN16CBranchConverter14QueryInterfaceERK4GUIDPPv__ZN16CBranchConverter4InitEv__ZN16CBranchConverter6AddRefEv__ZN16CBranchConverter6FilterEPhj__ZN16CBranchConverter7ReleaseEv__ZN16CBranchConverter7SubInitEv__ZN16CBranchConverterD0Ev__ZN16CBranchConverterD1Ev__ZN16CClusterInStream14QueryInterfaceERK4GUIDPPv__ZN16CClusterInStream4ReadEPvjPj__ZN16CClusterInStream4SeekExjPy__ZN16CClusterInStream6AddRefEv__ZN16CClusterInStream7ReleaseEv__ZN16CClusterInStreamD0Ev__ZN16CClusterInStreamD1Ev__ZN16CInFileStreamVolD0Ev__ZN16CInFileStreamVolD1Ev__ZN16CInFileStreamVolD2Ev__ZN16CInOutTempBuffer11InitWritingEv__ZN16CInOutTempBuffer11WriteToFileEPKvj__ZN16CInOutTempBuffer13WriteToStreamEP20ISequentialOutStream__ZN16CInOutTempBuffer5WriteEPKvj__ZN16CInOutTempBuffer6CreateEv__ZN16CInOutTempBufferC1Ev__ZN16CInOutTempBufferC2Ev__ZN16CInOutTempBufferD1Ev__ZN16CInOutTempBufferD2Ev__ZN16CInStreamWithCRC14QueryInterfaceERK4GUIDPPv__ZN16CInStreamWithCRC4ReadEPvjPj__ZN16CInStreamWithCRC4SeekExjPy__ZN16CInStreamWithCRC6AddRefEv__ZN16CInStreamWithCRC7ReleaseEv__ZN16CInStreamWithCRCD0Ev__ZN16CInStreamWithCRCD1Ev__ZN16CLimitedInStream14QueryInterfaceERK4GUIDPPv__ZN16CLimitedInStream4ReadEPvjPj__ZN16CLimitedInStream4SeekExjPy__ZN16CLimitedInStream6AddRefEv__ZN16CLimitedInStream7ReleaseEv__ZN16CLimitedInStreamD0Ev__ZN16CLimitedInStreamD1Ev__ZN16CMemBlockManager13AllocateBlockEv__ZN16CMemBlockManager13AllocateSpaceEm__ZN16CMemBlockManager9FreeBlockEPv__ZN16CMemBlockManager9FreeSpaceEv__ZN16COffsetOutStream14QueryInterfaceERK4GUIDPPv__ZN16COffsetOutStream4InitEP10IOutStreamy__ZN16COffsetOutStream4SeekExjPy__ZN16COffsetOutStream5WriteEPKvjPj__ZN16COffsetOutStream6AddRefEv__ZN16COffsetOutStream7ReleaseEv__ZN16COffsetOutStream7SetSizeEy__ZN16COffsetOutStreamD0Ev__ZN16COffsetOutStreamD1Ev__ZN16COpenCallbackImp11GetPropertyEjP14tagPROPVARIANT__ZN16COpenCallbackImp12SetCompletedEPKyS1___ZN16COpenCallbackImp14QueryInterfaceERK4GUIDPPv__ZN16COpenCallbackImp17SetSubArchiveNameEPKw__ZN16COpenCallbackImp21CryptoGetTextPasswordEPPw__ZN16COpenCallbackImp4InitERK7UStringS2___ZN16COpenCallbackImp6AddRefEv__ZN16COpenCallbackImp7ReleaseEv__ZN16COpenCallbackImp8SetTotalEPKyS1___ZN16COpenCallbackImp9GetStreamEPKwPP9IInStream__ZN16COpenCallbackImpC2Ev__ZN16COpenCallbackImpD0Ev__ZN16COpenCallbackImpD1Ev__ZN16COpenCallbackImpD2Ev__ZN16CRandomGenerator4InitEv__ZN16CRandomGenerator8GenerateEPhj__ZN16CSeqInStreamWrapC1EP19ISequentialInStream__ZN16CSeqInStreamWrapC2EP19ISequentialInStream__ZN16CStdInFileStream14QueryInterfaceERK4GUIDPPv__ZN16CStdInFileStream4ReadEPvjPj__ZN16CStdInFileStream6AddRefEv__ZN16CStdInFileStream7ReleaseEv__ZN16CStdInFileStreamD0Ev__ZN16CStdInFileStreamD1Ev__ZN17CArcCmdLineParser6Parse1ERK13CObjectVectorI7UStringER18CArcCmdLineOptions__ZN17CArcCmdLineParser6Parse2ER18CArcCmdLineOptions__ZN17CArcCmdLineParserC1Ev__ZN17CArcCmdLineParserC2Ev__ZN17CBC_SPARC_Decoder9SubFilterEPhj__ZN17CBC_SPARC_DecoderD0Ev__ZN17CBC_SPARC_DecoderD1Ev__ZN17CBC_SPARC_Encoder9SubFilterEPhj__ZN17CBC_SPARC_EncoderD0Ev__ZN17CBC_SPARC_EncoderD1Ev__ZN17COutStreamWithCRC14QueryInterfaceERK4GUIDPPv__ZN17COutStreamWithCRC5WriteEPKvjPj__ZN17COutStreamWithCRC6AddRefEv__ZN17COutStreamWithCRC7ReleaseEv__ZN17COutStreamWithCRCD0Ev__ZN17COutStreamWithCRCD1Ev__ZN17CSeekInStreamWrapC1EP9IInStream__ZN17CSeekInStreamWrapC2EP9IInStream__ZN17CSeqOutStreamWrapC1EP20ISequentialOutStream__ZN17CSeqOutStreamWrapC2EP20ISequentialOutStream__ZN17CStdOutFileStream14QueryInterfaceERK4GUIDPPv__ZN17CStdOutFileStream5WriteEPKvjPj__ZN17CStdOutFileStream6AddRefEv__ZN17CStdOutFileStream7ReleaseEv__ZN17CStdOutFileStreamD0Ev__ZN17CStdOutFileStreamD1Ev__ZN17ICryptoPropertiesD0Ev__ZN17ICryptoPropertiesD1Ev__ZN18CArcCmdLineOptionsC2Ev__ZN18CArcCmdLineOptionsD2Ev__ZN18CBenchProgressInfo12SetRatioInfoEPKyS1___ZN18CBenchProgressInfo14QueryInterfaceERK4GUIDPPv__ZN18CBenchProgressInfo6AddRefEv__ZN18CBenchProgressInfo7ReleaseEv__ZN18CBenchProgressInfoD0Ev__ZN18CBenchProgressInfoD1Ev__ZN18CBenchmarkInStream14QueryInterfaceERK4GUIDPPv__ZN18CBenchmarkInStream4ReadEPvjPj__ZN18CBenchmarkInStream6AddRefEv__ZN18CBenchmarkInStream7ReleaseEv__ZN18CBenchmarkInStreamD0Ev__ZN18CBenchmarkInStreamD1Ev__ZN18CMemBlockManagerMt13AllocateBlockEv__ZN18CMemBlockManagerMt13AllocateSpaceEPN8NWindows16NSynchronization8CSynchroEmm__ZN18CMemBlockManagerMt19AllocateSpaceAlwaysEPN8NWindows16NSynchronization8CSynchroEmm__ZN18CMemBlockManagerMt9FreeBlockEPvb__ZN18CMemBlockManagerMt9FreeSpaceEv__ZN18CMemBlockManagerMtD2Ev__ZN18COutMultiVolStream14QueryInterfaceERK4GUIDPPv__ZN18COutMultiVolStream4SeekExjPy__ZN18COutMultiVolStream5CloseEv__ZN18COutMultiVolStream5WriteEPKvjPj__ZN18COutMultiVolStream6AddRefEv__ZN18COutMultiVolStream7ReleaseEv__ZN18COutMultiVolStream7SetSizeEy__ZN18COutMultiVolStream8SetMTimeEPK9_FILETIME__ZN18COutMultiVolStreamD0Ev__ZN18COutMultiVolStreamD1Ev__ZN18COutStreamWithHash14QueryInterfaceERK4GUIDPPv__ZN18COutStreamWithHash5WriteEPKvjPj__ZN18COutStreamWithHash6AddRefEv__ZN18COutStreamWithHash7ReleaseEv__ZN18COutStreamWithHashD0Ev__ZN18COutStreamWithHashD1Ev__ZN18ICryptoSetPasswordD0Ev__ZN18ICryptoSetPasswordD1Ev__ZN18IExtractCallbackUID0Ev__ZN18IExtractCallbackUID1Ev__ZN18NCommandLineParser7CParser11ParseStringERK7UStringPKNS_11CSwitchFormE__ZN18NCommandLineParser7CParser12ParseStringsEPKNS_11CSwitchFormERK13CObjectVectorI7UStringE__ZN18NCommandLineParser7CParserC1Ej__ZN18NCommandLineParser7CParserC2Ej__ZN18NCommandLineParser7CParserD1Ev__ZN18NCommandLineParser7CParserD2Ev__ZN19CBenchmarkOutStream14QueryInterfaceERK4GUIDPPv__ZN19CBenchmarkOutStream5WriteEPKvjPj__ZN19CBenchmarkOutStream6AddRefEv__ZN19CBenchmarkOutStream7ReleaseEv__ZN19CBenchmarkOutStreamD0Ev__ZN19CBenchmarkOutStreamD1Ev__ZN19CBufPtrSeqOutStream14QueryInterfaceERK4GUIDPPv__ZN19CBufPtrSeqOutStream5WriteEPKvjPj__ZN19CBufPtrSeqOutStream6AddRefEv__ZN19CBufPtrSeqOutStream7ReleaseEv__ZN19CBufPtrSeqOutStreamD0Ev__ZN19CBufPtrSeqOutStreamD1Ev__ZN19CDynBufSeqOutStream14QueryInterfaceERK4GUIDPPv__ZN19CDynBufSeqOutStream19GetBufPtrForWritingEm__ZN19CDynBufSeqOutStream5WriteEPKvjPj__ZN19CDynBufSeqOutStream6AddRefEv__ZN19CDynBufSeqOutStream7ReleaseEv__ZN19CDynBufSeqOutStreamD0Ev__ZN19CDynBufSeqOutStreamD1Ev__ZN19CMtCompressProgress12SetRatioInfoEPKyS1___ZN19CMtCompressProgress14QueryInterfaceERK4GUIDPPv__ZN19CMtCompressProgress6AddRefEv__ZN19CMtCompressProgress7ReleaseEv__ZN19CMtCompressProgressD0Ev__ZN19CMtCompressProgressD1Ev__ZN19CPrintBenchCallback10CheckBreakEv__ZN19CPrintBenchCallback5PrintEPKc__ZN19CPrintBenchCallback7NewLineEv__ZN19IArchiveGetRawPropsD0Ev__ZN19IArchiveGetRawPropsD1Ev__ZN19ICompressSetBufSizeD0Ev__ZN19ICompressSetBufSizeD1Ev__ZN19ICompressSetCoderMtD0Ev__ZN19ICompressSetCoderMtD1Ev__ZN19IInArchiveGetStreamD0Ev__ZN19IInArchiveGetStreamD1Ev__ZN19ISequentialInStreamD0Ev__ZN19ISequentialInStreamD1Ev__ZN20CArcCmdLineExceptionC1EPKcPKw__ZN20CArcCmdLineExceptionC2EPKcPKw__ZN20CArcCmdLineExceptionD1Ev__ZN20CCallbackConsoleBase20CanNotFindError_BaseEPKwj__ZN20CCallbackConsoleBaseD2Ev__ZN20CCrossThreadProgress12SetRatioInfoEPKyS1___ZN20CCrossThreadProgress14QueryInterfaceERK4GUIDPPv__ZN20CCrossThreadProgress6AddRefEv__ZN20CCrossThreadProgress7ReleaseEv__ZN20CCrossThreadProgressD0Ev__ZN20CCrossThreadProgressD1Ev__ZN20CHashCallbackConsole10CheckBreakEv__ZN20CHashCallbackConsole11SetNumFilesEy__ZN20CHashCallbackConsole12ScanProgressEyyyPKwb__ZN20CHashCallbackConsole12SetCompletedEPKy__ZN20CHashCallbackConsole13AfterLastFileERK11CHashBundle__ZN20CHashCallbackConsole13OpenFileErrorEPKwj__ZN20CHashCallbackConsole13PrintPropertyEPKcy__ZN20CHashCallbackConsole13StartScanningEv__ZN20CHashCallbackConsole14FinishScanningEv__ZN20CHashCallbackConsole15BeforeFirstFileERK11CHashBundle__ZN20CHashCallbackConsole15CanNotFindErrorEPKwj__ZN20CHashCallbackConsole15PrintResultLineEyRK13CObjectVectorI12CHasherStateEjb__ZN20CHashCallbackConsole18PrintSeparatorLineERK13CObjectVectorI12CHasherStateE__ZN20CHashCallbackConsole18SetOperationResultEyRK11CHashBundleb__ZN20CHashCallbackConsole8SetTotalEy__ZN20CHashCallbackConsole9GetStreamEPKwb__ZN20COpenCallbackConsole13Open_SetTotalEPKyS1___ZN20COpenCallbackConsole15Open_CheckBreakEv__ZN20COpenCallbackConsole17Open_SetCompletedEPKyS1___ZN20COpenCallbackConsole21Open_GetPasswordIfAnyERbR7UString__ZN20COpenCallbackConsole21Open_WasPasswordAskedEv__ZN20COpenCallbackConsole26Open_CryptoGetTextPasswordEPPw__ZN20COpenCallbackConsole30Open_ClearPasswordWasAskedFlagEv__ZN20IArchiveGetRootPropsD0Ev__ZN20IArchiveGetRootPropsD1Ev__ZN20IArchiveOpenCallbackD0Ev__ZN20IArchiveOpenCallbackD1Ev__ZN20ICompressSetInStreamD0Ev__ZN20ICompressSetInStreamD1Ev__ZN20ISequentialOutStreamD0Ev__ZN20ISequentialOutStreamD1Ev__ZN21CBenchCallbackToPrint15SetDecodeResultERK10CBenchInfob__ZN21CBenchCallbackToPrint15SetEncodeResultERK10CBenchInfob__ZN21CBenchCallbackToPrint5PrintEPKc__ZN21CBenchCallbackToPrint7NewLineEv__ZN21CBenchCallbackToPrint7SetFreqEby__ZN21CBenchRandomGenerator8GenerateEj__ZN21CBenchRandomGeneratorD0Ev__ZN21CBenchRandomGeneratorD1Ev__ZN21CCompressProgressWrapC1EP21ICompressProgressInfo__ZN21CCompressProgressWrapC2EP21ICompressProgressInfo__ZN21ICompressProgressInfoD0Ev__ZN21ICompressProgressInfoD1Ev__ZN21ICompressSetOutStreamD0Ev__ZN21ICompressSetOutStreamD1Ev__ZN22CArchiveUpdateCallback10GetRawPropEjjPPKvPjS3___ZN22CArchiveUpdateCallback11GetPropertyEjjP14tagPROPVARIANT__ZN22CArchiveUpdateCallback11GetRootPropEjP14tagPROPVARIANT__ZN22CArchiveUpdateCallback12SetCompletedEPKy__ZN22CArchiveUpdateCallback12SetRatioInfoEPKyS1___ZN22CArchiveUpdateCallback13GetVolumeSizeEjPy__ZN22CArchiveUpdateCallback14GetNumRawPropsEPj__ZN22CArchiveUpdateCallback14GetRawPropInfoEjPPwPj__ZN22CArchiveUpdateCallback14GetRootRawPropEjPPKvPjS3___ZN22CArchiveUpdateCallback14QueryInterfaceERK4GUIDPPv__ZN22CArchiveUpdateCallback15GetVolumeStreamEjPP20ISequentialOutStream__ZN22CArchiveUpdateCallback17GetUpdateItemInfoEjPiS0_Pj__ZN22CArchiveUpdateCallback18SetOperationResultEi__ZN22CArchiveUpdateCallback21CryptoGetTextPasswordEPPw__ZN22CArchiveUpdateCallback22CryptoGetTextPassword2EPiPPw__ZN22CArchiveUpdateCallback6AddRefEv__ZN22CArchiveUpdateCallback7ReleaseEv__ZN22CArchiveUpdateCallback8SetTotalEy__ZN22CArchiveUpdateCallback9GetParentEjPjS0___ZN22CArchiveUpdateCallback9GetStreamEjPP19ISequentialInStream__ZN22CArchiveUpdateCallbackC1Ev__ZN22CArchiveUpdateCallbackC2Ev__ZN22CArchiveUpdateCallbackD0Ev__ZN22CArchiveUpdateCallbackD1Ev__ZN22CArchiveUpdateCallbackD2Ev__ZN22CLimitedCachedInStream14QueryInterfaceERK4GUIDPPv__ZN22CLimitedCachedInStream4ReadEPvjPj__ZN22CLimitedCachedInStream4SeekExjPy__ZN22CLimitedCachedInStream6AddRefEv__ZN22CLimitedCachedInStream7ReleaseEv__ZN22CLimitedCachedInStreamD0Ev__ZN22CLimitedCachedInStreamD1Ev__ZN22CUpdateCallbackConsole10CheckBreakEv__ZN22CUpdateCallbackConsole10OpenResultEPKwiS1___ZN22CUpdateCallbackConsole11SetNumFilesEy__ZN22CUpdateCallbackConsole12ScanProgressEyyyPKwb__ZN22CUpdateCallbackConsole12SetCompletedEPKy__ZN22CUpdateCallbackConsole12SetRatioInfoEPKyS1___ZN22CUpdateCallbackConsole12StartArchiveEPKwb__ZN22CUpdateCallbackConsole13FinishArchiveEv__ZN22CUpdateCallbackConsole13OpenFileErrorEPKwj__ZN22CUpdateCallbackConsole13StartScanningEv__ZN22CUpdateCallbackConsole14FinishScanningEv__ZN22CUpdateCallbackConsole15CanNotFindErrorEPKwj__ZN22CUpdateCallbackConsole18SetOperationResultEi__ZN22CUpdateCallbackConsole21CryptoGetTextPasswordEPPw__ZN22CUpdateCallbackConsole22CryptoGetTextPassword2EPiPPw__ZN22CUpdateCallbackConsole8FinilizeEv__ZN22CUpdateCallbackConsole8SetTotalEy__ZN22CUpdateCallbackConsole9GetStreamEPKwb__ZN22CUpdateCallbackConsoleD2Ev__ZN22IArchiveUpdateCallbackD0Ev__ZN22IArchiveUpdateCallbackD1Ev__ZN22ICryptoGetTextPasswordD0Ev__ZN22ICryptoGetTextPasswordD1Ev__ZN22ICryptoResetInitVectorD0Ev__ZN22ICryptoResetInitVectorD1Ev__ZN23CArchiveExtractCallback12SetCompletedEPKy__ZN23CArchiveExtractCallback12SetDirsTimesEv__ZN23CArchiveExtractCallback12SetRatioInfoEPKyS1___ZN23CArchiveExtractCallback13GetUnpackSizeEv__ZN23CArchiveExtractCallback14QueryInterfaceERK4GUIDPPv__ZN23CArchiveExtractCallback16PrepareOperationEi__ZN23CArchiveExtractCallback16SendMessageErrorEPKcRK7UString__ZN23CArchiveExtractCallback17SendMessageError2EPKcRK7UStringS4___ZN23CArchiveExtractCallback18SetOperationResultEi__ZN23CArchiveExtractCallback21CryptoGetTextPasswordEPPw__ZN23CArchiveExtractCallback22CreateComplexDirectoryERK13CObjectVectorI7UStringERS1___ZN23CArchiveExtractCallback4InitERK17CExtractNtOptionsPKN9NWildcard11CCensorNodeEPK4CArcP29IFolderArchiveExtractCallbackbbRK7UStringRK13CObjectVectorISC_Ey__ZN23CArchiveExtractCallback6AddRefEv__ZN23CArchiveExtractCallback7GetTimeEijR9_FILETIMERb__ZN23CArchiveExtractCallback7ReleaseEv__ZN23CArchiveExtractCallback8SetTotalEy__ZN23CArchiveExtractCallback9GetStreamEjPP20ISequentialOutStreami__ZN23CArchiveExtractCallbackC1Ev__ZN23CArchiveExtractCallbackC2Ev__ZN23CArchiveExtractCallbackD0Ev__ZN23CArchiveExtractCallbackD1Ev__ZN23CArchiveExtractCallbackD2Ev__ZN23CExtractCallbackConsole10BeforeOpenEPKw__ZN23CExtractCallbackConsole10OpenResultEPKwib__ZN23CExtractCallbackConsole11SetPasswordERK7UString__ZN23CExtractCallbackConsole12AskOverwriteEPKwPK9_FILETIMEPKyS1_S4_S6_Pi__ZN23CExtractCallbackConsole12MessageErrorEPKw__ZN23CExtractCallbackConsole12SetCompletedEPKy__ZN23CExtractCallbackConsole13ExtractResultEi__ZN23CExtractCallbackConsole14QueryInterfaceERK4GUIDPPv__ZN23CExtractCallbackConsole15OpenTypeWarningEPKwS1_S1___ZN23CExtractCallbackConsole15ThereAreNoFilesEv__ZN23CExtractCallbackConsole16PrepareOperationEPKwbiPKy__ZN23CExtractCallbackConsole18SetOperationResultEib__ZN23CExtractCallbackConsole21CryptoGetTextPasswordEPPw__ZN23CExtractCallbackConsole6AddRefEv__ZN23CExtractCallbackConsole7ReleaseEv__ZN23CExtractCallbackConsole8SetErrorEiPKwjS1_jS1___ZN23CExtractCallbackConsole8SetTotalEy__ZN23CExtractCallbackConsoleD0Ev__ZN23CExtractCallbackConsoleD1Ev__ZN23IArchiveExtractCallbackD0Ev__ZN23IArchiveExtractCallbackD1Ev__ZN23IArchiveUpdateCallback2D0Ev__ZN23IArchiveUpdateCallback2D1Ev__ZN23ICryptoGetTextPassword2D0Ev__ZN23ICryptoGetTextPassword2D1Ev__ZN24CMtCompressProgressMixer12SetRatioInfoEiPKyS1___ZN24CMtCompressProgressMixer4InitEiP21ICompressProgressInfo__ZN24CMtCompressProgressMixer6ReinitEi__ZN24CMtCompressProgressMixerD2Ev__ZN25CEnumDirItemCallback_Hash12ScanProgressEyyyPKwb__ZN25ICompressGetSubStreamSizeD0Ev__ZN25ICompressGetSubStreamSizeD1Ev__ZN25ICompressSetOutStreamSizeD0Ev__ZN25ICompressSetOutStreamSizeD1Ev__ZN26CEnumDirItemUpdateCallback12ScanProgressEyyyPKwb__ZN26CLimitedSequentialInStream14QueryInterfaceERK4GUIDPPv__ZN26CLimitedSequentialInStream4ReadEPvjPj__ZN26CLimitedSequentialInStream6AddRefEv__ZN26CLimitedSequentialInStream7ReleaseEv__ZN26CLimitedSequentialInStreamD0Ev__ZN26CLimitedSequentialInStreamD1Ev__ZN26CSequentialInStreamWithCRC14QueryInterfaceERK4GUIDPPv__ZN26CSequentialInStreamWithCRC4ReadEPvjPj__ZN26CSequentialInStreamWithCRC6AddRefEv__ZN26CSequentialInStreamWithCRC7ReleaseEv__ZN26CSequentialInStreamWithCRCD0Ev__ZN26CSequentialInStreamWithCRCD1Ev__ZN26IArchiveOpenVolumeCallbackD0Ev__ZN26IArchiveOpenVolumeCallbackD1Ev__ZN27CArchiveOpenCallback_Offset12SetCompletedEPKyS1___ZN27CArchiveOpenCallback_Offset14QueryInterfaceERK4GUIDPPv__ZN27CArchiveOpenCallback_Offset21CryptoGetTextPasswordEPPw__ZN27CArchiveOpenCallback_Offset6AddRefEv__ZN27CArchiveOpenCallback_Offset7ReleaseEv__ZN27CArchiveOpenCallback_Offset8SetTotalEPKyS1___ZN27CArchiveOpenCallback_OffsetD0Ev__ZN27CArchiveOpenCallback_OffsetD1Ev__ZN27CLimitedSequentialOutStream14QueryInterfaceERK4GUIDPPv__ZN27CLimitedSequentialOutStream5WriteEPKvjPj__ZN27CLimitedSequentialOutStream6AddRefEv__ZN27CLimitedSequentialOutStream7ReleaseEv__ZN27CLimitedSequentialOutStreamD0Ev__ZN27CLimitedSequentialOutStreamD1Ev__ZN27CSequentialOutTempBufferImp14QueryInterfaceERK4GUIDPPv__ZN27CSequentialOutTempBufferImp5WriteEPKvjPj__ZN27CSequentialOutTempBufferImp6AddRefEv__ZN27CSequentialOutTempBufferImp7ReleaseEv__ZN27CSequentialOutTempBufferImpD0Ev__ZN27CSequentialOutTempBufferImpD1Ev__ZN27ICompressSetCoderPropertiesD0Ev__ZN27ICompressSetCoderPropertiesD1Ev__ZN28CLockedSequentialInStreamImp14QueryInterfaceERK4GUIDPPv__ZN28CLockedSequentialInStreamImp4ReadEPvjPj__ZN28CLockedSequentialInStreamImp6AddRefEv__ZN28CLockedSequentialInStreamImp7ReleaseEv__ZN28CLockedSequentialInStreamImpD0Ev__ZN28CLockedSequentialInStreamImpD1Ev__ZN29CSequentialInStreamSizeCount214QueryInterfaceERK4GUIDPPv__ZN29CSequentialInStreamSizeCount216GetSubStreamSizeEyPy__ZN29CSequentialInStreamSizeCount24InitEP19ISequentialInStream__ZN29CSequentialInStreamSizeCount24ReadEPvjPj__ZN29CSequentialInStreamSizeCount26AddRefEv__ZN29CSequentialInStreamSizeCount27ReleaseEv__ZN29CSequentialInStreamSizeCount2D0Ev__ZN29CSequentialInStreamSizeCount2D1Ev__ZN29CSequentialOutStreamSizeCount14QueryInterfaceERK4GUIDPPv__ZN29CSequentialOutStreamSizeCount5WriteEPKvjPj__ZN29CSequentialOutStreamSizeCount6AddRefEv__ZN29CSequentialOutStreamSizeCount7ReleaseEv__ZN29CSequentialOutStreamSizeCountD0Ev__ZN29CSequentialOutStreamSizeCountD1Ev__ZN29IArchiveOpenSetSubArchiveNameD0Ev__ZN29IArchiveOpenSetSubArchiveNameD1Ev__ZN29ICompressWriteCoderPropertiesD0Ev__ZN29ICompressWriteCoderPropertiesD1Ev__ZN29IFolderArchiveExtractCallbackD0Ev__ZN29IFolderArchiveExtractCallbackD1Ev__ZN30ICompressSetDecoderProperties2D0Ev__ZN30ICompressSetDecoderProperties2D1Ev__ZN32CExtractCallback_To_OpenCallback12SetCompletedEPKy__ZN32CExtractCallback_To_OpenCallback12SetRatioInfoEPKyS1___ZN32CExtractCallback_To_OpenCallback14QueryInterfaceERK4GUIDPPv__ZN32CExtractCallback_To_OpenCallback16PrepareOperationEi__ZN32CExtractCallback_To_OpenCallback18SetOperationResultEi__ZN32CExtractCallback_To_OpenCallback6AddRefEv__ZN32CExtractCallback_To_OpenCallback7ReleaseEv__ZN32CExtractCallback_To_OpenCallback8SetTotalEy__ZN32CExtractCallback_To_OpenCallback9GetStreamEjPP20ISequentialOutStreami__ZN32CExtractCallback_To_OpenCallbackD0Ev__ZN32CExtractCallback_To_OpenCallbackD1Ev__ZN33ICompressGetInStreamProcessedSizeD0Ev__ZN33ICompressGetInStreamProcessedSizeD1Ev__ZN4CArc10OpenStreamERK12COpenOptions__ZN4CArc11OpenStream2ERK12COpenOptions__ZN4CArc13PrepareToOpenERK12COpenOptionsjR9CMyComPtrI10IInArchiveE__ZN4CArc14CheckZerosTailERK12COpenOptionsy__ZN4CArc14ReadBasicPropsEP10IInArchiveyi__ZN4CArc16OpenStreamOrFileER12COpenOptions__ZN4CArc6ReOpenERK12COpenOptions__ZN4CArcC2ERKS___ZN4CArcC2Ev__ZN4CArcD2Ev__ZN5NBitl12kInvertTableE__ZN5NBitl26g_InverterTableInitializerE__ZN5NBitl8CDecoderI9CInBufferE8ReadBitsEj__ZN6CProps9AddProp32Ejj__ZN7AString10RemoveCharEc__ZN7AString11InsertSpaceERjj__ZN7AString11SetStartLenEj__ZN7AString13DeleteFrontalEj__ZN7AString13InsertAtFrontEc__ZN7AString4GrowEj__ZN7AString6DeleteEj__ZN7AString6DeleteEjj__ZN7AString6Grow_1Ev__ZN7AString6InsertEjPKc__ZN7AString6InsertEjRKS___ZN7AString7ReAllocEj__ZN7AString7ReplaceERKS_S1___ZN7AString7ReplaceEcc__ZN7AString7SetFromEPKcj__ZN7AString8TrimLeftEv__ZN7AString9TrimRightEv__ZN7AStringC1EPKc__ZN7AStringC1EPKcjS1_j__ZN7AStringC1ERKS___ZN7AStringC1ERKS_c__ZN7AStringC1Ec__ZN7AStringC1EjRKS___ZN7AStringC1Ev__ZN7AStringC2EPKc__ZN7AStringC2EPKcjS1_j__ZN7AStringC2ERKS___ZN7AStringC2ERKS_c__ZN7AStringC2Ec__ZN7AStringC2EjRKS___ZN7AStringC2Ev__ZN7AStringD1Ev__ZN7AStringaSEPKc__ZN7AStringaSERKS___ZN7AStringaSEc__ZN7AStringpLEPKc__ZN7AStringpLERKS___ZN7CCodecs14QueryInterfaceERK4GUIDPPv__ZN7CCodecs4LoadEv__ZN7CCodecs6AddRefEv__ZN7CCodecs7ReleaseEv__ZN7CCodecsD0Ev__ZN7CCodecsD1Ev__ZN7IHasherD0Ev__ZN7IHasherD1Ev__ZN7NCrypto10NZipStrong10CBaseCoder17CryptoSetPasswordEPKhj__ZN7NCrypto10NZipStrong10CBaseCoderD0Ev__ZN7NCrypto10NZipStrong10CBaseCoderD1Ev__ZN7NCrypto10NZipStrong8CDecoder10ReadHeaderEP19ISequentialInStreamjy__ZN7NCrypto10NZipStrong8CDecoder13CheckPasswordERb__ZN7NCrypto10NZipStrong8CDecoder14QueryInterfaceERK4GUIDPPv__ZN7NCrypto10NZipStrong8CDecoder6AddRefEv__ZN7NCrypto10NZipStrong8CDecoder7ReleaseEv__ZN7NCrypto10NZipStrong8CDecoderD0Ev__ZN7NCrypto10NZipStrong8CDecoderD1Ev__ZN7NCrypto10NZipStrong8CKeyInfo11SetPasswordEPKhj__ZN7NCrypto12CAesCbcCoder12SetFunctionsEj__ZN7NCrypto12CAesCbcCoder13SetInitVectorEPKhj__ZN7NCrypto12CAesCbcCoder14QueryInterfaceERK4GUIDPPv__ZN7NCrypto12CAesCbcCoder18SetCoderPropertiesEPKjPK14tagPROPVARIANTj__ZN7NCrypto12CAesCbcCoder4InitEv__ZN7NCrypto12CAesCbcCoder6AddRefEv__ZN7NCrypto12CAesCbcCoder6FilterEPhj__ZN7NCrypto12CAesCbcCoder6SetKeyEPKhj__ZN7NCrypto12CAesCbcCoder7ReleaseEv__ZN7NCrypto12CAesCbcCoderC1Ebj__ZN7NCrypto12CAesCbcCoderC2Ebj__ZN7NCrypto12CAesCbcCoderD0Ev__ZN7NCrypto12CAesCbcCoderD1Ev__ZN7NCrypto14CAesCbcDecoderD0Ev__ZN7NCrypto14CAesCbcDecoderD1Ev__ZN7NCrypto14CAesCbcEncoderD0Ev__ZN7NCrypto14CAesCbcEncoderD1Ev__ZN7NCrypto4NZip7CCipher10UpdateKeysEh__ZN7NCrypto4NZip7CCipher15DecryptByteSpecEv__ZN7NCrypto4NZip7CCipher17CryptoSetPasswordEPKhj__ZN7NCrypto4NZip7CCipher4InitEv__ZN7NCrypto4NZip7CCipherD0Ev__ZN7NCrypto4NZip7CCipherD1Ev__ZN7NCrypto4NZip8CDecoder10ReadHeaderEP19ISequentialInStream__ZN7NCrypto4NZip8CDecoder14QueryInterfaceERK4GUIDPPv__ZN7NCrypto4NZip8CDecoder6AddRefEv__ZN7NCrypto4NZip8CDecoder6FilterEPhj__ZN7NCrypto4NZip8CDecoder7ReleaseEv__ZN7NCrypto4NZip8CDecoderD0Ev__ZN7NCrypto4NZip8CDecoderD1Ev__ZN7NCrypto4NZip8CEncoder11WriteHeaderEP20ISequentialOutStreamj__ZN7NCrypto4NZip8CEncoder14QueryInterfaceERK4GUIDPPv__ZN7NCrypto4NZip8CEncoder6AddRefEv__ZN7NCrypto4NZip8CEncoder6FilterEPhj__ZN7NCrypto4NZip8CEncoder7ReleaseEv__ZN7NCrypto4NZip8CEncoderD0Ev__ZN7NCrypto4NZip8CEncoderD1Ev__ZN7NCrypto5NSha110CContext325FinalEPj__ZN7NCrypto5NSha110CContext326UpdateEPKjm__ZN7NCrypto5NSha110Pbkdf2HmacEPKhmS2_mjPhm__ZN7NCrypto5NSha112CContextBase14GetBlockDigestEPjS2_b__ZN7NCrypto5NSha112CContextBase4InitEv__ZN7NCrypto5NSha112Pbkdf2Hmac32EPKhmPKjmjPjm__ZN7NCrypto5NSha15CHmac5FinalEPhm__ZN7NCrypto5NSha15CHmac6SetKeyEPKhm__ZN7NCrypto5NSha17CHmac3216GetLoopXorDigestEPjj__ZN7NCrypto5NSha17CHmac325FinalEPjm__ZN7NCrypto5NSha17CHmac326SetKeyEPKhm__ZN7NCrypto5NSha18CContext5FinalEPh__ZN7NCrypto5NSha18CContext6UpdateEPKhm__ZN7NCrypto5NSha18CContext9UpdateRarEPhmb__ZN7NCrypto6NWzAes10CBaseCoder17CryptoSetPasswordEPKhj__ZN7NCrypto6NWzAes10CBaseCoder4InitEv__ZN7NCrypto6NWzAes10CBaseCoderD0Ev__ZN7NCrypto6NWzAes10CBaseCoderD1Ev__ZN7NCrypto6NWzAes12AesCtr2_CodeEPNS0_8CAesCtr2EPhm__ZN7NCrypto6NWzAes12AesCtr2_InitEPNS0_8CAesCtr2E__ZN7NCrypto6NWzAes8CAesCtr2C1Ev__ZN7NCrypto6NWzAes8CAesCtr2C2Ev__ZN7NCrypto6NWzAes8CDecoder10ReadHeaderEP19ISequentialInStream__ZN7NCrypto6NWzAes8CDecoder14QueryInterfaceERK4GUIDPPv__ZN7NCrypto6NWzAes8CDecoder21SetDecoderProperties2EPKhj__ZN7NCrypto6NWzAes8CDecoder23CheckPasswordVerifyCodeEv__ZN7NCrypto6NWzAes8CDecoder6AddRefEv__ZN7NCrypto6NWzAes8CDecoder6FilterEPhj__ZN7NCrypto6NWzAes8CDecoder7ReleaseEv__ZN7NCrypto6NWzAes8CDecoder8CheckMacEP19ISequentialInStreamRb__ZN7NCrypto6NWzAes8CDecoderD0Ev__ZN7NCrypto6NWzAes8CDecoderD1Ev__ZN7NCrypto6NWzAes8CEncoder11WriteFooterEP20ISequentialOutStream__ZN7NCrypto6NWzAes8CEncoder11WriteHeaderEP20ISequentialOutStream__ZN7NCrypto6NWzAes8CEncoder14QueryInterfaceERK4GUIDPPv__ZN7NCrypto6NWzAes8CEncoder6AddRefEv__ZN7NCrypto6NWzAes8CEncoder6FilterEPhj__ZN7NCrypto6NWzAes8CEncoder7ReleaseEv__ZN7NCrypto6NWzAes8CEncoderD0Ev__ZN7NCrypto6NWzAes8CEncoderD1Ev__ZN7NCrypto7NSevenZ10CBaseCoder17CryptoSetPasswordEPKhj__ZN7NCrypto7NSevenZ10CBaseCoder4InitEv__ZN7NCrypto7NSevenZ10CBaseCoder6FilterEPhj__ZN7NCrypto7NSevenZ10CBaseCoderD0Ev__ZN7NCrypto7NSevenZ10CBaseCoderD1Ev__ZN7NCrypto7NSevenZ10CBaseCoderD2Ev__ZN7NCrypto7NSevenZ13CKeyInfoCache3AddERNS0_8CKeyInfoE__ZN7NCrypto7NSevenZ13CKeyInfoCache4FindERNS0_8CKeyInfoE__ZN7NCrypto7NSevenZ13CKeyInfoCacheD1Ev__ZN7NCrypto7NSevenZ5CBase15CalculateDigestEv__ZN7NCrypto7NSevenZ5CBaseC1Ev__ZN7NCrypto7NSevenZ5CBaseC2Ev__ZN7NCrypto7NSevenZ8CDecoder12CreateFilterEv__ZN7NCrypto7NSevenZ8CDecoder14QueryInterfaceERK4GUIDPPv__ZN7NCrypto7NSevenZ8CDecoder21SetDecoderProperties2EPKhj__ZN7NCrypto7NSevenZ8CDecoder6AddRefEv__ZN7NCrypto7NSevenZ8CDecoder7ReleaseEv__ZN7NCrypto7NSevenZ8CDecoderD0Ev__ZN7NCrypto7NSevenZ8CDecoderD1Ev__ZN7NCrypto7NSevenZ8CEncoder12CreateFilterEv__ZN7NCrypto7NSevenZ8CEncoder14QueryInterfaceERK4GUIDPPv__ZN7NCrypto7NSevenZ8CEncoder15ResetInitVectorEv__ZN7NCrypto7NSevenZ8CEncoder20WriteCoderPropertiesEP20ISequentialOutStream__ZN7NCrypto7NSevenZ8CEncoder6AddRefEv__ZN7NCrypto7NSevenZ8CEncoder7ReleaseEv__ZN7NCrypto7NSevenZ8CEncoderD0Ev__ZN7NCrypto7NSevenZ8CEncoderD1Ev__ZN7NCrypto7NSevenZ8CKeyInfo15CalculateDigestEv__ZN7UString10RemoveCharEw__ZN7UString11AddAsciiStrEPKc__ZN7UString11InsertSpaceEjj__ZN7UString11SetStartLenEj__ZN7UString12SetFromAsciiEPKc__ZN7UString13DeleteFrontalEj__ZN7UString13InsertAtFrontEw__ZN7UString4GrowEj__ZN7UString6DeleteEj__ZN7UString6DeleteEjj__ZN7UString6Grow_1Ev__ZN7UString6InsertEjPKw__ZN7UString6InsertEjRKS___ZN7UString7ReAllocEj__ZN7UString7ReplaceERKS_S1___ZN7UString7ReplaceEww__ZN7UString7SetFromEPKwj__ZN7UString8TrimLeftEv__ZN7UString9TrimRightEv__ZN7UStringC1EPKw__ZN7UStringC1EPKwjS1_j__ZN7UStringC1ERKS___ZN7UStringC1ERKS_w__ZN7UStringC1EjPKw__ZN7UStringC1EjRKS___ZN7UStringC1Ev__ZN7UStringC1Ew__ZN7UStringC2EPKw__ZN7UStringC2EPKwjS1_j__ZN7UStringC2ERKS___ZN7UStringC2ERKS_w__ZN7UStringC2EjPKw__ZN7UStringC2EjRKS___ZN7UStringC2Ev__ZN7UStringC2Ew__ZN7UStringD1Ev__ZN7UStringaSEPKw__ZN7UStringaSERKS___ZN7UStringaSEw__ZN7UStringpLEPKw__ZN7UStringpLERKS___ZN8CGetProp14QueryInterfaceERK4GUIDPPv__ZN8CGetProp6AddRefEv__ZN8CGetProp7GetPropEjP14tagPROPVARIANT__ZN8CGetProp7ReleaseEv__ZN8CGetPropD0Ev__ZN8CGetPropD1Ev__ZN8IGetPropD0Ev__ZN8IGetPropD1Ev__ZN8IUnknownD0Ev__ZN8IUnknownD1Ev__ZN8NArchive17CMultiMethodProps11SetPropertyEPKwRK14tagPROPVARIANT__ZN8NArchive17CMultiMethodProps24SetGlobalLevelAndThreadsER14COneMethodInfoj__ZN8NArchive17CMultiMethodProps4InitEv__ZN8NArchive17CMultiMethodPropsC2Ev__ZN8NArchive18CSingleMethodProps13SetPropertiesEPPKwPK14tagPROPVARIANTj__ZN8NArchive18CSingleMethodProps4InitEv__ZN8NArchive18CSingleMethodPropsC2Ev__ZN8NArchive2NZ8CHandler11GetPropertyEjjP14tagPROPVARIANT__ZN8NArchive2NZ8CHandler14QueryInterfaceERK4GUIDPPv__ZN8NArchive2NZ8CHandler15GetPropertyInfoEjPPwPjPt__ZN8NArchive2NZ8CHandler16GetNumberOfItemsEPj__ZN8NArchive2NZ8CHandler18GetArchivePropertyEjP14tagPROPVARIANT__ZN8NArchive2NZ8CHandler21GetNumberOfPropertiesEPj__ZN8NArchive2NZ8CHandler22GetArchivePropertyInfoEjPPwPjPt__ZN8NArchive2NZ8CHandler28GetNumberOfArchivePropertiesEPj__ZN8NArchive2NZ8CHandler4OpenEP9IInStreamPKyP20IArchiveOpenCallback__ZN8NArchive2NZ8CHandler5CloseEv__ZN8NArchive2NZ8CHandler6AddRefEv__ZN8NArchive2NZ8CHandler7ExtractEPKjjiP23IArchiveExtractCallback__ZN8NArchive2NZ8CHandler7ReleaseEv__ZN8NArchive2NZ8CHandlerD0Ev__ZN8NArchive2NZ8CHandlerD1Ev__ZN8NArchive3N7z10CInArchive10ReadHeaderERNS0_5CDbExEP22ICryptoGetTextPasswordRbS6___ZN8NArchive3N7z10CInArchive12ReadDatabaseERNS0_5CDbExEP22ICryptoGetTextPasswordRbS6___ZN8NArchive3N7z10CInArchive12ReadPackInfoERNS0_8CFoldersE__ZN8NArchive3N7z10CInArchive13AddByteStreamEPKhm__ZN8NArchive3N7z10CInArchive13ReadDatabase2ERNS0_5CDbExEP22ICryptoGetTextPasswordRbS6___ZN8NArchive3N7z10CInArchive14ReadBoolVectorEjR13CRecordVectorIbE__ZN8NArchive3N7z10CInArchive14ReadUnpackInfoEPK13CObjectVectorI7CBufferIhEERNS0_8CFoldersE__ZN8NArchive3N7z10CInArchive15ReadBoolVector2EjR13CRecordVectorIbE__ZN8NArchive3N7z10CInArchive15ReadHashDigestsEjRNS0_16CUInt32DefVectorE__ZN8NArchive3N7z10CInArchive15ReadStreamsInfoEPK13CObjectVectorI7CBufferIhEERyRNS0_8CFoldersER13CRecordVectorIyERNS0_16CUInt32DefVectorE__ZN8NArchive3N7z10CInArchive18ReadSubStreamsInfoERNS0_8CFoldersER13CRecordVectorIyERNS0_16CUInt32DefVectorE__ZN8NArchive3N7z10CInArchive19ReadUInt64DefVectorERK13CObjectVectorI7CBufferIhEERNS0_16CUInt64DefVectorEj__ZN8NArchive3N7z10CInArchive20FindAndReadSignatureEP9IInStreamPKy__ZN8NArchive3N7z10CInArchive21ReadArchivePropertiesERNS0_14CInArchiveInfoE__ZN8NArchive3N7z10CInArchive26ReadAndDecodePackedStreamsEyRyR13CObjectVectorI7CBufferIhEEP22ICryptoGetTextPasswordRbSA___ZN8NArchive3N7z10CInArchive4OpenEP9IInStreamPKy__ZN8NArchive3N7z10CInArchive5CloseEv__ZN8NArchive3N7z10CInArchive6WaitIdEy__ZN8NArchive3N7z10kSignatureE__ZN8NArchive3N7z11COutArchive10WriteBytesEPKvm__ZN8NArchive3N7z11COutArchive11WriteFolderERKNS0_7CFolderE__ZN8NArchive3N7z11COutArchive11WriteHeaderERKNS0_19CArchiveDatabaseOutERy__ZN8NArchive3N7z11COutArchive11WriteNumberEy__ZN8NArchive3N7z11COutArchive11WriteUInt32Ej__ZN8NArchive3N7z11COutArchive11WriteUInt64Ey__ZN8NArchive3N7z11COutArchive12EncodeStreamERNS0_8CEncoderERK7CBufferIhER13CRecordVectorIyER13CObjectVectorINS0_7CFolderEERNS0_11COutFoldersE__ZN8NArchive3N7z11COutArchive13WriteDatabaseERKNS0_19CArchiveDatabaseOutEPKNS0_22CCompressionMethodModeERKNS0_14CHeaderOptionsE__ZN8NArchive3N7z11COutArchive13WritePackInfoEyRK13CRecordVectorIyERKNS0_16CUInt32DefVectorE__ZN8NArchive3N7z11COutArchive14WriteSignatureEv__ZN8NArchive3N7z11COutArchive15WriteBoolVectorERK13CRecordVectorIbE__ZN8NArchive3N7z11COutArchive15WriteUnpackInfoERK13CObjectVectorINS0_7CFolderEERKNS0_11COutFoldersE__ZN8NArchive3N7z11COutArchive16WriteHashDigestsERKNS0_16CUInt32DefVectorE__ZN8NArchive3N7z11COutArchive16WriteStartHeaderERKNS0_12CStartHeaderE__ZN8NArchive3N7z11COutArchive19WritePropBoolVectorEhRK13CRecordVectorIbE__ZN8NArchive3N7z11COutArchive19WriteSubStreamsInfoERK13CObjectVectorINS0_7CFolderEERKNS0_11COutFoldersERK13CRecordVectorIyERKNS0_16CUInt32DefVectorE__ZN8NArchive3N7z11COutArchive20WriteUInt64DefVectorERKNS0_16CUInt64DefVectorEh__ZN8NArchive3N7z11COutArchive22WriteAlignedBoolHeaderERK13CRecordVectorIbEjhj__ZN8NArchive3N7z11COutArchive23SkipPrefixArchiveHeaderEv__ZN8NArchive3N7z11COutArchive5CloseEv__ZN8NArchive3N7z11COutArchive6CreateEP20ISequentialOutStreamb__ZN8NArchive3N7z11COutArchive9SkipAlignEjj__ZN8NArchive3N7z11COutArchive9WriteByteEh__ZN8NArchive3N7z11COutArchiveD2Ev__ZN8NArchive3N7z11COutFolders21OutFoldersReserveDownEv__ZN8NArchive3N7z11COutHandler11SetPropertyEPKwRK14tagPROPVARIANT__ZN8NArchive3N7z11COutHandler18SetSolidFromStringERK7UString__ZN8NArchive3N7z11COutHandler23SetSolidFromPROPVARIANTERK14tagPROPVARIANT__ZN8NArchive3N7z11COutHandler9InitPropsEv__ZN8NArchive3N7z11COutHandlerC2Ev__ZN8NArchive3N7z13CStreamSwitch3SetEPNS0_10CInArchiveEPK13CObjectVectorI7CBufferIhEE__ZN8NArchive3N7z13CStreamSwitch3SetEPNS0_10CInArchiveEPKhmb__ZN8NArchive3N7z13CStreamSwitch3SetEPNS0_10CInArchiveERK7CBufferIhE__ZN8NArchive3N7z13CStreamSwitch6RemoveEv__ZN8NArchive3N7z14CThreadDecoder7ExecuteEv__ZN8NArchive3N7z14CThreadDecoderC2Ev__ZN8NArchive3N7z14CThreadDecoderD2Ev__ZN8NArchive3N7z15CFolderInStream10OpenStreamEv__ZN8NArchive3N7z15CFolderInStream11CloseStreamEv__ZN8NArchive3N7z15CFolderInStream14QueryInterfaceERK4GUIDPPv__ZN8NArchive3N7z15CFolderInStream16GetSubStreamSizeEyPy__ZN8NArchive3N7z15CFolderInStream4InitEP22IArchiveUpdateCallbackPKjj__ZN8NArchive3N7z15CFolderInStream4ReadEPvjPj__ZN8NArchive3N7z15CFolderInStream6AddRefEv__ZN8NArchive3N7z15CFolderInStream7ReleaseEv__ZN8NArchive3N7z15CFolderInStream9AddDigestEv__ZN8NArchive3N7z15CFolderInStreamC1Ev__ZN8NArchive3N7z15CFolderInStreamC2Ev__ZN8NArchive3N7z15CFolderInStreamD0Ev__ZN8NArchive3N7z15CFolderInStreamD1Ev__ZN8NArchive3N7z15CFolderInStreamD2Ev__ZN8NArchive3N7z16CFolderOutStream14FlushCorruptedEi__ZN8NArchive3N7z16CFolderOutStream14QueryInterfaceERK4GUIDPPv__ZN8NArchive3N7z16CFolderOutStream16GetSubStreamSizeEyPy__ZN8NArchive3N7z16CFolderOutStream17ProcessEmptyFilesEv__ZN8NArchive3N7z16CFolderOutStream21CloseFileAndSetResultEi__ZN8NArchive3N7z16CFolderOutStream21CloseFileAndSetResultEv__ZN8NArchive3N7z16CFolderOutStream4InitEPKNS0_5CDbExEjjPK13CRecordVectorIbEP23IArchiveExtractCallbackbb__ZN8NArchive3N7z16CFolderOutStream5WriteEPKvjPj__ZN8NArchive3N7z16CFolderOutStream6AddRefEv__ZN8NArchive3N7z16CFolderOutStream7ReleaseEv__ZN8NArchive3N7z16CFolderOutStream8OpenFileEv__ZN8NArchive3N7z16CFolderOutStreamC1Ev__ZN8NArchive3N7z16CFolderOutStreamC2Ev__ZN8NArchive3N7z16CFolderOutStreamD0Ev__ZN8NArchive3N7z16CFolderOutStreamD1Ev__ZN8NArchive3N7z16CUInt32DefVector11ReserveDownEv__ZN8NArchive3N7z16CUInt32DefVector15ClearAndSetSizeEj__ZN8NArchive3N7z16CUInt64DefVector11ReserveDownEv__ZN8NArchive3N7z16CUInt64DefVector7SetItemEjby__ZN8NArchive3N7z17CFolderOutStream214QueryInterfaceERK4GUIDPPv__ZN8NArchive3N7z17CFolderOutStream216ReleaseOutStreamEv__ZN8NArchive3N7z17CFolderOutStream217ProcessEmptyFilesEv__ZN8NArchive3N7z17CFolderOutStream221CloseFileAndSetResultEv__ZN8NArchive3N7z17CFolderOutStream24InitEPKNS0_5CDbExEjPK13CRecordVectorIbEP20ISequentialOutStream__ZN8NArchive3N7z17CFolderOutStream25WriteEPKvjPj__ZN8NArchive3N7z17CFolderOutStream26AddRefEv__ZN8NArchive3N7z17CFolderOutStream27ReleaseEv__ZN8NArchive3N7z17CFolderOutStream28OpenFileEv__ZN8NArchive3N7z17CFolderOutStream29CloseFileEv__ZN8NArchive3N7z17CFolderOutStream2C2Ev__ZN8NArchive3N7z17CFolderOutStream2D0Ev__ZN8NArchive3N7z17CFolderOutStream2D1Ev__ZN8NArchive3N7z19CArchiveDatabaseOut11ReserveDownEv__ZN8NArchive3N7z19CArchiveDatabaseOut12SetItem_AntiEjb__ZN8NArchive3N7z19CArchiveDatabaseOut7AddFileERKNS0_9CFileItemERKNS0_10CFileItem2ERK7UString__ZN8NArchive3N7z19CArchiveDatabaseOutD2Ev__ZN8NArchive3N7z22CCompressionMethodModeC2ERKS1___ZN8NArchive3N7z22CCryptoGetTextPassword14QueryInterfaceERK4GUIDPPv__ZN8NArchive3N7z22CCryptoGetTextPassword21CryptoGetTextPasswordEPPw__ZN8NArchive3N7z22CCryptoGetTextPassword6AddRefEv__ZN8NArchive3N7z22CCryptoGetTextPassword7ReleaseEv__ZN8NArchive3N7z22CCryptoGetTextPasswordD0Ev__ZN8NArchive3N7z22CCryptoGetTextPasswordD1Ev__ZN8NArchive3N7z5CDbEx5ClearEv__ZN8NArchive3N7z5CDbEx9FillLinksEv__ZN8NArchive3N7z6UpdateEP9IInStreamPKNS0_5CDbExERK13CObjectVectorINS0_11CUpdateItemEERNS0_11COutArchiveERNS0_19CArchiveDatabaseOutEP20ISequentialOutStreamP22IArchiveUpdateCallbackRKNS0_14CUpdateOptionsEP22ICryptoGetTextPassword__ZN8NArchive3N7z8CDecoder6DecodeEP9IInStreamyRKNS0_8CFoldersEiP20ISequentialOutStreamP21ICompressProgressInfoP22ICryptoGetTextPasswordRbSD_bj__ZN8NArchive3N7z8CDecoderC1Eb__ZN8NArchive3N7z8CDecoderC2Eb__ZN8NArchive3N7z8CDecoderD2Ev__ZN8NArchive3N7z8CEncoder13EncoderConstrEv__ZN8NArchive3N7z8CEncoder16CreateMixerCoderEPKy__ZN8NArchive3N7z8CEncoder6EncodeEP19ISequentialInStreamPKyS5_RNS0_7CFolderER13CRecordVectorIyERyP20ISequentialOutStreamSA_P21ICompressProgressInfo__ZN8NArchive3N7z8CEncoderC1ERKNS0_22CCompressionMethodModeE__ZN8NArchive3N7z8CEncoderC2ERKNS0_22CCompressionMethodModeE__ZN8NArchive3N7z8CEncoderD1Ev__ZN8NArchive3N7z8CEncoderD2Ev__ZN8NArchive3N7z8CFolders5ClearEv__ZN8NArchive3N7z8CFoldersD2Ev__ZN8NArchive3N7z8CHandler10FillPopIDsEv__ZN8NArchive3N7z8CHandler10GetRawPropEjjPPKvPjS5___ZN8NArchive3N7z8CHandler11GetPropertyEjjP14tagPROPVARIANT__ZN8NArchive3N7z8CHandler11UpdateItemsEP20ISequentialOutStreamjP22IArchiveUpdateCallback__ZN8NArchive3N7z8CHandler13AddMethodNameER7AStringy__ZN8NArchive3N7z8CHandler13SetMainMethodERNS0_22CCompressionMethodModeER13CObjectVectorI14COneMethodInfoEj__ZN8NArchive3N7z8CHandler13SetPropertiesEPPKwPK14tagPROPVARIANTj__ZN8NArchive3N7z8CHandler14GetNumRawPropsEPj__ZN8NArchive3N7z8CHandler14GetRawPropInfoEjPPwPj__ZN8NArchive3N7z8CHandler14QueryInterfaceERK4GUIDPPv__ZN8NArchive3N7z8CHandler15GetFileTimeTypeEPj__ZN8NArchive3N7z8CHandler15GetPropertyInfoEjPPwPjPt__ZN8NArchive3N7z8CHandler15SetHeaderMethodERNS0_22CCompressionMethodModeE__ZN8NArchive3N7z8CHandler16AddDefaultMethodEv__ZN8NArchive3N7z8CHandler16GetNumberOfItemsEPj__ZN8NArchive3N7z8CHandler18GetArchivePropertyEjP14tagPROPVARIANT__ZN8NArchive3N7z8CHandler21GetNumberOfPropertiesEPj__ZN8NArchive3N7z8CHandler22GetArchivePropertyInfoEjPPwPjPt__ZN8NArchive3N7z8CHandler25PropsMethod_To_FullMethodERNS0_11CMethodFullERK14COneMethodInfo__ZN8NArchive3N7z8CHandler28GetNumberOfArchivePropertiesEPj__ZN8NArchive3N7z8CHandler4OpenEP9IInStreamPKyP20IArchiveOpenCallback__ZN8NArchive3N7z8CHandler5CloseEv__ZN8NArchive3N7z8CHandler6AddRefEv__ZN8NArchive3N7z8CHandler7ExtractEPKjjiP23IArchiveExtractCallback__ZN8NArchive3N7z8CHandler7ReleaseEv__ZN8NArchive3N7z8CHandler9GetParentEjPjS2___ZN8NArchive3N7z8CHandlerC1Ev__ZN8NArchive3N7z8CHandlerC2Ev__ZN8NArchive3N7z8CHandlerD0Ev__ZN8NArchive3N7z8CHandlerD1Ev__ZN8NArchive3N7z8CHandlerD2Ev__ZN8NArchive3N7z8CInByte210ReadNumberEv__ZN8NArchive3N7z8CInByte210ReadUInt32Ev__ZN8NArchive3N7z8CInByte210ReadUInt64Ev__ZN8NArchive3N7z8CInByte211ParseFolderERNS0_7CFolderE__ZN8NArchive3N7z8CInByte27ReadNumEv__ZN8NArchive3N7z8CInByte28ReadByteEv__ZN8NArchive3N7z8CInByte28SkipDataEv__ZN8NArchive3N7z8CInByte28SkipDataEy__ZN8NArchive3N7z8CInByte29ReadBytesEPhm__ZN8NArchive3N7z8CRefItemC2EjRKNS0_11CUpdateItemEb__ZN8NArchive3N7z9CDatabaseD2Ev__ZN8NArchive3NGz24CCompressProgressInfoImp12SetRatioInfoEPKyS3___ZN8NArchive3NGz24CCompressProgressInfoImp14QueryInterfaceERK4GUIDPPv__ZN8NArchive3NGz24CCompressProgressInfoImp6AddRefEv__ZN8NArchive3NGz24CCompressProgressInfoImp7ReleaseEv__ZN8NArchive3NGz24CCompressProgressInfoImpD0Ev__ZN8NArchive3NGz24CCompressProgressInfoImpD1Ev__ZN8NArchive3NGz5CItem10ReadHeaderEPN9NCompress8NDeflate8NDecoder9CCOMCoderE__ZN8NArchive3NGz5CItem11ReadFooter1EPN9NCompress8NDeflate8NDecoder9CCOMCoderE__ZN8NArchive3NGz5CItem11ReadFooter2EP19ISequentialInStream__ZN8NArchive3NGz5CItem11WriteFooterEP20ISequentialOutStream__ZN8NArchive3NGz5CItem11WriteHeaderEP20ISequentialOutStream__ZN8NArchive3NGz8CHandler11GetPropertyEjjP14tagPROPVARIANT__ZN8NArchive3NGz8CHandler11UpdateItemsEP20ISequentialOutStreamjP22IArchiveUpdateCallback__ZN8NArchive3NGz8CHandler13SetPropertiesEPPKwPK14tagPROPVARIANTj__ZN8NArchive3NGz8CHandler14QueryInterfaceERK4GUIDPPv__ZN8NArchive3NGz8CHandler15GetFileTimeTypeEPj__ZN8NArchive3NGz8CHandler15GetPropertyInfoEjPPwPjPt__ZN8NArchive3NGz8CHandler16GetNumberOfItemsEPj__ZN8NArchive3NGz8CHandler18GetArchivePropertyEjP14tagPROPVARIANT__ZN8NArchive3NGz8CHandler21GetNumberOfPropertiesEPj__ZN8NArchive3NGz8CHandler22GetArchivePropertyInfoEjPPwPjPt__ZN8NArchive3NGz8CHandler28GetNumberOfArchivePropertiesEPj__ZN8NArchive3NGz8CHandler4OpenEP9IInStreamPKyP20IArchiveOpenCallback__ZN8NArchive3NGz8CHandler5CloseEv__ZN8NArchive3NGz8CHandler6AddRefEv__ZN8NArchive3NGz8CHandler7ExtractEPKjjiP23IArchiveExtractCallback__ZN8NArchive3NGz8CHandler7OpenSeqEP19ISequentialInStream__ZN8NArchive3NGz8CHandler7ReleaseEv__ZN8NArchive3NGz8CHandlerC2Ev__ZN8NArchive3NGz8CHandlerD0Ev__ZN8NArchive3NGz8CHandlerD1Ev__ZN8NArchive3NGz8CHandlerD2Ev__ZN8NArchive3NXz12IDecodeState6DecodeEP19ISequentialInStreamP20ISequentialOutStream__ZN8NArchive3NXz16CSeekToSeqStream14QueryInterfaceERK4GUIDPPv__ZN8NArchive3NXz16CSeekToSeqStream4ReadEPvjPj__ZN8NArchive3NXz16CSeekToSeqStream4SeekExjPy__ZN8NArchive3NXz16CSeekToSeqStream6AddRefEv__ZN8NArchive3NXz16CSeekToSeqStream7ReleaseEv__ZN8NArchive3NXz16CSeekToSeqStreamD0Ev__ZN8NArchive3NXz16CSeekToSeqStreamD1Ev__ZN8NArchive3NXz16g_Crc64TableInitE__ZN8NArchive3NXz17COpenCallbackWrapC1EP20IArchiveOpenCallback__ZN8NArchive3NXz17COpenCallbackWrapC2EP20IArchiveOpenCallback__ZN8NArchive3NXz29CVirtProgress_To_OpenProgress8ProgressEv__ZN8NArchive3NXz30CVirtProgress_To_LocalProgress8ProgressEv__ZN8NArchive3NXz8CHandler11GetPropertyEjjP14tagPROPVARIANT__ZN8NArchive3NXz8CHandler11UpdateItemsEP20ISequentialOutStreamjP22IArchiveUpdateCallback__ZN8NArchive3NXz8CHandler13SetPropertiesEPPKwPK14tagPROPVARIANTj__ZN8NArchive3NXz8CHandler14QueryInterfaceERK4GUIDPPv__ZN8NArchive3NXz8CHandler15GetFileTimeTypeEPj__ZN8NArchive3NXz8CHandler15GetPropertyInfoEjPPwPjPt__ZN8NArchive3NXz8CHandler16GetNumberOfItemsEPj__ZN8NArchive3NXz8CHandler18GetArchivePropertyEjP14tagPROPVARIANT__ZN8NArchive3NXz8CHandler21GetNumberOfPropertiesEPj__ZN8NArchive3NXz8CHandler22GetArchivePropertyInfoEjPPwPjPt__ZN8NArchive3NXz8CHandler28GetNumberOfArchivePropertiesEPj__ZN8NArchive3NXz8CHandler4OpenEP9IInStreamPKyP20IArchiveOpenCallback__ZN8NArchive3NXz8CHandler5CloseEv__ZN8NArchive3NXz8CHandler5Open2EP9IInStreamP20IArchiveOpenCallback__ZN8NArchive3NXz8CHandler6AddRefEv__ZN8NArchive3NXz8CHandler7ExtractEPKjjiP23IArchiveExtractCallback__ZN8NArchive3NXz8CHandler7OpenSeqEP19ISequentialInStream__ZN8NArchive3NXz8CHandler7ReleaseEv__ZN8NArchive3NXz8CHandlerC1Ev__ZN8NArchive3NXz8CHandlerC2Ev__ZN8NArchive3NXz8CHandlerD0Ev__ZN8NArchive3NXz8CHandlerD1Ev__ZN8NArchive3NXz8CHandlerD2Ev__ZN8NArchive4NBz28CHandler11GetPropertyEjjP14tagPROPVARIANT__ZN8NArchive4NBz28CHandler11UpdateItemsEP20ISequentialOutStreamjP22IArchiveUpdateCallback__ZN8NArchive4NBz28CHandler13SetPropertiesEPPKwPK14tagPROPVARIANTj__ZN8NArchive4NBz28CHandler14QueryInterfaceERK4GUIDPPv__ZN8NArchive4NBz28CHandler15GetFileTimeTypeEPj__ZN8NArchive4NBz28CHandler15GetPropertyInfoEjPPwPjPt__ZN8NArchive4NBz28CHandler16GetNumberOfItemsEPj__ZN8NArchive4NBz28CHandler18GetArchivePropertyEjP14tagPROPVARIANT__ZN8NArchive4NBz28CHandler21GetNumberOfPropertiesEPj__ZN8NArchive4NBz28CHandler22GetArchivePropertyInfoEjPPwPjPt__ZN8NArchive4NBz28CHandler28GetNumberOfArchivePropertiesEPj__ZN8NArchive4NBz28CHandler4OpenEP9IInStreamPKyP20IArchiveOpenCallback__ZN8NArchive4NBz28CHandler5CloseEv__ZN8NArchive4NBz28CHandler6AddRefEv__ZN8NArchive4NBz28CHandler7ExtractEPKjjiP23IArchiveExtractCallback__ZN8NArchive4NBz28CHandler7OpenSeqEP19ISequentialInStream__ZN8NArchive4NBz28CHandler7ReleaseEv__ZN8NArchive4NBz28CHandlerC2Ev__ZN8NArchive4NBz28CHandlerD0Ev__ZN8NArchive4NBz28CHandlerD1Ev__ZN8NArchive4NBz28CHandlerD2Ev__ZN8NArchive4NCab10CInArcInfo5ParseEPKh__ZN8NArchive4NCab10CInArchive12ReadOtherArcERNS0_9COtherArcE__ZN8NArchive4NCab10CInArchive4OpenERNS0_11CDatabaseExEPKy__ZN8NArchive4NCab10CInArchive4ReadEPhj__ZN8NArchive4NCab10CInArchive4SkipEj__ZN8NArchive4NCab10CInArchive5Open2ERNS0_11CDatabaseExEPKy__ZN8NArchive4NCab10CInArchive8ReadNameER7AString__ZN8NArchive4NCab13CMvDatabaseEx13AreItemsEqualEjj__ZN8NArchive4NCab13CMvDatabaseEx17FillSortAndShrinkEv__ZN8NArchive4NCab13CMvDatabaseEx5CheckEv__ZN8NArchive4NCab16CFolderOutStream11UnsupportedEv__ZN8NArchive4NCab16CFolderOutStream14FlushCorruptedEv__ZN8NArchive4NCab16CFolderOutStream14QueryInterfaceERK4GUIDPPv__ZN8NArchive4NCab16CFolderOutStream15WriteEmptyFilesEv__ZN8NArchive4NCab16CFolderOutStream18CloseFileWithResOpEi__ZN8NArchive4NCab16CFolderOutStream4InitEPKNS0_13CMvDatabaseExEPK13CRecordVectorIbEjyP23IArchiveExtractCallbackb__ZN8NArchive4NCab16CFolderOutStream5WriteEPKvjPj__ZN8NArchive4NCab16CFolderOutStream6AddRefEv__ZN8NArchive4NCab16CFolderOutStream6Write2EPKvjPjb__ZN8NArchive4NCab16CFolderOutStream7ReleaseEv__ZN8NArchive4NCab16CFolderOutStream8OpenFileEv__ZN8NArchive4NCab16CFolderOutStream9CloseFileEv__ZN8NArchive4NCab16CFolderOutStreamD0Ev__ZN8NArchive4NCab16CFolderOutStreamD1Ev__ZN8NArchive4NCab16CFolderOutStreamD2Ev__ZN8NArchive4NCab16CSignatureFinder4FindEv__ZN8NArchive4NCab17CCabBlockInStream14QueryInterfaceERK4GUIDPPv__ZN8NArchive4NCab17CCabBlockInStream4ReadEPvjPj__ZN8NArchive4NCab17CCabBlockInStream6AddRefEv__ZN8NArchive4NCab17CCabBlockInStream6CreateEv__ZN8NArchive4NCab17CCabBlockInStream7PreReadEP19ISequentialInStreamRjS4___ZN8NArchive4NCab17CCabBlockInStream7ReleaseEv__ZN8NArchive4NCab17CCabBlockInStreamD0Ev__ZN8NArchive4NCab17CCabBlockInStreamD1Ev__ZN8NArchive4NCab17CCabBlockInStreamD2Ev__ZN8NArchive4NCab7NHeader7kMarkerE__ZN8NArchive4NCab8CHandler11GetPropertyEjjP14tagPROPVARIANT__ZN8NArchive4NCab8CHandler14QueryInterfaceERK4GUIDPPv__ZN8NArchive4NCab8CHandler15GetPropertyInfoEjPPwPjPt__ZN8NArchive4NCab8CHandler16GetNumberOfItemsEPj__ZN8NArchive4NCab8CHandler18GetArchivePropertyEjP14tagPROPVARIANT__ZN8NArchive4NCab8CHandler21GetNumberOfPropertiesEPj__ZN8NArchive4NCab8CHandler22GetArchivePropertyInfoEjPPwPjPt__ZN8NArchive4NCab8CHandler28GetNumberOfArchivePropertiesEPj__ZN8NArchive4NCab8CHandler4OpenEP9IInStreamPKyP20IArchiveOpenCallback__ZN8NArchive4NCab8CHandler5CloseEv__ZN8NArchive4NCab8CHandler6AddRefEv__ZN8NArchive4NCab8CHandler7ExtractEPKjjiP23IArchiveExtractCallback__ZN8NArchive4NCab8CHandler7ReleaseEv__ZN8NArchive4NCab8CHandlerD0Ev__ZN8NArchive4NCab8CHandlerD1Ev__ZN8NArchive4NCab9CArchInfoC2ERKS1___ZN8NArchive4NCab9CArchInfoC2Ev__ZN8NArchive4NCab9CDatabaseC2ERKS1___ZN8NArchive4NCab9CDatabaseD2Ev__ZN8NArchive4NTar11COutArchive10WriteBytesEPKvj__ZN8NArchive4NTar11COutArchive11WriteHeaderERKNS0_5CItemE__ZN8NArchive4NTar11COutArchive15WriteHeaderRealERKNS0_5CItemE__ZN8NArchive4NTar11COutArchive16FillDataResidualEy__ZN8NArchive4NTar11COutArchive17WriteFinishHeaderEv__ZN8NArchive4NTar11CUpdateItemC2ERKS1___ZN8NArchive4NTar11NFileHeader10kLongLink2E__ZN8NArchive4NTar11NFileHeader6NMagic9kUsTar_00E__ZN8NArchive4NTar11NFileHeader9kLongLinkE__ZN8NArchive4NTar13CSparseStream14QueryInterfaceERK4GUIDPPv__ZN8NArchive4NTar13CSparseStream4ReadEPvjPj__ZN8NArchive4NTar13CSparseStream4SeekExjPy__ZN8NArchive4NTar13CSparseStream6AddRefEv__ZN8NArchive4NTar13CSparseStream7ReleaseEv__ZN8NArchive4NTar13CSparseStreamD0Ev__ZN8NArchive4NTar13CSparseStreamD1Ev__ZN8NArchive4NTar13GetPropStringEP22IArchiveUpdateCallbackjjR7AStringjb__ZN8NArchive4NTar13UpdateArchiveEP9IInStreamP20ISequentialOutStreamRK13CObjectVectorINS0_7CItemExEERKS5_INS0_11CUpdateItemEEjP22IArchiveUpdateCallback__ZN8NArchive4NTar5CItemC2ERKS1___ZN8NArchive4NTar5CItemC2Ev__ZN8NArchive4NTar5CItemaSERKS1___ZN8NArchive4NTar8CHandler11GetPropertyEjjP14tagPROPVARIANT__ZN8NArchive4NTar8CHandler11UpdateItemsEP20ISequentialOutStreamjP22IArchiveUpdateCallback__ZN8NArchive4NTar8CHandler13SetPropertiesEPPKwPK14tagPROPVARIANTj__ZN8NArchive4NTar8CHandler14QueryInterfaceERK4GUIDPPv__ZN8NArchive4NTar8CHandler15GetFileTimeTypeEPj__ZN8NArchive4NTar8CHandler15GetPropertyInfoEjPPwPjPt__ZN8NArchive4NTar8CHandler16GetNumberOfItemsEPj__ZN8NArchive4NTar8CHandler18GetArchivePropertyEjP14tagPROPVARIANT__ZN8NArchive4NTar8CHandler21GetNumberOfPropertiesEPj__ZN8NArchive4NTar8CHandler22GetArchivePropertyInfoEjPPwPjPt__ZN8NArchive4NTar8CHandler28GetNumberOfArchivePropertiesEPj__ZN8NArchive4NTar8CHandler4InitEv__ZN8NArchive4NTar8CHandler4OpenEP9IInStreamPKyP20IArchiveOpenCallback__ZN8NArchive4NTar8CHandler5CloseEv__ZN8NArchive4NTar8CHandler5Open2EP9IInStreamP20IArchiveOpenCallback__ZN8NArchive4NTar8CHandler6AddRefEv__ZN8NArchive4NTar8CHandler6SkipToEj__ZN8NArchive4NTar8CHandler7ExtractEPKjjiP23IArchiveExtractCallback__ZN8NArchive4NTar8CHandler7OpenSeqEP19ISequentialInStream__ZN8NArchive4NTar8CHandler7ReleaseEv__ZN8NArchive4NTar8CHandler9GetStreamEjPP19ISequentialInStream__ZN8NArchive4NTar8CHandler9ReadItem2EP19ISequentialInStreamRbRNS0_7CItemExE__ZN8NArchive4NTar8CHandlerC1Ev__ZN8NArchive4NTar8CHandlerC2Ev__ZN8NArchive4NTar8CHandlerD0Ev__ZN8NArchive4NTar8CHandlerD1Ev__ZN8NArchive4NTar8CHandlerD2Ev__ZN8NArchive4NTar8ReadItemEP19ISequentialInStreamRbRNS0_7CItemExERNS0_10EErrorTypeE__ZN8NArchive4NZip10CAddCommon8CompressEP19ISequentialInStreamP10IOutStreamP21ICompressProgressInfoRNS0_18CCompressingResultE__ZN8NArchive4NZip10CAddCommonC1ERKNS0_22CCompressionMethodModeE__ZN8NArchive4NZip10CAddCommonC2ERKNS0_22CCompressionMethodModeE__ZN8NArchive4NZip10CAddCommonC2ERKS1___ZN8NArchive4NZip10CAddCommonD2Ev__ZN8NArchive4NZip10CInArchive10ReadBufferER7CBufferIhEj__ZN8NArchive4NZip10CInArchive10ReadCdItemERNS0_7CItemExE__ZN8NArchive4NZip10CInArchive10ReadLocalsER13CObjectVectorINS0_7CItemExEEPNS0_13CProgressVirtE__ZN8NArchive4NZip10CInArchive10ReadUInt16Ev__ZN8NArchive4NZip10CInArchive10ReadUInt32Ev__ZN8NArchive4NZip10CInArchive10ReadUInt64Ev__ZN8NArchive4NZip10CInArchive11ReadHeadersER13CObjectVectorINS0_7CItemExEEPNS0_13CProgressVirtE__ZN8NArchive4NZip10CInArchive12ReadFileNameEjR7AString__ZN8NArchive4NZip10CInArchive12ReadHeaders2ER13CObjectVectorINS0_7CItemExEEPNS0_13CProgressVirtE__ZN8NArchive4NZip10CInArchive13ReadLocalItemERNS0_7CItemExE__ZN8NArchive4NZip10CInArchive13SafeReadBytesEPvj__ZN8NArchive4NZip10CInArchive17FindAndReadMarkerEP9IInStreamPKy__ZN8NArchive4NZip10CInArchive19CreateLimitedStreamEyy__ZN8NArchive4NZip10CInArchive20IncreaseRealPositionEy__ZN8NArchive4NZip10CInArchive23ReadLocalItemDescriptorERNS0_7CItemExE__ZN8NArchive4NZip10CInArchive24ReadLocalItemAfterCdItemERNS0_7CItemExE__ZN8NArchive4NZip10CInArchive28ReadLocalItemAfterCdItemFullERNS0_7CItemExE__ZN8NArchive4NZip10CInArchive4OpenEP9IInStreamPKy__ZN8NArchive4NZip10CInArchive4SeekEy__ZN8NArchive4NZip10CInArchive4SkipEj__ZN8NArchive4NZip10CInArchive5CloseEv__ZN8NArchive4NZip10CInArchive6FindCdERNS0_7CCdInfoE__ZN8NArchive4NZip10CInArchive6ReadCdER13CObjectVectorINS0_7CItemExEERyS6_PNS0_13CProgressVirtE__ZN8NArchive4NZip10CInArchive6Skip64Ey__ZN8NArchive4NZip10CInArchive8ReadByteEv__ZN8NArchive4NZip10CInArchive8TryEcd64EyRNS0_7CCdInfoE__ZN8NArchive4NZip10CInArchive9ReadBytesEPvjPj__ZN8NArchive4NZip10CInArchive9ReadExtraEjRNS0_11CExtraBlockERyS4_S4_Rj__ZN8NArchive4NZip10CInArchive9TryReadCdER13CObjectVectorINS0_7CItemExEEyyPNS0_13CProgressVirtE__ZN8NArchive4NZip11CExtraBlock22RemoveUnknownSubBlocksEv__ZN8NArchive4NZip11COutArchive10MoveCurPosEy__ZN8NArchive4NZip11COutArchive10WriteBytesEPKvj__ZN8NArchive4NZip11COutArchive10WriteExtraERKNS0_11CExtraBlockE__ZN8NArchive4NZip11COutArchive12SeekToCurPosEv__ZN8NArchive4NZip11COutArchive14SeekToRelatPosEy__ZN8NArchive4NZip11COutArchive15WriteCentralDirERK13CObjectVectorINS0_8CItemOutEEPK7CBufferIhE__ZN8NArchive4NZip11COutArchive16WriteLocalHeaderERKNS0_10CLocalItemE__ZN8NArchive4NZip11COutArchive18WriteCentralHeaderERKNS0_8CItemOutE__ZN8NArchive4NZip11COutArchive19WriteCommonItemInfoERKNS0_10CLocalItemEb__ZN8NArchive4NZip11COutArchive22CreateStreamForCopyingEPP20ISequentialOutStream__ZN8NArchive4NZip11COutArchive26CreateStreamForCompressingEPP10IOutStream__ZN8NArchive4NZip11COutArchive26PrepareWriteCompressedDataEjyb__ZN8NArchive4NZip11COutArchive27PrepareWriteCompressedData2Ejyyb__ZN8NArchive4NZip11COutArchive31PrepareWriteCompressedDataZip64Ejbb__ZN8NArchive4NZip11COutArchive6CreateEP10IOutStream__ZN8NArchive4NZip11COutArchive6Write8Eh__ZN8NArchive4NZip11COutArchive7Write16Et__ZN8NArchive4NZip11COutArchive7Write32Ej__ZN8NArchive4NZip11COutArchive7Write64Ey__ZN8NArchive4NZip11CThreadInfo11WaitAndCodeEv__ZN8NArchive4NZip11CThreadInfo13StopWaitCloseEv__ZN8NArchive4NZip11CThreadInfoC2ERKNS0_22CCompressionMethodModeE__ZN8NArchive4NZip11CThreadInfoC2ERKS1___ZN8NArchive4NZip11CThreadInfoD2Ev__ZN8NArchive4NZip11CZipDecoder6DecodeERNS0_10CInArchiveERKNS0_7CItemExEP20ISequentialOutStreamP23IArchiveExtractCallbackP21ICompressProgressInfojRi__ZN8NArchive4NZip11CZipDecoderD2Ev__ZN8NArchive4NZip12CLzmaDecoder14QueryInterfaceERK4GUIDPPv__ZN8NArchive4NZip12CLzmaDecoder4CodeEP19ISequentialInStreamP20ISequentialOutStreamPKyS7_P21ICompressProgressInfo__ZN8NArchive4NZip12CLzmaDecoder6AddRefEv__ZN8NArchive4NZip12CLzmaDecoder7ReleaseEv__ZN8NArchive4NZip12CLzmaDecoderC1Ev__ZN8NArchive4NZip12CLzmaDecoderC2Ev__ZN8NArchive4NZip12CLzmaDecoderD0Ev__ZN8NArchive4NZip12CLzmaDecoderD1Ev__ZN8NArchive4NZip12CLzmaEncoder14QueryInterfaceERK4GUIDPPv__ZN8NArchive4NZip12CLzmaEncoder18SetCoderPropertiesEPKjPK14tagPROPVARIANTj__ZN8NArchive4NZip12CLzmaEncoder4CodeEP19ISequentialInStreamP20ISequentialOutStreamPKyS7_P21ICompressProgressInfo__ZN8NArchive4NZip12CLzmaEncoder6AddRefEv__ZN8NArchive4NZip12CLzmaEncoder7ReleaseEv__ZN8NArchive4NZip12CLzmaEncoderD0Ev__ZN8NArchive4NZip12CLzmaEncoderD1Ev__ZN8NArchive4NZip12CProgressImp10SetTotalCDEy__ZN8NArchive4NZip12CProgressImp14SetCompletedCDEy__ZN8NArchive4NZip12CProgressImp17SetCompletedLocalEyy__ZN8NArchive4NZip13FindNameForIdEPKNS0_13CIdToNamePairEjj__ZN8NArchive4NZip13IsStrangeItemERKNS0_5CItemE__ZN8NArchive4NZip15CCacheOutStream10FlushCacheEv__ZN8NArchive4NZip15CCacheOutStream14QueryInterfaceERK4GUIDPPv__ZN8NArchive4NZip15CCacheOutStream4InitEP10IOutStream__ZN8NArchive4NZip15CCacheOutStream4SeekExjPy__ZN8NArchive4NZip15CCacheOutStream5WriteEPKvjPj__ZN8NArchive4NZip15CCacheOutStream6AddRefEv__ZN8NArchive4NZip15CCacheOutStream7MyWriteEm__ZN8NArchive4NZip15CCacheOutStream7ReleaseEv__ZN8NArchive4NZip15CCacheOutStream7SetSizeEy__ZN8NArchive4NZip15CCacheOutStream8AllocateEv__ZN8NArchive4NZip15CCacheOutStreamD0Ev__ZN8NArchive4NZip15CCacheOutStreamD1Ev__ZN8NArchive4NZip15CCacheOutStreamD2Ev__ZN8NArchive4NZip16CMtProgressMixer12SetRatioInfoEPKyS3___ZN8NArchive4NZip16CMtProgressMixer14QueryInterfaceERK4GUIDPPv__ZN8NArchive4NZip16CMtProgressMixer6AddRefEv__ZN8NArchive4NZip16CMtProgressMixer6CreateEP9IProgressb__ZN8NArchive4NZip16CMtProgressMixer7ReleaseEv__ZN8NArchive4NZip16CMtProgressMixerD0Ev__ZN8NArchive4NZip16CMtProgressMixerD1Ev__ZN8NArchive4NZip17CMtProgressMixer212SetRatioInfoEPKyS3___ZN8NArchive4NZip17CMtProgressMixer212SetRatioInfoEiPKyS3___ZN8NArchive4NZip17CMtProgressMixer214QueryInterfaceERK4GUIDPPv__ZN8NArchive4NZip17CMtProgressMixer217SetProgressOffsetEy__ZN8NArchive4NZip17CMtProgressMixer26AddRefEv__ZN8NArchive4NZip17CMtProgressMixer26CreateEP9IProgressb__ZN8NArchive4NZip17CMtProgressMixer27ReleaseEv__ZN8NArchive4NZip17CMtProgressMixer2D0Ev__ZN8NArchive4NZip17CMtProgressMixer2D1Ev__ZN8NArchive4NZip17CMtProgressMixer2D2Ev__ZN8NArchive4NZip22CCompressionMethodModeC2ERKS1___ZN8NArchive4NZip22CCompressionMethodModeC2Ev__ZN8NArchive4NZip22CCompressionMethodModeaSERKS1___ZN8NArchive4NZip4CEcd5ParseEPKh__ZN8NArchive4NZip5CItemC2ERKS1___ZN8NArchive4NZip5CItemD2Ev__ZN8NArchive4NZip5CItemaSERKS1___ZN8NArchive4NZip6CEcd645ParseEPKh__ZN8NArchive4NZip6UpdateERK13CObjectVectorINS0_7CItemExEERKS1_INS0_11CUpdateItemEEP20ISequentialOutStreamPNS0_10CInArchiveEbPNS0_22CCompressionMethodModeEP22IArchiveUpdateCallback__ZN8NArchive4NZip7CCdInfo10ParseEcd64EPKh__ZN8NArchive4NZip7CCdInfo8ParseEcdEPKh__ZN8NArchive4NZip8CHandler11GetPropertyEjjP14tagPROPVARIANT__ZN8NArchive4NZip8CHandler11UpdateItemsEP20ISequentialOutStreamjP22IArchiveUpdateCallback__ZN8NArchive4NZip8CHandler13SetPropertiesEPPKwPK14tagPROPVARIANTj__ZN8NArchive4NZip8CHandler14QueryInterfaceERK4GUIDPPv__ZN8NArchive4NZip8CHandler15GetFileTimeTypeEPj__ZN8NArchive4NZip8CHandler15GetPropertyInfoEjPPwPjPt__ZN8NArchive4NZip8CHandler16GetNumberOfItemsEPj__ZN8NArchive4NZip8CHandler18GetArchivePropertyEjP14tagPROPVARIANT__ZN8NArchive4NZip8CHandler21GetNumberOfPropertiesEPj__ZN8NArchive4NZip8CHandler22GetArchivePropertyInfoEjPPwPjPt__ZN8NArchive4NZip8CHandler28GetNumberOfArchivePropertiesEPj__ZN8NArchive4NZip8CHandler4OpenEP9IInStreamPKyP20IArchiveOpenCallback__ZN8NArchive4NZip8CHandler5CloseEv__ZN8NArchive4NZip8CHandler6AddRefEv__ZN8NArchive4NZip8CHandler7ExtractEPKjjiP23IArchiveExtractCallback__ZN8NArchive4NZip8CHandler7ReleaseEv__ZN8NArchive4NZip8CHandlerC1Ev__ZN8NArchive4NZip8CHandlerC2Ev__ZN8NArchive4NZip8CHandlerD0Ev__ZN8NArchive4NZip8CHandlerD1Ev__ZN8NArchive4NZip8CHandlerD2Ev__ZN8NArchive4NZip8CMemRefsD2Ev__ZN8NArchive5NLzma24CCompressProgressInfoImp12SetRatioInfoEPKyS3___ZN8NArchive5NLzma24CCompressProgressInfoImp14QueryInterfaceERK4GUIDPPv__ZN8NArchive5NLzma24CCompressProgressInfoImp6AddRefEv__ZN8NArchive5NLzma24CCompressProgressInfoImp7ReleaseEv__ZN8NArchive5NLzma24CCompressProgressInfoImpD0Ev__ZN8NArchive5NLzma24CCompressProgressInfoImpD1Ev__ZN8NArchive5NLzma7CHeader5ParseEPKhb__ZN8NArchive5NLzma8CDecoder4CodeERKNS0_7CHeaderEP20ISequentialOutStreamP21ICompressProgressInfo__ZN8NArchive5NLzma8CDecoder6CreateEbP19ISequentialInStream__ZN8NArchive5NLzma8CDecoderD1Ev__ZN8NArchive5NLzma8CDecoderD2Ev__ZN8NArchive5NLzma8CHandler11GetPropertyEjjP14tagPROPVARIANT__ZN8NArchive5NLzma8CHandler14QueryInterfaceERK4GUIDPPv__ZN8NArchive5NLzma8CHandler15GetPropertyInfoEjPPwPjPt__ZN8NArchive5NLzma8CHandler16GetNumberOfItemsEPj__ZN8NArchive5NLzma8CHandler18GetArchivePropertyEjP14tagPROPVARIANT__ZN8NArchive5NLzma8CHandler21GetNumberOfPropertiesEPj__ZN8NArchive5NLzma8CHandler22GetArchivePropertyInfoEjPPwPjPt__ZN8NArchive5NLzma8CHandler28GetNumberOfArchivePropertiesEPj__ZN8NArchive5NLzma8CHandler4OpenEP9IInStreamPKyP20IArchiveOpenCallback__ZN8NArchive5NLzma8CHandler5CloseEv__ZN8NArchive5NLzma8CHandler6AddRefEv__ZN8NArchive5NLzma8CHandler7ExtractEPKjjiP23IArchiveExtractCallback__ZN8NArchive5NLzma8CHandler7OpenSeqEP19ISequentialInStream__ZN8NArchive5NLzma8CHandler7ReleaseEv__ZN8NArchive5NLzma8CHandlerD0Ev__ZN8NArchive5NLzma8CHandlerD1Ev__ZN8NArchive5NPpmd13CRangeDecoder4InitEv__ZN8NArchive5NPpmd13CRangeDecoderC1Ev__ZN8NArchive5NPpmd13CRangeDecoderC2Ev__ZN8NArchive5NPpmd5CItem10ReadHeaderEP19ISequentialInStreamRj__ZN8NArchive5NPpmd8CHandler11GetPropertyEjjP14tagPROPVARIANT__ZN8NArchive5NPpmd8CHandler14QueryInterfaceERK4GUIDPPv__ZN8NArchive5NPpmd8CHandler15GetPropertyInfoEjPPwPjPt__ZN8NArchive5NPpmd8CHandler16GetNumberOfItemsEPj__ZN8NArchive5NPpmd8CHandler18GetArchivePropertyEjP14tagPROPVARIANT__ZN8NArchive5NPpmd8CHandler21GetNumberOfPropertiesEPj__ZN8NArchive5NPpmd8CHandler22GetArchivePropertyInfoEjPPwPjPt__ZN8NArchive5NPpmd8CHandler28GetNumberOfArchivePropertiesEPj__ZN8NArchive5NPpmd8CHandler4OpenEP9IInStreamPKyP20IArchiveOpenCallback__ZN8NArchive5NPpmd8CHandler5CloseEv__ZN8NArchive5NPpmd8CHandler6AddRefEv__ZN8NArchive5NPpmd8CHandler7ExtractEPKjjiP23IArchiveExtractCallback__ZN8NArchive5NPpmd8CHandler7OpenSeqEP19ISequentialInStream__ZN8NArchive5NPpmd8CHandler7ReleaseEv__ZN8NArchive5NPpmd8CHandlerD0Ev__ZN8NArchive5NPpmd8CHandlerD1Ev__ZN8NArchive6NSplit8CHandler11GetPropertyEjjP14tagPROPVARIANT__ZN8NArchive6NSplit8CHandler14QueryInterfaceERK4GUIDPPv__ZN8NArchive6NSplit8CHandler15GetPropertyInfoEjPPwPjPt__ZN8NArchive6NSplit8CHandler16GetNumberOfItemsEPj__ZN8NArchive6NSplit8CHandler18GetArchivePropertyEjP14tagPROPVARIANT__ZN8NArchive6NSplit8CHandler21GetNumberOfPropertiesEPj__ZN8NArchive6NSplit8CHandler22GetArchivePropertyInfoEjPPwPjPt__ZN8NArchive6NSplit8CHandler28GetNumberOfArchivePropertiesEPj__ZN8NArchive6NSplit8CHandler4OpenEP9IInStreamPKyP20IArchiveOpenCallback__ZN8NArchive6NSplit8CHandler5CloseEv__ZN8NArchive6NSplit8CHandler5Open2EP9IInStreamP20IArchiveOpenCallback__ZN8NArchive6NSplit8CHandler6AddRefEv__ZN8NArchive6NSplit8CHandler7ExtractEPKjjiP23IArchiveExtractCallback__ZN8NArchive6NSplit8CHandler7ReleaseEv__ZN8NArchive6NSplit8CHandler9GetStreamEjPP19ISequentialInStream__ZN8NArchive6NSplit8CHandlerD0Ev__ZN8NArchive6NSplit8CHandlerD1Ev__ZN8NArchive6NSplit8CSeqName11GetNextNameEv__ZN8NArchive7NParser10CParseItemC2ERKS1___ZN8NArchive7NParser10CParseItemC2Ev__ZN8NArchive7NParser8CHandler11GetPropertyEjjP14tagPROPVARIANT__ZN8NArchive7NParser8CHandler13FindInsertPosERKNS0_10CParseItemE__ZN8NArchive7NParser8CHandler14AddUnknownItemEy__ZN8NArchive7NParser8CHandler14QueryInterfaceERK4GUIDPPv__ZN8NArchive7NParser8CHandler15GetPropertyInfoEjPPwPjPt__ZN8NArchive7NParser8CHandler16GetNumberOfItemsEPj__ZN8NArchive7NParser8CHandler18GetArchivePropertyEjP14tagPROPVARIANT__ZN8NArchive7NParser8CHandler21GetNumberOfPropertiesEPj__ZN8NArchive7NParser8CHandler22GetArchivePropertyInfoEjPPwPjPt__ZN8NArchive7NParser8CHandler28GetNumberOfArchivePropertiesEPj__ZN8NArchive7NParser8CHandler4OpenEP9IInStreamPKyP20IArchiveOpenCallback__ZN8NArchive7NParser8CHandler5CloseEv__ZN8NArchive7NParser8CHandler6AddRefEv__ZN8NArchive7NParser8CHandler7AddItemERKNS0_10CParseItemE__ZN8NArchive7NParser8CHandler7ExtractEPKjjiP23IArchiveExtractCallback__ZN8NArchive7NParser8CHandler7ReleaseEv__ZN8NArchive7NParser8CHandler9GetStreamEjPP19ISequentialInStream__ZN8NArchive7NParser8CHandlerD0Ev__ZN8NArchive7NParser8CHandlerD1Ev__ZN8NArchive9NItemName10GetOSName2ERK7UString__ZN8NArchive9NItemName12HasTailSlashERK7AStringj__ZN8NArchive9NItemName13MakeLegalNameERK7UString__ZN8NArchive9NItemName15WinNameToOSNameERK7UString__ZN8NArchive9NItemName16ConvertToOSName2ER7UString__ZN8NArchive9NItemName24ReplaceToOsPathSeparatorEPw__ZN8NArchive9NItemName9GetOSNameERK7UString__ZN8NWindows16NSynchronization14CBaseEventWFMO19IsSignaledAndUpdateEv__ZN8NWindows16NSynchronization14CSemaphoreWFMO19IsSignaledAndUpdateEv__ZN8NWindows16NSynchronization16CCriticalSectionD1Ev__ZN8NWindows4NCOM12CPropVariant12InternalCopyEPK14tagPROPVARIANT__ZN8NWindows4NCOM12CPropVariant13InternalClearEv__ZN8NWindows4NCOM12CPropVariant4CopyEPK14tagPROPVARIANT__ZN8NWindows4NCOM12CPropVariant5ClearEv__ZN8NWindows4NCOM12CPropVariant6AttachEP14tagPROPVARIANT__ZN8NWindows4NCOM12CPropVariant6DetachEP14tagPROPVARIANT__ZN8NWindows4NCOM12CPropVariant7CompareERKS1___ZN8NWindows4NCOM12CPropVariant9AllocBstrEj__ZN8NWindows4NCOM12CPropVariantC1EPKw__ZN8NWindows4NCOM12CPropVariantC1EPw__ZN8NWindows4NCOM12CPropVariantC1ERK14tagPROPVARIANT__ZN8NWindows4NCOM12CPropVariantC1ERKS1___ZN8NWindows4NCOM12CPropVariantC2EPKw__ZN8NWindows4NCOM12CPropVariantC2EPw__ZN8NWindows4NCOM12CPropVariantC2ERK14tagPROPVARIANT__ZN8NWindows4NCOM12CPropVariantC2ERKS1___ZN8NWindows4NCOM12CPropVariantaSEPKc__ZN8NWindows4NCOM12CPropVariantaSEPKw__ZN8NWindows4NCOM12CPropVariantaSEPw__ZN8NWindows4NCOM12CPropVariantaSERK14tagPROPVARIANT__ZN8NWindows4NCOM12CPropVariantaSERK9_FILETIME__ZN8NWindows4NCOM12CPropVariantaSERKS1___ZN8NWindows4NCOM12CPropVariantaSEb__ZN8NWindows4NCOM12CPropVariantaSEh__ZN8NWindows4NCOM12CPropVariantaSEi__ZN8NWindows4NCOM12CPropVariantaSEj__ZN8NWindows4NCOM12CPropVariantaSEx__ZN8NWindows4NCOM12CPropVariantaSEy__ZN8NWindows4NCOM17PropVarEm_Set_StrEP14tagPROPVARIANTPKc__ZN8NWindows4NCOM17PropVariant_ClearEP14tagPROPVARIANT__ZN8NWindows4NCOM20PropVarEm_Alloc_BstrEP14tagPROPVARIANTj__ZN8NWindows5NFile3NIO7CInFile4OpenEPKwb__ZN8NWindows5NFile3NIO7CInFile4OpenEPKwjjj__ZN8NWindows5NFile3NIO7CInFile4ReadEPvjRj__ZN8NWindows5NFile3NIO7CInFile8ReadPartEPvjRj__ZN8NWindows5NFile3NIO7CInFileD0Ev__ZN8NWindows5NFile3NIO7CInFileD1Ev__ZN8NWindows5NFile3NIO8COutFile12CreateAlwaysEPKwj__ZN8NWindows5NFile3NIO8COutFile12SetEndOfFileEv__ZN8NWindows5NFile3NIO8COutFile4OpenEPKwj__ZN8NWindows5NFile3NIO8COutFile4OpenEPKwjjj__ZN8NWindows5NFile3NIO8COutFile5WriteEPKvjRj__ZN8NWindows5NFile3NIO8COutFile6CreateEPKwb__ZN8NWindows5NFile3NIO8COutFile7SetTimeEPK9_FILETIMES5_S5___ZN8NWindows5NFile3NIO8COutFile8SetMTimeEPK9_FILETIME__ZN8NWindows5NFile3NIO8COutFile9SetLengthEy__ZN8NWindows5NFile3NIO8COutFile9WritePartEPKvjRj__ZN8NWindows5NFile3NIO8COutFileD0Ev__ZN8NWindows5NFile3NIO8COutFileD1Ev__ZN8NWindows5NFile3NIO9CFileBase4SeekExjRy__ZN8NWindows5NFile3NIO9CFileBase4SeekEyRy__ZN8NWindows5NFile3NIO9CFileBase5CloseEv__ZN8NWindows5NFile3NIO9CFileBase6CreateEPKcjjjjb__ZN8NWindows5NFile3NIO9CFileBase6CreateEPKwjjjjb__ZN8NWindows5NFile3NIO9CFileBaseD0Ev__ZN8NWindows5NFile3NIO9CFileBaseD1Ev__ZN8NWindows5NFile3NIO9CFileBaseD2Ev__ZN8NWindows5NFile4NDir10MyMoveFileEPKwS3___ZN8NWindows5NFile4NDir10SetDirTimeEPKwPK9_FILETIMES6_S6___ZN8NWindows5NFile4NDir13GetCurrentDirER7UString__ZN8NWindows5NFile4NDir13MyGetTempPathER7UString__ZN8NWindows5NFile4NDir13SetCurrentDirEPKw__ZN8NWindows5NFile4NDir13SetFileAttribEPKwj__ZN8NWindows5NFile4NDir16CreateComplexDirEPKw__ZN8NWindows5NFile4NDir16DeleteFileAlwaysEPKw__ZN8NWindows5NFile4NDir16GetOnlyDirPrefixEPKwR7UString__ZN8NWindows5NFile4NDir17MyGetFullPathNameEPKwR7UString__ZN8NWindows5NFile4NDir19GetFullPathAndSplitEPKwR7UStringS5___ZN8NWindows5NFile4NDir21RemoveDirWithSubItemsERK7UString__ZN8NWindows5NFile4NDir27RemoveDirectoryWithSubItemsERK7UString__ZN8NWindows5NFile4NDir8CTempDir6CreateEPKw__ZN8NWindows5NFile4NDir8CTempDir6RemoveEv__ZN8NWindows5NFile4NDir9CTempFile24CreateRandomInTempFolderEPKwPNS0_3NIO8COutFileE__ZN8NWindows5NFile4NDir9CTempFile6CreateEPKwPNS0_3NIO8COutFileE__ZN8NWindows5NFile4NDir9CTempFile6MoveToEPKwb__ZN8NWindows5NFile4NDir9CTempFile6RemoveEv__ZN8NWindows5NFile4NDir9CreateDirEPKw__ZN8NWindows5NFile4NDir9RemoveDirEPKw__ZN8NWindows5NFile5NFind11CEnumerator4NextERNS1_9CFileInfoE__ZN8NWindows5NFile5NFind11CEnumerator4NextERNS1_9CFileInfoERb__ZN8NWindows5NFile5NFind11CEnumerator7NextAnyERNS1_9CFileInfoE__ZN8NWindows5NFile5NFind11CEnumeratorC2ERK7UString__ZN8NWindows5NFile5NFind12DoesDirExistEPKw__ZN8NWindows5NFile5NFind13CFileInfoBase5ClearEv__ZN8NWindows5NFile5NFind13DoesFileExistEPKw__ZN8NWindows5NFile5NFind18DoesFileOrDirExistEPKw__ZN8NWindows5NFile5NFind9CFileInfo4FindEPKwb__ZN8NWindows5NFile5NFind9CFindFile5CloseEv__ZN8NWindows5NFile5NFind9CFindFile8FindNextERNS1_9CFileInfoE__ZN8NWindows5NFile5NFind9CFindFile9FindFirstEPKwRNS1_9CFileInfoEb__ZN8NWindows5NFile5NFind9CFindFileD2Ev__ZN8NWindows5NFile5NName11GetFullPathEPKwS3_R7UString__ZN8NWindows5NFile5NName14IsAbsolutePathEPKw__ZN8NWindows5NFile5NName22NormalizeDirPathPrefixER7UString__ZN8NWindows5NTime17DosTimeToFileTimeEjR9_FILETIME__ZN8NWindows5NTime17FileTimeToDosTimeERK9_FILETIMERj__ZN8NWindows5NTime17GetCurUtcFileTimeER9_FILETIME__ZN8NWindows5NTime18FileTimeToUnixTimeERK9_FILETIMERj__ZN8NWindows5NTime18UnixTimeToFileTimeEjR9_FILETIME__ZN8NWindows5NTime19GetSecondsSince1601EjjjjjjRy__ZN8NWindows5NTime20FileTimeToUnixTime64ERK9_FILETIME__ZN8NWindows5NTime20UnixTime64ToFileTimeExR9_FILETIME__ZN8NWindows6NError15MyFormatMessageEj__ZN8NWindows7NSystem10GetRamSizeEv__ZN8NWindows7NSystem21GetNumberOfProcessorsEv__ZN9CBZip2Crc5TableE__ZN9CBZip2Crc9InitTableEv__ZN9CDirItems11ReserveDownEv__ZN9CDirItems12EnumerateDirEiiRK7UString__ZN9CDirItems15EnumerateItems2ERK7UStringS2_RK13CObjectVectorIS0_EPS4___ZN9CDirItems16DeleteLastPrefixEv__ZN9CDirItems8AddErrorERK7UStringj__ZN9CDirItems9AddPrefixEiiRK7UString__ZN9CDirItemsC1Ev__ZN9CDirItemsC2Ev__ZN9CDirItemsD2Ev__ZN9CInBuffer4FreeEv__ZN9CInBuffer6CreateEm__ZN9IInStreamD0Ev__ZN9IInStreamD1Ev__ZN9IProgressD0Ev__ZN9IProgressD1Ev__ZN9NCompress10CCopyCoder14QueryInterfaceERK4GUIDPPv__ZN9NCompress10CCopyCoder24GetInStreamProcessedSizeEPy__ZN9NCompress10CCopyCoder4CodeEP19ISequentialInStreamP20ISequentialOutStreamPKyS6_P21ICompressProgressInfo__ZN9NCompress10CCopyCoder6AddRefEv__ZN9NCompress10CCopyCoder7ReleaseEv__ZN9NCompress10CCopyCoderD0Ev__ZN9NCompress10CCopyCoderD1Ev__ZN9NCompress10CCopyCoderD2Ev__ZN9NCompress10CopyStreamEP19ISequentialInStreamP20ISequentialOutStreamP21ICompressProgressInfo__ZN9NCompress11NRangeCoder11CBitDecoderILj5EE6DecodeEPNS0_8CDecoderE__ZN9NCompress11NRangeCoder11CBitEncoderILj5EE6EncodeEPNS0_8CEncoderEj__ZN9NCompress11NRangeCoder8CDecoder4InitEv__ZN9NCompress11NRangeCoder8CEncoder9FlushDataEv__ZN9NCompress12CMtf8Decoder10GetAndMoveEj__ZN9NCompress12CMtf8Encoder11FindAndMoveEh__ZN9NCompress20CopyStream_ExactSizeEP19ISequentialInStreamP20ISequentialOutStreamyP21ICompressProgressInfo__ZN9NCompress2NZ11CheckStreamEPKhm__ZN9NCompress2NZ8CDecoder14QueryInterfaceERK4GUIDPPv__ZN9NCompress2NZ8CDecoder4CodeEP19ISequentialInStreamP20ISequentialOutStreamPKyS7_P21ICompressProgressInfo__ZN9NCompress2NZ8CDecoder4FreeEv__ZN9NCompress2NZ8CDecoder6AddRefEv__ZN9NCompress2NZ8CDecoder7ReleaseEv__ZN9NCompress2NZ8CDecoder8CodeRealEP19ISequentialInStreamP20ISequentialOutStreamPKyS7_P21ICompressProgressInfo__ZN9NCompress2NZ8CDecoderD0Ev__ZN9NCompress2NZ8CDecoderD1Ev__ZN9NCompress2NZ8CDecoderD2Ev__ZN9NCompress4NLzx10NBitStream8CDecoder9NormalizeEv__ZN9NCompress4NLzx20Cx86ConvertOutStream14QueryInterfaceERK4GUIDPPv__ZN9NCompress4NLzx20Cx86ConvertOutStream15MakeTranslationEv__ZN9NCompress4NLzx20Cx86ConvertOutStream5FlushEv__ZN9NCompress4NLzx20Cx86ConvertOutStream5WriteEPKvjPj__ZN9NCompress4NLzx20Cx86ConvertOutStream6AddRefEv__ZN9NCompress4NLzx20Cx86ConvertOutStream7ReleaseEv__ZN9NCompress4NLzx20Cx86ConvertOutStreamD0Ev__ZN9NCompress4NLzx20Cx86ConvertOutStreamD1Ev__ZN9NCompress4NLzx8CDecoder10ReadTablesEv__ZN9NCompress4NLzx8CDecoder14QueryInterfaceERK4GUIDPPv__ZN9NCompress4NLzx8CDecoder15ClearPrevLevelsEv__ZN9NCompress4NLzx8CDecoder16SetOutStreamSizeEPKy__ZN9NCompress4NLzx8CDecoder4CodeEP19ISequentialInStreamP20ISequentialOutStreamPKyS7_P21ICompressProgressInfo__ZN9NCompress4NLzx8CDecoder5FlushEv__ZN9NCompress4NLzx8CDecoder6AddRefEv__ZN9NCompress4NLzx8CDecoder7ReleaseEv__ZN9NCompress4NLzx8CDecoder8CodeRealEP19ISequentialInStreamP20ISequentialOutStreamPKyS7_P21ICompressProgressInfo__ZN9NCompress4NLzx8CDecoder8CodeSpecEj__ZN9NCompress4NLzx8CDecoder8ReadBitsEj__ZN9NCompress4NLzx8CDecoder9ReadTableEPhS2_j__ZN9NCompress4NLzx8CDecoder9SetParamsEj__ZN9NCompress4NLzx8CDecoderC1Eb__ZN9NCompress4NLzx8CDecoderC2Eb__ZN9NCompress4NLzx8CDecoderD0Ev__ZN9NCompress4NLzx8CDecoderD1Ev__ZN9NCompress5NBcj28CDecoder12SetInBufSizeEjj__ZN9NCompress5NBcj28CDecoder13SetOutBufSizeEjj__ZN9NCompress5NBcj28CDecoder14QueryInterfaceERK4GUIDPPv__ZN9NCompress5NBcj28CDecoder4CodeEPP19ISequentialInStreamPPKyjPP20ISequentialOutStreamS7_jP21ICompressProgressInfo__ZN9NCompress5NBcj28CDecoder6AddRefEv__ZN9NCompress5NBcj28CDecoder7ReleaseEv__ZN9NCompress5NBcj28CDecoder8CodeRealEPP19ISequentialInStreamPPKyjPP20ISequentialOutStreamS7_jP21ICompressProgressInfo__ZN9NCompress5NBcj28CDecoderC1Ev__ZN9NCompress5NBcj28CDecoderC2Ev__ZN9NCompress5NBcj28CDecoderD0Ev__ZN9NCompress5NBcj28CDecoderD1Ev__ZN9NCompress5NBcj28CEncoder14QueryInterfaceERK4GUIDPPv__ZN9NCompress5NBcj28CEncoder4CodeEPP19ISequentialInStreamPPKyjPP20ISequentialOutStreamS7_jP21ICompressProgressInfo__ZN9NCompress5NBcj28CEncoder5FlushEv__ZN9NCompress5NBcj28CEncoder6AddRefEv__ZN9NCompress5NBcj28CEncoder7ReleaseEv__ZN9NCompress5NBcj28CEncoder8CodeRealEPP19ISequentialInStreamPPKyjPP20ISequentialOutStreamS7_jP21ICompressProgressInfo__ZN9NCompress5NBcj28CEncoderD0Ev__ZN9NCompress5NBcj28CEncoderD1Ev__ZN9NCompress5NBcj28CEncoderD2Ev__ZN9NCompress5NLzma11SetLzmaPropEjRK14tagPROPVARIANTR14_CLzmaEncProps__ZN9NCompress5NLzma8CDecoder10CodeResumeEP20ISequentialOutStreamPKyP21ICompressProgressInfo__ZN9NCompress5NLzma8CDecoder11SetInStreamEP19ISequentialInStream__ZN9NCompress5NLzma8CDecoder12SetInBufSizeEjj__ZN9NCompress5NLzma8CDecoder13SetOutBufSizeEjj__ZN9NCompress5NLzma8CDecoder14QueryInterfaceERK4GUIDPPv__ZN9NCompress5NLzma8CDecoder15ReleaseInStreamEv__ZN9NCompress5NLzma8CDecoder16SetOutStreamSizeEPKy__ZN9NCompress5NLzma8CDecoder17CreateInputBufferEv__ZN9NCompress5NLzma8CDecoder19ReadFromInputStreamEPvjPj__ZN9NCompress5NLzma8CDecoder21SetDecoderProperties2EPKhj__ZN9NCompress5NLzma8CDecoder22SetOutStreamSizeResumeEPKy__ZN9NCompress5NLzma8CDecoder4CodeEP19ISequentialInStreamP20ISequentialOutStreamPKyS7_P21ICompressProgressInfo__ZN9NCompress5NLzma8CDecoder4ReadEPvjPj__ZN9NCompress5NLzma8CDecoder6AddRefEv__ZN9NCompress5NLzma8CDecoder7ReleaseEv__ZN9NCompress5NLzma8CDecoder8CodeSpecEP19ISequentialInStreamP20ISequentialOutStreamP21ICompressProgressInfo__ZN9NCompress5NLzma8CDecoderC1Ev__ZN9NCompress5NLzma8CDecoderC2Ev__ZN9NCompress5NLzma8CDecoderD0Ev__ZN9NCompress5NLzma8CDecoderD1Ev__ZN9NCompress5NLzma8CDecoderD2Ev__ZN9NCompress5NLzma8CEncoder14QueryInterfaceERK4GUIDPPv__ZN9NCompress5NLzma8CEncoder18SetCoderPropertiesEPKjPK14tagPROPVARIANTj__ZN9NCompress5NLzma8CEncoder20WriteCoderPropertiesEP20ISequentialOutStream__ZN9NCompress5NLzma8CEncoder4CodeEP19ISequentialInStreamP20ISequentialOutStreamPKyS7_P21ICompressProgressInfo__ZN9NCompress5NLzma8CEncoder6AddRefEv__ZN9NCompress5NLzma8CEncoder7ReleaseEv__ZN9NCompress5NLzma8CEncoderC1Ev__ZN9NCompress5NLzma8CEncoderC2Ev__ZN9NCompress5NLzma8CEncoderD0Ev__ZN9NCompress5NLzma8CEncoderD1Ev__ZN9NCompress5NLzma8CEncoderD2Ev__ZN9NCompress5NPpmd8CDecoder11SetInStreamEP19ISequentialInStream__ZN9NCompress5NPpmd8CDecoder14QueryInterfaceERK4GUIDPPv__ZN9NCompress5NPpmd8CDecoder15ReleaseInStreamEv__ZN9NCompress5NPpmd8CDecoder16SetOutStreamSizeEPKy__ZN9NCompress5NPpmd8CDecoder21SetDecoderProperties2EPKhj__ZN9NCompress5NPpmd8CDecoder4CodeEP19ISequentialInStreamP20ISequentialOutStreamPKyS7_P21ICompressProgressInfo__ZN9NCompress5NPpmd8CDecoder4ReadEPvjPj__ZN9NCompress5NPpmd8CDecoder6AddRefEv__ZN9NCompress5NPpmd8CDecoder7ReleaseEv__ZN9NCompress5NPpmd8CDecoder8CodeSpecEPhj__ZN9NCompress5NPpmd8CDecoderC2Ev__ZN9NCompress5NPpmd8CDecoderD0Ev__ZN9NCompress5NPpmd8CDecoderD1Ev__ZN9NCompress5NPpmd8CDecoderD2Ev__ZN9NCompress5NPpmd8CEncoder14QueryInterfaceERK4GUIDPPv__ZN9NCompress5NPpmd8CEncoder18SetCoderPropertiesEPKjPK14tagPROPVARIANTj__ZN9NCompress5NPpmd8CEncoder20WriteCoderPropertiesEP20ISequentialOutStream__ZN9NCompress5NPpmd8CEncoder4CodeEP19ISequentialInStreamP20ISequentialOutStreamPKyS7_P21ICompressProgressInfo__ZN9NCompress5NPpmd8CEncoder6AddRefEv__ZN9NCompress5NPpmd8CEncoder7ReleaseEv__ZN9NCompress5NPpmd8CEncoderC1Ev__ZN9NCompress5NPpmd8CEncoderC2Ev__ZN9NCompress5NPpmd8CEncoderD0Ev__ZN9NCompress5NPpmd8CEncoderD1Ev__ZN9NCompress5NPpmd8CEncoderD2Ev__ZN9NCompress5NPpmd9CEncProps9NormalizeEi__ZN9NCompress6NBZip210IsBlockSigEPKh__ZN9NCompress6NBZip211CThreadInfo10ThreadFuncEv__ZN9NCompress6NBZip211CThreadInfo10WriteBits2Ejj__ZN9NCompress6NBZip211CThreadInfo10WriteByte2Eh__ZN9NCompress6NBZip211CThreadInfo11EncodeBlockEPKhj__ZN9NCompress6NBZip211CThreadInfo12EncodeBlock2EPKhjj__ZN9NCompress6NBZip211CThreadInfo12EncodeBlock3Ej__ZN9NCompress6NBZip211CThreadInfo12FinishStreamEb__ZN9NCompress6NBZip211CThreadInfo22EncodeBlockWithHeadersEPKhj__ZN9NCompress6NBZip211CThreadInfo4FreeEv__ZN9NCompress6NBZip211CThreadInfo5AllocEv__ZN9NCompress6NBZip211CThreadInfo6CreateEv__ZN9NCompress6NBZip211CThreadInfo9WriteBit2Eb__ZN9NCompress6NBZip211CThreadInfo9WriteCrc2Ej__ZN9NCompress6NBZip211CThreadInfoD2Ev__ZN9NCompress6NBZip212CNsisDecoder11SetInStreamEP19ISequentialInStream__ZN9NCompress6NBZip212CNsisDecoder14QueryInterfaceERK4GUIDPPv__ZN9NCompress6NBZip212CNsisDecoder15ReleaseInStreamEv__ZN9NCompress6NBZip212CNsisDecoder16SetOutStreamSizeEPKy__ZN9NCompress6NBZip212CNsisDecoder4ReadEPvjPj__ZN9NCompress6NBZip212CNsisDecoder6AddRefEv__ZN9NCompress6NBZip212CNsisDecoder7ReleaseEv__ZN9NCompress6NBZip212CNsisDecoderD0Ev__ZN9NCompress6NBZip212CNsisDecoderD1Ev__ZN9NCompress6NBZip212CNsisDecoderD2Ev__ZN9NCompress6NBZip25CBase7ReadBitEv__ZN9NCompress6NBZip25CBase8ReadBitsEj__ZN9NCompress6NBZip25CBase9ReadBlockEPjjPNS0_11CBlockPropsE__ZN9NCompress6NBZip26CState10ThreadFuncEv__ZN9NCompress6NBZip26CState12FinishStreamEv__ZN9NCompress6NBZip26CState4FreeEv__ZN9NCompress6NBZip26CState5AllocEv__ZN9NCompress6NBZip26CState6CreateEv__ZN9NCompress6NBZip26CStateD2Ev__ZN9NCompress6NBZip28CDecoder10CodeResumeEP20ISequentialOutStreamP21ICompressProgressInfo__ZN9NCompress6NBZip28CDecoder10DecodeFileEP21ICompressProgressInfo__ZN9NCompress6NBZip28CDecoder11SetInStreamEP19ISequentialInStream__ZN9NCompress6NBZip28CDecoder13ReadSignatureERj__ZN9NCompress6NBZip28CDecoder14QueryInterfaceERK4GUIDPPv__ZN9NCompress6NBZip28CDecoder15ReleaseInStreamEv__ZN9NCompress6NBZip28CDecoder16SetRatioProgressEy__ZN9NCompress6NBZip28CDecoder18SetNumberOfThreadsEj__ZN9NCompress6NBZip28CDecoder4CodeEP19ISequentialInStreamP20ISequentialOutStreamPKyS7_P21ICompressProgressInfo__ZN9NCompress6NBZip28CDecoder4FreeEv__ZN9NCompress6NBZip28CDecoder6AddRefEv__ZN9NCompress6NBZip28CDecoder6CreateEv__ZN9NCompress6NBZip28CDecoder7ReleaseEv__ZN9NCompress6NBZip28CDecoder8CodeRealEP19ISequentialInStreamP20ISequentialOutStreamP21ICompressProgressInfo__ZN9NCompress6NBZip28CDecoder8ReadByteEv__ZN9NCompress6NBZip28CDecoderC1Ev__ZN9NCompress6NBZip28CDecoderC2Ev__ZN9NCompress6NBZip28CDecoderD0Ev__ZN9NCompress6NBZip28CDecoderD1Ev__ZN9NCompress6NBZip28CDecoderD2Ev__ZN9NCompress6NBZip28CEncoder10WriteBytesEPKhjh__ZN9NCompress6NBZip28CEncoder12ReadRleBlockEPh__ZN9NCompress6NBZip28CEncoder14QueryInterfaceERK4GUIDPPv__ZN9NCompress6NBZip28CEncoder18SetCoderPropertiesEPKjPK14tagPROPVARIANTj__ZN9NCompress6NBZip28CEncoder18SetNumberOfThreadsEj__ZN9NCompress6NBZip28CEncoder4CodeEP19ISequentialInStreamP20ISequentialOutStreamPKyS7_P21ICompressProgressInfo__ZN9NCompress6NBZip28CEncoder4FreeEv__ZN9NCompress6NBZip28CEncoder6AddRefEv__ZN9NCompress6NBZip28CEncoder6CreateEv__ZN9NCompress6NBZip28CEncoder7ReleaseEv__ZN9NCompress6NBZip28CEncoder8CodeRealEP19ISequentialInStreamP20ISequentialOutStreamPKyS7_P21ICompressProgressInfo__ZN9NCompress6NBZip28CEncoder8WriteBitEb__ZN9NCompress6NBZip28CEncoder8WriteCrcEj__ZN9NCompress6NBZip28CEncoder9WriteBitsEjj__ZN9NCompress6NBZip28CEncoder9WriteByteEh__ZN9NCompress6NBZip28CEncoderC1Ev__ZN9NCompress6NBZip28CEncoderC2Ev__ZN9NCompress6NBZip28CEncoderD0Ev__ZN9NCompress6NBZip28CEncoderD1Ev__ZN9NCompress6NBZip28CEncoderD2Ev__ZN9NCompress6NBZip28IsEndSigEPKh__ZN9NCompress6NBZip29CEncProps9NormalizeEi__ZN9NCompress6NLzma212SetLzma2PropEjRK14tagPROPVARIANTR14CLzma2EncProps__ZN9NCompress6NLzma28CDecoder11SetInStreamEP19ISequentialInStream__ZN9NCompress6NLzma28CDecoder14QueryInterfaceERK4GUIDPPv__ZN9NCompress6NLzma28CDecoder15ReleaseInStreamEv__ZN9NCompress6NLzma28CDecoder16SetOutStreamSizeEPKy__ZN9NCompress6NLzma28CDecoder21SetDecoderProperties2EPKhj__ZN9NCompress6NLzma28CDecoder24GetInStreamProcessedSizeEPy__ZN9NCompress6NLzma28CDecoder4CodeEP19ISequentialInStreamP20ISequentialOutStreamPKyS7_P21ICompressProgressInfo__ZN9NCompress6NLzma28CDecoder4ReadEPvjPj__ZN9NCompress6NLzma28CDecoder6AddRefEv__ZN9NCompress6NLzma28CDecoder7ReleaseEv__ZN9NCompress6NLzma28CDecoderC1Ev__ZN9NCompress6NLzma28CDecoderC2Ev__ZN9NCompress6NLzma28CDecoderD0Ev__ZN9NCompress6NLzma28CDecoderD1Ev__ZN9NCompress6NLzma28CDecoderD2Ev__ZN9NCompress6NLzma28CEncoder14QueryInterfaceERK4GUIDPPv__ZN9NCompress6NLzma28CEncoder18SetCoderPropertiesEPKjPK14tagPROPVARIANTj__ZN9NCompress6NLzma28CEncoder20WriteCoderPropertiesEP20ISequentialOutStream__ZN9NCompress6NLzma28CEncoder4CodeEP19ISequentialInStreamP20ISequentialOutStreamPKyS7_P21ICompressProgressInfo__ZN9NCompress6NLzma28CEncoder6AddRefEv__ZN9NCompress6NLzma28CEncoder7ReleaseEv__ZN9NCompress6NLzma28CEncoderC1Ev__ZN9NCompress6NLzma28CEncoderC2Ev__ZN9NCompress6NLzma28CEncoderD0Ev__ZN9NCompress6NLzma28CEncoderD1Ev__ZN9NCompress6NLzma28CEncoderD2Ev__ZN9NCompress7NShrink8CDecoder14QueryInterfaceERK4GUIDPPv__ZN9NCompress7NShrink8CDecoder4CodeEP19ISequentialInStreamP20ISequentialOutStreamPKyS7_P21ICompressProgressInfo__ZN9NCompress7NShrink8CDecoder6AddRefEv__ZN9NCompress7NShrink8CDecoder7ReleaseEv__ZN9NCompress7NShrink8CDecoder8CodeRealEP19ISequentialInStreamP20ISequentialOutStreamPKyS7_P21ICompressProgressInfo__ZN9NCompress7NShrink8CDecoderD0Ev__ZN9NCompress7NShrink8CDecoderD1Ev__ZN9NCompress8NDeflate8NDecoder11CCOMCoder64D0Ev__ZN9NCompress8NDeflate8NDecoder11CCOMCoder64D1Ev__ZN9NCompress8NDeflate8NDecoder6CCoder10CodeResumeEP20ISequentialOutStreamPKyP21ICompressProgressInfo__ZN9NCompress8NDeflate8NDecoder6CCoder10ReadTablesEv__ZN9NCompress8NDeflate8NDecoder6CCoder11SetInStreamEP19ISequentialInStream__ZN9NCompress8NDeflate8NDecoder6CCoder14QueryInterfaceERK4GUIDPPv__ZN9NCompress8NDeflate8NDecoder6CCoder15ReadAlignedByteEv__ZN9NCompress8NDeflate8NDecoder6CCoder15ReleaseInStreamEv__ZN9NCompress8NDeflate8NDecoder6CCoder16DeCodeLevelTableEPhj__ZN9NCompress8NDeflate8NDecoder6CCoder16SetOutStreamSizeEPKy__ZN9NCompress8NDeflate8NDecoder6CCoder18ReadAligned_UInt16Ev__ZN9NCompress8NDeflate8NDecoder6CCoder24GetInStreamProcessedSizeEPy__ZN9NCompress8NDeflate8NDecoder6CCoder4CodeEP19ISequentialInStreamP20ISequentialOutStreamPKyS8_P21ICompressProgressInfo__ZN9NCompress8NDeflate8NDecoder6CCoder4ReadEPvjPj__ZN9NCompress8NDeflate8NDecoder6CCoder6AddRefEv__ZN9NCompress8NDeflate8NDecoder6CCoder7ReleaseEv__ZN9NCompress8NDeflate8NDecoder6CCoder8CodeRealEP20ISequentialOutStreamPKyP21ICompressProgressInfo__ZN9NCompress8NDeflate8NDecoder6CCoder8CodeSpecEjb__ZN9NCompress8NDeflate8NDecoder6CCoder8ReadBitsEj__ZN9NCompress8NDeflate8NDecoder6CCoderC1Ebb__ZN9NCompress8NDeflate8NDecoder6CCoderC2Ebb__ZN9NCompress8NDeflate8NDecoder6CCoderD0Ev__ZN9NCompress8NDeflate8NDecoder6CCoderD1Ev__ZN9NCompress8NDeflate8NDecoder9CCOMCoderD0Ev__ZN9NCompress8NDeflate8NDecoder9CCOMCoderD1Ev__ZN9NCompress8NDeflate8NEncoder11CCOMCoder6414QueryInterfaceERK4GUIDPPv__ZN9NCompress8NDeflate8NEncoder11CCOMCoder6418SetCoderPropertiesEPKjPK14tagPROPVARIANTj__ZN9NCompress8NDeflate8NEncoder11CCOMCoder644CodeEP19ISequentialInStreamP20ISequentialOutStreamPKyS8_P21ICompressProgressInfo__ZN9NCompress8NDeflate8NEncoder11CCOMCoder646AddRefEv__ZN9NCompress8NDeflate8NEncoder11CCOMCoder647ReleaseEv__ZN9NCompress8NDeflate8NEncoder11CCOMCoder64D0Ev__ZN9NCompress8NDeflate8NEncoder11CCOMCoder64D1Ev__ZN9NCompress8NDeflate8NEncoder16Huffman_GetPriceEPKjPKhj__ZN9NCompress8NDeflate8NEncoder19Huffman_ReverseBitsEPjPKhj__ZN9NCompress8NDeflate8NEncoder21Huffman_GetPrice_SpecEPKjPKhjS5_j__ZN9NCompress8NDeflate8NEncoder4ReadEPvS2_Pm__ZN9NCompress8NDeflate8NEncoder6CCoder10GetMatchesEv__ZN9NCompress8NDeflate8NEncoder6CCoder10GetOptimalERj__ZN9NCompress8NDeflate8NEncoder6CCoder10MakeTablesEj__ZN9NCompress8NDeflate8NEncoder6CCoder10WriteBlockEv__ZN9NCompress8NDeflate8NEncoder6CCoder11TryDynBlockEij__ZN9NCompress8NDeflate8NEncoder6CCoder13GetBlockPriceEii__ZN9NCompress8NDeflate8NEncoder6CCoder13TryFixedBlockEi__ZN9NCompress8NDeflate8NEncoder6CCoder14GetOptimalFastERj__ZN9NCompress8NDeflate8NEncoder6CCoder14LevelTableCodeEPKhiS4_PKj__ZN9NCompress8NDeflate8NEncoder6CCoder15LevelTableDummyEPKhiPj__ZN9NCompress8NDeflate8NEncoder6CCoder15WriteStoreBlockEjjb__ZN9NCompress8NDeflate8NEncoder6CCoder25BaseSetEncoderProperties2EPKjPK14tagPROPVARIANTj__ZN9NCompress8NDeflate8NEncoder6CCoder4FreeEv__ZN9NCompress8NDeflate8NEncoder6CCoder6CreateEv__ZN9NCompress8NDeflate8NEncoder6CCoder7MovePosEj__ZN9NCompress8NDeflate8NEncoder6CCoder8BackwardERjj__ZN9NCompress8NDeflate8NEncoder6CCoder8BaseCodeEP19ISequentialInStreamP20ISequentialOutStreamPKyS8_P21ICompressProgressInfo__ZN9NCompress8NDeflate8NEncoder6CCoder8CodeRealEP19ISequentialInStreamP20ISequentialOutStreamPKyS8_P21ICompressProgressInfo__ZN9NCompress8NDeflate8NEncoder6CCoder8SetPropsEPKNS1_9CEncPropsE__ZN9NCompress8NDeflate8NEncoder6CCoder8TryBlockEv__ZN9NCompress8NDeflate8NEncoder6CCoder9CodeBlockEib__ZN9NCompress8NDeflate8NEncoder6CCoder9SetPricesERKNS0_7CLevelsE__ZN9NCompress8NDeflate8NEncoder6CCoder9WriteBitsEji__ZN9NCompress8NDeflate8NEncoder6CCoderC1Eb__ZN9NCompress8NDeflate8NEncoder6CCoderC2Eb__ZN9NCompress8NDeflate8NEncoder6CCoderD1Ev__ZN9NCompress8NDeflate8NEncoder6CCoderD2Ev__ZN9NCompress8NDeflate8NEncoder7CTables14InitStructuresEv__ZN9NCompress8NDeflate8NEncoder9CCOMCoder14QueryInterfaceERK4GUIDPPv__ZN9NCompress8NDeflate8NEncoder9CCOMCoder18SetCoderPropertiesEPKjPK14tagPROPVARIANTj__ZN9NCompress8NDeflate8NEncoder9CCOMCoder4CodeEP19ISequentialInStreamP20ISequentialOutStreamPKyS8_P21ICompressProgressInfo__ZN9NCompress8NDeflate8NEncoder9CCOMCoder6AddRefEv__ZN9NCompress8NDeflate8NEncoder9CCOMCoder7ReleaseEv__ZN9NCompress8NDeflate8NEncoder9CCOMCoderD0Ev__ZN9NCompress8NDeflate8NEncoder9CCOMCoderD1Ev__ZN9NCompress8NDeflate8NEncoder9CEncProps9NormalizeEv__ZN9NCompress8NHuffman8CDecoderILi15ELj19EE12DecodeSymbolIN5NBitl8CDecoderI9CInBufferEEEEjPT___ZN9NCompress8NHuffman8CDecoderILi15ELj19EE14SetCodeLengthsEPKh__ZN9NCompress8NHuffman8CDecoderILi15ELj288EE12DecodeSymbolIN5NBitl8CDecoderI9CInBufferEEEEjPT___ZN9NCompress8NHuffman8CDecoderILi15ELj288EE14SetCodeLengthsEPKh__ZN9NCompress8NHuffman8CDecoderILi15ELj32EE12DecodeSymbolIN5NBitl8CDecoderI9CInBufferEEEEjPT___ZN9NCompress8NHuffman8CDecoderILi15ELj32EE14SetCodeLengthsEPKh__ZN9NCompress8NHuffman8CDecoderILi16ELj20EE12DecodeSymbolINS_4NLzx10NBitStream8CDecoderEEEjPT___ZN9NCompress8NHuffman8CDecoderILi16ELj20EE14SetCodeLengthsEPKh__ZN9NCompress8NHuffman8CDecoderILi16ELj249EE12DecodeSymbolINS_4NLzx10NBitStream8CDecoderEEEjPT___ZN9NCompress8NHuffman8CDecoderILi16ELj249EE14SetCodeLengthsEPKh__ZN9NCompress8NHuffman8CDecoderILi16ELj656EE12DecodeSymbolINS_4NLzx10NBitStream8CDecoderEEEjPT___ZN9NCompress8NHuffman8CDecoderILi16ELj656EE14SetCodeLengthsEPKh__ZN9NCompress8NHuffman8CDecoderILi16ELj8EE12DecodeSymbolINS_4NLzx10NBitStream8CDecoderEEEjPT___ZN9NCompress8NHuffman8CDecoderILi16ELj8EE14SetCodeLengthsEPKh__ZN9NCompress8NHuffman8CDecoderILi20ELj258EE12DecodeSymbolIN5NBitm8CDecoderI9CInBufferEEEEjPT___ZN9NCompress8NHuffman8CDecoderILi20ELj258EE14SetCodeLengthsEPKh__ZN9NCompress8NImplode8NDecoder6CCoder10ReadTablesEv__ZN9NCompress8NImplode8NDecoder6CCoder14QueryInterfaceERK4GUIDPPv__ZN9NCompress8NImplode8NDecoder6CCoder14ReadLevelItemsERNS0_8NHuffman8CDecoderEPhi__ZN9NCompress8NImplode8NDecoder6CCoder21SetDecoderProperties2EPKhj__ZN9NCompress8NImplode8NDecoder6CCoder4CodeEP19ISequentialInStreamP20ISequentialOutStreamPKyS8_P21ICompressProgressInfo__ZN9NCompress8NImplode8NDecoder6CCoder6AddRefEv__ZN9NCompress8NImplode8NDecoder6CCoder7ReleaseEv__ZN9NCompress8NImplode8NDecoder6CCoder8CodeRealEP19ISequentialInStreamP20ISequentialOutStreamPKyS8_P21ICompressProgressInfo__ZN9NCompress8NImplode8NDecoder6CCoderC1Ev__ZN9NCompress8NImplode8NDecoder6CCoderC2Ev__ZN9NCompress8NImplode8NDecoder6CCoderD0Ev__ZN9NCompress8NImplode8NDecoder6CCoderD1Ev__ZN9NCompress8NImplode8NDecoder6CCoderD2Ev__ZN9NCompress8NImplode8NHuffman8CDecoder12DecodeSymbolEPN5NBitl8CDecoderI9CInBufferEE__ZN9NCompress8NImplode8NHuffman8CDecoder14SetCodeLengthsEPKh__ZN9NCompress8NImplode8NHuffman8CDecoderC1Ej__ZN9NCompress8NImplode8NHuffman8CDecoderC2Ej__ZN9NCompress8NImplode8NHuffman8CDecoderD1Ev__ZN9NCompress8NImplode8NHuffman8CDecoderD2Ev__ZN9NCompress8NPpmdZip8CDecoder14QueryInterfaceERK4GUIDPPv__ZN9NCompress8NPpmdZip8CDecoder4CodeEP19ISequentialInStreamP20ISequentialOutStreamPKyS7_P21ICompressProgressInfo__ZN9NCompress8NPpmdZip8CDecoder6AddRefEv__ZN9NCompress8NPpmdZip8CDecoder7ReleaseEv__ZN9NCompress8NPpmdZip8CDecoderC1Eb__ZN9NCompress8NPpmdZip8CDecoderC2Eb__ZN9NCompress8NPpmdZip8CDecoderD0Ev__ZN9NCompress8NPpmdZip8CDecoderD1Ev__ZN9NCompress8NPpmdZip8CDecoderD2Ev__ZN9NCompress8NPpmdZip8CEncoder14QueryInterfaceERK4GUIDPPv__ZN9NCompress8NPpmdZip8CEncoder18SetCoderPropertiesEPKjPK14tagPROPVARIANTj__ZN9NCompress8NPpmdZip8CEncoder4CodeEP19ISequentialInStreamP20ISequentialOutStreamPKyS7_P21ICompressProgressInfo__ZN9NCompress8NPpmdZip8CEncoder6AddRefEv__ZN9NCompress8NPpmdZip8CEncoder7ReleaseEv__ZN9NCompress8NPpmdZip8CEncoderC1Ev__ZN9NCompress8NPpmdZip8CEncoderC2Ev__ZN9NCompress8NPpmdZip8CEncoderD0Ev__ZN9NCompress8NPpmdZip8CEncoderD1Ev__ZN9NCompress8NPpmdZip8CEncoderD2Ev__ZN9NCompress8NPpmdZip9CEncProps9NormalizeEi__ZN9NCompress8NQuantum11NRangeCoder13CModelDecoder6DecodeEPNS1_8CDecoderE__ZN9NCompress8NQuantum11NRangeCoder8CDecoder6DecodeEjjj__ZN9NCompress8NQuantum8CDecoder14QueryInterfaceERK4GUIDPPv__ZN9NCompress8NQuantum8CDecoder16SetOutStreamSizeEPKy__ZN9NCompress8NQuantum8CDecoder4CodeEP19ISequentialInStreamP20ISequentialOutStreamPKyS7_P21ICompressProgressInfo__ZN9NCompress8NQuantum8CDecoder4InitEv__ZN9NCompress8NQuantum8CDecoder6AddRefEv__ZN9NCompress8NQuantum8CDecoder7ReleaseEv__ZN9NCompress8NQuantum8CDecoder8CodeRealEP19ISequentialInStreamP20ISequentialOutStreamPKyS7_P21ICompressProgressInfo__ZN9NCompress8NQuantum8CDecoder8CodeSpecEj__ZN9NCompress8NQuantum8CDecoder9SetParamsEi__ZN9NCompress8NQuantum8CDecoderD0Ev__ZN9NCompress8NQuantum8CDecoderD1Ev__ZN9NWildcard11CCensorNode13AddItemSimpleEbRNS_5CItemE__ZN9NWildcard11CCensorNode13ExtendExcludeERKS0___ZN9NWildcard11CCensorNode7AddItemEbRK7UStringbbbb__ZN9NWildcard11CCensorNode7AddItemEbRNS_5CItemE__ZN9NWildcard11CCensorNode8AddItem2EbRK7UStringbb__ZN9NWildcard11CCensorNodeC2ERKS0___ZN9NWildcard11CCensorNodeD2Ev__ZN9NWildcard7CCensor10AddPreItemEbRK7UStringbb__ZN9NWildcard7CCensor13ExtendExcludeEv__ZN9NWildcard7CCensor16AddPathsToCensorENS_15ECensorPathModeE__ZN9NWildcard7CCensor7AddItemENS_15ECensorPathModeEbRK7UStringbb__ZNK10CArcInfoEx13FindExtensionERK7UString__ZNK10CBenchInfo17GetRatingPerUsageEy__ZNK10CBenchInfo8GetSpeedEy__ZNK10CBenchInfo8GetUsageEv__ZNK10CMemBlocks13WriteToStreamEmP20ISequentialOutStream__ZNK10COutBuffer16GetProcessedSizeEv__ZNK11CArcCommand11GetPathModeEv__ZNK11CArcCommand17IsFromUpdateGroupEv__ZNK11CArcCommand18IsFromExtractGroupEv__ZNK11CRenamePair10GetNewPathEbRK7UStringRS0___ZNK11CUniqBlocks19GetTotalSizeInBytesEv__ZNK12CArchivePath11GetTempPathEv__ZNK12CArchivePath12GetFinalPathEv__ZNK12CArchivePath15GetFinalVolPathEv__ZNK12CMethodProps19Get_Lzma_NumThreadsERb__ZNK12CMethodProps8FindPropEj__ZNK12CMethodProps8GetLevelEv__ZNK16CExtrRefSortPair7CompareERKS___ZNK19CDynBufSeqOutStream12CopyToBufferER7CBufferIhE__ZNK4CArc11GetItemPathEjR7UString__ZNK4CArc11GetItemSizeEjRyRb__ZNK4CArc12GetItemMTimeEjR9_FILETIMERb__ZNK4CArc12GetItemPath2EjR7UString__ZNK4CArc19GetItemPathToParentEjjR13CObjectVectorI7UStringE__ZNK6CProps13SetCoderPropsEP27ICompressSetCoderPropertiesPKy__ZNK7AString11ReverseFindEc__ZNK7AString25IsPrefixedBy_Ascii_NoCaseEPKc__ZNK7AString4FindERKS_j__ZNK7CCodecs15CreateInArchiveEjR9CMyComPtrI10IInArchiveE__ZNK7CCodecs16CreateOutArchiveEjR9CMyComPtrI11IOutArchiveE__ZNK7CCodecs22FindFormatForExtensionERK7UString__ZNK7CCodecs24FindFormatForArchiveNameERK7UString__ZNK7CCodecs24FindFormatForArchiveTypeERK7UString__ZNK7CCodecs24FindFormatForArchiveTypeERK7UStringR13CRecordVectorIiE__ZNK7NCrypto5NSha112CContextBase12PrepareBlockEPjj__ZNK7NCrypto7NSevenZ8CKeyInfo9IsEqualToERKS1___ZNK7UString11ReverseFindEw__ZNK7UString25IsPrefixedBy_Ascii_NoCaseEPKc__ZNK7UString4FindERKS_j__ZNK8NArchive3N7z11COutArchive6GetPosEv__ZNK8NArchive3N7z11CUpdateItem12GetExtensionEv__ZNK8NArchive3N7z11CUpdateItem15GetExtensionPosEv__ZNK8NArchive3N7z7CFolder14CheckStructureEj__ZNK8NArchive3N7z8CFolders15ParseFolderInfoEjRNS0_7CFolderE__ZNK8NArchive3N7z8CHandler15SetMethodToPropEjP14tagPROPVARIANT__ZNK8NArchive3N7z8CHandler17IsFolderEncryptedEj__ZNK8NArchive3N7z9CDatabase12GetPath_PropEjP14tagPROPVARIANT__ZNK8NArchive3N7z9CDatabase7GetPathEjR7UString__ZNK8NArchive4NTar8CHandler18TarStringToUnicodeERK7AStringRN8NWindows4NCOM12CPropVariantEb__ZNK8NArchive4NZip10CLocalItem5IsDirEv__ZNK8NArchive4NZip14CExtraSubBlock15ExtractNtfsTimeEjR9_FILETIME__ZNK8NArchive4NZip14CExtraSubBlock15ExtractUnixTimeEbjRj__ZNK8NArchive4NZip5CItem12GetWinAttribEv__ZNK8NArchive4NZip5CItem14GetPosixAttribERj__ZNK8NArchive4NZip5CItem5IsDirEv__ZNK8NWindows5NFile3NIO9CFileBase9GetLengthERy__ZNK8NWindows5NFile5NFind9CFileInfo6IsDotsEv__ZNK9CDirItems10GetLogPathEj__ZNK9CDirItems10GetPhyPathEj__ZNK9CDirItems15GetPrefixesPathERK13CRecordVectorIiEiRK7UString__ZNK9NCompress8NDeflate8NEncoder6CCoder15GetLzBlockPriceEv__ZNK9NWildcard11CCensorNode10CheckPath2EbRK7UStringbRb__ZNK9NWildcard11CCensorNode11FindSubNodeERK7UString__ZNK9NWildcard11CCensorNode13AreAllAllowedEv__ZNK9NWildcard11CCensorNode13CheckPathVectERK13CObjectVectorI7UStringEbRb__ZNK9NWildcard11CCensorNode15CheckPathToRootEbR13CObjectVectorI7UStringEb__ZNK9NWildcard11CCensorNode16CheckPathCurrentEbRK13CObjectVectorI7UStringEb__ZNK9NWildcard11CCensorNode16NeedCheckSubDirsEv__ZNK9NWildcard11CCensorNode20AreThereIncludeItemsEv__ZNK9NWildcard11CCensorNode9CheckPathEbRK7UStringb__ZNK9NWildcard5CItem13AreAllAllowedEv__ZNK9NWildcard5CItem9CheckPathERK13CObjectVectorI7UStringEb__ZNK9NWildcard7CCensor10FindPrefixERK7UString__ZNK9NWildcard7CCensor9CheckPathEbRK7UStringb__ZTI10CByteSwap2__ZTI10CByteSwap4__ZTI10CCrcHasher__ZTI10IInArchive__ZTI10IOutStream__ZTI11CHashBundle__ZTI11CSha1Hasher__ZTI11CVirtThread__ZTI11IOutArchive__ZTI12CBenchBuffer__ZTI12CBufInStream__ZTI12CFilterCoder__ZTI12CMultiStream__ZTI13CCrcOutStream__ZTI13CDeltaDecoder__ZTI13CDeltaEncoder__ZTI13CInFileStream__ZTI13CMyUnknownImp__ZTI13CNewException__ZTI13COutMemStream__ZTI13CReferenceBuf__ZTI13CSha256Hasher__ZTI13CTailInStream__ZTI14CBenchInfoCalc__ZTI14CExtentsStream__ZTI14CLocalProgress__ZTI14COutFileStream__ZTI14CTailOutStream__ZTI14CXzCrc64Hasher__ZTI14IBenchCallback__ZTI14ICompressCoder__ZTI14ISetProperties__ZTI14IStreamGetSize__ZTI15CBC_ARM_Decoder__ZTI15CBC_ARM_Encoder__ZTI15CBC_PPC_Decoder__ZTI15CBC_PPC_Encoder__ZTI15CBinderInStream__ZTI15CCachedInStream__ZTI15CDummyOutStream__ZTI15IArchiveOpenSeq__ZTI15ICompressCoder2__ZTI15ICompressFilter__ZTI15IHashCallbackUI__ZTI15IOpenCallbackUI__ZTI15IOutStreamFlush__ZTI16CBCJ_x86_Decoder__ZTI16CBCJ_x86_Encoder__ZTI16CBC_ARMT_Decoder__ZTI16CBC_ARMT_Encoder__ZTI16CBC_IA64_Decoder__ZTI16CBC_IA64_Encoder__ZTI16CBinderOutStream__ZTI16CBranchConverter__ZTI16CClusterInStream__ZTI16CInFileStreamVol__ZTI16CInStreamWithCRC__ZTI16CLimitedInStream__ZTI16COffsetOutStream__ZTI16COpenCallbackImp__ZTI16CStdInFileStream__ZTI16CSystemException__ZTI17CBC_SPARC_Decoder__ZTI17CBC_SPARC_Encoder__ZTI17COutStreamWithCRC__ZTI17CStdOutFileStream__ZTI17ICryptoProperties__ZTI17IUpdateCallbackUI__ZTI18CBenchProgressInfo__ZTI18CBenchmarkInStream__ZTI18CInBufferException__ZTI18COutMultiVolStream__ZTI18COutStreamWithHash__ZTI18ICryptoSetPassword__ZTI18IExtractCallbackUI__ZTI18IUpdateCallbackUI2__ZTI19CBenchmarkOutStream__ZTI19CBufPtrSeqOutStream__ZTI19CDynBufSeqOutStream__ZTI19CMtCompressProgress__ZTI19COutBufferException__ZTI19CPrintBenchCallback__ZTI19IArchiveGetRawProps__ZTI19IBenchPrintCallback__ZTI19ICompressSetBufSize__ZTI19ICompressSetCoderMt__ZTI19IInArchiveGetStream__ZTI19ISequentialInStream__ZTI20CArcCmdLineException__ZTI20CCallbackConsoleBase__ZTI20CCrossThreadProgress__ZTI20CHashCallbackConsole__ZTI20COpenCallbackConsole__ZTI20IArchiveGetRootProps__ZTI20IArchiveOpenCallback__ZTI20ICompressSetInStream__ZTI20IEnumDirItemCallback__ZTI20ISequentialOutStream__ZTI21CBenchCallbackToPrint__ZTI21CBenchRandomGenerator__ZTI21ICompressProgressInfo__ZTI21ICompressSetOutStream__ZTI22CArchiveUpdateCallback__ZTI22CLimitedCachedInStream__ZTI22CUpdateCallbackConsole__ZTI22IArchiveUpdateCallback__ZTI22ICryptoGetTextPassword__ZTI22ICryptoResetInitVector__ZTI23CArchiveExtractCallback__ZTI23CExtractCallbackConsole__ZTI23IArchiveExtractCallback__ZTI23IArchiveUpdateCallback2__ZTI23ICryptoGetTextPassword2__ZTI25CEnumDirItemCallback_Hash__ZTI25ICompressGetSubStreamSize__ZTI25ICompressSetOutStreamSize__ZTI26CEnumDirItemUpdateCallback__ZTI26CLimitedSequentialInStream__ZTI26CSequentialInStreamWithCRC__ZTI26IArchiveOpenVolumeCallback__ZTI27CArchiveOpenCallback_Offset__ZTI27CLimitedSequentialOutStream__ZTI27CSequentialOutTempBufferImp__ZTI27ICompressSetCoderProperties__ZTI28CLockedSequentialInStreamImp__ZTI29CSequentialInStreamSizeCount2__ZTI29CSequentialOutStreamSizeCount__ZTI29IArchiveOpenSetSubArchiveName__ZTI29ICompressWriteCoderProperties__ZTI29IFolderArchiveExtractCallback__ZTI30ICompressSetDecoderProperties2__ZTI32CExtractCallback_To_OpenCallback__ZTI33ICompressGetInStreamProcessedSize__ZTI6CDelta__ZTI7AString__ZTI7CCodecs__ZTI7IHasher__ZTI7UString__ZTI8CGetProp__ZTI8IGetProp__ZTI8IUnknown__ZTI9CBranch86__ZTI9IHashCalc__ZTI9IInStream__ZTI9IProgress__ZTIN11NCoderMixer11CCoderInfo2E__ZTIN11NCoderMixer12CCoderMixer2E__ZTIN11NCoderMixer14CCoderMixer2MTE__ZTIN11NCoderMixer7CCoder2E__ZTIN13NConsoleClose18CCtrlHandlerSetterE__ZTIN13NConsoleClose19CCtrlBreakExceptionE__ZTIN7NCrypto10NZipStrong10CBaseCoderE__ZTIN7NCrypto10NZipStrong8CDecoderE__ZTIN7NCrypto12CAesCbcCoderE__ZTIN7NCrypto14CAesCbcDecoderE__ZTIN7NCrypto14CAesCbcEncoderE__ZTIN7NCrypto4NZip7CCipherE__ZTIN7NCrypto4NZip8CDecoderE__ZTIN7NCrypto4NZip8CEncoderE__ZTIN7NCrypto6NWzAes10CBaseCoderE__ZTIN7NCrypto6NWzAes8CDecoderE__ZTIN7NCrypto6NWzAes8CEncoderE__ZTIN7NCrypto7NSevenZ10CBaseCoderE__ZTIN7NCrypto7NSevenZ5CBaseE__ZTIN7NCrypto7NSevenZ8CDecoderE__ZTIN7NCrypto7NSevenZ8CEncoderE__ZTIN8NArchive17CMultiMethodPropsE__ZTIN8NArchive2NZ8CHandlerE__ZTIN8NArchive3N7z11COutHandlerE__ZTIN8NArchive3N7z14CThreadDecoderE__ZTIN8NArchive3N7z15CFolderInStreamE__ZTIN8NArchive3N7z16CFolderOutStreamE__ZTIN8NArchive3N7z17CFolderOutStream2E__ZTIN8NArchive3N7z19CInArchiveExceptionE__ZTIN8NArchive3N7z22CCryptoGetTextPasswordE__ZTIN8NArchive3N7z28CUnsupportedFeatureExceptionE__ZTIN8NArchive3N7z8CHandlerE__ZTIN8NArchive3NGz24CCompressProgressInfoImpE__ZTIN8NArchive3NGz8CHandlerE__ZTIN8NArchive3NXz12IDecodeStateE__ZTIN8NArchive3NXz16CSeekToSeqStreamE__ZTIN8NArchive3NXz29CVirtProgress_To_OpenProgressE__ZTIN8NArchive3NXz30CVirtProgress_To_LocalProgressE__ZTIN8NArchive3NXz8CHandlerE__ZTIN8NArchive3NXz9CStatInfoE__ZTIN8NArchive4NBz28CHandlerE__ZTIN8NArchive4NCab16CFolderOutStreamE__ZTIN8NArchive4NCab17CCabBlockInStreamE__ZTIN8NArchive4NCab23CUnexpectedEndExceptionE__ZTIN8NArchive4NCab8CHandlerE__ZTIN8NArchive4NTar13CSparseStreamE__ZTIN8NArchive4NTar8CHandlerE__ZTIN8NArchive4NZip12CLzmaDecoderE__ZTIN8NArchive4NZip12CLzmaEncoderE__ZTIN8NArchive4NZip12CProgressImpE__ZTIN8NArchive4NZip12CUnexpectEndE__ZTIN8NArchive4NZip13CProgressVirtE__ZTIN8NArchive4NZip15CCacheOutStreamE__ZTIN8NArchive4NZip16CMtProgressMixerE__ZTIN8NArchive4NZip17CMtProgressMixer2E__ZTIN8NArchive4NZip8CHandlerE__ZTIN8NArchive5NLzma24CCompressProgressInfoImpE__ZTIN8NArchive5NLzma8CHandlerE__ZTIN8NArchive5NPpmd8CHandlerE__ZTIN8NArchive6NSplit8CHandlerE__ZTIN8NArchive7NParser8CHandlerE__ZTIN8NWindows16NSynchronization14CBaseEventWFMOE__ZTIN8NWindows16NSynchronization14CSemaphoreWFMOE__ZTIN8NWindows16NSynchronization15CBaseHandleWFMOE__ZTIN8NWindows16NSynchronization19CAutoResetEventWFMOE__ZTIN8NWindows16NSynchronization21CManualResetEventWFMOE__ZTIN8NWindows5NFile3NIO7CInFileE__ZTIN8NWindows5NFile3NIO8COutFileE__ZTIN8NWindows5NFile3NIO9CFileBaseE__ZTIN9NCompress10CCopyCoderE__ZTIN9NCompress2NZ8CDecoderE__ZTIN9NCompress4NLzx20Cx86ConvertOutStreamE__ZTIN9NCompress4NLzx8CDecoderE__ZTIN9NCompress5NBcj28CDecoderE__ZTIN9NCompress5NBcj28CEncoderE__ZTIN9NCompress5NLzma8CDecoderE__ZTIN9NCompress5NLzma8CEncoderE__ZTIN9NCompress5NPpmd8CDecoderE__ZTIN9NCompress5NPpmd8CEncoderE__ZTIN9NCompress6NBZip212CNsisDecoderE__ZTIN9NCompress6NBZip28CDecoderE__ZTIN9NCompress6NBZip28CEncoderE__ZTIN9NCompress6NLzma28CDecoderE__ZTIN9NCompress6NLzma28CEncoderE__ZTIN9NCompress7NShrink8CDecoderE__ZTIN9NCompress8NDeflate8NDecoder11CCOMCoder64E__ZTIN9NCompress8NDeflate8NDecoder6CCoderE__ZTIN9NCompress8NDeflate8NDecoder9CCOMCoderE__ZTIN9NCompress8NDeflate8NEncoder11CCOMCoder64E__ZTIN9NCompress8NDeflate8NEncoder6CCoderE__ZTIN9NCompress8NDeflate8NEncoder9CCOMCoderE__ZTIN9NCompress8NImplode8NDecoder10CExceptionE__ZTIN9NCompress8NImplode8NDecoder6CCoderE__ZTIN9NCompress8NPpmdZip8CDecoderE__ZTIN9NCompress8NPpmdZip8CEncoderE__ZTIN9NCompress8NQuantum8CDecoderE__ZTIN9NExitCode5EEnumE__ZTS10CByteSwap2__ZTS10CByteSwap4__ZTS10CCrcHasher__ZTS10IInArchive__ZTS10IOutStream__ZTS11CHashBundle__ZTS11CSha1Hasher__ZTS11CVirtThread__ZTS11IOutArchive__ZTS12CBenchBuffer__ZTS12CBufInStream__ZTS12CFilterCoder__ZTS12CMultiStream__ZTS13CCrcOutStream__ZTS13CDeltaDecoder__ZTS13CDeltaEncoder__ZTS13CInFileStream__ZTS13CMyUnknownImp__ZTS13CNewException__ZTS13COutMemStream__ZTS13CReferenceBuf__ZTS13CSha256Hasher__ZTS13CTailInStream__ZTS14CBenchInfoCalc__ZTS14CExtentsStream__ZTS14CLocalProgress__ZTS14COutFileStream__ZTS14CTailOutStream__ZTS14CXzCrc64Hasher__ZTS14IBenchCallback__ZTS14ICompressCoder__ZTS14ISetProperties__ZTS14IStreamGetSize__ZTS15CBC_ARM_Decoder__ZTS15CBC_ARM_Encoder__ZTS15CBC_PPC_Decoder__ZTS15CBC_PPC_Encoder__ZTS15CBinderInStream__ZTS15CCachedInStream__ZTS15CDummyOutStream__ZTS15IArchiveOpenSeq__ZTS15ICompressCoder2__ZTS15ICompressFilter__ZTS15IHashCallbackUI__ZTS15IOpenCallbackUI__ZTS15IOutStreamFlush__ZTS16CBCJ_x86_Decoder__ZTS16CBCJ_x86_Encoder__ZTS16CBC_ARMT_Decoder__ZTS16CBC_ARMT_Encoder__ZTS16CBC_IA64_Decoder__ZTS16CBC_IA64_Encoder__ZTS16CBinderOutStream__ZTS16CBranchConverter__ZTS16CClusterInStream__ZTS16CInFileStreamVol__ZTS16CInStreamWithCRC__ZTS16CLimitedInStream__ZTS16COffsetOutStream__ZTS16COpenCallbackImp__ZTS16CStdInFileStream__ZTS16CSystemException__ZTS17CBC_SPARC_Decoder__ZTS17CBC_SPARC_Encoder__ZTS17COutStreamWithCRC__ZTS17CStdOutFileStream__ZTS17ICryptoProperties__ZTS17IUpdateCallbackUI__ZTS18CBenchProgressInfo__ZTS18CBenchmarkInStream__ZTS18CInBufferException__ZTS18COutMultiVolStream__ZTS18COutStreamWithHash__ZTS18ICryptoSetPassword__ZTS18IExtractCallbackUI__ZTS18IUpdateCallbackUI2__ZTS19CBenchmarkOutStream__ZTS19CBufPtrSeqOutStream__ZTS19CDynBufSeqOutStream__ZTS19CMtCompressProgress__ZTS19COutBufferException__ZTS19CPrintBenchCallback__ZTS19IArchiveGetRawProps__ZTS19IBenchPrintCallback__ZTS19ICompressSetBufSize__ZTS19ICompressSetCoderMt__ZTS19IInArchiveGetStream__ZTS19ISequentialInStream__ZTS20CArcCmdLineException__ZTS20CCallbackConsoleBase__ZTS20CCrossThreadProgress__ZTS20CHashCallbackConsole__ZTS20COpenCallbackConsole__ZTS20IArchiveGetRootProps__ZTS20IArchiveOpenCallback__ZTS20ICompressSetInStream__ZTS20IEnumDirItemCallback__ZTS20ISequentialOutStream__ZTS21CBenchCallbackToPrint__ZTS21CBenchRandomGenerator__ZTS21ICompressProgressInfo__ZTS21ICompressSetOutStream__ZTS22CArchiveUpdateCallback__ZTS22CLimitedCachedInStream__ZTS22CUpdateCallbackConsole__ZTS22IArchiveUpdateCallback__ZTS22ICryptoGetTextPassword__ZTS22ICryptoResetInitVector__ZTS23CArchiveExtractCallback__ZTS23CExtractCallbackConsole__ZTS23IArchiveExtractCallback__ZTS23IArchiveUpdateCallback2__ZTS23ICryptoGetTextPassword2__ZTS25CEnumDirItemCallback_Hash__ZTS25ICompressGetSubStreamSize__ZTS25ICompressSetOutStreamSize__ZTS26CEnumDirItemUpdateCallback__ZTS26CLimitedSequentialInStream__ZTS26CSequentialInStreamWithCRC__ZTS26IArchiveOpenVolumeCallback__ZTS27CArchiveOpenCallback_Offset__ZTS27CLimitedSequentialOutStream__ZTS27CSequentialOutTempBufferImp__ZTS27ICompressSetCoderProperties__ZTS28CLockedSequentialInStreamImp__ZTS29CSequentialInStreamSizeCount2__ZTS29CSequentialOutStreamSizeCount__ZTS29IArchiveOpenSetSubArchiveName__ZTS29ICompressWriteCoderProperties__ZTS29IFolderArchiveExtractCallback__ZTS30ICompressSetDecoderProperties2__ZTS32CExtractCallback_To_OpenCallback__ZTS33ICompressGetInStreamProcessedSize__ZTS6CDelta__ZTS7AString__ZTS7CCodecs__ZTS7IHasher__ZTS7UString__ZTS8CGetProp__ZTS8IGetProp__ZTS8IUnknown__ZTS9CBranch86__ZTS9IHashCalc__ZTS9IInStream__ZTS9IProgress__ZTSN11NCoderMixer11CCoderInfo2E__ZTSN11NCoderMixer12CCoderMixer2E__ZTSN11NCoderMixer14CCoderMixer2MTE__ZTSN11NCoderMixer7CCoder2E__ZTSN13NConsoleClose18CCtrlHandlerSetterE__ZTSN13NConsoleClose19CCtrlBreakExceptionE__ZTSN7NCrypto10NZipStrong10CBaseCoderE__ZTSN7NCrypto10NZipStrong8CDecoderE__ZTSN7NCrypto12CAesCbcCoderE__ZTSN7NCrypto14CAesCbcDecoderE__ZTSN7NCrypto14CAesCbcEncoderE__ZTSN7NCrypto4NZip7CCipherE__ZTSN7NCrypto4NZip8CDecoderE__ZTSN7NCrypto4NZip8CEncoderE__ZTSN7NCrypto6NWzAes10CBaseCoderE__ZTSN7NCrypto6NWzAes8CDecoderE__ZTSN7NCrypto6NWzAes8CEncoderE__ZTSN7NCrypto7NSevenZ10CBaseCoderE__ZTSN7NCrypto7NSevenZ5CBaseE__ZTSN7NCrypto7NSevenZ8CDecoderE__ZTSN7NCrypto7NSevenZ8CEncoderE__ZTSN8NArchive17CMultiMethodPropsE__ZTSN8NArchive2NZ8CHandlerE__ZTSN8NArchive3N7z11COutHandlerE__ZTSN8NArchive3N7z14CThreadDecoderE__ZTSN8NArchive3N7z15CFolderInStreamE__ZTSN8NArchive3N7z16CFolderOutStreamE__ZTSN8NArchive3N7z17CFolderOutStream2E__ZTSN8NArchive3N7z19CInArchiveExceptionE__ZTSN8NArchive3N7z22CCryptoGetTextPasswordE__ZTSN8NArchive3N7z28CUnsupportedFeatureExceptionE__ZTSN8NArchive3N7z8CHandlerE__ZTSN8NArchive3NGz24CCompressProgressInfoImpE__ZTSN8NArchive3NGz8CHandlerE__ZTSN8NArchive3NXz12IDecodeStateE__ZTSN8NArchive3NXz16CSeekToSeqStreamE__ZTSN8NArchive3NXz29CVirtProgress_To_OpenProgressE__ZTSN8NArchive3NXz30CVirtProgress_To_LocalProgressE__ZTSN8NArchive3NXz8CHandlerE__ZTSN8NArchive3NXz9CStatInfoE__ZTSN8NArchive4NBz28CHandlerE__ZTSN8NArchive4NCab16CFolderOutStreamE__ZTSN8NArchive4NCab17CCabBlockInStreamE__ZTSN8NArchive4NCab23CUnexpectedEndExceptionE__ZTSN8NArchive4NCab8CHandlerE__ZTSN8NArchive4NTar13CSparseStreamE__ZTSN8NArchive4NTar8CHandlerE__ZTSN8NArchive4NZip12CLzmaDecoderE__ZTSN8NArchive4NZip12CLzmaEncoderE__ZTSN8NArchive4NZip12CProgressImpE__ZTSN8NArchive4NZip12CUnexpectEndE__ZTSN8NArchive4NZip13CProgressVirtE__ZTSN8NArchive4NZip15CCacheOutStreamE__ZTSN8NArchive4NZip16CMtProgressMixerE__ZTSN8NArchive4NZip17CMtProgressMixer2E__ZTSN8NArchive4NZip8CHandlerE__ZTSN8NArchive5NLzma24CCompressProgressInfoImpE__ZTSN8NArchive5NLzma8CHandlerE__ZTSN8NArchive5NPpmd8CHandlerE__ZTSN8NArchive6NSplit8CHandlerE__ZTSN8NArchive7NParser8CHandlerE__ZTSN8NWindows16NSynchronization14CBaseEventWFMOE__ZTSN8NWindows16NSynchronization14CSemaphoreWFMOE__ZTSN8NWindows16NSynchronization15CBaseHandleWFMOE__ZTSN8NWindows16NSynchronization19CAutoResetEventWFMOE__ZTSN8NWindows16NSynchronization21CManualResetEventWFMOE__ZTSN8NWindows5NFile3NIO7CInFileE__ZTSN8NWindows5NFile3NIO8COutFileE__ZTSN8NWindows5NFile3NIO9CFileBaseE__ZTSN9NCompress10CCopyCoderE__ZTSN9NCompress2NZ8CDecoderE__ZTSN9NCompress4NLzx20Cx86ConvertOutStreamE__ZTSN9NCompress4NLzx8CDecoderE__ZTSN9NCompress5NBcj28CDecoderE__ZTSN9NCompress5NBcj28CEncoderE__ZTSN9NCompress5NLzma8CDecoderE__ZTSN9NCompress5NLzma8CEncoderE__ZTSN9NCompress5NPpmd8CDecoderE__ZTSN9NCompress5NPpmd8CEncoderE__ZTSN9NCompress6NBZip212CNsisDecoderE__ZTSN9NCompress6NBZip28CDecoderE__ZTSN9NCompress6NBZip28CEncoderE__ZTSN9NCompress6NLzma28CDecoderE__ZTSN9NCompress6NLzma28CEncoderE__ZTSN9NCompress7NShrink8CDecoderE__ZTSN9NCompress8NDeflate8NDecoder11CCOMCoder64E__ZTSN9NCompress8NDeflate8NDecoder6CCoderE__ZTSN9NCompress8NDeflate8NDecoder9CCOMCoderE__ZTSN9NCompress8NDeflate8NEncoder11CCOMCoder64E__ZTSN9NCompress8NDeflate8NEncoder6CCoderE__ZTSN9NCompress8NDeflate8NEncoder9CCOMCoderE__ZTSN9NCompress8NImplode8NDecoder10CExceptionE__ZTSN9NCompress8NImplode8NDecoder6CCoderE__ZTSN9NCompress8NPpmdZip8CDecoderE__ZTSN9NCompress8NPpmdZip8CEncoderE__ZTSN9NCompress8NQuantum8CDecoderE__ZTSN9NExitCode5EEnumE__ZTV10CByteSwap2__ZTV10CByteSwap4__ZTV10CCrcHasher__ZTV10IInArchive__ZTV10IOutStream__ZTV11CHashBundle__ZTV11CSha1Hasher__ZTV11CVirtThread__ZTV11IOutArchive__ZTV12CBenchBuffer__ZTV12CBufInStream__ZTV12CFilterCoder__ZTV12CMultiStream__ZTV13CCrcOutStream__ZTV13CDeltaDecoder__ZTV13CDeltaEncoder__ZTV13CInFileStream__ZTV13COutMemStream__ZTV13CReferenceBuf__ZTV13CSha256Hasher__ZTV13CTailInStream__ZTV14CExtentsStream__ZTV14CLocalProgress__ZTV14COutFileStream__ZTV14CTailOutStream__ZTV14CXzCrc64Hasher__ZTV14IBenchCallback__ZTV14ICompressCoder__ZTV14ISetProperties__ZTV14IStreamGetSize__ZTV15CBC_ARM_Decoder__ZTV15CBC_ARM_Encoder__ZTV15CBC_PPC_Decoder__ZTV15CBC_PPC_Encoder__ZTV15CBinderInStream__ZTV15CCachedInStream__ZTV15CDummyOutStream__ZTV15IArchiveOpenSeq__ZTV15ICompressCoder2__ZTV15ICompressFilter__ZTV15IHashCallbackUI__ZTV15IOpenCallbackUI__ZTV15IOutStreamFlush__ZTV16CBCJ_x86_Decoder__ZTV16CBCJ_x86_Encoder__ZTV16CBC_ARMT_Decoder__ZTV16CBC_ARMT_Encoder__ZTV16CBC_IA64_Decoder__ZTV16CBC_IA64_Encoder__ZTV16CBinderOutStream__ZTV16CBranchConverter__ZTV16CClusterInStream__ZTV16CInFileStreamVol__ZTV16CInStreamWithCRC__ZTV16CLimitedInStream__ZTV16COffsetOutStream__ZTV16COpenCallbackImp__ZTV16CStdInFileStream__ZTV17CBC_SPARC_Decoder__ZTV17CBC_SPARC_Encoder__ZTV17COutStreamWithCRC__ZTV17CStdOutFileStream__ZTV17ICryptoProperties__ZTV17IUpdateCallbackUI__ZTV18CBenchProgressInfo__ZTV18CBenchmarkInStream__ZTV18COutMultiVolStream__ZTV18COutStreamWithHash__ZTV18ICryptoSetPassword__ZTV18IExtractCallbackUI__ZTV18IUpdateCallbackUI2__ZTV19CBenchmarkOutStream__ZTV19CBufPtrSeqOutStream__ZTV19CDynBufSeqOutStream__ZTV19CMtCompressProgress__ZTV19CPrintBenchCallback__ZTV19IArchiveGetRawProps__ZTV19IBenchPrintCallback__ZTV19ICompressSetBufSize__ZTV19ICompressSetCoderMt__ZTV19IInArchiveGetStream__ZTV19ISequentialInStream__ZTV20CCrossThreadProgress__ZTV20CHashCallbackConsole__ZTV20COpenCallbackConsole__ZTV20IArchiveGetRootProps__ZTV20IArchiveOpenCallback__ZTV20ICompressSetInStream__ZTV20IEnumDirItemCallback__ZTV20ISequentialOutStream__ZTV21CBenchCallbackToPrint__ZTV21CBenchRandomGenerator__ZTV21ICompressProgressInfo__ZTV21ICompressSetOutStream__ZTV22CArchiveUpdateCallback__ZTV22CLimitedCachedInStream__ZTV22CUpdateCallbackConsole__ZTV22IArchiveUpdateCallback__ZTV22ICryptoGetTextPassword__ZTV22ICryptoResetInitVector__ZTV23CArchiveExtractCallback__ZTV23CExtractCallbackConsole__ZTV23IArchiveExtractCallback__ZTV23IArchiveUpdateCallback2__ZTV23ICryptoGetTextPassword2__ZTV25CEnumDirItemCallback_Hash__ZTV25ICompressGetSubStreamSize__ZTV25ICompressSetOutStreamSize__ZTV26CEnumDirItemUpdateCallback__ZTV26CLimitedSequentialInStream__ZTV26CSequentialInStreamWithCRC__ZTV26IArchiveOpenVolumeCallback__ZTV27CArchiveOpenCallback_Offset__ZTV27CLimitedSequentialOutStream__ZTV27CSequentialOutTempBufferImp__ZTV27ICompressSetCoderProperties__ZTV28CLockedSequentialInStreamImp__ZTV29CSequentialInStreamSizeCount2__ZTV29CSequentialOutStreamSizeCount__ZTV29IArchiveOpenSetSubArchiveName__ZTV29ICompressWriteCoderProperties__ZTV29IFolderArchiveExtractCallback__ZTV30ICompressSetDecoderProperties2__ZTV32CExtractCallback_To_OpenCallback__ZTV33ICompressGetInStreamProcessedSize__ZTV7CCodecs__ZTV7IHasher__ZTV8CGetProp__ZTV8IGetProp__ZTV8IUnknown__ZTV9IHashCalc__ZTV9IInStream__ZTV9IProgress__ZTVN11NCoderMixer12CCoderMixer2E__ZTVN11NCoderMixer14CCoderMixer2MTE__ZTVN11NCoderMixer7CCoder2E__ZTVN13NConsoleClose18CCtrlHandlerSetterE__ZTVN7NCrypto10NZipStrong10CBaseCoderE__ZTVN7NCrypto10NZipStrong8CDecoderE__ZTVN7NCrypto12CAesCbcCoderE__ZTVN7NCrypto14CAesCbcDecoderE__ZTVN7NCrypto14CAesCbcEncoderE__ZTVN7NCrypto4NZip7CCipherE__ZTVN7NCrypto4NZip8CDecoderE__ZTVN7NCrypto4NZip8CEncoderE__ZTVN7NCrypto6NWzAes10CBaseCoderE__ZTVN7NCrypto6NWzAes8CDecoderE__ZTVN7NCrypto6NWzAes8CEncoderE__ZTVN7NCrypto7NSevenZ10CBaseCoderE__ZTVN7NCrypto7NSevenZ8CDecoderE__ZTVN7NCrypto7NSevenZ8CEncoderE__ZTVN8NArchive2NZ8CHandlerE__ZTVN8NArchive3N7z14CThreadDecoderE__ZTVN8NArchive3N7z15CFolderInStreamE__ZTVN8NArchive3N7z16CFolderOutStreamE__ZTVN8NArchive3N7z17CFolderOutStream2E__ZTVN8NArchive3N7z22CCryptoGetTextPasswordE__ZTVN8NArchive3N7z8CHandlerE__ZTVN8NArchive3NGz24CCompressProgressInfoImpE__ZTVN8NArchive3NGz8CHandlerE__ZTVN8NArchive3NXz12IDecodeStateE__ZTVN8NArchive3NXz16CSeekToSeqStreamE__ZTVN8NArchive3NXz29CVirtProgress_To_OpenProgressE__ZTVN8NArchive3NXz30CVirtProgress_To_LocalProgressE__ZTVN8NArchive3NXz8CHandlerE__ZTVN8NArchive4NBz28CHandlerE__ZTVN8NArchive4NCab16CFolderOutStreamE__ZTVN8NArchive4NCab17CCabBlockInStreamE__ZTVN8NArchive4NCab8CHandlerE__ZTVN8NArchive4NTar13CSparseStreamE__ZTVN8NArchive4NTar8CHandlerE__ZTVN8NArchive4NZip12CLzmaDecoderE__ZTVN8NArchive4NZip12CLzmaEncoderE__ZTVN8NArchive4NZip12CProgressImpE__ZTVN8NArchive4NZip13CProgressVirtE__ZTVN8NArchive4NZip15CCacheOutStreamE__ZTVN8NArchive4NZip16CMtProgressMixerE__ZTVN8NArchive4NZip17CMtProgressMixer2E__ZTVN8NArchive4NZip8CHandlerE__ZTVN8NArchive5NLzma24CCompressProgressInfoImpE__ZTVN8NArchive5NLzma8CHandlerE__ZTVN8NArchive5NPpmd8CHandlerE__ZTVN8NArchive6NSplit8CHandlerE__ZTVN8NArchive7NParser8CHandlerE__ZTVN8NWindows16NSynchronization14CBaseEventWFMOE__ZTVN8NWindows16NSynchronization14CSemaphoreWFMOE__ZTVN8NWindows16NSynchronization15CBaseHandleWFMOE__ZTVN8NWindows16NSynchronization19CAutoResetEventWFMOE__ZTVN8NWindows16NSynchronization21CManualResetEventWFMOE__ZTVN8NWindows5NFile3NIO7CInFileE__ZTVN8NWindows5NFile3NIO8COutFileE__ZTVN8NWindows5NFile3NIO9CFileBaseE__ZTVN9NCompress10CCopyCoderE__ZTVN9NCompress2NZ8CDecoderE__ZTVN9NCompress4NLzx20Cx86ConvertOutStreamE__ZTVN9NCompress4NLzx8CDecoderE__ZTVN9NCompress5NBcj28CDecoderE__ZTVN9NCompress5NBcj28CEncoderE__ZTVN9NCompress5NLzma8CDecoderE__ZTVN9NCompress5NLzma8CEncoderE__ZTVN9NCompress5NPpmd8CDecoderE__ZTVN9NCompress5NPpmd8CEncoderE__ZTVN9NCompress6NBZip212CNsisDecoderE__ZTVN9NCompress6NBZip28CDecoderE__ZTVN9NCompress6NBZip28CEncoderE__ZTVN9NCompress6NLzma28CDecoderE__ZTVN9NCompress6NLzma28CEncoderE__ZTVN9NCompress7NShrink8CDecoderE__ZTVN9NCompress8NDeflate8NDecoder11CCOMCoder64E__ZTVN9NCompress8NDeflate8NDecoder6CCoderE__ZTVN9NCompress8NDeflate8NDecoder9CCOMCoderE__ZTVN9NCompress8NDeflate8NEncoder11CCOMCoder64E__ZTVN9NCompress8NDeflate8NEncoder9CCOMCoderE__ZTVN9NCompress8NImplode8NDecoder6CCoderE__ZTVN9NCompress8NPpmdZip8CDecoderE__ZTVN9NCompress8NPpmdZip8CEncoderE__ZTVN9NCompress8NQuantum8CDecoderE__ZThn152_N7NCrypto7NSevenZ8CDecoder14QueryInterfaceERK4GUIDPPv__ZThn152_N7NCrypto7NSevenZ8CDecoder21SetDecoderProperties2EPKhj__ZThn152_N7NCrypto7NSevenZ8CDecoder6AddRefEv__ZThn152_N7NCrypto7NSevenZ8CDecoder7ReleaseEv__ZThn152_N7NCrypto7NSevenZ8CDecoderD0Ev__ZThn152_N7NCrypto7NSevenZ8CDecoderD1Ev__ZThn152_N7NCrypto7NSevenZ8CEncoder14QueryInterfaceERK4GUIDPPv__ZThn152_N7NCrypto7NSevenZ8CEncoder20WriteCoderPropertiesEP20ISequentialOutStream__ZThn152_N7NCrypto7NSevenZ8CEncoder6AddRefEv__ZThn152_N7NCrypto7NSevenZ8CEncoder7ReleaseEv__ZThn152_N7NCrypto7NSevenZ8CEncoderD0Ev__ZThn152_N7NCrypto7NSevenZ8CEncoderD1Ev__ZThn160_N7NCrypto7NSevenZ8CEncoder14QueryInterfaceERK4GUIDPPv__ZThn160_N7NCrypto7NSevenZ8CEncoder15ResetInitVectorEv__ZThn160_N7NCrypto7NSevenZ8CEncoder6AddRefEv__ZThn160_N7NCrypto7NSevenZ8CEncoder7ReleaseEv__ZThn160_N7NCrypto7NSevenZ8CEncoderD0Ev__ZThn160_N7NCrypto7NSevenZ8CEncoderD1Ev__ZThn16_N12CFilterCoder14QueryInterfaceERK4GUIDPPv__ZThn16_N12CFilterCoder4ReadEPvjPj__ZThn16_N12CFilterCoder6AddRefEv__ZThn16_N12CFilterCoder7ReleaseEv__ZThn16_N12CFilterCoderD0Ev__ZThn16_N12CFilterCoderD1Ev__ZThn16_N13CDeltaEncoder14QueryInterfaceERK4GUIDPPv__ZThn16_N13CDeltaEncoder20WriteCoderPropertiesEP20ISequentialOutStream__ZThn16_N13CDeltaEncoder6AddRefEv__ZThn16_N13CDeltaEncoder7ReleaseEv__ZThn16_N13CDeltaEncoderD0Ev__ZThn16_N13CDeltaEncoderD1Ev__ZThn16_N16COpenCallbackImp14QueryInterfaceERK4GUIDPPv__ZThn16_N16COpenCallbackImp17SetSubArchiveNameEPKw__ZThn16_N16COpenCallbackImp6AddRefEv__ZThn16_N16COpenCallbackImp7ReleaseEv__ZThn16_N16COpenCallbackImpD0Ev__ZThn16_N16COpenCallbackImpD1Ev__ZThn16_N22CArchiveUpdateCallback11GetRootPropEjP14tagPROPVARIANT__ZThn16_N22CArchiveUpdateCallback14GetRootRawPropEjPPKvPjS3___ZThn16_N22CArchiveUpdateCallback14QueryInterfaceERK4GUIDPPv__ZThn16_N22CArchiveUpdateCallback6AddRefEv__ZThn16_N22CArchiveUpdateCallback7ReleaseEv__ZThn16_N22CArchiveUpdateCallbackD0Ev__ZThn16_N22CArchiveUpdateCallbackD1Ev__ZThn16_N23CArchiveExtractCallback12SetRatioInfoEPKyS1___ZThn16_N23CArchiveExtractCallback14QueryInterfaceERK4GUIDPPv__ZThn16_N23CArchiveExtractCallback6AddRefEv__ZThn16_N23CArchiveExtractCallback7ReleaseEv__ZThn16_N23CArchiveExtractCallbackD0Ev__ZThn16_N23CArchiveExtractCallbackD1Ev__ZThn16_N7NCrypto10NZipStrong10CBaseCoderD0Ev__ZThn16_N7NCrypto10NZipStrong10CBaseCoderD1Ev__ZThn16_N7NCrypto10NZipStrong8CDecoder14QueryInterfaceERK4GUIDPPv__ZThn16_N7NCrypto10NZipStrong8CDecoder6AddRefEv__ZThn16_N7NCrypto10NZipStrong8CDecoder7ReleaseEv__ZThn16_N7NCrypto10NZipStrong8CDecoderD0Ev__ZThn16_N7NCrypto10NZipStrong8CDecoderD1Ev__ZThn16_N7NCrypto12CAesCbcCoder14QueryInterfaceERK4GUIDPPv__ZThn16_N7NCrypto12CAesCbcCoder18SetCoderPropertiesEPKjPK14tagPROPVARIANTj__ZThn16_N7NCrypto12CAesCbcCoder6AddRefEv__ZThn16_N7NCrypto12CAesCbcCoder7ReleaseEv__ZThn16_N7NCrypto12CAesCbcCoderD0Ev__ZThn16_N7NCrypto12CAesCbcCoderD1Ev__ZThn16_N7NCrypto14CAesCbcDecoderD0Ev__ZThn16_N7NCrypto14CAesCbcDecoderD1Ev__ZThn16_N7NCrypto14CAesCbcEncoderD0Ev__ZThn16_N7NCrypto14CAesCbcEncoderD1Ev__ZThn16_N8NArchive3N7z8CHandler13SetPropertiesEPPKwPK14tagPROPVARIANTj__ZThn16_N8NArchive3N7z8CHandler14QueryInterfaceERK4GUIDPPv__ZThn16_N8NArchive3N7z8CHandler6AddRefEv__ZThn16_N8NArchive3N7z8CHandler7ReleaseEv__ZThn16_N8NArchive3N7z8CHandlerD0Ev__ZThn16_N8NArchive3N7z8CHandlerD1Ev__ZThn16_N8NArchive3NGz8CHandler11UpdateItemsEP20ISequentialOutStreamjP22IArchiveUpdateCallback__ZThn16_N8NArchive3NGz8CHandler14QueryInterfaceERK4GUIDPPv__ZThn16_N8NArchive3NGz8CHandler15GetFileTimeTypeEPj__ZThn16_N8NArchive3NGz8CHandler6AddRefEv__ZThn16_N8NArchive3NGz8CHandler7ReleaseEv__ZThn16_N8NArchive3NGz8CHandlerD0Ev__ZThn16_N8NArchive3NGz8CHandlerD1Ev__ZThn16_N8NArchive3NXz8CHandler11UpdateItemsEP20ISequentialOutStreamjP22IArchiveUpdateCallback__ZThn16_N8NArchive3NXz8CHandler14QueryInterfaceERK4GUIDPPv__ZThn16_N8NArchive3NXz8CHandler15GetFileTimeTypeEPj__ZThn16_N8NArchive3NXz8CHandler6AddRefEv__ZThn16_N8NArchive3NXz8CHandler7ReleaseEv__ZThn16_N8NArchive3NXz8CHandlerD0Ev__ZThn16_N8NArchive3NXz8CHandlerD1Ev__ZThn16_N8NArchive4NBz28CHandler11UpdateItemsEP20ISequentialOutStreamjP22IArchiveUpdateCallback__ZThn16_N8NArchive4NBz28CHandler14QueryInterfaceERK4GUIDPPv__ZThn16_N8NArchive4NBz28CHandler15GetFileTimeTypeEPj__ZThn16_N8NArchive4NBz28CHandler6AddRefEv__ZThn16_N8NArchive4NBz28CHandler7ReleaseEv__ZThn16_N8NArchive4NBz28CHandlerD0Ev__ZThn16_N8NArchive4NBz28CHandlerD1Ev__ZThn16_N8NArchive4NTar8CHandler14QueryInterfaceERK4GUIDPPv__ZThn16_N8NArchive4NTar8CHandler6AddRefEv__ZThn16_N8NArchive4NTar8CHandler7ReleaseEv__ZThn16_N8NArchive4NTar8CHandler9GetStreamEjPP19ISequentialInStream__ZThn16_N8NArchive4NTar8CHandlerD0Ev__ZThn16_N8NArchive4NTar8CHandlerD1Ev__ZThn16_N8NArchive4NZip8CHandler13SetPropertiesEPPKwPK14tagPROPVARIANTj__ZThn16_N8NArchive4NZip8CHandler14QueryInterfaceERK4GUIDPPv__ZThn16_N8NArchive4NZip8CHandler6AddRefEv__ZThn16_N8NArchive4NZip8CHandler7ReleaseEv__ZThn16_N8NArchive4NZip8CHandlerD0Ev__ZThn16_N8NArchive4NZip8CHandlerD1Ev__ZThn16_N9NCompress5NLzma8CDecoder12SetInBufSizeEjj__ZThn16_N9NCompress5NLzma8CDecoder13SetOutBufSizeEjj__ZThn16_N9NCompress5NLzma8CDecoder14QueryInterfaceERK4GUIDPPv__ZThn16_N9NCompress5NLzma8CDecoder6AddRefEv__ZThn16_N9NCompress5NLzma8CDecoder7ReleaseEv__ZThn16_N9NCompress5NLzma8CDecoderD0Ev__ZThn16_N9NCompress5NLzma8CDecoderD1Ev__ZThn16_N9NCompress5NLzma8CEncoder14QueryInterfaceERK4GUIDPPv__ZThn16_N9NCompress5NLzma8CEncoder20WriteCoderPropertiesEP20ISequentialOutStream__ZThn16_N9NCompress5NLzma8CEncoder6AddRefEv__ZThn16_N9NCompress5NLzma8CEncoder7ReleaseEv__ZThn16_N9NCompress5NLzma8CEncoderD0Ev__ZThn16_N9NCompress5NLzma8CEncoderD1Ev__ZThn16_N9NCompress5NPpmd8CDecoder11SetInStreamEP19ISequentialInStream__ZThn16_N9NCompress5NPpmd8CDecoder14QueryInterfaceERK4GUIDPPv__ZThn16_N9NCompress5NPpmd8CDecoder15ReleaseInStreamEv__ZThn16_N9NCompress5NPpmd8CDecoder6AddRefEv__ZThn16_N9NCompress5NPpmd8CDecoder7ReleaseEv__ZThn16_N9NCompress5NPpmd8CDecoderD0Ev__ZThn16_N9NCompress5NPpmd8CDecoderD1Ev__ZThn16_N9NCompress5NPpmd8CEncoder14QueryInterfaceERK4GUIDPPv__ZThn16_N9NCompress5NPpmd8CEncoder20WriteCoderPropertiesEP20ISequentialOutStream__ZThn16_N9NCompress5NPpmd8CEncoder6AddRefEv__ZThn16_N9NCompress5NPpmd8CEncoder7ReleaseEv__ZThn16_N9NCompress5NPpmd8CEncoderD0Ev__ZThn16_N9NCompress5NPpmd8CEncoderD1Ev__ZThn16_N9NCompress6NBZip212CNsisDecoder14QueryInterfaceERK4GUIDPPv__ZThn16_N9NCompress6NBZip212CNsisDecoder16SetOutStreamSizeEPKy__ZThn16_N9NCompress6NBZip212CNsisDecoder6AddRefEv__ZThn16_N9NCompress6NBZip212CNsisDecoder7ReleaseEv__ZThn16_N9NCompress6NBZip212CNsisDecoderD0Ev__ZThn16_N9NCompress6NBZip212CNsisDecoderD1Ev__ZThn16_N9NCompress6NBZip28CEncoder14QueryInterfaceERK4GUIDPPv__ZThn16_N9NCompress6NBZip28CEncoder18SetNumberOfThreadsEj__ZThn16_N9NCompress6NBZip28CEncoder6AddRefEv__ZThn16_N9NCompress6NBZip28CEncoder7ReleaseEv__ZThn16_N9NCompress6NBZip28CEncoderD0Ev__ZThn16_N9NCompress6NBZip28CEncoderD1Ev__ZThn16_N9NCompress6NLzma28CDecoder14QueryInterfaceERK4GUIDPPv__ZThn16_N9NCompress6NLzma28CDecoder24GetInStreamProcessedSizeEPy__ZThn16_N9NCompress6NLzma28CDecoder6AddRefEv__ZThn16_N9NCompress6NLzma28CDecoder7ReleaseEv__ZThn16_N9NCompress6NLzma28CDecoderD0Ev__ZThn16_N9NCompress6NLzma28CDecoderD1Ev__ZThn16_N9NCompress6NLzma28CEncoder14QueryInterfaceERK4GUIDPPv__ZThn16_N9NCompress6NLzma28CEncoder20WriteCoderPropertiesEP20ISequentialOutStream__ZThn16_N9NCompress6NLzma28CEncoder6AddRefEv__ZThn16_N9NCompress6NLzma28CEncoder7ReleaseEv__ZThn16_N9NCompress6NLzma28CEncoderD0Ev__ZThn16_N9NCompress6NLzma28CEncoderD1Ev__ZThn16_N9NCompress8NDeflate8NDecoder11CCOMCoder64D0Ev__ZThn16_N9NCompress8NDeflate8NDecoder11CCOMCoder64D1Ev__ZThn16_N9NCompress8NDeflate8NDecoder6CCoder11SetInStreamEP19ISequentialInStream__ZThn16_N9NCompress8NDeflate8NDecoder6CCoder14QueryInterfaceERK4GUIDPPv__ZThn16_N9NCompress8NDeflate8NDecoder6CCoder15ReleaseInStreamEv__ZThn16_N9NCompress8NDeflate8NDecoder6CCoder6AddRefEv__ZThn16_N9NCompress8NDeflate8NDecoder6CCoder7ReleaseEv__ZThn16_N9NCompress8NDeflate8NDecoder6CCoderD0Ev__ZThn16_N9NCompress8NDeflate8NDecoder6CCoderD1Ev__ZThn16_N9NCompress8NDeflate8NDecoder9CCOMCoderD0Ev__ZThn16_N9NCompress8NDeflate8NDecoder9CCOMCoderD1Ev__ZThn24_N12CFilterCoder12SetOutStreamEP20ISequentialOutStream__ZThn24_N12CFilterCoder14QueryInterfaceERK4GUIDPPv__ZThn24_N12CFilterCoder16ReleaseOutStreamEv__ZThn24_N12CFilterCoder6AddRefEv__ZThn24_N12CFilterCoder7ReleaseEv__ZThn24_N12CFilterCoderD0Ev__ZThn24_N12CFilterCoderD1Ev__ZThn24_N16COpenCallbackImp14QueryInterfaceERK4GUIDPPv__ZThn24_N16COpenCallbackImp21CryptoGetTextPasswordEPPw__ZThn24_N16COpenCallbackImp6AddRefEv__ZThn24_N16COpenCallbackImp7ReleaseEv__ZThn24_N16COpenCallbackImpD0Ev__ZThn24_N16COpenCallbackImpD1Ev__ZThn24_N22CArchiveUpdateCallback14QueryInterfaceERK4GUIDPPv__ZThn24_N22CArchiveUpdateCallback22CryptoGetTextPassword2EPiPPw__ZThn24_N22CArchiveUpdateCallback6AddRefEv__ZThn24_N22CArchiveUpdateCallback7ReleaseEv__ZThn24_N22CArchiveUpdateCallbackD0Ev__ZThn24_N22CArchiveUpdateCallbackD1Ev__ZThn24_N8NArchive3N7z8CHandler11UpdateItemsEP20ISequentialOutStreamjP22IArchiveUpdateCallback__ZThn24_N8NArchive3N7z8CHandler14QueryInterfaceERK4GUIDPPv__ZThn24_N8NArchive3N7z8CHandler15GetFileTimeTypeEPj__ZThn24_N8NArchive3N7z8CHandler6AddRefEv__ZThn24_N8NArchive3N7z8CHandler7ReleaseEv__ZThn24_N8NArchive3N7z8CHandlerD0Ev__ZThn24_N8NArchive3N7z8CHandlerD1Ev__ZThn24_N8NArchive3NGz8CHandler13SetPropertiesEPPKwPK14tagPROPVARIANTj__ZThn24_N8NArchive3NGz8CHandler14QueryInterfaceERK4GUIDPPv__ZThn24_N8NArchive3NGz8CHandler6AddRefEv__ZThn24_N8NArchive3NGz8CHandler7ReleaseEv__ZThn24_N8NArchive3NGz8CHandlerD0Ev__ZThn24_N8NArchive3NGz8CHandlerD1Ev__ZThn24_N8NArchive3NXz8CHandler13SetPropertiesEPPKwPK14tagPROPVARIANTj__ZThn24_N8NArchive3NXz8CHandler14QueryInterfaceERK4GUIDPPv__ZThn24_N8NArchive3NXz8CHandler6AddRefEv__ZThn24_N8NArchive3NXz8CHandler7ReleaseEv__ZThn24_N8NArchive3NXz8CHandlerD0Ev__ZThn24_N8NArchive3NXz8CHandlerD1Ev__ZThn24_N8NArchive4NBz28CHandler13SetPropertiesEPPKwPK14tagPROPVARIANTj__ZThn24_N8NArchive4NBz28CHandler14QueryInterfaceERK4GUIDPPv__ZThn24_N8NArchive4NBz28CHandler6AddRefEv__ZThn24_N8NArchive4NBz28CHandler7ReleaseEv__ZThn24_N8NArchive4NBz28CHandlerD0Ev__ZThn24_N8NArchive4NBz28CHandlerD1Ev__ZThn24_N8NArchive4NTar8CHandler13SetPropertiesEPPKwPK14tagPROPVARIANTj__ZThn24_N8NArchive4NTar8CHandler14QueryInterfaceERK4GUIDPPv__ZThn24_N8NArchive4NTar8CHandler6AddRefEv__ZThn24_N8NArchive4NTar8CHandler7ReleaseEv__ZThn24_N8NArchive4NTar8CHandlerD0Ev__ZThn24_N8NArchive4NTar8CHandlerD1Ev__ZThn24_N9NCompress5NLzma8CDecoder11SetInStreamEP19ISequentialInStream__ZThn24_N9NCompress5NLzma8CDecoder14QueryInterfaceERK4GUIDPPv__ZThn24_N9NCompress5NLzma8CDecoder15ReleaseInStreamEv__ZThn24_N9NCompress5NLzma8CDecoder6AddRefEv__ZThn24_N9NCompress5NLzma8CDecoder7ReleaseEv__ZThn24_N9NCompress5NLzma8CDecoderD0Ev__ZThn24_N9NCompress5NLzma8CDecoderD1Ev__ZThn24_N9NCompress5NPpmd8CDecoder14QueryInterfaceERK4GUIDPPv__ZThn24_N9NCompress5NPpmd8CDecoder16SetOutStreamSizeEPKy__ZThn24_N9NCompress5NPpmd8CDecoder6AddRefEv__ZThn24_N9NCompress5NPpmd8CDecoder7ReleaseEv__ZThn24_N9NCompress5NPpmd8CDecoderD0Ev__ZThn24_N9NCompress5NPpmd8CDecoderD1Ev__ZThn24_N9NCompress6NLzma28CDecoder11SetInStreamEP19ISequentialInStream__ZThn24_N9NCompress6NLzma28CDecoder14QueryInterfaceERK4GUIDPPv__ZThn24_N9NCompress6NLzma28CDecoder15ReleaseInStreamEv__ZThn24_N9NCompress6NLzma28CDecoder6AddRefEv__ZThn24_N9NCompress6NLzma28CDecoder7ReleaseEv__ZThn24_N9NCompress6NLzma28CDecoderD0Ev__ZThn24_N9NCompress6NLzma28CDecoderD1Ev__ZThn24_N9NCompress8NDeflate8NDecoder11CCOMCoder64D0Ev__ZThn24_N9NCompress8NDeflate8NDecoder11CCOMCoder64D1Ev__ZThn24_N9NCompress8NDeflate8NDecoder6CCoder14QueryInterfaceERK4GUIDPPv__ZThn24_N9NCompress8NDeflate8NDecoder6CCoder16SetOutStreamSizeEPKy__ZThn24_N9NCompress8NDeflate8NDecoder6CCoder6AddRefEv__ZThn24_N9NCompress8NDeflate8NDecoder6CCoder7ReleaseEv__ZThn24_N9NCompress8NDeflate8NDecoder6CCoderD0Ev__ZThn24_N9NCompress8NDeflate8NDecoder6CCoderD1Ev__ZThn24_N9NCompress8NDeflate8NDecoder9CCOMCoderD0Ev__ZThn24_N9NCompress8NDeflate8NDecoder9CCOMCoderD1Ev__ZThn32_N12CFilterCoder14QueryInterfaceERK4GUIDPPv__ZThn32_N12CFilterCoder5WriteEPKvjPj__ZThn32_N12CFilterCoder6AddRefEv__ZThn32_N12CFilterCoder7ReleaseEv__ZThn32_N12CFilterCoderD0Ev__ZThn32_N12CFilterCoderD1Ev__ZThn32_N22CArchiveUpdateCallback14QueryInterfaceERK4GUIDPPv__ZThn32_N22CArchiveUpdateCallback21CryptoGetTextPasswordEPPw__ZThn32_N22CArchiveUpdateCallback6AddRefEv__ZThn32_N22CArchiveUpdateCallback7ReleaseEv__ZThn32_N22CArchiveUpdateCallbackD0Ev__ZThn32_N22CArchiveUpdateCallbackD1Ev__ZThn32_N8NArchive4NTar8CHandler11UpdateItemsEP20ISequentialOutStreamjP22IArchiveUpdateCallback__ZThn32_N8NArchive4NTar8CHandler14QueryInterfaceERK4GUIDPPv__ZThn32_N8NArchive4NTar8CHandler15GetFileTimeTypeEPj__ZThn32_N8NArchive4NTar8CHandler6AddRefEv__ZThn32_N8NArchive4NTar8CHandler7ReleaseEv__ZThn32_N8NArchive4NTar8CHandlerD0Ev__ZThn32_N8NArchive4NTar8CHandlerD1Ev__ZThn32_N9NCompress5NLzma8CDecoder14QueryInterfaceERK4GUIDPPv__ZThn32_N9NCompress5NLzma8CDecoder16SetOutStreamSizeEPKy__ZThn32_N9NCompress5NLzma8CDecoder6AddRefEv__ZThn32_N9NCompress5NLzma8CDecoder7ReleaseEv__ZThn32_N9NCompress5NLzma8CDecoderD0Ev__ZThn32_N9NCompress5NLzma8CDecoderD1Ev__ZThn32_N9NCompress5NPpmd8CDecoder14QueryInterfaceERK4GUIDPPv__ZThn32_N9NCompress5NPpmd8CDecoder4ReadEPvjPj__ZThn32_N9NCompress5NPpmd8CDecoder6AddRefEv__ZThn32_N9NCompress5NPpmd8CDecoder7ReleaseEv__ZThn32_N9NCompress5NPpmd8CDecoderD0Ev__ZThn32_N9NCompress5NPpmd8CDecoderD1Ev__ZThn32_N9NCompress6NLzma28CDecoder14QueryInterfaceERK4GUIDPPv__ZThn32_N9NCompress6NLzma28CDecoder16SetOutStreamSizeEPKy__ZThn32_N9NCompress6NLzma28CDecoder6AddRefEv__ZThn32_N9NCompress6NLzma28CDecoder7ReleaseEv__ZThn32_N9NCompress6NLzma28CDecoderD0Ev__ZThn32_N9NCompress6NLzma28CDecoderD1Ev__ZThn32_N9NCompress8NDeflate8NDecoder11CCOMCoder64D0Ev__ZThn32_N9NCompress8NDeflate8NDecoder11CCOMCoder64D1Ev__ZThn32_N9NCompress8NDeflate8NDecoder6CCoder14QueryInterfaceERK4GUIDPPv__ZThn32_N9NCompress8NDeflate8NDecoder6CCoder4ReadEPvjPj__ZThn32_N9NCompress8NDeflate8NDecoder6CCoder6AddRefEv__ZThn32_N9NCompress8NDeflate8NDecoder6CCoder7ReleaseEv__ZThn32_N9NCompress8NDeflate8NDecoder6CCoderD0Ev__ZThn32_N9NCompress8NDeflate8NDecoder6CCoderD1Ev__ZThn32_N9NCompress8NDeflate8NDecoder9CCOMCoderD0Ev__ZThn32_N9NCompress8NDeflate8NDecoder9CCOMCoderD1Ev__ZThn352_N7NCrypto10NZipStrong10CBaseCoder17CryptoSetPasswordEPKhj__ZThn352_N7NCrypto10NZipStrong10CBaseCoderD0Ev__ZThn352_N7NCrypto10NZipStrong10CBaseCoderD1Ev__ZThn352_N7NCrypto10NZipStrong8CDecoder14QueryInterfaceERK4GUIDPPv__ZThn352_N7NCrypto10NZipStrong8CDecoder6AddRefEv__ZThn352_N7NCrypto10NZipStrong8CDecoder7ReleaseEv__ZThn352_N7NCrypto10NZipStrong8CDecoderD0Ev__ZThn352_N7NCrypto10NZipStrong8CDecoderD1Ev__ZThn40_N12CFilterCoder14QueryInterfaceERK4GUIDPPv__ZThn40_N12CFilterCoder5FlushEv__ZThn40_N12CFilterCoder6AddRefEv__ZThn40_N12CFilterCoder7ReleaseEv__ZThn40_N12CFilterCoderD0Ev__ZThn40_N12CFilterCoderD1Ev__ZThn40_N22CArchiveUpdateCallback12SetRatioInfoEPKyS1___ZThn40_N22CArchiveUpdateCallback14QueryInterfaceERK4GUIDPPv__ZThn40_N22CArchiveUpdateCallback6AddRefEv__ZThn40_N22CArchiveUpdateCallback7ReleaseEv__ZThn40_N22CArchiveUpdateCallbackD0Ev__ZThn40_N22CArchiveUpdateCallbackD1Ev__ZThn40_N9NCompress5NLzma8CDecoder14QueryInterfaceERK4GUIDPPv__ZThn40_N9NCompress5NLzma8CDecoder4ReadEPvjPj__ZThn40_N9NCompress5NLzma8CDecoder6AddRefEv__ZThn40_N9NCompress5NLzma8CDecoder7ReleaseEv__ZThn40_N9NCompress5NLzma8CDecoderD0Ev__ZThn40_N9NCompress5NLzma8CDecoderD1Ev__ZThn40_N9NCompress6NLzma28CDecoder14QueryInterfaceERK4GUIDPPv__ZThn40_N9NCompress6NLzma28CDecoder4ReadEPvjPj__ZThn40_N9NCompress6NLzma28CDecoder6AddRefEv__ZThn40_N9NCompress6NLzma28CDecoder7ReleaseEv__ZThn40_N9NCompress6NLzma28CDecoderD0Ev__ZThn40_N9NCompress6NLzma28CDecoderD1Ev__ZThn48_N12CFilterCoder14QueryInterfaceERK4GUIDPPv__ZThn48_N12CFilterCoder17CryptoSetPasswordEPKhj__ZThn48_N12CFilterCoder6AddRefEv__ZThn48_N12CFilterCoder7ReleaseEv__ZThn48_N12CFilterCoderD0Ev__ZThn48_N12CFilterCoderD1Ev__ZThn56_N12CFilterCoder13SetInitVectorEPKhj__ZThn56_N12CFilterCoder14QueryInterfaceERK4GUIDPPv__ZThn56_N12CFilterCoder6AddRefEv__ZThn56_N12CFilterCoder6SetKeyEPKhj__ZThn56_N12CFilterCoder7ReleaseEv__ZThn56_N12CFilterCoderD0Ev__ZThn56_N12CFilterCoderD1Ev__ZThn584_N7NCrypto6NWzAes8CDecoder14QueryInterfaceERK4GUIDPPv__ZThn584_N7NCrypto6NWzAes8CDecoder21SetDecoderProperties2EPKhj__ZThn584_N7NCrypto6NWzAes8CDecoder6AddRefEv__ZThn584_N7NCrypto6NWzAes8CDecoder7ReleaseEv__ZThn584_N7NCrypto6NWzAes8CDecoderD0Ev__ZThn584_N7NCrypto6NWzAes8CDecoderD1Ev__ZThn64_N12CFilterCoder14QueryInterfaceERK4GUIDPPv__ZThn64_N12CFilterCoder18SetCoderPropertiesEPKjPK14tagPROPVARIANTj__ZThn64_N12CFilterCoder6AddRefEv__ZThn64_N12CFilterCoder7ReleaseEv__ZThn64_N12CFilterCoderD0Ev__ZThn64_N12CFilterCoderD1Ev__ZThn72_N12CFilterCoder14QueryInterfaceERK4GUIDPPv__ZThn72_N12CFilterCoder20WriteCoderPropertiesEP20ISequentialOutStream__ZThn72_N12CFilterCoder6AddRefEv__ZThn72_N12CFilterCoder7ReleaseEv__ZThn72_N12CFilterCoderD0Ev__ZThn72_N12CFilterCoderD1Ev__ZThn80_N12CFilterCoder14QueryInterfaceERK4GUIDPPv__ZThn80_N12CFilterCoder15ResetInitVectorEv__ZThn80_N12CFilterCoder6AddRefEv__ZThn80_N12CFilterCoder7ReleaseEv__ZThn80_N12CFilterCoderD0Ev__ZThn80_N12CFilterCoderD1Ev__ZThn88_N12CFilterCoder14QueryInterfaceERK4GUIDPPv__ZThn88_N12CFilterCoder21SetDecoderProperties2EPKhj__ZThn88_N12CFilterCoder6AddRefEv__ZThn88_N12CFilterCoder7ReleaseEv__ZThn88_N12CFilterCoderD0Ev__ZThn88_N12CFilterCoderD1Ev__ZThn8_N10CCrcHasher14QueryInterfaceERK4GUIDPPv__ZThn8_N10CCrcHasher18SetCoderPropertiesEPKjPK14tagPROPVARIANTj__ZThn8_N10CCrcHasher6AddRefEv__ZThn8_N10CCrcHasher7ReleaseEv__ZThn8_N10CCrcHasherD0Ev__ZThn8_N10CCrcHasherD1Ev__ZThn8_N11NCoderMixer14CCoderMixer2MT11SetBindInfoERKNS_9CBindInfoE__ZThn8_N11NCoderMixer14CCoderMixer2MT12SetCoderInfoEjPPKyS3___ZThn8_N11NCoderMixer14CCoderMixer2MT6ReInitEv__ZThn8_N12CFilterCoder11SetInStreamEP19ISequentialInStream__ZThn8_N12CFilterCoder14QueryInterfaceERK4GUIDPPv__ZThn8_N12CFilterCoder15ReleaseInStreamEv__ZThn8_N12CFilterCoder6AddRefEv__ZThn8_N12CFilterCoder7ReleaseEv__ZThn8_N12CFilterCoderD0Ev__ZThn8_N12CFilterCoderD1Ev__ZThn8_N13CDeltaDecoder14QueryInterfaceERK4GUIDPPv__ZThn8_N13CDeltaDecoder21SetDecoderProperties2EPKhj__ZThn8_N13CDeltaDecoder6AddRefEv__ZThn8_N13CDeltaDecoder7ReleaseEv__ZThn8_N13CDeltaDecoderD0Ev__ZThn8_N13CDeltaDecoderD1Ev__ZThn8_N13CDeltaEncoder14QueryInterfaceERK4GUIDPPv__ZThn8_N13CDeltaEncoder18SetCoderPropertiesEPKjPK14tagPROPVARIANTj__ZThn8_N13CDeltaEncoder6AddRefEv__ZThn8_N13CDeltaEncoder7ReleaseEv__ZThn8_N13CDeltaEncoderD0Ev__ZThn8_N13CDeltaEncoderD1Ev__ZThn8_N13CInFileStream14QueryInterfaceERK4GUIDPPv__ZThn8_N13CInFileStream6AddRefEv__ZThn8_N13CInFileStream7GetSizeEPy__ZThn8_N13CInFileStream7ReleaseEv__ZThn8_N13CInFileStreamD0Ev__ZThn8_N13CInFileStreamD1Ev__ZThn8_N16CInFileStreamVolD0Ev__ZThn8_N16CInFileStreamVolD1Ev__ZThn8_N16COpenCallbackImp11GetPropertyEjP14tagPROPVARIANT__ZThn8_N16COpenCallbackImp14QueryInterfaceERK4GUIDPPv__ZThn8_N16COpenCallbackImp6AddRefEv__ZThn8_N16COpenCallbackImp7ReleaseEv__ZThn8_N16COpenCallbackImp9GetStreamEPKwPP9IInStream__ZThn8_N16COpenCallbackImpD0Ev__ZThn8_N16COpenCallbackImpD1Ev__ZThn8_N19CBenchmarkOutStreamD0Ev__ZThn8_N19CBenchmarkOutStreamD1Ev__ZThn8_N22CArchiveUpdateCallback10GetRawPropEjjPPKvPjS3___ZThn8_N22CArchiveUpdateCallback14GetNumRawPropsEPj__ZThn8_N22CArchiveUpdateCallback14GetRawPropInfoEjPPwPj__ZThn8_N22CArchiveUpdateCallback14QueryInterfaceERK4GUIDPPv__ZThn8_N22CArchiveUpdateCallback6AddRefEv__ZThn8_N22CArchiveUpdateCallback7ReleaseEv__ZThn8_N22CArchiveUpdateCallback9GetParentEjPjS0___ZThn8_N22CArchiveUpdateCallbackD0Ev__ZThn8_N22CArchiveUpdateCallbackD1Ev__ZThn8_N23CArchiveExtractCallback14QueryInterfaceERK4GUIDPPv__ZThn8_N23CArchiveExtractCallback21CryptoGetTextPasswordEPPw__ZThn8_N23CArchiveExtractCallback6AddRefEv__ZThn8_N23CArchiveExtractCallback7ReleaseEv__ZThn8_N23CArchiveExtractCallbackD0Ev__ZThn8_N23CArchiveExtractCallbackD1Ev__ZThn8_N23CExtractCallbackConsole14QueryInterfaceERK4GUIDPPv__ZThn8_N23CExtractCallbackConsole21CryptoGetTextPasswordEPPw__ZThn8_N23CExtractCallbackConsole6AddRefEv__ZThn8_N23CExtractCallbackConsole7ReleaseEv__ZThn8_N23CExtractCallbackConsoleD0Ev__ZThn8_N23CExtractCallbackConsoleD1Ev__ZThn8_N27CArchiveOpenCallback_Offset14QueryInterfaceERK4GUIDPPv__ZThn8_N27CArchiveOpenCallback_Offset21CryptoGetTextPasswordEPPw__ZThn8_N27CArchiveOpenCallback_Offset6AddRefEv__ZThn8_N27CArchiveOpenCallback_Offset7ReleaseEv__ZThn8_N27CArchiveOpenCallback_OffsetD0Ev__ZThn8_N27CArchiveOpenCallback_OffsetD1Ev__ZThn8_N29CSequentialInStreamSizeCount214QueryInterfaceERK4GUIDPPv__ZThn8_N29CSequentialInStreamSizeCount216GetSubStreamSizeEyPy__ZThn8_N29CSequentialInStreamSizeCount26AddRefEv__ZThn8_N29CSequentialInStreamSizeCount27ReleaseEv__ZThn8_N29CSequentialInStreamSizeCount2D0Ev__ZThn8_N29CSequentialInStreamSizeCount2D1Ev__ZThn8_N32CExtractCallback_To_OpenCallback12SetRatioInfoEPKyS1___ZThn8_N32CExtractCallback_To_OpenCallback14QueryInterfaceERK4GUIDPPv__ZThn8_N32CExtractCallback_To_OpenCallback6AddRefEv__ZThn8_N32CExtractCallback_To_OpenCallback7ReleaseEv__ZThn8_N32CExtractCallback_To_OpenCallbackD0Ev__ZThn8_N32CExtractCallback_To_OpenCallbackD1Ev__ZThn8_N7NCrypto10NZipStrong10CBaseCoderD0Ev__ZThn8_N7NCrypto10NZipStrong10CBaseCoderD1Ev__ZThn8_N7NCrypto10NZipStrong8CDecoder14QueryInterfaceERK4GUIDPPv__ZThn8_N7NCrypto10NZipStrong8CDecoder6AddRefEv__ZThn8_N7NCrypto10NZipStrong8CDecoder7ReleaseEv__ZThn8_N7NCrypto10NZipStrong8CDecoderD0Ev__ZThn8_N7NCrypto10NZipStrong8CDecoderD1Ev__ZThn8_N7NCrypto12CAesCbcCoder13SetInitVectorEPKhj__ZThn8_N7NCrypto12CAesCbcCoder14QueryInterfaceERK4GUIDPPv__ZThn8_N7NCrypto12CAesCbcCoder6AddRefEv__ZThn8_N7NCrypto12CAesCbcCoder6SetKeyEPKhj__ZThn8_N7NCrypto12CAesCbcCoder7ReleaseEv__ZThn8_N7NCrypto12CAesCbcCoderD0Ev__ZThn8_N7NCrypto12CAesCbcCoderD1Ev__ZThn8_N7NCrypto14CAesCbcDecoderD0Ev__ZThn8_N7NCrypto14CAesCbcDecoderD1Ev__ZThn8_N7NCrypto14CAesCbcEncoderD0Ev__ZThn8_N7NCrypto14CAesCbcEncoderD1Ev__ZThn8_N7NCrypto4NZip7CCipher17CryptoSetPasswordEPKhj__ZThn8_N7NCrypto4NZip7CCipherD0Ev__ZThn8_N7NCrypto4NZip7CCipherD1Ev__ZThn8_N7NCrypto4NZip8CDecoder14QueryInterfaceERK4GUIDPPv__ZThn8_N7NCrypto4NZip8CDecoder6AddRefEv__ZThn8_N7NCrypto4NZip8CDecoder7ReleaseEv__ZThn8_N7NCrypto4NZip8CDecoderD0Ev__ZThn8_N7NCrypto4NZip8CDecoderD1Ev__ZThn8_N7NCrypto4NZip8CEncoder14QueryInterfaceERK4GUIDPPv__ZThn8_N7NCrypto4NZip8CEncoder6AddRefEv__ZThn8_N7NCrypto4NZip8CEncoder7ReleaseEv__ZThn8_N7NCrypto4NZip8CEncoderD0Ev__ZThn8_N7NCrypto4NZip8CEncoderD1Ev__ZThn8_N7NCrypto6NWzAes10CBaseCoder17CryptoSetPasswordEPKhj__ZThn8_N7NCrypto6NWzAes10CBaseCoderD0Ev__ZThn8_N7NCrypto6NWzAes10CBaseCoderD1Ev__ZThn8_N7NCrypto6NWzAes8CDecoder14QueryInterfaceERK4GUIDPPv__ZThn8_N7NCrypto6NWzAes8CDecoder6AddRefEv__ZThn8_N7NCrypto6NWzAes8CDecoder7ReleaseEv__ZThn8_N7NCrypto6NWzAes8CDecoderD0Ev__ZThn8_N7NCrypto6NWzAes8CDecoderD1Ev__ZThn8_N7NCrypto6NWzAes8CEncoder14QueryInterfaceERK4GUIDPPv__ZThn8_N7NCrypto6NWzAes8CEncoder6AddRefEv__ZThn8_N7NCrypto6NWzAes8CEncoder7ReleaseEv__ZThn8_N7NCrypto6NWzAes8CEncoderD0Ev__ZThn8_N7NCrypto6NWzAes8CEncoderD1Ev__ZThn8_N7NCrypto7NSevenZ10CBaseCoder17CryptoSetPasswordEPKhj__ZThn8_N7NCrypto7NSevenZ10CBaseCoderD0Ev__ZThn8_N7NCrypto7NSevenZ10CBaseCoderD1Ev__ZThn8_N7NCrypto7NSevenZ8CDecoder14QueryInterfaceERK4GUIDPPv__ZThn8_N7NCrypto7NSevenZ8CDecoder6AddRefEv__ZThn8_N7NCrypto7NSevenZ8CDecoder7ReleaseEv__ZThn8_N7NCrypto7NSevenZ8CDecoderD0Ev__ZThn8_N7NCrypto7NSevenZ8CDecoderD1Ev__ZThn8_N7NCrypto7NSevenZ8CEncoder14QueryInterfaceERK4GUIDPPv__ZThn8_N7NCrypto7NSevenZ8CEncoder6AddRefEv__ZThn8_N7NCrypto7NSevenZ8CEncoder7ReleaseEv__ZThn8_N7NCrypto7NSevenZ8CEncoderD0Ev__ZThn8_N7NCrypto7NSevenZ8CEncoderD1Ev__ZThn8_N8NArchive3N7z15CFolderInStream14QueryInterfaceERK4GUIDPPv__ZThn8_N8NArchive3N7z15CFolderInStream16GetSubStreamSizeEyPy__ZThn8_N8NArchive3N7z15CFolderInStream6AddRefEv__ZThn8_N8NArchive3N7z15CFolderInStream7ReleaseEv__ZThn8_N8NArchive3N7z15CFolderInStreamD0Ev__ZThn8_N8NArchive3N7z15CFolderInStreamD1Ev__ZThn8_N8NArchive3N7z16CFolderOutStream14QueryInterfaceERK4GUIDPPv__ZThn8_N8NArchive3N7z16CFolderOutStream16GetSubStreamSizeEyPy__ZThn8_N8NArchive3N7z16CFolderOutStream6AddRefEv__ZThn8_N8NArchive3N7z16CFolderOutStream7ReleaseEv__ZThn8_N8NArchive3N7z16CFolderOutStreamD0Ev__ZThn8_N8NArchive3N7z16CFolderOutStreamD1Ev__ZThn8_N8NArchive3N7z8CHandler10GetRawPropEjjPPKvPjS5___ZThn8_N8NArchive3N7z8CHandler14GetNumRawPropsEPj__ZThn8_N8NArchive3N7z8CHandler14GetRawPropInfoEjPPwPj__ZThn8_N8NArchive3N7z8CHandler14QueryInterfaceERK4GUIDPPv__ZThn8_N8NArchive3N7z8CHandler6AddRefEv__ZThn8_N8NArchive3N7z8CHandler7ReleaseEv__ZThn8_N8NArchive3N7z8CHandler9GetParentEjPjS2___ZThn8_N8NArchive3N7z8CHandlerD0Ev__ZThn8_N8NArchive3N7z8CHandlerD1Ev__ZThn8_N8NArchive3NGz8CHandler14QueryInterfaceERK4GUIDPPv__ZThn8_N8NArchive3NGz8CHandler6AddRefEv__ZThn8_N8NArchive3NGz8CHandler7OpenSeqEP19ISequentialInStream__ZThn8_N8NArchive3NGz8CHandler7ReleaseEv__ZThn8_N8NArchive3NGz8CHandlerD0Ev__ZThn8_N8NArchive3NGz8CHandlerD1Ev__ZThn8_N8NArchive3NXz8CHandler14QueryInterfaceERK4GUIDPPv__ZThn8_N8NArchive3NXz8CHandler6AddRefEv__ZThn8_N8NArchive3NXz8CHandler7OpenSeqEP19ISequentialInStream__ZThn8_N8NArchive3NXz8CHandler7ReleaseEv__ZThn8_N8NArchive3NXz8CHandlerD0Ev__ZThn8_N8NArchive3NXz8CHandlerD1Ev__ZThn8_N8NArchive4NBz28CHandler14QueryInterfaceERK4GUIDPPv__ZThn8_N8NArchive4NBz28CHandler6AddRefEv__ZThn8_N8NArchive4NBz28CHandler7OpenSeqEP19ISequentialInStream__ZThn8_N8NArchive4NBz28CHandler7ReleaseEv__ZThn8_N8NArchive4NBz28CHandlerD0Ev__ZThn8_N8NArchive4NBz28CHandlerD1Ev__ZThn8_N8NArchive4NTar8CHandler14QueryInterfaceERK4GUIDPPv__ZThn8_N8NArchive4NTar8CHandler6AddRefEv__ZThn8_N8NArchive4NTar8CHandler7OpenSeqEP19ISequentialInStream__ZThn8_N8NArchive4NTar8CHandler7ReleaseEv__ZThn8_N8NArchive4NTar8CHandlerD0Ev__ZThn8_N8NArchive4NTar8CHandlerD1Ev__ZThn8_N8NArchive4NZip12CLzmaEncoder14QueryInterfaceERK4GUIDPPv__ZThn8_N8NArchive4NZip12CLzmaEncoder18SetCoderPropertiesEPKjPK14tagPROPVARIANTj__ZThn8_N8NArchive4NZip12CLzmaEncoder6AddRefEv__ZThn8_N8NArchive4NZip12CLzmaEncoder7ReleaseEv__ZThn8_N8NArchive4NZip12CLzmaEncoderD0Ev__ZThn8_N8NArchive4NZip12CLzmaEncoderD1Ev__ZThn8_N8NArchive4NZip8CHandler11UpdateItemsEP20ISequentialOutStreamjP22IArchiveUpdateCallback__ZThn8_N8NArchive4NZip8CHandler14QueryInterfaceERK4GUIDPPv__ZThn8_N8NArchive4NZip8CHandler15GetFileTimeTypeEPj__ZThn8_N8NArchive4NZip8CHandler6AddRefEv__ZThn8_N8NArchive4NZip8CHandler7ReleaseEv__ZThn8_N8NArchive4NZip8CHandlerD0Ev__ZThn8_N8NArchive4NZip8CHandlerD1Ev__ZThn8_N8NArchive5NLzma8CHandler14QueryInterfaceERK4GUIDPPv__ZThn8_N8NArchive5NLzma8CHandler6AddRefEv__ZThn8_N8NArchive5NLzma8CHandler7OpenSeqEP19ISequentialInStream__ZThn8_N8NArchive5NLzma8CHandler7ReleaseEv__ZThn8_N8NArchive5NLzma8CHandlerD0Ev__ZThn8_N8NArchive5NLzma8CHandlerD1Ev__ZThn8_N8NArchive5NPpmd8CHandler14QueryInterfaceERK4GUIDPPv__ZThn8_N8NArchive5NPpmd8CHandler6AddRefEv__ZThn8_N8NArchive5NPpmd8CHandler7OpenSeqEP19ISequentialInStream__ZThn8_N8NArchive5NPpmd8CHandler7ReleaseEv__ZThn8_N8NArchive5NPpmd8CHandlerD0Ev__ZThn8_N8NArchive5NPpmd8CHandlerD1Ev__ZThn8_N8NArchive6NSplit8CHandler14QueryInterfaceERK4GUIDPPv__ZThn8_N8NArchive6NSplit8CHandler6AddRefEv__ZThn8_N8NArchive6NSplit8CHandler7ReleaseEv__ZThn8_N8NArchive6NSplit8CHandler9GetStreamEjPP19ISequentialInStream__ZThn8_N8NArchive6NSplit8CHandlerD0Ev__ZThn8_N8NArchive6NSplit8CHandlerD1Ev__ZThn8_N8NArchive7NParser8CHandler14QueryInterfaceERK4GUIDPPv__ZThn8_N8NArchive7NParser8CHandler6AddRefEv__ZThn8_N8NArchive7NParser8CHandler7ReleaseEv__ZThn8_N8NArchive7NParser8CHandler9GetStreamEjPP19ISequentialInStream__ZThn8_N8NArchive7NParser8CHandlerD0Ev__ZThn8_N8NArchive7NParser8CHandlerD1Ev__ZThn8_N9NCompress10CCopyCoder14QueryInterfaceERK4GUIDPPv__ZThn8_N9NCompress10CCopyCoder24GetInStreamProcessedSizeEPy__ZThn8_N9NCompress10CCopyCoder6AddRefEv__ZThn8_N9NCompress10CCopyCoder7ReleaseEv__ZThn8_N9NCompress10CCopyCoderD0Ev__ZThn8_N9NCompress10CCopyCoderD1Ev__ZThn8_N9NCompress5NBcj28CDecoder12SetInBufSizeEjj__ZThn8_N9NCompress5NBcj28CDecoder13SetOutBufSizeEjj__ZThn8_N9NCompress5NBcj28CDecoder14QueryInterfaceERK4GUIDPPv__ZThn8_N9NCompress5NBcj28CDecoder6AddRefEv__ZThn8_N9NCompress5NBcj28CDecoder7ReleaseEv__ZThn8_N9NCompress5NBcj28CDecoderD0Ev__ZThn8_N9NCompress5NBcj28CDecoderD1Ev__ZThn8_N9NCompress5NLzma8CDecoder14QueryInterfaceERK4GUIDPPv__ZThn8_N9NCompress5NLzma8CDecoder21SetDecoderProperties2EPKhj__ZThn8_N9NCompress5NLzma8CDecoder6AddRefEv__ZThn8_N9NCompress5NLzma8CDecoder7ReleaseEv__ZThn8_N9NCompress5NLzma8CDecoderD0Ev__ZThn8_N9NCompress5NLzma8CDecoderD1Ev__ZThn8_N9NCompress5NLzma8CEncoder14QueryInterfaceERK4GUIDPPv__ZThn8_N9NCompress5NLzma8CEncoder18SetCoderPropertiesEPKjPK14tagPROPVARIANTj__ZThn8_N9NCompress5NLzma8CEncoder6AddRefEv__ZThn8_N9NCompress5NLzma8CEncoder7ReleaseEv__ZThn8_N9NCompress5NLzma8CEncoderD0Ev__ZThn8_N9NCompress5NLzma8CEncoderD1Ev__ZThn8_N9NCompress5NPpmd8CDecoder14QueryInterfaceERK4GUIDPPv__ZThn8_N9NCompress5NPpmd8CDecoder21SetDecoderProperties2EPKhj__ZThn8_N9NCompress5NPpmd8CDecoder6AddRefEv__ZThn8_N9NCompress5NPpmd8CDecoder7ReleaseEv__ZThn8_N9NCompress5NPpmd8CDecoderD0Ev__ZThn8_N9NCompress5NPpmd8CDecoderD1Ev__ZThn8_N9NCompress5NPpmd8CEncoder14QueryInterfaceERK4GUIDPPv__ZThn8_N9NCompress5NPpmd8CEncoder18SetCoderPropertiesEPKjPK14tagPROPVARIANTj__ZThn8_N9NCompress5NPpmd8CEncoder6AddRefEv__ZThn8_N9NCompress5NPpmd8CEncoder7ReleaseEv__ZThn8_N9NCompress5NPpmd8CEncoderD0Ev__ZThn8_N9NCompress5NPpmd8CEncoderD1Ev__ZThn8_N9NCompress6NBZip212CNsisDecoder11SetInStreamEP19ISequentialInStream__ZThn8_N9NCompress6NBZip212CNsisDecoder14QueryInterfaceERK4GUIDPPv__ZThn8_N9NCompress6NBZip212CNsisDecoder15ReleaseInStreamEv__ZThn8_N9NCompress6NBZip212CNsisDecoder6AddRefEv__ZThn8_N9NCompress6NBZip212CNsisDecoder7ReleaseEv__ZThn8_N9NCompress6NBZip212CNsisDecoderD0Ev__ZThn8_N9NCompress6NBZip212CNsisDecoderD1Ev__ZThn8_N9NCompress6NBZip28CDecoder14QueryInterfaceERK4GUIDPPv__ZThn8_N9NCompress6NBZip28CDecoder18SetNumberOfThreadsEj__ZThn8_N9NCompress6NBZip28CDecoder6AddRefEv__ZThn8_N9NCompress6NBZip28CDecoder7ReleaseEv__ZThn8_N9NCompress6NBZip28CDecoderD0Ev__ZThn8_N9NCompress6NBZip28CDecoderD1Ev__ZThn8_N9NCompress6NBZip28CEncoder14QueryInterfaceERK4GUIDPPv__ZThn8_N9NCompress6NBZip28CEncoder18SetCoderPropertiesEPKjPK14tagPROPVARIANTj__ZThn8_N9NCompress6NBZip28CEncoder6AddRefEv__ZThn8_N9NCompress6NBZip28CEncoder7ReleaseEv__ZThn8_N9NCompress6NBZip28CEncoderD0Ev__ZThn8_N9NCompress6NBZip28CEncoderD1Ev__ZThn8_N9NCompress6NLzma28CDecoder14QueryInterfaceERK4GUIDPPv__ZThn8_N9NCompress6NLzma28CDecoder21SetDecoderProperties2EPKhj__ZThn8_N9NCompress6NLzma28CDecoder6AddRefEv__ZThn8_N9NCompress6NLzma28CDecoder7ReleaseEv__ZThn8_N9NCompress6NLzma28CDecoderD0Ev__ZThn8_N9NCompress6NLzma28CDecoderD1Ev__ZThn8_N9NCompress6NLzma28CEncoder14QueryInterfaceERK4GUIDPPv__ZThn8_N9NCompress6NLzma28CEncoder18SetCoderPropertiesEPKjPK14tagPROPVARIANTj__ZThn8_N9NCompress6NLzma28CEncoder6AddRefEv__ZThn8_N9NCompress6NLzma28CEncoder7ReleaseEv__ZThn8_N9NCompress6NLzma28CEncoderD0Ev__ZThn8_N9NCompress6NLzma28CEncoderD1Ev__ZThn8_N9NCompress8NDeflate8NDecoder11CCOMCoder64D0Ev__ZThn8_N9NCompress8NDeflate8NDecoder11CCOMCoder64D1Ev__ZThn8_N9NCompress8NDeflate8NDecoder6CCoder14QueryInterfaceERK4GUIDPPv__ZThn8_N9NCompress8NDeflate8NDecoder6CCoder24GetInStreamProcessedSizeEPy__ZThn8_N9NCompress8NDeflate8NDecoder6CCoder6AddRefEv__ZThn8_N9NCompress8NDeflate8NDecoder6CCoder7ReleaseEv__ZThn8_N9NCompress8NDeflate8NDecoder6CCoderD0Ev__ZThn8_N9NCompress8NDeflate8NDecoder6CCoderD1Ev__ZThn8_N9NCompress8NDeflate8NDecoder9CCOMCoderD0Ev__ZThn8_N9NCompress8NDeflate8NDecoder9CCOMCoderD1Ev__ZThn8_N9NCompress8NDeflate8NEncoder11CCOMCoder6414QueryInterfaceERK4GUIDPPv__ZThn8_N9NCompress8NDeflate8NEncoder11CCOMCoder6418SetCoderPropertiesEPKjPK14tagPROPVARIANTj__ZThn8_N9NCompress8NDeflate8NEncoder11CCOMCoder646AddRefEv__ZThn8_N9NCompress8NDeflate8NEncoder11CCOMCoder647ReleaseEv__ZThn8_N9NCompress8NDeflate8NEncoder11CCOMCoder64D0Ev__ZThn8_N9NCompress8NDeflate8NEncoder11CCOMCoder64D1Ev__ZThn8_N9NCompress8NDeflate8NEncoder9CCOMCoder14QueryInterfaceERK4GUIDPPv__ZThn8_N9NCompress8NDeflate8NEncoder9CCOMCoder18SetCoderPropertiesEPKjPK14tagPROPVARIANTj__ZThn8_N9NCompress8NDeflate8NEncoder9CCOMCoder6AddRefEv__ZThn8_N9NCompress8NDeflate8NEncoder9CCOMCoder7ReleaseEv__ZThn8_N9NCompress8NDeflate8NEncoder9CCOMCoderD0Ev__ZThn8_N9NCompress8NDeflate8NEncoder9CCOMCoderD1Ev__ZThn8_N9NCompress8NImplode8NDecoder6CCoder14QueryInterfaceERK4GUIDPPv__ZThn8_N9NCompress8NImplode8NDecoder6CCoder21SetDecoderProperties2EPKhj__ZThn8_N9NCompress8NImplode8NDecoder6CCoder6AddRefEv__ZThn8_N9NCompress8NImplode8NDecoder6CCoder7ReleaseEv__ZThn8_N9NCompress8NImplode8NDecoder6CCoderD0Ev__ZThn8_N9NCompress8NImplode8NDecoder6CCoderD1Ev__ZThn8_N9NCompress8NPpmdZip8CEncoder14QueryInterfaceERK4GUIDPPv__ZThn8_N9NCompress8NPpmdZip8CEncoder18SetCoderPropertiesEPKjPK14tagPROPVARIANTj__ZThn8_N9NCompress8NPpmdZip8CEncoder6AddRefEv__ZThn8_N9NCompress8NPpmdZip8CEncoder7ReleaseEv__ZThn8_N9NCompress8NPpmdZip8CEncoderD0Ev__ZThn8_N9NCompress8NPpmdZip8CEncoderD1Ev__ZplPKcRK7AString__ZplPKwRK7UString__ZplRK7AStringPKc__ZplRK7AStringS1___ZplRK7UStringPKw__ZplRK7UStringS1____progname__mh_execute_header_align_alloc_align_free_environ_g_AesCbc_Decode_g_AesCbc_Encode_g_AesCtr_Code_g_BZip2CrcTableInit_g_BenchCpuFreqTemp_g_CRCTableInit_g_CaseSensitive_g_CodePage_g_Codecs_g_Crc64Table_g_CrcTable_g_CrcUpdate_g_Hashers_g_NumCodecs_g_NumHashers_g_RandomGenerator_g_StdErr_g_StdIn_g_StdOut_g_StdStream_g_filedir_global_use_lstat_global_use_utf16_conversion_k7z_PROPID_To_VARTYPE_k_OverwriteModes_main_sync_TestConstructor_x86_Convertstart_CFRelease_CFStringCreateMutableCopy_CFStringCreateWithCString_CFStringCreateWithCharacters_CFStringGetCString_CFStringGetCharacterAtIndex_CFStringGetLength_CFStringNormalize__Unwind_Resume__ZSt9terminatev__ZTIPKc__ZTIi__ZTVN10__cxxabiv116__enum_type_infoE__ZTVN10__cxxabiv117__class_type_infoE__ZTVN10__cxxabiv120__si_class_type_infoE__ZTVN10__cxxabiv121__vmi_class_type_infoE__ZdaPv__ZdlPv__Znam__Znwm___bzero___cxa_allocate_exception___cxa_atexit___cxa_begin_catch___cxa_call_unexpected___cxa_end_catch___cxa_free_exception___cxa_pure_virtual___cxa_rethrow___cxa_throw___error___gxx_personality_v0___stack_chk_fail___stack_chk_guard___stderrp___stdinp___stdoutp___toupper_abort_chdir_chmod_clock_close_closedir_exit_fclose_feof_fflush_fgetc_fgets_fileno_fopen_fputc_fputs_free_ftruncate_getcwd_getenv_getpass_getpid_getppid_gettimeofday_gmtime_isatty_localtime_lseek_lstat$INODE64_malloc_memcmp_memcpy_memmove_memset_memset_pattern16_mkdir_mktime_open_opendir$INODE64_printf_pthread_attr_destroy_pthread_attr_init_pthread_attr_setdetachstate_pthread_cond_broadcast_pthread_cond_destroy_pthread_cond_init_pthread_cond_wait_pthread_create_pthread_detach_pthread_join_pthread_mutex_destroy_pthread_mutex_init_pthread_mutex_lock_pthread_mutex_unlock_putenv_puts_read_readdir$INODE64_readlink_realloc_remove_rename_rmdir_signal_snprintf_stat$INODE64_strcmp_strerror_strlen_symlink_sysctl_sysctlbyname_time_timegm_umask_unlink_utime_wcscat_wcscmp_wcscpy_wcslen_wmemcpy_writedyld_stub_binderqnapi-0.1.9/macx/DmgBkg.png0000644000174100017410000002205512567301464015322 0ustar jenkinsjenkinsPNG  IHDR5bKGD pHYs  iTXtCommentCreated with GIMPd.e IDATxu}B.1@~6 ʯщ8-HDʯ cѡSВ*:aV-@@+v(4N@R $$p~y.ٽ^37dwyuvv  @ @ @@ @ @ @@ @ * V@)^]]UC2Vn~Dd05AWY@hܟ'?8jruę+m]agy&x7w'Nc=VE (S֯_ԧ;:JK~⯴Ӻܙ@kx뭷G?63ϔeY ===Nj/+W 6ĦM71bĉqc̙qqE[[^Noa%#cqe%.`Ucpp0{/~ol___Ewww\2.]T*;G?sN1xf͊n-G:;;=J-zzz-;~x+,Aj ?~9_}<$ǯcX,Xm,z*կF.a+I'Tedžy'Ϗo%ߥw}w{xԾ%Kč7hVGSS;ӟV̠ @`?fq7ظqcYkqM7ؾ}|=P|{߳+ԩSn??zeo &Xa ?Xx?Ew??m sI'}]tQL6-1<ȸb5}jaomO'7X|~{ SL+&N8Xh^@H:1,ŵ^_/"ⷿm\y啉qƖ-[<`i`` ;駟immٳg>1cFL4)/^XjUāXȶmbձzꡫw-[DOOOFooo hjj<0>6mZ̜93f͚@`x衇_zeN .ɓ'mٲ%JUW]]tѨ`SSS|Oo=|xW|hL&fϞ_|q~#˗/x_͛7㏏ . >dAf]A('>x=SNݴiS̛7/㡇`D!w}wԕ#FΝׯ/M1K"N#^yO~RXc1~_~^ Pbҥ'>Tip]]]]lY[cժUUwygXbL=/__FK/荷)9眲<9s$:7~>=._W*01<|o6 AO7n\YCkkk%}Ir-ֶ庺[VU`DĒ%KFtB,~_P\ ƐիW'Z=yOY{xꩧ\s&q7+xpĽvZzꩣ]ڢ-2Lp 1s8bʔ)QWWofCŒ%K@<1gΜ<;3&O|>l/b<ñlٲķOOqꩧhe@#&r3g,{&{'W_v{ǏʶYpaL6?w`,^8nW^yd#:::bΜ9_2D5Xvm,Y$fϞmpB Ɛwۗ>'ww$.D1e˖Q=5̌3Ft\~ze_}Q><7{ L@9ر#rؾ~gvQG~_ƿgg۰aè>SO=5Νh{. N@$=PǑu[r-ƍ?D폃@.D> @`/DՕq$r^}k{\nǎ77{}rJaM0!f͚h˗PecHCCCYz+8mۖ駟\pA,^{g{O}S=\<3rXvm[}mmm1eʔD#~$piO<ɷkAP(s 477' ۷5zďܾ/DgggYN+رcG˿K<or6lg}vL?ߒ^ob1$imڴ#O0뤩)ndվDƲebܹhѢwJёh9>um} @~`۝JxՑGW]u{J~?p|K_+jmmM>Fnh@ch_|#'}pI'4cժUO+stX*1h{l2_:ѲI?CVn@}-l>z{{-WAcqh۷#;rJ<%|0ןutuו4I+xX~zYgW(*瞛] ,()a6m ,Hl&??ohqW>^7ɞǢ$Zv>nݺOuָꪫ&N|r7o^̜9ls&CK/T*\zu\ve~uť^]]]O1J__mkKKK֮][ϱ $:yܸqz7ܻPqw躶k֬yŢE_W/.\Q\x1cƌ1O]tQYn{я~4;{l[. $>eΜ9Q__oPRrfE/1//cҥgb…q=G>8c1qhllشiSZ*~xG_hq饗tǣ>ZI&%:J?ylݺu(Ǐl6_qyŇ?83cI&E:-[ij>sO}""Νk0R\wYBEijj[n%ϟ?>wwwŋc%}9&`<#%9OG}HEF.`Î8∸iFRT}UYfgQ<3k{v |+!gBPBЇ>7t~V`RV]s5%]G3f'r.~1}tVWWguYgw&L0aB|ݯKjԩ|WWcnh8K.V52{Tuz{{ouYr'pBkx>ŤIJv{q뭷TΚ5+n֊I)gw>ٖ*Z[[[|ߌ|;ep~GGGmq^Q맹9w:ujuR1X`As \ t))į~)ȓO>9ΝguVKэEs̉?qw}xDIbԩqGJf͊~:T*Ї/?X-mN;EgggtvvK/]]]ݝ^wu1{~iJrx'+֮]zDooodHQ__---Ǐ &DGGGӧnj35}&z<FWWWlܸ1vB!cҤI1mڴ83ό'ڨ jpƊ+%\]v6ƍ$gJ{;?A 1cXp͋;6l`T9-^8nɓ'GzhL2%&NqAE[[[Mo (%GC;?y,_|Doƍq!?O\ f0TO[n駟n@`,8qbu]1sLZ-/<v Jd//?i^SNz+@=/~ ,;/unIjS}}}~CQoĊ+b͚5~ظqclٲ%xضm[ifT1v@ @ @ @ @ @ @ @ @  @ @ @  @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ cF*`l6|>t鈈:+i + CfJ"DKKK444XI?@_www DsssF}}}HR^+L>Bl6/!ڬ 7ot:tPDcc@@r\ FĶmbnEa@j't:mmm1nܸ]L@wwwwGwwH0aB7.ƍ'"T@|>\.2LR?+֭[c``gGRzzze諹9wߋe r|>===GRlFccc444D}}}d2~b_o磱1)|M+7 (uRvMQ__$7`]_ T,7t:o?ʕ@j J } ? u ߮÷9ƿo#t50 5Šzmo@@ƿ@ @ } P(gW @߮/PW(8(Pek 諫#0kQ*T*B!R*v~g|8"U|>? @`1lttt!l6#F.iP.`rr1mڴrյnBt:ЮaPXfCGD>UV E`&S@* ݢ:*|^v@@T`.wu1DPիW@@Tx.#"=؈@jvD ("@@@@JU/F@@5EIj*vBx=F>;, 冮7(TE +~UZ l6\.r^ߞ PaT6n1v]Z [ \.fvE fw>XM[*2Gg]sٱ|>֬Y#)Z ZS 9sfR)3*#gw0 }9/"@E߮'E j: "aO@D @F`]]N'P8B\.r\ ,JtzhfW l6\N+ J+㯚vC7A/@GBZ0""N7@UD\ j_>ߧ?@UVߗ P31X ᷯ094@ W?@T;E"pO?@TYi` $v_.TC R?܊+⯾^0˕+Wڵk12Ld2H+^.N +^{+^+X كQIDAT"0JEPL&6lu +*F~+}~P!X]z @ۅS@*: XB@ @ v`&@m9z1P?n[a@jP>|1H f冾o _lJ2 j'T*cppp7H|P ol6lvh{۾?Z}d2Lf!NG]]]DЯT֋Pz}}}ƿo#I---===Q__?#NG*&P/ş7zzz'z{{2H-jhhضm[ơـ/* #Fc۶mC7ԨؼystwwCT@q{m\.ۭ(V0/"";9PGs?`ƿ DOOOd١w ywRd2bƿa00D@@ @ @  @ @ @  @ @ @@ @ @ @@ @ mf̤IENDB`qnapi-0.1.9/macx/appdmg.json0000644000174100017410000000037112567301464015621 0ustar jenkinsjenkins{ "title": "QNapi", "icon": "qnapi.icns", "background": "DmgBkg.png", "icon-size": 80, "contents": [ { "x": 448, "y": 344, "type": "link", "path": "/Applications" }, { "x": 192, "y": 344, "type": "file", "path": "QNapi.app" } ] }qnapi-0.1.9/deps/0000755000174100017410000000000012567301464013460 5ustar jenkinsjenkinsqnapi-0.1.9/deps/libmaia/0000755000174100017410000000000012567301464015056 5ustar jenkinsjenkinsqnapi-0.1.9/deps/libmaia/maiaXmlRpcServer.cpp0000644000174100017410000000662212567301464021014 0ustar jenkinsjenkins/* * libMaia - maiaXmlRpcServer.cpp * Copyright (c) 2007 Sebastian Wiedenroth * and Karl Glatz * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include "maiaXmlRpcServer.h" #include "maiaFault.h" MaiaXmlRpcServer::MaiaXmlRpcServer(const QHostAddress &address, quint16 port, QObject* parent) : QObject(parent) { allowedAddresses = NULL; connect(&server, SIGNAL(newConnection()), this, SLOT(newConnection())); server.listen(address, port); } MaiaXmlRpcServer::MaiaXmlRpcServer(quint16 port, QObject* parent) : QObject(parent) { allowedAddresses = NULL; connect(&server, SIGNAL(newConnection()), this, SLOT(newConnection())); server.listen(QHostAddress::Any, port); } MaiaXmlRpcServer::MaiaXmlRpcServer(const QHostAddress &address, quint16 port, QList *allowedAddresses, QObject *parent) : QObject(parent) { this->allowedAddresses = allowedAddresses; connect(&server, SIGNAL(newConnection()), this, SLOT(newConnection())); server.listen(address, port); } void MaiaXmlRpcServer::addMethod(QString method, QObject* responseObject, const char* responseSlot) { objectMap[method] = responseObject; slotMap[method] = responseSlot; } void MaiaXmlRpcServer::removeMethod(QString method) { objectMap.remove(method); slotMap.remove(method); } void MaiaXmlRpcServer::getMethod(QString method, QObject **responseObject, const char **responseSlot) { if(!objectMap.contains(method)) { *responseObject = NULL; *responseSlot = NULL; return; } *responseObject = objectMap[method]; *responseSlot = slotMap[method]; } void MaiaXmlRpcServer::newConnection() { QTcpSocket *connection = server.nextPendingConnection(); if (!this->allowedAddresses || this->allowedAddresses->isEmpty() || this->allowedAddresses->contains(connection->peerAddress())) { MaiaXmlRpcServerConnection *client = new MaiaXmlRpcServerConnection(connection, this); connect(client, SIGNAL(getMethod(QString, QObject **, const char**)), this, SLOT(getMethod(QString, QObject **, const char**))); } else { qWarning() << "Rejected connection attempt from" << connection->peerAddress().toString(); connection->disconnectFromHost(); } } QHostAddress MaiaXmlRpcServer::getServerAddress() { return server.serverAddress(); } qnapi-0.1.9/deps/libmaia/README.md0000644000174100017410000000416712567301464016345 0ustar jenkinsjenkins# libmaia libmaia is a easy-to-use XML-RPC library for Qt! # compiling libmaia qmake make # Qt Datatypes Allowed types for Argument and Return Values: C++/Qt-Types XMLRPC-Types ---------------------------------------- * int * bool * double * QString * QDateTime * ByteArray * QVariantMap * QVariantList # using libmaia 1. qmake: your Project file (.pro) should contain INCLUDEPATH += /path/to/libmaia LIBS += /path/to/libmaia/libmaia.a QT += xml network 2. in your header file include #include "maiaXmlRpcClient.h" and / or #include "maiaXmlRpcServer.h" 3. create object server: MaiaXmlRpcServer *server = new MaiaXmlRpcServer(8080, this); client: MaiaXmlRpcClient *client = new MaiaXmlRpcClient(QUrl("http://localhost:8080/RPC2"), this); 4. register a method your method has to be a Qt Slot. // example method: QString MyClass::myMethod(int param1, QString param2) { if(param1 > 5) return param2; else return "not bigger than 5"; } // register it: // "example.methodName" <- used to identify the method over xml-rpc // this <- pointer to the class which contains the method you would export // "myMethod" the name of the method server->addMethod("example.methodName", this, "myMethod"); 5. call a method when calling a method you need three things: 1. a Slot for the MethodResponse 2. a Slot for the FaultResponse 3. a QVariantList containig the arguments for the RPC-Method example code: void MyClientClass::myResponseMethod(QVariant &arg) { // do something with the arg } void MyClientClass::myFaultResponse(int error, const QString &message) { qDebug() << "An Error occoured, Code: " << error << " Message: " << message; } QVariantList args; args << 5; args << "second argument"; rpcClient->call("example.methodName", args, this, SLOT(myResponseMethod(QVariant&)), this, SLOT(myFaultResponse(int, const QString &))); qnapi-0.1.9/deps/libmaia/maiaObject.cpp0000644000174100017410000002150112567301464017617 0ustar jenkinsjenkins/* * libMaia - maiaObject.cpp * Copyright (c) 2003 Frerich Raabe and * Ian Reinhart Geiser * Copyright (c) 2007 Sebastian Wiedenroth * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include "maiaObject.h" #include MaiaObject::MaiaObject(QObject* parent) : QObject(parent){ QDomImplementation::setInvalidDataPolicy(QDomImplementation::DropInvalidChars); } QDomElement MaiaObject::toXml(QVariant arg) { //dummy document QDomDocument doc; //value element, we need this in each case QDomElement tagValue = doc.createElement("value"); switch(arg.type()) { case QVariant::String: { QDomElement tagString = doc.createElement("string"); QDomText textString = doc.createTextNode(arg.toString()); tagValue.appendChild(tagString); tagString.appendChild(textString); return tagValue; } case QVariant::Int: { QDomElement tagInt = doc.createElement("int"); QDomText textInt = doc.createTextNode(QString::number(arg.toInt())); tagValue.appendChild(tagInt); tagInt.appendChild(textInt); return tagValue; } case QVariant::Double: { QDomElement tagDouble = doc.createElement("double"); QDomText textDouble = doc.createTextNode(QString::number(arg.toDouble(), 'g', DBL_DIG)); tagValue.appendChild(tagDouble); tagDouble.appendChild(textDouble); return tagValue; } case QVariant::Bool: { QString textValue = arg.toBool() ? "1" : "0"; QDomElement tag = doc.createElement("boolean"); QDomText text = doc.createTextNode(textValue); tagValue.appendChild(tag); tag.appendChild(text); return tagValue; } case QVariant::ByteArray: { QString textValue = arg.toByteArray().toBase64(); QDomElement tag = doc.createElement("base64"); QDomText text = doc.createTextNode(textValue); tagValue.appendChild(tag); tag.appendChild(text); return tagValue; } case QVariant::DateTime: { QString textValue = arg.toDateTime().toString("yyyyMMddThh:mm:ss"); QDomElement tag = doc.createElement("datetime.iso8601"); QDomText text = doc.createTextNode(textValue); tagValue.appendChild(tag); tag.appendChild(text); return tagValue; } case QVariant::List: { QDomElement tagArray = doc.createElement("array"); QDomElement tagData = doc.createElement("data"); tagArray.appendChild(tagData); tagValue.appendChild(tagArray); const QList args = arg.toList(); for(int i = 0; i < args.size(); ++i) { tagData.appendChild(toXml(args.at(i))); } return tagValue; } case QVariant::Map: { QDomElement tagStruct = doc.createElement("struct"); QDomElement member; QDomElement name; tagValue.appendChild(tagStruct); QMap map = arg.toMap(); QMapIterator i(map); while(i.hasNext()) { i.next(); member = doc.createElement("member"); name = doc.createElement("name"); // (key) -> name -> member -> struct tagStruct.appendChild(member); member.appendChild(name); name.appendChild(doc.createTextNode(i.key())); // add variables by recursion member.appendChild(toXml(i.value())); } return tagValue; } default: qDebug() << "Failed to marshal unknown variant type: " << arg.type() << endl; } return QDomElement(); //QString::null; } QVariant MaiaObject::fromXml(const QDomElement &elem) { if(elem.tagName().toLower() != "value") { return QVariant(); } // If no type is indicated, the type is string. if(!elem.firstChild().isElement()) { return QVariant(elem.text()); } const QDomElement typeElement = elem.firstChild().toElement(); const QString typeName = typeElement.tagName().toLower(); if(typeName == "string") return QVariant(typeElement.text()); else if(typeName == "i4" || typeName == "int") return QVariant(typeElement.text().toInt()); else if(typeName == "double") return QVariant(typeElement.text().toDouble()); else if (typeName == "boolean") { if(typeElement.text().toLower() == "true" || typeElement.text() == "1") return QVariant(true); else return QVariant(false); } else if(typeName == "base64") return QVariant(QByteArray::fromBase64( typeElement.text().toLatin1())); else if(typeName == "datetime" || typeName == "datetime.iso8601") return QVariant(QDateTime::fromString(typeElement.text(), "yyyyMMddThh:mm:ss")); else if(typeName == "nil") // Non-standard extension: http://ontosys.com/xml-rpc/extensions.php return QVariant(); else if ( typeName == "array" ) { QList values; QDomNode valueNode = typeElement.firstChild().firstChild(); while(!valueNode.isNull()) { values << fromXml(valueNode.toElement()); valueNode = valueNode.nextSibling(); } return QVariant(values); } else if ( typeName == "struct" ) { QMap map; QDomNode memberNode = typeElement.firstChild(); while(!memberNode.isNull()) { const QString key = memberNode.toElement().elementsByTagName("name").item(0).toElement().text(); const QVariant data = fromXml(memberNode.toElement().elementsByTagName("value").item(0).toElement()); map[key] = data; memberNode = memberNode.nextSibling(); } return QVariant(map); } else { qDebug() << "Cannot demarshal unknown type " << typeElement.tagName().toLower(); } return QVariant(); } QString MaiaObject::prepareCall(QString method, QList args) { QDomDocument doc; QDomProcessingInstruction header = doc.createProcessingInstruction( "xml", QString("version=\"1.0\" encoding=\"UTF-8\"" )); doc.appendChild(header); QDomElement methodCall = doc.createElement("methodCall"); QDomElement methodName = doc.createElement("methodName"); QDomElement params = doc.createElement("params"); QDomElement param; doc.appendChild(methodCall); methodCall.appendChild(methodName); methodName.appendChild(doc.createTextNode(method)); methodCall.appendChild(params); for(int i = 0; i < args.size(); ++i) { param = doc.createElement("param"); param.appendChild(toXml(args.at(i))); params.appendChild(param); } return doc.toString(); } QString MaiaObject::prepareResponse(QVariant arg) { QDomDocument doc; QDomProcessingInstruction header = doc.createProcessingInstruction( "xml", QString("version=\"1.0\" encoding=\"UTF-8\"" )); doc.appendChild(header); QDomElement methodResponse = doc.createElement("methodResponse"); QDomElement params = doc.createElement("params"); QDomElement param; doc.appendChild(methodResponse); methodResponse.appendChild(params); if(!arg.isNull()) { param = doc.createElement("param"); param.appendChild(toXml(arg)); params.appendChild(param); } return doc.toString(); } void MaiaObject::parseResponse(QString response, QNetworkReply* reply) { QDomDocument doc; QVariant arg; QString errorMsg; int errorLine; int errorColumn; if(!doc.setContent(response, &errorMsg, &errorLine, &errorColumn)) { emit fault(-32700, QString("parse error: response not well formed at line %1: %2").arg(errorLine).arg(errorMsg), reply); delete this; return; } if(doc.documentElement().firstChild().toElement().tagName().toLower() == "params") { QDomNode paramNode = doc.documentElement().firstChild().firstChild(); if(!paramNode.isNull()) { arg = fromXml( paramNode.firstChild().toElement() ); } emit aresponse(arg, reply); } else if(doc.documentElement().firstChild().toElement().tagName().toLower() == "fault") { const QVariant errorVariant = fromXml(doc.documentElement().firstChild().firstChild().toElement()); emit fault(errorVariant.toMap() [ "faultCode" ].toInt(), errorVariant.toMap() [ "faultString" ].toString(), reply); } else { emit fault(-32600, tr("parse error: invalid xml-rpc. not conforming to spec."), reply); } delete this; return; } qnapi-0.1.9/deps/libmaia/LICENSE0000644000174100017410000000272012567301464016064 0ustar jenkinsjenkinsCopyright 2010 Sebastian Wiedenroth. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. The views and conclusions contained in the software and documentation are those of the authors and should not be interpreted as representing official policies, either expressed or implied, of the author. qnapi-0.1.9/deps/libmaia/maiaXmlRpcServerConnection.cpp0000644000174100017410000002054212567301464023031 0ustar jenkinsjenkins/* * libMaia - maiaXmlRpcServerConnection.cpp * Copyright (c) 2007 Sebastian Wiedenroth * and Karl Glatz * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include "maiaXmlRpcServerConnection.h" #include "maiaXmlRpcServer.h" MaiaXmlRpcServerConnection::MaiaXmlRpcServerConnection(QTcpSocket *connection, QObject* parent) : QObject(parent) { header = NULL; clientConnection = connection; connect(clientConnection, SIGNAL(readyRead()), this, SLOT(readFromSocket())); connect(clientConnection, SIGNAL(disconnected()), this, SLOT(deleteLater())); } MaiaXmlRpcServerConnection::~MaiaXmlRpcServerConnection() { clientConnection->deleteLater(); delete header; } void MaiaXmlRpcServerConnection::readFromSocket() { QString lastLine; while(clientConnection->canReadLine() && !header) { lastLine = clientConnection->readLine(); headerString += lastLine; if(lastLine == "\r\n") { /* http header end */ header = new QHttpRequestHeader(headerString); if(!header->isValid()) { /* return http error */ qDebug() << "Invalid Header"; return; } else if(header->method() != "POST") { /* return http error */ qDebug() << "No Post!"; return; } else if(!header->contentLength()) { /* return fault */ qDebug() << "No Content Length"; return; } } } if(header) { if(header->contentLength() <= clientConnection->bytesAvailable()) { /* all data complete */ parseCall(clientConnection->readAll()); } } } void MaiaXmlRpcServerConnection::sendResponse(QString content) { QHttpResponseHeader header(200, "Ok"); QByteArray block; header.setValue("Server", "MaiaXmlRpc/0.1"); header.setValue("Content-Type", "text/xml"); header.setValue("Connection","close"); block.append(header.toString().toUtf8()); block.append(content.toUtf8()); clientConnection->write(block); clientConnection->disconnectFromHost(); } void MaiaXmlRpcServerConnection::parseCall(QString call) { QDomDocument doc; QList args; QVariant ret; QString response; QObject *responseObject; const char *responseSlot; if(!doc.setContent(call)) { /* recieved invalid xml */ MaiaFault fault(-32700, "parse error: not well formed"); sendResponse(fault.toString()); return; } QDomElement methodNameElement = doc.documentElement().firstChildElement("methodName"); QDomElement params = doc.documentElement().firstChildElement("params"); if(methodNameElement.isNull()) { /* invalid call */ MaiaFault fault(-32600, "server error: invalid xml-rpc. not conforming to spec"); sendResponse(fault.toString()); return; } QString methodName = methodNameElement.text(); emit getMethod(methodName, &responseObject, &responseSlot); if(!responseObject) { /* unknown method */ MaiaFault fault(-32601, "server error: requested method not found"); sendResponse(fault.toString()); return; } QDomNode paramNode = params.firstChild(); while(!paramNode.isNull()) { args << MaiaObject::fromXml( paramNode.firstChild().toElement()); paramNode = paramNode.nextSibling(); } if(!invokeMethodWithVariants(responseObject, responseSlot, args, &ret)) { /* error invoking... */ MaiaFault fault(-32602, "server error: invalid method parameters"); sendResponse(fault.toString()); return; } if(ret.canConvert()) { response = ret.value().toString(); } else { response = MaiaObject::prepareResponse(ret); } sendResponse(response); } /* taken from http://delta.affinix.com/2006/08/14/invokemethodwithvariants/ thanks to Justin Karneges once again :) */ bool MaiaXmlRpcServerConnection::invokeMethodWithVariants(QObject *obj, const QByteArray &method, const QVariantList &args, QVariant *ret, Qt::ConnectionType type) { // QMetaObject::invokeMethod() has a 10 argument maximum if(args.count() > 10) return false; QList argTypes; for(int n = 0; n < args.count(); ++n) argTypes += args[n].typeName(); // get return type int metatype = 0; QByteArray retTypeName = getReturnType(obj->metaObject(), method, argTypes); if(!retTypeName.isEmpty() && retTypeName != "QVariant") { metatype = QMetaType::type(retTypeName.data()); if(metatype == 0) // lookup failed return false; } QGenericArgument arg[10]; for(int n = 0; n < args.count(); ++n) arg[n] = QGenericArgument(args[n].typeName(), args[n].constData()); QGenericReturnArgument retarg; QVariant retval; if(metatype != 0) { retval = QVariant(metatype, (const void *)0); retarg = QGenericReturnArgument(retval.typeName(), retval.data()); } else { /* QVariant */ retarg = QGenericReturnArgument("QVariant", &retval); } if(retTypeName.isEmpty()) { /* void */ if(!QMetaObject::invokeMethod(obj, method.data(), type, arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], arg[8], arg[9])) return false; } else { if(!QMetaObject::invokeMethod(obj, method.data(), type, retarg, arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], arg[8], arg[9])) return false; } if(retval.isValid() && ret) *ret = retval; return true; } QByteArray MaiaXmlRpcServerConnection::getReturnType(const QMetaObject *obj, const QByteArray &method, const QList argTypes) { for(int n = 0; n < obj->methodCount(); ++n) { QMetaMethod m = obj->method(n); #if QT_VERSION >= 0x050000 QByteArray sig = m.methodSignature(); #else QByteArray sig = m.signature(); #endif int offset = sig.indexOf('('); if(offset == -1) continue; QByteArray name = sig.mid(0, offset); if(name != method) continue; if(m.parameterTypes() != argTypes) continue; return m.typeName(); } return QByteArray(); } /* simple Qt4 class emulater */ #if QT_VERSION >= 0x050000 QHttpRequestHeader::QHttpRequestHeader(QString headerString) { this->mHeaderString = headerString; QStringList hdrs = headerString.split("\r\n"); QStringList hdrkv; for (int i = 0; i < hdrs.size(); i++) { if (hdrs.at(i).trimmed().isEmpty()) break; if (i == 0) { hdrkv = hdrs.at(i).split(" "); this->mMethod = hdrkv.at(0); } else { hdrkv = hdrs.at(i).split(":"); this->mHeaders[hdrkv.at(0)] = hdrkv.at(1).trimmed(); } } } bool QHttpRequestHeader::isValid() { if (this->mHeaderString.isEmpty()) return false; if (this->mMethod != "GET" && this->mMethod != "POST") return false; if (this->mHeaders.size() < 2) return false; return true; } QString QHttpRequestHeader::method() { return this->mMethod; } uint QHttpRequestHeader::contentLength() const { uint clen = 0; clen = this->mHeaders.value("Content-Length").toUInt(); return clen; } QHttpResponseHeader::QHttpResponseHeader(int code, QString text) { this->mCode = code; this->mText = text; } void QHttpResponseHeader::setValue(const QString &key, const QString &value) { this->mHeaders[key] = value; } QString QHttpResponseHeader::toString() const { QMapIterator it(this->mHeaders); QString hdrstr; hdrstr += QString("HTTP/1.1 %1 %2\r\n").arg(this->mCode).arg(this->mText); while (it.hasNext()) { it.next(); hdrstr += it.key() + ": " + it.value() + "\r\n"; } hdrstr += "\r\n"; return hdrstr; } #endif qnapi-0.1.9/deps/libmaia/maia.pro0000644000174100017410000000107412567301464016511 0ustar jenkinsjenkins###################################################################### # Automatically generated by qmake (2.01a) Fr Mai 25 19:04:58 2007 ###################################################################### include("maia.pri") TEMPLATE = lib #app TARGET = maia CONFIG += staticlib DEPENDPATH += . INCLUDEPATH += . QT -= gui CONFIG += qt silent #debug target.path = $$PREFIX/lib headers.files = \ maiaXmlRpcClient.h \ maiaXmlRpcServer.h \ headers.path = $$PREFIX/include/maia INSTALLS += \ target \ headers \ # Input qnapi-0.1.9/deps/libmaia/maiaObject.h0000644000174100017410000000412312567301464017265 0ustar jenkinsjenkins/* * libMaia - maiaObject.h * Copyright (c) 2003 Frerich Raabe and * Ian Reinhart Geiser * Copyright (c) 2007 Sebastian Wiedenroth * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef MAIAOBJECT_H #define MAIAOBJECT_H #include #include #include class MaiaObject : public QObject { Q_OBJECT public: MaiaObject(QObject* parent = 0); static QDomElement toXml(QVariant arg); static QVariant fromXml(const QDomElement &elem); QString prepareCall(QString method, QList args); static QString prepareResponse(QVariant arg); public slots: void parseResponse(QString response, QNetworkReply* reply); signals: void aresponse(QVariant &, QNetworkReply* reply); void call(const QString, const QList); void fault(int, const QString &, QNetworkReply* reply); }; #endif qnapi-0.1.9/deps/libmaia/maiaXmlRpcServer.h0000644000174100017410000000464312567301464020462 0ustar jenkinsjenkins/* * libMaia - maiaXmlRpcServer.h * Copyright (c) 2007 Sebastian Wiedenroth * and Karl Glatz * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef MAIAXMLRPCSERVER_H #define MAIAXMLRPCSERVER_H #include #include #include #include "maiaObject.h" #include "maiaXmlRpcServerConnection.h" class MaiaXmlRpcServer : public QObject { Q_OBJECT public: MaiaXmlRpcServer(const QHostAddress &address = QHostAddress::Any, quint16 port = 8080, QObject* parent = 0); MaiaXmlRpcServer(const QHostAddress &address = QHostAddress::Any, quint16 port = 8080, QList *allowedAddresses = 0, QObject *parent = 0); MaiaXmlRpcServer(quint16 port = 8080, QObject* parent = 0); void addMethod(QString method, QObject *responseObject, const char* responseSlot); void removeMethod(QString method); QHostAddress getServerAddress(); public slots: void getMethod(QString method, QObject **responseObject, const char** responseSlot); private slots: void newConnection(); private: QTcpServer server; QHash objectMap; QHash slotMap; QList *allowedAddresses; friend class maiaXmlRpcServerConnection; }; #endif qnapi-0.1.9/deps/libmaia/maiaFault.cpp0000644000174100017410000000414212567301464017466 0ustar jenkinsjenkins/* * libMaia - maiaFault.cpp * Copyright (c) 2007 Sebastian Wiedenroth * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include "maiaFault.h" #include "maiaObject.h" MaiaFault::MaiaFault(const MaiaFault &other) : QObject(other.parent()) { fault = other.fault; } MaiaFault::MaiaFault(int faultCode, QString faultString, QObject *parent) : QObject(parent) { fault["faultCode"] = faultCode; fault["faultString"] = faultString; } QString MaiaFault::toString() { QDomDocument doc; QDomProcessingInstruction header = doc.createProcessingInstruction( "xml", QString("version=\"1.0\" encoding=\"UTF-8\"" )); doc.appendChild(header); QDomElement methodResponse = doc.createElement("methodResponse"); doc.appendChild(methodResponse); QDomElement faultelement = doc.createElement("fault"); methodResponse.appendChild(faultelement); faultelement.appendChild(MaiaObject::toXml(fault)); return doc.toString(); } qnapi-0.1.9/deps/libmaia/maiaXmlRpcClient.cpp0000644000174100017410000000734412567301464020766 0ustar jenkinsjenkins/* * libMaia - maiaXmlRpcClient.cpp * Copyright (c) 2007 Sebastian Wiedenroth * and Karl Glatz * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include "maiaXmlRpcClient.h" #include "maiaFault.h" MaiaXmlRpcClient::MaiaXmlRpcClient(QObject* parent) : QObject(parent), manager(this), request() { init(); } MaiaXmlRpcClient::MaiaXmlRpcClient(QUrl url, QObject* parent) : QObject(parent), manager(this), request(url) { init(); setUrl(url); } MaiaXmlRpcClient::MaiaXmlRpcClient(QUrl url, QString userAgent, QObject *parent) : QObject(parent) { // userAgent should adhere to RFC 1945 http://tools.ietf.org/html/rfc1945 init(); request.setRawHeader("User-Agent", userAgent.toLatin1()); setUrl(url); } void MaiaXmlRpcClient::init() { request.setRawHeader("User-Agent", "libmaia/0.2"); request.setHeader(QNetworkRequest::ContentTypeHeader, "text/xml"); connect(&manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(replyFinished(QNetworkReply*))); connect(&manager, SIGNAL(sslErrors(QNetworkReply *, const QList &)), this, SIGNAL(sslErrors(QNetworkReply *, const QList &))); } void MaiaXmlRpcClient::setUrl(QUrl url) { if(!url.isValid()) return; request.setUrl(url); } void MaiaXmlRpcClient::setUserAgent(QString userAgent) { request.setRawHeader("User-Agent", userAgent.toLatin1()); } QNetworkReply* MaiaXmlRpcClient::call(QString method, QList args, QObject* responseObject, const char* responseSlot, QObject* faultObject, const char* faultSlot) { MaiaObject* call = new MaiaObject(this); connect(call, SIGNAL(aresponse(QVariant &, QNetworkReply *)), responseObject, responseSlot); connect(call, SIGNAL(fault(int, const QString &, QNetworkReply *)), faultObject, faultSlot); QNetworkReply* reply = manager.post( request, call->prepareCall(method, args).toUtf8() ); callmap[reply] = call; return reply; } void MaiaXmlRpcClient::setSslConfiguration(const QSslConfiguration &config) { request.setSslConfiguration(config); } QSslConfiguration MaiaXmlRpcClient::sslConfiguration () const { return request.sslConfiguration(); } void MaiaXmlRpcClient::replyFinished(QNetworkReply* reply) { QString response; if(!callmap.contains(reply)) return; if(reply->error() != QNetworkReply::NoError) { MaiaFault fault(-32300, reply->errorString()); response = fault.toString(); } else { response = QString::fromUtf8(reply->readAll()); } // parseResponse deletes the MaiaObject callmap[reply]->parseResponse(response, reply); reply->deleteLater(); callmap.remove(reply); } qnapi-0.1.9/deps/libmaia/Changelog0000644000174100017410000000010112567301464016660 0ustar jenkinsjenkinslibmaia 0.2 * examples reworked libmaia 0.1 * inital relaease qnapi-0.1.9/deps/libmaia/examples/0000755000174100017410000000000012567301464016674 5ustar jenkinsjenkinsqnapi-0.1.9/deps/libmaia/examples/README0000644000174100017410000000007312567301464017554 0ustar jenkinsjenkinsEXAMPLES README --------------- Client and Server Example qnapi-0.1.9/deps/libmaia/examples/client/0000755000174100017410000000000012567301464020152 5ustar jenkinsjenkinsqnapi-0.1.9/deps/libmaia/examples/client/client.h0000644000174100017410000000066612567301464021611 0ustar jenkinsjenkins#ifndef CLIENT_H #define CLIENT_H #include "maiaXmlRpcClient.h" class Client : public QObject { Q_OBJECT public: Client(QObject* parent = 0); public slots: void doClient(); private slots: void testResponse(QVariant &); void testFault(int, const QString &); void towelResponse(QVariant &); void handleSslErrors(QNetworkReply *reply, const QList &errors); private: MaiaXmlRpcClient *rpc; }; #endif qnapi-0.1.9/deps/libmaia/examples/client/client.cpp0000644000174100017410000000404012567301464022132 0ustar jenkinsjenkins#include "client.h" Client::Client(QObject* parent) : QObject(parent) { // rpc = new MaiaXmlRpcClient(QUrl("http://phpxmlrpc.sourceforge.net/server.php"), this); // rpc = new MaiaXmlRpcClient(QUrl("https://rpc.gandi.net/xmlrpc/2.0/"), this); rpc = new MaiaXmlRpcClient(QUrl("http://localhost:8082/RPC2"), this); QSslConfiguration config = rpc->sslConfiguration(); config.setProtocol(QSsl::AnyProtocol); rpc->setSslConfiguration(config); connect(rpc, SIGNAL(sslErrors(QNetworkReply *, const QList &)), this, SLOT(handleSslErrors(QNetworkReply *, const QList &))); doClient(); } void Client::doClient() { QVariantList args; rpc->call("examples.nix", args, this, SLOT(testResponse(QVariant &)), this, SLOT(testFault(int, const QString &))); args << QVariant(7); rpc->call("examples.getStateName", args, this, SLOT(testResponse(QVariant &)), this, SLOT(testFault(int, const QString &))); rpc->call("examples.birne", args, this, SLOT(testResponse(QVariant &)), this, SLOT(testFault(int, const QString &))); args[0] = QVariant(-128); rpc->call("examples.birne", args, this, SLOT(testResponse(QVariant &)), this, SLOT(testFault(int, const QString &))); rpc->call("examples.notfound", args, this, SLOT(testResponse(QVariant &)), this, SLOT(testFault(int, const QString &))); QDateTime towelDay; towelDay.setDate(QDate(2008, 5, 25)); args.clear(); args << towelDay; rpc->call("examples.plusOneYear", args, this, SLOT(towelResponse(QVariant &)), this, SLOT(testFault(int, const QString &))); } void Client::testResponse(QVariant &arg) { qDebug() << arg.toString(); } void Client::testFault(int error, const QString &message) { qDebug() << "EEE:" << error << "-" << message; } void Client::towelResponse(QVariant &arg) { qDebug() << "Next years Towel Day is on" << arg.toDateTime(); } void Client::handleSslErrors(QNetworkReply *reply, const QList &errors) { qDebug() << "SSL Error:" << errors; reply->ignoreSslErrors(); // don't do this in real code! Fix your certs! } qnapi-0.1.9/deps/libmaia/examples/client/client_main.cpp0000644000174100017410000000022412567301464023136 0ustar jenkinsjenkins#include #include "client.h" int main( int argc, char *argv[] ) { QCoreApplication app( argc, argv ); Client x; return app.exec(); } qnapi-0.1.9/deps/libmaia/examples/client/client.pro0000644000174100017410000000067412567301464022161 0ustar jenkinsjenkins###################################################################### # Automatically generated by qmake (2.01a) Fr Mai 25 19:04:58 2007 ###################################################################### TEMPLATE = app INCLUDEPATH += . ../../ LIBS += ../../libmaia.a TARGET = client DEPENDPATH += . INCLUDEPATH += . QT += xml network QT -= gui CONFIG += qt silent debug # Input HEADERS += client.h SOURCES += client.cpp client_main.cpp qnapi-0.1.9/deps/libmaia/examples/server/0000755000174100017410000000000012567301464020202 5ustar jenkinsjenkinsqnapi-0.1.9/deps/libmaia/examples/server/server.h0000644000174100017410000000053512567301464021664 0ustar jenkinsjenkins#ifndef SERVER_H #define SERVER_H #include "maiaXmlRpcServer.h" class Server : public QObject { Q_OBJECT public: Server(QObject* parent = 0); public slots: private slots: QString callState(int i); QVariant birne(int x); void nix(); QDateTime plusOneYear(QDateTime sometime); private: MaiaXmlRpcServer *server; }; #endif qnapi-0.1.9/deps/libmaia/examples/server/server.pro0000644000174100017410000000067412567301464022241 0ustar jenkinsjenkins###################################################################### # Automatically generated by qmake (2.01a) Fr Mai 25 19:04:58 2007 ###################################################################### TEMPLATE = app INCLUDEPATH += . ../../ LIBS += ../../libmaia.a TARGET = server DEPENDPATH += . INCLUDEPATH += . QT += xml network QT -= gui CONFIG += qt silent debug # Input HEADERS += server.h SOURCES += server.cpp server_main.cpp qnapi-0.1.9/deps/libmaia/examples/server/server_main.cpp0000644000174100017410000000025412567301464023221 0ustar jenkinsjenkins#include #include "maiaObject.h" #include "server.h" int main( int argc, char *argv[] ) { QCoreApplication app( argc, argv ); Server x; return app.exec(); } qnapi-0.1.9/deps/libmaia/examples/server/server.cpp0000644000174100017410000000132312567301464022213 0ustar jenkinsjenkins#include "server.h" Server::Server(QObject* parent) : QObject(parent) { server = new MaiaXmlRpcServer(8082, this); server->addMethod("examples.getStateName", this, "callState"); server->addMethod("examples.birne", this, "birne"); server->addMethod("examples.nix", this, "nix"); server->addMethod("examples.plusOneYear", this, "plusOneYear"); } QString Server::callState(int i) { if(i < 42) return "Banane"; else return "Orange"; } QVariant Server::birne(int x) { if(x < 0) return QVariant::fromValue(MaiaFault(7, "Birne is doof")); else return "Tolle Birne"; } void Server::nix() { qDebug() << "i got called"; } QDateTime Server::plusOneYear(QDateTime sometime) { return sometime.addYears(1); } qnapi-0.1.9/deps/libmaia/maiaXmlRpcServerConnection.h0000644000174100017410000000572012567301464022477 0ustar jenkinsjenkins/* * libMaia - maiaXmlRpcServerConnection.h * Copyright (c) 2007 Sebastian Wiedenroth * and Karl Glatz * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef MAIAXMLRPCSERVERCONNECTION_H #define MAIAXMLRPCSERVERCONNECTION_H #include #include #include #include "maiaFault.h" #if QT_VERSION >= 0x050000 class QHttpRequestHeader { public: explicit QHttpRequestHeader(QString headerString); virtual ~QHttpRequestHeader() {} bool isValid(); QString method(); uint contentLength() const; private: QString mHeaderString; QString mMethod; QMap mHeaders; }; class QHttpResponseHeader { public: explicit QHttpResponseHeader(int code, QString text); virtual ~QHttpResponseHeader() {} void setValue(const QString &key, const QString &value); virtual QString toString() const; private: int mCode; QString mText; QMap mHeaders; }; #endif class MaiaXmlRpcServerConnection : public QObject { Q_OBJECT public: MaiaXmlRpcServerConnection(QTcpSocket *connection, QObject *parent = 0); ~MaiaXmlRpcServerConnection(); signals: void getMethod(QString method, QObject **responseObject, const char **responseSlot); private slots: void readFromSocket(); private: void sendResponse(QString content); void parseCall(QString call); bool invokeMethodWithVariants(QObject *obj, const QByteArray &method, const QVariantList &args, QVariant *ret, Qt::ConnectionType type = Qt::AutoConnection); static QByteArray getReturnType(const QMetaObject *obj, const QByteArray &method, const QList argTypes); QTcpSocket *clientConnection; QString headerString; QHttpRequestHeader *header; }; #endif qnapi-0.1.9/deps/libmaia/maiaXmlRpcClient.h0000644000174100017410000000447612567301464020436 0ustar jenkinsjenkins/* * libMaia - maiaXmlRpcClient.h * Copyright (c) 2007 Sebastian Wiedenroth * and Karl Glatz * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef MAIAXMLRPCCLIENT_H #define MAIAXMLRPCCLIENT_H #include #include #include #include "maiaObject.h" class MaiaXmlRpcClient : public QObject { Q_OBJECT public: MaiaXmlRpcClient(QObject* parent = 0); MaiaXmlRpcClient(QUrl url, QObject* parent = 0); MaiaXmlRpcClient(QUrl url, QString userAgent, QObject *parent = 0); void setUrl(QUrl url); void setUserAgent(QString userAgent); QNetworkReply* call(QString method, QList args, QObject* responseObject, const char* responseSlot, QObject* faultObject, const char* faultSlot); void setSslConfiguration(const QSslConfiguration &config); QSslConfiguration sslConfiguration () const; signals: void sslErrors(QNetworkReply *reply, const QList &errors); private slots: void replyFinished(QNetworkReply*); private: void init(); QNetworkAccessManager manager; QNetworkRequest request; QMap callmap; }; #endif qnapi-0.1.9/deps/libmaia/maiaFault.h0000644000174100017410000000324512567301464017136 0ustar jenkinsjenkins/* * libMaia - maiaFault.h * Copyright (c) 2007 Sebastian Wiedenroth * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef MAIAFAULT_H #define MAIAFAULT_H #include #include class MaiaFault : public QObject { Q_OBJECT public: MaiaFault(int faultCode = 0, QString faultString = QString(), QObject *parent = 0); MaiaFault(const MaiaFault &other); QString toString(); QMap fault; }; Q_DECLARE_METATYPE(MaiaFault) #endif qnapi-0.1.9/deps/libmaia/maia.pri0000644000174100017410000000050012567301464016474 0ustar jenkinsjenkinsINCLUDEPATH += $$PWD/ HEADERS += $$PWD/maiaObject.h $$PWD/maiaFault.h $$PWD/maiaXmlRpcClient.h $$PWD/maiaXmlRpcServer.h $$PWD/maiaXmlRpcServerConnection.h SOURCES += $$PWD/maiaObject.cpp $$PWD/maiaFault.cpp $$PWD/maiaXmlRpcClient.cpp $$PWD/maiaXmlRpcServer.cpp $$PWD/maiaXmlRpcServerConnection.cpp QT += xml network