From b9210320ab5d76a41008707281a82ca3c7719a0f Mon Sep 17 00:00:00 2001 From: Minsang <54884351+minsang-github@users.noreply.github.com> Date: Sun, 5 Mar 2023 20:48:27 -0800 Subject: [PATCH] initial commit --- .gitignore | 64 +++ README.md | 196 +++++---- deploy.bat | 8 + doc_img/monitor.png | Bin 0 -> 281037 bytes inf_launch_ext.ps1 | 237 +++++++---- infzoom.sln | 25 ++ infzoom/external/ini.h | 684 ++++++++++++++++++++++++++++++++ infzoom/external/log.c | 173 ++++++++ infzoom/external/log.h | 49 +++ infzoom/infzoom.c | 509 ++++++++++++++++++++++++ infzoom/infzoom.h | 31 ++ infzoom/infzoom.ini | 105 +++++ infzoom/infzoom.sln | 25 ++ infzoom/infzoom.vcxproj | 168 ++++++++ infzoom/infzoom.vcxproj.filters | 39 ++ infzoom/infzoom.vcxproj.user | 13 + infzoom/window.c | 156 ++++++++ package.bat | 19 + 18 files changed, 2351 insertions(+), 150 deletions(-) create mode 100644 .gitignore create mode 100644 deploy.bat create mode 100644 doc_img/monitor.png create mode 100644 infzoom.sln create mode 100644 infzoom/external/ini.h create mode 100644 infzoom/external/log.c create mode 100644 infzoom/external/log.h create mode 100644 infzoom/infzoom.c create mode 100644 infzoom/infzoom.h create mode 100644 infzoom/infzoom.ini create mode 100644 infzoom/infzoom.sln create mode 100644 infzoom/infzoom.vcxproj create mode 100644 infzoom/infzoom.vcxproj.filters create mode 100644 infzoom/infzoom.vcxproj.user create mode 100644 infzoom/window.c create mode 100644 package.bat diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6c2e952 --- /dev/null +++ b/.gitignore @@ -0,0 +1,64 @@ +# Prerequisites +*.d + +# Object files +*.o +*.ko +*.obj +*.elf + +# Linker output +*.ilk +*.map +*.exp + +# Precompiled Headers +*.gch +*.pch + +# Libraries +*.lib +*.a +*.la +*.lo + +# Shared objects (inc. Windows DLLs) +*.dll +*.so +*.so.* +*.dylib + +# Executables +*.exe +*.out +*.app +*.i*86 +*.x86_64 +*.hex + +# Debug files +*.dSYM/ +*.su +*.idb +*.pdb + +# Kernel Module Compile Results +*.mod* +*.cmd +.tmp_versions/ +modules.order +Module.symvers +Mkfile.old +dkms.conf + +# IDE +dist/ +.vscode +infzoom/.vscode +infzoom/.vs +infzoom/Debug +infzoom/Release +infzoom/x64 +infzoom/x86 + +infzoom.log diff --git a/README.md b/README.md index e0ea776..8a1bc24 100644 --- a/README.md +++ b/README.md @@ -1,46 +1,48 @@ -# inf_launch_ext -INFINITASの起動オプションをいじる - -For USTA(Korean) Version: -[Coldlapse/inf_launch_ext_kr](https://github.com/Coldlapse/inf_launch_ext_kr) - -## 注意 -このスクリプトを使用することによって生じる問題等の責任を一切負いません
-このスクリプトを作成するにあたってゲーム本体の改造やリバースエンジニアリング等の利用規約違反となる行為は行っていませんが、なにがあるかわからないので自己責任にて使用してください。
-なお、作者及びこのスクリプトはKonami Amusementと一切関係ありません。 - -これはランチャーの代わりにこのスクリプトを立ち上げるようにレジストリを変更します。
-**スクリプトファイルを削除する前に必ずアンインストール方法をお読みください。** - -## なにこれ -INFINITASの起動ページからランチャーではなくこのスクリプトを起動するようにし、コマンドラインオプションを付け加えてゲームを起動できるようにするツールです。 - -できること -- 通常のランチャーの起動 -- ランチャーを介さずゲーム本体を起動 -- ASIO出力やウィンドウモードを使用して起動 -- ウィンドウサイズの変更、ボーダーレス化 -- 前回の設定の読み込み - -## ASIO出力について -ARESPEARに採用されていることでも知られるASUS Xonar AEならこのスクリプトでASIOを使うことができます。WASAPI排他モードを超える低遅延や安定性を期待できそうです。
-それ以外でもある条件を満たせば使えます。詳しくは[ASIOについて](https://github.com/darekasan/inf_launch_ext/blob/master/asio.md)を参照。 - -## インストール -#### 1 [inf_launch_ext.ps1](https://github.com/darekasan/inf_launch_ext/blob/master/inf_launch_ext.ps1)をダウンロード -どこでもいいです。 -#### 2 PowerShellを管理者として開く -ダウンロードしたフォルダで「ファイル > Windows PowerShellを開く > Windows PowerShellを管理者として開く」とするとそのフォルダがカレントディレクトリになるので楽です。
-![エクスプローラーの左上](https://raw.githubusercontent.com/darekasan/inf_launch_ext/master/doc_img/explorer.png)
-※「ダウンロード」「デスクトップ」「ドキュメント」の直下では選択できないことがあるので、その場合はフォルダを作成してそこに入れるなどして対処しましょう。もちろん、別の方法でPowerShellを立ち上げて実行してもOKです。 -#### 3 PowerShell実行ポリシーを変更(スクリプトの実行に必要です) +# infzoom + +infzoom is a custom launcher for beatmania IIDX Infinitas. + +## Disclaimers + +infzoom is based on [darekasan/inf_launch_ext](https://github.com/darekasan/inf_launch_ext). + +infzoom will use functionalities built into Windows to change window decorations and resize the game window. None of this is invasive and very unlikely that any of this would be considered a violation of Terms of Service / EULA of Infinitas. + +That being said, contributors of this project (or the fork this project is based on) are **not** responsible for any consequences of using this project, which can include (but not limited to) getting banned from the game service. + +Use at your own risk. + +## Features + +The launcher provides the following options: + + 1. Skipping the updater and launching the game directly + 1. Ability to use ASIO audio output, instead of built-in WASAPI + 1. Windowed mode (resizable) + 1. Ability to pan and zoom in/out, with presets. + +It should work with both Japanese and Korean versions. It has been tested primarily with the Japanese version. + +## Installation + +#### 1 Go to [Releases](https://github.com/kinetic-flow/infzoom/releases) page and download the latest version. + +#### 2 Open a PowerShell window as administrator + +#### 3 Change PowerShell execution policy ``` -PS C:\Users\darekasan\Downloads> Set-ExecutionPolicy Bypass +PS> Set-ExecutionPolicy Bypass ``` -※Bypassにしたくない人はダウンロードしたあとにスクリプトファイルのプロパティを開いて、「このファイルへのアクセスはブロックされます」を「許可する」にチェックを入れてあげればRemoteSignedでも動きます。 -#### 4 スクリプトを実行 +This is required to execute the downloaded PowerShell script. + +#### 4 Run the script and install it + +For Japanese version, run inf_launch_ext.ps1. + +For Korean Infinitas service by USTA, run inf_launch_ext_kr.ps1. + ``` -PS C:\Users\darekasan\Downloads> .\inf_launch_ext.ps1 +PS> .\inf_launch_ext.ps1 currently command: "C:\Games\beatmania IIDX INFINITAS\\launcher\modules\bm2dx_launcher.exe" "%1" script path: C:\Users\darekasan\Downloads\inf_launch_ext.ps1 @@ -51,51 +53,89 @@ game path: C:\Games\beatmania IIDX INFINITAS\ 3 : copy script file to game directory and set to new script path (recommended) number->: ``` -「3」と入力してEnter。done.と表示されたら閉じます
-スクリプトファイルがINFINITASのインストール先にコピーされ、bm2dxinfのURLスキームのコマンドがランチャーではなくこのスクリプトに変更されます。
-## 使用方法 -いつもどおりWebページから起動すると、オプション選択画面が表示されるので数字を入力してEnterキーを押します。
-アップデートが必要なときは0を選んでランチャーを起動します。 +Here, type 3, and press enter; you are done. + +Once this is done, when you try to launch Infinitas from the website, it will automatically launch this custom launcher instead of the game. + +## Running the game + +When you log into Infinitas website in the browser and launch the game, you will be shown the following prompt instead of the game launcher: + ``` +Executing: inf_launch_ext.ps1 +JP eamusement mode Please select option. -0 : Launcher -1 : Normal -2 : Normal + window mode +0 : Launcher (required for game updates) +1 : WASAPI +2 : WASAPI + window mode 3 : ASIO 4 : ASIO + window mode -number(last time: 2): +5 : WASAPI + fullscreen borderless with zoom +6 : ASIO + fullscreen borderless with zoom +number(press enter for option 0): ``` -なにも指定しないでEnterを押すと前回起動時のオプションで起動します。
-もし、bm2dx.exeのプロパティの互換性タブで「管理者としてこのプログラムを実行する」にチェックを入れているなら外してください。うまく動きません。 -### ウィンドウモードの使い方 ### -ウィンドウモードでは実行中にウィンドウの位置やサイズの変更、ボーダーレス化などの設定が行えます。
-120Hzで出力可能なモニターを使っている場合(144Hzなども含む)はWindowsのディスプレイ設定でリフレッシュレートを「120Hz」にしたほうがよさげです。
-``` -window mode setting -example: -window size -> 1280x720 -window position -> 100,100 -Press enter key to switch to Borderless window. - : 854x480 - : 10,10 - : -``` -ウィンドウのサイズや位置の指定はそれぞれ「1280x720」「100,100」といった書式で行うことができます。
-何も入力せずEnterを押すとボーダーレスウィンドウになります。これらの設定は次回起動時に引き継がれます。 -ボーダーレスウィンドウをモニターの解像度と同じ大きさにすると「排他じゃないイマドキのフルスクリーン」にできていい感じ。 +### 0 : Launcher + +Launches the original Infinitas launcher, which lets you change settings and update the game. You should run this once in a while to check for updates, since other options bypass the update check. + +### 1 : WASAPI + +Run the game right away, with WASAPI audio (the default audio mode). + +### 2 : WASAPI + window mode + +Same as #2, but launch the game in a resizable window. + +### 3 : ASIO + +Run the game right away, with ASIO audio. + +Making the game use ASIO audio requres extra steps - see [this link](https://github.com/darekasan/inf_launch_ext/blob/master/asio.md). + +### 4 : ASIO + window mode + +Same as #3, but launch the game in a resizable window. + +### 5 : WASAPI + fullscreen borderless with zoom + +Launch the game with WASAPI audio with "borderless fullscreen" window. It also runs infzoom.exe which give you the ability to resize the window with hotkeys. + +To change settings, like which monitor is used, modify the zoom presets, or to change the hotkeys: modify **infzoom.ini** in the game directory. + +The default hotkeys are: + +* Zoom into 1P: **F1** +* Zoom into 2P: **F2** +* Zoom into DP: **F3** +* Reset zoom & enable manual mode: **F5** +* In manual mode, move window: **ctrl + up, down, left, or right** +* In manual mode, change zoom: **alt + up, down, left, or right** +* Forcibly close game: **alt+ F10**** + +### 6 :ASIO + fullscreen borderless with zoom + +Same as #5, but with ASIO audio. + +## Zoom mode: important notes + +This application allows the game window to stretch beyond the visible desktop area, like this: + +![window size demo](https://raw.githubusercontent.com/kinetic-flow/infzoom/master/doc_img/monitor.png)
+ +... which effectively gives you the "zoom in" function. + +A side effect of this is that, if you have multiple monitors, the game window may spill over to other windows. + +Running the game in windowed mode is not originally intended to be possible. You may or may not experience sync issues. Ensure you are launching the game with the correct refresh rate. + +The game window is scaled without any filters, so it can look pixelated. There is not much that can be done about that, but you can work around this by changing the Windows desktop size to be something smaller (maybe 1280x720) and launching the game. + +## Troubleshooting -## アンインストール -**この手順を踏まずにスクリプトファイルを削除してしまうとランチャーが起動できなくなって詰みます。**
-「3 : copy script file to game directory and set to new script path (recommended)」を選んでインストールした場合はINFINITASのインストール先(C:\Games\beatmania IIDX INFINITASとか)にスクリプトファイルがあるはずです。
-管理者権限のPowerShellでスクリプトを実行して、「0 : revert to default」を選ぶとレジストリを元に戻します。
-それが済んだらinf_launch_ext.ps1とconfig.jsonを削除しても大丈夫です。 +Look for infzoom.log in the game directory. -※どうにもならなくなったときはお手数ですがINFINITASを再インストールしてください。 +## Uninstallation -## 既知の問題 -- ウィンドウサイズを縦横整数倍以外にすると汚い(補間処理がないため)
-補間処理を入れようと思うと間に挟まってレンダリング結果横取りして別のウィンドウに表示するくらいしか方法が無いので、気になる方は~~DxWndとかで窓化したほうがいいです。~~ DxWndは64bitバイナリ非対応なので新INFINITASじゃ使えないんですね -- 導入がむずい
-「何をやってるのか全然わからん」って人は手を出さないほうが無難? +It is not sufficient to delete the PowerShell script. Instead, run the script again, but choose option "0 : revert to default". After that, you can delete the script. diff --git a/deploy.bat b/deploy.bat new file mode 100644 index 0000000..c497d75 --- /dev/null +++ b/deploy.bat @@ -0,0 +1,8 @@ +cd /d %~dp0 +copy /y infzoom\infzoom.ini infzoom\Debug +copy /y infzoom\infzoom.ini infzoom\Release + +set outdir="G:\Games\beatmania IIDX INFINITAS" +copy /y inf_launch_ext.ps1 %outdir% +copy /y infzoom\infzoom.ini %outdir% +copy /y infzoom\Debug\infzoom.exe %outdir% \ No newline at end of file diff --git a/doc_img/monitor.png b/doc_img/monitor.png new file mode 100644 index 0000000000000000000000000000000000000000..667336509351c137d78e2b2e6efc9d925694a5d5 GIT binary patch literal 281037 zcmcG$1z42r);2tJ!w}NQ03zMpEuo}HNyE^?(A}-Hl!T;|bayLVBAp@v0@B^z&GS6_ z+57#Ez2EQszyJH^P?))AUA?Yzt#z)YZ`4%eaWKg-K_C#0qJpdj2!wb80wH9eBLYvD zpRQ2@zc3sWbe%yU+|Lhx5t3MNDL^1hKWj}L7aipn!e($7yNNm66w2-aa{#14AW;bq z2NN?}s0+jtYH4jRM!VnAK?|`q7o*kYQ|455kbzoRD|k6UUwWx%nt9op37OMMh(km@ zgnhigUG<0pb$QGel{~M zUOtF`5IYw?53i6AD}Y8<4pwj%xU&`fKWxI^U;n)o4#F}{P!kuplO`N) z_m5Ln`$sPj8JUMu6@oBoTict%-JO{pX8BhesH}+#RE(CJlbeT)6Zj*b$;~6oBP7fx z#KtKo%*pwus4}2O<|ZyC|4x{fPneVMzX-$4tt~wNx1#1|!WM8RmyJG+?Jn?V(2#b|-4vRhl53-j_o1^7)(1=)B71$o#^IeAUkgao*_+03Dw zLMBjd3tm%Bfq%4@g`2rPXuw1JKQDth+zjaB@2wMt3Yu7OnF?~V37DDivk3_DnzEUg z0E;#;;Su5zGUv145imn#zA(eP+wsMYiHn?J^#9hFQJZqy|c51{GqYJCT0(pN{rU*K_Q^#w0}Le z{x=)?Kb!iW-MU*rflmJ$E%{T-8E)a?ZsG)$vII8&f1-#S|7rftCT{=z>;)~%O!@A@H zPIJ)ypRb2oh}+y8YQo9J$p>5~b5mYUHWM>Jel}hnQz3IRK_MOszW;tb|9TDo|6h+8 z+};i9^e-CbVB%x~m>Z~*vly*~6C4IHad5D+HZyrpM-Df8^S@C1@0$Q|fkXaz@Bibz znM0kd|3wr2b(FuS0QtW--v3tb{%0`spKr~7fy@7^=fv?~N&kcdj{hfG{P|h-&&_=H za6ErlDB*vH3;$D11WcAN0IPok?f*MS{BwNx|5s>zP@KPYN>~%>;qt=76Hvmxa7Eh0 z@}CIvPq{y2Q~-Syqg7T_QPfn`fM_YcRFr-p2a(c{lloU+{zLSk-~S-`FPi&r`rHp|A%h>RpOzyKhE*biF5q3%m1>pKSch;iTXz?z%zSz`?pI7eE8d`gxUiL z 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

