Hex 发表于 2014-10-11 15:22:34

[2.2.0] CI 视图继承类库,可用于视图 Layout

为 CI 增加视图继承功能,不改变原有视图编写方式,无缝增加视图继承功能。

开源项目地址: https://github.com/hex-ci/hulk-template

安装方法:


[*] 把 Hulk_template.php 放到 ./application/libraries 目录下
[*] 创建目录 ./application/third_party/hulk_template/views,如果目录不存在则要自己手动逐级创建。
[*] 把 ./application/third_party/hulk_template/views 目录设为可写,Linux 下一定要保证 Apache 或 Nginx 对这个目录可写。


使用方法:

例子:
父视图:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Welcome to <# block title #>CodeIgniter<# /block #></title>
</head>
<body>
    <h1>Welcome to <# block title #>CodeIgniter<# /block #>!</h1>
</body>
</html>
子视图:
<# extends parent_message #>

<# block title #>CI Chinese<# /block #>
控制器:
class Welcome extends CI_Controller {

    public function index()
    {
      // 载入类库
      $this->load->library('hulk_template');

      // 加载子视图。这里可直接代替 $this->load->view() 的功能。
      $this->hulk_template->parse('welcome_message');
    }
}

视图继承语法:

实现视图继承的标签默认采用 <# 开头,#> 结尾,当然,你可以在代码里自定义成你喜欢的形式。例如: <# block #>

extends 标签

<# extends 视图路径 #>

例如 <# extends welcome/test #>

这里指的是从 ./application/views/welcome/test.php 这个视图继承。

注意:extends 标签必须在视图文件首行首字母位置。另外这个标签不需要结束标签。

block 标签

<# block 名称 #>内容...<# /block #>

在父视图中使用 block 代表定义一个名为“名称”的 block。
在子视图中使用 block 代表替换父视图中同名的 block。

parent 标签

<# block 名称 #>
<# parent #>

内容...
<# /block #>

parent 标签只能在 block 标签中使用,功能是把父模板相同 block 名称的内容放到当前 block 中 parent 所在位置。

child 标签

<# block 名称 #>
<# child #>

内容...
<# /block #>

child 标签只能在 block 标签中使用,功能是把子模板相同 block 名称的内容放到当前 block 中 child 所在位置。

slot 标签

<# block 名称 #>
<# slot 插槽名称 #>
    内容
<# /slot #>

内容...
<# /block #>

slot 标签只能在 block 标签中使用。

slot 标签是用于在父模板中定义一些插槽位置,子模板会替换父模板相同插槽名称所在位置的内容。

call 标签

<# block 名称 #>
<# call 其它block名称 #>
    <# slot 插槽名称 #>
      内容
    <# /slot #>
<# /call #>

内容...
<# /block #>

call 用于把当前文件其它 block 名称的内容,替换 call 所在位置的内容。其中 slot 的意义与上节一样,会替换相应的内容。

use 标签

<# block 名称 #>
<# use 其它block名称 #>

内容...
<# /block #>

use 是简化版的 call,如果不需要替换 slot 的内容,可以直接使用 use。

我就是瞎说 发表于 2018-2-7 18:15:55

请教大神一个问题:
1、发现在Hulk_template.php中两个名为create_matcher的函数
2、根据github上的例子,以下是我的代码片段
(1)父级页面 parent.php
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Welcome to <# block title #>CodeIgniter<# /block #></title>
</head>
<body>
<h1>Welcome to <# block title #>CodeIgniter<# /block #>!</h1>
</body>
</html>
(2)继承页面 son.php
<# extends parent_message #>

<# block title #>CI Chinese<# /block #>
(3)控制器
class Blob extends CI_Controller{

