From 0757d174566d22f308d215481350859822bd4295 Mon Sep 17 00:00:00 2001 From: chenqianhe <1278095698@qq.com> Date: Sun, 4 Sep 2022 20:05:27 +0800 Subject: [PATCH 1/4] feat(paddlejs-examples): add ocr weixin miniprogram example --- packages/paddlejs-examples/ocrXcx/README.md | 77 + packages/paddlejs-examples/ocrXcx/app.js | 12 + packages/paddlejs-examples/ocrXcx/app.json | 12 + .../ocrXcx/package-lock.json | 72 + .../paddlejs-examples/ocrXcx/package.json | 19 + .../ocrXcx/pages/index/img/width.png | Bin 0 -> 227390 bytes .../ocrXcx/pages/index/index.js | 526 ++ .../ocrXcx/pages/index/index.json | 2 + .../ocrXcx/pages/index/index.wxml | 42 + .../ocrXcx/pages/index/index.wxss | 56 + .../ocrXcx/pages/index/ppocr_keys_v1 | 6623 +++++++++++++++ .../ocrXcx/pages/index/ppocr_keys_v1.js | 1 + .../ocrXcx/pages/index/recPostprocess.js | 65 + .../ocrXcx/pages/index/wasm/opencv.js | 7109 +++++++++++++++++ .../ocrXcx/pages/index/wasm/opencv_js.wasm.br | Bin 0 -> 260588 bytes .../ocrXcx/project.config.json | 58 + .../ocrXcx/project.private.config.json | 8 + .../paddlejs-examples/ocrXcx/sitemap.json | 7 + 18 files changed, 14689 insertions(+) create mode 100644 packages/paddlejs-examples/ocrXcx/README.md create mode 100644 packages/paddlejs-examples/ocrXcx/app.js create mode 100644 packages/paddlejs-examples/ocrXcx/app.json create mode 100644 packages/paddlejs-examples/ocrXcx/package-lock.json create mode 100644 packages/paddlejs-examples/ocrXcx/package.json create mode 100644 packages/paddlejs-examples/ocrXcx/pages/index/img/width.png create mode 100644 packages/paddlejs-examples/ocrXcx/pages/index/index.js create mode 100644 packages/paddlejs-examples/ocrXcx/pages/index/index.json create mode 100644 packages/paddlejs-examples/ocrXcx/pages/index/index.wxml create mode 100644 packages/paddlejs-examples/ocrXcx/pages/index/index.wxss create mode 100644 packages/paddlejs-examples/ocrXcx/pages/index/ppocr_keys_v1 create mode 100644 packages/paddlejs-examples/ocrXcx/pages/index/ppocr_keys_v1.js create mode 100644 packages/paddlejs-examples/ocrXcx/pages/index/recPostprocess.js create mode 100644 packages/paddlejs-examples/ocrXcx/pages/index/wasm/opencv.js create mode 100644 packages/paddlejs-examples/ocrXcx/pages/index/wasm/opencv_js.wasm.br create mode 100644 packages/paddlejs-examples/ocrXcx/project.config.json create mode 100644 packages/paddlejs-examples/ocrXcx/project.private.config.json create mode 100644 packages/paddlejs-examples/ocrXcx/sitemap.json diff --git a/packages/paddlejs-examples/ocrXcx/README.md b/packages/paddlejs-examples/ocrXcx/README.md new file mode 100644 index 00000000..919163e8 --- /dev/null +++ b/packages/paddlejs-examples/ocrXcx/README.md @@ -0,0 +1,77 @@ +# OCR 微信小程序代码示例 + +## 1.介绍 +本目录为文本识别小程序代码,通过使用 [Paddle.js](https://github.com/PaddlePaddle/Paddle.js) 以及 [Paddle.js微信小程序插件](https://mp.weixin.qq.com/wxopen/plugindevdoc?appid=wx7138a7bb793608c3&token=956931339&lang=zh_CN) 完成在小程序上利用用户终端算力实现文本检测框选效果。 + +## 2. 项目启动 + +### 2.1 准备工作 +* [申请微信小程序账号](https://mp.weixin.qq.com/) +* [微信小程序开发者工具](https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html) +* 前端开发环境准备:node、npm +* 小程序管理后台配置服务器域名,或打开开发者工具【不校验合法域名】 + +详情参考:https://mp.weixin.qq.com/wxamp/devprofile/get_profile?token=1132303404&lang=zh_CN) + +### 2.2 启动步骤 +#### **1. clone Paddle.js** +```sh +git clone https://github.com/PaddlePaddle/Paddle.js.git +``` + +#### **2. 进入 ocrXcx 目录,安装依赖** +```sh +cd Paddle.js/packages/paddlejs-examples/ocrXcx && npm install +``` + +#### **3. 微信小程序导入代码** +打开微信开发者工具 --> 导入 --> 选定目录,输入相关信息 + +#### **4. 添加 Paddle.js微信小程序插件** +小程序管理界面 --> 设置 --> 第三方设置 --> 插件管理 --> 添加插件 --> 搜索 `wx7138a7bb793608c3` 并添加 +[参考文档](https://developers.weixin.qq.com/miniprogram/dev/framework/plugin/using.html) + +#### **5. 构建依赖** +点击开发者工具中的菜单栏:工具 --> 构建 npm + +原因:node_modules 目录不会参与编译、上传和打包中,小程序想要使用 npm 包必须走一遍“构建 npm”的过程,构建完成会生成一个 miniprogram_npm 目录,里面会存放构建打包后的 npm 包,也就是小程序真正使用的 npm 包。* +[参考文档](https://developers.weixin.qq.com/miniprogram/dev/devtools/npm.html) + +### 2.3 效果展示 +![image](https://user-images.githubusercontent.com/43414102/157648579-cdbbee61-9866-4364-9edd-a97ac0eda0c1.png) + +## 3. Paddle.js 框架推理 +```typescript +// 引入 paddlejs 和 paddlejs-plugin,注册小程序环境变量和合适的 backend +import * as paddlejs from '@paddlejs/paddlejs-core'; +import '@paddlejs/paddlejs-backend-webgl'; +const plugin = requirePlugin('paddlejs-plugin'); +plugin.register(paddlejs, wx); + +// 初始化推理引擎 +const runner = new paddlejs.Runner({modelPath, feedShape, mean, std}); +await runner.init(); + +// 获取图像信息 +wx.canvasGetImageData({ + canvasId: canvasId, + x: 0, + y: 0, + width: canvas.width, + height: canvas.height, + success(res) { + // 推理预测 + runner.predict({ + data: res.data, + width: canvas.width, + height: canvas.height, + }, function (data) { + // 获取推理结果 + console.log(data) + }); + } +}); +``` + +## 4. 更多 +* [详细文档](https://mp.weixin.qq.com/s/KBjXawSfBreUCsIYbUgF-w) diff --git a/packages/paddlejs-examples/ocrXcx/app.js b/packages/paddlejs-examples/ocrXcx/app.js new file mode 100644 index 00000000..4a0fdcb1 --- /dev/null +++ b/packages/paddlejs-examples/ocrXcx/app.js @@ -0,0 +1,12 @@ +/* global wx, App */ +import * as paddlejs from '@paddlejs/paddlejs-core'; +import '@paddlejs/paddlejs-backend-webgl'; +// eslint-disable-next-line no-undef +const plugin = requirePlugin('paddlejs-plugin'); +plugin.register(paddlejs, wx); + +App({ + globalData: { + Paddlejs: paddlejs.Runner + } +}); diff --git a/packages/paddlejs-examples/ocrXcx/app.json b/packages/paddlejs-examples/ocrXcx/app.json new file mode 100644 index 00000000..70fa27e7 --- /dev/null +++ b/packages/paddlejs-examples/ocrXcx/app.json @@ -0,0 +1,12 @@ +{ + "pages": [ + "pages/index/index" + ], + "plugins": { + "paddlejs-plugin": { + "version": "2.0.1", + "provider": "wx7138a7bb793608c3" + } + }, + "sitemapLocation": "sitemap.json" +} \ No newline at end of file diff --git a/packages/paddlejs-examples/ocrXcx/package-lock.json b/packages/paddlejs-examples/ocrXcx/package-lock.json new file mode 100644 index 00000000..78f15f9a --- /dev/null +++ b/packages/paddlejs-examples/ocrXcx/package-lock.json @@ -0,0 +1,72 @@ +{ + "name": "paddlejs-demo", + "version": "0.0.1", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "paddlejs-demo", + "version": "0.0.1", + "license": "ISC", + "dependencies": { + "@paddlejs/paddlejs-backend-webgl": "^1.2.0", + "@paddlejs/paddlejs-core": "^2.1.18", + "d3-polygon": "2.0.0", + "js-clipper": "1.0.1", + "number-precision": "1.5.2" + } + }, + "node_modules/@paddlejs/paddlejs-backend-webgl": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/@paddlejs/paddlejs-backend-webgl/-/paddlejs-backend-webgl-1.2.9.tgz", + "integrity": "sha512-cVDa0/Wbw2EyfsYqdYUPhFeqKsET79keEUWjyhYQmQkJfWg8j1qdR6yp7g6nx9qAGrqFvwuj1s0EqkYA1dok6A==" + }, + "node_modules/@paddlejs/paddlejs-core": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@paddlejs/paddlejs-core/-/paddlejs-core-2.2.0.tgz", + "integrity": "sha512-P3rPkF9fFHtq8uSte5gA7fJQwBNl9Ytsvj6aTcfQSsirnBO/HxMNu0gJyh7+lItvEtF92PR15eI0eOwJYfZDhQ==" + }, + "node_modules/d3-polygon": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-2.0.0.tgz", + "integrity": "sha512-MsexrCK38cTGermELs0cO1d79DcTsQRN7IWMJKczD/2kBjzNXxLUWP33qRF6VDpiLV/4EI4r6Gs0DAWQkE8pSQ==" + }, + "node_modules/js-clipper": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/js-clipper/-/js-clipper-1.0.1.tgz", + "integrity": "sha512-0XYAS0ZoCki5K0fWwj8j8ug4mgxHXReW3ayPbVqr4zXPJuIs2pyvemL1sALadsEiAywZwW5Ify1XfU4bNJvokg==" + }, + "node_modules/number-precision": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/number-precision/-/number-precision-1.5.2.tgz", + "integrity": "sha512-q7C1ZW3FyjsJ+IpGB6ykX8OWWa5+6M+hEY0zXBlzq1Sq1IPY9GeI3CQ9b2i6CMIYoeSuFhop2Av/OhCxClXqag==" + } + }, + "dependencies": { + "@paddlejs/paddlejs-backend-webgl": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/@paddlejs/paddlejs-backend-webgl/-/paddlejs-backend-webgl-1.2.9.tgz", + "integrity": "sha512-cVDa0/Wbw2EyfsYqdYUPhFeqKsET79keEUWjyhYQmQkJfWg8j1qdR6yp7g6nx9qAGrqFvwuj1s0EqkYA1dok6A==" + }, + "@paddlejs/paddlejs-core": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@paddlejs/paddlejs-core/-/paddlejs-core-2.2.0.tgz", + "integrity": "sha512-P3rPkF9fFHtq8uSte5gA7fJQwBNl9Ytsvj6aTcfQSsirnBO/HxMNu0gJyh7+lItvEtF92PR15eI0eOwJYfZDhQ==" + }, + "d3-polygon": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-2.0.0.tgz", + "integrity": "sha512-MsexrCK38cTGermELs0cO1d79DcTsQRN7IWMJKczD/2kBjzNXxLUWP33qRF6VDpiLV/4EI4r6Gs0DAWQkE8pSQ==" + }, + "js-clipper": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/js-clipper/-/js-clipper-1.0.1.tgz", + "integrity": "sha512-0XYAS0ZoCki5K0fWwj8j8ug4mgxHXReW3ayPbVqr4zXPJuIs2pyvemL1sALadsEiAywZwW5Ify1XfU4bNJvokg==" + }, + "number-precision": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/number-precision/-/number-precision-1.5.2.tgz", + "integrity": "sha512-q7C1ZW3FyjsJ+IpGB6ykX8OWWa5+6M+hEY0zXBlzq1Sq1IPY9GeI3CQ9b2i6CMIYoeSuFhop2Av/OhCxClXqag==" + } + } +} diff --git a/packages/paddlejs-examples/ocrXcx/package.json b/packages/paddlejs-examples/ocrXcx/package.json new file mode 100644 index 00000000..4e40298a --- /dev/null +++ b/packages/paddlejs-examples/ocrXcx/package.json @@ -0,0 +1,19 @@ +{ + "name": "paddlejs-demo", + "version": "0.0.1", + "description": "", + "main": "app.js", + "dependencies": { + "@paddlejs/paddlejs-backend-webgl": "^1.2.0", + "@paddlejs/paddlejs-core": "^2.1.18", + "d3-polygon": "2.0.0", + "js-clipper": "1.0.1", + "number-precision": "1.5.2" + }, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "ISC" +} diff --git a/packages/paddlejs-examples/ocrXcx/pages/index/img/width.png b/packages/paddlejs-examples/ocrXcx/pages/index/img/width.png new file mode 100644 index 0000000000000000000000000000000000000000..02b8999d35b5242c99ad249f2331af8c1985f595 GIT binary patch literal 227390 zcmV(_K-9m9P)DTA^n-aDq zKSOa5*+fkGh1e_NEu{2%E7pCdh?$c-uQo_>mL%n#0eRpw3irMd2~*}3A`%i3&%r>I z@|=JhB*Mbb*=Wd!6l__tHsc8}l%c$qUMdvZYe#;vRk4YMg@Um}w6||WnY+u8^b9^IcpFhQHFSbgMb(ew$@R$Xk*WjiliSO@mi9lnb=1yi7Wk*I^3El(O!v*C@8Zyg~F^^S$t@fS6VFSTP!Yk!6cUl5fLk!dg8wx-4h>$q}-_7Mg{!B zCwGX776&Jpg_zay2#Lr-DPa9S6EiKQKg4VCTKrk$im+0UVL*jlgQF!WQtAx+OtkKa zeAIE*9uXlH6g>{pgqo>c-iL&6-iDriaq!vkVv zgH~B7+$4*#T!YSlCBS%y_61 zV^V2TMw=tr!BjAwVFMPYh9WF{imP08OQ6RhfaDpCo1~~871i%|kk!2ED zSq})zj=V5n(KhCch8hG?F|E#=&-`I$D1~1K&PYYJz-Jvb0s67p(*Ua3X{b-sWO=8; z)Uv427p&9R*JvOiKHBmQ6$TLzFMlHWJcQI-BoQYIb6^r=K&E_RCo9^mbd?Y<45aIw+-Sa`8*L!?DX@!rZW<5i3xf zS@VSVJZ;FIfv_W`jDQky%dsjfItw37$kc8bzgi7`1?E0ceilRqHP=|ep$5*(WY(Uk zqvrZ#;xd_$;h_A2ZgsSZ2go?2ND`GyQ)=kSX=s@kKd9;MAyCs>|4pUJ{GIzQG$$I9 zfIY=N7FU;*X49S0Yd@oa2VK$aX0lH2G1tkREoA1tnDPMkGcj0O`CG+EgaUcYHRTYD zN_r8bh5#6X?AHcVK)X=e0Ze%=ku=f`_B@tqJJ?LO4QJbJ* zVrGUh4S*H2VQmGPw&{aMr{L2REa4K$bc1P!&l{*m<+MOMDaT+SO7mg~HRNJ*CtpFpaLK|NNawU(9%`l6M=UdlnU zXD&Sz7NIR$UKkVqH6@&V22*y*<>{u~{!#`M1qp+v79#U9JQ%*(Pp|Q zl+#Q?Lfhsp)3|ZaW9E$rCp_fjbA~ePg6))>*zAP4IfzY#YvLkl9K_f0`VM%AYCz%k z@2WZrDx9LO{0S&YlSMXDTnT`>(&Hg2mY8b`6{E_cv#rsn4(u=#l|2Fol#U~NS*mfQ zCLsi1D(BSuZYt!#0);be0NzKcLFx|qL?%Eq(J>8hL%Gd3WXN38!qJN^4Aa)ki2OZX zt$EIWU6?2HrIkfws(eE)&!`5INQelpMO6m8w?q0v7lX)L=%t)y&~FwdI?SczR%P)8 z^-T452 z<(N(`+U!vnU)49CLONkqZ(7p4QP>S;a)|8JWeCpUYq?N!EsSTO(dfvPJrsF1CmTd-oAq!ao64nKqFu+RVJxT5J9J@ShL)gt4Hg zNMX?kphxi=eyVBJ3>gDdK~;TOHgOp?K+2>SI1j|=X+OhmH0VZsT(Hy$GDhtq05yb) zmd-6q$})>)S_wVfS&-D{DH-~jPSRUz_ch)c1mkcS%#3(F8SXPSTEr=#lr7I(B2!ZM-2Mnr9)4qmELh@DOKS?M^*uJx{#EynAgCrK~=3sVnS#c z?A7SrjSOpxox(JpLT%dI#waavfW)W5iMBxVH9k8 z-D<4JS4;&U1qWw!tM-ii_pf39w z?+-2N9(sgE``IC`q^*CFKXQx(hs6Bn!ELwH{KRGoman;tKAW(Ctf@jGfuz?5pR zOm~Q+E#Lt^1e_Q`ID6`EmSB8~xne5Q%oy{Wd^_1u=g^V{K0X)cL_GzXNhwv4lG3}d z8Ak;Zd3Sqvj&-1oXK7Je7rfGCFuWC#66yL74_DQ$g;7hb1b4o!O%*mtQ|5`V;FBug zRw&kdm`RREf2q4gHtPZc9n+7kc{5P5)?O>>>7HrAG(@za6&>BDJ`6od6WWjv`Ct)9 zby%t~e^Rm*e%;$v*fht$%o`uFV^vU~z4uvvNg_Fji-YS(K>f!>;b14-n(k!CTOB)zJZJ=u)vz9fAxF*JWZ^UaeTlM8+yxh}l9|WdhJUL-#5VqaO^A;vwPz`#COxOsq zm<#KpA+=X9pxFKPAv)eZG^_&pzFM`1LpeETEsE=?<@3?xpC9%HqiVOe-#t4%`J^kv z%DyCg8Ir8{NuiQ>1OJ)m`TvUeiPypxJ4Ga>L)q;>2_yUhK_vs#k%_MndX?SC?{|*MYYMaV3vsu(L(=8*r*RqCB1Avr)4iWXYpp*YTMJkH z&;SA+Mx=CR=mbi;l)NQUZQx8l6jKiGObV)l3fVh?IY&62!?6^Yu;{BA0AnXC9vEwj zLQ6*+9+t$+#O8x-*MXy0De(^z5q-p$6vbXWQoLl*@`LnNtn*+<9d3H#;f)cwqAr&x z!iq*tYbzzlI9UhV-l7uH8StPTla)gH2IvmG@f)wwv)&St5 z?1Q_x*{&c1ZDZjAWV==VQ1j5%ltbd@7)en@eni z{~_(H8&GhO$R$(|8eH6{HO%~R4Zu2EtgU&SC05%Z^3hyvO4 zZVrCBRX=*(dy#^Am#c2H{TXvKC?Y$ik~KF}u-?K*FhuVPoVo@k&f}+y*RTnPK9G^9 zROPnOrWAAb+^pnTCw?wy;nZc$=Of(82W?nj(yExgQ-{B$9tE8#q{`l0K#wWJH=b$! zM_6BE=m@T}QTK^;{q74=AAb!&4@Y&XK?4(JKmJ*$!d$92VG#U8bZ8Lbsv9N_ve^eJ z#h3>A)iO%p|8n?56yf;#?2XXL6UbuF6Vn7z3qp4in-2CGaulPCd9IXz|hyANEn{EYeLR1kb~QHQjta zTOp1?&tL{WHvpQ7AU=Uyy>f~@=gP4&^3fG0QF#nRttQA>gQp!w30~nfPa_WIQc1UB z%55VUQWx9F45YIi<>3-#t{65#xX*N(TZvbn94%6ji{?tBIkHoy7COdNmdCZ5i#{T}^ zWX-JpkET`SlT^~&;WjD~BATVSlDax4MY1-PwhE}MEL=hM?L7DFU%H(Hj6S;MzG<*@+BDY0U9tF8Y7SIPi7Joz5{M@aHza{N?P`rK> z0%iTjLlN0qZlaIFK>GAjL5yEo5`(g7!j=U<-B>)B6>Q$^AWY?^ z!J}phOCKd0YnE~QmqIq1y^Uk7kVxz^JJ_w}t@5EoV@GNs5Wny)Vfpy+HQj~ zBsh^!ORe4J--#&whpy}JL!vC3Rk4kkLbRTzJ?QA_i(XmPVzVJk%lG&k`hI%2Kg-WQ zShQGdOM=Avg?Qyf%y{x28uVLw__Z09pi@(m=LU=-n|Hr>V#OS>%tittNZA&0R$e}= zBn|1q;`z{t$Bt~2f5-9QpCi)ZB_w;3&v2^|-AbCDsU>E4a2v57$l>6KY{ihMzCFm% z2&7u4WEYk$oXETEMlc6p?)LcgXhHvK6vPm0WNqj$IS$RMy9d3Y024N?vQqe)L6#Qx zGLwidkEGb~=b;fY0R=C9Doa~e80Xo}jCO3`5`SmlLxuDW7!`f-_9W3B3vS_X+maC` zQ3mHQcR*y55;ROkGf|w5ATf(5aGDwVh%tso0}h=bkAiF2g9Q!)|~9ft}zs^{bkoOE=Bvcx_I7-)0cNaDk8d#m1HkBE(`GAMfRE_ z2~CJ!@kvAQqK8q0X{LS<)0gH>W^D_NnQ*NuNLAo1>yaq-qjD5>Z?eU=-z*Ng_jtk& za*e=LlOeXme|UB_%s&ANOAo>&nhOb+TGncCrym<+jYVEr)S&D5#YwQ)%F{5#LDMnd zvn!RP%De9i?<)O4B5gZ;MF(zhD8>_ZvCS!;qxo7=pkszXA{cWKnG*5}YqLK6Iw^|T z!4=dOoAk0KT%2Kjg&*XlC|KOR0n>U41ZROlaMd}CU06c}N{g$$^r;zht~-MYcK~XD1SUqdWH`)V8bmFR zkO=(%2Vj$luKE+wz%Pi#sEjk#GaGdZ6UH@Qj#B!#jfR5&41S^}*FF(=Wg5O9gKZ&j zC@glI^p?$bGCY8~7t=IAZ8>@@Eb}Y0ipYumCAR5B@kAljC3>Vd#(@2;A`{t5M-2{n z6RSyOipU3?rA_CvI8qQdiD%kQPywOtV9QjZ5m0(cHXxBLM$Z}Guf0QK#PzMhJg0G9 zxL8#tKlzdOH8#P|jD?_PGdA$D*7P^LGIJcGD#1@gQdO4 z^%yGIF$B;joAk-%7{n&tAhAP!3YbAex}ZW;#t4CbvMHf@@}6^!H-0DTzC~b?kL~ z_ZFX+SqLRjtSrp+r7Cc^(1kil2h#!=p|aO+MvE^bfHP+%U8=0ehR@NN1=1^FzrciJ ze*xP%nW;c*R=w1S?N*uT49RZHb#ax4dt(zkwTIAutz0% z83I8z5y`8W3Yt$Y_^To&X8thgZ9n>d1wha&>&YCH(FHVip{IrD=Ff-R^SpQkMX6JL zWKh3AfX#tbu|I6Lt}@X|J;*l~US*!V9W)Bls3kad2NO+-pMCE1*{*2SL>~|YqeR4O z>EUmxFAMb7=$DYA?753uayy1i8B_5buqZoXSV{n;kyD~x83ZXw1{mx(#QlX(PRE!T z^hpGM7gA}mnTr626lO*< z_g;ud1Xn>A+n^V;Enq(n4+SAI^ia$I$1nBnhuY#BUe3uE2bK)s>Bp2|c0%>y#TjNP zNfhOj%qoJ^tdi&nVT#`>!g$E){BW z!+trj+>xPwW@v&l|J;^Tp5Kg8d;Xvx%sjsf3N~dgFL`ct1AV86#_$|9qU$Axoc|z& z7i{(@bL9G9v)q4Wt+Tm*Q2J#Xox+DkZ)1N7*3Fof%5_=}kPyX&IfY4XDdtxUS+u*= z)&+@|5R|f)us{NGWZ5P;_7fE^KF|Y{AxJ#Umc;7cR#=_%F$7!Gnf%!_$bPGpQi_1x2iBr7_sy-2DSt^uGW z4lZ{vAXit)VqVK^e^`6TY9Ck{a{-50;FQb`B;lLn{vQgk%Y9{YtGpaF=E#Rk>n&&O z*iJCvbvZm|UMnIK5M#Ga;s(j*i*Q>!3QV&_&G+Nqkyo~Nh*q;~lmQa#>pK$0U?;D} zGzy-ZW0ZlWbf-l1D7O|L z)9@}xlGkW6U+LRJACj6evp;u}{adqH>f(CNEIGf<0MU(O8J_>-MxcL|gxX%_3!?4z zy;pPap;_UAeU(w1DYudU3a_9Kk zk!Slguli%Q)v-Yj9NY1tiC+?cWEF8z-$$I7iGk+GZwf`(xEL_Jz(nh7zd?2ja%^4OPXHVO6Kbd;0wiFRs zuvj^Smf*cX{>>$F>0U$PAYP(XmF-y+$G|&K$Y>U#7u(Kb5Lb3#(K$?)kg2Tsj6_Y!rx@f*sqU_R_OHOSW5l<4^ehxN9JtE{MRzW3>S8P}(RPj4&d4U@4 zL0qC=*O_DlI}wOfRoWm|kp%|yKHsNcoB?d_0;K*8RqFB#%@2@uGhh%g>{ z;Xmy|m8{q~URn)gTh_(2U}&C7g+R=yyse=d|M6++!qFoUVZ1iiLjby*9N6kiOkSyF zqL?@sXp?-!N@Q0Kb+wvMZ%PjQbTjN!$C{aGOYUshelQsD%5#=8n#tTmw=mcAkY`~e z5nCaArBVs4WeYPi+-2n?=}gU5TkSfpGuO+F6+)&rAy6n`F;H7WVGpQ0U}ut@yKpDr zx7rKY2l{`*%qBwZpzzb+qph1xNAS_M0dR%*N=Mc+QhCugZ3*_>{-z*k1BP>Sw?t+m3^MDw(u&`d-c zCL3pb>#`ZY(K=DJ3D|Xoq&9*9j82q{oEjI(It5l$J?AQ1GWm^9bQdat)Od*5_TD61 zZnMb+%PL~VE3>N+g_7el)c4w(VwUT81y#)YDyORqR?>vE8ErL0={P)yL2{T`m{)8h z7Si}!92_Kfw78$QVMjRQ1vr+0vFj-q(&b0$D~RG&+D~yz$a8R_R)X#rCTU~xcU;y- z<}h*C#tXHYL`Xy^@5wcR1m_xz7%M%zn2*f#>&eC|!KdTq(%qAo7^$n10%eyS>m^JD z;(ciZ5v}I4*ALL*HUhmW_WcD=Y0Q8%cf&-BGz4P5SKK%Bg*v#d>3%tjuvA`RM~L;@ zaxyfbl9n3f9kL9>Oe@T=`YKx_Amagug^4pq?&%7RKy(Q-u9Z6FK`;seYP(ACMb__> z!e?p!f>ZZ*203w3*R=nWG@9n~E8hh3f9E8Vm&G*cryenZrz8<|UW3KQ%G}T}hlS3f zXe>f|@-{J!dTBBcsL=UvvWcV$3)83}Mh&$VJqf3EALz;2q8SL<+#I~BA#6mU5h`wH1_KE?M8 zI+44qD>%yUZdi)gJ~A_r@X?>llfEF3q5}dtWIn_`j4lTGu?w|3>8gEDsy`=?$YP~O z1Qnczel$xl`WP#5J%oHN~a&dpGzI?#?iKzi1=d% zfrxH}pK5zhe>Cx0Eobmw*nIL@5IPQD~Vb1w3;JoL3stW*q@ap6Q>yA+u- zTWft*-iR8Azv4sU#d*e#)h_ZgbnS}OrX&#b!as)-cV4H#b>Ad5zF7kjca7%;{_JgP#q(NV&gN7ZkXL)SY~6Ky-v&N%KQO>-?WgZxF+=s=oHmNhMRVI{5_t)x34O0s}XuXdEVv`uva} z@S;n==}TO)bvK{~R<6T(Z03|&+?w$dKkfX!p=A~ES>Xf{avK-eXs$k2c7EPgt z1i|@+B#@t0foX_+001BWNkly@FIt7!6eeJAC@dVt(<*-p#NvHf#he#66M+< zb9%5vAE}!8d_N;Z-8UOPaMM#+N<^E&lTk=aV44;)oDJD-;=S|ASFz|g<2~P#?}NgH ztAHM`_7=B{5g_9!g2%7OnT|DUW?NAMJtZziG8E=y#iWLUu@$!p zjjO!db2VIgNxbARF%hk0@lW>J(3wZ7E*;E-Yl$LlFeA1Y91aafwYsz7Azp1=mdjzA zo%8oRg50JA+;bQ}1x&Y`BEmmAbB2zyNcjJhnM7z~G@hE?+(gxvLWVa`yXmoE2}C;| z9(p}zt4Cbg^HP8YW?j-RBBD!q%iv6Kbm|^%;umex|B!zx%3+-I+=PH@6sIYmRje;O zTzTuBpZY=U2xhgo62oc^3XvH1`t^rj<9m>z@K%_iN4c##NAf60oEmYuyc2ImwdKKP zZ^vli6f7K{_bL==h?&UrFx`L%JT1~=Lf{wL1O^hz{z{0ms!ByG93E?S>O^!CfFc>d zA_61SD==ks1`HiBJ_w3(=C533_~?x{h&uU}REGX42AA1}H=gx^~L#9R?B>x@?>5Df^;f=Kf+& z2V!M{s%K}7adGspYqUzgKh7tKkE z3$ac1ch1)ChA$6*0sS3D%1dJ{Yc0F-#tDk}0?8hPkYaCaI+bXFaGZ!J-uETQV7Gz3 z0n#hembM?>Bz{Ynkl3<#49|3O*>#kc3thNE`y(QWKOu#63R@BbCN+Z*CTQI?+a`U* zgaB0ZwwA>V$FjJdMvz7nN8E|QVIRZ{BgsWwWb==iM7H5$($m<>kQ13OQEtx{Azk|y z-18u9Ri2y?j*rQqnX1c%*ZtswbaoC{!KNvq%dnx$=6L-~MCEvf;6NcG1v_iUnmDtx zoKRs|dDQANDPU|1nSfLBfl?x*|1m)d)Wy6aaw<)b*}YI*Cy8CCYIY~sEVC;uP%k2L z^s=FKcKK*?z6GmDnUWuG=y2~BTrs_{m9@q2rhO<0(V;&{V$g7LQV)L_Dlb7SRW}im zZ*+>{0yC3St0zU~)CE z|BCnEzXF=gYcHR7F>=tPQ{G|}7x+@}%5z6Yyd5)UYCkzi<{SrW!Dq9(u=2u|HG|&fNh0oC{7~wJDe8lPUzbWJsWN#$6YM~ngztVhiQNB6`iUw-S zH3p!x`0i1vXOMc_rx4}!Xx}>G@TNimR4koWA|hYJB3Qg0o8ilh^Ty7RrRO6ItA^ZY zC-2q1N+*l}0-mc~0Ay(}r$8KzU+i?3yc{Ncdz=W`WCr6d06akCW!*MW=dV@dO%_-q zAZz0A)a5l0HuGAG_kXeI-VU?T1TFwdY37i?{O4Is#pg;2YseHtzvFJb zU`ZQdW?pNF9jhiAwpnX|G}#<3OL7SAl7bpRUeXD7AQlD$b0ZVYKRIw0;ce6TZey5; zHtVulk58P(*7xl;gTU!sCg*X&JSCW*c zQxxoTu{Krsr&(UhQSJb32mbnVD!Q)q1h2D=Eb5fU=IIbrm)&@$MF)*yuhH`N68#I@fr%5$}1D zIDxp-j1_xS1avXGDbMHJj$`RVl>w%Mfs@?gOdq!R z)i)Q(w~O#v6pFdQd^{SilU`R@^DAFgFkw8o6I7*$f&GecV&QxrnrAkcSvGcaX(7ln zY@l|kK(4ge;`Tq{8AeiqW&y=9isM*cjXg>&2&$ zx`D1gt$>uQUuEo)n9_<*VuMKZ5r-TV_i1UN-1|V}M`Vt=B?3zn#7*xbd2aygGqw2P zoKt_93;~?SzE#3{fN>i4W7AzcFQodkrZr(QhitAx{4V9Kgz%xQ@ljl}+v>gOQINy= z^;fBdK>2lypuX|*AEv83T)ID3k`B{*}ivGtT2g@V>>j z=dVSd#UJLiK7VrM*p0}95fjmT>>_Q_B652@Yu-K}OR@{pWF4n{jJOsx%dEDDz<~r2 z*0hO^WTXwv@!Q_920)}|W^My#T8 zvoqpA#PF!35Lj`MW+<}hLoH5$e^!4ftr({OBpdxh3_+)Tp6QQndTr1Ms|pf_i4&3i zLy~KEnJKi|W=wcclS0?wh|#ZsTs<)6TS^Sbe#nqW1aCmb!{-Yy83I%fV_*@%=|21j z(8a(YH%F(n8SM|oW?vBz>NCMg-GpA0NKB48pX)C+;cmuHRn4|+yKXmqA%m(_M8aAC6D1O1nRIo10fUS^eN;6 z?KJ1GZ(t#w{K}AX;tC?n!-7#!qOUd|AD*Td)1SOBXRh(ky5A;Oyxwz>2%lfqbR2bE z$(BIBy7wG5P+QoehB!!>->(GusXS7nEVW5i( z_}7xiAoFcHE{JHlHLmacYwf81csA(I z+{O5*#^n_I`YzO>V!BF7ZL2I&i3Luyn z@85t7h=3!*GjrmT4<)Y&y}`1#oaAVp@gY4UC;UyOtLln3g`e{j0giQ$vVfKZTmDG^ zRQ=Glldptm%iceV1CwC3*FH-yOpST!Jw=#>?N6-0<6(l%n|&@-xK}JkbUOBcR+>%` zC^Yh?wq!O@;B@1Eh&xY&S}i16f>$Io<#M~LVs(tk8d zspt&CUJJnxdr9Kmtj9yo_aP9HQ57Qsefx=h!5HEI@vP@fHVpy%J*>Z^R^dOa{~YWu zZtUB%&6Lfc8<*qz%!h3vbw8RuXA>~28?F2_XAr$0J>g_tW!;OTjegm|k>{qZO=!Ux z6asd0XV)3Kmx-Ba*RX2Rh*N$_7kvKa7T!NwhnXt6v*UMYbF}I$+X*z09jUy3r{J^TXV@KWjkFpNL$94tONkg>&vE3x7J-LKNhU?tN zKx6_WrkuH&A6uI*n&;<{z6J16lrbq-JM^_}ym+hddbl^(AJkBt&2 zI}|@cAk2JZ{GJ3f;#thN27ZJpE#9KpN+$4a2MBnj(Q!Zxm=OJQlx>irLUS^+>&}mf z^oCYu{wzEB`p-uz+HnM$*p+9e5qu#11ao6*=##;Q%#K_#5gc=*Gzp;R-U`sKNbBRp zqc%q_0P&-@S_!+7Iecgx5p)1R!&)mk7-0t5he+L}F|*&y)EheC%Z^081(81N+`-yj6IBB~FU-r5lu(~%*kqlwRPS2D-VZjBpQHhvuXKd0856<23t+n;dt zE40O5RurH0{{jt8HE-C&5>{8^eGWlNYnZnb88TT*^yH6lwFc?T0^mxyK4lq3EFFgn zjPJ}e`P!S^{@@}=a@0f=`&UIUC_;8+SGvu>F5dVl2Lsh(b_GT=-k`_DAs34kdZ-FXOAn|eicx@)aGhdrH%h~dR!rg@ z*0S#+=)E{M$o)N(c&@h0fXX60V6Ptl#zz><7Ng-w;SkTD0WH@!xa%+%~H6Qd2B2CVXkX|)YTZCw-A#@uF65uv@I%GBZ zPY~|(R$nmc;&Cu=YJ>iU`6nLG^oI?I%_m0{X^aP_Ot|GN)|TRm7$FkdYXUxU?B}fm zv3$Iv0g+hp5%)W!3k^XRL5um@^w%L!@;wa>;uzw-1ocvh5FS!gN^lqYOK9#0&NG>b z;ABjhA#hiea**=@c?0J;>v_^ZM8dR+EP;#78jAId-WhG-NCcjiHcr(aNvl6j!gw2z zR6KZim8nZDH&rYTM-?ediy;FN;E06v_%&L9vG<$^?S(y_XGx5NOgkEjfl{(QOBCk|ru7nBk| zV8FxZ%#7TLY`|p^^1$6sy}OG|(CzA$rvoSG2V`m4!VQWx;1f;hnT9(+mLMeZRq?tI zqS1Aow`+kJ^$4(3;*`fUSVo%`ka%x^8^!cHsu3JS&IWj`3^%QB7G7Y< zT!GsT-;#$y564=xDAmd&vdTd}tPc?>hRkuIXvEGxx9K+XN#>q>7R+9RgziVf)m~ZS z;e*|D1VRXk-aC3T!euIoLLn(ZfB1~pZWlR^CR5z;^f_mq$1=7RK5ACpSa+Nav5?Y* zn<=3Z-B4KTV&_JaMC?ehfwSVb9TgFgU;KR*3d#yW$tm|fP#sTrow4Y{ONn0q zKc5v2HvpumU7*h*&you+#NN6T-Y$RV!$kgOEBvGAm3pC5o~Hu8{Afb~6I6+%oaVAV z*p0G{k(Y^8bYjhN3MI5glU3s2P-r29OpW3(F%MS*)n=i#GsE4Z{mBy{?@GZaM>z{` zUK4$CqnL=uE)ka{zDUE%p42?2RG82=v5UH6vOx^Bx%nm{5!OSQ&NJ37t+Q`KeNJEJ zMS2FkWQLs9w0%V`Xng{Y9)WRT1BD(7X6PJe%;grEqy_K69A> zu2$%pa1IQ-#k@Mve3?W?vy!kQM7Brvq4n%?*q~#iUP)YLl)y(1Img?6+PnZ(D@kgZ z6$>HpNgmOa|G7v2e9ZbW>$mMPZ(x|}k;iEZ^*UT&XLiwjz7vec*DggwRv$`rHyCMl9IqRAL7^ph6hSUaJiPxKSm@5posjEU-Q2%{I8wfH$GJI zaZ-sLQ}a-EFo1k~&|Ykt%_%wa5N3(j<8jJERFd8>ny-~q@ck9TlrEgfAcltV2}{CE zncVqW2hATBvbDa)G|-0$gkMKFH=9|Y>_t`_o070BU=lhxr7Ky6Ze4`J8Zg_U`h+9} zzGStBZ&fV%Ls;BPb7grjt9jdZ;Q)cxD1DEI$*ut(Fl75fPXmmFdL3H*fHGTk(;Mf% zN{*glytfbKA=YYGLO=QP*7ZM{PS1pN20a6FxX2c}{Yn9!y6j(b!k}mH>$iGy(?&pX z_)E{?al{7Q@q{r#Ux(8ab2tQ;?cREsI4t#u$h$%RtNE}u`NJIof*?t&$9&W*zGkM! z&hE7%1cK4WsXcEItF0*E>dEkgG;)s_-xb~LqXs4tS}t%wCKFL?{#lC_>juzGKMhBc zyUaq&NTQ*`(}{i?!NW|q0UCd82#E~Y6zH#i1Ba5k5RPRGo%Ywpok&ka4WO-;qHH)L zi~XLi?SZzv%Mc-w9WEBm)rvhp98r*~CURir;`CF50SDY9I(QpQ12JQ!x~b;9y1D8{ zZoNsz)&W(aVn5^IteXA4Gm(TAV|0TQo<~aH+|y3(yU;STp04gJNZ5Mm-%VQNkj(gU zsR>JcuhWLf(HO&A?@5vea#ILVP;HH=Y^2022S$%!8S3i6Xzo<3260Xuk2=fSm80hN zq}f#^HTSguz-pG{LCsf~E1Y--e~rjfNY7EpClnx6Y|4@`Dk~!E-k1L!@KZX~Sm)>d zbIQY|;Ole>E0cq6<(W=WP=V&y;($wy_6ncAjolkHoaxu?q5=e&yR#*oKKQx^lFdl) z;Lyb8k0_^qIc$|83E~rG171{{>^M?i9{BR8qo+>FQwLAK*&5|(2pBS)3Rtp1L3B@z zH;4dx*fAbqItqlypT84RtAXy&Dy6N6-Cw6@LzEqt3eAF4qyNvXz`v2C{fnu4Sqgjy zv+`vTNj!Q+i#QBdPE35`UqSnzl zkh4NbY*~GHm3(nrIn5t*XIaWUTE?R19r|MvIFE&!CR+$3trQaJKY!GOEooWKfb-m>|SqUKEpX?vOA{HQZ2@H)|XOr0P}?1-aP zC{Pur++GpYD@*8$vkA5X;Xpx*ZF^|hHcMDyxa7ykWTww2$|vO)xAZc#9s#OI-9MR@ zEUg!KWQM7U7Cw>UZ~YWUx5e>dnorNJn2c^5*u}nZ5L#zm!$>u(j1a1IQ&^9A=6t#2 znPxuL^b&g^;KQf2FTgi^c&W40qrZY!Pb3)$BhBoF)IR8|NgFIP2YOrznI!lcgelHs zJs}GzFMj@-VhH%?@7et!{vnToe(b(y@3S^Oh`~rwGj8DxpPZLdBSh@Sw3?2Sx~i<* zq<-nrw|*AUgY2DB9qpTr5Ycpw*)72OC#aIDpq38;N^~^+6o}sY{uiWHK7`g6zU5q| z$EYH*TvaqQA*Mx3R$;mAUl-FF7eB;ARK&~n5Ze1;A8W`V*?of(QWz3jkMNbxXxQ&e z=m}PYBdNG`4ITsF2}=H9$RO2;6S!wOX!t|FPfv2wK(?5$_P3jVn<5g3HS7qgJq$?W z{f`)VNpGRdncf!)xg-na5&K>|Bqdln>s$JYGlvJ!ALAXsg2aqR3F zTg(rsF&Oqp_-Xfui7LV$G3l8Hc8Kj-3MDCZzejPw3b~yJh>ql*CVR~ygn@m_AAiTA zRJmGAKf-E;@?M}2e0xLnRdNj9NDX1!2sj$?5C~LK#Fkjxddkcj2oAWmU!Mt!K}dWE zzgwEi7g5D%G15&leWN@_;!fd zwjKqYR<<7aW&uJq23H6^@rOC)yL$0xC3#iN-C#^0`L@rZgU>#^46$z3=RCM9qKG75 z*#P<48|W|f9)W08xjM*r0w>?pue2h^s>s@Zj_V>IGI^$0rUDWZ*+Rn@2(BWE>T~Z}>(@2U zLF^aYZ*v|*9;})0AI6-BbcsZB-}rV$I%5Y}Z_(gj$EfO3Z1C$Sq6aKecaTK~PXX>N zI-SVhu}Hc$E+gn2nyw5v3H~-B@Xu5JUqnHtB9$j|q$Q*v?4QjIc&)uQv0Zc?{Md*e zmgQe)+-o`@$QNqs^bb;GTRjijZecf6!d;EqLE)HV>5ao+6g?V&^%-e*de`a-x@PFL zheSF0hYBP(TTK%Zuk>DjpLhTtP#$`&*lf_?R|jo4BXS$i2tO+Li~c6msAl3O^KtXt z*ja4|VUs|?{G1v-3{dH&>&wq`6fQIxtaN4MJ_(-4vQ3%%S@c=_`IvFfNvEu2<_7eC zz|+4^inrPp2yI26@)O!-PA&+z)O==xJ*l=F&5tZUf$Y$us=2P4nV;>pQzoJX`xR~5 zi5(*ra|bR!3q{AtZ+*=l&>z2x^UpBD>feR`%(f&FHNCO74SfU*B?BAIvmgA# zQB=mYn3+FBbi~GL2DNeqD4C`#X(JH%K780^O$@gx<*z#hjGcf;Qro4wv_C{&51CP@ z_y}|#&>96&}VqlRqQLs=mjN;}K4YwMc7J@UD+GfqsH;0BWa4Ul+bfxRcM4Kg?{4-_*DZ`kxly!l8>)l(){19`ObB+tsThCQ%Oh(xxn z6|+W$fB*m>07*naQ~_*MMv(a@_K*XC)*}#=BtwO>z;4;VYW5Tqo|4(ew`F7YW7ZO; zAe$OPZZ)5*Lz!uvvf?ewKG;5vY}5|DB5<`hIwiW;am`39(NX0fHlN2VOdD$YNM*>e zND@CFM@v5s!qg1%WyY$dLD|dHvx(OJq)wVFxp^I2jL?>i_0z=dP;)eYyj{UX1V%xQ zAyZ|?jh#lFuDUv=N6*wqib|Mffkd9$XijYX3oni;<9M%Es;_C23hwGm&#iqB%zl1% za4MZt@NEioM=N(q?`Zs;@T=ptjUG^TAO6TW*jpJLXgnW`Bv60rU_AVr6>+7lQQTvU zRiP9Hamym(=lJR!6A&1f?AISStcXb;!~0T-aTmMs@FaD%3r#$&!KWVoD)FUVa*2=6 z-f#hk`db#!uVx^$ug-=AnijWkZL=>pD6u4N6rHmJGE1Hp=6vG;J6njLMZrRs*l(&l zX>(rTXe+AFPuH-h_`DZE5$Yd44A$~gD#SPpx}DCOhKNJdq6Yo2@YSYw4>`te#S9C2 z?!%h{F-*h3*dE-DGZu38S8dK>UTdu-i{y{3A0pW8l%_4(A?iYl^;Y#15QkIQxE;VK zDC~&%mVeZ+bSmVceZ*s z6%nsb{45eX(II~_DScsu(J6pF^hMFaBs+n~F;;nqSrW|Jd}@7dmtr#5Y77F+n6L%A z%(`2=j7Za5?_%sJ)q!tIGK>|R^Qj&K!2-F+&7|iBHYRWgOzdo?dh7{CKE>Z5b1AB# zQ%H)VzZlPNHnpWbYd~pP_;lf84FZy&n&|tZl%ZQdw0vvON%E_NlJ=MRzn(5B*O6r861&7 z>fTKjh7ek01>;&V=MSjBV65ub@nfkcY(%&-iQ|6JWEq$fbe#{K`c+CAv`?GvJWCj6 z0?#1tpBxj6n!eUCsPhq(kK7q1-gt>hV|$!p&+9QB;c z-}ONB_!0ib2Nx;^WvrJ|g}07kA@x{wi4~cd7yViES+v&vF#8c0WgG=Y{NepiG?Rz* z!=MNBIFeTAv(8L<6N2Lt;*b>cCO@c+YAfnH3aojY?y}G0QTqXbPHS$J5|iz-YJLvw zb&w;15Tak0v8xA1L=rS<)BIsV%5uB40yAIqhaB7^Qhnq^Zl2WCHCL4L2%>M6tmSwWM!;&2LGi1Flya-z zV+poQcYAW1dib7%22HM&#GngKMKudxV@IT?dL}(K19*CEuAc)BVYY60Di8nJyP%NG z8V=qwUaP@q0mSr@zb>+xd{0Glzn>WRXQ`N#mQGgm$(Uz!E+l&=A~*Rq@9ub~7^ab% z9MX0eg;P-**|8TQUr!6H--U*n@Bz(GuOE$icKjMq6v_q)N3u&LQ&lg=YtC>H#jITa z(S_yyGR;gFjO|7yVm+FT8sWHA{IM*_@I~x zC(aAO;RTQL1Lxs8dM6H84STr@MB}K~7;=T&StlOmw2;nu3Zte)MR_$2YZJLK!i^Q( znxorxK(Hm3$P1;|&|>DrB#8HBK;vClYaut{N$U~EA>59=5)de1P7pfOkM8`jUKC4)` z;I&f4^|FL`*f7~3Y?EOL^Q+9hTDck~w0rRGrL53mCem$+KCuw|Ok*XUv*GkcMK@UWu1jX`SG44UHcvKZ%Z+xhT2e#1{$I9H)1NFW;gQxe02? zv%LqPoyyDOX}Gz$-Bg&t5k1pW6e@JlPy060kqi6%9ZK30YnK6(j8VE=!utn$#&pga zp!^3`X3k+FvgO6)^dR@?`p^4)AT1n4n#HE|i{A$mH-ZhNQq4#`xG41E?D#iZeTyYt zrlC00!l4~UPns{&Pvf{ZH+KUP0Cj3d^uC~z+@U3?E~hzw2$8-T@=di**`&y&4Q0t7 zMQC)uFNY8_y_U^irf{e*T3`5Zo23{lZ-9!xaI;H!c+=?S)yMnLiR<{-ZX>ScL=Wea zwM8>461Sov`Po{jZl@WA4xk6fL>^8YwBBJZka9fFI<7+7(L7Wbt_^;uq;itS*e^iI z_tFFH>3SzTEh3A+$u+oUl^Uy~yq&m3E>~;Ohj}f#LS)$y*fIOQP7@{)*c31q^lcg= zY42eGQlca@9FJWtPC_sDAb@V1Nx$vA1#zO!1INR_E^LhXuCv&SsO!~A^k(k;)a%T~ zy!G^3{C^JhmA2?_i0x#wIA+kk@Lu|f(K6Uy zs-HFHCZaqE%?^$@I1t^By#GUtoyfNvW_T#j$hE za^(MN*`grXEVZt&CJ|b=`9#71=%gDH(`I75^Il4w%|AAQJX>$nmYi`(Xf1dk+OTcz zdnA9dC*VM%y&H3op4KBg?Ix|X6@b_(1q{};ioo^JLqo6NQ$}Hr4rnZzha@FNEGkyh zskyW4r6s9~-;OC$DRMEj^(i`K1IYh~m*6 zNq7_gOT5Gmv#0)fe`9<68nj`9u*w%|xDDV8#%=`UKqIyZOL*9p$UL@9l8fIMe`s1> zm9Ek=WrIsZ^T)q<7nFt-_L~L{mUpsvOUAVg)tZq7-oLJimrS^}>Xe`(xu!)rhg5fN1Iq)7UVgw9W5DO4r5RU!!NM|ACcwi0geY^#_v7(y! zR$I{%fRY#3*; z9^JdsswIbiXNxt~l~^Bas-OYmwsjnsIWC?m?vcTIByAmVQyq7z9qB~EsXNS!D{gdU zBE=a1)K}`KAeo`=cI=j##Z!qYCUY+LSg~)nd$ydzm{ubMVmX{FV&}Qpn*&ZqBc12_ys-A z?epFHHUBv-2b5&r!TP3nmO_H#v((``%DcXpBHLIT>hLDLrR|=%jETNx72ijY`+taR ze0`2A58_b`=$iXXZOq*y89i&oSNGISF^mIZU=)>kyZl5aRX6wC`Ym=ki5&C}Jos7m zO`T`c7$(%(hFo;h8nXD|f1H2FK zkiGR~cY+!GP!rK834b9BQS7MKFXhgd1f#Jat`YYY`bWO}8y|w_P>}uC7T$1OrpTPo zpm8ayN)9kdoGC3)AyKaXjuk^QP!KzjnRl2B@(`>{d=4>~*JH0Qgm>c0{9CxP$l;DRM8h^J~|+`bA4_@{q0>)vI52l znmgx)(jme{D75{McKvYdP(9|cY${Vfwbox^!a;ZHN{5gu_J&6Go)beig)0R; zKl9__1qSN_d78DipGskGWsHJ2Cq2vb=fvn7m~TV>HaS4C29`bxY4cr{sK(LJ?evvH zPs3Eb!~I$9ZzqSo)G$eyWCS@6oAfZCNudi^nmHGgf%un^&zZkWBsgXErI|L&SD zSR3V>S*C)wIG&&}e;^W>^aS@&ODms#%bbCduNkxnebt$FTq0xclw7>Rjgn$GB#WnY zZ8h6%r_7&4OtgqTxqn6nrOd=c`S)zA)S_U>gCQHL0Y-TU)Qvk6`H@OOdRnyAnc28A zupxUh#4kGd;95wx@Kl)xHcs|k`?Z#zq7knnq^&0zNmI6*^fW$a-vOsa&7mnh+X4^F z-0+HrF2ym8oXH_Ra0a=1lZY?a7DB~oK}0rREwI{9sN_IC%#N9S+Tb3g6fvG~K<>gN94Qe|p6oi1a!^Hy zy*x-b!YZJFdo^WUdg<1Mgd<-Q{0eAJ8U5kyHw*W#N=d=q(;dzRmIP`eadss<;y)kK$k1u11_BE`O385vxh*33vT%v z;EJH=p5Ft@d!64x+#a^ATA}~)r;*kuE{(yYR|0N74yDjKlii<6J?WSzCN*My#XyL* zWZng&tuZ1?*-4e9Rer4ujaKAzgj6j(Y42pCqm7ZKHjsgz(Biuc`dBEp9P&aaONL)( zXgzSU;f3<6i1_GR-O@SS>}=8u^*7;#&-!QP%E`$%o*^W#%3&F;6kP(Oa`6F8e=;_k za#FvOZhp^fR{-hZ79P$U+%ohyG$F5EuLs)|vYfg^R7r|qQt6V#{AbZ;F)#U8&_m3d zT)0Tc5ocl^*ppC95(?>L{R7~NpZb#4njAnlg$$J!Ioz9R`3@Re$483P{T-_ik!%!% zm^i@r*$fe2S`K-Vv4?-{* zCn39%n7!lr*&=LqJEIc4&3Lz44E&f#a4fJMzCv^kDPk@&*BJjCl*h*}TNuFZ0YWIo z-i;e2uk-|Ab~Faevp}LWshUV02uV3!qEVxN!a)n=Yie@IC$rdPWnVUdHHX~}gJS30 zI{S4iEc==yFSNZSpK~uP#kxTcuWMU^Z{jxi(Bg2XL<~Lf`5H+%q|oi+{)_4(waM5@ zPyeS_(Gaaz7gmI_xTi4I$ibphm8uwu^C#?#F8#peBsWR6bAXNrS<@d9v^L)3BTzHB z4{PM!XoQBtwa?x)AVRs2GmC-tT*uV2nYb+=r*?GpPi834iC(yKLzj5(a8jSmFK_5k0uJ zj$m{I#G?P&nid%CG_J*XDS1Ccb}U(?bCf`2?`@Dzv}$$Uhj~;*I*d*65N0EYr5r3{ zgNTP^UqYbl$xX2|hp74XDQ6<`o1=t?7Uz3ZFlX{1VxrHY#d`j=EM74^XmuJX)th={ zwX;gf_FR5sCpWtmM?s5AuN&1-Ps>{y`>;j!{^9ND%>OOny03HsqeF)0ltIu$8NU&RrA{h$e@`QDfNTxi-G~6%(jEa*lJ#D%Z_udNo-%TvQn6IH6}4kcmN9Yn`;kZ6dN4{d`n8;6PCj zHcoED5z+3?Mw-c3G^9X-g8#6C@Du(v(S_o{V;xk0{4LhQG zboj6JJ;o9x9}yuklO$$iE}!L%f3#m7k=e>TY+cq$J>|Ss7yA+n324<=hY!C_p|!H7 zt0rLn8NRkOdL0pDI1~BKpY48+14~W=4L8yd*=q?A*_7NX@y`J`(9c!7j6yo( z1%Y8Hyq&r~T90%1y!^n+hu8opatKa|zqRZzHPV`3BB2czG_xaA3u88s$d+x0j*0vz z|A1g416oA=ASyFMZpo`@oUxw5$$TtD{!<=!;I(s%j3a5Bv2z0d!7m}pF~#SyoGK*7 z&(lu+s{2=!taV}m5&)6@jgI_SV;j5HI)PL}aZ_EBc{r~x%1g>t7H{%AswWcjY;$PE zqBv$()vhvDSFf1^Z}@9oy^3vV@AM@h6Z86fYTxTT#gSC1OdJ3;>P%p~BKwXp+|C#N ze0Nfh(v?4*E^r+E=oOc_1lfY3aH-S^IzB-9aahw?N@h$J@kkhYnG4NH`L~Br@Xyo0 z9>&G(v7D&ow`o*>lEJ;k|H=@kThT{maej;s&mquQU3XzH6~JgCREHtA*=He)e<-e0 zGsXW7XgWPD26)^G6?Hw=lNrm?gTuw&yEm%#;wFc`ayfLM$&njlICR3e9Cr^M1eVrN zk&u~J&}9E?PMpl+77mQu$VUCB?!~lNbe8Mm8ykY8gKrf_wls+S*VHh9b>Z;4O?~(z zW39$|41uC89H2T*!^}dbRq}@%M~G?D-6CReIASjV#pXuwqCa&o%-QQ=)}MKO^moX8 zFNH-mOdJ+Q)sPY&j$RYJ9TP3MF=We@Ekv?o_2cPT8qHQV5SRSvukCa92#K{-Ch5kBK3;=Gp61xx67G3-fz zYtR(`6h}kLv9pXBAZO@QB^6Ml{d_Fnell_Ql!z7D6JPA-IbaEof3SGt1)_NWD>MJ( z(e{PP2Q!GK)!sR{zNe37+u-M*-#+(ht5RD1sF+}Ic&n{Y)%Mc0qe=fj^A`*GkRFPZ z1AY`v+=rrtKvcUS2~CM!o(qj@FFcTql_RE+j&|dHCXPZ=)xWksjoNZL!c+VNq9BRw z{%L^H-&tylLFfiaoyfaw)%b_$7cpL9!1j2+5L1S))fd>2a|06o4Rh1UlE5WC2l`Y$ zK0g6vz>!FW1WqZQozrtyYx84nc5({^|KT(a-(@iN%oLm>8i=#GmKSCfR9 z;eJeUj9L`KTv$fQCP5}ruv?W4pM=IZJPI>r~%kx713Fs7&ey|(-ZIWXjRz_fYZ|3&H z<-GZ!&Vq8 zF)HM^{2N7-;Qh=~8nT2%YBG!s*>kFP4+OHB6d@|IdTrYqDD=c9KQ@2^hhz~7@9%c* z?FBwB(@D7y(R3SIuU159Z}T0@OdlVxWeOu$1S&rXHKDTGguIlXqEzE7{o%{bz9}LX zkW4TTIU*{<0Zz_F*-yT~Utdt$=o|+k>JM(4(%~)MM+hVr3;c_8;UPppcehmV7DNb) z>QPbPYqCaCz0a2*8k(E~q0xoE$p%!NOG@uj(4K#@GB3w+#D)6L$rFyVdi1N*R;G@k zgT!b)P(Vk7wb9Y`JauP!_zM>rO$5ZeDcIizN5BEMV}~QT(^a|cuGN=O_naLz4b)s` zIy1t#gzG!*bM(b;%tZgi%*#)KvRt7*Y(nRkr@$W}J4oMJR6&(y5M8OdPNpBJFB zF)%nAGJVE22-@_?c)@FA>zGVk*C7caBzs4vn0c*5TrS=jiO(XFD~+KEB1cig4NjVJ zaX%Y`-LYZJWl$Jf>6Q%p+lQbq8#2S^){!W8^X@6(z3yz|e0Iy9lx)R<0c4#dw$q*C zZAp)>5*oclW&^MME`g%=qYaGtjjEw-&eZiNNqjc@mV2iRKTL$j-gwV#WmLP_Z7*Ut z3{bZ>QOV7|01Z517%X)1`Oz6=0IY<|QRdltBalmQPky^y5)pr{mAnar-lqk@zuQ|n z^XkeWc584~?&kYHH z*q-*^*Gaa47{M^*Cbx9`eyP{lg>EV@ySoRHpf8Q$Ket-Y6Ng#P?zs*9YXNtGkc*M` zae{qX|DrlQr?AxFDVtj=S;e!dRaNo^X3cNV~;z0Rvi{H+ZjM8McUPv|PsX?4_3 z-VU}q{*^w64Y5VA9Y(K=ccWNx;TECTFh}HOQJnSOSBs}cQIyhd$hc7IGOIH9h8nSm z2p*Jt7J0zyV}_O!EnYf|=sv>4yPe4n)-e<)Y=FiS*3kHaVWCC6xcJR(z^a*HZt^Ac zd>z^M$cKqUPkyU`Y!~d9i`>V6a<`Rl#OY;H z@rJI%8(^>=m$qgy+UX!R7+!w@nLIbLQT~H-0ZtwY@Nau6HV-8@DB@rAF8}}_07*na zR7bSnWb724BFjD(gE1)wuLQwTu|Z*m2skD_r_!&I1DULDl1r%j&tv>@!v9tr6$V6*8kx;wyq$q)$I=IKQP+ z*lBMdo=(nlvtl-&S^Pg2|Frbq77QPacA$C786iSg-eyf6TgfjG2$@g5*&;;D&~=G&2`wNtWp9FfP6@O)SS%Nsonu**)Gflixz3w~lO&TQvfJ0fOS{H6~?WXrCDB|-%+W(~)figT=WycyDh zQ6Y~lej_6B#qr@obU?_SX})!yLv`W6voRXH-Z7vj!TN=2Hg&r?7`-5LM^m0NE<`_D z5hQJ4W_vT~r(Kr=3yCPMw{|izPZh#Z>rv{?Ut1}0|8aJwg+RvqPx3q`VSnXzHt0eG zLar0gmJlxzkA8G1?%t-_aB3^|T#Pmm$t%JMBxKaJ#VbtTuOe#yRjN*1n>*i-kB!Dp z!49LA%vs2a{gldoL_TIY^;CVXi%sYoTppDdGt0(12J|nOPt^|9+%1sDk+k|jw;mE< zOyu_{NJwC*3K!h96D0zB*3#3!wV7tX z+0JYJP*}8h=*aAQ=k!9vvsaVvk$Tdw++T=G9apqvLm$r;j}4cM%hfcJ*;yw7&~Sbo z08P{mE?LY3OzvStG@nK6W|?xuM+&_-wOV;M`%2Mb_S@YnXEK`z=}PNEU`D{*Y->Lq z+axov%pN zuYIkxKA->hztn=2Wk}+;NyPGcK465Bx@ll)z(h3n+HspL_McM{wx2*+VZC`HCD^a~ zDQ%8%wH)()M6x7w=S0Te({#b5&Ttm3G-Ks<#CKhYzF<*bsn zI9CwMes(%prDHMwtek*|w#v?j%S?@In1*YanVal2Q%2-71=WLCaT&}z9m!bD$63RA z*-q_|R$I8|Rrm3>Q`#L$`%wo0iyKMfQroX6D1Q=W^|%fq$sHIvPx4_t)&F#LCoFj; z51&}49d{4(B8F;hnsBGER!aj?o;M4J+#MqA=zmuoM|iNAT;GviX-V z^9}fDfe?uRMgr0N52uk-csPJC^P~6#0N+{RVJSR|*oxs8!o@1vf!I~a-c>H~OHsdEJ2QTa6NIpRRi9m>eo6(Q)=ETVL+rtR zY~6wk!P_5nWo+vbKYpFvlVz)9Koir47F0uzm35rXUq#FlL#Dx^n6;ACDv8 z&L#-VI{h?umVuHMH`d-?53m1fRovmG4U4Ab5VoNBtR(s}jM~_4GYkHX)s>6&||$w|#4a00upBxKFdi-+-Teu|H7HkZ^&*@qqQUMP<2%gN+KgG2aa zE01_GFIQk$m)4Du6%nq8ODUvq_HHik3(uPDKBOBOU_%$y;;X$*|5AD{um8LiAu4N! zV*5R-CrwDFDm{wW=pL|@s64WXqeoHG(43h8D91WJ+&#HnJRX0GCxE;QxUTV!S9`PR z3J!jcdxwS}e)}RAcnFMAg_y(Q6ehrt;T4AZ!5q1b@LKAWfmWm;Xb_cAf_A=RCZNSdoqp z*}5lF8IwR)pqJ@77jOnb*59keKs;USz!704-a0~{)n1zNv26`{U5v^L_u$G&eN|4 z{jJo9rys(w$ndpwi>qT0#RETbq$f$zDVu+h+9-^SrK95^4^?sw3$tyqN8B&uYBv;A zhtD!Ghs(>@Xufaq49*l#9a2>3_umHY?QsSwJC(y7Dp2jfEZ4tEUESbVU!TA#ld-3L z2-~_qKNSfSN<)g6N-w-^8zi-;k5;Hr(lU%38D2Y&-6tZEKN7Si-Jbnh2=p?whC>@& z-n=0|QSWCR{uAkh;6*N9n8HZd_ln}&DY7#?YHoG=T+y59sOEdZ^)r`a48$*Y3&Ud& zeDY@<7ryfc(ATHrU~c}2k5)n^|2i4{zp3HiJTPjf<8-s@KgA0HpH>2~@^>_KJRJwmnTAJt$po zpYxv^E51N*>b6dMDN{~axy`2h)Z795_Z=~WS;H4TFfpVxEI2%dj&bB^qWbLk$co$S z-IFbPoo;GQhjq=|I?(?=ao@V&+=^-oruKRN2kyxE!EJyzld83PZ@X80$&6DG5e8mR zQhWUCNm{=E9Z7(HMd~bjbtvo=CD<-*B4#1>6+shIAzF?weHqhDXozBUtFn60+kS+C zw#fHvq)IEt;s4EDi^!R961?DVUVkpRKVqWQ>^T)fgZ;91;2Kw|99@I_2>=LN8g31#FGx{OLNX5f6|+Nle?5(&Z4JAW3hwdiN5 z&dn{kpq-g2I;?F8;2iDvX7+(|CXtAA>rxDgnCEuci#<*f=W0N=tVQlauw5~l96%In zIu|F>KB2A|heg;xMda}sN_V91;U64=R+<52BBVYW+igvHKUsC=@gsI8kc#idBCm+cM0il z&3rE8vr+$!6!)tYogY^rm7L(b`y)57LPRedK9BxP6TDFH-}9}NR5D^DT8|fBBM5+ZPvS#G+!V!wLc>?~ z-h6olFgE%d)0Ej|EIg;!{LdGz9ttGAh#0-bXE?3mM+umg9pNE{b1AO9LaI;+oWd`H z6E^i^U~TZ13?I{|0Ka+bAzRa*50sp?;A~4e%#v$^p20%l1#hDBz&uI7$h1_gIngM< zkPl=R;=k5EXzY>(K)+bf&yclL{-LsO)Zz_}q?BIcp8Z!+LXd|{pTy|PT56F#utNeu z5ZoA)?x|;iHj&MR0U~Obb)=CXLe$7OB~Fl!n)-Bs#;+s5N}KIYLHufP0bL*{ zvsE-s;>=ZV5`jCt^{_jl7%xgr$q_%g_FTnefa5dX`NJCLgJ`?|jV}&TJKhKIT?&^2 zi5#;v?EAUQBQ?8TvdvS@Ht;AAt<8M*Dj2NWIU&`=V07@19&tzNxtR~?2{<~O{jwaX zT{CLjX9Bb>jLKhUk;t^7Re@R^sJ%7hW9?QEmUb!T^rL<&&pAl}xN8r=V5fvh%MN0yY`AtiV3lvF=h7a+^ky>@7R03TvQ0Fy8MW^B_DS}`d?#77~;le|}9uMeAkGedJw zKVi!;~~sPl8GxOA3=5QDT0T{#~!B%^lv-Xy9ip|IyKJ zS_#hFGuHzrHK%{RmtTjdszIR={~$C+R^@@eZW2?P32OZ_zHBc}DaEf&Nchjij_?;f z^^n4O8-5x)&bJ=n>!iH8bi!xyq}cZ5b6^y!`J~^NnE7Xsxr1aps zxPopiJ*U}}l0>MUnKi|x&y%=9BEp-f&1*2%TR1F#MEw#_r=x*>ZiUMO>;b+ARqMyOoLT}$ zKOF{iw5R9=J)|dR8y3d>PNWq};&W(PF8{Uyag?3Ix!11Ry*1$rDYA0-B#!8adW4$o zqfr(Sc5N0~YhQvA-Nbk%zK%g*rY#GAUx+1=7<>!Xd1hvxi_!Z!MP1h9r!Xi7J!;*1 zvdh2ckLhM|+X)AuMI`UBkwf4e*!)co5QxwyOSK1w*ROze!~js~NK!C-wKpRhrwHp- z4h_XgWC-C&ZBkDA6Bw9w+mgWf)k19=d#W~ z?D}D5i;2z|`T#nQEx-NPtm*Kp*irtNON?fi4xFZT77Y`?;@zvCgFAXt6GvM#zXy~u zo%hCwGq9|u&V%0O!Njj6uf?yIyy6VL(Z&+nm-7@75y_tP=?b0yAw?XpwHEoxq1l+c zw8iFe-@Y0VO%};HGjVIdL>8!*+*^yyx6mRhdkuIb+M|tBw_|yqfi?6|o_3Up>?o%M zY+#=NCR0-)zCp)tjTGOTVOwRI?ln4!-p|2%w=@I;LD?m);RW0V5WS3mf;|hy!fNZVB2M?J^ zUhLO9kx-m6s!A?(c$E_ifKgOy>ZfP00%az^YSKBq(%cLhdq3D~(+A8%I}gA>OP1d~ zu!Z;Lw{IvV^T2tru2G8V{?x}df5kmgIpT8saOXrIn=6u_3Rd9dvJ@Ctd6)ABrugj; zTIdA*mBR>{`6i0$eHFs`zj6!{-kQo)SbJ%c~S^__g zjwqBpucYbG`8((@ALh2z%1c&V+SqbSqi;Majfdy0K>VSq$CR{0H7?uMH#_&tM-_UY zupKjX9;)CaStNGXMWHxN$wMXvgE(wf6k}BiP54FfN|}#edSF z*};;sNYM9SZokq5-}u>2snYBspFT~+<<9O)tt`LQ!xc+mASv28LJWjg`v>lC3j+06bDsDbRyt_~TEV1L^z@Sk}_HX#= z-eaZbLdT*MvBv-)lD+c?VQd6&bE`(nk)FBD_LD}sUhB1%yzKHaf*TCHaL@^51P`Ka zCIqezQV*oO<{g?%3}KaQd^R`qs^?-iFvdyHqCbq$N2S-re)AA>>s&q*2yy(+9EM{= zIZMSXrUbF<(^(Gm;#5Q7;L~)0@(k~JtC30$v&@Hq# z?Tm`CT^fmbDg0BdLZt^sG9p4CW;j7Kx;)%;zxxT=Fd|$6&S$-n!evm zEski+0MA_pSgE;+N+Y+|YKphIR@Sqwh>6J^RDtE|P-#p|s!qLU2@sJRM;4ohT};+% z?8Ajz7Lta%M2e{#66iWAx>CCQ2f9UL7hFo6Gx1HT^?XP%y$DLqzFws0I=Nj27i0pI z%SGb2WHQEY5x+=1tq`d#&auOB1EmicROl@K^cVof`+?B6Cobohh`sY|0G~c zKUxIU`S@Rt%ftN44MVH2#a#P`GCx*I7rq>|k4mZS@EI^VkZl=S$!B|uEM?JI7W7xM z;vtA11{2oLfZDwx7zyYCd94QZ9Q`BJ(gzhm&z7Q)1{wCxq0DuS)07BM`v<{$PIBH> zj`!Fkxm61QVG(DuC4}$wtx{LK$|Nkgl;U;emPG3gy@Zz6dNIFV8vl)S+Ux*T@u}PL zI4tD&$%Wj(Cx{olG*+`nvree!{iKK!jf1EL@C`-TDQT^My^)e*s>01w z?&dLx&!pSpgS`d!ku#G{hNZvZ|AcA(l)lN64MfdeqnwFrC(k(muer=lkp4!wbxMST z1E2$AoN~hBM{AsBGw%AVL`&9Sv;B0jM^{LStFWVAmBF;3Be~D z_w17mDBIvy!dqEImtYL_Pyn!CX}fcbA^OKJY$rGyfIj}Ubk-=z!a^l8@4Zb$Qpdi}$biH03B_td2#jsZ zLaZ{-)O+Wcn5K=@b#k=Vye0b6?0LT*WvL6_Q2_aVF z*Uge@UYm=u39!RXSeP21=X+@};{@2WaFtT|Ff;SQ>E%TKmGUIOTZ+_tY3Dv8?5cAD z%~%~k(qgvDl)`)IJI9zV_t|e>AX?DpzJt}~$ZgNSz*TQp(SM7ZKXI&1HF~$Wh>z=_9@z)3=$c?w}agx7TB;OZ{AbtlR5te;~Z9(NL@j zB3t(>hJPfvx|@`{2Ni$W)7i8Wmp?y2&bOhLzv>)5<^;+xXTYa6eiy}9wPgklv<(7X zC{f3I`w@;f{kYr_x`&@@ocWcUtVxk>GrLj22ZQ)k;xY<~(y$L-MO^rM{oVzbu-iD+ zFxj`mHSh|3E$=NxvrqFcmr_9R@~Jxpl;u1bUt|-dd3(oMY$^W=&&tC#gYZD=$8;+y ze!Wr)n?A}UP8|FWl2@H%(E&I)?eR|7R=S7E9LN@eiMU@3vCt9Uze1<-xu+kPPbRuJ zTi+B^R3Yxf^&u)aR*lXnz|(J%VYTUbalr2BZ`$Do%i_xiGKzleFaCukX&7?wb5wMK zRPhhj@+SYM6(zGP8{@J)=^}yUR|*kE{d4sVwG=Yu;>G_v<^>Q9Fmy3FrpcV*%t8Kp zjzp7Mfcre_Wu6Z$TeI*}VYbo|c(j0+I6?yl+8~>6v>+y)lKG1)I_+fkwTN*eSk$*_OgKc8Yfg@h;L%MYBEpA^sZL+Y_T_3tYm<^E`>E5g?yU^-()OOz#Exk8J=a4-L%jsoqj*0g*jH-XIwJ8XX~| z@cn*A32Uw9{~!Q;;behR@(e6)i08tee=o`L=~mC-ASxU&=9(Ok9fcq_2a8+7#Wf__ z&(aIvY&SrRFyDzxvTelWz4P;X)~P2Rq1p zY%WwiQM(?-$c3j|JuW@XaGTxxorQ~Gp&d=(1@*~LEBtQ;bbRYpRKs|h7iv%Yr~+ys zbF4^KC*K_*L<{mLw9#{sIn>ZYo7GG~caPKKAfIPT^IHyyf0RJgWes!XZm$cu#m6qF zOzOfi`D{Rpi@Ikgxou`0cg7tlCJpgtghoM*`0kspmGG>(KMKR2(hq+5$DP^Bd2oR~ zlyG-3{})oL`bLb1#}ffOMHTdqx|Qh=oiBUw%!5ik_zb`_AfV@Q09wsMb9<)t3Mz5Q zFr)rgU=V^5acDhRJ8Z;%I|0fskC6beGn%+?7Ws8seY~YjHC5qJt@JH%{xGPd@HYgM znY`5hS+qRfm+k?uX?xFT*J_kL8q-aRK0X&BcBGq604Y0w7K-KdkOwxTqI19oj+#-# zpl}o@-Pp`=vNp;)X{Hi7cC160{!lYrHo zQStturox~GMssNBO~Ba%&&f|O9rBZ|AaA|>| zb|fIJtfduI<6mZtxWHK*fH|KhAdj_?>5N;2H6l0Sry0b2p=K)>frmNanh#gy|HJUi zQ-7`~$hHq@7pr&3L>fU6w}ZhQj$%a#;q57(J@9AWrhG3t5sGpGG-MVi{$AIO9?bCM zzA|W7|0~QZWH7Lu%a4|r)(`_HQYf9PrMY=)->2hUV1=tQ+pJ&i?Ye(Sm6#U| z{Ex6^l5F_5Qk(TFirpbzS~{PuOHg4`PaeZMK!{E|twpduKRQZ$V(3PUk)#LS!fKlJ zy_!6M2_5M^P&ifugc?Ci*QK^P4t|;7mXWMGofIxv!HAgxCxmg9i6mnl6q*-~g9dO) zx9;~FYq!zl!Ugo`&sS+6xcmGWNs$ z|D`lK9^d8fId5~8EkglVF)|uNz_%Q0jx_glo1Q6yRpnk#0k!r>A6lOsuz+Iuij;9* z&Jy*R@336c-4sJ*&$Jwb0U&G0`$OVG6+|~xrdi>Y)>e%JO)p3CMJ&WJ>$1aQc`bP{ zzt)O~w?2EXC9Irp=}kkCqkEr@Zz0*R1~&wVvmC0~4V5zO{IKl7dsEIQ8y+$ z{M0_9-hYNxLc{MLWSEFHhHCaS6ucSc1Tj5Me-lJ(s2nWx9iyCj7;5y(4K&%?ak*^#4# z@H_${yD)$8to(8p7@5yHX!xn^%aTbRf-)C)2}cF=1T*iPPt5&Gc0(el93y#KQPvdw z?A!LmwnC?4o|h1bVyVeUObYvKzO(Aen5siBnTo;prnqX4)?qaQ$Qz@vO_y0jgrYj_ z7>A3TU4G{ei!A}E@n++MWh;Ny3S5Fn!nnl7d53ioE@d{A05?bQY&Ct@VjIFL)f-V%Zir=OSuRdK!jr6uWR3OxXhliZTQe7r6qVn0|*cJ-Qw-Vowm9qgns zXUJ?YIJ$C-olv`H*R7y=N|=Bm_AAb|gw}mq$98qG zabmBj0*^9};l!H-G!8a|hJSNLp2hLX40ye1v?F6SznJY9HmIta_5sZ`7CTXN%rP7p z;;YYiNxlj8H(DPf>0B#2`jN{|$Nq|>iMeq%SmEy?oMWy${KsiRHD&E0!=c8ok_fl5lfkJ zQxQ+2}L1BqAPr&AIwI+ae$s<+;C&HS$MLSPL%;HA3X)e@qGd zXNyQKJ9I^obs2d(2-}!vP>G>^3ClFTW`WIdYGb68DFm}7{VimXzL4v`UQr&u-aEpw z=T=gXLoXy5sM3TxOd5rF^G|a`lQJDfh{gcSVVN&K!4+JqOeFGo1V4Vk4OlczHhMCr zbS`OQQG2?^6l{l`v55xT|Z53;8?*WctvSDDwt|G1&54Gbc+GK0$^Otf-J zXsX>k-`G-l5EZvM01gi1TYfPtN#0wc9>rRV__6#bcyX+QB|?Sr3-a^D8S!0YWEZC% z#p0xhONb(uIGe#$r=c>}4;b5kh&C(@QQ^7GsIW1*WiNCF~^sR!o46yj1o71IsM;Yt%=wRP!nJOr1%FtwV~vjJwh>BN_MsH zgQ0x<6^S3!nwB1Juz=sryy&6Tr4%|*Kxr4i(2shl)P=rNR8?Pj;PZvl+z;jm*icG_ z$e=;_d{urW?|c{yCTQ=1J)c}lsOpzRdRQGI-R#SHSW7en3z?!WO{?>aRCy?l-9<2D zSw?R$-xAv{#BsIMsWhG$RFhlhP8(5|@X(kB^UU8VS7L-DpM~Hk(6>rY;Vh?1wOk0J zV{~xL(Fh62^38=eVfhkcoJq=T#Y1zlC$ICJmJr9YinB|oGT~X>pD%X)eDN+4nt$ildMS_m7tp#NF113m*Pe7B z8?PLfo&9;Fjp=)NNRt-f!VWWR@I6kp*sctJU;I`IM1DYoveGthE#lX*{cjlt$I&O{ zWDNaH3@&0BBpIDT1R?BN&OF!`EztEM2Oi|NZ3HggRNC%)*kD<%g4Y{P>iW81jwC1G z<1jo$z*7=RKg^gK8}0QQ8$Tky%lzS){6aMc%h5vyP{1~2z{`Wcp7!t5;OVYMIoc3M z6Y9Va4A}Hfn8(2$k{tR+V8ACv_r7R&x9w6xfQau>3Z2lFw;#AtQ4x}uWqgR^l&wAl z>GsN~vlzak8Dxz2w_$5DuSrH+z%YVpKjV>3gwU{gjilDblL=!7M68{bGbxE4r z-n#f`Q5?IoG9v%zog(S}p*~ImC`v&{8Sn1n{5tB%5kda*l%>hAo1;}U*p53VN84wg zeG3+jc_wFuzRuH&_Qfn3JebVzJ@xihfypjY*O6g|r^5Z#QGU(0jufMRmvtWmt)Z(< z_h5x3fET@B7>2<&p7#T$zgRV>zBA^W!R1ga6)leWyOw04%Vx71mVHPfcBbt^YJn8zqM}G^ z&2#l;vyqYqf*;-YKPQCFe|RyS1W!uO7SV;8v95@_MO1IZg1-hFeipAqi}|&9EsxD& zCFv(VsuZP9k7an_pzABQPFc5wlk zQXUqPBdy$EAa1sur^Y%BoD_3zZV5KIgQQ_q#ir%Dc=p->d7qXq90r)@bh~YbP$BXG zv^VrC+VT$BClDB6m(&>AI;1)$&VilgzP`^%BeqoE!m06*4@lv;{?oCb=+YwClJu{5 z(S6#m)`%al#uH?G)cjQOT)fl7b*v>mCzs+m)myxF?0j>=mQ7jfpxYy82ouqO-H}=| zAAA5nKRE+7zTUc$yrYdF?2D%wv@ph0Ac~1&p&pBtBbMC#nrUqyq-`5vQ$nO0`t~fD ze@Gua7RJNOY@_^q2Q_&cb~8{ODuOVa0Cp*cN%a5^3XUgy((;trzLrr=3IfBH~=y&QffJ>2^0HQm$XBiiLe-URq6b_zy6S(ohyU|L0C7{+?f>X zysGZWQE#hetJYc?^Loku^Ti+E44_sfV3$MZGE;EU|67d!4qHdMOhhXp?n>BQ_G7HJ zONWReihv(EQF%)aH2){9nxA(44ds1(gup{^-H{%G{_In3QM(XaQN>J)BxdGdvOqA9 zLsI?(B1aTna_WAkIEA9-06h~I0A+R5r=*T9cUZ5cYDDsSP15;A!-xi0EgubS61dr> z2!>8l)>BwfJFfqP^TVD-7OAb~jf5Eo6xl4D7jPK!EGXxoI9;Gd26AgIG-swbYBsz_>^w8EdVazw;497tHiMDi{rSr+gkgWR~}&ABw`sfcL>$95Q7X zO0So7KWua~(bl;gpUD4^Zp^wRU#%V5?tQIf$-A8VA)6OqV!QcNTPrz;{5~{YGJ@Tv zdU=-^uekct}Kg=(tOK@WT`$4#;^w=yl7Cu;vXs^bun?Nm%&_~3t zsly6NOh?NJEnuPu{;1<{vX)pyZ%3_6Yb5eP8>WStjN1#_V@t}+OT~gBGK%8{vF9Sz zOgRDMY&{`POf%n7kaWxzJg1?PW%yOZ19D<;+&D*Q;lFSeYbFw9Q;71iY7TMtO$KhG z%{WP!Ja)CBZ!UTc(G7!NLQ=k2Z}szVFOMDDM%7NKVB->l1lc)bk9`{E z)#8(jO17B8ZAQV!WA6ozyzuy`seM|9nbbCof!$4Lm6cT2NTvW z!Dut@b{sip8<}C&-_!}B0Rs&oKLg4?l;=gGnqOXeB&zVAtnZ+%;=||gaar_BJWv3c zdAZo5!dm|c6faCnFCu0=Llg4u-BCBerYFVDJot;;FrK6ai9)F8!aPQ@qmq>wmX}{p zcpmPLKF^T{8*GFz5Wvmy8O>mZO>TvRmIkv|Io@{UV{{cXlt?m5$>xmlU^IM z)4>xWzlq5$2lFBye>!a@KFhp(|Cb}W&1i`0?fC6! zex%VLbw}I-1?NxwtO@9aCOZEMDYzN-0SFGL&~**r!Jb;+=?0Kl0x!H>8+zmquNMl% zkA>R8E+i#h_XT>X*F_`2aH01j^GjFutV)uP_Vk-$Ak9VVLczgROwTiyjfP8BQL{gE z3Axf2IRvw6*g{h_NV2uUWOMw{oJ1yJdYNf4zgQNp*W$G_@|&>jox^$-ISz~Gj#6fh z;ys>Af!^ZgtOR7J<a}%6QOtB+g9;=tERuIGiL6 z(6vpWHND_!LwVSX5+V_T%DOboMuaKRty+jk^o*>o{IEFA4|u&j$O=&zXrZ{kYNvjd z>MtpRHLpof21JOYuBG@@d!EI};aXZL9JNIJJx~FM0t;P)3d9P5T?R}Z30A*IT^=yy zzmA$H2p&*7yz92Z=lHa-zI~BnM4(rObv46Xp8wM{lmXLNSN(w2@L5T=gl)u!Rp)={ z0%`hzU#HhVJ0rH#NrD|4Z|eB}eun0sB<4KB(OkoCdKZR2Xn%L*&tlKXFH}{(BRyYy zQpe{IeK2N`^&>IQKXVNlgKza0#eb0Mb^JSn>#Gz|pBcOC7=fryi*kTKa18mxL-aE7 zi$NntwM7n)EnwBe6VgoSN8eh$A`qc?V`|o3LCU`&+1(NX-((<|kGJ#<*!@Ky;S^SZOKh%_!vd=}A}N^h zlh*-1Ow%9sM2LiB3wjQE^=W#N?n7GKBxL|}2a+0)#q1mTP?C*dXPNbUk^P>8h1rAT zC1;Oo3A+B1(5GsWSRIO))bJ!Z1u1pFDAFU-;#jbxTJF$Fi}DX zd|uQDF!RmABDyBY`gaTcyfh+~qIszWwu++sl$N7uCr`XDih&>H)5k|TErwqw!vW~( zsEg`YP_%WoJ}rq0603(0YYh;PT_|zg*&IGDrY@wq4CG_%Mh09tQC+Rp@$e>wY#OvZY=jv0JA_AQTSU zsY`mThLb?6I4#83D|uxnNMq=(9Y=;>#wr?8rLK!gIt9RnQ=-1);V1)cDQrb^pB9@_ zI9Y5XM8D$MX*vZ@{~r0tt|QN>J~u#B8=MUsG(#2FZ#eU<)ZJdbyngznXI&rsp9^gd z$dscwVj>GH}69*+BIK~>-lunsrSZm3_aSV_| zx!z7O@FfQf<{X%;!i;+Nuz6Y0Mq&bYb>Wc9VSwmlFc;)^Alg|Db_m-be zJpfbC5FIz% zh2YoLsFT#zgiftOLmmFaBw`Z;ar={4Y3pabUz~2aYmcbz2Gb)?yZnbhXixfw&moF+ zt5{^HAhIwaMCb|eT)@_8UkbF+Co!UR;7IsJJ{Dh#L~av7SVig0BX;x0^iM$W?N==` zW;$$ZSgLFHiBt7m)eC<8hE(jqX1S=Ea#i~($$Q(}Tym9Yt@XxP7~6y;`#(MawWJp_ zukA-h@#Z&leF}xAv4GX-81-UNwM&b1sFin>ir1@^DblCBaS+jE_!I>W#u3|MLb?_a zT!kcVG?`?1WE!{5yxrZex;+bTEb=toH;}a(L;N;yC^?uAdghcOe0VZvWK?|pa(rnu zbf}uMMPC#HcCGbGDBec!8Vdi_IQkjiVWVKukFH@uEa07gEuCuPRJ%b;d#h`1|BX)8 zoKYH86*!x5IbKQ?P{VZG>c)%*IViM6_rpJvzvSZ56hS4vJgfzNWgHrLQoqJC465_{ zV!OeM$3#yu7QVy~*=!IBG&s4^w-F)TXfi6nruR`oqF=@l=|^4^5x7m>$-^ji zJ0U8F!4`3(XZzN`uG8dx$liPJ+#zGYIu9BZbp$9U^isE@OiR*Imh~&3AvJk47=R9Y z$$M`+?%Ax`O|6Z+(0;{-nSVmqgYq?c{YBw0%q z)8fs32+hY)Huj+Wge+&%Fk91sqczllh>F)VgvY8XY*~OXT>I?zyNLw$P_T`T#CIQ$ z@x@#LaH%G9@9~nEvx-KHb2tyj`~spu8r0f%rHxEjx{FLQQ*`#mwu7$5>TV+4(v3EB zp+`Cm!>PGH)-g<}>H$jG(M=M8aD0(dOp_5Y$=+{onhCo1>2lj@-S3}G4y8BTrNKxg zp}pUlpZtp9!YC>Ki)J(~g&BHA!p0ZLd@)X$ZSZF++~!(^%s!f|1d$A#$9U^8u!058 zkr-!6cidEgJ%^2=RpAfqIv7GeW(Q+&sKLU?V}hflz?NxY@z((%7x<7!z#B$^PO(^^ zIxKgvv$gshS-m=Fq>p=BxM90u zQ;N0z9mlb9+?hYXq-RgvGDW4QBumYJ)t%bENtS|O4jTnFgVj0U2rXccLCZ*@6<4q| zn&Mo3<$zVEy7c{i?@b~WXjTKPH#p<3M@#g>hO1Q)GVmhcOlbmhtaXbB?!;i1s8_hA z00MlQXR%&4OWZej{1s)k91lMtXf8$F-x^6WMv3Dfk=V!e(t*EN77MfbtTFsiZuwsR zjcmlhs|4Vlbv64gokN4EOfEG41!uJU&uMajZk|I{ClKDsv*!PaNF_%ztX>rA=Th&{ znH&-S8`UuCPdG7RyU9|1NQvP&iS`dGrhcrb)yGcInty+jx+-fW2n9s4KZ|v<7P=uS z-UTYEyuBdEp*~gx9BSd1YQ{DB2rJ0m%N97HVmT#^Jp_B$qQtn>3)*fnm8}o%AF8ix z?E%N7HY5cDBrqSc?L~0z3K7w^=}EOe(-r^#AOJ~3K~yCSkz$I3(~xb3p~`TZHb@0| z@I-4V!(2xjAl+AlCV!t!qj{Dy9{3)E9)&8LTp$t@gmI{)H1+`>WFdVI7XP8_`1koOeZ9KNo4=TEEF9mIWv4sB7E*HP(vPF zm0v`;r6h0aH7w%r+|uX-CsEb^xnH2p@8W?H5&5hPCDFD{GK~SmWwW96%TD#PELv;H zV*Ys%GylAZWWzCaB3iLKG+YZRI{MVqHw;nRRqVHZ$cvwuIi__XD0V?1?427fgfd}o zqP!X$S-m}TqUy@7pzVW(6}N%`zTKt`dEYu|ZS%*hq3~RR0{y<;R>A#^d(%KD-Qgb? zM2Elintx+YSC z3#~%TtrWi1L8~54LIFrEgElifK!QArVcVFLe=t?GP)0#4l_gLp9h7OtH{r-ZHktDC z`R+rpRJv6}SZKW!gXoYm0obnsMDn@~05;ve!B#6Yh1IHV%+D7=i;xeJaQ^Yu^}aWp>h z6T&lbErK=z$I~=IDVL^sMxk7KOn{oT#IR%c?28E!$(M1i=}|IL<;_1c)wPJZArkwZ zq9}$h?DQMBObta%jIM+bG&Xt>v!=boGBxCXZv3&nS3-h~4-A;)QnI{HS%bdPC7NHA zDF|k5ycLcTZYb>Tn{7r3RJknNdJ($D9i`lONq|tM(yNt5I2ntOk z*g3NeFzH=G#JWM~$6O#n2PQ$Ph#t;QouvP)#T>4?;&xRcg#D;R$=-P2ijDpPX33@@ zi#|CVU(`vQ@y=5p;UO}23zI?Y-2MnSi>WSZ%B68Afqi8-l|OgE0Mr%u)XqgIhXS{; zZ3^1Hn>PFj)13|nnG8`U#dk;jY-9d}W&+wR^+mu6DQ!kh!i=XGL)Q_(5(HR{e38^? zK#%y6FRB8?i_T=f;Xz+1T_Q}3M{eD+OsnZeO!{*if6|K~_*Z;u6UDF$;$!C;i2z=8 zLW>>YI3Wq@)HBC=a4rl}7}k(>c8BBuLIb)0?-uw*Zl!82jhrc&TP>Lf=yRRN9$iOW zpY5xNBC?Fu6(%Dj5V#=XE8IjLG2gkU!)2FEzd2Z|D{kcm&XMfPaNdJMqWZ4$#m#5* z#-Qq(valCGaP)(DFbWKErHe?I7RR**DkUcB(F;D$7_>XUu-Vc?{4OREG7OuJwa!hY z!_~Yk>o3!0T&>=$77A+`J5KNY)D6(}r`9iwmG&=ISVhQqmAg?a1B|t7eAQRQOiyW= zMLK3Wo)G0FIzmBI6t0Tjfki|_DRo59gFH#S zmgoUrUSMFN7sdQrCOXC&)Y;n@&Ef0}hQO7`zA~E${Nv^ZVG1IbX3uazAV_n8(N+v`{aE#%zn{kv@Bg}d&asFqKUuEm~BQ3^>k|oVJ z2Ye+F-Hoq{_1i2k!)dW#&VIie+Gggh7azvLUE;W-r986~q_jnW%WUFgdv-xe&h+rB zIO>QGliE#^(s?Iz->oI6KsaI&iijS^T3{?l_z2k`f_LbI4sjBWRy@_!8l4Kk|-La7I0Wo&Z}+L~Lt7E0 zMnIMWniG+0=1mSdTU5pkF}Cf~g@1);%4gOt4}u&fQa0yr0Zhwa5&K&Tb$w<2NjDiL z(wtuEBHFK1qp3qru~ZxEDurx+8cbttoRoEM%Jq-x z@o=c3OgH-e?gxg;y{HFB?}Njv+s5W36XZ4Z$y-2*wNmUdWX zuD!I89M!nCXHH{52ojb{E^^H0?*>r;;`>kbpASqeYQr@f@e1mevCPSF+SXj`8U-6= zD1~~03S=0(F2>`nm-y(xMzF&ND-gf|9W0`U7;#v!i0|+8{+bcf7xZ;ngGYzv`G=`k z^j2xqSafpZRnLE~#zF8SJ#l}8E2APJH;#R%J+l2bxYr-`pP2vkY6mhH)b8N>rdpQ` zQ%U1qRE_(Izbca2?175b(jysc(Qh?VfSN2RK8HFCQt382oL%AIAZm$Lghn^NCp{mI zgSK9PDiWQp&Q1{z=9aith=4qS2_-%ZM&lW|8OzocXRMH9Z@Iw_x;z#{34UEh4abZ; zFxE>pkV@{AK;)bt4{3NEmcK!x=mgn9l!F^I!sFdCl|D zGj6^Il7i&zweP6A6pX?#6x~-nuep0L`Xo*_R@L3kKqmEmZ*yO}jAh zBNKdPhKR|ofpbCbuQQVrr?*v+!gHad^*BO8aS|*8`B*p*C;5o6tPp>n@{rhpcPpt6 zsd#Q*ye?ECT8eASk$~Z$`WQg3IZoSQw4wSCiUSsN4@QEd7U+N90FJ&0TPt8zf{1h> zNIO3k-^6+&)vK85jXfmhA@Nmg8ns5VkBTT0DbzA0GI%BCX4~b@<#w`2SYsl70nl6_ zb1uC6)KJtWllmu#51UTn?xU9H3}L>py^SOhp3kGXBqo^jE zR68)lnS_718mpVPvdt^qn&W}{NC!`6GvwRPV(v)`V}l(tmO zlZ;owvM!&8__B_B`9+|=E$%6OPt?ak{@kmQAIgo8tarTRN&+0t(;>$s5#p%=qZP(5 z#hvt^GcBgY^m?t=i(kB%0=nbHc5^Zh3gWj+`8P>>9wym zHBO=%AFWn1*vjH?v!i!nHUY4!wG_yHB&49C4+&ekEC4Sbrrk0+0(Zg~?D*%@6gB(I zed%^pJU)Ni@Npx6sA;++bq#cV<{OldU`BivW|q#{JA^6=e!th+(VGeY<4|#J9EBC9 z;utlzuCM5>A5(?8jXO04+Gp!9c*In~vV4#v8IX`_Z5^tR`V z7f)T+I`P)Vhx9;KvZY zw6a=&ulz8P$e>=MZjQrqkwHN}o-6n#>0fexMo8pGDQ4cP_j0&E*%hsfy|ry;~W z&|4S9UfTE--$>Jip7cGU+HLTlJl^yRSdO9vt_`T~K4`jY!od{NZ2Eo2MVCfW=&$V? zO`9+quY_1wJpN4FYfe8eUc6o}TC9j%md2U&QDhR4Te7)|QwrXrXA!*<7>mTN5kypB z9!ohJD!PwrWFf+Cfpq@bSz5n#bajDuz5GLK=~#Fzk3M8qk4qaMN%N0E^Q=omYLKyT zUXY}d$;ArRoNF!eWe?-1U4ANTTc2{*vSx4-t^_!AI7EwycR6We9*&5-_m=l2-$kH3 zyVlbCf0UPMDZ+gU4sY456NzZ~35wRmzykYs`vn)8%`QcKmDiQSJ8s6na-44uVi2F( z@p^xI&YYCq{Aw+896?m%ByjMMIPEzTEnV~#a}G&6C1xepvMsF4j4Mv!+b2zlF{52~ zr=5y)XZ_>AnP|NvH``ksX)m@ZA0okUaNCiLGmwoEZEFs%o(|CFMpHoFy3-iF!^E3C za(ycY2B}Gi6sP4QoE@GwOs}5-kR@}b0&m?EMyis82`>dyOF1+#-w^3V5 zsU&a3SFIGMoQ{@tTI;vU{ppSTv-?NFn+D6 zHDTzHn{7G=U9Agp(hoAoKYOTLDJs6U){40)tg$7ZbDBhanf<92_Uj0e1(1`;Lm*7x z@3djePiv79dBF5uDHIXtqf=jJ)yLRlzAOt)(X?BmesK+qvV_QEnl-wgz8(qb4AWJc97GkkEdPlcm&pWILxMWOh%WHRD;}pqg#2C$ zL#9w{!xpFVaSLZ$gGqhA)5#MDfLZS0DCMT{R^c+M!VsiHf82W~7%==H7GiF1u?^l9 z|3H{G#kK~qE>N0dS6k)z0-t$PTBaa_U%GB6B!0C~by3oCcsN1r$T&wArZIYS)!sZ? z-JnBDHr_5Nv0AMH(;fvga25Hy<|S$A*(qw#-y&}qCi?60*e5ZLRHB9QsQ2>2T{^6i zn1T8m5P3+04HfaRBfM?;hA4fo0WMVRo@(2L?YD|b#E*RF1GfaYYoUgB=2JH<%s|rgJD5DT%-O?{@ayhL@+l|NPQIV`cp^$1FDPh z0&i?zw>GUBPJ*l6%+4(C=gUdkRqy^RQNQNOj7dmn_FR zdD58{25pnb7C!VCQBq>o^U_lcCl7=5Z854_toQ?rP40{HAY;jHq9wQcq74K z`Q(ER#Jr!9`6^%K{We9@SKx$do=4JrkbGq~&K_J5Q!fh?2OQrJ+sbsK{E3iH#mN7W4M#RHQ+xKPqbl->*e$t;NKPeiqt3Rd^PYI*L2jcAc;o zmLJ;~M-jH;QC5w79Ap>r-43nDb;JdBv;_8!InD+7_@6tNNl4a3aGD8JORSE{I(7ZQ z5PDmr+XU;rS&Jz*PGlo((%q<$uoGZ)nj1E{K$iKyMIs_wJP5Q&kNUlmx7+0gKL)eS zaai_!?P6wIh}?epY4!q}|3hJb-4q3l73es}JdHNMj3~RuD5P8ONZ~r<3Cuz9fs6;p zp#1F8bDEaktsRXsr)aR(c}0xEP2A zaHmiyra##hF7((EULWWp0Uf7J3auO3=mf#2c!7aAUx1nIS2DTvAn8R~48|N|Kb?Wb zCCPvA@lZRox%FTN@e#Es2en(NrfPhwNu}yFxdA5z$QJqK#rV9pSBK{p5JGD^y%DV9 zqTZbe%1=M_HV^~sl4G86CXx%dRF0`?xb?&(;!HWxiO^uG`!$4mhE|wST{ik*d5VORn?pG695m?xT1A|y>u}IX0>BSErcr+NH zXd_wYFlTq{VuXl6Uz{^B+xYLOn90tgnh9+D4L_l46wFgw#Q7BL2N-H^6r7#l96Pq3 zO>b@uElw6zwb19|_jOUtVRZ(?>|(FQEM8^@eQTISc4GC&+_!Nj5^*lW8LA)_W7MXG z@HX7;4>iJ{uujS$WChJBx27c@FJ7?jL9$X)WYCj6hqH~Ku)n|_eZ0gOLbNGY2%m9+*hsOm zbBmZHmr8yoF@-U}G3w#?gM64tU<@T~2*nRub>hX;V=5l=B{&qjjl+#D3q=^2FdUjo z+$BcRvm**xNp7PW0InD4KnO@ATNeL`f`rU&M%;8AWqD1q+F0SW+|m$cLv|I~A{#Ts z&P-;YLR=~!v(g>)B>O4Wosi&Wm&pW}VOk}7EeiyPjX(foVm;V4g8@mI-zjAIg1y0g zD5EHjT8kUFbYauRc3oI!b-fEcs$( zX5z_YD3Qny4)l0ok!;xvlA>BL%crNbYAaegR27$ho=o0XNql5+s8Jjt$jnX%M-e4k zu}Pr{%sQS$`Q9Ec%r@W!Do;%m1(#kd{>^-LGPVzmdf%r0*gqTPJttE*LQIgivLr|5 zP?z`+j3AmsQa9f{dq{GTr36Fa{8V*gM=Hdo@|6k~JnL_BZPrp0F8|};Qje#LkVcJa z^c)+eA9!Mu?q^1E=BoV>QQwA`*YdFGL~aAaP`E~f`E)k$kq%8E4DWm4h)iT(NBVJzvM7G5$Te7$0SzQ68p!s1`Y zVI+S`Lse6Ho~{JPjTUS>87#<3=yY!uISdf-zKe=1@cx6KjQ4*q8`PWJ=Fujc984g&N)sUDh=pV$F@g*X%bm)qvI>@UydTux<( z>d5hOp`YG*oE1O=$Fzh)ggW8PUaNZ$VGD$*+yPn`cy2m%W!2bA(A}j3|0!ah7?8Dj zYs;|3BKKlF-k2mcen|A?PtfrQ{UFvUDak16F?SyLiKgk{Y;|;vtHiK$TyTefI$%w< zttc|jn`5c#ivIfK!z*d4F6T#h}p1zvSi7UaW3Giwgf?bCJKd$)wPOkM$2pvYWaU#X~4BmmJity6rO z!mG0lMiFvM{JTMgP^>-&Re7LSEEEG2jm%15p!On;WRodWR1;_boy?NLvh*Lb>+owd z4AKg&AVFfcIHG6kh2!hc-3$ebFZNm;y8DG)+N?@6!_F>H;{4VQiQTGkfDJQo=ksNY zWAMTEy<`W8s0EOgv#4vRrTMoa>2Z~dt!zh}WIp=`VajO>ze`W^URm8xbiC-gdNMQi zsY9sH+Tp@|Pwn@apWl;1${Q&sS-+~i_0HcC7xMa;n_igXKB2jN?(Pd2+$1}T6`V{t z;ToTO(19pX?qWS!L9fLxeyv)56xVvn5LYT}q@h8X=Kr{|QNs3i6~m(2z+gg%oTV0| zwqQxs{@VV$4ih6i*%MjLUYE+px&igQ288b8Mu@}8e4xwZy+>Q}Xj6G3RK~>Ao zk-@e**=C*P=1P}5w(bp+T7ET(AAAFHfC1KCEYh?u(QF~v|A`wU9I~X@n@Vn;kNDvq zY`B2ri{nm=501p!5nl%bByr_w$;p1iXlN{)h5a(21|9`&1jhv4OZ+{De=xAT>r8H$ zJ?x!edu4ADAHsI^A-fGfsPe*-Fd6bla{&CypSAEQ>iz?Qkf+zBP0c2stvw=CX~wK2 z=riqt7@}{Q&^F4WMz-pbW3iqF%7M9A8C8#f!%i|wdr6{qqV^N%wil7YoTTx3rJ=Ej z?^p%4sOX2Dc~W0e>@0)rX);e_OFB5872-lWFEtjgRPT4z3bY_B?ZGZQTkXvN@bID6_bGiw!qexJx_N>!rT=EEdUU<6Iw zF}6`yuL&axM~^7tiiXZ)tgKL6ydXpz&ExH+Dj0mKI z^5ffJ5fF92tF0I9t4_-{Xu1XT|-H%&U|&{CHF0}48` zg+h$HBIFlnmeQCcLN-%5P()Qo1g4z-jK)${UGXiSw9H6)2v+$~Ak7#6$K zBo-`!?u}h}dFkQ&Z==n1_oa5c6_hnA>Xi`JNdxh1ADWvCYzu=`8l$hH7?X zV%OfgMY>mFaCsokv*qdI_by%Qj^zUQI}=uuqHPRBnJsKQVNPyboP?7h1d?CqaTTX+ z{Ki6=v2#SydLkaAWHRT4;6myMjks`}N`FYFWVXhVLM9k@@pDIzM2h~!KUy|4aVNo( zZa?x7QLF)~cAD4EP zbl(l=uFm8@0*lFJT!lntNjTkU@(B+y6+v-bKux3By~)!~v4oeIe*&Wr`PHaL1q}p$ zpZJ)%`?ph(r*I9+sK$JMsG!ZI9j$TIT;#G4HseYW);o#ONL#p8#Kv1^fjmZ2Bk43AUyiZTBJW3;#*0s-m-3lx^P5CSH%i2o zaJ;Ebt!Q@*HnhT(JL*c*A!rfu${i8e^0pnk#3FeLmMo^N7V@y-QHbey(itNn@4ffd zQ^*=vaJ^nJBAUQ71%12xC-TGwwmeY;*ejU>o=@;+-2C=YfJX>CW;=LMKDL&QI-d`B zk?LT?uNOvX=dT4lRbuNoh~d|Za(>YTQV0jigCc5JmoNEG6nkTLYYq~ehJfju_A5O; zB2VODyhXCXQS>EWs1i;d3e2SBsF}#VwTO;>49s=oMiH3NTR1%)E)&L8jbAIP8qd62 z)^#x0pDA8Lfu^;PS*m&Hw(tQaO0wan{7}cN0sC$8#Z;WS_iNG8bx!X}RG~La8Q_`XtaHFfzBojK0s8f^M*KmkY=_BXG<;ccTDSW6#{3|sHs zeH|AQ-V0oo%?Sdi@*IqHa1unf^6F5tCt$>!QWZ=y;zYWN;!&IYke@X$R7Xy@lvSek z??X!ASN4aBsD1EJ9SzM#@dG1Dc>?!Vp)) z)4GokBxV@TbyQee^F06nAOJ~3K~$V?J$Ey75qxRCP4C{^*|c7tTGR-=S^fuI{Ggyk zgrG?Fxb)elQXum7H5Fl6uNS`-+bJM@nZ4IUqz5$hN(%sGK$^dxw4av7YAd#u>jv~t z;%bF_Ra~+Oua(+?2s5x7n(=l!;Kb#t03Q@<^jQ4wu;v6fG#uz_7?-5p1~XxRT23r8pk zEe|ulUN4MI6xFpM`3w#seb5GgS08fTHsi%x$0Z~~&KE4`7y$8Z6|pPq$Tt4jP*Mw8 zgc8aeO$MD{&yNubWR4fdtBo)vpX0tu9TZp>1CoH@^9=Fn%5&z$BD7rJvx1m#vn3m; z14<}EPzG5|Likv65uXil@;$>P*13f^!}0zpcpbwc=SL2lN(0k=>qgmFld_AXh%K%L zGy6Sp;8NbJcF_Dm{-GfQ&FI~^@cUjz5zz?_$*st?SISjEL9UK@^7D6?=j5Bb1vya4 zuTwB@yMdT;4U&^zN&++MPIpdsf`~|tlchJ*G1e}#b3SBaB3>Rg z1W24Kh0P0vwmO$YE`-aZ)gN3s;s!6Nv)WB!0tX1QQ0E;25ZWMBG-Nl3B#~+HxgEQ7 zrMhLX`X7_nB!z@xS&mz(3oRb;s7nR&g|FaYf>Ati)E_rR83lCFFaP-zq z?M+R$_wE6mnaEul585Imeh$^=AenhH>s5R@lKsL5;q9o7h?w3DWaEb>#!Lb+){wCl z#zkD8insnW4@B8*u=rCL5)P32Kk;rFb+HpoM;zZuSSXxlXAsl34GQo&L{V>wgQn%#*oz+Y(GLPMk&}HBGrr9v12V{Jp zAw(NIA`v%8%Is>8v}vHfXepWN1eq)4JLL39e$JeqN>9rEr)kjtUC z4fRn_nsYV~$>?;}lbjOP=g}J8#N)(yeD5;-uv{G_WcANt9CPQ*CFh15=q@}bg_`!> zBrC!`RDlbn%3?WnToHTtpG7Q-^{}X#5g{U&#R}2;vfr$MgHCq{5o&9Mt zKWhm$ATBxpi6SOZ`b!)+%rFJ7eMA+OMQ8YXp5kL>=S0 zdL4HUeD5)wFEjQh0P)N^nS@d!e2mv%xE}0{J|0O_+2fLdA^*@+U#^%aDm7o8GE#-V znt6t|$AY9%NQI-4KZuP(u5ZOVX;YcjYl*J^ycVrRONV6&`O?5jl^pDsn5PN_gUw{` z=O9V2_aho+u@rb5P{=g1tPRZb(P%+?p(FiZxAQ0VeUY@Q0s^2AMsoM}S_gB<|FY#R3jVaG*IL$be%DaYjExcxK6aWqI?$n>9VX_*8PIa? zR4n0CM}4_*4*cO}V!OXbMV~zDL5_6~pu(k{h}@@*lgI`gdXJqr6)D7TC3C}vO1V-K z*9}W9KJcP&BD0y%x2|F3*tHTaM8kb9D4h8W;rInIfdjbeU&?Q*@OxI~HhMzi9Co%R znLbqAwo=CYhR5xrSc+|kCJObxZe{8R3pZ35L)o5RL8ST)Od2n>{6QT`Z}Qs~A)m%R#p5H#hRG+E&4^ zi6X={VCi5vjV!>Yp+#s4g1NE9jhSP3Luk`{vCVmysO-G@jdKu2tAnzMo{E1OiQbTq zP>{~xu-)x)bv(3$h8r72r>+>Opa1{>xMROqG+A{`eKEe65qBv~=>V_5MF^0=LC#l6 z>YwIJ1($XP+$*d@lP3Oth|Pxaz%Kv!F2Hy|NVTs$M|&B^S?@{^uFM5@B9R@kz8p^z z`bih4%`sDJ|71OfT}DJi^n#@uS6CMv_hgj&4?fG)3xLl$ES45K>BpO@Ey#GLlH>J- zbN>ew*w}6@hp!Jy1(T zLOYzoUTn~Bzie4zja0ZM%Qi6!8>~l1ib+G;Wtr7Z7NHjHRxnQb&l@jnaR$D&w#$|6 zc>)`)f>_tEgGE|vv&WFvhA^{Bg*p|BZ2yDAl`IZ`i0DOAazq=NT}0=ZXi%OPiUo^0kQMDNxl5qiIs35z*5@?nH--6SAH%T`^W{(|Hkq8pL# z_q#YSE1N3hCo?_5nay-+M~h_4hDmNi{AOia0==aC4;>=ncbL>(08J+b)QIB#r}(Sc zAi6*=yr#U-8XL5-*(AbSkFvO0SS)rDnqQQgX44A|-@^M`GHOntVQ{y7gvhznGa0Lp zGf)J?n;iOQAsa!YsVr^;sD$m97-&NDvjD=xUd-IyNu3DR(e}Vok!vby#qr~$<(u>F>qBErFxk(!wv-r zna#{uQ9gwLLBK+QLbDmk^r1LXTEVU=dUMH)g2qq>E^BR?I5vrG2--=~#1ri}3 zs9wucYRd%@hUv^nGE#D;O%xi3pj%D7`g8&l$yyk;q&P^u`ay<4D#$;2i&S*CD%i;&y&Svv` z1O|CKa|abah#V3vKdqzx+nJ|~v}{_G!%WNPhji9o z`^rNamr6m@pC&t_cB`pwf1+|zmZr@OJ(y0h*-daYX>StQW>M_VCTfwR*gd6acq-_i zB-HUuHkHeO%Y|e~PP2!Y>@c30sxp0)fnWy{1sr4IpV+;z{h~oae zT5n-acDHQG*T^|)SKe-UZ&*V0DLvSS4-0FpI@a0oLfI)EsHUOqF?uS&u-`piiOHSd z4%t+G@dH(L4NN^!ArgU+mgi7ACg$U~lsgGR2dmGnKV9PU*J$k1u&Naq8a}vJJg6_2 zaI473vKbucve+V83BFAhob=x^VAD>jicSTsFVYmUO=RehH&ZAqq@Yu1+b#7bO}5%> z%9jFggOW!2VgZP~u9;wwRp><@NhpG+TM2B{nlg64d}m;2dmNQ#XQu_xoLDD}J|dfu z2oY{(<(s~%&$Ayt##9}31y}B+b$cw~gJyQ;GjtBSoa3@t%0q8d^6MD_X(48&y<>ca z!WuNQ#cNu}Em%dxdES$Z8!O~_v^EDdZL6zV-&CpdAg-m^b>vrxnIFBNFJL7un_v@0 zUOcB+%j8VJFmr!`NPC_js^#u=owF=_=_>uu_C|k`Mnw>Hg)q{=fse3;f-RL?9vVu& zkc+=2#KBK_gwjr*J?KiI^r8Da;R3}3)t9t=!%WOq(&6wNzB_V?Yo){bZQ2<;4e4#VpE?`Pz)pH>X zeNIovA<&KE9$zgq0{9b(D1<*l#xJH<7!*RwP=c%YvuosRy zWIU((kzh>VJaiWQmOpyGGYoDbXc-zi4$mJ9{y4qZ2o6I=5`)_LAhw-SpOI^ocW~Y8 zr1@k~M{njtMsMk)g65Is1!j$!Ey4~V%V>i!qCxaOrP&K=HsG3C_y5k&evztyKOCSt zjjUj^5QDfR2tL!zX^CBu6Af3&^XnyZ6Z!|jMyeX0^Xr#A_+L&%X}Ycx^dymf*M>U! z3=S~s;Sc$r7sV2gNNjPrS-v3P4>Yp~p$in(x)Z=6W@6$k9A}7IUqo@sx1$It;%1AK zfFTgT=5VKc089t`Eo#LfV)(;KZ_}+rezFkaAK0&c4$*e;!CPiX;_S*QWol*w0Utnc z;3L<+OiZ$orRtop$G;9Tu<(&5rJ^3t)|s|NJkqpgSZlo?{xz^2YA7JwHB2};9?2sT z{u=!yb$5*gQqz9&?TDd{0z?5l&hQaNe4Wl03rsn(HCCU=9gw+?>R0AKkqT1wmM!cX z%-J_Rs!VFGca3N|Q^0i!19z-{atTh;g5Yazxb{>|e?(35JVmD${JO}81X!8ftPqLq z2x^maXHY)!adbTOe-64%pQ;he%tU?Vr;&Y2O&HEf$9H_-<>-o_RgB2K4wJL4F9*xV zY@-WAfLO$Hang}0G$cbbE+yyGo~TYJgD^j#vPCK7ORqIxRtS!rY(x}t*bP(G^56&! zd^oCZ`btFBv5iV?eiK&_y9X`GIh)yQXU5tsm`xZ*)7784`0$4x#>KCaH3acd!Uj;Y zQtBF+f79VDQ-0oXicDfc6Gkq`VOBlWC9bOD`HephqiJ;8lIGy~Si-c#{<&*_+QAF@ zn>GE10&yz}2RV_A*bfwjuCzCP(VVjt*tLId;WG`Y>S|)cjd4|?=EVl{7SY}O zwy5Q=i_-}pr0}H86=Tk3p3gL(c_P-p zXva2dTm4%FnxifJh|Bd?^X#l2wuYe9L1lX^)kR^F5`9VC@K_;BAI8uOGkfgXkZ?4X z3%1p1#Rz8_JLJ6$@J0!GK!}PB2x`Z@b|*JZBl=*=hckraXa5jbP{6?Qa!?*UoB5A2 zm#}rl-V(03qDCJe<;7_ies3uVN#a7_^yxaz+)$VgE>KSZAn+wQB>XD`5X6xA!sw8N zZ<+N9(cTjNOBbcD65?hmK)aXLvSH_bXP9^_?HS&+JerSUDh@40FaQLOELXDNy@a#Ye&5BR*&T6rEou zJBqEWY6_lxrMjOHY+Jb{fVBdgr^7A@IBdgkEu(YLhXjVZ(K*{G6-VP0j<6g%W+Qym zQ&SOBYGWbN&$pw!8iHq4`!}$D8t(uBXW=2%(KG}S-&AyF{e|c1FO0wbs__NVdEsXX z&3KPQes6dGOX(&RfuWlkY6v?YG86N9dE~bj%Ua~ZU=E4+;eo04SqCks?lBd;83o$w zjvK^)yFSJGIvT-p-%tvD_kP8pVHteNb`cUV=H=>D=~k(F+S~epL~K)Bl&Q`@ z1?c+DiTRlM9Sg7dJWugH3;}U3x5xQpX5s}~ph02fe5&3Kk>wj2Fr*Znj@4~HjAd`B zHwrf+Wly~~Q!nIH+9BBX)$~ch;OG6hqsHilz8YFhaV$p&uH3nd%?}#Vb-(biRXgyL z4ksqtCz(fh?I<|4n|xDh@+p-ZbNUM_JWB73ul_F7QLiw+7k60$oFHghtD!W@vUf9}jbNh7 z06dPtd>Wolc^=Bi+KCGX!Uc+WYuX|gZ;pT<(X%&v-ylToZgRO=2md*I&Z>4ofA)&t zxqZI0x;6jC!A26WlY<$xhMZd&OgU9?p z5;WskY{Ga;@3`3TBcKkLE#`r)0?BJxlgID&X7%IUYVP>`~M1`!$YMhqwi6ctE7I9m3T^w;b^Y8uA{p1cj~_GR=3pJ_kG_b+uFPd8-tBkzyVAM*aRnmNtkRy5<-#* z31RXLN%+VlfhPtvYq8>YU#>RdvdQ*lK*%BA`jP3(%v*QWXwIIS^^P4tn{sG8y z%yFR+0&D@_HfCoq2XPX;eJgCR>;il*7ilIGMzUj(=}paSEfB+yNJ?`_;Q^%{8v$U8 zjbTNK$P?c$#AcHugP9fEc*LfMtO2HNr77Hu#jhvBWk4j>qntJq1>9yUC0rXD14KJY zf-wXD)ku_MG5|K$7PDuLp^05j1&1EICkYXsqq^XgNRcz8EeZsyJ$zZ__*ZW9dgl>~ zt~A??iR{f|rX=>6g$A)KgmMa67tm@3q7NDfXO4IPlVDFjpP0m$5REo#J+cIk8ikDE1&U z8uq^VcC3^Y2Ur&^yf{b-(h^3-Z?d2;zLDjFC%Xt=gGh?eKq3zy{5#Q-dn6>%Mpz_j zL7e}&IJpvDQE<3Apg9oH(Obk4d5>JRqO}X z&mpbFHcaB5j+^1Ue-WoB9dPVoXjGF?{v^QS;q(YpsdIc=&KcJL03e(9P9C_(hyNXJ z>&_6W_HiEV_@T*b0r2tXD`-smj*^|tRokvOR4k@7rn*4eM{N&j6)lk7#Grx9ZYf{_ zjM-y$!I5>sL(D~Lok0CvsCS1&R0<%KhQ{{t&NqNylyLiW8oz>AW1yFh{0Q}Ks5q)K z5r{Gt`%=`Eo5K+N!V=+{R4$`Ou68kWX6gJFB~T#Mb1riG5y3=&4c9~Lk5*qA2_6O| zC+})!0s-pJFfu0N15nmC`^i zS&eNl=dGByoQ^)juWcf`7m)x((r|Mgzl4k?0I_i3GO<MdSwLgnlvX-Pz<$gZxKpMV?D;?k3gq%!$IJvz+c#Y+iZeY3)LWu+OeA^{jAv4y{i17f>dx2khid_J0dx07%@VbLkAukQ&W~(6uGwJXt!atrxuKf0i zn0_Tx4Z4maThMtTln+t$R5BEui6v^s!Z+7nPUCn^2Co<8e3;YZbNLw&0f_OI~ejvG7F{Fq^~Pt~@ix+1yzfjd%9uHwfm` zOmiDeUW9`$s+g0-6l~k}JOO~|D==p*9p8i9Po=Mv6;+B=*q$0qq);fo9JEauC3)SR zYUjU@;-U#lWHGRK#4Kk5N@Y7SiI|e{Loh6NgP38V|6s7zPm?01Pu}%w`@xG=i-jZK zW5w82A+UulP)t{~qs;yTg9?+K1HEi{MyWh4!+{~yNs{>(3%_J0a)D88?R1yD+7tu0&oF&euVc`qN^SpWB5y;Q0iShgvC z4O|Eg)uX8`Tm7Ha{M+@RC-TQW=?aBi4L7sGO^n<;P)aF105vx|r(EXA0)7{8dNtk!+qdgpg7DNOe4PptTpuq!h9*hjB*AUx=5OG7b8ol;6` z1~^2GP^4zRN!|E67&Z#M=Xw95`l-)y;gr8uQ8pUdAngr0CDwu|+IF%cLF5rGpR_c) z<yMe{+<>uj06-65*8^lvc*_g6ULqSh+TMFh z9*9J$onp2pG;=T)!X`(E#DWRC78R-e3dT}^RE1_8cp}4>OH7M6H4v)F1GkaMoC9+g zSXp%@11yPI4}h-z5N53fK&SWX{ZEzZJ_PKFS{l+}>h-?SauGFXlQDA*-TIqo9*+Jl ze)u!|@&i>Q70Gi@*kfW5qLH8r-=d%Y7mS|^fVO;_zyIGFP-_K{7j&f%jjq3+*8dF7 zzs9>C=NG<#izgAoTsNHn(AxJ>&js4{kQ8ff{4&pFJ(xhqLNavFQg70TI*H|J0HZ6$ z5&@(X7(8bUz4Mc38G#EO*!*4I@I?f(BLGez`)q@ZG@f-8-S~588ixKJ{$t@dSDftz@K%p@gGP$e*uh*1FCYHr}8U_gRdu{RqO5!Vzz zOdwJK5h?8e03ZNKL_t(&YQvbh@~r0^A9=ROJ;#AiaFGp80D#)3NpJR^(DYGp43 zMNNwso(NDaTj!+JW&;cP_y-}HPbg$&cW0%^A@T!-v1=FeH-;28H5PdLhbYkO}mhI8baLdu3a~t+N zfzA`|MJIP;Ic4f{b=`d!H3e_~ue9;&{K%gf5h+F4)k1_*+LBQs0R$h5B`U12e>uuX zFtUOHh6%Mz<7T6|4Yg*B7?0l0QpuT=5MBDoOvA?_s{w${(RC)tPfnAwEwGH4MGhB@ z3itsQXI^+cCd@|52+UZ4vq$mVH~lM73_KZ}#=GVNoC4H79+MX!Yr=&S7&csfHLbJD zOO~B}FAJ(CQRRFmB4(5^nc#aX)X_fgkg+>N1(#R?4f;23QbSS1Kw)Dl$_yblSc!u6 z>0kqPvEP$H8|0Dk&w#sP&J?R6bIpO4QWll6rPPEgP0S3|m$MdhNfts8GYy44CvHl! zmU1M5@+$3)qWR$_aMDSoI(R6lWagLsUdlZ+c@0z(0PcECA9^&ER)w0XXrL+U(A*9H zeP{KNCx=Ss#`?cnFnzjym# zTS{>lPSlkJ(Msf*)DEk&*#+Q-+hzvH;(HR_z>V;vFTH>R`33qwU3%DEFoEC>|CqH1 zj)#i7uvLj9lb&N}yJbi)C`D!Z0$8SVdbHe9>>&(WIYtB%hnnqu_Lg9I?nA3-nsgB~dqP#gHlB5Zq_xgQiyg&Xr*LYgv5>6qEymC!L>F}l=RTALg+Uzx`zLBe z0IZqWz#XNO4ipBBUu5Pu`Y!PCm&m>q+BepcBn6N71Cztk&9(!}j}aGAl?fDPpy_Lo zwE#fx1wOKg#Z0i}YroMXbmCamCd-NeA7PIEfLX2ipj!7cXc>{sSc7#R!u}`uxi4|o zNwXu+L7UJ}Nr?AspM5 zZ^rRm{P*|z<}#N#IH|Pc;y5>JA}Oy3-hX0eK!avh)l#I%!7N7uEx!#D=b86#cq<*< z7Li90Vx-w?FnlZk=sKU+@2yJHSwv1Sa$(uT+7%Y<5W(IKWb)aznhRDVvPJR$V67P@ z#Jrj?mzstFK=)ZX`f}u^l#8%olvXKb1%Q#0L>u;8!0AIF)*`^4ycxm>EYTo=V=-Zc z&$Hys7(NC7dONY}iKxkDI8opL)I;Lza4MkJdg2XKGRM}tLNOKKIM3542QQ0S#Ux6-yd9Q%$;32KM=b ze6&m-S5waHk9G_-Ss+c$wCL-qKmEtGxBhn;w-8xNw(PyQa3tUPEdbga{cyKpD@BT^ z<}ju|d!HJCi{C>NR>-5Xd-JV->rAF{85B1yf-Rv5WCpMz44)+MwErTX*aj1!i|xTi zmWDD}hwgt05^0W?de6A3}&Yu8k=F%m+KFSQ%UtIU;m|YEDFwN2h|sJNPXr3r?p#jz7=4M|kg%(W0tNNDPM>)##?6ywCwKCp zXYG43Ams+HLf-+@R zTy*2+vReO3vg58S4N-gzCEKM*Li5V${rbSul$@@%J5h(ERqg2`4y`6Lo5(B?g+U)) zm;F-nh$3DFDP~^TbIp6YOT5=~hImwG-9T8DJf2`S|*5<9vpyRBNLtYq;|;&K>Z?26m~nzY4d@E&K_!;4X39F=s_% zW{BdR8}_1Q0hoG?s}wAWq{Ki#gi)8V-3I zK2e-O;|Mu82>*~xSc;Z*0I2uSsok(ZUn+8Mk=4G;E>Lq=tQ=NhIR_R!vdY{1;)1`q zr#=#qmC;~UQ&*wQI*gCM6g9zqs1iR?X{ia#g9|OEcp{t-w*mmoxj`1<2D4>m0Qa#N>7(Z#AX)9>P6;klwt$6t% zcnDzumKo}rX~k`rI3ED=I=}KP26{MiFbo9oVcD1~D9%B){i|GaVuHeK;HbaYx+si* zpoKSJ)Fc4N2l&tyEioi5ldMap5#*h=4DA!-^XWq+fV+AiB`LCA8cyV>kgM*(_?ZAu z@8dnG8&|~a$cX@;GF&`k&5Yo5TfruB)i@bg#NxIB|1bMez45II+!HfiddIEh+cMo* zO7g|KzP6Aj0_e%;wU*N5Tzpc}!1xgw_DhtA;I_KBk(^$q5c%ufxi3`LMb=p?Ra7L| zm=TKAum>yN@_7mAw!eoHg^)iCiu`t*YH|D;iJ9 zatrtMtf00Jd%hrFoSYffK=m(wi!3}(9LuuXRO2wHLOkh^#NX07;>v0R!%6pNu z(6|NJHNUDK{#CAJN-4?|lML(Pkb>QF z!u$jb5Ze=3K-Y0&SSBUQZ7?-^k+)`m>Bl z3>$-0TG~36#>@+8cwIK_>qtbI;9W5-+_fH7mXKVyS1 zYYIQ5mV9`HnvLHGi(Vz>zLf?cbxueUrIHW@bQ?*+7#^i#&kkc01b+C4nQ77@*v(fs z_HvT5jCbt7Tnu6;EIgz{n%F*(r(a1~jq*AUZwZg+07bY`v?C%Wgd8YMwB%;71p2#q z?^D6RV-0491x*;nMK{W-QP&yTzmer=t1La|c9(=>N80;Db#teJiQZ{4vvH0S6G$n| ztO3oMg8N>=xoIvu1AsZJsdXd+=((T|ZIx`sDQx#Ty4TBx_UNf{kR~6%nZpUY48l)_ zO4?s0KfKdfBrpLicC2)?JC77>Ii^MH(cA_A=U&5(N8L@?=C1-_`ckyX-gulk^CI(^$eaO|EfTRY=9IYk!hjYDW}+z;+7cK_sIaI*(S$%j zdnPwB*HJ58We7m_uQ5^CJ!_?3L*kS>fcLyKZAnbJ>XtFlF8M31>*+ z6hmv)>~`8|l2~M};~1z-T!W_JrtRoDVF!ueW`o@|7{s*!bBzl7;q=C)VdK<_`}zD4 zKDv>tKrxi(tYJ)rz^H@fIH>=BaH8CcJn2EZ)7K<>;g2lKm@%L;kx^>uYP608fWGrM z@*~o$ohnk+o?;8QwI5u(OSx!`qdjWgt$LNPM)I*hZYl}_#9W1HYaiVc=cv4qscvsVno%7{KU0vXVX z04M`d4D*xidB%h@(Ws@Q=n(+Sy$S7;0YKOJ&_>mL5%7CC%w04Ryp5nBYc(eFHOXyH z5)|HxM@49=30t%#SK_hl{GE?s)-`n9FJQtVfG}Y(z3o%#sXxcA2c-F>el$cd0tYwp zqkjn3DM3!tJt5XN&zuM*cj_j#Tih^E%DO!4?+FC*keyk*=L)k;GtQaJoE#frcbbj7gFK?JAa#=u(bw2~l1I~4 ziex_Ziaxd-A}b0Mro~2Ent@HQ6eFm_e?Pr8i;vG5}zWSDr`5t4Wig2oq+Z zbtC}v_ww<5T5HNwI@5#1T60}?GKbmxNDeSE2b)V2$I>PoSmBREtb(NvTUe5l3LYyW z@}tp}p9~vMgQ%a9%an}}kyoTKGPBrvsO`lGoXKGK2;2yDd&pTfo*CWZ7Bii$G_M%n zqK)MX8@@$=mS!?XNKI5*kCg~E=uhZO;ec16y#OWKiwF|!iQ_2{^k6I%tt-JdCH%c0 z-_o_9#;MW}uF7xwIDO6b8kdcsKGGz>q*(N`-g7! zG)Odlg_?Pj$nGCU^1|DC!h(Rp7CDLtP(%zSrSi@HQ;nX55z~;hWb^LKk8kAD+f&OK zsjPwHdHW2t=)Gtj2>`uk_4faTdiS6M#6SvJ0&p{)foSQ~8t@FXju$H^@7L!K+DlJ7 z88#Rta*ijS?#Dp)>s<>{3R#QPr|WwEBYbS5XF{y%y(5I#b%CUw(|YTdxxX`Viuqg8 z>_`u!Jhil|l|PNvanJ+2=X-o|Tg=7^g59eWSqGX^6_GAb?_FLBWYZ^V$$s%Ni@YP+imfH=%tZ0OSKW zzFT~$VLc(K>;jQRtS*kpH#U_NYo`bW%(SO!2mr0R8)K#eK)siDJ&L|AIGa3dkr`l1 z-hz=60HC*%cR!w3)L~}xud-ekMA$c_HZ-tJQVfinNmu_Qw~nNsOv_VdfK-!2bYM*& ze%BwQR3vjp=e%DMVnx95k6l^$XnbN+NAMnZa8{?=w;{=t&RFgQ}*Ll=ixvqQxpW zgjlv3Mq$yZ&^*>=i=Mknm*7N~gFV5iGe4rph4XdFE+))Pe{!dz$=UP91WFhhx^F-w zc1Yl{p7Rn9fc0u| z*9ntfE&TvYfb4-TKK3lvd&7#K^s$Z51C=!CoKNjcesfx!?Bx{##{mKq z6Uc_OA%LKXC{v^q&hFs-57M&xkhNg=WVPU3^;0jS!YKFE*=eIz+z%7)EAQid-{HfL zC-dC`9{1JaEf*)+F-rjy#ocoG)ySC=Sh@cqF1{wZB;m*dRCE#1@h^OY(6t4vsldlj*X3rV@+9u(Iph;^_nUPCYhz9l#V$^OPh1l9D z1`6nBfNePPpgV$QHV>z1Yvdl@i^uuZ4Jgl;qIRFh)}A0;fd!^j1q;acoois?1a(tj z(d`&D0{}SZ!_VRTVZ`s6;>ibXXRXE43rMhRkc-7vf=j~W2^;9Wt32WZWG;GBgd2TPTD;GK2(<*XRA z7Jj_$?Y_6t%D2ZmQhKbbIeU=ZqwM{?Y(>;w=V-zr4ER=qnDH;kk zDrR`?55~^K;+xz;5H^0DtSu@@1-`VgGvQW^PQ1b|Js8#%S$B41MRsXGRf#9N6kq^*?4&JpP+}lEv=F69}NBPM1tSb!sbX_3K-HWPNn-rzrm-BjBJia8o5QCumB~VJgLSlW;z!6oD>dei5ctel4eep z96(;OxTYtG|?NPU4~Lo)FQh^X;Q7Nw&Vk7n+O2CXYwt7sSiJ9o-i}D&un`0pU~(9 zP)(=}uW$TKb4qhUxj8WJ zL_hpUa!$=e&qV{k&2>v~w(esz$?B@E6Z)kuQ*L8JljXS;eA1|}qy#@uu;nR|?1Ns- zT6m=_8BxzxHktFmVHYZE|G-*bQhUJmA`UaPs#!NmY`5-HeE4Ytx-DG{X4vpV1dypn z`Kulnz{nYD+#=ByXZGUsF8emK)^Zn(T$`$7bqPL8B1S{}?I?FHYzQ97HwXmns%nROzrZxcR?BG2QB~+QW zwAPwIX8k8{^qGzjb`cn?IQLaXZA_Jdkg@AQ-W4H8S9Llj%QQsNJ0<12G<`KKdpl|^ z0E3hdYi2FCa0H+THA;1s{4L0_(CKZ&Cd{FdDC&VosBk!$faHM@D3V}MbQO>gnbWb* z3-b(8VB^|mtq}uY_*nI>&z9v-a%!l#P2K+6xa|{z7utC$f8f(Nyyf+iSDqa6z4C(V zD~x{<wWs0%@vIl)Vu;ofvKPWVBJgLJM*j;5Y zglSRLItG+IBqPxpIFJt3SD1h^BcIrOuuHy@*^ca>YD2ku1;+hb)lw_s{K|(vEtU#@ zSA66b8=6g6U`@oFvK?`;`FJ_PsHkzxLR*<;D<^f3@!`AK_fjV??crVz{t{CB%@8AQsOUY6sDV>JoUYkw>wCZ?>EUg!03){aobW{+SZ93+H; z87*2T-X8Z&t^aK-d{8My%lkn0Y1Q1QT8f_BYh-Ti9 z-EVJP9klUb(gVEptGwxpC^Lc7RUe`iKNakOWB}QqWl~K7=@QYx+p`6?7IV1LLV8PY zTq*og$dlLgOaF*XUq(DKotxR~Ei*foz7u23Mw%Rlo}m-lEiNa~h?<$TT)%77l^vzV z?)82FQ+8*EH{0Uj7oIY0tQX7OWTh`OOkQ6$wPkBRB%8Q8Pw?|!@r0F4kdTa0edHc# zHs|4!mzm5p$1Ep*0Fdm%w2_o6R8~~dB{Vgq&3qbq0Ygu;^fru|DqmC$&5d`IkgU)S znwq;v)qWfl`%&jKV8*!FwB#*rZ3oYNU2@t}e{MoDGn(7f(wk*o_gtXqD=~d# zSfdjQ{>&0fy*`D8t8X>~P#yd5)R#G!LEL+hP98wdx$+jO8pcdRtp%)c_9*&$24{+{ zbLS~vD>J4pl_NK#aLrHBH9wiWF{IJRjLuX1*cbV^Z$$5gJ{5_TAeft(F=K^Vv>v3u zj02l!?=$7Ia?$l@9}fWi-F##_V(*o&DDw12k5DaPhT=glx~qyA8c8;P-Z9=gKtZ1P z=g^%&)mCoki8Gng4Cb$8fOAQSm(VWqI|ez&mZ*uaSbIu`<#KRG-wi<-7TEvN84q!RUf8lR}ZBen!GNXyl(J(#WZ5Ny1JnsQ4gqXU&&t- z9-0{(x~$k?5tG3+0idSg)HWUfI7jDUlUwdWhKIiZSh5jVx%q5y_cAPH_?uWi4oGdmSgi zNP7Ionz8}PT0C3}llA;rY5;)d-y*TaJ3DxfU6Zj}9W=`_nq2&AF5V>yF9mjC_>yj= zwsDSoEE6!MXZH0pem=%8pfNMhIu=|QXO}h#p)cbhrH*sVW z;)^MqRTDKKn3AO#N|MQ7HxHYJ8!nhBW8sAz#U*E^1EzThaXB0qBCxwuhSR+D5*Y3O z?NqWBL2`1@d}U+*XwA%O%{>@B4FLLkcb)%7xV}zk+M;1%U2z`hm}4*Asz_U+GqGNyhg0 z*<#ndohVd}6k zCjh%vBRK=N4u}9&fu{g45r929;>h|h<$uW#HLMPPVXdQE#R8_FbcCnc$Xjv6KDtaR zsMG{c^8gkP6-*$zGhfWcH#XUR4N0vsLnSJU{c7jy8%$A{vK1fB7X75G-gI}=U;baA zLE^bo@74!@n2nl)tcAudRtxXZdm`rwM$O5t{T+;1005lx!AG^VluG8xg#-G)L)nV^ zp_*vyf^5Z4=P&-%P${-orbI@gtVX=ieRtW(p2Z|0w&#?j(*p^W_;P6KYP5_5fV`hC zzUEs>WH$PMWZ8#G2G9m%8{Lfgz(SW0ENcWbH|KS0KAu48ckPmUZq{StANuoq0cW zJ*lUX0?JTpvHfYwAv-1~EW_COQbN5CZc|oVM4^_TziKUJU5+*9dG6Ob0uJ!d_7?uf zr;^1_}QW70AJ&~+TxfDSncz_|t^*Rmo?M2hUPkBPEqLZjLtibRA)v=B4X z^wk)*023C{=$U98gSN5MG%U@la~d^O2gYZZ0{u5Qo(mgJM6}{v>WcRuYXWN=egR!4 zX~`Y1s?#wmVNPT&Hns69PvGK-uvqg!sc;s`UZ%{LKh^{ixn!(M5goFfq`2%E(qMN+ zMSJ8*Jao*QtVb1?q%PH#s!CIr)ATDurSE;5cRgCJE=NzJYd(nPHuQJvjbFj}W3a2o z>9BOeb)Xl=cMcBpE<3piU^ST$Ys8HC*J1HZa(M5^OZ417n;mF&1dus=VlHH(u`_A; zZEt|V(3sfJ0|je_#d*AiJYyv?InG48pMYy&Tv}<8?r3hq)Wsq?26~}OMQFpMGT8&! z(b)jm0uTXM}LzxEnGAQPe?mtdnx~=*5;S3f@BlC$ ze<9!anc&S5I`fyltft>U;}%0T(X2OP{}1^5Aq{3gnHbD~A8n9LqSB{Q4TA`oLPjP8 zLgpL{eP_{g+A+w*=MTAPXPteeX&8o21u5t{E*^odn`*6@lD_DFGx<~#+NZm)c;*@+ z3GL0^{APP&gL>QNF|~Rzs@AI3{W{kDdSwOxoTKxI-t^~u>=^+bfQ?ZcCyj8$*_bS{ zr)cz?+I7E$F#_57_-20YbK)m+;UHZ!c2fcw`v<0%$f`pttAiAINUV6Zc{1zD5vCgckC9`j-^+37~mM7e?jDI-cGfHvm@m^i>Df5%pSy~07TJ;gN@;<00HykYY!5TE4$NH6rSy2Xwhd~mO%O3kQ5|sZ9ygFikUT^-jfweGg0P(%(}TPTX?H1pj|l1+rI^EFOkjdi$vK? zzp9Tsua7)u)EHZf*Lnom#Wt0u<^9AOq%dM)cJIHSZ5*10$YtVME>f6tJ=ywAQIwB-UnX7UjA{LZv1U+Y<{zF)fO?Gavwv%W6Q2ZpH{3 z7;VQR{BoJ+o`_c5Y3X2`JIXJc80d<*(1x-aqoW?N|1@EO8Gc!i!5r5Pq?}B7Wz0|j znn}x=zXof9TKisURL^<5`0X&nKQpt91(F;0*vdOGZZ-hq12}sGdEm-vZO6#T05H&t zvqydSner4*=|HCPnZr7KDl1WeNHt`M1} zlAe#3L}EjyTqC5YpM0jc)x$HY71u?3sD6P&H#RX6h7CMwfWhDoXQt`pbzm;@)F%f6YuK1;F@lPQe1^@$H z`L2J|d;hgqf`>1ihxo)68aWF9jh;*G({b@AECSA-`dvQxQg-Ffqvurq+#jRf-I$Y9 z@6oURFdIDwSu-`aQ~L~k?x6U1&BWDm3|$mw@U9GK6ZuUMlrn)3{H#8=FMsqG;d?)N zPY7^;!JyBTA6Com11aeKeEXO6{s&>}C1=dUB*>Dexjc04?dqD3i?Abz_scn7HJe#a zwkcHJ)0dJcL+dy+kFbrXJT0IMEs5hq0j(3%HNTEA^Ca)79r<&gqX9XCYitE&fu?9U zWmN@0F2+sqoU8nwY;p)lPkfJV4^-uu`X5xRfowhsN8ue0%>*pLrE7j5uW=%7}2qd)10} zt1Ir|{ZHtp|C}$Lbj1Ro5fjz4D=~Q)jhv2A)6g~!O~b{Z4xo8Bnunu2G3tHjy@0Nh zICq3k@8?r{@#@o-(vst}Mzx2a!Q40McGs}GFD_j2oqe6U>Ejqt9$D+sQcF9sCOeSG z86K=P0>>9Cz#RQ4P2@*Fl|UjQyHI4mx>;2s;L~k}t|IF~5EpP^fZ6wByRq~s+yT+? zb7=kzGS`mp;_VMv+1n^pJ+2hVTt!Y=8WCl&rZ7Uoc$`FZ8b>+<_Gqg%PHspbP`c** zG zhJm=_MCkeXN2JEhlxj{NwoW8A@>5D6@o$-@T5HXkR@|oMT`kPt^9=SpZFHZq0We{8 z7|mWoBgRSQdg&w zGfk$i14tuwR5Hy)%nbp=2?;t~5-bI5hJef55$AM21v9*{$yEBx&+SVmpwir`NJGt6 z`mV)M4d^M>r(&Mu+rLD^#;7@Wg7bXWKjkm|PkGQbF`IjrKKvM;KaiB6k35Oyc0Ts3 z-uJBnG0?lep$|Wf{)?0k;WQ+mUwxFuEYQba)Vuyg6uE}G50LCFepbB7go7di8RJL( z8bDmIle`HOh-=T7)Re8J6IO>gfK!ak5c<@KU}JAMVhFLD;q}@;0DyrW^qdYzC`T3L zL$YmRw*HftvRX(xyDxw0(>Qm4gAf${A~W&^fix%p^{)1Ub0FYJ1s#4Da`dJMRx&JP z*ZKZVJr{P&!KM@_ID)LJ(v4IGAbYAJmloG^9SUVRc2d%)q-kQGfT39}y$54v13=!# zM}FjlU_zl;#PWscfRnXh0_>R4-v!8)uu#gIb79^9NPJu|ssItqxR$1^6*iyV!#n;p zR9%B5GhqD=Y<9xd83OJ)rarZIPN;I`ei1|TNy$}6e=sLmYj^O+eKDnC@Z8Us_bMQ6x z;1~^3oW|_THcB!R5zo9vz4a4f0(G6_!<*pOVT?+utkg&kY8#6gYoKc2ocC?u?cej| zI|!mVbVitX@!?L@q;Vx9r=;y9a=2qb2t=A#Yj?V;q@}G)Z9kXm&>y8@jW=Q4b@0Y$|-$1 zW2HpjIeUcnKPTulbmW=)+hoLviX{-6uz9mr!I&uZew=tE6u;&b2#AO-BSv$Zy6$~w z8wCJ5$A#nOu1sc5ZjB~@=Byg3@pHL}tMsFzABHcd`ydSalQBFEjvJ`*^&=r%RYo*W7Lcr>(BgtVhHKOkA>mmN?6f-!aNuPLl_qh)i?YW0>d3TxK~&U zo^Vr>&5C%YkSTF95Ru<_7S(7#DJ+0Us2#d?B#Ta*z%WFz#fA=O`rdQ1$V%-{$FL$0 z<^T3e@`z!AqM&_7?Uw(6ku#tN_~ozVTmD*_R-l~L{2DFz36MhG$KC#HK+0cdo!V6w z4?9N9&aU}QOuE9GKpTFS&cCXe$=-rv)hvkoUfZzfba4rY$FGMt#lavRCT2B7i2sZd<7c(S8ohxI~0PXthwjAE!Uh`A5*}taQAi!7nq@0=XTqAQ=6J|lbo_U z_bPUL1Atjz(hj&7OWthI3#}t_yPP5#HWIaAu6)+)FHMJE<_Z_A+}|o|lNR2I)-eFk z-^qI(bdF6}k>YSw%FL!VntnB9tpND!t2nX4QNoJSSAyCb3nkAzgG;Ww7vtswKwqcc z{ypmN2FYDdN|6A`t3H77^8tW!KJXOpe_Sl@rr{Vix}y9X^?sN$Ki#K!G% z4OIgehd1%#e@cqjZ(DW8h0|F8a~E*62B}Q7VYKpHwCwE(HNn5t<+$~(mUg=HQ&uZm zs_cIiwvT6XN_&2molbwZFZMJU3jM&&cdBZvUI+90== zuv}xJ-L1PM-X##x4L|4O98@Qn^2^>v3vZBZVuxPD=5HCP=wz4YgsiEjz%FUo(9IPq z93y&|8CTwkaW-K0zGtXP_}c=#uPS`H@-~c_#sKm<4sF$1!yOBvKmaBX&nz>Vh0pOb zWhrT(hdcIju6>&=BFvLEu<&`%B)Ce#hOjge4XqjuwmDovdkZO1rj1J|V5HJW z*$s;^f6FH`i>MvaRj!SbC71l+s=^*A1C}ZZDB7}@P0OWPTn?UdII8SZz5Aa4cn4C; zXfzE6h{i3eUHv=tjelr@KD(qAz9*Z1w>tpyhNP0)k$cY6H~tw;ZnusykW!Q>D0>B} zod^uSQ77KtBP|t6so?Y)3Kxwp!3)Sk2(zK6n6X!cxJh zc^_XmU}8q4nA@aUt2o>8J_#ikwc1kX1d#1-scZbQY~9B&eu+FdwIhG>(|qoLhjh|x zWBe$PY#wxav=rbLhBOzZcl0bYfhe>g4NlM+<~{);w#Hbfc{!Al0f(b1+$X;iC8#3T z%&Y>`LYc}kzrtQj7RoiB`Ugde8IoUkwpqWo1M(>sod5C(u3#08Z`W4WC1QmuY~+42Ruh zRiyfIUA!1Jk`~=^$!{fT!~|M)xgpE)0c`(4Fp(q8Mb~~v&TsU0^Nxq*$2ZOd8hR=j zMHK(5*-LwNn}Ec%q^xHLYu|@OZ#J^ML2pS#&24neeP|s80G+4!g>RH+tDx59X*@6* z@Y62X$G~Rhl@f^j^dZ{v1Nn8~dV2GR(KHNQXZeSJ!AG|@f*=byB-(*vRJj=pTJ{zhd)?>t z%a78Yr~Sk$@I;Nbd-GVM;}yK}Jj&){u^T+WfwJ?oU3yA-b5Khu$=PTy#4x}~SLYB8 z-z24shu7bb>!M==&=FvFOmKM15CkA`qBx5&asW6A8dB~^)oxS$>y{*q{Y?#6+7Me) zba@=xzaHX8HgURQIFwYn9gbZ=?#dmr+uLRE_3}{ayj1=+81Vt7AL^{2paY6;bVbnNkoj_w2ypH(1LnE^51e%A-YKtOdL@JXLz z1oPM8=F9MKIJ3&_`1h|9NZI|jX5fW0mt`QhdCTDjTo>j$Gz17VdakS?^q$qHcbZy| zZm$3UvKP^C@0o;PVo-2=&I@MuX~vt>nqNlyba~_0^ZApX=B^I8i-}A;H^>%4GPmO~ zV0Hk;rluWyutKEj$a$&o)yyh_$gvG+l1g_(mty@YOz(2IzjAUzn+29!>^+yQmI<7< zM?r~*l)DuwaJmQEe7ylPat6(Rn_UPxnD2eS`DMx8@5U^Lo7q~;1bgo)737bubG?tj z$)<1t+{&Nru0j<=gr+uH{7!-3eHVD=cOniKWXPbBgvp)#2^L5Tf&PmYn)_YkkCq@D zbmjXoaw-5^c#U8BXVlC%vNr_-#89j5!>DNhQ18<_zQ^Ydc)j@I*Yy4kII@ZRy8upn zD%5`wc^@zwP@s%$Dz@tq#6ln(;x;4EA>7nPH~tq|bi1Id&f~av5>u9=d4yVfKZE#% zucDggLektfshfTs?UMoE;tBoa=W%+!F~g)jka`<_OO|CmeGHA@^Hm)q|pBWL;w%)Amr zV9kfOQop@gy=^om&O^&^TsR@2rGpn!{!d#@Gp~?V9NkWPo(ALui`9vN$1&Pf?Bp|J z(tL5$o;rwnk72mcwpLx4*RA?!Zo~TfFfu-{Cr31i0zC)-&23n4tpve4vIBdc4i_bc za-^bETvrW0H~y<$j~+>ZmX=_ttYn;5P)ZfcL`9krV|{C|S@l*p&MiGCheDaOJ#1RM zoHRfe1hBxZ#MNC+k{JWe_-Smy1-7nl=Nm2zs~~#mkAti*B*Zn4UzcG5nb(SgxMFO^ z-!98Ee?2LQsU0j$rMq=QR!~4{Iu&i3@-1JWwu$CeQ<}V{>FQ4mJpIWZLkk8=M5L5b zifb9yjKUz;AUtq(j{HrR<{FqiUId2uBi#iDmIzRqJr@bafv2tUZR%CQfFQ?A)p_D9ft|H?2$A8Acxs%9+RUKf^74K2At^){pA9g>ePi_})S2&^O z-$HZVBs+gz+oE6mYB=!t%mJJ^P^qfxHq5TdxNR)k-7hJoYzRcijh`ToO7c=+E5PLC z>W2S<$;(6@oIap8{4t%_O?UkfW~@ca2)gFO7&cNr`S}LyqLuHWYd(y&u>f%Kg#O_l z@_}c}d3t5)Q&z%QfEdmV+4dPXxwNJ1wkLTok)z(%z>WH2PxU^rf(qc0j_=Z6{aH+1 zp_bpluRIm{Mjg2x(_9`HFz*tTudr1lCf3pA#mrhOd$*e+7hpziP!L?#)JoUikCBtg z3$@Mjg8j;O(2Cn+H{kI-yy35HPWYfTKq#p^+N&sjPz)2!UsE_@ct=ZbVu`MH7JHs@ zLYfnovAO0UaAih9Z0TF%HsOI@KCn3?fC0MulURK>0d!)&{`@_jp3p1N)P~WM0YKMr z`Y;6%_5kr$8tuwT0#)F~`)SsdCEaWTFhB*HN7mep@v{JP8tp0Hu8PEoG0?zcRaF8S zfd8~)R$;drmEkwKm!>MuNRis`_r!>WLkM=Hi5cTEkbolBCUTqK9IfQHz=Xq|k=u;! zIVIMeBf_)7{w;NpkaKQ=!&1%kv{XtV>eBBqtExI;7o?%#JgSvORknR<rhZVVsQ zpZlX4DK-06P^MPLTzEUy@L`6m`_?rJb0Bnx5^I2)%p(6bgBHoY=c&J9v_sp@ql z-y;mAS!)vjPRkOTQp&D5xL1@N1Y-5FwQ>Uvq|_VhoSCOxgSodD2PB`~%iF%D!uSnZ z1Dw0~MKwi&UcnIC*hpkeQ0-H~jTxY5{F@X6?XuQ+j1uMX=-D*SE>B%Nu3!E}$Q(aU zZSXw@0fWM)wE8|;buU^+3%`%PsQ>+saOMC5`r%KhxBVW?T#H%@t@?l( zIaNRM-!RY(E9nJ20CeN8(eign(1^2#^2a`l{m+0U43s%xXe^gtv`6FAf)Nj4P1`7V zl#Ux$K-X#g!0+Mk3#Q|}%hm~{!o>H6NA!gKJA-Xcx5057UTT5}001BWNklKSciyzI&Ky% zS}%p1KaQP`!LFhkE{92J2Akl?!R}~9So$UjjnLP{N46!6Vk;hCwHq(FNv-|~nPul* zL#-Jj#tFX^!9;Qncfv2f8O^N#aO#lW{QZ<;cF=mgT;-p&fkWXbvZkfQMKWn|3CZsv zsqD`8eQCZh!12^<-*b*7>5UDICqP&E%(zito_!&&LI%@ptB_*fD>)rWFU!>9V zY0N@oE!m>?a@TQ*qkaAWpFd!_&E4YSIHOewUjx3GVQqvpG01HdFe#h5#(h>QLoF++ zY6or0Fp$lYHPf8igI9dVxX%iTgQ<;{;DGh;DKzIc0J0!%ugeK5@%J^Ezaysl!AWw# zrC>GFMv99di#H6In6@6n#sWaz$L9|w?Tt9vHc9SO(F5pw&9K6@D|G03&vYj8fmsWl z0|531Mu{Z;LDWL_OpfRgSrAPO|H}U}$%8`8b$8pNvKOopX#zMxu_3S{*r*i&C^HY^ ziz%6zbJdcqct6_413a0Q8_|>(BJzF^|s%m`8PskwD7Ij=o$L)KjkBv z$tmQ?%hmc{#I!4=TaNFjKlJ;2YQOPcngD~^j?@H9#G()uS-4^Bum55cBxfpa*<&4J z)3VJGd3F;P2qkdCJG74q8IlT}HZN6aGKp#}XdWIp3x=Agbk|v<7qS))iINizASSY# zoEea_-L6lFD9f^{^TN_uZ~iDPyG2IJxnum&_vxmO7KpYMEPz{o4U;5H2wr}Owm%X| z;_|WT_!jWI9IX(A5-%jcNeO2%g{@*27ooS4cWy`!THF-a8C-aF<(>Afp*nUxhBJpO zI4%*8I?uuOAfs2lil!`-fYhC*c+b-w)r9rK_Sl5E>gJyptEs<-U-&kyd$;F=71Tam z`%{>@#8Ak4pGALgSilhCHEc=a!^{THh6jk@fub1I-Vuyb5%MJq>R)&`+gr2j?t}nw_k%dNJ zl8bxEbW_fN=6YbXn0V`xm(_0k1STvJ@`jD3MU`jhC3S4ifAmGzEo}*fiJ=$~S?>b? zQdDa}ftfCO3ONe$fTC&_W|Sl%!kGhn`W2eA49&yQbBh+?JQz`(223zxCY z!?vGe{aiHEb0xQv*BWJpN$Ul|;SWUC@TfLw@3 zts&>sjk{mY*%l&ZDds~+kKI_2$_u+X9d0(_AnIvILjy60fNzoc6qH%n^0Ly3DQOoG z!N$lFm?p}HYoU?Ypr*#{8A>WQI|{!BLlcP)yfI%IQxe)g#UF=Mpl9FfPPH~QwkE14!ICL8xoV~Cnh@>GSL5t{?$~ULb+)VBH>^3gS40adCa?16i2Ba) zD-VT@GJoCO8l{PWY@S^JWY)QlW?|K2Wa7zS^HWjmABSmR^=oJwz)Ds3o>Gb~9z$0L z+NYuGgx>Z~97MTE)M2QiI6T{DHuRf!T1MJsgkCzes|sz0sxdK6n3*OnS1aC!S}Oqb zoY7nV0R!EUyAgpVhL^V-d@iXsHVM+l447L!3>!6AYu4HXe^8mSA=e2fcX8fdeUjJ) zd}|pl`#*ax=$F1}wvB~MK!K|zjOy!@YDP>f;t8h$Wy(xkf|=`R$_k90i4hZ!59mk# zJNEs1vAqR@FyQ|a{{!cb(ezb%)7NnP<>W2*S#S6p9p9m@{Rl=)L(2%d>U}h0EdUxn zPliSJ8U5UsdDB0bV{DnbU>9~{K+K9#B8xn6FBN|>%ac{TVl)mHe~jxYKr8rB9((n< z@VT^ZcecP+@#J6g6MvNukhUe%t;_GATR(y3;pp$;hd;wFKLGarnNqT&-@SV-eU^l@ z5*yW{M|)90f!oZCdDp4+KO^zbbRAp1gU$aNEAB|Mxn{0@H`cyaOr{GR{N$I=-_15# zIec_<6jI94hImGdUUN3jUld^_&&u0r%3=Vh_vt-Pr(~qcfeBEcq_1iHeRBI#Ugw>U z;m9`MG<&Rtv^y7!EX%?wg!*waF<~wM4D{mIF0u|m&!dn_@AxguT`PmDV;^t$6514_D<&u5?!g zo6DHfEW+w2GC`P>iwmmA=eO?;!OXDoAsMj+MwMuUGGnii-5BSrpsk#XNoLFNlGjL_ zt_;YgQ*)vw-4R!GRt?=IyQCB}sMK&z?Un|EXec8r)f0o6Kqa-5O4Z9sG;UdK&2OM> zBJ@E1^55rM|H>KD`S!2U#H-Zk`Sl%N)!V;3)Di;|$bEJ683Af9;+5b5_i+|x&KC?5SCoRLNb5lj@1e&}Glp*iqV?V+`ci`ZOi-=0IQogB;ru-l3 z-aFo}>+#i`6AJ*^+EY?v6_m5+@;nv`Ydcgg}6s0{26>0q%p#hvYuU zeW7=9A&?MSa0+ppV&houMa7njWc6<8sJEkXbbhnmAG2m=&FtB~bB=7_y@ANTv-j+o zHEUL%nKd^#Po}Pr*xh^`{zjZ~r%$MNwt#YS7iuNpQg?g^;QqdlyH9g<^ir55ySIl$ z$0(6GMZrrcbzLZtGa8p|DR^Q6jHI+8A~IAN352wv+ab+d>Dqf`!88o@+%a4ycI9&t zoY!yTX35_s-y4$TZ^3!8R?c=ABwi4hey2mAQB{I(psD)51GZb;^ZE0PG;|S!*Br zb2{)6f#f_M)h45akRdv4I|#1rLnFCc*n2O5!6;H-yA~CM`AgO&P2yl@9~O`M>Q38) zjT*oaBFTJ!qK)Vn1Q0WfLj;78#5;_S>I~(TN&5?LF+ccgJ|hBS*IN7VU$&dP74OFD zKOrvDxl?%TuU%faWTbv`O)gi*PNMh!9@3hbnl5+Uy1-9-nIHXvgF9NHen|4|k~a%r zM|R_7e|;@`TxsR0kr4Dc5w3p^7QcZ^#Q=`Kf^}al*PB$;T=p5TYSfJ57hUXXma`1N${+vLpBvAuZa9{siuhM>56 zRQC(Ttr~~w2QWelv%T#X&TwVap4$LTt!KbArC%0(QLrLhvk+UT!083ep5Ze!0JQUI z(oeLKEwTcJGx}FS3o8khga4RS^2GDWs&(gGOK^1Jv?pej#zY~Bi?{rjL4S?p|P19D& zdQMV{INSTHMk-KUdK-GC0zhkkPwtKo)}wU2v&q$Di<5iu5e4Umea@UPYPZx-BQ^Gi z@+rHEV>ohFiF>JooO|7C>qB{>1C)ATA37>%3tz0wk5mUo63p@9QP!R&T;$vs!-!kI zwErN~rH7?0GMCNMnSU+oz_8YmF98(G3~Tw^X@2~3x(jpruhD`x0E7i^Kz|>v{__Nf z4j%!mhFE@^hgs2$n-w3S8GeV}{%3jZUs1Z271$vZ?NN}w382xab?wvvU`fFzT@Y1n z7owQ5Q9lvDd)M&jiQM-RZ(l`c4&{B!xtT71t1#4|&Gv~u(|E`wKUr=xo;QB#6lvY%#hz246voMC%Aho2G3*dH>hvB-X`R5kqBNOeybb5bg_)|*k0cL41$Kw5OwqW zag$$F8$6Gv@4@rm8v+#<&f;Vr#!SHAd0zWX9NAr_%5)pQHea$5^VVtD8jiySI|rmu zl7AlCNkW{Z7TcCKd_iu?4sMlfMowS>4$9q(t5uRdGYOV zhc;BHTkr8tWw8M8s;hKss{Y(tK6#@e0ligMx2Ip*@)|a%?NS~|B#+xEIS$3px=BpfWhRi0rY#6<^Np&2h+ zf?exBcPXuWP&p3M5t|_i&B_+9WD``#4+iPOM?p$<5{;WDhl0+Z#1XZG<*S97X3|v{ zB{!?$)aCM8O{h<7~8=j>LQ(n)lS8Q?*-V2;97nM%}3k{^IU7O33Hh^*Z)n5`u% zndRIbj2t%z%UqC)gWQXCe?^zf#l*`{b<^cPhy%~@?k6Y=mV6quknK^B2I`R0+kEzD z7;<|G*8-icdZ)Sa?XvE1?zr9fH6G}%%~WE#W%?jeQmNG8h_uJ3EQ_j>?2ZQMksE@n zgV~*r^UlX(PBv#6Iq$1uw7K@jFm@^coIPsS{w)oj#js^#f}e@=hzHRcMAeB2bIpgp z*-n0Q3j=3x>Hr_vihb*O|8snFC+fSjh^Sx@3t6_;oQYw*@D6j``!HikJmufI0B)gU z6gs-;ve#GhZ^hoVcJ-I+zIECYFf5yCibLk+Ep5g6Ls!t-FNfV!ps~bLW$k+u9E92x z=)(my_lFg7D3yEhgSu4n5djT3fVilxZF)z#*`bu${F6kP5*DT_?~1q6oY-$4{39IR z5#TQ%`S?Ek>;J@Ce-(4C#r9|Hw|^Vz8ky+z*YQwq>Q$5=emPv?L_{m!Meg#}IK$WKGbOznAr zW?YG>3$c5BkstwZ?-aBA9eyKX3okr?fBRE;)#ilumM3}ZQ}hEL!=$-*DlYT3x2?0n zso^`^*Dh@xf;T6@S+a29LOMwtDhCjCn~$5l}#*PgQ6EW!rFV6t9LQqvbX03l+c z1C_~#+VZKlG6lPEsmiF`Bxx^L-CCK$I6gu+~2K-=lvR zXjSn>7Q=}qq7Tl?9TCh7kX7`rB(H|rPm?FV5G8U=TV~7FLqU`~VGjKw;Us0Bi#A7- zJ&VMka_5C9cFfE!do{t3xEWV{w zODstC*S zj;{McOg*zL;_#K>?WU4z{+0+B+3u;Nv=iOl*d)t=bbW)ApvlF;{8hbfo@+xf^=aV; zexD}K$LwoyvXAfkE!y@(7-D+7z-D2R0>oS+>SNblRJKp62*OMB}I9XTDTuFQh3SI|)Db`#uzs zRylQuzy4`_{WIwu0HQiWyo`EODp&GV5E36SKYJfPdmp8k49F0IJbBRG|HtNCzk%K< z*uI*-`PgFzjlP9-VO zq{MA;gKHF_@B<7Ylw2Bq@^M9Q_KDwSLU3G_`wU^o%*g=AvApm}jLK>|O{3bW8Hr$` z1&@?4p0GvBvu7Ns7Y*zOnRbC%Mg5#Y9@8AL!L0TFWa0HN(s~zMxI57`p$J5pZ&(ZR zxbo0t>U?;SD%5I}9odnWh)N7Wpn#Yi9Bi@_wDQ;fB!h3kJ)=eke}rY2STK{WGV|Z+ zZuT7Mx4KviV)wTp@eRj_^`-~}wTdbagO4|yv3t=7AQ2xyK?W%fIO-hY%B!Okqna)EF)o7Bdb(oKB&gvwEf!^8Tg`PW#zIDWmstcVx*`y4sm@dh( zFr3mc3NjJ_g#ha!bRIUgRtM4qU1VHs3hOpn^a4s8s)1T|x0Di*k$a{QQQxxKswP!3 zs56US0I(9sjLO#iXXf=CAAV{$$f(i0cv&FgxE+iEVCO13G(IYotu|PIaj}nE_XLVGG2L>*M3nAT`L=6W_0$@oEvH8 zwU}}RT`~vVWAlSOSs6T!{=aWnKUViG!?s!j=H9}6f zI;}L&k2PNrDkZU0IUAk(ic%ZfTJGD59jg^e*!Va!)fV7_R4)pL*!=9JxaQ3qGTL`^ zp`$JLwb__=z8|L2bDR%Bo_c?_a}>?G8hbamO?8QKsUw^d^b!%aJb?`lVa`(imTW|9 z2oncP*fi`Kto7Ka{~(de4CFbi^p%*UIcKN_d^dXgT#-2BY7CkdbHaSr@ft5Uz&u@YuH7(eE=nlIGBd_{r|rUf&5K99GS|W z!md%4`?uy}421{zz$z6OB&>G5-M{IzMN-GH4N^=($4F##0 zc{4`4duGn@(arFteg+E&+&h~tnePCx$2Pka2iS|uu|DFWbdp;ia90mG=`3jjELZvi zzb()ZP#9FfZ^?Ufk!&{+EqC>)nkkY4$$(2cQ*Ms{v?QxRD>_ebIqELPk55|{(FK4x zq)!ONuKsfxGmS308&uJZ>&&$uvaA0LQawkA(|^=0D>;1b1hj%l{g!OBG+{p7`ir<^ zUI9i^+WZmXwcAt$0l?uX7$S5&30F=4)0@?JO$oIYsRei0YW zc=J2wB(v~N^ZNgRQRADS1sH?papnj{U4pJLXkFm7Uv5457p^Iz{4ovH@C!3%CXO3< zM%#4xo9VLGW9GFOJwA~V=TGylr+Do@#5{5VQ3qbM_x>^_&NnN5losA0S+hHPFncA< zUP*WUHyqx^+aBRm3 z-^L6-ZS1-n_eIXh0O0oLf`(}B)d*7o*Cy-PYL%?qSFXi}pm5clM|Dv?Hh$A|)biiCc>U`C zKDoQK{`2uIhXan01!0{3Kp;Y8Kx7vDFil>jzw)MIBVpCqU}zwHans=vYqDS15qO9| z;FeT`qwMw0;> zz>skX1ELgD);5!ho>|sxMMUKCi8T}=s;WwYoXp&^G0q3CbKr#z$+3HYJCb3m0|{2` zy&<2F-FqE=kOQz6G|n_uY9LmAtCgn#rHwPuY@hgCHDNxcEQaZ%#qXxm2YBPx>Y^eN zO^B`f#L#VU6`hCIe;N}P3bZF*!Pu!Vop5&`853(VW5FBEE&nat9hp*o3X=QB!$X(7 z8H?T!Xv-wu)G*e6xb@I)VgGYb>QlpPV+qYzLbrVs=T742F7DgFd!NOwr|H5OLXK*`^pTfg zYRnj`Wr-^@GlM(_MHV1{Y!WXWQAZb3W?o~Kz9YY2SAg}sGpMUaPRf}My7Kk3;3oGb zSf$J`nL~T>p#A=zkg4x*Yb>^4^hC?4$isLn8rfN&8}acsfRbD99;f0fvZ!{3y=i7^mp5b&!*fGa2w6g@T@P0i zYG}CVjkw@&$jxv4NNOU6R3O~S3EEYo1$b&VNtD4B+Ad)`RaiuRwJVw-GK#E^HWqAR zC3^6f88971)C$9={5gEF+T^mv3M2FyM`WFksEcBQ-oH{yasPfwr2(YG-?M{u`+a~M zu>i-zHqOC7Wn2nuCYJ~S44Ap$8ieNUY&E-Z2Nt$XL-q)Ch2CO1B{mk)2Kk5K?&rm4%soH}=m`+V^D z_zph4!?|_@a7CbW7cY{uGraJv^1C&F9pBZCXohVH+5G{gc%BV#+MZji)iDtf^-PX? z^ElFN5Ej~C%2=YVlbL00#jST`#w+Wr!6l&}u<2PNNkteG4_gk)*L+~T{r1PGG8)dX z#w7^xSsrNl&(P8jz;sGKUY)oJOOQ`QgJbc?dfZsCqPbc>B@jX;^ zTPHvmQxje_8W`y3)nDS(U*ZY#%r$SPg|}n;EXnW-!l?0>xs+xurP(X(=|kD|L~Tb{ zK88u%poxO07X&{rCLT-;A*BTA45hi{Ff{0x_4t=;)@)?;1{J zI<%c0{xknhL{eVK%b+2(dlMJKTXl(zUaO-U33a&k)(N8`07R5TsT4rk4MSpN`3i2; z49W}(HtZ9BM^AoPv4)QVNHs7sUHdlg6<8eHitVeD#x=E<7?a4KKpQnS<`JnnF>$u` z=mdvKO(pG(%*4w|!Es`aJKrcQJ}A`-E+l-5`q04)AXB@^Ck5IXQg+qlZLfz^Z3OVO)HdRyHH*$52PORXsqg8px2~dX>!;R5qL{F0f<9}Vz}%# zj!#Tgfym{Ck}PWE^9vwr0f0Z;_$p*n6RR_G$i7AK(7QkmfY?MKL!>wJ+UWN&7;G)M z7>Nn-6tx29f}Qu&1g)xT*h#6FAi@Y zw&J;zGaiy}SI6$?$7} zIjLaT4i5Uu^$ZpP#p)o@pF1Z5v zIGGY&K3W@m<8s;iByYKomi(wYAY@j2#6I|cl?h|Ua_Srl0Nld)Q}qhL$dLJ(x!m0L zDNL9zua9nRJ@#2M`_|ZCgjPi>{$q;XJ`^IurKlJHy5?PU&3jOF1I&BZ+DC`JpqYsH zTc6}yhRctn>Z$!=G>)Cj>050`#d6I%G5>Yw=*Fej(V3&X^`RyJlqMtqeDGz0Nf&<@ zXO3atdb{C1-u5t5IDnSE3+GPR?T=-*!G^KuKZuBq?X-{l5gz#?Oq@>(Z#RqXz@!D} z>H!F6j@lVML?8MCB=g(wi7qD(;hs-p*K-1G__A4;bI@zGp`|`R!CxYm$%G`}7vUt` z{m>=2rV6U^$3cdQB9)M0boHIG&sq=f~$*W%a-47E@lQZYw8Hg;@*#`r0)8`pzF;-TZ0W(%Dnp@*BA2H`>=4 zPJFa%<|_Y$rmv8MV0I9#^C3h;spew~ntL0Kb(dgXz`^G$z{;k4Vv~3?@$74E#<2&t>zfXrYV9u>+b*(x>~i{Rq1oWt*$DxO8Rp#!tJX)x6T63#hu#Jq|Ok#VgO{AL=sw zYFhCD0p{d>e(oRJRnE$h?fk;m=+=*dEg##1-Oupm2dVGn5Z&NFBTL_9Zv7a#$5yt5 zGe`KqOW5`ZZ(SAAn#ZU_m~J1rz|kFibcbE@B>sLk%~pA0sgUFaSY7o#qsT->cqUHx2jH2AiK;?$#-`HhZWNLa1y|FF#B)UMOKK|Ty+ zw{r3`y0xU&bA-xC>__hd31C@1Yd0@?2x^yRS=xs&4nNi(J^>2xY|lz*vP2(TEV&Ye z77G2vPm~;{jxvr@&S-KWiVve4@YY*9SnF-NSi1|#fA01ard3-*RWgs_(5uJ&P# zhyhrOnu$=J?R=Kpzb<1(B-26{9z3KsKvQ6{iiiv<;>sn)ja#UR!j&ua3sGH-fGyU> zdc7ndY8AxcJV+t)=6_;gBtTNIWYXX+7&P$;*+N!z(~_SsQ1zKML8u#5l6G_2_5m;7cAG5nUu^fER$y2=huXN-f7n z>=Ij$9OfqPSDsIpPd9y3ZU^c=WS{sGI=(Yncw?s0r7LO1 zGMaJ)jhl(?UYH7dSKF-*YAquF)etzoa}6Eci3{gYb)l<=dZ%$|u0%m}jiH-<7UO0B zz`$u<^LPBp3sONf41jZu;J3uQc(2|3eLmIasEpvQlu4b9u~VySehA%T0KiljJCznq z#iG0D4Znh8yLiVFcKtnc`e5uXMt5s*z`hOKr+3m8^b#Wv9DCbV*de|f)f<**c=NyU zwnu!6GP%TYsVU^R3AhGS9Ff9H6=|5cgqHr0n37x&N)!xNH5~S`PCpjC5UO4{$Lqez zyVgkjh7scB4B(o#(%kETZrDNI_#mFYFF@@qv8cK3_&LnJE~2TV^ivxxfGv@`g09m6 zq2S4|oL6KeoQd*dNFhRn7Y@R@+&{c>> zv38!E9UYf&;;@2b<3`<@BR=q2jl!eOLgC_2^|k-S>R}LPVVOJ*FQ7FmHiMT`Ts4O* zif~`i=p$o*cLYl=Z>rfcO&5cXO{U54NVg4zN83R^$?CNAsS1JKhJL9*j25BFtEExg^OMSQWvli*Vdgw6uD;#EqqH8iiW@?RW$SZrcZ{ihulUz z5v=-bB}sM!YtjQ<46@7}hUD%OPi)Naxw!+Dla7e$N!Vf_UzdX~^2=YRHBELQcReK zvD45sratXlb+f)TQXxE%p58K}llw8yk5S`Lb<@Q8ZIlAt@k^Ms0w8b;+aBQ;zKSUL z@*t&0hrH#M1%QEm4D>@~;0W&#NaFOt*57{+6X%IDcL-I#JYO}V^U z@nbl;lQ(^j*MF4<`s*Z@BSeYobUZ#tQ8OgS>c70`7&BQm9knjt=uY1F9X)*UTiAr9 z3=Na~FookrL1NP-vuiI?^{r?%K2$O*1Oto}J6=r*DL25q6=F0hJu!jUZEjUy7fp!F za!DWw@E~DK1dZt-3gT3o0RelIa#;*jq&SQQ*DEZSHq1sqT+(vC9Kn>je%aJU#QX|5oIhZ(0ULD_$OJ<;R6wSOUj|Hol2of*g zG$Yz97@gw>0I?4Q8LYpb5AICdFsqE`FuK~c<1}X}R{k)mPMkW-tGi$jQ#$`S5uo zIOX&hMJWi|q~)^B%|5PEiyGv$*joq)gHT2j#U2tcBf7XelM^Wiu3?;V(sKu#`L005>FSG>LQM?yHzZ3z4) z%FA<2`+Gc^i((-GOiaQo%_70B_PH-zRY|SP8kG=mqSIOzS97@~D2n*h zmUWN1#^rtd=M`diG>E}+-9Tp3yRC82EhL~a#w7;?;8i9w!!l(~eqwsXz59*81VOa^ zOEhDJ+ZTtKE3o)I{Nh)Vnmv>K!FP~tIi9jMZ`p48RyF%ZOuP)-;+?DP!~b`-g)FJ8 zfDYo882&z6fZ4XJWtZLy1n&rv3F{aECv8TDD9~BI3Yb@64Q6H7sR> zuKjUZ`BP13loW8scJaP-Z1XPMA7u_bxDow_Fm48_PFyl8wwLkF5Bxf=c(Ytpw0Est z^|_#?O2FiQ27{8aR9CgHrQf4F?9m-q{Y3znw%9CtH_f>oW2b;BRGpY|8BMv2uKy74 zc+5WiHz6Z-p&dPh8UZwF3L;W12=L=)%0i7DDAEcxkeUh3y zAA$7(Z(%lnlGA+d+n`Rb35v3)O$I-l4Jy$NiHwx+L7*x~UX~zF9qtI;+-os*0sve% zhaGEi%^T4<3ey&$tB3RbjdjSGxtS4EN$4+t?&$yEcJA926+J{OXgn~Gc|k;k$#Z<` z7Jb{WZFLcK85pjZ67u}cjhg;-pG1QUks5sd9)?<3@^`y=W^k#i3j~xnHi=~8dWCw) z?C{{PwlTIZ-oACXA?3tmMFm`vF*+qRlnhWGm22ijmwL*Za72Zm&#%Bn3H%Nbqh(7AhNNNwh`rE{LElcHZCG z^Qc+*3$);FSrnRaef5UlvCsV<`|?+bh-Td)yT$qs@ScYpbdtWTITxz_vp^x_7DME> zyL!hkh~@Gh8wDJ>#MpIXH!tD1bAKNOV#F(OtNJ@vb}$CLm!j$hTbzCcgXaqE>*iDo z9ELo45=KpMPg?HYRp#KO4cVR_AC5H`+mN4P;(!Z0h(<-tcw0?nAu!K3@Ho631gvERBYgg4__f z&2KT+Is4FcQkteAkEA9H>z`&d6WlI-N44T7G5*p>8r^j-nsMPQPWSP_P1w7dx5=@Y zqNpV20yRaxj_<*Yr2ufr?7~}sZv8l2{sZEI9^Psn{=Ja2fHF@HTEc|yK}3N~Qe8-y z!CfeQ8|?iXhzPTm)79^wxi_L`0zl{3Ol7CT1q$wb^XL#=#cFCzp`*DQXbEqk$Ly$^2zPOpxLmb{hOadu6k`!(!B z;U6S2qYkqK*V5JlYiJQsoSM3@DyB2mO(ksTH>oMG+m5Ra1Lv>AlNqY1cC9zR^zIMW zyGXFaz@>}jP|f*%-tq*^TaF1camh5k`VCn3&887~-%O;VquNYxrJW`Kc;5_i*FtD5 z_&jwnIIPjQSyKMiQftd z7me89^m5Woc@YDu&sSBfcf7OZ7Zl`7&0hulckR@Dn^K?3Jj$S92)vg1gB>I5JEhso z)?_6MNOkP~w67A`9)(&TJDzFFV~xEw5f;}{3pBMe9MTMGJI^SYREfbY_OVr$`FhCq zhgE{5(iY&L4-yq(!&wFInWS0f7~V$`tIxeOlIxiOZ?0JzjkZMh5Mcbi4$l}#iVt6_ zP_$K4HwyL8e37HE1O0=K{V&t^e6{Su=)DvGMo%&~ev&3H#<9&b=?VZ~%YAEcY7YYp z8!m1yil@xzDZwEYLKqS=TemCBL++y^q|c@(22L&I=_}xqo7tTY+SPv?6%v7iJIaif zWvjlg3 zPJjw&AW@& ze<^~|JY`mQ+6OCGjRcWXB0Tews7VMj_>5XYk2Q7IJgl^-dOSo5Vub` zTJSo%Yu(`H#{y@4$pPpbAH}WAlSSiy0Blg|Cs?EA?K~ zKnfvV8aGpBWS}2McZLvh7=mLhX~HBlFO9mZbajsi6qvur9e|p#RTOA$-i-) zKJmQkga8o{m=fLP6Xa*-jT-`0dZIZPi+;H9z(o4z6d$b?)r_HBvW0P_rA@TF4y_k! zB_D6}IC{%}2e%sJ87C2N^*J-c4r1*$>@)w8y==5?LjTQ_=H)?@#!%{{&KJx~bCybY z=;&Uo{|=VD1ruhXYYff1j=dM8U7#j2Qcnc4U#)_&C{(9nB`}PQ7D8yDy}cDj(I%Oj z0xNu`-sOnkRL&>E2@kDhfc=p(p*tjV#g?i)g8bs7ByYhDdng)KLTQaW=J?k#*`cNJdc!??(L|8ccY+$<~e29mPO- zM_gTJX#JN}D|VT=KqD&Dyi2Z$Ch|F>{A3J<2SyQtMYpmM%MGR38v|O_pAT_(HdGOj ziH9G~9pb(<>I()63yF+`-f7}h=$+@DTd+}-7ska+fN87L?`{giV0C;&q(P)8;&8Q} z7tQYQw>PEQF_`wR;-ECZ5&n$n3hfm2Rx6|(19;0f2M@hi-SkPCz5-Oibkb#S$G~ZH zxER=RyXVmu;}QLycAx$h+91U&8V2?u6R=(rkj>3OTtfa|FTq9X2n~*!ASVj!AkH4s z!!&L~jb&y@Fb*Srf+GfSwtS(t=E+Euo9m4#Z#S{{?Fr_MPpj=0{c4)SC>PF^!4?M* z=0!PD(Wc(!h4i5m0>U0>&efUSa8EVsMwrSz`?tL5-Y`=Hz;uPJ=iC}3H`dBzm(+r;IzhgUbp&uRH=8AD8|eV|m8`xe2}_9nh7ai3}k_5olviJg-#4Ye;Jb48RVu5^yV z)P=)rB*#tb0(vLME}Hi>1Q?`RLuF>>-YJ-WJn4O2Yl}ja^>Y( zSoRi7xD){FAa<_@z`LHKg*Tw18?%<6s|N#(7fcgT(3fFLr&LSacyIegKoO&^p5P-< z6}`#&6Xv@8SSCx|L@5DU_IcJz+^veJZWw?HNNEj4L8N)z8sG^xk}5_ii`W9TJxc}x z2ten zW9psP9uPe{?6Pt}BvB0fn;0%~lw!;HH-3^9{Sc~dfFv~>*dADC_dIS~5ENt^G;}bw z%Iu?`uusy$43|P0a-lUDVi5cMax%F zjWph`ZghUA#uxf`rU1g^8udK1V7EL#SHBYjr?KrJ-txT^(u69q^RmNKGqI+FWc#CZ z^HGeRh>mWWdZkcK*BH9%Q*`;8WFy?E{r3C+8@rxNCxuyC7~Th$K!5_qN^04BumG^& zc3SW{^dIKKTY2AlKGj#mSYZs?9=2Oog$nh17&C-4Nve8%u>#acF=quv$)-d;x?6pa zNU(73plGNyYbEC9pm?;QYyMA=W;w1{cw0Xu7vy%@%IE~U!_xc(qcldHe4W-H2F?P& zz*)2gi}kgTG{)3NCv}?Rw%s9Ki2wi~07*naRPuZnhC-M@$Gkb-hWx(JX|a>W35rvb zorrM%cJDKgU0}esS<1#fYFrcX&=s%4s9pd#bAq=$0|47sx%BRzUB}M0X|_f<;<+4Q$fkOZa;65kyac42j|> z0peMv)J0K9@z9*uo*44>ymG962=FlOXrp9ZCF{ANPYHrvbSZp39PQfxjC`;6r}{bL zvZI`gmunBx=MCMe>MSadgD%OShaniE%I$&+nm+PJSRIVM2q#U`kS9$!`!84=6A!Ot zw48bC*A3jdr02;XYB^+a@O8vw4m9sZ>Q4%hOQWJ!8!`$`e(b+@erklGyg-frK0Uq69ANqgjm1p5^f@ggwlHpB%zspLVWiX_c ziUVN$9J=Wvm~vTs-5S8a8Jz0lqdU;Ik@u~~!HpWN^>Jx@7RMWFDgr2YDV`BXgqZt+ z!Jui2<(8zub9`ibQ~M6J(m(;Aa;%qC667}U*Yqq1?!GUguDx+Mo?s&EeG&UNY*!cVHTjWAg^R4tdPJJnS}yj!;9r~7P2A9eh$U? znRQw(Z5}p?O-;tB2^5&l$Jf<|Maw;4P4^lNP5)T%%}G189s*QNo>GUdRIK6N0p8wK zbI>#j6GU*ivF46k1wW|Ji)k?N1j;Oe+AQ3Ik>yGd&S%aLvoRYX2I?RRSW z4k7?LgBbxG#<){JL{u3L=4xVF!EKav+9Wn_RMZ6sc<}s|6)!ddGik_u$kBQk6b%bz zFwBfwP)|x`NN7A_Pr*L;9RUBb`&j;m0S+-#}9VRC{yiu&>{ zaj72`*@(zUiqAOJL1+Tt(2}R^U?m2$jGHCj_4nBmySQat7>NK=8E22g*r!|J@xLi! zL+7%3!2+MtLI{q*lKc&Dn^KGmV&w*v^SGRCr2QZEo^x)NdFG;E5(&x0uR_~;lC=;e zPXn3hle`ANp-Jh{O&s-1k_rQ-5Dpsz?pLiT?Wyd}+%9D>^PpIB?94=W*_0t5wVdR0 zhcmyAVhHKzO(n&0nKX`(NbPWfY&z*0l4Oj5TUFR%$jDr(U_ARD+JptSqoW(W)6BB> z&{c24#Calm`!?{ueTI(i6wAV=9zmqQ+F)z))*wMe9L04%f=LUKs#O<8cVYA;H1!Hx zc{c%Q4dCo?9NozWUgE6}Be?=dmEdMK=xZLvMGJyQ>wUx^rKeslsS(bdMBm1IWQ)U40Cr z<|d^eWu)lkn0ron#(8$EQb&(Ri?lAo(#Lt2>tZN2WGx@uhV9Ql6f59TM^a9%i)~@x3{Ldn=x*$NiTA#M?W-LOb!|o0 zz76B10>Hpoe)-`D#^xum@OpIh;L^o>*)7=oc>1j*dvQcAFFaP*rQ~keFhTLl@JlVE z1dqqR@vV3}DpcY2tf3`prhr`B$Eq%ZE`fv&#Q}98RF2$E{sZ_xD#^9=0;A3pFJg`4 zj{7)Vh*(GfcH?o|fjA-NF!Df!tjF()+*e*iMQL-d76d`*4_Trl3nPgfldDJ#KL9Y9 zVRS*B(-S$8TM!&6Bx>XcVb-LZru>yZ7c``2;yUzU!SG;6mEE?zQXT^Rw)lIPEr;I) z2{%-0BT^@gy}KCVjA0YRZPJ3YnZl;$t0`2RLlvl#m3gY&m5N+G z2J+2@9NCVutL2}d@e67VC*@-3p`*tv`N&0l*H|u`;b%T)w||G(isKQ@ZFqY$;dW-m zq^oJ(o5TfjrRt{3-$|n<*~dSF!82v55Z4IoO~+77!YfXFv)}(_yt&FM&Whkygd-?E zWX8-)6i;TDakI(g@&@yXJ$6t|le_(tVF`)U(J$*a$cYP-iYFVwMM_YM&%hqO81xcz zLmLG!21L$RH;|2g%#vUu(xyidrT#-v1gSt{`8k)EB`XD2Dl{@<8M?;E%l<=IwQRcU z$=4mKQs)%5Wkq3`u(dS=FvMfAUcOV9jv#jGj#UXcfiS36M+aiuLt}J4NBLYknfhBI z0*7r5LyN&;9RX|48d~x$jGKwB9=iFz$}Tu=VfWMg{om$O2RZD*RmOOmQD>z|^x5x! z4&VPArY)vvSJJe_G;uD*&A_Pf`g&YcT^KtRW2e%b8|a3g#Naucc!l>p%bOqM-K*=p z7wyINAOYU+lArEh59jp7ZnX*kPVUF zbX{bzSxa#FZNjQYcJbPO4Fln4?={!I6Em;Gm8Af`M{9$va!z|$}u~!?hS+v1(d#Gy8Qv3Q@DnK-12ZnJESAj^fq_Ef@|vjCBP6Wb*>2K4Z@u$+{u8saISoWgD<8s^@ZFF1;m$oZyxX z!=D-f{Dm?S`BEa)(SS>FK>(&Mk{P6E;|Ht)inx$D; zN5)m*g1Tj9^ljk24UDgewF=Pm#hAH_X05>Fg%~qAaf&)dVbTJcw1Aer8yC*t@HXE4 z48MGT@z$U=!_TyGxTX-=|8daIU5POh0e~$IZW@^|Z!ScBw{ph+3aWw`;jC7Q3L+{a z4=@`=uR{QlMo67R3vsvzgD`HSIWYk#T6;cDR2(VlL-f+qFXFJYUw46;U?+mxdEx#R zFUW0j5HXc;%@CaH)I<~JrFlj(d_;u9J8|JWx<(gXUpR-eCvfs04)5aqo3QIyOrA$? z|5bF4!G&|Y=@Hto25lKO>Fb8~;*uGzS$^RGI)BES-@t{l*!m=4cM_7 zA?+{`f&>W~iy77*p$Thxark+DruH`MaEG92)Pq4DsL+&DGVv~J3H$mBOE_|_bCG1v za#*PrzmI*OFxr+iXHW1Gb-H?;Ll1=eVf`}>20>muLty)J5hHLNYo8E#CnyZkdqHZi z;zb&YO-$4j=Sqqw)qbl*f|PKBBw~4LRA&w zr{M(vX3K1*EJJ4x0GvI>2VaT@?h)rPD~V@i*`(AZ?i0rigrOK?j5ulJDo`mX3nH?T za4EPYN|2*K1|FMjq-Vf$7{0gG5Dzxd5>6LWQ)L`^XkS$5v!ugX!Su+S-S%1}qVG1B!di7=puCwO+MHTQR-)s$ya*Px_Es?`-JOCQXzY@=Bi8#hW8zLpZUQ zcdzE>{)LY27}mhmj8J;bbT$w(dxd!5=TGsTb;E2tlrXfSE+8s}AvvG@@UPPdu}vlZ zWBU|06x1Qf`cJ(jVYj%GM|=_@g9QE{Mg6e~XT_4H4S@7F2~hy<))#NV7RH-#N==4n zAsqOjFl-lQsvEVncEaC9{I`58z$U7Y%a$4J37rc{KqTJo~w2bV?b4qrb zynmZR#oq593V7D^=8gN*0Vxf+Y5YUE=xtE0@fOS#|37sQpe9&`NpFFD>QE#GRofQy zzQKf6YpvCbW71M~gpzBK!#WgjRO5LquZPQ%Lye@|OwC=^0Xg;Uh*eG-f=OEA=)}me zQ39!T0IHG$&<3>)pqZ^RdTRBiFOOJ0jG7dF8V*;oM5CRu2z$6iJD6qgJnimhxc{e= zDb88}XwepdR~H%ru&o3-v*aUY@sGoFV(@Hh_3!Y`@5b?}GnAqI01Q-8ONzTd6L=6L z9g+2-j(n6wbh4jQbLlN+;oBr{@4(5{%l~Xn@8k7?bt*8Ds zo!pg(RAr=s**KBgvKAnd@KNT;c)XI1TuM?0W>(;NlTLiLmbKh5+Dy4x&~a)X9oxiy zkDvRpplO&B6p_<(O7g0!Y-ECrk=skzZ7qyKoZKcWJ$8Wn!6aS6{a2CwgBuw(hNb+a z?Q%3o|Aaw;bK>#L^>qemGkT$d*4~+tVWM>b$M-}wOotW_B77}4vB*w8`2O5T^j@z@ z*;}M9O-eO%Q5n=lyndDOVECb#QS(MdSGqxKEjoK>;axQ6R+@SRdS}W4j%#+@j9?r` zpA-cQ5D}(bUEThRn6_9!&3xdc*7|>m_{?BP)8FNd4zC28J`e~gddp@0o;AE@jXavR zm=@hZvsYr$0(A8V*rvjSxin!eO_dkTd4ZfB}Hr&)R?dBwlGay{3Bc z-TM~&+B2t1Sh{g}-qnL!K7i5V0pQ#zUUzRuhaKx2*^Nz)VZtm_9awlHEqyayxL<5y z*P^-=(4(UAN4>q&^}SyN&FAnSC#rn-oF62M6X6cuI@^%drOeFiiC+lR72T`)nTI`~T?KpS25$jTnIF1XbW^Xqt&K-s? z;C@Jw-com5G+MI4K31%jp6WCt)aB_hfuSxEnTcxm1+_stQvHXNuj++L!H;@_!}<2r zly>8}*b-q=8C?~v`)o_(RlPB6h$Ax*LJqnO9x+G4xCY0DHl1{yJ~_mV?E<_;)nWZW@jvolfTB|*r z*mz1L!87EN?92YtMtrED$tK!BiV~!LVw1rO^wa_vGnL$xsRR8ua|mrEk6%O;{U^S9 zehCtR!iGWbW(OlIRI+mZnHA-Gqp;Cb%Jz(9N+mT{lbcNC2a*{fB8-_rD?Uh9+>NfW9?%wy0f?qwLyPX@t*bP~g2D$gX04>< zKWf*1g?2qvo`TY4AgB?HoVw4nj{=@Dm;oHzh=UsiX>)I)E8k4BmSgM`P=#|R>M<)m9lu|q@YadQ+AvvH`~XHz002A4yPm3(TxO>hOWkfzWEUPaf-MzWUcf4tErI+E zW~{dHP}-mzU`~aVa38B{(k;WF#Ux%DYgN!BoS4so?yiDmy~;$sT4wKL z#K1a9y{_g%P%59MEZb6oR%tP#rC>0+hE2#p=ObWL0w$xSAUCue17Kd+s26qu<8XbX z4e8yB256Wy`oUku47n~GFF%SkU(@Ka;iBr*_s|u$Ve&kT9*-M;1e+e?bNz@SI#~h} z6&baF^xmGZm7>hYFvM5#tGuM7<7*CDYZ(mVr!oLcCSK+iFNE@%l-ONw?FG2Xc!3az zYy)UrdMF_;uZaMXjqWAkz-c2KmPAw|Z9(uKYNks;ssk*S4{C+$&$878O9ETT!wIT3 zV}T-Zh9~v4(}DnGrplm>=Tc!#Gi9r9v}8)Z$;C^lP%0}aZWGQB)FwMZ5nN<=scAc1 znT7*uyZ+R#8a|vHLS3%0{Nv6>!;oALPvS=xx=}b)A|9_2{Mdm;PjIBO^?C;UZ8DCr zO_2U>I@Nv&)fgpn9Su+AGWo$|wX#AUPEr7qQU=POVYiMTz*sM11E-P7e?VdO)HP?J z{qgh6jlY5k3k6So&)OHisIkVIzh;5x2u)v3H-6GS{u%O^VMG_mYhN-UPe6)c4(El` zY`9^ls3B7tYhh+P*s|6d3vvrIb8eM;UC$kB?Rz?|D-k*D#Uqp~D@f#LT<+`4Y)J-% ze9m&Rh@IvO%A4em5-37Pj?1O44|_Yw@7r{qnj8`*m+#e8XJ@pSL@&l3 zQoWp75Tx%B5=eZtRI_Ti0TDXMsB?%RnW{!!D_}NvdX0!CCR+6;|hlNI|g#ix$_v2Up%Ha^TPoyXvpCE$F0} zGiLe7ZmheP?)nHiM`6|yyz%4s=5KQ}&)_$B10WdV2gIqZ;CoMEH~Fab8}*+d-_`2n zj;3fhr2DCyQy}Kp!FU?;zP@+7?NSIT6qX{ zoQZB^2N6-+s#l~fQ7vW&96C~H`5V1U6UoVDs#-JN>j2>LO^eGB_d1HMiXj{*U4j&E z>@d(X#oX{qn7T~*JGQO0=JzmohMCz$dzrU<-Bz7u*+XK5B55rdL=C1dgoc%_09yFL4QDjhz+qZFfg?}fKZ$g zqFhdRQ;@|F`&Nr{1h1(!SW1cJ&tl@VuMp@;3rR zvzBA&yZME$1^APZR$VX^I!0l_yiDM8oZo;y%7?G<(5x8p7-~ssxxJu#WII3dhiIpO z5Th{eL-#EB2CQvy|8Uv6(K`(Q*z%sW*#BZ3Mp5?R!c@eAWZDQou*tmZD=aUXD8&L1 zVBpqut-qg9}rpYN#{$(Ma05}0Ifqp@c=tlhYj2w;ESlO{j{oBwlF>u+fbjMH2HL2%L z@zei=L)#<0kzAs|@cYM}{%3O85ln?;Z^eNvc>12$s|g-pw5O>CKp1|BPra`mJPs!# zv$@^&Cnsm!*L4h{pR9WN?1b>waKz*lhIrVKZvF5L5^Fs32cZe z^2wIfCNF=X0i|wONb1y{Y{FZEs0Zp|%OYlBrPN!BrX({gvu$aRL=BQxoMOf%idjP< z>T3KvbJMRx7wE)}!PURZ$9D*ljgXd;zjo7CFnWTy@_oE}6`uRNrvZP%yx9BahmuB#c-TQ>#!RL^%?oJH3dKC+12Kt3xs-(C;91zg zpu$7TS~A2RL5F%X)YAilK~ol^dprPe3n%tyRp-DC{*QFtVSH!so>FwiQfo7kakMrd z&PfI;r#15dm(B$xR#bv7cDsWtc}9pn5X@UYhbdQ<@qGRij_u@~kMfR3acl?K=<~$B z6trRa5gnt=il4w0ccWMNKdtk;bye$;KcxOcvb4DQ0h+x6qbH(kEG>B#?|ZhKdu`lI zXAtwrR{}ybGXKL$-K;OFc9hJ!IK}ER!_WdRx`XE5B8E->VSedb$=fvKq{F~jI}udp zhWVYX;91t0P$tmePZ8byQ@K1+AC0K)MHFN`+Xag_XkqczUR_YLQCiu%$H2re@6! zX>_$QMe0R0H3YLH&0cmZe(+NmKMeo|&*SN@VD(p#MmANzl$jalPTNPmXeQ0Y_-Pp3 zOLu*Qj}?3H=Kug807*naRPU#7eNZs^gF7(HaS;$MLHDMKZ<0W8K6)nngBe}Kq^BqE zS7j%RxN%#So!4^SlC)V^z+GK~BElY!X8AgnXEASxOUxp<*0-y-V%a1q6nsR>rg zv8CfNS*Ol{M-AY*p3VNuIJ91&UBB@2&H3Allm0m*Di9G5Cm=l+REM6+p8CbWF(Q7} zrODK$+9EZEq}NwnoSOlEOoG`b6LEA?8F7I;?MDDfSkX~>Q~Pb~Ax>-5!1D6I?VD7@ z>b@}SBgGA5DtzNKjoyKsYGN_WQ-GTW(spPZ{u?`TH8begYj`JAS!pJMx{?JVFGPYB z6qRV5sn?ksK85k~PYYLwb*pRGW&AHvoTq%v7*u~qv=Qg)VyY5W3^;fPMB8mnrSt}Gk zfE=3AfJ>neY*A4cch`^+0%I`4pCF1&#Jwv?yO}tS#M8Ile)kjMnyiefGo@8m5_L|` zNiJs*8D@B5W?m<`k_YW{xAmy z&|YZL$cX@6K%u`qq`jcQb2z?-_dmzmS7F~8UDM`@*L5oYl`bdDqm>_`dAG*%KLA=6 zc;B=3i9g4I7sI?05pP??^KYZYZv$1ByvW?~i}qW;tW%Rq&9PHab)t0v{drdUrcxJ} z-U@$hN*qGTCIDdl_A&n_{2lUnVPK| z^iCeXDxhUIqopLRA%I|5M2MkS+sALXwg{7fQ?lyfy=QR{Ee4pkK1tWS6}?jnqdc$) zkNtIq=OD3NbJ>xA5JX_LO@)I|sbJN>Db}X^ofo;8NvB5FV5cUn`=8ze65B3qHjcb5 z8N_->ghm@9G9%HZ%H19 z51^wPVH%Tq&knI{9wBY{LO6v@I(a^T z=*VJ7lQj$>lm7r*963y)|5s)zRa+(*xNa))@P=SH*y zcQ<_Hu05@c^Pz*Zj>a_my|Sh5ibLRYhxx=dG97$+Z}F4JV8LGW7|TeOgU^;@iS!S4 zn#OI@O2iNWus*TA^FK$tbm%#-hyl_~`-d_#>sK(;prpP(b45XJaiI&1F1qGJ=BoFj zYn;40wP)~|-{n`HOh16;MUm+{9`v$GLOUVQo+H+4SW^oUWx|e#KrqgdvDUV1*vUpj zvhPT?roe(au6&PN6Vy7-yH-)_tQ)NL;+p^%YE=%QWB`|U!I7j_PpKGol6Vw(enlx=yg*0uILR_gKZ(y)#N#jx~Fam5G zJFZz9Y_IWR%zD@M?%MnIJpXG>Kb-fOxvu+u9@{kPg?aY=-}hWIXU?2C=XYk#oT14~ zE@)0>prTj*eMB}hmYS{6>>B{U#~#MrXYt$<{NcCrum2N#u*!UC6!ZMn@qOSy`UBrh zU-?>m?kh`7-F_DzerJEnkMM8)5>dGfKy)C#^>y19eliz1)4JdwtZC>z->~zqX0fT+;MSe;&W@4{2pje2Cxv z4^i=}7Rxz`DE%kQdgxLT*w<{+(}&&=e6lWv$eZGFG?I7{UuPQnE7fI3h(G>8e%C+2 z124q0PxdE&XRXi2{+r%=_$~a7H{!)Fx5~heKa3}ThaY_p9(y>yyu=SY?V|!~<&j;Z zQjzPBW27+5ucF(JS6)`K%7nNytY3#ua=(t$W_>~9fynJOu7+P<_DASn|2}-ds{w!+ z55E;}{2^&B+z8$CHxold&5q{3>4*6xUr1l~uc2-Df>+a@`z!p$zmE65d2YvfIJ0iu zHImC@4V0KNANXhHW>JaZ0ZVCP-|B^kc5|Rdtg_vCV9TF%8~1bwMlI>z3`+yunP^#U0=LiLV-F!aRH>3+i2EC99d3T+ zFxG5%oRgVBWop3!JUWAWY!(^iYMrG63Oc2H=OI~KrvGJM)4uL|==XjDBrO;iAAM+l z%iqA`@4_&P$YRWdmd?zbcWtgwBZ@l!DR)Y~v6ynsmI;gW%?t^C+xy;43ATo~mrYEL z#IJ0B_7DD7criLrs3^%s}tdLChM^)s%gUQA-!6x(liHAe{Tuk=ub+8h zJzuIn^4mP=%m3BwHGe8so4DqRZ)h3(?*EN{{=Zt7rMLbae(T>^G&oZ*ADw;RLHf$? zXkYam`24TXTWa82z9ZFz=nep5I4}a*L^Pmjt zDp>-OenS7*zZufgu0|$j zOL)l_X$K#EE5H8x>CQ7+gQf%EEF0`m0&1R!-|$29;+Nyqe-uP`*(>PZ{7?C3|2BT* zAI*&(0nnMYuEfAgNGg-AoG>mB@LiV)57{Rg3I5B^R`50M?fa0#LZzYw4I<@EAz)XHz4<-58r>z)N*$LUz`a~qNr zUZomLfNhD~$`{;7UX|{-ixR2le@q9PmW1wiOYz1Ceh(ae@C)c`{=N3<@4y2Vy~8_y z@aOt3{vhwqV7j9ww5Z&BEg@3P5}n)qq@B4j^Gm;qUh+yZhWKy*pclWAUiy_oongS3 z(V6xxSGB>e=+O=)T8N0g=$qT`f303_bLSKNH{O7|PjlyHmBN4p6K!3Ta959-K&^Ek zf_;0Zos*^_IeNtQD>HBZ%6~yGc?CF;K0FV;OgE;$_~h^8t5hXVr3{dJ4%qTpBrvd} z1m(LkVZb6RN@iW*A;#Il0G@alAO2_b;xEDW0_B)I4}5k?UnZq@e&3t=Kl{7x1#NjL zLF-p}YwoFLO47cWwx9pHc@ZA?>^1kUd2U_^yzsu>(ubw~|!kqU^Ik>Y{{8fAe-TfA z6m7#xexFwUv4`>KuPv!6HQzpe>0H_G*0ViO#BBMz?91Ap_zRj80gT^zJKpklGrP(H z1OV5TxyzNW?n@9r2xo@pm&hN*|UNx63DL(E#hsWNRzi>yWnDPXkbb{x`b&ii@#iR8xe(QVFU7V~#SE!(<7UbM?uj zYwaSSm{$|^NKrA0Q+Xa=)GvtA0YMa(w-75E3!5wGMog0Xhe@KkpZXwP@|yMqUw6(K z0N}kp_D(xdTeADR_^7pTJZj^gxcEa!N}e+@vr5*7jxJ9xl+Gr~0q`J$~np0BR(MNvj0!odM6;Al@&x7y=nw zdhwUGKl&d;h~4t(xA^G0Rd^Txdhfk=>blvzk*8BfoLu%9_u^OHeEs+8rAEB-BR}7N z{SA4L?299iQ42{oQlKhJ&IF>Boc}I8f$g&L#I(gj7H#SJkzL~iP?o2^ z`ERz*dlkL zxTeoP#qa&U2F$ut@BHqc;WzzY>5(BA`D1>o==*992kXe4jV)nk;|2<2jwq@2Z~QP` z@r~Zo+L+b<)vv`%U#Wk5^!@yE|MiJq;Wrk5%Q8V21TSxy2AMk;q*p?BwT*Q>#WxMy zvw^}w{V^|og;c0Qa3L`!PaH#*wAwc`OE;R=iR+W$Y>^)#`q&5Y$UE?|SDu0^#&5ri zANoIYjnS4%c*fbf{$FWe|1qd7=*cvkv2#rlv);tg{352-K&6}PK0uM;z?wNwS)0z2 zk_`lrb#?(m7=DkOsOZ=Jhxo>S3pX!dfclR2{$l?J-^X{JHpc(}nwY-KF1zupRUzj` z-^V}pm)m#$RlMepp>1e4`077N&pg3D`Jd;0$t+%+?5gq^k(ms4fy4x}fs@oP0GyVe zW31h)AtJP917N8{Io20k(9;MP6P8$6NF_MWm6Ck!sHQHo3o&AS!~aW$p*W^x8Zso= z<4VFv*UA~F{qpk6&V)&PMc8^i(3{t`5?=_mu1Z;oDLyVpO*Y8jVbsT?1LhPC)j9JE zZL97V4kUTbGJF$GVf29H7RTa%R*<;tVIr{&VO2w5WA^wjKb)>=8Y)S1EdSK5tC-;0 zLj_enZlG=%;%)k1Z=golHicqjW+oA!AZ(=i0XkY)mc;G?&&ad`&{15%{cfs5P zn;N8=hyjv2Kmq76N+Jm}Q?Tuw-9hw$|D%27pQD%mp<@;^Kl-ctyIzMzkPWWR+`Hym zYb`D)M6fFvaL|(<=#TtD`#oQb2Oi{)zyJ2_KhjKU_@=>g>vi5bGx)C77fU+;Zqi+z z+=#c>{$lWMDFI*snRxUa_=-P^7uC&^v1dD;_&|Th>-um1l8l0+=3vvIo`R5dvyS^i zKTaQh8vs20SPkD4PBEFS^8`yG-rOvQcp)Gz|2EkG0Di~o_J97r0H81ZR({co5i=GH z;JGL9fnVTV;wNmLF~Rd~M7yFKp7?-jt!g366qgrdVyWP<8XWInT&BUy%(p-P-)$fKWq#k!(bJE0 z0^Kx{oEb=6Jm_lxp!faX`=bxFKlVNJ`~M_fSl15je3IY(_xab}Fo>>IVem-10|=`p zMKURuz~91`{DE>AtJ#;R!z@zVfH~B|(`5%Oy{lz@;cuber9blTf;+$MAMoSvU#_+$ z0_65piilwHtX2^BRTqbtxU0Pa>-|D}Ln_!~5|kYSR};do?f{FX0#qS0wcK}iS2QX? zXT3qY)NI(i!J5?eDhI1z1O3AfwXgZpc)^1!hB2Ohn&10o{-^&f?mWZHb4a$EHi|#Z z#B&xZSxMqz`^C@Kdw2>yriH8-#V$e~?|p0the7gxvq$8S^W*^hy#lZK7I5dczmb3P2guB>^Jq5pO&V>qV&aQejNaCvs`AohiX5Sm#=&H)7Q$- z+483()=CK8Aeh2$y4mCykgCOOR#R;=KOMTqbNe)Z;sdzzB>F8s`}m4beNnYtl5eXM z4SM$_!L@_kT<+C;=*|5_FQx58fZG*8!2s|4#C!4VBrfqzP@+0{J9n!yxJ@aX5jAA z{P?@kZ}I$7{K%Vql`ao=Sqal4r$*f45Aovi~-eKUuA)V z`H?s4ID){`xg*X?FoM9eTy%Uu4e1&lYOKCQ8C5ZXZ(>3-nkGpHP99c8nO(gHs-)5kx+PyD7eZtov- z#QL(*il6)lzv&0~O+SEFeQSHgH}Q);2fgF5_wf6E4xju;esSa#fZOMA=V<`g?;J69 z{Zx(ZplTi-cRt5Xt@I%?(_JI!?z8!)p%?s%{}XQS0N{80W2Eu&dg4X{Cm=4ZO-cX*ofQwDs^W^V?sK7rjJZc7d--%o43S&9x^V#iPFg08f96?mROH%zW)V z#_5=tL&J|FW;I+Plv%%I5a0hR^!on{?FP5c<3qouvs?TU5bivSfB1d)&i{me``!5Y zA1&KaCSh$d-7q+_bspS z5WqPjyaRec`_enLUPRdM;Q6PqJ%BsUV2_|#5!X@pM;v$6GYIF0D8tmhx7W9GAfAD1P0vwStTqtPDs_;TSW7QSa`EG@`8$ zHI@|EHL%s3`l2OiMexyZW$eOEgCrr#&QJ2EvxYJlC^OtDkl99NyF{<)_DMIw0YI|6 zIt&6r*Dgu*&qggv*lNC9l_+kf$~d62T`LOn>{vH{*zCAA)CeS}tjEO<;*pG*PVL1k zfkRm$02^D_qcV_{fC)|d)_GV9BC=)2g_)EMItCIQOVT4ryPyBe!N9s%z7&Ab8t=$e!yUo$tjSl!ss;xg~G#ah~eQRz*rS-!Y7 z7E5hAh;$xwBp$}psZ|!U4qYFsx@fFCabV8rbi#y10aNJ=U6Y4nJQrz}f0lzC4CW9=2BT4*2&eX)yY?Ews0L1 z&Xe5~X@eW=vPzW$0sU5Up?W5RWhJa<{j#UdYUaTSL!Qpd>5!phIC80sdt7UPLUv?P z-ra!|i@zi_!@?zgy*Odba8A!@2d{c;q?QQ#3cDDy(zVAuJqb8RJtsX{lR=PG3v*Dd zUwiKoPsE7+@tkB~{hd6$hcdqO;U zkrZ?nY0uXHMoXo|5VlKFpY6+)FxO45;;G~ zV_6eC!~KCL$tyW?3{>U9RxQLx#l0(GvNM(|uai#6``LI&g!KtQ&1GgCQvH!d@0Rr( zl?IIANp4`gomKi#TbG3MG*kBf|DJ(0icPrL zNBXlBr(elz+AR@t*+1yL8a=osjslv z-WqJ%YBOwV)R%gcJ;nFPl#l+5+BQXXD>-u!zk?t>r=1OW=7`@kYj7u zFg2EIXL|1zb4=7W(w3plL$?(j0OBC}l!v%y3|j%VgF_w69eXE9W=h1itt7Aa-p#Dq z?sCaYdHOJT)59FI6+xT1q5kWS6 zx$m<7#vWR&Gn$O0w%t)_F@8pmOho4=3hIs%k3Ul!+8t^*aDi-lDHprK|0z{nJ&PSA z<%jIFO-maKoL8E?a|i7#i5&f?l_9^fkJmqgejqvs(mQT0R7%qP@hjakdCT%uagiO; zGL<3h64hyWL227u{lHIvN2bRVEfvvpV~Z9Hj50#@2boiC!Iy^}S#~Nz@azIn`Y$g^ zu4^ui!9iO`NXyhs)-5uv$gIAvvjE^8cmB!U+>sh1)2Tk=bUnjR4Ap{PV`OugCAJ>S zADQzeJqc2JXoErPYHS8t4gf_e>NV$HoREi9F43Tgl!%e{mQ&%ea@&c}Xb3Zd>XtKM zfWU=00Vfu;T{BfxV-I5tHzK9vY{&+2&CikMq1pvC0i-f&WE_J?#f_qn+0fW!dQ$HW zpJ7@J<6i1CjlRINSNlIj2E10AW^>^rras~TBJ69~P^ITn%#?l5l~2WJ-E&jd*MO0a z@eS!AJlTct)ArItSsYe`6541WU=0keTO48o-(`q0n%5637##3$Sa@6=!ww9&9&sYg zqw6-qN-JXK#$QgoYL=C-29z!Qtf1X=(JmB6tPev{2kD>6C~J?I%R$UGPLF|g{%>%S z2>Sp4AOJ~3K~yt67Ty$e7>NjSg=nwo`NEx2HWJD*2Sfvc2-LFVbmqortS>uY@^>``!>DQ=Um2Q? zJfEHcLS{hMM-5TIuo4-R8cg^#W`pWNnp%YGkUh)dxA?b$>51AVXx@ex072pm^$f3% z4Pe*^Hq}g2mN*aOqZSn;VqmAO(mCGf?0{)PW(>9RaraNG>{2TZut}d?&WJNqS1u6ajjfSXn0ESx1qC_=aB1|K_9N?hACk3{BQz0);F9@rnO~0%F#-a>=k0 zM=^`HRP8ebc^}>do(H-`L26$$`d8oA6@<`*R6?!FY&}@w;iLza^k4Hh#YIankh0F& zIo}jbAbnBGm%>}74SDq{q;fj}PY5~8gq{K4gNK%(9GPRKwDvI?V#pnLtOqiK+IVF| zFXKAYmAobzi-yw9R`uH21`AMR=0wyNTs6Hv9@3j$cRTB5X!+!^8&%Ns$icjeN;~-= zqb9ueiJ>GQmWCGz?y*o7L=@L!nT9(g!y6*xet)WaK}S)o{~|tv3#94P7)0odjnEox zjkYFxteqVe5Oj-N-_=mAu5QC}9cXB4`MtmB=&<(=Mk{wVn!jrk(g&THsmWEC)ROnb zJ#Or>RxE2D?n?o?nn;688c|Ox!9IfRwi81V zPKf)&%)R)Da8gxw>%Z2tq&H~9jXJP%N9PCbGJr08Yj&hgtcBP`)g9EU@a+4};srUB z%48Gy^*&Nh-**hxh9=J~cOu5xydb5dA~PT?&2lqmm_e?8MaW9jOMTIiy-Ql}ow|ij zXow)8HEc~)wUrZsW%@?ufTp7ii-aMUz@?LB6Tt`ykKHCn={EnQ`~l3&_DoYnt4$nimwcg{nzMvj#1f$8`R6=+VH0Yrxk0;_%b* znYn#soyRnkuCamOBO3BZX(iPrtB?|@|Fg@PKoG!pe@;lS69Lzu`P*^-ItG_#YfA zP#8114fAuv#4B|o5ZMuqgzkiqoFX?aKWrz;^n)Gf*@%d+>1~x#U-w+gWWr}lai)z@ zH;!ESgDy*9sg1oh*31V^ILU*_CGf5&(fsnlct~5U;9AwBDsbfe|ArXP_DR z?xWm$glKltSfY3Ji0!UxnX<@C$tus-*P}RAhS@slhusAwSZTkBe1IXbQqZ|;Kwi|( z)2zr`%4SS*ckVVT#EbKF8rnPWUBJq2;gp(oPi2)w;S$t$62suh1A+jOSbq>eUEk%7 z4%Va3b_);_Ztiw4dga;~;0#=}V8U&oSjnP7?23D_&_9>q5!H4-Anc zfmdr|w3=4?N}J^n#3kQ~vgT;W%?wvMqplSV(L|Qy-eXd*gbaqe8=aM1!-?7%Rm|Pg zlJ(CFmF5>`_;^(9vbI$TGQDkT)`m8B^I{X3q%&AFJ@esmAVSpiPXL5Y4UwZpN3(UN zZe9vRBkLJLnXqIIs-Y!YK?UTCTT2odORCJ&$At_cir82Mpq6nSzTxWvR`0ISUMw)v zyzNu?aA~;NVRD*)FgHIeTCI4hjDLyI~Q@@Tq<3S4?pEGZT+0LHQg& z5_SHJp9{JYeBWo~=~mtJr8XSxR$>B;5^%GrMvz-a0R}gp(PVOa;s=Vf2592zrO8(ZnEdLqhgRo~|TvE@XzdNO_uUf!;{cbhC!+8C`bIfuCS8 zG>vM8a?Qh3C--)p|Dq;LsrF1f8SALtrYUp7kA=8Jsr?$}kJE5#$rTcPM$z8&ma*1g z$CV39v)Pu&G!|KdpTG$)O1cjj_=AWy$k8HM7?waLU7#fZ)Y6*hCWmu0`8WVb!uoj(P!B|)0a_7ao_dYFlrj18@- zVrFNqqeDGsn^jn&jlu~m{9O?loC6mK1?66*t`YHa4iE!!ZOcAAZQg}Dz zLv@!?WRGNlGBVm(icYv=K4o;Xi>yw$5i?HWO2)F z_d@Op>Zq7=gUhj^Fsu@#*r#*zllp0IC;x{XDc0`GT$Lp#V!QNQgL*~znXjTQkYQ7E zW{MMXFe5@~_Lw|qesUPf5;KjO;isdsCQ~AEBj$^j5kNot1~a3q6WWBJZ-1z10NZj> zlhq#W_H_P-iVp(@b%Sx{?h=Uo^rvk132CyKX_aet_AafEU)^JeiwYp9i+?7EF%DEx z)=Xou(kWgWIM}P-k*R%C{yibZyrPp;Btp`RY*r&9y1s--Y;EKQr+Q-?l8Q9AHCvZq z;&e+VxYV%u3AQI1DyU0^k6o-~&9gC{>5)qwp(pl4Tst}wqieocjV18m=2UN^|JeqXZJX!K#vQ!VZBW(VC>Fxa15qV2K_y>~XRiXb3M6%wP&IVy6H;e7} z>g)yrQeu`>8%7|{RR+s$>O88!5%Lp9j8KUNlc;n&C@9F|0${%O$(<_Kt`mXK%_}2K zn;A40zEh|&d)w$wtzcCklR;jyF76Q|P_4Q^L&pcjb=1W0{rpN^$1Ghl+!}9*byIDa zc3o0~CjvhswDa=0!Weziat<64+*QeB+hd$MyHI5W4R}jpUF4e57Z+(>sK+E}eLgfb zy>+UQD4)zq+OJ9_$r5Bz-4=;Q=|%t3E^{aU&U<@EC>0O?#J4#q5Wlv#UvgoKXNkSw z|CEyDEgS1x-f(2me5`9j{_@;fs$nS)ffOP3QNI3kdO=rOm*vF!G(Q4ZGXP=+XSyAd;V?@{)slstxtd5yXGq8(^_01IrT+s_ zF|m<-f@#Q4BFQ}Iehad_NC?+K?pYdMIp$SxEUWuvnfe<`3_}N4&wj86kKRO>pU&-+ zCt%ikgF@N1O-E2NFMH;3c{HLDWml?Ft95op_xq>-A`i-9Js1}J4@}RXTMelR-U4kK zcix$~*{GFv4OBT}%PoEs6QIzX1R%4;IYtViWf&sd6lq+D2(598`Z*0Nu+^&IgZiClX8ID^|lY=z;w0s5}JXq@^&*ronw0ziim>8UwnSULaFl*E!Rv#(bv56A;pdN^7#VZ;* zX<~ksU}A9TwIRE4J4c$eE=M%7-$v93TXUP8@b04NF-aXkbrkC!tm}bjAmK>TbQW*kH{PZ&ff zEh*|hWJyrsYiok#kMxG)OAwsTbmU)eB{3|yqk zs;=$a?tu)ucqzqF{&zc5b|#LQ4{sa!)E?FAnGpnRjaqB1i8XR?H=E}y^h<7D>G_l= z9lji3z4&AB%U+r7N;0@1o!k*9OadH3kp1*52sbx-uaF{Q5!)6KdVET?qrJcIc^ z224X}*(Vi33X>WNwp@fANc;YPAI<09?Y2j89f^n)yH3*o~`7Tbo_Z4!%9*NCmxreq64v}V^PDVy8?M=Dp1 zB*!9k&K9ETMqp-4q@)yA_gR0?yTD)ptG< zm-A(=fmc4v{V3AmF&OPLOTX65FsK~S;vUL##-5ZcCfK@|5gxBz)EG@ECYdTFZp8^V zoxr4**d$3>!v&a*fPsws0qKUcP&S-`&6u;~1g1O2oik6aMEoQAae1h~h*Fzm=Qho6 z?D|^($^};#VJ-(!C#u%Jx)zDY7S!PKWbe*%oKmKu6V_auUtSxWfu_^oP{EBoMd9dM zt^WwmT>qRx%v4PNQJ0lt(QAH>sPM?ANG|EkahViiM>-A{N5-dKmt+vBNINAAa@E)^ zf1Uu(_`4vk9$A=%F67WXX9p*nSgh5miM7g_tnK_nUV#kNPPuXPjD6>^@uAl=sU4k( zJifWKChJB^{Ycm|ihbI=p!>6DygJzPsZzr1HiO}rUi83#*&;AAI*)YMbhd+P8$R6g zQ{jS*2ssM~8Yrbxk$hj+u0Lbu-aUrFCr>93XxNv{RCb$qg;8OYy&O-kmhuJT0uqme zw6LfjB{6GKZ~>J<2idgDES(azaLOK@`^dJ*o-MmYH!)k7nea#~81KcsqiGa=oW@yhi9rj-RgYFied@!h8jjqa|QIdSjM46o%*01V076L z)ihefTdcDWV=_|cuJy6HJMrS?zQe}rVh2yO>->{Wc`tzci9(y`L8+sPFFYp}7bd6v zVH}98-z*!X9sAK#mKsJYdm6L)d9D2fNu_lsU zJA1O4nOI1xAXe4KUc@h}GHK#bOG+0W{qDyvE)P#}@TA|k#?q?$%&i|*#wo2J6^ z72M1%CQ^3TYYr)72a;od?B!J@u%0c1~8s(yx*E0AS{p+&D@+ zg!R?{fP0Kb^f;+m{gOSo{@F0OfVm}|`+n3fuV)bH@s(w&@a1<=3lPWi?_YY2hKyO_ z`Sf@}_u&|v8~FQsLd$zzQ6k7qFGPKFO#%0IOsG^kMJ*Qa?&c)&eOY@nhN5Au=&h#W z0*MmVT_5tyJZ!<-q&M8_r4WR++kp@O67rD~qb2ts)-y!1-4IVspNDTLc`N9%{Omx7 zdYoO+g&ZO#qLlk9aJ<(qZ?IlH$f=;As{y$V1me6SoJL`I>q;AO zyL$dbS^q>VKrHK1x`xWUBJxu!cnC9E*8jYBrrOc zm9yJB0E=O|XPkP4M!LSvtSqKlXedf9qA95Ln)<^EWD6zp`3Ra$&nz1!6Zzz=bLOA; zX1NL_dljsBCc_IF4gkwCQ#O_2i;#~iZB@}+OUi1B^SOyKwV=}DaX0~~6TuzmviP~F zq4Dcbkc#<<;KfgA^#wjuWtG{?q=5Kzjz|D8r9T}RsKus8MhCX6@}f1moA}|qa;5)Uh z{<^>^mELWfo&c!np#qj6^BpXT-s=vD-C z>%l`|pq~9jZ-4>%5bxRqOygJ4VxzL~N-JrW$RkaJ8IG{rL^OTBtq}9V2&H!OlH)QJ4?Vu5oy_b&*b^LT{HMixN6=1 z5LcQgpZhXDlz`Qhrs{}>T5noza8YsLGU1n-wM1#i<&W5dEwT*9wpg~-dUGTO^>3dVoLz4z*1Ih+>#(6~B;VYGx##)XO>0_s6oaaZpumqBEakiq0 z7_7zk9!-Z)C-=o#K;WDfra3r?JaFX9PCS7zQph&NwWg@v1};xNuuau-u;qZ+?jUh> z*1BT-TlJ=FPwiA5kow|(*x%)bCOym}dU5NSt#2x6& zU{N|Y5)3BheNfuD+T82D+7*{FZHl*_Rd>&}%%!X5nm4e=%=_F;xyv=Z2xiX5ed9?d zh$f>s*8015E{GEcFIuLf0tx*9VG=lB=}1J|wvnuF5s|G07DO_M-Q0SfIVTk6D{lN> zwGjE5LbC8AfNZ5d>Tw;XA{_S;i1f0=IFY3p008V558*9IHNn!_q=fQ>7q%q6V~ecs zvP;&PnRShsWH>w7A|;WC^SBIS)#Z6I(kA7E6Uoqed9wN6#N85x*d3z+jy)4MGv_dF zM?_h8X6@!hh)6rScXS2z1kGWwQI=_hypToC86XP|CO<^9x%(oyH#ivxV_-A$ zG?*d#&{UgDW`(UbC(V|tV*H@zsv$a+cwAXO7tZBluM{RY34?eX@n6hG(C;rK_WGQ? zhAK=$lfNJ47c)~`;FyPXS#7b=wFy2U)yLF7uK<6Y&h=e(-38n995D&U8)9mGn3CSM zfnM@z$&k|V{EA^1y``OPsgYCntiukrqmta!L$-yk9;mG>@(viIu%7t2Qw5UAOCFXp zQ;}*|Dh;*&N=1al$pPS5AiKea1|2IiLVXw!4d(amMI`=6V!)5lUIe53UAcxZbOcfS9jUOvk*s$^RB9(NoJdhXCkq z2GPb1iSl5A$@)COD#Om6Ysz$s2aBv~o%1El`X9+vU5sk1RbD^PY);UiiG{bSb`hbz zl4gxi;?pd|Se8G{Y!HIN+@9)8fOOeL3+$}6IwEn?|Ee7$?{x2M=}M^s+yNp<$lhod z|FG*duVGGF(_2uPIj^G=cq6@d6=*6iT~B<=0Qqu#Q9&!VJJnRao6Dcu4_&V^*7^qE z1vHrq`4W7a#iq#lzH>*{iK7EcKFR~xT0>IFTnm(b$wZ7i3JGV_Y=P&ZJ8*lcF8ssM zR6VLtsY>NlZGtb6{ryg8T`u&)oUTAyq2H#!3N&0-yhVGW9du1D1iES_FZK30*qL`Ouh;$3#u;ipRIxN zXK9fSL|`Nl0HxsJw1T_t)bM1kVi>P0ZbabH1-5P<3z8%>(z^^TTZ6&*Bn}dxqSem& z`p802_?-oy1_ZS#*d3v1Y4Ti17TP|Eme-yuEUX(14P1aq&3wf%&cQ}Rzt8yZ??yTP zOnO22xd+cDzg4D8aF!K{N!$QS;1F#aw${XvD2HaJRhCP%%$RvuQz^eh1PP+Ekxd3) z*v~H!K$_}GE(&V4SK|On&eNkR^dqcu0!uMeOQ31qn)02kU1h8zZk?vt~BW`+@ zpWOO#iM&XFW@1`S)|^17A6-bcBChE1Io4WZvdt)81nQi*8t0CTf&zJw&~VofEcWDY zDVwmv8`Q4Bm44S%`3B;xaccq2duQg}S#B0^8>Yc&QydYRW;~N>Eu9qDwjjI!i+j~tWXd)H zbK>>=d9?0DK`mt3)A6)rP4pwpJ&fJFk zo9%3#{LA&Q+1#BY0#0xPr5yS&7&;rprG=h-j2OygyBQEAOutlZ7qQMj!@vZpn};LB zthPB2Cn=zD3WPs>?`&~sb|k_?ROY)b*92lH2OB6fQ)yP02rN{t_8+kGFl_lybaiYR}b=QQ`n)49xO7Oh-K?&?0^<~EQW0_QMwj)6;!(hw^ShX`g zk7lDVmcH-=p3dE2tJ`nHihp3fL~uWYrz^zi9`Gua?HXSTSgR_T2?Vg6m=b6ufCJV+ znNKz}WtIWc{H+QrI-C@B9)%E2y{>%i!+Zi=kmy?zKBB3yRz z%{fLD)@D>M_`m=wthe1_vrYg2AOJ~3K~#?G z`Xy1MGlBv(cI%rNOreUFV{&1k6iT|}8gp2uJL z!b#gKPS{Uy)zLS_C%A-&Wpos~^G$;#HkH(HO>{Mpoob zt|L2GxLLL3jxdk=WTaPZTE0EkbZmCJg>27g*Q@31ZBBa7zv+92g>@;yYqZ%eS$=CN zFm7f~AdT_XxSHxL$~v%7dDq+BXjMbq=q_TThw##4DfU&rVPZY(3K4xJ#?^`>Mfcb_G3SFnc3uy<@iFk zpk<$}&J2+~(wJJ1#X_?|r&Yfcy_lN>pNi{FM+OD^AG0UIF@r;^ic`7vCsUntz}VUBCmaF0B|`OjB3!BhdL@F* zfEu~hRsaJwV=GTT9kPq#8Rk{j9C=Wl%Nl}av3Bh78&;>IB$fOOxK_>q*H0thTF|Ye z#+`~WE(DZCPp8nxqbe#^j9)U0jKuLuqh&H zy7idJ%T~l@s7B%Gz^HyuAa~YQX4*vRlA_$NlaljfyWWE2AzL(|Gz_nWD)qOBakC_G zTy6R^Jpge)j=#>G`|*n`0yR)MX~Yp=%l1%MCqJtb?N7Z6Rdx*0O?62xm^De1o9nX5 z23YX1xj^zq#*yUeUe*yCn8-tdly(Ho4#{FEhu)xy8e398^77nFD+&nbe-ER4TSJ*k+&fY zJqH7oEFwZ{GMCMP7=VwM6C$*7v z8R-KM%y+WYHMQ+rO*f*U7qJ>`g34Jpt#*NoLL<~F04;7jQk-YFk5N++!(Nsg%FEM1 zR~Zp@D^Pw?%|E3c#Wd&?P~ND{(0`cMRWNgu3pG~I(>{7o+r3fLRpYH_vQv}#oba#534Nim`!va z&uEOPngp2?BNStwhs^0*wr?{4$G6bNfx zajXS#015a-R}XtbmTF5lpIlCO$|jq_1q|Pl%^IGy%P^_0#SA)V_nx$R!WgEdm#@3h z%x`f=k1xr%_9^WJ-IFu3^1|<-a$Sw{4hV4ETDPmC$rjJ#ZV2bNF21dqHGVgO$SWyS zbHK2SVVnwRZM|d@lE&Cnqy_;;UW<}|O^Ml>E%V0u+ZL;isYR6Om*F6((t-!Vjql3I z7CoY7AWuT|s2;#z26M9v*oA?|92a{d zcOEPm0<$TRZGu50d7`xkNAoB~!Q_EyREv}_=xE?M34{2$t!ctKz~2pQWRZ}t6&gEw zle*S9XRQ&X&&+LSG-|DpT$I$%jcfuW6fh4#G7?%fCbgr+xy->FIivdIro{t)9e+vM0%~3 zEvLA1C!?SvH3LMFO#@vN^M}kgI+?=KR&!J2Iy7lou`<~}40BC2RB?nZgTUD~AuT14 z|04jeD(jT&m6G~KG{<-`v#Im>gJVp$2CdqHgp zXzz&;E@by=Bvm+6_u3pIU~6c^t#PwOIluMBmZx3ORD#Rhp$v?xYaaIA%a=w-I!&TW zSt&ZdY0jUWppLkF-#%4MfJDV0J4x#9W=5~93q14-jW$njnK^# z-i&B;!eUOlRjPZ(HZSySdgrvr0&2}~Dr=aj4j5Y0;2cW1DCjitO^xC|a&MW&nWAEI%a9NV7drH0zfcS>x zFna0&sCCEF!PtG%yHlB&cJXky6Za_xZtL83h9%PNn-q|L%|muixFRJ0n)yS&HLnAU zG?CpT)`1wAADC5(PbejVBh|7_B@sMI5}O_yb*5c?Cf%}WnmY)j9*kDDHO=$f*%KrZ zm|t*1&p$8HV5CPw}jvxzv;xyMU`f=w{gcsGKalt96~i3ej|HMGtiJv}Y&@ zyHU<`6;>SR!zE@KJ{KF0m`155OA~kOf9IYHCwp$v8rEM z<)v9Vc|Ekj@|B9E2R}6duGxr|hb>BZ1j=(G_I($bV(9WR07|}Pmq^!6nzV#ORmu%- zJX!DzhK!iHd^HqfH0FHOugyoZJUX*v#@O5@z)mYQU8T~sE>YY^-e4v``)7(Nzk;*{ z4nX4xL<(9!QkZFk)?!)jliWgb zf1T_0EWakQN(6i4C>%!K8~yc5;JS=$oklI=iUYZk`kJ9vPG z*A652FbUNHPI9q$F1cA)&tMI&m>WzHgFy1D34RZJvT!H7Ue zP&FuSL6vLi$@T%wUAFj{>H{P}4gp-Q!y%1?%0LEz2|txSQL;jEmYqW-Nn3)VbX8Ak zGE^;DfNhL8%R0tDhWMc}GSW%+=^{?|qqML_&@i!ue%Yl2$|+H5cG!T(Zi%VO8@Y{4 zOa7P|mC7j>x9D=y-Mzz)H4vJ*FBVHC6yyyeYQ`i-x2`F*lEAH=|5`54AWK$j{mmdC z^ipa!cU;2Qm@G^{2?LldcuYwW#%c;|`MT+1tr-b%3{<)*(2p=kQ(j4Z5B>=eL@}7W z6Oqf9znKlcx753$1l4{}{&0RVjj`rO=J5(1HEedM!G0yM9vt_%D(mLmV~3=jJ_Nv* z4rUc(;Lo>y;dQcw6RHIj2P<*afnWt*tUa(1M+Ai$K*?(j31px?oK(=PHgk8%!c4x; z$c~MPKPDhMwhc4EKp7dE4ok3m;=+xfEj2W}v-E$40_X0~>^KdDXJdKv3~Knem@9;{ zYTe}LO;6uJ)HN?Tr07Rgo8HX?LbpW|13Ne(ZaEN%0}N=AEtp>cFuHz0dM>@E5mIt! zI&e&RKCLKO41wr>Q2uf->QD<3exit@&k!;fNcE3n*~)~hlyUVils5UiA&JC26+#!(a=%i70e~qIxFFD#+pspmD(u5&$ z2!}zuMXox#6RYfK8Jw(LK{5|COJ=8f$a@NTD zsZl4Qtx1YoY9^OukwSZS9S<^{$iKQ#nH=-TWKF zrfhIr3du4#t*-l6!zovQ2yN@|uAmJ7w)D~%@YuSd>>%zXlZ&@cF-A@Qz0loSOg&S( zNJK3nZwp>Gr9o=fX)M7}de<%aZQ0%2BRfZ*)<(=bGc&86m3W-0KG3=EdO;YqhL$m> za!4bungU@kB;762egbqz3DCVhmsKJ;s1DtjaFe68qsh4!whPFa``$Arb-6S(QFxnR zO1OyLx(|m*1)Fn4D!9{3Vb;xa(i@6A{Wb>-Fb$T_EiWN>lBGt}*j$mmGqCTw*4SFx zbPMh#4%%jQp2EQe>A{)fvCu?g-oESiBl8^+`GfdJM zP-gQ<_LKq!A<|kk^Ufr}Fmg(2$`x@!Nl;#!KB9T1vvI39h0b4G*1YKW>aC;h@Zh5! zw3wgj)2`n-@dKj_V>8p5nwJh|{!%mX)M?^s6EGBu*b|d>WyMMzF4E;a)?C1HN)XJxzQzE$p)S)f zz(Gb_7vPzPLm7z($?xQ@=0Vs0=TS8LNBHaZcPKrzEWzsFbH0QvGq83+;6quj5Z5{> zf3Rsn*Q(6`vzrB@jNKuy9RnuM zF$?!Dh|F{7Ky&wwM(1NG+b7RObqeQRVve`&Q(h!5!!WK}2Zc)$ieu(R3L!M!5H^0) zg3n-0h&2#v(57Gm0O@wS(#Hc$?y4iqYke`F=2%R|q|ITfJ0wcaCTF~snm!(jlcC9E zUo(_Z=O}(ed?6z4GyYI3;vB|XekGztkSkD)gF2TYjgOWL798=y?8-%|dKD>=Va;%z zi4R?1x~A)jSLg@}*CEL$&3xN?gN5&d(9+5=5#<9a6<(N`9B0Cj@)`v_W}-^89}J2T zVo`hxh;>Q}dAr@@m?zkR2GY41hC{0LoY<*%O&UqtEUmSo<5*F$WR@gV5LS=rD6Ae; z#NB{PXYo?R&704g20~T+t*=W@T9bo3aeJ{ht<&E4*0}tt!?88CGfT~1w;Tzwo-9~H zxR>FwRaJm&jNJhem$7SzfH6k`Dg>6XgDeI{2h7^d@Yn63Ea5J{i~s;Cr=T= z35gy}(q_6vsgV>2AZE1Iwx))Vr#f*s?B&mk&d>b%pmxq*KeAgx>(|@46C%gLQ^By= z%hkbCc9k+_wjm?YnS1ZOZ@NdUvLQD$cMDeGTF*5mc_zd3k5`h$-6nzaR^)iF>w)-F z{qh#kc20~Nj+ieq>Pn%AFc>DZu%KB0UDtq>RH*);`QmI#^EtBumn1eIX)Is|ewg14 zqkOSW8$svZNy);Z)g(H4mrQY;mp=!29Cp_2xCKKRTe|7AG?^Vu>8|2f`EZ+4^)XDv z5@1Pg%j{Ey6)upyIdmZ046A{-s97Ij9@a$2mRhfxWcT^xxg(9{3ulfLzS22}dIB4n zu|%XRb|wp&9Ecm)^`;SQX{mhNGv}fpDgpQ2+x(%bX{$M{&QFRVCLq!h3Z)kZ3YQiq z8a$tL<(neCvqnwke(Do5F>V$t`%DVf@)_76GC|ZJhb~$pqAm;MIaAzJ16S6UXE6tl zRS(sr23DY6RHV@fpC`8C?`H>FQ*mKcCG!XYQI$%VS(lZ{V@=AEIX1(c+`EEfSi{M9 z@*x8OOF`Jmbea-bo}$iBMnRMJ1qBdf)vt5LY$Znn2TGqbBB}T;vx0_u2+X~A+j9df zjWr0JFt8w?1H1m#ahJ`J1|mDyGFwNFj)MZ}ASsv-$zi!`Kx8;S$_^sHy}Xd>yj~k0 zmdb82+njo5s>*8TI9n%xA2o6^)yk0IH~C=x0s9FGqUH*@TkYoDibry@-MC9Ei6WTm z#Wn;oeHk1!0c1aHmPN~o<|St`M{Zt$TL_qI(JV`r4V)9e8ZGg_pZsT1K^I@qWq{7I zFd?&~HQOC_Pk2&md4i7w9Fsb>u7AP+tny=UB+g-dW@#>#HNc6cI{I>?)+?@MXAaEt z=VG(T9A*{+U2@xZ#@>lp4t20ay0%6{O>&f*J}Zz&bk(wVM{G3ZXIe@3iU}Cw-m@^n zjZ10kWULnL&O{omfcr25)_^VI=CB11ed*&V=xk9h61SAz3$u@TS?!5joy(!?pA(_= zcjSfqA_h*S%I^uJUR9Wkzf}l>A?fRYu=aD-tNHB{GQyk>kAsDIC{&DAlfq2ylGI9e zXst+zdGB1k_$<3G>ex#J<~hhOa3tqEib}-(q+Y1u%&JQNtF0Rdxx&`KZRPxZuH3hm z>zkzkR~HFsaIT~_dNL}m$HExh<7@?D5R8O#-J%1jn1OY<`~LTW?m^L>)e@2&>SmLZ zrW$RQ+OiQ3QMrneG=;93Dr!hXI}GZT9JVUFwwP#>NONpNra26Qq9{2qIvl2qnS;{5 z)pKA(PhJqlTD+P2G%&nKwz1$^Q}f*A6tOk|Mg;+ccb7rrM8h!O|^woe@@ae*sg)?!Z?TcGybzfGiW~gRxGaRWzX4=ftsPB zs<#z4>^)d)GNx&2M6NWrG|gxsRmMoF>Jd*kU`hwp+OBoX_};v`l)tZimq)YtC03I~ zEv6<$zE-aD@L`^e8MzkK-!=b%M9Vb0C`nWLWxuXU``qZ2&sctOz2geroVIe`zs^AC zLisclM|S<3j3d5{t#@$mvQ^u3nFH)+Q{m~b^nhhrD$F0xKd z==or*>D0HserCBMbammu5~|n_Na7qha$hv~c}0drS$nHd#@Y=ZJ6k%9`84ww;3pGY zAqr=S^-q+dzYCGk{nB@-PBSwBvgK~R_ZV|XMATCU6N{E}ZGoHb%TWq+ftYN|ak&WM z2j!!5Zj`2)iiG8Tvp{Gw!Mp-s%c(tMhJm<2ALhdBzNNw-3x=&sIQMW+%@z{49k`H5 znt8b7>av?hWW)#7m-Sy35OTi}arbI^Pik^z+VUsuH;rv26n>kCUKaxZL}Xzr34+gk z&JVdDrtgk8Xl2-(MY3eUkgNZFH<$^Uyu-Gqkfjs_AdSD5%M;@9gJ+xBJirTaK zCy!}H!wUk+!AVNiI(31%XJ9j1cEBh~^&^S?QaD;l6<~rGi|$a1&kWqK8j>7fYj#)d zKY1>-jT6 z+c{8%fQ<7N{3d)Rn^PMA&@P-XR)eTB>$Z}2N(_9;gpn|WA};shm=<$n`Ebr+B$}u- z;ok5zCEb1Ggp@hEY73Qz^0Zwx8_^``r3O`6o;|6}_J~}ZE+X0){2c+xTw4Vz7krYV z3J+-maG*x8lCI%b2U}x3s~46Lajwao9_FGz;M%P7cB?@h+#0vm?e+@(~&P^-VJdsbj>hc2;Eu zYL`8-F6j5>7cXd)lDlTvNP5+>BS;};7EZJ&b}>w+onkOmpFnL~SH%oS*`quUS|LMI z#JJRNB=$Yz*sRH**5^5OE-kJ)hGON<1AOQfHmdTUrlr(D5xBM=>Cp+o`GB131<2g# zAylL2UV1`Q(h$RB&o$~?Erl_)o{{b~>Rag*b{m?_hn+Rc>{1(=(3%sv(*JbS&CE&f z#n6TID-LTJwt7H>3wuGF{zcAofBM$aSm?<}GSP1iW5l{Q*#c@zmPQTe%+33`zCfUK zK6L9yQ0YcOea3xJ@}foz6YG{|(~*`U1dSBmSe+GDCot5$kp(}oCkrM~31CerCgM+n zK#<7YIM;oSu{BEeRzqa}Q%V|Xib0vTU7=nGxF{ysX@gv+r$ZyWW4W3$L|Oyn$VA6c zqoyknTW1QHJtesmuxutcLEwhYi1KlJKM4D7w6r%M@Bs@JLCCT|$@Lg0d{^sTifn?E7q0zA;s@cJ2Y!UUG!14P{9xD4vKVaRYCGG?QxXbWRqfNG{A%eezG9%^TY@`hM!$l4D$Zj?Cl)No~1?x0g2Chpj zig-X;0|l8jr@0(_&SgiL6_3s|hG8jTjb8Dr8l~HYt-UPv#BM8cW2%%|s{e?8I)Za# z_vF~0G0!>i)H{0xEM)JJoy;6(YaZS3eXU1YYG_$q&vLm zC1K86bcd}AX)Kx8IA%(lZI#h+J4Hk%;$QDRv1bxj!=G@4AHLM#w9(KZHV`j$sgD-N zSV7P5YstU_!8Shdt|W1X>B6DGEyfN6&l$mB_}N`AE;g23%WN$ z3#**h`ptBW*Xn8C8lg3|%*77i;9z=i7AKc+C^j|hNubw6DOKiKYC0DJEMc1FRO3+k z#Fm!Z@SM)BUbp^}+Da3BMQWt{4bk@@J5;#Q5JY>i3UZC zsbd85sb|{jL`c1}J9q7;lujxEavjQIJj`8@t_nA7X6V@@>7sVNOW>i69gz&J9C%V; zVAa1WkS2RF&>~cndgvS=x1%CTcKvad0;CPM%)^Xf79DgoNU=^9#&5tP$uSz(H57Ig zq}?suHTv=RP+d0g24kYF8nI|S3Ji|}3F)d%)R2DvF=O#3m`*NA#;X+13 zlxn?5+aZQn(mTC1U;@O5IgZzUMI5pzHv)L?GF8o@0{}MblqEeoB5^cK+El#b-*3Yq zZF1n$3je;n8>ErPzlghD_}Fe%qDf&L7D&T`v9y;z_fvND$*4uZYQ}l458F& z?b9{o-czdTJ*ol*wNso3q7J5vB3Kf-lk0$tuWGZ4I*SGILLMh()MmFNPRVAu^0^#U zr5v`73W#E6W*nIMy0TOZpxShzTt?nBd2Fpa{(fKgTqq2e+^ z$jE8gR*xUEyGV)Gw!rk6$`QA)Oo;TgFxyYftPN53UQC0$fSv~hP99A%HduEP)`8S0 z;M*L@tZEmsiBeF*tm|X?x}pB!P7FELW?n@}gq9iM7m*wCAYA%#tGpCFrc*R~EQ!^s z%BISPg2jN@Z_8;(q{lLR3fZr|2kAOt%F)?MyV=GMC#iJcB&Sx^jFw_9G)o%u@Bj?E z+l4T8*NobL?(m7BH@ExNe(vl}P!Ucs9`3JtXIL@CsEVQh03ZNKL_t)4>bU+p<~=Kf znqS+(kHJhsen~!94taZoe&aqumLu{MQ0LhdXfuiS=7c}uCi1?Utg}`qp6#|#qpjPO zSzJ0eCID12%$c-qm})d0ShU^T-)yLyt9dIUtR34vsyKBv;_aFFcy@+rKOLBqjF^L|>z6pnC|19wS4ZI`BBDNP(8AdYU8Q)G41*IBg$k}1#X460k!1jYBJWHL!feRW-DEc&Xb z*8Iva@7Q)?2B|iUlCqCa$}P*-z$>YG&^bdFi)lM3aB*tSKWS}Lz7OIjC>g8ly}SRQ zwnPY!kcUgHrwR)b0K+7mvjAkR;sFH-`ZyX&(;o|5j>^CjhF^R*NfAucCuOVubtpKB z!7yZG6D4(rGoI<(d7lTGro#dWPbS~UN6lGwkI$h#Uls7(hVgY7zDuoS(;W5!6Vnc$ z=9*>)c>?pY7kVr$)vT-_y*b8|wp(zN9pOHtZJ>!~x(BpGght#Nh7(t-<&_~vR&DAk zDWSoPxdIq^>PrQd6&>Tk31$K+M4sb_uh6^&w+>=6qoO#ek4iZ;eFSr zKQr)YbaWr9+5o*4a~O9b!Za2K!4g!5BP(&M218ZZ1B zF`)-Opl9yR<*qrDWG0IfR-0&K5{h$PrmeLyV6_1`t!Dj#w#~v~3xN%-wN?>--#hA( zjneFTE`AtW*Io>EoXd5A(Z^C`ngWxhEUmlY#`?**tz5^Dx%%@EXRa;{cho!$#7UX4 z{`g0~&E@qiiq+6a`~yEg0Ih-np!YpDYV|Zu1($?*Tfn^NKJ~0cWSx@+nU&pQy#QEx z54994S95$))|RzXeL%ndIjvkX#4%erq8Xspi99N^Axb5J&zpiST_pu;s<<|^M zEEXKFhpTMVW=9Duh9k|9@f){d#kF2MCLS~w7({4h%hGxtJswQ=5W3T6R^PA-NpzWQYYK_{phqFsB4tx;SPJF+(w8vHC~YFLo?<`E z5DSfPIml?886FHwMb5n1WQBA9V9S%0Jb5vQ9OZtwG~$u^lAwl&V7paLPgb>w34_HN z=owlc>~Wc}rVx&PI#WMH&9e07uGJ!N70NZ}cK(lJzU2o`wpYQ?X zZdQ(AHS5 z6->)c481LiDkYvM_5=XQA4~naCvI=)MP}YD$r!Qi!?mV1uaV2yN|&ABs6xQf(v0@Z zNcF3(F4i-fu>xF(V2jO5U9_x?W|3ZLn=7Bum<M#>L37v8dLH6Iay!Sw8KDHACb_6lpmduc9{M)1;)Qdu&!@&q_YCtEmcPMvmAFJ_h%E zEzA}=%>hXcbBCFLXx(Rl3$#yXUXf?aQr%e9U`R=bYl0=roR(rq47V5TUT&x>@lzR8 zN5=$ajjac9Vu^78^%U|=V^uCfVLCI%2A*U)9^@MVsADRIF}HFi#@=5`3rQ&gY4QRV zy%@ML7q0XsrlC7MIu{H&vg6E8FX&bFz#5A{IT4}j!kw?mB^<2jPaQd_)Gxss&1E(3G z6lwxwn%r5FKd ztuVQ#L0vu7_AgZV$qRfd9Amv}s!1+B3lwk^QY*MP>6V6MAR$+BVl|hB>Yz8N1{+Jj z0v$P_nyGwY_`R$0a|?R*;?S-fzcme@I>18`Oi!+fRClWMt1xykl(e5i>@*RmHH)sX zp_xKt>43J8l5;oykQ%`EL@5MRp_y&Q!d5+`h#!a*Onubu01*AurN8Q1UTfNpvE$-7 z6^yZ}lnW#)cAJ=57uQn|>q&8s&oK3hor-$PI-n~(AMpXoyE2FK(@V&7RiIGO6$;b1 z{5L5IUVLxnn+yiot}I7UGxUb^h*VgVq;bT~C1KDf%QEM+E!7dPG?+rBrP_B0lTMn? zX4kT=l!-uF^`*>INsYROE+@Bbl$S=~K3t%qcLy`a2EgW5MzV)rjpi_dYqG5>6U!x$ zJjE{hpH$J2mR_hqnFaEHWH{5}O4x!>m~r2kvd^Ea`vPOhnz3b%5fHL<0BP-c05nh- ze|^)J;d?!-5_y7?e7afzn*#~zl&mHvZo;zklBEOA#87nSnnz34;w_;-*9FSnT^MDG zuaWaJ=_&Kpta8hBIkrosu=GJWz`i?a)t32RrBLl0W>T9^JRRohp^w%RIEM6H6wg;gLd34tV# z1QN24ec$(+<=)Sn-yd_%nVIK#J~y#_TEpjlKJ(0+IdkTm_c=3jhM6h4B}_WAJdah3DPxR=lq#YTGUnUbX5 zv8rSm5)jsZWd9*ixYH&EG9;cYY9(;chfG01`;g^*t`QX<<6be5Iwd=2SV1l43ykT9 z64(MW$py3tD~RN_TrZH$B|R-Y%^ZWOE=tXbJw;bYKSm&8C%FnOzmd~vXjrhDMoX=9 zPa*QHXti7_)mdAfb00GN%Z?&!^%1?6L>G0kU1z15elCw@9R|uOtQH_*Mdv}z!)aqP z!j5F~8z-2pjR;Zg&hEelgn$}5y_04Q_4Ty~TP2qK=%W1!AMXR=7^~2DF1F0l&q63nW zQeQ4|O&X|Fj@rIAAqKi@Agcs5YR!hYG!aUeK?=CsN0Mq23ayHmB{H%-q)v5-ic$k4 z{31g;9KHGkRU{udV{+BlmDr+Kxn2WjTxt&Xe8pG@CP{i4p-a9^F7l^ZKd1lJ>olda zti-ZnipMxc#uTb0HFIs2n&zyFB};$iBVMJ}rX|_ynJ#Twvz0MnZAOy3TsMDDappD^ z7_Rb&SabR-+yNmu&FISx*FCd zNqpD+6Tz}Hjnp=%K7jcZM0qjG)^9;gf~1{rhz?r>)8-l57?om9K;%Ce--$p;0_#N6 zJ8uRJ1h69_7kB=o)JlEAQq?;wV1f6b2!%0@XYK+U&g)q(Xl9Arqtj>d@xwTAm|5pV z=^POejlHs%bTb{^PA3iu>#X~*lc~Zqke)I)6gk&WM>ss0GbzGn>8{> z;~mCfr&H1nA~Ulky$shSk=horJw>rov48Sv!a3(04W58ArsMD~ zG&*y_O4ElD93ZlhS*T`xVKdK)6}?33iJT@MaV%iSi#ZbEDi620dG^?}qA?e^0V8o> zYovtK?&r2#(%CX&#AFN}%LlfCh=Z;|B1Jwfn`>)MEZ~eA*|qTDT?zM9^US!(O}-lI z7Dz2-8;Qut@y{AhLJA~iDD_^A%^mXv2STM*wkACUA#fRLNoJ~5b>`!u@U(UcB+REU56R0Q1=k}?x<(*d z=NX)f%AsRL(U5kT z<*YLqBuXB#rLC%U%#>pOAC3x{RTR=nO!AoJe!7GJnK5kNXr+iinPm@Ho)Ih6mo+vc z2(87iBhXN-;5h;7deIZf{X(%KI~)m>@#t}hKpXUh@wwr>_hAL8fa3y&PK;DjPKktv z#e_heWUda8dAOjSJUqiwph`RzIi<$ld(w;m&axOg%aIZMnYbzy(tKI+0|6+S{h7^K z6|fNJv&cyl$&#?=XLCqK*O(?YRR^XdDx9xch#IY22OhdyC4fBGbI1Z0ekzoq_3Yq4viE_E|M#w&l_*s)A(psxN|W$IJ_U^nR)I6 zM0D2mH1i|;$`ARq{{}!4uc6r=_e<_a_>*idMpf>UX&8tD;FU|pE0?bsnt>|sG$7Dr zchH&F@`kzm;@vp1GgRV6U*yieofrNm?^{o=zv#bW*OJb0P6Gh;Oe1Ds?8R6$2fNl8n&(0i z*&~?EN!QRh*YOiyrA-U-cI6*V{*;d~zI>A7Oa|PH13|+%R~T@DsD0+-yp7cyxiWG_ zal;pQ>#L1l-zoFD?@$_cHa0Gz6CD7GOFja?Z(1a64m*c>59BwV3za3R5jK~Kt3QL* zp8o!i@rjNQ+A&R)+T${gKm8nc*+<>F`F?vYKcUPSGjPUq|J1kTyOGl{{A{d#jt=kQ z@@AP>fB4{SCzaX3?qxo=j}@qp`v+B0b0{1IxJf_(fB+S$N#{^M)0&WtRHsCMA?Pq% zD;GW|dpE;0(9G7%3PPlk68%Pe)0q{U4$4{6Q^gn!i4$$mRiHN^Mt~E;kpm{1lBt=F zdepd)5E{Esw}_fTyX2|%j-k+7_g>2X6zTia#fmlO+JtiGPkEjaB<5BAbvl<>fKO&j ziF9O3BO*2}6q4wJb|Bk@AEjN9fX}2ZW*AUMuI8a? zj7)$?-;tPZJcPhyFT+JLh76_npYN9jMI zYs^ex0mp}{oTv!fcyuENST1Z4mN^1KxPX}TI!n()r1!Zv=Mw1(Tf!1=T4qs2kCX%+ z$>^kzgph?*GR<3?NJp3>E>LKY)AdFoAdZ@K#f)u_6Z=M7*&y2j7bdgF z2eW4yb{>4gZ(kJB=#l!UB-5n4n@DU_AxE-UExP`c(44~*s4Xcy%uMY=Y22IOJJER* zHuYQ!T6)mN=WuXShCx%~H0lx@+083|Eq{-`3|+^0(+g5_5Gd8sI-@z_FP8PahL6{- zrU$*cfgn+3J%1M;+~TIbi{AM|zvO(9-;d)5 zn>7l6PM=1jFQL}yyTXls6Q}?PJ^IkV@$Rj60zlD<)}AzIoV(_W0C0Gx zpZA^mmW(f4%p9)y;jIB^&|SK`R-Oy1O5>Xce?Wyyn1y)OH7*ytyc*lkX z{MxUqMH$?!OL@(6boN`_giHOJxy($X&UY7o*#Gt}Yz+QeW+mKtx6p{`yyp2TEn)~J zT#5lBu=-g#))A(wDwVh;FNKNLQyP0dTH1L3*5VTn@roz;>3<1Lril|+dr24mJ`F#| zZ+sbtchxc~Gu&MMt(KRy?n-JFPGv+mIsE-QJtg~D!o=Ns#Yj162(He3QmcocEQwqZ z1Vwiz+6_(7tk*bZ^^{xkPm6{M`zsiooW+TiSh?>_MMZ_A+VQdv0NC-+YD1_DYcoy~ zk&9=PVig=i5|J2Zw%I%%WPrQA6*bhUfK{<&dc4hStHQamh=x(Cj!PmBvUrsK6sJTu z<6yfJwLR9xaxfC3JbKS~;6_5IB146SDBsI$WLGdrp-keGVDZ%rjn#2j8m*r}8C#Nn zwH%aFGMeVCvHDuEEh6%9f~Ptyt}`T{Hqh~ZJQu`e!II6^PR|=CZfv4-7AIw5 z1_n=YXWodG9wH`fy+O{6doz!`Fc3!|-nx)h|Hi0I?FxIN!#m&U-+0t7{H_JN+*vo! zxgV;sG=83V4F*r*6%V1a0|16jpb(|jD*q-<1mp^Ob(fQ^@rx%I;0PsxN+HMkHN zpP2F`KWZ%hg}dxCZroLV-7^?Co`z0Fqto5;y$bzW+tIL|^LqAk(MH2(pmCzMMR|G; zDamemGKN9wGn59MDJx5@?dUy(T6zEg6)1Y3_fTr-34q&rW$z|hNWPhLJ-z7;xB|xy z;n)Ej+Rhv1@s?Mx;YDG)!RwPD$df!F8YQXoOPW0F(T!J|r@cS*7R;JnfUf1+ASIe@bv5SB6r1$nK&KV#q{okpNJiA!zA| z_S10VokmF&$zsP@GUY2T~WP+Sxi6$UuA3 z=M;TNr0L7_Cm+REl5t9-dB4P5Ce)@sDPQVSmR0FAq$fzJnSaGx4fK~?tbpt7;y6q3 zA9ia&Rv~?z=$42}Kk5Q(oZXD9dzAb~C8Tc8YPm;R=$W% z7ORMc9noRU~Z_Co4{C)Ys$asbr8keASYd=u7|%MNIUCqp@U=&EG<)9NY+1C%c)k$#_n z*U*Y3Rj}M;ECKhdpOkLXO&D93QoK5>iq|EiLFpVILV8&^GklT)*_0sJR`YoN7&@$> zfSw!TYWi$a_!3|xY$rVl#199uOJl51I}qk2Y$B}(C!BmCO4@n&hR?1B(%rEft_Jc^ zj*CKk_mI`!GsAn*wi4!tvDS{bjLDgxQj+<@$9*s946G60%p9s?8BY9@T(}t|l?e?N z4MMivJbf!2tYm1c17YmF_h`h+5JRUNi3`+-GoHQoVT9b-H=+L-)PGd#2cAauXm@;< zfAxM|a*vo)GV{djnfjgKCcG8L4p7%o0C25n>4E-Z$jc!O>N^6yi_Hsyp4DM+cBx$G zgm}{k9x<3I97su{vv0z&eSX!$VW!ZT*Q3{IH2l2co%f|fY@c|?tNxk44{x*Tji4)9 zinzxq9oB3>lYuUy4FFw7dCpfvoM!(q8lAj#k*TQ~ZG7w?A3uyV0$oM;bx*SrVJ3$X zM8vN>;Fmrac;(*zW8U_v|Ls=+&>6GbwO{0o^ZCiIrSz9EsICMvK%E_a?%i1NNGg8K z>p40Q@6gK*G$VQDPs?+%PoZp;&%LDCGPFH8+e+*_Ce|CZyUiYS-#S z&V+N`_xOeX&@ZV}Lnxkl_bCS=DO+FTWsl%4 zqGLZ!8x{A0*D--Rk7WvE!X-3h0$%+Mf&9~VQ=cI;{U+YJ9J|-^iK75$&}g`VcdP;t z4WEpT1ODX)6rE^230@D9kV2n`EPp2yRR?EF1>{%z#+Xr)5UakP8pJHrX6M&yU#Y$Y z#V!@lDKpyXxz^wTA>G12a%{s^-@?|3tct2DBBV-Ok2N=)O^Z~di9%XXxqO=pk`e&8 zN|vD7?#BYj|4LnL#;)qGRwhGqf`A;<;|UmDTCL+hnhz!FMgiA&~CT()yFADFYguRQE5^lWN_Xjs&zxva80>W+)*zGt{rWvA&liA>|m7sbr`% z+(VgyqO@e%Wh5#pAzr|zZI|IDX2Qyl-cltc1i}G!Oq!ILBr7o`VJcOAs%t@9kz+~^ zrO2L{aBT}E?m(DDBvY`Cg6c!2;*-;d)mcGQlfOqQ*BnO)+UB_bh@)(U5fC3mVST7q zKtCJEBBZ_zW%p_)Tnay?MCR79GSeJU9<+zv87Y&QL(Udw2A+@@Pf{sH)K(N@B6a+U zBuU9=evEAEPuguVM^YwIT+$L!h`_|mq-SYl8YOht)FLA2` z_~28Sb@^J12m?|lsst9J^P$>bR~=0EGHlCfQZ0L**}{)7!u6;CT;ZHu z>k06%>2&Ge7VSd-MoUlXJF*!6R&?xc%>6o@c?0&Y_78tt%<1XpGqc~iK!8q2o)9M0 z_^WC5pP{uKu7GQ4`M^`~U4HEo@C{z`n1A`Z0BFK>?t)MH#XsQHkBCU#`V$*0oPKU` z#plpI7*xQu7T0|fogMy#Z}~NklXECqXyUar_KJkntti^i zF_&Z43O>A@M$W?F9UQ*5^2|6rkXxSs03ZNKL_t)r87wwMRFWKel)VO&NNTMeJ(Y(h z-9#g1@~TI8-akVxezkwAPX-9Oj`Ff!V9UbDw6x|>?1Dd{ej~E)N6sp){vvu0l|N_Q zPP1;u-nITm?+umkz72e6ht%2Gfqm<7cxRc8v#)b+x&v*!rIHJ8FD|?tCywwdKZe=M zCS54QwOO~(%s+?+oWfJI0x16Enexlaf8(F}Ix#zjXLjellcv3$idF#V*$+MYySMx$ z*mK7|e*IxOV`iyZ>OBN)?KJ%sOt}#o7xMC7m#XiE`NnyJ4khy_i^G-cR;utc1@UF( zT=#jJ{`TyfYd(t;M|i>gpaO#@P@f?HsHF{nn{tCtU;_~vc(EJ8o(C-kmrUZdx6ty z319##yp+G1T8ChbBFxo9sb<0qAJ#Y|a$lm}zem=AdjF*KWId`dDLMe%=(pV62#?o9 z$q~xS4Grc8B}a@(8#FXmZFpi1p>&b0f>P4YIY5g4Nqu|x^n&!f*A-5LE`)o&OU^tq zh2;Jrikw!GzF%o1BbZnm1nU{uTNe0|=uCMCO5bn>FSAzU#DRg^Q+_hMlnh}>V**Kx zGi<;Lc-~5dMAOW=kyOx)))1YdW}bG-NqrJ~s;*~9^l8wX$xI&W5=n?I5&>O_A9=DT zpCswGr$S+JAR%S6T%iRdm|GojbAbQ=x%OrGSsH5O`^+>KUujB_>GUvmKJ2-Y^N5-_TL=TQ^X$XoRaiSA zLI|F*>@I*NK8I5S1Ay6w#3Nlct;Gcrwot-Pf(Kl45ECEehQxDBo8|^QbC_#V73;Pu zWlmstVU@E)!txw0+7L=XOF1GHc7zfT)_%f_Hl@saR{2H$O0EZhV&+GA&nn*d92&=I z%;o4kwDHnEu_kz-=^rA1H!p~$SFKcI$71)=KQRh7`f?g{mVf2@fJaL&jC(6=e?{X2 z$Wh;s=8$L4o>l&(?@-YL!=}@i%ly*&aC9GbEOE|Z_v`+JZ&6E6iM?5wfyYYj7cgm3^4hy4o6`w#8^~rUxSEK zZjx(&PDxjsHjbwKJ`Qi^ZLiQ-H;BBm35q_)4)TV%$tW@abRDO*KJJFEsuB!?zxeOF!369`KSGB5BL}VotaxM{5Z{gKez#A8Z{d;-xtXqHic$=2wRukk8<$v3&n|CE8B zRC5Bb#F_e^f2Sw1<#(trEoxw+mZ~g55x>>{8Bob#LyYLfOX}2WT1J_0Nq0blmX0eE zKf$;L4D??P30)1E1$^Twqr~A7g}@{iK_sOeKN)ADxQ5xov1AG}nkhzCIWj;b*>_06 zQuwEcL2ZS=ay~k8~E4DmS3il9tFsIqi=UBRYe^o}wU^E{Ud;Ob2u>vIkQxA69#E z$U}$Iz7RHP+@jnOlQ69^){<2_*Zn)=p!GdLI0Uxzgf^3v6i zYbEAW>ipJ&&WJrIXil)QpKz%S<`jXtF6EVKZeM zvs@j~vIgf<=9uQyHR;j%Q$@_+ka;GkfZ!Cx>=eOfcySXO;Wkm{!cv%MTrV06$B*#3 zr-a0FZ$sx1Ui&DWeT$oTJ#U&zr%lAfHmv?lHp(GSh8a!A;^_XsA2;>gH1Yyo_A~5U7Uw|7 zC&MuxU~m)>QmK>r+sVMi>6E~QINr$<@yhh~qR%j1a(~DU=PvvtdJXi?{e!#k6X-h< z9DS8I(A0v1TN>sCwYJmfi_p@84)5gWzm>L9Qc#(3={FqxhU4%q-m*{_S;gc+l}Rqg|bM+BMH}SdB;i&98G6k ziEzep;Ar&d>#n^6405gRrY`}&x&^%S*P(%CK8!G%6u>4ui9Eq6JtuQKvl`XwOCWC5 z$w}Yn_SdHEBr6_4DVx9Ng7J!WA;NKHIpI=JJQ*95SOzo!$YB^IO!}4}U41KB}t2z5-?nf_)~QtwJ0-dWE!yx`o1X^<4jmLk^wf%#&PTn zoTMn)i{Fx^!N_PT4Oo~kQepHiOwy_oJAGffu9_wYX&5-K5@TackOWXNMIm0TjXuZP zIW`|X2F_YFA}YJL0Mze@qZBez_O*s3SYy)UWaT06s*IKfDuN0qYkwe1*iTeO71g27i$>YLwU0hA>C7WLcrG?aU47 znhBb)KSUO7#Dg4@fo~1b1^|7a$2e^+1%*-PM%iTMki(4~gP6DoyAUMP$L|qBowl14gkSHT%&j@Mr2c&EmSy{XrP)zrMCAru6rf?jHwr_M-g2G zm0#w(roe`%Ig1n`>MGOY!6y#m>|)A($qU3lxCF_2&keo*G^7u9dYlg$FOWOMghMe6 z6G^fk-uRrK|IOm2|KuI7`c=P0i>&DcG_Q1IEIEMqlh^yq|Zk@Gt*IHYr%cA)?u2Cn8*C$D)uo(EueV z5F{dg+1gIy-$G|z%S(RDi|_SMegS<)pw|EtJ$Uhb{L**n@;m5^^Zg5V^SWoli|(q= z(dpA-g#*XBskfllX>oX}TDz(?gY0d8O}wBGNb5feL^N!&oBnQI_(L$@T-b9})3u^4 zq+v+ALqs&>Z1@J+2hyw$^5b6u0N;fJTQT%(>|Du5e!ijn~afLn?vu?wspz>=1kx z%mGL_CJ`1`mFh`^zw=?W#gJ&f7z~WN6g~S{zFvF1#7{zHcfhejSo55eK6a2!pN!Ua zoamsQeLzIMQQYta=-p-I$29q_HF)t}fkZ*8jlYDZT*Dg{VCh3Nd@>E0fcDekd-i(& z;qYD9x=ggOXPk32O}rG_SE02hoqd(N=zS>K;2d7K4~KWtP+eqm1$y-Z5jyr^*qLIQ z_ii?m5u?BPBljCB6+w^H_RBVoXL;eOHO7|=^k$`!SX4c}FChw}yw>@t?UZvadN#>h ziu*u%q}C~NO*tZDw9<`ZOhQB#%<2(Vw4eSU1kM)r`X?e znHtYY$gFBb`8n|bGru9BB;+?rSt?MKGO8?hv&@FP34wyLIkBS2WT)oc3rz)~Nh1`3Bs7Dl6S&SrMb zhO)8`PYaLE< zC1Pp1GAa>*?nz*Pz4r}Igm?fYnX#z?^HLS*nWh-=;;@O%5(f((;XQjVr-0;EmBLYJ z<=Qxw_Qf+ZJ7)Hp>(g8yfPC27#o9YvBo2RgDFEh1K~6hnOrY?t_Xz7l0Dvy_JB$I$ zD0Ce~g+e%PABc62ft{<#4Ix!#AgMrPXc92bP$h;9mD%J9)tdH5Wvr2fie#6d@A9(V z6}lSMf8xd%_MR;j1RFXj37BWU`~lzrYs}6*(V(+iZv7d$j^e-uv=2pc7g<7Ef(e*$ z>;Tq00)Uxl(k<*gzwt=uY%$}5sbCP5GyDKdzJYyfux$|loO_!R)WxeG5yUz5JvI^C z>_4VSH}cx2adlBZoACjhIOyknD@X%EofEI632(^;sq-k$`zKoSL@nOx#{Vff z38ezO@ISERes|#~Xy%78WD-B|x7hmzO}rLG8z0>Zz(4zSch%pz%RcQ}+j-TaH7)LZ z-T(4a05EbE^&XPdAI+J)rJoM(!q&L@!OR#iicTAYuH(FOg*)d4zwS8@(ALLIeFwN< z6-3+Ddob^QgY&pD#$AT?K{#=UH!Y-57hu{g=sXJF#Va49UIX~ZZvVuWt*pD^&oSgI z>|JjpHhz3t&OxFv7rDzmfquhz@z42%e+S^Hl_p$?T`RG7eZ)A)Nx8rrH}X6jKLjui z?{b%YvT!zgP&B`XE2IZ9N3lx={k>_i3C7xz1`&>#qmS@ z{PzH0+j9ToPg-Glal}-2%^f&)nCINhuRScIJ$RhE>?1g|lXtDAk<&2m2Y%iUXzT^_ zd!GluFaO*x`WXNkGTz<%RUF*mAOAQ1eXb=hkY z&YJQ`Rn^W`M>+Ym#;vMlqor;zbSx5;P*rNB>{=u}jioKsl(D7c`6S}Xntmq1R9R11 zQ|FiTPsCk0Dhph-0`aZpt~Dj$8x|K!lD%+{1xDs_r7Wh*31Rgmj7TdOPN1T~gc^b> z0#F5<>5CO%NQm(U%bBPs5e}db_tuB_ueM9jRa~yp&<*|a6Hv1nU&)kRJ9~*j?A%E> zHc%7fpwdz*G?|k7-MpUeo=9YZNHe()l9A>pG;NWJX5LvAk0mKw>JhRpo9aPzf#Re> zL=ov6Fd(gG)8BKfBqk7!*e*%A;0$MN9@tDC;aZ8{+fHs zo$mbG8hhTro;T2U7)~6nw(QQo4TC14W4C=n0Q!!=iNiQ{Q2z!1v=7FfH~jxBOul1` zz7Rw>b`U#PVEh#{{Z<@1h+_x+oPXra3#)L)-Ewzq$c*~PnUeqdz-F`$q-pQqB|nq5 zcD_!-r=ztUogKo`;nQ$n3vXIr^`_mSGtPIjK8WGddBY3*$ep}<4VY=x`&-U^7kUlg zr4RaN|2gsMawdy5POovw1ysz904F4R&}->&ErFiT2Ru;!XnJw}NOl(riz zW@%Y1{1#3ElWh}XW=(%5>KkUdDdV9kTd6Mr<=w%XQ{omm2z#XB~#N??vqXcemEs#TTV3-6>8p_}PkeVCcduxFKMtbw$N@ZSakVuHnK zJnLD7lJfsw3aa&`rS{v{gd++;eIgVpb6UDuZ{mcUgn}|CKLv)CG*PLltOlRUYdWb) zM3#!#7?6FDlUj#nWEOHq5xs6&MZN9vqln{g=>^N`;cPJxt4;I zQQ_zd0kWUaxM6OXMa4#5jG_lkyq+fBfPHUZ-BUE?O0>4q#Ovw!LEiKn^&Q2&i&s7* zy=Kq8OUMhAx3;6D2l@O6`Q z9S~pGbJ(TXd4yL#TC$_Y@G6_5jc*@>*4`k8p8ZUCnhj2h40zLv0NjN^a5hJYM5PSBRc7<-AE{Cm9g=KyHZb?7&o7yq}+EbSx!^dDJVb0>yR zhjZvUPGc{jahIZ{2dF^jF<$$uf8o2>yIw;Nw)h%4!T{V^SL66$KD>(tO~CQPyyRze z$sfBb|CFEn2LNboceCD)&ZB<*_uZsxfbPtc*KN|FcIw#=Ej{5{(5r7cpVKLcDtbn8 z9`(F;cOKtXbBx~-kA z`z)P#B@S$_Z-dBP^Vc-#tvvr;p7%rO#@!&n=sL>(^S1ynZZ;)ai_A^B^dofP`_Qv5 zI*++`e=}Cw=;Zl7!rbqt*t%-&>-(>uvm4GddukzR>HF>{W=2R88WNk>M6oximYExk z^t6knJxDzez~@<%#6?k!EI~#Iu_Y;&f=6#2PY^;F(5}bvu@x=V%~Ntbnk%~a-S6a0 zMF^y(N3IYI#=4SEmBLjVMz-yj@QPj#cfkp_4e?lS?C#jjeznh{*{6O8t>zfCe_i>x@1gCp-MqsJm9^?opyc^X~t zQ=qu~u8magJkTb zv2zBJ{NqWNDXd(3xxph;R1{8CxfCssysA!@k{9PE91*#&1QdKDk`*4n5vN;XB>x*X z!U|8}io%)T5ySh2UMN=^mq+sWdo#j1}D%r8b*M)g2BI~sJYP4)RUoNipS~z;Iy-f=^voe&qI&? z0C>v+|KdMUuhWXl{sw(c2f%BeXgqT#fZ{qiF)#VtJC9(;V)3lTTv5#U00y0nq76s) z@Zulvnn!8$m6&)vuX%)byc&phXIx0bXZpoIwd}yXeo0p;G|h=srL9 zAF%Ox^d8EGwvuZx6F?KM2f)w#ogFu1-{3u~3=PPB#UO-?Mxz1U=c$|olM8Nq>0#!g z@+DHdvVS8#`}Z_>60iAfb#$svEHmPK8a9;=Y(~)o14dKPgLkha5W5!mF4EQk(6Cl8 zc=u`?+J@wN259(<;*Xxr8Yp^Fzmdh6Z%z6D6s^2Pop7c^4jOncQ_IG=l_L! z^r4~WQ2QW+gKz{IHW>hKm#licV>$M$O|>q~co*6SV#f-Mz6bzscmV)i^f7cD$I%14 zc_B@^g(hAlUeK9WhHJjRReg(8*Mow1kD$n$u`BhdYUy!1h|wewo>gz3$9V8~hi`R_>bhT7qP z9Hl^FCWwgF&GS$EJ@p>U%O6fDubIf{_qHW`&^R~cdK}p1Ux~X(F={4V^kH80BrkrT zPDX$e9q2rY-h%+3{|Fq~2>{oBo@U&f6}#kiy5#m)?V+8GUw;7`7oy)#ckSme>O5X> zKaHGT+X8t86*#ho=lu{+s9_t2b>V^%Ln942M<4hehEKw_73e#}|LV)UUKjTW#YcaH zmL8&Tlt+oOSFYCZAB^m-NlH9~Zk}3*S^cT>G@GPl5T@i&9$#nfF5pY%(^9-1mnaN~Yv$N= z1gn^ubk9gVqe}c|xt5I)FaKadkzQ6|(MgI^PjHU+`IZu`U+#93d97|%bdwUtMuxTI zj>@itk^tnbP;~`HeF#=f~&=k`y5d&`qj1 zbwBDyCe|F)Ix`U!c3Y@W#Nh-C!U~Z0V1%WOa2J{okm@)@&`f#bHj#`ErO|cz!60=| zuU0ayo&$0+-qv=&%(D9~trL1o(|F=S{w&HoQE_9sJjWN|5bys9y)`9INq6D^X|0mW zA?$PWo|(h8GzK7>GYNKHjv3+d5CXS^MNA?kn}cHYdYDf=V;_RGhzAT9vNmE)NchDU zCDodbh)qVWzlG3i^3%-jQq%}~Y|sSBYR~s}*4b?PCiqvbA@qk3K$8Cr47o{7Oq!0L zBmfj*Ab#P2jVOBYKRyGs001BWNkl2qg?|~WHmSEzW0id%3ogI95r(ZKiJ5KcepYV?5{_!s%M}$(vz;Sf;wY=?BKCmU2 zI-#I_AQ~sIV>vVXb#vW$@1dzT^YJ4XHknsGiv1gr=mD$HFZdyyeXX1FHX1$^hj#dd zKjI}n*Q<4jS3H7&V`$a~X!LCV%r{ET44wC0bawdHA91rj7&)`>KAFXrew-#;!Ha*! zOCQYMDnoD(%Ni-{jA-EM8*|c>=*FMYhsbaZIWaSx_ipq%onQC??T@!n@%Gn=99{5! z-t;o|th0I&YXa^(PW^@fK+k^Iwk%YL-D~~#-bGVypf`Pr=ll!5_ON^Jzw&{t{P34) z>J4=9hlPgIMx#e>e)^yJ(*Z8yMze>A*!!x=V?)?E zAB?v68H~!7u5OyERzeNQsAGq;Q8&I-0@SrpSfYjxfF!>PfQV&>KUZo99jNVTM06GB z`BXY<6qb~Rp%kb(vMs3*LCTFON(n?M>GDcE^OKTPA~-F^rNFwPP$8np3RtNxrH(`~ z4!Kp!j~3TN3*K^fnOnt%xnX#W(|#o`+^I@fbNa($YeA%912{b;ZnHf^6k^j*Un~BT zbkz3p$vGy8%u@Xo3f*-h@qoz&K8_aa1u1{UY)Xgk^F%|T zLGypgzXab`YXeJSF4b1f-f?1uv$XCW0jxqj5G!6{A^YI5=6Xbnn;;`-RSwsz`vz;; zZRhlSP>7?%jm43T$rRN?8!^>_f(6y&-h!VxSWe~@%M}Ne*^#?I_F}jcI{ePeXf)Wz z>k9%~NP|W`+@c^a7IKY_O|Wn)QH)8b&&CW(7UvwvaU;0|$x4G_7Q2+@WW0qrHi9w4 z!g8ca7kT4`H_}u*fb3u~O%*HSSgSL)Hsumz*0St;Yk18ep5(u#80ypEBM}v%u=eFN zl^_8ut9j_`;3qz9vL|Cs#A_dCy}&M+OCg*C^cu{rEf!w)Tfg=R0Pgb7iIgy7`_jht zrS>8buzwvIoit<;H;&Pa+xWnGzwBomem%H}pZz-kIRB5J^5bs!Hbz_!>CzAG4`0fp z>&Pyi^CfIuln5{r5L_T5((n*XdRsB+ZO9*9@en`v)il9N3AL1-Dq<7PR~2Ue(Qd>n z-n9}3HWCr_9?an)qaCmL$Ntt`{bl!-|K}h1YdO~9;&N0Ot__-4{Qi#;W-xjWrO_7^ z@A*+$47~^Q?$xYBV$3Bp?lP=>7QxL3ZtTS$N1tJF#9P|X>on>+%w79Mt(^ei@D4xs zI{@5ye}JC-c=eN6{{iYZ9LEm@%6ZApF#d8n=l7_k4IO(LOCAWp0@6vv%F%bx{G4y_`g!3Ccge?T*g1aw_kw>_;*z`k zQ*`dTc-51B?!Ov=%BjQ#r=w#!jv`Y_Pg5Apxt%%lDmwcu*zzjB^h32x3X6p7R~F z_B2AlptG)|VQ2B&|Fjo9fJP^8UQDt;t{d!1on7!#Fw>PEM_VsC{}#-+DK_4-Z9aLx75i6v-w=5nNe$=4PEjNk;wHhCd5j@-4k772vKlVs%uhZ`{7h^tm443( zs_Ly`J)4Jd;-v2fTWN5jE)^D0+LhA6T##FmkRp38XOrzaY9Eotb z&^;F=#JXOy@TAj9m9NrWix^}UX2cqX(4BSRP?%l@Okl|z0eCKa5`GTfGn38R9$ z$b~6@uoEVw4#7nX;ixpDB|}z1O;%ag6|L6<%~u`v;Dtpev(4fh>i#r_kR4d`dKdIhQ z;1D-{^GPDP*ow})-d*rXwDv^TG57{A`mTTDF?lHr6J$S%u-B$k5>=6!SNzgH^VRZ> zZ@?wDgrz#Px;s4fE(aWltLRCYQ5T}EH*cCxL>PW9iZ)yM!M=5V{@w11JLsZM@N@r& zq33`cj_fXjLLy#t4|)&Li7Cp!&AOd;uk!08+nCKSKC;u2Ph!VXY?#Nd{+!zfk{~xv z1IJSTGh+Qc`k}QKPM=CgcBAuX{Jynk=o;@?gCo0n%^Vtafl$DV)^_SU4BKA~eBjOw zzwDRp@;?KSfBxIpzfnBoaQRxWFTDp-uL0P%5&JhY8j`I6!1&8)_;ml+7onFIF*62^ zE8g;1ciE@9_O8c)Ej036I{O-4{{oi$cY;KjnW?R}yXrGE=~`a>lz-~3>M+^;jA@j_ z4#7rKsLMd9wW@V@*;YY=s%h=zX1)i$%P+h?G$XJq{JM57zxoi(`U70}VSdiiP9)%P z=PEw1g$9iQd-NWJcYe#9;S%VHXhv^5%L)apdHe`gJQ*<+z>bQsv*5dU`6IzKv-k_? zHPJPeJ28+TplG8Z6Vj~}Xlt*&RN7^3RhR-~Q!I7JCIOrYA=TruD6=NiC!;r zL4*S{aTzThWif6ffu6KeIoaA)9TURuaZ6s#ykLRjuv$_jA(jb{%gxg{6-HdcqX{wO z3t=Q!2PM``Mt|sX#5tt<&y53~6ROmP=rAxqKE|@a**=a^Ln1jT#>90$v(8iS_Ssmtf?Kc^s)TerpE*ZBmlb7p}NVHu!c!)_!XrWWh>bMNJL_Z2+;c(%zxu>p@B0* z&vATN-i`p9!R2{PL>yo|Kt#p|_MRK8c{V^GR}{_>7ZGldXMk;WD_;KN9LzOU`IDxj zpyo0Fb=32(j9Om#%f`VCkP=jPi%sS&^`p69T++V>!0z@ewn&D zX!PYY>1JMh4|ZxotnPdZC9A8N@ z;~c94bL#4=87!+UTrFRHXw0QJx|i2JMF904h93QB;x#np@>rtl7>ziO-g6(QK<^=R z<~45MxW>bO1)HQp&!Ij;fo!Q-6-jQ_1FPEyq0cbt*ad)39BDlDH3HB+(0arV|CMLG zd1}yjcjMQw=_M4cXdmPs{eRfIF6|T%@hd+@MP1PN%hA@G_ilj73=KIOEp2F=pq4gC zx5EtYeM4$%Jo+UB12|}$yXw;@+IaIK9NtN1%#=>G^m5nUiJ}dQ?&Hmi8jpM)ZN2H> zRuIv)rGCygaBwRUBrQYMcPI@S&#(Rup8f{u427}>C3#N!RX5^k0aT|$qB+fg(xo56 z@X5UBr@U^SPWoW)Ltzq?_RX!_fE`*N&)I%}q_9mhM|mkqQq#F_r_(3l=s_Gi;2*mS8={+9eDuDo@n~cc zXC}qUkxY4^#MM$=$#3=DwO39$2Wwj?p@Im7#XMQ#)Dn-QNJNVaK{*ZMq!YxDeW<}X z*nI=K9Vb{a3oo&c8q9_+_C6sJRAzP6l-KsR`qZGHk~t_3Tp~Zg465^h7*r)dvT??+ zm_?!E%h~xWvk@gJC@CUsHm>A%^8+k*e&nZmLxKa5sg<`c*XZw8!^`}{^x$5rE zAdV%HO6{JK%qN|sY9`e>R+L_sU(Kqf%aSI>a3#AFFm%WaX7H)RQ?5mxr#yd~^s>IH zv_K15TsRwVbkwyS!F!H@qOm^}BvGP<^H79+>GCC}bZ55u)odtVeoA&3DKcw%nxbs5 zPwGQgMn&9o)~lP0lyqi<0(uK7ochNZzKkr*j7_!md|r{2sRZgM-vLEIJ$u%xY|<@- z8H5Gma$mYrFmsRygkU^j`Ip5PBj;S9mFFpLkX0vr@tznBC-If&SpgJIMrw2?6wpMW zx@r{i6uIC$IdVdhK>2umkVQm=ePvVUqZk_lHMvFdtwJVgx-v11dIm$5-E>J!dCru9 zQdZ`aD>RrAbww;|JOq1gh@(hOok-`r#*IY$Scxfg9;NEZWG}grRc{#9l8GItF^wKz zZv5txAixpU{WioPTHf+q-m#eH{v*UqOP1rsRaOF8+iAv!=_Q}Qz-z=`a3joi%i!S*qy7RiJAEn-7-Kp~=;}P?J3Dy8E{H0t34coIf#ckp{{}@5zw`kB z?#-X2D?j5O{}K-GMDoqh5;q!XZEv~iFX`;7dBvmXH-awy7>YJtcyBl< z#|;kxBtHw$)VI6Yx8e8^zu=xyL+I?_SAXGVf0*9>P2MoyFZ?fTe@!L|1M8lzj|uKs z=YR5%1Y_AOM%>kubfoIuq~F_f5+BJvoO>%xdmFEv%g@~{v%2q48hI{?77Uw2z51i~ zAZkAit-a7bz|DTY-|%AC7YBeY`(tya{)r7Oq?NC9U_4|gLWq>K&l zEtdZs;cM1)v7o0UlTig_Lz7XSxQ=oeefRA*`?)IrLT~aO*N5@r>!qebwk2nh#v12E z1TEG(if5Zuz&Vai_~2wXvR0bOg_i+@%wvJsoG2Q^;i+r>lm*@1j%bp#@tT@Tcv)r3q?zG}e92YQmTIKUQ3~R- zepMA*t^z`6Kd9y45|~RKj(-Gb%PjF2V%?;rFuf^NLAXH#aKkse58$#Oaf@Jw`^)n# zwRvHSTGZX7k9E^~U$8ZnWyO)Ge$bCZ0CC~iehkU4y?V%X=Fi$2NS_5I#45O>=vOkqrPb5k<-N??M~!X-I&4zBUmz1VIyXvr5AVXjf_^nDeC~?MA^uT-B~x$h}mGz zYaZhz_qrJ$q6t^KNw@HdU!d;@_%7DVb6E590>FTAZu=ih1#LxdHUiC|oDFg28 z;5lEy)ZeFbKj6k()>!r+Fa9xg9R(%1B7sx0S|@RVnmtrmNvPL85|)u|pQheQGv9}z zmFM1#4KFaWpL3Uc(`Slz{+nNL4=?*=cT5;Ig~nXyx4q`KFQc&+w_g4!3>byQKjjzx zjaz!T>%T%5{UHxNi|2fc4(+5u7w1OLq6=@Q)2HyNC-|9f#T$N-hd0b`Y?x0|-sWb1 zxOn?F`Q;z+f_o_u)aolb-}Rs7ILVZAMcxzsoT7OqfI*Y4p-Vr8mL4=_HvRdta4l%* z5lBGiariDA*@LbVIJBLQ9i*MBF!n;a=)?T1?2GfuAEnJpux9QlwFtFw68ed`i!v$F zHS_Rv0~xz(XWWJ8GZ+VV^5fs&B@fXRe~g~}-L-dQJL2*L3=~hQ#I^w>!_u@*Sq;DY z(|uHe2*?kSr|_|9i~7B1ruX>f@+K^(!VA|J}s z%%vTv<>5)W+6^njwNn>JDhvm1Nv`G&M5?(_5G?)H5Ba1^=`6Kg%^_a$!Hfo7SF7o4 zHo=>8KNW-YL)Lmpr|6g2f792STaB{Lk(g?7j-bvhsinE;W4UT`%}_Q06=BYr2rsb$ zVupr0ayY76@wpV?%{_iQ>ydq#_kuE6uX+9#{%c7GwxEe}$pjHGTVE3r%zXaNq)?3n zWOUjpZ%xyt^iy{woj*?l!xIu(SEpaM> zFz+sHiV}U%%@Zq1Lhl~zoRht3TB(g@vJE@wU9OL8m;wonMkDw?;qIew#SkPne;}Pa zxD>{))iYICAkE@t9P?I!98uhN2MHOg`XexDD%a3LI2e;}$2U-eup>O|NNYCeBo~^7 zrTP-(C2c{;yBXf)EESKyZjIYTmS#{Oe$O0_4wlISLLd#y%-%O7pEx;3Ezabssz;b? zqo~##O4@X`e@NEjqjS>FqT(5)L3#4Iy)pQ1_2D;Xb=+?|A<#T?k@Th zH~JF4Wr5qZ9Hoa#qniKN98aeOm|3p>%F9&IXJAgIk4Da-)2H#)m*alF^p&uscJj?M zn@o5~+~g(G=X0u@?&( z7&HN{g&JKY0jRmEr8+v5UrVwSVnKZTFdaLHqx*1R8+Yu(t~EHan>R1!gFBKsWSb1P zwYzuy3!QVVU;RwDP>6P~D_wG$sN&j(aMqhKXbfE8>+H1*bTF5buf^Eea%EwDq^FyC zATy-P$KXUIKt3^+0q*izVw@$w@19B?coh25NKiZXH}9#5ESGGPc>1 z7|!nfz0gcrZ`v-$5d&mai%qP8x2y@a?T|4R34MhTmsCoE-d(3ElOlR4hQSh1@1`Ck z2#s|3lZm0umDVp4$Dp_|jpB{HWs+?%88l)e+6_#f{g@2{0NB{D%-B8Zgn_Jpn~KkRyn59 zkn{x5?*Sou3>9J&I-odEpdRxN;P5PQpB4>7O|qW+FZP63;aSgTVm2 zB5|^TCI^J=QbEQDaAAKY5p3I`u|k%eTy%OHa)8aHH5+q;2hnnrY+e+k@H-`Zh(4{1 zwHz*tdQOhJ1ed_vZvs#_)*TTg=ZAvy|{}^g%<4rH{@}KID48XteO`3Ew^&5dW*4iiE>DT<0 zH_w;8xAmq$XW_&_zx?MQaK|p%{30LO+Ev}+}Y1%$Ov zW64jlR#rdJwd!$Ho~r$;_sY`eLOTqq?^=aT3+ce7sKgNDI**p|-2Tnf zcc>hKI&p+w{DIrHG@Uz0#&9oG^)K-E-<1&Hr~(DjA>hRiV8jd@Kb!?h zDBgo9q#oKqdp7{UzKvM@5SH=ym?8;sV%Jrb+LbQgz?OLXqOu> z5=FCPK4jMY;12BBAYFbjPds>dH+HSz%}cQ@i8Ty7gSV~V^wL;V4jTvZ zg0U9e7&La0MIoI~DQ~-R(kfH08_DOmqldW8^GS<3AB_U^5+1Z9Ii*Y_N|q}e7IJ#; zXIgXUpl8x8Bw$(dapVf;yxwr_81DaP@9ll=TbA^or+U3-d}WO-A}k>?l97e5z+(Xt zp^1$IB0+-0A%R7}-+%~^h>4sLka+CK5+XtZLE;Dk5+o#$2#h7s*6fAXh)|BuVxUY2=#1DC6J@9$ZG(LR2f8ZUzH9_GlJu-KAyoHWtL)6vd3!-_BZI1l~SO&&X>p zSeZ1Hs&je*m5aiFayrqbD)KC?!_pRV)PEZ*is`7G4Zxy7q^$*=-0-xCYJP7wRv%_e ze(0G;=C4;S!U0d13N{y3hn=wri@8BiDSpkhfQ(%!R?HEHlM_5&D*S>>*H}|PKcBXX zka_b|mfo>kk1}SCawWBHI-$>`8F-YQy&+*hz?FNgf8PW!AsxZBfj%^-}KW zP7%mULemw{sZ;a|;>Qs~Ekx!>@k`S-b>wN8LWwCp{fn9aYZIWbPzbX&De&9)3l0%@ z+Loox>1HYP2O=fk+B)3c{j_SSeKMKYRzz1BdEEJ?+gTm8?e}G)V5oTjfV?H?m^pBJ z#5+~Fw3aCHnAQZ`-~qIp2hn|%vC}_}!YVU_$72uGbapzBxT=j5s4BaeS|r+=7uXrl z`eiL&L8f63`lCQLMNcEsX+9w8?8O-Kq8%6D${yaW8*X6>sL&_qS_p{s3Ey-Qbu z(8t`Z=tfvXzGnN|?b#@PS48&i)GFTFKr+2}m2_h%zM2EC`EQh`?`+yKA*x|hNGbwY zbg!77M-TUxXN03wf=dzGR92}{0QWSkueObg&{K)iG(qBKn#w2j)wyzfCCE4 z_-uL2Fm(U|`Q4YF9}+;O>hE|tbO0mvYuubivOfCJf6h%#)j7rTiBFAy!LJR1O*n-K zM+9q3UtKpLQZc)bRHPLiMaFP~BVvTz*F^QW%x|UpZ{~@{)MQm7{X2xKGj2KskU4ci z=WPx7;it=Y3g++uKi!mo@IxZ^2&MIb5Y>y`L0D`NyrJd(tLj+;4TQd!fEmf^pta#q z#;YMJ({BoPMw7U@?Y2DA)ZLU>hyz)9D3z*Un*E(R0gP*K|K|V+TQGFfzxpvczBx4~ zBkj|hi#obje4sQ6*#4$&tqp2!N!mi{4b?v?O!isZ!O@yKn?H&Oze4 zcGPOs-IxHdOu>X@CcrYUjO&7`3qF;ir79@us3Az)nwIX?z00whr;2qTd(6447)NH5 zXYcT>XGojWAZa+ol?$x(*V9Ep>_AB7-E395`WF!rE`DY=4T0tax#a7@z%#z)yNZaH z_?ioFapOQnm(iv>BcE1j*AFCO4*#_EiHSB-6+Qh zvdqzL1*|gjX#B|A%RjI#DpazRJVR0e0tLVqz zXEBDrEe|f<2E4>fSsQ4=vX`!)C?KQcj zul4~7Y9s9j$#rBH`fFzs{4L0>D{sxf1SIw-IP?(Qqg!N{99q<0x2U*0gS`n#*PwcN zma4vvR}|aEswav3foG#(CCl>MJ7!H;ksMr+07SA@Ww3r}t# za)82${E97|Bx2b1CpxpzpVWtg+>~mYjVL@2B1tXI9wNh&rSX;WkSbIN0uNPM$>9Nw zVOP&|IbzOUk)rT2y&iR9pCe;eCfO1GrN-s4AnQz%{fh* zE*bJArm45(V;duaA_qANaB0f1MQ{-7j@_fqq*B?BGwvWN8X-Gq5j0rG{Ll@J_%9yIl1ScjnUr_U;4??kfd?yfH-sGe|ql&gOzks>pei7cwu2GC|`gVJuIz?fSM9i=mlZI2#1P0@$ru2GlGDm?r!sj`eyh zpbBG=n@)lVn)a!<9qa?}LrzuE{^(*+psI~nXOk;sv@O7MN?D(Z@J(34^#`ZGI>(i3>)e&+4EKn-ejX7dh2m?O=&I^;*%e7X`l{KYLun;? z(=(n%*ds)mhjLNUu)Dl?AdT)8%6*k#3M&liqiiK-+_)u$t7LwS+|H^RSJ^5C!^`Lz z2()}+38ntvKbOD2lcw7^a0rk;I#NUBskl^a@KSbdbA_qSet`o5#tzhB9(H%iKc0uL8hq^#s&dU?rxx$RTcP!chi)+z9~L$37Txt?FN#C@`{S13D5OzZU&!o>Ha#D3COvUVNW;)F)Pu33f(oxJ+B zvvT2~791A7+q@8!E7#LC(Sxr)8Ezo0%;Dvb|$=7*QZy$;!P^g2P^!YCvaG$ z=4`LyD^;$~p-wqWh8blELHp}PF*YT6CvUYNduMAMxsGAyz(S4@=vJ7EFgCB6Kb9g2 zwJkY;P7x6qi*piNR&q`e=tm7h{PH#E)cLjBcbe`H5ub=klb&hZa8KbaG&00eZ11)^ zIu&*(ayQ>s&djTCXjYxM6-`RQR;49_L*#Z?#gf0N>d@)C7e*fCndEOw9a&XPGQ9h~ zXRq<)0VL#$?&&4~y&FGWK1adnby#_mx0Xnw+ILA4!PloBq44#qF=PzOBOLsX4vugs zl%*a)9&(l{7@Fl0(g5rmO9iz&!q@)vvuNb9dKp}B2sML$x>PVVym^w3)*Nr3O` zZ$>~w#uaN3@#0yRmnQf`_*ATlhL@4;m0C%4%#|B29encEjn0B*j2$jf48v++>0#Be z33REe#o{DM{dd?Vlh`(Vs+LBHzZtyCEirC7WVE@`-9=R%zIS2e(x<{GWAQY0dg@nB z;`Vy>v3_~9w7#?biP{74oQ&C7m%XUctBz^D;Y##(8OK%j*byn~+Y7<@7Y`Q6@*7qGV@i}?B`7>7UH6as2&&Icx_l?X?6&u% zhEM%RQ2g=TCVpaa-DUN`2%|{8>uC?i-vxUqhE3R#fc`;jJDS8FX%*#!|AiTtZ2za1 zn|Atxuoi$W$ECYUFLp2B-{Lnlzdv{LS!U4X@cY)a7XDh^+$`Xa#XtVcbqxGC!d@rG zqRl9ZPaLS5O;ydrluw-6eeKiJJcMdB@*Y(9=ibzG6y~!;5hVu^KG!bLnF(ZGA0^7q zIz(WpM8p?=BJIg#TaQZ86%nx$8WpBU=}^-;)vBB-fY>5~h#NiIi#5gP*M}c;Sqx3E zI&<1+{S^@TY4|$PoVX{ZieionOfF|Yc@bQ3)MWP>`L%R4#=^ZaFf{82< zOIkP2eV*Ie>-g&A@k*g3;#?eJ$Vj=f3tJe#jIrO z)~>Gt<`NmiF60x$!MIYj8F`U)0aJZR#AE`W7|+XnbmmOTrbhS{98a zFJvKjsdI1o2y=0Ad;5zd=Fp#zkcMm2XR=%@#g_fndXD^ATw1I&9!M{bs@l|7vp=Lw zd2trDfsPI;R%;12h-*X32W&&Rey``Bp5BV5N>uniybf*!e}#f7(z&%}8TVh}-+PyQ zZrDDDRM?NQleLnbi6qx19in-fQ(h8Un3cXmGI~W#9flY=gQ4>1EKO)TI zjX+-P_QP6*z}Drbj(>j28y{b<>gM*EmN_DXRn#kyj;YRG;{~iAs`|msl1hk(S`M74 zIu7#VO^6>B@?9DV`ne*jSHR0?LTDyJTdq-^~VdG?=}FOR33324TbSu(k& zMWo4#0G@zAg-M@b=lQlEtq~CIR{G2NI*tFRhd?eXV?bnzZ;*@Gce7No*SWN1R9hf0 zryq--o<~G4-@>o^v`XQ>+P$2?KxUTvGF2%_a{RP=44?YdpAyOF0=uAW=hHa(=mAEY zZbH?nX*&-itpj)T@ULVeqf?2U18r1Nhz>{Nct|2@W{Q)t#H=d7t*aeJf5P|3RQ#+^ zKU*`#7}q6N&6riTz!mN#DW&Psyses1+%|+|oO_cX!`4DW`?Z18ZFQ#wRLvJ`XK9}B;t>L#NPN-m_><-*C%=dKQO>ZQ<{9UJVpUVs2q>HNq4vzHJ>nHg5^yT6E-YGA@gb_zlYdsMg z*cttts=`WY`u$hD>stS;2%ltleWeMof1nKXub=1v3u~Eo4ui5T@z~WVTg?)xUZ`l} z{sY}g3bOVhljiI>xtp|VRTf+Pu@BsJk3?b;cqhZn|^z~mJ{19YFi-nLyu~3+Gn68?#E<-Xv?=r*~SS=CvO0Y=_6f>qN29VKYlGG+nK>JN}YNBl_}_ie-s5QVos=T`Fa0EjAEeRaE#z2?v3ei~^E%E|#hM zb55P}x)mZaB=7$gQ9Jb>s#Idd#fFOK>~9&;lxe;_<$%bSTyywFFWuJPYMl;M=M-ZB zbC*GN{BGLOAm0vXuwI7gUR*kK*_)1NMOE)PRXzE^pqH@t=f+&nkp1o{dVq^7F%!%t zL=88XoO@WA?MC!GXAs-);u{ee-mi(Ov+ZWPSrBbzPs9JW1Itsf37&mlBPrF}*`Z?e^Vehi>9}8C9R46Bk|vLdrW>R!|~kYQza9UTg)B zqt!jxWq?u{FktGuMEYv@oD*_bb`Xr5pR*Y(;I{ocLo8#mPSyL?$v)dDeDM{8I1S^v zM<=Mt`(7u{5suw9!xVtEH#y|GS#c)H5lob=SW*hM{s zkjchD-I3e|&F!ZPWx~GVqyiVhn8sU-CUM;@5cL)>spI?fxJlLnmTHuf=<3(2H+}KV zM;E)lveKy%{40h?i+!z6^Y||~=1AmXk@#sv5h60Q6?3ZU>?Qya%ZNI7%uiKu+hVSu zWJS*!HrjUTvr`8kQXCD*yGkwT2uJI9*$1;EiM{A}>xA&P z*Mk*{VyY*}*@h<4Mt5Ez&Zh+!Vf|Lv?SEvZ*2dLJzg7?eCJWBU?SjDa#DvqiX5W)G zRp(sNa@4LJ8Mt%c{q>F(A}dd+L9$H2LZx>!%W40`X0HU|ygCA#MF?Z0ngy7eP;hu_ z0vXR207#F|iIrNAcHTc6f1=H4?%Hj0((7A(5VuE1Q0?DXjn#^sZLF6UJKBv;kBGTM zom*BQ8cb~{SDu@VsNIbgV^g1(v}5GRsd}ALZ-?j>tBAe*G7)I;BC5X04K@){ z)l3ztzl-R&+_Zg}p|hTboh7TAA+xr^I41My@@$M^qoVy;K}pvO7phw!ev)+Z%+&;B zh$RP~Wp#H^Y*oE=`cz!iKz^uOAbjm+-W)g?*Ci7D0>m@mB?y2oPZvj>VmwtxF#(m~ zmCE8c+p?E+*4>^dF7?Ez<_cjzim~aJRb7=m#wbax-hzd|n~@9o)DxZeWJk&q`9xFw zpPx#=Zi})WiN3zowz!rjj3Tc9*Yv5rZgPCsJ%E+Z-+W%2$^$*;kdIf_OI2Z2o%6Q) zPazmGSLmLMe-eE--mo{WxKxWXaVeZF(X&1Qwas({_e4Gj>eIV;9rR4YjU0=} z`>~)V2-;SixrRUh>Hq{2mhZSuwqp3!DlOT*Gofco_gcTZUGEyBvK?2~ZF@!XgkVn${$+ zxMln4qFG$zCy%$;{*5A?UXryxdcoabEpC?OtRpiRDA33!;VboiGHqJf;c!Ef1#7!! zV(4z4hzwHqNFYl7VpzF9l`3%*67x5Q8h#IZ{)(9z2Yr)I^u6_061zxHJN?2gC(#7B zy!K6Qpfj8eelEE$Fhtu6u8I(7>%a8Z-x!^e(23cLJ$1a+FWh7K)Li?i03CN#_Qj0l z()Qlk5e@wJy{EiAAj!(2%N5w2_!f4$#Xne-YkT3zosBY+)1-E*$77(>FaVH1eud|; zO-wqFbAj#{4(M-1Umj2)jpZrCia_buj3Wmh`!Ud zS87#lCyb)XpIDDibb_wAf-cUGI&yl@-`bb@ET&tYS=8PtpE+;sqw3FGYY~B-jX-g{ z3>0>^vQYBT6dZq5J!I)bjD^;coA3wz2|w;VWhS8#`~beSyc+FbP`aelqB1-1BhM2b z-UYrEE8Sa>{O4DGgf=rTUmxGWPIS#O`IIewGjKjpV6k`HBcXuZ@CCR5isM;uHRO9I z(_4k0G>T`pnl-D(H4e#R9mCBZYhfxdhwqd4&@%@rwuRbb_wCBSRKuJ$JAg=G{gHsn z*LSwit5|X$DOJ@ug(`)x{u4Uqyl)%$A-0KsWK0r#qx2_kj&)RVl0;-ibAh&P{UqOW zq~)q~)yq8Dk=ysg*=?_8?0>F2xcJT|>8{SvZFvl`Z!B2x1Mw0JBoI3AYr;2JOzDvnw&ri?lBQ;!B zGZ+Ukh#%U218{FW5P7EJk+%9dg!0KoExxG}_@VxV{$t^N^IILtTBmThy|$Qo0Isjg zZ$GtsfM%HVM)Rq?iB>LH)o`z+S?FE6dlNxpVy>$=o^N&$nf0d!i}`^TjVd&6qB-4iudMh ze|4H&Dd^dRu*+V99Hm`5zmUQ(XJ)x9UP-s?c8!e@!;on6E@_~G3Dta+hU7tt4$Mru zEAd55V*XT5yVSmaSf1}_;!%C7)jC=mAqFtX%vg7moRYAiOsA?k0_Z}B>x5~8RkBY1 zdh3ES28bFyNp<`x<@3w)WPy+0KMm!FDCkf-&Y~aa%~%|*MgdN5!-1d~mtsx8vl$WF z)c!06!WF6bwgoKq-tY5({*3S?Pf-$V4iu#K7O22?nO`2FlG+=fxU@S~Z@mNKBL0H03W z0$s0M8+3t-i$Q;JQ7OU&v$DJdjxXikdi-Sfu?hVC$}aX%puvlx-O4j{Vrrg>?s|OM z(f7!N_B|z9I)$q1=GBk&FT;B5`w!LmokqRZ??f7WDc-fW_N48^G_ZLG69rD|u1&u* z6KMA%d2?3*8h=zFCjweUrM_o^UEuc8yXeBAJ6O8^gQzjP>Bk-ttpSK>EQB#HZIlSg zsg}AIF*oKxVVNopJF6GE^a0;{?e$N9sH1gf1E$#RYb(zhrObsbpXt9zLvtL&HikNQ zjD58drMakiCy5Ra01t{s1wD*8)?h!4Kv~u>F*Y`amlOAt7tUH=gn;o3r)WD&DqTYqORce1 z2tOkF#bPyk%()X&L!jMC?0h(OYCj_Nowquf50jp!s#Jd@3JMOQV#g)t7y#R1sD5KT z;33a_HYhdqL@>r$}ER$xsn6RF|2N~ zrOwTGLMKgO@(@>I?0H}`A&7_sY*G%5i1@XM(sy%3W}ck#H2MJeO*pzqnsEKP;qHRl zfO@$~dn_J^V#=fu5MQRl5X2U^Zu;GkY+C}PN>mwrL?(Vqpf^Nh$Pko;vO=@hU^k)W z7Pao50Elu|ddYtPvebGMhth%=jpX2xV-ig8lwLfE_;r-L_>iTnJl!Kdz%R3d`%FaX|g-U&MH2-5@ZqA?5|5k{1cc{aM=as<(3L=KAcK-+nv{XnZ*OrpI2tJ}*_B$4l^a zbnQ!166+Y+bc10HXAansTGo_Ok3hyX2-n=EFwz)bGA3)-_56u_=A)|xOK@4*-CvBt zI(6RDG7osWcKOK|S{?jUCcGz_q+*A*N6m9iDa|c?*_TiQ@-s@i(S@lc*Awk??89_pTf{O4mGar=A*4)!G%EvuS?siMA!q$nHBtp` z>aD6hX!rWZ&$oD1bCEG@6=)I>3GFNg&R0i+T>z?`a^j2vtqVN@nm_wV01G;A7jMsg zE+w^K^FW0y-ap%q$^@6jkv&)M$B1G>rT$eew9TnZergMD!X@ILp;z}z#p51~Reijh zr)+*WA;P6!+2X17BR>0xLW1FS)w&Rt-|WtNHy}q!YWXLsj+HN;sUJF~&k>AJfB2qq z^%I6+%Fp0;W?kpa6=)ImsuHAnIs)83H8NzLCTk5 zpGVPV2=dw!k{#~|L5TfnYX~;|6nDV|=r;~{9#KuW>MGq4MSS+m&SUJOv+`$*-7#5R zYvsMB)d**!#S-|+P)s?ML9G>Tw9pwX*xW#aqTm>L~zKo<|D)zOZ@MRz@I92eiA+m1f0 zvbmY)MSwyqiPNx+NHR4xmNToAl+c&91q!BU3NL`teaRKPmxn&?GkVXi@rgOF9NCBR zdtKW1XuM#9<*haZfBFyp#?lRIvwmZEXxKS+Vpv%Y!^|A-xWZ*hT8c}?at#Xrk!u^} zlIWw7gp`-kX^+4b$(yNQy=p5-QP8OuJoMs*B>{YeDo9-n_wtQ5T7sYWX_k_6*!{3_ zsa$~me0yezae3EYTG?u{4XE*Z3?}43Hb@ z3Cc2`eU8rL@n`@7xh{^Bj;Xk(C~j3ts)lO}$QT2b5_(Qmz4YRiGdHFHrr;8~is0(a z=yphzfQn+>Oy8cw%8qHY-8HX>9TFoMjCw*;0PpNWW+}BVWkXv2 zZ{|7{>DMJ)klg{Kai3-4GyLdgx+!2D+rMcQI-4Z}MggNS(=kh=bd>OT7Rg+GIvDDuww_U13o%Qh zPaW42vN0iAUfGEO!F0?GRgChn^`-BNYVWR!JGiqv41y@TOowat#RZEhZBI<7buNNx zm4{hgXsd}3g8qv$Q)VWt>RWV7i2A?gehfl6hI257dIL-L_ntWmQ+!+ugbblNi}G|X z%$&}t3Viu?;xt6D;rT%bpMI*$eAlTEux0P5*E!AFv{jmg)xqt`;rdh6j?~sZaaLcc z<%zhLUPyQ=6R?4T9-o=Bx4yHe%9yH-o00}py^X!!QA7IE+Ip~#!@X1WBTu5v-Tr*6 zGs_!VR4C%Yl3_N*%JKg=-q!3GbNCYIh(U>re%{WcG(i=#}pmzt~h^Ft*5($&2vDR zAX_2V7$O*A6BL4S@6*&VzMOkN))VfKg96pdbUF|`N%nT>$pA3XqYq+~1MP)!CxbY* zy@1C{4^z0asTEOeEp(>}$14HY;0B2=ZyC#CVH=XmN z#k}ss!>`C_(TFkyoT6JpBctW|YJI;rzj!VXoq8Fvv50f zr#`z=L19w-WV{osYhSWeXccLxFzbH?os|F)X|q_t|32$qRp#5zc39)p2UPl1b<9x- zK=nYiyeWUo3b}LvA~IH*cW;L>5Noj`1M7If<$UxRTppr3+>v)|?uE9OGFeZ#!XdwB z6m;~j%kw}|#^LYf!;aTTqeemBWP7W#M@Qw)Vv+b$Wb6@1lT~SAA=FWf{s&B0H)%x#rt*=)tRAFE;#1yX)A!ORs-EFTc3Cb>CqO+>%2a znb7>^TF&dHvY4%-hh4GdHhI?uh0uY@zWAVhOpn~y#w)qE|GISTO||v*J^F}=#eu0% zUM7xhFf8Wuo)7~0zUIff&JKX^HT?MIvqYTLU*nkrJI^Z(KSah$2iNaa+qs}J;Bds` zCO{RwPu8)E!}X9T)vy$3#=^1J!zN2dd+;^BFgmqp4UK?ekyW+d6qc{3Z^=uJXi2gR zh~l!Sqooin>T6UFZcE9d9v=^sh zPE56AN@7~)p&iApy9Xicc0WTbYkL9_Hq@5ahKz+3yo5`KC=gW!kY?786yC;F+&kq2mB4YHxzl{_x^M=TdGyPZP12zMroa@{*O)j z4{m<51Wxu1=>_P+2(PGo(0U=`+)Wu zFgp5Uga=9v`u++oiRk1(DMd!Vc2?>kjnx7H7t^^9&0fRuRN_}R&q{)shcdmz`iu_d z?DOmgdG~fd(R+5iFFs@OD`&E!JjI}HP$As3^eM80RZoOgQOrhPI#`UnM!su_BnYo9?ceVNz%Na#<=p|; zpnE|SU$zT2@3@n!bWTwWDB`MU34!5~thC;2HOFaGN^BzsE#O&1!}DZ*PzQ8myyM^> zeHzdu{@148s$^Fd+_3wT5j%o)Jcw@CgjU;$>;=T>DZqH*OxmL6-$fj*#MuPL6crgp z1IL=<{@mcnM{V5I>Kpp?IJ^1-!eA%EVF?K>d9qzAk}h08oW~K@hTyB|IIv~5zkhM&0 z(caSZX2pDWg9Rbw79at}W&4;?q&)cG`z5?t1yl$ILkuK1FTV2&>ht=-z(6ih5vWc} z#=v_m>bTnr!p8^@t$H170pW@yWx?YTE$9gg#wH)HGj25Q9qDXCTz+8!xN+vv$<)b?Y901M9UGcDjS7c-oZK1 zg*I7T6S((!LYv-f<*wF#-V=KJWw_vGys}f-*KwVJCubUv`T?nO#3K!3c+j#-_82)F zdG!tjD%_86j<9lX?kG-Ak15{^CC6%?Dvy#PqC-OClz76?XcQi?sq`F5yTnYdLQl|dfcEtpMhRPMf`p@7#{iVo^+84j^TUqDrRJf1j+PG8O96y9>4S zQoE>_VufXalu7bq>x(eUSk0hTz%H* z#o>-X{Y}g%MZ(RV3-=HSS0xa(eWT|{^taD5YYmEzvRO{VDGbSx=U~+LuA5Nx-jRQd3`F1z>L#kDF!LmeQ;g*9dqSbC3z;g<{>$azo1Mmuvq!w>hX?a)-- z1`D`0NCXT*@l!vnT3fL+Ts0M*ss&x)TWv7>4qOiKN-a5My37fKjKBf-QjGhn*3L6Q6t~MNSC)W($t+wt7)dB9;FWa2r;L!)Oce2qsYz@JM!^5A@lU+z|9vtnn^!9DmXE9czIL#9D`)w`689qz zd}ek3wH1`m-f)yA+NUjQwb2!e=l7tC$SKkN-HqDSV$g!McLS*Jd{9D{Yz1|rUDmpv zm6Szj1+@bUa(ha_T!{2PpGM?p5+6O|Ckt1cb}*R9z3;iy;ZLT? z4o$TG%(S<0q_0bwzob)EraZ@RL1a;eRZD9z&>}>LLVs`T623DeEVXo&)@bL+h@g(5 z09>4k<01<1P%1Ri0B~+eH8@B{N!giKdj!^DgX%mQFOIPc9zdkh}#1> z&H|ub=1>l>0iwbgqv}O8m%`G~BIom#M*YU6dj?RGF~-+rMZ&;?mMCB60b?Fc0&I|? zSh#cB>5e?q6waUo8h+D`#t;`@<+S-&c>$tZe?Kxhimbc3cR63c=wdx>P0eegJvQ4N zV`ld*fikG6p2isJW;dFu3Dyr|@qn}Q`)+59?XqKQ5!w1^pU@dw*%ECXVRR+;U@N}y zyrZJM%wB$vl&bzlq11hc#EFKJnX~LaEw2*=9?Bf(blH4-z8OBf#Yp^ks)#APG)r!d`Ui$U`izN0LXJ=4 z80O0OqG(=aZmNhs>AWXEx`}t`(P_$A0|N2wyd8&_* z;~OwahYSr6asc&Swok2;1(tA7io?=(C9J+aPqygyVN0IXp^BJ`pXn&PjYi?t;K8uh zR-ShBJfEWZKsFPQJiYkDlReH9o$DbgiGxCs+s$rpF^t94_1$N=gC>LwS^EDX_+cgO zq}{_KL=I1t?BA_c*t+t4tvsd#6nr)FWC3W@u_yoyko|5zZ4$u6;=>eNH?x{-!Tai% zd$9g3&9Ts;%gtgkBBE;=%flFH@WoGS#Jh%Pmnno=XQgu$HSrL}0Ir>w$5auy#x*aw zuec437Hz7;P7R04-d^Q=iJh3Gz$OXq=}_hxat&C1Z0I#f63}E_Rqq*xc|=6Uh>W68 z*!;aB^QYNMli9HsPENtCb69F!yJg6iXwy`Qh*dY|jE*E`GH_atgwYcFHzzF_b=*rD zh6G`Z(2#+W_cwL~Sv(Wn3_d5F#TCst^>-Ffc=%@-w5E8r_BbCR=3g`9ww)50#pCuw z1(rBGO z&h%t}up~~tJ|=)#&P5M`c>jq2A|uYQEv=xdTfopKzojQS_i?N>xEI`Pj&cQTj|q<- zDxGUDw!eP?ICy#G$-6I<`(k($j_!%*c!L0# z#c-SGUoZU%WBYQO-gnSU0EMMHKT_Y}ttZ^@KF~jkHa>Wtr?-&PWKZPXW@^Qkm)(|* z<4d2(d(xVHSQj!@-`)4nS|4JC+*2x*>V)9k?S`!2NTNe7yWEW##j_T=9bUj9O5E8T zz68NbV6fYwy}!p_kKd=&62#1f#EP`4aMIb8OWT_N)05TKnPL(tz1Wd{<@Fd#0TDsw zx3{7wBz`t%>boCLqAUHosH!2>2I?wpFWss3c{g82yRmn~sQ5UhPb%!lWX>ySiLFL5 zDx8+GQRZ)qFUx5YJ}Jdxn71efWDd+Bp4N6wFbB)DV=qplKrz%4OgXtC0u1x4bxf^$_hjhBWepaaw0G`u zsvSw_=HY~h zKrngjx}`13bveNtJl!jv?MYNGW+;l3>N>;@wvG(E0iAQI1<%!XOjTw6^Z@BVuK575 z#Zhl+bgg7MJDYu&WN8StIX2lLI}NAp<5R(4?oOT4c0$4pf#Azcgiv=E6YbW<`r%Xb zC6J5LDGZpkN2m2Uxw=Ck_*7!nIV}h!12s^Pz@(}{fu51S;IHa7LTKTvC{cXj@xq7& zH6A?Z(Is1pGBvMbb)&=`hjY%d#67>Fi1@UFXrHNyT#80T>sqo-%Zjd#diG6C=oOfm z63`8)AN~osQULdTJ0@_>Lm0Is|^1}SN8&x$V% znN`GW6M$kZ5`by=cb5`yE@+z78qRVjFmB_B!%Lm;__XJ*Cj;oLylBZp${sUrY@BPX zuHwth$&DL$moDQFJy_OiEKyap+ZR&Hl4b-hiE0G;6Y3vey+v_$ z&j;MIRw5stDhmF|5B%1yIW)Cic4D9{ne~8JqTQ1DkfRefdbyl--K^cMp<2*|Uf#bi zTa3!kEU|sou{D())ZARN*d|?GIRz?D<`kP5GYZl>SE?4vu+(|pXjRsNL_&xq!H0(4 zWT=qXD%_K%W&XOZxiusrhq;;h>qGAsBR525(a$l4!+`k4um_Qy*|TAnqGp|%AD9r9 zhB*Ts&#Ay!Qa~2lD#C>$Plm6yDlLjJM8Nw8oSDVKT8o}ZY|Uz4%M9w0UH_we?91Fr z>z#FGT`^LsfhW|#lHeLKbYpUxhzb1=%WpP96AURDUm^j&s@(#FOhcy-M?_8!jjwZs z_@n0FM)6_Qw(52c)r1qmCeXUr~qETfNqq8Re3l)JmRvz0hANTs~Nj z@|HmKT|`|x)@KR+p9u@BuoQ57cBp!7VRh48H5NE6q4+jSKm;b0&jCm575+!0`mYkD zY{~$5w2&VEu@|W$JBvtN`^MMOH5H$Tv5jJk)DFDDDw<>6P=){hamWI@duggh3Q5|X zh3=*fNXaQYeT<4z*mk+S8p=|{)&?|z_omYCY%rk8N!N(Qz>-m|axW7EpH2ZN9eloM zs=L(?O&}8RZbEXjoXc0MT6L={=I9-ut-RIEW$ZSjT7Gj4)m32~>jV8&2nqq|@LPEY zby>=)&{(bqRn>ypg`CJHwGhLhX5#mr2B~x_%FIaAWovCf%EHo4`h7xQrR+0sCLC({6|;FqnCPTK`mc>9yPgaCFl2}*Y9Wy zYMGiH(ISU*mZA+eZzCEHPhKdvBDpv<;dXY*TjEplG|Jo+CRSIP%m;?l?i*Yan+Q{Y z8`5Gfe7O$HIS|bO7sAUJ3J1y&punb39?-YtyD@agZBjKEK3RFbrNF#zWu2;;n`zWT z9Ti+G-!G0F)%dO!t9)EGl{&%GI}xn|h!K6ozQk#~<5oudAUyuX@W8zr5(QYV-0^bG$?ulsX2k01yn->L420`QENQab z0JF!y4dN4Iw7wvQvfC}~r<;^cXuu|=?4GDH<6*R2ZA1EQvePB{7Nx{+2tTx4QBsGm zT8ahk(5p#0Aq#%oK#dsI=x>}lSRG!$8vu09k=Z>CAfr9ytB=+XOHX(3@qn(p{NU~- zD|b(z%ts)^a=C{vWb-q9NybKrSZ0*)t~8tKFs_6*TfZcpg%7GW;k|S}h5wZyKxTeRa7p{}V|{1gUfAF+0;x5x&tjlfq1E`0 zVPMH-Vx5`3xKT@qNdL993!1)nB2QYG|HdduiUbm6Y*s}!$l?DvZ`nS8egKxFu~w_V zm>t@NiK~060|oa5il!0T8m$8P;sTChY5Hq*2Wx6SRXxAZHF@$hu(%XLGl7BGBR!>g4HC)|auDb+;AYa47`n1r1gNmsF%ceSyd_GWk zVy|juJ=9jrzX-s#`_ua8&WfT{z!ph-wtFeu2bEc#lI$A1 z@xVpIV>7!PWZ1b=wIz_LG{3%<6%a>x@PoH1`q!?>7tF;2$^ZZ$07*naR2Mij+DVJ! z?ChM6`|OMNU6s&&8b0D{Fv{G%I_clSX?5c$l9U7&0NB|a0f1XorzrGiPXsPw$dyY> z2!9iawqig_immkFR3$-fW3#%P+S$f&Ab!WfJrRK=sVgugm_@${ks)K`rn?6iQMz*g z6A{Hn)R`k8@x{ByT25B6~F@;6>Nlr*w!zpVOcLzp;FGFydd>yBqjj~Mi1 zKNnya;m1T;o+{FZfnGUC{-1jKG#u;qb>c}xnY{kthQ~ug%hP<*V#ZGeltTN`T&ZgH z;_rm{3ZvT=m3w_n2qM$1$M!aN6h+z@4%yBswiuA9Ny0%{Sg1;}A{t@~_G&o07#+k_ zKS|1q(uG0zWzUFAWftia`&k%P_Ecy8O1m-F`6HB28Bz-nyw&!l$lIO8bu8#r(<3b9 z4_e%@?4!t)!HCM&c@(dKQ+yB7UfPPCU1|Q9hf8 zgUkm3Sm*2(hP2^MBiV$<1pLj=70jK#jJx(j&jvo zwLu9?l8p~13!{g;ni?3x_mix$NG1>Aj1tfNdyT$+FnA)#AJ6eUM8_Dms5mF?Dbw@0 zS<>x^asyX{Kq22uiZ0^WkX3c6j&0pm=_Xar=h2mRp^juPQ2vaXgVn-pdqNYkyd!BU zvTBiAAdsnwTX9dz${(@exP}e_XdBR(qyl-Bu#UWpl4dJSfffxiuDNxiTnc>Kp^@D@ z;<8d2w%<-G1)Mb>D>*n-t`hYYmKrHbNx-Ma#G_wQV)=*c{11ur>ov<1$%Gz{KLoV> z=$N583tX1+%I?*6BV#us@%)<8WrI@Iw!B|~|CWoyXPa>gvaW_|r6_NRt)eer=9$zwfU zJ?Ze0d62tUoB9k|<#dIF6V+ql^ekSrE43R9eHJb4v1@*RDjfD>lmJ6%pEYjaWOL?2 zufg1JzPD(~ln5QADCUZdqTRCDn@rZFFgP{OS32b{GeJn8zHp!omadHas2bxtKo`(QESU>?V@2SPDIu7HmBrOsUmN)ao z(NHTMg+9V0hznLiRV~%3pVA*=FdY`+&R#^fV!ISYE=*hBvY8CA4QbZLA;Z&cF>*`G z2UbZ4Vp${XHRF~gZ4<=#4Np;E$Vg;B;p;z^L0cq_Gr7iiX8}j*o!~(g5L>)bPmy-E z*Xz>`_Xq#OBh&4L$SIfuRET_nlPsYempYm&DhOwwp5ILGsZ$-jeGS;TEh%X~0G;YP z$BFUkM3!(3!7;RyeK;b*?Bq5IP&z|lBJCm@X1rqSWAlYv!AgZ4V!I7Ps&$Kb&K6t` zIl(;e;B1!lC1ie@kT6KL7joF5!h>E}9qYJ2nie!U(HP<8kC!l@3YhAwO~*i(1Vr9^ z5x*SK_iiN9vGT>7;~BhDy7bKGBn&gJp8UvlX6z_fnO6jbeScR;-TK1 z)9WIloX1+QLRMJRrIblDa3m~rsQ-HA^$Bm+x{CD^geea0wvvGQY)a9K1sU;kdUMxf zrUcP-qH5v)>ha6>ZWi6Fxr8X~XYZE~+?>(H@m_9+#dHgq}HohxY2< zp1y9`n%g|Pa4w$qhObJsX`=4JE9_*2y-L+^=ADQ6Yu3EPKaU;yk)Nc8i+kZvACtqw z6kV(B0qCcBU&%Q7xQ|bBDAi{rl0Oi77OE(eGIM^obd8|DV677q{;^^Vkm?z zZzL8n-)QNY4EL^{OamE&xQC#V=8#m*9_t5<#eu(uVk3+;i>x%| zW`~9tytVAx>T6j|@fY<|JIM{gF~i4GF{dbo@RYrH9x@Q5#&e4fCMlPjYY~H&Npo>V zEk~Kc(vKj5oT-?Yb6UJ47b_Foo*la+$Tki~hPtTAy31^G!c9)g$Wj{G_Zo+tPTJcB zA~?wpS_c|T4^Xr^?7mgRx4j_;^gqLH_k=)x8jvwN<1I+6zwpo`XdGZ$C z^J4?LE|YS?Ud;`YHY2HYcG-9kXRF*q8nFx>^ztZOt(*QW_GgJD{7Z}F2z#ua=`OVs zV7c;!2Zv*L++~TtJdq>AUu}@_>^>2GeFclo5NtBAL_V!@)z!p?^@%$)0-~|bnpkC_ zQCg%(AP(adxeH5p z@j#h{`3``tG|$MoPIsx%uXKy9{4AwG*AWCSnwGOQ2Lc|x>(JagTO;N&gSKK8O*8V` z?}vBoVbuwXMQ}+O9uH&$DYU2RNxQkCGPST+%W5z~eXEVDQg=rA+ql<0YPY%v2woc0 znoq7HY|t0zv6A!!`R8H{cG$KQcYV zdy2$UMT>wZK*G;ihncjXx?k)k2%9)$e1w}TG@zyCzRjpp)W=O?3anU=F}fWyHV;Px zGIic_&MB4yVnA#)Z*Wo3j!CK~4=}deSA-rZnR2TnGGTLBfbjV7zXKL{xN=tqt%NZMPxfwreb)~g-|FCt5YQ$ ztlF$<27bHWLa!vg6e{c*vpr;rTS6dlu$K_Y-0u)c^|R0}RusDt8!}ewDhkg9+2|qX zx)iE+k43PGHebxBaoub9^;@PQs{{;Iso$VP|euwDn^-)lQrYK;~`nz8*3)IOF8j$4}E!Lw|IHE%Tr zZFlt+@!rpOVim_#GQZ$pA_mt$no_%?dMK^OaBd24>cvx}*RYnf5z?h0b_5xxlM6kl zUjAHq+^DLR?8I$kOP#q5z_~n{x$^tV4_iXAPR*|E_0FVf z``_yDUDAQKLDPVtq5rPa2KE6+if%pJyur=mqqGa|KaBugB&OA=F2p?0DK44O6#_W> zk#=emUVnSo?1x=9X*6FD;h~huXTLvyzBEy9-4A2;&yd@;r%v4L_^~1d_s54?CI7_% zYe^3sJm8f+Vkr>9+f`8*g>?%9t3%SL%8Dd(@fAAQ0g1O0s)e$ZGH_C>TTTQr{ zhozeUwD5ijA-V+#^i&r((gsXs!myiLBLs?+iPb9?MyJHaSZ|4N8&#!1a;7IjSl;b= zsVF)dW<+mxtH_ri5w=%dIHY9)ZznZc*t<}_Hr#*QKd0!y%9H=z&5v2*IrVl!v1&upC6-%TH&lcR3%3>5NE=RVrbJ} zTag+AxZA3|1X!BWYgPZV7kcbn8!vIYQ`f$1ma|NfCuJcgNeavG-D3!3Djh3A>IF}7 zg%f0~QeB6`4DP0w%ZMGuzPrDLhEghwjfOoMkxi#~aIa*8m^Fw(m~Kt=S*(@_hgA1> z*Uo4_;bNv=0Nx9xDi{ptyBAB_fVucXU>rlaqVUCo?Bb!{iP%|5lPhsVsf1RAkhdp_ zaBp>9#i4fVYbolPuVa^o#?bJ(`PJFQHs2ugK-b!rXs{rng=hx<$?E)6zW@Cnv*|T_ ztySlE75LZwY-AH|9UD3i`?n3Q?TEAT4Z^x&>a<&&hF{6G4AqkZNNubpfT!vM94RzT z(PEc)zx5(3aSR$zLUPfV^m+|fcdLHjvW0P^s@yO`uSqR=s7jU(Zb*YTPRt@UWT9PkV#C>73H+F^7ti+Yv~u9~Pf{htzRR(wWl zndZa9Quj{(lqu zC3dOQo*$m$+M<*qV0GrD_ysH&h6To6$^M*-&tph%#-<_|a@Fu$ao5EC#oPtJZBkci z%bn8smdLJm8A2Sg&u8zpJo<-T#e!|M$)%yJHs+v~9@SwAm$K_fu_Rf~7-3~rx_Yl= ziw&y5i9d-|3?y`(ND_0b%KqckT9%`5vcCSznb3k)&9=BPELU7;uUx4(5YgK;IWc8< zcG`}DSHDlIdlITBvk&yspH;@52zz^U&2Moikba^4!dFgR{%-St>etjMkT~m1i=U!K zVbw*)jxcwjBfuiuRu)iLG$f)F`_j>Bz(FEWO@n4)L4Q%9Uf@y9q)wPlMF5U6KSu-NCeSs+tzPlG*2$#Z=!^6T^6=La0>|8LLFe}+H% zzwz6DqW{OcA4i+3()lRiomHRHd>JmN6}*M-VlXG0wsAqfx1hALJA z?dVZ9YZHbjN_Ob8+l}M1gd*bGTsr{R3I|#`R{!4gF|PP!k4;<5nBFoj5>!6{s?rOr zJuMbec=C3)$x-cYOYuBEb$kv)Y7T3azok?Dy`)G;Oyu49dUakY9|CyZ-1TJU2M6)# z(USC>|A`%mtKOSn*PW}L9E)LqGOB^Cf|7Rg|0;RG7kB~!@cglhI#@ z$^>jfA2Ywph%D^d;}C80KI@XB?(vUx=z;x@an9E0TJ7&q+jk!M?VtShRZ^#>E$hwZ zch7cZ9VZG_nY9Nf;waLS%6#7*F3}K+<#d)+=XlLgjt;iz+2TM<3>SM4D!)*46fS&6Aj?1=g2n4HaH_#$4Z#2EN_yXPJpjLm4_0X(P_-S z+n%aY6cOboqj-4{$_b7pGc@!uv$$I;6A=ZL5Xb_;VF&zaj&E?UBS}r3dkEx?YWysv zRhM8chfC=U)(94ET4V1u!y^AdN?cv-i1IcaOGS`70SjlYu})-aJ({UGEjl+->z}Q< zX-Oh<&S~+Zg+PcKX>Ce=w}27QA{bCA$J-?gsF7jiSWqb3*n5oX$t?KZ{YVdiSR)W_=M)39pv6WyP3#-1*Ioqnj)oqC$HpG_6g}op zBl=#eP_!kK@DZaIJfilOz5uKLTA$p8ra^Vk@4a;}7x0EuMYI4*%*%UCBHV=^|6ZE& zSVyF`bAt;5kzRa@UXFdINHD_euP)mX$#iO^jQaQ9cV%TX|}eh*+m=dDx4wl7NVn3^$nqygH6<7#YhZMN9Y)7ZNn zr40&((-wHb``~JQqIa9NWX2)?x$N6fz| z>#Mv8t>p0*o}Z^XY4r<=FK`dzb3dHMc!Nbdv^t>kJR8RU?~zr$xOt`8gw%~gpQ4}_ zs$|Oi-&^VI(ask6U9b-0_>Y@59* z8}K@D4KC{zPz!<3?%J;IYo4AqzU9lkgPpt@^1HKcuNSU1D3TyB{523;{bvG~t0u`y zUh%q(f=up=OhzO$dGGjf$R0UUdQsm>o-Z$cY!^v9-#EQ=8igfrFr0a$WUuil3fhxi zNBQ+Di-Ka11Rm=)3ie^!BDSR)(x;;N<%ONOfe3?!sTOv)w5_LrI4MH?85pa4Lp^<& zjq#*Bb!6uCUn6*Cg;Q7sQ{p5#xj+n_=I;+W^!kZ7#Un4J2ik|-S=XaFD0TN z&DhCz(qwxEUT1`xII zAyJ-)&z<#n+kcZ#B4bYz!WipN-4Wos#B5R0QteG10UF%dHNS>u)1H3IiqjxWzz~cr z_9zpC*l56q&;7n4!c-_1g~ZpmE!CV8R_I*KnR+_&q3{gU5)r>xCOcIO^eu&?uyJW& zdx0yl7Su-So;8uQXZJ4CT2BuZyt!M6q`LJ&#txaP`_b5g${x7{o=na7XaDN>oBt_( z^UvVxFFe!r>+|dL=ll8HpW>hX)+Hj z#Flsczb)kObGES_zF}Na^WnBxbY$jUX)>rP7-yE`lkrN+&3M9v*|cA1eFl+FVA@G~ zxQ7ZohN<<`-NC*zv;}gHY|&;XL3g?0Pcx^!6S72H#w zI!)Xt=p3+8vByV9xFXMH1FMH>uZvvB@aA23_S#T}_*hAgf|~OSZ@WyzdIw{;M*=g< zoWBk)Ib!r9H-^E?jqNjQ3SDSFebA1(xSZfjk8&JXOTlCgQ-@F_rgL=}@NE z)Ld4IzDgN=V~)UXva~Buby`kWi+r+!lJ;DZlezvQ+_N zOG1UxUd1?yNKC@{wX)W`Ira9wMS5Kb#u#!9#L-MuOP%KkAcD(s1?tF1%{XeK)3R|P zW;)xngUI58K}xDsAPWRG4(_A`aZ7GdH1B?kg0lYjx#(+=snTW)$Mj6#3@&~BP#C<; zxHF?z4bgHsAF)xb>>ViKQ!}#ml9$i%_dwdzV3{v4j^)^6{L$YU|N4J~pZ?;`fnT3r zpI@K#`LlmI|KWe4|LE@lp{x)>6XAjn0JpJ1#35YBu`~yHbU*z=T9Q6jg@BKd=C@il zB&MhUsG*!NlblOUH=qU~+=K|rs?XcFgHw-^l+>NTP&MqylNEo?ivt>L~3+r;-4zNqRC!2|HSGmoMGZyh4NVUID2p?Zxjr+1og9H)QE!(Nil$he)-w zUn*!+Hpd+k`GTxc)MTTFrUuUz*RpJhjK~DCc@-`))F{aNP~yo-dHiaK%G-Ivzr^R@&P8j)>>ja;*;2#fwJ#S;5vh;Z^**pGJsIsi~_36c@2A86%oHyV@HZG`u zA?0(QT0@J#?QiXixv5GE=T5ux1@aZhrp^KD>C(f6S+QrPHom+<$_2pG$so&xSyg3* z%vxDHhT-M%7f%xu*2kxR6x8?H=&}}(2s;Tf$~BS@cnIV{iX}OSO1Zzwd+m9;jmEfK zFPI{n?wOc6T_0>ZO$6mKQw47b4&C$HOG@&@2q(tC<$3j|s$H}siaA2XV*8(BGVS9S ztXYN!2%dJr&)zWJSVEv`CUWTeSb=%Ba;%w>L<7sucHkM$4#%KUHt zi<}S?_|?mI@jL3XxB$|7sRcl*CIWz}UAka)gIK-TC9P9tZrBqQBn}W z4ISf-b@4~t9CiQlJQ2Pxzbpl^buv8 z@Jqccz!|d!zhrd>4Vod@)~55c72%xM9J9xI$4 zDHDk7K>2kme2(@%1SzGYH4zqOX|hRt3*~^@c9#GEAOJ~3K~%f+9qOzESBSX35uaF0 z9!j4&CGxd%<=Fq7cRPt6qS6uZ4e>n?iz^Yhi}3o+QmnxPTKW@{kk8Z_OxJf{PN@`$&Ru8h3 zjX&jy$ei2=_8_lp=f6h-q&_!Mn_Jux>qvP_E-UYeD*06-^xC^%-&{e9s#UgntkN7T z%HpQ(tZ=5BNSSKkoRD)x>i0DS`q%!B{MCQw*IjVGKEFOc_Wb4#<=^<*<2Qe4{@4E* z^UXjfw-$>}a@ZMEH?SJvk8Omj+q}8!;*ySy?Zbk)XfHVLo9h7masTMSSK3I_854UL zOD!P~FC6{@<`c?_~5-6`8*$sNL*vg2mMxjd!0dtq2 zf-Rn?jdoA{J-WPBbBYb!rA{z9e!&%$+D2qdg0?UfBHX86l1wP~ zXl?z15=Gf$to0U`VEy!CMLj;T7n#J_`hhP?TM~vcVK?B;%)C-zr(@jx7NFHfDYo*omoO2z>cp+M?Nf=J3=K|5m zZS^9amM{)i)fzPR4cGy*2)DGz%xdMrOGzxUrT<&)LzWjQRVD#h?2rDI{L#PlYY6n~ z^Xv0Vp0B?k|MI^r|L6aLfAlBre8XM(+-na|v24riG`N@~2m$+!B$M%E=#P>>Bt;G3Hv>WqkE!mdiB}ZBKMZ=VGyM5o#SA3}{ zJe8yap6Ti1MQ64ZbK-zsaWZ_D)c?cY`^S8@9QQ$=+4J~k+*tS~Ek!N_$dy`@k|s9c zDiP32%|Z2-XOSBy51E-g%;YRZSPB)|d3_PVgq)o@oC z6m|rKvIAlfLDzuhTEk)0IZU#&H4Vc_X<^WWvpNjK%h{nkZo@g&3uaC7MEu4c&4Wpb z3_mSlJB|_GW40fsn$h6G$U-1^m2RrV27ny?aM5wG1LG}hF&2fby;H*UU4_1lHTUFc zjHMURj)})~@$q;Mhf*wscRSv%0IfCc+TxOU9{#a2IaKSpWs&-W`v8S9p7%l7UxxsY z^O%LTsx}>t<@kuh5&zs>k<$1XIMut|B4O%aVAOIXuC78_LAB@iw>`wBGF6;3_*tu) zQY8w1I3X)aM$AEw&S%upBXtN5{QfY}I>f+w=o_W5&P+5YYKJ#K`1OpobhrO&_E z-~S)zul((}8%2;|NFlJJi9CZktPgt*6UfBrstV-iRT>npovwOK2lt05bqye2MVqV& zOQc;xj!9N~GpV`*IoOj%?ai7O`Y&)*5l|Vw`MTdPAzc-cL$-|6yfg5Y7-e9W4j!qZ zrzgd-Nw<`FqrJCtjubF& z{ZlTvdMy7bLN9I$oEqy;_P(6=)v}ADptxJ9*+M$n@_c(ybDeAxmF^9yQv!r#lhHx| zSI60|?2H*ZV)CV7<8Noo5L+Q1eU*mo-SL_4Bmi)BDaH9o2u>kYGuyg5Nseq+U)%sG zcW9FN4}T2^52Qo}ej8V9s(R=!&u&*LnNjnk69lvEMM*^40cmJXJf)J8JvvvcZdEPv za*(zhIPq6`jNap8@5dSA$0T|ZeMI4H!z6CL7NJzF_wp()FznLBtlic$;vM`HRrJf@BdQDb7bC?Kbq z8e!{I0rgs~T`))_sOD7}`*o=a&Q9;fKdw1OlZ zm^_+3T=Egc+V_bIX6hY6JOs77-St3#|FA^FGDExVFcizG{9a6;i8J$uUKKol`0zAf zjHRes#`Ar3-Bo_NQ4m|k`l_%4tpZXy6sR5^@t}-T@fDJY1{hUaxh=Ahx76&QF@K`= zJ+&0$9F^8PcygZ1jn1vl?tHS})fqOnR4CBZL`~;HO;D5cdwdv$dHy)>;$mYSoUj7YEFsoKl>r0_YhjZZUeV z9)owa7sO^h7-jgcm;+r0;B9Hr#sA-tOH&&RfhiZ@goFNv1_uL*ILaJ{`XL58~DT1Rm34dQ2}rz3#d8!XN5C@xAt!?|kc2d8)0ou#2QY-DVKF z2C1DB62%FY6o7%JhkGM1UJP2WfpRy|3Op*H2=r4$&n5gSDWs@`vsLmr^UGSAtOj20 zt)>zjYnz=rrEkI_65g>hEsV9_dDoj#{@T4e^E`epcIF`U+d z>nR-#(_k}#t7U8X+VV_QyYF-nKPPT^`m{vgSB-C&YUzzoaG80wz)fv=7ajE^If|uJ zAdOYsFoQ0PLm)c}r}o-Zs%*T^cU{QLmZ6Jx^bFP&lpb|>1?VNgj z@Habr%&3JDO9vqhDOr4$3IH_mP|2jpNmPiPq6@%{Cnvc|1tNzpqzF%Bc;<0OwOb5+ zP!(z?^&4QZyw#4dXOjRp%}SuzwE-gSB+9q;pm*geZD3sABxVmZ`r7)2^FpMN6Lc{_ za*TsjtdmOw0t*OkMR)3*SRYnZk+Sg3pyU?!TnZo#o#!^3x3@E7g2yrUOQjmu>UjF7 zkC6Vja_Fqfi;gd&F77#=WQu>#ZBHMq$^44l zvrR(FsIp@zx_#Y$0@-c$drXh%F+FX%dzJj_@5EpIUclxoERu;kh6I4hAyAP+OeKMm z+qIp266)3E9%sF{y43LD7$P?r9+z2|V+9WAT@O|fL|J)-rV0{A{ZS-vx?R?<67Rd{ zXArx^s-kG=9k+SsDR@{Z|Uf{Ab)$&#$!n9@~GlC_*iO zz(rPm`LII#ct&z5v;#yfh!cT~wrE?rRt-!!{1Eo4^+X@TS5z2z zF|^EiuknzWWjxwMp1uA3y#~*Y9-W4Ut-i{il_5mUN=bRTwS|&kUwDas{eO2`6KE>S zzbaBd%9a?(Lha8czB{bjR~C!6yFg4oL9EDRv4DV^g~lnlwoSyNXHQmj;4=fz?w1mt znGumZYcXwzifPY{nmv2KPlZ?>uEw|-A%fN*;*k(l!)>42M1#OiOVXY+vH$l=>3Tsapu_J z_^ilTnG?qzb&~8>jrD(LN0o`p!izrODL69qu+h{lMjn|vp^#h+i)_}I@emzA#elK) zG}UTS=c+;Y0PSCX2edz0L67M%eZi8T{cCSOf8@V&)nmw2MGuO3LO?=f)i{N3ULhHr z8%n_0kWo#=O9i+E09EkS>+j;^Z06PQ2o7;E)$Zeo@Nom@z83f2oZd2 z?nVLnSwd2j7;G>D(xq20T;yT-{&uw@YGW%5TinyNWU-Sc3@#N7D0q(#sj38JpIdQj z?h!V%V6>6Ic7cu|(repy*Joz~P_&5#+{zvk0H+6!Esztvi4sQ)9VW#}@j`u2d=(TB zh{k9t$lrsiHZE<(LL-;$MqV8~4lx@XwYAwQEjWQS6Ibg58{+p3^Wz@NXMSxrSC%We zSdF*zVT&+R4J%47f2>6g4&-?X6vApp%tb8ch1Pxu1S>#T4KeO_S6@zz83EZa6}5Di z@W!aLnnk+ducM{NBOhxYD%$pf6A-)|bDC4Ie(1ERsz)0GY_y4Jqb*ji-N4%B&*4@@ zlJw}{48ckx4j7QF2F0YVHB&1gGZ%O7PKW6xtA|Qqtq$#1O6^X*`uF39|4f=PbbAAg zm)-n;ken{EHK3sxOH$70+d8+4^F+p0G!F|xgd34F2rA$wPlT`&NVDn^vCXs zX_qnj=myO~|9(`jWw-wfH5R&w+P8%gFghs)$ImVn&6o#OAkvN|A@?|))REiVhMbfk zXc8wEqbrSs6furOdoaGcc0jzF*^nYYxr7ZD*Jhmg4muA6XR)?o)kSQjK>)_y8^lq1 z7R1qa57(DcaEM43#i=;E$3L;9A@L~F(9|4acRX7p02`dH{XA>$m3x)43TyIo#j>lk zg{@>9@l;V#mJUqL_E9(q%;L5Bgr}i|xoQk4HBc26<^$RexOaHidbM=qN|KA+aFa>?xe|G4=>Zrcyw#qQ0?+K#e!ULV4Q3D8 z5=zk`wf6P++^vIQe5>ZoURuCEAgEOBlI(1} zDTD3a(c2c_gKd?mn#6TU_EjZwMfXzfT z38&(T#aXtyL)KW`(=fn{*K`*MgxL$Zze* zAxE>Y5^gmez^Q#2;HW4ba;3<7Bc>F0IE>7J!8swc^t^ij?Y*9xHwTh5(cGg|*4WuK zz4sEUnFWTW>Y@m$+RqbDdV`&l5*)1`qKB`!`R+RgTX*A0eDx!Pvc*X-Abb*21XyK4 z*sJ&X`GP&7by{?7j>4!&Zq8(_!uBesl#TMFK~+_|YVQ!nWN*1aRHs3Nog#((sATO~ zccRbRTOAXZ%6{L-`!G&^`xW1a;}!SheoW7hKK2p(mG|NgeJ5V~dI0#u-^Kghf#3ga zc>aa?Riqa`iTA!8|JSo2zxqG=R5ndrM1}dRs+Yw*Wg*yX`M zLfo@J;k&Kuq+&$+u{scdk}Dy%O`z1CPt(>bYb3=!@42}B35w3DdV%rMsY3O;J*>GR5!`9+!BvZeLFi7w$tYQ!SxaNrT57R_z6))*(?mm=lR3%0uC?#b zJL=n_d0CVXu^ToCNLUNR@1^u1RJHqm#6Q`9`}(K?U>UnbHLui|;B+OmKAb8->6fBv zrJ&)Vgr`ngUEPc_yh|&Q&t56;lr#9*lkPU5kOYQb2BHh@uti`6X^kZeIMVXi%`Kjx zi3qQ)G?s1+YVM_aG>NarU1~u|z|F>aG1-vT$bilRox-h7tk3R?tna5LIGly!_tu&O zzxtKHy%XvBxqLe>fq{WYm7kuWA;)aKvLp@YcC(ObvzU~J$k9~9VuIit1W;>D1W!ad zv~}p&@#GXm1MUuAHPV>>C8bo2WgnsN3qKGzxtMw7csl}gi1glFSXg8Nck^9=! zPBfYNuF<@MTV~}K;#GK4t*X%Qa4zM+u-eAT9(8E4=hr*V+ZZL&br6Mn_XSTt(ac&G zrAF+kZD+_?G{Mxe6bBpHXmLuAYSh%2r13$yb#4m;!rIbhiQM@ia0vk5?w|ac#}h$c zl=S=y__-g$_x~xp^*s;$>tK&`AU4C1`Re+)OHgFhH+1Uv~RS~bMd~O41>E{^v&3^QPcSjw-|M6+v zC}H-!4Z;q_7o=1!U>z~d|=2Ihj z-7#UGOSv6U-N^2+BS2}}$c`Vp5MJ)5s$#YbAVAY%B3c|?d<8zsp^>5PJ zr4vcD^Xt_1hXF^*G`|BU|N2dgP)wdGCVDLXq$_DSz+DZda&Cda966n$z-kCZfq8;l zXK4$dYZsk)P6f)%OI8QWERk7Mspe65d+N;>I~vq+s;G);Q|(RMY_qp#p zkCt=rp1yj{Y21p4A1ErL1rx;`y`Ose8pR+sD z<^kx!;GvVUS5tU2E&Sjk*8?*qggXMIDdrf7Tw)3nD7CCOg?jd)BqVynwt$jP2adXt zHe#zxv>^|TAKPRiB8Rko*Q|kBIC(D$xhd_2ZB}bkAdXZ)&AH2?x3=Gv)^F{l+pU}0 z6{2Ox`TF0sA^tIaLDDzA4exzBe)RkB(|^&IWvZd_r@wKt6!Y90@$dg>{Lk;gKmX>< z63xdxf)BkL-|!YM`E}3Xcm7`dPyaQ(?6={MeGk6xPvUjY-7>m9_7QyBo3nNRuY1E6 zqMeWFBE8`&hGki$)F$flbbxmqBpNVPC?bJm{d(oqtKGHfpnlTF#M%PI2RI5ub-&Oo z=?3iEzDoI{1AZDayUS+9ST%?0Y!jMsWnxiFnUl~P++-K7sMVplCj)Ld6_Tur7h9ED zJ}sz%U3{No)N-@yuB3e-^#Yi#W9u>Ts>jWkttd|||6AzMCee)=TU6NI;5`k8DRMsx z0Q4SLMh?0xHXk|OU}+^MwQaE;Z>Eh2XXQJ@^)>)d?V#5^q{O4A6a9ew|7 zy0pWtSt9Y(Zff7)A>5o1!Nxaeu8gW<zVx0DwD+qC(PIW}Ucz&z7!gs~KG4NJ&Tk zx&m>*WgNS(z9a|PGp}UwD-a?n;1^=1F|2@{I*Jm6TkqVZ0B$#h9ci%ZJB8WlIfyov zj_#_xYwz0iP_ti}wC20-2q(2=M;6J>+ggORHObMiev40Rxx*x;ZE{mIp5PY(eG@Ck zsYY5f79zO{XCgZU>oni4m^Y^#=1-<9I>^uv4IL_seL7F3UI$0aKCpkoz>u@|)4Ljw z<7lllw5G9Ot%|O~{gaww=C5q!ERv4O0;^JpY! zjyOwicq2alB0l)8jXm@H3;2rPg&+R`Uk<{@@Uf2oz%PCb-|@}<_T8Jp zAJ>BZ!6x~VHx!jYkxq|?Jr5vkxl97o6^e8K3k8AYPlqeCY)?qJBCgX@MwO(+t9RkX zAq6GN4RAJKiA@Gxy-@JzfY(ARgrKvh83i;7x1X{F>sfnolFqK%)qgboykQ!KR_YwX zhygt)fCP>d|MV2Eb?$ns3{YSI?#C%jm<)w97)U^(2rpH$<21u+ATVK6-tt^T^`0BQ zNxj{Undq983o7Y3hfaK-p1x$Py$QVd}KSZ>Ng)A0W zj5>bQq9JY<`5fq)p@P#+(e{LH9uaLqNIh&)@||EkHa+JkW;=K@Qr9l0Hm)-$fYu;r z79rb=E;Aeew5E-*j**eIZ3;=IO{sSNyKgqB-e~3e(H=hoYO(ZIpwGexB{6?)O5O@pH&2cKk^Z=YJF;9@4t785EGt ztLR*C3L1QwVglLffz+~%0`RijU?g?5&5#4BRAO5<%q%V{)BnqT5>;hJCzEfdG|ooS zQu^0*n~EJCvq^Zk-=W@KFl*CUWRyx{8Ko*>xG*FvF6vIF+Pt{PibITlR`y?Y_`bU1~zpSB_H1R zRUtT_CJ<7Ql8hopt=D7>Uz%hWBTFipGa`Dn+cis zaw@H4nD{Dge5+UP>IW@4sJ%Bdx>rERsef8dx{zE(pwTP(A zz22dx#jTFua@L=O<`Qjb7I3_fYf#t%TaR-wLf>@SQQ23L+iA1OGjm9MQbBFi7HMJ? zg%fAI>X3VLBJwz;vG=ov;?#b2)ehAs0*Q-{LI!cWAeB@Yy5$C5R{$i{+aMmheAkdx z+QR4EHXi!GMHjeb<+-4?&-?IUiu;sofoL}g<4F=QuA5JlD%)p{2E!J9;!b(nZyHAh zVeIP739f^L6}y3|+(!&LgMF+r5cZm$LF^{Og#Jwq9A)3j73+`bcCu9T08JmG-;p24U%dmEVL0LHUt* zAb=U)&b6zdcrT{=?SezawdDGzNGb{$I(^9IkYmio(nc&w2qtOsRI&Wvw9CDK1i-kX z!mpcYXM_2MG=bkZZwJVmE3|YytFJEtZrCwYZ0UV?jJVu2H`lf`S+};z`23286{&OY zEp08lJm+k!A0i_;|W(w_+Ap9MSyIrP}RGuvT{;gjaFX5m~%it ze@Ms$2~o9aL+)scY3#^Z!Uj)P?(S~s@GF2I4ZP9XNM$R%+TnAzCjcNWW?NTFgUd?F0=+3ofu=_-wf^Q_b!_7jcM)+~>hd!zd`FwLxl zL(U?+h5;H!O^Sm*a~3C7m~$yU9wH5G)8o9wiN+k4nCGH+@=$?S`Zcq?_a67*=$(Kz z5cTSCm8}hgTR}D)q7Uj$(J6Yqo4vLjiaXoNil3fmx;t`CFklrItk$^tXNzf8oD$qh&f51mGLqGDL*?nIFNYK7p@) zi)UV!gWmcceC#9mzkV8Tea~=k$X1^KeBC$uO3_>2^B5iBA9DJQPgemg5F8eHlZs5$ zMT|{WvysX@+Jj81@PPj^^uet(dD$LF`+&kUJVKk#E3U0#XSBrJjZ}S$>0Y`(=Wv@a zCH$mN{6{yn*UNXa2h&R!v1LfwN=X0_CB!NUeXuR#qe7D#1^MkwU@g=QE2%;n=7-4o zXfB4Ex?0W~#ByOPN$u*ynP&lAQLla9d;^FQ^kqjWFov$4T7AWVSEGC@^TVL|Gzy#2 zfR(Xz*--aXGic3ra~k%6ga?~Ix6-b?+v$UGmgSROsjE@Cb`<~I7jU=D8uht-*4577 zxNvEMEU5+86$$%S3PPy9+(ho>G? zjkf@`)>?JXPwoP)MMP%4piMFeq1q$4#1gh*hzzqugzE;NB-(&@)tp2tffB{%J+>aU zTg0w&)w>MT;{?=`PH|`|M2x-d8hxTIdBQD+uuF@q&-{GI);Yn!y4F9_ zeEr=`1D}kFo zwgSt3eD0HvR?rtWedWJ||LVsc8Y%n3AHcuy$K1U6-Txte=)c9=e#d4*-KTz)2Z0`( z*67>Mz0r>?J*F>C($D;Tgm$jT-)?0Hmr%T+#}o7-DkU|5xSo05aVxjrpghw;(AW%s zlEjuoR!uk6veSbiJmOeIo;9wI6q;1rDB%(oxkz)EKu-V=-p`eS$+GbNAKgyzn|B;x z2k3@gtu%tep?iI_`l_~|SNm4BQ+-cQZ++@y53jX&9Yq)}*6g1M zy-p`{Y?u#Jy|T(B5Puk#R%1If***_0=fwjpnJsNwI@4w-wsEav!Y8xkung3_6situ zV0%uxT}0-aD_cujjh}mH^RG5l-PJ$hr?Sh~Fb;4rkGyo+012dYzL*6js#+@!jHM;z zNj*B^z&Eg!_&q*K)NU6ZcrDCQ7C#EEMVdfDjy%uqqN<4;hsz)pU%-z1!XWYmFIM2_ zYfARiVu%I&JP4q>1AQw(1d!IG9GB`EI6jOJ6_>~nRoupfTjrLYtkYxcZI=rpFG`3o z9hU4TVL_T_Q=n_N0rLpy4$Vsi-7eX*coP-|uC>-;jT@3d3j}`mnZOsvDj&LSQ_d-+ z31qGHGgQ9$ExB~D;i4TO!n7D*!!lY#!=r84mO^UEhOF~bLf;nTui3hC1!{vuY&YJU zx0zffM+U_y5TVSiUE2MsC3UrZj}WOM{^4m7sk1?Nt%*fMfBo;u>;LJes_rp8OZwou z@Z1~sJKQ3D|DOVYulhay=U4q6eE0+S;rDI~nBVke^IFjDG+iGAu0-L!Q$~;J<)mNx zzef`Y{XG5Pg==;i1r180$hE@>SBnKtH4nJVZE4iBZ6_Noy&MxLY@0yoVG|U!p0yO< zuoy))z9 zn_glFu2^@D>mtCuo*v<}_Djx*JDr zoLz8O-?k>p)`47?GtuFjwWxbA?jFl{ET?yfsGewYG`r{)49G8vex7cgNv`UoXy6eY zTfy*$J}AbA&ZyG6aFt`Y#AZ}}qx^!#@k1R%o7q3k=g=Nr4)K^8H>Q1h1d7n?(E4YN z4p+C(M7nAta3QSmvFf`WcSA)*tZYR|4&1JLBhOIR zSop>q{d+$tZ+zkL%AhYw`ney&=U)VX_q_w3{si9k-M2D-=-v3mzllHk{#^OFaedH@ zwV-K>-REEQb3qZ3J9fl9Rm_IR^t4Gk{?11M7uOb+Q@ReT9RB~%20h&giW3E~3|LlG zrTA#lA+=V%prr>Pr>O+G>H<#LW@;%KQ_E%9)yXx98ZR@5wLDen76D}fJ(`tbyy!ix zd!%I$s-`oiZkfuTTDn?3bJcc~0wK;3#f9Fa%J!Q=n5pzYF=&V3(9I1?TT&y~2ARi+ zHhj`esYMhj`(iR17N@!6B_+%QZ|?}SV=QW)2w+ZOJJFyBsG0Ow73`+m02wR+OkBMk ztRcgw7KQNg%7R+C-OuQPM?WUZN(T<9AKz=k>}S^U+198gpexyG&Wjo!WL7O?Nv;=i zWEa48qplkwr4lqi0Dlf{8 za!AHUNbJN-3TRb8+R-#(yi{Bp&KO&K=!!duOLf8K+!g(4HH8V3JVtXjd&Kxq+>TNO zZOB|FRE$&swi+4DWh+vJsE@Y-e%8oC7pPhI{#)4j0b^`lq#z|SM-djQhTH1AwG~r-#ANsKkyB>PymQ#}pZ_cEO>f8D ztFG#OOwX7;^ltp^pTa-&+wtDF&nCz7FU*TV?|X-vK-2P$T_5zle*(Y!w+7qhYAq*yKiYAm7 z%W0d*PN*L)H1t41B2XSQ3bX*XBFqq)xMr~r8VQ91V ztC)sW+o8!_72;s4C@1Sc4QdQQS;M7JsL0ZVzSmOBkR&^7$~4?$HTTVEr5MB*uHc|L z4l?T38l{)!piV8mT(~5&tb94r^Azc6^9LOd{A?n4YhGS|Ia?Np?&r>y>HXL<8{XY*fvr5^4t@-hL>Du}rJ#87yqbUd%g#d*%9a*Fe;~V?sIu8O)h&Fv%;VDr- zxq2&JU=J>-$K?rTZR?s_8`9JTxI%#AFw>%|9#7Qz+Ehntf}^#&yI@nNt*f1XYORHg zGYuTvC|m;S%~(j>f6&!8a`euvU(HNe1`lDUdQ8_h0q}hVH zNIEdsGewP=0}N`nOAP~5=i{lW8UIaz2*}}fyWa$tk-VovwB82A>5Fo{I94U{WOdXa zp_2(zv#k$Pne9M8lU9(AQ+05Q?7)JXpR=tl06zUo_}s7K?#tJ@9@Dd@7e9%Q{{p`C zJMi2a@u7F;_Oms8!&~t2U%;n7fj|Bi_KP#mzkvVj2k>YAFh2eZd4tf6wV>bp6+pSF z$kK=2%`1kOf~04N<^7l*l3x5Z{eOO$xRWwp-3&?$rjWA>#5Nu{4sAeekfQ=sH!22a z#-!tw0f<+x+^s}$N5FxCA_*(a9~5da97&0s1x3o`m4=#PP_&0+4zO;@T5DU(hzRu% zvTYG^x12{oc|~byTa>LU^`oscrd2@oP}>JB6ZDBKKs9Xt=ky3Ceb^%{^(p^wp~_o zE8DH3YZHl-H5ML?3*j9D;79f&)Wa$SW|xP^0R0CCE%St8visTN!^qzsDrz)jmhuFt|5em_uK({9 zZpt^4`BfO!x)v(}K!h(FO13td>$z6CZ9=>p^rnIXXKu*+pm?sgh!b`r$SSnQb4@h8 zE^Pyhdcl7JZn3yJSEasl{0+jlUbHH!;vFmH1`Df&Ckv{{J-h1KmH|qeoFbBdnUVIG zc9$mINs{Ir-B;@G9@oHCrHeUzgQ^_&wi1)cY%XdZc& zu%^n*nB_nSX2C(KBs}7({p{ZV0zg`8l!a~-&fhu}9s6 zpr=X%hsn5YY0{u;qqOofJP64lbf2U+@y;Pkzv9<`xzVaB#hQ=uB5KW}7W=(+1!iHw z<*x}qTX1UHOYSslO^zl<>!xI%D2m((tuvT^gFS5E-d%9X(6nJl6x-OfoV^*GOg7%^ zfwZuoT>lx5S5?^(eb~9=Du`XzRAP0ffi&}Ag@CoGBWn9F$N1NACvOY~J068KZB}xz ztc*%bgxWuKVsbU9@21K0W1D70c%5$8KWjy|OY8r~``VlS;~N_HF+HZo^mM78=a0UZ z0ttZYo)h5i9hj07-&|}SI+t>eKSJm}AXS^;-cJUB5WbbT(;Yx-DCIm5iVS%|#Z)Ee zxf?kRkj)Sy!m2%*=2HTJ`re4=@B?E4L z(z`RVcUK>H-Wd%*Aa{W&HLlLBju>{IDjFwJ^^4pieO%_s#67gebN3yMrC3q12F!L& z6VbA>PIZXAIN)+#I;p+edWRn{3ahktRc)-RHpEt1W8bqhzqpI0SB7Ig4}-E?Q})fN zMJhN>RWmiy;nCgG(HGNJM4qTGc1R8@V$mnYmYQiVLl=X4@HSaRJ>oYc#UZ;=ftjr# zzFwFWiLEEA>UrAbNM7tKS`(U^T`ht|gdvDwl8F9nbw%`uy!I9rEZg~o9;4z@a8tS0 zXbr`zNa?R`i45%2+zJYI>ZQZiK4e$sQfbM?X#By9iacegkF5wzp}tdHq2J*L~~e5wD) zcOe8o^>q@!_3-R8@%52LUCGsVq1#Big6BGXm%$FPOh|O{(WGQvKb#yQlL^s~3MSo8EuI@Gwvi-(R_fxd=$oj*B5X6i?t5U9bClmjukl}R5U*t~ zEm~>Yl)tOGHe|a>Hke-Igk1j-aOYm4OH~zfyGQ6FeyR~gp@7UFrtucQYz1@P>bL9X zQtld&>dGuQAz7<@b=6}N`qHJ4FG#voT6EVlRr)e*q0Kbh(Qsw|U}wAfCu8};%(4O} ze%Qj2Ac|(T0#MxbCub$pit||2S{C&#dai)P8Ak;)wfA9Z>e(QFg!?5buaRb!MMPYkKFi)*{Zq z;^{?|6+%+9K0@CzzPj!;~i;4ubO91iCGPuj-1_fBJjczwqzjOCC=L zJ*LO>veRdNRX_aSi&%sh00j5S2nn6x^KHc?&ic6`=G+g-+46!4-Q5FI(=FJ&#apud zx%=F6P~s*%h!vjtiBuu)2Ar58>qC+0ohp7LKihnpq}Bep%IvaNhlc^~69pxurPvWa)2L7PGC8DuYL+C}AQ}H)M})GfkwsxFF^s3-IxZyAZS974?`Hg*)ez0dZw^n; z#0;d);KOlfSjXGFgN!TSzExy5P`=yD%&}9*Lt|0-Vfl51>8~i9OWu7x!;H9^ z*6oLF7ro3>j*ry>=c8KDP4Q>N5_8Xp;BuoW2ny4qjiotpxSG)goptV9$k5>2B#2}kVyj6w$WY5!T6rs~=#?P%y7#UcYz{!vjI+_W{aWrDhu6mxQ)#&b}*1*F- z7I)6u*cy)3ee~6=qc}ifwOR!|j@Ceq(UV~tWe+nyn-3VbX^rbYaDkWNExTN4BjhBJ z@XACMPTi2s!lO{^q8w-^*L$mL*YiBl)j}z>-t@6+iXMwVY#!jn?`gcm5LVqFK<% z?1>ECPzrVln?EN?IanI%*2?4JY8)tVR^-@D{XA7YDt*yk`J3mDf5-9l|2baqT0Ex5 z^q8I@eg4J%m*0ht|2zr`gvMe5LsThL#QZ4Q1W#OsBCI1Fv<@h4>BK2gAXT#`;pTbQ zxs^N?TI3C&&=y+90knNtH8>W*6`IcEVedT*r`Y$=GF)=lKYorCp`%^&x&SMn!82F- zBRFSmS6Oi?c_Spll7_F-W$0QWbWy~I5(kT-p#~_WS&L~z?ys@7*wRXNIa+I$Keto_ zJ++k@1Mj-X_u3gRM4JdC^=N8~L|xGpXV)Iz0s^!K^IA%bd=uB$9UVe6vKoV0wJi!` zQq9%;E4Z)7IH2PubE|ln{I(0l;TMw>Z7!R^f4bD6ErQ)yEpW`TlDeG*1BLmc1eUOW z3V$tT%K{g0qhTwyCKXx02%>j6{P1Tk+pt{Tr z+W^Xd}gAe`2~Zs(5d{wQQn*X#~KZwO-vU45%u?^1)1n$^t?ys#X+ z#f9Y)D=2`TL6+i+$+_Zfm29A@b4bW|8)<%)i&`4|lvM_sU2d6~i39*N9EN%N&;B4@ z`{l>i{6~-12R)|8^wjC4&*_KXr+@7S%>~(dIT$JK{?tRlgK0Wdp769!^LpsH?i-;L0u9C?K%Jc#A> z>>qx+-u#nK8vn%r03ZNKL_t(=%~w1Eju-L@#Ebt;lvli`mDeVmgs+#=oxgmw`itJsg^13y(c;VY^z&-J@owL-I)ZQ$>d_ zRcG+TWe4EgsQP(%vh@@UE=%%mI!A`0=735fYmfSKRCuB^tcbG5+^mlMA7rOdI_^8o z=I=ODBOr6um8>-*&rZ|K{v~VOq3k09XL6M(!c@B{8lb$1D?8mC5#%Se`9L>@@X(QA z-(D)h5Dko_W#g0%DL?xG!u{Uul4~>88qd>L;20@InuZG`_i-5_Z>qg(*B*3=Ulo@# z$7ya&g5m5*$9k?tl~|uLl|X&sVyPS{!FK|QyTFR)1ERv{o8&w;Ee4>LIYMNbbBRC0 zM%R$(Y=bhyv%2LXzGBAUa#obYa0$60AT_5|vVO61CH_?mQPf76Me2=hC4F}Gl_W7> zFm$T>vdLIP;@qb~wbNdQ^QsJW87a-qe2(+_K!c#$9dF(_D&WCl-U1Z;xg=>ZyHhAD zx{5IHdYm&_98tAT+y+_vK-h`(DO>Wh&7jmz@x}N@T)|Pwm*PGw`tqKnBTxFn!jt`@ z?-SMb)!&L&{icT%`IsKlV*-BT*Y(5S)BpGPgPS!pr>ox+;%<&6RNI`o3KbQ4iU4;B zxk{qRVD(&jH~`cMzJr5tj$evz5pmyJoETw+Bj%H^UNA`#{&X;4!irKw>uR~A^qmU1 zN?RF=;sS#CbFbnQSI zbG9;w6NcG0s_qjlhQ^&;8)_g?Xhvzd>FkQ=`f$eX^$|};bi3}wmqB?Y**qbgL@E0( ztAXo{G&$W>Pmhiqrhwtj#_dp=!p@ieC3>uPRqeF9WZYb+u@G^@+5k3v9dfwSqd+XX z0h(Mh5r9$V0P*{3lmk=0t10HSw1O1i zmdL`x%jk^byHP*dtgXW)IzQLMt(eaGcBQPivoi){Epq?~0sYN4Rwv-KM9xW9#__4r zwI}K(i0JC1ywr-oq0_>IgIrUAkI!n&mX~3*}xX$;~JJrQIf&QISJP?z4j`%43 zXF)X;V6D_UV+GdRw0)IWZ<2VkVdl4EPelbCyI%%yvu-UOQJiYlJ@dsUl@SmpT~T4^wx=dJH9c`lqr-RD zM4;-@hUNN6hWeML#>b`l>*4k9!Ymp;~B$%*VZFK1i`Mt@dUZfh?9l zf9Pw6_~0RUD|V+RgpLp&U5%T+(nxcyR6uRXuCNVhpryo;n}%nm@JAa*fpT`3*THxNMP>6_(7f= zf}a*8liL_<-TncxXtlMb+9RgBjT0)l1`M9-S|hm$<~^ zX)phYhs8pPY$o)kum`dTz>VRgY=_55%Hynoxzna9C1+{6m-$=#v?dp%CVN33jOrR#0CHiQh!aK|cD7A)a7RfgmoxDJ8DLqUM<%Y95RcJC|YSQgm!a3*xR#Mh=HGff-itSa3EI z55HeXq$gf1-wJ~Ylx;Tfb9v?5n^CJ!U$b#R+%2}F+rUB;Y+tckx>p*QKAbak`uniO zO{@Y)GZvoUa$M7$y-_ZbLot-?9s_?u(@bk0j_B5gMskgwfy>r_i3;u3dbKq?_y#R6 z(*iljIfNJR(g^0GMgUNHAZhWcdmg!mF!oh%y>7*LPMKc1)!OgtZ5G;){I@ABqN4l$ zIE_hFrL`89WRKD9nO_)_M8q}+dVG->sZ3iBO-yGNvLXPd5)hQ=w4*2&#^kYAt;D#S ztf1|~y_(TV+A)(m~67F8JmiCw) z(?7oH^Pk0Wod4^0_MiN7Wi5v?l_H-Y$z2$(FsRT>keWpV*i7Us?>cCcT}q*J@vy>_ zc;4fZ@he$WE7fcSfPTie>0s01Jp_2tKoeWKy1A<2BF!q2(>iEXVbh&5zro@!7{ zJ3)&u5GiAl11UC*o0!ZrGr$mYk2uRLO;uYTLsA;-FYIFS!h5`~>9@h5Qkn{2b3Z0R zRhdy&tkx*UTO&o5R1OGP##z!@8*N7K8*~f%&^<7ZNNa~2ykFJ5IBuJP;2UB2upM@| zib4S)M6UBA(`Ih>+vq@Ra>Cv4bHho-Q&VS$FStS%{pn%74bZzxoOAQ z=W(!7A~=o?3N&T-5Gr7@4IZ9m_*I{1c{=V3k?@XT$SXn5lCIR>k`04VVgHwLXoniZ zR+QM?uqA-C4rAn=K6-miC!MKj-4Yd13z21=9>7<5Hki?yEUI0oPMD&rUKp6N< zWW&(aTmhW~1lAQX`X^_DgsG(6Z__R}HGtP|-nLvQZ^)ig0?LcTKyQ zT-p>3(po!F0s*Vx;eMRj%V`i7?cKKl zbXD7D7zbcfPv`*(!W?uDIUvAdbtOC5J~SOFil#Wr^4MfNC@&OJRZumRIgCE` zk!Mg|#oHka#i7MEHi^}P%ce5MwIJ_myM~-AIclLNP>p*ev!-pEvm^S%rh+%&O#VTs zbZAb=5L_C@ZT+~4Gw-FgQ!urGPa}&rg!REXWsKVz*+hHq`kLon@z4J5_M3kPzWle# zmwXvs{dyd)d~mgo=`sC(Hl3fxXFsW*`W5{0&-GvWS^e1mhF||U;$UhO5h}`fYaJTl zUSm6fTTMR6WuC(ktn7xjBCvneW7o9n2xZ!+fQ+issbg|K6tzYb8Z8BQS^}f`P!HDdtTCLcVZJJ@D4tTG^N6K74{HW6f8Ssg={ zZqI})4#a%YhgYHRru^G9SJWX7P0$*wARtBMc`HqLfsJSQ?1$crk#8njCnZa{E_$X_ z>3y*txoc}1klWt|nxt$CwrT0Hq#@E3z2od2giGW&judT94CBRxS6=n#UcTKJV0J=3 zEY>x{Sa(&sO(t4R!tP$`FP*1bSVv<7IcX{uBsy5ZEC6?g&=xYap|R?sIbaA=!TZe( z&RMV)z^g3tt|vDH&AsRVABgg|7iH}|nk>r#6ghGLdiLJCa_LN(;AqEjoR+KW-RXhQ z02g@*#2rKuHd0ryU~=Nu0@%>p^%lg(k4Xg%Oh}u=IKRbd%aTn6W)d40S!$4@HMc8R zf^mg+Oec(1YLg%5ZvA1pL!isAE!q6OmNHzYQ z<%FKxX{u(LwfOkl$+~ZtR;@GDc$M>ZIreU&n#zS2by$%KB6%i5;tql_NX>e0prTUv zKvjsAtE8bHbKk52kVEnzA+JX$rYy4U*%Az_YG@mXNHlvohxT?CFsi=6$>Z^sdyy-x zljMX5Oj#FPE|gTNgS#THsMegc5$cyc;A##?Utw7Q-bsKmM$tA|u=T$A<2;Rr+g&b3 z&)fsiO)_B`!Pt#b6*10UZRUGK!%{5Dn!&v=K-;EpDU&pkU6~|T zoHUiNW0>hyj4L^LTgYF@*g-5uoX0|da!X7bf@k!JgOwmKaGEeiF;_WCb$#AbY7|BX z4s;%Qwmf=9R)2x9&1XOK=C%D3+$7{0z64OIRGy6i(C!Ybyr@Z56$Ds|b@8vN3eGo( z&qm2BG0o4?LK48-U5YAgV+uu>N1)tawp@kOdzX{4y|vajAL9mtdJq$iuzQ(B*>AyN zAZ{KPi);$bOja!!+BRK05JKhJ)~am`DWjg%ajjNVA#@x89agS@0NfC7z1bjgN7y5o?W+xK!R=Y>xe&DIvv^XgxI|!U zZ`?4AN=xTXh$$&cv6_D6tt0XwX(hEzKv}Y_&8ZSmQrek~C#28gW{gIf~4yw}v7eYGqmG}=nwrFJ&9 znn^proh5}?0>;eHNiYfz0jHsjt}-v1h&GKyg`ifX0n&TNnYV{~Eg({HX9j9tQGhsT zsq?P)j-yrChzo96U+ua;b?LPF$@=+z(07jP%R0A%(sg|rUG@+wXq%?b9zx!xko(ku zlmjWuXIVMMwHrl4pI;>}0f@l9QKRTQD^YaHmh#90ib~mKyDN-)xv6gY%qFX4l^&E1 z$Y~Kk{PsRCrsJO8_2dpHD>Shu(-q@|NLWMn4$|*Qq8(d`_90l&_6NH1`?qV&x>4AfNvD*Vghl-S2~6~V9=CG z<-%`UQNK+=f7|uXexc;SY3iJnDv{k--zab_4snEFx(=>U7`n964zve1hQMLdfr*bv zj-3r0v*+Y>4Nh^10yP1@@XbmZ)_(>TA0;6K#fi{JgWn5>4b+yZ7pSad;l10!b9!|J zzd*%3VHoU2e_KVOi^6>xB4Z?=2+XCBr3a=Bf!pTP{8z$x>Zl!)01>=cC{Y`lZ&om3=Z5tLjUr>M`I9?DX-& z& z2ZM}$>XMmlQSGWNMpuR_fMQvx+CQsI2`QBIs%nSF5a4MZu}*6OkzQTzWy!MkfQ?5W zwwxrAL2G>Gs{`$Us%j;!J%H?E8wjhthVN6_Uh(0m0JtH<1t8ftmT1Mjn?aR}pRWDv z(UXlk?q~=M^smH&{dOg@rfC&a#V3A`69A0YcC7_Egi7*>kOqNO=iNr5E1Q!ajFmiC z_`ZBG?VTg$v+$Vs@XO<yno)G7f?r5QnIjmw zdXmPW@*yIFA14YQ#QM&Nx#%mDF-=MqM04ZMdojel-_DXbm}_@;;mFLDU;&6!9@GI- zfdfe^RTDP6Y&G4OnTMq2ZO-Y35gHcWUe-Op>MhMt_+|Gii;fw})tJKUAsm8QR~9DD z!#1YV+cJ|ugj-S-VI5_Gf@vgT8fk!!pz{HO@hVSckK1@<%BiYt`F28V@)@V`Xr6^22UDLVt7}|Nl6-db`Z5-AW@YJuS9}gERUl3h3Ke?~W4TtEa zoLecXc&e{<)CT-QnJI}z%DYv>ak@>UDKNPU5rPS-w*GTX)n-g&MAt#HtZwM*mfqDr z5+7769BFBlhPzx%qavXHg%pc*|DX~RB2?a0%DZUYA23EytGb`4QN?cxa#Q6fVGR6K zJ=|m0=(>xywOF>rEE>)IuWUsx#KT?D8UMhGVu>*@gM>oyjg1qN9p%P@_Tr_9ZS;gw z8g;S9Q`5oxxC0*^;Y~Dt>s@;nKbXTsGf9|ehHTUyF))XuIdtBD=w4+py#H8s?6H3c zF5JZgPZC`CncA5O@1%207tJl~ozQ%7A%q<|Ln!`q-|W$emVUf>wLS}1LFH?TJp z!TK<&KpBXb!fUZQveqU!H`dN7DzDZKZ5+egwoVRo^-4Om`~U1Hhx=Z|SI2>FDj=Rs81Vw%A_6o0;wPK%nfGOVrh_0iIA#Uk7?A7=3O zEs;~HHs<1!&QT|?G(=H8CVi0TO!_fcS#ABbOq6h9K z32vp%(rQ-l?3%K5%F4AIGf$fk8Ba#Wi~Xfsu;*An-qL}-8oRIpt% zhGy#l5)|MeOi{Qz>8jl}`%&vryGQh?;S}t>tc-}X!`tDPLnu_GE;ISYGw*O?k7;kTaLDYadz`3=wiT=3 z9wn!$%`T|5wiWZw^7PW=J={~o@*v=$Pz2@jX?yHv)~(6iy;Ak&3O|P#IsFx}OYWaRTumtq4dRyCa4k5U38#OK~Nw*x zb?x+B5r9#hy2r~27WNcGwreR9G1gt)X~oj4Z`VSKT-Z0OeqL$}dCvZs%O8l-dpw|P zL-N&ii}plMb;StUL>>wk-}0c8>I#)|+$ScjZDW`@9Kc`?+ruqU$>h`&lB`wQ6?$iq zIE0C+#TFf#ZG)iW@nyIlvHZE(=aY@P;&n`_2Y!D;pE`t6eS%zTUkoJ|^&ukbqCtGM zov;r|f(fp05Q-?L@S&!*CoEuB;|9R&XuCo7wyV?9&_cml#W4;fIY!%@iqBu%84A6W~Y zieYBST|4JNMI|oHX@3eRtm5yM7*PV3L7LFhk3k8{G@p z6$5J_EEZj64aAD`=d>17>C57#`CW2a{Ah24i|V!QUX;o6!Pu~f^~!T8>Jh&>&z+kb zXZaXgVX+rQ7WNkn1Zo!U~p(Lc(W9^BblWFBVdWgZ+nsNuW z2N)4FTZ}SK38azOI>Z{lE;?=Lb|;`);Efi%WgE2uQ^)w#1*j-cX}kq9sau5>=ve_A zt+m#)9k$e_w9wSU5kdfM-dI=cvC+}=H(|SVpSlp%u6k%PkN1fVdZn=V1_k(mSCQ64 z4@VxiB;%L_$U~g5Jx?TkND&W7Rl6?%nSpme#3JvBNq+^IxKD;2zJUJQc3HTPfz%7ElW3++z*Dj- zf`&$-0K|Q}YwaN!r-PUS%J!+6m7;Xu1%l}qN*l@>`@tC79&XWm)VnE$7I2AHc>-|uK znAok{;=1*hY3a9X3ME(rq5UYH(IYYF9~J4f2%n> z>_h;l2TG^OTPvCie;5j{-BL8EOB`8{w3o?2q_h{2+_t7LJ?Q)2pdN|}%+tfQ5&+W= zTDvo`ga`4FPEv&?lVJb>R3=;cc9X}9o4%b&5NtYum-5l~=sAH0*1S(U@m^?s`1dP& zJV=5)xZ^Gf7&~yCCMYbosjWHG3@fOE#_-e%X~-aDRJ@(1D2>@T8gij@uy%{_6wv@V z8WW#n_NhR@U5{1TVo~+jfyM6(gA%WafszhLA6gX~*`mU!0S5QPuh!{!a(djSp9fq3 z03ZNKL_t&r-+a^pUKk}#n;;ztHj}&F+3ATk4woS?>pMG#CjxWW^su-h+zw{#*R}WV z*RcXBMcYvu0(Mc9tCkZKDY2<~lFLRgtu?n6cs^CM%vdwMRC_ck zX6R+$tOGpI#ZlSO6-g+302TpRp+^H9B!(T-f*ns9sGw)|vx*yhF>`-+_)HaT##)jyxQ#pbckxLg_ZB4}-%gx%g{#&=YMKfpeM73Ya_YY} z#ErVG%sd=uWN0@3oQst%1^|jM%?EsDON!z<5iE|7hoaHYJ{GY?Nod(+ndMu7Zi7;1 zAtV`aDm&W6iingZmEM^KT7(gEEc(wNOG*Kie=)c{67elP>DRzHJhXBovuE#XEXD!^ zlI-3BcicSzdK1J&Ze$o(Wn3VNX0?332u~x8o%0kR(AlCOrOM>W=JYZ;B?;|VYp~F| z4MJhIQ%_|eQU=I1=^V=^gG}mpd_Opqqp9$V>?9N)%e7EaVFIN@DBUVXbX@ZgTCQvF zC*!{k(nrGc6g)x$N6+ts$Vr&vTV2sqrND*PHe611Pirwq; zW~X#^JW%#DP?$F=1PtEk8jLDFou!$h`l(-S!X2&IXhY&cSjbWW%7sYFtBKis?_#ZO znZj$*^8QNJPi0hTvX}>{;EZVpk56HI=O{1E(O^~~ZVPT{$eCnVaOkM!R!|SmUn%P3Vo8nJR z<`&?BbhWBq@!etyJ(_40->N8Ey|;=g3Kw!wr;KZWG`}JVb0MH3AuXSQrxWE%qmc%m zm@yb-2)n9!_;%)Z@DO{?DnrYzTY93-G=uF+C%S@femfaDLx&_E@K4I1=>`CVs&G6P zbI7Vl=@A6_1NY{p8@`6`t2t#@yxhQoX=DREbK6J&K|sF0bT$-S0vAz+h&Y<@CCYS& zxSozXB@i=f*`$=1fNVT*TWQzad(o&MZ0Z3QI6(b+#o}w{U=fLKj*%tAMN{>fGiR~X zgjW*jSaJpTQrhTxdeMPftT5n~!i3Q?D+aBtt{pgJxUNXb=TTHLuD1x209jMYB@rR= z4ueBOH?5zKKwN^!xrbKA`63}nCbr@aV!1#mR0l-JGci((G`2Sg(~<1SY+#2kd)R8* zF46=b-0X>G(fN~Pi)Oamm=O2UNTE{-wP_uV9kQK(vshbgk9EdXb$P)mD_c_RB-m}# z4uPa^9-=uf#Wt(R4rNOpSM%n7+t4THA2?4H4VL>y(m6jL< zg!=t4oO*q*jAx9h-fQi#=opcLge|bQ^3$$h+P#e{uOVh84{`h zuY*+RX*c0C*rrwMpO^A7OK~+ScHQ>ap@Jy_HM=~7g|f+MqLft60=5`4l=Ba8#)+$e z;@cXIKICaGXN6@_3GQ8Ef!os2;=I3qbp{*{{}9at6F{s83WauG^btb_R&LX{LK*<1 ziE)Z9POm8$*@r^Ap8d3LRIc6ar5Gztk%qkmj*SDPx%!IM|X!<)HmpG*{a$Q;h~Ax6LCoZ@8M^>Iwq zTDK~9I-^3vZI6{t6@c)Xg)$^bRko4JU^IceBjD#nJyLe9MW__6n1|4!Dl*O`jEx%XDEPjHI)Cb| zVv{-$442e{>-n9II1A}!Bjm(b@jT8fw)viyK+tk6vrmEErCekgmQvcrY_Intb9Rs8 zC$OD0UOO5!)^^OcD(?o6c-mB1Z1Z+c)SM=zud2)W&b{4xA4wM(FshITrz%D3?5mt9 zOu9gbAUkf8AIG}njA@Wjvf!sjs+cX_+s#}UDIb)w7KUL&r@@R&`A))VBi3%RO{D24U*EJ=VHrb zcC`_y318!FfN}PRns#3K=gz#wSUVX@sZ2Z{)xO6rNhlzT+}US&U1lTBNK_vm7)P^4 zF>tLDW|cdf|1|*FjT%Sr|Geq#dV=k8<=HkoHJgIw-m;PE;;pSpra&+ecaiPPHsR~y z+frjY>}7JGVXiyg5dyK2F$OSS1LT`?3miNwc2kI)vrB1Htu1%g+UOox;85<}%z^j2 zZ*6SDJxwa&2FnR|f7wU{8?}GJ_8NL9xTA!ye{+f+o9V5Xm;4!yIsN^9M=%pfA-L%! zUE48e7azO~Zna`HIO!KP1oE0q@s6>s&~t098^N;IT+0`pD~Gz4%hFpLn{_^+@LxTj zZ5ip1&A0CJ&wI|9!eM5w0j?F#ZMgGi<@eoNT#N0`3Ak6Pq_OLWECHUDK08>?Ff+~q zbWRT2Od=LEzJF!N)UdU%xAeXp+l{1OhH^!HPuSuPF_qx0t)|CaE$WE^H|a(CuO5ld z^monHqejaRn}Tesp!`Rjx{hOk3}i$R zrMkfy_x$q|cr_bcp&nIVAMwA7SzGD^5H6!`+bjfACqmb@wep9^s9ggof5f}rX!mCD zpC}13`wH@>Y@hui!geX3s%hdj@_~-*(w(Oes3NHPnV*PF3ZDpY!FTmRA;xP2FT0b=XoZ4H0mi=DU>~XT z*}g68_r&2Rk@(z7;Iq%~Rud8pr0)O!cyjdqb?q7j#lNbCt7xqcffB?We9-G`jPU~G zrsglu!o@f&nf(3;_V(C(Hob%gABI1bfJkS)h|aaNJl=%}z0~ z8_i#$-dHjS+!GtBG!2s&9YUSP*<>HR02%A<&VM5 zqoT>Scno^NcIsA8a?+O-iJ;RF@$zQ<3jvx9ds*(fo^x_P z)xpDNG9w>7I-LIg$fHoQzy;Y@5@YsH;Ndp#!(F9P=$O_Fr?4$o&uqnx$?!}&k;VYu znKgB{Mb+xp#UyD*#OR#fH!~5g-!6T>@#O>5=*n*Zw06J2GeZfSlSVW$05A;i4)~T% zoy&wPeJ-Zy_I*e%79QQYzfk^hglwGe*P z$P;3_RknY1`d3f|O3|_iYNs43O^Y2#iAaky-up0zW!ju6gj7NzSXP< z`6&dVZYPoqFQ3F86@KVN{h`EfHd7SzTSLcU9RijA{c(!E(^>^MYVM?)_qr{GweC95 zWYUoYF3;B{;21oaG7}juCLq;*&Jtmuu5ueNQ6DZ4ZSl{-wT=XM$|>HTjtPr1A(4KX z)+d^az^2#~i&qf@ai9%4i8M?Yd)GQc9OUI;&=f6;3yf+TZ?13fwnrJ11uZQ@n+)L= zxTs+C`5(^>HqAF$Y;&_^vNBC%VS9rmWVhPLm+MFji6hGNMAb2%c=gSsWTcP7epybQ zWll9<*=un=$zCb5^O>Z^2r^;!B>e8kFeS}fDezEdkE!3TNf3{i>;C9Z}@5GG;5U5t|YBAt!-!Ej^R6 zRp^Aj#f?vNFk|pi@TODCO9E=|&$#83Bii`gSPQ0W{s-JqB1;>Euxo|n$uA@IYwU5> z`8VJ8aH;fG(Q=$m`keykpteQJ<95AI-5?-x!UAxSLw6)1lo*?dXkR4J2i8(mjvjxcfqL zMb00l?$q} z>e1FH=nn0)sbd=Jd&~Ca^W-3+p@AAdmPe((Vjsny?v<}9@X5*Ar!T*GlrxKAsc^;l z)mVzP7kpr?j$oBdiOmvS=xUj_s%U<8_pyaQAD#=dQhXLxyWz)Wjlk>d4bvY3a8Bk8 z9&O3cNOfidYJ(Ydh7qzY-rk!xVsX$7-d|m&42_LRL7>X5GO3x zb(v|}0Zfca^bBAiQlI3_*)d8iY>;VJ_W@XC0ZC@Ik8k?r=jGA4v@~!q8*U?QQ$%IJ zFnbrib%*;ab`N4V4e>3IArP41EkmGT7-Oa%!}e%)Z$Vc{z-X> zz~J0!^gy%gqSIbv`Mc<;cgMq~iw}N%F^h+xZ=mM6^`{)xg1PCPy;FUBvZCdCM3ugJ zuD#gYlDoeqQ^ZA=9?pR6=QYUzm)g!oKLDxouMYE`9eMNrqf7NQ8WFH1UATGZl*F<0 zD_@^JA}fBP6T$`x(v<_(Ppb9JooJxDk+jv*@-Iw#YOatMwxln|yY>3^`4gJ4)hzVy zRgz_g**2zUcbcAI@07vJn7J^DC_fK6UXe;&z_7S~-5{N0I#EPUyz!$&8nd3pn*HH= z0%^02^`Wi1TSbu{$L`#yS+2+9_-^#cYDY<~5>4Odce?f)RIM6{0Xr@%czuLGZ7p?t z9%NFPpawkY);%EG&JWxBBF0eAS+x$#+8C062Z5lHHk0hThrpW|YR=bs(8Fb08AH0T ziyv`^_>tH6hSba64% zD?OR3tRxoAmApfxAdvN}pVjZ8)ZR#vliQ$d1DgxGk`1wribKq~Qo42XnFA1leN{sM z#_cCR1Irph+*n!(3Qf|R)IFZ{t$QD^%fbc+#*A!Ec?!rKurXdQ+MMi(5iqI~2s;u} zGO=uwmeJkb>4!WPCH|rc}1H!<-^1jSn+c+>R z=oE+vxM2VTxqgzHf5N+Qy&@=v23!cl<9JU9TRmelwqFBphX4LkUcrI!8kRW*5{X1$ zBZfY%Gpjh3x&CsL%>a)a=$2_Kn4EQnxegOw?y3aeERI*kWz#@jAmCss!$@}RgWNWo z2Agp{)g2C=iRT{8R6KSs(}c=6m|KhvRWT@W$2*oBrt?&ojnPNKL=SsgVa7!O@S54@ zmQ}JpS-@}Aj+W-n#4L2Q6!Vsw6!wc>j8EhoeEc*AruVKwqxaEtgmp$D$`410C5tUS z9LJNEVor)Cl)MrnBM(GmQ*UAoz3Jv<9-=_IPp!u@auDW zrUg>8-C4x`gR^cG`0cr&_Q!he9+dCQg}UyD@za7U;jjvaRnaWxEqwDsH{X^2Hb)(R zyW|Xw;seZb9;j50Hn1Gm3OV}kTx;^Cn_+VeVjA#1%IN@)VzScQ44=Ov zaLbyME)To~mR<~Uvr#pnhHuE{T5^v%fSz)N*xN>C3Be1x?O}j4lf@7w*&N0TN-*2N zlKDbIVK1u+t;dDkvk{jb0#?VzV}k<{1=T=pPwMp`E=US2zk7Ra-77%vG8qy3CZ_oW zMqDkC^5mF4rlc)0?z(BSnt_l5 z^tHOtpdraO7Ihwb+aLxi!qM0g?_MrR48h@`?~Uq*6|-zcyl^?krM8SxX01&gC_tw( zs;(_t9gMwLG^K}=`#B?sa^ze9dt~tWlb5u_GgfhK-<(7&;WZ7r`kcJ(=bh0{20*V@ z32Rwc25Qm}GOWtM;1gfW_q5KbnlL(6igyGM|9NqniyOw9KHp||Wnak-nNQ**xS;;x)oOAT`pf+lwSEp&Nf$R|i zWzqnTLpaMgwmI!_QH>%Enw%}2H?P6%#Q2`|x_cHH-6^k2Csx0bjI9^bjwYmtG8}_N zoEWZoLz8%9ZBzS|{wDy0DAt<(FnDD>`YxtUtgQDnFM?@y+p#Lx`Yf7Hgk((H5;f-^ z5FY4O`u`Hy<{7N4zXhaweF6)x0bfMBltuBPF=GQUmHr3jwoOw>n0R$E3OTL#wo z6N*sjp-t4eHef)f=+>Q(rmF2-zZQ^nV|i;u&uKt<)^vF$3W!jzJv63hPWkW}ePzd$ z+9&qOfgA`Y|G~2(ODyJYyZvx`>(^>o-wJwGXa7|4tV;U3Bxbc@VEM>FgL0AXue$Rg zU_)`pIVb9?<`)uk2bM8XAG}+eE!GAMy`|Z#B6mdFZd{%SpUJC7c99*~&r)^1UBg|2&r+?}YJ1!B2UE{GYiZBjX~OOA!@^{alB zb1&Nq#J;c01AM4Mm70rXV{G`Z@Kq@oHXw62PzOGM=4{| zS4pm5N+HcCN8nr(4M)ul?QKyjZf9rPRc(q)yk)+c5f^X#6aqb&mx6bT!OUv=cdQKOg;;wCCe~!8?^_REh7A;@D zjmnnp==au++ZnMa8B0ahWR&sTFl7730&<0JMR?NLJAUSSX2|iX6xjkm<%yiU4c4RE zmX^&#{@yb~pfSc6FXJ?a-jBvUvJd63tCI|z5J@fJGfz<457Ya^zB(&b)|My0=UWB_ zc5IV~p?}#3)31i0{Yvq48~R(k-(ye<0>#0OPjWq@&OVvE>%7!;sqhHOBWH`h-*8Ed zHwJjQN`=3%Dg{}90$ob3j4jr9cutSmAm^7(jAcrY7A$KnsN_>MtvfS*e)QdvVzmXf zOjL+9M~Z~#)Z!rq%-<7p_OVW+RO>BON;!~sCdTmU#ZBARm)+CrCJ?DJwAav%M=8A8 z&<_|w-CnTbB?MI9s*6qrPU?7Lpl93t_}qdwY@v{^f42a1=J{l%lOZ{y%#!?iCvS}5 zHP?I_wS_+i@dTeD1{F}PzDnyU|D7Mgu0!TJ7aJq~6l{nIjSut4fhda-Q4sP6VUj4Q&@UdBx=w!Zh2z zl14oOcd7Ohlu_&YrOuknfT$2|ohm!5@lChuHtDa8b8`OB>#eg&?KUV|cNPLxY42}c z3A`Cbm)38NLsWi$w+i=`7AdoL)A8agRQXVVA4;d(`?z8F%~bREG85lYaV%Sb*zD>8 zHo;y-d1QjqyjO#Ux9<@i!sMJ8%Xz;9czQsY6)PLaVaFe3*`Bd}Yys{ZvUpH;;HLUe-od4WnyW^w&ZoMW3Z@BJ5msL02 z@1Dkr@=d#ousmbJ3hTfKC1Y$0(9h(lQ*NE=lpb(vT{xYN#eG4r+@n8_#TPd#U-HlWS+6_fwQw4v3Y6wbjO^LOwr6bmYBR|F#s@O)}+NZUX>H=4VXFp zz>801UBUruJymDL0Z+skzi-^xOm^7w@%PBRLdk@eV6}utm8lPa z`}@xy%$#B$u=&dUMFl9GC%Dw*v;m6T#F>GYa{v~LAq;-uwRF1(mRYgO;*K302g4jd zCY$G8NQ>QQg)FKO!*ca)anNM!`Wp_0?54`eO`AS_MifM}k!w@R8LZ=0xWp^+5fi*A zRlmFCIoK+sOVH;_%e5A!M9tjO2;a*Z-HSG14xckF|Nci#;gLeaPJ$6x8UW|idr5v3 z7;-`=%*<@Hw;Q*4cte_{rCx3)DdpEt9*WkY0$O3#R8huy_uFT=Nz z6m96BDvL_XX1PV6*0`!#b-O_C?ta5<&fY2z^Vd=6CC3)b2q7Hc;?Hpb$&JZbgW@_~ zI#`#HDAuSM2OV*9PwX>q^8eWsZ>&B?q3yh$l)KfDdLpXg?wdp3s{NgktqJ$A2%k@r ze%Z>uEK?%rb1tw%J>ZFO&U&P?s@SD*YJ3cp5Ad){)!g9m`;Z`+GAJwbx!3w_O>^t# zx%-#f{7?t})l-ndAH4D;eb-yyVP(W7qno`;RVj%aHX^GVV@0al>R(r_Fh&buP5M^j zk#__kV8?WAh}$xGg4LHTaAt8{qxYl&pXMMm; zc`v)gr8ef3?qP^D^Rh{O&t_^-ZFHM#0ur$zFVUYY6IQ{+KNN^OQfQHi0FqUI2% z`E2P~?0(Grwz&u42*h?+akKglIeFop3ZFh{CNX+5p%RHgjc>y}$vEA>i^X}kR51n%= zSXJrQ=QLIy3SYi0N&dCGH~4<)Zp-<9`iUV+LLLlt5fIGWd{ZW9vo-=&ZbdcvYm)9D z;{*SXL%=G5*Gj(8+#68ytshs89h(`jNMlt_ok8In0qe!m_;%A1#RDfX5bw_l?yB^S zI;ezPd+qyLMDTw{O9_d+$#ch5tV2t$H@4ZhrSE$N75kfTWM1dnGx#A6V=zM))!E0=c{tqNMxEH?x9~`6 zAOVn!tIRU6{O*HYc8Pf!&p_C2^vu~u+4&O~D{7d)t1Pc`+Gggpqc%onw^)~e*nK$9 z-VBkCQ9+1P3=QD6^0L_#Yg7nS{EBZXLa1>xV}640M6$;QB%p-e|VdP0lp_EqrkZ=NtM6jqNc6rir8;fWN)t%klRPt^0c%j$OE z^`qC^K-*H7TkTy>8_KQFZGUM<&dQ%m^9c*cg9Sl)YL>ItsRglx_p{Nb@TBf6rxbqk zzyA;%)LYy3`tJg^hRc6X)zvF6j#jvuq~11VcvTfYt@orSYR#g?K(kA;Ep9T2hX4G3%@zrJ(vLIJ&TX4 zVx-Z@ba*+z>3RQSr3f!mX|T+ew9sj`^dciK&50##K1t~^=nuN{rEFIdA2i}S+`QW* zLYHq<>_JL*GyKnDn5QN_sK(~?wy!=LmPT0;8SH_@Q6nD4T5!=rlQni*ne)){7ms$i znpSSaCagMamgeGUD-iNe<{xv1doF}0K3>LV6aD(o-;93@;8N*Q-qNDi~3cLQB%^&=|y;RStcS6Kb}kDx144(7mRJi~k+9BYw~;pjjpt;?RQ_9+B9jTgtW zWtGt(y|6%*+Gtq4yCQ(U#8RN7EP%V~wTzB^I@7uXSkAvS6h68ix)5Xie%R*Z3J&fp zYQLyoJr&k^bR5qnuDN|GWqbgEnf$VQ z`K0{%ggyTpU5RF)F{KnXGne)&Uci56I1g@T@!$3BzMJv z3Jdt6#v_+*{`%a?-&oguREyy`W0!o$-SXbCqL+jYVR&oGAx@jtobt9sN1GCDT-DAg zTIr!*bwA~w9-C#X{;qb@D1iu9m-=-zOUW?)myvBH3tBKL6)!FA?wFRuTAh)Yr9bh*V0PHEiSep{*x6YjoUO zAKSDR4c@cxfrT~0EmmW4lJWGYJt>2;Z!x_MQ?>GA%tv1cwNOs7hi%LOgJm+4z@YH= zoY{C88s_s|;W>9imGy})Gf7RFT8s2(MBzzJFw=)Ig zwme4DCvluOf=*aBbmsYB^6w)Ds+xKlM}o$8^CLr zc1oXECsgO`yg(pV#ZXk7=p+|gefm32g-ruO_{M9*8PTZX3B*m#jfEpg6dp?!+*irO zcjR!7WiG{uaRFk=Ri?T$hOKLt3Ii2gG6z5zsEn>OIGw4PY}-x4>i+fPcFQ^tH*?jMR_{6b=|4SJcWB=D75Jkrc9k8uddohI_wAc0+rSHY?o zURv&SwG`@%pVFBFW_h6Ly;=`XK6rtH%AL8&s-spN-5-=D|0jxc&p>h(le*onDs*=(Qa z%=qpdrXmJQj`s=ytRvu5tV6_CW@ed`Dc^RI+_jFJ-?u&$Q{v4+P3F=4=8oNn<8cy) z6O^ys0mYT4d^Q113o!p7xH;o(80UX>b0Kw>CYd8 zL9tY5UAi$Q~*evz!tnTnAoM1y`UAxOO)5j2uKf0Swz}H3S^7cZnhqcl?#<Rk?SlI>NbaS>X>Pi9Y3iIO>cPGd`_P4_ZhdP8 z<&|$*^h^?KPpyC7Fr)3KrdF1UwJ$z(=C{`LoQQT+XQ>U!A5vQL!p?07)o{vV?#8c( z9>^K_rhai)-Rjabv}E;S{mOK*jQ^v$?2M`|EfpqKTGMNobZW?Jc8*t-f3NGL@6H!ryi6O z>#>BO`NdhY7<{#NY2X<~aABigzrvBSY&H^wN56bJ=7gC?h6!FU!dw$^1!;9-RvQafIx-t!e0aMTMfrBM>8&hf&8@H>`!8C+$$*Zy z+uk`gL2{YJRQrBfgtQ$i&Gq6YqHKAc zS}hoEVsK^qzj+$TsY^SyQhS+HE0ACtKUqhIMoO~*c{|>$g^Cy&BYOv@96HtgQy=fx zSH$(ylucBA!;zOVrz6nHuNBf%CI=`$)GyV;#SY{tP#y@$ZX$<;+at&`0!hSM>AfX@{ikGH(k3ngOt$!IJ)fI)_a6`j_low)pytk>w{zj!UL)>8-5O3r zrS8H`9^@#$$f=DMF$MS-V7@ypX2QC2&&WXW>VGPc=bRte8sw?F@ zz2NeR%wg0k=Kcbx2vms@x7e53b&J4KJS)Gkc*`I{r??WJ&=UTPf>PPdOYgwf}8Cu)=ZV^m~ z$#08r2@X$B4`9A{2n{)1!m4&7|J3~r7U0m7Q}3P-o)8C*c0aCtV{vadzo>7!OJqESA(rC!2=KjHa*_Tx%suPX|7jWaW<{I+jvD3aN*w8$1#Qpw?F9blkl6o z$cD_!;uhMQ1-@1CQM3MmGCo!ELAyWK{{}@`P0B4uZZCX0Vz&{U7~|4(*C1xa06A>x zxfK{w9C?rAi7ODdHdils>+#5*eop7?ebNWgvKo%7(8=m>;TS9YD%o{u?xKmm15 z8O51(6TWyD&3A&uM6QI++Q4R3c>2P?>w~npa{1XA0`BQEQrrv;jk3OJGw9@sumo)r zu|+Khf`HskcAH@3%fiIEc+!I^m^cPX&5F@`4<3r>&yNu(dk4>)5J7Q#I(XHR1CC5` zHRYaD>-Lg@=sU5#JHbSWRN=F=2R(?paiNIRRM_M^lbK;y+TK{Rj-@$j1{p+_zW3iF?Xe{`{Be;FP{q2L(62_cGRZ>FSCjUxg zefXgZ2Gc_Nikh0m+JNibYg@lLr^U|YFL16o@+3Y(}ssq;BoKE@a_YVqneM=3j7<_<3P|s&Y{XpTbgn{xx5V%Ht)ZC_| z2E9U*tk zog5GDJbcND4B)X;2jUE=lS?IKtFXi4Ak)R8L!~t>SeXpY8yfE`f|$eez)Y>HBw zZQIx)=sh*rxft#e%#%?iCvoyV`xP_p)zM=^%ieB-r@Tc7(U&+~uqFU4&(|*!CnPMf z6*C>=mxOOVtnnY)8C8>ul#Jb7T_M_&y?e3Py5!F!Bvt70b3};Hs=e{7-Yi zD5N$66UTiFIImA=GLh7N>VPFKz1V!%lWpC3a_4UC9daS#*)!1;7m_m?$(3@PSn4{8 zr=`X+I+7%sj*LJM5pL&U=m+fb&z{>V<5F zB#baKCb^GdnV6(fll4h0-=+a_IOwwPy|5+jJ%uo3L-1&Mxr_Y&#!_Jy7Wcf(YCKb0 z=;UGek6#T#AWzqR)PGe#Lfd{TeFqZcEdF#TNOVWexujo)rGs-8UfcC*sOlSi*t6IBeEC6hRhh_RO z4-XXdi-m^sx>X0@brL2mEMV`9fGw=ElN9|CVS1jHSYspxg5A0YU0}k5-qtZdt0Jl zaD1}a#2VvvHLf>Uy_8I62g z4R=L3zKbZP!3>PW>tdC z`5Q0s!AVftzp~&UV2Z)ObaVfK`FP2-t3hnMwS*Z)VF(3u7?UNcp>QT?Y}1!v^QRG0QOPF6GCaZJDzI}B z3G%>S7#iHw;hQ=i>Fy?3EoKL= z=&HZE`OD2oE5iHm`C7wX+Yt*r=7uSY~5o!y}8M74FNS2&BPyS*n?x%m)C7VTL@(P_8ytk zL53VF10&>9VsZQY!}HnZ++EVlqmd{gI_w)C6Fy)W|OM>v&8?N|fImF8d7ZF}e; z#kjdFE)i+u=+xfJl5nS^5&GQ>F1t6&A4x*FYJNe;0*Tq*)iIMT8HO4CvXF`}i|btx zS1mgqedVXpFWTT?5OD34V+8U)AAlBm^#d9;zO}vW$NIyctAR3j938LZFE_ zCIhK6Mon8%35?S2k(8`G&thcz1$KO~u<=U$ojE>yJtqV7J+0_moq6S=9mhyQm^^n# zvl1$QuorV8V0>&b8U`-JXOPihR^WFaCuA$+b4;(ClIXhv%-nSkPsFk6;5mp9ciG4- zf{n~pqX@)mo*<4qrkqYWf2Bg*utfrxywE9yAuYJa3J>BqZ^%#H44a^*Mhc#1o-zuS z=L6Jp;)$8KGvpawf%IGtRB)DKGA=WZ=QL^H~AD~YPNuehY z|IlCU6F4d3FyJjCWZ`aOaJ_5Hy@-i90`)9su@1s0EVU$|k2~{DUPv7^X~}A%Lfg7* zsX^LhGnx7l%eYwNg%X-nZLzA7Uo5>tDqt!d@8u}_>ye>FlGFq1pl2tu&cv-zYnv-O ze_o&ly@F0>xbKvM9%SkFO?bAiHbwyr8Pf(hF=$K>Q`k>yn$WCQ9^2{Cqh+xrjv#;B z+gX!)w0lcww0EeksoECzK6Lg#hlMjiw^Jz7(Mwm-zr9X(pF(I>ehAwKV)Z}co>IoG_=5ddYoEiV-9)tsNqRA>~=>He1y(THxji*?#zFiFMiO9VN zl%iMlqT1*RyV?>O?%#Gy%c)y|k|@#JZOBS9eHk<4m0&_70!;g)yAnuNin$lbte=gA z5+!KKJDt-Y8-G*}<^7&Yqe6vWmJwfy|8mXf9>B77mT2+LW{NZKG>QJt~2c^9Xr-yw2~5mn|y~TF#Sd(-&xl z8OX-woq}75aoi`YDvnwlu($)H+!ZQL*+V!7cOt7R!pE^rL9yaSISS7HN6V3Il?c!a z8nNmKBrd-4VXU9z=O>Y~rD8Tl4?~{^a8vCe12B!g8EugfC(8$GjBn<|^w{hbpNCoT ziSeEu7KHqbQ%MQLW2%pxo0P6LxDqmY7?~9`FX9;qnHLFl-xtbRblZ-F-dRxMYivnV z;&!j~BRazT{5^~7{__)MvgNoSHM%7dP`bgs=5?QavkHT02khO;Zow;)?T8DV8JpRp z#|2>YfN3bL&tf(Lb7Dd++(nF$cY27xwKxt#rN7_o@0_u-IkRO{`gIcpWr9&;+OP#z ze}WXHn<(QTLgJ-GR^=z&Y}VR&t!vXJN>PG?4CRF^%IBW!C815{cZP`Tu`BLxpN!3n zS5E})Ns`!pL^nW&@o;B~App$tv&ab=iz`wo(ks^0uQvKk}^s&(kdv3*OvRG4cGxopH@~l0P{HOGQK)MeRJal! zi<}U+VlfRzM;9)w(&DiniK#Kc7G*d%i&QC|>65Rv*5S?|^ay zF^^UzC+GF7c(Du|m+V^1ATnIQ4IKql2&AnqGI`8f$LsS@JGC0Du?~7P z6Vnt#PDnNy#_QoxoXZfH7dh#!##rY!X{*^aACvEOw`U*l$ zhgu)jFJlbt^7T%}6VR+^Mv1=G)~R^1Q+J*CeOODY z^b=YeR7X!Wxndxdz)ueKBvMX+Y5iAF@`xL#{Ipl7OKB#h#mtUD#HBujeoH@;)M$ujGX1Sj%j-{c}Age6tnKZtv2)umEo}PkX&qe)i(3 z)L2E%*OhQ$Zesc6)BJ0?uO?e6=SH$V7>1gu)Fq&G_+Y&k9>AL}9w-l_8mSm4&=%?gjO@a+?*n`txy7)&y_?EYAYC#zPgQ5KdP z^Nd!ed`w&L>V3xzO=>kg=Pau^q6c&4-OpvB2jdWCm~nU?(&Zldl7*I`3=u0-4(;i- z>mDKXkuKARJGl3rUdj-NJ<6QsqPDm^X0^pH96a-xUBYV=qn}V(?2D?d z-D&FniGk*~?%wBEtgiDUyI8}PX?=TwCySJz2*LzQ001BWNklM-Q+nvQcU1)aqVPlgnlSj?SiTU)c z)Bd&@dFIw##(MXrSb+D;-GuIdn=E&4G=SUua+09T+S=|TO@H@%ThC??zN}SYw7&Zd zEI7-^zQN{vX4NB7&yuw-`hmmWKDXrNpHbTD^)gs(h|rSP;r=|5Pe$zeY=p(HHL2ng z|3Hw8sNENu7ghR5WNNNrk>6V{NkdK)hM(95Z2Dh5n*b<4|FSv1NY3u6v?`z8c`nS17vP#Kv3g=o1*=P) zAE+`j=ccL}V?DTQoMzhW*Wyn(3t}u&++TVWKh}JP)YBahX1vF!DGzkGi%QV%8^xUw zLE5pKWIf5-mvZ8Up8^`ZkXtviO<)o0O%UUJza?I3%=CW0+ltfucE(d~2pl&2zlIS& z=Qg~|N&>7lcT4z2?KO4SHK-YWEFh`Lky<(u4Z9QHy%$JHFKVedxyk(aZ)@YV8iP8)_y*U zuE>ms;@AuCDeB9{gN_WMzr6PeL0hEWwstF5Auecq{puW!lM<)yl^N=v@~pyhY@uEo z?LG#hYOjul7C^5O$&n$Q%ltRbGPvDB`x&O#OFn9yT;wgQ1_nSA( z4~2-ut@qUDp3_fRsuPy3n}2SKcA_`0xRk^yRC;=SlMpkrS97W5pW7EAW1+8=tWPA3 z5J8P!!a9j5+kEg|%Ng29VUtt%*XMlkdjQez3i4ByUYj`isWtX1arV08s=hC$Yd812 zO4Ki4YsJdkdUZ%VJN#yH?g}e8Br<9b&HUg@a5TJ;3iZ-r;f-%FzC}eGKE&9BKM^k z`5+sQ32z-+$bpm?4#N;9}N@dQFHB!#uEIiQ*M zgURI<`Tu>ex4PCAZTfyYlc2S|aMz&_i%|_wd3wn+h8|{#w8cc&U8gVF_bZDo9sR%m z>wh@w8a$7lfr;D?R9&tHXcP?VoWz{70KL9A-@Rw5uA2|8)Q*44G%VSQqi;uw)X@P- zR#R@q#S>6~iq0@7DHpM5UZW7h*8LOv74Dwg1c*OE`iXHJPl=nE&PXY z3E-;K4Gq*z)4l0QuD)kY09%Q|7(SB6_bp+mx4CGUpV-mLM+I;R6!RIcvsek#@}ZCA zVp$R3wj<@F-7DRB=z{A;xdz7=m%iR9zka@X8Z|&+2}_*pHPV#OI670Dm6nAia)P+D zMA5;%`m0V^7RQTBdSee)xKR${K@cQjz!pB?A! zh+u}xphx@QID-TXbAVwf!QB>vOe)#k5nAi`D8Es+*fg(CqO~bq5bD zJxTIN>G9~Lv!csqe~E5Sl6LD?N+gg&(E4B3&sMNu$fZ22j!$Q4maC?d`D2_R%9GY_ z-?Cq2#&aPt9o$vTwZf{lES2|~4SelvgX;3^{x^#+wO~P+Z{WYU~$?96&HC%oMScCK0QxZSHKr}NP-=Jdmc2> zz8P~cq$;jEyV$H)u9Xo^+)yLuoMZuqD#ek|XPUt&YbAv3=(wHNi`pktf8<|K$L8H45+iqeaGFTfeCDU<#bZq&@ zQfJ+v^kho(6JNIz5Ce%@sBL~lUd<`2c4w>k1Gf9CXF)%eK?TT}ias*NUL(V^A@NU= zPE}VRwJ@Bcyg0*R!XP(LdYz%m)QV<*+@?MmlA_-+TW|-{rWt@ACz*6?~4Iv*_uw ziy5dI3@fX*F4P^_v#E8ijEhVWTGZ=}QUrJ~%M_bnst*v7y4mpZAuf|>7X*n1f!t8$ zY2}`*%4zQO^Yaze$NU7QF*-gztL^$ERF3=Jr_UJdpFP~3wW#XW%rBtg@;GjjQzFt! zbYXFQaSccK9TB+S^?hgWidU`GEaW2!E&8_Ayr8B4HdIkMz>KLlRM)e+Dr0bFR@84d zVWS)lhfW+yOQK zp2ti#8%?WcNo0JxTHdC~@?%)!2N#yFV@RO~1!+wvTw*`FzQ(T1uH#-oNf4pii=J?aV=~l3-Su=#NQ2yD_xDdF*OJWyI9hbFFQIp{aFmqDs`vNqv~z; z=WvIX`E{_e>k62TSJ%%Q6`A}@aji%Y2V#i2+E&-sWpZhD0AQF8+Lu!K)1d1BoeEKA zXwxqMHP1x@sF+o8cByi1h?sXS347Sa*d?w0Sa3;jZe^Nj&zw-~G<3EO!AE**<$LjZ zi2V<4fZN|y{7ywH0^*m3%M_R%7=5e0HH*W>-muKol+26{oh_KiUiU7nhvILf&PDJe z9P?I`!)up*EJM?z)+dP*7EbV}uQJE9EqI@l1|-KsV4lK|bm`fDcZIFF0BZ)wp?Re0 zrJy!)<)Bm-nD}=45IQK~w5GfJ(9BO|k)~)jP-QUOm;x5y$ z{ncZ@55}wC^UTjZbNfcORC~B{w@lt(NVq@UqWxI(;7Wo|H`wq2^Z7~;ne3Re(r0OB z%nZYv?%ZW%qa4`espEnmV~se$MU3Pi!E7Rbu5rWQFDu(;0-Y%Gy&EL6y_Ikl*bP7s z#|hul=X3{#*=vm8l3Awcev6(UQ;^S**4F^cJW^6?6!CiXJlPa+RIp+ouds9mqRxds zDR}CCyG5U(tP@^DWdTV0|t8+*w@F;HQ6&B3SJl!G@_S=RTZ1^jOcp6?49U7Gw ziW(*VT@AGmyc&t9sX{B4SJna6s!EHz3VN?hMNiz!=Fclpi)Yf((RWq#Gsft|R;8%Z z2gGg`^^1?_Zv2HJJ9{hrt5o$d(vg^G{F#VEw6UTw21efKRp7?N_U<%{222o4^J`LX zr}fa@%OHB84wMD75pSUZ(37=ppV!7j{Wm9HxpY&$q2G^Jyz@;tDa--^wq8@@EtYK^ zui1;h9S$AO7-L?)XojnYz4f$Jvu&N<%723y8W^pA=C|ppvsn~C6g$D9M|+9uQ;{qg zy8=oo$kh9td-z;y11)(?eJ!ZgbDxIwTH^|RM3CYW-IffBz40q$Uxxolu=OW2_iZSr!e^9kFHi?G=kT5lts;vJvPS*wG|e!9vjK2E7DhD_0y z9w6c%Qx{xZhTGTe{&&FeSIogWJF zi{;x%(s`)KXtK-ePdDV+4mZEk0yAxx;yR!wGVEb2#R^TOoB(6bRKD5Cu66oPeBZIW zg*q4jn`weQWdSzgcz^1VO@Bq&6ElBB(lg^Lo~#Mp*m%8$&pF?-QFy>Ldarg2;fk2E zdt1fUZgA=0f+TVlN=cuFb(W-hb6d)Y5-PtW=#_w|k!jerh z$sYjrcFY-D0|AWJD+sGw-g=8vIL*QqwXv$=RmDXr36hApW&quZx!RANgS>Wa`#m>; z^WDK!AZP7tVM-~%z%8`JRXa(@je7;$e>$}!uFcbP}?96P=cYR(jHf&m%uoz!T&P7#q9?W>j5B(1vy)bq<2NsAW zzuOeqo0nl411EJA+UxV(l$vuu{m%6hb_aIF^DzDTC>wEO<|h9plc0cT1Qzsg^ay~b zO$*JhQ#wWqFEi*?^AMb!y-W)b+ud7S@veRthe*pG*0&7-Ih~}I)^#TJ*?pF=!eL;p zW2BfaXE<}u!okc2*^h($s~AXU$zYV%GpqqbEf%9bD1Lt~7Hxa6p7UI$6L(@A zSslJ>XWQV2muw;D&&Edv24*ZaFIKv=fB>nXt;gi%qNaM+R89!Qi?4hsQm{4LJo{3a z;Nb+@GgPYzFRhChpJvL;FqSN-e%sU7uUyc|@?w`%_sRW1TkB^x`sWQZZBTsc^;WHw z#(AyPc9DNDK;Iy!5AS|>?FShd6oxh+C-COXS&0afVsBRp*~|m(V`9dRuaS5P(@Sq? zat+{-NpGX?xeJSKM0BIv&vqq3e`4~+*oGqqc#3CB0k_qE((()BQcCL2)E}O3YZ{CYbX`!iM{CNxTU@ws z81Pn1)v;5A^}Z1t6LV&!W2kMNqNwekAEuQ%Sh3NsywxTY8|~FffhuNSNNK9ZdPXiP zbtbo5&_r;OHYy}-BTxGEJAOJ|5q$)3NZmNJl_c&JDpmUV$5E3?26(QlGegdGTuOS^ zdhFW7M_X6JYTmanaeB*vbE)b#czU(8#ev&k0R%%ISX8I;Pp7lBPBDJ$^(o1h;jo;5 zD_B_|e+#qsssvv;@*+5QAFuvEV&z<} zC4=C3AQ0u%Vy>mpHUik)wrv}V!~Gp*zrO8Rs#1m3EqzdY{njL6k5pF)O;c+g(2-q^ zO#kZoe;>Ook~~8P`Sz#gLdrk61H2lL>7ru)OuI~frwyI2ftO)$o6z*v#QT-e5As?( z0C>OO(Kv3(u*kvUr3SbLPP2l{7Y7^wUxq}1ySu@d(i_O#9p=e0xUn_KDYSJnf-o_2C||`9S*~rqvCfM^5w#Xm!nIO^ya&@zt9BZs zUvYf3?!Jzc$r67By7A2E?>XK+%nyu` zc7eK`$w`2m%2u3RE^sFpgeI!aC-F&}zG#5s*ymE@EH6GhR|NCPiyy^4IC6*!jFMLS z|H`*eN-qR(UE=!fszE!RR>ZJTSUArfB8T%^cI3hne8IgZMg?=i?k~pe;YodKbZlD( z7h`ppZWlA(wDET}Dk|uO{=A`u^+%+ihQvt^F2wn&G8}V3CCU9{t zT@P?~rVe2rOpxD>X9sR5oUBulKFJBi1Rw{h=OXk^AsP^wR@ZMBb^|C zNgJZx7=DK`t98ll#7?BO<{E`xup=?kkxL*8>pu+@vAB?|ak3VR^BeVUwHO?cz0PJf zePZJa0f!DczzV<&u=Yz~U}^Z{ohjdn*c^!M!#C;aCZ0 z=}`KRm`AQP>bd&(5>W!F0j+RvaqJulDf>9R#q-o(hS`>Ty#U<%^$ICpvc9 zaP!vw<@{Ul^NaBHZ=YY^x?8h<{p7^-Z^p2{BedJfOxaGkIkrs&`j_@*bPdaUNBNaL z75;+yPefii1=`k|K{i`RS4j(--+&gq(E9rriQ!vb`FeC45pASC5Mcl3fB#RI4bSU> zvy?>+8Rm!!O^9Pm#c>IZ`sDE#5Q&Kd*#L4bHo)zL;%AY%c5<1q*b%%r0?4$RGIR6X zkkBbzTEjOHG%Pzc7Z=$70e}z7tao&1bI#%E%oBGd0f6;&fvCixh2hL{$Be_)Nu$_f zH-*}EiW003aEf}$akqtkMl!e|NSu%9IWI?vf&+5XrSi#kxc) zmm0TlPW3J<7Ymrj(j|PjBk!_OH0JudkZ^RLa}MjDoUwX%H2cd7B`m7U5*g-fUai+& zjrKCd;O^&0>F3QQl$4IP61hQ6LQ}IX3MxUeCBIP$xeq~mwk{*f5r8tSZDUhXdb6<% z=yEGV^~le-H&wfh?OZOST(`oG7OEmLPs{^lAo$N+{x@!WYw-OU&K-~Fgo>(cIqCJ_ z0rm519)|I37Pe=h|K|Gd?T!w%8xlmBbDJpM6;y~Z444*a}*0`ol$4j%z2jZ9c}&?5bi3v1HG ziHB&`ES&5RfYI6nWV1?4uW}nq)G%qdKQN|E7mE$pJFk7sweC1CKVKtv0|s%EPPgc; zS)z0sngiWOWJxlE+2C30Y~0Ek@!^#S6=tYNo5H+UwH!diKVcl5Nj!-HhZ!)O)3gAC zR8e)Bb^#Woe#U;n>6kv>@91?VKrq8=xY?WiWrk6!tf&Dwdo+uBpn!XGs)kfehBt^& zYGWokSmbSMvMEyt5K^JY&2mmYBR{$*_uo@63b^bKwHLQ{P^;nBV9g+X6sbm!NQ6K$ z_M?U*WVYX7u)Hep?XbMEW1}sxffWa&H;WwD%l&5X^5avyD1Y zBU&a<-#g67PclA<3I{mll64XT6KxeGby2s9QT3Gj;nClxfo=vWo!963?FWQiG_1@3 znY8(yvvRwA7~(A6sG3`y4aLBBvaR{qs5dN0c~gk=$l7yRt-Uj(EBmq9_Vd|U^uTrv zfub8$PM6%PtG5HTij^pP#~e|9Ym0G-^Z4cBE%>Xi#nEd$*Y9O)V--+9!vxb zHhsC>fG*TYV0y)%B8O3L!B)7S=ydPUeQLlZx$Wwv_w-XeQ&=dRVU_F_-h1l(db3TO zhRn^ZL%DK8K9t2cH<;)4_b@MJgT6RbChg#i1e+W40oWY5)e-3};E>~^ZA|id-Gn0q zrnoJo)M+&l;mfmYsgtRmlBP0k%-{+?RH+H0U`!mcz+X&Y?^m05iI zh0veZtiv20{j@P)F9WYVc7NskKVXJ2++fqkbe}#A7>3t?na71dvqGckz!+t6Ji&>P z(QtbcUWmnDa5=Pf%*2>B z23})QxFb^`D!~yjM~y^!NM41~COaf^8fL^I$X$F!w-w#5tWa}Kd(Sb3Gwo)W)R>4) z!8)Vr#-t`%m4jJ=A0|tw0 zk|HcA1Yk*4+UnDV8^g95WdjOosiCoQqd?sFJNRAPabWE_0u@7*-vtoFD1Ba&YE z+>-6)v2e$da`LBqGbjm36@b{1B<|KyIx{fdw(eBKw_pWspDW(7#l@K#6X5`;P3@je zKl!`S9D0_7P%4s2wX{J)!dV(sIMDZQw_`QKc-4RDy&B)8h^a z&z;yUKj|T8YJ?Bviv^%8fl5!rUJy>&Q^iI#rd~yY8*L<_@JO1seIIdMM0X!F`%HbB zhRMw8w#U4j-J?*V`!JL|7%3v*Lfb?nj#*?h_C~+~o0*TC26np5bX_BSL+8JS7v(vR z$T^+fhhb@LqVF^_9`fc*K$9brpK}+0VrHv=$yCF9yU#f|C~*Tv_0nK@&w7tkK69N| z41P|Z>qzBjl`S}y*q7%`uC%Q)>nOte=h+J91Z4$=pDX+$Y`(Pq^ekS6u2%WKMI#F` zDUw;n)}5|Pf~&l5thXFQ;o-bDGM+kQL2g(rVRXiVgYp~GeBn$Q!$R8SHXax=5}bPu z6Mey2r&W)cP{H%PgXYF9dB?!L8e=BS}O9BjwN!Q31e(jW&|cEA$+8oqz%lE2aV4L ztt^L8my9*~>NbX%`^yo_T#@bBY}gn!40YWED6Fb0)df->tg%fn7*)SAjM7|Pd)lI4 zsb`ks5du2geY)8|xjMs~Zn0SBCYCfEcda3T9Huk&%_;V_!3tU3;dR5I`*eT%%=>f= zub*N2>1QztN>1vFu9k%Wl<}=*bL{O2kk1V>Bx)Xr=h+ie) zD&G2RBDB78-94oO{?$`Ws9MbjewF~VCy|lWbPZM^keMCaJH6!A(~3#T1;qQ=7TkTk z6pn>YM4|=sYM>9gxjjw=To4ih;O6&jbI@lX8a+Hft8;wSu=H2=QP_+1SZuO~{SvcN zbRRmde%5R|ZME`n>soMF$>>IJLjzG$9lrb|Vkh;3WopoaZal=8VF?X+iOMc5jLM4C zm{m07osiWQ`PdfNE3U|&6)hD4-r2sh;wpHn246?#)L9hsi!%-Y6BvE%&rz+6!eX({ zlGjI<(OOh*s>E0n+(NM``=cgq9rW$Bg9-nErvXvQOmW+f7B@X=sZP9UTb)Y#(JUyf zSz_H}^#U2>AX>nJmwV7qwXs5kClwF$pG)Ui%;KH{h>rl(xfc97l zZ|cuW;ZK48DYBFiKwbkH-^G6pSj<0##v6Rt%Q`xW0BO%;R7AWYH(A`PLjl4H??}ys z3y!P0X;)MA*cTej#Sm+?n+Y)IzSS_O?{~Pp*dpjJ8%!3?>7Sm}PZPXO%f;Lm0GlZ^ zjzqKxy@0{3!@03wSVaiV$sRMa*K1ihkE2@-pYNbIkEYV5s{%HtjzzGzTEi4R#hRPyyIv8 zvE!_1@{0MARH)tPlF*c$-} zE4Vjd*$Hp~bGubNXWgFOz4fx4@$!nuj~K3dZJ%4&K>6lru*pz1ot(tRH_H<=1q8q% zI!q@x-l{jP(#+*tkkRLE{n~n=9ZxyrbM5<9c>OS7wbxdXEFh;A=~@!zkvTG(E6vrI zYSs|JObaVE<`jAE3ri7`5fPG|9`lyh_?ENe!i^%TZPznxX&dD`dYJrdxqb5X*clnF zpsHzeQU=ual(<2hTTII1G-&QRZ+0b}9sR7or@Pl?f%MuG>;lZ~27KB4M(UO+{9@_& zygRx`TBDRxhV^szTzKQuXUpWm@@M96?S3NcYMHMYF>7A0<<@LZ5}{;#BF_l`Tdz2U)Ek-rFzP@U6N>QF_=4%zjvzr#fpMHR13P~P2Hk8h+T|a zPr3M9tr$!G&GXn7ZT(kS{Ea7@)||#rpC8c9t^;gHBb!w?6+XZ>hUI?&c_JRD(vy7 zhQHbs<>s*!gYYLseMk+$eGgm|@*$Q16~&y^{UV`wD(! zO9EB(FPx1w_gOwyk`@rD1fMaySIrG!c>R<&``SJ;SeVCrd6b#rjIT=>b6GEMqp|iP zy1=bBNAF7PmA0K2?#HScj1y8V&ip+JjPeU?NlmEx&gvG4t57&<)gleW!G8vwMxWrv z>qjiHnBIdM`VVLQbraS0nAvv81JYPjzm{V!yXH`A&i+T&s$mu5jg6jrOn3l>G`LS3 z?0Rn?FD-gw>(TK{OKpZg6m_t08PC^cg}=>_$%M<@t5!od@cm>l#IsDxY`R7_3#35a zE73Fk^Qr#pr%xp>U0R^Xr@STz2R`cW7|fTvetq#BX>$KQ>{+NZx!C9SY#W+3YqMcj zN9xrh_iSl2s%&F@qv7n`KAK>}vWn#%N2$f8N50mXaB(c69?wtP{MO&ChQ)4v(H$kD z5%BHZU!SKzTtlFXe*G9VRzA&l%I+5z5{Qn@g`MBcG&(j0BGoK19)eli%QgQl8kPvygbDeMj z4OoDhL_u2Noc``hKpbYT*dIs=pXPbg^%gub8HNLfZtsfGS!CFI8g}paA<}U7yz_U7 zRBQKJy@>7gl|KtU>$RtcXY<)wTmR&4BtYhqEDa5SHq-Apy`5X$&pYS{jv4W%7C$^2 z-+Vc@y430hE{t~h`kCiv_<1Pc>&n|_q)ufC*Ju+LFu3%q)dxDt5)&S58Mb-otA~5y z+bL#G-(Cw;vCF%(2KBp45dHo(9z(7Qg>?FNlYmVJz!AgT`(j;{aNxe~ zajl{8x+2%Iv)>`J{G2m&{Ikj0V8*XhO}{Ogg($AoR3a8*sJZo}>Ri1vtB%+;a;axg z@CX1LovO42I|hxT56x=|)cy@HBwTjGTer*?P=c`2`v8JZ8P=BZ*H?Zt zmdST`3X|%YOF#qgVR&(O9N^P+>jJE^?>9iI2{P6n2+0?luuxW@u%^MS+|RiyASZ&Y z>TGva5*#jSTPi7fOt*SXcOPNNen#Y&PI;YfY5RniLj=MJ9VQKRTEkv*&rZ#WIpbzE zfAx{!)UJX&>{s6HQ<2-7?c0*FxuY*~ZnI@xI8ySpAiP&PUQ%5{8mZ-Chd|^w;^j!- zIw@TE3D6rJ>XGTc)4KDkipvBIJM_hJ2+N-UJdd2#(WOn0ga*Ly&M8ngSmz3#d4?zm zo3>X~QnaHD?vI7-X4e`G3LscfY$K-vTG6o4`x-`#*mSSMY=Z)CfLUBcJiKY%ErP5| zG+VxyZE>N~B|lOa^F#^KM=yc04)aSOPdrrsNm_d(D=)uV?S)w-xXQN9Ef-$A^%6b8 z8k)BUk9A?iN!Ww^r2*4#eJK#1l;DMorB@R?m&BO)O4R2OJiimC--N}_3|Mo&uB0XN z41w}RCVhc%?xWm9T2v0VB#lT5_B)m`<6dAeka!vw9S&c=jX!(4V<+!}6J**bX)t&98QE@gtW@HAj3fvNF4@eLitb1l4THIP zOm>=azcdTY9((WDI9r*(Se%jexmqV_zLod|q_T?*UCPKNO1T_QHFvsv>xGC9Hup}z zO`Lyy?A`(`uxOdSvJw*?+%G07(%cuEbw08oO$_gEi|nnf%x>kHT(r>F%_6b64S9JQg;SSty8~Kj6zG?I) zj80mFNNF%^227k2b$WQ%aCl^PMmWfc=@wd-3&-%dFlUUIq4C%};{fn7Nf2UYv8SK@ z(gI+^Xmi*u^Ae%zks_MLJ$pk)v0^jcoSxBzuNep%Fv0wC70B!%cRQs-(JH0oO2dL#;)oMPm*!kp8^d%HkZ! z5koGvBTyUtt9u~d);bzZvi9QsQx5xM!x%m~J(D{pDc=+BW9C|GUPCz|ovAzU-jaAO z&l!GblNZC;7-&VDBk_l2u0mgsf!f)3Ee_{bTA7;Ax=^ty*(prBK*5rRvKFuHMzUe@ z|8;h4$(E!b5IlE9v-H_re;k<)NJ!ACzA<)0N8CC-5D^kZWrlCtF`y1$T{IBlth<0j z%vFEbVGR0ds|ln|26&ibMDInXl{q0W!bgRz>UO$gh|p1((oOqU8N1|!3f;if7J<%j z_H@N{UaGYH3lH8{3@jmg(wR$&MlDunPsGf97vgNwD!0zE+i*Gq6OKHmM2tS};mbh- z2_9o;lb7aF!XZn!iY$7(yo`S$r46h}M_R7plY#9LGPQKYFaDsyzMKnsf;;`MLfJ(* zvC9a540R{qf9mJ9LZ`aV=42`^IyfS8HadKIRZEj&_J z5-WncTn$H}P08(1q9of1(}UXY2f&!g!3t$LxlZ;W#%ry(AxV6k&6d!*b-db)2SUO& zsbZ=35c@mqewZBmdDPTvR_0Z+ILA5gvw0Z5fqi?a8+s4ne0Z~!lrPa7PWyR0{bKlI zcp%s`ikiKhnX5~}@uj8x%mXWq2?a34dON_C(&jnI$7RYNv%70f&`BhdwI%%NW^u(r z0~-?W@p^4kdSWeEblg%K6FBgp9bu!dZrmO*dzf;!mQ?@z`;VpI#3qlf*cb`37w|Xj z%7Hmxc|!4haH&-1_=npS$a*RFZlwJ?p0kNAo7nbi2XRY5YSA1pf2qPRc5AGpX<06V ziS6y6ZTUvHs{Z^0F?5UuGOHpY%Mr7t&yyW-2yI%|6J_^?+Hm>}mxr1nE|22Nqo9cH z2!s`djc9RqqPW%3Ql6?MYT!y#BA2AuBPc*YyQX=~#@X z{x|i#?EYroHLX1l5e3_h8cy->rse26bMf>QUsBfm`G(`NwRCj=ea{v*wdCtw;kCr7 z6Ky*)JYZ!te5%S|maHCKUf)XuOU`Sy>xV%(08Rh?SHKqp9GMH?h)724nCVxmQy}cS z-~i=SPxIY^O2%7)4tfKE8}bIy%1O#J4DfV- z$)jhtk-9Ld=Ze+Faa%e7p?Dkv_@E1~gZlR7#xv7ZyLg`T;k=2mo(}}SY$YUNp8pGs zyvP87_tx`QL)DfNPXV9O2`pG6BJFJjP;&I*E%EUMRI;fBh8Rg|6=7rcn(i)G8A_c8P$XG{4UuOwO7ukU+}Zd z{N}T|2*xbV5hiTSex{`?s04Dgh~D2l8g9fT#SbJZ^57^2@JjAhRV4)n&?Q{e(C2_z zUHP?Q1AUuC{AmRHsm5Bn#Ui)ybx&MdD6;StghV0NV0ZwGUJ4Qx0@~ePIJ%R?Rs3y) z?MHy3=7@)?@B#pLOAYMxS z&<0&ev!mP8=`>Gaj7p89jOBbdot)^O(!M`mQ_j|lMs-RgWgc_2*jrey1eLA2Y>hU0kB4MZU8O6O* z1*ZfS{lseS%Q#iv{No7VAL&Qhy?=8?`z;<3U3YszfPFQt1QPxO!16f0fi#kukY8gowuhad}L!72GD2 zw%jNa#w|!Zpy^Y3Guc&}2v!gE$b72P|D7f*eqo002ovPDHLkV1luT{aXM4 literal 0 HcmV?d00001 diff --git a/packages/paddlejs-examples/ocrXcx/pages/index/index.js b/packages/paddlejs-examples/ocrXcx/pages/index/index.js new file mode 100644 index 00000000..3ae84d29 --- /dev/null +++ b/packages/paddlejs-examples/ocrXcx/pages/index/index.js @@ -0,0 +1,526 @@ +/* global wx, Page */ +import * as paddlejs from '@paddlejs/paddlejs-core'; +import '@paddlejs/paddlejs-backend-webgl'; +import clipper from 'js-clipper'; +import { divide, enableBoundaryChecking, plus } from 'number-precision'; + +import { recDecode } from 'recPostprocess.js'; +// eslint-disable-next-line no-undef +const plugin = requirePlugin('paddlejs-plugin'); +const Polygon = require('d3-polygon'); + +global.wasm_url = 'pages/index/wasm/opencv_js.wasm.br'; +const CV = require('./wasm/opencv.js'); + +plugin.register(paddlejs, wx); + +let DETSHAPE = 960; +let RECWIDTH = 320; +const RECHEIGHT = 32; + +// 声明后续图像变换要用到的canvas;此时未绑定 +let canvas_det; +let canvas_rec; +let my_canvas; +let my_canvas_ctx; + + +const imgList = [ + 'https://paddlejs.bj.bcebos.com/xcx/ocr.png' +]; + +// eslint-disable-next-line max-lines-per-function +const outputBox = (res) => { + const thresh = 0.3; + const box_thresh = 0.5; + const max_candidates = 1000; + const min_size = 3; + const width = 960; + const height = 960; + const pred = res; + const segmentation = []; + pred.forEach(item => { + segmentation.push(item > thresh ? 255 : 0); + }); + + function get_mini_boxes(contour) { + // 生成最小外接矩形 + const bounding_box = CV.minAreaRect(contour); + const points = []; + const mat = new CV.Mat(); + // 获取矩形的四个顶点坐标 + CV.boxPoints(bounding_box, mat); + for (let i = 0; i < mat.data32F.length; i += 2) { + const arr = []; + arr[0] = mat.data32F[i]; + arr[1] = mat.data32F[i + 1]; + points.push(arr); + } + + function sortNumber(a, b) { + return a[0] - b[0]; + } + points.sort(sortNumber); + let index_1 = 0; + let index_2 = 1; + let index_3 = 2; + let index_4 = 3; + if (points[1][1] > points[0][1]) { + index_1 = 0; + index_4 = 1; + } + else { + index_1 = 1; + index_4 = 0; + } + + if (points[3][1] > points[2][1]) { + index_2 = 2; + index_3 = 3; + } + else { + index_2 = 3; + index_3 = 2; + } + const box = [ + points[index_1], + points[index_2], + points[index_3], + points[index_4] + ]; + const side = Math.min(bounding_box.size.height, bounding_box.size.width); + mat.delete(); + return { + points: box, + side + }; + } + + function box_score_fast(bitmap, _box) { + const h = height; + const w = width; + const box = JSON.parse(JSON.stringify(_box)); + const x = []; + const y = []; + box.forEach(item => { + x.push(item[0]); + y.push(item[1]); + }); + // clip这个函数将将数组中的元素限制在a_min, a_max之间,大于a_max的就使得它等于 a_max,小于a_min,的就使得它等于a_min。 + const xmin = clip(Math.floor(Math.min(...x)), 0, w - 1); + const xmax = clip(Math.ceil(Math.max(...x)), 0, w - 1); + const ymin = clip(Math.floor(Math.min(...y)), 0, h - 1); + const ymax = clip(Math.ceil(Math.max(...y)), 0, h - 1); + // eslint-disable-next-line new-cap + const mask = new CV.Mat.zeros(ymax - ymin + 1, xmax - xmin + 1, CV.CV_8UC1); + box.forEach(item => { + item[0] = Math.max(item[0] - xmin, 0); + item[1] = Math.max(item[1] - ymin, 0); + }); + const npts = 4; + const point_data = new Uint8Array(box.flat()); + const points = CV.matFromArray(npts, 1, CV.CV_32SC2, point_data); + const pts = new CV.MatVector(); + pts.push_back(points); + const color = new CV.Scalar(255); + // 多个多边形填充 + CV.fillPoly(mask, pts, color, 1); + const sliceArr = []; + for (let i = ymin; i < ymax + 1; i++) { + sliceArr.push(...bitmap.slice(960 * i + xmin, 960 * i + xmax + 1)); + } + const mean = num_mean(sliceArr, mask.data); + mask.delete(); + points.delete(); + pts.delete(); + return mean; + } + + function clip(data, min, max) { + return data < min ? min : data > max ? max : data; + } + + function unclip(box) { + const unclip_ratio = 1.6; + const area = Math.abs(Polygon.polygonArea(box)); + const length = Polygon.polygonLength(box); + const distance = area * unclip_ratio / length; + const tmpArr = []; + box.forEach(item => { + const obj = { + X: 0, + Y: 0 + }; + obj.X = item[0]; + obj.Y = item[1]; + tmpArr.push(obj); + }); + const offset = new clipper.ClipperOffset(); + offset.AddPath(tmpArr, clipper.JoinType.jtRound, clipper.EndType.etClosedPolygon); + const expanded = []; + offset.Execute(expanded, distance); + let expandedArr = []; + expanded[0] && expanded[0].forEach(item => { + expandedArr.push([item.X, item.Y]); + }); + expandedArr = [].concat(...expandedArr); + return expandedArr; + } + + function num_mean(data, mask) { + let sum = 0; + let length = 0; + for (let i = 0; i < data.length; i++) { + if (mask[i]) { + sum = plus(sum, data[i]); + length++; + } + } + return divide(sum, length); + } + + // eslint-disable-next-line new-cap + const src = new CV.matFromArray(960, 960, CV.CV_8UC1, segmentation); + const contours = new CV.MatVector(); + const hierarchy = new CV.Mat(); + // 获取轮廓 + CV.findContours(src, contours, hierarchy, CV.RETR_LIST, CV.CHAIN_APPROX_SIMPLE); + const num_contours = Math.min(contours.size(), max_candidates); + const boxes = []; + const scores = []; + const arr = []; + for (let i = 0; i < num_contours; i++) { + const contour = contours.get(i); + let { + points, + side + } = get_mini_boxes(contour); + if (side < min_size) { + continue; + } + const score = box_score_fast(pred, points); + if (box_thresh > score) { + continue; + } + let box = unclip(points); + // eslint-disable-next-line new-cap + const boxMap = new CV.matFromArray(box.length / 2, 1, CV.CV_32SC2, box); + const resultObj = get_mini_boxes(boxMap); + box = resultObj.points; + side = resultObj.side; + if (side < min_size + 2) { + continue; + } + box.forEach(item => { + item[0] = clip(Math.round(item[0]), 0, 960); + item[1] = clip(Math.round(item[1]), 0, 960); + }); + boxes.push(box); + scores.push(score); + arr.push(i); + boxMap.delete(); + } + src.delete(); + contours.delete(); + hierarchy.delete(); + return { + boxes, + scores + }; +}; + +const sorted_boxes = (box) => { + function sortNumber(a, b) { + return a[0][1] - b[0][1]; + } + + const boxes = box.sort(sortNumber); + const num_boxes = boxes.length; + for (let i = 0; i < num_boxes - 1; i++) { + if (Math.abs(boxes[i + 1][0][1] - boxes[i][0][1]) < 10 + && boxes[i + 1][0][0] < boxes[i][0][0]) { + const tmp = boxes[i]; + boxes[i] = boxes[i + 1]; + boxes[i + 1] = tmp; + } + } + return boxes; +} + +function flatten(arr) { + return arr.toString().split(',').map(item => +item); +} + +function int(num) { + return num > 0 ? Math.floor(num) : Math.ceil(num); +} + +function clip(data, min, max) { + return data < min ? min : data > max ? max : data; +} + +function get_rotate_crop_image(img, points) { + const img_crop_width = int(Math.max( + linalg_norm(points[0], points[1]), + linalg_norm(points[2], points[3]) + )); + const img_crop_height = int(Math.max( + linalg_norm(points[0], points[3]), + linalg_norm(points[1], points[2]) + )); + const pts_std = [ + [0, 0], + [img_crop_width, 0], + [img_crop_width, img_crop_height], + [0, img_crop_height] + ]; + const srcTri = CV.matFromArray(4, 1, CV.CV_32FC2, flatten(points)); + const dstTri = CV.matFromArray(4, 1, CV.CV_32FC2, flatten(pts_std)); + // 获取到目标矩阵 + const M = CV.getPerspectiveTransform(srcTri, dstTri); + const src = CV.imread(img); + const dst = new CV.Mat(); + const dsize = new CV.Size(img_crop_width, img_crop_height); + // 透视转换 + CV.warpPerspective(src, dst, M, dsize, CV.INTER_CUBIC, CV.BORDER_REPLICATE, new CV.Scalar()); + console.log('CV', src, dst); + const dst_img_height = dst.rows; + const dst_img_width = dst.cols; + let dst_rot; + // 图像旋转 + if (dst_img_height / dst_img_width >= 1.5) { + dst_rot = new CV.Mat(); + const dsize_rot = new CV.Size(dst.rows, dst.cols); + const center = new CV.Point(dst.cols / 2, dst.cols / 2); + const M = CV.getRotationMatrix2D(center, 90, 1); + CV.warpAffine(dst, dst_rot, M, dsize_rot, CV.INTER_CUBIC, CV.BORDER_REPLICATE, new CV.Scalar()); + } + + const dst_resize = new CV.Mat(); + const dsize_resize = new CV.Size(0, 0); + let scale; + if (dst_rot) { + scale = RECHEIGHT / dst_rot.rows; + CV.resize(dst_rot, dst_resize, dsize_resize, scale, scale, CV.INTER_AREA); + dst_rot.delete(); + } + else { + scale = RECHEIGHT / dst_img_height; + CV.resize(dst, dst_resize, dsize_resize, scale, scale, CV.INTER_AREA); + } + console.log('resize', dst_resize); + canvas_det.width = dst_resize.cols; + canvas_det.height = dst_resize.rows; + canvas_det.getContext('2d').clearRect(0, 0, canvas_det.width, canvas_det.height); + CV.imshow(canvas_det, dst_resize); + + src.delete(); + dst.delete(); + dst_resize.delete(); + srcTri.delete(); + dstTri.delete(); +} + +function linalg_norm(x, y) { + return Math.sqrt(Math.pow(x[0] - y[0], 2) + Math.pow(x[1] - y[1], 2)); +} + +function resize_norm_img_splice( + image, + origin_width, + origin_height, + index = 0 +) { + canvas_rec.width = RECWIDTH; + canvas_rec.height = RECHEIGHT; + const ctx = canvas_rec.getContext('2d'); + ctx.fillStyle = '#fff'; + ctx.clearRect(0, 0, canvas_rec.width, canvas_rec.height); + // ctx.drawImage(image, -index * RECWIDTH, 0, origin_width, origin_height); + ctx.putImageData(image, -index * RECWIDTH, 0); +} + +// 声明检测和识别Runner;未初始化 +let detectRunner; +let recRunner; + +Page({ + data: { + imgList: imgList, + imgInfo: {}, + result: '', + loaded: false + }, + + onLoad() { + enableBoundaryChecking(false); + // 绑定canvas;该操作是异步,因此最好加延迟保证后续使用时已完成绑定 + wx.createSelectorQuery() + .select('#canvas_det') + .fields({ node: true, size: true }) + .exec(async(res) => { + canvas_det = res[0].node; + }); + + wx.createSelectorQuery() + .select('#canvas_rec') + .fields({ node: true, size: true }) + .exec(async(res) => { + canvas_rec = res[0].node; + }); + + wx.createSelectorQuery() + .select('#myCanvas') + .fields({ node: true, size: true }) + .exec((res) => { + my_canvas = res[0].node; + my_canvas_ctx = my_canvas.getContext('2d'); + }); + + const me = this; + // 初始化Runner + detectRunner = new paddlejs.Runner({ + modelPath: 'https://paddlejs.bj.bcebos.com/models/fuse/ocr/ch_PP-OCRv2_det_fuse_activation', + mean: [0.485, 0.456, 0.406], + std: [0.229, 0.224, 0.225], + bgr: true, + webglFeedProcess: true + }); + recRunner = new paddlejs.Runner({ + modelPath: 'https://paddlejs.bj.bcebos.com/models/fuse/ocr/ch_PP-OCRv2_rec_fuse_activation/model.json', + fill: '#000', + mean: [0.5, 0.5, 0.5], + std: [0.5, 0.5, 0.5], + bgr: true, + webglFeedProcess: true + }); + // 等待模型数据全部加载完成 + Promise.all([detectRunner.init(), recRunner.init()]).then(_ => { + me.setData({ + loaded: true + }); + }); + + }, + + selectImage(event) { + const imgPath = this.data.imgList[event.target.dataset.index]; + this.getImageInfo(imgPath); + }, + + getImageInfo(imgPath) { + const me = this; + wx.getImageInfo({ + src: imgPath, + success: (imgInfo) => { + const { + path, + width, + height + } = imgInfo; + const canvasPath = imgPath.includes('http') ? path : imgPath; + + let sw = 960; + let sh = 960; + let x = 0; + let y = 0; + + if (height / width >= 1) { + sw = Math.round(sh * width / height); + x = Math.floor((960 - sw) / 2); + } + else { + sh = Math.round(sw * height / width); + y = Math.floor((960 - sh) / 2); + } + my_canvas.width = sw; + my_canvas.height = sh; + + // 微信上canvas输入图片 + const image = my_canvas.createImage(); + image.src = canvasPath; + image.onload = () => { + my_canvas_ctx.clearRect(0, 0, my_canvas.width, my_canvas.height); + my_canvas_ctx.drawImage(image, x, y, sw, sh); + const imageData = my_canvas_ctx.getImageData(0, 0, sw, sh); + // 开始识别 + me.recognize({ + data: imageData.data, + width: 960, + height: 960 + }, {canvasPath, sw, sh, x, y}); + } + } + }); + }, + + async recognize(res, img) { + const me = this; + // 文本框选坐标点 + let points; + await detectRunner.predict(res, function (detectRes) { + points = outputBox(detectRes); + }); + + // 绘制文本框 + me.drawCanvasPoints(img, points.boxes); + + // 排序,使得最后结果输出尽量按照从上到下的顺序 + const boxes = sorted_boxes(points.boxes); + console.log('boxs', boxes); + const text_list = []; + + for (let i = 0; i < boxes.length; i++) { + const tmp_box = JSON.parse(JSON.stringify(boxes[i])); + // 获取tmp_box对应图片到canvas_det + get_rotate_crop_image(res, tmp_box); + // 这里是计算要识别文字的图片片段是否大于识别模型要求的输入宽度;超过了的话会分成多次识别,再拼接结果 + const width_num = Math.ceil(canvas_det.width / RECWIDTH); + + let text_list_tmp = ''; + for (let j = 0; j < width_num; j++) { + // 根据原图的宽度进行裁剪拼接,超出指定宽度会被截断;然后再次识别,最后拼接起来 + resize_norm_img_splice(canvas_det.getContext('2d').getImageData(0, 0, canvas_det.width, canvas_det.height), canvas_det.width, canvas_det.height, j); + + const imgData = canvas_rec.getContext('2d').getImageData(0, 0, canvas_rec.width, canvas_rec.height); + + await recRunner.predict(imgData, function(output){ + // 将输出向量转化为idx再传化为对应字符 + const text = recDecode(output); + text_list_tmp = text_list_tmp.concat(text.text); + }); + } + text_list.push(text_list_tmp); + } + me.setData({ + result: JSON.stringify(boxes) + JSON.stringify(text_list) + }); + }, + + drawCanvasPoints(img, points) { + // 设置线条 + my_canvas_ctx.strokeStyle = 'blue'; + my_canvas_ctx.lineWidth = 5; + + // 先绘制图片 + const image = my_canvas.createImage(); + image.src = img.canvasPath; + image.onload = () => { + my_canvas_ctx.clearRect(0, 0, my_canvas_ctx.width, my_canvas_ctx.height); + my_canvas_ctx.drawImage(image, img.x, img.y, img.sw, img.sh); + // 绘制线框 + points.length && points.forEach(point => { + my_canvas_ctx.beginPath(); + // 设置路径起点坐标 + my_canvas_ctx.moveTo(point[0][0], point[0][1]); + my_canvas_ctx.lineTo(point[1][0], point[1][1]); + my_canvas_ctx.lineTo(point[2][0], point[2][1]); + my_canvas_ctx.lineTo(point[3][0], point[3][1]); + my_canvas_ctx.lineTo(point[0][0], point[0][1]); + my_canvas_ctx.stroke(); + my_canvas_ctx.closePath(); + }); + } + + } +}); diff --git a/packages/paddlejs-examples/ocrXcx/pages/index/index.json b/packages/paddlejs-examples/ocrXcx/pages/index/index.json new file mode 100644 index 00000000..2c63c085 --- /dev/null +++ b/packages/paddlejs-examples/ocrXcx/pages/index/index.json @@ -0,0 +1,2 @@ +{ +} diff --git a/packages/paddlejs-examples/ocrXcx/pages/index/index.wxml b/packages/paddlejs-examples/ocrXcx/pages/index/index.wxml new file mode 100644 index 00000000..58a6d6a1 --- /dev/null +++ b/packages/paddlejs-examples/ocrXcx/pages/index/index.wxml @@ -0,0 +1,42 @@ + + + 点击图片进行预测 + + + + + + + + + + + + + 文本框选坐标:{{result}} + + + + + loading… + diff --git a/packages/paddlejs-examples/ocrXcx/pages/index/index.wxss b/packages/paddlejs-examples/ocrXcx/pages/index/index.wxss new file mode 100644 index 00000000..17679eae --- /dev/null +++ b/packages/paddlejs-examples/ocrXcx/pages/index/index.wxss @@ -0,0 +1,56 @@ +text { + display: block; +} + +.title { + margin-top: 10px; + font-size: 16px; + line-height: 32px; + font-weight: bold; +} + +.imgWrapper { + margin: 10px 10px 0; + white-space: nowrap; +} +.img { + width: 960px; + height: 960px; + border: 1px solid #f1f1f1; +} + +.result { + margin-top: 5px; +} + +.selected { + border: 1px solid #999; +} + +.select-btn { + margin-top: 20px; + width: 60%; +} + +.mask { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: rgba(0, 0, 0, .7); +} + +.loading { + color: #fff; + font-size: 20px; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); +} + +.img-view { + padding-bottom: 20px; + border-bottom: 1px solid #f1f1f1; +} diff --git a/packages/paddlejs-examples/ocrXcx/pages/index/ppocr_keys_v1 b/packages/paddlejs-examples/ocrXcx/pages/index/ppocr_keys_v1 new file mode 100644 index 00000000..b75af213 --- /dev/null +++ b/packages/paddlejs-examples/ocrXcx/pages/index/ppocr_keys_v1 @@ -0,0 +1,6623 @@ +' +疗 +绚 +诚 +娇 +溜 +题 +贿 +者 +廖 +更 +纳 +加 +奉 +公 +一 +就 +汴 +计 +与 +路 +房 +原 +妇 +2 +0 +8 +- +7 +其 +> +: +] +, +, +骑 +刈 +全 +消 +昏 +傈 +安 +久 +钟 +嗅 +不 +影 +处 +驽 +蜿 +资 +关 +椤 +地 +瘸 +专 +问 +忖 +票 +嫉 +炎 +韵 +要 +月 +田 +节 +陂 +鄙 +捌 +备 +拳 +伺 +眼 +网 +盎 +大 +傍 +心 +东 +愉 +汇 +蹿 +科 +每 +业 +里 +航 +晏 +字 +平 +录 +先 +1 +3 +彤 +鲶 +产 +稍 +督 +腴 +有 +象 +岳 +注 +绍 +在 +泺 +文 +定 +核 +名 +水 +过 +理 +让 +偷 +率 +等 +这 +发 +” +为 +含 +肥 +酉 +相 +鄱 +七 +编 +猥 +锛 +日 +镀 +蒂 +掰 +倒 +辆 +栾 +栗 +综 +涩 +州 +雌 +滑 +馀 +了 +机 +块 +司 +宰 +甙 +兴 +矽 +抚 +保 +用 +沧 +秩 +如 +收 +息 +滥 +页 +疑 +埠 +! +! +姥 +异 +橹 +钇 +向 +下 +跄 +的 +椴 +沫 +国 +绥 +獠 +报 +开 +民 +蜇 +何 +分 +凇 +长 +讥 +藏 +掏 +施 +羽 +中 +讲 +派 +嘟 +人 +提 +浼 +间 +世 +而 +古 +多 +倪 +唇 +饯 +控 +庚 +首 +赛 +蜓 +味 +断 +制 +觉 +技 +替 +艰 +溢 +潮 +夕 +钺 +外 +摘 +枋 +动 +双 +单 +啮 +户 +枇 +确 +锦 +曜 +杜 +或 +能 +效 +霜 +盒 +然 +侗 +电 +晁 +放 +步 +鹃 +新 +杖 +蜂 +吒 +濂 +瞬 +评 +总 +隍 +对 +独 +合 +也 +是 +府 +青 +天 +诲 +墙 +组 +滴 +级 +邀 +帘 +示 +已 +时 +骸 +仄 +泅 +和 +遨 +店 +雇 +疫 +持 +巍 +踮 +境 +只 +亨 +目 +鉴 +崤 +闲 +体 +泄 +杂 +作 +般 +轰 +化 +解 +迂 +诿 +蛭 +璀 +腾 +告 +版 +服 +省 +师 +小 +规 +程 +线 +海 +办 +引 +二 +桧 +牌 +砺 +洄 +裴 +修 +图 +痫 +胡 +许 +犊 +事 +郛 +基 +柴 +呼 +食 +研 +奶 +律 +蛋 +因 +葆 +察 +戏 +褒 +戒 +再 +李 +骁 +工 +貂 +油 +鹅 +章 +啄 +休 +场 +给 +睡 +纷 +豆 +器 +捎 +说 +敏 +学 +会 +浒 +设 +诊 +格 +廓 +查 +来 +霓 +室 +溆 +¢ +诡 +寥 +焕 +舜 +柒 +狐 +回 +戟 +砾 +厄 +实 +翩 +尿 +五 +入 +径 +惭 +喹 +股 +宇 +篝 +| +; +美 +期 +云 +九 +祺 +扮 +靠 +锝 +槌 +系 +企 +酰 +阊 +暂 +蚕 +忻 +豁 +本 +羹 +执 +条 +钦 +H +獒 +限 +进 +季 +楦 +于 +芘 +玖 +铋 +茯 +未 +答 +粘 +括 +样 +精 +欠 +矢 +甥 +帷 +嵩 +扣 +令 +仔 +风 +皈 +行 +支 +部 +蓉 +刮 +站 +蜡 +救 +钊 +汗 +松 +嫌 +成 +可 +. +鹤 +院 +从 +交 +政 +怕 +活 +调 +球 +局 +验 +髌 +第 +韫 +谗 +串 +到 +圆 +年 +米 +/ +* +友 +忿 +检 +区 +看 +自 +敢 +刃 +个 +兹 +弄 +流 +留 +同 +没 +齿 +星 +聆 +轼 +湖 +什 +三 +建 +蛔 +儿 +椋 +汕 +震 +颧 +鲤 +跟 +力 +情 +璺 +铨 +陪 +务 +指 +族 +训 +滦 +鄣 +濮 +扒 +商 +箱 +十 +召 +慷 +辗 +所 +莞 +管 +护 +臭 +横 +硒 +嗓 +接 +侦 +六 +露 +党 +馋 +驾 +剖 +高 +侬 +妪 +幂 +猗 +绺 +骐 +央 +酐 +孝 +筝 +课 +徇 +缰 +门 +男 +西 +项 +句 +谙 +瞒 +秃 +篇 +教 +碲 +罚 +声 +呐 +景 +前 +富 +嘴 +鳌 +稀 +免 +朋 +啬 +睐 +去 +赈 +鱼 +住 +肩 +愕 +速 +旁 +波 +厅 +健 +茼 +厥 +鲟 +谅 +投 +攸 +炔 +数 +方 +击 +呋 +谈 +绩 +别 +愫 +僚 +躬 +鹧 +胪 +炳 +招 +喇 +膨 +泵 +蹦 +毛 +结 +5 +4 +谱 +识 +陕 +粽 +婚 +拟 +构 +且 +搜 +任 +潘 +比 +郢 +妨 +醪 +陀 +桔 +碘 +扎 +选 +哈 +骷 +楷 +亿 +明 +缆 +脯 +监 +睫 +逻 +婵 +共 +赴 +淝 +凡 +惦 +及 +达 +揖 +谩 +澹 +减 +焰 +蛹 +番 +祁 +柏 +员 +禄 +怡 +峤 +龙 +白 +叽 +生 +闯 +起 +细 +装 +谕 +竟 +聚 +钙 +上 +导 +渊 +按 +艾 +辘 +挡 +耒 +盹 +饪 +臀 +记 +邮 +蕙 +受 +各 +医 +搂 +普 +滇 +朗 +茸 +带 +翻 +酚 +( +光 +堤 +墟 +蔷 +万 +幻 +〓 +瑙 +辈 +昧 +盏 +亘 +蛀 +吉 +铰 +请 +子 +假 +闻 +税 +井 +诩 +哨 +嫂 +好 +面 +琐 +校 +馊 +鬣 +缂 +营 +访 +炖 +占 +农 +缀 +否 +经 +钚 +棵 +趟 +张 +亟 +吏 +茶 +谨 +捻 +论 +迸 +堂 +玉 +信 +吧 +瞠 +乡 +姬 +寺 +咬 +溏 +苄 +皿 +意 +赉 +宝 +尔 +钰 +艺 +特 +唳 +踉 +都 +荣 +倚 +登 +荐 +丧 +奇 +涵 +批 +炭 +近 +符 +傩 +感 +道 +着 +菊 +虹 +仲 +众 +懈 +濯 +颞 +眺 +南 +释 +北 +缝 +标 +既 +茗 +整 +撼 +迤 +贲 +挎 +耱 +拒 +某 +妍 +卫 +哇 +英 +矶 +藩 +治 +他 +元 +领 +膜 +遮 +穗 +蛾 +飞 +荒 +棺 +劫 +么 +市 +火 +温 +拈 +棚 +洼 +转 +果 +奕 +卸 +迪 +伸 +泳 +斗 +邡 +侄 +涨 +屯 +萋 +胭 +氡 +崮 +枞 +惧 +冒 +彩 +斜 +手 +豚 +随 +旭 +淑 +妞 +形 +菌 +吲 +沱 +争 +驯 +歹 +挟 +兆 +柱 +传 +至 +包 +内 +响 +临 +红 +功 +弩 +衡 +寂 +禁 +老 +棍 +耆 +渍 +织 +害 +氵 +渑 +布 +载 +靥 +嗬 +虽 +苹 +咨 +娄 +库 +雉 +榜 +帜 +嘲 +套 +瑚 +亲 +簸 +欧 +边 +6 +腿 +旮 +抛 +吹 +瞳 +得 +镓 +梗 +厨 +继 +漾 +愣 +憨 +士 +策 +窑 +抑 +躯 +襟 +脏 +参 +贸 +言 +干 +绸 +鳄 +穷 +藜 +音 +折 +详 +) +举 +悍 +甸 +癌 +黎 +谴 +死 +罩 +迁 +寒 +驷 +袖 +媒 +蒋 +掘 +模 +纠 +恣 +观 +祖 +蛆 +碍 +位 +稿 +主 +澧 +跌 +筏 +京 +锏 +帝 +贴 +证 +糠 +才 +黄 +鲸 +略 +炯 +饱 +四 +出 +园 +犀 +牧 +容 +汉 +杆 +浈 +汰 +瑷 +造 +虫 +瘩 +怪 +驴 +济 +应 +花 +沣 +谔 +夙 +旅 +价 +矿 +以 +考 +s +u +呦 +晒 +巡 +茅 +准 +肟 +瓴 +詹 +仟 +褂 +译 +桌 +混 +宁 +怦 +郑 +抿 +些 +余 +鄂 +饴 +攒 +珑 +群 +阖 +岔 +琨 +藓 +预 +环 +洮 +岌 +宀 +杲 +瀵 +最 +常 +囡 +周 +踊 +女 +鼓 +袭 +喉 +简 +范 +薯 +遐 +疏 +粱 +黜 +禧 +法 +箔 +斤 +遥 +汝 +奥 +直 +贞 +撑 +置 +绱 +集 +她 +馅 +逗 +钧 +橱 +魉 +[ +恙 +躁 +唤 +9 +旺 +膘 +待 +脾 +惫 +购 +吗 +依 +盲 +度 +瘿 +蠖 +俾 +之 +镗 +拇 +鲵 +厝 +簧 +续 +款 +展 +啃 +表 +剔 +品 +钻 +腭 +损 +清 +锶 +统 +涌 +寸 +滨 +贪 +链 +吠 +冈 +伎 +迥 +咏 +吁 +览 +防 +迅 +失 +汾 +阔 +逵 +绀 +蔑 +列 +川 +凭 +努 +熨 +揪 +利 +俱 +绉 +抢 +鸨 +我 +即 +责 +膦 +易 +毓 +鹊 +刹 +玷 +岿 +空 +嘞 +绊 +排 +术 +估 +锷 +违 +们 +苟 +铜 +播 +肘 +件 +烫 +审 +鲂 +广 +像 +铌 +惰 +铟 +巳 +胍 +鲍 +康 +憧 +色 +恢 +想 +拷 +尤 +疳 +知 +S +Y +F +D +A +峄 +裕 +帮 +握 +搔 +氐 +氘 +难 +墒 +沮 +雨 +叁 +缥 +悴 +藐 +湫 +娟 +苑 +稠 +颛 +簇 +后 +阕 +闭 +蕤 +缚 +怎 +佞 +码 +嘤 +蔡 +痊 +舱 +螯 +帕 +赫 +昵 +升 +烬 +岫 +、 +疵 +蜻 +髁 +蕨 +隶 +烛 +械 +丑 +盂 +梁 +强 +鲛 +由 +拘 +揉 +劭 +龟 +撤 +钩 +呕 +孛 +费 +妻 +漂 +求 +阑 +崖 +秤 +甘 +通 +深 +补 +赃 +坎 +床 +啪 +承 +吼 +量 +暇 +钼 +烨 +阂 +擎 +脱 +逮 +称 +P +神 +属 +矗 +华 +届 +狍 +葑 +汹 +育 +患 +窒 +蛰 +佼 +静 +槎 +运 +鳗 +庆 +逝 +曼 +疱 +克 +代 +官 +此 +麸 +耧 +蚌 +晟 +例 +础 +榛 +副 +测 +唰 +缢 +迹 +灬 +霁 +身 +岁 +赭 +扛 +又 +菡 +乜 +雾 +板 +读 +陷 +徉 +贯 +郁 +虑 +变 +钓 +菜 +圾 +现 +琢 +式 +乐 +维 +渔 +浜 +左 +吾 +脑 +钡 +警 +T +啵 +拴 +偌 +漱 +湿 +硕 +止 +骼 +魄 +积 +燥 +联 +踢 +玛 +则 +窿 +见 +振 +畿 +送 +班 +钽 +您 +赵 +刨 +印 +讨 +踝 +籍 +谡 +舌 +崧 +汽 +蔽 +沪 +酥 +绒 +怖 +财 +帖 +肱 +私 +莎 +勋 +羔 +霸 +励 +哼 +帐 +将 +帅 +渠 +纪 +婴 +娩 +岭 +厘 +滕 +吻 +伤 +坝 +冠 +戊 +隆 +瘁 +介 +涧 +物 +黍 +并 +姗 +奢 +蹑 +掣 +垸 +锴 +命 +箍 +捉 +病 +辖 +琰 +眭 +迩 +艘 +绌 +繁 +寅 +若 +毋 +思 +诉 +类 +诈 +燮 +轲 +酮 +狂 +重 +反 +职 +筱 +县 +委 +磕 +绣 +奖 +晋 +濉 +志 +徽 +肠 +呈 +獐 +坻 +口 +片 +碰 +几 +村 +柿 +劳 +料 +获 +亩 +惕 +晕 +厌 +号 +罢 +池 +正 +鏖 +煨 +家 +棕 +复 +尝 +懋 +蜥 +锅 +岛 +扰 +队 +坠 +瘾 +钬 +@ +卧 +疣 +镇 +譬 +冰 +彷 +频 +黯 +据 +垄 +采 +八 +缪 +瘫 +型 +熹 +砰 +楠 +襁 +箐 +但 +嘶 +绳 +啤 +拍 +盥 +穆 +傲 +洗 +盯 +塘 +怔 +筛 +丿 +台 +恒 +喂 +葛 +永 +¥ +烟 +酒 +桦 +书 +砂 +蚝 +缉 +态 +瀚 +袄 +圳 +轻 +蛛 +超 +榧 +遛 +姒 +奘 +铮 +右 +荽 +望 +偻 +卡 +丶 +氰 +附 +做 +革 +索 +戚 +坨 +桷 +唁 +垅 +榻 +岐 +偎 +坛 +莨 +山 +殊 +微 +骇 +陈 +爨 +推 +嗝 +驹 +澡 +藁 +呤 +卤 +嘻 +糅 +逛 +侵 +郓 +酌 +德 +摇 +※ +鬃 +被 +慨 +殡 +羸 +昌 +泡 +戛 +鞋 +河 +宪 +沿 +玲 +鲨 +翅 +哽 +源 +铅 +语 +照 +邯 +址 +荃 +佬 +顺 +鸳 +町 +霭 +睾 +瓢 +夸 +椁 +晓 +酿 +痈 +咔 +侏 +券 +噎 +湍 +签 +嚷 +离 +午 +尚 +社 +锤 +背 +孟 +使 +浪 +缦 +潍 +鞅 +军 +姹 +驶 +笑 +鳟 +鲁 +》 +孽 +钜 +绿 +洱 +礴 +焯 +椰 +颖 +囔 +乌 +孔 +巴 +互 +性 +椽 +哞 +聘 +昨 +早 +暮 +胶 +炀 +隧 +低 +彗 +昝 +铁 +呓 +氽 +藉 +喔 +癖 +瑗 +姨 +权 +胱 +韦 +堑 +蜜 +酋 +楝 +砝 +毁 +靓 +歙 +锲 +究 +屋 +喳 +骨 +辨 +碑 +武 +鸠 +宫 +辜 +烊 +适 +坡 +殃 +培 +佩 +供 +走 +蜈 +迟 +翼 +况 +姣 +凛 +浔 +吃 +飘 +债 +犟 +金 +促 +苛 +崇 +坂 +莳 +畔 +绂 +兵 +蠕 +斋 +根 +砍 +亢 +欢 +恬 +崔 +剁 +餐 +榫 +快 +扶 +‖ +濒 +缠 +鳜 +当 +彭 +驭 +浦 +篮 +昀 +锆 +秸 +钳 +弋 +娣 +瞑 +夷 +龛 +苫 +拱 +致 +% +嵊 +障 +隐 +弑 +初 +娓 +抉 +汩 +累 +蓖 +" +唬 +助 +苓 +昙 +押 +毙 +破 +城 +郧 +逢 +嚏 +獭 +瞻 +溱 +婿 +赊 +跨 +恼 +璧 +萃 +姻 +貉 +灵 +炉 +密 +氛 +陶 +砸 +谬 +衔 +点 +琛 +沛 +枳 +层 +岱 +诺 +脍 +榈 +埂 +征 +冷 +裁 +打 +蹴 +素 +瘘 +逞 +蛐 +聊 +激 +腱 +萘 +踵 +飒 +蓟 +吆 +取 +咙 +簋 +涓 +矩 +曝 +挺 +揣 +座 +你 +史 +舵 +焱 +尘 +苏 +笈 +脚 +溉 +榨 +诵 +樊 +邓 +焊 +义 +庶 +儋 +蟋 +蒲 +赦 +呷 +杞 +诠 +豪 +还 +试 +颓 +茉 +太 +除 +紫 +逃 +痴 +草 +充 +鳕 +珉 +祗 +墨 +渭 +烩 +蘸 +慕 +璇 +镶 +穴 +嵘 +恶 +骂 +险 +绋 +幕 +碉 +肺 +戳 +刘 +潞 +秣 +纾 +潜 +銮 +洛 +须 +罘 +销 +瘪 +汞 +兮 +屉 +r +林 +厕 +质 +探 +划 +狸 +殚 +善 +煊 +烹 +〒 +锈 +逯 +宸 +辍 +泱 +柚 +袍 +远 +蹋 +嶙 +绝 +峥 +娥 +缍 +雀 +徵 +认 +镱 +谷 += +贩 +勉 +撩 +鄯 +斐 +洋 +非 +祚 +泾 +诒 +饿 +撬 +威 +晷 +搭 +芍 +锥 +笺 +蓦 +候 +琊 +档 +礁 +沼 +卵 +荠 +忑 +朝 +凹 +瑞 +头 +仪 +弧 +孵 +畏 +铆 +突 +衲 +车 +浩 +气 +茂 +悖 +厢 +枕 +酝 +戴 +湾 +邹 +飚 +攘 +锂 +写 +宵 +翁 +岷 +无 +喜 +丈 +挑 +嗟 +绛 +殉 +议 +槽 +具 +醇 +淞 +笃 +郴 +阅 +饼 +底 +壕 +砚 +弈 +询 +缕 +庹 +翟 +零 +筷 +暨 +舟 +闺 +甯 +撞 +麂 +茌 +蔼 +很 +珲 +捕 +棠 +角 +阉 +媛 +娲 +诽 +剿 +尉 +爵 +睬 +韩 +诰 +匣 +危 +糍 +镯 +立 +浏 +阳 +少 +盆 +舔 +擘 +匪 +申 +尬 +铣 +旯 +抖 +赘 +瓯 +居 +ˇ +哮 +游 +锭 +茏 +歌 +坏 +甚 +秒 +舞 +沙 +仗 +劲 +潺 +阿 +燧 +郭 +嗖 +霏 +忠 +材 +奂 +耐 +跺 +砀 +输 +岖 +媳 +氟 +极 +摆 +灿 +今 +扔 +腻 +枝 +奎 +药 +熄 +吨 +话 +q +额 +慑 +嘌 +协 +喀 +壳 +埭 +视 +著 +於 +愧 +陲 +翌 +峁 +颅 +佛 +腹 +聋 +侯 +咎 +叟 +秀 +颇 +存 +较 +罪 +哄 +岗 +扫 +栏 +钾 +羌 +己 +璨 +枭 +霉 +煌 +涸 +衿 +键 +镝 +益 +岢 +奏 +连 +夯 +睿 +冥 +均 +糖 +狞 +蹊 +稻 +爸 +刿 +胥 +煜 +丽 +肿 +璃 +掸 +跚 +灾 +垂 +樾 +濑 +乎 +莲 +窄 +犹 +撮 +战 +馄 +软 +络 +显 +鸢 +胸 +宾 +妲 +恕 +埔 +蝌 +份 +遇 +巧 +瞟 +粒 +恰 +剥 +桡 +博 +讯 +凯 +堇 +阶 +滤 +卖 +斌 +骚 +彬 +兑 +磺 +樱 +舷 +两 +娱 +福 +仃 +差 +找 +桁 +÷ +净 +把 +阴 +污 +戬 +雷 +碓 +蕲 +楚 +罡 +焖 +抽 +妫 +咒 +仑 +闱 +尽 +邑 +菁 +爱 +贷 +沥 +鞑 +牡 +嗉 +崴 +骤 +塌 +嗦 +订 +拮 +滓 +捡 +锻 +次 +坪 +杩 +臃 +箬 +融 +珂 +鹗 +宗 +枚 +降 +鸬 +妯 +阄 +堰 +盐 +毅 +必 +杨 +崃 +俺 +甬 +状 +莘 +货 +耸 +菱 +腼 +铸 +唏 +痤 +孚 +澳 +懒 +溅 +翘 +疙 +杷 +淼 +缙 +骰 +喊 +悉 +砻 +坷 +艇 +赁 +界 +谤 +纣 +宴 +晃 +茹 +归 +饭 +梢 +铡 +街 +抄 +肼 +鬟 +苯 +颂 +撷 +戈 +炒 +咆 +茭 +瘙 +负 +仰 +客 +琉 +铢 +封 +卑 +珥 +椿 +镧 +窨 +鬲 +寿 +御 +袤 +铃 +萎 +砖 +餮 +脒 +裳 +肪 +孕 +嫣 +馗 +嵇 +恳 +氯 +江 +石 +褶 +冢 +祸 +阻 +狈 +羞 +银 +靳 +透 +咳 +叼 +敷 +芷 +啥 +它 +瓤 +兰 +痘 +懊 +逑 +肌 +往 +捺 +坊 +甩 +呻 +〃 +沦 +忘 +膻 +祟 +菅 +剧 +崆 +智 +坯 +臧 +霍 +墅 +攻 +眯 +倘 +拢 +骠 +铐 +庭 +岙 +瓠 +′ +缺 +泥 +迢 +捶 +? +? +郏 +喙 +掷 +沌 +纯 +秘 +种 +听 +绘 +固 +螨 +团 +香 +盗 +妒 +埚 +蓝 +拖 +旱 +荞 +铀 +血 +遏 +汲 +辰 +叩 +拽 +幅 +硬 +惶 +桀 +漠 +措 +泼 +唑 +齐 +肾 +念 +酱 +虚 +屁 +耶 +旗 +砦 +闵 +婉 +馆 +拭 +绅 +韧 +忏 +窝 +醋 +葺 +顾 +辞 +倜 +堆 +辋 +逆 +玟 +贱 +疾 +董 +惘 +倌 +锕 +淘 +嘀 +莽 +俭 +笏 +绑 +鲷 +杈 +择 +蟀 +粥 +嗯 +驰 +逾 +案 +谪 +褓 +胫 +哩 +昕 +颚 +鲢 +绠 +躺 +鹄 +崂 +儒 +俨 +丝 +尕 +泌 +啊 +萸 +彰 +幺 +吟 +骄 +苣 +弦 +脊 +瑰 +〈 +诛 +镁 +析 +闪 +剪 +侧 +哟 +框 +螃 +守 +嬗 +燕 +狭 +铈 +缮 +概 +迳 +痧 +鲲 +俯 +售 +笼 +痣 +扉 +挖 +满 +咋 +援 +邱 +扇 +歪 +便 +玑 +绦 +峡 +蛇 +叨 +〖 +泽 +胃 +斓 +喋 +怂 +坟 +猪 +该 +蚬 +炕 +弥 +赞 +棣 +晔 +娠 +挲 +狡 +创 +疖 +铕 +镭 +稷 +挫 +弭 +啾 +翔 +粉 +履 +苘 +哦 +楼 +秕 +铂 +土 +锣 +瘟 +挣 +栉 +习 +享 +桢 +袅 +磨 +桂 +谦 +延 +坚 +蔚 +噗 +署 +谟 +猬 +钎 +恐 +嬉 +雒 +倦 +衅 +亏 +璩 +睹 +刻 +殿 +王 +算 +雕 +麻 +丘 +柯 +骆 +丸 +塍 +谚 +添 +鲈 +垓 +桎 +蚯 +芥 +予 +飕 +镦 +谌 +窗 +醚 +菀 +亮 +搪 +莺 +蒿 +羁 +足 +J +真 +轶 +悬 +衷 +靛 +翊 +掩 +哒 +炅 +掐 +冼 +妮 +l +谐 +稚 +荆 +擒 +犯 +陵 +虏 +浓 +崽 +刍 +陌 +傻 +孜 +千 +靖 +演 +矜 +钕 +煽 +杰 +酗 +渗 +伞 +栋 +俗 +泫 +戍 +罕 +沾 +疽 +灏 +煦 +芬 +磴 +叱 +阱 +榉 +湃 +蜀 +叉 +醒 +彪 +租 +郡 +篷 +屎 +良 +垢 +隗 +弱 +陨 +峪 +砷 +掴 +颁 +胎 +雯 +绵 +贬 +沐 +撵 +隘 +篙 +暖 +曹 +陡 +栓 +填 +臼 +彦 +瓶 +琪 +潼 +哪 +鸡 +摩 +啦 +俟 +锋 +域 +耻 +蔫 +疯 +纹 +撇 +毒 +绶 +痛 +酯 +忍 +爪 +赳 +歆 +嘹 +辕 +烈 +册 +朴 +钱 +吮 +毯 +癜 +娃 +谀 +邵 +厮 +炽 +璞 +邃 +丐 +追 +词 +瓒 +忆 +轧 +芫 +谯 +喷 +弟 +半 +冕 +裙 +掖 +墉 +绮 +寝 +苔 +势 +顷 +褥 +切 +衮 +君 +佳 +嫒 +蚩 +霞 +佚 +洙 +逊 +镖 +暹 +唛 +& +殒 +顶 +碗 +獗 +轭 +铺 +蛊 +废 +恹 +汨 +崩 +珍 +那 +杵 +曲 +纺 +夏 +薰 +傀 +闳 +淬 +姘 +舀 +拧 +卷 +楂 +恍 +讪 +厩 +寮 +篪 +赓 +乘 +灭 +盅 +鞣 +沟 +慎 +挂 +饺 +鼾 +杳 +树 +缨 +丛 +絮 +娌 +臻 +嗳 +篡 +侩 +述 +衰 +矛 +圈 +蚜 +匕 +筹 +匿 +濞 +晨 +叶 +骋 +郝 +挚 +蚴 +滞 +增 +侍 +描 +瓣 +吖 +嫦 +蟒 +匾 +圣 +赌 +毡 +癞 +恺 +百 +曳 +需 +篓 +肮 +庖 +帏 +卿 +驿 +遗 +蹬 +鬓 +骡 +歉 +芎 +胳 +屐 +禽 +烦 +晌 +寄 +媾 +狄 +翡 +苒 +船 +廉 +终 +痞 +殇 +々 +畦 +饶 +改 +拆 +悻 +萄 +£ +瓿 +乃 +訾 +桅 +匮 +溧 +拥 +纱 +铍 +骗 +蕃 +龋 +缬 +父 +佐 +疚 +栎 +醍 +掳 +蓄 +x +惆 +颜 +鲆 +榆 +〔 +猎 +敌 +暴 +谥 +鲫 +贾 +罗 +玻 +缄 +扦 +芪 +癣 +落 +徒 +臾 +恿 +猩 +托 +邴 +肄 +牵 +春 +陛 +耀 +刊 +拓 +蓓 +邳 +堕 +寇 +枉 +淌 +啡 +湄 +兽 +酷 +萼 +碚 +濠 +萤 +夹 +旬 +戮 +梭 +琥 +椭 +昔 +勺 +蜊 +绐 +晚 +孺 +僵 +宣 +摄 +冽 +旨 +萌 +忙 +蚤 +眉 +噼 +蟑 +付 +契 +瓜 +悼 +颡 +壁 +曾 +窕 +颢 +澎 +仿 +俑 +浑 +嵌 +浣 +乍 +碌 +褪 +乱 +蔟 +隙 +玩 +剐 +葫 +箫 +纲 +围 +伐 +决 +伙 +漩 +瑟 +刑 +肓 +镳 +缓 +蹭 +氨 +皓 +典 +畲 +坍 +铑 +檐 +塑 +洞 +倬 +储 +胴 +淳 +戾 +吐 +灼 +惺 +妙 +毕 +珐 +缈 +虱 +盖 +羰 +鸿 +磅 +谓 +髅 +娴 +苴 +唷 +蚣 +霹 +抨 +贤 +唠 +犬 +誓 +逍 +庠 +逼 +麓 +籼 +釉 +呜 +碧 +秧 +氩 +摔 +霄 +穸 +纨 +辟 +妈 +映 +完 +牛 +缴 +嗷 +炊 +恩 +荔 +茆 +掉 +紊 +慌 +莓 +羟 +阙 +萁 +磐 +另 +蕹 +辱 +鳐 +湮 +吡 +吩 +唐 +睦 +垠 +舒 +圜 +冗 +瞿 +溺 +芾 +囱 +匠 +僳 +汐 +菩 +饬 +漓 +黑 +霰 +浸 +濡 +窥 +毂 +蒡 +兢 +驻 +鹉 +芮 +诙 +迫 +雳 +厂 +忐 +臆 +猴 +鸣 +蚪 +栈 +箕 +羡 +渐 +莆 +捍 +眈 +哓 +趴 +蹼 +埕 +嚣 +骛 +宏 +淄 +斑 +噜 +严 +瑛 +垃 +椎 +诱 +压 +庾 +绞 +焘 +廿 +抡 +迄 +棘 +夫 +纬 +锹 +眨 +瞌 +侠 +脐 +竞 +瀑 +孳 +骧 +遁 +姜 +颦 +荪 +滚 +萦 +伪 +逸 +粳 +爬 +锁 +矣 +役 +趣 +洒 +颔 +诏 +逐 +奸 +甭 +惠 +攀 +蹄 +泛 +尼 +拼 +阮 +鹰 +亚 +颈 +惑 +勒 +〉 +际 +肛 +爷 +刚 +钨 +丰 +养 +冶 +鲽 +辉 +蔻 +画 +覆 +皴 +妊 +麦 +返 +醉 +皂 +擀 +〗 +酶 +凑 +粹 +悟 +诀 +硖 +港 +卜 +z +杀 +涕 +± +舍 +铠 +抵 +弛 +段 +敝 +镐 +奠 +拂 +轴 +跛 +袱 +e +t +沉 +菇 +俎 +薪 +峦 +秭 +蟹 +历 +盟 +菠 +寡 +液 +肢 +喻 +染 +裱 +悱 +抱 +氙 +赤 +捅 +猛 +跑 +氮 +谣 +仁 +尺 +辊 +窍 +烙 +衍 +架 +擦 +倏 +璐 +瑁 +币 +楞 +胖 +夔 +趸 +邛 +惴 +饕 +虔 +蝎 +§ +哉 +贝 +宽 +辫 +炮 +扩 +饲 +籽 +魏 +菟 +锰 +伍 +猝 +末 +琳 +哚 +蛎 +邂 +呀 +姿 +鄞 +却 +歧 +仙 +恸 +椐 +森 +牒 +寤 +袒 +婆 +虢 +雅 +钉 +朵 +贼 +欲 +苞 +寰 +故 +龚 +坭 +嘘 +咫 +礼 +硷 +兀 +睢 +汶 +’ +铲 +烧 +绕 +诃 +浃 +钿 +哺 +柜 +讼 +颊 +璁 +腔 +洽 +咐 +脲 +簌 +筠 +镣 +玮 +鞠 +谁 +兼 +姆 +挥 +梯 +蝴 +谘 +漕 +刷 +躏 +宦 +弼 +b +垌 +劈 +麟 +莉 +揭 +笙 +渎 +仕 +嗤 +仓 +配 +怏 +抬 +错 +泯 +镊 +孰 +猿 +邪 +仍 +秋 +鼬 +壹 +歇 +吵 +炼 +< +尧 +射 +柬 +廷 +胧 +霾 +凳 +隋 +肚 +浮 +梦 +祥 +株 +堵 +退 +L +鹫 +跎 +凶 +毽 +荟 +炫 +栩 +玳 +甜 +沂 +鹿 +顽 +伯 +爹 +赔 +蛴 +徐 +匡 +欣 +狰 +缸 +雹 +蟆 +疤 +默 +沤 +啜 +痂 +衣 +禅 +w +i +h +辽 +葳 +黝 +钗 +停 +沽 +棒 +馨 +颌 +肉 +吴 +硫 +悯 +劾 +娈 +马 +啧 +吊 +悌 +镑 +峭 +帆 +瀣 +涉 +咸 +疸 +滋 +泣 +翦 +拙 +癸 +钥 +蜒 ++ +尾 +庄 +凝 +泉 +婢 +渴 +谊 +乞 +陆 +锉 +糊 +鸦 +淮 +I +B +N +晦 +弗 +乔 +庥 +葡 +尻 +席 +橡 +傣 +渣 +拿 +惩 +麋 +斛 +缃 +矮 +蛏 +岘 +鸽 +姐 +膏 +催 +奔 +镒 +喱 +蠡 +摧 +钯 +胤 +柠 +拐 +璋 +鸥 +卢 +荡 +倾 +^ +_ +珀 +逄 +萧 +塾 +掇 +贮 +笆 +聂 +圃 +冲 +嵬 +M +滔 +笕 +值 +炙 +偶 +蜱 +搐 +梆 +汪 +蔬 +腑 +鸯 +蹇 +敞 +绯 +仨 +祯 +谆 +梧 +糗 +鑫 +啸 +豺 +囹 +猾 +巢 +柄 +瀛 +筑 +踌 +沭 +暗 +苁 +鱿 +蹉 +脂 +蘖 +牢 +热 +木 +吸 +溃 +宠 +序 +泞 +偿 +拜 +檩 +厚 +朐 +毗 +螳 +吞 +媚 +朽 +担 +蝗 +橘 +畴 +祈 +糟 +盱 +隼 +郜 +惜 +珠 +裨 +铵 +焙 +琚 +唯 +咚 +噪 +骊 +丫 +滢 +勤 +棉 +呸 +咣 +淀 +隔 +蕾 +窈 +饨 +挨 +煅 +短 +匙 +粕 +镜 +赣 +撕 +墩 +酬 +馁 +豌 +颐 +抗 +酣 +氓 +佑 +搁 +哭 +递 +耷 +涡 +桃 +贻 +碣 +截 +瘦 +昭 +镌 +蔓 +氚 +甲 +猕 +蕴 +蓬 +散 +拾 +纛 +狼 +猷 +铎 +埋 +旖 +矾 +讳 +囊 +糜 +迈 +粟 +蚂 +紧 +鲳 +瘢 +栽 +稼 +羊 +锄 +斟 +睁 +桥 +瓮 +蹙 +祉 +醺 +鼻 +昱 +剃 +跳 +篱 +跷 +蒜 +翎 +宅 +晖 +嗑 +壑 +峻 +癫 +屏 +狠 +陋 +袜 +途 +憎 +祀 +莹 +滟 +佶 +溥 +臣 +约 +盛 +峰 +磁 +慵 +婪 +拦 +莅 +朕 +鹦 +粲 +裤 +哎 +疡 +嫖 +琵 +窟 +堪 +谛 +嘉 +儡 +鳝 +斩 +郾 +驸 +酊 +妄 +胜 +贺 +徙 +傅 +噌 +钢 +栅 +庇 +恋 +匝 +巯 +邈 +尸 +锚 +粗 +佟 +蛟 +薹 +纵 +蚊 +郅 +绢 +锐 +苗 +俞 +篆 +淆 +膀 +鲜 +煎 +诶 +秽 +寻 +涮 +刺 +怀 +噶 +巨 +褰 +魅 +灶 +灌 +桉 +藕 +谜 +舸 +薄 +搀 +恽 +借 +牯 +痉 +渥 +愿 +亓 +耘 +杠 +柩 +锔 +蚶 +钣 +珈 +喘 +蹒 +幽 +赐 +稗 +晤 +莱 +泔 +扯 +肯 +菪 +裆 +腩 +豉 +疆 +骜 +腐 +倭 +珏 +唔 +粮 +亡 +润 +慰 +伽 +橄 +玄 +誉 +醐 +胆 +龊 +粼 +塬 +陇 +彼 +削 +嗣 +绾 +芽 +妗 +垭 +瘴 +爽 +薏 +寨 +龈 +泠 +弹 +赢 +漪 +猫 +嘧 +涂 +恤 +圭 +茧 +烽 +屑 +痕 +巾 +赖 +荸 +凰 +腮 +畈 +亵 +蹲 +偃 +苇 +澜 +艮 +换 +骺 +烘 +苕 +梓 +颉 +肇 +哗 +悄 +氤 +涠 +葬 +屠 +鹭 +植 +竺 +佯 +诣 +鲇 +瘀 +鲅 +邦 +移 +滁 +冯 +耕 +癔 +戌 +茬 +沁 +巩 +悠 +湘 +洪 +痹 +锟 +循 +谋 +腕 +鳃 +钠 +捞 +焉 +迎 +碱 +伫 +急 +榷 +奈 +邝 +卯 +辄 +皲 +卟 +醛 +畹 +忧 +稳 +雄 +昼 +缩 +阈 +睑 +扌 +耗 +曦 +涅 +捏 +瞧 +邕 +淖 +漉 +铝 +耦 +禹 +湛 +喽 +莼 +琅 +诸 +苎 +纂 +硅 +始 +嗨 +傥 +燃 +臂 +赅 +嘈 +呆 +贵 +屹 +壮 +肋 +亍 +蚀 +卅 +豹 +腆 +邬 +迭 +浊 +} +童 +螂 +捐 +圩 +勐 +触 +寞 +汊 +壤 +荫 +膺 +渌 +芳 +懿 +遴 +螈 +泰 +蓼 +蛤 +茜 +舅 +枫 +朔 +膝 +眙 +避 +梅 +判 +鹜 +璜 +牍 +缅 +垫 +藻 +黔 +侥 +惚 +懂 +踩 +腰 +腈 +札 +丞 +唾 +慈 +顿 +摹 +荻 +琬 +~ +斧 +沈 +滂 +胁 +胀 +幄 +莜 +Z +匀 +鄄 +掌 +绰 +茎 +焚 +赋 +萱 +谑 +汁 +铒 +瞎 +夺 +蜗 +野 +娆 +冀 +弯 +篁 +懵 +灞 +隽 +芡 +脘 +俐 +辩 +芯 +掺 +喏 +膈 +蝈 +觐 +悚 +踹 +蔗 +熠 +鼠 +呵 +抓 +橼 +峨 +畜 +缔 +禾 +崭 +弃 +熊 +摒 +凸 +拗 +穹 +蒙 +抒 +祛 +劝 +闫 +扳 +阵 +醌 +踪 +喵 +侣 +搬 +仅 +荧 +赎 +蝾 +琦 +买 +婧 +瞄 +寓 +皎 +冻 +赝 +箩 +莫 +瞰 +郊 +笫 +姝 +筒 +枪 +遣 +煸 +袋 +舆 +痱 +涛 +母 +〇 +启 +践 +耙 +绲 +盘 +遂 +昊 +搞 +槿 +诬 +纰 +泓 +惨 +檬 +亻 +越 +C +o +憩 +熵 +祷 +钒 +暧 +塔 +阗 +胰 +咄 +娶 +魔 +琶 +钞 +邻 +扬 +杉 +殴 +咽 +弓 +〆 +髻 +】 +吭 +揽 +霆 +拄 +殖 +脆 +彻 +岩 +芝 +勃 +辣 +剌 +钝 +嘎 +甄 +佘 +皖 +伦 +授 +徕 +憔 +挪 +皇 +庞 +稔 +芜 +踏 +溴 +兖 +卒 +擢 +饥 +鳞 +煲 +‰ +账 +颗 +叻 +斯 +捧 +鳍 +琮 +讹 +蛙 +纽 +谭 +酸 +兔 +莒 +睇 +伟 +觑 +羲 +嗜 +宜 +褐 +旎 +辛 +卦 +诘 +筋 +鎏 +溪 +挛 +熔 +阜 +晰 +鳅 +丢 +奚 +灸 +呱 +献 +陉 +黛 +鸪 +甾 +萨 +疮 +拯 +洲 +疹 +辑 +叙 +恻 +谒 +允 +柔 +烂 +氏 +逅 +漆 +拎 +惋 +扈 +湟 +纭 +啕 +掬 +擞 +哥 +忽 +涤 +鸵 +靡 +郗 +瓷 +扁 +廊 +怨 +雏 +钮 +敦 +E +懦 +憋 +汀 +拚 +啉 +腌 +岸 +f +痼 +瞅 +尊 +咀 +眩 +飙 +忌 +仝 +迦 +熬 +毫 +胯 +篑 +茄 +腺 +凄 +舛 +碴 +锵 +诧 +羯 +後 +漏 +汤 +宓 +仞 +蚁 +壶 +谰 +皑 +铄 +棰 +罔 +辅 +晶 +苦 +牟 +闽 +\ +烃 +饮 +聿 +丙 +蛳 +朱 +煤 +涔 +鳖 +犁 +罐 +荼 +砒 +淦 +妤 +黏 +戎 +孑 +婕 +瑾 +戢 +钵 +枣 +捋 +砥 +衩 +狙 +桠 +稣 +阎 +肃 +梏 +诫 +孪 +昶 +婊 +衫 +嗔 +侃 +塞 +蜃 +樵 +峒 +貌 +屿 +欺 +缫 +阐 +栖 +诟 +珞 +荭 +吝 +萍 +嗽 +恂 +啻 +蜴 +磬 +峋 +俸 +豫 +谎 +徊 +镍 +韬 +魇 +晴 +U +囟 +猜 +蛮 +坐 +囿 +伴 +亭 +肝 +佗 +蝠 +妃 +胞 +滩 +榴 +氖 +垩 +苋 +砣 +扪 +馏 +姓 +轩 +厉 +夥 +侈 +禀 +垒 +岑 +赏 +钛 +辐 +痔 +披 +纸 +碳 +“ +坞 +蠓 +挤 +荥 +沅 +悔 +铧 +帼 +蒌 +蝇 +a +p +y +n +g +哀 +浆 +瑶 +凿 +桶 +馈 +皮 +奴 +苜 +佤 +伶 +晗 +铱 +炬 +优 +弊 +氢 +恃 +甫 +攥 +端 +锌 +灰 +稹 +炝 +曙 +邋 +亥 +眶 +碾 +拉 +萝 +绔 +捷 +浍 +腋 +姑 +菖 +凌 +涞 +麽 +锢 +桨 +潢 +绎 +镰 +殆 +锑 +渝 +铬 +困 +绽 +觎 +匈 +糙 +暑 +裹 +鸟 +盔 +肽 +迷 +綦 +『 +亳 +佝 +俘 +钴 +觇 +骥 +仆 +疝 +跪 +婶 +郯 +瀹 +唉 +脖 +踞 +针 +晾 +忒 +扼 +瞩 +叛 +椒 +疟 +嗡 +邗 +肆 +跆 +玫 +忡 +捣 +咧 +唆 +艄 +蘑 +潦 +笛 +阚 +沸 +泻 +掊 +菽 +贫 +斥 +髂 +孢 +镂 +赂 +麝 +鸾 +屡 +衬 +苷 +恪 +叠 +希 +粤 +爻 +喝 +茫 +惬 +郸 +绻 +庸 +撅 +碟 +宄 +妹 +膛 +叮 +饵 +崛 +嗲 +椅 +冤 +搅 +咕 +敛 +尹 +垦 +闷 +蝉 +霎 +勰 +败 +蓑 +泸 +肤 +鹌 +幌 +焦 +浠 +鞍 +刁 +舰 +乙 +竿 +裔 +。 +茵 +函 +伊 +兄 +丨 +娜 +匍 +謇 +莪 +宥 +似 +蝽 +翳 +酪 +翠 +粑 +薇 +祢 +骏 +赠 +叫 +Q +噤 +噻 +竖 +芗 +莠 +潭 +俊 +羿 +耜 +O +郫 +趁 +嗪 +囚 +蹶 +芒 +洁 +笋 +鹑 +敲 +硝 +啶 +堡 +渲 +揩 +』 +携 +宿 +遒 +颍 +扭 +棱 +割 +萜 +蔸 +葵 +琴 +捂 +饰 +衙 +耿 +掠 +募 +岂 +窖 +涟 +蔺 +瘤 +柞 +瞪 +怜 +匹 +距 +楔 +炜 +哆 +秦 +缎 +幼 +茁 +绪 +痨 +恨 +楸 +娅 +瓦 +桩 +雪 +嬴 +伏 +榔 +妥 +铿 +拌 +眠 +雍 +缇 +‘ +卓 +搓 +哌 +觞 +噩 +屈 +哧 +髓 +咦 +巅 +娑 +侑 +淫 +膳 +祝 +勾 +姊 +莴 +胄 +疃 +薛 +蜷 +胛 +巷 +芙 +芋 +熙 +闰 +勿 +窃 +狱 +剩 +钏 +幢 +陟 +铛 +慧 +靴 +耍 +k +浙 +浇 +飨 +惟 +绗 +祜 +澈 +啼 +咪 +磷 +摞 +诅 +郦 +抹 +跃 +壬 +吕 +肖 +琏 +颤 +尴 +剡 +抠 +凋 +赚 +泊 +津 +宕 +殷 +倔 +氲 +漫 +邺 +涎 +怠 +$ +垮 +荬 +遵 +俏 +叹 +噢 +饽 +蜘 +孙 +筵 +疼 +鞭 +羧 +牦 +箭 +潴 +c +眸 +祭 +髯 +啖 +坳 +愁 +芩 +驮 +倡 +巽 +穰 +沃 +胚 +怒 +凤 +槛 +剂 +趵 +嫁 +v +邢 +灯 +鄢 +桐 +睽 +檗 +锯 +槟 +婷 +嵋 +圻 +诗 +蕈 +颠 +遭 +痢 +芸 +怯 +馥 +竭 +锗 +徜 +恭 +遍 +籁 +剑 +嘱 +苡 +龄 +僧 +桑 +潸 +弘 +澶 +楹 +悲 +讫 +愤 +腥 +悸 +谍 +椹 +呢 +桓 +葭 +攫 +阀 +翰 +躲 +敖 +柑 +郎 +笨 +橇 +呃 +魁 +燎 +脓 +葩 +磋 +垛 +玺 +狮 +沓 +砜 +蕊 +锺 +罹 +蕉 +翱 +虐 +闾 +巫 +旦 +茱 +嬷 +枯 +鹏 +贡 +芹 +汛 +矫 +绁 +拣 +禺 +佃 +讣 +舫 +惯 +乳 +趋 +疲 +挽 +岚 +虾 +衾 +蠹 +蹂 +飓 +氦 +铖 +孩 +稞 +瑜 +壅 +掀 +勘 +妓 +畅 +髋 +W +庐 +牲 +蓿 +榕 +练 +垣 +唱 +邸 +菲 +昆 +婺 +穿 +绡 +麒 +蚱 +掂 +愚 +泷 +涪 +漳 +妩 +娉 +榄 +讷 +觅 +旧 +藤 +煮 +呛 +柳 +腓 +叭 +庵 +烷 +阡 +罂 +蜕 +擂 +猖 +咿 +媲 +脉 +【 +沏 +貅 +黠 +熏 +哲 +烁 +坦 +酵 +兜 +× +潇 +撒 +剽 +珩 +圹 +乾 +摸 +樟 +帽 +嗒 +襄 +魂 +轿 +憬 +锡 +〕 +喃 +皆 +咖 +隅 +脸 +残 +泮 +袂 +鹂 +珊 +囤 +捆 +咤 +误 +徨 +闹 +淙 +芊 +淋 +怆 +囗 +拨 +梳 +渤 +R +G +绨 +蚓 +婀 +幡 +狩 +麾 +谢 +唢 +裸 +旌 +伉 +纶 +裂 +驳 +砼 +咛 +澄 +樨 +蹈 +宙 +澍 +倍 +貔 +操 +勇 +蟠 +摈 +砧 +虬 +够 +缁 +悦 +藿 +撸 +艹 +摁 +淹 +豇 +虎 +榭 +ˉ +吱 +d +° +喧 +荀 +踱 +侮 +奋 +偕 +饷 +犍 +惮 +坑 +璎 +徘 +宛 +妆 +袈 +倩 +窦 +昂 +荏 +乖 +K +怅 +撰 +鳙 +牙 +袁 +酞 +X +痿 +琼 +闸 +雁 +趾 +荚 +虻 +涝 +《 +杏 +韭 +偈 +烤 +绫 +鞘 +卉 +症 +遢 +蓥 +诋 +杭 +荨 +匆 +竣 +簪 +辙 +敕 +虞 +丹 +缭 +咩 +黟 +m +淤 +瑕 +咂 +铉 +硼 +茨 +嶂 +痒 +畸 +敬 +涿 +粪 +窘 +熟 +叔 +嫔 +盾 +忱 +裘 +憾 +梵 +赡 +珙 +咯 +娘 +庙 +溯 +胺 +葱 +痪 +摊 +荷 +卞 +乒 +髦 +寐 +铭 +坩 +胗 +枷 +爆 +溟 +嚼 +羚 +砬 +轨 +惊 +挠 +罄 +竽 +菏 +氧 +浅 +楣 +盼 +枢 +炸 +阆 +杯 +谏 +噬 +淇 +渺 +俪 +秆 +墓 +泪 +跻 +砌 +痰 +垡 +渡 +耽 +釜 +讶 +鳎 +煞 +呗 +韶 +舶 +绷 +鹳 +缜 +旷 +铊 +皱 +龌 +檀 +霖 +奄 +槐 +艳 +蝶 +旋 +哝 +赶 +骞 +蚧 +腊 +盈 +丁 +` +蜚 +矸 +蝙 +睨 +嚓 +僻 +鬼 +醴 +夜 +彝 +磊 +笔 +拔 +栀 +糕 +厦 +邰 +纫 +逭 +纤 +眦 +膊 +馍 +躇 +烯 +蘼 +冬 +诤 +暄 +骶 +哑 +瘠 +」 +臊 +丕 +愈 +咱 +螺 +擅 +跋 +搏 +硪 +谄 +笠 +淡 +嘿 +骅 +谧 +鼎 +皋 +姚 +歼 +蠢 +驼 +耳 +胬 +挝 +涯 +狗 +蒽 +孓 +犷 +凉 +芦 +箴 +铤 +孤 +嘛 +坤 +V +茴 +朦 +挞 +尖 +橙 +诞 +搴 +碇 +洵 +浚 +帚 +蜍 +漯 +柘 +嚎 +讽 +芭 +荤 +咻 +祠 +秉 +跖 +埃 +吓 +糯 +眷 +馒 +惹 +娼 +鲑 +嫩 +讴 +轮 +瞥 +靶 +褚 +乏 +缤 +宋 +帧 +删 +驱 +碎 +扑 +俩 +俄 +偏 +涣 +竹 +噱 +皙 +佰 +渚 +唧 +斡 +# +镉 +刀 +崎 +筐 +佣 +夭 +贰 +肴 +峙 +哔 +艿 +匐 +牺 +镛 +缘 +仡 +嫡 +劣 +枸 +堀 +梨 +簿 +鸭 +蒸 +亦 +稽 +浴 +{ +衢 +束 +槲 +j +阁 +揍 +疥 +棋 +潋 +聪 +窜 +乓 +睛 +插 +冉 +阪 +苍 +搽 +「 +蟾 +螟 +幸 +仇 +樽 +撂 +慢 +跤 +幔 +俚 +淅 +覃 +觊 +溶 +妖 +帛 +侨 +曰 +妾 +泗 +· +: +瀘 +風 +Ë +( +) +∶ +紅 +紗 +瑭 +雲 +頭 +鶏 +財 +許 +• +¥ +樂 +焗 +麗 +— +; +滙 +東 +榮 +繪 +興 +… +門 +業 +π +楊 +國 +顧 +é +盤 +寳 +Λ +龍 +鳳 +島 +誌 +緣 +結 +銭 +萬 +勝 +祎 +璟 +優 +歡 +臨 +時 +購 += +★ +藍 +昇 +鐵 +觀 +勅 +農 +聲 +畫 +兿 +術 +發 +劉 +記 +專 +耑 +園 +書 +壴 +種 +Ο +● +褀 +號 +銀 +匯 +敟 +锘 +葉 +橪 +廣 +進 +蒄 +鑽 +阝 +祙 +貢 +鍋 +豊 +夬 +喆 +團 +閣 +開 +燁 +賓 +館 +酡 +沔 +順 ++ +硚 +劵 +饸 +陽 +車 +湓 +復 +萊 +氣 +軒 +華 +堃 +迮 +纟 +戶 +馬 +學 +裡 +電 +嶽 +獨 +マ +シ +サ +ジ +燘 +袪 +環 +❤ +臺 +灣 +専 +賣 +孖 +聖 +攝 +線 +▪ +α +傢 +俬 +夢 +達 +莊 +喬 +貝 +薩 +劍 +羅 +壓 +棛 +饦 +尃 +璈 +囍 +醫 +G +I +A +# +N +鷄 +髙 +嬰 +啓 +約 +隹 +潔 +賴 +藝 +~ +寶 +籣 +麺 +  +嶺 +√ +義 +網 +峩 +長 +∧ +魚 +機 +構 +② +鳯 +偉 +L +B +㙟 +畵 +鴿 +' +詩 +溝 +嚞 +屌 +藔 +佧 +玥 +蘭 +織 +1 +3 +9 +0 +7 +點 +砭 +鴨 +鋪 +銘 +廳 +弍 +‧ +創 +湯 +坶 +℃ +卩 +骝 +& +烜 +荘 +當 +潤 +扞 +係 +懷 +碶 +钅 +蚨 +讠 +☆ +叢 +爲 +埗 +涫 +塗 +→ +楽 +現 +鯨 +愛 +瑪 +鈺 +忄 +悶 +藥 +飾 +樓 +視 +孬 +ㆍ +燚 +苪 +師 +① +丼 +锽 +│ +韓 +標 +è +兒 +閏 +匋 +張 +漢 +Ü +髪 +會 +閑 +檔 +習 +裝 +の +峯 +菘 +輝 +И +雞 +釣 +億 +浐 +K +O +R +8 +H +E +P +T +W +D +S +C +M +F +姌 +饹 +» +晞 +廰 +ä +嵯 +鷹 +負 +飲 +絲 +冚 +楗 +澤 +綫 +區 +❋ +← +質 +靑 +揚 +③ +滬 +統 +産 +協 +﹑ +乸 +畐 +經 +運 +際 +洺 +岽 +為 +粵 +諾 +崋 +豐 +碁 +ɔ +V +2 +6 +齋 +誠 +訂 +´ +勑 +雙 +陳 +無 +í +泩 +媄 +夌 +刂 +i +c +t +o +r +a +嘢 +耄 +燴 +暃 +壽 +媽 +靈 +抻 +體 +唻 +É +冮 +甹 +鎮 +錦 +ʌ +蜛 +蠄 +尓 +駕 +戀 +飬 +逹 +倫 +貴 +極 +Я +Й +寬 +磚 +嶪 +郎 +職 +| +間 +n +d +剎 +伈 +課 +飛 +橋 +瘊 +№ +譜 +骓 +圗 +滘 +縣 +粿 +咅 +養 +濤 +彳 +® +% +Ⅱ +啰 +㴪 +見 +矞 +薬 +糁 +邨 +鲮 +顔 +罱 +З +選 +話 +贏 +氪 +俵 +競 +瑩 +繡 +枱 +β +綉 +á +獅 +爾 +™ +麵 +戋 +淩 +徳 +個 +劇 +場 +務 +簡 +寵 +h +實 +膠 +轱 +圖 +築 +嘣 +樹 +㸃 +營 +耵 +孫 +饃 +鄺 +飯 +麯 +遠 +輸 +坫 +孃 +乚 +閃 +鏢 +㎡ +題 +廠 +關 +↑ +爺 +將 +軍 +連 +篦 +覌 +參 +箸 +- +窠 +棽 +寕 +夀 +爰 +歐 +呙 +閥 +頡 +熱 +雎 +垟 +裟 +凬 +勁 +帑 +馕 +夆 +疌 +枼 +馮 +貨 +蒤 +樸 +彧 +旸 +靜 +龢 +暢 +㐱 +鳥 +珺 +鏡 +灡 +爭 +堷 +廚 +Ó +騰 +診 +┅ +蘇 +褔 +凱 +頂 +豕 +亞 +帥 +嘬 +⊥ +仺 +桖 +複 +饣 +絡 +穂 +顏 +棟 +納 +▏ +濟 +親 +設 +計 +攵 +埌 +烺 +ò +頤 +燦 +蓮 +撻 +節 +講 +濱 +濃 +娽 +洳 +朿 +燈 +鈴 +護 +膚 +铔 +過 +補 +Z +U +5 +4 +坋 +闿 +䖝 +餘 +缐 +铞 +貿 +铪 +桼 +趙 +鍊 +[ +㐂 +垚 +菓 +揸 +捲 +鐘 +滏 +𣇉 +爍 +輪 +燜 +鴻 +鮮 +動 +鹞 +鷗 +丄 +慶 +鉌 +翥 +飮 +腸 +⇋ +漁 +覺 +來 +熘 +昴 +翏 +鲱 +圧 +鄉 +萭 +頔 +爐 +嫚 +г +貭 +類 +聯 +幛 +輕 +訓 +鑒 +夋 +锨 +芃 +珣 +䝉 +扙 +嵐 +銷 +處 +ㄱ +語 +誘 +苝 +歸 +儀 +燒 +楿 +內 +粢 +葒 +奧 +麥 +礻 +滿 +蠔 +穵 +瞭 +態 +鱬 +榞 +硂 +鄭 +黃 +煙 +祐 +奓 +逺 +* +瑄 +獲 +聞 +薦 +讀 +這 +樣 +決 +問 +啟 +們 +執 +説 +轉 +單 +隨 +唘 +帶 +倉 +庫 +還 +贈 +尙 +皺 +■ +餅 +產 +○ +∈ +報 +狀 +楓 +賠 +琯 +嗮 +禮 +` +傳 +> +≤ +嗞 +Φ +≥ +換 +咭 +∣ +↓ +曬 +ε +応 +寫 +″ +終 +様 +純 +費 +療 +聨 +凍 +壐 +郵 +ü +黒 +∫ +製 +塊 +調 +軽 +確 +撃 +級 +馴 +Ⅲ +涇 +繹 +數 +碼 +證 +狒 +処 +劑 +< +晧 +賀 +衆 +] +櫥 +兩 +陰 +絶 +對 +鯉 +憶 +◎ +p +e +Y +蕒 +煖 +頓 +測 +試 +鼽 +僑 +碩 +妝 +帯 +≈ +鐡 +舖 +權 +喫 +倆 +ˋ +該 +悅 +ā +俫 +. +f +s +b +m +k +g +u +j +貼 +淨 +濕 +針 +適 +備 +l +/ +給 +謢 +強 +觸 +衛 +與 +⊙ +$ +緯 +變 +⑴ +⑵ +⑶ +㎏ +殺 +∩ +幚 +─ +價 +▲ +離 +ú +ó +飄 +烏 +関 +閟 +﹝ +﹞ +邏 +輯 +鍵 +驗 +訣 +導 +歷 +屆 +層 +▼ +儱 +錄 +熳 +ē +艦 +吋 +錶 +辧 +飼 +顯 +④ +禦 +販 +気 +対 +枰 +閩 +紀 +幹 +瞓 +貊 +淚 +△ +眞 +墊 +Ω +獻 +褲 +縫 +緑 +亜 +鉅 +餠 +{ +} +◆ +蘆 +薈 +█ +◇ +溫 +彈 +晳 +粧 +犸 +穩 +訊 +崬 +凖 +熥 +П +舊 +條 +紋 +圍 +Ⅳ +筆 +尷 +難 +雜 +錯 +綁 +識 +頰 +鎖 +艶 +□ +殁 +殼 +⑧ +├ +▕ +鵬 +ǐ +ō +ǒ +糝 +綱 +▎ +μ +盜 +饅 +醬 +籤 +蓋 +釀 +鹽 +據 +à +ɡ +辦 +◥ +彐 +┌ +婦 +獸 +鲩 +伱 +ī +蒟 +蒻 +齊 +袆 +腦 +寧 +凈 +妳 +煥 +詢 +偽 +謹 +啫 +鯽 +騷 +鱸 +損 +傷 +鎻 +髮 +買 +冏 +儥 +両 +﹢ +∞ +載 +喰 +z +羙 +悵 +燙 +曉 +員 +組 +徹 +艷 +痠 +鋼 +鼙 +縮 +細 +嚒 +爯 +≠ +維 +" +鱻 +壇 +厍 +帰 +浥 +犇 +薡 +軎 +² +應 +醜 +刪 +緻 +鶴 +賜 +噁 +軌 +尨 +镔 +鷺 +槗 +彌 +葚 +濛 +請 +溇 +緹 +賢 +訪 +獴 +瑅 +資 +縤 +陣 +蕟 +栢 +韻 +祼 +恁 +伢 +謝 +劃 +涑 +總 +衖 +踺 +砋 +凉 +籃 +駿 +苼 +瘋 +昽 +紡 +驊 +腎 +﹗ +響 +杋 +剛 +嚴 +禪 +歓 +槍 +傘 +檸 +檫 +炣 +勢 +鏜 +鎢 +銑 +尐 +減 +奪 +惡 +θ +僮 +婭 +臘 +ū +ì +殻 +鉄 +∑ +蛲 +焼 +緖 +續 +紹 +懮 diff --git a/packages/paddlejs-examples/ocrXcx/pages/index/ppocr_keys_v1.js b/packages/paddlejs-examples/ocrXcx/pages/index/ppocr_keys_v1.js new file mode 100644 index 00000000..17052aca --- /dev/null +++ b/packages/paddlejs-examples/ocrXcx/pages/index/ppocr_keys_v1.js @@ -0,0 +1 @@ +export const character = ["'",'疗','绚','诚','娇','溜','题','贿','者','廖','更','纳','加','奉','公','一','就','汴','计','与','路','房','原','妇','2','0','8','-','7','其','>',':',']',',',',','骑','刈','全','消','昏','傈','安','久','钟','嗅','不','影','处','驽','蜿','资','关','椤','地','瘸','专','问','忖','票','嫉','炎','韵','要','月','田','节','陂','鄙','捌','备','拳','伺','眼','网','盎','大','傍','心','东','愉','汇','蹿','科','每','业','里','航','晏','字','平','录','先','1','3','彤','鲶','产','稍','督','腴','有','象','岳','注','绍','在','泺','文','定','核','名','水','过','理','让','偷','率','等','这','发','”','为','含','肥','酉','相','鄱','七','编','猥','锛','日','镀','蒂','掰','倒','辆','栾','栗','综','涩','州','雌','滑','馀','了','机','块','司','宰','甙','兴','矽','抚','保','用','沧','秩','如','收','息','滥','页','疑','埠','!','!','姥','异','橹','钇','向','下','跄','的','椴','沫','国','绥','獠','报','开','民','蜇','何','分','凇','长','讥','藏','掏','施','羽','中','讲','派','嘟','人','提','浼','间','世','而','古','多','倪','唇','饯','控','庚','首','赛','蜓','味','断','制','觉','技','替','艰','溢','潮','夕','钺','外','摘','枋','动','双','单','啮','户','枇','确','锦','曜','杜','或','能','效','霜','盒','然','侗','电','晁','放','步','鹃','新','杖','蜂','吒','濂','瞬','评','总','隍','对','独','合','也','是','府','青','天','诲','墙','组','滴','级','邀','帘','示','已','时','骸','仄','泅','和','遨','店','雇','疫','持','巍','踮','境','只','亨','目','鉴','崤','闲','体','泄','杂','作','般','轰','化','解','迂','诿','蛭','璀','腾','告','版','服','省','师','小','规','程','线','海','办','引','二','桧','牌','砺','洄','裴','修','图','痫','胡','许','犊','事','郛','基','柴','呼','食','研','奶','律','蛋','因','葆','察','戏','褒','戒','再','李','骁','工','貂','油','鹅','章','啄','休','场','给','睡','纷','豆','器','捎','说','敏','学','会','浒','设','诊','格','廓','查','来','霓','室','溆','¢','诡','寥','焕','舜','柒','狐','回','戟','砾','厄','实','翩','尿','五','入','径','惭','喹','股','宇','篝','|',';','美','期','云','九','祺','扮','靠','锝','槌','系','企','酰','阊','暂','蚕','忻','豁','本','羹','执','条','钦','H','獒','限','进','季','楦','于','芘','玖','铋','茯','未','答','粘','括','样','精','欠','矢','甥','帷','嵩','扣','令','仔','风','皈','行','支','部','蓉','刮','站','蜡','救','钊','汗','松','嫌','成','可','.','鹤','院','从','交','政','怕','活','调','球','局','验','髌','第','韫','谗','串','到','圆','年','米','/','*','友','忿','检','区','看','自','敢','刃','个','兹','弄','流','留','同','没','齿','星','聆','轼','湖','什','三','建','蛔','儿','椋','汕','震','颧','鲤','跟','力','情','璺','铨','陪','务','指','族','训','滦','鄣','濮','扒','商','箱','十','召','慷','辗','所','莞','管','护','臭','横','硒','嗓','接','侦','六','露','党','馋','驾','剖','高','侬','妪','幂','猗','绺','骐','央','酐','孝','筝','课','徇','缰','门','男','西','项','句','谙','瞒','秃','篇','教','碲','罚','声','呐','景','前','富','嘴','鳌','稀','免','朋','啬','睐','去','赈','鱼','住','肩','愕','速','旁','波','厅','健','茼','厥','鲟','谅','投','攸','炔','数','方','击','呋','谈','绩','别','愫','僚','躬','鹧','胪','炳','招','喇','膨','泵','蹦','毛','结','5','4','谱','识','陕','粽','婚','拟','构','且','搜','任','潘','比','郢','妨','醪','陀','桔','碘','扎','选','哈','骷','楷','亿','明','缆','脯','监','睫','逻','婵','共','赴','淝','凡','惦','及','达','揖','谩','澹','减','焰','蛹','番','祁','柏','员','禄','怡','峤','龙','白','叽','生','闯','起','细','装','谕','竟','聚','钙','上','导','渊','按','艾','辘','挡','耒','盹','饪','臀','记','邮','蕙','受','各','医','搂','普','滇','朗','茸','带','翻','酚','(','光','堤','墟','蔷','万','幻','〓','瑙','辈','昧','盏','亘','蛀','吉','铰','请','子','假','闻','税','井','诩','哨','嫂','好','面','琐','校','馊','鬣','缂','营','访','炖','占','农','缀','否','经','钚','棵','趟','张','亟','吏','茶','谨','捻','论','迸','堂','玉','信','吧','瞠','乡','姬','寺','咬','溏','苄','皿','意','赉','宝','尔','钰','艺','特','唳','踉','都','荣','倚','登','荐','丧','奇','涵','批','炭','近','符','傩','感','道','着','菊','虹','仲','众','懈','濯','颞','眺','南','释','北','缝','标','既','茗','整','撼','迤','贲','挎','耱','拒','某','妍','卫','哇','英','矶','藩','治','他','元','领','膜','遮','穗','蛾','飞','荒','棺','劫','么','市','火','温','拈','棚','洼','转','果','奕','卸','迪','伸','泳','斗','邡','侄','涨','屯','萋','胭','氡','崮','枞','惧','冒','彩','斜','手','豚','随','旭','淑','妞','形','菌','吲','沱','争','驯','歹','挟','兆','柱','传','至','包','内','响','临','红','功','弩','衡','寂','禁','老','棍','耆','渍','织','害','氵','渑','布','载','靥','嗬','虽','苹','咨','娄','库','雉','榜','帜','嘲','套','瑚','亲','簸','欧','边','6','腿','旮','抛','吹','瞳','得','镓','梗','厨','继','漾','愣','憨','士','策','窑','抑','躯','襟','脏','参','贸','言','干','绸','鳄','穷','藜','音','折','详',')','举','悍','甸','癌','黎','谴','死','罩','迁','寒','驷','袖','媒','蒋','掘','模','纠','恣','观','祖','蛆','碍','位','稿','主','澧','跌','筏','京','锏','帝','贴','证','糠','才','黄','鲸','略','炯','饱','四','出','园','犀','牧','容','汉','杆','浈','汰','瑷','造','虫','瘩','怪','驴','济','应','花','沣','谔','夙','旅','价','矿','以','考','s','u','呦','晒','巡','茅','准','肟','瓴','詹','仟','褂','译','桌','混','宁','怦','郑','抿','些','余','鄂','饴','攒','珑','群','阖','岔','琨','藓','预','环','洮','岌','宀','杲','瀵','最','常','囡','周','踊','女','鼓','袭','喉','简','范','薯','遐','疏','粱','黜','禧','法','箔','斤','遥','汝','奥','直','贞','撑','置','绱','集','她','馅','逗','钧','橱','魉','[','恙','躁','唤','9','旺','膘','待','脾','惫','购','吗','依','盲','度','瘿','蠖','俾','之','镗','拇','鲵','厝','簧','续','款','展','啃','表','剔','品','钻','腭','损','清','锶','统','涌','寸','滨','贪','链','吠','冈','伎','迥','咏','吁','览','防','迅','失','汾','阔','逵','绀','蔑','列','川','凭','努','熨','揪','利','俱','绉','抢','鸨','我','即','责','膦','易','毓','鹊','刹','玷','岿','空','嘞','绊','排','术','估','锷','违','们','苟','铜','播','肘','件','烫','审','鲂','广','像','铌','惰','铟','巳','胍','鲍','康','憧','色','恢','想','拷','尤','疳','知','S','Y','F','D','A','峄','裕','帮','握','搔','氐','氘','难','墒','沮','雨','叁','缥','悴','藐','湫','娟','苑','稠','颛','簇','后','阕','闭','蕤','缚','怎','佞','码','嘤','蔡','痊','舱','螯','帕','赫','昵','升','烬','岫','、','疵','蜻','髁','蕨','隶','烛','械','丑','盂','梁','强','鲛','由','拘','揉','劭','龟','撤','钩','呕','孛','费','妻','漂','求','阑','崖','秤','甘','通','深','补','赃','坎','床','啪','承','吼','量','暇','钼','烨','阂','擎','脱','逮','称','P','神','属','矗','华','届','狍','葑','汹','育','患','窒','蛰','佼','静','槎','运','鳗','庆','逝','曼','疱','克','代','官','此','麸','耧','蚌','晟','例','础','榛','副','测','唰','缢','迹','灬','霁','身','岁','赭','扛','又','菡','乜','雾','板','读','陷','徉','贯','郁','虑','变','钓','菜','圾','现','琢','式','乐','维','渔','浜','左','吾','脑','钡','警','T','啵','拴','偌','漱','湿','硕','止','骼','魄','积','燥','联','踢','玛','则','窿','见','振','畿','送','班','钽','您','赵','刨','印','讨','踝','籍','谡','舌','崧','汽','蔽','沪','酥','绒','怖','财','帖','肱','私','莎','勋','羔','霸','励','哼','帐','将','帅','渠','纪','婴','娩','岭','厘','滕','吻','伤','坝','冠','戊','隆','瘁','介','涧','物','黍','并','姗','奢','蹑','掣','垸','锴','命','箍','捉','病','辖','琰','眭','迩','艘','绌','繁','寅','若','毋','思','诉','类','诈','燮','轲','酮','狂','重','反','职','筱','县','委','磕','绣','奖','晋','濉','志','徽','肠','呈','獐','坻','口','片','碰','几','村','柿','劳','料','获','亩','惕','晕','厌','号','罢','池','正','鏖','煨','家','棕','复','尝','懋','蜥','锅','岛','扰','队','坠','瘾','钬','@','卧','疣','镇','譬','冰','彷','频','黯','据','垄','采','八','缪','瘫','型','熹','砰','楠','襁','箐','但','嘶','绳','啤','拍','盥','穆','傲','洗','盯','塘','怔','筛','丿','台','恒','喂','葛','永','¥','烟','酒','桦','书','砂','蚝','缉','态','瀚','袄','圳','轻','蛛','超','榧','遛','姒','奘','铮','右','荽','望','偻','卡','丶','氰','附','做','革','索','戚','坨','桷','唁','垅','榻','岐','偎','坛','莨','山','殊','微','骇','陈','爨','推','嗝','驹','澡','藁','呤','卤','嘻','糅','逛','侵','郓','酌','德','摇','※','鬃','被','慨','殡','羸','昌','泡','戛','鞋','河','宪','沿','玲','鲨','翅','哽','源','铅','语','照','邯','址','荃','佬','顺','鸳','町','霭','睾','瓢','夸','椁','晓','酿','痈','咔','侏','券','噎','湍','签','嚷','离','午','尚','社','锤','背','孟','使','浪','缦','潍','鞅','军','姹','驶','笑','鳟','鲁','》','孽','钜','绿','洱','礴','焯','椰','颖','囔','乌','孔','巴','互','性','椽','哞','聘','昨','早','暮','胶','炀','隧','低','彗','昝','铁','呓','氽','藉','喔','癖','瑗','姨','权','胱','韦','堑','蜜','酋','楝','砝','毁','靓','歙','锲','究','屋','喳','骨','辨','碑','武','鸠','宫','辜','烊','适','坡','殃','培','佩','供','走','蜈','迟','翼','况','姣','凛','浔','吃','飘','债','犟','金','促','苛','崇','坂','莳','畔','绂','兵','蠕','斋','根','砍','亢','欢','恬','崔','剁','餐','榫','快','扶','‖','濒','缠','鳜','当','彭','驭','浦','篮','昀','锆','秸','钳','弋','娣','瞑','夷','龛','苫','拱','致','%','嵊','障','隐','弑','初','娓','抉','汩','累','蓖','"','唬','助','苓','昙','押','毙','破','城','郧','逢','嚏','獭','瞻','溱','婿','赊','跨','恼','璧','萃','姻','貉','灵','炉','密','氛','陶','砸','谬','衔','点','琛','沛','枳','层','岱','诺','脍','榈','埂','征','冷','裁','打','蹴','素','瘘','逞','蛐','聊','激','腱','萘','踵','飒','蓟','吆','取','咙','簋','涓','矩','曝','挺','揣','座','你','史','舵','焱','尘','苏','笈','脚','溉','榨','诵','樊','邓','焊','义','庶','儋','蟋','蒲','赦','呷','杞','诠','豪','还','试','颓','茉','太','除','紫','逃','痴','草','充','鳕','珉','祗','墨','渭','烩','蘸','慕','璇','镶','穴','嵘','恶','骂','险','绋','幕','碉','肺','戳','刘','潞','秣','纾','潜','銮','洛','须','罘','销','瘪','汞','兮','屉','r','林','厕','质','探','划','狸','殚','善','煊','烹','〒','锈','逯','宸','辍','泱','柚','袍','远','蹋','嶙','绝','峥','娥','缍','雀','徵','认','镱','谷','=','贩','勉','撩','鄯','斐','洋','非','祚','泾','诒','饿','撬','威','晷','搭','芍','锥','笺','蓦','候','琊','档','礁','沼','卵','荠','忑','朝','凹','瑞','头','仪','弧','孵','畏','铆','突','衲','车','浩','气','茂','悖','厢','枕','酝','戴','湾','邹','飚','攘','锂','写','宵','翁','岷','无','喜','丈','挑','嗟','绛','殉','议','槽','具','醇','淞','笃','郴','阅','饼','底','壕','砚','弈','询','缕','庹','翟','零','筷','暨','舟','闺','甯','撞','麂','茌','蔼','很','珲','捕','棠','角','阉','媛','娲','诽','剿','尉','爵','睬','韩','诰','匣','危','糍','镯','立','浏','阳','少','盆','舔','擘','匪','申','尬','铣','旯','抖','赘','瓯','居','ˇ','哮','游','锭','茏','歌','坏','甚','秒','舞','沙','仗','劲','潺','阿','燧','郭','嗖','霏','忠','材','奂','耐','跺','砀','输','岖','媳','氟','极','摆','灿','今','扔','腻','枝','奎','药','熄','吨','话','q','额','慑','嘌','协','喀','壳','埭','视','著','於','愧','陲','翌','峁','颅','佛','腹','聋','侯','咎','叟','秀','颇','存','较','罪','哄','岗','扫','栏','钾','羌','己','璨','枭','霉','煌','涸','衿','键','镝','益','岢','奏','连','夯','睿','冥','均','糖','狞','蹊','稻','爸','刿','胥','煜','丽','肿','璃','掸','跚','灾','垂','樾','濑','乎','莲','窄','犹','撮','战','馄','软','络','显','鸢','胸','宾','妲','恕','埔','蝌','份','遇','巧','瞟','粒','恰','剥','桡','博','讯','凯','堇','阶','滤','卖','斌','骚','彬','兑','磺','樱','舷','两','娱','福','仃','差','找','桁','÷','净','把','阴','污','戬','雷','碓','蕲','楚','罡','焖','抽','妫','咒','仑','闱','尽','邑','菁','爱','贷','沥','鞑','牡','嗉','崴','骤','塌','嗦','订','拮','滓','捡','锻','次','坪','杩','臃','箬','融','珂','鹗','宗','枚','降','鸬','妯','阄','堰','盐','毅','必','杨','崃','俺','甬','状','莘','货','耸','菱','腼','铸','唏','痤','孚','澳','懒','溅','翘','疙','杷','淼','缙','骰','喊','悉','砻','坷','艇','赁','界','谤','纣','宴','晃','茹','归','饭','梢','铡','街','抄','肼','鬟','苯','颂','撷','戈','炒','咆','茭','瘙','负','仰','客','琉','铢','封','卑','珥','椿','镧','窨','鬲','寿','御','袤','铃','萎','砖','餮','脒','裳','肪','孕','嫣','馗','嵇','恳','氯','江','石','褶','冢','祸','阻','狈','羞','银','靳','透','咳','叼','敷','芷','啥','它','瓤','兰','痘','懊','逑','肌','往','捺','坊','甩','呻','〃','沦','忘','膻','祟','菅','剧','崆','智','坯','臧','霍','墅','攻','眯','倘','拢','骠','铐','庭','岙','瓠','′','缺','泥','迢','捶','?','?','郏','喙','掷','沌','纯','秘','种','听','绘','固','螨','团','香','盗','妒','埚','蓝','拖','旱','荞','铀','血','遏','汲','辰','叩','拽','幅','硬','惶','桀','漠','措','泼','唑','齐','肾','念','酱','虚','屁','耶','旗','砦','闵','婉','馆','拭','绅','韧','忏','窝','醋','葺','顾','辞','倜','堆','辋','逆','玟','贱','疾','董','惘','倌','锕','淘','嘀','莽','俭','笏','绑','鲷','杈','择','蟀','粥','嗯','驰','逾','案','谪','褓','胫','哩','昕','颚','鲢','绠','躺','鹄','崂','儒','俨','丝','尕','泌','啊','萸','彰','幺','吟','骄','苣','弦','脊','瑰','〈','诛','镁','析','闪','剪','侧','哟','框','螃','守','嬗','燕','狭','铈','缮','概','迳','痧','鲲','俯','售','笼','痣','扉','挖','满','咋','援','邱','扇','歪','便','玑','绦','峡','蛇','叨','〖','泽','胃','斓','喋','怂','坟','猪','该','蚬','炕','弥','赞','棣','晔','娠','挲','狡','创','疖','铕','镭','稷','挫','弭','啾','翔','粉','履','苘','哦','楼','秕','铂','土','锣','瘟','挣','栉','习','享','桢','袅','磨','桂','谦','延','坚','蔚','噗','署','谟','猬','钎','恐','嬉','雒','倦','衅','亏','璩','睹','刻','殿','王','算','雕','麻','丘','柯','骆','丸','塍','谚','添','鲈','垓','桎','蚯','芥','予','飕','镦','谌','窗','醚','菀','亮','搪','莺','蒿','羁','足','J','真','轶','悬','衷','靛','翊','掩','哒','炅','掐','冼','妮','l','谐','稚','荆','擒','犯','陵','虏','浓','崽','刍','陌','傻','孜','千','靖','演','矜','钕','煽','杰','酗','渗','伞','栋','俗','泫','戍','罕','沾','疽','灏','煦','芬','磴','叱','阱','榉','湃','蜀','叉','醒','彪','租','郡','篷','屎','良','垢','隗','弱','陨','峪','砷','掴','颁','胎','雯','绵','贬','沐','撵','隘','篙','暖','曹','陡','栓','填','臼','彦','瓶','琪','潼','哪','鸡','摩','啦','俟','锋','域','耻','蔫','疯','纹','撇','毒','绶','痛','酯','忍','爪','赳','歆','嘹','辕','烈','册','朴','钱','吮','毯','癜','娃','谀','邵','厮','炽','璞','邃','丐','追','词','瓒','忆','轧','芫','谯','喷','弟','半','冕','裙','掖','墉','绮','寝','苔','势','顷','褥','切','衮','君','佳','嫒','蚩','霞','佚','洙','逊','镖','暹','唛','&','殒','顶','碗','獗','轭','铺','蛊','废','恹','汨','崩','珍','那','杵','曲','纺','夏','薰','傀','闳','淬','姘','舀','拧','卷','楂','恍','讪','厩','寮','篪','赓','乘','灭','盅','鞣','沟','慎','挂','饺','鼾','杳','树','缨','丛','絮','娌','臻','嗳','篡','侩','述','衰','矛','圈','蚜','匕','筹','匿','濞','晨','叶','骋','郝','挚','蚴','滞','增','侍','描','瓣','吖','嫦','蟒','匾','圣','赌','毡','癞','恺','百','曳','需','篓','肮','庖','帏','卿','驿','遗','蹬','鬓','骡','歉','芎','胳','屐','禽','烦','晌','寄','媾','狄','翡','苒','船','廉','终','痞','殇','々','畦','饶','改','拆','悻','萄','£','瓿','乃','訾','桅','匮','溧','拥','纱','铍','骗','蕃','龋','缬','父','佐','疚','栎','醍','掳','蓄','x','惆','颜','鲆','榆','〔','猎','敌','暴','谥','鲫','贾','罗','玻','缄','扦','芪','癣','落','徒','臾','恿','猩','托','邴','肄','牵','春','陛','耀','刊','拓','蓓','邳','堕','寇','枉','淌','啡','湄','兽','酷','萼','碚','濠','萤','夹','旬','戮','梭','琥','椭','昔','勺','蜊','绐','晚','孺','僵','宣','摄','冽','旨','萌','忙','蚤','眉','噼','蟑','付','契','瓜','悼','颡','壁','曾','窕','颢','澎','仿','俑','浑','嵌','浣','乍','碌','褪','乱','蔟','隙','玩','剐','葫','箫','纲','围','伐','决','伙','漩','瑟','刑','肓','镳','缓','蹭','氨','皓','典','畲','坍','铑','檐','塑','洞','倬','储','胴','淳','戾','吐','灼','惺','妙','毕','珐','缈','虱','盖','羰','鸿','磅','谓','髅','娴','苴','唷','蚣','霹','抨','贤','唠','犬','誓','逍','庠','逼','麓','籼','釉','呜','碧','秧','氩','摔','霄','穸','纨','辟','妈','映','完','牛','缴','嗷','炊','恩','荔','茆','掉','紊','慌','莓','羟','阙','萁','磐','另','蕹','辱','鳐','湮','吡','吩','唐','睦','垠','舒','圜','冗','瞿','溺','芾','囱','匠','僳','汐','菩','饬','漓','黑','霰','浸','濡','窥','毂','蒡','兢','驻','鹉','芮','诙','迫','雳','厂','忐','臆','猴','鸣','蚪','栈','箕','羡','渐','莆','捍','眈','哓','趴','蹼','埕','嚣','骛','宏','淄','斑','噜','严','瑛','垃','椎','诱','压','庾','绞','焘','廿','抡','迄','棘','夫','纬','锹','眨','瞌','侠','脐','竞','瀑','孳','骧','遁','姜','颦','荪','滚','萦','伪','逸','粳','爬','锁','矣','役','趣','洒','颔','诏','逐','奸','甭','惠','攀','蹄','泛','尼','拼','阮','鹰','亚','颈','惑','勒','〉','际','肛','爷','刚','钨','丰','养','冶','鲽','辉','蔻','画','覆','皴','妊','麦','返','醉','皂','擀','〗','酶','凑','粹','悟','诀','硖','港','卜','z','杀','涕','±','舍','铠','抵','弛','段','敝','镐','奠','拂','轴','跛','袱','e','t','沉','菇','俎','薪','峦','秭','蟹','历','盟','菠','寡','液','肢','喻','染','裱','悱','抱','氙','赤','捅','猛','跑','氮','谣','仁','尺','辊','窍','烙','衍','架','擦','倏','璐','瑁','币','楞','胖','夔','趸','邛','惴','饕','虔','蝎','§','哉','贝','宽','辫','炮','扩','饲','籽','魏','菟','锰','伍','猝','末','琳','哚','蛎','邂','呀','姿','鄞','却','歧','仙','恸','椐','森','牒','寤','袒','婆','虢','雅','钉','朵','贼','欲','苞','寰','故','龚','坭','嘘','咫','礼','硷','兀','睢','汶','’','铲','烧','绕','诃','浃','钿','哺','柜','讼','颊','璁','腔','洽','咐','脲','簌','筠','镣','玮','鞠','谁','兼','姆','挥','梯','蝴','谘','漕','刷','躏','宦','弼','b','垌','劈','麟','莉','揭','笙','渎','仕','嗤','仓','配','怏','抬','错','泯','镊','孰','猿','邪','仍','秋','鼬','壹','歇','吵','炼','<','尧','射','柬','廷','胧','霾','凳','隋','肚','浮','梦','祥','株','堵','退','L','鹫','跎','凶','毽','荟','炫','栩','玳','甜','沂','鹿','顽','伯','爹','赔','蛴','徐','匡','欣','狰','缸','雹','蟆','疤','默','沤','啜','痂','衣','禅','w','i','h','辽','葳','黝','钗','停','沽','棒','馨','颌','肉','吴','硫','悯','劾','娈','马','啧','吊','悌','镑','峭','帆','瀣','涉','咸','疸','滋','泣','翦','拙','癸','钥','蜒','+','尾','庄','凝','泉','婢','渴','谊','乞','陆','锉','糊','鸦','淮','I','B','N','晦','弗','乔','庥','葡','尻','席','橡','傣','渣','拿','惩','麋','斛','缃','矮','蛏','岘','鸽','姐','膏','催','奔','镒','喱','蠡','摧','钯','胤','柠','拐','璋','鸥','卢','荡','倾','^','_','珀','逄','萧','塾','掇','贮','笆','聂','圃','冲','嵬','M','滔','笕','值','炙','偶','蜱','搐','梆','汪','蔬','腑','鸯','蹇','敞','绯','仨','祯','谆','梧','糗','鑫','啸','豺','囹','猾','巢','柄','瀛','筑','踌','沭','暗','苁','鱿','蹉','脂','蘖','牢','热','木','吸','溃','宠','序','泞','偿','拜','檩','厚','朐','毗','螳','吞','媚','朽','担','蝗','橘','畴','祈','糟','盱','隼','郜','惜','珠','裨','铵','焙','琚','唯','咚','噪','骊','丫','滢','勤','棉','呸','咣','淀','隔','蕾','窈','饨','挨','煅','短','匙','粕','镜','赣','撕','墩','酬','馁','豌','颐','抗','酣','氓','佑','搁','哭','递','耷','涡','桃','贻','碣','截','瘦','昭','镌','蔓','氚','甲','猕','蕴','蓬','散','拾','纛','狼','猷','铎','埋','旖','矾','讳','囊','糜','迈','粟','蚂','紧','鲳','瘢','栽','稼','羊','锄','斟','睁','桥','瓮','蹙','祉','醺','鼻','昱','剃','跳','篱','跷','蒜','翎','宅','晖','嗑','壑','峻','癫','屏','狠','陋','袜','途','憎','祀','莹','滟','佶','溥','臣','约','盛','峰','磁','慵','婪','拦','莅','朕','鹦','粲','裤','哎','疡','嫖','琵','窟','堪','谛','嘉','儡','鳝','斩','郾','驸','酊','妄','胜','贺','徙','傅','噌','钢','栅','庇','恋','匝','巯','邈','尸','锚','粗','佟','蛟','薹','纵','蚊','郅','绢','锐','苗','俞','篆','淆','膀','鲜','煎','诶','秽','寻','涮','刺','怀','噶','巨','褰','魅','灶','灌','桉','藕','谜','舸','薄','搀','恽','借','牯','痉','渥','愿','亓','耘','杠','柩','锔','蚶','钣','珈','喘','蹒','幽','赐','稗','晤','莱','泔','扯','肯','菪','裆','腩','豉','疆','骜','腐','倭','珏','唔','粮','亡','润','慰','伽','橄','玄','誉','醐','胆','龊','粼','塬','陇','彼','削','嗣','绾','芽','妗','垭','瘴','爽','薏','寨','龈','泠','弹','赢','漪','猫','嘧','涂','恤','圭','茧','烽','屑','痕','巾','赖','荸','凰','腮','畈','亵','蹲','偃','苇','澜','艮','换','骺','烘','苕','梓','颉','肇','哗','悄','氤','涠','葬','屠','鹭','植','竺','佯','诣','鲇','瘀','鲅','邦','移','滁','冯','耕','癔','戌','茬','沁','巩','悠','湘','洪','痹','锟','循','谋','腕','鳃','钠','捞','焉','迎','碱','伫','急','榷','奈','邝','卯','辄','皲','卟','醛','畹','忧','稳','雄','昼','缩','阈','睑','扌','耗','曦','涅','捏','瞧','邕','淖','漉','铝','耦','禹','湛','喽','莼','琅','诸','苎','纂','硅','始','嗨','傥','燃','臂','赅','嘈','呆','贵','屹','壮','肋','亍','蚀','卅','豹','腆','邬','迭','浊','}','童','螂','捐','圩','勐','触','寞','汊','壤','荫','膺','渌','芳','懿','遴','螈','泰','蓼','蛤','茜','舅','枫','朔','膝','眙','避','梅','判','鹜','璜','牍','缅','垫','藻','黔','侥','惚','懂','踩','腰','腈','札','丞','唾','慈','顿','摹','荻','琬','~','斧','沈','滂','胁','胀','幄','莜','Z','匀','鄄','掌','绰','茎','焚','赋','萱','谑','汁','铒','瞎','夺','蜗','野','娆','冀','弯','篁','懵','灞','隽','芡','脘','俐','辩','芯','掺','喏','膈','蝈','觐','悚','踹','蔗','熠','鼠','呵','抓','橼','峨','畜','缔','禾','崭','弃','熊','摒','凸','拗','穹','蒙','抒','祛','劝','闫','扳','阵','醌','踪','喵','侣','搬','仅','荧','赎','蝾','琦','买','婧','瞄','寓','皎','冻','赝','箩','莫','瞰','郊','笫','姝','筒','枪','遣','煸','袋','舆','痱','涛','母','〇','启','践','耙','绲','盘','遂','昊','搞','槿','诬','纰','泓','惨','檬','亻','越','C','o','憩','熵','祷','钒','暧','塔','阗','胰','咄','娶','魔','琶','钞','邻','扬','杉','殴','咽','弓','〆','髻','】','吭','揽','霆','拄','殖','脆','彻','岩','芝','勃','辣','剌','钝','嘎','甄','佘','皖','伦','授','徕','憔','挪','皇','庞','稔','芜','踏','溴','兖','卒','擢','饥','鳞','煲','‰','账','颗','叻','斯','捧','鳍','琮','讹','蛙','纽','谭','酸','兔','莒','睇','伟','觑','羲','嗜','宜','褐','旎','辛','卦','诘','筋','鎏','溪','挛','熔','阜','晰','鳅','丢','奚','灸','呱','献','陉','黛','鸪','甾','萨','疮','拯','洲','疹','辑','叙','恻','谒','允','柔','烂','氏','逅','漆','拎','惋','扈','湟','纭','啕','掬','擞','哥','忽','涤','鸵','靡','郗','瓷','扁','廊','怨','雏','钮','敦','E','懦','憋','汀','拚','啉','腌','岸','f','痼','瞅','尊','咀','眩','飙','忌','仝','迦','熬','毫','胯','篑','茄','腺','凄','舛','碴','锵','诧','羯','後','漏','汤','宓','仞','蚁','壶','谰','皑','铄','棰','罔','辅','晶','苦','牟','闽','\\','烃','饮','聿','丙','蛳','朱','煤','涔','鳖','犁','罐','荼','砒','淦','妤','黏','戎','孑','婕','瑾','戢','钵','枣','捋','砥','衩','狙','桠','稣','阎','肃','梏','诫','孪','昶','婊','衫','嗔','侃','塞','蜃','樵','峒','貌','屿','欺','缫','阐','栖','诟','珞','荭','吝','萍','嗽','恂','啻','蜴','磬','峋','俸','豫','谎','徊','镍','韬','魇','晴','U','囟','猜','蛮','坐','囿','伴','亭','肝','佗','蝠','妃','胞','滩','榴','氖','垩','苋','砣','扪','馏','姓','轩','厉','夥','侈','禀','垒','岑','赏','钛','辐','痔','披','纸','碳','“','坞','蠓','挤','荥','沅','悔','铧','帼','蒌','蝇','a','p','y','n','g','哀','浆','瑶','凿','桶','馈','皮','奴','苜','佤','伶','晗','铱','炬','优','弊','氢','恃','甫','攥','端','锌','灰','稹','炝','曙','邋','亥','眶','碾','拉','萝','绔','捷','浍','腋','姑','菖','凌','涞','麽','锢','桨','潢','绎','镰','殆','锑','渝','铬','困','绽','觎','匈','糙','暑','裹','鸟','盔','肽','迷','綦','『','亳','佝','俘','钴','觇','骥','仆','疝','跪','婶','郯','瀹','唉','脖','踞','针','晾','忒','扼','瞩','叛','椒','疟','嗡','邗','肆','跆','玫','忡','捣','咧','唆','艄','蘑','潦','笛','阚','沸','泻','掊','菽','贫','斥','髂','孢','镂','赂','麝','鸾','屡','衬','苷','恪','叠','希','粤','爻','喝','茫','惬','郸','绻','庸','撅','碟','宄','妹','膛','叮','饵','崛','嗲','椅','冤','搅','咕','敛','尹','垦','闷','蝉','霎','勰','败','蓑','泸','肤','鹌','幌','焦','浠','鞍','刁','舰','乙','竿','裔','。','茵','函','伊','兄','丨','娜','匍','謇','莪','宥','似','蝽','翳','酪','翠','粑','薇','祢','骏','赠','叫','Q','噤','噻','竖','芗','莠','潭','俊','羿','耜','O','郫','趁','嗪','囚','蹶','芒','洁','笋','鹑','敲','硝','啶','堡','渲','揩','』','携','宿','遒','颍','扭','棱','割','萜','蔸','葵','琴','捂','饰','衙','耿','掠','募','岂','窖','涟','蔺','瘤','柞','瞪','怜','匹','距','楔','炜','哆','秦','缎','幼','茁','绪','痨','恨','楸','娅','瓦','桩','雪','嬴','伏','榔','妥','铿','拌','眠','雍','缇','‘','卓','搓','哌','觞','噩','屈','哧','髓','咦','巅','娑','侑','淫','膳','祝','勾','姊','莴','胄','疃','薛','蜷','胛','巷','芙','芋','熙','闰','勿','窃','狱','剩','钏','幢','陟','铛','慧','靴','耍','k','浙','浇','飨','惟','绗','祜','澈','啼','咪','磷','摞','诅','郦','抹','跃','壬','吕','肖','琏','颤','尴','剡','抠','凋','赚','泊','津','宕','殷','倔','氲','漫','邺','涎','怠','$','垮','荬','遵','俏','叹','噢','饽','蜘','孙','筵','疼','鞭','羧','牦','箭','潴','c','眸','祭','髯','啖','坳','愁','芩','驮','倡','巽','穰','沃','胚','怒','凤','槛','剂','趵','嫁','v','邢','灯','鄢','桐','睽','檗','锯','槟','婷','嵋','圻','诗','蕈','颠','遭','痢','芸','怯','馥','竭','锗','徜','恭','遍','籁','剑','嘱','苡','龄','僧','桑','潸','弘','澶','楹','悲','讫','愤','腥','悸','谍','椹','呢','桓','葭','攫','阀','翰','躲','敖','柑','郎','笨','橇','呃','魁','燎','脓','葩','磋','垛','玺','狮','沓','砜','蕊','锺','罹','蕉','翱','虐','闾','巫','旦','茱','嬷','枯','鹏','贡','芹','汛','矫','绁','拣','禺','佃','讣','舫','惯','乳','趋','疲','挽','岚','虾','衾','蠹','蹂','飓','氦','铖','孩','稞','瑜','壅','掀','勘','妓','畅','髋','W','庐','牲','蓿','榕','练','垣','唱','邸','菲','昆','婺','穿','绡','麒','蚱','掂','愚','泷','涪','漳','妩','娉','榄','讷','觅','旧','藤','煮','呛','柳','腓','叭','庵','烷','阡','罂','蜕','擂','猖','咿','媲','脉','【','沏','貅','黠','熏','哲','烁','坦','酵','兜','×','潇','撒','剽','珩','圹','乾','摸','樟','帽','嗒','襄','魂','轿','憬','锡','〕','喃','皆','咖','隅','脸','残','泮','袂','鹂','珊','囤','捆','咤','误','徨','闹','淙','芊','淋','怆','囗','拨','梳','渤','R','G','绨','蚓','婀','幡','狩','麾','谢','唢','裸','旌','伉','纶','裂','驳','砼','咛','澄','樨','蹈','宙','澍','倍','貔','操','勇','蟠','摈','砧','虬','够','缁','悦','藿','撸','艹','摁','淹','豇','虎','榭','ˉ','吱','d','°','喧','荀','踱','侮','奋','偕','饷','犍','惮','坑','璎','徘','宛','妆','袈','倩','窦','昂','荏','乖','K','怅','撰','鳙','牙','袁','酞','X','痿','琼','闸','雁','趾','荚','虻','涝','《','杏','韭','偈','烤','绫','鞘','卉','症','遢','蓥','诋','杭','荨','匆','竣','簪','辙','敕','虞','丹','缭','咩','黟','m','淤','瑕','咂','铉','硼','茨','嶂','痒','畸','敬','涿','粪','窘','熟','叔','嫔','盾','忱','裘','憾','梵','赡','珙','咯','娘','庙','溯','胺','葱','痪','摊','荷','卞','乒','髦','寐','铭','坩','胗','枷','爆','溟','嚼','羚','砬','轨','惊','挠','罄','竽','菏','氧','浅','楣','盼','枢','炸','阆','杯','谏','噬','淇','渺','俪','秆','墓','泪','跻','砌','痰','垡','渡','耽','釜','讶','鳎','煞','呗','韶','舶','绷','鹳','缜','旷','铊','皱','龌','檀','霖','奄','槐','艳','蝶','旋','哝','赶','骞','蚧','腊','盈','丁','`','蜚','矸','蝙','睨','嚓','僻','鬼','醴','夜','彝','磊','笔','拔','栀','糕','厦','邰','纫','逭','纤','眦','膊','馍','躇','烯','蘼','冬','诤','暄','骶','哑','瘠','」','臊','丕','愈','咱','螺','擅','跋','搏','硪','谄','笠','淡','嘿','骅','谧','鼎','皋','姚','歼','蠢','驼','耳','胬','挝','涯','狗','蒽','孓','犷','凉','芦','箴','铤','孤','嘛','坤','V','茴','朦','挞','尖','橙','诞','搴','碇','洵','浚','帚','蜍','漯','柘','嚎','讽','芭','荤','咻','祠','秉','跖','埃','吓','糯','眷','馒','惹','娼','鲑','嫩','讴','轮','瞥','靶','褚','乏','缤','宋','帧','删','驱','碎','扑','俩','俄','偏','涣','竹','噱','皙','佰','渚','唧','斡','#','镉','刀','崎','筐','佣','夭','贰','肴','峙','哔','艿','匐','牺','镛','缘','仡','嫡','劣','枸','堀','梨','簿','鸭','蒸','亦','稽','浴','{','衢','束','槲','j','阁','揍','疥','棋','潋','聪','窜','乓','睛','插','冉','阪','苍','搽','「','蟾','螟','幸','仇','樽','撂','慢','跤','幔','俚','淅','覃','觊','溶','妖','帛','侨','曰','妾','泗','·',':','瀘','風','Ë','(',')','∶','紅','紗','瑭','雲','頭','鶏','財','許','•','¥','樂','焗','麗','—',';','滙','東','榮','繪','興','…','門','業','π','楊','國','顧','é','盤','寳','Λ','龍','鳳','島','誌','緣','結','銭','萬','勝','祎','璟','優','歡','臨','時','購','=','★','藍','昇','鐵','觀','勅','農','聲','畫','兿','術','發','劉','記','專','耑','園','書','壴','種','Ο','●','褀','號','銀','匯','敟','锘','葉','橪','廣','進','蒄','鑽','阝','祙','貢','鍋','豊','夬','喆','團','閣','開','燁','賓','館','酡','沔','順','+','硚','劵','饸','陽','車','湓','復','萊','氣','軒','華','堃','迮','纟','戶','馬','學','裡','電','嶽','獨','マ','シ','サ','ジ','燘','袪','環','❤','臺','灣','専','賣','孖','聖','攝','線','▪','α','傢','俬','夢','達','莊','喬','貝','薩','劍','羅','壓','棛','饦','尃','璈','囍','醫','G','I','A','#','N','鷄','髙','嬰','啓','約','隹','潔','賴','藝','~','寶','籣','麺',' ','嶺','√','義','網','峩','長','∧','魚','機','構','②','鳯','偉','L','B','㙟','畵','鴿',''','詩','溝','嚞','屌','藔','佧','玥','蘭','織','1','3','9','0','7','點','砭','鴨','鋪','銘','廳','弍','‧','創','湯','坶','℃','卩','骝','&','烜','荘','當','潤','扞','係','懷','碶','钅','蚨','讠','☆','叢','爲','埗','涫','塗','→','楽','現','鯨','愛','瑪','鈺','忄','悶','藥','飾','樓','視','孬','ㆍ','燚','苪','師','①','丼','锽','│','韓','標','è','兒','閏','匋','張','漢','Ü','髪','會','閑','檔','習','裝','の','峯','菘','輝','И','雞','釣','億','浐','K','O','R','8','H','E','P','T','W','D','S','C','M','F','姌','饹','»','晞','廰','ä','嵯','鷹','負','飲','絲','冚','楗','澤','綫','區','❋','←','質','靑','揚','③','滬','統','産','協','﹑','乸','畐','經','運','際','洺','岽','為','粵','諾','崋','豐','碁','ɔ','V','2','6','齋','誠','訂','´','勑','雙','陳','無','í','泩','媄','夌','刂','i','c','t','o','r','a','嘢','耄','燴','暃','壽','媽','靈','抻','體','唻','É','冮','甹','鎮','錦','ʌ','蜛','蠄','尓','駕','戀','飬','逹','倫','貴','極','Я','Й','寬','磚','嶪','郎','職','|','間','n','d','剎','伈','課','飛','橋','瘊','№','譜','骓','圗','滘','縣','粿','咅','養','濤','彳','®','%','Ⅱ','啰','㴪','見','矞','薬','糁','邨','鲮','顔','罱','З','選','話','贏','氪','俵','競','瑩','繡','枱','β','綉','á','獅','爾','™','麵','戋','淩','徳','個','劇','場','務','簡','寵','h','實','膠','轱','圖','築','嘣','樹','㸃','營','耵','孫','饃','鄺','飯','麯','遠','輸','坫','孃','乚','閃','鏢','㎡','題','廠','關','↑','爺','將','軍','連','篦','覌','參','箸','-','窠','棽','寕','夀','爰','歐','呙','閥','頡','熱','雎','垟','裟','凬','勁','帑','馕','夆','疌','枼','馮','貨','蒤','樸','彧','旸','靜','龢','暢','㐱','鳥','珺','鏡','灡','爭','堷','廚','Ó','騰','診','┅','蘇','褔','凱','頂','豕','亞','帥','嘬','⊥','仺','桖','複','饣','絡','穂','顏','棟','納','▏','濟','親','設','計','攵','埌','烺','ò','頤','燦','蓮','撻','節','講','濱','濃','娽','洳','朿','燈','鈴','護','膚','铔','過','補','Z','U','5','4','坋','闿','䖝','餘','缐','铞','貿','铪','桼','趙','鍊','[','㐂','垚','菓','揸','捲','鐘','滏','𣇉','爍','輪','燜','鴻','鮮','動','鹞','鷗','丄','慶','鉌','翥','飮','腸','⇋','漁','覺','來','熘','昴','翏','鲱','圧','鄉','萭','頔','爐','嫚','г','貭','類','聯','幛','輕','訓','鑒','夋','锨','芃','珣','䝉','扙','嵐','銷','處','ㄱ','語','誘','苝','歸','儀','燒','楿','內','粢','葒','奧','麥','礻','滿','蠔','穵','瞭','態','鱬','榞','硂','鄭','黃','煙','祐','奓','逺','*','瑄','獲','聞','薦','讀','這','樣','決','問','啟','們','執','説','轉','單','隨','唘','帶','倉','庫','還','贈','尙','皺','■','餅','產','○','∈','報','狀','楓','賠','琯','嗮','禮','`','傳','>','≤','嗞','Φ','≥','換','咭','∣','↓','曬','ε','応','寫','″','終','様','純','費','療','聨','凍','壐','郵','ü','黒','∫','製','塊','調','軽','確','撃','級','馴','Ⅲ','涇','繹','數','碼','證','狒','処','劑','<','晧','賀','衆',']','櫥','兩','陰','絶','對','鯉','憶','◎','p','e','Y','蕒','煖','頓','測','試','鼽','僑','碩','妝','帯','≈','鐡','舖','權','喫','倆','ˋ','該','悅','ā','俫','.','f','s','b','m','k','g','u','j','貼','淨','濕','針','適','備','l','/','給','謢','強','觸','衛','與','⊙','$','緯','變','⑴','⑵','⑶','㎏','殺','∩','幚','─','價','▲','離','ú','ó','飄','烏','関','閟','﹝','﹞','邏','輯','鍵','驗','訣','導','歷','屆','層','▼','儱','錄','熳','ē','艦','吋','錶','辧','飼','顯','④','禦','販','気','対','枰','閩','紀','幹','瞓','貊','淚','△','眞','墊','Ω','獻','褲','縫','緑','亜','鉅','餠','{','}','◆','蘆','薈','█','◇','溫','彈','晳','粧','犸','穩','訊','崬','凖','熥','П','舊','條','紋','圍','Ⅳ','筆','尷','難','雜','錯','綁','識','頰','鎖','艶','□','殁','殼','⑧','├','▕','鵬','ǐ','ō','ǒ','糝','綱','▎','μ','盜','饅','醬','籤','蓋','釀','鹽','據','à','ɡ','辦','◥','彐','┌','婦','獸','鲩','伱','ī','蒟','蒻','齊','袆','腦','寧','凈','妳','煥','詢','偽','謹','啫','鯽','騷','鱸','損','傷','鎻','髮','買','冏','儥','両','﹢','∞','載','喰','z','羙','悵','燙','曉','員','組','徹','艷','痠','鋼','鼙','縮','細','嚒','爯','≠','維','"','鱻','壇','厍','帰','浥','犇','薡','軎','²','應','醜','刪','緻','鶴','賜','噁','軌','尨','镔','鷺','槗','彌','葚','濛','請','溇','緹','賢','訪','獴','瑅','資','縤','陣','蕟','栢','韻','祼','恁','伢','謝','劃','涑','總','衖','踺','砋','凉','籃','駿','苼','瘋','昽','紡','驊','腎','﹗','響','杋','剛','嚴','禪','歓','槍','傘','檸','檫','炣','勢','鏜','鎢','銑','尐','減','奪','惡','θ','僮','婭','臘','ū','ì','殻','鉄','∑','蛲','焼','緖','續','紹','懮'] \ No newline at end of file diff --git a/packages/paddlejs-examples/ocrXcx/pages/index/recPostprocess.js b/packages/paddlejs-examples/ocrXcx/pages/index/recPostprocess.js new file mode 100644 index 00000000..92fe8869 --- /dev/null +++ b/packages/paddlejs-examples/ocrXcx/pages/index/recPostprocess.js @@ -0,0 +1,65 @@ +import { character } from 'ppocr_keys_v1.js'; + +const ocr_character = character; +let preds_idx = []; +let preds_prob = []; + +function init(preds) { + preds_idx = []; + preds_prob = []; + // preds: [1, ?, 6625] + const pred_len = 6625; + for (let i = 0; i < preds.length; i += pred_len) { + const tmpArr = preds.slice(i, i + pred_len - 1); + const tmpMax = Math.max(...tmpArr); + const tmpIdx = tmpArr.indexOf(tmpMax); + preds_prob.push(tmpMax); + preds_idx.push(tmpIdx); + } +} + +function get_ignored_tokens() { + return [0]; +} + +function decode(text_index, text_prob, is_remove_duplicate = false) { + const ignored_tokens = get_ignored_tokens(); + const char_list = []; + const conf_list = []; + for (let idx = 0; idx < text_index.length; idx++) { + if (text_index[idx] in ignored_tokens) { + continue; + } + if (is_remove_duplicate) { + if (idx > 0 && text_index[idx - 1] === text_index[idx]) { + continue; + } + } + char_list.push(ocr_character[text_index[idx] - 1]); + if (text_prob) { + conf_list.push(text_prob[idx]); + } + else { + conf_list.push(1); + } + } + let text = ''; + let mean = 0; + + console.log('char_list', char_list); + + if (char_list.length) { + text = char_list.join(''); + let sum = 0; + conf_list.forEach(item => { + sum += item; + }); + mean = sum / conf_list.length; + } + return { text, mean }; +} + +export function recDecode(preds) { + init(preds); + return decode(preds_idx, preds_prob, true); +} \ No newline at end of file diff --git a/packages/paddlejs-examples/ocrXcx/pages/index/wasm/opencv.js b/packages/paddlejs-examples/ocrXcx/pages/index/wasm/opencv.js new file mode 100644 index 00000000..d939a10c --- /dev/null +++ b/packages/paddlejs-examples/ocrXcx/pages/index/wasm/opencv.js @@ -0,0 +1,7109 @@ +/* eslint-disable */ +(function (root, factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(function () { + return (root.cv = factory()); + }); + } else if (typeof module === 'object' && module.exports) { + // Node. Does not work with strict CommonJS, but + // only CommonJS-like environments that support module.exports, + // like Node. + module.exports = factory(); + } else { + // Browser globals + root.cv = factory(); + } +}(this, function () { + var IsWechat = true; + var cv = (function () { + var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined; + if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename; + return ( + function (cv) { + cv = cv || {}; + // IsWechat + var wasmBinaryFile = global.wasm_url; + + var Module = typeof cv !== "undefined" ? cv : {}; + console.log('Module', Module) + var moduleOverrides = {}; + var key; + for (key in Module) { + if (Module.hasOwnProperty(key)) { + moduleOverrides[key] = Module[key] + } + } + var arguments_ = []; + var thisProgram = "./this.program"; + var quit_ = function (status, toThrow) { + throw toThrow + }; + var ENVIRONMENT_IS_WEB = false; + var ENVIRONMENT_IS_WORKER = false; + var ENVIRONMENT_IS_NODE = false; + var ENVIRONMENT_IS_SHELL = false; + ENVIRONMENT_IS_WEB = typeof window === "object"; + ENVIRONMENT_IS_WORKER = typeof importScripts === "function"; + ENVIRONMENT_IS_NODE = typeof process === "object" && typeof process.versions === "object" && typeof process.versions.node === "string"; + ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER; + var scriptDirectory = ""; + + function locateFile(path) { + if (Module["locateFile"]) { + return Module["locateFile"](path, scriptDirectory) + } + return scriptDirectory + path + } + + var read_, readAsync, readBinary, setWindowTitle; + var nodeFS; + var nodePath; + if (ENVIRONMENT_IS_NODE) { + if (ENVIRONMENT_IS_WORKER) { + scriptDirectory = require("path").dirname(scriptDirectory) + "/" + } else { + scriptDirectory = __dirname + "/" + } + read_ = function shell_read(filename, binary) { + if (!nodeFS) nodeFS = require("fs"); + if (!nodePath) nodePath = require("path"); + filename = nodePath["normalize"](filename); + return nodeFS["readFileSync"](filename, binary ? null : "utf8") + }; + readBinary = function readBinary(filename) { + var ret = read_(filename, true); + if (!ret.buffer) { + ret = new Uint8Array(ret) + } + assert(ret.buffer); + return ret + }; + if (process["argv"].length > 1) { + thisProgram = process["argv"][1].replace(/\\/g, "/") + } + arguments_ = process["argv"].slice(2); + process["on"]("uncaughtException", function (ex) { + if (!(ex instanceof ExitStatus)) { + throw ex + } + }); + process["on"]("unhandledRejection", abort); + quit_ = function (status) { + process["exit"](status) + }; + Module["inspect"] = function () { + return "[Emscripten Module object]" + } + } else if (!IsWechat && ENVIRONMENT_IS_SHELL) { + if (typeof read != "undefined") { + read_ = function shell_read(f) { + return read(f) + } + } + readBinary = function readBinary(f) { + var data; + if (typeof readbuffer === "function") { + return new Uint8Array(readbuffer(f)) + } + data = read(f, "binary"); + assert(typeof data === "object"); + return data + }; + if (typeof scriptArgs != "undefined") { + arguments_ = scriptArgs + } else if (typeof arguments != "undefined") { + arguments_ = arguments + } + if (typeof quit === "function") { + quit_ = function (status) { + quit(status) + } + } + if (typeof print !== "undefined") { + if (typeof console === "undefined") console = {}; + console.log = print; + console.warn = console.error = typeof printErr !== "undefined" ? printErr : print + } + } else if (IsWechat || ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { + if (ENVIRONMENT_IS_WORKER) { + scriptDirectory = self.location.href + } else if (!IsWechat && document.currentScript) { + scriptDirectory = document.currentScript.src + } + if (_scriptDir) { + scriptDirectory = _scriptDir + } + if (scriptDirectory.indexOf("blob:") !== 0) { + scriptDirectory = scriptDirectory.substr(0, scriptDirectory.lastIndexOf("/") + 1) + } else { + scriptDirectory = "" + } + { + read_ = function shell_read(url) { + var xhr = new XMLHttpRequest; + xhr.open("GET", url, false); + xhr.send(null); + return xhr.responseText + }; + if (ENVIRONMENT_IS_WORKER) { + readBinary = function readBinary(url) { + var xhr = new XMLHttpRequest; + xhr.open("GET", url, false); + xhr.responseType = "arraybuffer"; + xhr.send(null); + return new Uint8Array(xhr.response) + } + } + readAsync = function readAsync(url, onload, onerror) { + var xhr = new XMLHttpRequest; + xhr.open("GET", url, true); + xhr.responseType = "arraybuffer"; + xhr.onload = function xhr_onload() { + if (xhr.status == 200 || xhr.status == 0 && xhr.response) { + onload(xhr.response); + return + } + onerror() + }; + xhr.onerror = onerror; + xhr.send(null) + } + } + setWindowTitle = function (title) { + document.title = title + } + } else { + } + var out = Module["print"] || console.log.bind(console); + var err = Module["printErr"] || console.warn.bind(console); + for (key in moduleOverrides) { + if (moduleOverrides.hasOwnProperty(key)) { + Module[key] = moduleOverrides[key] + } + } + moduleOverrides = null; + if (Module["arguments"]) arguments_ = Module["arguments"]; + if (Module["thisProgram"]) thisProgram = Module["thisProgram"]; + if (Module["quit"]) quit_ = Module["quit"]; + var STACK_ALIGN = 16; + + function dynamicAlloc(size) { + var ret = HEAP32[DYNAMICTOP_PTR >> 2]; + var end = ret + size + 15 & -16; + HEAP32[DYNAMICTOP_PTR >> 2] = end; + return ret + } + + function alignMemory(size, factor) { + if (!factor) factor = STACK_ALIGN; + return Math.ceil(size / factor) * factor + } + + function getNativeTypeSize(type) { + switch (type) { + case"i1": + case"i8": + return 1; + case"i16": + return 2; + case"i32": + return 4; + case"i64": + return 8; + case"float": + return 4; + case"double": + return 8; + default: { + if (type[type.length - 1] === "*") { + return 4 + } else if (type[0] === "i") { + var bits = Number(type.substr(1)); + assert(bits % 8 === 0, "getNativeTypeSize invalid bits " + bits + ", type " + type); + return bits / 8 + } else { + return 0 + } + } + } + } + + function warnOnce(text) { + if (!warnOnce.shown) warnOnce.shown = {}; + if (!warnOnce.shown[text]) { + warnOnce.shown[text] = 1; + err(text) + } + } + + function convertJsFunctionToWasm(func, sig) { + // if (typeof WebAssembly.Function === "function") { + // var typeNames = {"i": "i32", "j": "i64", "f": "f32", "d": "f64"}; + // var type = {parameters: [], results: sig[0] == "v" ? [] : [typeNames[sig[0]]]}; + // for (var i = 1; i < sig.length; ++i) { + // type.parameters.push(typeNames[sig[i]]) + // } + // return new WebAssembly.Function(type, func) + // } + var typeSection = [1, 0, 1, 96]; + var sigRet = sig.slice(0, 1); + var sigParam = sig.slice(1); + var typeCodes = {"i": 127, "j": 126, "f": 125, "d": 124}; + typeSection.push(sigParam.length); + for (var i = 0; i < sigParam.length; ++i) { + typeSection.push(typeCodes[sigParam[i]]) + } + if (sigRet == "v") { + typeSection.push(0) + } else { + typeSection = typeSection.concat([1, typeCodes[sigRet]]) + } + typeSection[1] = typeSection.length - 2; + var bytes = new Uint8Array([0, 97, 115, 109, 1, 0, 0, 0].concat(typeSection, [2, 7, 1, 1, 101, 1, 102, 0, 0, 7, 5, 1, 1, 102, 0, 0])); + var module = new WXWebAssembly.Module(bytes); + var instance = new WXWebAssembly.Instance(module, {"e": {"f": func}}); + var wrappedFunc = instance.exports["f"]; + return wrappedFunc + } + + var freeTableIndexes = []; + var functionsInTableMap; + + function addFunctionWasm(func, sig) { + var table = wasmTable; + if (!functionsInTableMap) { + functionsInTableMap = new WeakMap; + for (var i = 0; i < table.length; i++) { + var item = table.get(i); + if (item) { + functionsInTableMap.set(item, i) + } + } + } + if (functionsInTableMap.has(func)) { + return functionsInTableMap.get(func) + } + var ret; + if (freeTableIndexes.length) { + ret = freeTableIndexes.pop() + } else { + ret = table.length; + try { + table.grow(1) + } catch (err) { + if (!(err instanceof RangeError)) { + throw err + } + throw"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH." + } + } + try { + table.set(ret, func) + } catch (err) { + if (!(err instanceof TypeError)) { + throw err + } + var wrapped = convertJsFunctionToWasm(func, sig); + table.set(ret, wrapped) + } + functionsInTableMap.set(func, ret); + return ret + } + + function removeFunctionWasm(index) { + functionsInTableMap.delete(wasmTable.get(index)); + freeTableIndexes.push(index) + } + + var funcWrappers = {}; + + function dynCall(sig, ptr, args) { + if (args && args.length) { + return Module["dynCall_" + sig].apply(null, [ptr].concat(args)) + } else { + return Module["dynCall_" + sig].call(null, ptr) + } + } + + var tempRet0 = 0; + var setTempRet0 = function (value) { + tempRet0 = value + }; + var wasmBinary; + if (Module["wasmBinary"]) wasmBinary = Module["wasmBinary"]; + var noExitRuntime; + if (Module["noExitRuntime"]) noExitRuntime = Module["noExitRuntime"]; + if (typeof WXWebAssembly !== "object") { + abort("no native wasm support detected") + } + + function setValue(ptr, value, type, noSafe) { + type = type || "i8"; + if (type.charAt(type.length - 1) === "*") type = "i32"; + switch (type) { + case"i1": + HEAP8[ptr >> 0] = value; + break; + case"i8": + HEAP8[ptr >> 0] = value; + break; + case"i16": + HEAP16[ptr >> 1] = value; + break; + case"i32": + HEAP32[ptr >> 2] = value; + break; + case"i64": + tempI64 = [value >>> 0, (tempDouble = value, +Math_abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math_min(+Math_floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math_ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[ptr >> 2] = tempI64[0], HEAP32[ptr + 4 >> 2] = tempI64[1]; + break; + case"float": + HEAPF32[ptr >> 2] = value; + break; + case"double": + HEAPF64[ptr >> 3] = value; + break; + default: + abort("invalid type for setValue: " + type) + } + } + + var wasmMemory; + var wasmTable = new WXWebAssembly.Table({"initial": 1538, "maximum": 1538 + 0, "element": "anyfunc"}); + var ABORT = false; + var EXITSTATUS = 0; + + function assert(condition, text) { + if (!condition) { + abort("Assertion failed: " + text) + } + } + + function getCFunc(ident) { + var func = Module["_" + ident]; + assert(func, "Cannot call unknown function " + ident + ", make sure it is exported"); + return func + } + + function ccall(ident, returnType, argTypes, args, opts) { + var toC = { + "string": function (str) { + var ret = 0; + if (str !== null && str !== undefined && str !== 0) { + var len = (str.length << 2) + 1; + ret = stackAlloc(len); + stringToUTF8(str, ret, len) + } + return ret + }, "array": function (arr) { + var ret = stackAlloc(arr.length); + writeArrayToMemory(arr, ret); + return ret + } + }; + + function convertReturnValue(ret) { + if (returnType === "string") return UTF8ToString(ret); + if (returnType === "boolean") return Boolean(ret); + return ret + } + + var func = getCFunc(ident); + var cArgs = []; + var stack = 0; + if (args) { + for (var i = 0; i < args.length; i++) { + var converter = toC[argTypes[i]]; + if (converter) { + if (stack === 0) stack = stackSave(); + cArgs[i] = converter(args[i]) + } else { + cArgs[i] = args[i] + } + } + } + var ret = func.apply(null, cArgs); + ret = convertReturnValue(ret); + if (stack !== 0) stackRestore(stack); + return ret + } + + var ALLOC_NONE = 3; + + function getMemory(size) { + if (!runtimeInitialized) return dynamicAlloc(size); + return _malloc(size) + } + + var UTF8Decoder = typeof TextDecoder !== "undefined" ? new TextDecoder("utf8") : undefined; + + function UTF8ArrayToString(heap, idx, maxBytesToRead) { + var endIdx = idx + maxBytesToRead; + var endPtr = idx; + while (heap[endPtr] && !(endPtr >= endIdx)) ++endPtr; + if (endPtr - idx > 16 && heap.subarray && UTF8Decoder) { + return UTF8Decoder.decode(heap.subarray(idx, endPtr)) + } else { + var str = ""; + while (idx < endPtr) { + var u0 = heap[idx++]; + if (!(u0 & 128)) { + str += String.fromCharCode(u0); + continue + } + var u1 = heap[idx++] & 63; + if ((u0 & 224) == 192) { + str += String.fromCharCode((u0 & 31) << 6 | u1); + continue + } + var u2 = heap[idx++] & 63; + if ((u0 & 240) == 224) { + u0 = (u0 & 15) << 12 | u1 << 6 | u2 + } else { + u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | heap[idx++] & 63 + } + if (u0 < 65536) { + str += String.fromCharCode(u0) + } else { + var ch = u0 - 65536; + str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023) + } + } + } + return str + } + + function UTF8ToString(ptr, maxBytesToRead) { + return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : "" + } + + function stringToUTF8Array(str, heap, outIdx, maxBytesToWrite) { + if (!(maxBytesToWrite > 0)) return 0; + var startIdx = outIdx; + var endIdx = outIdx + maxBytesToWrite - 1; + for (var i = 0; i < str.length; ++i) { + var u = str.charCodeAt(i); + if (u >= 55296 && u <= 57343) { + var u1 = str.charCodeAt(++i); + u = 65536 + ((u & 1023) << 10) | u1 & 1023 + } + if (u <= 127) { + if (outIdx >= endIdx) break; + heap[outIdx++] = u + } else if (u <= 2047) { + if (outIdx + 1 >= endIdx) break; + heap[outIdx++] = 192 | u >> 6; + heap[outIdx++] = 128 | u & 63 + } else if (u <= 65535) { + if (outIdx + 2 >= endIdx) break; + heap[outIdx++] = 224 | u >> 12; + heap[outIdx++] = 128 | u >> 6 & 63; + heap[outIdx++] = 128 | u & 63 + } else { + if (outIdx + 3 >= endIdx) break; + heap[outIdx++] = 240 | u >> 18; + heap[outIdx++] = 128 | u >> 12 & 63; + heap[outIdx++] = 128 | u >> 6 & 63; + heap[outIdx++] = 128 | u & 63 + } + } + heap[outIdx] = 0; + return outIdx - startIdx + } + + function stringToUTF8(str, outPtr, maxBytesToWrite) { + return stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite) + } + + function lengthBytesUTF8(str) { + var len = 0; + for (var i = 0; i < str.length; ++i) { + var u = str.charCodeAt(i); + if (u >= 55296 && u <= 57343) u = 65536 + ((u & 1023) << 10) | str.charCodeAt(++i) & 1023; + if (u <= 127) ++len; else if (u <= 2047) len += 2; else if (u <= 65535) len += 3; else len += 4 + } + return len + } + + var UTF16Decoder = typeof TextDecoder !== "undefined" ? new TextDecoder("utf-16le") : undefined; + + function UTF16ToString(ptr, maxBytesToRead) { + var endPtr = ptr; + var idx = endPtr >> 1; + var maxIdx = idx + maxBytesToRead / 2; + while (!(idx >= maxIdx) && HEAPU16[idx]) ++idx; + endPtr = idx << 1; + if (endPtr - ptr > 32 && UTF16Decoder) { + return UTF16Decoder.decode(HEAPU8.subarray(ptr, endPtr)) + } else { + var i = 0; + var str = ""; + while (1) { + var codeUnit = HEAP16[ptr + i * 2 >> 1]; + if (codeUnit == 0 || i == maxBytesToRead / 2) return str; + ++i; + str += String.fromCharCode(codeUnit) + } + } + } + + function stringToUTF16(str, outPtr, maxBytesToWrite) { + if (maxBytesToWrite === undefined) { + maxBytesToWrite = 2147483647 + } + if (maxBytesToWrite < 2) return 0; + maxBytesToWrite -= 2; + var startPtr = outPtr; + var numCharsToWrite = maxBytesToWrite < str.length * 2 ? maxBytesToWrite / 2 : str.length; + for (var i = 0; i < numCharsToWrite; ++i) { + var codeUnit = str.charCodeAt(i); + HEAP16[outPtr >> 1] = codeUnit; + outPtr += 2 + } + HEAP16[outPtr >> 1] = 0; + return outPtr - startPtr + } + + function lengthBytesUTF16(str) { + return str.length * 2 + } + + function UTF32ToString(ptr, maxBytesToRead) { + var i = 0; + var str = ""; + while (!(i >= maxBytesToRead / 4)) { + var utf32 = HEAP32[ptr + i * 4 >> 2]; + if (utf32 == 0) break; + ++i; + if (utf32 >= 65536) { + var ch = utf32 - 65536; + str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023) + } else { + str += String.fromCharCode(utf32) + } + } + return str + } + + function stringToUTF32(str, outPtr, maxBytesToWrite) { + if (maxBytesToWrite === undefined) { + maxBytesToWrite = 2147483647 + } + if (maxBytesToWrite < 4) return 0; + var startPtr = outPtr; + var endPtr = startPtr + maxBytesToWrite - 4; + for (var i = 0; i < str.length; ++i) { + var codeUnit = str.charCodeAt(i); + if (codeUnit >= 55296 && codeUnit <= 57343) { + var trailSurrogate = str.charCodeAt(++i); + codeUnit = 65536 + ((codeUnit & 1023) << 10) | trailSurrogate & 1023 + } + HEAP32[outPtr >> 2] = codeUnit; + outPtr += 4; + if (outPtr + 4 > endPtr) break + } + HEAP32[outPtr >> 2] = 0; + return outPtr - startPtr + } + + function lengthBytesUTF32(str) { + var len = 0; + for (var i = 0; i < str.length; ++i) { + var codeUnit = str.charCodeAt(i); + if (codeUnit >= 55296 && codeUnit <= 57343) ++i; + len += 4 + } + return len + } + + function writeArrayToMemory(array, buffer) { + HEAP8.set(array, buffer) + } + + function writeAsciiToMemory(str, buffer, dontAddNull) { + for (var i = 0; i < str.length; ++i) { + HEAP8[buffer++ >> 0] = str.charCodeAt(i) + } + if (!dontAddNull) HEAP8[buffer >> 0] = 0 + } + + var WASM_PAGE_SIZE = 65536; + + function alignUp(x, multiple) { + if (x % multiple > 0) { + x += multiple - x % multiple + } + return x + } + + var buffer, HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64; + + function updateGlobalBufferAndViews(buf) { + buffer = buf; + Module["HEAP8"] = HEAP8 = new Int8Array(buf); + Module["HEAP16"] = HEAP16 = new Int16Array(buf); + Module["HEAP32"] = HEAP32 = new Int32Array(buf); + Module["HEAPU8"] = HEAPU8 = new Uint8Array(buf); + Module["HEAPU16"] = HEAPU16 = new Uint16Array(buf); + Module["HEAPU32"] = HEAPU32 = new Uint32Array(buf); + Module["HEAPF32"] = HEAPF32 = new Float32Array(buf); + Module["HEAPF64"] = HEAPF64 = new Float64Array(buf) + } + + var STACK_BASE = 5885696, DYNAMIC_BASE = 5885696, DYNAMICTOP_PTR = 642656; + var INITIAL_INITIAL_MEMORY = Module["INITIAL_MEMORY"] || 134217728; + if (Module["wasmMemory"]) { + wasmMemory = Module["wasmMemory"] + } else { + wasmMemory = new WXWebAssembly.Memory({ + "initial": INITIAL_INITIAL_MEMORY / WASM_PAGE_SIZE, + "maximum": 2147483648 / WASM_PAGE_SIZE + }) + } + if (wasmMemory) { + buffer = wasmMemory.buffer + } + INITIAL_INITIAL_MEMORY = buffer.byteLength; + updateGlobalBufferAndViews(buffer); + HEAP32[DYNAMICTOP_PTR >> 2] = DYNAMIC_BASE; + + function callRuntimeCallbacks(callbacks) { + while (callbacks.length > 0) { + var callback = callbacks.shift(); + if (typeof callback == "function") { + callback(Module); + continue + } + var func = callback.func; + if (typeof func === "number") { + if (callback.arg === undefined) { + Module["dynCall_v"](func) + } else { + Module["dynCall_vi"](func, callback.arg) + } + } else { + func(callback.arg === undefined ? null : callback.arg) + } + } + } + + var __ATPRERUN__ = []; + var __ATINIT__ = []; + var __ATMAIN__ = []; + var __ATPOSTRUN__ = []; + var runtimeInitialized = false; + var runtimeExited = false; + + function preRun() { + if (Module["preRun"]) { + if (typeof Module["preRun"] == "function") Module["preRun"] = [Module["preRun"]]; + while (Module["preRun"].length) { + addOnPreRun(Module["preRun"].shift()) + } + } + callRuntimeCallbacks(__ATPRERUN__) + } + + function initRuntime() { + runtimeInitialized = true; + if (!Module["noFSInit"] && !FS.init.initialized) FS.init(); + TTY.init(); + callRuntimeCallbacks(__ATINIT__) + } + + function preMain() { + FS.ignorePermissions = false; + callRuntimeCallbacks(__ATMAIN__) + } + + function exitRuntime() { + runtimeExited = true + } + + function postRun() { + if (Module["postRun"]) { + if (typeof Module["postRun"] == "function") Module["postRun"] = [Module["postRun"]]; + while (Module["postRun"].length) { + addOnPostRun(Module["postRun"].shift()) + } + } + callRuntimeCallbacks(__ATPOSTRUN__) + } + + function addOnPreRun(cb) { + __ATPRERUN__.unshift(cb) + } + + function addOnPostRun(cb) { + __ATPOSTRUN__.unshift(cb) + } + + var Math_abs = Math.abs; + var Math_ceil = Math.ceil; + var Math_floor = Math.floor; + var Math_min = Math.min; + var runDependencies = 0; + var runDependencyWatcher = null; + var dependenciesFulfilled = null; + + function getUniqueRunDependency(id) { + return id + } + + function addRunDependency(id) { + runDependencies++; + if (Module["monitorRunDependencies"]) { + Module["monitorRunDependencies"](runDependencies) + } + } + + function removeRunDependency(id) { + runDependencies--; + if (Module["monitorRunDependencies"]) { + Module["monitorRunDependencies"](runDependencies) + } + if (runDependencies == 0) { + if (runDependencyWatcher !== null) { + clearInterval(runDependencyWatcher); + runDependencyWatcher = null + } + if (dependenciesFulfilled) { + var callback = dependenciesFulfilled; + dependenciesFulfilled = null; + callback() + } + } + } + + Module["preloadedImages"] = {}; + Module["preloadedAudios"] = {}; + + function abort(what) { + if (Module["onAbort"]) { + Module["onAbort"](what) + } + what += ""; + err(what); + ABORT = true; + EXITSTATUS = 1; + what = "abort(" + what + "). Build with -s ASSERTIONS=1 for more info."; + throw what + } + + function hasPrefix(str, prefix) { + return String.prototype.startsWith ? str.startsWith(prefix) : str.indexOf(prefix) === 0 + } + + var dataURIPrefix = "data:application/octet-stream;base64,"; + + function isDataURI(filename) { + return hasPrefix(filename, dataURIPrefix) + } + + var fileURIPrefix = "file://"; + + function isFileURI(filename) { + return hasPrefix(filename, fileURIPrefix) + } + + // var wasmBinaryFile = "opencv_js.wasm"; + if (!isDataURI(wasmBinaryFile)) { + wasmBinaryFile = locateFile(wasmBinaryFile) + } + + function getBinary() { + try { + if (wasmBinary) { + return new Uint8Array(wasmBinary) + } + if (readBinary) { + return readBinary(wasmBinaryFile) + } else { + throw"both async and sync fetching of the wasm failed" + } + } catch (err) { + abort(err) + } + } + + function getBinaryPromise() { + if (!wasmBinary && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) && typeof fetch === "function" && !isFileURI(wasmBinaryFile)) { + return fetch(wasmBinaryFile, {credentials: "same-origin"}).then(function (response) { + if (!response["ok"]) { + throw"failed to load wasm binary file at '" + wasmBinaryFile + "'" + } + return response["arrayBuffer"]() + }).catch(function () { + return getBinary() + }) + } + return new Promise(function (resolve, reject) { + resolve(getBinary()) + }) + } + + function createWasm() { + var info = {"env": asmLibraryArg, "wasi_snapshot_preview1": asmLibraryArg}; + + function receiveInstance(instance, module) { + var exports = instance.exports; + Module["asm"] = exports; + removeRunDependency("wasm-instantiate") + } + + addRunDependency("wasm-instantiate"); + + function receiveInstantiatedSource(output) { + receiveInstance(output["instance"]) + } + + function instantiateArrayBuffer(receiver) { + return getBinaryPromise().then(function (binary) { + return WXWebAssembly.instantiate(binary, info) + }).then(receiver, function (reason) { + err("failed to asynchronously prepare wasm: " + reason); + abort(reason) + }) + } + + function instantiateAsync() { + if (IsWechat) { + var result = WXWebAssembly.instantiate(wasmBinaryFile, info); + + return result.then(receiveInstantiatedSource, function (reason) { + err("wasm streaming compile failed: " + reason); + err("falling back to ArrayBuffer instantiation"); + return instantiateArrayBuffer(receiveInstantiatedSource) + }); + + } else { + if (!wasmBinary && typeof WebAssembly.instantiateStreaming === "function" && !isDataURI(wasmBinaryFile) && !isFileURI(wasmBinaryFile) && typeof fetch === "function") { + fetch(wasmBinaryFile, {credentials: "same-origin"}).then(function (response) { + var result = WebAssembly.instantiateStreaming(response, info); + return result.then(receiveInstantiatedSource, function (reason) { + err("wasm streaming compile failed: " + reason); + err("falling back to ArrayBuffer instantiation"); + return instantiateArrayBuffer(receiveInstantiatedSource) + }) + }) + } else { + return instantiateArrayBuffer(receiveInstantiatedSource) + } + } + } + + if (Module["instantiateWasm"]) { + try { + var exports = Module["instantiateWasm"](info, receiveInstance); + return exports + } catch (e) { + err("Module.instantiateWasm callback failed with error: " + e); + return false + } + } + instantiateAsync(); + return {} + } + + var tempDouble; + var tempI64; + __ATINIT__.push({ + func: function () { + ___wasm_call_ctors() + } + }); + + function _emscripten_set_main_loop_timing(mode, value) { + Browser.mainLoop.timingMode = mode; + Browser.mainLoop.timingValue = value; + if (!Browser.mainLoop.func) { + return 1 + } + if (mode == 0) { + Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_setTimeout() { + var timeUntilNextTick = Math.max(0, Browser.mainLoop.tickStartTime + value - _emscripten_get_now()) | 0; + setTimeout(Browser.mainLoop.runner, timeUntilNextTick) + }; + Browser.mainLoop.method = "timeout" + } else if (mode == 1) { + Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_rAF() { + Browser.requestAnimationFrame(Browser.mainLoop.runner) + }; + Browser.mainLoop.method = "rAF" + } else if (mode == 2) { + if (typeof setImmediate === "undefined") { + var setImmediates = []; + var emscriptenMainLoopMessageId = "setimmediate"; + var Browser_setImmediate_messageHandler = function (event) { + if (event.data === emscriptenMainLoopMessageId || event.data.target === emscriptenMainLoopMessageId) { + event.stopPropagation(); + setImmediates.shift()() + } + }; + addEventListener("message", Browser_setImmediate_messageHandler, true); + setImmediate = function Browser_emulated_setImmediate(func) { + setImmediates.push(func); + if (ENVIRONMENT_IS_WORKER) { + if (Module["setImmediates"] === undefined) Module["setImmediates"] = []; + Module["setImmediates"].push(func); + postMessage({target: emscriptenMainLoopMessageId}) + } else postMessage(emscriptenMainLoopMessageId, "*") + } + } + Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_setImmediate() { + setImmediate(Browser.mainLoop.runner) + }; + Browser.mainLoop.method = "immediate" + } + return 0 + } + + var _emscripten_get_now; + if (ENVIRONMENT_IS_NODE) { + _emscripten_get_now = function () { + var t = process["hrtime"](); + return t[0] * 1e3 + t[1] / 1e6 + } + } else if (typeof dateNow !== "undefined") { + _emscripten_get_now = dateNow + } else _emscripten_get_now = function () { + return performance.now() + }; + + function _emscripten_set_main_loop(func, fps, simulateInfiniteLoop, arg, noSetTiming) { + noExitRuntime = true; + assert(!Browser.mainLoop.func, "emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters."); + Browser.mainLoop.func = func; + Browser.mainLoop.arg = arg; + var browserIterationFunc; + if (typeof arg !== "undefined") { + browserIterationFunc = function () { + Module["dynCall_vi"](func, arg) + } + } else { + browserIterationFunc = function () { + Module["dynCall_v"](func) + } + } + var thisMainLoopId = Browser.mainLoop.currentlyRunningMainloop; + Browser.mainLoop.runner = function Browser_mainLoop_runner() { + if (ABORT) return; + if (Browser.mainLoop.queue.length > 0) { + var start = Date.now(); + var blocker = Browser.mainLoop.queue.shift(); + blocker.func(blocker.arg); + if (Browser.mainLoop.remainingBlockers) { + var remaining = Browser.mainLoop.remainingBlockers; + var next = remaining % 1 == 0 ? remaining - 1 : Math.floor(remaining); + if (blocker.counted) { + Browser.mainLoop.remainingBlockers = next + } else { + next = next + .5; + Browser.mainLoop.remainingBlockers = (8 * remaining + next) / 9 + } + } + console.log('main loop blocker "' + blocker.name + '" took ' + (Date.now() - start) + " ms"); + Browser.mainLoop.updateStatus(); + if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return; + setTimeout(Browser.mainLoop.runner, 0); + return + } + if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return; + Browser.mainLoop.currentFrameNumber = Browser.mainLoop.currentFrameNumber + 1 | 0; + if (Browser.mainLoop.timingMode == 1 && Browser.mainLoop.timingValue > 1 && Browser.mainLoop.currentFrameNumber % Browser.mainLoop.timingValue != 0) { + Browser.mainLoop.scheduler(); + return + } else if (Browser.mainLoop.timingMode == 0) { + Browser.mainLoop.tickStartTime = _emscripten_get_now() + } + Browser.mainLoop.runIter(browserIterationFunc); + if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return; + if (typeof SDL === "object" && SDL.audio && SDL.audio.queueNewAudioData) SDL.audio.queueNewAudioData(); + Browser.mainLoop.scheduler() + }; + if (!noSetTiming) { + if (fps && fps > 0) _emscripten_set_main_loop_timing(0, 1e3 / fps); else _emscripten_set_main_loop_timing(1, 1); + Browser.mainLoop.scheduler() + } + if (simulateInfiniteLoop) { + throw"unwind" + } + } + + var Browser = { + mainLoop: { + scheduler: null, + method: "", + currentlyRunningMainloop: 0, + func: null, + arg: 0, + timingMode: 0, + timingValue: 0, + currentFrameNumber: 0, + queue: [], + pause: function () { + Browser.mainLoop.scheduler = null; + Browser.mainLoop.currentlyRunningMainloop++ + }, + resume: function () { + Browser.mainLoop.currentlyRunningMainloop++; + var timingMode = Browser.mainLoop.timingMode; + var timingValue = Browser.mainLoop.timingValue; + var func = Browser.mainLoop.func; + Browser.mainLoop.func = null; + _emscripten_set_main_loop(func, 0, false, Browser.mainLoop.arg, true); + _emscripten_set_main_loop_timing(timingMode, timingValue); + Browser.mainLoop.scheduler() + }, + updateStatus: function () { + if (Module["setStatus"]) { + var message = Module["statusMessage"] || "Please wait..."; + var remaining = Browser.mainLoop.remainingBlockers; + var expected = Browser.mainLoop.expectedBlockers; + if (remaining) { + if (remaining < expected) { + Module["setStatus"](message + " (" + (expected - remaining) + "/" + expected + ")") + } else { + Module["setStatus"](message) + } + } else { + Module["setStatus"]("") + } + } + }, + runIter: function (func) { + if (ABORT) return; + if (Module["preMainLoop"]) { + var preRet = Module["preMainLoop"](); + if (preRet === false) { + return + } + } + try { + func() + } catch (e) { + if (e instanceof ExitStatus) { + return + } else { + if (e && typeof e === "object" && e.stack) err("exception thrown: " + [e, e.stack]); + throw e + } + } + if (Module["postMainLoop"]) Module["postMainLoop"]() + } + }, + isFullscreen: false, + pointerLock: false, + moduleContextCreatedCallbacks: [], + workers: [], + init: function () { + if (!Module["preloadPlugins"]) Module["preloadPlugins"] = []; + if (Browser.initted) return; + Browser.initted = true; + try { + new Blob; + Browser.hasBlobConstructor = true + } catch (e) { + Browser.hasBlobConstructor = false; + console.log("warning: no blob constructor, cannot create blobs with mimetypes") + } + Browser.BlobBuilder = typeof MozBlobBuilder != "undefined" ? MozBlobBuilder : typeof WebKitBlobBuilder != "undefined" ? WebKitBlobBuilder : !Browser.hasBlobConstructor ? console.log("warning: no BlobBuilder") : null; + Browser.URLObject = typeof window != "undefined" ? window.URL ? window.URL : window.webkitURL : undefined; + if (!Module.noImageDecoding && typeof Browser.URLObject === "undefined") { + console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."); + Module.noImageDecoding = true + } + var imagePlugin = {}; + imagePlugin["canHandle"] = function imagePlugin_canHandle(name) { + return !Module.noImageDecoding && /\.(jpg|jpeg|png|bmp)$/i.test(name) + }; + imagePlugin["handle"] = function imagePlugin_handle(byteArray, name, onload, onerror) { + var b = null; + if (Browser.hasBlobConstructor) { + try { + b = new Blob([byteArray], {type: Browser.getMimetype(name)}); + if (b.size !== byteArray.length) { + b = new Blob([new Uint8Array(byteArray).buffer], {type: Browser.getMimetype(name)}) + } + } catch (e) { + warnOnce("Blob constructor present but fails: " + e + "; falling back to blob builder") + } + } + if (!b) { + var bb = new Browser.BlobBuilder; + bb.append(new Uint8Array(byteArray).buffer); + b = bb.getBlob() + } + var url = Browser.URLObject.createObjectURL(b); + var img = new Image; + img.onload = function img_onload() { + assert(img.complete, "Image " + name + " could not be decoded"); + var canvas = document.createElement("canvas"); + canvas.width = img.width; + canvas.height = img.height; + var ctx = canvas.getContext("2d"); + ctx.drawImage(img, 0, 0); + Module["preloadedImages"][name] = canvas; + Browser.URLObject.revokeObjectURL(url); + if (onload) onload(byteArray) + }; + img.onerror = function img_onerror(event) { + console.log("Image " + url + " could not be decoded"); + if (onerror) onerror() + }; + img.src = url + }; + Module["preloadPlugins"].push(imagePlugin); + var audioPlugin = {}; + audioPlugin["canHandle"] = function audioPlugin_canHandle(name) { + return !Module.noAudioDecoding && name.substr(-4) in {".ogg": 1, ".wav": 1, ".mp3": 1} + }; + audioPlugin["handle"] = function audioPlugin_handle(byteArray, name, onload, onerror) { + var done = false; + + function finish(audio) { + if (done) return; + done = true; + Module["preloadedAudios"][name] = audio; + if (onload) onload(byteArray) + } + + function fail() { + if (done) return; + done = true; + Module["preloadedAudios"][name] = new Audio; + if (onerror) onerror() + } + + if (Browser.hasBlobConstructor) { + try { + var b = new Blob([byteArray], {type: Browser.getMimetype(name)}) + } catch (e) { + return fail() + } + var url = Browser.URLObject.createObjectURL(b); + var audio = new Audio; + audio.addEventListener("canplaythrough", function () { + finish(audio) + }, false); + audio.onerror = function audio_onerror(event) { + if (done) return; + console.log("warning: browser could not fully decode audio " + name + ", trying slower base64 approach"); + + function encode64(data) { + var BASE = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + var PAD = "="; + var ret = ""; + var leftchar = 0; + var leftbits = 0; + for (var i = 0; i < data.length; i++) { + leftchar = leftchar << 8 | data[i]; + leftbits += 8; + while (leftbits >= 6) { + var curr = leftchar >> leftbits - 6 & 63; + leftbits -= 6; + ret += BASE[curr] + } + } + if (leftbits == 2) { + ret += BASE[(leftchar & 3) << 4]; + ret += PAD + PAD + } else if (leftbits == 4) { + ret += BASE[(leftchar & 15) << 2]; + ret += PAD + } + return ret + } + + audio.src = "data:audio/x-" + name.substr(-3) + ";base64," + encode64(byteArray); + finish(audio) + }; + audio.src = url; + Browser.safeSetTimeout(function () { + finish(audio) + }, 1e4) + } else { + return fail() + } + }; + Module["preloadPlugins"].push(audioPlugin); + + function pointerLockChange() { + Browser.pointerLock = document["pointerLockElement"] === Module["canvas"] || document["mozPointerLockElement"] === Module["canvas"] || document["webkitPointerLockElement"] === Module["canvas"] || document["msPointerLockElement"] === Module["canvas"] + } + + var canvas = Module["canvas"]; + if (canvas) { + canvas.requestPointerLock = canvas["requestPointerLock"] || canvas["mozRequestPointerLock"] || canvas["webkitRequestPointerLock"] || canvas["msRequestPointerLock"] || function () { + }; + canvas.exitPointerLock = document["exitPointerLock"] || document["mozExitPointerLock"] || document["webkitExitPointerLock"] || document["msExitPointerLock"] || function () { + }; + canvas.exitPointerLock = canvas.exitPointerLock.bind(document); + document.addEventListener("pointerlockchange", pointerLockChange, false); + document.addEventListener("mozpointerlockchange", pointerLockChange, false); + document.addEventListener("webkitpointerlockchange", pointerLockChange, false); + document.addEventListener("mspointerlockchange", pointerLockChange, false); + if (Module["elementPointerLock"]) { + canvas.addEventListener("click", function (ev) { + if (!Browser.pointerLock && Module["canvas"].requestPointerLock) { + Module["canvas"].requestPointerLock(); + ev.preventDefault() + } + }, false) + } + } + }, + createContext: function (canvas, useWebGL, setInModule, webGLContextAttributes) { + if (useWebGL && Module.ctx && canvas == Module.canvas) return Module.ctx; + var ctx; + var contextHandle; + if (useWebGL) { + var contextAttributes = {antialias: false, alpha: false, majorVersion: 1}; + if (webGLContextAttributes) { + for (var attribute in webGLContextAttributes) { + contextAttributes[attribute] = webGLContextAttributes[attribute] + } + } + if (typeof GL !== "undefined") { + contextHandle = GL.createContext(canvas, contextAttributes); + if (contextHandle) { + ctx = GL.getContext(contextHandle).GLctx + } + } + } else { + ctx = canvas.getContext("2d") + } + if (!ctx) return null; + if (setInModule) { + if (!useWebGL) assert(typeof GLctx === "undefined", "cannot set in module if GLctx is used, but we are a non-GL context that would replace it"); + Module.ctx = ctx; + if (useWebGL) GL.makeContextCurrent(contextHandle); + Module.useWebGL = useWebGL; + Browser.moduleContextCreatedCallbacks.forEach(function (callback) { + callback() + }); + Browser.init() + } + return ctx + }, + destroyContext: function (canvas, useWebGL, setInModule) { + }, + fullscreenHandlersInstalled: false, + lockPointer: undefined, + resizeCanvas: undefined, + requestFullscreen: function (lockPointer, resizeCanvas) { + Browser.lockPointer = lockPointer; + Browser.resizeCanvas = resizeCanvas; + if (typeof Browser.lockPointer === "undefined") Browser.lockPointer = true; + if (typeof Browser.resizeCanvas === "undefined") Browser.resizeCanvas = false; + var canvas = Module["canvas"]; + + function fullscreenChange() { + Browser.isFullscreen = false; + var canvasContainer = canvas.parentNode; + if ((document["fullscreenElement"] || document["mozFullScreenElement"] || document["msFullscreenElement"] || document["webkitFullscreenElement"] || document["webkitCurrentFullScreenElement"]) === canvasContainer) { + canvas.exitFullscreen = Browser.exitFullscreen; + if (Browser.lockPointer) canvas.requestPointerLock(); + Browser.isFullscreen = true; + if (Browser.resizeCanvas) { + Browser.setFullscreenCanvasSize() + } else { + Browser.updateCanvasDimensions(canvas) + } + } else { + canvasContainer.parentNode.insertBefore(canvas, canvasContainer); + canvasContainer.parentNode.removeChild(canvasContainer); + if (Browser.resizeCanvas) { + Browser.setWindowedCanvasSize() + } else { + Browser.updateCanvasDimensions(canvas) + } + } + if (Module["onFullScreen"]) Module["onFullScreen"](Browser.isFullscreen); + if (Module["onFullscreen"]) Module["onFullscreen"](Browser.isFullscreen) + } + + if (!Browser.fullscreenHandlersInstalled) { + Browser.fullscreenHandlersInstalled = true; + document.addEventListener("fullscreenchange", fullscreenChange, false); + document.addEventListener("mozfullscreenchange", fullscreenChange, false); + document.addEventListener("webkitfullscreenchange", fullscreenChange, false); + document.addEventListener("MSFullscreenChange", fullscreenChange, false) + } + var canvasContainer = document.createElement("div"); + canvas.parentNode.insertBefore(canvasContainer, canvas); + canvasContainer.appendChild(canvas); + canvasContainer.requestFullscreen = canvasContainer["requestFullscreen"] || canvasContainer["mozRequestFullScreen"] || canvasContainer["msRequestFullscreen"] || (canvasContainer["webkitRequestFullscreen"] ? function () { + canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"]) + } : null) || (canvasContainer["webkitRequestFullScreen"] ? function () { + canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"]) + } : null); + canvasContainer.requestFullscreen() + }, + exitFullscreen: function () { + if (!Browser.isFullscreen) { + return false + } + var CFS = document["exitFullscreen"] || document["cancelFullScreen"] || document["mozCancelFullScreen"] || document["msExitFullscreen"] || document["webkitCancelFullScreen"] || function () { + }; + CFS.apply(document, []); + return true + }, + nextRAF: 0, + fakeRequestAnimationFrame: function (func) { + var now = Date.now(); + if (Browser.nextRAF === 0) { + Browser.nextRAF = now + 1e3 / 60 + } else { + while (now + 2 >= Browser.nextRAF) { + Browser.nextRAF += 1e3 / 60 + } + } + var delay = Math.max(Browser.nextRAF - now, 0); + setTimeout(func, delay) + }, + requestAnimationFrame: function (func) { + if (typeof requestAnimationFrame === "function") { + requestAnimationFrame(func); + return + } + var RAF = Browser.fakeRequestAnimationFrame; + RAF(func) + }, + safeCallback: function (func) { + return function () { + if (!ABORT) return func.apply(null, arguments) + } + }, + allowAsyncCallbacks: true, + queuedAsyncCallbacks: [], + pauseAsyncCallbacks: function () { + Browser.allowAsyncCallbacks = false + }, + resumeAsyncCallbacks: function () { + Browser.allowAsyncCallbacks = true; + if (Browser.queuedAsyncCallbacks.length > 0) { + var callbacks = Browser.queuedAsyncCallbacks; + Browser.queuedAsyncCallbacks = []; + callbacks.forEach(function (func) { + func() + }) + } + }, + safeRequestAnimationFrame: function (func) { + return Browser.requestAnimationFrame(function () { + if (ABORT) return; + if (Browser.allowAsyncCallbacks) { + func() + } else { + Browser.queuedAsyncCallbacks.push(func) + } + }) + }, + safeSetTimeout: function (func, timeout) { + noExitRuntime = true; + return setTimeout(function () { + if (ABORT) return; + if (Browser.allowAsyncCallbacks) { + func() + } else { + Browser.queuedAsyncCallbacks.push(func) + } + }, timeout) + }, + safeSetInterval: function (func, timeout) { + noExitRuntime = true; + return setInterval(function () { + if (ABORT) return; + if (Browser.allowAsyncCallbacks) { + func() + } + }, timeout) + }, + getMimetype: function (name) { + return { + "jpg": "image/jpeg", + "jpeg": "image/jpeg", + "png": "image/png", + "bmp": "image/bmp", + "ogg": "audio/ogg", + "wav": "audio/wav", + "mp3": "audio/mpeg" + }[name.substr(name.lastIndexOf(".") + 1)] + }, + getUserMedia: function (func) { + if (!window.getUserMedia) { + window.getUserMedia = navigator["getUserMedia"] || navigator["mozGetUserMedia"] + } + window.getUserMedia(func) + }, + getMovementX: function (event) { + return event["movementX"] || event["mozMovementX"] || event["webkitMovementX"] || 0 + }, + getMovementY: function (event) { + return event["movementY"] || event["mozMovementY"] || event["webkitMovementY"] || 0 + }, + getMouseWheelDelta: function (event) { + var delta = 0; + switch (event.type) { + case"DOMMouseScroll": + delta = event.detail / 3; + break; + case"mousewheel": + delta = event.wheelDelta / 120; + break; + case"wheel": + delta = event.deltaY; + switch (event.deltaMode) { + case 0: + delta /= 100; + break; + case 1: + delta /= 3; + break; + case 2: + delta *= 80; + break; + default: + throw"unrecognized mouse wheel delta mode: " + event.deltaMode + } + break; + default: + throw"unrecognized mouse wheel event: " + event.type + } + return delta + }, + mouseX: 0, + mouseY: 0, + mouseMovementX: 0, + mouseMovementY: 0, + touches: {}, + lastTouches: {}, + calculateMouseEvent: function (event) { + if (Browser.pointerLock) { + if (event.type != "mousemove" && "mozMovementX" in event) { + Browser.mouseMovementX = Browser.mouseMovementY = 0 + } else { + Browser.mouseMovementX = Browser.getMovementX(event); + Browser.mouseMovementY = Browser.getMovementY(event) + } + if (typeof SDL != "undefined") { + Browser.mouseX = SDL.mouseX + Browser.mouseMovementX; + Browser.mouseY = SDL.mouseY + Browser.mouseMovementY + } else { + Browser.mouseX += Browser.mouseMovementX; + Browser.mouseY += Browser.mouseMovementY + } + } else { + var rect = Module["canvas"].getBoundingClientRect(); + var cw = Module["canvas"].width; + var ch = Module["canvas"].height; + var scrollX = typeof window.scrollX !== "undefined" ? window.scrollX : window.pageXOffset; + var scrollY = typeof window.scrollY !== "undefined" ? window.scrollY : window.pageYOffset; + if (event.type === "touchstart" || event.type === "touchend" || event.type === "touchmove") { + var touch = event.touch; + if (touch === undefined) { + return + } + var adjustedX = touch.pageX - (scrollX + rect.left); + var adjustedY = touch.pageY - (scrollY + rect.top); + adjustedX = adjustedX * (cw / rect.width); + adjustedY = adjustedY * (ch / rect.height); + var coords = {x: adjustedX, y: adjustedY}; + if (event.type === "touchstart") { + Browser.lastTouches[touch.identifier] = coords; + Browser.touches[touch.identifier] = coords + } else if (event.type === "touchend" || event.type === "touchmove") { + var last = Browser.touches[touch.identifier]; + if (!last) last = coords; + Browser.lastTouches[touch.identifier] = last; + Browser.touches[touch.identifier] = coords + } + return + } + var x = event.pageX - (scrollX + rect.left); + var y = event.pageY - (scrollY + rect.top); + x = x * (cw / rect.width); + y = y * (ch / rect.height); + Browser.mouseMovementX = x - Browser.mouseX; + Browser.mouseMovementY = y - Browser.mouseY; + Browser.mouseX = x; + Browser.mouseY = y + } + }, + asyncLoad: function (url, onload, onerror, noRunDep) { + var dep = !noRunDep ? getUniqueRunDependency("al " + url) : ""; + readAsync(url, function (arrayBuffer) { + assert(arrayBuffer, 'Loading data file "' + url + '" failed (no arrayBuffer).'); + onload(new Uint8Array(arrayBuffer)); + if (dep) removeRunDependency(dep) + }, function (event) { + if (onerror) { + onerror() + } else { + throw'Loading data file "' + url + '" failed.' + } + }); + if (dep) addRunDependency(dep) + }, + resizeListeners: [], + updateResizeListeners: function () { + var canvas = Module["canvas"]; + Browser.resizeListeners.forEach(function (listener) { + listener(canvas.width, canvas.height) + }) + }, + setCanvasSize: function (width, height, noUpdates) { + var canvas = Module["canvas"]; + Browser.updateCanvasDimensions(canvas, width, height); + if (!noUpdates) Browser.updateResizeListeners() + }, + windowedWidth: 0, + windowedHeight: 0, + setFullscreenCanvasSize: function () { + if (typeof SDL != "undefined") { + var flags = HEAPU32[SDL.screen >> 2]; + flags = flags | 8388608; + HEAP32[SDL.screen >> 2] = flags + } + Browser.updateCanvasDimensions(Module["canvas"]); + Browser.updateResizeListeners() + }, + setWindowedCanvasSize: function () { + if (typeof SDL != "undefined") { + var flags = HEAPU32[SDL.screen >> 2]; + flags = flags & ~8388608; + HEAP32[SDL.screen >> 2] = flags + } + Browser.updateCanvasDimensions(Module["canvas"]); + Browser.updateResizeListeners() + }, + updateCanvasDimensions: function (canvas, wNative, hNative) { + if (wNative && hNative) { + canvas.widthNative = wNative; + canvas.heightNative = hNative + } else { + wNative = canvas.widthNative; + hNative = canvas.heightNative + } + var w = wNative; + var h = hNative; + if (Module["forcedAspectRatio"] && Module["forcedAspectRatio"] > 0) { + if (w / h < Module["forcedAspectRatio"]) { + w = Math.round(h * Module["forcedAspectRatio"]) + } else { + h = Math.round(w / Module["forcedAspectRatio"]) + } + } + if ((document["fullscreenElement"] || document["mozFullScreenElement"] || document["msFullscreenElement"] || document["webkitFullscreenElement"] || document["webkitCurrentFullScreenElement"]) === canvas.parentNode && typeof screen != "undefined") { + var factor = Math.min(screen.width / w, screen.height / h); + w = Math.round(w * factor); + h = Math.round(h * factor) + } + if (Browser.resizeCanvas) { + if (canvas.width != w) canvas.width = w; + if (canvas.height != h) canvas.height = h; + if (typeof canvas.style != "undefined") { + canvas.style.removeProperty("width"); + canvas.style.removeProperty("height") + } + } else { + if (canvas.width != wNative) canvas.width = wNative; + if (canvas.height != hNative) canvas.height = hNative; + if (typeof canvas.style != "undefined") { + if (w != wNative || h != hNative) { + canvas.style.setProperty("width", w + "px", "important"); + canvas.style.setProperty("height", h + "px", "important") + } else { + canvas.style.removeProperty("width"); + canvas.style.removeProperty("height") + } + } + } + }, + wgetRequests: {}, + nextWgetRequestHandle: 0, + getNextWgetRequestHandle: function () { + var handle = Browser.nextWgetRequestHandle; + Browser.nextWgetRequestHandle++; + return handle + } + }; + + function demangle(func) { + demangle.recursionGuard = (demangle.recursionGuard | 0) + 1; + if (demangle.recursionGuard > 1) return func; + var __cxa_demangle_func = Module["___cxa_demangle"] || Module["__cxa_demangle"]; + assert(__cxa_demangle_func); + var stackTop = stackSave(); + try { + var s = func; + if (s.startsWith("__Z")) s = s.substr(1); + var len = lengthBytesUTF8(s) + 1; + var buf = stackAlloc(len); + stringToUTF8(s, buf, len); + var status = stackAlloc(4); + var ret = __cxa_demangle_func(buf, 0, 0, status); + if (HEAP32[status >> 2] === 0 && ret) { + return UTF8ToString(ret) + } + } catch (e) { + } finally { + _free(ret); + stackRestore(stackTop); + if (demangle.recursionGuard < 2) --demangle.recursionGuard + } + return func + } + + function demangleAll(text) { + var regex = /\b_Z[\w\d_]+/g; + return text.replace(regex, function (x) { + var y = demangle(x); + return x === y ? x : y + " [" + x + "]" + }) + } + + function jsStackTrace() { + var err = new Error; + if (!err.stack) { + try { + throw new Error + } catch (e) { + err = e + } + if (!err.stack) { + return "(no stack trace available)" + } + } + return err.stack.toString() + } + + function stackTrace() { + var js = jsStackTrace(); + if (Module["extraStackTrace"]) js += "\n" + Module["extraStackTrace"](); + return demangleAll(js) + } + + function ___cxa_allocate_exception(size) { + return _malloc(size) + } + + function _atexit(func, arg) { + } + + function ___cxa_atexit(a0, a1) { + return _atexit(a0, a1) + } + + var ___exception_infos = {}; + var ___exception_last = 0; + + function __ZSt18uncaught_exceptionv() { + return __ZSt18uncaught_exceptionv.uncaught_exceptions > 0 + } + + function ___cxa_throw(ptr, type, destructor) { + ___exception_infos[ptr] = { + ptr: ptr, + adjusted: [ptr], + type: type, + destructor: destructor, + refcount: 0, + caught: false, + rethrown: false + }; + ___exception_last = ptr; + if (!("uncaught_exception" in __ZSt18uncaught_exceptionv)) { + __ZSt18uncaught_exceptionv.uncaught_exceptions = 1 + } else { + __ZSt18uncaught_exceptionv.uncaught_exceptions++ + } + throw ptr + } + + function setErrNo(value) { + HEAP32[___errno_location() >> 2] = value; + return value + } + + function ___map_file(pathname, size) { + setErrNo(63); + return -1 + } + + var PATH = { + splitPath: function (filename) { + var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; + return splitPathRe.exec(filename).slice(1) + }, normalizeArray: function (parts, allowAboveRoot) { + var up = 0; + for (var i = parts.length - 1; i >= 0; i--) { + var last = parts[i]; + if (last === ".") { + parts.splice(i, 1) + } else if (last === "..") { + parts.splice(i, 1); + up++ + } else if (up) { + parts.splice(i, 1); + up-- + } + } + if (allowAboveRoot) { + for (; up; up--) { + parts.unshift("..") + } + } + return parts + }, normalize: function (path) { + var isAbsolute = path.charAt(0) === "/", trailingSlash = path.substr(-1) === "/"; + path = PATH.normalizeArray(path.split("/").filter(function (p) { + return !!p + }), !isAbsolute).join("/"); + if (!path && !isAbsolute) { + path = "." + } + if (path && trailingSlash) { + path += "/" + } + return (isAbsolute ? "/" : "") + path + }, dirname: function (path) { + var result = PATH.splitPath(path), root = result[0], dir = result[1]; + if (!root && !dir) { + return "." + } + if (dir) { + dir = dir.substr(0, dir.length - 1) + } + return root + dir + }, basename: function (path) { + if (path === "/") return "/"; + var lastSlash = path.lastIndexOf("/"); + if (lastSlash === -1) return path; + return path.substr(lastSlash + 1) + }, extname: function (path) { + return PATH.splitPath(path)[3] + }, join: function () { + var paths = Array.prototype.slice.call(arguments, 0); + return PATH.normalize(paths.join("/")) + }, join2: function (l, r) { + return PATH.normalize(l + "/" + r) + } + }; + var PATH_FS = { + resolve: function () { + var resolvedPath = "", resolvedAbsolute = false; + for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { + var path = i >= 0 ? arguments[i] : FS.cwd(); + if (typeof path !== "string") { + throw new TypeError("Arguments to path.resolve must be strings") + } else if (!path) { + return "" + } + resolvedPath = path + "/" + resolvedPath; + resolvedAbsolute = path.charAt(0) === "/" + } + resolvedPath = PATH.normalizeArray(resolvedPath.split("/").filter(function (p) { + return !!p + }), !resolvedAbsolute).join("/"); + return (resolvedAbsolute ? "/" : "") + resolvedPath || "." + }, relative: function (from, to) { + from = PATH_FS.resolve(from).substr(1); + to = PATH_FS.resolve(to).substr(1); + + function trim(arr) { + var start = 0; + for (; start < arr.length; start++) { + if (arr[start] !== "") break + } + var end = arr.length - 1; + for (; end >= 0; end--) { + if (arr[end] !== "") break + } + if (start > end) return []; + return arr.slice(start, end - start + 1) + } + + var fromParts = trim(from.split("/")); + var toParts = trim(to.split("/")); + var length = Math.min(fromParts.length, toParts.length); + var samePartsLength = length; + for (var i = 0; i < length; i++) { + if (fromParts[i] !== toParts[i]) { + samePartsLength = i; + break + } + } + var outputParts = []; + for (var i = samePartsLength; i < fromParts.length; i++) { + outputParts.push("..") + } + outputParts = outputParts.concat(toParts.slice(samePartsLength)); + return outputParts.join("/") + } + }; + var TTY = { + ttys: [], init: function () { + }, shutdown: function () { + }, register: function (dev, ops) { + TTY.ttys[dev] = {input: [], output: [], ops: ops}; + FS.registerDevice(dev, TTY.stream_ops) + }, stream_ops: { + open: function (stream) { + var tty = TTY.ttys[stream.node.rdev]; + if (!tty) { + throw new FS.ErrnoError(43) + } + stream.tty = tty; + stream.seekable = false + }, close: function (stream) { + stream.tty.ops.flush(stream.tty) + }, flush: function (stream) { + stream.tty.ops.flush(stream.tty) + }, read: function (stream, buffer, offset, length, pos) { + if (!stream.tty || !stream.tty.ops.get_char) { + throw new FS.ErrnoError(60) + } + var bytesRead = 0; + for (var i = 0; i < length; i++) { + var result; + try { + result = stream.tty.ops.get_char(stream.tty) + } catch (e) { + throw new FS.ErrnoError(29) + } + if (result === undefined && bytesRead === 0) { + throw new FS.ErrnoError(6) + } + if (result === null || result === undefined) break; + bytesRead++; + buffer[offset + i] = result + } + if (bytesRead) { + stream.node.timestamp = Date.now() + } + return bytesRead + }, write: function (stream, buffer, offset, length, pos) { + if (!stream.tty || !stream.tty.ops.put_char) { + throw new FS.ErrnoError(60) + } + try { + for (var i = 0; i < length; i++) { + stream.tty.ops.put_char(stream.tty, buffer[offset + i]) + } + } catch (e) { + throw new FS.ErrnoError(29) + } + if (length) { + stream.node.timestamp = Date.now() + } + return i + } + }, default_tty_ops: { + get_char: function (tty) { + if (!tty.input.length) { + var result = null; + if (ENVIRONMENT_IS_NODE) { + var BUFSIZE = 256; + var buf = Buffer.alloc ? Buffer.alloc(BUFSIZE) : new Buffer(BUFSIZE); + var bytesRead = 0; + try { + bytesRead = nodeFS.readSync(process.stdin.fd, buf, 0, BUFSIZE, null) + } catch (e) { + if (e.toString().indexOf("EOF") != -1) bytesRead = 0; else throw e + } + if (bytesRead > 0) { + result = buf.slice(0, bytesRead).toString("utf-8") + } else { + result = null + } + } else if (typeof window != "undefined" && typeof window.prompt == "function") { + result = window.prompt("Input: "); + if (result !== null) { + result += "\n" + } + } else if (typeof readline == "function") { + result = readline(); + if (result !== null) { + result += "\n" + } + } + if (!result) { + return null + } + tty.input = intArrayFromString(result, true) + } + return tty.input.shift() + }, put_char: function (tty, val) { + if (val === null || val === 10) { + out(UTF8ArrayToString(tty.output, 0)); + tty.output = [] + } else { + if (val != 0) tty.output.push(val) + } + }, flush: function (tty) { + if (tty.output && tty.output.length > 0) { + out(UTF8ArrayToString(tty.output, 0)); + tty.output = [] + } + } + }, default_tty1_ops: { + put_char: function (tty, val) { + if (val === null || val === 10) { + err(UTF8ArrayToString(tty.output, 0)); + tty.output = [] + } else { + if (val != 0) tty.output.push(val) + } + }, flush: function (tty) { + if (tty.output && tty.output.length > 0) { + err(UTF8ArrayToString(tty.output, 0)); + tty.output = [] + } + } + } + }; + var MEMFS = { + ops_table: null, mount: function (mount) { + return MEMFS.createNode(null, "/", 16384 | 511, 0) + }, createNode: function (parent, name, mode, dev) { + if (FS.isBlkdev(mode) || FS.isFIFO(mode)) { + throw new FS.ErrnoError(63) + } + if (!MEMFS.ops_table) { + MEMFS.ops_table = { + dir: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr, + lookup: MEMFS.node_ops.lookup, + mknod: MEMFS.node_ops.mknod, + rename: MEMFS.node_ops.rename, + unlink: MEMFS.node_ops.unlink, + rmdir: MEMFS.node_ops.rmdir, + readdir: MEMFS.node_ops.readdir, + symlink: MEMFS.node_ops.symlink + }, stream: {llseek: MEMFS.stream_ops.llseek} + }, + file: { + node: {getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr}, + stream: { + llseek: MEMFS.stream_ops.llseek, + read: MEMFS.stream_ops.read, + write: MEMFS.stream_ops.write, + allocate: MEMFS.stream_ops.allocate, + mmap: MEMFS.stream_ops.mmap, + msync: MEMFS.stream_ops.msync + } + }, + link: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr, + readlink: MEMFS.node_ops.readlink + }, stream: {} + }, + chrdev: { + node: {getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr}, + stream: FS.chrdev_stream_ops + } + } + } + var node = FS.createNode(parent, name, mode, dev); + if (FS.isDir(node.mode)) { + node.node_ops = MEMFS.ops_table.dir.node; + node.stream_ops = MEMFS.ops_table.dir.stream; + node.contents = {} + } else if (FS.isFile(node.mode)) { + node.node_ops = MEMFS.ops_table.file.node; + node.stream_ops = MEMFS.ops_table.file.stream; + node.usedBytes = 0; + node.contents = null + } else if (FS.isLink(node.mode)) { + node.node_ops = MEMFS.ops_table.link.node; + node.stream_ops = MEMFS.ops_table.link.stream + } else if (FS.isChrdev(node.mode)) { + node.node_ops = MEMFS.ops_table.chrdev.node; + node.stream_ops = MEMFS.ops_table.chrdev.stream + } + node.timestamp = Date.now(); + if (parent) { + parent.contents[name] = node + } + return node + }, getFileDataAsRegularArray: function (node) { + if (node.contents && node.contents.subarray) { + var arr = []; + for (var i = 0; i < node.usedBytes; ++i) arr.push(node.contents[i]); + return arr + } + return node.contents + }, getFileDataAsTypedArray: function (node) { + if (!node.contents) return new Uint8Array(0); + if (node.contents.subarray) return node.contents.subarray(0, node.usedBytes); + return new Uint8Array(node.contents) + }, expandFileStorage: function (node, newCapacity) { + var prevCapacity = node.contents ? node.contents.length : 0; + if (prevCapacity >= newCapacity) return; + var CAPACITY_DOUBLING_MAX = 1024 * 1024; + newCapacity = Math.max(newCapacity, prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2 : 1.125) >>> 0); + if (prevCapacity != 0) newCapacity = Math.max(newCapacity, 256); + var oldContents = node.contents; + node.contents = new Uint8Array(newCapacity); + if (node.usedBytes > 0) node.contents.set(oldContents.subarray(0, node.usedBytes), 0); + return + }, resizeFileStorage: function (node, newSize) { + if (node.usedBytes == newSize) return; + if (newSize == 0) { + node.contents = null; + node.usedBytes = 0; + return + } + if (!node.contents || node.contents.subarray) { + var oldContents = node.contents; + node.contents = new Uint8Array(newSize); + if (oldContents) { + node.contents.set(oldContents.subarray(0, Math.min(newSize, node.usedBytes))) + } + node.usedBytes = newSize; + return + } + if (!node.contents) node.contents = []; + if (node.contents.length > newSize) node.contents.length = newSize; else while (node.contents.length < newSize) node.contents.push(0); + node.usedBytes = newSize + }, node_ops: { + getattr: function (node) { + var attr = {}; + attr.dev = FS.isChrdev(node.mode) ? node.id : 1; + attr.ino = node.id; + attr.mode = node.mode; + attr.nlink = 1; + attr.uid = 0; + attr.gid = 0; + attr.rdev = node.rdev; + if (FS.isDir(node.mode)) { + attr.size = 4096 + } else if (FS.isFile(node.mode)) { + attr.size = node.usedBytes + } else if (FS.isLink(node.mode)) { + attr.size = node.link.length + } else { + attr.size = 0 + } + attr.atime = new Date(node.timestamp); + attr.mtime = new Date(node.timestamp); + attr.ctime = new Date(node.timestamp); + attr.blksize = 4096; + attr.blocks = Math.ceil(attr.size / attr.blksize); + return attr + }, setattr: function (node, attr) { + if (attr.mode !== undefined) { + node.mode = attr.mode + } + if (attr.timestamp !== undefined) { + node.timestamp = attr.timestamp + } + if (attr.size !== undefined) { + MEMFS.resizeFileStorage(node, attr.size) + } + }, lookup: function (parent, name) { + throw FS.genericErrors[44] + }, mknod: function (parent, name, mode, dev) { + return MEMFS.createNode(parent, name, mode, dev) + }, rename: function (old_node, new_dir, new_name) { + if (FS.isDir(old_node.mode)) { + var new_node; + try { + new_node = FS.lookupNode(new_dir, new_name) + } catch (e) { + } + if (new_node) { + for (var i in new_node.contents) { + throw new FS.ErrnoError(55) + } + } + } + delete old_node.parent.contents[old_node.name]; + old_node.name = new_name; + new_dir.contents[new_name] = old_node; + old_node.parent = new_dir + }, unlink: function (parent, name) { + delete parent.contents[name] + }, rmdir: function (parent, name) { + var node = FS.lookupNode(parent, name); + for (var i in node.contents) { + throw new FS.ErrnoError(55) + } + delete parent.contents[name] + }, readdir: function (node) { + var entries = [".", ".."]; + for (var key in node.contents) { + if (!node.contents.hasOwnProperty(key)) { + continue + } + entries.push(key) + } + return entries + }, symlink: function (parent, newname, oldpath) { + var node = MEMFS.createNode(parent, newname, 511 | 40960, 0); + node.link = oldpath; + return node + }, readlink: function (node) { + if (!FS.isLink(node.mode)) { + throw new FS.ErrnoError(28) + } + return node.link + } + }, stream_ops: { + read: function (stream, buffer, offset, length, position) { + var contents = stream.node.contents; + if (position >= stream.node.usedBytes) return 0; + var size = Math.min(stream.node.usedBytes - position, length); + if (size > 8 && contents.subarray) { + buffer.set(contents.subarray(position, position + size), offset) + } else { + for (var i = 0; i < size; i++) buffer[offset + i] = contents[position + i] + } + return size + }, write: function (stream, buffer, offset, length, position, canOwn) { + if (buffer.buffer === HEAP8.buffer) { + canOwn = false + } + if (!length) return 0; + var node = stream.node; + node.timestamp = Date.now(); + if (buffer.subarray && (!node.contents || node.contents.subarray)) { + if (canOwn) { + node.contents = buffer.subarray(offset, offset + length); + node.usedBytes = length; + return length + } else if (node.usedBytes === 0 && position === 0) { + node.contents = buffer.slice(offset, offset + length); + node.usedBytes = length; + return length + } else if (position + length <= node.usedBytes) { + node.contents.set(buffer.subarray(offset, offset + length), position); + return length + } + } + MEMFS.expandFileStorage(node, position + length); + if (node.contents.subarray && buffer.subarray) { + node.contents.set(buffer.subarray(offset, offset + length), position) + } else { + for (var i = 0; i < length; i++) { + node.contents[position + i] = buffer[offset + i] + } + } + node.usedBytes = Math.max(node.usedBytes, position + length); + return length + }, llseek: function (stream, offset, whence) { + var position = offset; + if (whence === 1) { + position += stream.position + } else if (whence === 2) { + if (FS.isFile(stream.node.mode)) { + position += stream.node.usedBytes + } + } + if (position < 0) { + throw new FS.ErrnoError(28) + } + return position + }, allocate: function (stream, offset, length) { + MEMFS.expandFileStorage(stream.node, offset + length); + stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length) + }, mmap: function (stream, address, length, position, prot, flags) { + assert(address === 0); + if (!FS.isFile(stream.node.mode)) { + throw new FS.ErrnoError(43) + } + var ptr; + var allocated; + var contents = stream.node.contents; + if (!(flags & 2) && contents.buffer === buffer) { + allocated = false; + ptr = contents.byteOffset + } else { + if (position > 0 || position + length < contents.length) { + if (contents.subarray) { + contents = contents.subarray(position, position + length) + } else { + contents = Array.prototype.slice.call(contents, position, position + length) + } + } + allocated = true; + ptr = FS.mmapAlloc(length); + if (!ptr) { + throw new FS.ErrnoError(48) + } + HEAP8.set(contents, ptr) + } + return {ptr: ptr, allocated: allocated} + }, msync: function (stream, buffer, offset, length, mmapFlags) { + if (!FS.isFile(stream.node.mode)) { + throw new FS.ErrnoError(43) + } + if (mmapFlags & 2) { + return 0 + } + var bytesWritten = MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false); + return 0 + } + } + }; + var FS = { + root: null, + mounts: [], + devices: {}, + streams: [], + nextInode: 1, + nameTable: null, + currentPath: "/", + initialized: false, + ignorePermissions: true, + trackingDelegate: {}, + tracking: {openFlags: {READ: 1, WRITE: 2}}, + ErrnoError: null, + genericErrors: {}, + filesystems: null, + syncFSRequests: 0, + handleFSError: function (e) { + if (!(e instanceof FS.ErrnoError)) throw e + " : " + stackTrace(); + return setErrNo(e.errno) + }, + lookupPath: function (path, opts) { + path = PATH_FS.resolve(FS.cwd(), path); + opts = opts || {}; + if (!path) return {path: "", node: null}; + var defaults = {follow_mount: true, recurse_count: 0}; + for (var key in defaults) { + if (opts[key] === undefined) { + opts[key] = defaults[key] + } + } + if (opts.recurse_count > 8) { + throw new FS.ErrnoError(32) + } + var parts = PATH.normalizeArray(path.split("/").filter(function (p) { + return !!p + }), false); + var current = FS.root; + var current_path = "/"; + for (var i = 0; i < parts.length; i++) { + var islast = i === parts.length - 1; + if (islast && opts.parent) { + break + } + current = FS.lookupNode(current, parts[i]); + current_path = PATH.join2(current_path, parts[i]); + if (FS.isMountpoint(current)) { + if (!islast || islast && opts.follow_mount) { + current = current.mounted.root + } + } + if (!islast || opts.follow) { + var count = 0; + while (FS.isLink(current.mode)) { + var link = FS.readlink(current_path); + current_path = PATH_FS.resolve(PATH.dirname(current_path), link); + var lookup = FS.lookupPath(current_path, {recurse_count: opts.recurse_count}); + current = lookup.node; + if (count++ > 40) { + throw new FS.ErrnoError(32) + } + } + } + } + return {path: current_path, node: current} + }, + getPath: function (node) { + var path; + while (true) { + if (FS.isRoot(node)) { + var mount = node.mount.mountpoint; + if (!path) return mount; + return mount[mount.length - 1] !== "/" ? mount + "/" + path : mount + path + } + path = path ? node.name + "/" + path : node.name; + node = node.parent + } + }, + hashName: function (parentid, name) { + var hash = 0; + for (var i = 0; i < name.length; i++) { + hash = (hash << 5) - hash + name.charCodeAt(i) | 0 + } + return (parentid + hash >>> 0) % FS.nameTable.length + }, + hashAddNode: function (node) { + var hash = FS.hashName(node.parent.id, node.name); + node.name_next = FS.nameTable[hash]; + FS.nameTable[hash] = node + }, + hashRemoveNode: function (node) { + var hash = FS.hashName(node.parent.id, node.name); + if (FS.nameTable[hash] === node) { + FS.nameTable[hash] = node.name_next + } else { + var current = FS.nameTable[hash]; + while (current) { + if (current.name_next === node) { + current.name_next = node.name_next; + break + } + current = current.name_next + } + } + }, + lookupNode: function (parent, name) { + var errCode = FS.mayLookup(parent); + if (errCode) { + throw new FS.ErrnoError(errCode, parent) + } + var hash = FS.hashName(parent.id, name); + for (var node = FS.nameTable[hash]; node; node = node.name_next) { + var nodeName = node.name; + if (node.parent.id === parent.id && nodeName === name) { + return node + } + } + return FS.lookup(parent, name) + }, + createNode: function (parent, name, mode, rdev) { + var node = new FS.FSNode(parent, name, mode, rdev); + FS.hashAddNode(node); + return node + }, + destroyNode: function (node) { + FS.hashRemoveNode(node) + }, + isRoot: function (node) { + return node === node.parent + }, + isMountpoint: function (node) { + return !!node.mounted + }, + isFile: function (mode) { + return (mode & 61440) === 32768 + }, + isDir: function (mode) { + return (mode & 61440) === 16384 + }, + isLink: function (mode) { + return (mode & 61440) === 40960 + }, + isChrdev: function (mode) { + return (mode & 61440) === 8192 + }, + isBlkdev: function (mode) { + return (mode & 61440) === 24576 + }, + isFIFO: function (mode) { + return (mode & 61440) === 4096 + }, + isSocket: function (mode) { + return (mode & 49152) === 49152 + }, + flagModes: { + "r": 0, + "rs": 1052672, + "r+": 2, + "w": 577, + "wx": 705, + "xw": 705, + "w+": 578, + "wx+": 706, + "xw+": 706, + "a": 1089, + "ax": 1217, + "xa": 1217, + "a+": 1090, + "ax+": 1218, + "xa+": 1218 + }, + modeStringToFlags: function (str) { + var flags = FS.flagModes[str]; + if (typeof flags === "undefined") { + throw new Error("Unknown file open mode: " + str) + } + return flags + }, + flagsToPermissionString: function (flag) { + var perms = ["r", "w", "rw"][flag & 3]; + if (flag & 512) { + perms += "w" + } + return perms + }, + nodePermissions: function (node, perms) { + if (FS.ignorePermissions) { + return 0 + } + if (perms.indexOf("r") !== -1 && !(node.mode & 292)) { + return 2 + } else if (perms.indexOf("w") !== -1 && !(node.mode & 146)) { + return 2 + } else if (perms.indexOf("x") !== -1 && !(node.mode & 73)) { + return 2 + } + return 0 + }, + mayLookup: function (dir) { + var errCode = FS.nodePermissions(dir, "x"); + if (errCode) return errCode; + if (!dir.node_ops.lookup) return 2; + return 0 + }, + mayCreate: function (dir, name) { + try { + var node = FS.lookupNode(dir, name); + return 20 + } catch (e) { + } + return FS.nodePermissions(dir, "wx") + }, + mayDelete: function (dir, name, isdir) { + var node; + try { + node = FS.lookupNode(dir, name) + } catch (e) { + return e.errno + } + var errCode = FS.nodePermissions(dir, "wx"); + if (errCode) { + return errCode + } + if (isdir) { + if (!FS.isDir(node.mode)) { + return 54 + } + if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) { + return 10 + } + } else { + if (FS.isDir(node.mode)) { + return 31 + } + } + return 0 + }, + mayOpen: function (node, flags) { + if (!node) { + return 44 + } + if (FS.isLink(node.mode)) { + return 32 + } else if (FS.isDir(node.mode)) { + if (FS.flagsToPermissionString(flags) !== "r" || flags & 512) { + return 31 + } + } + return FS.nodePermissions(node, FS.flagsToPermissionString(flags)) + }, + MAX_OPEN_FDS: 4096, + nextfd: function (fd_start, fd_end) { + fd_start = fd_start || 0; + fd_end = fd_end || FS.MAX_OPEN_FDS; + for (var fd = fd_start; fd <= fd_end; fd++) { + if (!FS.streams[fd]) { + return fd + } + } + throw new FS.ErrnoError(33) + }, + getStream: function (fd) { + return FS.streams[fd] + }, + createStream: function (stream, fd_start, fd_end) { + if (!FS.FSStream) { + FS.FSStream = function () { + }; + FS.FSStream.prototype = { + object: { + get: function () { + return this.node + }, set: function (val) { + this.node = val + } + }, isRead: { + get: function () { + return (this.flags & 2097155) !== 1 + } + }, isWrite: { + get: function () { + return (this.flags & 2097155) !== 0 + } + }, isAppend: { + get: function () { + return this.flags & 1024 + } + } + } + } + var newStream = new FS.FSStream; + for (var p in stream) { + newStream[p] = stream[p] + } + stream = newStream; + var fd = FS.nextfd(fd_start, fd_end); + stream.fd = fd; + FS.streams[fd] = stream; + return stream + }, + closeStream: function (fd) { + FS.streams[fd] = null + }, + chrdev_stream_ops: { + open: function (stream) { + var device = FS.getDevice(stream.node.rdev); + stream.stream_ops = device.stream_ops; + if (stream.stream_ops.open) { + stream.stream_ops.open(stream) + } + }, llseek: function () { + throw new FS.ErrnoError(70) + } + }, + major: function (dev) { + return dev >> 8 + }, + minor: function (dev) { + return dev & 255 + }, + makedev: function (ma, mi) { + return ma << 8 | mi + }, + registerDevice: function (dev, ops) { + FS.devices[dev] = {stream_ops: ops} + }, + getDevice: function (dev) { + return FS.devices[dev] + }, + getMounts: function (mount) { + var mounts = []; + var check = [mount]; + while (check.length) { + var m = check.pop(); + mounts.push(m); + check.push.apply(check, m.mounts) + } + return mounts + }, + syncfs: function (populate, callback) { + if (typeof populate === "function") { + callback = populate; + populate = false + } + FS.syncFSRequests++; + if (FS.syncFSRequests > 1) { + err("warning: " + FS.syncFSRequests + " FS.syncfs operations in flight at once, probably just doing extra work") + } + var mounts = FS.getMounts(FS.root.mount); + var completed = 0; + + function doCallback(errCode) { + FS.syncFSRequests--; + return callback(errCode) + } + + function done(errCode) { + if (errCode) { + if (!done.errored) { + done.errored = true; + return doCallback(errCode) + } + return + } + if (++completed >= mounts.length) { + doCallback(null) + } + } + + mounts.forEach(function (mount) { + if (!mount.type.syncfs) { + return done(null) + } + mount.type.syncfs(mount, populate, done) + }) + }, + mount: function (type, opts, mountpoint) { + var root = mountpoint === "/"; + var pseudo = !mountpoint; + var node; + if (root && FS.root) { + throw new FS.ErrnoError(10) + } else if (!root && !pseudo) { + var lookup = FS.lookupPath(mountpoint, {follow_mount: false}); + mountpoint = lookup.path; + node = lookup.node; + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(10) + } + if (!FS.isDir(node.mode)) { + throw new FS.ErrnoError(54) + } + } + var mount = {type: type, opts: opts, mountpoint: mountpoint, mounts: []}; + var mountRoot = type.mount(mount); + mountRoot.mount = mount; + mount.root = mountRoot; + if (root) { + FS.root = mountRoot + } else if (node) { + node.mounted = mount; + if (node.mount) { + node.mount.mounts.push(mount) + } + } + return mountRoot + }, + unmount: function (mountpoint) { + var lookup = FS.lookupPath(mountpoint, {follow_mount: false}); + if (!FS.isMountpoint(lookup.node)) { + throw new FS.ErrnoError(28) + } + var node = lookup.node; + var mount = node.mounted; + var mounts = FS.getMounts(mount); + Object.keys(FS.nameTable).forEach(function (hash) { + var current = FS.nameTable[hash]; + while (current) { + var next = current.name_next; + if (mounts.indexOf(current.mount) !== -1) { + FS.destroyNode(current) + } + current = next + } + }); + node.mounted = null; + var idx = node.mount.mounts.indexOf(mount); + node.mount.mounts.splice(idx, 1) + }, + lookup: function (parent, name) { + return parent.node_ops.lookup(parent, name) + }, + mknod: function (path, mode, dev) { + var lookup = FS.lookupPath(path, {parent: true}); + var parent = lookup.node; + var name = PATH.basename(path); + if (!name || name === "." || name === "..") { + throw new FS.ErrnoError(28) + } + var errCode = FS.mayCreate(parent, name); + if (errCode) { + throw new FS.ErrnoError(errCode) + } + if (!parent.node_ops.mknod) { + throw new FS.ErrnoError(63) + } + return parent.node_ops.mknod(parent, name, mode, dev) + }, + create: function (path, mode) { + mode = mode !== undefined ? mode : 438; + mode &= 4095; + mode |= 32768; + return FS.mknod(path, mode, 0) + }, + mkdir: function (path, mode) { + mode = mode !== undefined ? mode : 511; + mode &= 511 | 512; + mode |= 16384; + return FS.mknod(path, mode, 0) + }, + mkdirTree: function (path, mode) { + var dirs = path.split("/"); + var d = ""; + for (var i = 0; i < dirs.length; ++i) { + if (!dirs[i]) continue; + d += "/" + dirs[i]; + try { + FS.mkdir(d, mode) + } catch (e) { + if (e.errno != 20) throw e + } + } + }, + mkdev: function (path, mode, dev) { + if (typeof dev === "undefined") { + dev = mode; + mode = 438 + } + mode |= 8192; + return FS.mknod(path, mode, dev) + }, + symlink: function (oldpath, newpath) { + if (!PATH_FS.resolve(oldpath)) { + throw new FS.ErrnoError(44) + } + var lookup = FS.lookupPath(newpath, {parent: true}); + var parent = lookup.node; + if (!parent) { + throw new FS.ErrnoError(44) + } + var newname = PATH.basename(newpath); + var errCode = FS.mayCreate(parent, newname); + if (errCode) { + throw new FS.ErrnoError(errCode) + } + if (!parent.node_ops.symlink) { + throw new FS.ErrnoError(63) + } + return parent.node_ops.symlink(parent, newname, oldpath) + }, + rename: function (old_path, new_path) { + var old_dirname = PATH.dirname(old_path); + var new_dirname = PATH.dirname(new_path); + var old_name = PATH.basename(old_path); + var new_name = PATH.basename(new_path); + var lookup, old_dir, new_dir; + try { + lookup = FS.lookupPath(old_path, {parent: true}); + old_dir = lookup.node; + lookup = FS.lookupPath(new_path, {parent: true}); + new_dir = lookup.node + } catch (e) { + throw new FS.ErrnoError(10) + } + if (!old_dir || !new_dir) throw new FS.ErrnoError(44); + if (old_dir.mount !== new_dir.mount) { + throw new FS.ErrnoError(75) + } + var old_node = FS.lookupNode(old_dir, old_name); + var relative = PATH_FS.relative(old_path, new_dirname); + if (relative.charAt(0) !== ".") { + throw new FS.ErrnoError(28) + } + relative = PATH_FS.relative(new_path, old_dirname); + if (relative.charAt(0) !== ".") { + throw new FS.ErrnoError(55) + } + var new_node; + try { + new_node = FS.lookupNode(new_dir, new_name) + } catch (e) { + } + if (old_node === new_node) { + return + } + var isdir = FS.isDir(old_node.mode); + var errCode = FS.mayDelete(old_dir, old_name, isdir); + if (errCode) { + throw new FS.ErrnoError(errCode) + } + errCode = new_node ? FS.mayDelete(new_dir, new_name, isdir) : FS.mayCreate(new_dir, new_name); + if (errCode) { + throw new FS.ErrnoError(errCode) + } + if (!old_dir.node_ops.rename) { + throw new FS.ErrnoError(63) + } + if (FS.isMountpoint(old_node) || new_node && FS.isMountpoint(new_node)) { + throw new FS.ErrnoError(10) + } + if (new_dir !== old_dir) { + errCode = FS.nodePermissions(old_dir, "w"); + if (errCode) { + throw new FS.ErrnoError(errCode) + } + } + try { + if (FS.trackingDelegate["willMovePath"]) { + FS.trackingDelegate["willMovePath"](old_path, new_path) + } + } catch (e) { + err("FS.trackingDelegate['willMovePath']('" + old_path + "', '" + new_path + "') threw an exception: " + e.message) + } + FS.hashRemoveNode(old_node); + try { + old_dir.node_ops.rename(old_node, new_dir, new_name) + } catch (e) { + throw e + } finally { + FS.hashAddNode(old_node) + } + try { + if (FS.trackingDelegate["onMovePath"]) FS.trackingDelegate["onMovePath"](old_path, new_path) + } catch (e) { + err("FS.trackingDelegate['onMovePath']('" + old_path + "', '" + new_path + "') threw an exception: " + e.message) + } + }, + rmdir: function (path) { + var lookup = FS.lookupPath(path, {parent: true}); + var parent = lookup.node; + var name = PATH.basename(path); + var node = FS.lookupNode(parent, name); + var errCode = FS.mayDelete(parent, name, true); + if (errCode) { + throw new FS.ErrnoError(errCode) + } + if (!parent.node_ops.rmdir) { + throw new FS.ErrnoError(63) + } + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(10) + } + try { + if (FS.trackingDelegate["willDeletePath"]) { + FS.trackingDelegate["willDeletePath"](path) + } + } catch (e) { + err("FS.trackingDelegate['willDeletePath']('" + path + "') threw an exception: " + e.message) + } + parent.node_ops.rmdir(parent, name); + FS.destroyNode(node); + try { + if (FS.trackingDelegate["onDeletePath"]) FS.trackingDelegate["onDeletePath"](path) + } catch (e) { + err("FS.trackingDelegate['onDeletePath']('" + path + "') threw an exception: " + e.message) + } + }, + readdir: function (path) { + var lookup = FS.lookupPath(path, {follow: true}); + var node = lookup.node; + if (!node.node_ops.readdir) { + throw new FS.ErrnoError(54) + } + return node.node_ops.readdir(node) + }, + unlink: function (path) { + var lookup = FS.lookupPath(path, {parent: true}); + var parent = lookup.node; + var name = PATH.basename(path); + var node = FS.lookupNode(parent, name); + var errCode = FS.mayDelete(parent, name, false); + if (errCode) { + throw new FS.ErrnoError(errCode) + } + if (!parent.node_ops.unlink) { + throw new FS.ErrnoError(63) + } + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(10) + } + try { + if (FS.trackingDelegate["willDeletePath"]) { + FS.trackingDelegate["willDeletePath"](path) + } + } catch (e) { + err("FS.trackingDelegate['willDeletePath']('" + path + "') threw an exception: " + e.message) + } + parent.node_ops.unlink(parent, name); + FS.destroyNode(node); + try { + if (FS.trackingDelegate["onDeletePath"]) FS.trackingDelegate["onDeletePath"](path) + } catch (e) { + err("FS.trackingDelegate['onDeletePath']('" + path + "') threw an exception: " + e.message) + } + }, + readlink: function (path) { + var lookup = FS.lookupPath(path); + var link = lookup.node; + if (!link) { + throw new FS.ErrnoError(44) + } + if (!link.node_ops.readlink) { + throw new FS.ErrnoError(28) + } + return PATH_FS.resolve(FS.getPath(link.parent), link.node_ops.readlink(link)) + }, + stat: function (path, dontFollow) { + var lookup = FS.lookupPath(path, {follow: !dontFollow}); + var node = lookup.node; + if (!node) { + throw new FS.ErrnoError(44) + } + if (!node.node_ops.getattr) { + throw new FS.ErrnoError(63) + } + return node.node_ops.getattr(node) + }, + lstat: function (path) { + return FS.stat(path, true) + }, + chmod: function (path, mode, dontFollow) { + var node; + if (typeof path === "string") { + var lookup = FS.lookupPath(path, {follow: !dontFollow}); + node = lookup.node + } else { + node = path + } + if (!node.node_ops.setattr) { + throw new FS.ErrnoError(63) + } + node.node_ops.setattr(node, {mode: mode & 4095 | node.mode & ~4095, timestamp: Date.now()}) + }, + lchmod: function (path, mode) { + FS.chmod(path, mode, true) + }, + fchmod: function (fd, mode) { + var stream = FS.getStream(fd); + if (!stream) { + throw new FS.ErrnoError(8) + } + FS.chmod(stream.node, mode) + }, + chown: function (path, uid, gid, dontFollow) { + var node; + if (typeof path === "string") { + var lookup = FS.lookupPath(path, {follow: !dontFollow}); + node = lookup.node + } else { + node = path + } + if (!node.node_ops.setattr) { + throw new FS.ErrnoError(63) + } + node.node_ops.setattr(node, {timestamp: Date.now()}) + }, + lchown: function (path, uid, gid) { + FS.chown(path, uid, gid, true) + }, + fchown: function (fd, uid, gid) { + var stream = FS.getStream(fd); + if (!stream) { + throw new FS.ErrnoError(8) + } + FS.chown(stream.node, uid, gid) + }, + truncate: function (path, len) { + if (len < 0) { + throw new FS.ErrnoError(28) + } + var node; + if (typeof path === "string") { + var lookup = FS.lookupPath(path, {follow: true}); + node = lookup.node + } else { + node = path + } + if (!node.node_ops.setattr) { + throw new FS.ErrnoError(63) + } + if (FS.isDir(node.mode)) { + throw new FS.ErrnoError(31) + } + if (!FS.isFile(node.mode)) { + throw new FS.ErrnoError(28) + } + var errCode = FS.nodePermissions(node, "w"); + if (errCode) { + throw new FS.ErrnoError(errCode) + } + node.node_ops.setattr(node, {size: len, timestamp: Date.now()}) + }, + ftruncate: function (fd, len) { + var stream = FS.getStream(fd); + if (!stream) { + throw new FS.ErrnoError(8) + } + if ((stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(28) + } + FS.truncate(stream.node, len) + }, + utime: function (path, atime, mtime) { + var lookup = FS.lookupPath(path, {follow: true}); + var node = lookup.node; + node.node_ops.setattr(node, {timestamp: Math.max(atime, mtime)}) + }, + open: function (path, flags, mode, fd_start, fd_end) { + if (path === "") { + throw new FS.ErrnoError(44) + } + flags = typeof flags === "string" ? FS.modeStringToFlags(flags) : flags; + mode = typeof mode === "undefined" ? 438 : mode; + if (flags & 64) { + mode = mode & 4095 | 32768 + } else { + mode = 0 + } + var node; + if (typeof path === "object") { + node = path + } else { + path = PATH.normalize(path); + try { + var lookup = FS.lookupPath(path, {follow: !(flags & 131072)}); + node = lookup.node + } catch (e) { + } + } + var created = false; + if (flags & 64) { + if (node) { + if (flags & 128) { + throw new FS.ErrnoError(20) + } + } else { + node = FS.mknod(path, mode, 0); + created = true + } + } + if (!node) { + throw new FS.ErrnoError(44) + } + if (FS.isChrdev(node.mode)) { + flags &= ~512 + } + if (flags & 65536 && !FS.isDir(node.mode)) { + throw new FS.ErrnoError(54) + } + if (!created) { + var errCode = FS.mayOpen(node, flags); + if (errCode) { + throw new FS.ErrnoError(errCode) + } + } + if (flags & 512) { + FS.truncate(node, 0) + } + flags &= ~(128 | 512 | 131072); + var stream = FS.createStream({ + node: node, + path: FS.getPath(node), + flags: flags, + seekable: true, + position: 0, + stream_ops: node.stream_ops, + ungotten: [], + error: false + }, fd_start, fd_end); + if (stream.stream_ops.open) { + stream.stream_ops.open(stream) + } + if (Module["logReadFiles"] && !(flags & 1)) { + if (!FS.readFiles) FS.readFiles = {}; + if (!(path in FS.readFiles)) { + FS.readFiles[path] = 1; + err("FS.trackingDelegate error on read file: " + path) + } + } + try { + if (FS.trackingDelegate["onOpenFile"]) { + var trackingFlags = 0; + if ((flags & 2097155) !== 1) { + trackingFlags |= FS.tracking.openFlags.READ + } + if ((flags & 2097155) !== 0) { + trackingFlags |= FS.tracking.openFlags.WRITE + } + FS.trackingDelegate["onOpenFile"](path, trackingFlags) + } + } catch (e) { + err("FS.trackingDelegate['onOpenFile']('" + path + "', flags) threw an exception: " + e.message) + } + return stream + }, + close: function (stream) { + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8) + } + if (stream.getdents) stream.getdents = null; + try { + if (stream.stream_ops.close) { + stream.stream_ops.close(stream) + } + } catch (e) { + throw e + } finally { + FS.closeStream(stream.fd) + } + stream.fd = null + }, + isClosed: function (stream) { + return stream.fd === null + }, + llseek: function (stream, offset, whence) { + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8) + } + if (!stream.seekable || !stream.stream_ops.llseek) { + throw new FS.ErrnoError(70) + } + if (whence != 0 && whence != 1 && whence != 2) { + throw new FS.ErrnoError(28) + } + stream.position = stream.stream_ops.llseek(stream, offset, whence); + stream.ungotten = []; + return stream.position + }, + read: function (stream, buffer, offset, length, position) { + if (length < 0 || position < 0) { + throw new FS.ErrnoError(28) + } + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8) + } + if ((stream.flags & 2097155) === 1) { + throw new FS.ErrnoError(8) + } + if (FS.isDir(stream.node.mode)) { + throw new FS.ErrnoError(31) + } + if (!stream.stream_ops.read) { + throw new FS.ErrnoError(28) + } + var seeking = typeof position !== "undefined"; + if (!seeking) { + position = stream.position + } else if (!stream.seekable) { + throw new FS.ErrnoError(70) + } + var bytesRead = stream.stream_ops.read(stream, buffer, offset, length, position); + if (!seeking) stream.position += bytesRead; + return bytesRead + }, + write: function (stream, buffer, offset, length, position, canOwn) { + if (length < 0 || position < 0) { + throw new FS.ErrnoError(28) + } + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8) + } + if ((stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(8) + } + if (FS.isDir(stream.node.mode)) { + throw new FS.ErrnoError(31) + } + if (!stream.stream_ops.write) { + throw new FS.ErrnoError(28) + } + if (stream.seekable && stream.flags & 1024) { + FS.llseek(stream, 0, 2) + } + var seeking = typeof position !== "undefined"; + if (!seeking) { + position = stream.position + } else if (!stream.seekable) { + throw new FS.ErrnoError(70) + } + var bytesWritten = stream.stream_ops.write(stream, buffer, offset, length, position, canOwn); + if (!seeking) stream.position += bytesWritten; + try { + if (stream.path && FS.trackingDelegate["onWriteToFile"]) FS.trackingDelegate["onWriteToFile"](stream.path) + } catch (e) { + err("FS.trackingDelegate['onWriteToFile']('" + stream.path + "') threw an exception: " + e.message) + } + return bytesWritten + }, + allocate: function (stream, offset, length) { + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8) + } + if (offset < 0 || length <= 0) { + throw new FS.ErrnoError(28) + } + if ((stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(8) + } + if (!FS.isFile(stream.node.mode) && !FS.isDir(stream.node.mode)) { + throw new FS.ErrnoError(43) + } + if (!stream.stream_ops.allocate) { + throw new FS.ErrnoError(138) + } + stream.stream_ops.allocate(stream, offset, length) + }, + mmap: function (stream, address, length, position, prot, flags) { + if ((prot & 2) !== 0 && (flags & 2) === 0 && (stream.flags & 2097155) !== 2) { + throw new FS.ErrnoError(2) + } + if ((stream.flags & 2097155) === 1) { + throw new FS.ErrnoError(2) + } + if (!stream.stream_ops.mmap) { + throw new FS.ErrnoError(43) + } + return stream.stream_ops.mmap(stream, address, length, position, prot, flags) + }, + msync: function (stream, buffer, offset, length, mmapFlags) { + if (!stream || !stream.stream_ops.msync) { + return 0 + } + return stream.stream_ops.msync(stream, buffer, offset, length, mmapFlags) + }, + munmap: function (stream) { + return 0 + }, + ioctl: function (stream, cmd, arg) { + if (!stream.stream_ops.ioctl) { + throw new FS.ErrnoError(59) + } + return stream.stream_ops.ioctl(stream, cmd, arg) + }, + readFile: function (path, opts) { + opts = opts || {}; + opts.flags = opts.flags || "r"; + opts.encoding = opts.encoding || "binary"; + if (opts.encoding !== "utf8" && opts.encoding !== "binary") { + throw new Error('Invalid encoding type "' + opts.encoding + '"') + } + var ret; + var stream = FS.open(path, opts.flags); + var stat = FS.stat(path); + var length = stat.size; + var buf = new Uint8Array(length); + FS.read(stream, buf, 0, length, 0); + if (opts.encoding === "utf8") { + ret = UTF8ArrayToString(buf, 0) + } else if (opts.encoding === "binary") { + ret = buf + } + FS.close(stream); + return ret + }, + writeFile: function (path, data, opts) { + opts = opts || {}; + opts.flags = opts.flags || "w"; + var stream = FS.open(path, opts.flags, opts.mode); + if (typeof data === "string") { + var buf = new Uint8Array(lengthBytesUTF8(data) + 1); + var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length); + FS.write(stream, buf, 0, actualNumBytes, undefined, opts.canOwn) + } else if (ArrayBuffer.isView(data)) { + FS.write(stream, data, 0, data.byteLength, undefined, opts.canOwn) + } else { + throw new Error("Unsupported data type") + } + FS.close(stream) + }, + cwd: function () { + return FS.currentPath + }, + chdir: function (path) { + var lookup = FS.lookupPath(path, {follow: true}); + if (lookup.node === null) { + throw new FS.ErrnoError(44) + } + if (!FS.isDir(lookup.node.mode)) { + throw new FS.ErrnoError(54) + } + var errCode = FS.nodePermissions(lookup.node, "x"); + if (errCode) { + throw new FS.ErrnoError(errCode) + } + FS.currentPath = lookup.path + }, + createDefaultDirectories: function () { + FS.mkdir("/tmp"); + FS.mkdir("/home"); + FS.mkdir("/home/web_user") + }, + createDefaultDevices: function () { + FS.mkdir("/dev"); + FS.registerDevice(FS.makedev(1, 3), { + read: function () { + return 0 + }, write: function (stream, buffer, offset, length, pos) { + return length + } + }); + FS.mkdev("/dev/null", FS.makedev(1, 3)); + TTY.register(FS.makedev(5, 0), TTY.default_tty_ops); + TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops); + FS.mkdev("/dev/tty", FS.makedev(5, 0)); + FS.mkdev("/dev/tty1", FS.makedev(6, 0)); + var random_device; + if (typeof crypto === "object" && typeof crypto["getRandomValues"] === "function") { + var randomBuffer = new Uint8Array(1); + random_device = function () { + crypto.getRandomValues(randomBuffer); + return randomBuffer[0] + } + } else if (ENVIRONMENT_IS_NODE) { + try { + var crypto_module = require("crypto"); + random_device = function () { + return crypto_module["randomBytes"](1)[0] + } + } catch (e) { + } + } else { + } + if (!random_device) { + random_device = function () { + abort("random_device") + } + } + FS.createDevice("/dev", "random", random_device); + FS.createDevice("/dev", "urandom", random_device); + FS.mkdir("/dev/shm"); + FS.mkdir("/dev/shm/tmp") + }, + createSpecialDirectories: function () { + FS.mkdir("/proc"); + FS.mkdir("/proc/self"); + FS.mkdir("/proc/self/fd"); + FS.mount({ + mount: function () { + var node = FS.createNode("/proc/self", "fd", 16384 | 511, 73); + node.node_ops = { + lookup: function (parent, name) { + var fd = +name; + var stream = FS.getStream(fd); + if (!stream) throw new FS.ErrnoError(8); + var ret = { + parent: null, + mount: {mountpoint: "fake"}, + node_ops: { + readlink: function () { + return stream.path + } + } + }; + ret.parent = ret; + return ret + } + }; + return node + } + }, {}, "/proc/self/fd") + }, + createStandardStreams: function () { + if (Module["stdin"]) { + FS.createDevice("/dev", "stdin", Module["stdin"]) + } else { + FS.symlink("/dev/tty", "/dev/stdin") + } + if (Module["stdout"]) { + FS.createDevice("/dev", "stdout", null, Module["stdout"]) + } else { + FS.symlink("/dev/tty", "/dev/stdout") + } + if (Module["stderr"]) { + FS.createDevice("/dev", "stderr", null, Module["stderr"]) + } else { + FS.symlink("/dev/tty1", "/dev/stderr") + } + var stdin = FS.open("/dev/stdin", "r"); + var stdout = FS.open("/dev/stdout", "w"); + var stderr = FS.open("/dev/stderr", "w") + }, + ensureErrnoError: function () { + if (FS.ErrnoError) return; + FS.ErrnoError = function ErrnoError(errno, node) { + this.node = node; + this.setErrno = function (errno) { + this.errno = errno + }; + this.setErrno(errno); + this.message = "FS error" + }; + FS.ErrnoError.prototype = new Error; + FS.ErrnoError.prototype.constructor = FS.ErrnoError; + [44].forEach(function (code) { + FS.genericErrors[code] = new FS.ErrnoError(code); + FS.genericErrors[code].stack = "" + }) + }, + staticInit: function () { + FS.ensureErrnoError(); + FS.nameTable = new Array(4096); + FS.mount(MEMFS, {}, "/"); + FS.createDefaultDirectories(); + FS.createDefaultDevices(); + FS.createSpecialDirectories(); + FS.filesystems = {"MEMFS": MEMFS} + }, + init: function (input, output, error) { + FS.init.initialized = true; + FS.ensureErrnoError(); + Module["stdin"] = input || Module["stdin"]; + Module["stdout"] = output || Module["stdout"]; + Module["stderr"] = error || Module["stderr"]; + FS.createStandardStreams() + }, + quit: function () { + FS.init.initialized = false; + var fflush = Module["_fflush"]; + if (fflush) fflush(0); + for (var i = 0; i < FS.streams.length; i++) { + var stream = FS.streams[i]; + if (!stream) { + continue + } + FS.close(stream) + } + }, + getMode: function (canRead, canWrite) { + var mode = 0; + if (canRead) mode |= 292 | 73; + if (canWrite) mode |= 146; + return mode + }, + joinPath: function (parts, forceRelative) { + var path = PATH.join.apply(null, parts); + if (forceRelative && path[0] == "/") path = path.substr(1); + return path + }, + absolutePath: function (relative, base) { + return PATH_FS.resolve(base, relative) + }, + standardizePath: function (path) { + return PATH.normalize(path) + }, + findObject: function (path, dontResolveLastLink) { + var ret = FS.analyzePath(path, dontResolveLastLink); + if (ret.exists) { + return ret.object + } else { + setErrNo(ret.error); + return null + } + }, + analyzePath: function (path, dontResolveLastLink) { + try { + var lookup = FS.lookupPath(path, {follow: !dontResolveLastLink}); + path = lookup.path + } catch (e) { + } + var ret = { + isRoot: false, + exists: false, + error: 0, + name: null, + path: null, + object: null, + parentExists: false, + parentPath: null, + parentObject: null + }; + try { + var lookup = FS.lookupPath(path, {parent: true}); + ret.parentExists = true; + ret.parentPath = lookup.path; + ret.parentObject = lookup.node; + ret.name = PATH.basename(path); + lookup = FS.lookupPath(path, {follow: !dontResolveLastLink}); + ret.exists = true; + ret.path = lookup.path; + ret.object = lookup.node; + ret.name = lookup.node.name; + ret.isRoot = lookup.path === "/" + } catch (e) { + ret.error = e.errno + } + return ret + }, + createFolder: function (parent, name, canRead, canWrite) { + var path = PATH.join2(typeof parent === "string" ? parent : FS.getPath(parent), name); + var mode = FS.getMode(canRead, canWrite); + return FS.mkdir(path, mode) + }, + createPath: function (parent, path, canRead, canWrite) { + parent = typeof parent === "string" ? parent : FS.getPath(parent); + var parts = path.split("/").reverse(); + while (parts.length) { + var part = parts.pop(); + if (!part) continue; + var current = PATH.join2(parent, part); + try { + FS.mkdir(current) + } catch (e) { + } + parent = current + } + return current + }, + createFile: function (parent, name, properties, canRead, canWrite) { + var path = PATH.join2(typeof parent === "string" ? parent : FS.getPath(parent), name); + var mode = FS.getMode(canRead, canWrite); + return FS.create(path, mode) + }, + createDataFile: function (parent, name, data, canRead, canWrite, canOwn) { + var path = name ? PATH.join2(typeof parent === "string" ? parent : FS.getPath(parent), name) : parent; + var mode = FS.getMode(canRead, canWrite); + var node = FS.create(path, mode); + if (data) { + if (typeof data === "string") { + var arr = new Array(data.length); + for (var i = 0, len = data.length; i < len; ++i) arr[i] = data.charCodeAt(i); + data = arr + } + FS.chmod(node, mode | 146); + var stream = FS.open(node, "w"); + FS.write(stream, data, 0, data.length, 0, canOwn); + FS.close(stream); + FS.chmod(node, mode) + } + return node + }, + createDevice: function (parent, name, input, output) { + var path = PATH.join2(typeof parent === "string" ? parent : FS.getPath(parent), name); + var mode = FS.getMode(!!input, !!output); + if (!FS.createDevice.major) FS.createDevice.major = 64; + var dev = FS.makedev(FS.createDevice.major++, 0); + FS.registerDevice(dev, { + open: function (stream) { + stream.seekable = false + }, close: function (stream) { + if (output && output.buffer && output.buffer.length) { + output(10) + } + }, read: function (stream, buffer, offset, length, pos) { + var bytesRead = 0; + for (var i = 0; i < length; i++) { + var result; + try { + result = input() + } catch (e) { + throw new FS.ErrnoError(29) + } + if (result === undefined && bytesRead === 0) { + throw new FS.ErrnoError(6) + } + if (result === null || result === undefined) break; + bytesRead++; + buffer[offset + i] = result + } + if (bytesRead) { + stream.node.timestamp = Date.now() + } + return bytesRead + }, write: function (stream, buffer, offset, length, pos) { + for (var i = 0; i < length; i++) { + try { + output(buffer[offset + i]) + } catch (e) { + throw new FS.ErrnoError(29) + } + } + if (length) { + stream.node.timestamp = Date.now() + } + return i + } + }); + return FS.mkdev(path, mode, dev) + }, + createLink: function (parent, name, target, canRead, canWrite) { + var path = PATH.join2(typeof parent === "string" ? parent : FS.getPath(parent), name); + return FS.symlink(target, path) + }, + forceLoadFile: function (obj) { + if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true; + var success = true; + if (typeof XMLHttpRequest !== "undefined") { + throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.") + } else if (read_) { + try { + obj.contents = intArrayFromString(read_(obj.url), true); + obj.usedBytes = obj.contents.length + } catch (e) { + success = false + } + } else { + throw new Error("Cannot load without read() or XMLHttpRequest.") + } + if (!success) setErrNo(29); + return success + }, + createLazyFile: function (parent, name, url, canRead, canWrite) { + function LazyUint8Array() { + this.lengthKnown = false; + this.chunks = [] + } + + LazyUint8Array.prototype.get = function LazyUint8Array_get(idx) { + if (idx > this.length - 1 || idx < 0) { + return undefined + } + var chunkOffset = idx % this.chunkSize; + var chunkNum = idx / this.chunkSize | 0; + return this.getter(chunkNum)[chunkOffset] + }; + LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter(getter) { + this.getter = getter + }; + LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() { + var xhr = new XMLHttpRequest; + xhr.open("HEAD", url, false); + xhr.send(null); + if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status); + var datalength = Number(xhr.getResponseHeader("Content-length")); + var header; + var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes"; + var usesGzip = (header = xhr.getResponseHeader("Content-Encoding")) && header === "gzip"; + var chunkSize = 1024 * 1024; + if (!hasByteServing) chunkSize = datalength; + var doXHR = function (from, to) { + if (from > to) throw new Error("invalid range (" + from + ", " + to + ") or no bytes requested!"); + if (to > datalength - 1) throw new Error("only " + datalength + " bytes available! programmer error!"); + var xhr = new XMLHttpRequest; + xhr.open("GET", url, false); + if (datalength !== chunkSize) xhr.setRequestHeader("Range", "bytes=" + from + "-" + to); + if (typeof Uint8Array != "undefined") xhr.responseType = "arraybuffer"; + if (xhr.overrideMimeType) { + xhr.overrideMimeType("text/plain; charset=x-user-defined") + } + xhr.send(null); + if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status); + if (xhr.response !== undefined) { + return new Uint8Array(xhr.response || []) + } else { + return intArrayFromString(xhr.responseText || "", true) + } + }; + var lazyArray = this; + lazyArray.setDataGetter(function (chunkNum) { + var start = chunkNum * chunkSize; + var end = (chunkNum + 1) * chunkSize - 1; + end = Math.min(end, datalength - 1); + if (typeof lazyArray.chunks[chunkNum] === "undefined") { + lazyArray.chunks[chunkNum] = doXHR(start, end) + } + if (typeof lazyArray.chunks[chunkNum] === "undefined") throw new Error("doXHR failed!"); + return lazyArray.chunks[chunkNum] + }); + if (usesGzip || !datalength) { + chunkSize = datalength = 1; + datalength = this.getter(0).length; + chunkSize = datalength; + out("LazyFiles on gzip forces download of the whole file when length is accessed") + } + this._length = datalength; + this._chunkSize = chunkSize; + this.lengthKnown = true + }; + if (typeof XMLHttpRequest !== "undefined") { + if (!ENVIRONMENT_IS_WORKER) throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc"; + var lazyArray = new LazyUint8Array; + Object.defineProperties(lazyArray, { + length: { + get: function () { + if (!this.lengthKnown) { + this.cacheLength() + } + return this._length + } + }, chunkSize: { + get: function () { + if (!this.lengthKnown) { + this.cacheLength() + } + return this._chunkSize + } + } + }); + var properties = {isDevice: false, contents: lazyArray} + } else { + var properties = {isDevice: false, url: url} + } + var node = FS.createFile(parent, name, properties, canRead, canWrite); + if (properties.contents) { + node.contents = properties.contents + } else if (properties.url) { + node.contents = null; + node.url = properties.url + } + Object.defineProperties(node, { + usedBytes: { + get: function () { + return this.contents.length + } + } + }); + var stream_ops = {}; + var keys = Object.keys(node.stream_ops); + keys.forEach(function (key) { + var fn = node.stream_ops[key]; + stream_ops[key] = function forceLoadLazyFile() { + if (!FS.forceLoadFile(node)) { + throw new FS.ErrnoError(29) + } + return fn.apply(null, arguments) + } + }); + stream_ops.read = function stream_ops_read(stream, buffer, offset, length, position) { + if (!FS.forceLoadFile(node)) { + throw new FS.ErrnoError(29) + } + var contents = stream.node.contents; + if (position >= contents.length) return 0; + var size = Math.min(contents.length - position, length); + if (contents.slice) { + for (var i = 0; i < size; i++) { + buffer[offset + i] = contents[position + i] + } + } else { + for (var i = 0; i < size; i++) { + buffer[offset + i] = contents.get(position + i) + } + } + return size + }; + node.stream_ops = stream_ops; + return node + }, + createPreloadedFile: function (parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) { + Browser.init(); + var fullname = name ? PATH_FS.resolve(PATH.join2(parent, name)) : parent; + var dep = getUniqueRunDependency("cp " + fullname); + + function processData(byteArray) { + function finish(byteArray) { + if (preFinish) preFinish(); + if (!dontCreateFile) { + FS.createDataFile(parent, name, byteArray, canRead, canWrite, canOwn) + } + if (onload) onload(); + removeRunDependency(dep) + } + + var handled = false; + Module["preloadPlugins"].forEach(function (plugin) { + if (handled) return; + if (plugin["canHandle"](fullname)) { + plugin["handle"](byteArray, fullname, finish, function () { + if (onerror) onerror(); + removeRunDependency(dep) + }); + handled = true + } + }); + if (!handled) finish(byteArray) + } + + addRunDependency(dep); + if (typeof url == "string") { + Browser.asyncLoad(url, function (byteArray) { + processData(byteArray) + }, onerror) + } else { + processData(url) + } + }, + indexedDB: function () { + return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB + }, + DB_NAME: function () { + return "EM_FS_" + window.location.pathname + }, + DB_VERSION: 20, + DB_STORE_NAME: "FILE_DATA", + saveFilesToDB: function (paths, onload, onerror) { + onload = onload || function () { + }; + onerror = onerror || function () { + }; + var indexedDB = FS.indexedDB(); + try { + var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION) + } catch (e) { + return onerror(e) + } + openRequest.onupgradeneeded = function openRequest_onupgradeneeded() { + out("creating db"); + var db = openRequest.result; + db.createObjectStore(FS.DB_STORE_NAME) + }; + openRequest.onsuccess = function openRequest_onsuccess() { + var db = openRequest.result; + var transaction = db.transaction([FS.DB_STORE_NAME], "readwrite"); + var files = transaction.objectStore(FS.DB_STORE_NAME); + var ok = 0, fail = 0, total = paths.length; + + function finish() { + if (fail == 0) onload(); else onerror() + } + + paths.forEach(function (path) { + var putRequest = files.put(FS.analyzePath(path).object.contents, path); + putRequest.onsuccess = function putRequest_onsuccess() { + ok++; + if (ok + fail == total) finish() + }; + putRequest.onerror = function putRequest_onerror() { + fail++; + if (ok + fail == total) finish() + } + }); + transaction.onerror = onerror + }; + openRequest.onerror = onerror + }, + loadFilesFromDB: function (paths, onload, onerror) { + onload = onload || function () { + }; + onerror = onerror || function () { + }; + var indexedDB = FS.indexedDB(); + try { + var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION) + } catch (e) { + return onerror(e) + } + openRequest.onupgradeneeded = onerror; + openRequest.onsuccess = function openRequest_onsuccess() { + var db = openRequest.result; + try { + var transaction = db.transaction([FS.DB_STORE_NAME], "readonly") + } catch (e) { + onerror(e); + return + } + var files = transaction.objectStore(FS.DB_STORE_NAME); + var ok = 0, fail = 0, total = paths.length; + + function finish() { + if (fail == 0) onload(); else onerror() + } + + paths.forEach(function (path) { + var getRequest = files.get(path); + getRequest.onsuccess = function getRequest_onsuccess() { + if (FS.analyzePath(path).exists) { + FS.unlink(path) + } + FS.createDataFile(PATH.dirname(path), PATH.basename(path), getRequest.result, true, true, true); + ok++; + if (ok + fail == total) finish() + }; + getRequest.onerror = function getRequest_onerror() { + fail++; + if (ok + fail == total) finish() + } + }); + transaction.onerror = onerror + }; + openRequest.onerror = onerror + }, + mmapAlloc: function (size) { + var alignedSize = alignMemory(size, 16384); + var ptr = _malloc(alignedSize); + while (size < alignedSize) HEAP8[ptr + size++] = 0; + return ptr + } + }; + var SYSCALLS = { + mappings: {}, DEFAULT_POLLMASK: 5, umask: 511, calculateAt: function (dirfd, path) { + if (path[0] !== "/") { + var dir; + if (dirfd === -100) { + dir = FS.cwd() + } else { + var dirstream = FS.getStream(dirfd); + if (!dirstream) throw new FS.ErrnoError(8); + dir = dirstream.path + } + path = PATH.join2(dir, path) + } + return path + }, doStat: function (func, path, buf) { + try { + var stat = func(path) + } catch (e) { + if (e && e.node && PATH.normalize(path) !== PATH.normalize(FS.getPath(e.node))) { + return -54 + } + throw e + } + HEAP32[buf >> 2] = stat.dev; + HEAP32[buf + 4 >> 2] = 0; + HEAP32[buf + 8 >> 2] = stat.ino; + HEAP32[buf + 12 >> 2] = stat.mode; + HEAP32[buf + 16 >> 2] = stat.nlink; + HEAP32[buf + 20 >> 2] = stat.uid; + HEAP32[buf + 24 >> 2] = stat.gid; + HEAP32[buf + 28 >> 2] = stat.rdev; + HEAP32[buf + 32 >> 2] = 0; + tempI64 = [stat.size >>> 0, (tempDouble = stat.size, +Math_abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math_min(+Math_floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math_ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 40 >> 2] = tempI64[0], HEAP32[buf + 44 >> 2] = tempI64[1]; + HEAP32[buf + 48 >> 2] = 4096; + HEAP32[buf + 52 >> 2] = stat.blocks; + HEAP32[buf + 56 >> 2] = stat.atime.getTime() / 1e3 | 0; + HEAP32[buf + 60 >> 2] = 0; + HEAP32[buf + 64 >> 2] = stat.mtime.getTime() / 1e3 | 0; + HEAP32[buf + 68 >> 2] = 0; + HEAP32[buf + 72 >> 2] = stat.ctime.getTime() / 1e3 | 0; + HEAP32[buf + 76 >> 2] = 0; + tempI64 = [stat.ino >>> 0, (tempDouble = stat.ino, +Math_abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math_min(+Math_floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math_ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 80 >> 2] = tempI64[0], HEAP32[buf + 84 >> 2] = tempI64[1]; + return 0 + }, doMsync: function (addr, stream, len, flags, offset) { + var buffer = HEAPU8.slice(addr, addr + len); + FS.msync(stream, buffer, offset, len, flags) + }, doMkdir: function (path, mode) { + path = PATH.normalize(path); + if (path[path.length - 1] === "/") path = path.substr(0, path.length - 1); + FS.mkdir(path, mode, 0); + return 0 + }, doMknod: function (path, mode, dev) { + switch (mode & 61440) { + case 32768: + case 8192: + case 24576: + case 4096: + case 49152: + break; + default: + return -28 + } + FS.mknod(path, mode, dev); + return 0 + }, doReadlink: function (path, buf, bufsize) { + if (bufsize <= 0) return -28; + var ret = FS.readlink(path); + var len = Math.min(bufsize, lengthBytesUTF8(ret)); + var endChar = HEAP8[buf + len]; + stringToUTF8(ret, buf, bufsize + 1); + HEAP8[buf + len] = endChar; + return len + }, doAccess: function (path, amode) { + if (amode & ~7) { + return -28 + } + var node; + var lookup = FS.lookupPath(path, {follow: true}); + node = lookup.node; + if (!node) { + return -44 + } + var perms = ""; + if (amode & 4) perms += "r"; + if (amode & 2) perms += "w"; + if (amode & 1) perms += "x"; + if (perms && FS.nodePermissions(node, perms)) { + return -2 + } + return 0 + }, doDup: function (path, flags, suggestFD) { + var suggest = FS.getStream(suggestFD); + if (suggest) FS.close(suggest); + return FS.open(path, flags, 0, suggestFD, suggestFD).fd + }, doReadv: function (stream, iov, iovcnt, offset) { + var ret = 0; + for (var i = 0; i < iovcnt; i++) { + var ptr = HEAP32[iov + i * 8 >> 2]; + var len = HEAP32[iov + (i * 8 + 4) >> 2]; + var curr = FS.read(stream, HEAP8, ptr, len, offset); + if (curr < 0) return -1; + ret += curr; + if (curr < len) break + } + return ret + }, doWritev: function (stream, iov, iovcnt, offset) { + var ret = 0; + for (var i = 0; i < iovcnt; i++) { + var ptr = HEAP32[iov + i * 8 >> 2]; + var len = HEAP32[iov + (i * 8 + 4) >> 2]; + var curr = FS.write(stream, HEAP8, ptr, len, offset); + if (curr < 0) return -1; + ret += curr + } + return ret + }, varargs: undefined, get: function () { + SYSCALLS.varargs += 4; + var ret = HEAP32[SYSCALLS.varargs - 4 >> 2]; + return ret + }, getStr: function (ptr) { + var ret = UTF8ToString(ptr); + return ret + }, getStreamFromFD: function (fd) { + var stream = FS.getStream(fd); + if (!stream) throw new FS.ErrnoError(8); + return stream + }, get64: function (low, high) { + return low + } + }; + + function syscallMunmap(addr, len) { + if ((addr | 0) === -1 || len === 0) { + return -28 + } + var info = SYSCALLS.mappings[addr]; + if (!info) return 0; + if (len === info.len) { + var stream = FS.getStream(info.fd); + if (info.prot & 2) { + SYSCALLS.doMsync(addr, stream, len, info.flags, info.offset) + } + FS.munmap(stream); + SYSCALLS.mappings[addr] = null; + if (info.allocated) { + _free(info.malloc) + } + } + return 0 + } + + function ___sys_munmap(addr, len) { + try { + return syscallMunmap(addr, len) + } catch (e) { + if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno + } + } + + var tupleRegistrations = {}; + + function runDestructors(destructors) { + while (destructors.length) { + var ptr = destructors.pop(); + var del = destructors.pop(); + del(ptr) + } + } + + function simpleReadValueFromPointer(pointer) { + return this["fromWireType"](HEAPU32[pointer >> 2]) + } + + var awaitingDependencies = {}; + var registeredTypes = {}; + var typeDependencies = {}; + var char_0 = 48; + var char_9 = 57; + + function makeLegalFunctionName(name) { + if (undefined === name) { + return "_unknown" + } + name = name.replace(/[^a-zA-Z0-9_]/g, "$"); + var f = name.charCodeAt(0); + if (f >= char_0 && f <= char_9) { + return "_" + name + } else { + return name + } + } + + function createNamedFunction(name, body) { + name = makeLegalFunctionName(name); + if (IsWechat) { + var f1 = function (body) { + return function () { + "use strict"; + return body.apply(this, arguments); + } + } + return f1(body) + } else { + return new Function("body", "return function " + name + "() {\n" + ' "use strict";' + " return body.apply(this, arguments);\n" + "};\n")(body) + } + } + + function extendError(baseErrorType, errorName) { + var errorClass = createNamedFunction(errorName, function (message) { + this.name = errorName; + this.message = message; + var stack = new Error(message).stack; + if (stack !== undefined) { + this.stack = this.toString() + "\n" + stack.replace(/^Error(:[^\n]*)?\n/, "") + } + }); + errorClass.prototype = Object.create(baseErrorType.prototype); + errorClass.prototype.constructor = errorClass; + errorClass.prototype.toString = function () { + if (this.message === undefined) { + return this.name + } else { + return this.name + ": " + this.message + } + }; + return errorClass + } + + var InternalError = undefined; + + function throwInternalError(message) { + throw new InternalError(message) + } + + function whenDependentTypesAreResolved(myTypes, dependentTypes, getTypeConverters) { + myTypes.forEach(function (type) { + typeDependencies[type] = dependentTypes + }); + + function onComplete(typeConverters) { + var myTypeConverters = getTypeConverters(typeConverters); + if (myTypeConverters.length !== myTypes.length) { + throwInternalError("Mismatched type converter count") + } + for (var i = 0; i < myTypes.length; ++i) { + registerType(myTypes[i], myTypeConverters[i]) + } + } + + var typeConverters = new Array(dependentTypes.length); + var unregisteredTypes = []; + var registered = 0; + dependentTypes.forEach(function (dt, i) { + if (registeredTypes.hasOwnProperty(dt)) { + typeConverters[i] = registeredTypes[dt] + } else { + unregisteredTypes.push(dt); + if (!awaitingDependencies.hasOwnProperty(dt)) { + awaitingDependencies[dt] = [] + } + awaitingDependencies[dt].push(function () { + typeConverters[i] = registeredTypes[dt]; + ++registered; + if (registered === unregisteredTypes.length) { + onComplete(typeConverters) + } + }) + } + }); + if (0 === unregisteredTypes.length) { + onComplete(typeConverters) + } + } + + function __embind_finalize_value_array(rawTupleType) { + var reg = tupleRegistrations[rawTupleType]; + delete tupleRegistrations[rawTupleType]; + var elements = reg.elements; + var elementsLength = elements.length; + var elementTypes = elements.map(function (elt) { + return elt.getterReturnType + }).concat(elements.map(function (elt) { + return elt.setterArgumentType + })); + var rawConstructor = reg.rawConstructor; + var rawDestructor = reg.rawDestructor; + whenDependentTypesAreResolved([rawTupleType], elementTypes, function (elementTypes) { + elements.forEach(function (elt, i) { + var getterReturnType = elementTypes[i]; + var getter = elt.getter; + var getterContext = elt.getterContext; + var setterArgumentType = elementTypes[i + elementsLength]; + var setter = elt.setter; + var setterContext = elt.setterContext; + elt.read = function (ptr) { + return getterReturnType["fromWireType"](getter(getterContext, ptr)) + }; + elt.write = function (ptr, o) { + var destructors = []; + setter(setterContext, ptr, setterArgumentType["toWireType"](destructors, o)); + runDestructors(destructors) + } + }); + return [{ + name: reg.name, + "fromWireType": function (ptr) { + var rv = new Array(elementsLength); + for (var i = 0; i < elementsLength; ++i) { + rv[i] = elements[i].read(ptr) + } + rawDestructor(ptr); + return rv + }, + "toWireType": function (destructors, o) { + if (elementsLength !== o.length) { + throw new TypeError("Incorrect number of tuple elements for " + reg.name + ": expected=" + elementsLength + ", actual=" + o.length) + } + var ptr = rawConstructor(); + for (var i = 0; i < elementsLength; ++i) { + elements[i].write(ptr, o[i]) + } + if (destructors !== null) { + destructors.push(rawDestructor, ptr) + } + return ptr + }, + "argPackAdvance": 8, + "readValueFromPointer": simpleReadValueFromPointer, + destructorFunction: rawDestructor + }] + }) + } + + var structRegistrations = {}; + + function __embind_finalize_value_object(structType) { + var reg = structRegistrations[structType]; + delete structRegistrations[structType]; + var rawConstructor = reg.rawConstructor; + var rawDestructor = reg.rawDestructor; + var fieldRecords = reg.fields; + var fieldTypes = fieldRecords.map(function (field) { + return field.getterReturnType + }).concat(fieldRecords.map(function (field) { + return field.setterArgumentType + })); + whenDependentTypesAreResolved([structType], fieldTypes, function (fieldTypes) { + var fields = {}; + fieldRecords.forEach(function (field, i) { + var fieldName = field.fieldName; + var getterReturnType = fieldTypes[i]; + var getter = field.getter; + var getterContext = field.getterContext; + var setterArgumentType = fieldTypes[i + fieldRecords.length]; + var setter = field.setter; + var setterContext = field.setterContext; + fields[fieldName] = { + read: function (ptr) { + return getterReturnType["fromWireType"](getter(getterContext, ptr)) + }, write: function (ptr, o) { + var destructors = []; + setter(setterContext, ptr, setterArgumentType["toWireType"](destructors, o)); + runDestructors(destructors) + } + } + }); + return [{ + name: reg.name, + "fromWireType": function (ptr) { + var rv = {}; + for (var i in fields) { + rv[i] = fields[i].read(ptr) + } + rawDestructor(ptr); + return rv + }, + "toWireType": function (destructors, o) { + for (var fieldName in fields) { + if (!(fieldName in o)) { + throw new TypeError('Missing field: "' + fieldName + '"') + } + } + var ptr = rawConstructor(); + for (fieldName in fields) { + fields[fieldName].write(ptr, o[fieldName]) + } + if (destructors !== null) { + destructors.push(rawDestructor, ptr) + } + return ptr + }, + "argPackAdvance": 8, + "readValueFromPointer": simpleReadValueFromPointer, + destructorFunction: rawDestructor + }] + }) + } + + function getShiftFromSize(size) { + switch (size) { + case 1: + return 0; + case 2: + return 1; + case 4: + return 2; + case 8: + return 3; + default: + throw new TypeError("Unknown type size: " + size) + } + } + + function embind_init_charCodes() { + var codes = new Array(256); + for (var i = 0; i < 256; ++i) { + codes[i] = String.fromCharCode(i) + } + embind_charCodes = codes + } + + var embind_charCodes = undefined; + + function readLatin1String(ptr) { + var ret = ""; + var c = ptr; + while (HEAPU8[c]) { + ret += embind_charCodes[HEAPU8[c++]] + } + return ret + } + + var BindingError = undefined; + + function throwBindingError(message) { + throw new BindingError(message) + } + + function registerType(rawType, registeredInstance, options) { + options = options || {}; + if (!("argPackAdvance" in registeredInstance)) { + throw new TypeError("registerType registeredInstance requires argPackAdvance") + } + var name = registeredInstance.name; + if (!rawType) { + throwBindingError('type "' + name + '" must have a positive integer typeid pointer') + } + if (registeredTypes.hasOwnProperty(rawType)) { + if (options.ignoreDuplicateRegistrations) { + return + } else { + throwBindingError("Cannot register type '" + name + "' twice") + } + } + registeredTypes[rawType] = registeredInstance; + delete typeDependencies[rawType]; + if (awaitingDependencies.hasOwnProperty(rawType)) { + var callbacks = awaitingDependencies[rawType]; + delete awaitingDependencies[rawType]; + callbacks.forEach(function (cb) { + cb() + }) + } + } + + function __embind_register_bool(rawType, name, size, trueValue, falseValue) { + var shift = getShiftFromSize(size); + name = readLatin1String(name); + registerType(rawType, { + name: name, "fromWireType": function (wt) { + return !!wt + }, "toWireType": function (destructors, o) { + return o ? trueValue : falseValue + }, "argPackAdvance": 8, "readValueFromPointer": function (pointer) { + var heap; + if (size === 1) { + heap = HEAP8 + } else if (size === 2) { + heap = HEAP16 + } else if (size === 4) { + heap = HEAP32 + } else { + throw new TypeError("Unknown boolean type size: " + name) + } + return this["fromWireType"](heap[pointer >> shift]) + }, destructorFunction: null + }) + } + + function ClassHandle_isAliasOf(other) { + if (!(this instanceof ClassHandle)) { + return false + } + if (!(other instanceof ClassHandle)) { + return false + } + var leftClass = this.$$.ptrType.registeredClass; + var left = this.$$.ptr; + var rightClass = other.$$.ptrType.registeredClass; + var right = other.$$.ptr; + while (leftClass.baseClass) { + left = leftClass.upcast(left); + leftClass = leftClass.baseClass + } + while (rightClass.baseClass) { + right = rightClass.upcast(right); + rightClass = rightClass.baseClass + } + return leftClass === rightClass && left === right + } + + function shallowCopyInternalPointer(o) { + return { + count: o.count, + deleteScheduled: o.deleteScheduled, + preservePointerOnDelete: o.preservePointerOnDelete, + ptr: o.ptr, + ptrType: o.ptrType, + smartPtr: o.smartPtr, + smartPtrType: o.smartPtrType + } + } + + function throwInstanceAlreadyDeleted(obj) { + function getInstanceTypeName(handle) { + return handle.$$.ptrType.registeredClass.name + } + + throwBindingError(getInstanceTypeName(obj) + " instance already deleted") + } + + var finalizationGroup = false; + + function detachFinalizer(handle) { + } + + function runDestructor($$) { + if ($$.smartPtr) { + $$.smartPtrType.rawDestructor($$.smartPtr) + } else { + $$.ptrType.registeredClass.rawDestructor($$.ptr) + } + } + + function releaseClassHandle($$) { + $$.count.value -= 1; + var toDelete = 0 === $$.count.value; + if (toDelete) { + runDestructor($$) + } + } + + function attachFinalizer(handle) { + if ("undefined" === typeof FinalizationGroup) { + attachFinalizer = function (handle) { + return handle + }; + return handle + } + finalizationGroup = new FinalizationGroup(function (iter) { + for (var result = iter.next(); !result.done; result = iter.next()) { + var $$ = result.value; + if (!$$.ptr) { + console.warn("object already deleted: " + $$.ptr) + } else { + releaseClassHandle($$) + } + } + }); + attachFinalizer = function (handle) { + finalizationGroup.register(handle, handle.$$, handle.$$); + return handle + }; + detachFinalizer = function (handle) { + finalizationGroup.unregister(handle.$$) + }; + return attachFinalizer(handle) + } + + function ClassHandle_clone() { + if (!this.$$.ptr) { + throwInstanceAlreadyDeleted(this) + } + if (this.$$.preservePointerOnDelete) { + this.$$.count.value += 1; + return this + } else { + var clone = attachFinalizer(Object.create(Object.getPrototypeOf(this), {$$: {value: shallowCopyInternalPointer(this.$$)}})); + clone.$$.count.value += 1; + clone.$$.deleteScheduled = false; + return clone + } + } + + function ClassHandle_delete() { + if (!this.$$.ptr) { + throwInstanceAlreadyDeleted(this) + } + if (this.$$.deleteScheduled && !this.$$.preservePointerOnDelete) { + throwBindingError("Object already scheduled for deletion") + } + detachFinalizer(this); + releaseClassHandle(this.$$); + if (!this.$$.preservePointerOnDelete) { + this.$$.smartPtr = undefined; + this.$$.ptr = undefined + } + } + + function ClassHandle_isDeleted() { + return !this.$$.ptr + } + + var delayFunction = undefined; + var deletionQueue = []; + + function flushPendingDeletes() { + while (deletionQueue.length) { + var obj = deletionQueue.pop(); + obj.$$.deleteScheduled = false; + obj["delete"]() + } + } + + function ClassHandle_deleteLater() { + if (!this.$$.ptr) { + throwInstanceAlreadyDeleted(this) + } + if (this.$$.deleteScheduled && !this.$$.preservePointerOnDelete) { + throwBindingError("Object already scheduled for deletion") + } + deletionQueue.push(this); + if (deletionQueue.length === 1 && delayFunction) { + delayFunction(flushPendingDeletes) + } + this.$$.deleteScheduled = true; + return this + } + + function init_ClassHandle() { + ClassHandle.prototype["isAliasOf"] = ClassHandle_isAliasOf; + ClassHandle.prototype["clone"] = ClassHandle_clone; + ClassHandle.prototype["delete"] = ClassHandle_delete; + ClassHandle.prototype["isDeleted"] = ClassHandle_isDeleted; + ClassHandle.prototype["deleteLater"] = ClassHandle_deleteLater + } + + function ClassHandle() { + } + + var registeredPointers = {}; + + function ensureOverloadTable(proto, methodName, humanName) { + if (undefined === proto[methodName].overloadTable) { + var prevFunc = proto[methodName]; + proto[methodName] = function () { + if (!proto[methodName].overloadTable.hasOwnProperty(arguments.length)) { + throwBindingError("Function '" + humanName + "' called with an invalid number of arguments (" + arguments.length + ") - expects one of (" + proto[methodName].overloadTable + ")!") + } + return proto[methodName].overloadTable[arguments.length].apply(this, arguments) + }; + proto[methodName].overloadTable = []; + proto[methodName].overloadTable[prevFunc.argCount] = prevFunc + } + } + + function exposePublicSymbol(name, value, numArguments) { + if (Module.hasOwnProperty(name)) { + if (undefined === numArguments || undefined !== Module[name].overloadTable && undefined !== Module[name].overloadTable[numArguments]) { + throwBindingError("Cannot register public name '" + name + "' twice") + } + ensureOverloadTable(Module, name, name); + if (Module.hasOwnProperty(numArguments)) { + throwBindingError("Cannot register multiple overloads of a function with the same number of arguments (" + numArguments + ")!") + } + Module[name].overloadTable[numArguments] = value + } else { + Module[name] = value; + if (undefined !== numArguments) { + Module[name].numArguments = numArguments + } + } + } + + function RegisteredClass(name, constructor, instancePrototype, rawDestructor, baseClass, getActualType, upcast, downcast) { + this.name = name; + this.constructor = constructor; + this.instancePrototype = instancePrototype; + this.rawDestructor = rawDestructor; + this.baseClass = baseClass; + this.getActualType = getActualType; + this.upcast = upcast; + this.downcast = downcast; + this.pureVirtualFunctions = [] + } + + function upcastPointer(ptr, ptrClass, desiredClass) { + while (ptrClass !== desiredClass) { + if (!ptrClass.upcast) { + throwBindingError("Expected null or instance of " + desiredClass.name + ", got an instance of " + ptrClass.name) + } + ptr = ptrClass.upcast(ptr); + ptrClass = ptrClass.baseClass + } + return ptr + } + + function constNoSmartPtrRawPointerToWireType(destructors, handle) { + if (handle === null) { + if (this.isReference) { + throwBindingError("null is not a valid " + this.name) + } + return 0 + } + if (!handle.$$) { + throwBindingError('Cannot pass "' + _embind_repr(handle) + '" as a ' + this.name) + } + if (!handle.$$.ptr) { + throwBindingError("Cannot pass deleted object as a pointer of type " + this.name) + } + var handleClass = handle.$$.ptrType.registeredClass; + var ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass); + return ptr + } + + function genericPointerToWireType(destructors, handle) { + var ptr; + if (handle === null) { + if (this.isReference) { + throwBindingError("null is not a valid " + this.name) + } + if (this.isSmartPointer) { + ptr = this.rawConstructor(); + if (destructors !== null) { + destructors.push(this.rawDestructor, ptr) + } + return ptr + } else { + return 0 + } + } + if (!handle.$$) { + throwBindingError('Cannot pass "' + _embind_repr(handle) + '" as a ' + this.name) + } + if (!handle.$$.ptr) { + throwBindingError("Cannot pass deleted object as a pointer of type " + this.name) + } + if (!this.isConst && handle.$$.ptrType.isConst) { + throwBindingError("Cannot convert argument of type " + (handle.$$.smartPtrType ? handle.$$.smartPtrType.name : handle.$$.ptrType.name) + " to parameter type " + this.name) + } + var handleClass = handle.$$.ptrType.registeredClass; + ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass); + if (this.isSmartPointer) { + if (undefined === handle.$$.smartPtr) { + throwBindingError("Passing raw pointer to smart pointer is illegal") + } + switch (this.sharingPolicy) { + case 0: + if (handle.$$.smartPtrType === this) { + ptr = handle.$$.smartPtr + } else { + throwBindingError("Cannot convert argument of type " + (handle.$$.smartPtrType ? handle.$$.smartPtrType.name : handle.$$.ptrType.name) + " to parameter type " + this.name) + } + break; + case 1: + ptr = handle.$$.smartPtr; + break; + case 2: + if (handle.$$.smartPtrType === this) { + ptr = handle.$$.smartPtr + } else { + var clonedHandle = handle["clone"](); + ptr = this.rawShare(ptr, __emval_register(function () { + clonedHandle["delete"]() + })); + if (destructors !== null) { + destructors.push(this.rawDestructor, ptr) + } + } + break; + default: + throwBindingError("Unsupporting sharing policy") + } + } + return ptr + } + + function nonConstNoSmartPtrRawPointerToWireType(destructors, handle) { + if (handle === null) { + if (this.isReference) { + throwBindingError("null is not a valid " + this.name) + } + return 0 + } + if (!handle.$$) { + throwBindingError('Cannot pass "' + _embind_repr(handle) + '" as a ' + this.name) + } + if (!handle.$$.ptr) { + throwBindingError("Cannot pass deleted object as a pointer of type " + this.name) + } + if (handle.$$.ptrType.isConst) { + throwBindingError("Cannot convert argument of type " + handle.$$.ptrType.name + " to parameter type " + this.name) + } + var handleClass = handle.$$.ptrType.registeredClass; + var ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass); + return ptr + } + + function RegisteredPointer_getPointee(ptr) { + if (this.rawGetPointee) { + ptr = this.rawGetPointee(ptr) + } + return ptr + } + + function RegisteredPointer_destructor(ptr) { + if (this.rawDestructor) { + this.rawDestructor(ptr) + } + } + + function RegisteredPointer_deleteObject(handle) { + if (handle !== null) { + handle["delete"]() + } + } + + function downcastPointer(ptr, ptrClass, desiredClass) { + if (ptrClass === desiredClass) { + return ptr + } + if (undefined === desiredClass.baseClass) { + return null + } + var rv = downcastPointer(ptr, ptrClass, desiredClass.baseClass); + if (rv === null) { + return null + } + return desiredClass.downcast(rv) + } + + function getInheritedInstanceCount() { + return Object.keys(registeredInstances).length + } + + function getLiveInheritedInstances() { + var rv = []; + for (var k in registeredInstances) { + if (registeredInstances.hasOwnProperty(k)) { + rv.push(registeredInstances[k]) + } + } + return rv + } + + function setDelayFunction(fn) { + delayFunction = fn; + if (deletionQueue.length && delayFunction) { + delayFunction(flushPendingDeletes) + } + } + + function init_embind() { + Module["getInheritedInstanceCount"] = getInheritedInstanceCount; + Module["getLiveInheritedInstances"] = getLiveInheritedInstances; + Module["flushPendingDeletes"] = flushPendingDeletes; + Module["setDelayFunction"] = setDelayFunction + } + + var registeredInstances = {}; + + function getBasestPointer(class_, ptr) { + if (ptr === undefined) { + throwBindingError("ptr should not be undefined") + } + while (class_.baseClass) { + ptr = class_.upcast(ptr); + class_ = class_.baseClass + } + return ptr + } + + function getInheritedInstance(class_, ptr) { + ptr = getBasestPointer(class_, ptr); + return registeredInstances[ptr] + } + + function makeClassHandle(prototype, record) { + if (!record.ptrType || !record.ptr) { + throwInternalError("makeClassHandle requires ptr and ptrType") + } + var hasSmartPtrType = !!record.smartPtrType; + var hasSmartPtr = !!record.smartPtr; + if (hasSmartPtrType !== hasSmartPtr) { + throwInternalError("Both smartPtrType and smartPtr must be specified") + } + record.count = {value: 1}; + return attachFinalizer(Object.create(prototype, {$$: {value: record}})) + } + + function RegisteredPointer_fromWireType(ptr) { + var rawPointer = this.getPointee(ptr); + if (!rawPointer) { + this.destructor(ptr); + return null + } + var registeredInstance = getInheritedInstance(this.registeredClass, rawPointer); + if (undefined !== registeredInstance) { + if (0 === registeredInstance.$$.count.value) { + registeredInstance.$$.ptr = rawPointer; + registeredInstance.$$.smartPtr = ptr; + return registeredInstance["clone"]() + } else { + var rv = registeredInstance["clone"](); + this.destructor(ptr); + return rv + } + } + + function makeDefaultHandle() { + if (this.isSmartPointer) { + return makeClassHandle(this.registeredClass.instancePrototype, { + ptrType: this.pointeeType, + ptr: rawPointer, + smartPtrType: this, + smartPtr: ptr + }) + } else { + return makeClassHandle(this.registeredClass.instancePrototype, {ptrType: this, ptr: ptr}) + } + } + + var actualType = this.registeredClass.getActualType(rawPointer); + var registeredPointerRecord = registeredPointers[actualType]; + if (!registeredPointerRecord) { + return makeDefaultHandle.call(this) + } + var toType; + if (this.isConst) { + toType = registeredPointerRecord.constPointerType + } else { + toType = registeredPointerRecord.pointerType + } + var dp = downcastPointer(rawPointer, this.registeredClass, toType.registeredClass); + if (dp === null) { + return makeDefaultHandle.call(this) + } + if (this.isSmartPointer) { + return makeClassHandle(toType.registeredClass.instancePrototype, { + ptrType: toType, + ptr: dp, + smartPtrType: this, + smartPtr: ptr + }) + } else { + return makeClassHandle(toType.registeredClass.instancePrototype, {ptrType: toType, ptr: dp}) + } + } + + function init_RegisteredPointer() { + RegisteredPointer.prototype.getPointee = RegisteredPointer_getPointee; + RegisteredPointer.prototype.destructor = RegisteredPointer_destructor; + RegisteredPointer.prototype["argPackAdvance"] = 8; + RegisteredPointer.prototype["readValueFromPointer"] = simpleReadValueFromPointer; + RegisteredPointer.prototype["deleteObject"] = RegisteredPointer_deleteObject; + RegisteredPointer.prototype["fromWireType"] = RegisteredPointer_fromWireType + } + + function RegisteredPointer(name, registeredClass, isReference, isConst, isSmartPointer, pointeeType, sharingPolicy, rawGetPointee, rawConstructor, rawShare, rawDestructor) { + this.name = name; + this.registeredClass = registeredClass; + this.isReference = isReference; + this.isConst = isConst; + this.isSmartPointer = isSmartPointer; + this.pointeeType = pointeeType; + this.sharingPolicy = sharingPolicy; + this.rawGetPointee = rawGetPointee; + this.rawConstructor = rawConstructor; + this.rawShare = rawShare; + this.rawDestructor = rawDestructor; + if (!isSmartPointer && registeredClass.baseClass === undefined) { + if (isConst) { + this["toWireType"] = constNoSmartPtrRawPointerToWireType; + this.destructorFunction = null + } else { + this["toWireType"] = nonConstNoSmartPtrRawPointerToWireType; + this.destructorFunction = null + } + } else { + this["toWireType"] = genericPointerToWireType + } + } + + function replacePublicSymbol(name, value, numArguments) { + if (!Module.hasOwnProperty(name)) { + throwInternalError("Replacing nonexistant public symbol") + } + if (undefined !== Module[name].overloadTable && undefined !== numArguments) { + Module[name].overloadTable[numArguments] = value + } else { + Module[name] = value; + Module[name].argCount = numArguments + } + } + + function embind__requireFunction(signature, rawFunction) { + signature = readLatin1String(signature); + + function makeDynCaller(dynCall) { + if (IsWechat) { + var f1 = function (dynCall, rawFunction) { + return function () { + return dynCall(rawFunction, ...arguments); + } + } + return f1(dynCall, rawFunction) + + } else { + var args = []; + for (var i = 1; i < signature.length; ++i) { + args.push("a" + i) + } + var name = "dynCall_" + signature + "_" + rawFunction; + var body = "return function " + name + "(" + args.join(", ") + ") {\n"; + body += " return dynCall(rawFunction" + (args.length ? ", " : "") + args.join(", ") + ");\n"; + body += "};\n"; + + return new Function("dynCall", "rawFunction", body)(dynCall, rawFunction) + } + } + + var dc = Module["dynCall_" + signature]; + var fp = makeDynCaller(dc); + if (typeof fp !== "function") { + throwBindingError("unknown function pointer with signature " + signature + ": " + rawFunction) + } + return fp + } + + var UnboundTypeError = undefined; + + function getTypeName(type) { + var ptr = ___getTypeName(type); + var rv = readLatin1String(ptr); + _free(ptr); + return rv + } + + function throwUnboundTypeError(message, types) { + var unboundTypes = []; + var seen = {}; + + function visit(type) { + if (seen[type]) { + return + } + if (registeredTypes[type]) { + return + } + if (typeDependencies[type]) { + typeDependencies[type].forEach(visit); + return + } + unboundTypes.push(type); + seen[type] = true + } + + types.forEach(visit); + throw new UnboundTypeError(message + ": " + unboundTypes.map(getTypeName).join([", "])) + } + + function __embind_register_class(rawType, rawPointerType, rawConstPointerType, baseClassRawType, getActualTypeSignature, getActualType, upcastSignature, upcast, downcastSignature, downcast, name, destructorSignature, rawDestructor) { + name = readLatin1String(name); + getActualType = embind__requireFunction(getActualTypeSignature, getActualType); + if (upcast) { + upcast = embind__requireFunction(upcastSignature, upcast) + } + if (downcast) { + downcast = embind__requireFunction(downcastSignature, downcast) + } + rawDestructor = embind__requireFunction(destructorSignature, rawDestructor); + var legalFunctionName = makeLegalFunctionName(name); + exposePublicSymbol(legalFunctionName, function () { + throwUnboundTypeError("Cannot construct " + name + " due to unbound types", [baseClassRawType]) + }); + whenDependentTypesAreResolved([rawType, rawPointerType, rawConstPointerType], baseClassRawType ? [baseClassRawType] : [], function (base) { + base = base[0]; + var baseClass; + var basePrototype; + if (baseClassRawType) { + baseClass = base.registeredClass; + basePrototype = baseClass.instancePrototype + } else { + basePrototype = ClassHandle.prototype + } + var constructor = createNamedFunction(legalFunctionName, function () { + if (Object.getPrototypeOf(this) !== instancePrototype) { + throw new BindingError("Use 'new' to construct " + name) + } + if (undefined === registeredClass.constructor_body) { + throw new BindingError(name + " has no accessible constructor") + } + var body = registeredClass.constructor_body[arguments.length]; + if (undefined === body) { + throw new BindingError("Tried to invoke ctor of " + name + " with invalid number of parameters (" + arguments.length + ") - expected (" + Object.keys(registeredClass.constructor_body).toString() + ") parameters instead!") + } + return body.apply(this, arguments) + }); + var instancePrototype = Object.create(basePrototype, {constructor: {value: constructor}}); + constructor.prototype = instancePrototype; + var registeredClass = new RegisteredClass(name, constructor, instancePrototype, rawDestructor, baseClass, getActualType, upcast, downcast); + var referenceConverter = new RegisteredPointer(name, registeredClass, true, false, false); + var pointerConverter = new RegisteredPointer(name + "*", registeredClass, false, false, false); + var constPointerConverter = new RegisteredPointer(name + " const*", registeredClass, false, true, false); + registeredPointers[rawType] = { + pointerType: pointerConverter, + constPointerType: constPointerConverter + }; + replacePublicSymbol(legalFunctionName, constructor); + return [referenceConverter, pointerConverter, constPointerConverter] + }) + } + + function new_(constructor, argumentList) { + if (!(constructor instanceof Function)) { + throw new TypeError("new_ called with constructor type " + typeof constructor + " which is not a function") + } + var dummy = createNamedFunction(constructor.name || "unknownFunctionName", function () { + }); + dummy.prototype = constructor.prototype; + var obj = new dummy; + var r = constructor.apply(obj, argumentList); + return r instanceof Object ? r : obj + } + + function craftInvokerFunction(humanName, argTypes, classType, cppInvokerFunc, cppTargetFunc) { + var argCount = argTypes.length; + if (argCount < 2) { + throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!") + } + var isClassMethodFunc = argTypes[1] !== null && classType !== null; + var needsDestructorStack = false; + for (var i = 1; i < argTypes.length; ++i) { + if (argTypes[i] !== null && argTypes[i].destructorFunction === undefined) { + needsDestructorStack = true; + break + } + } + var returns = argTypes[0].name !== "void"; + if (IsWechat) { + var args2 = [throwBindingError, cppInvokerFunc, cppTargetFunc, runDestructors, argTypes[0], argTypes[1]]; + for (var i = 0; i < argCount - 2; ++i) { + args2.push(argTypes[i + 2]) + } + if (isClassMethodFunc) { + for (var i = 1; i < argCount; ++i) { + if (argTypes[i].destructorFunction !== null) { + args2.push(argTypes[i].destructorFunction) + }else{ + args2.push(null) + } + } + } else { + for (var i = 2; i < argCount; ++i) { + if (argTypes[i].destructorFunction !== null) { + args2.push(argTypes[i].destructorFunction) + }else{ + args2.push(null) + } + } + } + + function f1(throwBindingError, invoker, fn, runDestructors, retType, classParam) { + // argType0,argType1,argType2 + const argsTypeOrigin = Array.prototype.slice.call(arguments, 6, 6 + argCount - 2) + // arg0Wired_dtor + const argsWired_dtorOrigin = Array.prototype.slice.call(arguments, 6 + argCount - 2) + + return function () { + // arg0, arg1, arg2 + if (arguments.length !== argCount - 2) { + throwBindingError('function ' + humanName + ' called with ' + arguments.length + ' arguments, expected 0 args!'); + } + var thisWired; + if (isClassMethodFunc) { + if (needsDestructorStack) { + var destructors = []; + thisWired = classParam.toWireType(destructors, this); + } else { + thisWired = classParam.toWireType(null, this); + } + } + + // arg0Wired,arg1Wired,arg2Wired + var argsWired = []; + for (var i = 0; i < arguments.length; i++) { + argsWired.push(argsTypeOrigin[i].toWireType(null, arguments[i])) + } + + var rv; + if (isClassMethodFunc) { + rv = invoker(fn, thisWired, ...argsWired); + } else { + rv = invoker(fn, ...argsWired); + } + + if (needsDestructorStack) { + runDestructors(destructors); + } else { + if (isClassMethodFunc) { + for (var i = 1; i < argTypes.length; ++i) { + if (argTypes[i].destructorFunction !== null) { + argsWired_dtorOrigin[i - 1](thisWired); + } + } + } else { + for (var i = 2; i < argTypes.length; ++i) { + if (argTypes[i].destructorFunction !== null) { + argsWired_dtorOrigin[i - 2](argsWired[i - 2]); + } + } + } + } + if (returns) { + var ret = retType.fromWireType(rv); + return ret; + } + } + } + return f1.apply(null, args2) + } else { + var argsList = ""; + var argsListWired = ""; + for (var i = 0; i < argCount - 2; ++i) { + argsList += (i !== 0 ? ", " : "") + "arg" + i; + argsListWired += (i !== 0 ? ", " : "") + "arg" + i + "Wired" + } + + var invokerFnBody = "return function " + makeLegalFunctionName(humanName) + "(" + argsList + ") {\n" + "if (arguments.length !== " + (argCount - 2) + ") {\n" + "throwBindingError('function " + humanName + " called with ' + arguments.length + ' arguments, expected " + (argCount - 2) + " args!');\n" + "}\n"; + if (needsDestructorStack) { + invokerFnBody += "var destructors = [];\n" + } + var dtorStack = needsDestructorStack ? "destructors" : "null"; + var args1 = ["throwBindingError", "invoker", "fn", "runDestructors", "retType", "classParam"]; + var args2 = [throwBindingError, cppInvokerFunc, cppTargetFunc, runDestructors, argTypes[0], argTypes[1]]; + if (isClassMethodFunc) { + invokerFnBody += "var thisWired = classParam.toWireType(" + dtorStack + ", this);\n" + } + for (var i = 0; i < argCount - 2; ++i) { + invokerFnBody += "var arg" + i + "Wired = argType" + i + ".toWireType(" + dtorStack + ", arg" + i + "); // " + argTypes[i + 2].name + "\n"; + args1.push("argType" + i); + args2.push(argTypes[i + 2]) + } + if (isClassMethodFunc) { + argsListWired = "thisWired" + (argsListWired.length > 0 ? ", " : "") + argsListWired + } + invokerFnBody += (returns ? "var rv = " : "") + "invoker(fn" + (argsListWired.length > 0 ? ", " : "") + argsListWired + ");\n"; + if (needsDestructorStack) { + invokerFnBody += "runDestructors(destructors);\n" + } else { + for (var i = isClassMethodFunc ? 1 : 2; i < argTypes.length; ++i) { + var paramName = i === 1 ? "thisWired" : "arg" + (i - 2) + "Wired"; + if (argTypes[i].destructorFunction !== null) { + invokerFnBody += paramName + "_dtor(" + paramName + "); // " + argTypes[i].name + "\n"; + args1.push(paramName + "_dtor"); + args2.push(argTypes[i].destructorFunction) + } + } + } + if (returns) { + invokerFnBody += "var ret = retType.fromWireType(rv);\n" + "return ret;\n" + } else { } + invokerFnBody += "}\n"; + args1.push(invokerFnBody); + var invokerFunction = new_(Function, args1).apply(null, args2); + return invokerFunction + } + } + + function heap32VectorToArray(count, firstElement) { + var array = []; + for (var i = 0; i < count; i++) { + array.push(HEAP32[(firstElement >> 2) + i]) + } + return array + } + + function __embind_register_class_class_function(rawClassType, methodName, argCount, rawArgTypesAddr, invokerSignature, rawInvoker, fn) { + var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr); + methodName = readLatin1String(methodName); + rawInvoker = embind__requireFunction(invokerSignature, rawInvoker); + whenDependentTypesAreResolved([], [rawClassType], function (classType) { + classType = classType[0]; + var humanName = classType.name + "." + methodName; + + function unboundTypesHandler() { + throwUnboundTypeError("Cannot call " + humanName + " due to unbound types", rawArgTypes) + } + + var proto = classType.registeredClass.constructor; + if (undefined === proto[methodName]) { + unboundTypesHandler.argCount = argCount - 1; + proto[methodName] = unboundTypesHandler + } else { + ensureOverloadTable(proto, methodName, humanName); + proto[methodName].overloadTable[argCount - 1] = unboundTypesHandler + } + whenDependentTypesAreResolved([], rawArgTypes, function (argTypes) { + var invokerArgsArray = [argTypes[0], null].concat(argTypes.slice(1)); + var func = craftInvokerFunction(humanName, invokerArgsArray, null, rawInvoker, fn); + if (undefined === proto[methodName].overloadTable) { + func.argCount = argCount - 1; + proto[methodName] = func + } else { + proto[methodName].overloadTable[argCount - 1] = func + } + return [] + }); + return [] + }) + } + + function __embind_register_class_constructor(rawClassType, argCount, rawArgTypesAddr, invokerSignature, invoker, rawConstructor) { + assert(argCount > 0); + var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr); + invoker = embind__requireFunction(invokerSignature, invoker); + var args = [rawConstructor]; + var destructors = []; + whenDependentTypesAreResolved([], [rawClassType], function (classType) { + classType = classType[0]; + var humanName = "constructor " + classType.name; + if (undefined === classType.registeredClass.constructor_body) { + classType.registeredClass.constructor_body = [] + } + if (undefined !== classType.registeredClass.constructor_body[argCount - 1]) { + throw new BindingError("Cannot register multiple constructors with identical number of parameters (" + (argCount - 1) + ") for class '" + classType.name + "'! Overload resolution is currently only performed using the parameter count, not actual type info!") + } + classType.registeredClass.constructor_body[argCount - 1] = function unboundTypeHandler() { + throwUnboundTypeError("Cannot construct " + classType.name + " due to unbound types", rawArgTypes) + }; + whenDependentTypesAreResolved([], rawArgTypes, function (argTypes) { + classType.registeredClass.constructor_body[argCount - 1] = function constructor_body() { + if (arguments.length !== argCount - 1) { + throwBindingError(humanName + " called with " + arguments.length + " arguments, expected " + (argCount - 1)) + } + destructors.length = 0; + args.length = argCount; + for (var i = 1; i < argCount; ++i) { + args[i] = argTypes[i]["toWireType"](destructors, arguments[i - 1]) + } + var ptr = invoker.apply(null, args); + runDestructors(destructors); + return argTypes[0]["fromWireType"](ptr) + }; + return [] + }); + return [] + }) + } + + function __embind_register_class_function(rawClassType, methodName, argCount, rawArgTypesAddr, invokerSignature, rawInvoker, context, isPureVirtual) { + var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr); + methodName = readLatin1String(methodName); + rawInvoker = embind__requireFunction(invokerSignature, rawInvoker); + whenDependentTypesAreResolved([], [rawClassType], function (classType) { + classType = classType[0]; + var humanName = classType.name + "." + methodName; + if (isPureVirtual) { + classType.registeredClass.pureVirtualFunctions.push(methodName) + } + + function unboundTypesHandler() { + throwUnboundTypeError("Cannot call " + humanName + " due to unbound types", rawArgTypes) + } + + var proto = classType.registeredClass.instancePrototype; + var method = proto[methodName]; + if (undefined === method || undefined === method.overloadTable && method.className !== classType.name && method.argCount === argCount - 2) { + unboundTypesHandler.argCount = argCount - 2; + unboundTypesHandler.className = classType.name; + proto[methodName] = unboundTypesHandler + } else { + ensureOverloadTable(proto, methodName, humanName); + proto[methodName].overloadTable[argCount - 2] = unboundTypesHandler + } + whenDependentTypesAreResolved([], rawArgTypes, function (argTypes) { + var memberFunction = craftInvokerFunction(humanName, argTypes, classType, rawInvoker, context); + if (undefined === proto[methodName].overloadTable) { + memberFunction.argCount = argCount - 2; + proto[methodName] = memberFunction + } else { + proto[methodName].overloadTable[argCount - 2] = memberFunction + } + return [] + }); + return [] + }) + } + + function validateThis(this_, classType, humanName) { + if (!(this_ instanceof Object)) { + throwBindingError(humanName + ' with invalid "this": ' + this_) + } + if (!(this_ instanceof classType.registeredClass.constructor)) { + throwBindingError(humanName + ' incompatible with "this" of type ' + this_.constructor.name) + } + if (!this_.$$.ptr) { + throwBindingError("cannot call emscripten binding method " + humanName + " on deleted object") + } + return upcastPointer(this_.$$.ptr, this_.$$.ptrType.registeredClass, classType.registeredClass) + } + + function __embind_register_class_property(classType, fieldName, getterReturnType, getterSignature, getter, getterContext, setterArgumentType, setterSignature, setter, setterContext) { + fieldName = readLatin1String(fieldName); + getter = embind__requireFunction(getterSignature, getter); + whenDependentTypesAreResolved([], [classType], function (classType) { + classType = classType[0]; + var humanName = classType.name + "." + fieldName; + var desc = { + get: function () { + throwUnboundTypeError("Cannot access " + humanName + " due to unbound types", [getterReturnType, setterArgumentType]) + }, enumerable: true, configurable: true + }; + if (setter) { + desc.set = function () { + throwUnboundTypeError("Cannot access " + humanName + " due to unbound types", [getterReturnType, setterArgumentType]) + } + } else { + desc.set = function (v) { + throwBindingError(humanName + " is a read-only property") + } + } + Object.defineProperty(classType.registeredClass.instancePrototype, fieldName, desc); + whenDependentTypesAreResolved([], setter ? [getterReturnType, setterArgumentType] : [getterReturnType], function (types) { + var getterReturnType = types[0]; + var desc = { + get: function () { + var ptr = validateThis(this, classType, humanName + " getter"); + return getterReturnType["fromWireType"](getter(getterContext, ptr)) + }, enumerable: true + }; + if (setter) { + setter = embind__requireFunction(setterSignature, setter); + var setterArgumentType = types[1]; + desc.set = function (v) { + var ptr = validateThis(this, classType, humanName + " setter"); + var destructors = []; + setter(setterContext, ptr, setterArgumentType["toWireType"](destructors, v)); + runDestructors(destructors) + } + } + Object.defineProperty(classType.registeredClass.instancePrototype, fieldName, desc); + return [] + }); + return [] + }) + } + + function __embind_register_constant(name, type, value) { + name = readLatin1String(name); + whenDependentTypesAreResolved([], [type], function (type) { + type = type[0]; + Module[name] = type["fromWireType"](value); + return [] + }) + } + + var emval_free_list = []; + var emval_handle_array = [{}, {value: undefined}, {value: null}, {value: true}, {value: false}]; + + function __emval_decref(handle) { + if (handle > 4 && 0 === --emval_handle_array[handle].refcount) { + emval_handle_array[handle] = undefined; + emval_free_list.push(handle) + } + } + + function count_emval_handles() { + var count = 0; + for (var i = 5; i < emval_handle_array.length; ++i) { + if (emval_handle_array[i] !== undefined) { + ++count + } + } + return count + } + + function get_first_emval() { + for (var i = 5; i < emval_handle_array.length; ++i) { + if (emval_handle_array[i] !== undefined) { + return emval_handle_array[i] + } + } + return null + } + + function init_emval() { + Module["count_emval_handles"] = count_emval_handles; + Module["get_first_emval"] = get_first_emval + } + + function __emval_register(value) { + switch (value) { + case undefined: { + return 1 + } + case null: { + return 2 + } + case true: { + return 3 + } + case false: { + return 4 + } + default: { + var handle = emval_free_list.length ? emval_free_list.pop() : emval_handle_array.length; + emval_handle_array[handle] = {refcount: 1, value: value}; + return handle + } + } + } + + function __embind_register_emval(rawType, name) { + name = readLatin1String(name); + registerType(rawType, { + name: name, + "fromWireType": function (handle) { + var rv = emval_handle_array[handle].value; + __emval_decref(handle); + return rv + }, + "toWireType": function (destructors, value) { + return __emval_register(value) + }, + "argPackAdvance": 8, + "readValueFromPointer": simpleReadValueFromPointer, + destructorFunction: null + }) + } + + function _embind_repr(v) { + if (v === null) { + return "null" + } + var t = typeof v; + if (t === "object" || t === "array" || t === "function") { + return v.toString() + } else { + return "" + v + } + } + + function floatReadValueFromPointer(name, shift) { + switch (shift) { + case 2: + return function (pointer) { + return this["fromWireType"](HEAPF32[pointer >> 2]) + }; + case 3: + return function (pointer) { + return this["fromWireType"](HEAPF64[pointer >> 3]) + }; + default: + throw new TypeError("Unknown float type: " + name) + } + } + + function __embind_register_float(rawType, name, size) { + var shift = getShiftFromSize(size); + name = readLatin1String(name); + registerType(rawType, { + name: name, + "fromWireType": function (value) { + return value + }, + "toWireType": function (destructors, value) { + if (typeof value !== "number" && typeof value !== "boolean") { + throw new TypeError('Cannot convert "' + _embind_repr(value) + '" to ' + this.name) + } + return value + }, + "argPackAdvance": 8, + "readValueFromPointer": floatReadValueFromPointer(name, shift), + destructorFunction: null + }) + } + + function __embind_register_function(name, argCount, rawArgTypesAddr, signature, rawInvoker, fn) { + var argTypes = heap32VectorToArray(argCount, rawArgTypesAddr); + name = readLatin1String(name); + rawInvoker = embind__requireFunction(signature, rawInvoker); + exposePublicSymbol(name, function () { + throwUnboundTypeError("Cannot call " + name + " due to unbound types", argTypes) + }, argCount - 1); + whenDependentTypesAreResolved([], argTypes, function (argTypes) { + var invokerArgsArray = [argTypes[0], null].concat(argTypes.slice(1)); + replacePublicSymbol(name, craftInvokerFunction(name, invokerArgsArray, null, rawInvoker, fn), argCount - 1); + return [] + }) + } + + function integerReadValueFromPointer(name, shift, signed) { + switch (shift) { + case 0: + return signed ? function readS8FromPointer(pointer) { + return HEAP8[pointer] + } : function readU8FromPointer(pointer) { + return HEAPU8[pointer] + }; + case 1: + return signed ? function readS16FromPointer(pointer) { + return HEAP16[pointer >> 1] + } : function readU16FromPointer(pointer) { + return HEAPU16[pointer >> 1] + }; + case 2: + return signed ? function readS32FromPointer(pointer) { + return HEAP32[pointer >> 2] + } : function readU32FromPointer(pointer) { + return HEAPU32[pointer >> 2] + }; + default: + throw new TypeError("Unknown integer type: " + name) + } + } + + function __embind_register_integer(primitiveType, name, size, minRange, maxRange) { + name = readLatin1String(name); + if (maxRange === -1) { + maxRange = 4294967295 + } + var shift = getShiftFromSize(size); + var fromWireType = function (value) { + return value + }; + if (minRange === 0) { + var bitshift = 32 - 8 * size; + fromWireType = function (value) { + return value << bitshift >>> bitshift + } + } + var isUnsignedType = name.indexOf("unsigned") != -1; + registerType(primitiveType, { + name: name, + "fromWireType": fromWireType, + "toWireType": function (destructors, value) { + if (typeof value !== "number" && typeof value !== "boolean") { + throw new TypeError('Cannot convert "' + _embind_repr(value) + '" to ' + this.name) + } + if (value < minRange || value > maxRange) { + throw new TypeError('Passing a number "' + _embind_repr(value) + '" from JS side to C/C++ side to an argument of type "' + name + '", which is outside the valid range [' + minRange + ", " + maxRange + "]!") + } + return isUnsignedType ? value >>> 0 : value | 0 + }, + "argPackAdvance": 8, + "readValueFromPointer": integerReadValueFromPointer(name, shift, minRange !== 0), + destructorFunction: null + }) + } + + function __embind_register_memory_view(rawType, dataTypeIndex, name) { + var typeMapping = [Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array]; + var TA = typeMapping[dataTypeIndex]; + + function decodeMemoryView(handle) { + handle = handle >> 2; + var heap = HEAPU32; + var size = heap[handle]; + var data = heap[handle + 1]; + return new TA(buffer, data, size) + } + + name = readLatin1String(name); + registerType(rawType, { + name: name, + "fromWireType": decodeMemoryView, + "argPackAdvance": 8, + "readValueFromPointer": decodeMemoryView + }, {ignoreDuplicateRegistrations: true}) + } + + function __embind_register_std_string(rawType, name) { + name = readLatin1String(name); + var stdStringIsUTF8 = name === "std::string"; + registerType(rawType, { + name: name, + "fromWireType": function (value) { + var length = HEAPU32[value >> 2]; + var str; + if (stdStringIsUTF8) { + var decodeStartPtr = value + 4; + for (var i = 0; i <= length; ++i) { + var currentBytePtr = value + 4 + i; + if (i == length || HEAPU8[currentBytePtr] == 0) { + var maxRead = currentBytePtr - decodeStartPtr; + var stringSegment = UTF8ToString(decodeStartPtr, maxRead); + if (str === undefined) { + str = stringSegment + } else { + str += String.fromCharCode(0); + str += stringSegment + } + decodeStartPtr = currentBytePtr + 1 + } + } + } else { + var a = new Array(length); + for (var i = 0; i < length; ++i) { + a[i] = String.fromCharCode(HEAPU8[value + 4 + i]) + } + str = a.join("") + } + _free(value); + return str + }, + "toWireType": function (destructors, value) { + if (value instanceof ArrayBuffer) { + value = new Uint8Array(value) + } + var getLength; + var valueIsOfTypeString = typeof value === "string"; + if (!(valueIsOfTypeString || value instanceof Uint8Array || value instanceof Uint8ClampedArray || value instanceof Int8Array)) { + throwBindingError("Cannot pass non-string to std::string") + } + if (stdStringIsUTF8 && valueIsOfTypeString) { + getLength = function () { + return lengthBytesUTF8(value) + } + } else { + getLength = function () { + return value.length + } + } + var length = getLength(); + var ptr = _malloc(4 + length + 1); + HEAPU32[ptr >> 2] = length; + if (stdStringIsUTF8 && valueIsOfTypeString) { + stringToUTF8(value, ptr + 4, length + 1) + } else { + if (valueIsOfTypeString) { + for (var i = 0; i < length; ++i) { + var charCode = value.charCodeAt(i); + if (charCode > 255) { + _free(ptr); + throwBindingError("String has UTF-16 code units that do not fit in 8 bits") + } + HEAPU8[ptr + 4 + i] = charCode + } + } else { + for (var i = 0; i < length; ++i) { + HEAPU8[ptr + 4 + i] = value[i] + } + } + } + if (destructors !== null) { + destructors.push(_free, ptr) + } + return ptr + }, + "argPackAdvance": 8, + "readValueFromPointer": simpleReadValueFromPointer, + destructorFunction: function (ptr) { + _free(ptr) + } + }) + } + + function __embind_register_std_wstring(rawType, charSize, name) { + name = readLatin1String(name); + var decodeString, encodeString, getHeap, lengthBytesUTF, shift; + if (charSize === 2) { + decodeString = UTF16ToString; + encodeString = stringToUTF16; + lengthBytesUTF = lengthBytesUTF16; + getHeap = function () { + return HEAPU16 + }; + shift = 1 + } else if (charSize === 4) { + decodeString = UTF32ToString; + encodeString = stringToUTF32; + lengthBytesUTF = lengthBytesUTF32; + getHeap = function () { + return HEAPU32 + }; + shift = 2 + } + registerType(rawType, { + name: name, + "fromWireType": function (value) { + var length = HEAPU32[value >> 2]; + var HEAP = getHeap(); + var str; + var decodeStartPtr = value + 4; + for (var i = 0; i <= length; ++i) { + var currentBytePtr = value + 4 + i * charSize; + if (i == length || HEAP[currentBytePtr >> shift] == 0) { + var maxReadBytes = currentBytePtr - decodeStartPtr; + var stringSegment = decodeString(decodeStartPtr, maxReadBytes); + if (str === undefined) { + str = stringSegment + } else { + str += String.fromCharCode(0); + str += stringSegment + } + decodeStartPtr = currentBytePtr + charSize + } + } + _free(value); + return str + }, + "toWireType": function (destructors, value) { + if (!(typeof value === "string")) { + throwBindingError("Cannot pass non-string to C++ string type " + name) + } + var length = lengthBytesUTF(value); + var ptr = _malloc(4 + length + charSize); + HEAPU32[ptr >> 2] = length >> shift; + encodeString(value, ptr + 4, length + charSize); + if (destructors !== null) { + destructors.push(_free, ptr) + } + return ptr + }, + "argPackAdvance": 8, + "readValueFromPointer": simpleReadValueFromPointer, + destructorFunction: function (ptr) { + _free(ptr) + } + }) + } + + function __embind_register_value_array(rawType, name, constructorSignature, rawConstructor, destructorSignature, rawDestructor) { + tupleRegistrations[rawType] = { + name: readLatin1String(name), + rawConstructor: embind__requireFunction(constructorSignature, rawConstructor), + rawDestructor: embind__requireFunction(destructorSignature, rawDestructor), + elements: [] + } + } + + function __embind_register_value_array_element(rawTupleType, getterReturnType, getterSignature, getter, getterContext, setterArgumentType, setterSignature, setter, setterContext) { + tupleRegistrations[rawTupleType].elements.push({ + getterReturnType: getterReturnType, + getter: embind__requireFunction(getterSignature, getter), + getterContext: getterContext, + setterArgumentType: setterArgumentType, + setter: embind__requireFunction(setterSignature, setter), + setterContext: setterContext + }) + } + + function __embind_register_value_object(rawType, name, constructorSignature, rawConstructor, destructorSignature, rawDestructor) { + structRegistrations[rawType] = { + name: readLatin1String(name), + rawConstructor: embind__requireFunction(constructorSignature, rawConstructor), + rawDestructor: embind__requireFunction(destructorSignature, rawDestructor), + fields: [] + } + } + + function __embind_register_value_object_field(structType, fieldName, getterReturnType, getterSignature, getter, getterContext, setterArgumentType, setterSignature, setter, setterContext) { + structRegistrations[structType].fields.push({ + fieldName: readLatin1String(fieldName), + getterReturnType: getterReturnType, + getter: embind__requireFunction(getterSignature, getter), + getterContext: getterContext, + setterArgumentType: setterArgumentType, + setter: embind__requireFunction(setterSignature, setter), + setterContext: setterContext + }) + } + + function __embind_register_void(rawType, name) { + name = readLatin1String(name); + registerType(rawType, { + isVoid: true, name: name, "argPackAdvance": 0, "fromWireType": function () { + return undefined + }, "toWireType": function (destructors, o) { + return undefined + } + }) + } + + var emval_symbols = {}; + + function getStringOrSymbol(address) { + var symbol = emval_symbols[address]; + if (symbol === undefined) { + return readLatin1String(address) + } else { + return symbol + } + } + + var emval_methodCallers = []; + + function requireHandle(handle) { + if (!handle) { + throwBindingError("Cannot use deleted val. handle = " + handle) + } + return emval_handle_array[handle].value + } + + function __emval_call_void_method(caller, handle, methodName, args) { + caller = emval_methodCallers[caller]; + handle = requireHandle(handle); + methodName = getStringOrSymbol(methodName); + caller(handle, methodName, null, args) + } + + function __emval_addMethodCaller(caller) { + var id = emval_methodCallers.length; + emval_methodCallers.push(caller); + return id + } + + function requireRegisteredType(rawType, humanName) { + var impl = registeredTypes[rawType]; + if (undefined === impl) { + throwBindingError(humanName + " has unknown type " + getTypeName(rawType)) + } + return impl + } + + function __emval_lookupTypes(argCount, argTypes) { + var a = new Array(argCount); + for (var i = 0; i < argCount; ++i) { + a[i] = requireRegisteredType(HEAP32[(argTypes >> 2) + i], "parameter " + i) + } + return a + } + + function __emval_get_method_caller(argCount, argTypes) { + var types = __emval_lookupTypes(argCount, argTypes); + var retType = types[0]; + var signatureName = retType.name + "_$" + types.slice(1).map(function (t) { + return t.name + }).join("_") + "$"; + var params = ["retType"]; + var args = [retType]; + var argsList = ""; + for (var i = 0; i < argCount - 1; ++i) { + argsList += (i !== 0 ? ", " : "") + "arg" + i; + params.push("argType" + i); + args.push(types[1 + i]) + } + var functionName = makeLegalFunctionName("methodCaller_" + signatureName); + var functionBody = "return function " + functionName + "(handle, name, destructors, args) {\n"; + var offset = 0; + for (var i = 0; i < argCount - 1; ++i) { + functionBody += " var arg" + i + " = argType" + i + ".readValueFromPointer(args" + (offset ? "+" + offset : "") + ");\n"; + offset += types[i + 1]["argPackAdvance"] + } + functionBody += " var rv = handle[name](" + argsList + ");\n"; + for (var i = 0; i < argCount - 1; ++i) { + if (types[i + 1]["deleteObject"]) { + functionBody += " argType" + i + ".deleteObject(arg" + i + ");\n" + } + } + if (!retType.isVoid) { + functionBody += " return retType.toWireType(destructors, rv);\n" + } + functionBody += "};\n"; + params.push(functionBody); + var invokerFunction = new_(Function, params).apply(null, args); + return __emval_addMethodCaller(invokerFunction) + } + + function __emval_incref(handle) { + if (handle > 4) { + emval_handle_array[handle].refcount += 1 + } + } + + function __emval_new_array() { + return __emval_register([]) + } + + function __emval_take_value(type, argv) { + type = requireRegisteredType(type, "_emval_take_value"); + var v = type["readValueFromPointer"](argv); + return __emval_register(v) + } + + function _abort() { + abort() + } + + function _emscripten_get_sbrk_ptr() { + return 642656 + } + + function _emscripten_memcpy_big(dest, src, num) { + HEAPU8.copyWithin(dest, src, src + num) + } + + function _emscripten_get_heap_size() { + return HEAPU8.length + } + + function emscripten_realloc_buffer(size) { + try { + wasmMemory.grow(size - buffer.byteLength + 65535 >>> 16); + updateGlobalBufferAndViews(wasmMemory.buffer); + return 1 + } catch (e) { + } + } + + function _emscripten_resize_heap(requestedSize) { + requestedSize = requestedSize >>> 0; + var oldSize = _emscripten_get_heap_size(); + var PAGE_MULTIPLE = 65536; + var maxHeapSize = 2147483648; + if (requestedSize > maxHeapSize) { + return false + } + var minHeapSize = 16777216; + for (var cutDown = 1; cutDown <= 4; cutDown *= 2) { + var overGrownHeapSize = oldSize * (1 + .2 / cutDown); + overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296); + var newSize = Math.min(maxHeapSize, alignUp(Math.max(minHeapSize, requestedSize, overGrownHeapSize), PAGE_MULTIPLE)); + var replacement = emscripten_realloc_buffer(newSize); + if (replacement) { + return true + } + } + return false + } + + var ENV = {}; + + function __getExecutableName() { + return thisProgram || "./this.program" + } + + function getEnvStrings() { + if (!getEnvStrings.strings) { + var lang = (typeof navigator === "object" && navigator.languages && navigator.languages[0] || "C").replace("-", "_") + ".UTF-8"; + var env = { + "USER": "web_user", + "LOGNAME": "web_user", + "PATH": "/", + "PWD": "/", + "HOME": "/home/web_user", + "LANG": lang, + "_": __getExecutableName() + }; + for (var x in ENV) { + env[x] = ENV[x] + } + var strings = []; + for (var x in env) { + strings.push(x + "=" + env[x]) + } + getEnvStrings.strings = strings + } + return getEnvStrings.strings + } + + function _environ_get(__environ, environ_buf) { + var bufSize = 0; + getEnvStrings().forEach(function (string, i) { + var ptr = environ_buf + bufSize; + HEAP32[__environ + i * 4 >> 2] = ptr; + writeAsciiToMemory(string, ptr); + bufSize += string.length + 1 + }); + return 0 + } + + function _environ_sizes_get(penviron_count, penviron_buf_size) { + var strings = getEnvStrings(); + HEAP32[penviron_count >> 2] = strings.length; + var bufSize = 0; + strings.forEach(function (string) { + bufSize += string.length + 1 + }); + HEAP32[penviron_buf_size >> 2] = bufSize; + return 0 + } + + function _fd_close(fd) { + try { + var stream = SYSCALLS.getStreamFromFD(fd); + FS.close(stream); + return 0 + } catch (e) { + if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e); + return e.errno + } + } + + function _fd_read(fd, iov, iovcnt, pnum) { + try { + var stream = SYSCALLS.getStreamFromFD(fd); + var num = SYSCALLS.doReadv(stream, iov, iovcnt); + HEAP32[pnum >> 2] = num; + return 0 + } catch (e) { + if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e); + return e.errno + } + } + + function _fd_seek(fd, offset_low, offset_high, whence, newOffset) { + try { + var stream = SYSCALLS.getStreamFromFD(fd); + var HIGH_OFFSET = 4294967296; + var offset = offset_high * HIGH_OFFSET + (offset_low >>> 0); + var DOUBLE_LIMIT = 9007199254740992; + if (offset <= -DOUBLE_LIMIT || offset >= DOUBLE_LIMIT) { + return -61 + } + FS.llseek(stream, offset, whence); + tempI64 = [stream.position >>> 0, (tempDouble = stream.position, +Math_abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math_min(+Math_floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math_ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[newOffset >> 2] = tempI64[0], HEAP32[newOffset + 4 >> 2] = tempI64[1]; + if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null; + return 0 + } catch (e) { + if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e); + return e.errno + } + } + + function _fd_write(fd, iov, iovcnt, pnum) { + try { + var stream = SYSCALLS.getStreamFromFD(fd); + var num = SYSCALLS.doWritev(stream, iov, iovcnt); + HEAP32[pnum >> 2] = num; + return 0 + } catch (e) { + if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e); + return e.errno + } + } + + function _pthread_mutexattr_destroy() { + } + + function _pthread_mutexattr_init() { + } + + function _pthread_mutexattr_settype() { + } + + function _setTempRet0($i) { + setTempRet0($i | 0) + } + + function __isLeapYear(year) { + return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0) + } + + function __arraySum(array, index) { + var sum = 0; + for (var i = 0; i <= index; sum += array[i++]) { + } + return sum + } + + var __MONTH_DAYS_LEAP = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; + var __MONTH_DAYS_REGULAR = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; + + function __addDays(date, days) { + var newDate = new Date(date.getTime()); + while (days > 0) { + var leap = __isLeapYear(newDate.getFullYear()); + var currentMonth = newDate.getMonth(); + var daysInCurrentMonth = (leap ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR)[currentMonth]; + if (days > daysInCurrentMonth - newDate.getDate()) { + days -= daysInCurrentMonth - newDate.getDate() + 1; + newDate.setDate(1); + if (currentMonth < 11) { + newDate.setMonth(currentMonth + 1) + } else { + newDate.setMonth(0); + newDate.setFullYear(newDate.getFullYear() + 1) + } + } else { + newDate.setDate(newDate.getDate() + days); + return newDate + } + } + return newDate + } + + function _strftime(s, maxsize, format, tm) { + var tm_zone = HEAP32[tm + 40 >> 2]; + var date = { + tm_sec: HEAP32[tm >> 2], + tm_min: HEAP32[tm + 4 >> 2], + tm_hour: HEAP32[tm + 8 >> 2], + tm_mday: HEAP32[tm + 12 >> 2], + tm_mon: HEAP32[tm + 16 >> 2], + tm_year: HEAP32[tm + 20 >> 2], + tm_wday: HEAP32[tm + 24 >> 2], + tm_yday: HEAP32[tm + 28 >> 2], + tm_isdst: HEAP32[tm + 32 >> 2], + tm_gmtoff: HEAP32[tm + 36 >> 2], + tm_zone: tm_zone ? UTF8ToString(tm_zone) : "" + }; + var pattern = UTF8ToString(format); + var EXPANSION_RULES_1 = { + "%c": "%a %b %d %H:%M:%S %Y", + "%D": "%m/%d/%y", + "%F": "%Y-%m-%d", + "%h": "%b", + "%r": "%I:%M:%S %p", + "%R": "%H:%M", + "%T": "%H:%M:%S", + "%x": "%m/%d/%y", + "%X": "%H:%M:%S", + "%Ec": "%c", + "%EC": "%C", + "%Ex": "%m/%d/%y", + "%EX": "%H:%M:%S", + "%Ey": "%y", + "%EY": "%Y", + "%Od": "%d", + "%Oe": "%e", + "%OH": "%H", + "%OI": "%I", + "%Om": "%m", + "%OM": "%M", + "%OS": "%S", + "%Ou": "%u", + "%OU": "%U", + "%OV": "%V", + "%Ow": "%w", + "%OW": "%W", + "%Oy": "%y" + }; + for (var rule in EXPANSION_RULES_1) { + pattern = pattern.replace(new RegExp(rule, "g"), EXPANSION_RULES_1[rule]) + } + var WEEKDAYS = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; + var MONTHS = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; + + function leadingSomething(value, digits, character) { + var str = typeof value === "number" ? value.toString() : value || ""; + while (str.length < digits) { + str = character[0] + str + } + return str + } + + function leadingNulls(value, digits) { + return leadingSomething(value, digits, "0") + } + + function compareByDay(date1, date2) { + function sgn(value) { + return value < 0 ? -1 : value > 0 ? 1 : 0 + } + + var compare; + if ((compare = sgn(date1.getFullYear() - date2.getFullYear())) === 0) { + if ((compare = sgn(date1.getMonth() - date2.getMonth())) === 0) { + compare = sgn(date1.getDate() - date2.getDate()) + } + } + return compare + } + + function getFirstWeekStartDate(janFourth) { + switch (janFourth.getDay()) { + case 0: + return new Date(janFourth.getFullYear() - 1, 11, 29); + case 1: + return janFourth; + case 2: + return new Date(janFourth.getFullYear(), 0, 3); + case 3: + return new Date(janFourth.getFullYear(), 0, 2); + case 4: + return new Date(janFourth.getFullYear(), 0, 1); + case 5: + return new Date(janFourth.getFullYear() - 1, 11, 31); + case 6: + return new Date(janFourth.getFullYear() - 1, 11, 30) + } + } + + function getWeekBasedYear(date) { + var thisDate = __addDays(new Date(date.tm_year + 1900, 0, 1), date.tm_yday); + var janFourthThisYear = new Date(thisDate.getFullYear(), 0, 4); + var janFourthNextYear = new Date(thisDate.getFullYear() + 1, 0, 4); + var firstWeekStartThisYear = getFirstWeekStartDate(janFourthThisYear); + var firstWeekStartNextYear = getFirstWeekStartDate(janFourthNextYear); + if (compareByDay(firstWeekStartThisYear, thisDate) <= 0) { + if (compareByDay(firstWeekStartNextYear, thisDate) <= 0) { + return thisDate.getFullYear() + 1 + } else { + return thisDate.getFullYear() + } + } else { + return thisDate.getFullYear() - 1 + } + } + + var EXPANSION_RULES_2 = { + "%a": function (date) { + return WEEKDAYS[date.tm_wday].substring(0, 3) + }, "%A": function (date) { + return WEEKDAYS[date.tm_wday] + }, "%b": function (date) { + return MONTHS[date.tm_mon].substring(0, 3) + }, "%B": function (date) { + return MONTHS[date.tm_mon] + }, "%C": function (date) { + var year = date.tm_year + 1900; + return leadingNulls(year / 100 | 0, 2) + }, "%d": function (date) { + return leadingNulls(date.tm_mday, 2) + }, "%e": function (date) { + return leadingSomething(date.tm_mday, 2, " ") + }, "%g": function (date) { + return getWeekBasedYear(date).toString().substring(2) + }, "%G": function (date) { + return getWeekBasedYear(date) + }, "%H": function (date) { + return leadingNulls(date.tm_hour, 2) + }, "%I": function (date) { + var twelveHour = date.tm_hour; + if (twelveHour == 0) twelveHour = 12; else if (twelveHour > 12) twelveHour -= 12; + return leadingNulls(twelveHour, 2) + }, "%j": function (date) { + return leadingNulls(date.tm_mday + __arraySum(__isLeapYear(date.tm_year + 1900) ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR, date.tm_mon - 1), 3) + }, "%m": function (date) { + return leadingNulls(date.tm_mon + 1, 2) + }, "%M": function (date) { + return leadingNulls(date.tm_min, 2) + }, "%n": function () { + return "\n" + }, "%p": function (date) { + if (date.tm_hour >= 0 && date.tm_hour < 12) { + return "AM" + } else { + return "PM" + } + }, "%S": function (date) { + return leadingNulls(date.tm_sec, 2) + }, "%t": function () { + return "\t" + }, "%u": function (date) { + return date.tm_wday || 7 + }, "%U": function (date) { + var janFirst = new Date(date.tm_year + 1900, 0, 1); + var firstSunday = janFirst.getDay() === 0 ? janFirst : __addDays(janFirst, 7 - janFirst.getDay()); + var endDate = new Date(date.tm_year + 1900, date.tm_mon, date.tm_mday); + if (compareByDay(firstSunday, endDate) < 0) { + var februaryFirstUntilEndMonth = __arraySum(__isLeapYear(endDate.getFullYear()) ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR, endDate.getMonth() - 1) - 31; + var firstSundayUntilEndJanuary = 31 - firstSunday.getDate(); + var days = firstSundayUntilEndJanuary + februaryFirstUntilEndMonth + endDate.getDate(); + return leadingNulls(Math.ceil(days / 7), 2) + } + return compareByDay(firstSunday, janFirst) === 0 ? "01" : "00" + }, "%V": function (date) { + var janFourthThisYear = new Date(date.tm_year + 1900, 0, 4); + var janFourthNextYear = new Date(date.tm_year + 1901, 0, 4); + var firstWeekStartThisYear = getFirstWeekStartDate(janFourthThisYear); + var firstWeekStartNextYear = getFirstWeekStartDate(janFourthNextYear); + var endDate = __addDays(new Date(date.tm_year + 1900, 0, 1), date.tm_yday); + if (compareByDay(endDate, firstWeekStartThisYear) < 0) { + return "53" + } + if (compareByDay(firstWeekStartNextYear, endDate) <= 0) { + return "01" + } + var daysDifference; + if (firstWeekStartThisYear.getFullYear() < date.tm_year + 1900) { + daysDifference = date.tm_yday + 32 - firstWeekStartThisYear.getDate() + } else { + daysDifference = date.tm_yday + 1 - firstWeekStartThisYear.getDate() + } + return leadingNulls(Math.ceil(daysDifference / 7), 2) + }, "%w": function (date) { + return date.tm_wday + }, "%W": function (date) { + var janFirst = new Date(date.tm_year, 0, 1); + var firstMonday = janFirst.getDay() === 1 ? janFirst : __addDays(janFirst, janFirst.getDay() === 0 ? 1 : 7 - janFirst.getDay() + 1); + var endDate = new Date(date.tm_year + 1900, date.tm_mon, date.tm_mday); + if (compareByDay(firstMonday, endDate) < 0) { + var februaryFirstUntilEndMonth = __arraySum(__isLeapYear(endDate.getFullYear()) ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR, endDate.getMonth() - 1) - 31; + var firstMondayUntilEndJanuary = 31 - firstMonday.getDate(); + var days = firstMondayUntilEndJanuary + februaryFirstUntilEndMonth + endDate.getDate(); + return leadingNulls(Math.ceil(days / 7), 2) + } + return compareByDay(firstMonday, janFirst) === 0 ? "01" : "00" + }, "%y": function (date) { + return (date.tm_year + 1900).toString().substring(2) + }, "%Y": function (date) { + return date.tm_year + 1900 + }, "%z": function (date) { + var off = date.tm_gmtoff; + var ahead = off >= 0; + off = Math.abs(off) / 60; + off = off / 60 * 100 + off % 60; + return (ahead ? "+" : "-") + String("0000" + off).slice(-4) + }, "%Z": function (date) { + return date.tm_zone + }, "%%": function () { + return "%" + } + }; + for (var rule in EXPANSION_RULES_2) { + if (pattern.indexOf(rule) >= 0) { + pattern = pattern.replace(new RegExp(rule, "g"), EXPANSION_RULES_2[rule](date)) + } + } + var bytes = intArrayFromString(pattern, false); + if (bytes.length > maxsize) { + return 0 + } + writeArrayToMemory(bytes, s); + return bytes.length - 1 + } + + function _strftime_l(s, maxsize, format, tm) { + return _strftime(s, maxsize, format, tm) + } + + Module["requestFullscreen"] = function Module_requestFullscreen(lockPointer, resizeCanvas) { + Browser.requestFullscreen(lockPointer, resizeCanvas) + }; + Module["requestAnimationFrame"] = function Module_requestAnimationFrame(func) { + Browser.requestAnimationFrame(func) + }; + Module["setCanvasSize"] = function Module_setCanvasSize(width, height, noUpdates) { + Browser.setCanvasSize(width, height, noUpdates) + }; + Module["pauseMainLoop"] = function Module_pauseMainLoop() { + Browser.mainLoop.pause() + }; + Module["resumeMainLoop"] = function Module_resumeMainLoop() { + Browser.mainLoop.resume() + }; + Module["getUserMedia"] = function Module_getUserMedia() { + Browser.getUserMedia() + }; + Module["createContext"] = function Module_createContext(canvas, useWebGL, setInModule, webGLContextAttributes) { + return Browser.createContext(canvas, useWebGL, setInModule, webGLContextAttributes) + }; + var FSNode = function (parent, name, mode, rdev) { + if (!parent) { + parent = this + } + this.parent = parent; + this.mount = parent.mount; + this.mounted = null; + this.id = FS.nextInode++; + this.name = name; + this.mode = mode; + this.node_ops = {}; + this.stream_ops = {}; + this.rdev = rdev + }; + var readMode = 292 | 73; + var writeMode = 146; + Object.defineProperties(FSNode.prototype, { + read: { + get: function () { + return (this.mode & readMode) === readMode + }, set: function (val) { + val ? this.mode |= readMode : this.mode &= ~readMode + } + }, write: { + get: function () { + return (this.mode & writeMode) === writeMode + }, set: function (val) { + val ? this.mode |= writeMode : this.mode &= ~writeMode + } + }, isFolder: { + get: function () { + return FS.isDir(this.mode) + } + }, isDevice: { + get: function () { + return FS.isChrdev(this.mode) + } + } + }); + FS.FSNode = FSNode; + FS.staticInit(); + Module["FS_createFolder"] = FS.createFolder; + Module["FS_createPath"] = FS.createPath; + Module["FS_createDataFile"] = FS.createDataFile; + Module["FS_createPreloadedFile"] = FS.createPreloadedFile; + Module["FS_createLazyFile"] = FS.createLazyFile; + Module["FS_createLink"] = FS.createLink; + Module["FS_createDevice"] = FS.createDevice; + Module["FS_unlink"] = FS.unlink; + InternalError = Module["InternalError"] = extendError(Error, "InternalError"); + embind_init_charCodes(); + BindingError = Module["BindingError"] = extendError(Error, "BindingError"); + init_ClassHandle(); + init_RegisteredPointer(); + init_embind(); + UnboundTypeError = Module["UnboundTypeError"] = extendError(Error, "UnboundTypeError"); + init_emval(); + var ASSERTIONS = false; + + function intArrayFromString(stringy, dontAddNull, length) { + var len = length > 0 ? length : lengthBytesUTF8(stringy) + 1; + var u8array = new Array(len); + var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length); + if (dontAddNull) u8array.length = numBytesWritten; + return u8array + } + + var asmLibraryArg = { + "__cxa_allocate_exception": ___cxa_allocate_exception, + "__cxa_atexit": ___cxa_atexit, + "__cxa_throw": ___cxa_throw, + "__map_file": ___map_file, + "__sys_munmap": ___sys_munmap, + "_embind_finalize_value_array": __embind_finalize_value_array, + "_embind_finalize_value_object": __embind_finalize_value_object, + "_embind_register_bool": __embind_register_bool, + "_embind_register_class": __embind_register_class, + "_embind_register_class_class_function": __embind_register_class_class_function, + "_embind_register_class_constructor": __embind_register_class_constructor, + "_embind_register_class_function": __embind_register_class_function, + "_embind_register_class_property": __embind_register_class_property, + "_embind_register_constant": __embind_register_constant, + "_embind_register_emval": __embind_register_emval, + "_embind_register_float": __embind_register_float, + "_embind_register_function": __embind_register_function, + "_embind_register_integer": __embind_register_integer, + "_embind_register_memory_view": __embind_register_memory_view, + "_embind_register_std_string": __embind_register_std_string, + "_embind_register_std_wstring": __embind_register_std_wstring, + "_embind_register_value_array": __embind_register_value_array, + "_embind_register_value_array_element": __embind_register_value_array_element, + "_embind_register_value_object": __embind_register_value_object, + "_embind_register_value_object_field": __embind_register_value_object_field, + "_embind_register_void": __embind_register_void, + "_emval_call_void_method": __emval_call_void_method, + "_emval_decref": __emval_decref, + "_emval_get_method_caller": __emval_get_method_caller, + "_emval_incref": __emval_incref, + "_emval_new_array": __emval_new_array, + "_emval_take_value": __emval_take_value, + "abort": _abort, + "emscripten_get_sbrk_ptr": _emscripten_get_sbrk_ptr, + "emscripten_memcpy_big": _emscripten_memcpy_big, + "emscripten_resize_heap": _emscripten_resize_heap, + "environ_get": _environ_get, + "environ_sizes_get": _environ_sizes_get, + "fd_close": _fd_close, + "fd_read": _fd_read, + "fd_seek": _fd_seek, + "fd_write": _fd_write, + "memory": wasmMemory, + "pthread_mutexattr_destroy": _pthread_mutexattr_destroy, + "pthread_mutexattr_init": _pthread_mutexattr_init, + "pthread_mutexattr_settype": _pthread_mutexattr_settype, + "setTempRet0": _setTempRet0, + "strftime_l": _strftime_l, + "table": wasmTable + }; + var asm = createWasm(); + var ___wasm_call_ctors = Module["___wasm_call_ctors"] = function () { + return (___wasm_call_ctors = Module["___wasm_call_ctors"] = Module["asm"]["__wasm_call_ctors"]).apply(null, arguments) + }; + var _malloc = Module["_malloc"] = function () { + return (_malloc = Module["_malloc"] = Module["asm"]["malloc"]).apply(null, arguments) + }; + var _free = Module["_free"] = function () { + return (_free = Module["_free"] = Module["asm"]["free"]).apply(null, arguments) + }; + var ___errno_location = Module["___errno_location"] = function () { + return (___errno_location = Module["___errno_location"] = Module["asm"]["__errno_location"]).apply(null, arguments) + }; + var ___getTypeName = Module["___getTypeName"] = function () { + return (___getTypeName = Module["___getTypeName"] = Module["asm"]["__getTypeName"]).apply(null, arguments) + }; + var ___embind_register_native_and_builtin_types = Module["___embind_register_native_and_builtin_types"] = function () { + return (___embind_register_native_and_builtin_types = Module["___embind_register_native_and_builtin_types"] = Module["asm"]["__embind_register_native_and_builtin_types"]).apply(null, arguments) + }; + var _setThrew = Module["_setThrew"] = function () { + return (_setThrew = Module["_setThrew"] = Module["asm"]["setThrew"]).apply(null, arguments) + }; + var stackSave = Module["stackSave"] = function () { + return (stackSave = Module["stackSave"] = Module["asm"]["stackSave"]).apply(null, arguments) + }; + var stackRestore = Module["stackRestore"] = function () { + return (stackRestore = Module["stackRestore"] = Module["asm"]["stackRestore"]).apply(null, arguments) + }; + var stackAlloc = Module["stackAlloc"] = function () { + return (stackAlloc = Module["stackAlloc"] = Module["asm"]["stackAlloc"]).apply(null, arguments) + }; + var ___cxa_demangle = Module["___cxa_demangle"] = function () { + return (___cxa_demangle = Module["___cxa_demangle"] = Module["asm"]["__cxa_demangle"]).apply(null, arguments) + }; + var _emscripten_main_thread_process_queued_calls = Module["_emscripten_main_thread_process_queued_calls"] = function () { + return (_emscripten_main_thread_process_queued_calls = Module["_emscripten_main_thread_process_queued_calls"] = Module["asm"]["emscripten_main_thread_process_queued_calls"]).apply(null, arguments) + }; + var __growWasmMemory = Module["__growWasmMemory"] = function () { + return (__growWasmMemory = Module["__growWasmMemory"] = Module["asm"]["__growWasmMemory"]).apply(null, arguments) + }; + var dynCall_ii = Module["dynCall_ii"] = function () { + return (dynCall_ii = Module["dynCall_ii"] = Module["asm"]["dynCall_ii"]).apply(null, arguments) + }; + var dynCall_vi = Module["dynCall_vi"] = function () { + return (dynCall_vi = Module["dynCall_vi"] = Module["asm"]["dynCall_vi"]).apply(null, arguments) + }; + var dynCall_i = Module["dynCall_i"] = function () { + return (dynCall_i = Module["dynCall_i"] = Module["asm"]["dynCall_i"]).apply(null, arguments) + }; + var dynCall_iii = Module["dynCall_iii"] = function () { + return (dynCall_iii = Module["dynCall_iii"] = Module["asm"]["dynCall_iii"]).apply(null, arguments) + }; + var dynCall_iiii = Module["dynCall_iiii"] = function () { + return (dynCall_iiii = Module["dynCall_iiii"] = Module["asm"]["dynCall_iiii"]).apply(null, arguments) + }; + var dynCall_iiiii = Module["dynCall_iiiii"] = function () { + return (dynCall_iiiii = Module["dynCall_iiiii"] = Module["asm"]["dynCall_iiiii"]).apply(null, arguments) + }; + var dynCall_iiiiii = Module["dynCall_iiiiii"] = function () { + return (dynCall_iiiiii = Module["dynCall_iiiiii"] = Module["asm"]["dynCall_iiiiii"]).apply(null, arguments) + }; + var dynCall_iiiiiii = Module["dynCall_iiiiiii"] = function () { + return (dynCall_iiiiiii = Module["dynCall_iiiiiii"] = Module["asm"]["dynCall_iiiiiii"]).apply(null, arguments) + }; + var dynCall_viii = Module["dynCall_viii"] = function () { + return (dynCall_viii = Module["dynCall_viii"] = Module["asm"]["dynCall_viii"]).apply(null, arguments) + }; + var dynCall_viiii = Module["dynCall_viiii"] = function () { + return (dynCall_viiii = Module["dynCall_viiii"] = Module["asm"]["dynCall_viiii"]).apply(null, arguments) + }; + var dynCall_vii = Module["dynCall_vii"] = function () { + return (dynCall_vii = Module["dynCall_vii"] = Module["asm"]["dynCall_vii"]).apply(null, arguments) + }; + var dynCall_viiidd = Module["dynCall_viiidd"] = function () { + return (dynCall_viiidd = Module["dynCall_viiidd"] = Module["asm"]["dynCall_viiidd"]).apply(null, arguments) + }; + var dynCall_viiiidd = Module["dynCall_viiiidd"] = function () { + return (dynCall_viiiidd = Module["dynCall_viiiidd"] = Module["asm"]["dynCall_viiiidd"]).apply(null, arguments) + }; + var dynCall_viiid = Module["dynCall_viiid"] = function () { + return (dynCall_viiid = Module["dynCall_viiid"] = Module["asm"]["dynCall_viiid"]).apply(null, arguments) + }; + var dynCall_viiiid = Module["dynCall_viiiid"] = function () { + return (dynCall_viiiid = Module["dynCall_viiiid"] = Module["asm"]["dynCall_viiiid"]).apply(null, arguments) + }; + var dynCall_viiiii = Module["dynCall_viiiii"] = function () { + return (dynCall_viiiii = Module["dynCall_viiiii"] = Module["asm"]["dynCall_viiiii"]).apply(null, arguments) + }; + var dynCall_dii = Module["dynCall_dii"] = function () { + return (dynCall_dii = Module["dynCall_dii"] = Module["asm"]["dynCall_dii"]).apply(null, arguments) + }; + var dynCall_diii = Module["dynCall_diii"] = function () { + return (dynCall_diii = Module["dynCall_diii"] = Module["asm"]["dynCall_diii"]).apply(null, arguments) + }; + var dynCall_iiiid = Module["dynCall_iiiid"] = function () { + return (dynCall_iiiid = Module["dynCall_iiiid"] = Module["asm"]["dynCall_iiiid"]).apply(null, arguments) + }; + var dynCall_fiii = Module["dynCall_fiii"] = function () { + return (dynCall_fiii = Module["dynCall_fiii"] = Module["asm"]["dynCall_fiii"]).apply(null, arguments) + }; + var dynCall_fiiii = Module["dynCall_fiiii"] = function () { + return (dynCall_fiiii = Module["dynCall_fiiii"] = Module["asm"]["dynCall_fiiii"]).apply(null, arguments) + }; + var dynCall_fiiiii = Module["dynCall_fiiiii"] = function () { + return (dynCall_fiiiii = Module["dynCall_fiiiii"] = Module["asm"]["dynCall_fiiiii"]).apply(null, arguments) + }; + var dynCall_diiiii = Module["dynCall_diiiii"] = function () { + return (dynCall_diiiii = Module["dynCall_diiiii"] = Module["asm"]["dynCall_diiiii"]).apply(null, arguments) + }; + var dynCall_diiii = Module["dynCall_diiii"] = function () { + return (dynCall_diiii = Module["dynCall_diiii"] = Module["asm"]["dynCall_diiii"]).apply(null, arguments) + }; + var dynCall_viid = Module["dynCall_viid"] = function () { + return (dynCall_viid = Module["dynCall_viid"] = Module["asm"]["dynCall_viid"]).apply(null, arguments) + }; + var dynCall_fii = Module["dynCall_fii"] = function () { + return (dynCall_fii = Module["dynCall_fii"] = Module["asm"]["dynCall_fii"]).apply(null, arguments) + }; + var dynCall_viif = Module["dynCall_viif"] = function () { + return (dynCall_viif = Module["dynCall_viif"] = Module["asm"]["dynCall_viif"]).apply(null, arguments) + }; + var dynCall_viiif = Module["dynCall_viiif"] = function () { + return (dynCall_viiif = Module["dynCall_viiif"] = Module["asm"]["dynCall_viiif"]).apply(null, arguments) + }; + var dynCall_iiiif = Module["dynCall_iiiif"] = function () { + return (dynCall_iiiif = Module["dynCall_iiiif"] = Module["asm"]["dynCall_iiiif"]).apply(null, arguments) + }; + var dynCall_viiiiiii = Module["dynCall_viiiiiii"] = function () { + return (dynCall_viiiiiii = Module["dynCall_viiiiiii"] = Module["asm"]["dynCall_viiiiiii"]).apply(null, arguments) + }; + var dynCall_viiiiii = Module["dynCall_viiiiii"] = function () { + return (dynCall_viiiiii = Module["dynCall_viiiiii"] = Module["asm"]["dynCall_viiiiii"]).apply(null, arguments) + }; + var dynCall_iiidd = Module["dynCall_iiidd"] = function () { + return (dynCall_iiidd = Module["dynCall_iiidd"] = Module["asm"]["dynCall_iiidd"]).apply(null, arguments) + }; + var dynCall_viidd = Module["dynCall_viidd"] = function () { + return (dynCall_viidd = Module["dynCall_viidd"] = Module["asm"]["dynCall_viidd"]).apply(null, arguments) + }; + var dynCall_viiiiddi = Module["dynCall_viiiiddi"] = function () { + return (dynCall_viiiiddi = Module["dynCall_viiiiddi"] = Module["asm"]["dynCall_viiiiddi"]).apply(null, arguments) + }; + var dynCall_viiiddi = Module["dynCall_viiiddi"] = function () { + return (dynCall_viiiddi = Module["dynCall_viiiddi"] = Module["asm"]["dynCall_viiiddi"]).apply(null, arguments) + }; + var dynCall_viiiiiiii = Module["dynCall_viiiiiiii"] = function () { + return (dynCall_viiiiiiii = Module["dynCall_viiiiiiii"] = Module["asm"]["dynCall_viiiiiiii"]).apply(null, arguments) + }; + var dynCall_viiiiiiiii = Module["dynCall_viiiiiiiii"] = function () { + return (dynCall_viiiiiiiii = Module["dynCall_viiiiiiiii"] = Module["asm"]["dynCall_viiiiiiiii"]).apply(null, arguments) + }; + var dynCall_viiiiiiiddi = Module["dynCall_viiiiiiiddi"] = function () { + return (dynCall_viiiiiiiddi = Module["dynCall_viiiiiiiddi"] = Module["asm"]["dynCall_viiiiiiiddi"]).apply(null, arguments) + }; + var dynCall_viiiiiiiiiiddi = Module["dynCall_viiiiiiiiiiddi"] = function () { + return (dynCall_viiiiiiiiiiddi = Module["dynCall_viiiiiiiiiiddi"] = Module["asm"]["dynCall_viiiiiiiiiiddi"]).apply(null, arguments) + }; + var dynCall_iiiiiiiii = Module["dynCall_iiiiiiiii"] = function () { + return (dynCall_iiiiiiiii = Module["dynCall_iiiiiiiii"] = Module["asm"]["dynCall_iiiiiiiii"]).apply(null, arguments) + }; + var dynCall_viiiiiiiiii = Module["dynCall_viiiiiiiiii"] = function () { + return (dynCall_viiiiiiiiii = Module["dynCall_viiiiiiiiii"] = Module["asm"]["dynCall_viiiiiiiiii"]).apply(null, arguments) + }; + var dynCall_viidi = Module["dynCall_viidi"] = function () { + return (dynCall_viidi = Module["dynCall_viidi"] = Module["asm"]["dynCall_viidi"]).apply(null, arguments) + }; + var dynCall_vidii = Module["dynCall_vidii"] = function () { + return (dynCall_vidii = Module["dynCall_vidii"] = Module["asm"]["dynCall_vidii"]).apply(null, arguments) + }; + var dynCall_viijii = Module["dynCall_viijii"] = function () { + return (dynCall_viijii = Module["dynCall_viijii"] = Module["asm"]["dynCall_viijii"]).apply(null, arguments) + }; + var dynCall_v = Module["dynCall_v"] = function () { + return (dynCall_v = Module["dynCall_v"] = Module["asm"]["dynCall_v"]).apply(null, arguments) + }; + var dynCall_viiiiiiiiidd = Module["dynCall_viiiiiiiiidd"] = function () { + return (dynCall_viiiiiiiiidd = Module["dynCall_viiiiiiiiidd"] = Module["asm"]["dynCall_viiiiiiiiidd"]).apply(null, arguments) + }; + var dynCall_jiji = Module["dynCall_jiji"] = function () { + return (dynCall_jiji = Module["dynCall_jiji"] = Module["asm"]["dynCall_jiji"]).apply(null, arguments) + }; + var dynCall_iidiiii = Module["dynCall_iidiiii"] = function () { + return (dynCall_iidiiii = Module["dynCall_iidiiii"] = Module["asm"]["dynCall_iidiiii"]).apply(null, arguments) + }; + var dynCall_iiiiij = Module["dynCall_iiiiij"] = function () { + return (dynCall_iiiiij = Module["dynCall_iiiiij"] = Module["asm"]["dynCall_iiiiij"]).apply(null, arguments) + }; + var dynCall_iiiiid = Module["dynCall_iiiiid"] = function () { + return (dynCall_iiiiid = Module["dynCall_iiiiid"] = Module["asm"]["dynCall_iiiiid"]).apply(null, arguments) + }; + var dynCall_iiiiijj = Module["dynCall_iiiiijj"] = function () { + return (dynCall_iiiiijj = Module["dynCall_iiiiijj"] = Module["asm"]["dynCall_iiiiijj"]).apply(null, arguments) + }; + var dynCall_iiiiiiii = Module["dynCall_iiiiiiii"] = function () { + return (dynCall_iiiiiiii = Module["dynCall_iiiiiiii"] = Module["asm"]["dynCall_iiiiiiii"]).apply(null, arguments) + }; + var dynCall_iiiiiijj = Module["dynCall_iiiiiijj"] = function () { + return (dynCall_iiiiiijj = Module["dynCall_iiiiiijj"] = Module["asm"]["dynCall_iiiiiijj"]).apply(null, arguments) + }; + Module["getMemory"] = getMemory; + Module["addRunDependency"] = addRunDependency; + Module["removeRunDependency"] = removeRunDependency; + Module["FS_createFolder"] = FS.createFolder; + Module["FS_createPath"] = FS.createPath; + Module["FS_createDataFile"] = FS.createDataFile; + Module["FS_createPreloadedFile"] = FS.createPreloadedFile; + Module["FS_createLazyFile"] = FS.createLazyFile; + Module["FS_createLink"] = FS.createLink; + Module["FS_createDevice"] = FS.createDevice; + Module["FS_unlink"] = FS.unlink; + var calledRun; + + function ExitStatus(status) { + this.name = "ExitStatus"; + this.message = "Program terminated with exit(" + status + ")"; + this.status = status + } + + dependenciesFulfilled = function runCaller() { + if (!calledRun) run(); + if (!calledRun) dependenciesFulfilled = runCaller + }; + + function run(args) { + args = args || arguments_; + if (runDependencies > 0) { + return + } + preRun(); + if (runDependencies > 0) return; + + function doRun() { + if (calledRun) return; + calledRun = true; + Module["calledRun"] = true; + if (ABORT) return; + initRuntime(); + preMain(); + // readyPromiseResolve(Module); + if (Module["onRuntimeInitialized"]) Module["onRuntimeInitialized"](); + postRun() + } + + if (Module["setStatus"]) { + Module["setStatus"]("Running..."); + setTimeout(function () { + setTimeout(function () { + Module["setStatus"]("") + }, 1); + doRun() + }, 1) + } else { + doRun() + } + } + + Module["run"] = run; + if (Module["preInit"]) { + if (typeof Module["preInit"] == "function") Module["preInit"] = [Module["preInit"]]; + while (Module["preInit"].length > 0) { + Module["preInit"].pop()() + } + } + noExitRuntime = true; + run(); + if (!IsWechat) { + // 在微信里不执行,请见另一个Module["imread"] + Module["imread"] = function (imageSource) { + var img = null; + if (typeof imageSource === "string") { + img = document.getElementById(imageSource) + } else { + img = imageSource + } + var canvas = null; + var ctx = null; + if (img instanceof HTMLImageElement) { + canvas = document.createElement("canvas"); + canvas.width = img.width; + canvas.height = img.height; + ctx = canvas.getContext("2d"); + ctx.drawImage(img, 0, 0, img.width, img.height) + } else if (img instanceof HTMLCanvasElement) { + canvas = img; + ctx = canvas.getContext("2d") + } else { + throw new Error("Please input the valid canvas or img id."); + return + } + var imgData = ctx.getImageData(0, 0, canvas.width, canvas.height); + return cv.matFromImageData(imgData) + + }; + // 在微信里不执行,请见另一个Module["imshow"] + Module["imshow"] = function (canvasSource, mat) { + var canvas = null; + if (typeof canvasSource === "string") { + canvas = document.getElementById(canvasSource) + } else { + canvas = canvasSource + } + if (!(canvas instanceof HTMLCanvasElement)) { + throw new Error("Please input the valid canvas element or id."); + return + } + if (!(mat instanceof cv.Mat)) { + throw new Error("Please input the valid cv.Mat instance."); + return + } + var img = new cv.Mat; + var depth = mat.type() % 8; + var scale = depth <= cv.CV_8S ? 1 : depth <= cv.CV_32S ? 1 / 256 : 255; + var shift = depth === cv.CV_8S || depth === cv.CV_16S ? 128 : 0; + mat.convertTo(img, cv.CV_8U, scale, shift); + switch (img.type()) { + case cv.CV_8UC1: + cv.cvtColor(img, img, cv.COLOR_GRAY2RGBA); + break; + case cv.CV_8UC3: + cv.cvtColor(img, img, cv.COLOR_RGB2RGBA); + break; + case cv.CV_8UC4: + break; + default: + throw new Error("Bad number of channels (Source image must have 1, 3 or 4 channels)"); + return + } + var imgData = new ImageData(new Uint8ClampedArray(img.data), img.cols, img.rows); + var ctx = canvas.getContext("2d"); + ctx.clearRect(0, 0, canvas.width, canvas.height); + canvas.width = imgData.width; + canvas.height = imgData.height; + ctx.putImageData(imgData, 0, 0); + img.delete() + + }; + } else { + Module["imread"] = function (imgData) { + return cv.matFromImageData(imgData) + }; + + Module["imshow"] = function (canvas, mat) { + if (!(mat instanceof cv.Mat)) { + throw new Error("Please input the valid cv.Mat instance."); + return + } + var img = new cv.Mat; + var depth = mat.type() % 8; + var scale = depth <= cv.CV_8S ? 1 : depth <= cv.CV_32S ? 1 / 256 : 255; + var shift = depth === cv.CV_8S || depth === cv.CV_16S ? 128 : 0; + + mat.convertTo(img, cv.CV_8U, scale, shift); + + switch (img.type()) { + case cv.CV_8UC1: + cv.cvtColor(img, img, cv.COLOR_GRAY2RGBA); + break; + case cv.CV_8UC3: + cv.cvtColor(img, img, cv.COLOR_RGB2RGBA); + break; + case cv.CV_8UC4: + break; + default: + throw new Error("Bad number of channels (Source image must have 1, 3 or 4 channels)"); + return + } + + var ctx = canvas.getContext("2d"); + ctx.clearRect(0, 0, canvas.width, canvas.height); + + // 创建ImageData对象 + var imgData = ctx.createImageData(img.cols, img.rows); + // imgData.data是只读对象,但是imgData.data.set()方法可修改imgData.data。 + imgData.data.set(new Uint8ClampedArray(img.data)) + // 画布canvas的宽度和高度,不能比图像imgData小。 + canvas.width = imgData.width; + canvas.height = imgData.height; + // 需要传递ImageData类型,但小程序无法通过new ImageData()创建该类型。 + ctx.putImageData(imgData, 0, 0); + img.delete() + }; + } + Module["VideoCapture"] = function (videoSource) { + var video = null; + if (typeof videoSource === "string") { + video = document.getElementById(videoSource) + } else { + video = videoSource + } + if (!(video instanceof HTMLVideoElement)) { + throw new Error("Please input the valid video element or id."); + return + } + var canvas = document.createElement("canvas"); + canvas.width = video.width; + canvas.height = video.height; + var ctx = canvas.getContext("2d"); + this.video = video; + this.read = function (frame) { + if (!(frame instanceof cv.Mat)) { + throw new Error("Please input the valid cv.Mat instance."); + return + } + if (frame.type() !== cv.CV_8UC4) { + throw new Error("Bad type of input mat: the type should be cv.CV_8UC4."); + return + } + if (frame.cols !== video.width || frame.rows !== video.height) { + throw new Error("Bad size of input mat: the size should be same as the video."); + return + } + ctx.drawImage(video, 0, 0, video.width, video.height); + frame.data.set(ctx.getImageData(0, 0, video.width, video.height).data) + } + }; + + function Range(start, end) { + this.start = typeof start === "undefined" ? 0 : start; + this.end = typeof end === "undefined" ? 0 : end + } + + Module["Range"] = Range; + + function Point(x, y) { + this.x = typeof x === "undefined" ? 0 : x; + this.y = typeof y === "undefined" ? 0 : y + } + + Module["Point"] = Point; + + function Size(width, height) { + this.width = typeof width === "undefined" ? 0 : width; + this.height = typeof height === "undefined" ? 0 : height + } + + Module["Size"] = Size; + + function Rect() { + switch (arguments.length) { + case 0: { + this.x = 0; + this.y = 0; + this.width = 0; + this.height = 0; + break + } + case 1: { + var rect = arguments[0]; + this.x = rect.x; + this.y = rect.y; + this.width = rect.width; + this.height = rect.height; + break + } + case 2: { + var point = arguments[0]; + var size = arguments[1]; + this.x = point.x; + this.y = point.y; + this.width = size.width; + this.height = size.height; + break + } + case 4: { + this.x = arguments[0]; + this.y = arguments[1]; + this.width = arguments[2]; + this.height = arguments[3]; + break + } + default: { + throw new Error("Invalid arguments") + } + } + } + + Module["Rect"] = Rect; + + function RotatedRect() { + switch (arguments.length) { + case 0: { + this.center = {x: 0, y: 0}; + this.size = {width: 0, height: 0}; + this.angle = 0; + break + } + case 3: { + this.center = arguments[0]; + this.size = arguments[1]; + this.angle = arguments[2]; + break + } + default: { + throw new Error("Invalid arguments") + } + } + } + + RotatedRect.points = function (obj) { + return Module.rotatedRectPoints(obj) + }; + RotatedRect.boundingRect = function (obj) { + return Module.rotatedRectBoundingRect(obj) + }; + RotatedRect.boundingRect2f = function (obj) { + return Module.rotatedRectBoundingRect2f(obj) + }; + Module["RotatedRect"] = RotatedRect; + + function Scalar(v0, v1, v2, v3) { + this.push(typeof v0 === "undefined" ? 0 : v0); + this.push(typeof v1 === "undefined" ? 0 : v1); + this.push(typeof v2 === "undefined" ? 0 : v2); + this.push(typeof v3 === "undefined" ? 0 : v3) + } + + Scalar.prototype = new Array; + Scalar.all = function (v) { + return new Scalar(v, v, v, v) + }; + Module["Scalar"] = Scalar; + + function MinMaxLoc() { + switch (arguments.length) { + case 0: { + this.minVal = 0; + this.maxVal = 0; + this.minLoc = new Point; + this.maxLoc = new Point; + break + } + case 4: { + this.minVal = arguments[0]; + this.maxVal = arguments[1]; + this.minLoc = arguments[2]; + this.maxLoc = arguments[3]; + break + } + default: { + throw new Error("Invalid arguments") + } + } + } + + Module["MinMaxLoc"] = MinMaxLoc; + + function Circle() { + switch (arguments.length) { + case 0: { + this.center = new Point; + this.radius = 0; + break + } + case 2: { + this.center = arguments[0]; + this.radius = arguments[1]; + break + } + default: { + throw new Error("Invalid arguments") + } + } + } + + Module["Circle"] = Circle; + + function TermCriteria() { + switch (arguments.length) { + case 0: { + this.type = 0; + this.maxCount = 0; + this.epsilon = 0; + break + } + case 3: { + this.type = arguments[0]; + this.maxCount = arguments[1]; + this.epsilon = arguments[2]; + break + } + default: { + throw new Error("Invalid arguments") + } + } + } + + Module["TermCriteria"] = TermCriteria; + Module["matFromArray"] = function (rows, cols, type, array) { + var mat = new cv.Mat(rows, cols, type); + switch (type) { + case cv.CV_8U: + case cv.CV_8UC1: + case cv.CV_8UC2: + case cv.CV_8UC3: + case cv.CV_8UC4: { + mat.data.set(array); + break + } + case cv.CV_8S: + case cv.CV_8SC1: + case cv.CV_8SC2: + case cv.CV_8SC3: + case cv.CV_8SC4: { + mat.data8S.set(array); + break + } + case cv.CV_16U: + case cv.CV_16UC1: + case cv.CV_16UC2: + case cv.CV_16UC3: + case cv.CV_16UC4: { + mat.data16U.set(array); + break + } + case cv.CV_16S: + case cv.CV_16SC1: + case cv.CV_16SC2: + case cv.CV_16SC3: + case cv.CV_16SC4: { + mat.data16S.set(array); + break + } + case cv.CV_32S: + case cv.CV_32SC1: + case cv.CV_32SC2: + case cv.CV_32SC3: + case cv.CV_32SC4: { + mat.data32S.set(array); + break + } + case cv.CV_32F: + case cv.CV_32FC1: + case cv.CV_32FC2: + case cv.CV_32FC3: + case cv.CV_32FC4: { + mat.data32F.set(array); + break + } + case cv.CV_64F: + case cv.CV_64FC1: + case cv.CV_64FC2: + case cv.CV_64FC3: + case cv.CV_64FC4: { + mat.data64F.set(array); + break + } + default: { + throw new Error("Type is unsupported") + } + } + return mat + }; + Module["matFromImageData"] = function (imageData) { + var mat = new cv.Mat(imageData.height, imageData.width, cv.CV_8UC4); + mat.data.set(imageData.data); + return mat + }; + + + return cv; + } + ); + })(); + return cv(global); +})); diff --git a/packages/paddlejs-examples/ocrXcx/pages/index/wasm/opencv_js.wasm.br b/packages/paddlejs-examples/ocrXcx/pages/index/wasm/opencv_js.wasm.br new file mode 100644 index 0000000000000000000000000000000000000000..a499e4ba61f03c5a977111d912fe86faeff771d9 GIT binary patch literal 260588 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 hRmYtFjcH5)>T$p2o+<`m;*s_tu&FReidXW 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 literal 0 HcmV?d00001 diff --git a/packages/paddlejs-examples/ocrXcx/project.config.json b/packages/paddlejs-examples/ocrXcx/project.config.json new file mode 100644 index 00000000..e86f0a2f --- /dev/null +++ b/packages/paddlejs-examples/ocrXcx/project.config.json @@ -0,0 +1,58 @@ +{ + "description": "项目配置文件,详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html", + "packOptions": { + "ignore": [], + "include": [] + }, + "setting": { + "urlCheck": false, + "es6": true, + "enhance": true, + "postcss": true, + "preloadBackgroundData": false, + "minified": true, + "newFeature": false, + "coverView": true, + "nodeModules": true, + "autoAudits": false, + "showShadowRootInWxmlPanel": true, + "scopeDataCheck": false, + "uglifyFileName": false, + "checkInvalidKey": true, + "checkSiteMap": true, + "uploadWithSourceMap": true, + "compileHotReLoad": false, + "lazyloadPlaceholderEnable": false, + "useMultiFrameRuntime": true, + "useApiHook": true, + "useApiHostProcess": true, + "babelSetting": { + "ignore": [], + "disablePlugins": [], + "outputPath": "" + }, + "enableEngineNative": false, + "useIsolateContext": true, + "userConfirmedBundleSwitch": false, + "packNpmManually": false, + "packNpmRelationList": [], + "minifyWXSS": true, + "disableUseStrict": false, + "minifyWXML": true, + "showES6CompileOption": false, + "useCompilerPlugins": false, + "useStaticServer": true, + "ignoreUploadUnusedFiles": false + }, + "compileType": "miniprogram", + "libVersion": "2.22.1", + "appid": "wx78461a9c81d1234c", + "projectname": "mobilenet", + "simulatorType": "wechat", + "simulatorPluginLibVersion": {}, + "condition": {}, + "editorSetting": { + "tabIndent": "insertSpaces", + "tabSize": 2 + } +} \ No newline at end of file diff --git a/packages/paddlejs-examples/ocrXcx/project.private.config.json b/packages/paddlejs-examples/ocrXcx/project.private.config.json new file mode 100644 index 00000000..f8998ee5 --- /dev/null +++ b/packages/paddlejs-examples/ocrXcx/project.private.config.json @@ -0,0 +1,8 @@ +{ + "projectname": "ocrXcx", + "setting": { + "compileHotReLoad": true + }, + "description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html", + "libVersion": "2.23.4" +} \ No newline at end of file diff --git a/packages/paddlejs-examples/ocrXcx/sitemap.json b/packages/paddlejs-examples/ocrXcx/sitemap.json new file mode 100644 index 00000000..ca02add2 --- /dev/null +++ b/packages/paddlejs-examples/ocrXcx/sitemap.json @@ -0,0 +1,7 @@ +{ + "desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html", + "rules": [{ + "action": "allow", + "page": "*" + }] +} \ No newline at end of file From a5d0497414800889c740f8c5fe1a37c18455c78e Mon Sep 17 00:00:00 2001 From: chenqianhe <1278095698@qq.com> Date: Sun, 4 Sep 2022 20:43:02 +0800 Subject: [PATCH 2/4] feat(paddlejs-examples): add ocr weixin miniprogram example --- packages/paddlejs-examples/ocrXcx/README.md | 17 ++++++++++++++++- .../ocrXcx/pages/index/index.js | 6 +++--- .../ocrXcx/pages/index/recPostprocess.js | 2 -- 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/packages/paddlejs-examples/ocrXcx/README.md b/packages/paddlejs-examples/ocrXcx/README.md index 919163e8..50ad3ab5 100644 --- a/packages/paddlejs-examples/ocrXcx/README.md +++ b/packages/paddlejs-examples/ocrXcx/README.md @@ -73,5 +73,20 @@ wx.canvasGetImageData({ }); ``` -## 4. 更多 +## 4. 常见问题 +### 4.1 出现报错 `Invalid context type [webgl2] for Canvas#getContext` + +可以不管,不影响正常代码运行和demo功能 + +### 4.2 微信开发者工具出现黑屏,然后出现超多报错 + +重启微信开发者工具 + +### 4.3 模拟和真机调试结果不一致;模拟检测不到文本等 + +可以以真机为准; + +模拟检测不到文本等可以尝试随意改动下代码(增删换行等)再点击编译 + +## 5. 更多 * [详细文档](https://mp.weixin.qq.com/s/KBjXawSfBreUCsIYbUgF-w) diff --git a/packages/paddlejs-examples/ocrXcx/pages/index/index.js b/packages/paddlejs-examples/ocrXcx/pages/index/index.js index 3ae84d29..abfbccff 100644 --- a/packages/paddlejs-examples/ocrXcx/pages/index/index.js +++ b/packages/paddlejs-examples/ocrXcx/pages/index/index.js @@ -283,7 +283,7 @@ function get_rotate_crop_image(img, points) { const dsize = new CV.Size(img_crop_width, img_crop_height); // 透视转换 CV.warpPerspective(src, dst, M, dsize, CV.INTER_CUBIC, CV.BORDER_REPLICATE, new CV.Scalar()); - console.log('CV', src, dst); + const dst_img_height = dst.rows; const dst_img_width = dst.cols; let dst_rot; @@ -308,7 +308,7 @@ function get_rotate_crop_image(img, points) { scale = RECHEIGHT / dst_img_height; CV.resize(dst, dst_resize, dsize_resize, scale, scale, CV.INTER_AREA); } - console.log('resize', dst_resize); + canvas_det.width = dst_resize.cols; canvas_det.height = dst_resize.rows; canvas_det.getContext('2d').clearRect(0, 0, canvas_det.width, canvas_det.height); @@ -467,7 +467,7 @@ Page({ // 排序,使得最后结果输出尽量按照从上到下的顺序 const boxes = sorted_boxes(points.boxes); - console.log('boxs', boxes); + const text_list = []; for (let i = 0; i < boxes.length; i++) { diff --git a/packages/paddlejs-examples/ocrXcx/pages/index/recPostprocess.js b/packages/paddlejs-examples/ocrXcx/pages/index/recPostprocess.js index 92fe8869..05e52525 100644 --- a/packages/paddlejs-examples/ocrXcx/pages/index/recPostprocess.js +++ b/packages/paddlejs-examples/ocrXcx/pages/index/recPostprocess.js @@ -46,8 +46,6 @@ function decode(text_index, text_prob, is_remove_duplicate = false) { let text = ''; let mean = 0; - console.log('char_list', char_list); - if (char_list.length) { text = char_list.join(''); let sum = 0; From a7254a884af550555632bbb6520706d407e31093 Mon Sep 17 00:00:00 2001 From: chenqianhe <1278095698@qq.com> Date: Sun, 4 Sep 2022 20:46:26 +0800 Subject: [PATCH 3/4] chore: filter .idea & miniprogram package --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index c1402394..5bd81ab9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,11 +1,13 @@ .DS_Store node_modules +miniprogram_npm dist lib coverage .cache lerna-debug.log .vscode +.idea !e2e/dist e2e/dist/*_bundle.js From 9abc3d6a6b20365643f5c49915c2305b12070776 Mon Sep 17 00:00:00 2001 From: chenqianhe <54462604+chenqianhe@users.noreply.github.com> Date: Mon, 5 Sep 2022 21:01:23 +0800 Subject: [PATCH 4/4] docs(paddlejs-examples & ocrXcx): README update --- packages/paddlejs-examples/ocrXcx/README.md | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/packages/paddlejs-examples/ocrXcx/README.md b/packages/paddlejs-examples/ocrXcx/README.md index 50ad3ab5..32566852 100644 --- a/packages/paddlejs-examples/ocrXcx/README.md +++ b/packages/paddlejs-examples/ocrXcx/README.md @@ -78,15 +78,24 @@ wx.canvasGetImageData({ 可以不管,不影响正常代码运行和demo功能 -### 4.2 微信开发者工具出现黑屏,然后出现超多报错 +### 4.2 预览 看不到结果 + +建议尝试真机调试 + +### 4.3 微信开发者工具出现黑屏,然后出现超多报错 重启微信开发者工具 -### 4.3 模拟和真机调试结果不一致;模拟检测不到文本等 +### 4.4 模拟和真机调试结果不一致;模拟检测不到文本等 可以以真机为准; 模拟检测不到文本等可以尝试随意改动下代码(增删换行等)再点击编译 + +### 4.5 手机调试或运行时出现 长时间无反应等提示 + +请继续等待,模型推理需要一定时间 + ## 5. 更多 * [详细文档](https://mp.weixin.qq.com/s/KBjXawSfBreUCsIYbUgF-w)