s(geUJ znH2@zbBMx7Fv}l+BEUex%#0`sRic$vNn*2tloF$&63JRL8Hdqeewuf$e(Dd41b3~=JGSLGVsLN(t5~VHFdAGYz zU?(%lB<_UJ0K}B?)TA^ksxuyp$Ky#g9@Qg>>R|t9uQ#_doILUDh4ZUxJL4fkA|ur} zR@y3^h=`BQ$1r=VylfPO8=&Wgyf(dCyC}gJGYb*j%hXInTI;<^yjts51@yqaM3FC| z!25P~e)Z6y8N!%ZhD7AvGiR)>wWkA*t_5T zP^)#VyJ%Pb;{Er3_Py`j(fS21;QH7z#967)ms*Sk5fS?#{G0-S#s_kIs_xT(kEnfKLOwWB2R-2JoX-H~8*-i09J)Prb;AUI6jD^qcg>TO5Dx zKmNc5|2BSIszit|tnK|`iJ$KjYsb^d@ro_I8cB7FWP2F@Flz~pqYO9>5H#~Q(N$)!z`OQb)_Wev4 zqZkEAqA)6>2_kV|VnPs!a-Dq_>dL2y(nbk`00Rin3;`hsGZ2ad&*B^aBM_2S3K5Zo zSP(!YNR&u|Xc37-F|!B&0!JmvVwUJA5+XCB5FkP17$X|s1VMmVAknBv2ggm2rgn@V zS|^wWQh`Ho5m=N)1F8;aI2whiRxbKjd4t^RC#{aDo6?1*2>>WIO;uvFO++PVP13eR zF+>)TN!8R92PRYyA|nElXhX(o0Eu3_XV=8&K{SIFGMKe6*QVdkwzfm%YF8nlNi*B+ zS#8ozC#$PwJg6rF7hE(d6PCzeY})DN8sc;k8?HeynS?>3(b_7)d@gsNL^;KNmN8j?6um7PR`uy+x-i5~=OWN(f z_o+|Kwx3^I{G~hY*lTtnO#$G4edwV*#Pd~X`_!RBfA>vq0)Ruq;SZcXeedptfAiV1 zKXdfx3jxZ{?gKsVyl(G%u5S4v@`L*j&uM`F6W}LzVbgm6KJa322d;S+KMeQ=m;*?^ z8T1dseEjiqK%U4p^q_f+~9 zkRTqj$%$@uXD){y56wJo&b4~|{9rZY?ez%;dmukFjOE7W#;2e|uom1xYe{ORqEMLl|xh{OC#v)yEdT<8Q%KIj&;xWT>f0yd^fsAYwptzZ`!3C;tBB zyXB4FedvLY0KnJX|I6_$-v@v$1OUmb7El6+8d0m*AfnROl@vsT7(&woAOz&u^G`yE z1Oy@kfE>AQnx=6gqKwvB8?A^CkN}VfnI%M?r85)_$RH?45=Br10syLp!TA^}tbB+B z0U|q(DjKZ`S=e)AMapExa1sL5O;fw7Zp!X_CvRm+Yd{GcYtIy7f-$p7M8s9qXkxt> z>gSzACux#8W9xPY=Zd+cC@KzP-;B%3WRRqqg}e*3i=GjPP?NIC7@XxJM2*%c$iOuc z#kmlh;8YOQx=2l)C%(bSR8Sazlq!r)LkJ;qVr{F{D$-V`1BlU7mT=~|vM#5S zaa~QgX`=HDQrsEX`EH(PhEi;`TMLUhL-)dk$?Aov_aUV`vYC|iq#ALIMb^%Ar>SB& z+9V}4RHJ%S$yjN@#1Gx2^|8CKb*>3xfCwlcBtqVCj5VUuIuO>v@oJ0zYbz(aelh37 zSG4_x+>q;p5NAnvuVK;7s(S6oiyK;AM)inhCC2s}e)jg3Nir)TacF)0$YkPdj}KMqgso#hjFcm{fw`9WHC&Aq>#~$3%Gd>aGmdTcn-hNZja(kfXnT4A^)4x6G zSZ{peT+@gf2N5i?BuTBd2teQd?C1A1`ONWe|1%GK1OOHS?Cl@4OiQWa9Xq}=6hlsOm;iym|!~o852#lJvQb5Qe&WFoxaw0{j z5S1qIAi^plCBdN**7r~QcA!Q#1Igws0|230wf}3RFW7QscOo4 zIth#+nod762?rml#&HZ5VvNQVHcv@If))4(3!bCXv*jglgn#=XXY! zxC9v`3XoD3m<344ph=bYv8i1IB9kaWCW#<1MiFEI24<1S;+!;96`C3VLsY||3+R-Q zUN! zzscw9{1x8FH*Ib0m1rfRdrzO9eSY%5fqn1v%MFg~?gfC4-FfFVRG5c~;y>MU&)(Os zKXvMPd+z)$(D}2EKH3lArFZ!3(q4MSwAXKL{_(ZlJKdI2*TBjbQfB7inn?lh-B)|8 z_9)yRdr{xkHS&SyJImE}#us0`A>tg;A;jMP2B+WpH{SThJNum?#0f}sWywg4A$Dy4 zNayC2;^w97=+XYIcb#~{n{IvQ{__Yxkl~;_eRk)Ovx7&+(^Z)?<>uhrg;P7zOADRe z;npD=ZFHa@LqNdcdv+N&pN7SMDo6KS;08cD1ew+)gP&h)A3D6S?+(P3#m-!}r64{& zxh7YFs5I{{^|FO44$5LN+Zt}JU%C+dG)dE=2*p0`#MA??|k~VW{p30#}EBq z>6Pnx&$GYhxN@%??=d8bztMUtk*B*qx4m7!U3WDyaFQM?!LB}QUVEX0fvwL|Sd2hahOXJ`Tk z0kle`7EKbtM9^f?G;7%`S4Oi$X5VThCypIBaqK{rnDKDDv$a!|4Jn;vS(2t{nxv^s z^Q1r5UOBw5xV)%zI-b_U@ia>8%qI&6Tdlq^Ij1evnQIlDLO@luFUu-;r?pB_D+FcT zOeWQI;+qCSP~KxzLs>~x`w$}%X{(L3q?8YFGN~rxvaTwQ5kMhPj3AWD_yY1NFL-R&k@5q=WO_ldNorb(cx8B~p z{dM!bejZ|kh=ppWm^HN(hz2RM zwv#4pV^Tu(e2*7i_3_oS{@ieH-H?~xjU;ltUr8x7qrZsA?C+}v{C5Mmt|>mh*=jv~ z^yrMO{FVzBe&NK4nezX`=H|@u@zBjTmr1h!I5SSqiQoIZy^X)NvU2^D|H}sterWge z+;}_}<7J=GzLx*??z{it$3H%6@S$_(e&YH_t{12UOGHYk{ZQkYX4ibZXCFD~E7SJ6 zV`!e-O zko3a*?R9hDt&_)oTrT^zD%Ji->!yvZVJACsp!HU&9)Wn-46|`@^S);vnADA-yj66x zq!*su8f^|_kF*ScXhd?y16OX>P}fi~9%#w&ywwk?31Pf5K0o5|>eiXjWXQk*;hSZ6 zH%xcC=-_EQ@M(D0JLHo9@Gf}J=Xj5NXjTh z2r)_wSk+vWu5Ln-Bx#nUIf4j!P(;8=B7q1?WR6IHNcvdir07POC5Yd{D2oR8F z^qs(n%4&s#k)jVSB8XN9ig=b#BeEb$e=aZDrah?7t?rB`W6>B& ztkncslQyWdP>e)TDO5@!X*AgBrVEQjtH;)Io`fPtjnUPp3AIARsF4pWwAx8NnP?Ht zvwW_fFCJ_s1?+6`<{EEqHbkPDIcS)tOH0|I!>L5GwJ~nU=E)MXAC?2==%IE{ z5|JV!97O;@1F}c}&|0+tQV^q6k!C$@x*;kbP^*L>cqbverX4~zK+g?%*+I`$HLG@U z&uq=cyYgy*o*7f;@&a;~)O>jt^XCs8nt`4}>+46R)911b0KRV58T9DFLTg|7%-QAq ziQ({yt*Fy^A->L2hYsyImF}EOKH2MC)8L_2>(}nR_k#~U2mtSW^wBTQ&0XK-d9P=$ zKVM3hzH2bJVq02V{OYvLoqN|{03s*1x4-pEmz_dYlKj%j%8L)~-v;2>Sd=~yX`J+E^YjW{RjUTbp9Fl{^0li zOFOyu#G#XKzxTVk=N91E%b=&O!@14PitDA;^3t3o!t)na*EZJnbBpg1$FOHhdmP~L z|Bv~WwL@<{wsO<78hiHr<+<^sIbD{15*dgi&|#G_y_Z%DPU1%~PWldJn=9y?7Uhz*?;> zDlNjI1(=0BGY9|^qS6Y~<-(&NblGJIAcDdWnT3TALPX!N_bh_SSeq-OH8^%9B17=( zy;l$j5z!=RVpGEuQS1Jk72RE5ueP@R*5;73pPz4QO%i?MJusFWM{7+pZu;}O&^7|q zjYJpN5F-SUnQIAwjlouu7?klel#>vdtWI5Y)zk+c5m1no!lG^3okVHP5QI5KQG`ZQ zt}}~jCsC*ja!hh+w^gf!T2Z^O$o1;^jk=7zPO&hbCsr>ns9v6JZdMYT)S80_(oWYF zT_VfTn|h3+VZF9G1m?xXx#56U*Vfio@#dQk7HO-On@Xu16Cq#6x{=yT6TlM?129BF zjZ^@{$Tfgb*a67_O{|m!vqz5fLwLiki|4od{Xez3y4QZj=;3|krAlL7 z(sk_tl>KgSk)J($_|50e9p2mofbVu1EVLJU zNnuRU%8Sk%qJr%gJZ8WRpH5Ue_FMgxvH@pZvn9FErpa=7}jj;P0R5`)SCY zLf26n|H&?Y?=EltTZ(6%dfor~(MO-!+>p9*AzlGJCt>|xHNOg%uAFPb-1@(q_@5uU z^{sEXeI;+1ab2nEk6v(KT^R376J4ZPrn^~@!+Re6xy!z-*Z=KPfr#*T?|%1(KC#=$ zpZ?ecN9e36Zo>q%*=#$;32y3D$LZK8f_e;-;f|5?;6l5b7p~jZ%pkf^EjRT(1OXiwgptr_fG9ygAs~QeF)=Da zqfMvXnQ!+}Gp$6B855f{HIK*k%TRb;RYTAX&~rmxX~eVVh1oB!ZY0-Cfonhy676XH z#gixRIei)c-hAQ0zdv^DeY;WUUp#qoXf5n>ht2#-SH+6Ih`Hrznx9-(%4@der|-J! zM?dk2nP2Jub@uH4b>hVJzq-DMuc6UggL35RQ-9UkzL2cG>s_DyTYu}ZU;bs;*|}bs zYvfbApa%fH2jJrXf9@;sZO!B(01p8C@YN=t8T9#0fNueL3izeGfTu{$+BX3&bKJa( zKMMd$5Wf%NH^Hf!c<$V#@JElt511=v7*_G#H{NpFiGHR{taPffPDcSY zSH5%O(rV*25KB@4UZC9EBXrN(=f8KQcl5U9e$ka z;2<(Uh~S&Rtc`7FnQAA97(%S;rfJ-CF3&wewyKfnTW`%lBZ|?TtAzYuLnI! zsm~uiJOe$4H#Y9A>(_5zUc!I=@L{d>eh$zqPtW;%MBt;tA-zDpoFn^8BagS+vu69x zKHKteyS?Y+df#J@J+zNoy+;PW2J-BYrDka3+GbaOy_jYDRr-pw-IMKh`wwrv`S@Tk zqX!-Q&LmB;v>L-QUyyKFS80qf_hSPkML^q_USjbAE8@SoQ`c z=pHE+mXE&qOo*CD4=#oXD5y|dRdj5t zYpw%55CR*kvosG5Mgys;+Q%v|=k27^$!rP&Q9y`D5i$Y;a1;Uo4Zs4xGP9NlgP?#= z1SUWdKomh?@t%X{7&t~iLTzkT=)7gLQ6Z3s5(q&LxyF1gXd4)eH4#TlG45zthr2S4~~HI*K$=vsS_Ynsk!d)TAjY1n<}j2j`lJ3&Cfp zKCslXRy#*k1CgUr+Gu06N^KefM;0VW5}NBtzej$e&s`j?U0k1x#~=)#s!6%IP9PDY za}}pHU6^mTGQ%EX69`Q^PiK#<%q%?yb{FQte({ z=KWWu?XGNgIzM~(FdRPo!-(%XeHsAfKlZWjd*d7b_bhuUgsnXf*WCcO?h9Z4gRg2F z|2Du+1N_`RAK6>3fF1cV3r|%2xny~vD9eM-Qu*^2zwsZ0U$}e_+yTg#OXe%lTlLsK z@P%i$*0<_Wxp}Exteb^P z3(MU*MpM(cPKfRuaAkdD_CUkVu2n)I zqGtd_Dxn}CETkyY)+A|?>m*0izz_wva*TmRuxOb)?KVR*+8Rwp)9J9@PA5fbtRc`~ z5^XZm$!*2}8jV$e*fi{$rW{vI;#~y8`pSgJdsjl605TWBTI;^ zi4)>Zrj@0#N0%^kW8n@*M$wpHILq_ z^vb^hdTz+8AhU@%#u!3;O@W^MYV4)(dGN%EcRckJ0KD&!M`pVoJaJ+MkFEkem#-+C zdgnXu_~=Jx8^7)8r$628?&sq4L-_MgJhAun4{o|?@1*j4&}3Vw58rdo58rp+%*pj- z+)N_-IXz$2y#)XdoH+5$r=I#Mw7veAKXL5Xo6eriLI8koe&B&$zx(bl8uQ|uo@+c@ zKfKRB^`Bqbzj2lb>vVlEf2h5@Ft_iR$#@7ZYH-V$J{e#m#!Zk2;2du}dhz$C_xTRp zv9$%~cldvcPZzNBW%WEMPkw9n&wgy0Y26r|!sN=yM8MbZH{gy3;PC=#0Qk=FfBCPU zSo!^DS6g$-RM@wkzfv%+dhY29m(~TX^XQ^7S*J6%*qUF+TfM)!{a`jZ{be;-`P?rb z{m?&u5)W`>?*qqZEoQkfRzIH;8I9JpbJe6Qw`&$i+iAC3q`5(oD3L{gL1>p^PC^uK`QhD|bdlygy0Z3zFQ$%Dz z)FPS#A_)K?B1pvGK{%#~x4F(C$*I+}Y*WRi4k1vU7g@`Yfq%2KYpaJ2B#w)?$qO9<0=`mi_K2-jzit+6*ko>AyT^CD%$PBM;p9pT#W4NhIa;` zYHDLqsbpG>CZn|g+Xj>M;ko+Bkya`?tZH3(ksuTlA|{Cy)Z06gu^UXwCe8aM$Ed6a zOxrCcJKXTqXnZdC!D!N(>m5DR&Qp`7W}ngeMj475^53!S52D`nyx?nr)APKb2X_^F zWN~o@diD$+k1Q@;cG+Cb>6tlnKL6IY-hBW4W^D}s4sUM$k!D z{{6o8w_csFXY~aJ{QAYF2v$=bZn?zzH>!>QvHHZ`t}g)qcmaZaZYCCD)z0RZPriOd zn&#{?s~0!Uk3MsDuG{_2E6~}k4F?O|xx*{B*f3}Y!=}E3av;h8N_SBCiX@xM@=e^#VQRt_ceOYCEJ?TP-@W#`wQQy2ee?wD3qY1sokNLk)qGJ3A* zFa4rA@&ix)liBtk8GPdA2MuXK#bx}`mFpd^)lG%U`k;cK@MsEyx;zKU+;#Cv+J#3J z|BULkR6hrhIBg_`<>{G)^Opm=-tnbRK6U4x3*ObfPIBGt7wv9hET#FioE}2d1i^7t zHZe4mB-R>Z3<$aqI5Gm^<+5BLfXo~sGYb)Fql`hC#cCk}f&?T6=P^b`My)j=2?7g{ z0#c$iX+)(c0!V}q*t>uzRx70ypo9>dXN(#Ml+}ntC`2THF`|SJ!3%S$xVK>Qw51h{ zN4&PqjRz4;M80vOx+?3s2~1ii79l~ESexZWqmBW61VCf8wE!q}7z~=Gu0TqF8bFNg&d+6s4rVB@9YKYpmBeyVZmw^xpWCsTjvVVR zA8fU{rfmGQ7LX)M^5|i(IUY?$K|&O$Yl@5}(GqnNEO-rUytuXD`SsyB0j;1w=mMlg zVtcI=07^F`?=(!>P9eB9*b9%H^0HW083Odi5dWKnMW%^zLgV27P#2y>wx0jc{Yqul?094lg z_VTjY1xEWp((Iy!-R@IA_=9);gMTpFet2{92RAo=@cB;n6K{X}z?gkBB79!Z0|5We zv14yKdv?F2=Y?u-?e*HoEYinNRd-B(d+!KSR6hkh5CBjhS2#330srtPh5(-c*hNRb`Gz0=1@(0o z*RFVW?v#(7g^$7jU~omH%=}FWs|*i;OrvZ^*aXfH5L~D1}NPq96hq&?^J(%)zM~vRp5= zZ8uYCiU>f+tLt$%@QsI}Wt%8X#m)gJGKo!7oo0fFmFLPqPErs>hQS~J#L)x+l`;lq zl}CvbATvma5=1GnL|ldS=Z3>cSiLmd8SF5R02%=0-EezzbA6Q!*{wD28|Zdzds(Ac z2yJWg#e)k=hjWuay)N5Z!=25sq6&qEqv>!ws6q(}txdH}B!xPD z5wdImwgdMd|$TfhaS&)>c8z87&+%{I<@^`(Za&x}3G%kY-B{OK=#G4uW_(Du4x&d&8m?|a_| zKY2OW{7*mr_;0-BEzf*8sQRCGLC>E2)K@-sOIJs&&*Wp5v-P}?js2?ah47v3et`S0 zx^~t3SH+t?F&+Yp5$nq-mR~@M1O1y%-g@rL+Ka2I`1oRbB^q5;NnNe8YywVy7@pia z@EZ0cln#Ot8H2(V4%Vg33%iMh1 zX4?5Ut(vNiCIzbrM9myrz`zVhNJvJJRstwm0U*w@4iX^%hyp=S5gAZm_cj*-0O80S zBQuCZ2MlZsN+t=h|z^uxzaVd&Dc}KTJ(dt=n);erF=Rnx+*EF7 zGc{RaRI61~p@|U6a_q+wliKCZQoArpF@Q75ir2!{m;^EcY=)yj^!2`%jJ(JbcLVg? zkpGVCJu%KWFf*q*U%K>c)6}h2Kg+rz$Q+c?L^v94jK|wa(&}^;0f_nK#XVQCPj)#y z0Pu&4i|^gt{7}EYxBaT{?_Fy4?CWnFIr87`z4!Y@qdn)*9)P&-)?0t!$dMhbufY)V zqR`|IyWKb3dFT6fom?*zIxhS26F$$OUV#4mAC{Lt_l@89=bn4+rE7crF=u}-&d)#d zSN_V)KYh7m*55gG>c3rAd-59j$kmBxzUiatTZd(?TYCIY5Oc?RA{r7%g<1*9veHZTkb=Tv4*F@=D(K)g`;Ne53 zH0^wByndJdAO3W>Tu0)cm!Ew{|7}vIFQOP_eVfjI^Y$0_wtOlsj7~lB%;^01!cE8S zx^3>}gU3&_OqM>f^B2D9XD(X@-}S}c{@Cr`-R*Z;g$8!fM-C9&wU!?5xp6+rthE5( zXZ1!y#HNWvh%~FUF0&vljJtP~2CWehge8K^94AP`B7#B&G*Ac$IeIZV?@S;^Gv5Y4G_8U zm5ZZ^uUxg8J)8g(q9rm_1D7^K<3ehc6Nwwmg{?T9#KAUCCbj1hD1b!g8t{^vT-$^R zA_t)$s)}(OWAKp-Sp*%#2~+@nR&UOlh57E$G|57U)5cGxe%g5FV0o@R*DGqKVL5Ql zE3}D$L)?MuYKqfvCT|{oK-0nWmi>mDW&Iqsb&=zGpOA_5RX<0|%KCW`6me91;1zw|(25 zZ%glbf*$R5|I`ORc>QDZ^T&_>{PE*^E*{-9vpDvdGww@C@=tHO4Q{*b4by4IdjL3} zrf1T0Z^?6w{M?ZvKet=X^Lf2UKXLNp{(2O9ZT{2;Ke)NMxv;SCJ>T;^s;+0%F!r2E zi1@+p_>Mg^_CoxcXVdg6()Qaw@PTVI+4Da>{J!`7{hgij=g+5UTGut6{_>RA<(Duz zv!L{Ah7jw7W4hky?Ov;Y>1?BJX4UViU4+;Y>2!~J2s-S2+ydmbHZ z*XvvL`c6o!J+iViKi8|8@!1Q{Zg1_(xB8jsR@JDfjzk^-h{*IN1dz~6zu|3f_|V+K z@nY+AqCkm4PkGY1`KFr|4`lyE?*505{K-ci|4if7RA?2WTA5^V<=@RMEuXmcrru)r z?hW_&BdhDH7d337AAVQ7N#MIdVcIE@)CltrrnmoKdUKXxk{YEciU?{!p;zP{D zzp?cfBU?ostuuDqEvJ4mSbgY;oeQg-n-3nl>*VWRzx=y@`mcQSPyXQ6M%dXZtCA08 zS>8)LG-cVuNFWfSTyN<~GMna9H`S!9qadk7K#fO^+2om>)s8?^02G5X&c_(YV3KL2 z2qXduF%Z$rcS{6hP-_h})TM8lhU1I?WU|D97(^k1WXWh!21o%aWduTmy7VyyQiw=t znk1GKqW9ok0E_}rkQj_-1wpYx=Ne`)Hc1M5Fz@!}^6>;4ABLlGk|#D-sC9^3Ro)nt zq$W!hhDcEm$Rwl_8yb-a0$?-&0E#q?i@|A~bh0AF!j+AP&O7~@eeK4=Gen{RtWvp2 zS`p2t@}t@bh+GmMLQ}=2CcbPL2N0iVTJ`P}%E5k`#qAyU>~n*9dq4{FEIY6?2evb+a_0dlGl{mjP8IeF)oSUr2DUe= z@gOW6%9jpy6N}DG20LjC_?n%1Zh)T4bKNx@+b_c%LA=pte>_hYBBD~-7~I~zu(_GM z>s^2A`0<;5=XZW;d;51*R+231Pp20zUD`Q*{Lj4O9Upq=p+EfG=l;)5XQSO-@qU(B z=j8%Dv(eup^juS$;>9oOn(AG9a!nP_m%DGjqJpDeTW$Av(|e^x|Cq|Wbot3IH?}Xj zQ2@A=XNMMU%9A%1wmEcQzSGVUouFz}b=Fiud_?0NQMLt8L?dXyZIB&+)!IGt%(F}F zV!LU4w>VO{VlcVjc+zSYP7?26+HjAun{H~~bX-4oW_^9#54R>8L)VnuOy4Tdb-c>_ zC_t&PYhe+CR#Yy`nWedfdKxEw=jh3WlQ$iy>hSmzUqTV0Jh8>n@}c>qWzf)D=-+zV zi6l>|@s5Il!Yt9bPTI~^?57c&XCG@($`TdcSCjFis+u%Ol-422#5aThDg{UcQdBl; zx93+@77r}7I+@immf^y=!Re=;Isb+GhtEE<_4z~HxxQ#sF&5qa;hT>gIGT%voe6jr zoe+S^isbrrPOF<3%}gpq4L|^TI&tG^DUzj0k{A?W0Tia-y=%OPC`8u;rI1LF5ExL2 zC_n;@L_je@gAy5lI8DeVMjJykE4~#4XK6A(n0=U8kBCqs#28!*pp8*hCq^rU2rQ9- zL@N=77=f9DC?YuaQ9L2*RAs5jTNzp2+@4Izrfi(8Y*ysTDpEv9#DsuaX=6bvAcE** z8vJxx#|TURZnT;?_kF2NVe_<}t`ljN!ui!gzG?)R~LR{d+Om zEUWH(<8r5c=!wTi4?leRnP<1QhFh&{@r`%)4zHYe^x^G?A3ax>lNPn zw*fFF==JDY}VGlvcdFv0Lod2wsAMj#e+99a|T1X%?!kqI~M(@Cl`1Bc+51rP{{NI)bqhaendWRxg`q)0I{2uS4M0|yWm zt1(FutFf%YaOftJ#wgJWNmG)fX=c$t=|Wwx7fEsx04I}bx?PUPA#d5dZ9z*ps(jKx) zIYhE~Zfpv{L0zJ-D1%63LbN`Lk5$!>!d6x^b%Wwkvb|or$g{dGFK%s2-7rnsi;MI9 zUN1&F*r~S%!|`-no-MmsJ2MGEFuGx(?VYXhaFn)n)-fUY?cw%tGzuX}^SRB9R+`eJ zf&eyYClO#U@(LLc)N317+yFg5L_k!P)$GmuB5c_!$;?~@!hm!G_k1-FbC(2y7{}u+ zk%c?%__jwM{lxG7?o)T(`OS-qZyAj~-s^2RM~4r;b23ps_j5ma^UZI%`|c0kci$(c z)15S3m=RaLwlnDr>F(Ke_V~XqJ)9m9XUT{5vwB~d`F=lV`TByRub3v+t1-ilFP^98 zmAdm@WZj9gJ8D`_E^VFf_s$eqzCDT0t*&pZ(<4s}n&?j)>%QZiZ9sG_;oLMlYTFyz1~(SrxGOM|T^9((NI zk(Hyzj~za-q;1ru#j0(yyw%apS5G{-@$jQ(H#c|kytlaAv#Iz1b#3ZeySkBpinP|b z!c-|Aq~k&vTnIs9Hm9fp^pj8DeCLS+$GTcs?^=Oc%g;`)?PUVN$N(saLWp23 zc6(`zGM&WXpdzxyg7Yy(1_Gm%vBsnr0Xaq@P)dmaM~;pGL^#IiV-yfXwmfs-35Kk=ld^ zr4F&FXU;BCR%K+!VqL|_xZd6@Cj+gG3Nf%mn<^iYx>O286BQ=wwsYa=om0ftK;7{6 zR+x-@tCe=TiA|}V!p?BAy*+k~M@n1Wh5pKHvlv05o1 z@FDoRY05e_omkZ0YwxuZqVnoO#!rBBYK)`q$a z%BQ`eQ@Q-Pi+*RaUBZr~Gz;@IPRnLeyO9VB+Yp-CMKVAtQ)y0$Y9Dma3;k9*_hp&Z zB?`Yr=OBG!4i4V?rde2CNqY0b5&?vT1sEWTus{Te0+EG97$69w+JMQyk3a-a-GDM* zMaNs4I9E-lRi3};)?45DxzGLVlTZHE8{hbzqeuVbV~;(szW%t#?Z=OQeT<{W9{c5k z2j}j%`sU*+?|tv#+i&lc(=Zwzc1?PI zwcOY~H>}RFQ~(B`0+;~o2<((`*bMvA#}}S?u2>VmiMK|sAJM-P%fo{>ulp;p3xzQ~{TKQTvbsb~WrlE?0O4_aN>)zdccmD)L zS-Vs{@yMw&_kU^Y?C`nIJ^kzh%7?6}=9%-PId$Fg5{v-^`Ni5WNw zNJO=p+<|6+Uxq7*4b z3KfcFljc?#9B)fCbj*#(Y|-r$Ev2Qr5a`GxtTzl5u&H@Z)8TA0lC^($h!6X7)M2MQ~EEIcG zuRne6OxEviY;QC;Sz7AM_lohTAu&tKCypn}qw?bV@bSU)=@`}lwqvYUx9;1Xo=WX; z11pK0$DQor`LzSf##;N_ne|5=IlHwpQU=kQI+%7V$@6rs&skO_CLyJhG)>dCO`TG; z=Llky?hqx)h|ZkuVz-xPy$o}cwu=7p!u)}5Q6L}(5i}%-K9vv{6$6NmJZd5<)D^H{ zMUeIE8@}$QAOqx)ZwGSalRi~3?xk)oS zolL5!Yqg3jwWPW6E=C_%Q9x1xLI4yzyAYb%c^?(&%-SqhiB$@b$OabIh*m}`3em?9 zP-#?}g@uIycOPX05fDa1qFEHYHe^Jks^e%>y2^0?B9-MytCiY>7{G;DPDBNW0wTzW zK!&uz7$AmN6gJUGW#edA3W`-}D^F|!F@)&72C*nwq83V((g3dHP(z;Nb6o`#eA5h? z;2JfZG#r3TtJ7cT&3Ba|As>MSLiD0Cn`#Z30L6#KO{&qLVumzLvn=nnx-G4u_pYgS zb|x`5t(MYuarIJpVQp>T#tcp%BS>SQY3Tx^vLK3vW7iBOp$Y_gI-a^v6`5MX?oK_d zT(CPWY30oDLDNC~l$PzPT-N0kfU*dlorM2H9iAYZnS;SITZUPKXbZZaB8 z+U?ifdFT7r*Vj*<{sK|h*_qsY^IMje?|$Nm^2|lH`|p(ilY8e9VG%D9E~l=2MK#$w zk%&YQFJfliwpSZ#Uy~02ufjbjB1~u(7FG@)d}lR1`rNtgvIzhUKmdpvgX;Xn`uI)e z_PaU@%dHD%)Xo;%bo0sg|B2G0~V_Xj(_|hj&tv^~djjQ6xm0J%UmZi`g?LblFCyv~n=XXDTF8lPu=hxOsfEl@P ztF8xiy_4x-Uc4@`hpWl(^i%QTSvh;|!l_ed2E(D&l(sUPx0p;dc7v^W;cQy83e-3$ z{a{d6lbR#vt*q7V6zxJJ4S_(#-eP+5ElVpmb%TwY+kP@t(_u8ES}o9sbp%FH22`SE zEZ@dKj1q*`FV$zxOeUityHTRiLU&wYo#fs5?#iKdw;zb>qn~;1no1(>i@egaDA$WWK4QFl8w z$r4nyEJHnM+_VISq}A>8`mK%yV4LVZDWYgC8YKckjLgA^v=h=TtwIH#vOIGs#3)^KF4|hz@=5ga5kUKXT&42YS7mpLpU|KJkfv7{W$XUtQXWA-sN%>s?`#2OKZ(TPZm-nnU2ZB8cZ%q@WAHE8MCi@=o2 z*g`HyUzUp@LK-m|iDAfJx>sWY3C z!NzSjb?>_E#EBzEj;`GFu}^&T$y1;8Q2@Ha^NBusc;(F}j%CZss5PEjU47(c^bT`M%CJL+viS=to6z&&_*ZLWZGm&yH(^_5*yjtoD7GkW3kO8G6AS+^HNNcSLgduqGUPMHZ zAPS2I;v@wT-Be*?eKg#mey`PSrvTVgF~-o;!B>$5qOkL^38J(%CQlP<4WLvKBLI=j z$k^GPiNFMag1+KvR87ZHO@kutcg_4_fs0wwh^x7t>`bPvsW|u;LS%-`!H5BzSK|`W zyq!}oFcUelw&-?Ry;K==K9p4xJZqDQ)|G?kf(83yG=f4<0!oP3QdATa zs#)5Wh-k^=Knhsk1!KH!$cq_NthE4CRp{L4p@%-cw)RxFyOL$ecr2g){BNgex6@fV zd-jQqjfWAle*Y$-`uzC^A9&!moU_a)M^8B;o@y?U--^%e=`wGs?nKq&jF;76Jc}w$bomfbtx}kb$zn7KF#$) zuD3i2ku|o9gwuNaiPMiD7R((3c76NVh0~pYTjQZ9b(COHq>OS=WB?EYZw|+9G#(@L z6KeN6OUuj4-A*gdg;Z?ZpsseBW(r`8S!|`I(=s5)UO8)GguIovI(hVAxV<_ZPuVeu za%J1qqqX(5tZfmbF6+T)XEfRLaYD)%o27YXvqU9Hk!P(U3ywB6{Ag0;J#*y5%AtcR z^GntkY#L}^noyn$M{(?VYm6$D%3piG#V8xkZKJW-LL;Hun=fpF0w@%8MlDPSL#nE# zaV`@}WDo@rX9ZQJQ=Uv}?|oLJX=;r@fLT=FEG|!AmO>d>L;$r-Ek`}8z)Bj>LvV;d z#(>d801{{HW)6aCL#&m`QROKlG?-f;B>5kvM1;0+cM}PM0D`6sk14m)7Ht8-b_6Tu%dvsxS{kij{qAW?~)3hx} z(MOvZom!nFXtZb$W@VMNd7)7;Oa{%cnhdA)rA=ahok`_`1t3C8XgESs2Um$UR)H(W zgN@aZNJYkU+l!q}J270w3ZD;G;EgKlubDZRlQhfP#nX>Ia^YY8`{6WJrSpMZfF`i_ zvGL+u^gg%{LI^$t$10PGLW#BoINUAbb3?uYF-C{bOsCLl9bR6(_v^p@&0433z#N<# zBPwH3@9SRgt~>Ai0i_fGJ6Cz%96FR8Ir4$8VHETX%*+n9|MNc3bH$wZWs^6B0Cg=V zPOKEgT2UP9bg{K?7Wff)_!HHCQgO4}n4Kokj0-R$ht8XArfG3#}E zcfaZQo%bG&9fwFCpxAjzs0Mwqy!_Axe%t9@;4V)HBm(IHCF zYV~_v--PMTRv52B90OPv4vkn>lQKr(FjZQI)!dsa#VfOlRPwML}~31vnw5FkQQv&8688;wXI#K^2P z0-|f86JNA+mMg7w^x&J|U2Mt#5>uUHC zR^H`^tE*eX;dYjps`1ri5}FBsN1#x<(bjed)21HOO>;HcnX#yDSbAO?!ZBufD{Xh5 z`1~iI{k30@F^WWxne}J(KM@fG0g>6_A_5qr;m%tiX$ww3;w+}%hP-5FB0A@kN{eE$ zz5Pds=S6Z66cHj|u40^J2#iFAD4i836^YJGh?Ft;Y*=1NN61S#8zMNzRpqv}-q!17 z&TUuKT3x>q?k%NMRc$qmYntJB{MgyE_jS96%kmEA26erjBn|V+YU!D!bA-BXMA*5} zaCqwc`Oj@_4bxPdTQ??s`SMA=B>kReVJX*L0*=SijZ2$zT{(Ps?&e$iCew#cbe0e0 zM7pzd)7|&1P~C6?zQRs!IxReN>Zw2c{m=iWUpfEDPoB=G-HL z=_L#}*xuL~Zj^4^gki%&7aQk2Ap|Z7&}vE(R5}5)wXe!@DjWbX0tgUbf|!9YfZl~_ zRp7Nzy*;T5g03|>X>nfYRy)zAJ*}kjFd2`1s4@)}8>vR+APg!~TLSHT6s59GqBJAc zO>pkI_)2B;(y?VFakNuS2czig?MqD*Z#ymGIb0|#nA~JS${LkgYJyB^SC*A)g4U+n z&9&B%eQ-W{h{o82j8TdJ0A{=&rNm40Ap(#9L>7uniU7cS-_#AFO_R)Mj1KB5RMSQn z)5O@!Sfd$Wwz3sw0YL&`21Z~YrHnOMsu4IwDW@@b-_&&j5Q6vKq?xf+DFq-fD`lEy zNvdp#&Q+7~cv_93K~gGq3X@Vct=x2LGOav-&hvI+(z>2Db){9hwA5WXR8(cTxiRvM zBMdQwoo#9wajp)5fmPZ{yPa--zLm9{O=_))qprP7rjyZVTviidoS$Dju)M5vGM&27 zq^vzACQGuUj`e6X=33glcDtJ<87V*(R)j@vY{&XZ*Dz*@@*XZ;%-7d9vNT;@T1*o) z9PSKucGd@*O$-cbmI^xh;c!?h$ZSGLKt#;=A`jcEXy&;AdUoewGQQfLY@OZjtir2b zn)~DJgcV2xQa5ZoUyU;npsE^cTStz>;qVI=FMe8U+$G@x;;dI?H*rqf#T+zCnKRq+ zHAB5DSJz5^p=K~s=|xXXO;eA@qv5a$;mzJ}cz@2h@|6KS-fza}V%!;xp15$~UoS7e zwQ0W3`%BK9cWw+|UjfkLTrC3L?@T6-UApx1XV0E#wYt`}^Sm=04ql6{t*amL@o0SU z;>F{~>et`Ba`3pCG*vd2SB+=zsLjgJ&T+X4d|G)j0)1Up^ z(`%#C4QxkH0M5n1Fb=mbo_%h$-AfK728BjMBcq!LBC!ggVqgT7s5CLPQBAAW&5QYI zX)gumgP24EvUe^779kJ~kP#q*0%$~bVyq){5E?QC1zp!klBU+?q7*b))4*in$`Wj1 zj5S&tB0uIKGaylSVL3KSF$meb-O2MbYaF2V-UF%tI025#;Dho3Da%@OZJVdMNRm!h zwfZVcJAE~GAZc}4pef4Cy(EIHOl)_oO;V`>G(?`+o>&W|@Xyf7pxD~iJAY1vHIcP>=*77N5^ z3A%}$Z{=O16Q!urYAe!&Vr(QGs$ndhVhx}|06`)$imVpJo`ryzFtv~sl(&p>pi!V? zG6aahGeB5auq!JI<5BD4h0Ti_gK^0K4xmmG)o$C=7RKgH@S9tsecA5hdDb1Ts@dlT z=mB8{VUwgYy5+1I-ZjIr=l&OF^d7SoAc63W(5x9CuiIrytUzlfUm+8wj7G~KC{C-{qh_J4!ENl0A^GT9gn8e;$v3Q>r`D5Z@y z+5n+R4N8Kc06?8!(aMc!RTTiyaHuL*N~o1dhzwelckF|Y%u%AXGv<$;Rbq!d9-aV4_8=gb z=V_imj4&ShrfNjUT2tgnnku7J6pk^>-U>)KOSS+YN<=V*5MvC&+G=8@L?QvCiOo{m z>11{7>smq-QaCG@A&4jtox~6UB`?yVNR%)FDvBmU(ApT?okN=y!n)f@GZQC6vKp;X zd5T2>X-3_4rZwa#5W-{>=lZSl=Q`V$*f-!@xUjlW*4xu+HOd4)1GJat`b&%5ENuZm z3_O`m$D?|FG3yse**NbS7p5wM_MGj`b;O`bbc7f=co*F?B6F){d%ZL@7^82RFq!(Y z8M)Xv7dAFGY?95-cU!Ie_=!WE{@nWJXfRw;3XU8;aA;+bS#J;H#?H3P%#`q2D5-t} z^t_}u_)AzIirna^KOW*i5%xX;v_J$~f)`So&Ib+)Hx8P9=CK(+xUNM*%9E(NKap9C2*R3b{7Bq77GVQxYg zHF2wUSe08bst8$u)~Ki`%WP5F7I2NE1dzb=y8Q#o%g!CVuzG4Vx+F67KCmQ+IcOv@ z0tP`TLTiyoD{Zy4##*J3jM7#iO7s|k5tXu}EFvip3StA;2&`%A}9k203wo*Qecb(22@dL zBqeycP#!Qd5*R~>%K6{}qkvJArA9n#Z@ZnXN@8qx(ss)vi6H_aAS5L^MrMvI0#Px~ z5>J3q07^gr78dTci-hASGQI5qkjHbcIablWoyM5?z=is4yGEHNQ#uh%>szOvM?^ruj zO)0NjzK$E9=VdT`-;l5QOv$s_OwQFIgc$WJpTc;r=)_BpduQesX^)6aQ#Z}jd&j(+ z3_r$K=5l7$9+;!|P1BUl)iDO}liW3@# z!-BQcQ25tYXBZN-7rw!ek_66SBF^p@pN}dE1`Ld-J_k-vVI}Q%AgbVZ3@_ zXKQ^lx>QwlQyfYfB+RnHFscYlkwDobL>f<;7=7@bl)B!wN`^o{ghYg+)Eo&VF=)Ho z%?s@0dfX1LUQBz-?N(2#gc=7N02LYqfC{yc0!54nfr+DNGD=I9 z>L?TfMnQ#&P*qbu+$wjrOJ?eJTUn-^YszwpNJ*-*!f0biQ4AQFISMn+s^(gwEJASP z9lNS=H2|RZ&@?e}Fo{l5tCT{JC@gV?HEG7GRt7;ph#7rE5DF1u<3(#oQ;nq92dy|s zpscW|V)TwEFw5335S(yO2n(aVFKM za5}BWJ3dBg8qW;z{1}l3!$ze#DXdNaR3NJ~pci2jBuI19pUVazjt7mK?1VB~UQAkf z(wj5ww#~E7rPZ2))5d6Pec-{kj^sOCTwLk}mesYyw$z&UMtB&Fe zFF9VF*TN0Zb3bNRjBa#Nb(7e4>=*=H_+51R7%g}y|4_T2Wv zpF4xZ3(E(JR=bJ5$V}Ck#?hW75x@bmG8sZ40b?vhP$JZkSd7v}X>AP^X+j#Sauodt z7<}N#ctXTUmMhgkj4=#Id7&^Eu2uD=G;Nc~vQ{3kAL>S!Ih3yQ97~(D6}6d(iBJh) z1O|>sOfE$6o(!QR0W~AkL5nv@Zad3nshunwTRw1TDJyJ5V1TGXWDX2lle4jD-j z5S<~>8qqg!X??JBX-g^7oA0;U2_RQhaK1qV7qw@XB-ZEzNh=b<7$ZkO5Cj22(gp#* zHQxKkj3NjUiP$8pt%xv!C_n)8(Z>e0B8&f}i=mrmx}7oMGLT^yc2Gpu&n zD~A@Amu-^hPTNceG91(~V4k)ZXfPOUp4~DD^yk~%o~0CZW~#A_$~sj(M3Jko&TESV zas%|-kXOgPVvL!UF;_|{rCxbs05gB3kZb?^ef@9ut_81_R}xCjWKV}{c74s^&NTq* z8XaaOz-G$4maMmUo#h7*Nd$+Z$@y~^5A^)o-+t3u-jz*Uy>io`d+y8+AEJBixa-oz zoBdcu+wSc7`pl_jYYhfvvaxgVi3^uj4lLhv{Ma3L9yot-tkyOLW%Pb3;s7FPNs>&# ze8mzY02shFK%coqQA;$aTWNkEu`2qrBIgm9Fk#do`cRjKa^Rk($T$w{B( zJ0@)@)r(XM*8mm7X{bPAsSN`rUa;{&QE3zx?c7@JC9smBTl9N#Ru|K098ZHzimLINGS!vO%-;wosVH* zS+5)^+Kss$^dNym5f)JZNT`TVB1;fr07O#{A?aw*IyUHQC>yD&;HuD_D|-DR%d-$-nK8`R0!;RjDeW} zBXYw4A<0N5T4B^gsa2`*(^0*#=9)5kCj@HKH0*gai~uS!jK>rXeKoWOp9#cKwD*D zeZ%_*0%8*cAs+;_QUbkw1IG?*kK9fk&aRFd zHwCPir&To~=`$CAEh3fLrQ96iXkFt&kZ95vvk<^}9V9^zz%(L8Xr!qdAcYBl711Dy z&t507C7le6BC8iy7H_)wV4f$d zYt{L+F>14LsNGw#I)^F7acHW*5(yDz0gEgw04kxx>Q-U$7AgZlz{SXsnFSaSRO4bj zZrJ18!orE0lEs5bd-Xat8-Y^50U|(TiIHiRX_$azR$DX*3IlqsT~n8(peU2*R<~7- zn^*yov584@V>1I9s=98fDpaGL#*a255;7yRY^(_yr4kFId?kJqf%N?0{_$Jdtu~Cu zysns&*$u}4xqzGD}4-$N=K)|sAM5E`HTjF_eVZ6Py4KP_*S?Cq5yijRM-np%4ARI1ARI=;4o)Ng>E8}h2Vx0u;`@4cVVOBg;r3`KTA@F**aG-0N+>9-dTc8@2fJ*oZ1)?iW(N0ZeovkVbPF$cuwGgbtR#wc-ciRehd$2kwF9|q~9sw5mM~@!4w`ebq zN*q*`%5C232odTWw51%gUec2Y$TkasrLJY@d@TW3BcKTIO6xtFq#z+GOcLQj*t08HA*Keo z1raD%WfGgTZM&Oy=d~?BIE}IJF4VPW;l!d+IGx7L&9WSoP)|@HID|1X+E{hCVW+XG zAVx9@kU~}QaOj!YnzSg2B(Wmg)J^cQ-GWxz6opkWvX3E12n>K}3f7SKBn>w%R+V=y zplD+-$&|4wO%))R9A05U2H%p!m+9Ai*KNbRmoQ{}3rn%2XeYFhaSfg}=ek(sQY z#fYO(91f?GauS0xiR2yKYPAu}&Q`s%H7duA)vBFYlO(O8Fb&xMAA5fmYiV|+iD7H) z@gL80&z<7lm?JZpnat!^WRX==RjIq(>cOpoU>j&X2)17Y=*hNV7%&7&@Qd_dK!9!N z$#S<_1`I=Lp<1nOS9i5q>}HY0Ihn~!<`DC6$8+x)|7nlQ4>vOyIaC!{Oh!Z@bK@eW z8~5yW_J96=fBReC`j%8o3Lk=Vq_kq3an6L2)}wWys#-_{AO`|#d~lp8Mgg7m(W2wT z0U$=yeEU*=Jk&>f)00WvHm8@))A}&cYHKp7PN&PNgNP~}sJyRL$|I5YAxYWBwqDG$ zlOszZekjfV6!ATuf}T&u69zz!EeG^risDz?@;}t5>wRzMiKMqaa^8K9=UhAb_IKY|nkvl`>rGX68{;Gqu$*^4d*ePw{Oa0s7cXoS zS#j&e+YcVx>N)}(oSaU*nfAvS;lS!A41kkK=UdQ`4mI)9C1 zdhfyh;px4t3+3f27fvR#?|$zGhm(_YyO(yiH=|v4rd_O>gZ+cXbO>3d2A9t5?Cxxy zERSA)>y?AaDFAJZcmCF2`)kiVv-Q^X>)-t2@7=idy0a(FlH}RN^Vc?aE+5aU)74z` zlXOsYhFpMU6{agww>Bx&c&v010yz^1I0)bnMT{c6+m?X<$nZA^>v6%Zv?6KId`; zQ3yZ9rfRTOq#0Nnt4egOr$}Aba=`#eDUHCajZM=DuG2&Y!ENP@jWI^=4P)d3 zBM_YPG)aJ5*TZ$p{j3W@zS(mPaC;|p!9mI%dQWpZnST03Yin5nM&{?LNcF~!J zF{X5)gv1cK+O6hpF>8DXgF&`=PW49IIdQySPmY&eW67hn&Y6}o%u{{o!m!s*m#a9P z)z$}LgQw1z4jE*5niN_}E*J;FEOXA7x+0xPB*uYJ2p$=ef^$ZZgv2t*q~Zv2dNjXx zzZPtL&>tm9(zQpn^J#BmFzjUoH?~_WAx(wSY@{_Zs21%K@xxr|r=aK4@rh1sF~+2n zF~&1B&*RkeoUswVx`6t_8$TinAPf*iyCZqX43?F+WANgu$aPZL>9%_2%DRy~4 z0D?#mvogQ>>_siEEJO3gjhT(GxwZAu#*3TlS(&rb)4A#R$z-zk;OKkbel5|%TQ`mt z^JZ-{9F0ov>HfW`Qq|763+J}awc(k`{H?CL4iJDMp(7R;$lyiWgvn&e=|R#P6>0CK z7hb;n?ArFZ?K^i*-~8FZZ05GdJI`Oc=9{^(T?}+E+TP!vEEfTtn;lo2m1bAz?>|NM{EUwiF`&U+yx;|-T)YrB8$az9x^l5DY}&O~H*avG{7 z`3P%kyc}^zxpaX$Xk4&0#ukA914N2U29=6DQ(98ndbfzi`ecASK~CJZtZBNsH8C=k z6-=rm0l`5qko-fR5F}*pqD(G?5G)4oT|f@V5F!%A;K&okAi70sm#s`wrj(RQ>kyo^ z-lB8PLN&)oo+TpdmpaqPkPFs!0O%1h&6Si&BaKRs0hmN3Qv38j`vhFnwtjC1WhF6Rv`sWqWqkvCCD znWbfxCP1`W)zjI`1wY;_dwJH@_Vj4k)D5yU$+GhovbqV@o1^2}Iut4a25F`dxk|WJ zTr0^VSQ}dBnyMpUX)0v`fsi=kLa>O@h0a)DtUpW!`TFXdUd`*OGSzCboI7I!a8~qm zub&f{)00_@q1P`)Yq?GYGA5Kj!Jg(K=ubh}fy9P!?6hdIa zZ=BO#`>oGhd|_NSo$Zhd$pvu+=eE}RW$*atcy@F;JL&)yrp7!SZftCBY_4^6ceI=k z)mfJHK%3TiivS8h0SEv~)Bq?T;ce)Qo2@E4tA@jki?(S*{oO%e` z2)3%4*WdiX-3Pad{`z2RJc6;z()p}8n$AsUS5uhm8yoQGp#SV|j-UNBV3DYb-WKwAe0T3f+41tXEHh4ghr4kcd-^p}AtGQVoM{^RJu5zYx3q2ZwPyrID`bB@B z(^S@VG$zCl8H!-xw6<*>lSFtQg2yyfS;m>dK-SxLje(>>tz~Dhshu%|5ESE#0YnNh z2*w4M2n>Sv5o06(7KsHPT_g&u@i3cJZM#GaTKA+#ouSTjoe420B?K~>&#L9B0zt?r zFOrQ--Rl)nvc;4wW{z67s+ya3PM8{uhBC`J=b|$XTwqdWS;`PRnGghm5S%9o55O85 zY!{0RmF5A^BLjfoqxS)P;4Gq+gOM1NgLz)eChc<3g@8%g$75px&UW9AWx9uW;vs2-h~9heeF)(R5*snb zvl!slCMx=KrQ8qU&e?e4CF}1N&=P%^aew5UP>im%jftTcWLGzKI^*{4P7V)_P375I ze`7oz?Up-R{bq5on%BoiRac#Q3xa3PW7D<_0~54b9d~UAZQSTx@^-pv8vr6|qdz4m z2va5oML8G^H;+%IlcS@%cZ#N4o6hPx_ouU2+XlZ_ETfC(w=VRG!J=wUPui|_qoRNQ z`767-{N!}+Uw-RH^QkR*SE9-%i~U=-e|mU$dT#UOVehn!eZEY+n%#$>FSS%Nj)r|SJ#iJuUI$D0D|TV3K8Al|_-~00D#qDG>mjLu-Q&aOSgWt>qjLnN*B1Mv*}TCAk)wBE=BM z`?|7P2u4Z0G{=XNra1ya&U;ywbIzQ#-gJ>L&2ybfHBlv8EA)|dHUt}j3#d_W z&Nxy8WDzA7929`D@xiofmJKIW=4FxR%bcdO+Mz?j;5>`5$TOyNl4)dMjSJ4dd%}62 z7xUA_`g{s{J{?bh=6NC_o{uG~^?{7ihnr@6IIr|L(_4R9438(0M=RLR!Z;gGM|$f| zwZwnuv)*>*WZo9T=+QTI<*k!4p4%Qsf}E>NvSA_9BsaZq#NB-AWAL^!2Ybhh#XQg8 z@|BICpQ+$3BV!116Uo*j&U`Yzx{8&{F`5Y)`5NJUUT=sVlrihN)YbWTZ=pI ztcsE856et&!LuYuxQJYk5WoOq1RKBx@DT*Z;K4Q!Y*d=1Ntz|ea@l1)cy_Z~8>d`A zRT*(xeCWmpXI-EmwGfIkjsS!lI5G$^hQK-W`k8PERIxHG1O^Z&v~Jaej*u6G98iWR zIhR5s=ZrXy6rD4Xf)GrnLP~)QkRc)Sk&N>pL?1XXDFha4BJ!-MMYD3j1))eLjKDct zt(qD07)g@MT!H9VE@B}ew$xU^LQn-~f+G14ITw;k6q2+=1VAFMkTcDgq)5SAKuS^} zl<*FlDmd#D=SoS=iI505x@b)Z#w=!Sy{clEAuwzDP2J|X&Xll<)tw90u#}a#lsb#t z4~9C+S%_{nH^+xvQ(KNvr;_o42}CBEI*!-))|Rr4JVlx^t$CWGjeK6&7~OCzbPnpw z!!d%lK3IW*VhAxJL=YUcl#-yHyZw9h>HaiN_0BeCsRBgC$W(Sgtq`DdDhrKC!UT&x zhQMOP7$U{^$gLJXbQ^vOdOjVW$Z@9jc+8rfUkBcL_?l;$o-1cNf6-axCsptiAHEDoDWFfCEwocuIVc5R#* z+fELT+)!S=)LR?nsnE+APETrXSt$p@L-?;d_@BM7=fd`rbM48`9rb=tYmEe*wB-XWUSGP!56p0Jkn$DQ2Ze~T^AFt^= z7t=*+tVOU&>fSI*dpavPahT1Us%q-SOTowEJWC}Z5FmOBV3*4(5H@YIsz9oO@!*5E zu3IfTUbCV|dwt0m_aQc&v#k>xkTVlZBm&?_5T%Sv8ix@i6N&NW_;jMR7F@aDy2g4Z zdILRNQ(W^7qK!TVfC!v(DHvzyf4MvGQ_%D2_ynZ4;`_(r6f*z%K+mJz%}9ziFZ(Kyd;9zM?%saol^-AO-MzTp7XOcr7l05an0bgc~O~k0J{c=`=uP&V*DD}e0qy}SE!EN-{cCV%@Qym@8j_xdv9vmFrKPZRm=XN)D&n4Igo{$fW zJXeBc86Wgm)(0kpP~aWx-#5!y%cX}Hy^8=b&v?H`J_veTG}aeoA|nu1hl1n9Zs(Hcq!a*|P%_g@Kx+d5NJ&{vc_z-C%kosNYTI>A zV$>W0`MrI=T6I~G496NV)NSQl>ut2rR|}gLN@%VXH`cq(cfdq~5h)N+B#IDiY-6w; z=_1+6mBdc4AcaI=i&>;oX1dtc4oIX4M+#)f0RS=~I3-dFH27{(nLbFhKKWGFr=aJT zjRpehiaQ&E7tjSy#B*-FhqQ4KJ;OOzQ+JH9*Swa_YbwqkE+EV z8=!osD|)EudD6G;`}I4B@0s=d{7yYHrV$*p1OdTViy;)5EHpQUOhdxUn#HzVqU+9Y z_0F9;mz75+r`2HG+unID&-oj#zjb_goX2o(eZ0G|CO6iixNvm3_sZL1W}+t#SOaT9 z43!PD+9pAq%&WF((=I-U;6yzi@O`sDVv{m-Kt)m&hGBr+pn1b z5kXeg8fzM;0Z{M~Q3F!lR&Txa+TQ-%Tet6i?caFe3tu|_;%EQO@Bhi=Kl%3ScW!^T zS{}xUT8s@y^98}7K!)6{O6#b&eR6-631q(d54_9yTEG?84A-WKP5JDxA zaSSemNQj&>7EE0Eu3NdbYbbUA?!C(v5Ti;INMWLN9&(mQEg26&5pn_mj({W(FnDr4 z(wVXufiQ56S_vu8v=A)D0E~OaJPQ#3L!hOJC({PNXQ}KDvh}SztS8O}j@%d~^0c0} zuA!!i4y@7vgO5H6!FqYY87`Nuu6zt$Nfn9O#sfgF&+;4-#aYS7C#HsK5$no!p%VkW zzAlQaNE4Ok$!wk+pRCVj7SJRa=A}j++in5iH#Uc(&7?AJa%!ftg$ux>5K^s;S#J;q zrPy3k6fs0d5?CK4x#p8eTvct7$X-9mGX@AcO|n8#h{wlnay;!U%Sx@Xgd;?d!EhmY zTBgJxdhm|gI#i3+TbCwc&`*m@YY`Szw5SNC1ooh~guO21I0toO8iBd{Vocepq+Hxj0)!qWJMn z^e8C#b?m-p{ewOrVR=%-#-oMnPb88*O;Pl;q3)m4JP3&IN}L6U@qo_n2*kmiBU>*| zr^h~~o*CKijV|r3UD<^@xA!6}W;45cIomqdzj^n;!RhJx=JwY1xm4%PVxA(cjmMWa z)`w*l$lt!(KR!CWH90n}f*64V0h`y|{>kE*OU30YYqRNca@^XfFLRkm35*l*wei;F ztC#w@x_@UfJ84G)b@6lOp8ag^+`Z(-Kh5slUwNO4tmrr`>Sj?vgnaAVXk&Y=X;!yy zzWu##|I5AoH)qqYeEn-L|L*U;aOKLy?|f(D$3J>~a+Eo%4_<#~IX^tSb?r01^^LU) zTj$mj%mNeCRxVmI944Eik+XC%ag(D-yIg>8O)D3zsoLYIK0H0_Ye@kb4qOmpATin4 zIJdbyU_FH91ST^(pVji64+@z%@-#^SZHOMudcgw(7lV&P0EET_8=`AswP;t9!ve4soJ{W*hDo+OhQvwr_ z+K!s0Jvf{OqTZ-CWFT}juAQ7Tt@UNE7z_t%<04IAP++Q{T0xd-L@qehH7%9_8TLo1 zRAg=49~Nc5XDoyejh!v3YPG@$m{J5r&IlyV1xp7^CJ-ZZ#xGW8*|k7XFzCQVOWb+I zrD77aNP3CwmQCGFCS0ezVtjUc)7e?p**16!6yLwQeOkTsmk{v~fI);90kHu<#ss1v zvH%5udhe>@S+{L~n#d7pfC7L6G-n$mfB}#I-Fv7A-(w&?Io!{qRxX@#0FqL~=wb|< zD**Aadj~)4rv7Vc#c;N%bIu=XdLH!&eEeAFG5GZSX<LeKltJ88~2x%OP=MXGyBKY=CHTE zKCA>xkB<)~Ck4iC&O2kf%50U}=hsf!lUv5O2o@Qxn&#HM`x_&D<@`>+7&t@C%4CYO zELBR*R?WO_7p?6~_v4?u^ZG0Iu3k(3#@~GID_?u=g>e4zGdn+f{l4I8ZF~Eq=6~{o zJ3spAK?Hr_^3^Z@&I`!s2jAIz<450raQoJO{r}#78-=N^voB3>*ANj<7X5{XdF5d$r%ztrF`=O-`E{zVwh>@TDJF~dvO1# zS)Fp4^VYKH$%}eMizT?kHS-ouMI!LDV*4|{Sk?Xg*#}lR_+X9G1teM`U?lK9dKaS) z02pJ8hA<+LVjK}GA_L$6I6$I`q`%c4Z7HYGpYY{rJ3p$m?)3^zA#|NLmN+La2nc<^ zh=>dsLu3pAfY7_>Y;-Pm#xoxJDbMr7sNh{d9vP3NOwtV7))*6x_M0>lMUSN^Cr=1b zDyB5B28{tksRlhD$P13l15lc?{wNV5rX?xKb*5KKAB?FMXeFka2Z?P(rgd6kRtl|Q zxiW|#6XC&~&cIm@zyh(l^^3|1#%&PR#Z?Wh0j7jb)2v|Bm=IzJp~wKlKs&#%*9S(_ ztXx+`h}gB^!QEzZWB_S>OP75v1Tg?1z&dLz6s6eM((E)5G8wM*L73TezMMAEI~#0F z)NmtF8f^p+q%t9;NDGOIpOvv&=LHcLe0?WJ=I6(zT2j+cL5PUXc>u~Z%QK~vXz}Si z(0>Ygeo@3@iP9Lag}`IHALAkfN0fM97(+@0DH&rxgoqu$%9xARZV}yKY?>q~V$V5C z6cLjcJ%B$sQBq$i_Xs(Qn5Ioi}op65JIQ7GnvZx)N|w{JDmNpQHed0}mBYu8o}mdC~$ zhz&9a;Ek=UIR#2MddVjU#&lWNbQoFydvG-Q{ts`j4|^)hw{{Cq&4c69^#`Z~6 z%=7E(Te()lKJU5(Q3H^~syle))%vJiRWE)idG7qxk`hr1VSPuiLMEjKj+luwO9TfP z7D;w-Fzng2q4UO^oYaeXyPWfb3GUD5lf!$}10OoSbm)_QIT#js_Q4Nl2#ZCX^@_5P zoPn|6jQ7q_B!QfBP6#mqLJ@En|w3749Jqt()c0BNE*<8^Hg51mq+Q1%B}NYpw?Nh*^%Ekm1%h>5~9VIg3< zY5{G3DA$IG;35RFKE88nzFN)dicFWLiR_G;FKyXx*GB!MEbYoHs&H@=@*WD6Z*1kA z@zyyhg!j}`;7tgv<%p@&wvKHTtrh*D?)OEO^E8nNR5wkv=!BH1E{A>D865&k6z085 z3kJSf&P=sx+5-t}JQ!(bKnl4w)+&)q08nHk8HwltJxi6y2cT8oIcnzq^kl^|Arr6` zbt1AtY1vP+bot>fB%gwwzf8;oq9xKH{M``#BLD^P|LD5EcYM4D@VA`%+s6E(82_1+ zJw!p|5G!LoSJ(fE_g@A0CjkHF81G8??{*z??vSz10Nf=~b-e-bf9E_1A&Br3mggd( z5PS#(fX-D_Ra<*G&-=^e+lbRF>!0DCk81;d3^49dbDD=j<|o^G>m$GW7?9tihLcZ8 z@2y|t8WORp>JIi-^|i2dPHZq{Iy%~iySKajyNkubcSbU%vrH#t)&n^b;AYttA_8>=qybQI$fvCB1X4Eakh9n+5YTjw!i$;p^7>-eCOfvll$byAS*i zURm9|w@PxodwDw>mB-7a<9P96@s+=F@!a{|xBtcYw|?^ae75@W53hgiH^rB}aP9oL zB>a!Ejh9yp;^JTIv0LI}__A$ZS))QL!w&@^q`bdo1&DzxI&%FR#Pll@v) zOhncnCt_VBN~bz@oreg<`QSUjIF||;2*H%*z`Un`3}wO0Sgp+I#Gjl{nx@0;o+`xQ1J`w-YVDeW-l*rHUA3mUYw}X}hq=yKu0=tzZQa4% z(sqz1a%0E`rL>)x)D6Ti-pJO*d0CRys1yr<0Fm=|6^D#ruSl0GvzRZCWo40NS9H_1 zN7LqTW)JUI%_;%|p`kYtQZws92vIV|2m(Q{+}Rj7q=gy`2c}xi=M^N_8)Z@^k(e>$ zjrX1ip5FWYQ_%D0(>xA1?{6I*{)3`;0pRZfyan*zpUDIe7eqVO z{wLml7T`w!|5Jdw*8XQi=VN>Z;C_rR1Kb2i05m{&+INCq*EmbUNC`r~@$uejHTv6s z`~URZbIs{~fn|n@MOV!YZDniEZCv0<|Hp6b-8;S=!aNbnVXq1Pbh#LR?xl@O=byX0 zJ%0Vi)9-%o&Hcsx(%X5{E}PT+lY>PwTGs0b`ueToySMiG#rU_relaQ2JNvUg{=w-# z`yZ!!lWO-$@BFpx;pJg0+@e~1=heG|QlINz`oh<~o}}Y9fAD&}JnpK)_1-ftJbUHE z=X?7{)enDg{K`*$+_onGtNPxZSN=)4JeWWCjft#O~pI=icE5~_nTqe0x1kuH=>6$jwD@Nb7A6#F-q~fbZ)mAGZ zQEFNAld{l~3)fKy5f~7oKv7Axw!7BPN+o@atTkA9^a!gqhUmN2WToazt(NuaUfnKY zF_bFB#)J@T2q6ZH0ek>pOi5ro5JW9Ro}|bnVgw-PSd16~F>e_ooeC-Qwu^1!yROBE zM3OP>I%{W5>zitUgRU5jdxcKWdt;+BJ_2}RJ~9GAAY#BcixENy!5K8fEi?^Swel|UqjBnebqTVpNbtXJm7gypg&5M`MP!A_@(>4_JD zZ*Hk|UZ_-C-%RJ#(V|wV9-qq-fl>ej3V@0OhG;_Qnr_*c1x6(`V_IuvLlj&pkw$>V zI3yp9u`WDfe-4kPmOm=%{3+;p`bGc{0AB^z0{Hh4e**9y6KO>006jw=$`Dwe{wX>nQ|Eby|3HWZEpVd z?(S!jL|wi5*Z21RRoATsgFcb^6-CXDImdM7$oyn`Z^3&WIUnf8^(#j53;yh*4M!ig zA$z)eZ~fex`K-bKVyxzFc2wWKe*gN7JAw6{dG6({bGz14WI>iv3qi75RrR8+A@A>8 z+HFE>y^S$MiiA-Jq#z>nO&Bjae>C$uwYsvodudbOKfH7>OG8*ic&BRTZ@sggYwRWK z=hw@y?O&1R&JzJ%9yxWm%MXtd9%5py=LBi`8ReiY+YLK$=Tu2{kxNV)VqBC^5)w4(I9^N zd-Z&_M=>lO-1y0K|M0<^4_>-B*xA9f*R@?&&%6!Gd2(=I=cn^%JtiO#f=Y`GefjG8 zV2G$7BKi=WcL12BqU`4gFh7k<$PcWwRBY#b8NG4Nn=SwX0t82{v(6A8OLMKXY*&^n zp%QwKl?4igF3`y$&N^>HU>LGg=$?WhKi!I5o@K?xxxU`W+Icgb&L(#k z-E<{c*;xo2bfJnOC+26Xiio92O30c%&XU9F5U zUKiQ0UuHRL8sk}DN<;(o(i|SvT%>6s1}yU!tfNSQfLZ6KM^#gqJWYm0B9UC<4wiG% zdKO{OQz4DkH+8Lzb=9hA8dLVN;V5%1SZf)>w9kq%@u4|5XpRr7G%brB>zCr{#XObv z@Oa4s%9xRjfrt}HhLU1*owrs4L~wOw+t^~v8CN_qTlpolkf6+@k1W^_9Q`>ypr0~5 zPdhCE5CHA~Xn=p4=$``ohiSTf(zBNB8gl;HzK#ch8;s`oY0J zOp+PrJ@4JGvQ0!xstoAo zcQzu#_xwYMAKJ6-2O>EZ9`(jdI8(P}9Z6 zD#!{RV+X$VX=$>SMADzF?2YTw)9LYSYC_BbY8T!-U0$!M=e7xtbJ6+o!ljMD200g(2jy%(PU}^cmOJOR*S0opJ~*DiNx80fuU@!vT)utlu3^se z$TGkzj?%JRFOT*XH-9vFu(#amg|Gbf`M>#B&ik4Bum0XE|II)DKC1rj{q|S>&fk9F zfA#PE<}=T2{OfPM`S$hO)$%Adll@ojP2Rl0vnzb-xsBannX~!K9G|R^Cp#C$o4c&P zndhT2DRZ4GnPDe*jM0Yx-ZO-N;Dh503J%0rl6}yphjZwUq!2s?FdbPFVj$Cc?*kB* zQYej}IRjNMZPhuN#>VNa$Atz`NS1qoT*@NlQee|~01qa>s%g=*i7a-@a@_ZQW!hlc zU_3*n^Gv1*Fb+&IE?9^`2*Frr8|O@9Tq>fU@ZPBJYCUsH*R78C=8Va67mK{Fnc_`rgb0j*&@xRW2j0(f#Tg5c zJ5{eLM7Ob-54OsN#bsrkMc0vaj6eeL5C{=;qB%>n#=J!Dd($b*XI84!hR@2L9uEYg zB2NS|!4uIeOpH#aqTkE<2{OT)lx!dv%j?=7AKS@Mv~AcKu!3 z9(v?qOb8^kD)W9KbdcfN)e9FdZjvURvWPWfaaEhDY6Iotak;tEwzx&)viSO{ib@s{+PQUg2H}+4LgI-z=Rp6#^ah&Iu`WyT6tvL3$Ywzy?!P*81FEm7IHKy z(4?mJOEYubbUus8kk->dudmXKIoENdULiO7qvhNm?ayXa(<{ogUcZ<0ZI|Q&-5aN+ z2DwP*GjNvDoV2DSVM;=Xk=LX#_kY~qUjRtP@XYEJF)|k4JJHf3mYyu$Skq~FwGJWEd zJ;WGOip}Rs=aO^hesgWD|CO)&{`1d&V{`K&=j&l^iryE)UyNn>3v)A%WYze?+}hL8d+P&-&PV-Wk$~E+d2n|ht9w#3 zqoE&-({e3Y-!76QIXrTA?j6sndD)ZOJITgo-ZpM^8jq{y=t1RA?4`?Pe~4KjHqNoK zQ27ub8=g*Nf6&|5>;ne1vvWe9IeE49HUb;~1Oj_f9nYGRi#t21%sj>GH}0NJA6$Fs z-1)8K%GSWySb$B~SY%h;zIThuZoJ9L!5|-DImjx5X{pM7GN0Cq!={;cydPZfo~bO! zHg~ipI=MG{>xKz!3UdP}cFJ?D$!3$~KmPB&|0mxm#~W9B{henoU%l|Vm!{Lj|M1P% zU-{{)&fUZI-qBk}g80?XeeT(p`o$Im0SgP0y&2vXeP9h|uFjKQQoCoWeWHNJE zkB`=Sd7igTJU*%yvvzX4S}awP3Z(@i`rwg)QV>ZXpz&lw001dv(HFg*Fh;LtZZ=)D zbn?i@7D zpzA2lpvbwkf-%T6FEb3*5g9HqEj7y-M#d#u*kDfEv}DFY)seN>?{SrJp-@Unn2hAB zs$MMH>0B0hS(FLGWWI>2rHhf-5NGp-B6*+mMk+~oqUC&AA3RvL3+R`Ch`|#wLJX$! z$hb_kZ90fHxVElZjhSE(0Fc3-_t1Wlt=B&VJ%9cq+yM+?{GWt?ME`rlJ)(c#`|lnf z|NSf@A_Q0g0MSW|K*RwoKnB2wY>b?!1Lzn#WvoG*0=x~d2GDXo*BU~gGgjb}gnNjP zF-Byp4cptl_43QVfA8Kqw{Cq?h&Y?wc<#Bs{?beT&MU9HZSAbryJ+oS8~{9iUp|1S zloUcdDNPR|3c;o1Lh#4m`t*?=WLzn!ln{bD$DeW`Go7WnD9%qOufFoeQExonkQsdMk}TTb zM>El3;#pXRRneChU)uVL`--*v`a4V0?gMm0e!4tpef`-lK6~v__RibWKl#zmj_cX$ zZ~WvR|HHM{e|U|^1GQ^w>%Z~k-LL)bIH13Os9t+>_WF&f$kL<;t0iX)ouPJVy!Akl zybaL>2Ea9{cI9T1qXvjyTOU08g{wy9w{I;@PLGbJCwHa?@}1@S+VZ!)ap{X++qw4H zO{e=l5x1_J`Q(k&^!0asn5|azHP{)hiYDmVsd6mWE(+b#OmK{Z0GuR4<|D=c9xy`S z7^T!4fU6I7pz}T~maS5WQt!G30ugYKQb2?dBOsg^0@ih1EmxWg#Wj}@(aw*88$v>MXUjsg|9$vaP5MW>zhHpmI?32Z_|oSQl(S0*vIG0TzWw%f4RD zdRE++Y z+r#L66FtWF#k#ItEatP>SFPQ)wl-#IjC>4JbI!YNX>Dq4w^$q;9=?8ZQg+?a+S-_v zF-W8zL#EG|4gjoem&?>g+fF^~uO80iL{Tx9)mFTo!V6(j+UocwzL7-@CLn6o2?nmT$b;cI`1h+jhr$M+YYhe+hd{j7yhC z7@`?GxCyskKe4vG@?0|hh8m9wk(H-Qe>!Vld;Rpsuio~Qjy9U4NKR*SXMC2)t&Mbh z7mQ7+I$9UOyJ8?NJ~yuCt0X18884jQaQ#$_XB*2w)vO;KogUw1`=|3)ukT&l%U<5t zy!_?OzrOSJyYFoO@Q-(|zwuTyNBeL8U@?Cq8RpQtuyOH)t={%pDp`tc1cnlX@Idof z)vX%MW!BS7`ZgHb00VW_8|#Cgkk;GIYE5Y>l;lLwhj>;~eU=nOhFl;q^p4`n#d%DHDvW z+md!wx;8cy&F8h9uTJWvS$6Yt!@;P4z$XW8dTcphDqU=?1Io&@-_N9ErnOyXAp|9a zLKK1t#u$NAOh^g9VjzL2I5Vwjni>cguqm~9mJEkkugtWDrln;aLxeP8g%EW|t&hZ5 zl5vU@iRvaYPKgE~i4dihNd}Ce5Da;cEao|{mQ;70mich4mlp^SY#`^n0}>)H1~P)} zy4q9@OmH5ulqc(1uDPw_l!1d7oiTOmT1#g}Nx$Gh<5SS{l~9AF9XhlpPz`g=qT z;&p)kUz!@NySnxO|H}~mYSSoy|Aw*uD9^vA^*^-s@5K0WjJp8;IlxUR8DllkDZoC! z1i%B-N{KV=#V3j8Iote%;9X~yOHhjL-FwA3I)DDJXw6nDbL-a4^XJp`^{)dA5GCj7 zFJ;*Cu%*Bgd23SIG;O84f|w(gj13tZJdO-3SVe5DQ+7~#z@YC0>AJ13m zXvB2iAkL`Pzg~{}>6gD!42t35@$}X^_m2-BtZ!#gr1$Q# zdk?JaD)!xA6#54zdk>~+c#g0^fQXH+xu_*qksNS-+1T6WvvgFl<=+d z=bl+#zx38m=Z8nLY}j8^bUF=-d)4dj%)ax}_Ki1}(>Vi(%f&HMj)Kv>GB2`mU#u6j zYALg9~|7efAlA>_ww`WJ6G8A zm&VV%JihqM?!WryZ~XMzudSvB)q|tz0fWTAX}=J_R5rfYm$`C4Rb#5!R#j_TXC(^I zMV>kv<})8%y!0WEEriIkyl#9`o8WwsNX~&EG87y!0;9;lGxC6d;K|M#8=IsrN9*Z$ zq#7qofWc4WC^3CODLmTgNR zkn@5wL@N3sNfi)7CPFAV1LQ8E4~DD&Peh1JiX@dqDT{(9m>77o2G=77f7T{5)=iMF^p9-1(QYB*qqGRm8b&o2aKhR9ZLBh8?*BMvjG1E;(sY+r*$5}A9DU(fL8z> z5XmGFX_~fe6C*s;HNC%%6$L2;09Xr*sU$h~-crjB-hV;ws+~`dbVc1`<=Ic zdh_03bAA2d&Q7mrV`yv@Q}S6N%2IG7-`zS`ymNhGraE?I*=Imr>Q<{5I8XCzxTW$j ztzAe7vThN(pbt+%rr^pm*RDNF2m8~ec@1E;G;e+X#^KNIUhNmZZK8@I+?xGt?yG~j zKW-=O>zNuPUv#BZxPREb{#0mcp!|9ISbXw*Q;u^Sox-9=w+ftWfajcq_kX;8`w{lwoAlp$oC? zJODEWdIi&xha@pAG>vnMkfd^BO#);D2gB9lx=Xbpt`N+)H>jjfi;c^hS!mPwM~ z5P);jtR@F52#yJ<62*CGyOw+~m9x1@66C-E@zXXGe`$AU03=d~oe=+kv40+;_kNlr zpC66PeEzDGKNdm?afWOoKq|zD^Ls_{zw>@fw9goma)ihb{~*gefFSxl(Qtizrzqw} zN1wF1tuwK$_dZFA!NAUDuOA;z0rc575m^YORMUiN-w?TNJ>;BkN+Yde4#!m4TZrql0E zCbKk!7*CYSo-pFUk4k{PU)fAVoiUAXk~M$rbDLG<`$u!oT=b;ZNK7g0le81l%v+PH zG-rgy?cbhW|8Y%i^5riLzVg-a)^yasSP=lg&4 zuU-~K{=?S~U-`++!y|L+?tEJLJevW7phDh{hevAnH0_TvlswTi>;fDO-KYj48|KU%LC&yp@t1rCt(qMBNHZG{oe&zXtM+Mca#Z4IyF1j1RYU|1`X6Az##7F?KEQI3eGFodR z1D;CBA}rgmoV3jY86pBw=sF5j2nZ+;C4h{c>`F9q zCY^SkAOZ)HNI>XJsF$4yjDt=S#ThU1fe5)2ZP|BggD@;vk_pZ_Z!AMx8)m&;DHTH& zLkLL%c`kzIi$xRLK%65NC>TY?rQjjB5PeP7L7Ip>6UxJC=_ZqEHZ@A>W;@;504B)= zqJW`ct2%ZDxYSCkwQ-MgT%FkYv=-cPluR&{WI!05NmAACmmK3_K3}aYlE8r8#^~wi z$>gVRhx-)t{1UjwGj@mwA!LYIjE+bM5jb~Jo;^o3ktAX<4y9a5c?ggq=0rS3LgZRA z#zY7Vv0oHgsqo%D^vR)l&J?v>XQa$GH{H?EckkR;NhyfpS!U|YBJQEV%r66A@X>{Q z637RQ=@yH{WMX!9zH04J*WK;9>TxkW6Jt8(rl+Sry?OKhIv9MdZO7Igcip|NTg0dy z1L*0x4gjs4E|=!u;J>JdIlc!!Rh!3KX}+;&*l8P_ z@O?)EP9d1nljZS)93b z=6rFAriIhx;_lwT@ythx0M+Ew9!&DBeD~bNa$&YjoV7*{*VZnaKcDqv7y0S(%kv(5@k@j4;UJ^6|KT5f`;9;PNmIFCKl{1g z7!FcaZ0NO1>p>?QYumxrx8L~j$%Ff`KApb3n%+6+uDm!JeP)0;I9PVRiE*_s#|QJa zv1@CCbC=czhy4#S1kAf?uihfe`vb>j2Am@S$9*{zCjK$z%u%u*C<~&+syU;c!c)^Gxpx|6` z76lSSf*8H9O)!b`0ey%*1V9u*0C7Sf3_jQh$k@B>gegGNwoPri)`3UHI7dkYk$i{| z80Ugi!dzs|028QF#du;`^roF3R`ueTWtwXxmGqUOwwEMD?1Jw?2w>XCh+GFqX;JhC z{V*Pz;V8+A+&MZvs!vbmL@db$Nt!uJo%J#LB;{EyyrX($S5-qj6>r~~1P{ZN5JU2poJe}2_EX{+6UDqkK z?DsdcPNmdZXG*1y2lQy2Ntr06^L%YMyfhr{Xq`!^wN8~vm3kbYCq^U!A#|4Y*VZmI z4Ubk z@2+3G(qA@E)%^U`(Qu6s^Xu#S<+Ws5kKVd|cyQ-ncDK3nR`&MR)_7w>f{KRsN9wBL z)Qi<3hBoRnUi*#m-pMmJe_-$b5ipa}$Ss&b=9qmAZK0B2kPKgNzEwn4-*do+Y zb%RlVGzt--aZ)PAlsBwixW%-^5V|VNrgd4i=XOG`uNi112O(g!2#5QVrgg>wmoyy7 z!LSTYtQK8B(g_plUBeEkxDXH|;{v>ktIE}ta~5m|$VAyk!I@Sll#YNb`p#Mqtn4R6 zk%SPt*18Tkf?zDs+%&$iJ~Rfva+Xl!&QfqzOGpN4wMx2nv0SbI+V_{9JazErQ_%Al zKQ5l#1`qpLf8c-8`>fC2{m1wogAt!Z`|GD9y+uT4&7lyHF)0N8>Y#_{4DkRWds4R< zA`=2QcZ^9yhR6^(B7ZDXb3~5F02pIZ%8c^_fS-N6_g#D}VE`gyOmMC_PdS&2#ivQd z{HI!hB68qj-q7mCVzxX=OSp7pbG%hB(XTAF5h~ki&UGe@jcwCaHl}5|ww_(v78-E< zL4J6!aeNFv`>A>J<{g983q>mU7(7dOvc0y(8dgo_dpGwprLOI+{m$2)y?9}*_!rOq z=qKNquMPlGfWSGV>FDGHzxmA@)*kQgoh(;sFx=SKT2K3fmo|G}UpH$T5E#3=7pE() zlhDtL_0x!_UKhwSXiYb-tE69yHwK?Cl4maWn$vD?KioU+4kmZN30FtS>brOJbI)yR z#oA_JO+f5_?yEb`URrzeCwFgMzxOZxzvk!w#}{|XwJl7O;f3_l^V#{&JgbL;y^BYy z$?WLf-toOVhwmJ&<~NSsc_zK`nQXkdnXKmVvqdU*=yKV(h_D4B?!nkr0>&FR6c zn{`OK7-btfz42C>473lvZJMS-h6xCUg8P8pU?3nOA%&2NA#=`A2#6Fzj3lJuX`++} z9HVVuwX|mCrBacAB6$ZfvJj|gySi;m*LiEucR&$23K5h;Vk`m#ht7}%XRMDvN;9bh z0#bbUam^VMiZej)EI4w`cpoVeXN+^fIWQhw@Bt8nLM~khE?CA`-Y=0fM2{4_>zcZ; zZ8xjiW_n6Y09WM@gH64~X1Q#Z6;RGF@qx|f%j4sdUMZ6#FN$88q`^4|mI5L%fyhxn z0Ei&DE;F4Cvm{lVNN@zkob@3DE+9s1YVVAP$dQ!RSzaLH(RhcT% zK5jDc{os|JrgPreLPVfPC6+%gEkWcyQf*9ZOdCRxaFxrXSEL!Y^X~rLL+jh|R&Oxs zr=_mj`uJq!n^C_QH4!ZYgCNswb~iGY!2Iy^-mRn6 z-r~xY9j-Pv1}}}ugQ}kS7yw8rRSt@zNFoD}J{^)5!XwO@c6-?S^4CUR|2@_p!<*NE zzVFj{mk&c{3`I-iee86Rl9u}ii(3z-y+O9VnGXkp{#v?qjX&G2=GAO5#e3JMcYb#7 z)mOW^Yu2}hgdvy7h0W~pZjpX=ZDV6C{E@ox)0+p!uYLBbc=5UI;iX}@iH3uhm~W3R zCc`3wXil!b{?@DCetmZP!S!#?#G8lPpLzNDFTMPQm&Po02i5W3{rg)-^AB7AXXxN= zYwE69woPTcC*4bvBrgX^Z$l+LBu1U_#>L=)V&@zY6O5+;YzUEau9cEX0)yZKFyev* zPceETRFY8;-UesE)F#%JNg?tS1tCGpjMRdFNu34{K7?R6`3NFf@0E{Sibzne+;Y)c zYbp99Px@=QRvZA&e5L`whZuqj)`MVKFPB>QCbgyu-ZKC$7?2O4A>=C4QcGiHTVw7BP#yH~%kmS%sFcysoED}THLIe*!AVdZzbjFp2rZH`6 zz&7q+2dbwRB3e@w!elTPgUUH1pQB9{!KHO@4qtGdP9nzl345_lmP z7wBCK;ZHeQz!?|tBp=kDP|$;q`~g3N7(QU#iXR18fCxXddH>nahu(eYe)M$oQ9p=} z1POmSAp1*18J(?I2*Ek$y$>OH@8MTgHN_a8csK8}hNEZW(e_)9A@BC+L}yFty{8Y2 zKNqb0ia|bf!9MFj;k`dwlgHT%@jy=dE}TpJ~J8Jnf?&J6qP#pnA3`Q^*K^@1H8 zwGZwbq|ANx+0832Zalatj_#e_dS^D9=&ZEICrf9}65s)V2TRt~Yum|h{Kl1{zq?qp z`v-h)f3<%&-=9ow?U@Tly7t-4+jMZ;%8aXAtV~1X5~Xy;QO5`@^2~%-x0F`V#~^j+ z4{&@=Y^inMWjp8B&tK-;u6E9?Wuv~0G6{Sv(5~k5Rm`&9SHAwd*6EwC-}>1fzfqr5 z>n{!_b9s0mRD!kx@0r%=3oq|}_N(jXpE>{SKe&18^>_T~{)6wYa4}WYGtYc+_qpAT zTxtE|4|1HQvG?AZQbZvrO?0-Asl4zpI&YS3K%H_O3AxZ5ft-)XNa-|W%GoYPb4FNl z!5Bv(Mie2kK;(_@T91g%@}?qdC{a3k^Z*D5Lv|ZiQ zHZYm1VUp@hxd;$LmSFHOo5$6nt!8aBNJ=unnPxI)MU+y)V36dwQY=c2Qlv4`;@C{w z(zOwxCN#(x=RAY}9|d~w>7aZ*L7)d8{UYK32q4e2#xe33i!%!uJk#OOnG5=d5AOm| z0EieB#S{RE1W_Q00E9??`gxz7bvOjz013sEC_A&z1t5U%e%6P*_v=}9iH^Iot--~&*UWs!_GIbqh?*jcKo=pq}AM*TIx(%2c}yvYaY_W6yy`egs$ z0r=v|#dBM|{?58gv<83ffA!h*b6e-D+U_4r z>uMUv14sta1#>jHcR1Y+;zBX#v$Wq*HK~uf!^O#jw?A66JUM@9ZLv(4@>x$LDJKlZ zv@tTNB?!g<$LH7jZs>gn%tZub!a1DJqF~4(^z!_xUwW}80|(Q1KVNugT4Wfbo$Z}2 zXLoypoxkyW&%AKC|F8e$8+X3@gS{JxzOb=CMKKtz_tQiI1{W+xR80CvrZdKMD56ZzyXeTqh~Bdp-A9W-o{n?+Ck6DJ z0SHdS063yTNQo2x0Oc|4dT)X^L;-*S`Lm9pKo-!#S;F+)7vTUv&?g#EEQmM}A}}Cx z_MeG7fIqW$eLpe7h&X@%;6w?+I#Cfr1=J7$kV7yL9HM_DS_Ytj5&}seiFSim2%4gc zQBZUM0l)$nKnviAJU~DUPdD^ALph8wA;eijN+LS@^;gWNJn_vH5ziWLan7Gq8;Y~F zJqzOrwxM7j8c!bceDHip?>}=QAk}qy`_|m0&Bm5UiVhJ06>`B6;F=={&IyGLF-Wbq zFKiT2PwpSsQ*-ytqqtdZJU4jpa+xsoMhwUI=lhciJKElIJzXUVPmfpc95#3FHluNQ zes_I)yI-wb#IaMCCX3Pste5O`FI5Bh2<{VDBkjdm^S$FNpE&bZI zu!b=7uDhWoV2oi1(YCH$HeGGVMesg!J~)s$WO*i;pctGDzVjFiBu`Qf42duj8tdDx3*HNXLP|u23{aqyj3?SVMi7w$ zmjVDIF~*n>jB`eTT<{P*6HIW<1SiBufGD&ST1kXxY_OddEJnej4~WPm7g8{e#&)10W8DlJB8~K;Nac%A5)^ZUS%jPGqy}fv2<$SgO;PqAG_9w~L zzA^a1wQ{#ik`h?b%&QqnhB8;VGNGxBktE7qe*R)_G3Ow>jh-Pnuw^0E$NA=1+`DaV z-#A`OPb4^vs$H^rMJI!#d|`0$Gvz>X85mheA*@Sv<(c7^u4T7wE$%;*`0UHSbLr}5zWdGBZv5<>`N;}S zAdElQU?&nSW*tQG7FUb5S=Et|Dhi#7*x9azGFN$##(12p-v4aY&>X z7(@{RQjCJLqDYY^Dgm9y;F*%-I1q#glxQAuQ8%skuGh<@5{pFzF$mOx2~*ou)mRr8 zV@V>@R3L&2F@ld2rDT!|r3Fz00l<*}3Er*rBLX61$hlxjA%qyCr|1P|D$CMD2|>oR zUDf#3S&k~xX_jO~>RfQnIB%Turi;KZMjZpE=!`L(A)z2-Kq$0QQX>fKI%C{&)xyeX zl@11_R6N9$v8%SV*RS8dfBzs!B#KNYqoiC@MVSqBIZD??Wy){jz)|jpf|3;2!bgor0GJvtQNCH z*BQx}6ad^rh!hZj;N4v9(>p#vpob$0fF9AN>C(=|NDP69(Ann10mOozZN-5YgaD1l zB2Ztj6+#1m06Ah#zzAex+q;J>*naE)0X*|9cZ}sqlqs(mn*-EDXAOrKkpL&4!_JDn;QLbb9HYFPtU zu{D`fX;w%_;3H(*E8)^o>|E+=7)|dr^J(+L9~}B6|LIR|-o4*#Y^S>yN)gu}hDZXS z^hCfsB&idzZW|qm%WSYQOmpe!*oEM{2XG-w=ac*Xk8|m??tl+>qWYm7iMDL z-kX?3+#Kc?hN+*=@BH+1XLs=O^E=x+)1$pGe-K7Wazuc3cT4;`e{22Rm1JsZ-oz&O zh4aTp=KjseQ@WDE7A_>3(s0FOyeN4|s-f~Ye$@Pf< zJ@j5?DkBvM*5CW0IpC86ab7(ERau8oVK<{ZFScfP8RHW8L0d&4} z&kkl6)?%IlA~an%SooV$xVPl36~jbksXQTQVw3vJ2SkwfKvk*vQ2>j!TUI1@e4cf;(3S;JP|+}&!hzZ|gpv2an3PVtLOcNW#h9@{S)##3-6BEV3T;_9_* zbU9mJ*VAdybhfJfs5UTH6E?!9?@{q4Qu zJGNeUEe7?pI~MJQOWCuZ`C{Hrk-65H$dH!_lnks~bdCqBGmW7=U7nsy8}AiB3ZMaS zdUW{X@Bbtj?Y!{CbDiOlcN^yloyex6?ywsSb(ZPKDKv3anY;J)eR`U#Zx7e|ZPOke zPWGf5jmjj+ufDh`a6?P3kYNXI;c(T0x2qG^%oEm8ht=B$Zyp}pmsi?c!&id2uHlu@+(0!SV!-Zm;g&nH}x>x315roz#=s z7>#@#+`_c04}K~_w2QW@04PFqK!k#4C&|2Qqdn~i>X;GS6u1gFn63yrc1M2 z@qnVnAe!VhCh9-!;azmRwXED-9T9yR^Qu z2;kAWx-*>(&L>%-6D3o@H3AEP0+Ue-K_D1#02u>VXQK}yOA=8^B@)exGU*SJG-WZe zwuxQqf*VxJf%B|e%qJ%+5F$`-ZM`=h>2kPT4tDFRqR`aUVsdPj)7f$wkN0g}NF@u? zMd;dQ8fIzP-zdtgL>`k=FwQ*02$5@^YY~#jOh7QMV^!ssOX5O`L>h0p&W+Y&ug@71 zu61?Qtrm6YNGica49*za5rNJIDpB4}ooOk=k8JAu!8`6#rsvl^BtSpLyt8eLyJPt4 zFQHBVS^&v_BM^ZLKbJa3`1~pSqu1zOqD$R`zi>+SdlKQ;4)hAfLxI0F9| z+DrZloWz-#OpNhNfbtj9^gL~d=SrCMC@j`(|^~(=6J@}#Vk@>-o zkth3rrsvVsc$!W?A3Sir`v4{ofO!U+8^n7^a7pIeI=9h=3?SfHuF@N#GGY5<1;f*{0uYd5$|M>06b6?usxR_eW zT9Nn4jdT6s^Us&hU4@h5`CC6azIlIfytfoQOM9g-19-ob*_qZ=Q}Fss8_BsWvt(nC zkNT-fV7UmV)75M;3!McJQOgDblO7bxOzBi}ff3LL?p*9TV~nX=-yfxE%8AhX5F#Nb zor<8CX>HvaU`dwdSx=dhX0ktD9XE`4p0PX`GMOr!NQE*1sSp`>0`IH~mI;PjBLgBL z1kRW|yL|{^^x#8u&YRYEuJfTH;)Li~v@u2pNXUpY%nPOSL?q&@4$M=e2oQ-e21w46 zci=sQU>Sof&&vKlX%Wd02hSKPl?Wsr10(KbDYbF#)W)W+?%q1s-<$P@z2SP97lo9? z#!f%ap{eS;x0s(gYm5&KkvG;F?*W2us`%?`D#ha(WP+y+f9+me)IPcPW0OYo3f3~#5dmU+U%T6<3;O(u8~>x~nWrSZ z^=ES%4VX=m%kJMQ*% zNXz{5pC5nz^H~${&OUi&P;u{|ae*Xbg_N0$noU;S@x0?|ZL~2CURMj{{64^g==g&h zy_-Kfe*W{9^DMh_tGW5w>h_xt%<)|S2jkJ`ncb_;Y>oO-B|*z1cIaA{Z;0{M#&DEm z8H|^O zBh-~$EtoIR_Vrz{sS7PI@y>G3Mb#OC%eO^a$_SIfCD zJdZlq;6jYZn1r(qp5Db6DKg?5IY)*-A$lL84+@#gvRe_2nQ_MWzyt$T$j;NeE5|N(vE)y8wW(NMu%&i6kwBw-kIt0wE9?Ae>n( za>i4sN~uyn4#0^NfCOS6mC~Z80rz|&K+jn*)R~l+BLF}Mz&u<(fdBG`U_A6B{Quee zvnETgD@zbtd!KW@>5e{oOo#}~Bsepf%+AVGXI59Is#{W<)F$hanM@|V$V`8!9yOTs zppvPrTCFars;sJVB$*_^0U$93A`p|0*YEUAXV_a0HxLX0U>3<_0znbS!ra_F-2I+! zxZhc4ueH}wMUYL22aVv$1pm7)<7+qY2Uqd-30{x-%n<*Zui%eg!fc7ZeG@-C(pzU( zv;Z*3u|L6=5AcUK@YNf%T~Pd%{NSkHCE9W3R@1BTfA%8&+1EL9`0m^It2=mahIx%H z!ZP;9cxey+=o(&rhW@wTK+gE@-oz^Eu0j(y;`R~#&p$#?j0{9K0aXw|r`R6ifAJFj z=_~m9W%}z|I`^TBuE=Qpw7L~;N)D>}_w?y`3W=@9K0We8EXgl|djAlUf6^o87tP^6 z3eJ90sOzy$&o48RPq*Tu1b|if=;6g*|Ha*&yXQYQ;M`m+{N3B@*!T5CXwO%--aGrz z_nN&cTf*EjVE&;YtTdiT}8`13rA zH$V5nB+KLKAvdWSl;vo#uBf5hlCU-opmUYz=_8s^ouyL4%5P;BKi`kVjn z4=k0}pa0^O&yOEA&E5Boy3^ykciPkA);V-%2eb1W1kF1tyUJD{chWb-pJ1)Anf1Oo zIqG9f!6#8>Ei#7?l4z$f5x6YIThqy8T-l8JM*7}sB#Zt zu?k5LQb|cv;fxuSS&?N-NHNAvLWU);ma>wlt{{^sIEhL~qJXdx14OC>b(%OLT4%E& zbA>f78&pM>*^qo68x5{3t7=#^4eGv&bIG&ZcX7S+B%!c*QRX(!y>9?zTMP%=!-;ES zvskZ!($-En9#vUsY-E!c5@9U&ExLwQ*$N2EKE=MiIIAyar}y$~G8ygdPj)ByAj@nv z9+o;NlO_;iLf!N}MCbCsV3Zkjb>FP((DjyCoe6#FeM&(HSy|;-S*faOpJ!%Jj+%NU zLQhX==XaFe+Vn$Z8!AFBx9hUOorb>u5I;P||N6^#oGSm$ipy_YL-S+<*W;4X zFC%3B4bJ34t!j_QQv!PQ=RW&6H6@W%&6gMcC*M79o7vGrn{Rh#^YgQZr+vM$p*LOE zth?nZ&5l=F&&QX(apUTkY=Bb1w}hqf1SAUoOJAbkpr@x|63;)4FBthdCiD`ViM$ zjG}BP8cC3~NUNA@Dp;$`Ob4zUX}j#!>n_&Zwme(lVzG|gZHbvyGT15i53@Ux`Qh&yWfB04PuClYOfM} z2x)Cpd`gj_&Ty8M#)v8;B?38@k4B^E-gY)9+I38#U6j6yF-VqSQ1NJ(89P`vUFcJ9 zykVw{nFOj9>@w?ELmyUie{t6I>v~|#&d%0wPzB$epPjBRPEy|iBkedJx$(3dO)8Vy zg!IT@fr+3grI->ytTkCyqp#gQvV-YH7*aow#JsjXuO{mEH> zHeZdZVlvs@+cmq}HaEtS%b6L>X1VYw#J;s{NXyx}t=Eo{H5Nokr1v6`vn(^NG_EL0 zGpvk`d8W~K=U$$QqR#I+=rMqM>~XwltcysB{)62|{NR5hFeVfhQL*ZfI(+j0fA%64 zHU974$Nz8(fKFJPDsLJ;Kv8uGeCr{_i2sAZ7Y^w^dk+7%*W?FLUL4_n@;q-B_}4$h z|K&9tx7YzPQpjZ)t724E-p4!@*DiK+0V~me|Tz>g=@#$GaKRU6;CO!CMt@%Er>G@cb zo=?oD2f&9+dY($Lx&CZZ@aX+w0PE*?=SOD`&z9BYJ|AX-VtVPy*5Qusj$)qiy0-UE z^kJWTAU65lUN#*H_i^CNz$9?DT5A*Iz~#?eFK0*1gL}tq9b=@X^}P>nP^z=5^VPd2 z7wg!STU?CtiwDKquPw#X!QtSAm-B<|Y<_n6`2E9+^Y=trkU&;<-@ZFP{qgqJ{=xq4 zr`CYYEy4euYX-+A+NcA{mOEDj^8{_y7N;o0lo ze-o4OpIo|m8AAgU&Wr}dXpjezloA_qHp?7m zmZFG6wM^DR1ns(?t(T$eAerSsm1V)luBq#$g_nMkP#AmVUMzk#&z4lEX)&d4+ z706{}rU@pC z{lfRNX7TXCmU%wOb`G|7cLrO-OnRAJgxO;0o4&7mAaEw6Bx;F`bD41km|_wDWnMU| zZPWNZJSE+lpMf42Rig@321GFnh!!`;2*8*jKoSrT6ajdC3txT)9q{%!D#Cwy6{8&g z^2hjBx1hi_u#>p~v5J65fjUN)(p>e2r}Qsh!~g!9_~vE&+go_B!j}&5!ZzM`fdBSQ z9JknqmV~{stg>uX*D1!xv{p5W2R;7VH}K2^pF6}?5AYxEq4v1lf`|C8U&7ELW5fsr zm=FaDT%O{~S8%q(U*5q*zz9h6+mTA~YriozzxdQPZGE~LqrZ>u(QlSzdm3i)ch7Qj zH*N5bst_fUF{&&X-_&*9o4scao_lWp`b~3q8N(qZLFaL0K|gtS^~Spo{^na3FFdz* z{mQg*D(J}=!_?J*dztQ8m+8aV>_=}t$lYjnXInWfR;TUxY&7298ka9rY3(yq&V$ao zwyD=yX0Ke|y?VX4Isv|R(9gd1H{V{I&hA13Ob*#vUFd3Y0hd4X@}=ojTW+;7iXErG z?1zF~qzC5gl#UQ)NJWvs6|l~!h^irFf+00(fs~-pKtnb^r+0q5 zeEs_myH#=Z<>}QI9BhhxN`36TFUR)9FCCuV=JWgSzVpL-JBNe8A6HxZ+Vyp4-Rx|2 zcHWwiyL#j5_0Ns=ub8b{laJmQF0a5@@Qs9eqn`wl!ipM(F`PiG1d#SVE>|&;(vZu_ zC7~!bMph-LNV7d_^lhCNW@mSt<&}DMU2jEV+lF<` zK1}k$8P`YKgf4`XVnG;KO9o(N!#2x!kVA!o*RI22UayzSuI-3ZH7Lg8GUGDzST5?- zvToW|6+!HHD;o|+Md|y{rOgiYgJL3EqD(ZYBuzXyy?M7Q$L?+zHP2-$cLlS84PxHxWBcWA1u!N#c|!O&b##qKwOs1#V&4K+uog&Hn*yw>3q{6 zCT7)yq^gOCTv6mzF(O768clJzs85?_JwI#fc}(ePRg?bCfS$)%W>yuz01|MoMYfIq z<=3%e;S7=@1%M#}ugFSV8R6D3zJG+R5nkEHgE{`<4i>-;bU(|U-PxU|^sug#XiT(c z?ZA7D;aKzsC-lY%Uf9OeZFPBm(f69tHgl!wL~6y` z3;gXp+}OekTlmpkG(Ao_m;wH95Bnvc2oV5!#aTcbv2AfQ$G?3Ge{~NzkUO3;hmXro zeX1%VkF%LJOC)bxDF zky!xE3p=_rFvCg2+HsS*dE1$bRT}>vT{@wTAdGqvzXTPv>_{{#!)E3#v*}5#pS8nWm>8cT{!P3QAv;OGz z57#Frv!mk&x9@BXF7J;lU){UBJ$_|&ktIE2w#1VZDkv>mxoG9)_W05Z1GRL%?tLw; zEViEA-#N|R{z?DVj~-6O+tc0b_^htmFq-DmX>Ll}0=;@lYQcuV3?`6hijoZAxNG$8 zt@*9j?zQipQFf)uhTFTt;WPoMa2bL7Al2A>?T;s2cm0Qdd-u)nFRoqnt-Dy3uKof)0gI2dBf zK@=t9c!lpAW17JdB%v1sMn1x@#Jz|3&O3Nx1{F*JSle0aLFwscxIUUx@XN1@Pb*#W z=%9W{Qt3Ba5PI_EKEx}1XeR%lg{UWay${XdsV)LP;0VzQcOr8y=gR@h8z4;RtJ)UXb5)KyBnd`;g&F8O9_J=nvjkotrmQ$;g zk`K|7z?#gkF&4y>Kq*R0B8jt{4leU^uS`vH^>SL4<@WYyvW>o%yx=0IHXtQjyP1FE zPo6z`p!a?f-ucP=+DnuD!(3`Cmj3wov}?TQEpIC%S**H`E7JnZ8zvF3#5q7J5>rT$ zV(PQ3Fm_Z{h4<8T-C{NqQ@4L47q!b=rir?RpC8Rr+nLGW z($$^Im&z>T)iTcKZECxz`XVz5N|h<{YG*n&hV61`sMnIKwQAee7kO#eh{hO`wI;KfEeL`bsPDDyL((?Il$Ca}JJq;u z7V~;mAKh799NDvz^X0|TmBsd@$#`oto({4CZQFHiQqabWC`xQseF)JyGoDn#VM$CT zGx>NlEG`?ww$XakuFg*Di*q6eSGl~f%%p0vA}a=?@u0|DjJ#fk<$T`O>*PC?pvpi# z+L~-{>0(jO&p(LweR5~SXM86`y(MJtiAAC<~Q}~f6$;VD87L^ui{#$6P;nr%MF-;g*l2+vb(HZl;bc2WQoPPV? zw_>i`e0isw)~F%{AAK5>{Lgsb%`^RSwlrt4)W>tU@|T8 zoP4XZqwe&0y$z_zx-!f1Tp3Y?SrlpvXSriT;FMrg zL8NThIqQ3E+t{_8AqFKj$nz|^s49IUO)GsHyw|d1W278pgWR!D=v%+&9yZ5h9Wia~ z?d&`=9dA{}7)csphyetXI~F50V{1Ty(8jI{8hhUm1VF#NTTRQGxpV7fIzL^k7qif< zW8Z6>rH+U!k#)ty6_X;*#zWUM@uF|*f%SF^a#Cqd6gG#8&{ z;pcZQWgUP4)(K0G^9%gw9$H{PP$1|B-h>2EB)|a`P)FRUapFNh0RXrl^2{sd<>n#E zJX1X*8Zr-;MjwLxbRci#DMb ztRhZ2G#mKsLnI zQ>&8O%{97GGr1xi-SIYaerU?-SI5E_U5hmPv3s4 zet7?Nidi$fRK4)^7q>>2Opc@)QxX*rF&icp%SjMbdQIw_*~-RO-S8Tgi}}&4bHk)C zi`8PaUNYG$m-i>z+j*5;eQy7q*ZkRocYgHUelp(nzFaM+7>}R-((VhNAF@dgkCt*e z|InE>#${Qx?%U)A%1TZN#wZ&?(v(6B5zSk`?OY?T{FDQS{mEU^_z5;Z!`U71_QY^|}bGS;~i`jmnatYyPw`Yx>3 z>w4+CCW+{vDy!U9l`Tud!hV^~vobVY@@s?X-r@fCm0`YZOt!hBMKie)-22D~_RXN-umnTVCnN4>qSFD6Ye|`yis^0&Xyy_L??e z$UJ%g0zd&6AOR;G?zE^0jH#vu9M*$KM1DlnCD7evd^5A8@b6WC$<}2!H^I zu#rE@2mdy044VnC#hGBXM(|ii+-b0m7%@a)2uX<*0XSOYC+FCnU^39-1q|EFS`YXS zW};7Vzxrljems83hODPNbYhde^(!f9euJS`kB2-le#x%&-)yPrL(|wm+oz#-{bx<; z^vHtw(eqdVfC+h-<-=hw+_c?vizeHXNX2w(YyaB#(zU!A<${z%*)W5g!Qo!MIvBtG zTK&%J_xCwnefeN(dz7hhh*HPU^xAd>b%klKUE2T8|MW|fgOIWqG*jco+q8Sw!4rGB ze`|Jod-&xqUi!*c2G3mDy?U+u(GQP~9{96Ue?BXlW(Yu`&`4%p6qV)C>Ym=Bqe(xx zdTn<u-g)_#eiXa8wONwf&1xm6+1jHEBS!0dOa_%L@ATf|L zh9IOSv(65jL}6h>a^$qf*=c+7VC`$a+2mRS0<~>e&w5vws<6fqTVt6xY9x}F2x^#% z+-wA0zK+uQqOh!k+-5}v73~s?QR_^W53H-$I7xAJak`wJh7kPvd{&=<0yF_-S#C|Y zhr{W_X1O}4hCCc%xr%igRG!{_&hM6{M?PSDHlGv0vW|rIGs~d0_lX|il8k5zXha?; zE;_UU;~}O4++QF8W1veZ7pVZK79y4EwyG0dCM|O8j=(?{u!?AV>~CXdOb-@PCz&WF zz*5AdR4D>bsg8jGuu@oHXM`+AbAmp>@aAcU4!Uj3H!?ej;k}ez6Fu)STVi($+aqL* z3(<+{V<;w1{pEO^mhh`;dY)#`^XoN=KSl$;Hl+K|D}Jn+=QkcY@pp4)za4^}pY21H zh)0vrh&@ktS-8^h|=L;Yy5j(D34E8QDj=>mk)OAkk2mG@7{j+_D_$H>Di1=@Ac;o z<*)z!0(5uzPp&?DegCV!fAGo|w^tYO+uu6+H~)6gGz-8Ij{p`ujlQ$)YD($k?UT3K zDqCTHe-c*h=^MA{XkPl&jbUGnNAAjXvwdZETwIw}E-#a6K@f`|BuI%Vk#JHHBycaO zO|flh(Rr%E<-^gz;b=HYiWH)jnll>(ATh!RA5o;MpBsW+y#J%+Ti-i!TlTqEuD|^J z-jxFbuiDWlAMEYze7I7p8hn%>#yXpuB$8rE;#EnNWV0(IY_^sv0(2WA5yM$tl`b3l zwI0_CO#w0bBub_#T{SeOaQPrBa;K7dANv;TMH}iKp=rBRj>?1m-NIJ&`o#B5QMlaY zt95@dpZBp*sAwQAMgmhA6~YmSs#76H;VhR-qImm=I$S5hz*9tmOOXyWrTy;lMdE zOv6EyyDawFEJL^QCw0@c{l!VwtnPIC6$NmA0;zi@Ix6h1i0iK0t-B2`tbE?Kf_5DRyl$k1?7o z8}8&;J~GC6AA?WO&p^-9G30}iOwO1(To`n!17p588b{#O*=zwsV*rc+3*=Bux@gg_ z@%%G*@e3%>8N&rcfh)jGAc@W)m&bVd5=Mm83JqcCu zmL~eW@z&SAbZ}$WoxO8=_Hcf3e|mU%kY$8Qvnt!&uEx%vpDbT{t8G<>xOArnw~T zMOZ~d6$)h%PEngaN%X3AvORLl&Y0de{mdK3V2CIY8D>j>5fw2kR}S;5JJ;_`*ROx~ z-MVe3S$1_=3@OzoeSI2jP1EATj?6KHu3am7Xw=k`_Dn%ll7Pv&tR#L^(1K(tDx#7A zO+XD9sgE(VtwuI9sCavj6{EpmP#Md;k4eNBF_~#&tk-S5Y7hl51gbK-H5ogux+WNM z!>X#PGNc6-Yd};}hzrD;sC3yb5zS6#^LY~C7)=ZzbTvrFlks3M1ax(AHlHQ3SyW~c zGQ>oioBq*Gnp6pFC^Ob%+jrd$JW@kNlnu?s|F%PmUj&nv-Rv`?mJ3CicQ{X4=|Yl8w)736ZM+d z`{ZXcU`9-fg=@__8;u+uRr6re)c@rKp;}3u8%9<>5iJAT{Svi zredHEkB;x&eR%0~@8wsn?O$@Bv|RNU=bg4`tIS8G+ug?H>9if+Jij&j%Rj$G*{aC< z0;uwQr`j`JRfn!4ced`1mUCOUE6G)y$?xXl}!ePAc+KFW>Yz1l7n}dOt%bo<%0*#zh9e}Tm;sBeY9FVPzlCG`N-{& zH1%wJl6C4AM2SqUU=>wnW3#MuAc{Un2m}MlVhEvMC25=b3^j39naOzjaQD*XVl*LT zgn$r0#)=38ecQK9kQB4bh1{ji5D`N|*RT8TY_<-*_AzEzTes_wHtI(Y?ExiD*6pz2 zu33kE39`-&p^DUkeBXG9^ANo6JCMnSlnBbknIf~}NuFmWCT-i`djXl8sI+j7Qk3;FH0xL|m-WK0FGAn-nagaM zD_LW6R_bcRkbqvL7vF0gl1GvdeS}71qmrtqD104^&4vSeuvZ-(j>jYFJM~ROP!*M^ z>Yze>7n@ZBwRtrv%3M?GJDVU`US;`^n4vx;AA0Y*E`=IsRYJS)?egJlP-R7y+U99~ zQ2!2r9{B)X3Q!nqI}8jA5P-YJ+$VY)I0qE4Kt;3$t`SX%jOsfJJbMp+{0jcbD{uy{ zJq&kFX9ko>+_+_)NDMZ8>9YRg7xBz4-n@g?ju8|i;H1SH_i=p-fBYO3jDPpG9Ibsi zTiPtoS^?mb)+|>i_)nh2@7=&+iPs+DVZgS*z+gK=Wne%N^w5|&fsApgd5p^*%N4$K zh!?l%wTIfo3G*qwue%(bD8hcaz1M=9_ZNQ;ZiPTh*7#Uu)Ke1a&v#U zGl8?v$c5ipo~HZn-hcnWo096BZSJyb2lH2+d+FMjua923dH-a2cCloWA3QTOd*(D^ z7EN$NGZ-9R-TD1LdVc4U?V4Bwy?^)O2j6@1JKuT7cj?)K!;6dcqH8nc4AUd`u)qm) z1{mh&@}h9|e70PD`$uo}vA%Zs3j5-?(>EU6x^?m3((d+Pbf|HC|83k}z-+n6^?@}m z3KRr|#-x&rrL4%Uvk5W8WJqmcjWUSX5nE71>_d#HU5D8E<-9@gl#2PPyI5UZT%6A? z4p#F-rd^#bnwde&`nvw;>1P8?03x(k6_6ozU-&L~wwN`^_8^O%zO zHTRA~p8`p8mW?vVK@Ihtxwu%(&zB@Ltj6PExj6Cjek~fk@7Jq!+tqzv$JEW|$ypY( z(DZ?#QUR6J1wS)35_+Om6%xIw0v;Osw(Z;SNGi!$43?uIQ^00Ks+-PWCVr&y+}!;@ zB4&1lV{4L==u_8sZPzlfb)_{f`slkyDBK#urL)!!EsZi5gVkCV(XZF-a^9@Z*V@^^ zbb5GsJQ`-bkL$Xrmu*T(m4HkV``V{|Q4FeTklA5DY=B-8Vl)857-MabSxvm0cg-rs zkR-XSN$!e@9GD3e_V%YxNl}M`Q8gF=TsKYUJ#%49C8DaH8D=7)ec!G7W*vMRLmfli zt(V<80gn#p>3m-QPJkZzK&_ZQ&?Z~PmO;f(g%H)&E>sspO8`W6^OLFrqKYt7oJIVH z`?xg0H=e`(SLl^}dF@_vZ$TysK)KONm44w8zIubU2YB}({=>Vt-yjDv(njgk6KvnY zKYay%_A+iv=)3Rh`?FQu)p?N|=~jsscJb9`aD5l6HU9ct{NNk}ID#|SHW=^*t5Hw1 zBogMSwI$Ia$=wAF318U5zs~hRCsrg=wT}b6pJLo&jM*eM{731n$4lnZew+P*2#8ok4L_y%%+_6*(=-6Zpll} zY+ZZCMvC`NR{bpIxvfm(x>brDvw2p{;UC5t(z<-gdq{+_hBt z;;`TC6L+zHyPm~G+c%R1QDfwyj^_<;4b0Y_;}g8~+P&9*_{QSw-b*)Mym{$`2lvnJ zKRg?o?cwEN4;wsd_g?(MKe;-ra&c&CR#7H$S(fLyLgdJ$q25D|>R0IH%Jv;&X|rA@n$ zF|J@krG!F-!TDe^oo-bL&BfWGS=OhwZm-VVWOur?x0Mea8N`I;BFtxvZ_;R3PN#Y9 z9EV|O2dNiBrdii@cac)dFu5)B!jMrPQ{P)rOCW$nHO8|P=S+|KQbY*EhI54x3Bcxv z3=;?enjkSHR;ZGKK*VGKg$k00h$51)%9gA(nKKei-^R8HJ|>ZrdFeYbO-g}4YK(E2 zVW!x}#lm-;tXgTBWUa|7)2)e(o9+(Bd*x`vq;9yzMJ5zcA1#?m2Du}v z-iNyL!L!YZL0+&+ee3UDtWt`W({Nbr?QP`~5XW^5AH*3txHP_UWf=RgTE(_Y#AZ?q ztC;#ueW$+flk`QAji&i%QW=_bjc-T^hiXJ2tWif zhv^uD3xJRaktlos_%}i85$J$9Fk;?A+7dl!>HqNt`iO7d#6NzK{*#;h{)JpLqQEGl z%VX?}sP6Io+xS;+;q@5`V9THY+a#w6|K@#4ia&b^U%N(Myo3i!J!?|*Y7GuXdN_s> zZlB`+{U-kUK9XPnB%sK!J;oqM0um62I#5r@jmeEkBJZtm+T+=)_`)GQxUGFi#<{2b zqHaLUlPc!F1N8j1ARhdD_SUB|;m0K4r<-{7A)Ca_33+NXJ-?{@qkxVl!)I^q>|S>D zJjQh=Ar%f$o)gMg8d&Ojba%H@`vqty!y{oUjGe2IeR85St&>u{mZNj8c*$q{di7h6Dhtu_{PWy$^_y zG+E|6tIRN`ttxiLz(Ue=x|81=jVI$iMWJl6yGxpu7frS-K89aZFq5)DGJrshq)p2# zM<$9;R#qa2VPjljob$>sTjTA~XeUm0Cl7C5EY8mBS=}z{#p#8sa&nfk+`4=+DvRmJ zS<8^%+u@)pu010``z9_H^XR+GnW`A)c1RpxyNrsWq8M{Ys>(5XALpDLqt$8u|ZyBhKmrA2nQeAT1}Rl zfwcyJ_Kk15c6~B$&(=_zj|N-Y)A3g6;~>wfzU69~nJh-AGj=%6%iL{O;o`JDJ#AL2 zPE?Jh+!@PaS*&FPt4SJYN?qG|ce*s@MFjTOo)mIB<2l+vJt5Z;DI&K8BqaDkyvrJ#{cm(ygkD|dKNDn;Q33$ zh5$&UuEQJ0`1Wo5yE{1UFoKrA)MaDqLf?-U(eEl*ZB~99O zxVOZQ@8jRUhc_1}fNfw7fWSGz6kKd9)Tn3fnA?IN+{`*B{hC+dh3^OS%3OL&n5!m(>j*T({^)8KgIBe$6*wk7>dngo{qTn&0dq9 z>{x&NKqjW~XmI1|bb4q{#Jl7iIMu;-CbC^#*tUsBr+wd1?h1#(n4}fK6=s+Xc6Wx8 z@q?qqn{U1!R>k#u@pE4;_AUdKd(tRL2$U2(1toDNEAl+Eex;^lE^_TMCxM_*N1!0{=wI$`_t+B?=>eEtL@Sz(8SK$?5c`-xqJ>`WLPb4s)&?=fs6DZ}Jc}&7Z1CR2XDP zIrOPsc75-ikuoDDYv6`uH9n}i8ng3MuUcob(WPl-?4nstq}$4J{5!A@%m!9Je{r2PjT+SMYgkl z<(bP@E{)29>J`pUR_o=uFvWNsU8G6bUuhRt|9s)hp}Q{8mlcPa@4kZ!8jstO_|sEQ^^ zx^YIZS?>Byy$?;@XO$U`swzhe;o@R_{P47ytp~0;JREHw49h`ba@X`+3{w&jh=|0H zVhWaA<+9PP9hY`kX6I+C)>~towWO(AEo*DYW@K$%`tY=@(wtOnH}Pm(T{ z7wc6mfXkh8E+iMCwoSD?8CaW-CRi@l7xTJpC?*X-1c7ZL6MWG5Qcay{bWIaLw3kn| zcc!kuY;mt$(nrdxgwGtAKgo@pss^H#xg<=0Tc`MczKRDkAR)`he~?$DPk^LA)T&+p z8M9Fxs_X)bgnx4vKRCk++qk}kDgyy+kNXR}JHv4cRqQ}=z-HMp%U8xEpcHW_t-(Jy z$Gc11xP|Aou`>jK5OK1=y9?Z3qm38&IcBSVR@nV)AADw>xN4GhfeDj;1`=dV?ml+Lr&x?1D+EsDCUbd^*urt$LhS?j9 zzuxsfg}&2u-P>7Kd2;yd^J{nIyg zpD8cBaCrH}@i^y<;SxcePvpI%B$A}-d|ijo2P7D_uF7&lPC3-RZ<|m{U+a7sd>aNu zKA8+IX0r!J$J70tOIN2}$n+-i$K1y9DC1B7h7wR%x1E(0C=-fgJ3`!ujY3RGx|EzI ziV{|JpVgKP+|cffw?|uJSC+E}8rCyN&}QA9pI(?YP6o__++~Zv=kvvKRvQva$a7<} zp)s0g3=K)@x?OQE3W`YyY}hedVyncDElpGrqmQVQK&fOV2m?lyMTnHGaaC26Wftl# zNfHrkzln*knc$U0kde7pvK1e6YVg9_NE$wp?lOL7-V~vpg#*&2m=?-Z|{!zn7j5Vg#m zYSf>R{hKJfo`^QjYhwl}t3X{%L`6b{$|93dw%L?uKNuinGA9v~Bp6jg4IVz}3|eF#gU zTJ;Jr0N$I)+uxx=HBTUXh`0R}X?VGI329wIn4P zy=$-kxclC#4`;I_U?)X>_4%DuNNsm(z3fz*ws{jc1;)S#(CK7!^SPUsE^qnJ-oC$R zeD$T@f9_BIr@MRC^v;of|Mk@y@7z8)IzB%?o82Dl>|~?qtyzhM+4<}czO{+5d{&{_Tbb9@{GAq>y#A+|; zBR2*cE}1NG5yeUh;6Xmzo^EetWiH}nx-N8q3u8!xKrXZ6 zoh=YzJxRfLO?!Ip{`o@;wW?H$WI<`D8pKlls2x{e^13suyjyRw$dy z=DBm3C94`l43iNux>*^O0cK*A*fg~&R0*&Geqo&-?v@w{YLf7#xPmLBrzre z88$>4ghwFOM@^22n6kpT9GNl6$Cl!7;I14_Z(N!54RsA-ift1@7rHw2jTkY7$xVV4 z>x2<{@t$&HiH(8Ftgu-wV!fU(Rx43qFtY|9Ku|*f$dJqOYLvU2`p~z1-}wOJTww@m z3=vofO49XVHd`{AJl`6Pt0cK<)BBj`EecC_|@Ke zpMjo#kV+3x0M^VaYsVqvB0)3<4A3z5&iNR1gY7@KKIsG8gN;il^FA!SFHIWi!s&$r4j2U@9@IDvmRfEQqhyVsGkO7uJM3HF89EhAq zsj5m46o7@+)^6Rr`3J+Hro=IhoEx5=)^ESvcU_9w0U5A+?P_uL+JP~xs^4I^O>?-2 zb52!52v0-p7=@UxcnkNg)g z!St=a^X}r_#l?7Np1ESD+e1^7=kxZ#gY~@!(G-CWc<=e?c)#?q_aQF2-uM7XM#+jR zSg&6x_oh{r7lS?SR-IpU3C36(0VQQpY_uRs#K?2q+RYF5wvV|zy?y#dtlPFVE-MeM zY}0CBVvcghY*l7o&16}vY?qDs;Ku0M^@C@g-*V;MSHJWAYJLjb2VD@o47pql?2Q|{ zzxT}-U-;5apW5=(*?V`j*r`H+g|ZpPm%ox9KKJ~)cjtHCeXqT9|NS?zo|ogj`r6HM z>zUGxM#8Mnvb2LyS>*X3&zvQe6#J;XI7L}hahR{q=IyH9*$OwVWmRc^`eVOdw)1%k zf!I6}_I|j?W^FaxwTAPY1zjJygghTi^WmTxIb(~Iin=bEdJT!jIEp3N^#=F77c^GK0v@*6WfA7rueK=7eSS}Ph=Rn3T; z%gQV-NHr!;nl>;!sC^6ryzY4=)i28b(TrHw)JPd%^X|9hK+SumX}q=7C!WS z2$Cd4Nq+MvC)E#V9s*bmapu@r2C4V5Qtz0jV`DQy8{5{GDONeBF%iYsyC$Gn)F(X# zRjw+9<&0rL&YF<0T-9CMk4KfUwr={i@7lf%smXkim6gj}p0mv@F}HnayRMI-uuK-r zDoG+pm5gRN6RZSXuGXjLOlDkE`POc}oU0^Jk+kW{Bw;JeV3^WnYS_0DQi_kv5T4%g zJ0xU|stwV@JSUZD?+2>FbWF6!^NKmDCjD?*NBn^EQlhBZGw*ENlZkeV!iUiJJ%|h& zCcqf)+{)UyF$VekUj(Kct5#u1mjfxvjH>-e>lSdaU| zHy<}A_7l#az|Y4}Jf<(73QdnbxdFn*&|9h?j7FoIH=i+kH<@MU3bqfbHqv+*2YW(; z_W1Pv@qB$WZ-xhDF{+{u>Z3{`krX0pnpD}r*0xa=3lFoaz1?^rnuYC2e^ZgIL_3HQk z_WY0k^y`24M_>Ds|LjlerT*Z%f0^R#&7Ka_vMbq!ByFTr?&g!ja(V0QyFWQwRl}<< z?6QNHz8sD}_k~N(KR2dXck#fyeWy8kc=p|U_hck{Hx6HT`Nq}jTSch>P$ia_QWvA9 z5Mvioq(ND2?F|Cem||d7!$S0g(18q;l87SNtjJs` zpeSN&mKPbZ>0|U=6j769#=ILm@%Us`H~rT3ma$ez zecuzqRK__r*02HMMy_r0!axB|AxTX58RmWZI@fE+oO) zoG5)muet^*)xDyaT)xb8?PoJ0O4dfAo@i~%5~ztfAOML-0R}eBjt%oF z&nsgF>UM|2!q}suBOiho?m%mzny66?fDoxMr_3dg0U@QcluDw>&dy6Oz8F%PjYbGz zFr9v5XXnN@zqvj?7iPD&$CHTwdcQ)(8DGkDkH`{Hzk8cr-!MY>-bc z?bu7>rf<_I_PObWxw4m^qiQ$5^=^B7I=gjyl^4aet3_2HxBKkNBa;`BObX=6VSZ^^j8GheYqRmu(d50OBB*qvK zRHAD7z~;<=7+?hvTUbW|)@YcRAxMx&LLw=Jm`IvNyUzH4$&RZ=F3$`ZV^^IjOVUka zK8OHKs;Xc`f+i-h%#Kn_K60N#!MS54o-O3!V%7A)=7ZtLRXbEnN32zub5UiY+}3^9 z1V%I_3yxwk(n*wLGgDTDG<^&JXA0N#sf!V;){(WaY>3&X7^0+@03~LSQHHXzWm1+t zb$v?7GxvExAwZOqzz0=}%pr43hC?TkVwQ7Ry3Crs<`Cs)R#;D8)#rCe)AP9gzA|QQ z%tlJydtU&7IWhkt!`k#gENCQZfeWBzo{mO6(b;-!h~S)8^+2oIe}JDJL#WM{0qB8d zqt{^@N8@3h-#I&LLJ(q4)BzrdAB1OZD7i-yVD3{oAo3z@--j665F~_{QgL{A{qp7D zecSh|)oMPQ)qUTF(0SkYz3=Zyt!O0&NWUZJ1?!9d(poS^uR;kR!0x~ayh@>%)XX?4TSc zzWfJ=dxu2?i5O;f1vuA&;E0=EeFA4?Hgb|t$7y_NeDlR;m$T*l_g6bR#qLfO!$(wl zP{|Zbu}>HEYTdU*RoL7KlW0IDSA>; zVoix9YLX~m3?`My*{*n9*GZtDKBU-1kY+h$Ijpl}ZDuo8?NUf73PS)A1(P8H3z)3U zjd5Kcd*4Wc%cx#6%Pgm#3U*)l40wJSvNrHX*DMNyFm~Ag4X)qvX$s(4?1}~ zebvXGC)JJr&EI{MHYFcnH?yo(@Oo2#gw`~MC&kd0gu`xztj4_*i zc9vzIaP4GcObQ}qmJhc3AC8icPt5a5$L^`~rS~W{rL&v!i(T-PLP<`?hvRM{ix8{mCmYd~Wyfh3i-Q z(b4gu<#{<7jIR{ui%aV>4_p8%mDJSI)aOg)%P)T63tz*v7m91|PEYThy#1HAy3+^4 zt3|mro@`BawyNR4ki;go>(CEJgBPD0Klk!zx>bJbuikp&r*D&qU--g}?E~i=2tYy# zShitxv3T%q``+t|F7|tu%E^>m5p9)SyD@zDF5iCZ_U+e`d-?ic{Na>!GMW!1Qx3gt zRW7 z4X5BG5~|6-6xVz|iXrxW?7L3W5@0r>u&N30szNFXCa@t9N`j=S#=6Y9l#skA2x<&x zmQ6|_#Ws1L0I`lOON2xMWiBhKB4ca%7?Ij;9UIF|9Rab^6!Eh{>qgK_M9QKFLAyE` z6I}^dhJmQGA@yz7wXr8tOtTD`5_yfY6)|g`qbM9RizHQ0=7?Dyb;cQ|))0f$dFG5@ zXt`L0zO^oM&VgAGLWnV`8nHGrZ1ar!9x18!$uT)L0*xt#l#rkjLyRej3Np^wm}FoJ zqgt?GYl(?1LnK8XU=>Kj`g4HcGkWXOWVk+p*&df<^q2c}1-xnxc;=RQO++7@#J^*i zdi=-Z2OfznkpfF#BS8L{wBU&u(vure=3+4T(QB{$^MC%&`@V16RzD!Ey!SE27(z@b z#<=+yLWm)R5H`|^jd=_+JLf*(0^89uJWdDra-!F3#lb*UxXi{vb4o2jzOzz4y-i796q_3G`n z&&vIo9~R{}8((wPrLFO(7!KX#*+H3q^^G5lmghf&EP(`g0I89)`|F4I`|&lqf3SOH z7h%=SkJ?!)ZbG}4LJA|^Ek;#V4U0gWNV^cXckJ)|;r?JpUjN~PqdUHtJ-q%>b$D%H z)vT6nUkB;Ka@O2^qkr&5TW)`($dGBL&EMo;hgoqaG&$(gP`B7z)^ghYDa&q$LB^Spigvr{TkAT&9e5fK z%#Gu-{QM_xyyiI*`}waQRAa*sm`yq^k>TMa&#S%Ny&d1AzTK1&bQL5;!%0LFF`;m5 zEcFuBA$C5uS{0dfMj;uQ+*Ip1UipwaH>}Y2!F2&S!ZPzdRH@^3yqc`uH$&Ke; zdTCr{H(t7&`h54w&huZqIl4ON(GREj)}-3o&8B0D?e27V;A8dL_a4OM>Eo?jS}ouH z(K}|GzxaDsteISSerTA6`$`o@jeT05pDmi@YIl2-4+qQIpU-A@Zl~#FIN8o8+xEqm zuK#4+-+t%b{dZ>vdxPP0+YYL&X*M3v*0f5Or@Hc*osx?5~i6ur)QP`?6tVDem+B!<4m;y+R zWn&(>6{-TFDaII5QZ=laNEB(qfEnkAEkRX40#Z$asIeE{CnAF8(42|bf{=_+>kL6d zkcen9m?8r>_TnWGo2)ECpCm-zv=*Ef&bn-a8hh{C)-w?sRzNfc5kx_bEX(r3BqJe2 zCd0;rK6J5-DUcdgiN0T_*mq_)D$A_3B@9Vnu-f#NPf2N{%g2VU_-|^Tn?~`{5)}M!XAL?g*oXzy4rsub`Z|g$` z^`x}rH$oNtO5?Gn=ToEzpS-?Lg{J2*vGwRH{+V#@(cV)CGMeN!zp_2m{oCIW7Yg#wJp2BsQiK-M=!vu-;{u_j}|j;*uSu(Ak2!2lPI z2Ssi&7)u%QiwE-RU*CE4TX&49zVgSPi!+4cd73ajPd!Ts6nbmiMF8_@Z3{@~$>ggBY3$6I+ha7L$F2SxD1?%w(G z*3p@3cAmX{^O^nUpRFWfoDp@+vRfM?q{K?Gm!e3Y`|_48U%dTpEC&N;GJMPqlgNM_ z469=vN|q2i@0TkxB6b-O1ENHlWdNDpJ69mJDiC9>aW+Z_KB|feMM*KKHI|gwAVKRs z`aXszq{>PA+She0l0sKeDwy&-ALe=0N>3Z(^_22*M7vBCs_}1UPKfhQFr&phQWs8S$=eX@VG1Job{$aa%@LsFF zby|%1^6+5%{1-o;+STmtThJMCws-B>uYB_xgM-n#XBT(w-m_(C2hX(Kc)3JWBVvgh zG$#zIs-ny=7X~z*xT0bZ2ySbd-@NhcP!7UH{l=~4{qy+VJI6zsmYJK~*VBg!%G(t4 z~wZyU1mhO zn7}5tJTXQ@HKvrLL5ivYP{KxR{0RTVB&!cT<%(2aqCXmfa18`Tjnk4u>ZTz8)&73th zM}kkj4?$Fjm;ec}3n4U2tg0gVIN&B~64mG%HJlffG3+Esvsl*`HM6r;`q1=E_cTAB zKLb6#W#jM2ZTOFJE}wJ}Wy5HQgb-xIxP9>Ik2O6{`t)p6N58!xTpN7(SUvMeGEGm? zNl%J+K1H9N$8*@=-A|X^`XGx2A5?dKmc8{@(7cf$wJBCcwx7-S_MfRP>Fa;~)*Juf z&Dp)hb6i{iA)fSV`CVT4w3^D6F5s-pCni>g9TM($qA6=k0p` z`BWZs^RCytm<-1R>3!EO?ebL4&ekh`bY=U}=YRi|vUIQh1r~ST5HTT|EH7`|*eVY4 zWSWb0Ou=6qcMtAGvQiF|C^jHM*h2TDaAp{ZC7*zyF$@i(LjS#D2c4iZ2&T2?Sqr@Q5r|1PRHsiv< z5OH85+_mgkV(7Y7+lE1EtT8+^rZk3_6h>H9NStDuQc$RDEDcmeQ%c_Vjtr$}LSWwq zjUE88VVi@ELN>)KB_qn3KuW5RsGG<&!^BJ~DTR=HNGi0+T?GS35@Hf=VrnxKk~sCN zrd`yj?^TclDN2&4Dx^+=bgQOc`Ph3iCS!6a`BtIHvP$|e#KGZ9oJf+;f$Tc~CXCSn66L{W)Jg7?vPlmZ~C3Nla=ec!BniZ0I!Vi%)$ z?^T42rsO4rN0{+xVzoX4J)ezFu0W+Ccud3nf;CcqzP;wosla9F(duYY>_`a2i*XD27uKmW(O&%Qh=$7LHr*GmLM zl!(}na7r2=h=Q(@b{%q7J7SkRZ?mIQz4yKQSe##+t?sSs>D9^C{?UuieQm4S<@E`Q z-OTQcLbP4YQLzgBPi|ej`lIvn(-UOP?c4L6cczyeqjV9Pq|b7ijEn8Cx%kd*A-^?{|3R*{>ab^$Rb)cfVe&!^1nX^NZFNY42*b zw>P$imaEyKPI;MCgCcVXA$T9jS?5?8%s8KERiZG(b1zN@Hl4nCarSOKKkjrb{Xxaz za%Y$w^FXwiFZ=mC#7Lx);zwnC)O)eQsuX(lKCwxe11aUshUnL;mRO1`BjOZOj4GnW z8rY;sG!PQ;h62N;2MR`soN;V>P0{x;CTqw!>nxbbiA5UZgsv{TuJ1ap8l1~BXPF_A zL=#Au6Hx?=Xr~esoJ0jl)u#lGYF$B;GiBC9lZ8BUY>TKS#E@c_M3D$dQxHfp#xNOT zW&?s+YYbD0L1I!Bh7v)cfT|>@GQp@xZNJt<(%APMf-opSRg#JrYshBCxh%8J*lg?+ z!(wbETX|XLF{HMQt?!$4QszX$mNLgsfQ+$ON(mZ`<-E)ployoeqA7KK@O`fWD6utV znS)3Yk-%6r)S1Qt_A`;)`HJ$L)HJNNI*@7{i|YftL?hc~}?dGAtLm9*5<2Z1If zjgs1~w>Ha*GA}C)0E`6P8s}TjWbr}x$s6yU{O||JseI+y^Iy60!WVaoVOrKLY_WB% zm|opFeWyP^>Q*b++ARiKm76Szy-~jF@@>Bk^R^ol#gK`;j~)U_4jEaR?2N51`$amL zT~uuI;i%lcv7D*+#r?N_&~~%+`b(Fey*Vx>UArJz4l5mR=LdVm_D)VDb(5C0@0uvm z4@WL9Y+mI_RWv38CGsk<6VF2gRXH)vjK*3HvaaKcdB0pOeH4L^uqIfmE;mJyS(6b+H@3?n z$ww9XKz{w`fv74VCBU#XjOhCmy+9Po3?&9DG1wSF1~_B6sBBqP&Q<`xLL}ZxN+|^O zK_D@TgqUn*%F-}FBRw+8Qe|tD6-hJ0!_qRtHH)>j36MmhKr*5ff~u$$bxg4$T>aFkJdGFiD zfAQKIum8=-mwx~9)vs*ZgA&GwL{Vin0`)Ob@QOr4NJOGWRJv53E}L10?d>aH*}eY7 zgDW=&wv>=k(+8_ApPIo=e)1E4{C@M!yBAtYNA1?la&qH^OE2=|z!W2wml?oDO~!;2 zw3kEyO3vBgILnaIx?QiAFmibFdgpm@?+t|0*`0U4dy)2ETx~ypEt^!A4<^-^clQU= zeNzsN%@AdDv5>P_-}$Df%xF^ORSqCZOe6q_Xh_jScE(vUrr;~p$l6>(c=-PL+dn$m zKis?ih3W3KY(9rS_bz7K8D9t3k9kwajWHT25gSWP1P~io2V-+lr$`V5vt>stFs3V& zvo6Kp*TLI7)!N4(h%m4WqarayA2cCjXPjf9zKL*f!jyyssn@pd>Uy5i3Q*r`h%jyw zex5+0v=P`iCc_L;BZ)+uY9(ScxfF{ObIyw_b6KTXX`&FZu*Mh=DbP-HleL!@W}^-A7A&9)0i6?|8(o{1;#Tga7>MXp5Q@1rmHxAps{&u+ijsUJN|s z{_Jelw8i0QcW?Ldvw2>MGLy-CG}cg_17u>1L}ZN(PJ8W}*yfJ64|c9zHP1dvTZiM< zza7rr4eDdFT-^EbtyPq-{-al3cyT8mkjZGWh0!)VFkf<>V>0DZtjW}s78Z|+6e0kE zN-xn8J7bcQe1P4tE!nlpoq0GuK3RYFdk2A!6Ylos&siaFm?ji_qL#@Dm7@82 z-M8(`=62PY!ML=xu(=(Y0XbtcXDn?%Pgats1Rssz%-Ix`m_#`V5tzt4X7V?lBD#@Z zOHx(lN4}XtU{xi8l8D9-oXH1+;bfeHscw8zcfOAVo9CIc3_=Vn3~Q5S$nz}A9J7M3 zF;{k$GUrU9KI@uwTs3vw#5_-itaI>P8@!JaKnBc224aw)5LJrFH=@=kz))n)vgQQo zQqYv3YOFD&suH>sI#1Fj-+sgd{kOW(^VtUSv+?)XZsUmrbv)s}{QpmtiN`$7r*crA zI*at7V}EQY^(jtF@pDJ8#GpwiuLdFxpG%*Y%?9R>WWy zkm5=6V1jOHJ_IIaV>GEEu`$HC#N>OQG;vg=OxFQ!HV@Mug$Cyzcw&ni8ijo;C+(e!L` zGCrEU_1jzNd90_wr`NLnWa8DQ(z1>ZqA)h&sqpFfWlHQys!%8!7;6$m(G7Y7NF^oT zb>7nWO7?|=gJL)TOIzLfN&Pqf`c}vfpZ&ttq;Q$26<)T%w<_MuXRC*AE>6BTTb|AK zzEVE-)$#U$ovrHG(yO%~QjlRs#Ch(DG9wcci>X|-RhcRwxzMM0jM!+?__&&jL}zJw zQH-Z$Ryc_&F%fZ5WiHQ+7YS+AugfuCd1h4c!Q%LHi$%XaI){>RD6rOD zmydPlYUQR?GFdUrcSlpsOJz!(L`g&jAT@?Sh7CC(Q56c3NCd#DqmxD5#BT5U)(g+? zgrvEN$CYKfT(#@fx^t+iB81ef7Jj{e`Xr)}SZ$thSxA-_CLgzb z-+SNmjYyIN5+XK4q=3i<7H{g2P$I*|Si{Uw2*m6dL?S7)q01v@E^`KqJ_RPqESTUE z$^VbN|7x}?J+cHrcmKpzM_mmS5Fr_4kW3~sOSE-Wjm?bpOZS+~{J{AM^Ds7J)>D;T zHB+5hu*f7M7&-zPxVYlTEk5Dy^KcMI5D^r~WCTDK`~kT40{5IP&feeJzLu}GmH1df zLtqev(4Zm-;NvhwLZWUVpI0D-6|fT#kCsHgyE6$a~E;T#Bb>(CEF&QQ3* zS__~#e2%OZ*@;VD48XOq{g7N#yLw(#W5~6L$~RzRf0@N###il z1O`P!QcNjD&QXQGu#?;77XYF`GGq(@swS0zC4T`M2@I&lrxKN(z6f9X^t`P9F6pgj z7!dduq>;a9pywM4eE7B0(sS?kJTox=oawEn2Waszee+LfXxsB4M1UM=d5))#7ID*! zNA+l8tTlopWB_0jVjse!tS-MX`?vq|JCZ)R^|KHE#+-Tg!*9PmDn}qgACwK5u5%AR zo8NrzPCmv z@u(X@KMY;h4gJu^=z2?JQ{oi3DD8Ms7L}y{GGs}i8{*knP%ftz#?2`-;azRhV3An#o>a#?CbkEC47OLkJ4MqWU-`iUV2~oDK@&5QIA@GEN+7zm z5)dSGo(vgl&=E~6IZ+4@*MKUP%&4v#>rEmRNo{NwYtfWOwLsjg@3)(!N;YU_=qM(2TM309Z5Xqo1pok(W0-_?qoLIA{ z0I-lTWl@Zp(mOlEAOhA>SvW!yy4ZI^3Nh!Lx|sW5N@s~2SYs$B9yTGiky8({QAk8+ z4H6QnrkJ`-AHsmZ#sHELZ~!125LiWpw*f&yqm z6bI%YoB<-doZfm_FYB4Ld7G5_v`^0;2I$%D)HkfremZ;WX(i2b$=-TK(DRkPl+Ul* z1HUM-eCp}*u^T_-0aoXIXb11AF^%v%sGpSwa_%BG2MF8 z&gbS}sDa8p<-nw=wiFg&c;!Z3`T7Z_b(fRqwoI=6)UG zDuQkRmH-*ZxWYPXh=7c#8aJ8M&KWeoiH06Rh&ivBS(sI}5!-}l$#`3oMPZ8qec{lW zAqCk)C3IzFQ9-jvWR4uWFswp|`fEt7=c#Uf33^`Eb69rZsZ8>3j05^+IHqUz=xf@w zXBs)rI5KZ}r5A+WdX8xrzww9hNjC_MLTO=A)lto;tevqcQ9%&|!5Ap4g)F&`T2}D- zAMIrKgZQ8B-TLU^pO^XH(~TR~tJ>4;o89sK)#7*wg}?I7!4Lk&OS>1fO(|p&>y|we zva^PevIr?x&K~YI2Zwxee=}@4C(U@)%)8WwAwm{WW>#T9DkjdL)sFf$dymdJBnUZ& zE3YLK0PAWmOOZJgUsBG5wPg|oE+dC_ z70*~VqU$XM1E8z*BJ`S+hZKmavYG82?C&2{)d*R%58AfFdb#e~mQbB7%c8bLfkd2A z+iq6NRT|iNJKL>UFlI$dd4;SgfXP^nV z3ppVnS_3LMB?a|`EA~850aO97Eo@bn-n*@i+mI{Es%{G7C=c2%;%3!$Lp=;#->qWU zY!MF&c3mGM`@)x{^CgSXA;mDTf~~636c&Vy`q~+etIKdnFh$;S@0{-598J@Tve7V6MKvZMESpqUS zaTsEX+M`LC3>ru1OR8BJG_xhcM64o61fn7u!w^I0J8ugQjuezt$*O>Y0X3APraq@3 z4naf=0R76Q&htb=_E$X!;cxVS^s-*oZ_%iDCQsuJV|wcu|DmtXFXx$;ea6-LnFIR` z$51?TeqRU^rl)VbPqy)yJFoyKpiwdaq%53sbZU%6tA-E&sLyG+UWGvocwbYW%>J}~ z^;>n@U;VrP*nRNVx3tG^|MA7enT~w@+P~U4xHesK{`|9zwdKyfO-s1{$ztfw+||*A z$yjpimkVTVEEQB7?U%O;b9!fe@5AQe!Cq}?ZTxS3OlLL3C1M=$HU9^_3wIe+CFfQW$5GiqxJ1i&Zjr7-T2m}h