    publicfunctiondemo()
    {
      // 载入类库
      $this->load->library('hulk_template');

      // 加载子视图。这里可直接代替 $this->load->view() 的功能。
      $this->hulk_template->parse('son');

    }
}3、结果如下
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABEoAAACWCAYAAADJ9W2nAAAMFmlDQ1BJQ0MgUHJvZmlsZQAASImVVwdUk8kWnr+kEBJaIAJSQm+CdAJIDVUQkA42QhIglIgJQcWuiAquXUSwoqsgiq4FkEVFxM4iYK8PCyrKuliwofImBXR97bx7zvzz5c69d757MzNnBgBVe05ubjaqBkCOME8UHezPTExKZpIeAQTogVHAAbA4XHGuX1RUOIAy3P9d3t+A1lCu2kpj/ev4fxV1Hl/MBQCJgjiVJ+bmQHwUAFybmyvKA4DQBvUmM/NypbgfYk0RJAgAEZfidDnWluJUOR4js4mNZkPsCwCZyuGI0gFQkfJm5nPTYRwVKUd7IU8ghHgLxN7cDA4P4nsQj8nJmQ6xKhliy9Qf4qT/LWbqSEwOJ30Ey3ORCTlAIM7N5sz+P8vxvyUnWzI8hzFs1AxRSLQ0Z1i3qqzpYVJMhbhJmBoRCbEGxBcEPJm9FN/JkITEKez7uGI2rBlgAIACHicgDGI9iBmSrDg/BXbkiGS+0B6NEOSFxipwqmh6tCI+mi/MjghXxFmewQ8dxtv44sCYYZs0QVAoxHCloUcLMmIT5DzR1nxBfATEKhB3iLNiwhS+Dwoy2BHDNiJJtJSzKcTv0kRB0XIbTDtHPJwXZsflyOaCawHzzcuIDZH7Yol8cWL4MAcePyBQzgHj8YVxCm4YXF3+0QrfotzsKIU9to2fHRwtrzN2SJwfM+zblQcXmLwO2KNMzvgoxVzvc/OiYuXccBSEAzYIAEwggS0VTAeZQNDeV98Hf8lHggAHiEA64ANbhWbYI0E2IoTfGFAA/oSID8Qjfv6yUT7Ih/qvI1r51xakyUbzZR5Z4CnEObgu7o174uHw6wubI87C3Yf9mKrDsxIDiQHEEGIQ0WqEBxeyzoZNBAT/RhcGez7MTspFOJzD93iEp4ROwiPCdUI34TaIB09kURRW0wSLRT8xZ4IJoBtGC1Jkl/pjdrg5ZO2C++NekD/kjjNwXWCLO8NM/HAfmJsL1P7IUDLC7Xstf55PyvrHfBR6FWsVFwWL1JF/hj1i9XMU9g814sE+7GdLbDl2BDuPncYuYk1YPWBip7AGrA07IcUjK+GJbCUMzxYt45YF4wiGbexr7Hvtv/w0N0cxv7Re4jz+rDzpZmBPz50tEqRn5DH94GnMZ4YKuXZjmI72DiwApGe7/Oh4y5Cd2Qjj0nfdok8AjHs1NDTU9F0XDvf40RcAUPq+6yxXw+1qAcCFpVyJKF+ukx7HgAAoQBXuCh1gAEyAJczHEbgCT+ALAsF4EAliQRKYCiueAXIg55lgLlgEikAJWAM2gnKwHewCVeAAOAzqQRM4Dc6By6ADXAd34broAS9BP3gPBhEEISE0hI7oIIaIGWKDOCIsxBsJRMKRaCQJSUHSESEiQeYiS5ASZB1SjuxEqpHfkOPIaeQi0oncRh4ivcgb5DOKoVRUE9VHzdGxKAv1Q8PQWHQKmo7OQAvQQnQVWoZWovvROvQ0ehm9jnajL9EBDGDKGAMzwmwxFsbGIrFkLA0TYfOxYqwUq8RqsUb4P1/FurE+7BNOxOk4E7eFazMEj8O5+Ax8Pr4SL8er8Dq8Fb+KP8T78W8EGkGPYEPwIIQSEgnphJmEIkIpYQ/hGOEs3Dc9hPdEIpFBtCC6wX2ZRMwkziGuJG4lHiQ2EzuJj4kDJBJJh2RD8iJFkjikPFIRaTNpP+kUqYvUQ/pIViYbkh3JQeRkspC8mFxK3kc+Se4iPyMPKqkpmSl5KEUq8ZRmK61W2q3UqHRFqUdpkKJOsaB4UWIpmZRFlDJKLeUs5R7lrbKysrGyu/JEZYHyQuUy5UPKF5QfKn+ialCtqWzqZKqEuoq6l9pMvU19S6PRzGm+tGRaHm0VrZp2hvaA9lGFrmKnEqrCU1mgUqFSp9Kl8kpVSdVM1U91qmqBaqnqEdUrqn1qSmrmamw1jtp8tQq142o31QbU6eoO6pHqOeor1fepX1R/rkHSMNcI1OBpFGrs0jij8ZiO0U3obDqXvoS+m36W3qNJ1LTQDNXM1CzRPKDZrtmvpaHlrBWvNUurQuuEVjcDY5gzQhnZjNWMw4wbjM+j9Ef5jeKPWjGqdlTXqA/ao7V9tfnaxdoHta9rf9Zh6gTqZOms1anXua+L61rrTtSdqbtN96xu32jN0Z6juaOLRx8efUcP1bPWi9abo7dLr01vQN9AP1g/V3+z/hn9PgOGga9BpsEGg5MGvYZ0Q29DgeEGw1OGL5haTD9mNrOM2crsN9IzCjGSGO00ajcaNLYwjjNebHzQ+L4JxYRlkmaywaTFpN/U0HSC6VzTGtM7ZkpmLLMMs01m580+mFuYJ5gvM683f26hbRFqUWBRY3HPkmbpYznDstLymhXRimWVZbXVqsMatXaxzrCusL5ig9q42ghsttp0jiGMcR8jHFM55qYt1dbPNt+2xvahHcMu3G6xXb3dq7GmY5PHrh17fuw3exf7bPvd9ncdNBzGOyx2aHR442jtyHWscLzmRHMKclrg1OD02tnGme+8zfmWC91lgssylxaXr65uriLXWtdeN1O3FLctbjdZmqwo1krWBXeCu7/7Avcm908erh55Hoc9/vK09czy3Of5fJzFOP643eMeexl7cbx2enV7M71TvHd4d/sY+XB8Kn0e+Zr48nz3+D7zs/LL9Nvv98rf3l/kf8z/A9uDPY/dHIAFBAcUB7QHagTGBZYHPggyDkoPqgnqD3YJnhPcHEIICQtZG3IzVD+UG1od2j/ebfy88a1h1LCYsPKwR+HW4aLwxgnohPET1k+4F2EWIYyojwSRoZHrI+9HWUTNiPp9InFi1MSKiU+jHaLnRp+PocdMi9kX8z7WP3Z17N04yzhJXEu8avzk+Or4DwkBCesSuhPHJs5LvJykmyRIakgmJccn70kemBQ4aeOknskuk4sm35hiMWXWlItTdadmTz0xTXUaZ9qRFEJKQsq+lC+cSE4lZyA1NHVLaj+Xzd3Efcnz5W3g9fK9+Ov4z9K80talPU/3Sl+f3pvhk1Ga0SdgC8oFrzNDMrdnfsiKzNqbNZSdkH0wh5yTknNcqCHMErZON5g+a3pnrk1uUW73DI8ZG2f0i8JEe8SIeIq4IU8TXnPaJJaSpZKH+d75FfkfZ8bPPDJLfZZwVtts69krZj8rCCr4dQ4+hzunZa7R3EVzH87zm7dzPjI/dX7LApMFhQt6FgYvrFpEWZS16I/F9ovXLX63JGFJY6F+4cLCx0uDl9YUqRSJim4u81y2fTm+XLC8fYXTis0rvhXzii+V2JeUlnxZyV156ReHX8p+GVqVtqp9tevqbWuIa4Rrbqz1WVu1Tn1dwbrH6yesr9vA3FC84d3GaRsvljqXbt9E2STZ1F0WXtaw2XTzms1fyjPKr1f4VxzcordlxZYPW3lbu7b5bqvdrr+9ZPvnHYIdt3YG76yrNK8s3UXclb/r6e743ed/Zf1avUd3T8mer3uFe7uroqtaq92qq/fp7Vtdg9ZIanr3T97fcSDgQEOtbe3Og4yDJYfAIcmhF7+l/HbjcNjhliOsI7VHzY5uOUY/VlyH1M2u66/PqO9uSGroPD7+eEujZ+Ox3+1+39tk1FRxQuvE6pOUk4Unh04VnBpozm3uO51++nHLtJa7ZxLPXGud2Np+NuzshXNB586c9zt/6oLXhaaLHhePX2Jdqr/sermuzaXt2B8ufxxrd22vu+J2paHDvaOxc1znyS6frtNXA66euxZ67fL1iOudN+Ju3Lo5+Wb3Ld6t57ezb7++k39n8O7Ce4R7xffV7pc+0HtQ+Q+rfxzsdu0+8TDgYdujmEd3H3Mfv3wifvKlp/Ap7WnpM8Nn1c8dnzf1BvV2vJj0oudl7svBvqI/1f/c8sry1dG/fP9q60/s73ktej30ZuVbnbd73zm/axmIGnjwPuf94Ifijzofqz6xPp3/nPD52eDML6QvZV+tvjZ+C/t2byhnaCiXI+LIrgIYbGhaGgBv9gJASwKA3gHvDyryt5dMEPl7UYbAf8Ly95lMXAGohZ30ys1uBuAQbPD6AWi+AEiv3rG+AHVyGmkKEac5OcpjUeELhvBxaOitPgCkRgC+ioaGBrcODX3dDcneBqB5hvzNJxUivN/vkMXoYsxaCH6SfwL7823yszWvXgAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAQABJREFUeAHsvQt8VdWZ9/8DAwQhcpFbACGpUAgFSoi83LRcxArBikaYWqN2nCi11fYFofpR1PkP4jgyWK3FalMY548GnSKxWBG8BNBqwIkkFGwCgiQgEC6RRALkGFLO+6x99mWtffY+t+wkJ/BsPuGsvdfaaz3ru+7PXpc2Z8+e9YMvJsAEmAATYAJMgAkwASbABJgAE2ACTIAJMAG0ZQZMgAkwASbABJgAE2ACTIAJMAEmwASYABNgAgECrCjhnMAEmAATYAJMgAkwASbABJgAE2ACTIAJMAGdACtKOCswASbABJgAE2ACTIAJMAEmwASYABNgAkxAJ8CKEs4KTIAJMAEmwASYABNgAkyACTABJsAEmAAT0AmwooSzAhNgAkyACTABJsAEmAATYAJMgAkwASbABHQCrCjhrMAEmAATYAJMgAkwASbABJgAE2ACTIAJMAGdACtKOCswASbABJgAE2ACTIAJMAEmwASYABNgAkxAJ8CKEs4KTIAJMAEmwASYABNgAkyACTABJsAEmAAT0AkkMAkm0BoJ1NbW4uDBgzh16hTq6+tbYxRYZibABJgAE2ACTIAJMAEmwASYABOIQwJtzp49649DuVgkJuBKoKKiAkeOHMGQIUPQs2dPdOjQwdUtWzABJsAEmAATYAJMgAkwASbABJgAE4iGAM8oiYYWu21xAvv27cM333yDq6++mhUkLZ4aLAATYAJMgAkwASbABJgAE2ACTODCI8B7lFx4aXrBxkgstzl8+DDGjBnDSpILNpU5YkyACTABJsAEmAATYAJMgAkwgZYlwIqSluXPoUdBQOxJMnz4cFaSRMGMnTIBJsAEmAATYAJMgAkwASbABJhAdARYURIdL3bdggTExq1iTxK+mAATYAJMgAkwASbABJgAE2ACTIAJNBUBVpQ0FVn213MC4nQb3rjVc6zsIRNgAkyACTABJsAEmAATYAJMgAlIBFhRIsFgIxNgAkyACTABJsAEmAATYAJMgAkwASZwcRNgRcnFnf4ceybABJgAE2ACTIAJMAEmwASYABNgAkxAIsCKEgkGG5kAE2ACTIAJMAEmwASYABNgAkyACTCBi5sAK0ou7vTn2DMBJsAEmAATYAJMgAkwASbABJgAE2ACEgFWlEgw2MgEmAATYAJMgAkwASbABJgAE2ACTIAJXNwEWFFycac/x54JMAEmwASYABNgAkyACTABJsAEmAATkAiwokSCwUYmwASYABNgAkyACTABJsAEmAATYAJM4OImkOB19Ldv344vvvgCw4cPx4gRI7z2Pi78q6urg/hLTEzEpZdeGhcyNUaI06dP4/Dhw/jqq69w7tw51NTUaN517doV7dq1wxVXXIF+/fqhc+fOIYPZunUrxo8fH9JNPFqK+O/evRsi7x4/fhwHDhzQ0rdjx44YOHAgevXqhYyMDAwdOjQsg3iMH8vEBJgAE2ACTIAJMAEmwASYABNgApETaHP27Fl/5M5DuxQD5YqKCtPRT37yE9N8IRlOnjxpRqdDhw7o1KmTed+aDMeOHcOuXbtw4sSJiMTu2bOnpjDo1q1bkHsj7ZsyzT/88ENMnz49KOxYHwgFybvvvov8/PyIvBCKkxkzZuD6669nhUlExNgRE2ACTIAJMAEmwASYABNgAkyg9RHwbEaJMVA2EHz3u981jBfcr5hJ4vP5tHh9++232m9rU5YYM3+iSRyhUNm4cSNE2ooZFsZlT3vjeTz/CqXLK6+8os0ciVROMYtIKFU2bNiAO+64A5MmTYr0VXbHBC5SAudR76vHeYp92/aJaN+Miz3P+6pophjNDkNnDBo2BF3at64kaKj3oUEDl4DE9p411d5DON8AX32D5m8CpXFCDGnclHFtSr9jg9lyZSI2efktJsAEmAATYAIXJwFPel/2gXJKSooykL7Q0IrlNufPU2envl6LWmtSlgiZP/roo6BZJCLNevfuDTFbxJgxUl1dDfF36NAhbWmOkY5iadWZM2cwbtw4bbmKPIvIcBPPv2+88QbefPNNRUSxvEgoPgYMGKAttxHLjMSME7EM5+DBgxCKFbE0SVxCYZKbm4uqqirccsstij98wwTikUCD7xvUnD5H2ooO6N49CTGMZWOKVv3xEjz14tvauynT5+KnY5Nj8if6l+pR8j8v4O0K/c1Dt+KxG4Y0W7yjl9f+Rj3+9trTAfl7T8dD945Fot1JC9w75aP6Y9vxdO5GTZppcx/CxORoJW3KuDaN304cIk2OlisTkUrI7pgAE2ACTIAJMAFBoNGKEiclSWvcpyLa7GAMpFubssSuJBF7j4wePdpxKYmhNPnOd76jKQ22bdtmKljEniZvvfWWtqdJtOxa0r1dSdKjRw/cfvvtGDNmTJBYIo2/973vaX9iyU1RURFeffVVTUEiHIvZJX6/H7Nnzw56lx8wgXgicPTT17ByyzESKQU5D/8U/VtgdkWH5gRy/hQqK6QAv66BUGtHO4SXfGh24yUGsK4JcaPgccxHl1jdCMsUHa6mjGtT+O3IIbooa66NJI7hVX6FCTABJsAEmAATaGICjfqweLEqSYw0EQPp9u2tEYeYWSJmWsTrJZbbyPuRpKen4wc/+IGjksQeBxHXadOmYezYsaaV2Pi1NV1iVog8k0QsH3ryyScdlSRO8RLKFOFebOpqXMI/4S9fTCB+CZzB4QqhJKErZSh6WFVW4NmF+H/b7vje5BQzZiO/n9qqlCSm4MIQWN2pPGqZm2bIR00ZV8/8bgYOLZPAHCoTYAJMgAkwASYgEYhZUXKxK0kMhq1FWSI2bhVLZoxLKEnkAb/xPNyvmF0iNnVtbZdYRiP2JDEuoSR54IEHIlISGe+IX5Hejz32mMJO+Cv854sJxCUB39fYXRGQLGVov9arMIgKblukTroDC6mMP7DwIdw8qldUb7NjBwIXZT5iDg4E+BETYAJMgAkwgYuCQEyKElaSqHmjNShLxOk2xiWW28SiJBHvi7SXZ6UYfsb7r9iEVuwtIi6x3Gbu3LmuImdnZ8P4c3M0f/58zR9hL/wV/vPFBOKRgK/qK1Togg3t1yMeRWwimdqiU1ISkjq1pgU3TYTCA28v3nykwmMOKg++YwJMgAkwASZwoRKIekkxK0mcs4JQlohZBfG4Z4mQS1ZuiD1JYrnsaR+LHy3xjoi/vORG7Eki0qsxl3hf+PPcc89p3ghFiTi6OGp/G2rxZVkFxCKmdn0G48qewYM634kvsfdoYJnT5bR0om+SXfIGHPlyH74+ew6XXp6CK+njued+UqC1R75ExdeapEgZcSWCxIAPX+7eq8WFIoOhVwbPPGqoPYJ9FV+Tm0uRkkZ+RFwDkd/Fhfh0517UogM60DT69skDMHb8BEdmdkKh7gXfwg8/xd6vyWc67pt8xoCRYzFh9JURzL5Q5QItv0u6fDBGTxiDocEJpYtBaU5TPMTKNSPNfdUkw18/xcGTYicNCj+Nwh+rhn/iy2JsLdmNk6frRTAYOGocJo8dGlbGqgOBTYiBIejXIzh/CaHqa6tw+MhxfFMnwv8H/WuP7r374Yrk7uE3sqqvxcHyCpwguS655BK079gFvfr2Q4+k9iH31jjvq0XVKVJetk1A9x4inAacrPwKh499Q+EDl7Tvgn4Dr0D3TlImaTiDyq8OoeqbOvzjH+SKwuo/MAU9ZDciQuIit1Unz9CJO6Qw6d4DlpN6nKyqoQ25KehO3TX/z1Mcjhw8gqrTJI/wt31n9B2Qil4xHZVzHrVVJ1FHASR06kr+i7VODfjm+BEtboJvXf0l6N6XNo5O7hKSkRYP878An6NV36BeAELAj/69nPzwXoZI8hER1aTVeB4mnpROAZ6UTikDtDxhRicGQ8OZk/jqwGGcpHxKWY28bo8uvZMxoH8PyrGRXoLNERyprEYdpbVI7i49+9NG3pH5ERGHGMuEGoN6VB06iEOiPAQiS9m9N65I6e9Sbwbn6wZfgNc3dSLDXIIuPahM91fL9JmTlTh0tIrypM6id3+kEE+p1Kli6XfepIWj1/yQCTABJsAEmEBcEAjXFipC2gfK4qSUi2HjVgVCiJt4VZaIU2uMS6RZ1IN5etme9oZ/reG3rKzMFFOcbuO0cavpIAqD8Ef4J07DEbNKRDjR+u3btxaDRt4VCHVWHur+fJtt4OtD/j2DkL0u4GTeugo8e+NAVcranbh9UAY2a08X42DZFZ77ecz/a3zwC0uOl/fV4Z+vVAfdvt2vY1CaHhfMQ4X/Wdgkxc6Xb0fG/w1I+nDBcfz71GBliho5oHrXW/jVyFl41W6h3896OA+/X3wb+kZVm4mXT+CtJx7ArMddfUbett/jtrF9HUM+UfwGHsiYE71ctaW4J22cll5TXtqG3yavw8hZTwWHMXIetn/8LEa3+xJLbx2Eh/Q8oDgkNx9t+E9c4xp52k9h357AKympsOtJztdWYusH6/DBTn0PE8VzcTMEc+b+CMOSOwXZiAdVez7BC69/4GiXcvWt+NEwGs26XMf+lo/cjRVkOwQ58yZhz2u5+NhBjHFZP8f1I3rh5L5P8Ls857DGzcrBdaP6K0qHqs//ghfWBeI+LYdOY+mv59f64/jLCyu1WTYpN8zFj7rvx+9WOfs7ZPIc3DRpmK1MukTIeFx/DPkv5Ab8n/5z3DHch3WvvAxHxClXY+6Pr0XIg2Iua49vvynH+udWYacRhvw7ZDJ+ftMk9JKLo9cyIHQ+MsTp0O4cju/6K17M/9h4pPyOnJ6NmWMHRaHUMF4/g9IP38OaLY4EyNEQZOXMxIj+wepbwwcQx3O+Smz+n1xsqzCfSoaRyP7lTAzqHkrlEp5DY8qEIcyZylL8JXcN9JJrPDZ/p936c0wcYltOpuTrHMzovAcvvu6QDr3HYe6/XI/ktifxyRu/wwdOgZCbu7Kvw4Akp0nHHqSFGRM2MAEmwASYABOIXwJOraCjtPaBMitJHDFpSoh42+BVVpSII4CjvexpH+37Le3+s88+M0UQRwCHu/Ly8mD8hXN71VVXmU7kcMyHYQyJg64hlYJ+rStCRYNxo//69mKDNEB+bv3f6Nu0etVWFOlKEmDk4om4ogn87EVDxYm3m5Ji66eHVSHobu+2AunZcyg6ECQpdm4KKEmAKZg2IryS5MDGJ9A9hJJEBLjuqWz0y3gCB6TQwxobvsQTU3uFUJJoPiN7XD88sfFIkHe733gEvUIoSbS3hVzt5mNXre31du3QT3+0+d5xzkoSYb/zOWTcMR/z3ZQkupsf9HsKwRLqAYTaV6K+Eut+kxtCSSL82IM1ucuwq0rMNFGvyu1vuipJhMuKj1/H73KlzKu+jksSLtOf7MHK55yVJMLBtvwX8e6H77oqSTQ361Zic7kK+vw/xOygwJUg62vaXgIj5Iq3c12VJOLNPVvW4L8LynVfIvyhVtXwv+7I/+JPy1yUJMK7io+R+/TrOHiGpre4XTvzkeemJBHv7NmCF5/+kGZaSZfXMoTKR1Kw29a/4qokEc52bszDU2/v0k4gkl4LbWyoQsFLy0IoScTre5C/8jd4d9dxd792foI3nnZTkojXdiLvd09h1/HgvG56GoZDY8uECOfkng+xLISSRLj54PUX8fqnB4XRupR8vdJZSSJcH9uG3Px38a6bkkR38/Jv/qrmKfHcq7QQfvHFBJgAE2ACTCDOCUT0DVbsb1FRUaFERdzbnykOorwZPnw4RowYEeVb3jgXswGM/Su88VH1RZyG07ZtW3Ts2FG1aKY7+XQaceRvtJeYNdSaZw5VVVWZUR4wYIBp9sKQlpZmLuuRw4nY74SBuH7eSFrCI76UPofiA0/RkhXr03BtaaE6YyF3Pfa9cCOGSiW3otD6apj9QypDCd2895Ok6zdhCkhS7at27ocl+O1t8tKQahT++VUl2u9/sg+zBw61npHSp8AYN0+5CWH1JEc24sYZj1vvYy7WbX8EU4aRsq/2MD7JX44Z9waWPmHn47hr6Q+x6cGxkns3YwM2Pp6Fxw2dDTm7/el1WHLPFPSmInq49BMsXzgDz+n2j8/4BSaf/DOu0YtOw4G3kDbnKctzmtWx4dV5mDi4H9rVHUfhn/4T1xpyEa+RCyfi3B9mh5zKboTfHfSV90/PWfFa9xz5IK6ReHrdy7hnyjAk+A7j3Zf/P8x5yOD9OP6yax5+NiL4a3qo/RQOFb0nzVAYgll3TsXgft3Roe15nDl5ENs25Jlf3vP/ugdpN48w49Bwchdy35a+7vfOwK1Z12BgVwJ47jT2f/ZhmIGthc8yjaTZK1MxqGdHfEvhF+ZT+PoMk21btgWcjZyGuVNHoWendjh1dB8+XLnGjMPHn36Ja1JHxTBbAeidcQNmXTOU/O2Ab08dwWfvvYwt+pf2Yx+/iz1XzcWQLhF/VzCjdGzndgSiQDMe7pqGwX27IqGhDl/tLsSqdXqcaJD/8l924uFb3WXX/KDZJ9kzrsKA7jS759tT2PeZmGFhTAfYgv/dNwrXDupihm0YvJAhVD4ywhG/x/TTlXqPnI5ZU4ejW4d2+Me3X2PHJmnW0vZ8bB48ANcPCZZV9itgPo99BW8oM40ybsjGNd8bQMtP2lI+/QqFG1aZ+VQo1a7otwjDuksVpOnpMVRo5t6YfussDB/YjRaj/APVB3YgV5oVlf/iXzHgX6+Fk3ShOHhSJmr34U+vbzElxpBpyPnhKPTq3A7nKc3/Xrgeb+vTYfZsfBnbUx9GRi/3GTAjp92KqRmp6Ig6HPz7NuS9ree5PdsQMPXGNGKRkdoTbc9RntpB5fYDo1xvwRfHx0v+e5kWVhTZxASYABNgAkwgXglE1PP7/PPPm1z+5gjDLRJNqSQxwmyOMIyw7L81NTXmo1gUJebLrdQgK/QGDhwYNhbGRq7iN9wl+3fgQFRzGnSvEzDyR7PNYD4sUWdqlH68wbQLGOiLaJn87bgW2zcYA+ZZmDRMzNJoCj/J175XYfZIXZzcT3BYnjBS/YUy80W4yt2wTfkiWbu3yFT6zLrpaoSeT9KATcsfMgfBNFUG+879ATeOHoikxEQk9bwS03/2LI5/9LQuELD5oeXY5TNv3Q1HPsBDTxmDAWDxhn145cEbMbBbEhITk3Dl6Ol4dtNxPD3F8GIdctft1m8a8MEfHjMsgFm/xeG/PYvpI4RcCUjs1hdThVzbXrLc5M7Bn790F2zWS9vN8JO6DdTitf2l2633yfTS9o/x4I2j0S0pEPfZD76MdaRgM67iXWq+MZ6776fQgDNCJG2GWQrm3Dcbo1J7oVP7BCQk0L4PvQbh+p/MJfWMfu08gJNmep/Hl0WfGDZ05PA0zJt7A4bQXhmJdFx6Iu37MWzSzbgva5zlJqxpJHIeupmW+HRBewo/SYT/L1L44n2aWfTwzROR3KWTJmP3/sNw87xbYc6R23MIp0wZwwZoOkiZfCfuvSFD9zeB9jMZgEm3PoDJpsfHUHM2Bo/NEDIw96FbMYL2wEhMIL6Ux1JHXY+FOdNNF9izDnscZu2YDijuD/30Wgwixu3Jj/Ya41tx5+QU04nYy8L9apwM7vkoOMSUydmYe/NYjWdiYnt06pKMiTffjVuvTjEdb9v8OS3mCX+dr92PDwxtGTmfdtcDuCFjELqQv22JQ1KvVFz/04W4YYjl15qiL4Nm3Vm2KciedzfGDklGJ6pHEhM7IXnIRCz65a1IMR19jB0HnaVz5+BFmTiP8v/9QFesCeXdHFKeTUR/UoyJWaqJST2Qcf0dSpq//b/7XOM6hJaV3TxxiMaqfWIXDMq4HnNvMEu0Ftsb5v4LLeFJpnKr56mJs3DrODPjo/LYKZOK92lhes0GJsAEmAATYAJxSSAiRYmY7dHUV3OE4RaH5pjp0RxhuMXvYn/u81mD1Fj2ZwnFT/YvVmVY3/SJtBAlcOW+XyJ1fE/QF/PAFIyRU2aZbv5cuNcSSZ6lMesmDNMnFTSFn0BfTJ5tSPocSg5YXE98/iF0STFrlu7m1QLslXQ68syXGVMGW3FwMvl24nlJmfHy//waVzp8JO55zc+x5uG52ilGc+ddi8sTnTxTn+36y0uWAub2PPx6+pWqA+2uJ37+2zWYezv5TX9XX3lZwA3J9ZIk15pnfkFUgq+eY3MURcbv15cGO9KezMN/5IwOshs26Vrr2ZSXcNto+2yRBEy54xemm2NVZ02zZfCF2J8kAUOu/Sn+9d578a//+lMM6+EAt31PDDIHoLRRtbE6pOEYSqTBa9aPxsJpskWPEZNwQ4olTShTBs1GMbYQMd21vxypZvjA9HHDgmeLdEnFGNPNafgMGU1PwhmG4NrxqQ6OkjBiYob5/MgxS9lsPozQMI1mkjjtQdKp/1ha2mUNSv/+5dcuPvbGnEkjHfdJSR090VQUVew7QdspO1+NkyFUPrKHl4GZ1wxS9ooJuKD8NumHluLt2AfYG0oxpHtb9cVnpuIApDgYP8BeDoTDTsiYeav+Bv1sK8FRl9UzI7NoD5IuwXk9ofsQzJCUCFu275fqYcPrEBy8KBPkx6fmJj1DcMM0h/xOZFMnzoCZM7fvdInrOExLTzYEN397DpTyesoNGJFsn41C/o8cY7o/TRuEG5fXaWH4y79MgAkwASbABOKVQHCPwUFSsSRGnBwif5lPTU3FuHHjHFy3vkdCieGlIkM+/UbQEF+DvPQ/WsJdu3aFMaukuroaF9uskkT6cmgoS0TayMqNaFna3Qv/jEuEE9PVLR03kW5hs1jqQTM1DrwwO6AUOLELefrEh+x/+w8M/X45NtMSnXX/8zGqf0azC8h57d6d5iyN228aZ51E0xR+UnjDf3gTjDUr79Psl9lXBpQMu7ZsDER9Sg6e+Y++WLdOROZVfFz6PEaP1SSVZr7MxYTBTgOegBfa/+JIGOMa+TRmDnVjm4TZ//4HWHNyjJfcf899a9ktnnud4wBUuEgaMRt/eMXmsyzXlN9ikpP2RvM+AdfcmkOrqf5vILBvnL9QY9b30c+hFj4nCTnrpjFWugZ8C/zfTr5xMPuOY3dF4HnK0H6u8TTfpFNaGs43oKHhHP5x7jydCnMaJyVWlxgOz4sTNPSr9zR8x3GZg7BPxNAfTMbbFVt0x+4/yb11RZSrEzqx53L7oC7g2JSLbmWzq1eyxZDBcFu5cBmdpmJc334rxdl4GMlv78kYPsAt7wL9v5dOA/tA2dlTc4oG58nm8ibL+67o1tnlm0bHyzRFibY0p4Nx5oz1pmZqrAxR5KOUySPRw0VUJCQjY3IKdm6p0MT6lvJYuOsf0kSeaSMHOihgdB+SaCZWCrCxQtx/q50oFaxVS8GowT2EA8er19BRSKHlZBXC9lS9pihRimYoDl6UCdkPmm93adsGarckALrUCXRKVJLQr2mJ7pLnh/TGZQ7pcF4KY8jQvsGIRBguhcjbtNAjwz9MgAkwASbABOKYgNIPCCWnsUeFoSwpLy/XnF8oypJQcY/GzklJ4uXAPBpZDLftaPNI47oYFSVi4+Hdu3drCMTymO9973sGjkb/ysttRDixXd1w9Y9nkaZEzMkQMzWewpW0T8mR7R/oMx+mYNKYobiieipZk+Zk85/xefWvtD0zKrYXmEHOuCbFNIPUKN77Sb4OuxokqTZ7JPf9v+OF2VfSwO4APtA3/JgyfSyuHNpH26BW7K3x5w8/x6/GXgP4Kqz9SUg5Mdh97KjFoXbvDn2GCt2OpOMwtade/FeLItovwbiucDiO2bBz+lXk6kdLKZwc6c+S+qRoX9CFrmvz5hJUP3aNptxSXjklaSIUi8bf+KoqA4M+8mooyep0NdCpN38r3o7PKw6RIlwfeTk5lJ7Vf32MdtXQL1JwWLWL8dD6bdcpsmO4G/4RftDsMn6zAovFFAJ/eIkiCLBrZ9ofwv1K7NYLKWRdIZwcPR08OBfP6bSibs46IrKUFDhucWmkDJHkIyGmuC7vfmnA4PJ/YmdJISaJ7uy8HkfKzZyGTpeGymnt0bUPaQ+0PFyB49U+pHayl84+oBOr3a8OieYmvOI4Z/sVioMXZaK+RipX+Bi/e+pjuwgO93tw5Ot6JNtnhsSq2HMIIfDI67RwDYgtmAATYAJMgAnEDQGHbw7usglliTwYFMqSbdu2ub9wkdnEo5JEJEH//v3NlDh2LLLBkPlCCMP+/bR+/IMPTCVECKctatWjhzVIPHjwoKeyyEcPy+FEG8iwCTRTQ78+0fcp+ezd9YEnU36M71Kfv+9VYjNVcW3GlpIT9OvD9oJXtScg1cTYgerAoCn8RNJg3HS7HmTu5sBJMweK8JT+6KZp3yUTbVD7sC5p3hbtRBZfxXZz5su8mWNCKhg0r6Qx0ZQR8qaxekCe/MzClb2jVMFIcs0i5VWotxN6p1pLDdDBYaaAJ5Fw9aTqQECZLY5O7Wc/F5jeqi3/FE/SqTdvb9kesZJEC0zSWAzp28P5q7SrVBeZhZvywsDQoZM1OO/gMiOkQ4L7TArDn1C/jZQhXD6Sg07uISlCZAsH85GqUw5P3R4NQQ863tf9aovL5RPdpDxqvjOkh+MsC9NeNlScCNrvJiQHKbzmLhM+eKLSk2MfxuxBWoQJga2ZABNgAkyACcQDgYhnlBjC8swSg4T6G69KEiGlUJSUlJRoAosZQWIpVWNnuYj4fvrpp5qfJ06cwNChQzVzPP4njvD9+OPA17m//vWvmDFjhmdiykcCy0cFRxtAYto4OtOFVt7Q33Of7MWzsxOwXjsJh05k+fGEwEwE2kw1m/QPO2mKwhsf7MJjU/vC0JOMfPj6oD08msJPWpCCcTNI0lc1SfH3E8+iY9H7enRvpxNpxDIbIGMaLVkRe3nsfAO7qx/DwOKtupuRmHJVP93s/tPuUksFsXnjDtTSaTbWE/f3wtu0owGV4WodSuhI2WtoE9dIr3btLLfr/lyE2l+NdpVLVg5Zo+FIQ2qsuxD7KQiv6w9h/Sp9uZQWVAom3zAGA3peRhtctke7hA7o2OEcti17gb5tq1dbOobUuPbsPoL6scmuypK2bvP4DQ8u9F9SfoS6zp+qsvbL+bbBecgbTtERKgBh1ygZwuQjW9h7j9QgI7mX7al0a2UdDKATgEJfbdHelH0PDtPMif72mROmBw2oLBdztwKXo2ppz0F83UCb9rr2eiThaIPTroq70By8KBOyH8A45PxyHC49f845TxgRJRXaZd1VBblp5anB47TwVDb2jAkwASbABJhA0xCIakaJIQLPLDFIBH7jWUkiJBRKkZ49e5pCFxcXm+ZYDbIfst+x+teU74kjfI39Q8RSmaKiIk+CE/589dVXml/CfxFOzFdCCq4TmhJxbSrCrl2faEoTcTtj0mDxQ1dfTMoWC19I/7D+E3JTbM7SmD0tMINDszT+awo/ye9BY68zQsDftu9C4SfbAve3zzCX1PRMn6xvPrsTn3y6CyVFupuRs3FVX2UEYvolGxL7DdWW+GjPNherJ+zIDjWz2FeD/oKeOz1IxJDRxpQY4O+7Dzs5Mp9p/pLfxpWYMhTm25sP4LhlZTgxf09WfGGaZ0112WfEdOGxwVeF8oqAn077k9R/fVhaPjMZ9y36KSZlDEPqgP5I7tULPbp3QadOXXH5kGC5Err2tmbKVFThdIgP2jXHDgV7cDE9EYNzl41FBYYzJytNGikpdPqIeeehoTEyhMlHdin3VFWHGNg34NghS5nRYO4ObPfFuE9A7wFWvVZz6rRh4fB7BsfNyZJD0NtxP5tjqD7jnlkbaOmLKZ1daRWGgxdlQvEjpatWBrvTbEgxU9H9rzvax9SLc0AY8pHXaREyMLZkAkyACTABJhAXBGJuYllZEki/eFeSGLlMzCIxrsOHDzdquYzY70P4YVyy38azePoViiJ5Fskrr7yibU7cGBlFugt/jEv437hZOokYM3NewDuahfHYY0/rXtOSmkHW8GnYNH02jOZmhe5mCian9zVEkX6bwk86JvjKMXhYD+WNpY/h9/rMl3mzxloDvW7DIbZdEZfsZkr2ZMdTYgIupf8TuiDVvM3FH945YN6phgN4pE07iH142rW5A8XSKTuqO+vusmRrKVZu9ip8aVkppiMbHwn4S37f9AdduZhwKaxdGJ7C6o/EEiinq5ri/ZRpkXSZ9Zb5sAkNvipLEeK4P8kllrJqyLjvwenQG9RW4G97HIRsS6zNx9uw64AL9PMnsT1/u+ny4jTsxLbS4y5R96H0k49Nu8u6NFUeiV2GsPnIlF43bNuM/W7Z4ZsvYGWHFFzeJdRSmoB/CR2lnLa5zPVIYd+hz2EeGIPOLsqDY/jos/12ifV7Ot53+yemXe+UXlZdRk/DcvCiTMh+VGzE3w75THnshm+OH8LBQwdxqPJkhApiuw/R33ubFtGHz28wASbABJgAE2huAjErSoSgF7uypLUoSURa9ab129/97neFUbvEUpw9e5xGQYYL51+hJDGW8QgXwk/hd7xf06dPN2eVfP3118jNFUtHnK+8vDwYf84ugGeffRbCH3GJ2STC/8ZeA6+6Xv9STyfbrAt827QvqUkaNkGf0SDcbA4EOeUmDA+seAkSoSn8FHuQTNP3INlJG9AGpKAlNRMGSuF3wyR9MxPLDXDTJPWo8RPF/42pbdqgDf397A9/tY43TbgS9+cZU2xoOdKsG/HfxXalRAM+/cO/m/ujUG5EH3NlzAmsnj9V87fN93+GTUesQcfAzJ9py5wCwj6FrJ/9N+w+48SneGiGpegYNrBPwHnCUMx/2ZxTgsev/THe2G0fGdZi4xN34f/qyUOLpzD/lqESm6Y3Vh0u1wNx3p9E3gN0D2lDvrGLVF+FD/PzUGF/Lu7b9kDGDUNMmy2r8lFaZfENWJzBjnf+hG2mqwvLcKZyB/7/f/s3/Bv9vb39YMjB6s51L+LTcjvheuz78M/6KS2CTQoyhloKPK9pxSpD2HwUJOgxqjsLcNyeHXyVeP+1NZZrOoI2JSl896P7d/+PNXuJjhR+o2AP7BN06k/uwZ9XfmD6PeSG/4Nelh7QfC4Mxz7Ow7u7ghVXlbvex+vSkdcTR1yhvBeWgxdlgvwYN8uaQbNx5QaUfxM8Ze3kvg/x3Isr8fLKl7EytwinFEmb7sbrtGg6SdlnJsAEmAATYALeEHDpTkTu+cW6Z0lrUpIYqZmRkQFx6o3YU0RcYvmM2Nx19OjRYWdDiPgK9/JMEnHssPCzNVxitsedd95pKki2b9+OJ554AvPnzw8bdzl+goNQkhin6Ai7e++9Nyo/ZP8Uc9+R5h4kxvPZ02x8EwdjFukPtC1CdEezfnx18GkqhgdN4Sf5PWLG7MAeJEY4I7Mx3rakZtA1YvbLq4YL+r0dV+t7mAQe1iJ/4V26ooX2Z7n3X/Evt23CWF3ZceU/PYh52bl0DpC4duKujF4oePgl3DVjGOqPleLN398L2k/WvOatu9OcrVK7Kx/Zz+mWO3Ox5NV/wVTa50S7SNnxyLp5yJ2l+5x7F3rlFuClNdkYRjq/0i1v4t7HZUXaw8iZZs3YGXrrIsy961V9adRmzEm7DHOffhk3j+yO+vqTtLfMXYpct7/8IEabChxT3CY00H4Ku3UlaEoqHPZxRULnLtaxshUf4LmXjmPWD4ahc8f2qD+5Hx+9/bFx+qijnMkjrsaQt/foy3cqsOaFpzFy8iyMupIG+6eOYceat61lDI4+tOaH9dj93jpTibT97c0YNeKn6B9igsTGVc+hfNx0pNOSCqAOFdvWYVuFxSBl2hSEOEXYctgIU/QyhM9HjuIc+xgvPr2X9rz5AVJ7d8bpY+WUn7Yo+Snrmu9GtrlxQi9ck5WBnfpUlIqPX8dTezMwa8pgdKQtReqO7cW6D7ZLYozE1O+H2COFXG7LfxHl+ybjB6NSae7JaZTv+AhbdprrduiUrSykKUdeR8bBizLRY/hEZJCSPBCjnVhFs/XGTZ+DtAGX4R9nqrGfllt+vLPCjO+4W8ehu3nXxIYmSIsmlpi9ZwJMgAkwASbQKAKNVpSI0J2UJWIqfGsZREdL8OzZszQgsr5rtW/f3puBcrSCxOD+Bz/4AT766CNTWSIUH+KvX79+2qav3bp1g/gTl1AK1NTU4NChQzCOgzaCFEqSa6+91rhtFb+TJk3S4v3mm29q8gplxyOPPII77rgDY8aMCRsHsSeJWG5jzCQRL9x8880RvRvWc82BvgfJznW681m0pMbaWybwUCyneZi0CtZsh5smDA7hfVP4CfQcHtiDxNBTTMmeBLukCVdO1JbomJLefi0GR6MwoFklzx7fhrO9xpn7tbz61L141fTQivaUxRvw1I0DrQfnvrXMDqaBN/4ntr18FuPuMhQir+LeObJSx3hpCjZUPK5ulJs4FC8cLsDZfteaaqDch0g5Yrwi/c56ugB//OcR0hMynqMTZ6Qnwd+MJctYjDQbpLwi8KLT/iTCpm3SIGTNysCL6/RB5jGaobQmMIsp8Cb93zsDk/t/jS3bK7RHymmu7fsj6+dZ+K8X880B8M4t67Bzi+bU/O/qG6bjxNsbrf1QTBthCJ1GwoUcpmwWdsYlP1fNLv7TNhWyjfuuFUYIjfntjSG96dhXGofv2UYcnKbYZMzC7IkDggKR4xJkaTyIKC4xyhBBPjLEMH4zJk/GoS1CKXIMW95egy2GhfQ7+dZfYoRtrVeouPYYMR13nT2Hlzfq+fPYdqx7Xc+3kr+k4UD2vB8FzSYx/U4Zh8mXl1N+Jukoo66xZ1bhV8pk/PJHI1QlTqQcvCgTpIyYPu9OnH5ulVlmtm1c4zwzKyMLU4Z0sQhElBcs57GYGpsWsYTJ7zABJsAEmAATaCkC4ee+RiiZfRnOF198EeGbrc+Zz2fNK25NShJBWsg7bdo0ZRmOeC6UJeIUm40bN+K1117T/v7yl79AnBJjV5KI5TZiTw7hV2u7Zs+erSk3DLmF0uO5557TFCYbNmxAaWmpuX+JUBSJ+7Vr12r2wp1dSSL88/Iy9yARns6agVEBnZUSxMDx0/SNUsXjeRiXFlr70BR+QtqDREjxY+1YYGGSr4GYsXiK+WDujGtsJ8QkYfqDi037kfN+gWH2qPQciz+cO451v9X3bzFd64Ypc5FHn+Y3PUZLqyS7pGEzYQU9Bb+4cZhkK4wJGPvPf8BxUkrNs0RU3Mx9mpaenNqE6bZjl7W3+07FK+cOY93Tc5V3zBuSa822w/jzg1MVuTT7jpda+6/0S1IHZboH7S693FxykNTB2qfB9J8M7dp1MG+TLrPc+I6H2Z9Ef6vXqBvwy7tmYaTDyrkhNPvhvrtvwIiBl+uug/d9aN9rBOYunItpTh6kZCAr5wFcm3ElfbUPXB060BQA6UroaGXuDpc4NUVt0bGzIVwH1/NzrJNRVBkv7ZxshpYg+5/QzpqBRUfOOoUsXpRPIemspEF7DJo42fS797gx6OVWFQ6ZiKy5DyBrsrWkwnyR5vRMzsrBohtGoZP1UDdJcbdxU5zSCUQGX7jFJUYZIs1HkFJm4IiJmDvvLlztkiey73sIk4bY50CEi2sCBoy9GQ/MnYOMFCX25k3GtDl4YNHNGNQl+NvPJUYxuawvJt5wN+6aNVmbTWW+rBsypmfjoZ9OgjKZhOwi50DtayPLhBAloUsqbl00zyXPkP5yyDhk3fVLPHbDCPW0qQjydduEjmbcOySo5VHHoOR7e5kV9WZj0sIIg3+ZABNgAkyACbQGAm1odoTfS0HFkgahJBk+fLh2DK2XfseLX3V1dRB/Ym+KSy9tqg34mj62YtnNrl27zNkl4UIUp9uIjVtbak+SDz/80JO9QEQ8hV+rVq2CrPQKF3/DXqS7WG4TySwU4x3+dSfQ0OCjU2sCe724uyKbhlocOXxSTMjQrnaXdUffkEf7NlD6kscJiUgMHj/pvgR+ak8cwclT5LNw1+5SdO/VE0lh3jE98JFcx2jfg0tpAHj2lPbbt6dd42O6bnJD5aevI3fjHgpnCHIeuhX9ZQ2SY+jn4autxbm2dKjq+fO4pGMn4uWmPnD0APXEoO7btuiQcJ7SpwOSOrlpDpzfb41Pz5+n43zpK35Cgi2jNFTizSdzA0uPUm7Awz/NCAxoz9fjzJk6NNA7pIZBx6Qkl01HPaDhgQzR5yNV7ob6M5QnREzFiVQd0CUpbEZUPXC5qz9Ti9NUrC8l7Gfpt3Mn4mhLApdXpccNOFNbR2WdpKMTbjp06uJaR8TKwZMyQXXjN2cIona1RULHjugUfWSleHtr9CYtvJWJfWMCTIAJMAEm4BWBqLsX4QIWy20u1CU3Rtw7UmdF/LX2Syg8xJ+YOSGW14i/c+fOacttRNzEAEAswxFuUlNpPTft83GhXGIZjsinYgaNmEkSicJEKEjETBqxceuFxKKl0zSBFBn2saajTAlJ6DswGgVEAikzI6viknr2RZJ97ZCjEA4PE2W5rFkSDi6b4ZEPB8PsTxIsRFskJtFAMdgi4iftiUF73YPG+BNxgHHgsK1QLEWjT2rbHp2SWliBFLEMseQjNVES2ndCU0S3PSlGjDkpsee1BEoLvS4J6UnsHDwpE1Q3dukSUkAVejPfeZMWzSw0B8cEmAATYAJMIEICkY0iIvSMnbVOAmLQP3ToUO2vdcYgNqlFvMXSGaH4KCsrw2effYaqqipUVFRoihOhGElJSUGPHj1w1VVXIS0tjRUksaHmt5qLQKT7KTSXPBxO6yTA+SiQbsyhdeZflpoJMAEmwASYgAcEWFHiAUT2onUTEAoTsYyGl9K07nRk6YH6r639SQb168FIWoJAM2yqGTZajZSB81GAMHMIm9PYARNgAkyACTCBC5YAK0ou2KTliDEBJnCxEWjf+/t0dHEv+GghTXLf+J2yf0GnS9t26El70NaISPbp6LhZb5PHv5EycD4KpBBzaPKcygEwASbABJgAE4hbAp5v5hq3MWXBWj0BLzdzbfUwOAJMgAkwASbABJgAE2ACTIAJMAEm0CQEotmKrkkEYE+ZABNgAkyACTABJsAEmAATYAJMgAkwASYQLwRYURIvKcFyMAEmwASYABNgAkyACTABJsAEmAATYAItToAVJS2eBCwAE2ACTIAJMAEmwASYABNgAkyACTABJhAvBFhREi8pwXIwASbABJgAE2ACTIAJMAEmwASYABNgAi1OgBUlLZ4ELECkBNq3b49vv/02UufsjgkwASbABJgAE2ACTIAJMAEmwASYQNQEWFESNTJ+oaUIXHbZZThx4kRLBc/hMgEmwASYABNgAkyACTABJsAEmMBFQIAVJRdBIl8oURwwYAC++OILnlVyoSQox4MJMAEmwASYABNgAkyACTABJhCHBFhREoeJwiI5E0hKSkJycjKKiopYWeKMiJ8yASbABJgAE2ACTIAJMAEmwASYQCMJtDl79qy/kX7w60ygWQns27cPhw8fxvDhw9GzZ0906NChWcPnwJgAE2ACTIAJMAEmwASYABNgAkzgwiXAipILN20v6JjV1tbi4MGDOHXqFOrr6y/ouHLkmAATYAJMgAkwASbABJgAE2ACTKD5CLCipPlYc0hMgAkwASbABJgAE2ACTIAJMAEmwASYQJwT4D1K4jyBWDwmwASYABNgAkyACTABJsAEmAATYAJMoPkIsKKk+VhzSEyACTABJsAEmAATYAJMgAkwASbABJhAnBNgRUmcJxCLxwSYABNgAkyACTABJsAEmAATYAJMgAk0HwFWlDQfaw6JCTABJsAEmAATYAJMgAkwASbABJgAE4hzAqwoifMEYvGYABNgAkyACTABJsAEmAATYAJMgAkwgeYjwIqS5mPNITEBJsAEmAATYAJMgAkwASbABJgAE2ACcU6AFSVxnkAsHhNgAkyACTABJsAEmAATYAJMgAkwASbQfARYUdJ8rDkkJsAEmAATYAJMgAkwASbABJgAE2ACTCDOCbCiJM4TiMVjAkyACTABJsAEmAATYAJMgAkwASbABJqPQMKBAweaLzQOiQkwASbABJgAE2ACTIAJMAEmwASYABNgAnFMoI2frjiWj0VjAkyACTABJsAEmAATYAJMgAkwASbABJhAsxHgpTfNhpoDYgJMgAkwASbABJgAE2ACTIAJMAEmwATinQArSuI9hVg+JsAEmAATYAJMgAkwASbABJgAE2ACTKDZCLCipNlQc0BMgAkwASbABJgAE2ACTIAJMAEmwASYQLwTYEVJvKcQy8cEmAATYAJMgAkwASbABJgAE2ACTIAJNBsBVpQ0G2oOiAkwASbABJgAE2ACTIAJMAEmwASYABOIdwKsKIn3FGL5mAATYAJMgAkwASbABJgAE2ACTIAJMIFmI8CKkmZDzQExASbABJgAE2ACTIAJMAEmwASYABNgAvFOgBUl8Z5CLB8TYAJMgAkwASbABJgAE2ACTIAJMAEm0GwEWFHSbKg5ICbABJgAE2ACTIAJMAEmwASYABNgAkwg3gmwoiTeU4jlYwJMgAkwASbABJgAE2ACTIAJMAEmwASajQArSpoNNQfEBJgAE2ACTIAJMAEmwASYABNgAkyACcQ7AVaUxHsKsXxMgAkwASbABJgAE2ACTIAJMAEmwASYQLMRYEVJs6HmgJgAE2ACTIAJMAEmwASYABNgAkyACTCBeCfAipJ4TyGWjwkwASbABJgAE2ACTIAJMAEmwASYABNoNgKsKGk21BwQE2ACTIAJMAEmwASYABNgAkyACTABJhDvBFhREu8pxPIxASbABJgAE2ACTIAJMAEmwASYABNgAs1GgBUlzYaaA2ICTIAJMAEmwASYABNgAkyACTABJsAE4p0AK0riPYVYPibABJgAE2ACTIAJMAEmwASYABNgAkyg2QiwoqTZUHNATIAJMAEmwASYABNgAkyACTABJsAEmEC8E2BFSbynEMvHBJgAE2ACTIAJMAEmwASYABNgAkyACTQbAVaUNBtqDogJMAEmwASYABNgAkyACTABJsAEmAATiHcCrCiJ9xRi+ZgAE2ACTIAJMAEmwASYABNgAkyACTCBZiPAipJmQ80BMQEmwASYABNgAkyACTABJsAEmIBXBMrefBIz/+kW3JK5EFurvPKV/WECQBs/XQyCCTABJsAEmAATYAJMgAkwASbABJhA6yFwFE+2ScajmsA5KK1bgbTE1iM9SxrfBHhGSXynD0vHBJgAE2ACTIAJMAEmwASYABNgAjYCvs/X60oSIH1pDitJbHz4tnEEEhr3epRvN/hQ8lkJfPRaYo80pA/qannQUEN2Zc52lis2xSUBH/IfuQVLdpBwlcl44f0VGN8jLgVloZgAE7gICPgOlaDkkNbSIO2qdHSVWrqafSUoq3K2u5DRHN1RgnJqg4E+GH9VqhLVcrI76mKnOAx5U4OVc7ORf4iagcp05G1d0ogOq9WmJFcC2a+txW1D4/cTYc1nKzH1nnwkoxJpD+Zh2U/SQpJqdkvqX5VXiLQHUgf1aVTw5W8+ilsWl8RxXOO8n1lzFFuLNqFwWynKdpWh8nQgXdA5Gekj0jHhuqmYelUaEqU6yynBAuWZbBoQVMc5uY/22dHPt2LT1kIUF5Wh/FCl1jcXfiT3T0f6lAmYOmUq0vqELpMlf1yInDfL4EkZJm7lp0mAhESk9pHGDtFGjN17RqDp25TIRC38r7tNhwtvHm+agYu3TUJNCe6ekiOGZMDQR7H2N1kIXVolbB4Z4yV/NDo6YulNs11leWKZj/a34L1KNVjJbsmmatXuQrirq/SXltnifCHES4tDnT9vTiBdRfqu2FV3wcSMI2IRqCwr9Vdy0lpA2BSnBKg+mmHUR4v8ledkMWW7Jf4LsKWRI2uZz5X6s/S2F/MLrOfCRHaZht3iQtUumrs6KQxk+YsbVVe0rjalNDfL7Ntk5ZZGQ63xbsP1LSh9FxjpK37nrw8ZZl3lfn9piIq+dFULxjWk5Lql1JeMq35mdal/+T2ZZj4x+sLOv+n+ZfnFfvciVOdfMcqo4+Bf7mGfq/St5f50Ob+EMKffs8xf7JpX5Lq2cf3Cur1rFW6L3rpQ+9KRZPA4cdMcbUokUa0tttqvUcvVNv0ibpPqdq2wysyMvBB1SSSQY3ATL/kjBtHtrzTr0puammpqEwLX6CtUjfDRynLDCqnJza33MoNuAkMN3vnPu9GmYzKG/WS9qZVvgoDYSybQJARqPn8Hd6e3QXLaMKzdrX/9apKQ2FMm4AUBH6ppFoJ2zRmmzCaB+LJu2N2T2uxfWLyIXUx+nK4x256sdPGJSbqqKmkeRODKkWd5Sk4iMtIX8G6SwwupFZei5WxMlGPu7MT7p5H1LXy7C/GMHPizK1HiVI3XlOGZuTPRMfk7yF5TJr9hM7dEXG0ihLiNx35mzY7VaNNtGO7/4zshJJetSrAwazQ6pj+JMqe0IqcdB1vuvSlrNVj9QBsMu/F+lFhehzSJGSOjkzviSZo14nh1dnwa9cPyzXnKO0++uMmszxQLvmk+As3RpkQQm6Pv58EoVQsevwXKyPJibpMSOkZArwmdxEn+8CKGzaooqdy7SZc5C2kpatVefajY1c6LiLaYH75yvPDgykDwg1s447YYBA64NROo3LoSK8WyKrrCTQcOuOL/mUALEmioxCY9v2Zel64qQxqqUazbZY2x2bWgyE0dtO9oudmZzExXl934qo6aA6PxI1S7ppaL/W8EgQj7FomJ9n5Hqqo81EXwHSrEQn0gn5qo9s8aIWWzvxpv/Uzf56vRLT1b4UAzMVBQVIrq2jr4z/m1vzrS7ha/l4ecUZLTHY9i2PhncFR61DRGH1bP7YbsZ2Xf07FsVQFKK6tRp8voP1eHyr3FyFucIzvEo1nD8OTmppMysYdNOTe0q1qvK9LwTXMQiI82pQZrFxtq4ExkX9enOaLOYURAID7yRwSCRuCkWRUlZX/N10UajWRl/SWtKf2LbjdqAlJbbxsdjJzWU5rf78T6Sr6YQGsj0CJfS1sbJJY3bghUlMFoadJTbB3sihLTbsIgs2aOG9GbSpDKMuNDRDqSe6gNbPku4wNGJq39V+2aSh721wMCkfYtBmWhgDY4DFzpWL5pIVKV/pdu1dJfID1AIryIq37m6RLcMkJWktDePUWkEMldoO1D0rUzlTeRFvSX2LUP0q+7DStK/CheRYuljGsH7fPxu0jneBgvRfdb8rtsZP9Remd+HirPFWPBHWIfElJK6DKK/UH6DErHbY+tgL+S7KVXHp2ag6010gMPjakzFmDZnPSAj6NyUPDAVA99Z69iIRAXbcq+d3C//uED8xcg3aMZTLHw4HdUAnGRP1SRYr5rekUJbTQlNpsSm+pUHzLk7Br4omHY0XToyr2WndZV094xnl0gv1yIL5CE5GgwASYQVwSMtoSEqqkxFpLQUpCe+sBfb09ku8RuF7hSQGZyyFrammy0QwYT2qjRuDQk+nPjGf+2AgJGmjqKmoipv6aBrZ9mLviLcd+UCL66traiYeb1+Opnbn02x5zJJZImr6wQt10Vnn/6HctQuspQbgHv/OpRlDTVh7aqTcj5laFaJiHnr0Xdb25DH6EcCXX1oRkntcWQpMSSV5pIoZOYhgV/Kg7MvilZgan9W1sGDQWyFdmZ5Yza2ThoU7a+aS3JWnHnhFYE8gIVNc7yh1eUw1WFjQpn0yOjce1TThXn/ejY5n5nv3fcTXZ3a3bpiwtQ/FjjNcfilINC2rm7JrEP+nSuQY2vK1IHD0Ma7f7uupTA5zPXQCaGm4ZKpwX4tM5lIjSnZPZpJwjQPflTbcR0byVqyK6PcK89090b9tKvr6ochVvpJALS0PehRqGGfpNTU5E2NA1dQ7URstyk/de+VlB4ZZ8Xooz6yl0p/keP+tBnxHhMGBX5Gv2a3SXYVEKnEol4Uq7p2icNo2nqep+QHTQpQsJIcpR/TidOkCC+Hn3Q9fRRmlLaFWmDR1O8QgiBg/IAADdaSURBVKSFzRvXW5m7xOgoyV6sRb4rfIeOkvCpSL9mPFK7uvoUZOGjHdfLdpeivPwoEvv0IX8oDp0pPUaMVk9vsr/plB4U7620m3y1WE1J6/gSk4kl7XIvn8xheBNT3jU5CF+sPOY7WqaVA1/nAAcffcEaP55mcNm+MGth63InUh7y+cwcjBqSFw0Ufy1/k0uydy1DmkdR/Cez0svc0d1bSeZydO3fBzWUb5PT6LSs4ZRv7TWXdpJAMcqrSD66utKpWqPHR54/Yy5vUvSOUj1TWlZGp4cE6pmjVVR2B5Mcw8OUWd0PMVWxhE5BKKcTWfrQV7yjR6l0iHKWnoY+IQu9JUTM+dTyQjMJHiVU/5QTzkD9QycNyHndzGNW/rJ5Yd56wdb0zMlwdBOtk7/WXD4iO1mY3g0L5QeS+f70jgi0QukooK+jU8OPX6S349t49P1HkfzDJx2ELMHopDYOz8Wjdyy7UUtQWbQo/GDJxSfxONDGkcFof8qOBp5R3umTRqd7jAp/skcI71UrEcYOauNEGFSvibalRrQt6VQ/U9sSzWXPr0epEe6TmoZhQ6k+oSq70RfJGugvkE/R1p9yuaP60qyZw/Ut5PektpEq90CaaPV8nRm1ctHxMN8Rj8OXc/Nl2eCj0wyprSs7RAy1OpxShfoxw6gfE2mdJnvnZI6XfmaQbDSbZMnjVv93Qf7+qE5uSiNlybLfrMTCHcLnd7Dp8xqkj/MiA6qSlrz2jFR3LsD+pVGcjtGZlCWblmDl1Ec1T9/5r02o+SWdMqYGod5R/i+nPlnZ3nLqi5MV5bM+adQfpZO45KypviTcGeXGoc9h5GNyJvosXvV77XVBxP1wSfjG9guEV17IIYkUkzEe2hRF8IYyrHzQ2J1kCWaOCpl7tFebtU2iELWxB42bRFskxp7aeC6Wtk+qR0Vf2Ed9Q/QQ4480bcaXwiWWGw/q+rjLH7FwcHvHvrtrTPe1lf71uYtoh90F/lLzhAF1V24Kn+yj/LPvzh+tcJXF/iXm6QdOYaf7l6wuDvb1K3WH7axV7rvY1+21TvIR8VtAu3HLO+CHjnNm8MkA5yr9eQ9bu8o7vZ+1OM92koMRBXWX8byyan/le6F2MM/yry0Jc+4D7dS+RDrRxi5PzvOBExRCnnpzrtpfsErkD6c0MJ6l+5e/5c7ZiGGoX5n7etoUva5srXXSg0PYOUsLwu4EXV1W4F80Jz207DMW+Qu/ctqf3p4edZQeyxz9Wl5iez/WvEuAlN2u59Bu13X7abd99zhkLV7rrzbLrfBAOgXDgZucjpnPNy7NzPRUwszxl1ZTOXCVOdNP05f1V6v9axe7l5dFqxzKtxkoGRpV3gIe7d+UFzKfCV4Lnl+vMpZkqNsr8phRDpx/0+9ZTkykl2zGxuVTyTMqq6F4YlSOv2AvuZfqvZzV+yUPJKMHbCXfXI1Kfg+TX+W8K5tFfSEurQ6Zs8xfQHVnq7gc216Kx/ORnq7hnN8A+2lBEdCgXe7p67Jev1EZpjqlctOKECdohGp/Ij/1pvS9UGGQPKMWRJaeWn4NzS1z/grHckhf/816PdSpN9Ulan9B9Jn2y3VvGMxyGyfn32Cz2reQT6rJKzPaGrV9CvbDSEvBcIXZVkYa1+LVS0wmTn6nz1lCJ6aEiXBYaw/7mef2+xeNEn3CAn+1gShs+O4OSldbeSKm8kRey+mds1puayMvH+4Skg21u1aZDfRfQ7p3spRPt0Cg3AecqTLm7a3zVxflWSeUmHWFkc+oPtjlVu/KeTVLGmeIkGQ7+D3p93rQdjW2X6Ax9ECOQFpE8T/1AYrfWqGlk1VXtFCbEkLs6k1W/eJa57ZQm1RH44YF0qlUwfUfjXfek8uze0SLw42daPzh1F+pk07/QqhTb6qL1VPRqFyu/cpdHjcbL/sc6x/O9ItxbukJDypiN4GjeC6mY8Z81X1V7F+hDOrVIwH3by3wF2yiv62F/rXPW41GDg0aCk27An+eNNBZkKvbvVfgL25EZ1VUyMGZ06iQbb/z15qdAANGsXTcn/Anz+n4NdGwypX9jMDRVHKnJLQMamfGTxlWbrRCv7vIXxqUh9SGKfT7FoNlW10ap68KQnRyrfczKUPLA3H1eOBq//KQyirLHyFv5tLYj6eUO3ALli6JSHbMWOaidKJO/ntWRRwJyxVFdo5qemTOce+Er5AUJY3Nu0oFKefPUGb5WDWl46Omj52DZ4oSpUELHaYhw9qy/f6194R3SzPTjGKt/ja6vNFE9mgGpDJjXZLqouWR11PI9BeeUKMg7hqfT3U/a0vV+sw1v2T6l+da5cuxk+IB2+CYujwhZW4BtReirSnctNZPmyEGmNIAef2mwkAbJNqh9ySFlmz3XrGpxJLrEMxY4M/bWhrUNrhI0ayPw7W91WXFOhOKf76lLE+/ZwW1x3q7LNhIg9l0UgKYdltdlF+hYqmU4Rx/3qrI6s9FbzmFpdadaptiCFHnX/+wuwLYqCeM30X5ITqmJ6Jpe9P9620dSTnfOJYHErlyk72sL/AX25sMI2ouv7H2LWT5LJbqANPg5PgblaKkmpTc4etlI5y1puLGJdJhHnvWzySlgXmENtV9OUsb01FX2Yb62BYyeqREq6ut0/5Ud5GUD/UNpzu1r0BKjqA+pdNbDs/qAjLSpq/SpcqYeY/7Bw0jL4jf5UH9KOGl7Jc6zlDtIs93rv1eD9quxvYLNIgeyCElRngjKd0L6IM37QRj9kmsusLvb5E2xVVqOT+k+wsc+kXaq83eJpFC6a3I2j2R19MfDh57mlEmhdWKMB/Q5HJjb0eVsu2mKKksUOo84V9euI/npoCqwbv8IactjQnpCPLCRugCVClju4tJUVJZ4vaVnTS9LhXtflO7Tp19W+dAtit2eT+a6CkZRCv09AVadIZFg0MVOu3a7V8xXx20Zj5v//KsJhaEptwmW4HSSZPiVUczbFbl+fNWr/XnLZUaB/oau2K1eK7/rVpvDdKpQNPGWGYFJTLsolUF/krSqAmZqytL/eufX6DYY8YK9cxwpTGR/JqxxF+wq9L0R1ZMBQqaw9dDOptc7jRo8qwu9FfqDOtO7FcUXJo/+gBFrlwr31Jlznx4hb94b0CWutpqf2nRev8imyJF1mJHk+5yZ1DIk67LI2YNGWkv5A76Yu5Uichns+t5aPlbFH/xqUl0XmjGQ2G+fXaInaM9D1kypd+zRMsHK5Yu8mfRgMzoMHuRd4P9COQFMz8J7lulQaOe78RsKOOqpHTJE3k4X3WXs3iFlH9X+NebMzuMN2P8VRo0K+8uMfIc8Q41Kylr6Vr//hPVlMer/fuLaLCsxymQv0lDvtcmlxflzTbzDKTZX1+038xrtJkVKZLVekbpMJOiVS3zmf4VbxVrecws89pMPYsHxAwhOSqe5FPhYaV/mY1Z5sNioCCYik6w+MpkDbgNruI3aGDoBVs5jlGZ95tpn77UXqdbdsH1fSAQ54Fopn8Z5UMvvjJHFRUHx7G0vfLsn6DBgTQzKGhWm0P4IR+ZZdimvKD2p3Cvno8oL5XSDKxMW14LHhypdafcphgyqO0vlRERTploW6h+pnrAqY5bJNVxhj/2r+oiTy/ItbW99nKIJVbbTR7JbU9QeSD7/fbO86glQf0JU55Qhlj6Fjb5ZJZC4abV89QnWbHU+phltE9aX0VrB6yyFDqudUHKa1GPFH+lpz/V46IeUdOfBr61oSIduZ3cl4y6n0n5197nEXkhto461aeGwpb8ELMpvL3Cl49IwpO/yuOevEheicKNKqPZZhjl9FygXxvcH6WyFRSK7Jd9nCHbSW1lLP1eL9quxvYLRNy9kCOIofODYKW7xdC1Ly61G03apjiL7PefkD7i2vtE8jvN3CYFf7TK0j62VAcaJX8lzTQJmqH/sNOHPMrTNmWz+JCh1aNUbsT4w5j1Y5YrkMJIKjjKOMBhjFO3d72iFAO9v96reqpR+YPibhsTanFswQ9XkStKKHHo6DLHhkQAXkbTFStDtAVWp0aemhfI0WvnGwVTXroj5/ZozDSDQWqgxIwBt6mtaudFUnQYwdmVBfdY2j97gQju6BmeWJ1zMchxu4qXygOqTH+B41IO6gBS5pY7GWolFdxgiK/pTslSuUkd5Ns7yYWL5c5upmsBKs0PXlJjdcRUebJyrc6WykGtFNIXxzarRO7ABSqPdL/b1yo17eFXOYqZApKCi6ahu+UhP2lkZQ286o8af8Pd8q1SbaaA8CbvKhWkNiBxST+a1rlMrpBI8eaYV0wlp5jWqgjs3Y3ZoBl1gfMsLqcZGAuUKcm6SKSEWCLVA5m2QbMX5U0ZVM+xKy0tNEq+HLXMVG7W7ZJnveWYyjLrzYBJdad+PfEmn5KaxKbQXOK2DM7hy7t9YOgFWzuDiO+/Wm8qkxWllPBgr7WkUp3GrvpeWULKW5cvOQtIIdfs00Eb2fZWvmXV0faO7/58S5Hd6MGcQxlOd5itqdGmr/dy+QSschFIDbXutNoU3VaeViwGsy7tnFhap85otH+Nts8KS6fZo7YvOUb2oLpebnsXbbLqcbmMB5WHVRZjrV2iuqJS+fJuBBDtb2R9C+GrLJ+dpRmq1LkNKjumI9Uve1yri9R+xbL3LEaSF9SRUevn9EbMJJX9bXQ/kwYggWXkVjtkDkSoo7420hlmyuwU+8BeljhWc+jyEamv8tKeUGkeqX+qO1VGjaNLfbBfqqOEO3s9RRnGby3vtvOU7QLpFmu/14u2q7H9AsHQCznUtAi+E0r3JS7LysPNpmq2NiVYbO2JnG+XbHKpr4XLZmyTRFiKojXE2LNAGV/Ab6+T62wzjR37uFr8VIUsJKWLMg6wKUqCl4Bm+QtdqmoNeJT/NTp/6Mu/FJ7aWEaUb/pwld+8H67CK0rEdCyaQmsM8sxGQwhNMyTyNtHU5LCNPlVkxoDMlmA0ocu/wtUuytQh53UlK8yOsgBq/6pg97FgvqUQcOo8q4MUfQ1nbaHCw+3rpBaWXFCD4q5LU6fO3lAH23aJxaDG6viqX5jtDYZ9hoPsl+o2M1ealmyXx3EqpOWX1TkJNFJWoZfSnfJLqHgp+wyE0hBbwQaZ5M6gyKchK1B6u1BWTilpo8q9KFRFTP7IjZrCUWncA2yWSZ1rewS8yrtKBUkcHL+i6oGrboMHEcKZzNVKW7v0jbyXywnJ7F6mbEu5gmZVWXIoykxZCWTP325Lz3Sv3Mqb3FiH7OhTeNYAy1IUK3leUqBYMTBMtA7fqCOJjdWJ9CqfVvqXkL9G3R4yLkIkSeEg3lEGSx6xNWIe7a/M1J5X5fJlt3MKpzpoaanFKHP+8qafDupJ20vl11xGGly+LUWbffDhRCTMM1sZhph1EeqV6kKpXNCUe2n5oTowsnck1bZLbQMdAiS55JlbyoDQll8XuQ3sdW+VKfVSp1SuI+XyUGjrEGN+nqkodZA0ukcyb6X9CvZGls8t78ttgRwHu2+yX6o7tZ4KW49UWkpNbcZu2H6kXRL7vVQfBvGIsp8ZpqO+PFxHXU4beFC27FG19S3c0jToNdsD97S0OYzp1lZOlT0M7R6q7XpwX1z2y85TthN1tEf93hbqF/htdVKofrOg6NY/sRPW7g2lu/QRyWj3I/ngbfjZbG2KEaD8S8pva8sDqz8lOzHNSjkUeaOp2iS1n+y0AsGUSTdYEwRILmXMY8vPUjtj90Pc15XISzqtvC/X5/IeJZVbZfeB8lLq0Yw+Qz4v84eY3d7SH65cFSXalExp7xCrMNHyAVozJJZyRHxJmTXdnuhkZ2iNGrM/hSHLenN2CskZycwE6SuKWMri9EVdbkxkDppZ35fECD/oV4q7nFlld0pFF3LApL9FflodP3naqlrAlA6hHKBuljXfcodH/SoUpmIRftmmGsqNtjozhb7Wuc6moAJvrMWNscOkplMEctMXQis9bUo1kkFb/kBLD8Jdle9ZiiuZo72z75b+hv9e5V2lglQ2VzNCkn6l8geXDp3MVU5byZfGG+VyIqYQuq05pZCUfBtqo2X5q7PUEHlV3pRpy6QwWLCq0F1prC1foSmTct6Wp4/S++k0iKp0a7Cog6OVD3sF5UU+VWZFhWYfSGiqZ6RpoXKe94ptrBnKyqvqNFThn2VHZT1E/goKu3q/N1+Zgzx2fuBp26sMqKhOlPOfbBdJu+MsrvVUKcOkoA2jdBAvFkgzF9WBtdqWKfWObSBhKQ4tUewmeeaMvDGp2smMYGNVauvERyNtWadUp1h5ixSHep20frE8SzTErBe7sJHey7yDFAOqJ7J8CkvJmdxuyGVacqIZZb8Ud9JsLvGRqiB806ks01EVZfZQI7iXeHjZz9Q66pKi2uozUJ3vNsNMksWtXY0gRiGchCgfId6yW7mmpd1hTPeqjO4zigOeh5ZF9iu0osQof24iK/0H6QOhV21XY/sFXsmhxF8o3aV9xeQ8HPkHb8NHOS2auE0xgpR+5TpbbTMkR4ZRKYdN2CZRWyp/zAqXBzXxlA9OtF+l0fezLacOu7GqsVcmbUQtK2jk+lyMPcRln0kfasWF9kJM/zVN/mjJD1dtqcAo19Edm/DkP41GxytGI/tx6Wx1cpWzOA+llXUozl2AqcOjOHKvphLFeiipaclKeKAjMY1Qkht99p6Pzva2vJ9Kx99qR9yJo8Mc/8gtHRVLX3sD14Z3UGaeH2U8BNLuWA6a9udwZaJw9X2hj0JzeMv+qLqmzHo0hY5MFEc1OcobiAcdFIzUGcYr+SiucBCarDPTKf4hruTBzkcvV5YUmm9l5WYhbEr3zwRVEo5X+s3y4ZwlyB6fjDZtZuLR361Gyed0lCPF1bgSO9Oxb/SnHe1mPIzxNzM3M7zcfSZIcr+D0kMSRzp+VhwL3bWHftAdHU1XQ0dyle0uo6OW6W9HCUr0v9KqjhFJuezxzBDH3zVN3sWcqUi1H6UrS5uQjKmj5AfxYB6N5JDHTnezhJSSzHoYMCXS0bpm2T5t2XpV3rqOyQLthWJez9w5AR3btcHdj7yATZ/RkXBSmOLccC1/y2nRYwIWSvVKybPZSKajW2fOfRSr36ejwemYYPMSx4iK8mE/Ac+DfOqrOmodDzljISb0MEN1MSTS8dpyzC1nXrG1fIzOVFlRqb+QimTbGZW0Z4xul4yuNruQoYg24p4l8J+rBq0LBin2rWvDM7hl/DA60n4mXnhzq3b8u2UZnalJ2l46mLByry7HnFT1CPKGGpSu0e0GJ4eom6KLR8B1Fm65JmzLgQk332d6XrK51DpS2HwabPBVlJl9Boxajsyh9kIR/E7qddlWXbDDaufLd20yHWc+nx26rhQu+2eBFpCiuMQP/59uc2ZWQ32aJ0Zj5uPG0ZX03tJirH9sqrN7U4LWbfCJo+PNKx2pIllC9WOo7U8dYdbQ2FRUbr4dk6GJ+pl9rsrEknf8oI466PACRbRnHrwFw3p2xMwHXsDW3XL8FWd8QwQyx6c1C4dY+71etV2N7Rd4JYeA7TtagtVP3II2Scm4lvoV1mHVNH/knmWgD97wl6zAbWLcIfdNQqZUS7UpAaE2rbrflO7Rm8eb5vCGpmuT4CvHOxsMCTKx8EcR5PVBU5XxhzGOE+2b2XLMWIGp/Q1/XX4TUmmeDLVHJcU08WEF0pyaw87V2PTmk/jOjY9KnixH9TsLwrd50huRGZsmf3Ttn46cf18Lf/V+0PJIRZR3nr0fE9K6oU3mQuRvK4uoH6F4EOZGKRplr1Clf6ehtjDepEZi1QLk0ICrj1MCGM5C/Iozn40COnWEOnj3UeNmXOPDDOwNd+6/PtRJg5NnbkzGM+6OHWy6uVQWibhtVSk2rRmGldJby4vyMD6aDrf0rmykvoR1PTsTHZ+1biMxdVRSMZI3Am4Su0oDTvm1RJfnshubuaPLwDZx+G2oLgKmjsk28wCoGnjyV/Sn+5E5ZwGy78jG1OvSY85jNnE0JYf9mdO9m9yG25p9JVj7Xy/g7qfklDdso/tNFkog16uJ8q5UHpyDTkS3wWSzw9m2ZZ5WexMs8bapZTV/PStvndOw4kQxul43Gs9I/FY+dT9WPqVHYVQWlj2Qg8wZU5HWw57+VK+spvqPFI3Zzxo1JJWOPz6p/QV8yMSCpdnI/lEm0oe6VzaNyqdy/eFSju0JkpoulKzBZcIztvYAI7r34eguvYsxIzMwUDPfIztSbGoXpUVI5aH5js2Q0BXpP8qB2Cq4/LN3sPLxR/HkBiPd3sH9WfRHapTSc2uRJjO1eeN021RtL3zVKNTzZuY11BmWA2+ohKGiz6S6V7GT3cVojsi/BEnJ3FkyRxrmYGqzI3FLGka5LrDesdo6oRj34sr/1UxLkaN7mE7pcMFfvjopitQp72i08NLjUMZG4m/qfqbRUc95kAZFr6zEzF9Z8RMddfFHX5Kx9g4aJJESSE5xuYsXCkGz210M+dIG1a3f61nb1ch+gVdy+HavRse0bFvsAx+8F9yThbSYB3Qt16bgdAleeFaPEinJpw4Kil7IBxFVMbG0SdTeSy0JukYUUCIcxx9y34HaxIi8ChlrslxzP641PooYbkfRh3eqp7z4MG14qf02dZ/D+HB110KUbMjDkhvvt9pb8eGK/mgpE+rcPmQowkZ2Y5tRYiV14PUclNaux6I7YleSCH8qpa82qbbCWV6yVZeUvkDY7HSLyH8UrV7kr1kuV6L8qHWnmHw1SsMn7GpqvWj+fCh7066cUkIOe1O8tyasm5Z00PWq21Asvsa+l4dFc9KDRHlnzTPIvpFmEXRsg0dfMfJDkLOoHpQfbWza1CD/kdGkRBjtiZJECC93I4Mi05R5Nyiwi/mBx+WtRzqW0dfl/UUFWDZf/dqoUd6Rj4V3ztS/Oq7GUdEwyVdCH9z2m2JU7y1G3tJFcCgdeObBbIzWtOWPYmtQ/eRxPg2rWNOFlxtzMz4eszX9jdDQUE7KbN3t0FS1g0F2a/UvPunj+6h2EXovO0vVvjIXo2Cp/DRglmfJBdu6PWmatheHSsxORHqKrCogOaSZGRMG2ezcxIz4ebkyWzCi1yLNe7Jnkb5DMwJJJdliV8nj1+Lu1wy1VIuJ0aQBlxeZ30FjCie/pHEzSpqtnyk66r+kGWaVBcHxNLodiTRTc4ZhTbN+9xkWxrMIfynfln1Gs1fpr0ye8Rrh6+GcJWsK74Cr/DdLYv4S6ztUhq2anPQ1197GhRMiLuw9brti7hd4LIeNLW1UjRWP3Ra7kkT412JtClD+fp4522LB47dEOZu/mdokG/NQt/KHfUd3kbZvji+HebhjIZJ/kR9zmXf1vbnyh/bh6j6sPVeJZXZhPOamdHcTO9u/WK7EsKSVoB2QseCOaDSQPqx+4BYs201TK+mrbvleSxEwc8ZMZA22dGQ+064E1/YkuzmJ8O31IeuPeci5yi6PnYbtPjENt9BU9nyjs/zwWhRnJUdecdOgZXx/m5/abQ1emDLB7HAaLh6dmonxlcWY2sd4EssvTWO/mQZYGwxGi1BYcos2ZTUS3+qoyz/6qkYJEDoYK6lCuwtnKzL1dbdpf0tIZX50XxkKt25C3u9pqpT+xVN48SQtXyg5Woj1vx4fzseQ9o1VupX8MQe3PGV8LaagRuUgb3EOxo9Joyn9OhSxHIKsNM39iGDNfUgB7ZZNlnftAV3s901T3lKvmooF4m+pWKJVjuKiQrzz2gt4Zo2Vh94RS2s2V6Oy6D70UWpeWgE4KB23/Vr8LYFYClNGy982kbZ84bNGvUDptuFJTEguQcGJ9ZjaI5COnuRTuWMb4YySyhJryYKVo5qGreV/sMn3+WrcckceEkWbctpaxolnr8XMQwHFlVZaJTsxaJ35FdmJgUf/bOTl3hZdh4uWrJRsWEtfMu4OahNooaa6vCVYZMcn3rW9QNlrC5H9SpnW9vr2WoPPJ2/MRBktv6FYB+otYmJcj07thuI5WfDRs7SbV2LZPcEqO8NtZL+jXWZnhng7wryn+BDpO1RXe60KUuRwuMkrKkVifrbZjqy8bRjGp1UjZ1SU/RoHv+PxUep46rdIJWJtUTGSaaAf0UVfEfqkR9vmt0w/s4YGAmt/v4Q+oEh1sx7JVHPWIM3UlPLmC6SEyBkebfxE3yIPw8bcHfB91ArUleQ0Wskrp0diZ0lBS+1NYc1tmBp19vQh70fDcLfej6O9ZnDfKL2PJAcW1+amabui7xd4J0ci1Xn2K3tEN6rbl9EsV5rBPTTycUN8tCn0UWixsUYgC9nXRS5/gEPTtknWDDKpTNkTwHbvOKNEdiPVIfLjWM05qwpxX+f1GJ2lz4b74y3IHlOMtY1s71skf9AS13fW0My+udbMPpMLLccNzv2mbfQG+14tdZWlfhoQ+smnoD9tE9eyCDZxpc3WaOVp0PtOfro9U08PsUvpdi9vImPfKd/tnfDPldNRguJl38zI5p+8mZDLhmtum0vZfIrgNrr4y5v9yJuyyfLYj1V1FkLaUZ74uG0W5/wunXtEp0sssx3HuT6CbGb3T94MzP3UFPktdQMmU27bJptZz4c+rrhSOmJT5mjfzNX0XxbBNEeXduZrDgY5XcNtIKvKaN8kLeC5zDV0HByEifSRXE5cNpU1vJLlUXkbLvRf2U+p7Mn5O+T7Nu9iuqXjJtculY+ajmxDMTMscfpCvnrkpnkEnFf5VNmEUd4c2pQiyLDWZTPXZmVLUpU+r26Y6daeuD93zvNBERYPwm3qWrTf8bVIH3rS9opN5RxPNIiiPZbKSqSya+7k8kZl2NycLoQnyjGISrju9aFSv4U7xcAIWzlhh05K0DdFtnbnD3XSluEJ/VJ5LFid58+jv/VFViMl10liI1PzWHo6oWGJ0meIciNhKeggo8xbYRfkUtrI2L19lrmGqhfluMrulBMCpY1ug6Xx6Ekz9zNDnr7w/Fr/ftvmtcqpa6I82DfijgCDfKKg2qdxLx8ReGs5seVPOT0tR2FMyqb4crmPTka3fBUIXfbLXmfLdu7524iFWz5v1rYrRL/AUznqvDm1tMXaFCPRxK988Mb8AtnG3SzXkU3YJqnHEEeyIb4Qudq/TGqr83YFKgilHnU5YMQe4dL31mptUt5bxdQDCFxyPhf9n0X51smmcr0i7MKdrGQPT71v3j5HuE1di/faKmJV2JjuXE+98TfyaMLit/L8K3KpQ7HUOn5X7K68fJV4vsK/gn7zpB3vMWOR9kyze36Fv9jqg0QVMfm4X3NAEcKHOtp5mFb/+zNnpNNpPnlmJjNeqd6qDlK0DEWFj75HmoqgoB3WjZfFr1xQXToPyi7X4mgz+X0nM/m5iHY4zpyRSbvvLzA7feqgN/YGQz5GE3Sk237lpAQHgdxOvdm73p81KtOfNSfTn0knehgF2MEH4qR2KGMZkMsNbWRyrzfTUHRujY69fMQoIjgNQq501I5GdA24V3lXqSDDdKDVPGPvgARSSuYaS7o4prf9oVxOmlhR4kl5o53Gl1D5y5yT5U+nussYeNmjZdzLecRQAq+nU8XE+5lURoxG0nBv/1U63Xrj6Vk+VY7bs07tsMtg3iuKFfV4YE/YmgFFYKgs9udReyEGrrJyPmfxcn/eKmpnqK0RdjQ/wizrC5bSM91uxWramjPMRcui/MsfVpVdhuJFOybY64a5kW1vZcl6/3LBZNUSM86iflsi2mPR9opfxS7Lv8y0W+5fKykAwqBRrZUyTCeC5IdtyfzySV8RDwTr1PY3ktNS5MGHfLqdfIJCRG2GfJIWlplH/cp1pNoGECKbQlM7ojJcm6qSdb6Tebv0LYwXZfnc6nC53QiKg+ER/cp+Ke6U437hD/+xo86/dj71YUQ/hvpg4epASQTT2OT9TKGofmu50t8zyr4oU9oxwW5pKacP1T9hT+gwYxUwyOkhwszbK/egoutb2LxWbktXyx9G6bSiaE4Eo16dfAIa7lkr+R2djK75SvNR9sveT5HtYu/3etJ2edAv8EQOKRU0I52aV/penj9HGphb+Tjdv2RVgb9Szl6291usTZHkkE/QXKEcJS85shttZbDJ2iRRDqSTsdS2zC5U4F5RiMiK1KhPvZHbw3R/oX56jlJ/BI0DKhUljTgauiB8c+0cEXraHPljvzgmWGJs5V/qawhF9YkQGdhV8sgs3BUlxvthzt3WCphxrJHxjvwrZVSlURVuQtnJfkRhVjs+4RJfrWCDGjLlKxQ1dNLRxtVF6lnUS9yOQpTi6Pp131YwXP3SOSgN26jlZmdNHfTG3mDI6SIyY7hjHuVBoHBvdsSUDi2lRRhF31ppVonpRxRpLze0Qo4F+aG/8CpySx1NpYKh56GuatuZ5GoeV/NXuDh5lXcV+YMqSHtsZBntHZCAW5lruDjYfY/4Xi4nTawo8XtS3tSGccmm0Jl7v9QZNfKI/DU77FHm8tcUPU2VdG5UPqVj4yT5RNlZ7naMd3WxdDR5QPlgxEdLa0/YRpxrFIdWHCgf2wYvVh4OtlM8kW60hlmqkwQX48/1WFDp/UYbG9v2kgDmIIbyjHpJ5T7ITnUZ8Z1ShgUrUvrb0kHxSzmWmgaCZXJHR5JPblN0D2QFC2bIbaASQuCG8qT8YUNpF2xHDUfT1smdYSt/qYpDQxp7O4H5a0N/ODBeDPUr8w5Tz8vyudXhcn2ilGmbDLJfqjt1ZqncX7J5EbhVlE400yZ0FerohflQYqHKRC5C2Zke2Axi9tjzi8zybpR77XfGAv/araURpZ+ioBN9ktXWV11biOrtCTXP0uaEtvBClw/VszB3Sj9NlFv6+BaqTy95V5yrKpBVZVd0MrrnKxGg7Je9nyLbSf1PSU7Z6JrPPWm7SBZpMBdLv8Cb/okcY9VcWVLgXzJH+oAttWt0sqmfTjZVX7DdNWubYoQtlWFN0Ww8D/ervNe0bZKq4ApXn6l1pWgPrEvNz+HqUftHNKMalfO549jTNr7Vyn2o9toSMKTJ0/wRiaI6dHYNKWukluEVJZJPsRQwObGWbFJVVrJd46b+SELapjOJzlqxkXNkZ2QuXrVAaQjVLyDV/uWK9jW406cuyXFRyiiNkPv0y0J55o34ulLiLHR1SZ4i86K3ZKZqAXPrEBkYZP72zkWxbUr7CpevjMWr5K8RgYGEFa5aGWQudV/CIrSr8ldftcE1JA79Kze0RsfGbcBnT/vlRRZv5Us9csyZJvbQ97+nKstEmCrH6NLDPhUv1rwrp6tjBalERJbR3gEJOJS5yoMDxZvG3igNmrMcRhCyPCpvw4X+K/tpG0h4Ud6UMkKDNddBYW2polygkxE0AVXFWKgveZRG86WOjd5p9i6fkjj0JWyB1GESeTln6XqaTk6tEDWedbWBL6tyGTXKmD0NvGBrS8kIbqV8TLPA5FpR6WQrimUHb8M0zMvyC/0CSXNfsbS9YoBoKAjSF9umKkt2kS2vjCDGcnkz8tKcFf+vvbMJjSO54nhtSECGBCRwQIINRMGHaMnBCizEh71o8WEVCESLLxsIhFnnlMsi56CMyUFoWTDKxTgX7eiSRb4E6bAwNhhGucmHDaPAhpkFL5qAFlpgwwzYMIIIOu/156vq7unu6fasJv0fkKZnprvq1a8+3utXr6rtfpzxRTeC9IDpUJdF6kXUJ50X6hRPDiOqSVE0aGw+EcdeNEKyfU9fvtUQukCW2nqiR5fun4a/ZhmTzJtKfxwIU8l5lNG24FSlfBGWXra63mgYN+ahbDIts++bEbjrSRFbVP/aeJM1lD4UQzuSshexM0dHj23bR93QTtAESPpA0XoyvJ7HzNXNfdtKdETwzH9Ds4U4ciXqRErpH0nyJHxvHcroM+6XFOWYYPNxEsPnHbtxW+gkLlfEvssn46h2pY3hkYmUfPnItmK23zJ0V1G7gPmWIQenM+o1pCXvewmRks42C1/qWtRJS+iNiegUrwB90T5zjZuT1ElGZC47Htqx0Vl93Z6jvrP3TK8pcyK+thMf+To8bWmRtHISQLbzpPuA/nEj1MEkR9Qhq8uV+qms9pHiqN7L6KhOlTfjCbkcJX6a3MHoefI6YIZMg6u5DlN6u/QZIwrXEXs7mL/5eY3zroc0ucYYR750Ti27b1l2+3DfXhdeX8fgF9EinKfuBFH2vtGQXbn05SKxIbVmR72+Ztc3t+z6R1t2S4ZSktGjGY7Ec428u23aE6b/3LI75AV+QGGq/s2J+077o2iAylMYbGRrhgzLc4+8zad9u083TVb3yKYN/1x5AoeS+1kaYqbhpGg2Zu+wbZ9QPVj0x+VqRPbEiTqltGImfPAVrXkzF8jd79snjjfdbRMBS3PJFRnXMoxfkWLmjtl/OXRuGDtfsEfeSMNp/0UdJWQOkMMokMtLM2/bzTJAhghlm4l3UIQz9W6Z1z6q21sb9LfTSjSmw/QzHmn9JF4OPyW/npmTaej45zjvMk3DUWKX0d/II6+3NQrFfkjjzDN3nDnptu39nS3jHBmSrq9R5fKs3+c+f2Jb1OetZx27ddCIhMsGztHS2qlH7flRcGNttkH9M5VTlCtSB2Ww1SoywwcyUoK9IMzZV+kEMvu6kXRnxxxjqc07Y1a2GWQjudI/5tG99FSOoO1FjEuxXLKWdZY7rTR+fwv0gT9G1pwZ+D6Nv6zLjsw9d6jdR/W/HJdiHCUki+l4cMZp0i3Wc9JPp9R3Hpo3fxQpFecESWqv3I9Z99J4H+g6b0w2bxKyjUl6mbhPxcqTxtn/3eftyaSSbAs6X8on9bOflPMuo9YozeVb6/bWZt2ubzTsE+EclGlF+r428+/V/y2ydY477pjGY+J9fYKqaNg3y16KnUntQNf7rvz0MAO7UySs23CU+2Pp6m1abv5w324dtuivSUsI67H5N2InzfS2lFinWgWP/tB5aNYLl3/VrtNSxf3PScanLbt5sGfXb8eMkTTmRl1I+WTM3q5M+yBfPtI+irTfpLEgjx1e2C6geipDjtHVHf5KSz2bO/VAV/jt0xmfvH0zgpMnrVOcjKl+g/s1mpCOdT4EEuoH/hg5IZ2kb1vgjh9bZBOeWKT7nHvPvYiNFT/5SGUW+8A5deKMoyekk/j+i5xc98xJan2CSLbzJEcJw5L9jvOJl0fHmviplPYRv+fJ6u1tu5XXUZ0oaL4fxnKUBFnQhkTcwcKOFY2YCMPLo7+17/vOluhvQR5jHpiRF6GMnvL2jQs2CDb2tUHevLkfaUgaM1umAcXit+OM77gGGZn9isoalON6XKRMiQqDBSd5TOdNkL/gp97b0jqtqbRbxoxdbBoivb2s6w9ZRvGSHb6206QZjxH8/PwSZjxPhBNvpLzXyQg8DL2yuuLNVx9+UYq0XU4j6wDp5idlTOiHRkhqyCPqGPXLkPvdV2hOvSTI4SUqw5l13kauMk3TUcKnFu5vZKAf6rPMIZv4the5YSXFEmecJ6ZjOAHKaaeCG23+thdxyMqy1OwmO3hPQ4debB2UwFZIlX4ollD4e8AEF4mlF7GyBiey0eDrJNILjmLWXdHi1G/3MIPulRFH5pgsDTrzt7ELJvsbGXWNjZgbKn/cFe/xERxyXIp3lLCcZmRgYr+h/JKiIp3y5mmvpDPM6DGpe0a2MboB0icgEiJRM1ZCVttCypdc33oEqGQp94GRfSS2rBSVpUXAibqWabrHFLkQ6wjICMA7rRQ7U7ZfchBs0w1OyiqE7EIOT+wHCZMrUSb+eFvTJ9O03LL1D+2SDB/iomST5XPlrN1PmjDJJ6Nso9F2JdN6jY4SZpRnLIi1w0uwC0qSI0OVh6c40ZQN7Ube3Atk4jqFpZN7Hxn2Tyh8wpHs0xPSSXns96RIEbc0NI5muYdxxtc1+8hwIGW/D6C+ZeSTtv1DAm2a6A3vhUw9k93mkH2dI5vTl4MlyVPW98UcJb4Ufrgyh7/633nvrU3fWIo+HSbYIyLDhplGstk+9ik8cJSxRpvLRjaukzOT3ABTZiBZkJMD6SyKjz5p0+zWquHVjNw0cWLEsqU5n3yl6b8v29sH4c7GfEn4kg1s2W6K0ODwnPBIdqRYWfhU4rFPm04mKcu1jT3HaJTr8+KWzVhf7Edmxs0012jmql3AMtEUrbO8YUjrjE2vq8+R9l75WxJHl5H1VN8gUpeXDCm/HsRMnM5Rr49cmyWN03a9qpX1mra+UQ9ppbXJcWHynC5tmrkVmUkKnx7hZT3+m1RoKXsbyLam8zayl2kmKdhC/c3Nj2f5zRlnva3w7Gzdbh4n3HSTc2I/MjsQtlMnLZotbogdzWVJi7dTmZpXJnr6WYtmD53NUHnj7YdNJ7rNP1M6k6NGrXdWCWz9/FLfxUxGZJ8Jcmb7kT/bKXvJsOOLx7S0ddqp8kzqhBG6NwynJ11gND3ria+zRi35ylkIo7/x1UejdNmt7YTQZDff0HaIyi8l63db0QhRcXPOG+52TMNEJuAfE8vmyH5IkVSfx+8xIXVPEPHlp2u+0ybnfnt0+nbS2GRel/A5i20h5YvTz0HSpO/5qYeafMRSXhO2q9H7l3VoAmGUE7h2j5agiEiVQIYxDsK2UsDO5Fl8Gmf3Dil6LEkPjiGbvISfnBPVo+ZYX7MbT9Ij2MIy6/Uj8xvr+CXtz0IRg6PqjtttLdVe0+2fNHtUtlG5hMAtg0zLtDvkb2XZvUXscE/ionYBJzNJHeqK7fxne32dIinNbQvCvh8dk1+LTiFpZORg2p4vogju4bekk2y230dNONFDOJpfZlFKNHlDm0mb47G0L9fvN2OXnea6D6Co27p2f0p9bIwxsJz2Qf2Z7jXqKRsMR+r6NX7xBqdN0P+/X6/OVPernrIulLrCJaXni8+/uagW53M/MH5ynC7OVe+rrjp7fu4JPaNmry6opR/Ts8O/OzkxgpyI4TEx7L8kcQjizMysWry2pGZzPud7cNZTvW8G6pzKx68h/c3NUl1QuWYLPvi6+9mH6q3f7jrp0s0bPRt8yTlW5wPV/bqnBq/O1XA4VFfmiOPPSPaMHM++7qrei4GTFj+bfnaSbWca265Lfbr+l9HfBjTO/MdSg3OvbVPjnpvjfrJI/SRD474YqB6308G5clKgtqp+MEd9Y0nNX02/vkg7Pae+4b9mZiivlL7R/ex96msHziUUwaGafl/zE5HvZbCV6eF4ughQ/Z9Ru7YGNO7TiD9UbptenE9v03kKOjijcbprqT4pqCtO31lw+t58XsXC+oJ0r9UnXcHKTrHuXVRL1y6xvZAH1ITPdccli3J1rC818/15tfhTGhNTxpgJiznZ7LhPkC1kndFYT8f8YptqgWyLLGP9pIQ9J53W+8ZSrB88KR07lO21mSrUXxm6q6hdwJVdhhyTajRl5nNxpu5+b0F97KRZU53/NtRSGe2O+98EdBL3H773cO+bXN3HfXzpzZy6xJG3qzpW39NJNF7QOLpE42gl+mGZbWqMtKrhKBkDDC6ZPgKJjpLpK8pUSXz+4kwNLmbGGrDZSJy9WhGj6xLX6uGf3lDvfuIKmOr4UAO1uzqnPnzsnk8RHGrr5vwlLh1EAwEQAAEQAAEQmCYCg3/+Vc29/QdH5OV7bdX+I8VW4AUCEyZQhm9uwiIjOxAAgUtD4KKr3v/hW+pRAYHSb8wLJI5LMxH4+c0tpT6565z76Pe7qve7bbWYoB3O/rEbOElosz/1y7fhJMkEGSeBAAiAAAiAAAhkItA+cJ0kfPKdX8NJkgkaTiqdwHdKTxEJggAIVIcARYQUfVneUpWi6eD68QnM3lhT9ChZ7/UX9ZNf3VWH/z7zv3DfaUnC4ad31MLKnfD7jXV1I2cUaXgxjkAABEAABEAABEAgSmBlc6joaWn0N1QfXIv+jm9AYBIEEuYMJ5E18gABEJh6AjPL6sHxkeqRIhvrxfsG/WhxrEtxUYkEZpbU7tNtdXDDc4I8/li9S3/06E61eovWwb7qqYPHx0aG66rz5xXjO3wEARAAARAAARAAgYIEeE/AvHtMFcwSl4OASQCOEpMIPk8vgXPeMM57lbtPoJ8q3mMILF6/oeDqiAEzZV/N/mJdWU8XVO3Gb8RSqmP16O+mg4QW3Gzsqd3ND9Q8NMiU1TLEBQEQAAEQAAEQAAEQyEIAm7lmoYRzpoIAbyrae9EnWWecpx1gN+ipqDYIedkI0HKq7r+O1PHTY9WjXdb7vDTq1YC2cJ1Vy++sqJWbK2qp5CeWXDYEkAcEQAAEQAAEQAAEQKDaBOAoqXb9o/QgAAIgAAIgAAIgAAIgAAIgAAIgAAKCADZzFTBwCAIgAAIgAAIgAAIgAAIgAAIgAAIgUG0CcJRUu/5RehAAARAAARAAARAAARAAARAAARAAAUEAjhIBA4cgAAIgAAIgAAIgAAIgAAIgAAIgAALVJgBHSbXrH6UHARAAARAAARAAARAAARAAARAAARAQBOAoETBwCAIgAAIgAAIgAAIgAAIgAAIgAAIgUG0CcJRUu/5RehAAARAAARAAARAAARAAARAAARAAAUEAjhIBA4cgAAIgAAIgAAIgAAIgAAIgAAIgAALVJgBHSbXrH6UHARAAARAAARAAARAAARAAARAAARAQBOAoETBwCAIgAAIgAAIgAAIgAAIgAAIgAAIgUG0CcJRUu/5RehAAARAAARAAARAAARAAARAAARAAAUEAjhIBA4cgAAIgAAIgAAIgAAIgAAIgAAIgAALVJgBHSbXrH6UHARAAARAAARAAARAAARAAARAAARAQBOAoETBwCAIgAAIgAAIgAAIgAAIgAAIgAAIgUG0CcJRUu/5RehAAARAAARAAARAAARAAARAAARAAAUEAjhIBA4cgAAIgAAIgAAIgAAIgAAIgAAIgAALVJgBHSbXrH6UHARAAARAAARAAARAAARAAARAAARAQBOAoETBwCAIgAAIgAAIgAAIgAAIgAAIgAAIgUG0CcJRUu/5RehAAARAAARAAARAAARAAARAAARAAAUHgf4Et7IaxNEpNAAAAAElFTkSuQmCCAA==
好像视图son.php没有解析,原样输出了。parent.php 跟son.php在同一级目录中。是不是我哪里写错了?望指导,非常感谢!

kuing 发表于 2014-12-2 02:09:00

是不是不支持嵌套?
view1:
<# block content1 #><# /block #>

view2:
<# extends view1 #>
<# block content1 #>
         <# block content2 #><# /block #>
<# /block #>

view3:
<# extends view3 #>
<# block content2 #>test<# /block #>

controller:
$this->hulk_template->parse('view3');

发现当解析view2时 直接把<# block content1 #><# block content2 #><# /block #>当成了一对标签,无视了<# block content2 #>

kuing 发表于 2014-12-5 20:15:28

Hex 发表于 2014-12-2 10:13
对的,block 不能嵌套,你这个是什么需求?如果有需求我想想怎么实现。
因为我自己的开发中,没有嵌套的 ...

恩,谢谢,多加了几个block变相实现了。
本来是想这样的
比方 主框架一个模板文件A(头尾导航),然后用户登录后有个用户管理菜单也一个模板文件B(左侧菜单)
最后“模块内容”嵌入“模板文件B”再嵌入“模板文件A”,这样感觉修改起来方便。也不会有多余的代码。
不过现在也实现了。感觉也行。
如果要使这个类强大易用,楼主也可以继续扩展实现。十分感谢。

yuzhigang5460 发表于 2014-10-11 17:10:41

什么情景下要用到继承视图?
为何不使用控制器直接改变title呢?