eYTm74 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 literal 0 HcmV?d00001 diff --git a/inf_launch_ext.ps1 b/inf_launch_ext.ps1 index 83da73a..d0dd099 100644 --- a/inf_launch_ext.ps1 +++ b/inf_launch_ext.ps1 @@ -1,37 +1,61 @@ -# INFINITASのレジストリ インストール先の取得に使う +Add-Type -AssemblyName System.Windows.Forms + +$ScriptName = [Regex]::Match( + $MyInvocation.InvocationName, + '[^\\]+\Z', + [System.Text.RegularExpressions.RegexOptions]::IgnoreCase -bor [System.Text.RegularExpressions.RegexOptions]::SingleLine + ).Value + +Write-Host "Executing: $ScriptName" + +$ScriptIsUsta = $ScriptName -match '.*kr.ps1$' +if ($ScriptIsUsta) { + Write-Host "KR USTA mode" + $ScriptIsUsta = $true +} else { + Write-Host "JP eamusement mode" + $ScriptIsUsta = $false +} + +# Use to get INFINITAS registry installation path $InfRegistry = "HKLM:\SOFTWARE\KONAMI\beatmania IIDX INFINITAS" -# ゲーム本体のパス 通常はレジストリから取得 +# Path of the game itself Usually obtained from the registry #$InfPath = "C:\Games\beatmania IIDX INFINITAS\" $InfPath = Get-ItemPropertyValue -LiteralPath $InfRegistry -Name "InstallDir" $InfExe = Join-Path $InfPath "\game\app\bm2dx.exe" $InfLauncher = Join-Path $InfPath "\launcher\modules\bm2dx_launcher.exe" cd $InfPath | Out-Null -# bm2dxinf:// のレジストリ +# bm2dxinf:// registry $InfOpen = "HKCR:bm2dxinf\shell\open\command\" +if ($ScriptIsUsta) { + $InfOpen = "HKCR:bm2dx-kr\shell\open\command\" +} -# このスクリプトのフルパス +# full path to this script $ScriptPath = $MyInvocation.MyCommand.Path -# 設定ファイル +# setting file $ConfigJson = Join-Path $PSScriptRoot "config.json" -$Config = @{ +$Config = [ordered]@{ "Option"="0" "WindowWidth"="1280" "WindowHeight"="720" "WindowPositionX"="0" "WindowPositionY"="0" "Borderless"=$false + "FsMonitor"="0" } -# ウィンドウスタイル(調べてもよくわかんなかった) -$WSDefault = 348651520 -$WSBorderless = 335544320 +# window style +# see https://learn.microsoft.com/en-us/windows/win32/winmsg/window-styles +$WSDefault = 0x14CC0000 +$WSBorderless = 0x14080000 -# Win32API関数の定義 -Add-Type @" +# Define Win32 API functions +$Source = @" using System; using System.Runtime.InteropServices; @@ -50,14 +74,16 @@ Add-Type @" [DllImport("user32.dll")] internal static extern bool GetClientRect(IntPtr hwnd, out RECT lpRect); + + [DllImport("User32.dll")] + public static extern int GetWindowThreadProcessId(IntPtr hWnd, out int lpdwProcessId); [StructLayout(LayoutKind.Sequential)] - internal struct RECT - { - public int left, top, right, bottom; + internal struct RECT + { + public int left, top, right, bottom; } - // 外枠の大きさを考慮したウィンドウサイズ変更 public static void MoveWindow2(IntPtr hndl, int x, int y, int w, int h, bool isBl){ if(isBl){ MoveWindow(hndl, x, y, w, h, true); @@ -81,15 +107,17 @@ Add-Type @" } } - } "@ +Add-Type -TypeDefinition $Source -Language CSharp function Save-Config() { $Config | ConvertTo-Json | Out-File -FilePath $ConfigJson -Encoding utf8 } function Start-Exe($exe, $workDir, $arg){ + Write-Host "Start-Exe launching:`n EXE: $exe`n ARG: $arg`n DIR: $workDir`n" + $info = New-Object System.Diagnostics.ProcessStartInfo $info.FileName = $exe $info.WorkingDirectory = $workDir @@ -98,9 +126,8 @@ function Start-Exe($exe, $workDir, $arg){ $p = New-Object System.Diagnostics.Process $p.StartInfo = $info - - $p.Start() | Out-Null + $p.Start() | Out-Null return $p } @@ -112,8 +139,34 @@ function Switch-Borderless($isBl){ } } +function Get-Monitor($monitor_number){ + $monitor_number = [int]$monitor_number + # https://stackoverflow.com/questions/7967699/get-screen-resolution-using-wmi-powershell-in-windows-7 + # get a lit of monitors... + $screens = [system.windows.forms.screen]::AllScreens + + # find primary monitor first + $primary = $screens[0] + $col_screens | ForEach-Object { + if ("$($_.Primary)" -eq "True") { + $primary = $_ + break + } + } + + # 0 = primary, 1 and up = monitor number + if ($monitor_number -eq 0) { + return $primary + } + + if ($monitor_number -gt $screens.Count) { + return $primary + } + + return $screens[$monitor_number - 1] +} -# 引数を指定しなかったときにレジストリ変更 +# change registry when no argument is specified if ([string]::IsNullOrEmpty($Args[0])) { New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT | Out-Null $val = Get-ItemPropertyValue -LiteralPath $InfOpen -Name "(default)" @@ -137,8 +190,16 @@ if ([string]::IsNullOrEmpty($Args[0])) { $val = """powershell"" ""-file"" ""${ScriptPath}"" ""%1""" } 3 { - $NewScriptPath = Join-Path $InfPath "inf_launch_ext.ps1" - Copy-Item $ScriptPath $NewScriptPath + $From = Join-Path $PSScriptRoot $ScriptName + Copy-Item -Path $From -Destination $InfPath + + $From = Join-Path $PSScriptRoot "infzoom.exe" + Copy-Item -Path $From -Destination $InfPath + + $From = Join-Path $PSScriptRoot "infzoom.ini" + Copy-Item -Path $From -Destination $InfPath + + $NewScriptPath = Join-Path $InfPath $ScriptName $val = """powershell"" ""-file"" ""${NewScriptPath}"" ""%1""" } Default { @@ -151,38 +212,40 @@ if ([string]::IsNullOrEmpty($Args[0])) { exit } -# ゲームを起動するためのもの ここから -# 設定ファイルを読み込む +# Something to start the game from here +# read configuration file if(Test-Path $ConfigJson){ - $Config = @{} + $Config = [ordered]@{} (ConvertFrom-Json (Get-Content $ConfigJson -Encoding utf8 -Raw )).psobject.properties | Foreach { $Config[$_.Name] = $_.Value } } - -# ゲーム本体に渡す引数 +# Arguments to pass to the game itself $InfArgs = "" -# 引数からトークンを拾う +# pick up the token from the arguments $Args[0] -match "tk=(.{64})" | Out-Null $InfArgs += " -t "+$Matches[1] -# トライアルモードなら--trialをつける +# add --trial for trial mode if ($Args[0].Contains("trial")) { $InfArgs += " --trial" } echo "Please select option." -echo "0 : Launcher" -echo "1 : Normal" -echo "2 : Normal + window mode" +echo "0 : Launcher (required for game updates)" +echo "1 : WASAPI" +echo "2 : WASAPI + window mode" echo "3 : ASIO" echo "4 : ASIO + window mode" +echo "5 : WASAPI + fullscreen borderless with zoom" +echo "6 : ASIO + fullscreen borderless with zoom" -$num = Read-Host "number(last time: $($Config["Option"]))" +$num = Read-Host "number(press enter for option $($Config["Option"]))" if([string]::IsNullOrEmpty($num)){ $num=$Config["Option"] } +$FullScreenBorderlessWithZoom = $false switch ($num) { 0 { Start-Process -FilePath $InfLauncher -ArgumentList $Args[0] @@ -201,62 +264,92 @@ switch ($num) { $InfArgs += " -w" $InfArgs += " --asio" } + 5 { + $InfArgs += " -w" + $FullScreenBorderlessWithZoom = $true + } + 6 { + $InfArgs += " -w" + $InfArgs += " --asio" + $FullScreenBorderlessWithZoom = $true + } Default { exit } } -# 設定を保存 +if ($ScriptIsUsta) { + $InfArgs += " --kr" +} + +# save settings $Config["Option"] = [string]$num Save-Config -# INFINITASを起動 -$p = Start-Exe($InfExe,"",""""+$InfArgs+"""") +# start INFINITAS +$p = Start-Exe $InfExe "" $InfArgs -# ウィンドウモードのとき -if($InfArgs.Contains("-w")){ - # ウィンドウ作成まで待つ - $p.WaitForInputIdle() | Out-Null +# in window mode... +if ($InfArgs.Contains("-w")){ - # ウィンドウハンドルの取得 + # wait for window creation + $p.WaitForInputIdle() | Out-Null $handle = $p.MainWindowHandle - # 前回の位置と大きさにする - Switch-Borderless($Config["Borderless"]) - [Win32Api]::MoveWindow2($handle, $Config["WindowPositionX"], $Config["WindowPositionY"], $Config["WindowWidth"], $Config["WindowHeight"], $Config["Borderless"]) + if ($FullScreenBorderlessWithZoom) { + # we let the separate EXE handle everything for this mode + $InfZoomExe = Join-Path $PSScriptRoot "infzoom.exe" + $infzoom_p = Start-Exe $InfZoomExe $PSScriptRoot $handle + $infzoom_p.WaitForExit() | Out-Null + Pause - echo "" - echo "window mode setting" - echo "example:" - echo "window size -> 1280x720" - echo "window position -> 100,100" - echo "Press enter key to switch to Borderless window." - - while($true){ - $inputStr=Read-Host " " - if([string]::IsNullOrEmpty($inputStr)){ - $Config["Borderless"] = (-Not $Config["Borderless"]) - }elseif($inputStr.Contains("x")){ - $val = $inputStr.Split('x') - $Config["WindowWidth"]=$val[0] - $Config["WindowHeight"]=$val[1] - }elseif($inputStr.Contains(",")){ - $val = $inputStr.Split(',') - $Config["WindowPositionX"]=$val[0] - $Config["WindowPositionY"]=$val[1] - } + } else { - # ボーダーレス化 + # set to previous position and size Switch-Borderless($Config["Borderless"]) + [Win32Api]::MoveWindow2( + $handle, + $Config["WindowPositionX"], + $Config["WindowPositionY"], + $Config["WindowWidth"], + $Config["WindowHeight"], + $Config["Borderless"]) + + echo "" + echo "window mode setting" + echo "example:" + echo " window size -> type 1280x720" + echo " window position -> type 100,100" + echo "Press enter key to switch to Borderless window, or use mouse cursor to resize window" + + while($true){ + $inputStr=Read-Host " " + if([string]::IsNullOrEmpty($inputStr)){ + $Config["Borderless"] = (-Not $Config["Borderless"]) + }elseif($inputStr.Contains("x")){ + $val = $inputStr.Split('x') + $Config["WindowWidth"]=$val[0] + $Config["WindowHeight"]=$val[1] + }elseif($inputStr.Contains(",")){ + $val = $inputStr.Split(',') + $Config["WindowPositionX"]=$val[0] + $Config["WindowPositionY"]=$val[1] + } - # 位置とサイズを反映 - [Win32Api]::MoveWindow2($handle, $Config["WindowPositionX"], $Config["WindowPositionY"], $Config["WindowWidth"], $Config["WindowHeight"], $Config["Borderless"]) + # make borderless + Switch-Borderless($Config["Borderless"]) - # 設定ファイルに書き込む - Save-Config + # Reflect position and size + [Win32Api]::MoveWindow2( + $handle, + $Config["WindowPositionX"], + $Config["WindowPositionY"], + $Config["WindowWidth"], + $Config["WindowHeight"], + $Config["Borderless"]) + + # write to config file + Save-Config + } } } - - - - diff --git a/infzoom.sln b/infzoom.sln new file mode 100644 index 0000000..4a84743 --- /dev/null +++ b/infzoom.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.1.32414.318 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "infzoom", "infzoom.vcxproj", "{BF3C8448-6170-43FB-824D-EC7F96334D9D}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x86 = Debug|x86 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {BF3C8448-6170-43FB-824D-EC7F96334D9D}.Debug|x86.ActiveCfg = Debug|Win32 + {BF3C8448-6170-43FB-824D-EC7F96334D9D}.Debug|x86.Build.0 = Debug|Win32 + {BF3C8448-6170-43FB-824D-EC7F96334D9D}.Release|x86.ActiveCfg = Release|Win32 + {BF3C8448-6170-43FB-824D-EC7F96334D9D}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {AEC958AA-F6DA-4E1A-82B3-4CD01D281180} + EndGlobalSection +EndGlobal diff --git a/infzoom/external/ini.h b/infzoom/external/ini.h new file mode 100644 index 0000000..239906a --- /dev/null +++ b/infzoom/external/ini.h @@ -0,0 +1,684 @@ +/* ini.h - simple single-header ini parser in c99 + + in just one c/c++ file do this: + #define INI_IMPLEMENTATION + #include "ini.h" + + license: + see end of file + + options: + by default, when there are multiple tables with the same name, the + parser simply keeps adding to the tables list, it wastes memory + but it is also much faster, especially for bigger files. + if you want the parser to merge all the tables together use the + following option: + - merge_duplicate_tables + when adding keys, if a table has two same keys, the parser + adds it to the table anyway, meaning that when it searches for the + key with ini_get it will get the first one but it will still have + both in table.values, to override this behaviour and only keep the + last value use: + - override_duplicate_keys + the default key/value divider is '=', if you want to change is use + - key_value_divider + + usage: + - simple file: + ini_t ini = ini_parse("file.ini", NULL); + + char *name = ini_as_str(ini_get(ini_get_table(&ini, INI_ROOT), "name"), false); + + initable_t *server = ini_get_table(&ini, "server"); + int port = (int)ini_as_int(ini_get(server, "port")); + bool use_threads = ini_as_bool(ini_get(server, "use threads")); + + ini_free(&ini); + free(name); + + - string: + const char *ini_str = + "name : web-server\n" + "[server]\n" + "port : 8080\n" + "ip : localhost\n" + "use threads : false"; + ini_t ini = ini_parse_str(ini_str, &(iniopts_t){ .key_value_divider = ':' }); + + char *name = ini_as_str(ini_get(ini_get_table(&ini, INI_ROOT), "name"), false); + + initable_t *server = ini_get_table(&ini, "server"); + int port = (int)ini_as_int(ini_get(server, "port")); + bool use_threads = ini_as_bool(ini_get(server, "use threads")); + char ip[64]; + int iplen = ini_to_str(ini_get(server, "ip"), ip, sizeof(ip), false); + if (iplen < 0) { + printf("(err) couldn't get ip: %s\n", ini_explain(iplen)); + } + + free(name); + ini_free(&ini); +*/ + +#ifndef INI_LIB_HEADER +#define INI_LIB_HEADER + +#define _CRT_SECURE_NO_WARNINGS +#include +#include +#include // SIZE_MAX +#include +#include + +#define inivec_t(T) T * + +#define ivec_free(vec) ((vec) ? free(ini__vec_header(vec)), NULL : NULL) +#define ivec_copy(src, dest) (ivec_free(dest), ivec_reserve(dest, ivec_len(src)), memcpy(dest, src, ivec_len(src))) + +#define ivec_push(vec, ...) (ini__vec_may_grow(vec, 1), (vec)[ini__vec_len(vec)] = (__VA_ARGS__), ini__vec_len(vec)++) +#define ivec_rem(vec, ind) ((vec) ? (vec)[(ind)] = (vec)[--ini__vec_len(vec)], NULL : NULL) +#define ivec_rem_it(vec, it) ivec_rem((vec), (it)-(vec)) +#define ivec_len(vec) ((vec) ? ini__vec_len(vec) : 0) +#define ivec_cap(vec) ((vec) ? ini__vec_cap(vec) : 0) + +#define ivec_end(vec) ((vec) ? (vec) + ini__vec_len(vec) : NULL) +#define ivec_back(vec) ((vec)[ini__vec_len(vec) - 1]) + +#define ivec_add(vec, n) (ini__vec_may_grow(vec, (n)), ini__vec_len(vec) += (unsigned int)(n), &(vec)[ini__vec_len(vec)-(n)]) +#define ivec_reserve(vec, n) (ini__vec_may_grow(vec, (n))) + +#define ivec_clear(vec) ((vec) ? ini__vec_len(vec) = 0 : 0) +#define ivec_pop(vec) ((vec)[--ini__vec_len(vec)]) + +typedef struct { + const char* buf; + size_t len; +} inistrv_t; + +typedef struct { + inistrv_t key; + inistrv_t value; +} inivalue_t; + +typedef struct { + inistrv_t name; + inivec_t(inivalue_t) values; +} initable_t; + +typedef struct { + char* text; + inivec_t(initable_t) tables; +} ini_t; + +typedef struct { + bool merge_duplicate_tables; // default: false + bool override_duplicate_keys; // default: false + char key_value_divider; // default: = +} iniopts_t; + +typedef enum { + INI_NO_ERR = 0, + INI_INVALID_ARGS = -1, + INI_BUFFER_TOO_SMALL = -2, +} inierr_t; + +#define INI_ROOT NULL + +// parses a ini file, if options is NULL it uses the default options +ini_t ini_parse(const char* filename, const iniopts_t* options); +// parses a ini string, if options is NULL it uses the default options +ini_t ini_parse_str(const char* ini_str, const iniopts_t* options); +// parses a ini buffer, this buffer *can* contain '\0', if options is NULL it uses the default options +ini_t ini_parse_buf(const char* buf, size_t buflen, const iniopts_t* options); +// parses a ini file from a file descriptor, if options is NULL it uses the default options +ini_t ini_parse_fp(FILE* fp, const iniopts_t* options); +// checks that the ini file has been parsed correctly +bool ini_is_valid(ini_t* ctx); +void ini_free(ini_t* ctx); + +// return a table with name , returns NULL if nothing was found +initable_t* ini_get_table(ini_t* ctx, const char* name); +// return a value with key , returns NULL if nothing was found or if is NULL +inivalue_t* ini_get(initable_t* ctx, const char* key); + +// returns an allocated vector of values divided by +// if is 0 then it defaults to ' ', must be freed with ivec_free +inivec_t(inistrv_t) ini_as_array(const inivalue_t* value, char delim); +unsigned long long ini_as_uint(const inivalue_t* value); +long long ini_as_int(const inivalue_t* value); +double ini_as_num(const inivalue_t* value); +bool ini_as_bool(const inivalue_t* value); +// copies a value into a c string, must be freed +// copies the value to an allocated c string, if remove_escape_chars is true +// it also removes escape characters from a string (e.g. \; or \#) +// returns the allocated string +char* ini_as_str(const inivalue_t* value, bool remove_escape_chars); + +// divides the inivalue_t by and puts the resulting values in +// returns the number of items on success or <0 on failure (check inierr_t) +inierr_t ini_to_array(const inivalue_t* value, inistrv_t* arr, size_t len, char delim); +// copies the value to a buffer, buflen includes the null character, +// if remove_escape_chars is true it also removes escape characters from a string (e.g. \; or \#) +// returns the number of characters written on succes or <0 on failure (check inierr_t) +inierr_t ini_to_str(const inivalue_t* value, char* buf, size_t buflen, bool remove_escape_chars); + +// returns a human readable version of +const char* ini_explain(inierr_t error); + +#endif + +#ifdef INI_IMPLEMENTATION + +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +#define CDECL(type) type +#else +#define CDECL(type) (type) +#endif + +#define ini__vec_header(vec) ((unsigned int *)(vec) - 2) +#define ini__vec_cap(vec) ini__vec_header(vec)[0] +#define ini__vec_len(vec) ini__vec_header(vec)[1] + +#define ini__vec_need_grow(vec, n) ((vec) == NULL || ini__vec_len(vec) + n >= ini__vec_cap(vec)) +#define ini__vec_may_grow(vec, n) (ini__vec_need_grow(vec, (n)) ? ini__vec_grow(vec, (unsigned int)(n)) : (void)0) +#define ini__vec_grow(vec, n) ini__vec_grow_impl((void **)&(vec), (n), sizeof(*(vec))) + +inline static void ini__vec_grow_impl(void** arr, unsigned int increment, unsigned int itemsize) { + int newcap = *arr ? 2 * ini__vec_cap(*arr) + increment : increment + 1; + void* ptr = realloc(*arr ? ini__vec_header(*arr) : 0, itemsize * newcap + sizeof(unsigned int) * 2); + assert(ptr); + if (ptr) { + if (!*arr) ((unsigned int*)ptr)[1] = 0; + *arr = (void*)((unsigned int*)ptr + 2); + ini__vec_cap(*arr) = newcap; + } +} + +static const iniopts_t ini__default_opts = { + false, // merge_duplicate_tables + false, // override_duplicate_keys + '=', // key_value_divider +}; + +typedef struct { + const char* start; + const char* cur; + size_t len; +} ini__istream_t; + +static ini_t ini__parse_internal(char* text, size_t textlen, const iniopts_t* options); +static char* ini__read_whole_file(FILE* fp, size_t* filelen); +static iniopts_t ini__set_default_opts(const iniopts_t* options); +static initable_t* ini__find_table(ini_t* ctx, inistrv_t name); +static inivalue_t* ini__find_value(initable_t* table, inistrv_t key); +static void ini__add_table(ini_t* ctx, ini__istream_t* in, const iniopts_t* options); +static void ini__add_value(initable_t* table, ini__istream_t* in, const iniopts_t* options); +static char* ini__strdup(const char* src, size_t len); +static int ini__rem_escaped(inistrv_t value, char* buf, size_t buflen); + +// string stream helper functions +static ini__istream_t istr__init(const char* str, size_t len); +static bool istr__is_finished(ini__istream_t* in); +static void istr__skip_whitespace(ini__istream_t* in); +static void istr__ignore(ini__istream_t* in, char delim); +static void istr__skip(ini__istream_t* in); +static inistrv_t istr__get_view(ini__istream_t* in, char delim); + +// string view helper functions +static inistrv_t strv__from_str(const char* str); +static inistrv_t strv__trim(inistrv_t view); +static inistrv_t strv__sub(inistrv_t view, size_t from, size_t to); +static bool strv__is_empty(inistrv_t view); +static int strv__cmp(inistrv_t a, inistrv_t b); + +ini_t ini_parse(const char* filename, const iniopts_t* options) { + if (!filename) return CDECL(ini_t) { 0 }; + FILE* fp = fopen(filename, "rb"); + size_t filelen = 0; + char* file_data = ini__read_whole_file(fp, &filelen); + fclose(fp); + return ini__parse_internal(file_data, filelen, options); +} + +ini_t ini_parse_str(const char* ini_str, const iniopts_t* options) { + size_t ini_str_len = strlen(ini_str); + return ini__parse_internal(ini__strdup(ini_str, ini_str_len), ini_str_len, options); +} + +ini_t ini_parse_buf(const char* buf, size_t buflen, const iniopts_t* options) { + return ini__parse_internal(ini__strdup(buf, buflen), buflen, options); +} + +ini_t ini_parse_fp(FILE* fp, const iniopts_t* options) { + size_t filelen = 0; + char* file_data = ini__read_whole_file(fp, &filelen); + return ini__parse_internal(file_data, filelen, options); +} + +bool ini_is_valid(ini_t* ctx) { + return ctx && ctx->text != NULL; +} + +void ini_free(ini_t* ctx) { + if (!ctx) return; + free(ctx->text); + for (initable_t* tab = ctx->tables; tab != ivec_end(ctx->tables); ++tab) { + ivec_free(tab->values); + } + ivec_free(ctx->tables); + *ctx = (ini_t){ 0 }; +} + +initable_t* ini_get_table(ini_t* ctx, const char* name) { + if (!name) return ctx->tables; + else return ini__find_table(ctx, strv__from_str(name)); +} + +inivalue_t* ini_get(initable_t* ctx, const char* key) { + return ctx ? ini__find_value(ctx, strv__from_str(key)) : NULL; +} + +inivec_t(inistrv_t) ini_as_array(const inivalue_t* value, char delim) { + if (!value) return NULL; + if (strv__is_empty(value->value)) return 0; + if (!delim) delim = ' '; + + inivec_t(inistrv_t) out = NULL; + inistrv_t v = value->value; + + size_t start = 0; + for (size_t i = 0; i < v.len; ++i) { + if (v.buf[i] == delim) { + inistrv_t arr_val = strv__trim(strv__sub(v, start, i)); + if (!strv__is_empty(arr_val)) { + ivec_push(out, arr_val); + } + start = i + 1; + } + } + inistrv_t last = strv__trim(strv__sub(v, start, SIZE_MAX)); + if (!strv__is_empty(last)) { + ivec_push(out, last); + } + return out; +} + +unsigned long long ini_as_uint(const inivalue_t* value) { + if (!value || strv__is_empty(value->value)) return 0; + unsigned long long out = strtoull(value->value.buf, NULL, 0); + if (out == ULLONG_MAX) { + out = 0; + } + return out; +} + +long long ini_as_int(const inivalue_t* value) { + if (!value || strv__is_empty(value->value)) return 0; + long long out = strtoll(value->value.buf, NULL, 0); + if (out == LONG_MAX || out == LONG_MIN) { + out = 0; + } + return out; +} + +double ini_as_num(const inivalue_t* value) { + if (!value || strv__is_empty(value->value)) return 0; + double out = strtod(value->value.buf, NULL); + if (out == HUGE_VAL || out == -HUGE_VAL) { + out = 0; + } + return out; +} + +bool ini_as_bool(const inivalue_t* value) { + if (!value) return false; + if (value->value.len == 4 && strncmp(value->value.buf, "true", 4) == 0) { + return true; + } + return false; +} + +char* ini_as_str(const inivalue_t* value, bool remove_escape_chars) { + if (!value) return NULL; + inistrv_t val_strv = strv__trim(value->value); + char* str = ini__strdup(val_strv.buf, val_strv.len); + if (remove_escape_chars) { + inistrv_t strv = { str, val_strv.len }; + // we do +1 to include the null pointer at the end + ini__rem_escaped(strv, str, strv.len + 1); + } + return str; +} + +inierr_t ini_to_array(const inivalue_t* value, inistrv_t* arr, size_t len, char delim) { + if (!value || !arr || len == 0) return INI_INVALID_ARGS; + if (strv__is_empty(value->value)) return 0; + if (!delim) delim = ' '; + + inistrv_t strv = value->value; + int count = 0; + size_t start = 0; + for (size_t i = 0; i < strv.len; ++i) { + if (strv.buf[i] == delim) { + inistrv_t arr_val = strv__trim(strv__sub(strv, start, i)); + if (!strv__is_empty(arr_val)) { + if (count >= len) { + return INI_BUFFER_TOO_SMALL; + } + arr[count++] = arr_val; + } + start = i + 1; + } + } + inistrv_t last = strv__trim(strv__sub(strv, start, SIZE_MAX)); + if (!strv__is_empty(last)) { + if (count >= len) { + return INI_BUFFER_TOO_SMALL; + } + arr[count++] = last; + } + return count; +} + +inierr_t ini_to_str(const inivalue_t* value, char* buf, size_t buflen, bool remove_escape_chars) { + if (!value || !buf || buflen == 0) return INI_INVALID_ARGS; + if (strv__is_empty(value->value)) { + buf[0] = '\0'; + return 0; + } + inistrv_t strv = strv__trim(value->value); + if (remove_escape_chars) { + return ini__rem_escaped(strv, buf, buflen); + } + else { + if (buflen < (strv.len + 1)) return INI_BUFFER_TOO_SMALL; + memcpy(buf, strv.buf, strv.len); + buf[strv.len] = '\0'; + return strv.len; + } +} + +const char* ini_explain(inierr_t error) { + switch (error) { + case INI_NO_ERR: return "no error"; + case INI_INVALID_ARGS: return "invalid arguments"; + case INI_BUFFER_TOO_SMALL: return "buffer too small"; + } + return "unknown"; +} + +static ini_t ini__parse_internal(char* text, size_t textlen, const iniopts_t* options) { + ini_t ini = { text, NULL }; + if (!text) return ini; + iniopts_t opts = ini__set_default_opts(options); + // add root table + initable_t root = { CDECL(inistrv_t) { "root", 4 }, NULL }; + ivec_push(ini.tables, root); + ini__istream_t in = istr__init(text, textlen); + while (!istr__is_finished(&in)) { + switch (*in.cur) { + case '[': + ini__add_table(&ini, &in, &opts); + break; + case '#': case ';': + istr__ignore(&in, '\n'); + break; + default: + ini__add_value(ini.tables, &in, &opts); + break; + } + istr__skip_whitespace(&in); + } + return ini; +} + +static char* ini__read_whole_file(FILE* fp, size_t* filelen) { + if (!fp) return NULL; + fseek(fp, 0, SEEK_END); + size_t len = (size_t)ftell(fp); + fseek(fp, 0, SEEK_SET); + char* buf = (char*)malloc(len + 1); + size_t read = fread(buf, 1, len, fp); + if (read != len) { + free(buf); + fclose(fp); + return NULL; + } + buf[len] = '\0'; + if (filelen) *filelen = len; + return buf; +} + +static iniopts_t ini__set_default_opts(const iniopts_t* options) { + if (!options) return ini__default_opts; + + iniopts_t opts = ini__default_opts; + + if (options->override_duplicate_keys) + opts.override_duplicate_keys = options->override_duplicate_keys; + + if (options->merge_duplicate_tables) + opts.merge_duplicate_tables = options->merge_duplicate_tables; + + if (options->key_value_divider) + opts.key_value_divider = options->key_value_divider; + + return opts; +} + +static initable_t* ini__find_table(ini_t* ctx, inistrv_t name) { + if (strv__is_empty(name)) return NULL; + for (unsigned int i = 0; i < ivec_len(ctx->tables); ++i) { + if (strv__cmp(ctx->tables[i].name, name) == 0) { + return ctx->tables + i; + } + } + return NULL; +} + +static inivalue_t* ini__find_value(initable_t* table, inistrv_t key) { + if (strv__is_empty(key)) return NULL; + for (unsigned int i = 0; i < ivec_len(table->values); ++i) { + if (strv__cmp(table->values[i].key, key) == 0) { + return table->values + i; + } + } + return NULL; +} + +static void ini__add_table(ini_t* ctx, ini__istream_t* in, const iniopts_t* options) { + istr__skip(in); // skip [ + inistrv_t name = istr__get_view(in, ']'); + istr__skip(in); // skip ] + + if (strv__is_empty(name)) return; + + initable_t* table = options->merge_duplicate_tables ? ini__find_table(ctx, name) : NULL; + if (!table) { + ivec_push(ctx->tables, CDECL(initable_t){ name, NULL }); + table = &ivec_back(ctx->tables); + } + istr__ignore(in, '\n'); + istr__skip(in); + while (!istr__is_finished(in)) { + switch (*in->cur) { + case '\n': case '\r': + return; + case '#': case ';': + istr__ignore(in, '\n'); + break; + default: + ini__add_value(table, in, options); + break; + } + } +} + +static void ini__add_value(initable_t* table, ini__istream_t* in, const iniopts_t* options) { + if (!table) return; + + inistrv_t key = strv__trim(istr__get_view(in, options->key_value_divider)); + istr__skip(in); // skip divider + inistrv_t val = strv__trim(istr__get_view(in, '\n')); + + if (strv__is_empty(key)) return; + + // find inline comments + for (size_t i = 0; i < val.len; ++i) { + if (val.buf[i] == '#' || val.buf[i] == ';') { + // can escape # and ; with a backslash (e.g. \#) + if (i > 0 && val.buf[i - 1] == '\\') { + continue; + } + val.len = i; + break; + } + } + + // value might be until EOF, in that case no use in skipping + if (!istr__is_finished(in)) istr__skip(in); // skip \n + inivalue_t* new_val = options->override_duplicate_keys ? ini__find_value(table, key) : NULL; + if (new_val) { + new_val->value = val; + } + else { + ivec_push(table->values, CDECL(inivalue_t){ key, val }); + } +} + +static char* ini__strdup(const char* src, size_t len) { + if (!src || len == 0) return NULL; + char* buf = (char*)malloc(len + 1); + if (!buf) return NULL; + memcpy(buf, src, len); + buf[len] = '\0'; + return buf; +} + +static int ini__rem_escaped(inistrv_t value, char* buf, size_t buflen) { + if (!buf || buflen == 0) return INI_INVALID_ARGS; + if (strv__is_empty(value)) { + buf[0] = '\0'; + return 0; + } + size_t len = value.len - 1; + size_t dest_pos = 0; + const char* src = value.buf; + + for ( + size_t src_pos = 0; + src_pos < len; + ++src_pos, ++dest_pos + ) { + if (dest_pos >= buflen) return INI_BUFFER_TOO_SMALL; + + if (src[src_pos] == '\\' && + (src[src_pos + 1] == ';' || src[src_pos + 1] == '#') + ) { + src_pos++; + } + + buf[dest_pos] = src[src_pos]; + } + + if (dest_pos >= buflen) return INI_BUFFER_TOO_SMALL; + buf[dest_pos++] = value.buf[len]; + buf[dest_pos] = '\0'; + return dest_pos; +} + +static ini__istream_t istr__init(const char* str, size_t len) { + return CDECL(ini__istream_t) { str, str, len }; +} + +static bool istr__is_finished(ini__istream_t* in) { + return (size_t)(in->cur - in->start) >= in->len; +} + +static void istr__skip_whitespace(ini__istream_t* in) { + const char* end = in->start + in->len; + while (in->cur < end && isspace(*in->cur)) { + ++in->cur; + } +} + +static void istr__ignore(ini__istream_t* in, char delim) { + const char* end = in->start + in->len; + for (; in->cur < end && *in->cur != delim; ++in->cur); +} + +static void istr__skip(ini__istream_t* in) { + if (!istr__is_finished(in)) ++in->cur; +} + +static inistrv_t istr__get_view(ini__istream_t* in, char delim) { + const char* from = in->cur; + istr__ignore(in, delim); + size_t len = in->cur - from; + return CDECL(inistrv_t) { from, len }; +} + +static inistrv_t strv__from_str(const char* str) { + return CDECL(inistrv_t) { str, str ? strlen(str) : 0 }; +} + +static inistrv_t strv__trim(inistrv_t view) { + if (strv__is_empty(view)) return view; + inistrv_t out = view; + // trim left + for (size_t i = 0; i < view.len && isspace(view.buf[i]); ++i) { + ++out.buf; + --out.len; + } + if (strv__is_empty(out)) return view; + // trim right + for (long long i = view.len - 1; i >= 0 && isspace(view.buf[i]); --i) { + --out.len; + } + return out; +} + +static inistrv_t strv__sub(inistrv_t view, size_t from, size_t to) { + if (to > view.len) to = view.len; + if (from > to) from = to; + return CDECL(inistrv_t) { view.buf + from, to - from }; +} + +static bool strv__is_empty(inistrv_t view) { + return view.len == 0; +} + +static int strv__cmp(inistrv_t a, inistrv_t b) { + if (a.len < b.len) return -1; + if (a.len > b.len) return 1; + return memcmp(a.buf, b.buf, a.len); +} + +#endif + +/* +MIT LICENSE +Copyright 2022 snarmph +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +*/ \ No newline at end of file diff --git a/infzoom/external/log.c b/infzoom/external/log.c new file mode 100644 index 0000000..713cce0 --- /dev/null +++ b/infzoom/external/log.c @@ -0,0 +1,173 @@ +/* + * Copyright (c) 2020 rxi + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +#include "log.h" + +#define MAX_CALLBACKS 32 + +typedef struct { + log_LogFn fn; + void *udata; + int level; +} Callback; + +static struct { + void *udata; + log_LockFn lock; + int level; + bool quiet; + Callback callbacks[MAX_CALLBACKS]; +} L; + + +static const char *level_strings[] = { + "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "FATAL" +}; + +#ifdef LOG_USE_COLOR +static const char *level_colors[] = { + "\x1b[94m", "\x1b[36m", "\x1b[32m", "\x1b[33m", "\x1b[31m", "\x1b[35m" +}; +#endif + + +static void stdout_callback(log_Event *ev) { + // char buf[16]; + // buf[strftime(buf, sizeof(buf), "%H:%M:%S", ev->time)] = '\0'; +#ifdef LOG_USE_COLOR + fprintf( + ev->udata, "%s%-5s\x1b[0m ", + level_colors[ev->level], level_strings[ev->level]); +#else + + // fprintf( + // ev->udata, "%s %-5s %s:%d: ", + // buf, level_strings[ev->level], ev->file, ev->line); + + fprintf( + ev->udata, "[%-5s] ", + level_strings[ev->level]); + +#endif + vfprintf(ev->udata, ev->fmt, ev->ap); + fprintf(ev->udata, "\n"); + fflush(ev->udata); +} + + +static void file_callback(log_Event *ev) { + char buf[64]; + buf[strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S", ev->time)] = '\0'; + fprintf( + ev->udata, "%s %-5s: ", + buf, level_strings[ev->level]); + vfprintf(ev->udata, ev->fmt, ev->ap); + fprintf(ev->udata, "\n"); + fflush(ev->udata); +} + + +static void lock(void) { + if (L.lock) { L.lock(true, L.udata); } +} + + +static void unlock(void) { + if (L.lock) { L.lock(false, L.udata); } +} + + +const char* log_level_string(int level) { + return level_strings[level]; +} + + +void log_set_lock(log_LockFn fn, void *udata) { + L.lock = fn; + L.udata = udata; +} + + +void log_set_level(int level) { + L.level = level; +} + + +void log_set_quiet(bool enable) { + L.quiet = enable; +} + + +int log_add_callback(log_LogFn fn, void *udata, int level) { + for (int i = 0; i < MAX_CALLBACKS; i++) { + if (!L.callbacks[i].fn) { + L.callbacks[i] = (Callback) { fn, udata, level }; + return 0; + } + } + return -1; +} + + +int log_add_fp(FILE *fp, int level) { + return log_add_callback(file_callback, fp, level); +} + + +static void init_event(log_Event *ev, void *udata) { + if (!ev->time) { + time_t t = time(NULL); + ev->time = localtime(&t); + } + ev->udata = udata; +} + + +void log_log(int level, const char *file, int line, const char *fmt, ...) { + log_Event ev = { + .fmt = fmt, + .file = file, + .line = line, + .level = level, + }; + + lock(); + + if (!L.quiet && level >= L.level) { + init_event(&ev, stderr); + va_start(ev.ap, fmt); + stdout_callback(&ev); + va_end(ev.ap); + } + + for (int i = 0; i < MAX_CALLBACKS && L.callbacks[i].fn; i++) { + Callback *cb = &L.callbacks[i]; + if (level >= cb->level) { + init_event(&ev, cb->udata); + va_start(ev.ap, fmt); + cb->fn(&ev); + va_end(ev.ap); + } + } + + unlock(); +} diff --git a/infzoom/external/log.h b/infzoom/external/log.h new file mode 100644 index 0000000..b1fae24 --- /dev/null +++ b/infzoom/external/log.h @@ -0,0 +1,49 @@ +/** + * Copyright (c) 2020 rxi + * + * This library is free software; you can redistribute it and/or modify it + * under the terms of the MIT license. See `log.c` for details. + */ + +#ifndef LOG_H +#define LOG_H + +#include +#include +#include +#include + +#define LOG_VERSION "0.1.0" + +typedef struct { + va_list ap; + const char *fmt; + const char *file; + struct tm *time; + void *udata; + int line; + int level; +} log_Event; + +typedef void (*log_LogFn)(log_Event *ev); +typedef void (*log_LockFn)(bool lock, void *udata); + +enum { LOG_TRACE, LOG_DEBUG, LOG_INFO, LOG_WARN, LOG_ERROR, LOG_FATAL }; + +#define log_trace(...) log_log(LOG_TRACE, __FILE__, __LINE__, __VA_ARGS__) +#define log_debug(...) log_log(LOG_DEBUG, __FILE__, __LINE__, __VA_ARGS__) +#define log_info(...) log_log(LOG_INFO, __FILE__, __LINE__, __VA_ARGS__) +#define log_warn(...) log_log(LOG_WARN, __FILE__, __LINE__, __VA_ARGS__) +#define log_error(...) log_log(LOG_ERROR, __FILE__, __LINE__, __VA_ARGS__) +#define log_fatal(...) log_log(LOG_FATAL, __FILE__, __LINE__, __VA_ARGS__) + +const char* log_level_string(int level); +void log_set_lock(log_LockFn fn, void *udata); +void log_set_level(int level); +void log_set_quiet(bool enable); +int log_add_callback(log_LogFn fn, void *udata, int level); +int log_add_fp(FILE *fp, int level); + +void log_log(int level, const char *file, int line, const char *fmt, ...); + +#endif diff --git a/infzoom/infzoom.c b/infzoom/infzoom.c new file mode 100644 index 0000000..7662939 --- /dev/null +++ b/infzoom/infzoom.c @@ -0,0 +1,509 @@ +#include "infzoom.h" + +#define INI_IMPLEMENTATION +#include + +typedef union _HOTKEY { + struct { + USHORT Mod; + USHORT Key; + } k; + UINT AsUInt; +} HOTKEY, *PHOTKEY; + +typedef struct _RELATIVE_RECT { + SHORT OffsetX; + SHORT OffsetY; + USHORT Width; + USHORT Height; +} RELATIVE_RECT, *PRELATIVE_RECT; + +typedef struct _CONFIG { + ULONG monitor; + HOTKEY HotKeyExit; + HOTKEY HotKeyNormal; + HOTKEY HotKey1P; + HOTKEY HotKey2P; + HOTKEY HotKeyDP; + HOTKEY HotKeyUp; + HOTKEY HotKeyDown; + HOTKEY HotKeyLeft; + HOTKEY HotKeyRight; + HOTKEY HotKeyLong; + HOTKEY HotKeyShort; + HOTKEY HotKeyNarrow; + HOTKEY HotKeyWide; + RELATIVE_RECT ZoomManual; + RELATIVE_RECT Zoom1P; + RELATIVE_RECT Zoom2P; + RELATIVE_RECT ZoomDP; +} CONFIG, *PCONFIG; + +typedef struct _MONITOR_DATA { + ULONG CurrentCount; + ULONG TargetCount; + HMONITOR Monitor; + LONG OffsetX; + LONG OffsetY; + LONG Width; + LONG Height; +} MONITOR_DATA, *PMONITOR_DATA; + +CONFIG GlobalConfig; +int HotKeyId; +MONITOR_DATA GlobalMonitorData; +HWND InfWindow; +FILE *fp; + +INT +CleanupBeforeExit( + INT ExitCode + ) +{ + if (fp != NULL) { + log_info("*** InfZoom.exe is exiting *** "); + fclose(fp); + fp = NULL; + } + ExitProcess(ExitCode); + return ExitCode; +} + +DECLSPEC_NORETURN +VOID +FailFast ( + _In_ UINT ExitCode + ) +{ + log_fatal("FATAL: Exiting with error 0x%x", ExitCode); + CleanupBeforeExit(ExitCode); +} + +VOID +ParseConfigForHotkey( + initable_t* IniRoot, + PCHAR Name, + PHOTKEY Hotkey + ) +{ + CHAR Buffer[24]; + + sprintf(Buffer, "%s_mod", Name); + Hotkey->k.Mod = (USHORT)ini_as_uint(ini_get(IniRoot, Buffer)); + sprintf(Buffer, "%s_key", Name); + Hotkey->k.Key = (USHORT)ini_as_uint(ini_get(IniRoot, Buffer)); + log_trace("CONFIG: hotkey %s: 0x%x + 0x%x", Name, Hotkey->k.Mod, Hotkey->k.Key); +} + +VOID +ParseConfigForZoom( + initable_t* IniRoot, + PCHAR Name, + PRELATIVE_RECT RelRect + ) +{ + CHAR Buffer[24]; + + sprintf(Buffer, "%s_zoom_x", Name); + RelRect->OffsetX = (USHORT)ini_as_uint(ini_get(IniRoot, Buffer)); + sprintf(Buffer, "%s_zoom_y", Name); + RelRect->OffsetY = (USHORT)ini_as_uint(ini_get(IniRoot, Buffer)); + sprintf(Buffer, "%s_zoom_w", Name); + RelRect->Width = (USHORT)ini_as_uint(ini_get(IniRoot, Buffer)); + sprintf(Buffer, "%s_zoom_h", Name); + RelRect->Height = (USHORT)ini_as_uint(ini_get(IniRoot, Buffer)); + log_trace( + "CONFIG: zoom %s: %d %d %d %d", + Name, + RelRect->OffsetX, + RelRect->OffsetY, + RelRect->Width, + RelRect->Height); +} + + +VOID +ParseConfig( + PCONFIG Config + ) + +{ + ini_t ini = ini_parse("infzoom.ini", NULL); + initable_t* root = ini_get_table(&ini, INI_ROOT); + + Config->monitor = (ULONG)ini_as_uint(ini_get(root, "monitor")); + log_trace("CONFIG: monitor %d", Config->monitor); + + ParseConfigForHotkey(root, "exit", &GlobalConfig.HotKeyExit); + ParseConfigForHotkey(root, "normal", &GlobalConfig.HotKeyNormal); + + ParseConfigForHotkey(root, "1p", &GlobalConfig.HotKey1P); + ParseConfigForHotkey(root, "2p", &GlobalConfig.HotKey2P); + ParseConfigForHotkey(root, "dp", &GlobalConfig.HotKeyDP); + + ParseConfigForHotkey(root, "up", &GlobalConfig.HotKeyUp); + ParseConfigForHotkey(root, "down", &GlobalConfig.HotKeyDown); + ParseConfigForHotkey(root, "left", &GlobalConfig.HotKeyLeft); + ParseConfigForHotkey(root, "right", &GlobalConfig.HotKeyRight); + + ParseConfigForHotkey(root, "long", &GlobalConfig.HotKeyLong); + ParseConfigForHotkey(root, "short", &GlobalConfig.HotKeyShort); + ParseConfigForHotkey(root, "narrow", &GlobalConfig.HotKeyNarrow); + ParseConfigForHotkey(root, "wide", &GlobalConfig.HotKeyWide); + + ParseConfigForZoom(root, "1p", &GlobalConfig.Zoom1P); + ParseConfigForZoom(root, "2p", &GlobalConfig.Zoom2P); + ParseConfigForZoom(root, "dp", &GlobalConfig.ZoomDP); + + ini_free(&ini); +} + +HMONITOR +GetPrimaryMonitorHandle( + VOID + ) +{ + const POINT ptZero = { 0, 0 }; + return MonitorFromPoint(ptZero, MONITOR_DEFAULTTOPRIMARY); +} + +VOID +FillMonitorData( + HMONITOR Monitor, + PMONITOR_DATA MonitorData + ) +{ + MONITORINFO Info; + Info.cbSize = sizeof(Info); + if (GetMonitorInfo(Monitor, &Info)) { + MonitorData->Monitor = Monitor; + MonitorData->Width = abs(Info.rcMonitor.right - Info.rcMonitor.left); + MonitorData->Height = abs(Info.rcMonitor.top - Info.rcMonitor.bottom); + MonitorData->OffsetX = Info.rcMonitor.left; + MonitorData->OffsetY = Info.rcMonitor.top; + } +} + +BOOL +CALLBACK +MonitorEnumProc( + HMONITOR hMonitor, + HDC hdcMonitor, + LPRECT lprcMonitor, + LPARAM dwData) +{ + PMONITOR_DATA MonitorData; + + MonitorData = (PMONITOR_DATA )dwData; + MonitorData->CurrentCount += 1; + if (MonitorData->CurrentCount != MonitorData->TargetCount) { + // return TRUE to continue enumerating + return TRUE; + } + + FillMonitorData(hMonitor, MonitorData); + // return FALSE to stop enumerating + return FALSE; +} + +VOID +ResizeWindow ( + int x, + int y, + int w, + int h + ) +{ + BOOL BoolResult; + + // SetWindowPos works better than MoveWindow in this case, because of SWP_NOSENDCHANGING. + // SWP_NOSENDCHANGING allows us to bypass the checks done by the game which restricts how big + // the window can be (usually capped around 120% or so). + +#if TRUE + + DWORD Flags; + + Flags = ( + SWP_ASYNCWINDOWPOS | + SWP_NOCOPYBITS | + SWP_NOREDRAW | + SWP_NOSENDCHANGING + ); + + BoolResult = SetWindowPos( + InfWindow, + HWND_TOP, + x, + y, + w, + h, + Flags); + + if (!BoolResult) { + log_error("ERROR: Call to SetWindowPos failed: GLE: %d", GetLastError()); + } + +#endif + +#if FALSE + + BoolResult = MoveWindow( + InfWindow, + x, + y, + w, + h, + true); // repaint + + if (!BoolResult) { + log_error("ERROR: Call to MoveWindow failed: GLE: %d", GetLastError()); + } + +#endif + + return; +} + +VOID +GetMonitorsHandle( + ULONG monitor, + PMONITOR_DATA MonitorData + ) +{ + ZeroMemory(MonitorData, sizeof(*MonitorData)); + + // fill with primary monitor info first + FillMonitorData(GetPrimaryMonitorHandle(), MonitorData); + MonitorData->TargetCount = monitor; + + // and then enumerate as needed + if (monitor != 0) { + EnumDisplayMonitors(NULL, NULL, MonitorEnumProc, (LPARAM)MonitorData); + } +} + +VOID +MoveWindowRelative( + PMONITOR_DATA MonitorData, + PRELATIVE_RECT RelRect + ) +{ + int x, y, w, h; + + // start with borderless fullscreen to fill the monitor + x = MonitorData->OffsetX; + y = MonitorData->OffsetY; + w = MonitorData->Width; + h = MonitorData->Height; + + // apply resizes first + if (RelRect->Width != 100) { + w = (MonitorData->Width * RelRect->Width) / 1000; + } + if (RelRect->Height != 100) { + h = (MonitorData->Height * RelRect->Height) / 1000; + } + + // center to the screen + x += (MonitorData->Width - w) / 2; + y += (MonitorData->Height - h) / 2; + + // apply offsets + if (RelRect->OffsetX != 0) { + x += (MonitorData->Width * RelRect->OffsetX) / 1000; + } + if (RelRect->OffsetY != 0) { + y += (MonitorData->Height * RelRect->OffsetY) / 1000; + } + + log_trace( + " x:%d (%.1f%%) y:%d (%.1f%%) w:%d (%.1f%%) h:%d (%.1f%%)", + x, RelRect->OffsetX / 10.0, + y, RelRect->OffsetY / 10.0, + w, RelRect->Width / 10.0, + h, RelRect->Height / 10.0); + + ResizeWindow(x, y, w, h); +} + +BOOL AllowManualMove = FALSE; + +VOID +ResetManualZoom ( + VOID + ) +{ + AllowManualMove = TRUE; + GlobalConfig.ZoomManual.OffsetX = 0; + GlobalConfig.ZoomManual.OffsetY = 0; + GlobalConfig.ZoomManual.Width = 1000; + GlobalConfig.ZoomManual.Height = 1000; +} + +USHORT ActiveModifiers = 0; + +BOOL +TestHotKeyDown ( + PRAWKEYBOARD Kbd, + PHOTKEY Hotkey + ) +{ + if (Hotkey->k.Mod != 0) { + if ((ActiveModifiers & Hotkey->k.Mod) == 0) { + return FALSE; + } + } + return (Hotkey->k.Key == Kbd->VKey); +} + +VOID +MessageLoop( + PRAWKEYBOARD Kbd + ) +{ + USHORT ModifierChange; + + // keep track of modifiers + ModifierChange = 0; + switch (Kbd->VKey) { + case VK_SHIFT: + ModifierChange = MOD_SHIFT; + break; + case VK_MENU: + ModifierChange = MOD_ALT; + break; + case VK_CONTROL: + ModifierChange = MOD_CONTROL; + break; + } + if (Kbd->Message == WM_KEYDOWN || Kbd->Message == WM_SYSKEYDOWN) { + ActiveModifiers |= ModifierChange; + } else if (Kbd->Message == WM_KEYUP || Kbd->Message == WM_SYSKEYUP) { + ActiveModifiers &= ~ModifierChange; + } + + if (Kbd->Message != WM_KEYDOWN && Kbd->Message != WM_SYSKEYDOWN) { + return; + } + + // everything below tests for WM_KEYDOWN / WM_SYSKEYDOWN events. + + if (TestHotKeyDown(Kbd, &GlobalConfig.HotKeyExit)) { + log_info("HOTKEY: exit game..."); + PostMessage(InfWindow, WM_CLOSE, 0, 0); + CleanupBeforeExit(0); + + } else if (TestHotKeyDown(Kbd, &GlobalConfig.HotKeyNormal)) { + log_info("HOTKEY: reset zoom to normal view (manual adjustments possible)... "); + ResetManualZoom(); + MoveWindowRelative(&GlobalMonitorData, &GlobalConfig.ZoomManual); + } else if (TestHotKeyDown(Kbd, &GlobalConfig.HotKey1P)) { + log_info("HOTKEY: activate 1P zoom view... "); + AllowManualMove = FALSE; + MoveWindowRelative(&GlobalMonitorData, &GlobalConfig.Zoom1P); + } else if (TestHotKeyDown(Kbd, &GlobalConfig.HotKey2P)) { + log_info("HOTKEY: activate 2P zoom view... "); + AllowManualMove = FALSE; + MoveWindowRelative(&GlobalMonitorData, &GlobalConfig.Zoom2P); + } else if (TestHotKeyDown(Kbd, &GlobalConfig.HotKeyDP)) { + log_info("HOTKEY: activate DP zoom view... "); + AllowManualMove = FALSE; + MoveWindowRelative(&GlobalMonitorData, &GlobalConfig.ZoomDP); + + } else if (AllowManualMove) { + if (TestHotKeyDown(Kbd, &GlobalConfig.HotKeyUp)) { + log_info("HOTKEY: manual move UP... "); + GlobalConfig.ZoomManual.OffsetY -= 1; + MoveWindowRelative(&GlobalMonitorData, &GlobalConfig.ZoomManual); + } else if (TestHotKeyDown(Kbd, &GlobalConfig.HotKeyDown)) { + log_info("HOTKEY: manual move DOWN... "); + GlobalConfig.ZoomManual.OffsetY += 1; + MoveWindowRelative(&GlobalMonitorData, &GlobalConfig.ZoomManual); + } else if (TestHotKeyDown(Kbd, &GlobalConfig.HotKeyLeft)) { + log_info("HOTKEY: manual move LEFT... "); + GlobalConfig.ZoomManual.OffsetX -= 1; + MoveWindowRelative(&GlobalMonitorData, &GlobalConfig.ZoomManual); + } else if (TestHotKeyDown(Kbd, &GlobalConfig.HotKeyRight)) { + log_info("HOTKEY: manual move RIGHT... "); + GlobalConfig.ZoomManual.OffsetX += 1; + MoveWindowRelative(&GlobalMonitorData, &GlobalConfig.ZoomManual); + + } else if (TestHotKeyDown(Kbd, &GlobalConfig.HotKeyLong)) { + log_info("HOTKEY: manual increase height... "); + GlobalConfig.ZoomManual.Height += 1; + MoveWindowRelative(&GlobalMonitorData, &GlobalConfig.ZoomManual); + } else if (TestHotKeyDown(Kbd, &GlobalConfig.HotKeyShort)) { + log_info("HOTKEY: manual reduce height... "); + GlobalConfig.ZoomManual.Height -= 1; + MoveWindowRelative(&GlobalMonitorData, &GlobalConfig.ZoomManual); + } else if (TestHotKeyDown(Kbd, &GlobalConfig.HotKeyWide)) { + log_info("HOTKEY: manual increase width... "); + GlobalConfig.ZoomManual.Width += 1; + MoveWindowRelative(&GlobalMonitorData, &GlobalConfig.ZoomManual); + } else if (TestHotKeyDown(Kbd, &GlobalConfig.HotKeyNarrow)) { + log_info("HOTKEY: manual reduce width... "); + GlobalConfig.ZoomManual.Width -= 1; + MoveWindowRelative(&GlobalMonitorData, &GlobalConfig.ZoomManual); + } + } +} + +int +main( + int argc, + char* argv[] + ) +{ + LONG Result; + + fp = fopen("infzoom.log", "w"); + if (fp == NULL) { + printf("Couldn't open infzoom.log for write"); + return CleanupBeforeExit(-1); + } + + log_add_fp(fp, LOG_TRACE); + + log_info("*** InfZoom.exe *** "); + + // parse config.json + log_info("Config parsing start..."); + ParseConfig(&GlobalConfig); + + // find monitor + GetMonitorsHandle(GlobalConfig.monitor, &GlobalMonitorData); + ResetManualZoom(); + + // find window handle from args + if (argc < 2) { + log_fatal("ERROR: Missing handle to window"); + return CleanupBeforeExit(-1); + } + InfWindow = (HWND)atoi(argv[1]); + log_info("Using window handle 0x%p", InfWindow); + + // make window borderless + log_info("Call SetWindowLong to make window borderless..."); + Result = SetWindowLong( + InfWindow, + GWL_STYLE, + WS_VISIBLE | WS_CLIPSIBLINGS); + + if (Result == 0) { + log_error("ERROR: SetWindowLong failed: GLE: %d", GetLastError()); + } + + // do initial call to resize + log_info("Call ResizeWindow to make window fit the screen..."); + ResizeWindow( + GlobalMonitorData.OffsetX, + GlobalMonitorData.OffsetY, + GlobalMonitorData.Width, + GlobalMonitorData.Height); + + log_info("Create an invisible window to capture hotkeys..."); + CreateNewWindow(); + + return CleanupBeforeExit(0); +} diff --git a/infzoom/infzoom.h b/infzoom/infzoom.h new file mode 100644 index 0000000..eb32b98 --- /dev/null +++ b/infzoom/infzoom.h @@ -0,0 +1,31 @@ +#pragma once + +#include +#include +#include +#include +#include + +#include + +DECLSPEC_NORETURN +VOID +FailFast ( + _In_ UINT ExitCode + ); + +VOID +MessageLoop( + PRAWKEYBOARD Kbd + ); + +// window.c +VOID +CreateNewWindow( + VOID + ); + +VOID +RegisterRawInput( + VOID + ); diff --git a/infzoom/infzoom.ini b/infzoom/infzoom.ini new file mode 100644 index 0000000..cee5870 --- /dev/null +++ b/infzoom/infzoom.ini @@ -0,0 +1,105 @@ +# config file for infzoom.exe + +# +# General +# + +# Which monitor should be used for fullscreen borderless? +# 0 = primary monitor +# 1 = monitor #1, 2 = monitor #2... + +monitor = 0 + +# +# Zoom +# + +# all units are relative to full screen (out of 1000) +# abc_zoom_x = x-offset (can be negative) +# abc_zoom_y = y-offset (can be negative) +# abc_zoom_w = width (0 and up) +# abc_zoom_h = height (0 and up) +# +# for example, +# 1p_zoom_x = -339 = shift 33.9% left +# 1p_zoom_y = 224 = shift 22.4% down +# 1p_zoom_w = 1750 = set width to 175.0% +# 1p_zoom_h = 846 = set height to 84.6% +# +# window is always **centered** to the screen, and then the offset is applied +# +# to figure out the right number, press F5 to put into manual mode, and use +# arrow key (ctrl+arrow or alt+arrow) to manually move the window, take note of +# the percentage values in the command line or the log file, and update the +# values below +# + +1p_zoom_x = 339 +1p_zoom_y = 12 +1p_zoom_w = 1750 +1p_zoom_h = 1480 + +2p_zoom_x = -339 +2p_zoom_y = 12 +2p_zoom_w = 1750 +2p_zoom_h = 1480 + +dp_zoom_x = 0 +dp_zoom_y = 134 +dp_zoom_w = 1800 +dp_zoom_h = 1640 + +# +# Hotkeys +# + +# xyz_mod: +# NONE : 0 +# ALT : 1 +# CTRL : 2 +# SHIFT: 4 +# WIN : 8 +# see https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-registerhotkey + +# xyz_key: +# see https://learn.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes + +# exit: close infinitas. Default: ALT+F10 +exit_mod = 1 +exit_key = 0x79 + +# 1p: zoom into 1p view. Default: F1 +1p_mod = 0 +1p_key = 0x70 + +# 2p: zoom into 1p view. Default: F2 +2p_mod = 0 +2p_key = 0x71 + +# dp: zoom into dp view. Default: F3 +dp_mod = 0 +dp_key = 0x72 + +# normal: reset zoom to normal view. Default: F5 +normal_mod = 0 +normal_key = 0x74 + +# manual moves: ctrl + arrow +up_mod = 2 +up_key = 0x26 +down_mod = 2 +down_key = 0x28 +left_mod = 2 +left_key = 0x25 +right_mod = 2 +right_key = 0x27 + +# manual zooms: alt + arrow +long_mod = 1 +long_key = 0x26 +short_mod = 1 +short_key = 0x28 +narrow_mod = 1 +narrow_key = 0x25 +wide_mod = 1 +wide_key = 0x27 diff --git a/infzoom/infzoom.sln b/infzoom/infzoom.sln new file mode 100644 index 0000000..4a84743 --- /dev/null +++ b/infzoom/infzoom.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.1.32414.318 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "infzoom", "infzoom.vcxproj", "{BF3C8448-6170-43FB-824D-EC7F96334D9D}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x86 = Debug|x86 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {BF3C8448-6170-43FB-824D-EC7F96334D9D}.Debug|x86.ActiveCfg = Debug|Win32 + {BF3C8448-6170-43FB-824D-EC7F96334D9D}.Debug|x86.Build.0 = Debug|Win32 + {BF3C8448-6170-43FB-824D-EC7F96334D9D}.Release|x86.ActiveCfg = Release|Win32 + {BF3C8448-6170-43FB-824D-EC7F96334D9D}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {AEC958AA-F6DA-4E1A-82B3-4CD01D281180} + EndGlobalSection +EndGlobal diff --git a/infzoom/infzoom.vcxproj b/infzoom/infzoom.vcxproj new file mode 100644 index 0000000..eab244d --- /dev/null +++ b/infzoom/infzoom.vcxproj @@ -0,0 +1,168 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {bf3c8448-6170-43fb-824d-ec7f96334d9d} + infzoom + 10.0.22000.0 + infzoom + + + + Application + true + v143 + Unicode + true + + + Application + false + v143 + true + Unicode + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + false + + + true + + + false + + + + Level3 + true + _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + stdcpp20 + stdc17 + $(ProjectDir)\external%(AdditionalIncludeDirectories) + MultiThreadedDebug + true + + + Console + true + %(AdditionalDependencies) + + + + + Level3 + true + true + true + _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + stdcpp20 + stdc17 + MultiThreaded + true + $(ProjectDir)\external%(AdditionalIncludeDirectories) + + + Console + true + true + true + %(AdditionalDependencies) + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/infzoom/infzoom.vcxproj.filters b/infzoom/infzoom.vcxproj.filters new file mode 100644 index 0000000..356830f --- /dev/null +++ b/infzoom/infzoom.vcxproj.filters @@ -0,0 +1,39 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + Source Files + + + Source Files + + + + + Header Files + + + Header Files + + + Header Files + + + \ No newline at end of file diff --git a/infzoom/infzoom.vcxproj.user b/infzoom/infzoom.vcxproj.user new file mode 100644 index 0000000..37487f3 --- /dev/null +++ b/infzoom/infzoom.vcxproj.user @@ -0,0 +1,13 @@ + + + + 0 + WindowsLocalDebugger + $(ProjectDir)\Debug + + + 0 + WindowsLocalDebugger + $(ProjectDir)\Release + + \ No newline at end of file diff --git a/infzoom/window.c b/infzoom/window.c new file mode 100644 index 0000000..b2b74a2 --- /dev/null +++ b/infzoom/window.c @@ -0,0 +1,156 @@ +#include "infzoom.h" + +const wchar_t CLASS_NAME[] = L"infzoom hotkey capture window"; +HWND hwnd; + +// pre-allocated for perf +PRAWINPUT RawInputData; +SIZE_T RawInputDataSize; + +VOID +ProcessWmInput ( + _In_ PRAWINPUT Data + ) +{ + PRAWKEYBOARD Kbd; + + if (Data->header.dwType != RIM_TYPEKEYBOARD) { + return; + } + + Kbd = &Data->data.keyboard; + MessageLoop(Kbd); +} + +LRESULT +CALLBACK +WndProc( + HWND hWnd, + UINT msg, + WPARAM wparam, + LPARAM lParam + ) +{ + switch (msg) { + case WM_CREATE: { + LPCREATESTRUCT create_params = (LPCREATESTRUCT)lParam; + SetWindowLongPtr( + hWnd, + GWLP_USERDATA, + (LONG_PTR)(create_params->lpCreateParams)); + + return 0; + } + case WM_INPUT: { + UINT Size = RawInputDataSize; + UINT BytesReturned; + BytesReturned = GetRawInputData( + (HRAWINPUT)lParam, + RID_INPUT, + RawInputData, + &Size, + sizeof(RAWINPUTHEADER)); + if (BytesReturned == -1) { + printf("ERROR: GetRawInputData failed, GLE = 0x%x\n", GetLastError()); + break; + } + + ProcessWmInput(RawInputData); + return 0; + } + default: + break; + } + + return DefWindowProc(hWnd, msg, wparam, lParam); +} + +DWORD +WINAPI +WindowThread( + LPVOID lpParam + ) +{ + MSG msg; + PWNDCLASSEX wc; + + wc = (PWNDCLASSEX)lpParam; + + SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_TIME_CRITICAL); + + // Create the window. + hwnd = CreateWindowEx( + WS_EX_NOACTIVATE, + CLASS_NAME, + L"infzoom window", + 0, + 0, + 0, + 0, + 0, + NULL, + NULL, + wc->hInstance, + NULL + ); + + if (hwnd == NULL) { + printf("ERROR: CreateWindowEx failed, GLE = 0x%x\n", GetLastError()); + return 0; + } + + RawInputDataSize = sizeof(*RawInputData) + 0x10000; + RawInputData = malloc(RawInputDataSize); + RegisterRawInput(); + + while (0 < GetMessage(&msg, hwnd, 0, 0)) { + TranslateMessage(&msg); + DispatchMessage(&msg); + } + + DestroyWindow(hwnd); + hwnd = NULL; + return 0; +} + +VOID +CreateNewWindow( + VOID + ) +{ + HANDLE Thread; + WNDCLASSEX wc = {0}; + + wc.cbSize = sizeof(wc); + wc.lpfnWndProc = WndProc; + wc.hInstance = GetModuleHandle(NULL); + wc.lpszClassName = CLASS_NAME; + if (!RegisterClassEx(&wc)) { + FailFast(GetLastError()); + } + + Thread = CreateThread(NULL, 0, WindowThread, &wc, 0, NULL); + if (Thread == NULL) { + FailFast(GetLastError()); + } + WaitForSingleObject(Thread, INFINITE); + + UnregisterClass(CLASS_NAME, wc.hInstance); +} + +VOID +RegisterRawInput( + VOID + ) +{ + RAWINPUTDEVICE device = {0}; + device.hwndTarget = hwnd; + + // keyboard + device.dwFlags = RIDEV_INPUTSINK; + device.usUsagePage = 1; + device.usUsage = 0x06; + if (!RegisterRawInputDevices(&device, 1, sizeof(device))) { + printf("RegisterRawInputDevices failed, GLE = 0x%x\n", GetLastError()); + } +} \ No newline at end of file diff --git a/package.bat b/package.bat new file mode 100644 index 0000000..967a172 --- /dev/null +++ b/package.bat @@ -0,0 +1,19 @@ +for /f "tokens=2 delims==" %%I in ('wmic os get localdatetime /format:list') do set datetime=%%I +set datetime=%datetime:~0,8%-%datetime:~8,6% + +cd /d %~dp0 +del /q /s dist\infzoom +mkdir dist\infzoom + +copy /y LICENSE dist\infzoom\LICENSE.txt +copy /y README.md dist\infzoom + +copy /y inf_launch_ext.ps1 dist\infzoom +copy /y inf_launch_ext.ps1 dist\infzoom\inf_launch_ext_kr.ps1 + +copy /y infzoom\infzoom.ini dist\infzoom +copy /y infzoom\Release\infzoom.exe dist\infzoom + +pushd dist +7z a -tzip -r infzoom-%datetime%.zip infzoom +popd