Hex 发表于 2014-10-11 17:28:59

yuzhigang5460 发表于 2014-10-11 17:10
什么情景下要用到继承视图?
为何不使用控制器直接改变title呢?

这里的关键不是改变 title

这里要做的是从父视图继承一种布局,子视图只需要填充父视图的某些 block 就可以生成一个新视图。

这样就可以做一些很相似但局部又不同的视图了,否则你就要 copy 一堆视图文件,维护会很不方便。

smallerpig 发表于 2014-10-12 10:43:18

支持一下,确实有这个需求!!!

bistpon1 发表于 2014-10-12 19:16:14

很實用的分享

kuailewang 发表于 2014-10-13 15:14:41

本帖最后由 kuailewang 于 2014-10-13 15:20 编辑

ci一直就缺少这样一个东西 确实是好东西希望更多的好东西 可以分享出来

wlyx 发表于 2014-10-14 10:49:36

的确是个好东西

lvhjean 发表于 2014-11-12 23:23:33

Hex的好东西啊,具体应用方位简单说了还不是很清楚。

Hex 发表于 2014-11-13 15:31:46

lvhjean 发表于 2014-11-12 23:23
Hex的好东西啊,具体应用方位简单说了还不是很清楚。

可以用于做 layout

976302721 发表于 2014-11-26 21:02:57

为什么用<##>啊,感觉很不习惯啊,为什么不用{}或者<{}>
页: [1] 2 3
查看完整版本: [2.2.0] CI 视图继承类库,可用于视图 Layout