更新记录

2.0.4(2025-06-14)

1: 新增TSPL模式下PDF417码功能 2: 新增ZPL模式下PDF417码功能 3: ESC模板打印,文本增加行间距设置

2.0.3(2025-06-04)

1:修复ESC模板打印时候,1D 76模式下不能打印横线问题 2:修复ESC模板打印使用,图片X轴坐标失效问题 3:增加ESC使用1D 76模式下打印图片溢出问题

2.0.2(2025-05-24)

1:移除esc模板打印时的模拟数据

查看更多

平台兼容性

Android Android CPU类型 iOS
适用版本区间:4.4 - 14.0 armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 ×

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios

注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择


通用安卓蓝牙、USB打印

1. 简介

本插件为仅支持安卓平台的蓝牙、USB、wifi打印原生插件,支持同时连接多种类型设备(满足收银台同时打印两种票据的需求),插件已经基于标准ESC、CPCL、TSPL、ZPL指令进行了指令二次封装。采用json数据交互简单易用,可打印文本、图片、二维码、一维码、表格等。在提供二次封装指令的同时,还支持原始指令,方便复杂场景需求。
插件也支持其它格式的打印指令,如tsc等,但是除了ESC、CPCL、TSPL、ZPL外的指令没有提供二次封装,需要开发者使用原始指令(参考厂商提供指令文档)。
插件可以配合可视化模板编辑器进行标签创作,然后使用模板数据进行标签打印,
请先使用测试程序按照下图进行

下载测试程序地址:http://47.107.85.113:81/testPrinter.apk

注意:测试程序上面“商米小票打印”、“商米标签打印”仅针对商米一体打印机,如sunmi v2s plus

2. 使用流程

  1. 确定打印机支持的打印指令,可以查看产品说明书或者跟厂商技术支持咨询

  2. 获取设备列表(蓝牙连接需要先在安卓系统设置里面进行蓝牙配对,USB连接需要在AndroidManifest.xml文件中增加

  3. 连接设备

  4. 发送数据(需要根据打印机使用不同的打印指令)

  5. 打印机打印

  6. 如果无法获取蓝牙设备列表,可能是高版本安卓导致,需要增加对应蓝牙附近设备权限, 并把APP的“附近设备”权限”打开-关闭-打开”,刷新一遍

  7. 如果无法获取USB设备列表,可能是没有在AndroidManifest.xml文件中增加 "< uses-feature android:name="android.hardware.usb.host" />"

  8. 连接WIFI设备需要在AndroidManifest.xml文件中增加 "< uses-permission android:name="android.permission.INTERNET" />"

3. 示例代码

3.1 使用示例DEMO

<template>
  <div style="padding:0px 10px;">
    <radio-group @change="radioChange" style="margin-bottom:10px;">
      <label class="uni-list-cell uni-list-cell-pd" >
        <label class="radio" style="margin: 0 10px;"><radio value="BT" :checked="currentMode=='BT'" />蓝牙</label>
        <label class="radio" style="margin: 0 10px;"><radio value="USB" :checked="currentMode=='USB'" />USB</label>
        <label class="radio" style="margin: 0 10px;"><radio value="WIFI" :checked="currentMode=='WIFI'" />WIFI</label>
      </label>
    </radio-group>

    <div style="display: flex; flex-direction: row;flex-wrap: wrap;font-size: 16px;">
      <template v-if="currentMode=='BT'">
        <button type="primary" @click="isReady">蓝牙是否打开</button>
        <button type="primary" @click="open">打开蓝牙</button>
        <button type="primary" @click="close">关闭蓝牙</button>
        <button type="primary" @click="startSearch">搜索设备</button>
        <button type="primary" @click="stopSearch">停止搜索</button>
        <button type="primary" @click="bond">配对</button>
        <button type="primary" @click="refresh(1)">刷新蓝牙列表</button>
      </template>
      <template v-if="currentMode=='USB'">
        <button type="primary" @click="refresh(2)">刷新USB列表</button>
      </template>

      <template v-if="currentMode=='SCAN'">
        <button type="primary" @click="scan">扫码</button>
      </template>

      <template v-if="currentMode!=='SCAN'">
        <button type="primary" @click="connect">连接</button>
        <button type="primary" @click="disconnect">断开</button>
        <button type="primary" @click="print(0)">ESC打印</button>
        <button type="primary" @click="print(1)">CPCL打印</button>
        <button type="primary" @click="print(2)">TSPL打印</button>
        <button type="primary" @click="print(3)">商米小票打印</button>
        <button type="primary" @click="print(4)">商米标签打印</button>
        <button type="primary" @click="print(5)">ZPL打印</button>
        <button type="primary" @click="getState">获取状态</button>
        <button type="primary" @click="isConnect">是否有连接设备</button>
        <button type="primary" @click="getConnectDevice">获取当前连接设备</button>
        <button type="primary" @click="disconnectAll">断开所有</button>
        <button type="primary" @click="parse(1)">解析命令</button>
      </template>
    </div>
    <div v-if="currentMode!=='WIFI'" style="margin: 5px 0px;border:solid 1px blue;">
      <div>当前选择设备: {{device? device.name: ""}}</div>
      <div>
        <div>刷新到设备列表:</div>
        <div v-for="item in devices" @click="selectDevice(item)" :key="item.address">{{item.name}}</div>
      </div>
    </div>
    <div style="margin: 5px 0px;border:solid 1px green;">
      <div>已连接设备(选中项为当前执行打印、断连、获取状态的连接):</div>
      <radio-group @change="connectChange" style="margin-bottom:10px;">
        <label class="uni-list-cell uni-list-cell-pd" >
          <label class="radio" style="margin: 0 10px;" v-if="connects.length> 0"><radio value="random" :checked="currentConnect=='random'" />随机设备</label>
          <label v-for="item in connects" :key="item.key" class="radio" style="margin: 0 10px;" ><radio :value="item.key" :checked="currentConnect==item.key" />{{item.name}}</label>
        </label>
      </radio-group>
    </div>
    <div v-if="currentMode=='BT'">
      <div>扫描结果:</div>
      <textarea v-model="searchData" style="padding: 10px;border:solid 1px red;" ></textarea>
      <div>手动输入配对地址:<input v-model="address" style="padding: 10px;border:solid 1px red;width:90%;" placeholder="请输入蓝牙地址,如 00:12:52:40:60:79"></input></div>
    </div>
    <div v-if="currentMode=='WIFI'">
      <span>IP地址:<input v-model="ip" style="padding: 10px;border:solid 1px red;width:50%;" ></input></span>
      <span>端口:<input v-model="port" style="padding: 10px;border:solid 1px red;width:50%;" ></input></span>
    </div>
    <div>
      <checkbox-group @change="checkboxChange">
        <checkbox value="cb" />自定义数据(json格式,请参考demo)
      </checkbox-group>
      <textarea maxlength="9999999"  v-model="customData" style="padding: 10px;border:solid 1px red;" placeholder="请输入指令集合,格式为json,出现乱码请设置encoding"></textarea>
    </div>
  </div>
</template>

<script>
  // 获取 module 
  const modal = uni.requireNativePlugin('modal');
  var printerModule = uni.requireNativePlugin("ammagician-printer")

  let instance; //vue实例
  printerModule.addEventListener('disConnect', function (e) {
    const connectId = e.data.result
    modal.toast({
        message: "设备: " + connectId + " 主动断开了",
        duration: 3
    });

    const index = instance.connects.findIndex(e=>{
      return e.key === connectId
    })

    if(index > -1){
      instance.connects.splice(index, 1)
      if(instance.currentConnect === connectId){
        instance.currentConnect = "random"
      }
    }
  })

  printerModule.addEventListener('usbInsert', function (e) {
    modal.toast({
        message: "发现新USB设备插入了",
        duration: 3
    });
  })

  let imgStr = "data:image/png;base64,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";
  imgStr = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAKACAYAAABkGxwyAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAH2OSURBVHhe7d1PrDzFdejxn4SEBALFiiWQUZ7sjb15WDhYzp/N4ynZXAtCVnnBG7yBOGxwEl1khMF5xkFYtpLAhthwF7CBF6+MjcwGdMkmwRE8W4YN2fgqERZIiXjiJ5CQLM2b0zPVc7qnTnf1v6ruru9HOujH7Z7q6p7qmnNmenoubQAAAAAgEgoQAAAAANFMXoBcunSJIAiCIAiCIIgZRgpRChBgLhiPAJAX5n3ARgECRMB4BIC8MO8DNgoQIALGIwDkhXkfsFGAABEwHgEgL8z7gI0CBIiA8QgAeWHeB2wUIEAEjEcAyAvzPmCjAAEiYDwCQF6Y9wEbBQgQAeMRAPLCvA/YKECACBiPAJAX5n3ARgECRMB4BIC8MO8DNgoQIALGIwDkhXkfsFGAABEwHgEgL8z7gI0CBIiA8QgAeWHeB2wUIEAEjEcAyAvzPmCjAAEiYDwCQF6Y9wEbBQgQAeMRAPLCvA/YKECACBiPAJAX5n3ARgECRMB4BIC8MO8DNgoQIALGIwDkhXkfsFGAABEwHgEgL8z7gI0CBIiA8QgAeWHeB2wUIEAEjEcAyAvzPmCjAAEiSDIez083l07ONhf7/12+i83ZyaXNydl69mg9zjen2zF+er7/XwDkIUADChAggujj8eJsc7Ldpmz30qhZ4S7RlHajFwJSUBXbPtkspQY5Pw04Tu65mjJ73x+7qZ4z2c/iuZm84N2Pv8DtuH6Nc2h3BXCxn6uptJoKx90yCv7+ZKwA8Et1flCAICtJxmOZsI/3zvTF2cm+zdNtehJfuf0+ia46Ht4o21SJZoeoJ2qHYyVhHy+XJJ9stz/VMZ2+QDgUpk1jrXpMrGgYWx2L0FELkLKoH6EAbhuL+w6Xz1todHx+m87nfud6v3MnLNLMOUNIvwH4pTo/KECQlTTj0SUDJ9vkeIyX7mk+/QhLSvtH2dfIBcjO4ZhJHCXC+pOqrhGabJbbmDaBK5/Hhmx/aAFSJuT1bRifIo1ZgJjb7mMWBUjb+dznfKcA0aTfAPxSnR8UIMjKuONxqhf5/Tu7Q5Li4DgkE9EKEIvbX08BEpJruv7b26k+X4c2Bz6PgcmmS2LDk8gmffu8G1uNx+roeahzCfHxJxDlGKo9NrwAqRaKU0XZD1eA1DpWPz7B/W89dscO552d2IesM7lyPqIAAdYk1flBAYKsjDse11mAjJMgHwS3O3kBsiPr6XXK5K5D0mhqe0d9UOiEf7oCpLVQcvt4dLzs52tZBYjbj8O5MV0Bctjf5rbVcWk/iNOgAAFWKdX5sagC5Ne//vXmv/7rvzb/8R//MWlcvnx5v8Vjssyt96tf/Wrz4Ycf7pd0E6Md+bf8zS0PjbHa6RLvvvvu5qOPPtpvcTrjnmiHhKs1uR5LmeAev/s8VDUp7Zvg6tglKqGFwXHyZie0PsHb0VTBMEpeF60AOZD9btrn4rjUds48Vq1JZtOYd0ny8WPDC5AGZd9GHPu+AsTzt6kKENdu0Ppjj9WuKECAVUp1fiyqAPnP//zPzd///d9v/tf/+l+Txo9//OP9Fo+98MIL5Xp//ud/vvnnf/7n/ZJuYrTzL//yL5t77rmnXB4aY7XTJb7+9a9v3nrrrf0WpzPuiRa7AFFFwQQZSDUpnVcB0iWq29m14T1cZUK1je0Krp/BEfou96SJW9s76P7l1nPiEmLzuSr3xVMEDCm+Ao5lmayPOfYDi41y26ExUUFx6EdDETbkefCF2xcKEGCVUp0fiypA5J1ySVbLiXGi+Nu//dv9Fo/93d/9Xbneb/3Wb23+8R//cb+kmxjt/OAHP9j8t//238rloTFWO13i937v93oXYV3ItsYTuQBRCbOVsEySpE2gMdkfsQCpJo7VxKlctt/eVAWI245vjAQXZ00aEkNr297tBiSYh+NZT4AHFqxtx7JMqkdOfo8KkH3BVutPdRwFRNv+qHO527mqj7NxLChAjsh+APBLdX5QgHiCAoQCJEzcAqRMkBuSmzJRGqMAGZjINB2TxoSu3L/D8a3sjkuEasfBTOZ1sldbfn46cTLVkrSNUoBslWNDHyj3/HnGi2+7VrFSqhzHWgHSsp+u7X7DcmBxU4TxiUG9ANn/f/0YBPffGJtVAUVEI/V9kJjFQMtzPGdyrAD4pTo/Fl2ASKJ86623bv7kT/5kUEjye/XVV5ft6gJELvt6+eWXiyRc4stf/nJl+zpRl/7JJVFuXR3ShrTlyHpu+3feeWexTbeuXPL0wQcf7NfcbH7+859X2tLxN3/zN2Y7UpzI39zyprjpppvM/ZK2dAEi6/ra6Bqf+cxnyjYpQNocko6mbS2jAHHHzUhiG5O3rdD1KqpJ7PTP105bUj9WAbLbv+3xPL/YHxPjGO8dbTcguSzHVhHVdtv2MziB96hut2+EFCD2MQvuf8DYPOyP0acQ5fM1sJ0uAsbIXMlxAuCX6vxYdAEixcerr766+fd///dB8Q//8A+bG264oWxXFyCvv/765o//+I+LBFziYx/7WLlePVGXouJ3f/d3y3V1SBuvvfbafs3N5v333y+3L3+XwsatK9/BePvtt/drbjYPP/xwpS0dp6enZjvyb/mbW94U3/jGN8z9qhcgDz30kLeNrnH33XeXbVKAtCiLgeYX/zK5GbMA6dhWe1LtjlvPRKZXAbJT9E3vT68iKzDhC3jO+hYg7nG9Ynvczmvb1Um+9+muJLwS6hiUy+zjEpzA1+nnp8fzve1cYyFWti8da0iwxypA9HH2P+f7/oYcqNpzMvkc1HB85k6ODwC/VOfHogsQeRddEtmh6gm2LkDk04jf//3fL5fpaEvUdTQl2G379Vd/9VeVtnT85V/+5X6tYceny6Vc+vgMofeLAqTJYTttickkBUjPsI+J/zr7KrXPPSL4+ZisAAkbG3MpQIRusz58DuPqbL9fh2MQMuaCE3itlmBPXoBslceg1tHg/jcUIOVx2ob5fOvxGHSw9OVYx+3qbYaHcawoQIBVSnV+UIBsUYBQgPQTqwCpJhmjRVuCk0MB0klLMqvVk+eBEZSLdmAVPociRO1jOQ4k8fQfg/PT5mPSvQBRlxye7PsUoQCx1u+cyNf7GlRYqDHfcV+lf74xTwGyI/sFwC/V+bGqAuT5558vktq2+OY3v7n52c9+tn9Uc4Itv3/x3HPPFX+TkEup3HrXXHNNcRmYa/e2227bXHvtteXy22+/vXzcs88+W7Tlc/ny5eLyLbeufK/jvvvuq/TXLbv33ns3n/rUp8ptNBUg8h0LuczJtfPKK6/s1zzWtwC5uLjYPP744+U2muKZZ57ZvPfee/tHrqEAUUlSU/Y1WOICpGP2ayW3pZbkfPe4hsSx4V3m1m0P0pLMagstQESZtO6Pr1t314cOx0DpVoCo8S4PGFgI78Lor2+Me/42uAAR0m7TAVD7GXac2nU77i3PLQUIsEqpzo9VFSA6oW2KIe/w60S9LZraadLUn/onMk0FSD1C96vL8Wn6hKgeTc/X0guQsRKGocpEaS4d8mlJKKcsQOT49D80/ZLvJtMWTLbm7bpx7fZz+//lQTs+Bp2TcyuKbajiwz2/LeMlLIznzFNsHPpwSLTribz7f/t5k+PUJVF3x7Xel2Hq/W7WMr4pQIBVSnV+UIBsUYBQgPRSviCPl5AOVSaDA5KY0RJKF753gz2qyVJDMtS7ADkkt/0S/pYErYehBYh7fFgcEse27doJ9vExGG28bJ/4Q1sqyXVFQuA4qmp5zrwFiL2P5WoNY3C79nER1eLwPDb0s8f+H/W7UcuxogABVinV+UEBstWUYF++fHnz5ptvFom2xFe/+tVyvSuvvHLz6U9/ukieJeTf8jdfO00++uijzb/927+V23jkkUc2119/fdmOXHbllj311FObz372s+WyO+64o1z24osvFnfQcv2ph1wGZpHLzNx6cunYSy+9tF9CAWIq35mN+4IsyUpb4lhJqIrEIbyPoyWULgITp2qy1JAM9S1AyufLSLACHCV0RZv9n/+2QqDNIXENiUM/27ZrL29JUg3hibC0Xzue7nnrkYC39te1XetYvb/H/Xft1vapHGMSoeOirTA+bKvrGwvhx120HCsKEGCVUp0fFCBbTQn2G2+8UXyPQpJsCf39i+uuu27zrW99q0icJeS7G7pwCC1A3n333c2DDz5YbkO+u6ELmU9+8pPlshtvvLHyPZNPfOIT5TL5sqbcUtj1px7Wd1CELHPrya179W+WUID4uRf3folRP4eE058klH0qMw6VvAQmjSFJS1Di3Pgu8bHqdnW/u4evX2M8X0fHxkhgQwUdxwZhjz++pKjtcfbyliTVEDKmTLMsQLbKYmN3XN0x87XXJGhclsl/t2PY7bhTgAA5SnV+UIBs9U2wh1zKpbVdOhUa9f6MhQLER11m0SUjGEAnONYmy2SmtkL594bHOnrdUaJTAeKSn7ELkKGXX+3UE/O2RL5NnMevpAAZFB0KkDLRPjzG6r/vXOm0j+W+tR9P95x0Ofb9zmWjfQoQYJVSnR8UIFsUIM0oQDxUUtQrqerokHw0b69MODwr6WSkKWHtl7Q0RFABUk9sGxLdjp+sFDokeo1qCat7Xor/VWNiuqj2v62Q2OlYgHgS8IO1FiCnhzcUXKjxZfdfvRHRZTyK8ji3PX9O9231O5eNY0UBAqxSqvODAmSrKcGW28w+9thjxZe96yG/Qi6XXckXuCXk3/I3t1xun+uW1UPfElduTSu3qNVth8Ytt9xi7tdbb71VfGfEt/2mkMfIYx0KkDr17nzXpKOH0OJDlAmHsaJuy1onJFkMSnw7FQodEluz3V0bvj6Vx2Xo81VLwnbt7vu8yALk/DCW6+EdAAkLkF7PXUt/ywJEfwFeoppk+/u/Pa7SJ1VIhPex5xyix1jAwRx03OsoQIBVSnV+UIBsjfXJRZf+SPEwBikYXJtt+xUaXY5PlgWISgJGeWFvcCgYwhK+Molq6FilCPEkPyFJy/gFyHGSbDLaNY+VShCHP18qcSyjf0IWdBwbhD2+qQC5OIwZFfZxWm8B0qTaf0/xoIuQ1mOjPsnoMXb089V2PAcd95rD+UUBAqxJqvODAmSLAqQaFCBNVPLQKyEKd0g0QpO9Q9/aEtpDMnG8rk5wRomA41T2p2ld/e5vW6h2Rk+c6v0YMA50IdCHfh7bw1+AdLOwAqTtXfuOBUg16m3qwsK3fKtSqIwRI43pkq/ArsUY1Uxk0m8AfqnOj1UVIHLJkyTPbfGFL3xh86Mf/Wj/qOYEW26RK3epkm1L6F/y7tIfuWOWvrOV3FnLtdkWly9f3rd47Mknnyy3cfPNN2+efvrp8nFyR6wbbrih3OZv/MZvlOvW42Mf+1i5nvx/aAHy+uuvF78OX2/PF3KL4Lfffnv/yGUWIN2LgiEkGTASjJZEJiRHkCTUl4BOX4DYSc6uP/VErl+4fZPLKIuEe8TE6ZD4DxsH/QuBnUM/QuIwlvpvd74FSOOxsB4bUoB4zrWm1evnz9ExrhewZjQUF7pPAwpgn8bzf+RtxSJ9B+CX6vxYVQHy85//vEic2+LHP/5x5XFNCbb8PofcIle2KyHf1XC69Ee+HyK313Xryr9dm20h/bXIdzXcNqT4kKTePU4+mbj66qvLbd55553luvWQZW49KRbkb07T8ZHb9cpvhtTb84UUGB988MH+kcu9BEsSnb4J43jsJH1onj0oWdRckuRJWnzJ4uGY+guU4P4U2z3dJsjzT5X6FwI7YY93Y2XdBYid2Dck8l0LkOAEfHfMJ50npO8LLQhik+cOgF+q82NVBUhfXS4x0pdOdelPl0uV6qH706Ten3o0tdPlUq7Q/rRZagECjGV5BcjKhBQgYrte9sdqwZj3AVuq84MCZIsChAIEALBOzPuALdX5segCRBJ6+Z6DJMhDQhLhj3/842W7YxUgcgmW28b3vve94jsQso7ETTfdVD7uqquuKhJwt0z+rS+d0v2RS55efvnlsl3ZhlPvjxQSt956a9muXAbmHidt6F8771KAyOVarp0hcdttt5VtUoAAAKbAvA/YUp0fiy5AJEmXL1lLcjwkpPi44oorynbHKkAefvjhchsnJyebn/zkJ8VyiW984xvl4z7xiU9snnjiiXJZ/cvjuj/uS9+uXfmiu1PvjxQfr776atnufffdVz5O2njttdf2j+xWgMgX1l07Q+Laa68t26QAAQBMgXkfsKU6PxZdgEwVYxUgTZcY9b3kaQ79mSIoQAAAU2DeB2ypzg8KEE9QgFCAAADWgXkfsKU6PxZVgFy+fHnzwgsvFAn5lKEvTfrVr361ee6558plr7zyyn7JcX/kdrnvv//+fmk14ZfLrO64447ibxJyCZZ7nPyWh9xO15F/y9/cct2fpgKk3h/5zodcduW2KZdruWWPPvro5v777+/Vnyni2WefLY711MYcjwCA+WPeB2ypzo9FFSBLI4m97L8vdOHQRVMBUtf3k5Q1k30FAOSDeR+wpTo/KEAmRAEyP7KvAIB8MO8DtlTnx6IKkI8++qj4ZXJJnoeE3ElK34JW/v1//+//9a7bJaRv0kdHFyDXXHPN5r//9/9efNdB4mtf+5q3DYl6OxcXF+Wyp556avPZz362bFcXDvXjI3fTkrtvuW3KZU6OLNcFiFwe5h5Xj6b+vPHGG8WlX45cRuWWtR3nGJdc1cm+AgDywbwP2FKdH4sqQN59993Ngw8+WCTOQ0JuQfvSSy/tW90Uv4khf/Ot2yW+/vWvb9555519q9UC5MYbbyy+RyFftJb49re/7W1Dot7O448/Xi6TdvTta3UBUj8+8rsjcutft02d8EsBIOu4duQ7Ku5x9Wjqz1133VUUIY58X8YtazvOuiCKRfYVAJAP5n3Alur8WFQBMtZdsKa6y1Pfu07Vo6mdeugCpO0uWFq9AGmKGHf3ikW2CwDIB/M+YEt1flCAbFGANAcFCABgqZj3AVuq82PRBchnPvOZ4hIgScIlbr755nJZPWSZW+/09LS4Ra0kyxLyb/mbrx25NOlP//RPy2W33HJLuUy+1yG/Nu6WPf3005v33ntv39vN5oc//GG57LHHHtv88pe/3C/ZFLfzdcvq0dROPeT2uW4/vvvd7xaXS7ll8m/5m1uuQy4Bk++h6LasqLfzP//n/yyPQb0A0ftVP85f/vKXi19Rd4+Vy7HcMrl0i9vwAgDGxrwP2FKdH4suQKb6pKDvO/wpNPWn6ZOd+n416dtOl0+suvRnCNkWACAfzPuALdX5QQGyDQqQZhQgWIaLzdnJpc3p+f5/Q5yf7sbgydn20eO6ODvZtd2pQwDGxrwP2FKdH6sqQOSXviUJl7juuus2V155ZbluUwFy2223bX76058Wf5eQXw937chtbF988cVymVzy5B5XT/g//PDD4jIit64OuUOVvpWt9utf/3rzX//1X+W6crta+ZuPtCFtuXXl0ijXV7l0TC7fcsvkNrw33HBD2d/f+I3fKNe9/fbbK7+wLrfSdY+TfZB9ceQX3n/nd36nfKxceubarBcOup1//dd/3fzRH/1Rue5VV11VXNLm2tFR789UpB9YpzLhv3S6CU7551qAuH41xsnm7OJ8c+pd1hxNXTo/9T+ma5yc+Y/oWO3b0eH5RxZkXADwS3V+rKoA+fnPf14UBBLy3QP5johbt6kAkXf3pQiRv0nIY107ksTL7Wzdss997nPl4yRx1gWIfLH7nnvuKdfVId+jeOutt/ZrVknB8fd///fluvKphv79DE1+k0NutavbdX2V4kM+vXHL5EvmV199ddnfO++8s1xXbo+rt/HCCy+Uj5P91UWFHGMpQtxj5Vi5NusFiG5H1tOfnMi6TzzxRNmOjnp/piL9wFrtPgGR59hKfo9QgByhAMHayLgA4Jfq/FhVAaLV7/LUVIDUo+kXw3XUC5CxLlWKsV91XS4tC71ErR5N+xWL9AMrVibugUnoXAuQGpe0HzflCpCw/bXbOQhZp4nb7+AisOJQRA7dV8CR8QTAL9X5QQHiCQoQChAsVcfvgfQpQII+nege/YoCChCgjYwnAH6pzo9FFSByiY4kuJLISkhCrS/bkUuwpAiQeOSRR4IvwZKEW26n69qVS7BcO9/73veKS5Lcsptuuql83Mc//vGiXbeuJObyN7dc1nWPe+CBByqXYMm/9TZ0USHr9ylA6sdHigN9CZYuQGRd+WVy1wfZZ/c4uVRL1nXL6tF2CZZrR46pLsik33JJm2vHuiRtStIPrEhAMdCYSK+0ALGKgNkUIBMdw35FD9ZOxgYAv1Tnx6IKEPlitiTOkpxLyL/1l7UffvjhIuGVuP7664O/hC6J8quvvlq2K19Cd+3Il9B/8pOflMv0l9CvuOKKouBw68q/5W9u+UMPPVQ+7p133ql8Cf2pp54qHydfFNeFgiTv8hifpgKkfnzqX0LXBcjrr79e/A6H64P8Zod7nHwZXH6zwy2rx7XXXlu2WS9A3n///bId+WK/LlZkH6U/rp0nn3xy/6h4pB9YkZQFSMtjXCLfnBQ3veN/QAESFhQg8JGxAcAv1fmxqAKkjb40qB5NBUg94e97iVE9Qi95qkffAqROPmWQRN+tq/sz5FIuHfXjow25JGwqsl1koExwd4m5S6p7RT0TDypAQr8Qn3kBcrSRfpdgBW0T2ZKxAcAv1flBAbINChAKEKzJcfIfvwBxyXJbIk8BUkUBgvHJ2ADgl+r8WFUB8sorrxRJrS/kN0KksJCQS6zkOw9umfxb/uaWf/7zny/6LSG/W3HHHXeUy2655ZZy2cc+9rHy+xIS8m/5m1suf7PIJVDucfWo90fHl770paJPbhu6cHjvvfc2zzzzTLmuXP6kL5eSvrtl999//+bRRx8ttynHzrl8+XLxXQ7dJyukDWnLtaujfpzrx0f35/HHH9/88pe/3PdgOrJdrJtLRoMuqwoqJmpCHnNxtjmRdYpb5e7/5jXfAmRoBBUgIwcFCHxkbADwS3V+rKoAaaI/cehy96qmaGtHku4+uvRnik8uuqh/kqJjrLuEjUm2hRUrE9u2xH9vogKkLIIkmrJ9qwApC5iGKLZPAaKDAgQ+MjYA+KU6PyhAtihA+qMAwWyopD04EZ2kADlcfnWI48uGduZbgDTWTQ2sbVe4Y9h3IzVB20S2ZGwA8Et1fiyqAJG7SMkvgUvSKyH/1neW0i5fvrx58803y3W/+tWv7l7wtnHdddcVlwa5ZXK3KLnblSTB9bjxxhs311xzTflYufzJLZPHyGOtduTyJLesKeRyLLl7lSO3x7399tvLdpria1/7WtnOiy++WNwy2LdePe66667NL37xi/0Wq+rHuSn+z//5P8Ulaq7dT37yk8HHWV9KJv9PAYL+qkm/5LWSSLfmt6MXIIeCYlcU6P/3fSozzSVY1vpDiwtgiWTMA/BLdX4sqgB59913Nw8++GDxjrvE17/+9eL2tj5vvPHG5u677y7X/dSnPlX0RUJuzyu/EeKWSdIut9qVBLgecrtcKULcYyXZdstcwm+1I9+NcMuaQm6H+9JLL+17vvuNDilKXDtN8e1vf7tsxxVEvvXqIcdHbpnrUz/OTSHH47nnnivbvffee4OPs3yfxa1LAYL+jj9xOD0L/DRk1AJEFxs6ybf+LqYoQFybxwWP2U7IJy4SlX2u7pcdnsLLHcOxo+kgIlsyNgD4pTo/FlWAtN29SpN33CXpdes2Rd+7TrX1R75c7ZY1Rf1SpS6aLi3ra8ilXF3u7qWPDwUI+lHFx8np5rSSzKtlVmI6WgFSLYJ8m3PJv8ShKJqiAPH9bYcCBDmSsQHAL9X5QQGyDQqQKgoQLEX5Ze8iMfYl85KMHyfipREKEF1YVLd9rLJuseIEBUi9mFAPai1ArOPgXe76bn3hv205EIeMeQB+qc6PRRcgN910U/HL5JL0SshlS87FxcXmscceKwoGCX373Ho0tTOkAPnhD39Ybl8uVdLfedDhbufrti+3wLUuj6qT2+e6bcivmct3Llw7TSGXTf3qV7/at1JV3y+5jEq+M+K2o0OOsb59rrSt901H0/GptzMV6QfWZJuAl9l0WDJfMagAOXzisouGQkcpi6ZtnJ6PX4CUX8g+2W8n5GBQgGDF5DwA4Jfq/Fh0AVKPprtONSXG9dDtDClAtLE+kWnSdnx0NH3i0GW/6roUIClIP7BWsQsQecyuAAje3p4UFLvHDC1A6lTSf7bvZ0jnYhUgrp2Jg7thQZMxAcAv1flBAeIJChAKECxRigJkqJ4FyL4P9cdULklz/fQ0XKyn+08BghWTMQHAL9X5segC5Kqrrioua5LvPkh8//vf36+5u5Ws3M1JHiMhl1i5x11xxRWb3/zN3ywfVw/djlyOJXepcsvkMifX5r/+679u/uiP/qhst55g/7//9//KdZ9//vnKL6zLrX1dm7IPsi9WO1p9v+TXzx35/74FyOXLl8s26/slv6j+05/+tFyuQ/qib4X85JNPBu+XPj71dqYi/cBarb8AqUflMWVyv0/4GwqQsj23LFYBYpJPkjzrNWyXIgOhZKwD8Et1fiy6AJEk+oknnii+eC3x1ltv7dfcFL9jIbeSlfUlPve5z5WP+/jHP775i7/4i/Jx9dDtyC1x5Ra5bpl8x8K1KYm5/mG9eoL9zDPPlOv+4R/+YbFdt+6tt95atim3ztWfjjQVIPX9km049ePTFPUCRL534tqs75f8W/7mluuQWyHr4yX/Dt0vfXzq7UxF+oG1WlsBclh2FEfbdt8FUYl5QAFSrpuwANHfiTla17Pd6voUImgn4wSAX6rzY9EFSFOi3nTJk7w7LwlyH10uMWq6C9ZYl3I1tdMU9QKkyyVqOoZcysVdsDCuBRYgLsGuJd71JLsIa6fKNmrrmAWI5zilKEB0vyV8+2f1q/7YbVCIwCLjA4BfqvODAqQjCpBqUIBgPvwFiHX5Upeo5MY9CxBvUVFG7Q5aLsH2JeVKpc16f1w/rba3cVSAtIW3AGkL41ONMuy7h5X7Zx3rch8P0XLIkCEZFwD8Up0fiypA5HIoSZQlkZWQL4vL33zqibrcStY9Tm55K4/9wQ9+4I36JVgvv/xyuezLX/5y2WY9mhJsufzqD/7gD8o+yCVHrs3vfe97lb7Kv+XyJbdcxyOPPFLsi1u3qQCRQksu9XLb1PHAAw9U9lMXIPK9DSkIfI+rx1e+8hWzr3KJlRwDt279+ZLlblm9P1OR/cNazbsA8SXLuwi7fW9FPYn3Zt2Hy7L8obYbqwCpHYNqt+3+tn26US3urE9kkCsZFwD8Up0fiypAfv3rXxcJrCT5EvJv+ZtPvQCR37Fwj3vttdeKQkK+2+AL+SK1476E7pbJb3a4NushibRVgNx8883F7164Pnz3u98t27zhhhs2V199dbmu/Fv+5pbruP766zdXXnlluW5TASLFx6uvvlpuU8c777xT+dK3LkDky+Py3Rrf4+rx4osvbr74xS96+ypfun/66afLdevPl3yB3i2r92cqsn9YK38Bsjb1T1Ia99UsLIxPRayiyrvcHe9ul2BJQegvKIyCpsOTabeNnMk4AuCX6vxYVAHSxZBLlZpuw9sUTQXIWJc81aPvpVx1uj9dLlFrOj5DLnWbivQLWLqiCFlzlQWMiHkfsKU6PyhAPEEBQgECAFgH5n3Alur8WHQB8vOf/3zz8MMPF4m+xCuvvLJfstn86le/2jz33HNFMSGhl9UT9Ztuumnz0EMPlevKb4a4Nu+///7No48+Wi7TIevp2/vWE37Zplv32WefLfrkyKVduq2+8c1vfrPs63333VfcJtgtk3/L39xyHY8//vjml7/85b431f585zvfKb6j4ntcPZqOT5d26v2ZypTjEQAwP8z7gC3V+bHoAkS+6CzfNZBtSEjSG6LtkwJJiN2yIXd5iqHpk4v68dHRZb+aIkY7Y5JtAQDywbwP2FKdHxQg26AAqaIAAQCsBfM+YEt1fiy6AJHb495+++1F8iohlwLJdxJ8cXFxuDPKu+++W1wa5B7353/+58XdnNy6X/rSl4p+S9x4442bp556qtKWC3mMPNZqR8cbb7yxuXz58r4HVXL3J/mFc7eu/Nu6I5S08eabb5brfvvb3y63f3JyUtwS1y2TW/bKXbPcvnzyk58s15W7gv3iF7/Yt1pVPz71kLtkuTbl/3XhIJeZue0///zzxS/Au3XlVsS//du/fdSeRFN/xiT9AADkg3kfsKU6PxZdgMhtXeW7C5IAS8j3EeQL0b6Q7xg4ktzLb064x0nSLreSdevqBPuaa64pihDdlguX8Fvt6JAEW4oQH0n4H3zwwXJdSf7ltrQ+0sbdd99drvu1r32t3L4riNwy+b0Qfcvee++9t1xX2nn//ff3rVbVj089dIEmxYP8zZHv3bjty214pehw68rvoMitiOvtSTT1Z0zSDwBAPpj3AVuq82PRBUidvnSqHvpuUXVNlyo1xVSXPDVdyiWfLEhy79bte3evIZouUWu6u1eKS9TqpB8AgHww7wO2VOcHBcgWBUg3FCAAgKVg3gdsqc6PRRUg8v2HF154oUhyfSG3xZWEXOKOO+6oXErVVIDI7XzldrbusTrq7eiQX0W/8847y+3Lr6vrX0r/H//jf5TtPPbYY0e3vXWP++u//uvG2/lq8l0Wacu1K5c0OW0FiPyiu9umXCpVvy2wW1YPOeb68qimAkRuPez6JpedyWVgbl253bE8R65d2WZs0g8AQD6Y9wFbqvNjUQVIl3f4mz4p6KLeTpdo+sRBEnDfYyT6flLQdnx0DPnkoqkA0WJ9ItOFbBcAkA/mfcCW6vygAGlBAUIBAgBYLuZ9wJbq/Fh0AXLVVVcVl0fJdzEkvv/97+/X7FaAfPjhh8XlSNJ+PeTOUnK3K7cNfYlVWzQl2E8++WTZpuyD7It73G233bb56U9/6u1PPd577719i7tb4MpdsFy7TSG3L37ttdf2j6z2px7S5ttvv71fc1NcruaWybGRY+Trm1xiJZeluXXljlhXXHFF0PGZimwXAJAP5n3Alur8WHQBIu++P/HEE8UXwSXk1rFOlwJE1r3nnnuKtushybfcXtdtQ77z4dpsi6YEW/rq2pT2dV/li+xShPj6U49nnnlm3+KukJJPI1y7TfHSSy8VtzF2dH/qIW1+8MEH+zV335lxy6Tvcox8fZPiQ46BW1eeA31bXgoQAMDUmPcBW6rzY9EFSNOlSl0KkC53r2q6VKkeoQl2fb+6RN9Ly8bSdImafOohhYdTP84UIACAqTHvA7ZU5wcFyBYFSH8UIACAOWPeB2ypzo9FFyCS+MolQJLY1uORRx6p3AK2KVGXAkMuI5KCph5f+cpXKtv4m7/5m3LZrbfeWkmoJeGWv7nlsq7ukxVyGZV8sds9rh56P+QSJvlFcbfs6aef3u/F7hIsKQh825gqvve975nHTi5XkyLDrSv7qC/BkuVu2csvv1y5JGwqsl0AQD6Y9wFbqvNj0QXI1VdfvbnhhhuKIqAe119//ebKK68s120qQOT7DfIla/k0pR7yBesvfvGLZbunp6flMvmiuHxXw21Dio9XX321XH7fffdV+mTF5z//+aKQcI+rx913311u4+abby5++8Mtq38JXb7L4tvGVCFfQv/JT35S6a8L+ZK7fA/ErVv/Erp8od8tk98o0V+Kn4psFwCQD+Z9wJbq/Fh0AdIl+l6q1HQpV9slYfp2tU1Rv1Spbqzb3k4RY/WnqZ0xybYAAPlg3gdsqc4PCpAWFCDNQQECAJgz5n3Alur8WHQBctNNN20eeuih4nsG9bj33ns3n/rUp8p1mwoQua3sww8/XCT6Eq+88sp+ye6ypueee65sV34Dw60nl0bp72fUCxBpx+qPjmuuuaa4fMu1K98J0ZdW6XYeffTRzf3331+uK5djOW0Jv/z2h2unHnIJlFtPLo1y399oi2effbY4Rj5dnq+mdsYk/QAA5IN5H7ClOj8WXYDUE35tyF2wJCG29P0F86a7RdWj7361FSCh+9X2iUyoLs9XLNIPAEA+mPcBW6rzgwJkiwKEAgQAsE7M+4At1fmxqgLk4uKiSNAlnnrqqc1nP/vZcl2dqH/00Uebf/u3fyvXldvsyt2c5HsIEnKZk1v2xhtvbC5fvrx/ZDVRl7tsffrTny4f98ADD2zeeeed/ZrN/fnEJz5RPk7ubKVvT9uUqEt/7rrrrvKxX/va18ptyB275Ja4bpn0Td8JTBcgsk9vvvlm+dhvf/vb5ePkWMgxccvqoS+Vqrcj++zUny+5ffDzzz/vbScW6QcAIB/M+4At1fmxqgLk8ccfLz4dkLjxxhs31157bbmuLkDefffdzYMPPliuK0m73EpWvgQtId+xcMsk2Zek39EFyHXXXbf51re+VT7urbfeKoobp6k/d9xxR/k4+R7HH/7hH5bLmgoQSfilP+6xUji4bbjCwS2T3yGR2xG7dnUBIm3Id1jcY6WQcY9zhYxbVg/5voZTb0f22ak/X1JkSbHlaycW6QcAIB/M+4At1fmxqgJEvpTtltWj6VKlpnbkEwFJyp0ulyqN1Z8mTf1purRMPoGQIsAt63sp11jtxCLbBQDkg3kfsKU6PyhAtkEBQgECAFgn5n3Alur8yKYAueWWW4pkXeK73/3u5utf/3qRLEvIv+Vvbvk3vvGNctljjz22+eUvf7nfQv8CRL7z8ad/+qdlu7INt72//uu/3nzuc58r15Xb1erlTSG3BXZt/u///b83P/vZz/Zb391eWC8/Pz/fL9l9P0X2zS1r6k895Ja9bt2vfvWrldsLNx3neuj+xCJ9BADkg3kfsKU6P7IpQHR0+aSgThJrq5260E9ShoQk8mMYqz862o5PCtIvAEA+mPcBW6rzgwJkiwKEAgQAsE7M+4At1fmxqAJEbtsqd2eSxFZC/v3222/vl26Ky43csqb4whe+sPnRj360f9Rm8+Mf/3jzO7/zO+Xy73//+/slu1v2yl2zpPiRkEuVZJ8kZN2mBFv3R36F/LXXXtsv2WyefPLJctmQOD09Lfsmx+fDDz/cb2FT/Fv+5pbr2wk37dcVV1yx+c3f/E3v9uohdwLTt/qVX3V3y+SOV08//XS5jaaQvug7iE1F+ggAyAfzPmBLdX4sqgCRhFo+RZCkX0L+/cEHH+yX7r7z4JY1hRQc+pMT+bf8zS2X2+k68nshcste+eRFQn83QpJsWd+i+/PSSy9t/vM//3O/ZFNswy0bEnKrXdc3Kcj0pyzyBfF77rmnXC776DTtl9wu9y/+4i+826uHbP8zn/lM+dhbb721XCbFh3wK5LbRFPJdEX3cpyJ9BADkg3kfsKU6PxZVgKRQv8uTjrYCJIamS8K63AVLR5f9GnIXLB31S9SmItsCAOSDeR+wpTo/KEBaUIA0owABAMwZ8z5gS3V+LKoAkUuwJOGVxHrK0JcCdUnUJeF+4YUXvG2+/PLLlUuwtLb90v2RNqQtt0wugZIv40t85StfqSTx8m+5LMst15dgDdmvpuMjl2C59Z555pniEiy3/aZ44IEHuAQLADA65n3Alur8WFQBIl+olu80yLv6U4Z8QdzpkqhLkv67v/u73jbltzP0l9C1tv3S/Xn99deLttwy+RK6fIdFQr6Qr78TI/+Wv7nl77///n7JsP1qOj7XXnttud7nP//54nsgbvtN8c477/AldADA6Jj3AVuq82NRBUiXS3qGRN9LleRdf0m8fes2XWLUtl9N/el7G94h+zXFpVyxSL8AAPlg3gdsqc4PChBPUIBQgGCpLjZnJ8dj8dLJ2XZJmIuzk+PHn4b+av/w7Vedb05VO8Hd6GDY/tZN39/SxdnmpEdfz08P/TvE6bbnWCt5jgH4pTo/Fl2A3HTTTZuHHnqoSIiHxJ133rn52Mc+VrYrf3Pk8qjnnnuuXFcuf3LrtSXq8tsf7nHPPvts0ZbzyiuvFN+PkLjvvvuK73K4deuhL93qUoDIbYAffvjhcjs67r///s2jjz5abqNpv+S7GXLZVUh/brnllnK973znO8Xtdd025Tsh77333v6RaUgfsU7+xLIaJ2dNZUA1eT6Ok03Tw4dv/1i9zXET+mH76zNtf43iLnQj56fHj61F1+cHyyDPLQC/VOfHogsQ+fKyfH9gqKZ3+Ov63nWqrqmdJl0KkC6fyEzRn6meryGkH1ifw7v4nqTZvVO+D3++qpPxWhuVxNX/Tvnw7R9zbZ6cnpaPHy+hH7a/PlP2t7G4C9lI5TmoP0cRP7VBEvK8AvBLdX5QgGxRgFCAYNkk+W1OHFWS6VmxsYAQKin3vUs+dPtHyoR5WwCo5Hms5Hjo/h6ZuL+HAsQVRN2O5/Hja3SBMlanMRvyvALwS3V+rKoAubi4KBLitpA7Selb4jYVDpcvX968+eab5WO/+tWvlusNKUDksi4pAiROTk42//AP/1BuQ36lXN8RSu/XU089tfnsZz9bbuOOO+4ol9VD2pS23XZ03HXXXZtf/OIX+y1UC5DrrruuuCTM12Y9mvrz4osvFrcBdtuUf8vf9ONdvPHGG8Wxnpr0EXmyk9CQZFZf/mMksS1ak+DSYVtFd1QxME5uPPb+Tt1fny4FiNoX87s4IetgqeR5BeCX6vxYVQHy+OOPF+/Gt4V83+Gll17aP6q5cJDE+O677y4f+6lPfapcb0gBIt8HkU8gJFyi7rYh35uQ29I6er9uvPHG4la3bhuf+MQnymX1kDZ/8pOflNvRIfulb8urC5Arr7xy85nPfMbbZj2a+uMKK7dN+fcXv/jFyuNdSEEkfZqa9BF5OrzrX0uoAxPm1k8NWpjbrynXc4nw2An9yPs7eX+9JixApus0EpHnFYBfqvNjVQWIfNHZLWuKLoWDvDsvCbJ+vIshBYg21n7Vo8slT7oAGSvajo8O+YREipSpybaQp/ITiFoSGlxYDEysre1XlJcCqb6MnNCPur8R+uvX7RKs1n2O0mekIs8rAL9U5wcFyBYFCAUI1s5OWIMvjVLfE+h+t6Rulz1V2h85OR5vf+P0169bAVJZv16EqP42FodYLHluAfilOj8oQLbGKkDktrff/OY3iy9iS8i/JbFvi+9+97vFZVfucfLr4fp2tT/84Q/LZfWQ2966/lxzzTWbW2+9tVxWb+ef/umfym3Kd1D0bYHlb1Y79bj55pvLdZtCbm0stzh22/zyl79cud2xDgoQTKnpHfCgTyYKXZPeg5BPHcp16v2YqgAZuL+x+uvX57nQRYgnpussEpPnF4BfqvODAmRrrAKkrm9/utCFQ5f+1BP+vu2MFRQgmEzjHY66fPm4ZwHSuP0936VMzqgJ/Uj7G62/lp7PhdDPRxFtX7LH0snzDMAv1flBAbJFAUIBgrXS73r7Es2pC5C27QvjUiZndgVIzP5aejwXR4VHPShE1kqeXwB+qc4PCpCtLgWIXJ4kj5f4whe+sPnRj360X/OYXILl1pVb28rdpVw7OuTOUXKHKNm/riGXb1n9+fDDD4vLrNy68ovrbl35lXb9i+a6AGnrz5/92Z+V68o+yb65dq1LrCSuuuqqom23ro56f6Yi/UAuuiX/XRJy/3ci6kK2L3mxcSmT05rQ6+14otLu8P2N21+LaiOkAFF9OnouKsvsS+SwXPLcAvBLdX5QgGx1KUDkuxHyWIkf//jHle3XyXdC3Lryuxpya1vXjg5JzGUbsm9dQ747YvVH+n7PPfeU60of3LpyG2L9Wyi6AGnrj96PT3/605tvfetbZbvynQ+3rB7yKccTTzxRrquj3p+pSD+QA53kNieVwd+JUO+gtxcggdtvupTJGTmhH7S/Cfrr16UAUeuabes+8UnI2sjzCsAv1flBAbLVpQCRL2H30XQp15Bo6k/TftXpAqRLNF3KVY/685WC9ANrp5PJ9ne0+9wVqjnnDd2++jSic/RPkvvvb5r++oUXICE3ACi0Fk5YKnlOAfilOj8oQLYoQChAsBbdio9CYOIZlsh22X6ihL73/i6zAOlTcIVdYoelkOcUgF+q82NVBcgzzzxT/K0tvvKVr1SS5qkKELkES9qWeOSRRyqXLsm/XX/ksi69fSmQ5G+6zy7+4A/+YPPxj3+8XLdvASKXO7388stl/+TyLLeNLv2RYynfFwlpR/5GAYLp6OS/Q8IblHiGfHei5/bbjP3O/Gj7a4jyScK0Bch0/UYK8pwC8Et1fqyqAJHfvJD/b4u3335788EHH+wfNV0B8vDDDxftSlx//fWVL6HfddddZX9++tOfbm677bZymSTur776aqXPLuQ3QT7/+c+X6/YtQF5//fXNH//xH5f9Oz09LbfRpT8vvvji5otf/GJQOxQgmM6w5P+QpBqfWrQm1RMVH2KChH74/jaYWQGi+9P0yUbrMcFiyfMKwC/V+bGqAqSvqQqQpkvCdDtd9qtLf/ru11j9mer5GkL6gbUZIflX734fJaAqgfUnuxMWH2KKhH7Q/raYWwFSv3TsaP225Vg6eV4B+KU6PyhAtihAKECwXId3rgPDuqRIJ96+MB432vYtUyX0Pfe31QT9PXwfJSR8n2DoIrEhKD5WSZ5bAH6pzo9FFyDyPYSPSHhFwmdO2115btNiXqN998c/k4+Z2Pn/3sZ/s1j8k67nGf/OQnN/fee2/RtoQ81rUj+1D/foi1X1/60peK39Jw6+r+1ENu0fud73yn3Kb+nQ35fZDnnnsuqD/1wuH5558v173//vs3jz76qLcd+d0R+U6IWyb/lr+55a+88sq+xXhkf7Au4xYA/i9aN+Wliy1ACt33t9UsC5A9q+jqW2xhEeQ5BuCX6vxYdAEyVUiy7NQLEB31u2nVSZLt1u1yt6ixossnDl3uXhW6X13uNhaLbBcAkA/mfcCW6vygAPEEBUhzOxQgAIClYN4HbKnOj0UVIO+++25xWZEkvVPGs88+u9/iZvPGG28Ud6zyrXf77bcXv+Btefzxx8t1pY1f/OIX+yWb4vIn3dYU8cADD2zeeeed/RabNfWn3k7oftWPj9z2V/7mluvjHAsvRACQF+Z9wEYBEuCjjz7avPXWW8U77lOGfD/CuXz5clGE+NaT71TI72lYLi4uynWljffff3+/ZPcdDN3WFCHHSo5ZiKb+1NsJ3a/68ZF/y+1/3XJ9nGPhhQgA8sK8D9goQIAIGI8AkBfmfcBGAQJEwHgEgLww7wM2ChAgAsYjAOSFeR+wUYAAETAeASAvzPuAjQIEiIDxCAB5Yd4HbBQgQASMRwDIC/M+YKMAASJgPAJAXpj3ARsFCBAB4xEA8sK8D9goQIAIGI8AkBfmfcBGAQJEwHgEgLww7wM2ChAgAsYjAOSFeR+wUYAAETAeASAvzPuAjQIEiIDxCAB5Yd4HbBQgQASMRwDIC/M+YKMAASJgPAJAXpj3ARsFCBAB4xEA8sK8D9goQIAIGI8AkBfmfcBGAQJEwHgEgLww7wM2ChAgAsYjAOSFeR+wUYAAETAeASAvzPuAjQIEiIDxCAB5Yd4HbBQgQASMRwDIC/M+YKMAASJgPAJAXpj3ARsFCBAB4xEA8sK8D9goQIAIGI8AkBfmfcBGAQJEwHgEgLww7wM2ChAgAsYjAOSFeR+wUYAAETAeASAvzPuAbdUFCEEQBEEQBEEQ84sUohQgwFwwHgEgL8z7gI0CBIiA8QgAeWHeB2wUIEAEjEcAyAvzPmCjAAEiYDwCQF6Y9wEbBQgQAeMRAPLCvA/YKECACBiPAJAX5n3ARgECRMB4BIC8MO8DNgoQIALGIwDkhXkfsFGAABEwHgEgL8z7gI0CBIiA8QgAeWHeB2wUIEAEjEcAyAvzPmCjAAEiYDwCQF6Y9wEbBQgQAeMRAPLCvA/YKECACBiPAJAX5n3ARgECRMB4BIC8MO8DNgqQXi42ZyeXtts42Zxd7P+0d34qf7+0OT3f/0G5ODsplp3UH4TV44UIAPIy/rx/vjndtnnp0un2X81cvnHJl4wAM5AqL6IAWZFyohsaK54oZf9GdX56fPxOzrYjswv3YibR8oJ2cbY50duS6Px8ddhe3/0b5bgAwHAy/wwh+UR1mvUXIPIaXM8rmnKRRr45tEfwRivayDhJgQJkRShA2sn+jUMn8f4IPYxurO7CLgiq69Wj/Z04J2x7ffdvvOMCAGOQeae38k0fnWccFyCH11+9np2jtNoXIL3zlKGPn4g3T+FFISl5DlKgAFmRwfvl3nFZ8WQwznh0485zrCufUAQUBe5F4sRNyv7H6Em78vTo7YU8b0Hb679/uripdkcXJgHHBQBGIvPOIOW85+auagFSzs/1T3nd4/p8+utejwfGfPKctjenehRpGIUc/xQoQFaEAqTdOONRxl1DEq2S9OZDqV7EyhcbX7uHidv73JaPbZvAQ7fXd/8O/fTud/BxAYDxyJwzmMyZp9tCophj1Vy6/b+L7bITT5Ex6DV5P0cPfT2fR55zeG04ep0qX4sOxxNxybFPYXkFSGWw+mI3gPsWILJsHidsdxQg7WT/ptfwCYJSGaPluPZMwE3LCiNvr5WxvbLAsAqhlgIFACYgc864qgWI32GebAvvvL2fo4e+nvd+/IhcbmK+NpSvR/Pob27kuKdAAaIcTpJlJkgUIO1k/6YXUBDUj3U5ro9f0NxYbnpeWtfpsL121v6FfgLSZ5sA0I/MSf3od+5DYz+/lXNse3hfJzo8vil65wOjUcfQfA3TxRqvD7HJcU9heQVIhRu0wy/Baq3QF0AXUIPCnCSWT/Zvem3v9LvlaqyZBUFAMbNVPvfea427bC+EvX/2eXR4TPoXRAA5kXmnn8O8FR4yp7bM227+bXqt3a/Te75sfXykObl8rWl+Y3cNOdhSyXFPYfUFyFFszwA30N1Jt5aBf9iPgdE0Syyc7N/UyufB+OKhG5uVSd8sCMIKEPvxXbfXLnT/itiOpfr/A0BMMveMRn2XzZw/VdLtnfPc8oTzYTVf6P46ECo4v1LHjJeJuOSYp5B9AXJYb7oTMBa9X73MYFKcmuzfpNq+aO2OcT15Lyff+ji0P22osB7feXstgr9IXn/ncPnnF4BlkjloFOW86eJkcyI5SGUyrM19nonS+1p91PY0cdhmnE9AgnMs9doyZX9wTI55CqsvQHxJUrXy30ZzJoUVmXY8qhce75iyx6tdEAwpQPpsr0nb/u2Yxb+E8akJAExF5p5hDp9E7+ZTNxfuCxA9t9ULCc+c15SfrE35etA694e9vmB8csxTWFUBshvou4QqtABZcqV9VEhNFStKGmV/pqFeoIzj1fgJlVkQHNrtWoD0256lff/EofioFT0hly0AwARk3umtUlC4ucsly/v/d+vs50aZe0/Pq/nJgfX3qtFe35Mm82GvGzsUIKnIMU9hJQWIiv0gDylAlv4x32gTVFu0ThzLIfszvoBJtkzAjeQ7oABpGq/lWHDb7709n8AXkbJN64X18AKz9HMPwHLInNNH5TW2kkzUChCxn3P13ObNQ9rm5j23bTMXd/OttYLbjtlADBQgSyDHPIVlFiDlCayjejLnUID4HU54zuFjclzGpSZNc4JVk3CHcM9f+alCwxNaXWfY9qpC9m8npJ9HhRIATEzmnH52c+lhSnNza/OnFyVPkVDOgQ3zpMi5AOENqrjkmKewuAKkPHkrcTwZ5FqAhCSBOZNjM57Qd2yGFQSHMW+9Y3Zof/eYYds76PaOlBt7TedVuS8UIAAikTlnFK2f8tYcfdpRn6tt/lynRwTM3VMqc5K2OV+9sUwBEpcc8xQWV4AUE0A5kN3JTAGyoxLGQRE4uS6Q7N84uiXnrcoXNk+RoSZm76aaHmtpfUz3/Wt/oVGFUeIXRQD5kDmnl3KeDI36a+dhzivyjaOCxObyFHOqdH2zVpjFJyDqdaFtn9te5zAZOeYpLK8AqZigAClO6g6J3KyMVYAsdf/byf4NNsU7NS0FwWESr43pvn1p2t7gNn3tquJjG7zAAIhF5pxeKnNaSHjevHNtnJxtztw8HjABrqUA0cewqSuHT3zW+wboXMlxT4ECpKY8CVKftCmUiScFiK2aSLdF8DAqJ2nr2Ldst+t4Nbc3bP8OLyJ2jFa0AUAAmXeGcW/uGcmxe+30fvp7/MZgyHQdMpcGRepcJugNLfW603apFkYnxz2FvAoQORG2fwgpQLJMktQ7NWvd++HjMVUBsuN7Uer1+jJRAbJjfBLHCwuABGT+GaL8BNo74R3mTGsurszbgfOge4w5v7s53N7oPD4B2Tp8gm8UcOXrUc/XMwwixz2FPAoQVYHLyX/eUGQ0fXKyduUkueKdl/0DAORj0Lyv84cidL6h3rBpeN08JODN63XSVoC0OrxRNPkbrpVjWMvXVPGx5txjzuTYp7D6AqQau3d77U857PZy4I7Zmj/9kf0DAORjrHnf9wl0EQ2favhyEfs1dqzvcfqi+ml3dV+aP3kfhS40fMEn5MnI8U9hpQVI8zWX5jv95QkS4WScm3Lf1118yT4CAPIx9rx/XIj4Xzd18SFFh37c4Df7l/QJSEl9YqSCDz7SkucghYUXIO4Eqp38utL2VdVtlfjazoa2/dWx8plA9hEAkI/R5v3aa+nJSa0QKfONWqKtXlfrRUlvgwsQYEfGUQoLLEA8H1F6igx5p6HpvDx+B8Nua/GOrmH1x5ovvXJkPwEA+Rg27/sui6pdJVG8xu7fCK293vpeVyuXZe0TFTMnGTlyeJ1HNzIuUlhgAVL/CG/dlwxhXKlONABAGn3n/ePvb7TkG7Xio+lNUF8RAqQgYzCFBRYgQH+MRwDIS/95f//pR5cCQS6NCr2Sosu6wEQoQIAIGI8AkBfmfcBGAQJEwHgEgLww7wM2ChAgAsYjAOSFeR+wUYAAETAeASAvzPuAjQIEiIDxCAB5Yd4HbBQgQASMRwDIC/M+YKMAASJgPAJAXpj3ARsFCBAB4xEA8sK8D9goQIAIGI8AkBfmfcBGAQJEwHgEgLww7wM2ChAgAsYjAOSFeR+wUYAAETAeASAvzPuAjQIEiIDxCAB5Yd4HbBQgQASMRwDIC/M+YKMAASJgPAJAXpj3ARsFCBAB4xEA8sK8D9goQIAIGI8AkBfmfcBGAQJEwHgEgLww7wO2VRcgBEEQBEEQBEHML1KIUoAAc8F4BIC8MO8DNgoQIALGIwDkhXkfsFGAABEwHgEgL8z7gI0CBIiA8QgAeWHeB2wUIEAEjEcAyAvzPmCjAAEiYDwCQF6Y9wEbBQgQAeMRAPLCvA/YKECACBiPAJAX5n3ARgECRMB4BIC8MO8DNgoQIALGIwDkhXkfsFGAABEwHgEgL2PN++enl4q2hsbJ2cW+RdvF2Yn3sZ3j9HzfIuAn4yQFChBkhfEIAHkZa96nAMEayThJgQIEWWE8AkBexpr3XQHSN6d3RUWXAiRkXa/z0+LxFCBoM9b50RUFCLLCeASAvIw171OAYI3GOj+6ogBBVhiPAJCXseZ9ChCs0VjnR1cUIMgK4xEA8jLWvE8BgjUa6/zoigIEWWE8AkBexpr3UxQgg8Ps7PnmdL9O7yIHqyBjIAUKEGSF8QgAeRlr3l9TAVJt/3RbjiBXMgZSoABBVhiPAJCXseZ9V4AMjXlcgsUnINiRMZACBQiywngEgLyMNe/HLECAWGRMpkABgqwwHgEgL2PN+1NegjXaJVdtcXK2ofyBJuMiBQoQZIXxCAB5WcK8TwGCVGRcpEABgqwwHgEgL4Pm/YuzzYkk7m1RSewvNmcnnnWO4mTTfDXWoZ2+n7oAbWR8pUABgqwwHgEgL4Pm/YQFSPmdE6oPTEjGWAoUIMgK4xEA8jJo3ncFiHXpkne5K0CsAqNtuTjcpWpYtH3KgtzJOElh/QVIcSu6ldzjen9bvVRvhuyuUV32ZJZ8PAIAoho07y++AOE3PtBMxkkKKy9A1Ak8Qtae9BZ85cfAJ5uTk2kmlOMvwentrOOe4dL/aaixZr1QWdz92nWEtFGOCRVjVqd9+wUAMyJzV2/JCpCBytcHChA0G3R+DLDyAmRLJWlDc7NkBYgv0ewS9YkzuL3D5FgWJwtPQGUfJlFL1sPGWvs7XFY7zWNx6AtO/34BwNzInNWbt8BQvMtnUIC416SFv2ZjeoPOjwEWWIC0J0ejhCfDmvIe4KahxYfE0QRkHENzojqsv/TEU/ZhfO7FZPvcnuwLtdYDpR5THw+V5/y4mNCfVFU2ox/X+4nq3y8AmCOZs3rzFhiKd3n6AqR8nTBfCw6v60u+qgHDDTo/BqAAscJz0kYvQFTC13WbhyQ1YIJrmWB1whse80xQpW+jK5+n7T7rf+8X+8kLUMM65nPf8qJRfhLT94Wtb78AYJ4Gzfstr4/+5ekLEJevWPlG9XV9nq/XiGPQ+THAAguQBtvkKzwpOt+cdzzjohYg6pKe/sVH4GObJliVcHaLeU5o0rexlce7ONjuhWXou0pGO+W4sI7vWNu3TN0+AIxL5qvelliABL0RxScg2Bl0fgywngKkNTGrKq+h75DdxypAyr712JYuPoInFXOCPSSb5uRbU/Y9cP3YpG/jOr48rXwOBh0Df6IfMm77jO1wFCAAlkXmq95C34TzFiBt0aMAUW9OtsYkrwFYGxkrKaynANkKTn7LCaXbye/a73tOtxYglYlO900ms/a+lvvf0kddpDRF+X2GbVTbc0l3rdhT/Z/rvCd9G5Wv8O05vqqOC5vdONj9rSn5H6cAsvj6BQDzJfNVb3MrQAL7wxtECCXjJYVVFSA6ObJPvv7v4E5agFQmlWpirwsG/7ark11b/0ILkDKOGvQXINO+8z4O6d+Y3D5Xn9P+Y8zxFxGB7Xb8NLCLaYsbABifzFm9uddma87zLndztVVgtC0H4hl0fgywsgJkqyX5GpJA6U8YhoSZPErfjeRdFw2Vx1c+ju05mbk2jo6JTJK+4+grQC42F+cyEc97QpX9HE1ZNB7v8+H56lEEqGK0OhwCP32YqgAx+wUA8yVzFgC/VOfH+goQSZrPjOyoIWEMMXkB0kIXIZe2hcGp+tRjyDvS5X4Ft+H/BGQJZD/H0ljM9k7WD0WG/clTigKkqV8AMF8ybwHwS3V+LLgAOVyOMn74EzeXqPfNv1zC2rcAEZUiZB+D8kGVKF86OSn+fdy/XfJ5+Hu9AKkvny/Zz3Ecxp+132VhF/wEqTHtLQYPyzsXIPp5rkdr4dnWLwCYL5m7APilOj8oQLwxz3f2j4qPEd6J9hU0ErrpwzrVgsP9//Hy+ZJ+jqIpoT+KkE/cQpL8wzpNxV75fOh2ehcgFB8Alk3mLwB+qc6PVRQgI+ThttBEs5KchRZHYZeCHRUJoyWC6rIa1265v66Y8CW99U9AwhLjOZA+jqHr5XjNx0U9Dy3PbcinKt0/ebGE9wsA5krmMAB+qc4PCpA2yQqQ0DYCwkgeXWFzcnq620e3nv5Sern/uq/1AmRrqi8+j0z6ONwhMW8ruMpiwEzgVZIfMJDbP20a67zo1i8AmCuZxwD4pTo/VlCA9PtCeTCXgFsJpHd5W9/s5UefdowR3r67BHPbh+LuVdX1Ls5Oi7753033FCDlPs37UxDp32BlsRUw9sp1fQVBjyRfFcTeh4xSCFJ8AFgPmcsA+KU6PxZcgKgEesp8N1IBcnxJz3bZtggo/m1tu43+JGP/J6dSWJj7eEhEq3morwDZWsCnINK/YQ6FVlhybiTzqpDoWrDpsVLpwoA2S2O0AQAzIvMZAL9U5wcFSBszOd/zLu9egJR/0xllQwERxHp8vVAw9tH7ZeaCUYC4fdgum2vyKn0bRCXoQfXH1vFlU6qICYjj7bQ8PrRjR4b2CwDmR+YrAH6pzo/lFiBlIriWAsRjogKk/O6H27h3Hw7v3B8XE1YBcmh7rp+CSN+GOHz60GH/VNGyO5bjJPq+y/WGFQUUIADWR+YrAH6pzo/lFiD1d/GnssICpNj+qfqbZx+aCwm7ADksm+enINIvAEA+mPcBW6rzY7EFSJkg903OQ62yAKnxFSAX50Uf/UVEUwEizW2fm5m+PZ7qRAMApDF83nev2U2vp2qdo/C91h/erDvEkDdUp+ijCGl35+hTeXP943335xrDj+mQN0LD90dMcZzikD6ksNAC5PBET/4ue6YFSLPmAmTOUp1oAIA0es/77jVUh/k62SFZ9rVbRkteUBezjw05wvGNdFzU8gSXb/ji6I3LDv3t1G674P2Z6jhFJNtPYZkFSPmEdzxR+2ga1DoqA67ppNHR0v/GSapDNJwMha4FSHlMKEAAAPPWe953r8HFa+P+jTfzddK97ge8LhbtHq9XJqddEuZJ+xjYbpmr6JzmkAdV3iiW/KHejvfxokN/O7Xbosv+THWcIpJtp7DAAsS9+76NGJf5UIDYx2Cml1k1kX4DAPIxzrw/YnJvattGm6n62NyuK5yOP8BoyS2UXRsDChCDv91m/fdn+uM0hVR50eIKkMO1c0NO8g5Ck/PKcnfSWIO+bflepbLuIfTxoSeVjr59Skz6DgDIxzjz/lTJvda2jTZT9bGp3aY2w7e3S87r6w0/pv52mwzZn+mP0xRS5UWLK0DE+Wm3ahZwKEAAIC9xC5BadLlSYP9mYP9LcabqY1O7zdsM+QTCvbF8vN/DjqndbpMh+zPtcZqKHKMUFlmAAH0xHgEgL+PM+80JpJksNz5G27c/6F3wqfrY0K67gsIoCnZFQC2x9lxe7n94x/4Gt9ugz/6URj5OkchxSoECBFlhPAJAXsaZ99uSew+XdG6j+V14l2gPTUCn6uP0BYhEULHQ1N8h7TqDCgUKkC4oQJAVxiMA5GWceb9Hci9c4mk+bt+ukXzuElNZrqPPdxAahPbRu7x5m0GXFqmiolMR0rafRrvNx3TI/kx8nCYi+58CBQiywngEgLyMM+83J5C2hseVCfJYiecEfSw0Ld8vG/rlancsgiqQDvvZqV0xZH8iHKcJUIAAETAeASAvSQsQKwEui48xk86R+1hqbnf37r3n0wvX7tiFwlTr7vXfnwjHaQKp8iIKEGSF8QgAeRln3m9J7uX7B/VlLrHcRiXpdN9V6JAUhxmxjxUB7RZt6GLq8AVy3a4k4cffNdm3X+9Dh/52ardNh/2pGu84xSTbToECBFlhPAJAXnrP+2XCaIVKJJvWrWbVZVJshpXA+kzSx60u7aok+ihq7bpPAbzRpQ9D2m0Vvj9THaeYZPspUIAgK4xHAMhL73m/U3K5TS89X24+zisTFiBbYX3c6tiuqBcB1l21fMWClX8H93erS7shgvZnwuMUi/QhBQoQZIXxCAB5Yd4HbBQgQASMRwDIC/M+YKMAASJgPAJAXpj3ARsFCBAB4xEA8sK8D9goQIAIGI8AkBfmfcBGAQJEwHgEgLww7wM2ChAgAsYjAOSFeR+wUYAAETAeASAvzPuAjQIEiIDxCAB5Yd4HbBQgQASMRwDIC/M+YFt1AUIQBEEQBEEQxPwihSgFCDAXjEcAyAvzPmCjAAEiYDwCQF6Y9wEbBQgQAeMRAPLCvA/YKECACBiPAJAX5n3ARgECRMB4BIC8MO8DNgoQIALGIwDkhXkfsFGAABEwHgEgL8z7gI0CBIiA8QgAeWHeB2wUIEAEjEcAyMso8/7F2eZk287J2cX+DzX75ZdOz/d/2Ds/LbZvPg5IjAIEiIDxCAB5oQABbBQgQASMRwDIyzQFyMXm7GRbcGz/1ieOCpJ9oTIk6rVP1fnm1POY8DjdtoA1kuc3BQoQZIXxCAB5GWXepwChAFkpeX5ToABBVhiPAJCXUeb9qS/B2q/XXEQYgh67L0BOzralUzfnpxQga5YqL6IAQVYYjwCQl77z/sXZSfFYKypFxUgFyJCgAEEfMnZSoABBVhiPAJCXvvN+SAHSts5xGIl8rAKkd1CArJU8vylQgCArjEcAyMsY8/7uU4DjTzLGLkAmvwSrd7QVThQoSyXPXwoUIMgK4xEA8jJ83j8k7/4C5GTTdoXVds39l9YTfwIy8iVYrjBr3z7mSp67FChAkBXGIwDkZfC8r4qDk7OzzalK4pdzCdZE+ARk8eT5S4ECBFlhPAJAXobO+/pdfhfuk5A5X4LVvW8doscnKZgneT5ToABBVhiPAJCXYfP+7tKlk9PT8ja8u4Jkd9nV2JdgUYAgNnk+U6AAQVYYjwCQlyHzfllgnOvfAdl/n2Kb8Y9dgAyJkOLFFSW9Ch2skoyHFChAkBXGIwDkpf+8r764XfshQknkT7f/Pu/8KUPCAsT9VgmfXkCRsZMCBQiywngEgLz0nfcrnxYYv4Tu1gmPeJdg1XXvay342GSV5LlNgQIEWWE8AkBe+s77xXc93KcFRgHis0v0Qy7LUhZQgITsO5ZHntsUVl+AyATCSQMn9XgEAMTVe97fFh1nLqmvFyDucqaeIe347q41VoyZ91Q+CcLqyHObwroLEHVNZYwipDhJOUNnLel4BABEN8q8n3EB4vrpTW/KPMu4tAyzJ89fCusuQER5cnT8OLSrkYudsSamkL4Mvi7UxQKKL+knACAfo8z79QLEss8FTk7kdbV/Ur57XW7+vsiYRYbN3b3Ln0PpXIX3X5dplPOjh2UWIAPfeWiLvif1IZEfXuxQgExD+gkAyMco835AAVK+bu+/N+JeW8NzCpfsqzh6XfWss43JXn7dm6vWnbPKN1/5BGSp5PlLgQLEE/3fVVATw8DZoPEjzwBdJr7uk2SNm4AoQAAAMzPKvG8WIPtb9bqoJ+plgm6/xvrfcGx7I9NfiHQtBELfgFzAyzt6kuc3hWUXIL6KvDjZ+30C0ZiIq0lkrGg6oSlApiH9BADkY5R5v1KA+JL/pryjVqRIyOul783UPq+jR+10yIFac5vhV3Rg3uR5TmFlBYg6ya2PCxtQgPScZShAAAAzNcq8XylAtnq97rnC5fApxe61fqzLl3bt934tR5ZS5UUrKkCsjyNDYnfyBxUgIyTZIcUFBcg0pJ8AgHww7wO2VOfHMguQI0OKD4mAdx8yKEAGBwUIAGBmmPcBW6rzYwUFyHHx0TXpDnrnnwKkPShAAAAzw7wP2FKdHwsvQNR3Porkt/7/PtWCJThnTlSADI0uBUhQIebDJVgAgJli3gdsqc6P5RYg6q4P1by3ercJvaya1Hf80teKC5CcyDEBAOSDeR+wpTo/FlqAuCLDLiKaLivqVUOs6BKs0S65aosedyKbmvQLAJAP5n3Alur8WGgB0s5Osnve7s4VICPGCLVMLxQgAIBcMO8DtlTnx7oKkKMf45HY/YiOmXQHJslTJO1HBYi3/57odfvhth8TOrSTqjCKQfYPAJAP5n3Alur8WHgB0pB8m4VFYMJey8JdATLGdyrMy6sSFiDld07WXH1syT4CAPLBvA/YUp0fiytAmr+c3e/yqqNPNzzFi9vupF/q9v7AouJd7goQq8BoWy6qX9zvH22fsqQn/QQA5IN5H7ClOj8WV4BUk2UpOMZJnpvf+D98yjDpBwSLL0B6fr8mIuknACAfzPuALdX5scACpC5GAeK2MfE7/MkKkIFcvyhAAAAzw7wP2FKdHysqQPokv4GfbMRKsJdagLg7hFn9nhFeiAAgL8z7gC3V+UEBElCAlN8RmfT6q62FFiDRjs8IUp1oAIA0mPcBW6rzgwKktQA5XOI1eX690AIkyhf0R5LqRAMApMG8D9hSnR8UIC0FyOEOWRNffiWWWICUP9A4XYEzplQnGgAgDeZ9wJbq/FhRATIsvAWIS/i3EeXdfbW9xvAWIG3Ro0Do8uvvC7j8SkhfAQD5YN4HbKnODwqQffjy5/I3R6xPJMY2twIksD9LuPTKkf4CAPLBvA/YUp0fKypAprkE6/w04qVF3kusFO/yxJdgLQwvRACQF+Z9wEYBAkTAeASAvDDvAzYKECACxiMA5IV5H7BRgAARMB4BIC/M+4CNAgSIgPEIAHlh3gdsFCBABIxHAMgL8z5gowABImA8AkBemPcBGwUIEAHjEQDywrwP2ChAgAgYjwCQF+Z9wEYBAkTAeASAvDDvAzYKECACxiMA5IV5H7BRgAARMB4BIC/M+4CNAgSIgPEIAHlh3gdsFCBABIxHAMgL8z5gowABImA8AkBemPcBGwUIEAHjEQDywrwP2ChAgAgYjwCQF+Z9wEYBAkTAeASAvDDvAzYKECACxiMA5IV5H7BRgAARMB4BIC/M+4Bt1QUIQRAEQRAEQRDzixSiFCDAXDAeASAvzPuAjQIEiIDxCAB5Yd4HbBQgQASMRwDIC/M+YKMAASJgPAJAXuLN+xebs5NLm9Pz/f8CC0ABsjQXZ5uT7b5dOjnbTjkNzk+LY3CJGWkWKEAAIC/D5v3zzeml0+1/A7i8IHT9YLvCZvx2AQqQ4Vyi31YQ9HB+6nlHI3EBIn2aYl/XLuaJVjxH2+1NVXtK+ydnMx0B+3Hv69/uuPBCCiCOIfO+m8cvXTrZhEy35fqjTvwUIJjOkPNjiNUUINOc9FuugNhGpemUBYjq06B2dTtmqEm3fHenOcZ+CsYk/RubG3v1/bb+Poox3mkLev6bw9y3fdthBYh7cbVjtoUWgNmTOWSIi7OT/VwUUITs5+bT7YrjzVpjFCDySU51Xu0WFD9rJc9vCusoQMpkLOwdis5UolYmQikLEKH61LvpoASUAqRRQyEwaQGyVb4o9t1A0PPfHOam921TgABITeaQoapFyMBkvvPVCxQgmI48vymsogBxid6waCle6gl/pQAZdmK75OowwU0TR8mi2ydvFukmPE8BYkyeUyfcY5D+jeeQOPv2udfxCCzyekX9eWt8/puZ+9a5qJEXtf1x9I2rhkIGAELIHDIGeY3ezUWpCpCmPEXWaVq+73Pnbbv5ngJkrWRMprD8AqRzwmNFSwEittsqEyEKkCO5FSBjPl/lMaMAqdq3RwECoC+ZQyY3YD5t516P7bnQzcl2gUEBAr8o54fHwguQQ+LfP0EJeWehRieJbSdzh0nJJbRjJ1utyaK3bxQgjUYuFFqP2XZ7ck1xq4sO1x0PeMFsfa4bCofjFzMKEADTkTmkH5mb2nOD8s0o72uj5ClW8n4oLPzhHqfW82zDzcfNRcKwN0opQNZLnt8UFl2AhJ10bTyJtskzWUQrQGTyaOhjkRD7l5vJoutbY3gKkJbokc9GI/0bTk3kDc9/a5IeLGx7enwGbXPNBUg5VkPOawBrJnNIH4ccw56DynWMyfDwSbkvT/HkFJVwj6mupzd16GNbHjRRAVLmEW3bx1zJ85fCcgsQlTz3yJ8Ud2K3JCpqe0Wi5BKcEQsQi54E/durT2KBE4HeJzMoQKr0sW4+zu55G+t4tL3QtS0/MmBstu5b69jSx67tRbh7AaIvj+tcvABYFZkH+jLnEvV62DqFhuYLpf2cWK5fmyOLv4e/Fu3sC5DgPhzs5nv/NsrXnW30eCnBDMhzl8IyC5DARPg4fCeQe1fAKkCqJ345AR1NKD3fXWg4Y/XE17auOFq/baJpTEDdfp9sTk937Z6cnjZOoq1J6QxI/4Y4HOP2d9bHPx7blxxjm25bnZLtFRcghzmCT0CA3MkcMoiaz3Zz3oBPE0LmWzd/leu6OfJ0+3qs2pLoUVCMqjw2IUUQ5kievxQWWIDoE99zMjZG1wKkuq3KYycsQI4KiaN+q4TN83j9joS1Thf+ZHO/vwPbjk32Y6jzbUEWktQOKkB6F9lWePrcWiS0h7lv+7Z9hcPuuHgKEN8LaUM7ABBC5pDBtnORnoeOXmcbQ+bfw+t223zmcoDD/HooQM71a0NL8XGcS4wYqQsfjEaezxQWV4AcTvpdAhOW5LnioJ7Ii6YCZEsSIF/jRwXI/mTvlW069SLG119VfBRhJcO19XpPFq6d2nbOz6sT4aD9jkf6GgsFCAUIgPRkDpkHeY0/LYoRmyo29n+p/829toQWMpMEBchqyPOZwuIKkN2JeDgxxytAfMu6OBQPw2oQSbisokIVKNuT/1xNLvY2dxNefbE7blPGoOMwEenXONRzMTR8B2pfgEyaeLsCpMcT1XretRY3ekxSgACYjswhk/DMT/U3WI4/zWjhnfNqRUn5BpWVK9g69werN9n50WKBBUjVfAqQrTLpGqGtOuvTBv33Du9IUIAMRQEijzUfWp4LVuhzZH8sKUAATEDmkKGKxL0+R+3nJz0PDitArHzk+FOR8tONDq/7Zb7Q5TFYvTHOjz4oQMoE3rOsNYkaJ9qSK10s+PfTTU5h7YVRCbZMVqrQWXIyKP2PJWxsGlZSgPj6X3+B3v6ltZhb8pgDkJbMIUPt5q36pcjjFiBu3eP57rgAqbzuB87hZdHSN3q8VmD+5LlNYTUFSFgsrABRSX/QOxZ6/W10myuqRUwZlUaOE8WlJYbS51hak/QmDQn8aChAAGRA5pBh/G9i+oqL3gVIUy7iLUC21Gt+yBw5tABhHl4neW5ToABxJ/CgjySrCdTwk1S31/0aTz0pFVHbt6Bj1jhbtieMRfRIbKcm/YqlNUlvstACpPMLnP50zdePGMcBwKrJHDKIMUft5sHqa/Tub00FyK6YqDZ1eAPQP9cZBYhw87j52OGCiygskjy3KaymAOl7YpQJU/8GymRfmqhPPj6yjn+iCEzsB8RuN33bae5zE/ccVKNH4RSB9C2WIWNz6LgOMpcCpKnI6FuAlOflPMchgHhkDhnCzWvVeci9jlZfO3dzY1MBsn+cemOwfA013whtKEC29Lw7RRHS+HpUFkD9cwikJc9fCnkXIKp4cCdtcSKbk0BVOWlUtr+fXDwdqiZn1cSoukxO5DGKkf2EsN/Po4lJvXNih+qnOl5N0eu5iET6F0v/selebCZOnicoQKpkP/Q+1P9/5/gFWulZgEz9ggxgOWQeGGI339XmLmP+3K0bUIDs/3CYq5oS+OYCROh8pM+cbmt+PdLbHXWziEaeuxSyKUAqJ+dRHE5qt15j0lJL3I+2XU+aauv7J4fdSX5Y5H93JUzgY+v98oaadChAOgkdm0fc8xJYCPcW9Pw3h71v7kVrG24ltb3D41peWPeP6VxE8AkIgD2ZQ/rzvJ6q18L6HLib9w/rHhUgak7Tb5TYc6loL0CEbm+0IqTt9aic11vyDcyWPH8pZFOAVE5MHZWT6pA0edvzJeDGhr3b6zQhRCxAvBOLOxaeAsSYiHon3BFJ/4Ywx9EIsUuy3XMX4TiWLxz9w9/Hwz4cFQ7qHCqWuT60nEedCxAA2JM5pLf6HKXnTc+8VS9ArHnWPVTmOGP6O2h57dWkvS7zZehrWmsfsVjy/KaQTQESxp+4H5+g26T8rDlxEq5vkxYRXhQgFunfEKGTdZ+QF42y/YAXmsFakv8m5nOtXmzNZmUcFfvnGWPl2K3GnMcUgHmTOaQvN9dV3jCRaHwdrL72HnKB5sc6R+vvY5I3YowC6RB8irx28jynsJoCZHjCdvj0w7XlLTzcRqzkbf93N1FU2ujURwqQKUj/5k2Oe5/nvAdrDAewnuuLi/Nt/8NesMpzt9KIOg/3McmLLoBsyDzSz8V2npLX8MOcJvPW1HOS942uOb+wYtH6nx/DLL4AKZPiEUOf50WS5Eu4K8nb8bu21QnqeHn7XOJ/J7hbBBYgjeEpQFpizvOk9A9zsR3jnYpyAOiOeR+wpTo/ll+AiNGKkLB3boV1KU7jOyNGwu9/DAXIFKR/AIB8MO8DtlTnxzoKkOjql4l0v2TGf/mJ5gqQPpfjBD7WFSBcggUAWCnmfcCW6vygAOmrSMb7FAdIiRciAMgL8z5gowABImA8AkBemPcBGwUIEAHjEQDywrwP2ChAgAgYjwCQF+Z9wEYBAkTAeASAvDDvAzYKECACxiMA5IV5H7BRgAARMB4BIC/M+4CNAgSIgPEIAHlh3gdsFCBABIxHAMgL8z5gowABImA8AkBemPcBGwUIEAHjEQDywrwP2ChAgAgYjwCQF+Z9wEYBAkTAeASAvDDvAzYKECACxiMA5IV5H7BRgAARMB4BIC/M+4CNAgSIgPEIAHlh3gdsFCBABIxHAMgL8z5gowABImA8AkBemPcBGwUIEAHjEQDywrwP2ChAgAgYjwCQF+Z9wEYBAkTAeASAvDDvAzYKECACxiMA5IV5H7BRgAARMB4BIC/M+4CNAgSIgPEIAHlh3gdsFCBABIxHAMgL8z5gowABImA8AkBemPcBGwUIEAHjEQDywrwP2ChAgAgYjwCQF+Z9wEYBAkTAeASAvDDvA7ZVFyAEQRAEQRAEQcwvUohSgABzwXgEgLww7wM2ChAgAsYjAOSFeR+wUYAAETAeASAvzPuAjQIEiIDxCAB5Yd4HbBQgQASMRwDIC/M+YKMAASJgPAJAXpj3ARsFCBAB4xEA8sK8D9goQIAIGI8AkBfmfcBGAQJEwHgEgLww7wM2ChAgAsYjAOSFeR+wUYAAETAeASAvzPuAjQIEiIDxCAB5Yd4HbBQgQASMRwDIC/M+YKMAASJgPAJAXpj3ARsFCBAB4xEA8sK8D9goQIAIGI8AkBfmfcBGAQJEwHgEgLww7wM2ChAgAsYjAOSFeR+wUYAAETAeASAvzPuAjQIEiIDxCAB5Yd4HbBQgQASMRwDIC/M+YKMAASJgPAJAXpj3ARsFCBAB4xEA8sK8D9goQIAIGI8AkBfmfcBGAQJEwHhcnouzk82lk7PNxf7/AaAL5n3ARgECRJDreDw/vVTsez1Oz/crNCgKgO26J2d9SoCLzdmJbOtk0+vh56eH/lKEAOhB5g8AfqnODwoQZGXs8Wgl9l2jObk/35x6HjNKBFQgSQsQoYqQfn0AkDOZOwD4pTo/KECQlbHH4yIKkJCPOcTF2ebE8ymDWYBIYdDatlWATFhUDSl2AKyOzAsA/FKdHxQgyMrY49EVIKE5fl3YpwsuWT/d/iuAFBKyfsdLlspiqrYz/j66wuKwfvN6FCAA0pB5AYBfqvODAgRZGXs8rqkA0UWF3h+3j7qPZbGittGvAAncpyDWtgDkTOYlAH6pzg8KEGRl7PG4rgJkyz1WbeuoACm/k1HtDwUIgDmSeWmu/vZv/3bzJ3/yJ6PGP//zP+9br9LbstaxTPHYrvs+5LEh0XW/1iLV+UEBgqyMPR7jFyDu3yNFw3c+3KVVlQKkLFCOk3wKEABzJPPSXEniW8y3I8YPfvCDfetVelvWOpYpHtt134c8NiS67tdayL6nQAGCrIw9HtdYgOy2dygM6p+ASJ99/e1WgMR0OGbNxxnAGsm5P1cxE+kpiogQ1mO77vuQx4ZE1/1aC9n3FChAkJWxx2P8AiTAkEuwPEL3MbwAGbmI8sbhWLl+1f8OIA9y7s+VTqT/6q/+qkiC+8Tv//7vl+3I/zv6UqXf+q3fal1Hh74k6V/+5V/Kbf3lX/6ldx2rnb/7u7/zPlb/3Qprv+Tx7u9THLecyL6nQAGCrIw9Hl1yPjTmUID025fjRH9uBYjeHp+AAPmRc3+udCI9JAG22tF/19F1HW2sbVntayHbCmnHMlY7Syb7ngIFCLIy9nikAOlTgHR1KCD6ftIEIF8yd8zV1Im0/ruOrutoY23Lal8L2VZIO5ax2lky2fcUKECQlbHHY+jlSZbel2CpXwfvF4HFTFlAjHkJVlcUIAD6k7ljrqwEOOQuT/ryJ/l/Xzv60il9udHv/d7vle3oS7P05Uz/8R//sW+lyrocS19SFXLplO6DdQcqvb7Vjv77WMctJ7LvKVCAICvLHI/rL0BcIecvxChAAPQnc8dcWQmw/rsVIQm51rXNECH9D9mvkD4PaV9HSDs5kX1PgQIEWRllPJa3om2JyiVQh0S+OXyJekMB0vmL5p62Grn12z/B6F+AtBU5FCAA+pO5Y65iJtJd2wwR0v+Q/Qrp85D2dYS0kxPZ9xQoQJCVUcZj7ALE952OpgKk8TsgRgESuk++2FcF/QuQtiLnUICEBEUKAE3mhbmaOpG27oKlL7Xqeicoq03rsi79d+vOVyGXe+l1pC3Xvixz9N+tsNbXf8+J7HsKFCDIyijjsTHB3/Iub0vEG5avvQApLyezPpWhAAHQn8wLczV1Im21MyQJD+mbFSHth+i6vzqG7Psayb6nQAGCrIwyHmMXIC5B15n12AWIwRUV5r4qfQuQchtm5XAoQCguAHQlc8dcTZ1IW+0MScJD+mZFSPshuu6vjiH7vkay7ylQgCAro4zHuRcgvvVLXQoQ1yfry+FV/QqQwzZCPgGhAAHQlcwdczV1Iq0vYdJh3b1K/12H9aOEIWFd4hVyxyodIXev0n+3wlpf/z0nsu8pUIAgK6OMx8gFiDexbyhAmj9R6FCAuG2Yfa7qVYCU29hHY58pQAB0J3PHXKVKpLtud0hyPmQfdYTsb0ibIe3kRPY9BQoQZGWU8Ri1AHF/ryXfDQXI4QcFfdsKLUAO27UvjQrRvN9lX09PG4qMoQXI4fEhn+QAWBc59+cqVSLddbtDkvMh+6gjZH9D2gxpJyey7ylQgCAro4zHqAWIUTBYBYjbdiV0m2EFSHMR00XDftc/YVGfhlQLhWEFSPmJUBEBn/wAWBU59+fKSoBDLnMKuSuUvsxprB8utML6MUHdpr7Ey7orl46QHzTUfx/ruOVE9j0FChBkZZTxGLMAafik44gqPnYJ/CFx30VYMaET9uGfGLQVVtvQVYUqQg7bH1aA6MfzCQiQHzn352qsBNhqp+vfNb1OSIT032ozpA9d+x9irHaWTPY9BQoQZGWU8ej9lMET3gKkLXSifnhMc+JcLTSO1w0vRCqfFoQUPW3KgkJ/8qCPhe8TiXp/+0W/YgXA2sh8MFdTJ9JDEni9TkiE9N9qM6QPXfsfYqx2lkz2PQUKEGRllPEYqwCpX6JU4WvPLiwKR/2uJf96eZ/io+m4qPYORU5Lf7cOl4J1DS61ArAjc8Jc6QQ45DInK/TlTCGJuvV3fcmWvjuWvhQq5EcMQy790u3oS7O63u1qiuOWE9n3FChAkJVRxqNLtK0k3bvcFQxW0n28/PAF7X0qXbs86RDtiXxFpZ3aY6XvfYqPgvHJhac92Tc+oQAQg8xDcyVJ8NGcOTCsRH2tfx8rdPs5kX1PgQIEWVnaeDw/rb6Tf/hEYPg7/NIW34kAsHZznvenTqSnSPjn9vexQrefE9n3FChAkBXGIwDkZc7zftcf9QsJfZcn3X7I33Viry9t0pdjdW1Hljl6/ZAfQwzZ7lih289JqvODAgRZYTwCQF6Y98PpwkGHJOhd6Hasx1rrhDwW45HjnAIFCLLCeASAvDDvh6MAyY8c5xQoQJAVxiMA5GXO876+W1TX0HeLGqsd+X85XhLWXap0WH2w7i5l3WUr5DIwHdZ2h/w9V3KcU6AAQVYYjwCQlznP+5IES//6hE7sp2gnpP0h6+i/ayH70rXPXfuQEzkOKVCAICuMRwDIy5zn/ZBk2worqe4aXZN2HUPW0X/XQvala5+79iEnchxSoABBVhiPAJCXOc/7Ohm2fuBPh3VZVNcfDdR/D7mrlXXXqZB1Qu52pUOvY4V+rHW5l3XHLb2+vsQr18ux5DikQAGCrDAeASAvc573JfGV/kno5Fn/XYe1zpC/T23IPlq6PtZaX0fMYzInsu8pUIAgK4xHAMjLnOf9Icl5yGND/j61Ifto6fpYa30dMY/JnMi+p0ABgqwwHgEgL3Oe963kXF8+pC+d0uvox1o/GhhyqZK+K5QO65KkkLtI6XVC+mNdEmZtK+T46Mda29Kht5sTOSYpUIAgK4xHAMjLnOd9SY6lfxKSBPtY6+i/65hiHW3qPmsxt5UrOSYpUIAgK4xHAMjLnOf9qRPssdbRpu6zFnNbuZJjkgIFCLLCeASAvMx53teXElmXHlmXTukEu+vdsfQlW10vhbL6o8l6vnW6XjoVctcsqz/WtrjzVZUckxQoQJAVxiMA5GWJ874kx9LveugEW6/T9e9W6PW1kP5oVh+0Ofc/J3IcUqAAQVYYjwCQlyXO+yEJ85wTeKsP2pz7nxM5DilQgCArjEcAyMsS5319+ZAO6/Iq6+5SIZdaWZdCaSH90WFdFmVdymXdxSvkhw51WP0JuRSNHyKMiwIEWWE8AkBe1jTvS6Is+yMhybSj/x4S1mP130OEbLdrP7v2QbPaD+nDkO0umex7ChQgyArjEQDysqZ53yoWQhJ7HdZjuybhIdvt2s8hhYDVfkgfhmx3yWTfU6AAQVYYjwCQlznP+/qSpJAf9Qu5bEmHvtwo5E5Z1iVMOqwfBLTC2pYV1g8C6uNgRcilVtY68v85kn1PgQIEWWE8AkBe5jzvS0Is/ZOwEmC9jhUhj9XrhPzdiq6Jesg+hujaN2v9kOOQE9n3FChAkBXGIwDkZc7zfkgC3DXx1qz2Q/5uRddEPWQfQ3Ttm7V+yHHIiex7ChQgyArjEQDyMud5XyfA1h2ZrB/U02E9VrcfkngP2ZZFt9n1Ei9Nlrk+6MvJdOjLt/T6OmQ9R/fNuvRr7eSYpEABgqwwHgEgL3Oe90OSZM1aX4d+rF4/5O9a122FGNJmSJ81a1td+7x2ckxSoABBVhiPAJCXOc/7XZPkrgm8lbSHJPNdtxViSJshfdasbXXt89rJMUmBAgRZYTwCQF7mPO/rJFlfVqQvB7LughVyGZJ1+VPXHwrs+sOF1t295P/dY60I6Y++DExHyKVrVvshl5OtkRyTFChAkBXGIwDkZc7zviS+0j8JK5nX6+iw1reEtNN1nZA+h7Svo+v6Oob0x3rs2sm+p0ABgqwwHgEgL3Oe90MSYCsJ75owh7TTdZ2QPoe0r6Pr+jqG9Md67NrJvqdAAYKsMB4BIC9znvdD7sKkk2TrxwR16EuJrEuYdOjEW9Zzf7e2FXIplHWJlyxzfw+5hCxkfR3WMdE/PmhdomYd/7WTY5sCBQiywngEgLwsfd6XBFr2QUISZUf/XUfIOjqs9bu2Y0VI+5Yh6+sIeWyu5PikQAGCrDAeASAvS5/3uxYFIevosNbv2o4VIe1bhqyvI+SxuZLjkwIFCLLCeASAvCxl3rfuyGRdJqSTbetyKX3pkQ7rrlDWtvTfu4bVn5BLyPR2rfV1WPsb8ljughUXBQiywngEgLwsZd6XJFj6KiFJcxtr/ZB2um5riJB+6gjpsxVTPHbtZN9ToABBVhiPAJCXpcz7XYuCkMQ+JCGfOvEO6aeOkD5bMcVj1072PQUKEGSF8QgAeVnKvB9yuVHI5Ukhd6nqeimUFvLjfXoda1u6n/oSMutuVNZlYCE/MmhtSwd3wYqLAgRZYTwCQF6WOO9L0iz9rockyj7W+lbodoZsq+s6XbcVIua21kiOSQoUIMgK4xEA8rLEeb9r8mytb8WQRN1K+DVrna7bChFzW2skxyQFChBkhfEIAHmZ87yvLxPSoS9bsi4x0kIuT9KhL80KuRTKupxJ1vPR/bHu3KVD90df1mUdH72O/L9rR/dH90EfB2tbuZJjkgIFCLLCeASAvMx53tfJsw6dSFsJdgirfSus9kP6GSKkP9a+h6wzdf/XSI5DChQgyArjEQDyMud5f6wE22K1b8XUCXxIf6x9D1ln6v6vkRyHFChAkBXGIwDkZc7zvk6MrcufQhLsrpdyWWG1H3I5kxX6MifrUjEdet+t9a11rDt6db2kLSdyHFKgAEFWGI8AkJc5z/uSHEv/JKxkuOs6OvT61jo6QhLykHZ0xEzyux6HmH2bKzkOKVCAICuMRwDIy5zn/ZBkuOs6OqzE24qQhDykHR0xk/yuxyFm3+ZKjkMKFCDICuMRAPIy53lfJ8PW5Uxd7zqlQ1+SZF2GpC/9si5h0qHb0WG1ad1Na4qw+mb9ACJ3xKIAAaJgPAJAXuY870viK/0LDUmmu9Dt68eG/N0Kqw9Wm1rX/e0aQ7ZrPXbtZN9ToABBVhiPAJCXOc/7XRPyrkmyVRSE/N2KkCQ/ZJ0pYsh2rceunex7ChQgyArjEQDyMud5XyfG+rIlHSF3bdKXNll3nbIuQ9Jt6vX1dnVYly1Z29LryP/72gzZd2sdHfpyL01v12rHeuzayTFJgQIEWWE8AkBe5jzv68RYkmCfKdbR0XV9HV37M6QP1johxmpnjeSYpEABgqwwHgEgL3Oe90MS4ynW0dF1fR1d+zOkD9Y6IcZqZ43kmKRAAYKsMB4BIC9znvetxFhfUmVdLqXX0Xd/Crn8KeQuVXq7ev2QS8Ksy7FCfhAwZL906H20LkWT/3fb4s5XVXJMUqAAQVYYjwCQlznP+zox1km4/rsOa50hf9eGbNcyVj+H9C3ksbmS45ACBQiywngEgLzMed6fOtkO+bs2ZLuWsfo5pG8hj82VHIcUKECQFcYjAORlzvN+14RZXz5kXZ6k/64vr9Jt6m1peh192ZVu3/ohPyus/ujLtKy/W9vVoftg9U33QUeud77S5FilQAGCrDAeASAvc573JTmW/klIQuzov1thra//rg1ZJ6Q/VljbCjFkuzqG9GHt5PikQAGCrDAeASAvc573hyT81vpWsj1knZD+WGFtK8SQ7eoY0oe1k+OTAgUIssJ4BIC8zHneD7kMyYqQy5lC7qalDemPFfoyqpA7VoXcicsK64cLrTto6cj1jlhyrFKgAEFWGI8AkJec531JrGX/6yFJeSy6D3q7IX/XEdLnrm3qiHlM5kT2PQUKEGSF8QgAecl53h+SzI8lpCgIKRZC+ty1TR0xj8mcyL6nQAGCrDAeASAvc5739eVGY4X1A3w6dLJt9cG6JClkfb1O17tgyWO69Nna35C7YOnQfciJHKsUKECQFcYjAORlzvO+TpjHCkmmHav9rutoXdu02rEMab/rvoACBIiC8QgAeZnzvG8lzEOia0LeNWnv2mbX5H9I+133BRQgQBSMRwDIy5znfZ0wh9zlyQp99yf5f0df5mStY/XBuptWyI/66TZlmY91KZduP2S/rO1ad8HK9W5XFjlWKVCAICuMRwDIy5znfZ0w6wS7q5B2rHWGPNbStU0dXfumWet3bScnckxSoABBVhiPAJCXOc/7YyXGIe0MSc679rNrmzq69k2z1u/aTk7kmKRAAYKsMB4BIC9znvetxNi6PEmHdfcnqx3rhwitx2r6kqeQHxbU29J3o9LR9VIuqx0d1nb1tqwfJcz10iw5VilQgCArjEcAyMuc531JfKV/EpIcO/rvVljrh7QT8ljLkD7r6LqtIdH1mORE9j0FChBkhfEIAHmZ87w/JJm31u+abFuPtQzps46u2xoSXY9JTmTfU6AAQVYYjwCQlznP+0OSeWv9rsm2dXmVFfpyJn25lG5Hh76TVchdtqxLy6y7hOn2rdCXY+nLtHRIWzmSfU+BAgRZYTwCQF7mPO/rBFsnwPrvVljrh7RjJdtdtxvC6psW0v8hfQ6Jrvu1FrLvKVCAICuMRwDIy5zn/ZDE24qQRN1qZ0gy3zVRt/qmhfR/SJ9Dout+rYXsewoUIMgK4xEA8jLneT8k8bYiJFHXf7cuf9KsHy7UEXI3Kh3WJVv6sitrHVnWtl19SZXeR6v/1qVc1jFZOzkmKVCAICuMRwDIy5znfUmgpX8SkgQ7+u9WWOuH/D1ESB9CwtpuSN+69sHad2sdUIAAUTAeASAvc573rSQ8JPG21g/5e4iQPoSEtd2QvnXtg7Xv1jqgAAGiYDwCQF7mPO9bSbh1Rykd1qVKsswJSfI168cErUubQu5MJf/vY/XNujQrZLv6Ll7WY+X/cSDHJAUKEGSF8QgAeZnzvG8l4V1Z7XRtX6+vo2ubQ9bp+ndtyGNzJcckBQoQZIXxCAB5mfO8P1ZiPFbirdfX0bXNIet0/bs25LG5kmOSAgUIssJ4BIC8zHne14lx17tL6dCXS1mJt25f/9ifptfXlznpS5v0tkLuTGWtE/KDhtZ2ZZljXbJlXY6l/24dh5zI8UyBAgRZYTwCQF7mPO9LEiz9GzN0cm61r9fR9Poh7QwJqw9aSP9D+hzy91zJcUiBAgRZYTwCQF7mPO9PndiHJPBaSNI+VoQk/yH9D+lzyN9zJcchBQoQZIXxCAB5mfO8H3K3q65hXc5kraPp9UPaGRJWH7SQ/of0OeTvuaIAASJgPAJAXpj3ARsFCBAB4xEA8sK8D9goQIAIGI8AkBfmfcBGAQJEwHgEgLww7wM2ChAgAsYjAOSFeR+wUYAAETAeASAvzPuAjQIEiIDxCAB5Yd4HbBQgQASMRwDIC/M+YKMAASJgPAJAXpj3ARsFCBAB4xEA8sK8D9goQIAIGI8AkBfmfcBGAQJEwHgEgLww7wM2ChAgAsYjAOSFeR+wUYAAETAeASAvzPuAjQIEiIDxCAB5Yd4HbBQgQASMRwDIC/M+YKMAASJgPAJAXpj3ARsFCBAB4xEA8sK8D9goQIAIGI8AkBfmfcBGAQJEwHgEgLww7wM2ChAgAsYjAOSFeR+wUYAAETAeASAvzPuAjQIEiIDxCAB5Yd4HbBQgQASMRwDIC/M+YKMAASJgPAJAXpj3ARsFCBAB4xEA8sK8D9goQIAIGI8AkBfmfcC26gKEIAiCIAiCIIj5RQq8LQAAAAAgGgoQAAAAANFQgAAAAACIhgIEAAAAQDQUIAAAAACioQABAAAAEA0FCAAAAIBoKEAAAAAAREMBAgAAACAaChAAAAAA0VCAAAAAAIiGAgQAAABANBQgAAAAAKKhAAEAAAAQDQUIAAAAgGgoQAAAAABEQwECAAAAIBoKEAAAAADRUIAAAAAAiIYCBAAAAEA0FCAAAAAAoqEAAQAAABANBQgAAACAaChAAAAAAERDAQIAAAAgGgoQAAAAANFQgAAAAACIhgIEAAAAQDQUIAAAAACioQABAAAAEA0FCAAAAIBoKEAAAAAAREMBAgAAACAaChAAAAAA0VCAAAAAAIiGAgQAAABANBQgAAAAAKKhAAEAAAAQDQUIAAAAgGgoQAAAAABEQwECAAAAIJLN5v8DyS3vQTKWwa0AAAAASUVORK5CYII="
  imgStr = "data:image/png;base64,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"
  imgStr = "data:image/png;base64,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";
  let escImgStr = "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAECAQIDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9U6KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA/IH9vL9vH45fBf9qzx34O8GeOTo3h3TTYm1sv7IsJ/L8ywtpX+eWBnOXkc8scZwMAAV8/f8PRf2nP8AopY/8EGl/wDyNTv+CoX/ACfR8Tvppf8A6bLSv3M+J3xR8N/BbwJqPi/xhqX9keG9MEX2q9MEs3leZKkSfJErOcvIi8KcZyeMmgD8Mf8Ah6L+05/0Usf+CDS//kaj/h6L+05/0Usf+CDS/wD5Gr9Vv+HoX7Mn/RS//KDqn/yNR/w9C/Zk/wCiln/wQ6p/8jUAflT/AMPRf2nP+ilj/wAEGl//ACNX3/8A8EpP2ovid+0n/wALR/4WP4m/4SL+xf7L+wf8S+1tfJ877Z5v+oiTdnyo/vZxt4xk59V/4Kjf8mL/ABL+mmf+nS0r5W/4IY/81s/7gn/t/QByv7ef7eXxy+C37Vnjvwd4M8cnRvDummxNrZf2RYT+X5lhbyv88sDOcvI55Y4zgYAAr9fq/AH/AIKh/wDJ9HxN+ml/+my0r5VoA/qor8gf28/28vjl8Fv2rPHfg7wZ45OjeHdNNibWy/siwn8vzLC3lf55YGc5eRzyxxnAwABXU/8ABDH/AJrb/wBwT/2/rk/28P2D/jp8av2r/HXjHwZ4GOs+HNSFh9lvf7WsYPM8uwt4n+SWdXGHjccgZxkZBBIB+gX7efxS8TfBb9lHxx4y8HamdG8R6b9g+y3ot4p/LEl/bxSfJKrIcpI45U4zkcgGvyB/4ei/tOf9FN/8oOl//I1fan7ev7ePwM+NP7Jvjnwf4M8cHWfEWpCx+y2f9kX8HmeXf28r/PLAqDCRueWHTA5IFfPv/BKX9p74Y/s4P8UB8R/Eg8Pf21/Zf2DNhc3Rm8n7X5g/cRPjHmx/exnPGcHAB+lP7CHxO8T/ABk/ZU8E+MvGGpDV/Eepm++1Xogjg8zy7+4iT5I1VBhI0HCjOMnkk17/AF+LX7T/AOzD8Tv2zfjr4l+Mnwc8Mnxh8OfEgtf7L1r7fa2QuPs9rFazfubqSKZNs0EqfOgztyMqQT79+3n+3j8DPjR+yj478GeDvG/9seI9R+w/ZbL+yb+DzPLvreV/nlgVBhY3PLDOMDkgUAdX/wAFWv2pPid+zWPhd/wrjxN/wjh1r+1Pt/8AoFrded5P2Ty/9fE+3HmyfdxndznAx8Af8PR/2nf+imf+UDS//kavqf8A4IaqCvxtJAPGidf+3+uZ/bx/YQ+Ofxs/av8AHHjDwf4I/tfw5qAsfst7/atjB5nl2NvE/wAkk6uMOjjlRnGRwRQB8/f8PR/2nf8Aopv/AJQNL/8Akavv/wD4JS/tR/E/9pT/AIWj/wALH8Tf8JH/AGL/AGX9g/0C1tfJ877X5v8AqIk3Z8qP72cbeMZOfev28fhj4m+M37KHjfwh4P0v+2vEOpfYfstj9oig8zy7+3lf55GVBhI3PLDOMDkgV8YfsLuP+CbjeNh+0YP+FdHxp9h/sED/AImn2z7J9o+0/wDHl53l7Ptdv/rNu7f8udrYAP1Uorlfhf8AFDwz8Z/AumeMfB2pHV/Dmpeb9lvTbyweZ5crxP8AJKquMPG45UZxkZBBr8BPid+wd8cfg54H1Lxf4w8D/wBj+H9N8r7TdnVrCbZ5sqxJ8kU7OcvIg4U4zk4AJoA/olr8gf28/wBvL45fBb9qzx14O8GeOTo3h3TTYm1sv7IsJ/L8ywt5X+eWBnOXkc8scZwMAAV8WfA79l34m/tInXB8OfDI8QnRfJ+3/wDEwtbXyfN8zy/9fKm7PlSfdzjbzjIz6l/w67/abP8AzTQf+D/S/wD5JoA/YD9vP4peJvgt+yj448ZeDtTOjeI9N+wfZb0W8U/liS/t4pPklVkOUkccqcZyOQDX5Bf8PRP2nP8Aoph/8EOl/wDyNX6o/wDBUf8A5MV+Jn00z/06WlfK3/BDf/mtv/cE/wDchQB8r/8AD0T9pz/oph/8EOl//I1H/D0T9pz/AKKYf/BDpf8A8jV+vPxP/bt+BnwY8cal4Q8ZeOP7G8Rab5X2qzOk30/l+ZEkqfPFAyHKSIeGOM4PIIrlf+Hon7Mf/RTf/KDqn/yNQB+WH/D0T9pz/oph/wDBDpf/AMjUf8PRP2nP+imH/wAEOl//ACNX7R/A79qT4ZftJf23/wAK48Tf8JH/AGL5H2//AEC6tfJ87zPK/wBfGm7PlSfdzjbzjIz+LP8AwVG/5Pr+Jn/cM/8ATZaUAfv/AEUUUAFFFFABRRRQB+AX/BUL/k+j4nfTS/8A02Wlfqn/AMFRP+TFPiZ/3DP/AE52lflZ/wAFQv8Ak+j4nfTS/wD02Wlfqn/wVF/5MU+Jn00z/wBOdpQB+AOT6mjJ9TRRQB+/f/BUX/kxf4lfTTP/AE6WlfLH/BDH/mtn/cE/9v6+p/8AgqL/AMmL/Er6aZ/6c7Svlj/ghj/zWz/uCf8At/QB6r+1F/wSl/4aT+Onif4jf8LR/wCEd/toWv8AxLf+Ee+1eT5NrDB/rPtSbs+Vu+6Mbsc4yfKv+HGP/VbP/LU/+7a/VSvAP28/il4m+C37KPjjxl4O1M6N4j037B9lvRbxT+WJL+3ik+SVWQ5SRxypxnI5ANAHJ/sMfsMf8MXf8Jt/xW3/AAmP/CS/Yv8AmE/Yfs32f7R/03l37vtHtjb3zx9U7fevwE/4ei/tOf8ARTf/ACg6X/8AI1fr1+wb8UPFHxo/ZR8D+MvGWqjWfEepfbvtV6LeKAyeXfXESfJEqoMJGg4UdMnJJNAH4YfsufBA/tIfHLw38Of7aPh7+2ftP/ExFp9q8nybaWf/AFW9N2fK2/eGN2ecYP38v/BDQkZPxq2+3/CKf/dtfaXwu/YO+BvwX8e6X4x8G+CDo/iLTRL9mvf7Xv59hkjaJ/klnZDlJHHKnGcjBArwD/gqz+1H8Tv2bB8L/wDhXHib/hHTrX9qfb/9AtbrzvJ+yeX/AK+J9uPNk+7jO7nOBgA+qv2X/gX/AMM2fAvw18Of7b/4SL+xvtX/ABMvsn2XzvOupZ/9Xvfbjzdv3jnbnjOB/Ng3Vv8APevqf/h6L+05/wBFM/8AKBpn/wAjVy37Bfwv8NfGj9q/wR4O8Yab/bHh3Uxfi6svtEsHmeXYXEqfPEyuMPGh4YZxg8EigD7T/wCCGf3fjb/3BP8A2/r9UV6Cvyx/bjz/AME2v+EJ/wCGdj/wrxfGQvjrwH/Ez+2fZPs/2b/j+8/y9n2uf/V7d2/5s7Vx8q/8PRP2nB0+Jpx/2ANL/wDkagD9o/2ofjf/AMM3fAzxL8Rf7F/4SEaL9l/4lv2v7L53nXUUH+t2Pt2+bu+6c7ccZyPxa/bl/blH7ZjeCtvgv/hEP+Ea+28/2r9t+0faPs//AExi27fs/vnd2xzy3xS/bz+Onxo8C6n4O8ZeOf7Z8Oal5X2qzOj2EHmeXKkqfPFArjDxoeGGcYPBIr5/K4oA+/v2Xf8Agq2f2bPgX4Z+HJ+F/wDwkf8AYouR/af/AAkP2XzvOupZ/wDV/ZX2483b945254zgfoB/wVE4/YW+Jh7j+zMH/uJ2lfgBX9PvxR+F3hj40eBNT8G+MtM/tjw3qXlfa7L7RLB5nlypKnzxMrjDxoeGGcYPBIoA/Cz9hr9uT/hjH/hNifBP/CY/8JKLIf8AIV+w/Z/s/n/9MJd+7z/bG3vnj6pH/BctR0+CX/l1/wD3FX1X/wAOuP2Yv+iZf+V/VP8A5Jr8g/28vhd4W+DH7V3jnwb4N0w6P4c037D9lsvtEs/liSwt5X+eVmc5eRzyxxnAwABQB+vf/BUf/kxX4mfTTP8A06WlfK3/AAQ3/wCa2/8AcE/9yFfVP/BUf/kxX4mfTTP/AE6WlfK3/BDf/mtv/cE/9yFAHyv/AMFRf+T6fiX/ANw3/wBNlrXynX1Z/wAFROf26PiX/wBw3/012lfKdAH6of8ABDbp8a/+4J/7f18sf8FRv+T6/iZ/3DP/AE2WlfU//BDbp8a/+4J/7f18sf8ABUb/AJPr+Jn/AHDP/TZaUAfv/RRRQAUUUUAFFFFAH4Bf8FQv+T6Pib9NL/8ATZaV+qP/AA9G/ZkwP+Lljp/0AdU/+Ra8s/ah/wCCUv8Aw0l8dfE3xH/4Wj/wjv8AbX2X/iWf8I99q8nybWKD/W/ak3Z8rd90Y3Y5xk+V/wDDjP8A6rZ/5an/AN20AfU//D0b9mX/AKKWP/BDqn/yNR/w9G/Zl/6KWP8AwQ6p/wDI1fLH/DjP/qtn/lqf/dtH/DjP/qtn/lqf/dtAHU/t5ft4/Az41fsn+OfB/g3xv/bHiLUfsP2WzGkX8HmeXf28r/PLAqDCRueWGcYHJArlf+CGP/NbP+4J/wC39L/w40OMf8Ls4/7FT/7tr6p/YZ/YY/4Yu/4Tb/itv+Ex/wCEl+w/8wn7D9m+z/aP+m8u/d9o9sbe+eAD8rP+Co//ACfV8Tf+4Z/6bLSvU/2XP2XPif8AsXfHbwz8ZPjJ4Z/4Q74ceGvtX9q61/aFrffZ/tFrLaw/ubaWWZ901xEnyIcbsnCgkeWf8FR/+T6vib/3DP8A02WlftP+1H8C/wDhpT4F+Jvhz/bf/COf20LYf2l9k+1eT5N1DP8A6vem7Pk7fvDG7POMEA/P/wDbocf8FJz4JH7OWfiIfBgvjrvH9mfY/tf2f7N/x++T5m/7LP8A6vdjZ82Mrn1X9l39qH4YfsXfArw38GvjH4nPg74keGzcnVdFOn3V79n+0XMt1D++tY5YX3QzxP8AI5xuwcMCB5aE/wCHLwzz8Yv+Fk8dP7D/ALO/s/8A8CfN8z7f/sbfK/i3fLEf2G2/4KTzt+0V/wAJp/wro+Msf8U1/ZX9qfY/sn+g/wDHz50Pmb/svmf6tdu/bzt3EA8x/Zd/Ze+J/wCxl8c/DXxi+MXhn/hEPhz4c+1f2prP261vvsv2i1ltYf3NtJLK26a4iT5EON2ThQSPUf26UP8AwUiHgn/hnPPxG/4Qz7d/b2B/Zn2P7X5H2b/j98nzN/2S4/1e7Gz5sbly5v24z/wUib/hnRfBR+HZ8af8zKdV/tP7H9k/04f6N5MPmb/snl/6xdu/dzt2lx/40wDJz8Yf+Fk+n/Ej/s7+z/8AwJ83zPt/+xt8r+Ld8oB6f+y3+1J8Mf2LfgV4a+Dnxj8Snwh8R/Dn2o6pop0+6vfs32i6luof31tHLC26GeJ/kc43YOGBA+Wf2W/2XPib+xh8d/DXxi+MPhr/AIRL4c+GhdHVdZF/a332f7RazWsP7m2llmfdNcRJ8qHG7JwoJHqo/YZ/4eS4/aMPjb/hXZ8Zj/kWv7K/tT7H9k/0H/j58+HzN/2TzP8AVrt8zbzjcfvz9qD4E/8ADSPwN8TfDsa3/wAI4da+zD+0/sn2ryfJuYp/9XvTdu8rb94Y3Z5xggDvgX+1F8M/2k/7b/4V14kPiH+xfI+3ZsLq18nzvM8v/XxJuz5Un3c4284yM/ir/wAFRv8Ak+v4mf8AcM/9NlpX1cT/AMOYFyf+Lw/8LJ4/6Af9nf2f/wCBPm+Z9v8A9jb5X8W75fz+/aj+OP8Aw0p8dfE3xH/sX/hHf7a+y/8AEs+1favJ8m1ig/1mxN2fK3fdGN2OcZIB+1H/AAVG/wCTFPiZ/wBwz/052lfKv/BDj/mtn/cE/wDb+hv25/8Ah5MP+Gch4J/4V2fGnTxL/a39qfY/sn+n/wDHt5EPmb/snl/6xdu/dzt2n6q/Yb/YY/4Yx/4Tb/itv+Ew/wCEl+w/8wn7D9m+z+f/ANN5d+7z/bG3vngA/Kz/AIKj/wDJ9XxN/wC4Z/6bLSv3T+KPxR8MfBjwLqfjLxlqf9j+G9M8r7Xe/Z5Z/L8yVIk+SJWc5eRBwpxnJwATXxV+1H/wSl/4aU+Ovib4j/8AC0f+Ec/tr7L/AMSz/hH/ALV5Pk2sUH+t+1Juz5W77oxuxzjJ+qv2o/gZ/wANJ/AnxN8OBrf/AAjn9tfZv+Jn9k+1eT5N1FP/AKrem7d5W37wxuzzjBAPgP8AbklH/BSRfBf/AAzix+Ih8F/bTr3/ADC/sf2vyPs3/H95Hmb/ALLcfc3bdnzY3Ln81vih8MfE3wb8c6l4P8Y6Z/Y/iPThF9qs/Pin8vzIklT54mZDlJEPDHGcHBBFfud+w3+wr/wxivjYf8Jv/wAJh/wkv2H/AJhP2H7N9n+0f9N5d+77R7Y2988fld/wVE/5Pp+Jn/cN/wDTZaUAfql/wVH/AOTFfiZ9NM/9OlpXwF/wSn/ag+GX7N7fFIfEbxN/wjv9tf2X9g/0C5uvO8n7X5v+ojfbt86P72M7uM4OP1S/aj+Bf/DSnwK8S/Dj+2/+Ec/toW3/ABM/sn2ryfJuoZ/9VvTdnydv3hjdnnGD8A/8OMef+S2f+Wp/920AfVH/AA89/Zk6/wDCzf8Aygan/wDI1L/w9C/ZkH/NTf8Aygan/wDI1fK3/DjMj/mtp/8ACU/+7aP+HGX/AFW3/wAtT/7toA+qf+HoX7Mn/RTf/KBqf/yNX5Bft6/FDwz8aP2r/HHjPwdqf9seHNTFh9lvPIlg8zy7C3if5JVVxh43HKjOMjgg19qf8OMv+q2/+Wp/920f8OMf+q2f+Wp/920AfqpRRRQAUUUUAFFFFABXgH7efxS8TfBb9lHxx4y8HamdG8R6b9g+y3ot4p/L8y/t4pPklVkOUkccqcZyOQDX4/f8FRP+T6viZ/3DP/TZaV+63xR+KHhj4MeBdT8ZeMtS/sfw3pnl/a737PLP5fmSpEnyRKznLyIOFOM5OACaAPwt/wCHon7Tn/RTD/4IdL/+RqP+Hon7Tn/RTD/4IdL/APkav2l+B/7U/wAMP2kRrZ+HHib/AISP+xfI+3/6BdWvk+d5nlf6+JN2fKk+7nG3nGRnlfij+3t8DPgz431Lwh4w8bHSPEWm+V9qsv7JvpvL8yJJU+eOBkOUkQ8McZweQRQA79vP4peJvgt+yj448ZeDtTOjeI9N+wfZb0W8U/liS/t4pPklVkOUkccqcZyOQDXz/wD8Epv2ofiX+0k3xSPxE8Tf8JF/Y39l/Yc2Fra+T532vzP9REm7PlR/ezjbxjJz+bH7B3xP8MfBv9qzwR4w8Yaj/ZPh7Tvtxur028k/l+ZYXESfJErOcvIg4U4zk8Amvfv+Cq/7Unw0/aPT4XD4c+JTr50U6p9v/wBAubXyfN+yeX/rok3Z8qT7ucY5xkZAPKv+Co3P7dXxM/7hn/pstKT/AIef/tN/9FM/8oGmf/I1fql/wS+Uf8ML/DVwxYkalnPf/iZ3Q/8ArfhXgH7dv7eHwJ+M/wCyl448HeD/ABv/AGv4j1MWP2SyGkX8Hm+XfW8r/PLAqDCRueSM4wOTigD82/jf+1D8Tv2kDon/AAsfxN/wkY0UzGwH2C1tfJ83Z5n+oiTdnyo/vZxt4xk56z4Y/t5/HP4NeA9M8HeDfHH9j+HtN8z7LZ/2TYTiPzJGlf55YHc5d3PLHGcDAAFcn8D/ANl74m/tIf23/wAK68NDxD/YohN/nULW18kS+Z5f+vlTdnypPu5xt5xkZ5T4n/C/xR8GfHOp+DvGWlnRvEem+X9qs/Pin8vzIklT54mZDlJEPDHGcHBBFAH77fC/9hH4G/Bbx9pvi/wb4JOjeItN8wWt4NWvpvL8yJ43+SSdkbKSOOVOM5GCAa+Mf+C5n+r+Cn11r/2wr4r/AGEPid4a+Df7Vfgjxl4v1P8Asfw7pn243V59nlnEfmWNxEnyRKznLyKOFOM5PAJr9eP+Hov7MmOfiYc/9gHU/wD5GoAk/wCCXP8AyYp8M/8AuJ/+nO7rqv29vih4m+DH7J3jnxl4O1IaP4k0z7AbS9NvFP5fmX9vE/ySqyHKSOOVOM5GCAa/Fn9vX4q+GfjT+1Z448X+DdU/tnw3qX2H7Le+RLB5nl2NvE42Sqrrh42HKjOM8jFfpL+1L+1L8Mv2z/gX4n+DXwc8S/8ACYfEjxJ9l/srRRYXVl9p+z3UV1N++uYo4U2wwSv87jO3AySAQDyv9hmR/wDgpN/wmy/tGH/hYq+DfsP9h5/4lYs/tf2j7T/x4+R5m/7Jb/6zdt2fLjLZ+qf+HXX7MX/RMv8Ayv6p/wDJNfK37C//ABraPjUftG/8W6/4TT7D/YOf+Jn9s+yfaPtP/Hl53l7Ptdv/AKzbnf8ALna2PK/2pf2Wvid+2f8AHbxN8ZPg14Y/4TH4b+JBa/2Xrf8AaFrZfafs9rFazfubmWKZNs0EqfOgzsyMggkA+Lfhb8UfE3wZ8c6b4v8AB2pf2P4j07zPst99ninMXmRvE/ySqyHKSMOVOM5GCAa9+P8AwVC/aZH/ADU4f+CDTP8A5Gpv/BLz/k+j4af9xP8A9Nd3X1T/AMFzAAPglgY/5Df/ALYUAfLH/D0L9pn/AKKcP/BBpn/yNR/w9C/aZ/6KcP8AwQaZ/wDI1fan7Bf7enwK+Cv7J3gXwb4z8c/2N4k077cbqy/si/n8vzL+4lT54oGQ5SRTwxxnB5BFe/8A/D0f9mL/AKKb/wCUDVP/AJGoA8q/4JS/tQ/E39pL/haP/CxfE/8Awkf9i/2X9g/4l9ta+T532vzP9REm7PlR/ezjbxjJz8Bf8FQuf26viYP+wb/6a7Sv1S/4ej/sxf8ARTf/ACgap/8AI1H/AA9H/Zi/6Kb/AOUDVP8A5GoA/Ksf8FQP2myP+Smf+UDTP/kaj/h5/wDtN/8ARTP/ACgaZ/8AI1cx8UP2Dvjl8GPAepeMvGfgkaL4d07yxdXZ1exnMZklSJPkjnZzl5EHAOM5OACa8A3UAf0P/sHfE3xN8ZP2UvBHjLxfqX9r+IdS+3fab0QRweZ5d/cRJ8kSqgwkaD5VGcZOSSad+3n8UfE/wZ/ZO8c+MvB2pf2R4k037AbS9NvFP5fmX9vE/wAkqshykjjlTjORggGuV/4Jff8AJifwy/7if/pzu6/K/wD4df8A7TP/AETT/wAr+l//ACTQAn/D0b9p3/opn/lA0z/5Go/4ej/tO/8ARTf/ACgaX/8AI1fff/BKr9l74mfs3N8Tz8RfDA8OnWRpYsD/AGha3RmEX2vzf9RK+3Hmx/exnPGcHHv3xQ/bv+BPwV8dal4O8Z+ODo/iTTfK+1WR0i/n8vzIklT54oGQ5SRTwxxnB5BFAH0LRSDpS0AFFFFABRRRQB+f/wC1F/wSj/4aT+Ovib4j/wDC0f8AhHf7a+y/8Sz/AIR77V5Pk2sUH+t+1Juz5W77oxuxzjJ9W/4KjHH7CnxNx/1DP/TnaV8V/t5/t5fHL4LftWeO/B3gzxwdG8O6abE2tkdIsJ/L8ywt5X+eWBnOXkc8scZwMAAV8qfFH9vP46fGjwLqfg7xl44Gs+HNS8r7VZ/2PYQeZ5cqSp88UCuMPGh4YZxg8EigDqv2Gf25h+xePG2fBH/CZf8ACS/Yv+Yt9h+zfZ/tH/TCXfu+0e2NvfPHlf7UPx0/4aS+Onib4jf2J/wjo1r7N/xLPtf2ryfJtooP9ZsTdnyt33RjdjnGT9T/APBKj9l34Z/tJj4o/wDCxfDA8R/2KNL+wZv7q18kzfa/M/1Eqbs+VH97ONvGMnPgv7enwv8AC/wZ/as8beD/AAdpp0jw7posRa2X2iWfy/MsbeV/nlZnOXkc8scZwOABQB9of8OMz/0Wv/y1P/u2j/hxmf8Aotf/AJan/wB218rf8PQf2m/+imf+UDTP/kal/wCHoH7Tf/RTP/KBpn/yNQB+037LnwM/4Zr+BXhj4c/23/wkR0X7V/xM/sn2XzvOupZ/9Xvfbjzdv3jnbnjOB+WH7UX/AASqH7NvwN8RfEU/FEeIf7FFsP7M/wCEf+y+d5tzFB/rPtT7cedu+6c4xxnI/SX9gv4oeJvjP+yd4G8ZeMtT/tjxJqf277Xe/Z4oPM8u/uIk+SJVQYSNBwozjJ5JNfix8Uv29Pjr8avA2p+DfGXjgav4b1PyvtViNIsYPM8uVJU+eKBXGHjQ8MM4wcgkUAfa3/BDlQx+Nef7uij/ANL6+Vv+CoPH7dHxN/7hn/psta+qf+CG/X41fTRf/b+vlb/gqLx+3V8S/wDuG/8ApstaAPKf2Xfgcf2kfjn4a+HQ1v8A4R06yLr/AImX2T7V5Pk2s0/+q3pu3eVt+8Mbs84wfvz/AIcat/0Ws/8AhKH/AOTa/Nn4V/FLxN8FvHel+MvB2p/2P4j03zfst6IIp/L8yJ4n+SVXQ5SRxypxnI5ANfQH/D0b9pz/AKKV/wCUDTP/AJGoA8o/aj+BR/Zr+OfiT4dHWv8AhIv7G+zf8TP7J9l87zraKf8A1e99uPN2/eOdueM4Cfsu/HP/AIZs+Ovhn4j/ANif8JF/Yv2r/iWfa/svnedaywf63Y+3Hm7vunO3HGcj9Vv2XP2Xvhj+2j8CfDHxk+Mnhn/hMfiR4k+1f2rrX2+6sftH2e6ltYf3NrLFCm2G3iT5EGduTliSfzV/YL+Fvhj40ftZeBvBnjLTP7Y8N6l9v+12X2iWDzPLsLiVPniZXGHjQ8MM4weCRQB1H7cv7cv/AA2h/wAIT/xRP/CHf8I39t/5i3277T9o+z/9MItm37P753dsc+rfst/8FWv+Ga/gT4Z+HH/Crv8AhI/7F+1f8TP/AISH7L53nXUs/wDqvsr7cebt+8c7c8ZwP0A/4dcfsxf9Ey/8r+qf/JNJ/wAOuf2Yv+iZ/wDlf1T/AOSaAPlRf2Gj/wAE28ftGnxr/wALDHg0Z/4RoaV/Zf2v7WPsH/HyZpvL2fa/M/1bbtm3jO4Ixb/gtCQAB8Hh8NR1J/tz+0f7Q/8AAbyvL+wf7e7zf4dvPl37Lv7UHxM/bP8Ajn4Z+Dfxj8THxh8OfEv2k6tov2C1sftP2e2luof31tFHMm2aCJ/kcZ24OQSD6r+3JGv/AATbfwOP2c1/4V2PGpvRr3J1P7Z9k+z/AGb/AI/fO8vZ9ruP9Xtzv+bOFwAfn/8AtQ/Ao/s2fHPxJ8OjrX/CRf2MLb/iZ/ZPsvnedbRT/wCr3vt2+bt+8c7c8ZwPqf8Aae/4JUD9m/4F+JviMfikPEH9jC2I0z/hH/spn866ig/1n2p9uPN3fdOduOM5H1d+y7+y38Mf20fgV4Z+Mnxl8M/8Jj8SPEguf7V1r7fc2P2j7Pcy2sP7m1kihXbDBEvyoM7cnJJJ/NL4n/t4/HP4y+BNT8GeMPG41fw3qXlm7shpNjB5vlypKnzxQK4w8aHgjOMHIJFAHgRGK+//ANlz/glJ/wANKfAnwz8R/wDhaP8Awjn9tfav+JZ/wj32ryfJupYP9b9qTdnyt33RjdjnGSf8EpP2XPhh+0p/wtH/AIWP4Z/4SP8AsX+y/sH+n3Vr5Pnfa/N/1Eqbs+VH97ONvGMnL/2ov2ovib+xn8dPEvwc+DniUeDvhx4aFqNK0Uafa332f7Raw3U3766ilmfdNcSv8znG7AwAAAD78/4Kjf8AJivxM+mm/wDpztK/AOv38/4Kjf8AJivxM+mm/wDpztK+Af8AglN+y58Mf2lP+Fo/8LH8M/8ACR/2L/Zf2D/T7q18nzvtfm/6iVN2fKj+9nG3jGTkA++/+CXoz+wn8Mv+4n/6c7uvqkdK5j4X/C7wx8GfAmmeDfB2mnR/DemeZ9ksjcSz+X5kryv88rM5y8jnljjOBgACvKf29vif4m+DH7J3jnxl4O1L+x/EmmfYDaXpt4p/L8y/t4n+SVWQ5SRxypxnIwQDQB79XwD+1H/wSm/4aT+Ovib4jf8AC0f+Ed/tn7N/xLP+Ef8AtXk+TaxQf6z7Um7PlbvujG7HOMk/4JTftR/E79pT/haP/Cx/E3/CR/2L/Zf2D/QLW18nzvtfm/6iJN2fKj+9nG3jGTnwL9vP9vP45/Bj9qzxz4O8G+OTo/h3TPsJtLL+yLCcRiSwt5X+eWBnOXkc8scZwMAAUAfr9RRRQAUUUUAFIelLSGgD5/8Aij+3h8Dfgv471Lwd4y8b/wBjeIdN8r7VaHSb+by/MiSVPnigZDlJEPDHGcHBBFcp/wAFRMH9hf4l/wDcM/8ATnaV5Z+0/wD8Ep2/aS+OHib4iH4pf8I8Na+zf8Sz/hH/ALV5Pk20UH+s+1Juz5W77oxuxzjJ8rP7cg/4KSv/AMM4/wDCFH4dnxnx/wAJL/av9p/Y/sf+n/8AHt5MPmb/ALJ5f+sXb5m7nbtIB+Vmyvfvhd+wb8dPjR4G0zxh4M8EDWfDuo+b9lvP7YsIPM8uV4n+SWdXGHjccqM4yMgg1137cv7DX/DF/wDwhP8AxW3/AAmP/CSfbf8AmE/Yfs32f7P/ANN5d+77R7Y2988fqh/wS5/5MW+Gn/cS/wDTndUAfkD+wb8UfDPwY/aw8C+MfGWqf2N4b00332u9+zyz+X5ljcRJ8kSs5y8iLwpxnJ4Br9fv+Ho37Mf/AEUz/wAoGp//ACNX4rfswfA//hpH45eGvh0NaPh7+2vtP/EyFp9q8nybWWf/AFW9N2fK2/eGN2ecYPqv7cn7DR/YwHgknxr/AMJf/wAJL9u4/sr7D9m+z/Z/+m0u/d9o9sbe+eAD9VP+Ho37Mf8A0Uz/AMoGp/8AyNXVft6/C7xN8aP2UPHHg7wdpn9seI9S+wi1svPig8zy763lf55WVBhI2PLDOMDkgV+a/wCy5/wSm/4aU+BXhn4j/wDC0f8AhHP7a+1f8Sz/AIR/7V5Pk3UsH+t+1Juz5W77oxuxzjJ/VL9qT44/8M3fArxL8Rv7E/4SL+xja/8AEtN39l87zrqGD/W7H2483d905244zkAHwH+wyp/4Jut40/4aLz8PP+E0+xLoPH9p/bDaef8AaP8Ajy87y9n2qD/Wbd2/5c7Wx8Wft7/E/wAM/GX9rDxx4x8H6l/a/hzUvsP2W9NvLB5nl2FvE/ySqrjDxuOVGcZGQQa6r9uX9uf/AIbNPgoDwX/whx8NG9P/ACFftv2n7R5H/TCLZt8j3zu7Y59U/Ze/4JTn9pb4F+GfiQfij/wjp1r7T/xLf+Ef+1eT5N1LB/rftSbs+Vu+6Mbsc4yQDzPR/wDglh+0pqOpW1rc+BLbSYZZBG95ea5YNFACcb3EUzvt/wB1WPoDX1Vof/BFbw2bWFNT+K+oXV+EHnrY6Mqxq/dRmRjx05546DoPqb9jT9sdv2yfC/ivVF8JnwY+kXcFmUXU/trOJEJ3BvJj2kcjoa918b+ONL+HOhC/vw7KWEFrZ2yl57qY/wCrghjHLux4AH1OACQ0ribsfns3/BFLwdnj4meIAP8AsDof619T/tbaj8L/AIsfCnxB8K/FfxH0vwpNrAt95M6faYvKnjnH7piDyYwOexNcl8U9b8bXut6FP46t7iz8M36s0nhzSrlhDGgIPlzvCyy3M53JHsVkiDSJhZVWRh5d+0J8SfhJ4R8ZeGLPwv410rQtK0tZU1XRNAiYrIQ8boB5ETIZP9ZnfkZA3d89EKEpuyOKWKUeh4fH/wAE4f2e5L+Oy/4aQt4rqQgJBNFbRuxPorODX6Q/s1/CnTP2dvgv4c+H2napda5ZaUs7x6hPb7HlE1xLOdwXI4MuPoBXyN8c/wBsfwF8YrbTbfwn4zk0UW6skkOoRS2zys8kRPDR+UQEjcfPIB+8PAxmvSvG2q+GfhVLoVz8LNWnsLi4hFxK+jXEV5pt4p+WMSWSttbcQxLQ+UwVXIZiAtVLDTirsccVCTse4/tL/CXT/wBon4I+JPh9e6pPolpq4tzJqCWpkMPlXMU4wrbVOTEByR1rwf8AYA/Y18RfsgeKPila6lqlj4i0HXE0ttJ1i1Xy2uBF9r80SQksY2Hmx8BmUhgQxOQPor4bfE2TxJeXnh/xFYDQPGNgoludNaUSRzwkkLc2z4HmwsR1wGQna4Ddavx4+KQ+Avwj8YeOo9KGtx6JaC+Gmi4+z+bllQqH2Pt65ztPeuZxa3OtSTPxW/4KhHZ+3R8Sxk4/4lowpx/zDLWuX/YK+Jvhj4M/tX+CPGXjDU/7H8O6YL43V59nln8vzLG4iT5IlZzl5EHCnGcnABNcj+1F8cv+Gkvjv4m+I/8AYv8Awjv9tG2/4ln2v7V5Pk20UH+t2Juz5W77oxuxzjJ+qv2nv+CVv/DNnwK8TfEb/hZ//CRHRhbf8Sz+wPspm866ig/1n2p9uPN3fdOduOM5CsUff3/D0H9mT/opTf8Agh1T/wCRq+Av2n/2Xvid+2f8dPE3xj+Dfhj/AITH4b+JPsv9la39vtbH7T9ntYbWb9zdSxTLtmt5U+ZBnbkZBBPlX7Dv7EB/bO/4Tb/itP8AhDx4bFlz/ZX277R9o+0f9Notm37P753dsc/tH+yz8EP+GbfgT4Z+HH9tf8JENF+0/wDEz+y/ZfO866ln/wBVvfbjzdv3jnbnjOAMD8sf2X/2XPif+xn8dPDXxi+Mvhn/AIQ34beG/tX9q60NRtr37P8AaLWW1h/c2sskzbpp4k+RGxuycKCR6n+3Fs/4KQx+Cx+zf/xcMeDPtp1/A/sz7J9r8j7N/wAfvk+Zv+yXH+r3Y2fNjcufLP2p/wDgqwP2kfgb4m+HA+F58PDWTbY1M6/9p8nybqKf/VfZU3bvJ2/eGN2ecYPqX/BDPp8bProf/t/SA9U/Zf8A2ofhn+xd8DPDXwc+Mfib/hEfiP4c+1HVdF+w3N99m+0XU11D++tY5Ym3QzxP8rnG7BwwIH5EfDD4Y+JPjP4307wj4R0sav4j1HzPstkJ4oPM8uJpX+eVlUYSNzywzjA5IFfrz+1F/wAEpf8AhpL46+JviN/wtH/hHf7a+zf8Sz/hHvtXk+VbRQf637Um7PlbvujG7HOMk/Zf/wCCU3/DN/xz8M/EU/FH/hIxo32n/iWf8I/9l87zraWD/Wfan2483d905244zkAHlP7DI/4dtL42b9osf8K7HjT7D/YOf+Jn9s+yfaPtP/Hj5/l7Ptdv/rNu7f8ALna2Pqn/AIeifsx/9FM/8oGqf/I1L+3H+wz/AMNoL4JH/Cbf8IcPDRvv+YT9u+0/aPs//TeLZt8j3zu7Y5/Fj9qL4G/8M2fHTxN8Of7b/wCEi/sb7N/xM/sn2XzvOtop/wDV732483b945254zgAH9KVFFFABRRRQAUUUUAFfAH7T/7Lvwy/Yv8AgX4o+Mnwc8Nf8If8SPDf2Y6VrX2+5vvs/wBouYrWb9zcySQvuhnlT5kON2RhgCPn39vH9g346fGv9q3x14z8HeBzrHh3UjYi1vBqtjB5nl2NvE/ySzq4w8bDlRnGRwRX6A/t4/C/xN8Zv2T/ABz4O8HaZ/bHiTU/sItLLz4oPM8u+t5X+eVlQYRHPLDpgc4FAHxT+w5If+ClB8Zj9o3HxDHgw2X9hY/4ln2P7Z9o+0/8eXk+Zv8Aslv/AKzdjZ8uNzZ8v/ag/ag+Jv7GXxx8TfB34N+Jf+EO+HHhv7MNK0Uafa332f7Raw3U3766ilmfdNPK/wA7nG7AwoAHqH7DUbf8E2f+E1b9o0f8K6HjI2J0I/8AIU+2fZPtH2n/AI8fP8vZ9rt/9Zt3b/lztbHl37T37MPxN/bN+Onib4wfBzwwfGPw48SfZTpWti/tbH7T9ntYbWb9zdSxSptmt5U+dBnbkZUgkA+LPhb8UPE3wX8eaZ4y8HamdH8R6Z5n2W9EEU/l+ZE8T/JKrIcpI45U4zkcgGup+Of7T/xN/aSbRT8RPEv/AAkX9jef9gzYWtr5PneX5n+oiTdnyo/vZxt4xk5/og+KHxP8M/BXwPqXjHxlqI0jw5poi+13v2eWfyvMkSJPkiVnOXkQcKcZyeATXL/Az9qT4Y/tJ/23/wAK48TDxF/Yvkfb/wDiX3Vr5PneZ5X+viTdnypPu5xt5xkZAPLv+CXP/Jinwz/7if8A6c7uvoD4o/C/wz8Z/Aup+DfGOm/2x4b1Pyxd2QuJYPM8uVJU+eJlcYeNDwwzjByCRX4Wf8FRST+3P8Sv+4b/AOmu0r9ff29fhf4m+M/7J3jnwb4P0z+2PEep/YRaWX2iK38wx39vK/zysqDCRseWGcYHJFAHK/8ADrn9mL/omf8A5X9U/wDkmvgL9qP9qP4m/sZ/HTxL8HPg54lHg74ceGhajStFGn2t99n+0WsN1N++uopZX3TXEr/M5xuwMAAD5T+On7LnxP8A2a/7E/4WP4Z/4Rz+2vP+wf6fa3XneT5fm/6iV9uPNj+9jO7jODjyrOKAP1u/4IqEn4ZfE8nqdZsf/QDX0J8QPC/iv48WWueNtAksns7G4ksPDMMkhR1ghkAuL2KTcAksskckak4Hk4OcOwf5C/4JieKL3wT+yZ+0Hr2msE1PT2juLRioOJltnMfB/wBrbX1H+0B4y1P4Vfs1eKvDmkSPZC00638PaZHFIn7wyNHBlXA3Btnnnls/Lnuprqow5pWOWs9LHzX8Sv2hvEX7Qg1fwPF4+k0XwR4c05ptU1gW7SzauqOkchxERuT94oC5w3zMxOQFzPgld+LvH3xD0Jvh14Ttofhl4furO3lutWsLUS3cMbL5rvO6bnkkAYlEJ2gqOnXr7P4AWXwy+H1tp0VqkD69pV8t7qF3jz2kkhtIRAQOVEVzKQVYg7u3enftF+J38Cahpvwt0Nz4f8OaZYxxbbaTyw7sMhpCqksuDlh1ZixOcCurH5hSy+jzRV09j0eG+HMRxLjvq1N2STk+ui+46P8Aa303x1ZeK7LxN4A8JaLfeANNtIRNZ2+l2kzsySu0paPYXAOQDsyAOTjk14V4a+I8Hwjjj+IngXVZNQ8C3mvQG/8AAmpRvGLe4H+kKFdSEcp5Q2yLzwgZSMqeg8AfGO68IePtOvtOYpYXE8EU2mQSE2zxH5WBUj/WfdYMPp0JFe0eMfgRoOr+Idb8GWen29xYatqOo3hsxhGtrifT4HgaHoFKywTyAZAChxyDg8+VZvSx1KVKcfhPS4s4Or8NV6b5+dTV09rWt0u+539z4v8AGf7Q2saN4z+H9rCkOk2pv9JvbgCOImTn7OxB3N5nlGGVdwVDkldyxk9F+2F4wsfHH7CfxC8Raezm01Hw7FMiSDDRkyruRvRlbKkdiDXkf7HGr618LL34pfDGxu5ntdK1eG60trhNzyWVwHUTI2CqBwtvJk7lAkyFJOD9P/A2Q2Op/E3QivlWWl+Id1oirjZFdQQ3rAcdPNupvp07VpiVyz5Fstj5bDT51d79T+cQHLE19AfFL9vP46fGjwLqXg3xj44Gr+G9S8r7VYjSLGDzPLlSVPnjgVxh40PDDOMHIJz/AERKdy4b5SPSvxb/AGWv2Xvib+xl8dfDPxl+Mfhr/hD/AIb+GvtX9q60b+1vfs/2i1ltYf3NtLJM+6aeJPkRsbsnCgkcJ6B8sfAr9qH4m/s2HWj8OvEo8Pf2z5H2/NhbXXneT5nl/wCvjfbjzZPu4zu5zgV+5f7CHxN8TfGP9lTwR4x8YakNX8Ran9uN3e+RHB5pjv7iJPkjVUGEjQcKM4yeSTXNf8PRv2Yv+im/+UHU/wD5Gr4A/aj/AGXPid+2l8dfEvxl+DXhj/hMPhx4l+zf2XrX9oWtl9p+z20VrN+5upIpk2zW8qfOgztyMqQSAfAgYFj/AIV6p8D/ANqD4m/s3HW/+FceJf8AhHRrPkfb/wDiX2tz53k+Z5f+vifbjzZPu4zu5zgY9S/4Je/8nz/DT/uJ/wDpru6++/8Agql+y98Tf2kv+FYf8K58MnxF/Yv9qfb/APTrW18nzvsnl/6+VN2fKk+7nG3nGRmQPgQf8FRf2mh/zUof+CDS/wD5Gr9ff29vih4m+DH7Jvjnxl4O1IaP4k0z7AbS9NvFP5fmX9vE/wAkqshykjjlTjORggGvAP2XP2o/hj+xd8C/DXwc+Mnib/hDviP4cNydU0T7BdX32b7Rcy3UP761jlhbdDPE/wAjnG7BwwIHwG//AAS+/aadmA+G2e4A1/TD/wC3NAH35/wSl/aj+J/7SY+KX/Cx/E3/AAkf9i/2X9g/0C1tfJ877Z5v+oiTdnyo/vZxt4xk596+Jv7B3wN+MfjrUvGHjHwR/bPiLUfK+13p1a/gMvlxrEnyRTqgwiIOFGcZOTk18Y/sMK3/AATZXxuf2jF/4V3/AMJn9h/sHP8AxM/tn2T7R9p/48fP8vZ9qg/1m3dv+XO1sfU3/D0X9mT/AKKWv/gh1T/5FoA+rRyKWkHSloAKKKKACiiigBAME15Z+1D8cf8Ahm74GeJfiN/Yv/CRf2N9l/4lv2sWvneddRQf60o+3Hm7vunO3HGcj1SvxZ/Zi/ai+Jv7Zfx08M/Bv4xeJv8AhMfhx4l+0/2tox0+1sftP2e2luof31tFFKm2a3if5XGduDlSQQDyr9ub9un/AIbO/wCEKX/hCf8AhEB4bN7/AMxb7d9p+0fZ/wDphFs2+R753dsc+o/su/8ABVr/AIZs+B3hr4df8Ku/4SL+xvtX/Ey/4SD7L53nXUs/+r+yvt2+bt+8c7c8ZwPv7/h15+zL/wBEz/8AK/qf/wAk0f8ADrz9mX/omY/8H+p//JNAHyt/w3Of+Ckrf8M6DwR/wrs+M/8AmZf7W/tT7H9k/wBO/wCPbyIfM3/ZPL/1i7fM3c7dpcIh/wAEYcnJ+MI+JJ7D+xP7O/s//wACfN8z7f8A7G3yv4t3y/mx8L/if4m+DPjnTPGPg7U/7H8R6b5v2W98iKfy/MieJ/klVkOUkccqcZyMEA1+k37DCD/gpH/wm3/DRmfiL/whn2H+wsn+zPsf2v7R9p/48vJ8zf8AZbf/AFm7Hl/LjLZAEP7DR/4KS/8AGRZ8a/8ACuf+EyP/ACLX9lf2p9j+yD7D/wAfPnQ79/2TzP8AVrt37ecbisn/AAXLXJA+ChIzxnxVj/2yr9Kvhf8AC/wz8GfAumeDvB2m/wBkeHNN837LZG4ln8vzJXlf55WZzl5HPLHGcDAAFfzBycsaAP1PJP8AwWhYAAfB7/hW3v8A25/aP9of+A3leX9g/wBvd5v8O3l3/DjL/qtv/lqf/dtfAPwK/ai+Jv7Nh1s/DnxL/wAI7/bPkfb/APQLa687yfM8v/Xxvtx5sn3cZ3c5wK9W/wCHov7Tnb4mcf8AYB0z/wCRqAPoD/gnBDcH9jb9o8WqCW6RFlij/vOlu7KPxK4r6k/a58Izan8CPFHiDzY7zT/7R0/xBawb1VnhEy+YAwIKrtmJyTkYJyAQB738Jv2avh1+zzo+r6d4B8OjQ7LU5oJbuJry4uvPZPlBJmkcjg4wMD2ryHSfC9hoCax4O1m0knGh2j6JeJKCBqWhSAm3lxgghYt8RY/8tbYKCCyg9NCdnc5ahP4n+EUXxr8PRaHLqEnhX7XcpfzahHCv2u4jzbTSYwTEGZkh3Mh2F4XcAgkVJ4j+EPhv4jazZ+PPD32PXp45ZLL7ZK0gikSKWSKRlIUhypDjpg4GD0J8o0j4xf8ACj9c0vwB46tpWQw/ZdD8UzItva6jZElIo5wsWY5I/MPmISPmB3g5AbE+JPwj+LXgOG5ufgx4yu7bw/vFwfDsU6iC3kl8wsLd3BUIcZ8vPy7kOSStb1cHHE/u6jsuhpgsyrZZN1cM7Nqzs9bHtupfs5aRqnjCLWNasbVrTSALi1ktWZGl287XjAC4ztAzu3e1TWfwy0aHxHqPxD0rX/8AhMdF8X2ULwafhvlaK2kjLwOg3AmF5BtOGySM7iNvzF8N/D37TXxN/deLvHOueFfDU3yT7ykVy8ZfDKAi5iyM5ZsYBJwQefTPEHxd0L4IXmjfC/wPo0viPxNahIdJ0TS5FEUUgBInmLK3lsCSzkNuPJb5ehTyyOHl+6abfY0xmcYjMeRV22oKyTew74feHX1X48/GXVLi8utPQDS9Fa4WaKCQlYWlcxAEpHgQRKkbAttIDjdur6L+CLSz+J/itK24wJrNnYxFzkt5OnWqSHP++HH1U15L4M0G0+Dngo3uqvJq+q2Ez6ndNp0QiXWdWnaMeRB5Y2BWZooUTC58vdghXA6z4xXvif8AZ7/Yw8YavpmqC38a6ZpTapJqQhjlBvZ7kzTvskVlIMkr4DA8YqMRK7fyX3HDhYtN/wBbn071XPcCvKP2n/gd/wANJfArxL8Of7b/AOEd/tr7N/xMvsn2ryfKuYp/9VvTdnytv3hjdnnGDy37BnxM8UfGH9lLwV4w8Y6kNX8Q6l9t+03gt44PM8u+uIk+SNVQYREHCjOMnJOaX9u34neJvgz+yl438Y+D9TOjeI9NNgLW9+zxT+X5l/bxP8kqshykjjlTjORyAa5Uz0LWPiv/AIcbf9Vr/wDLU/8Au2pk/bib/gm1EP2df+EIHxFXwZx/wk39rjS/tn2v/T/+PbyZvL2fa/L/ANY27Zu43bR6l/wSt/ah+Jn7SY+J5+IniY+I/wCxjpf2DNha2vk+d9r83/URJuz5Uf3s428Yyc++fFD9gz4GfGnxzqfjHxl4JbV/EepeV9qvP7XvoPM8uJIk+SOdUGEjQcKM4yeSTQwPwy/Zd+OP/DNvxz8NfEb+xP8AhIv7F+1f8S37X9l87zrWWD/WbH2483d905244zkffX/D8sj/AJor/wCXX/8AcVflgzY4FNqAPVv2oPjn/wANJ/HTxN8Rv7E/4R3+2fsv/Et+1/avJ8m1ig/1mxN2fK3fdGN2OcZP9KJ+7X8rA5r6q/4ef/tN4/5KZ/5QNM/+RqAPq3/guT974JfXWv8A2wryv9mD/glMP2k/gZ4a+I//AAtD/hHP7a+0/wDEs/4R/wC1eT5N1LB/rPtSbs+Vu+6Mbsc4yfTv2HCf+CkI8an9orHxFfwYbH+wM/8AEs+x/bDP9p/48fI8zf8AZbf/AFm7bs+XGWz+lvwu+F/hj4MeBdM8G+DtM/sfw5pvm/ZbLz5Z/L8yV5X+eVmc5eRzyxxnA4AFAHVUUUUAFFFFABRRRQAV/O5+wj8TvDPwb/ay8DeMPGOp/wBj+HNNF8bu9+zyz+XvsJ4k+SJWc5d0HAOM5OACa/ojr8Wf2o/+CVJ/Zs+Bnib4j/8AC0f+EjOjfZf+JZ/wj/2XzvNuYoP9b9qfbjzd33TnbjjOQAfqh8Dv2oPhl+0j/bf/AArnxN/wkX9i+R9v/wBAurXyfO8zy/8AXxJuz5Un3c4284yM+p1+BH7Dn7c3/DGP/Ca/8UT/AMJh/wAJJ9i/5i32H7N9n+0f9MJd+7z/AGxt754+p/8Ah+YP+iJ/+XX/APcVAH1T/wAPQf2ZP+im/wDlA1P/AORqP+HoP7Mn/RTf/KDqf/yNX4tfsu/BD/hpP45+GvhyNa/4R3+2ftP/ABMvsv2ryfJtZZ/9VvTdnytv3hjdnnGD6r+3F+w7/wAMZf8ACFf8Vr/wmH/CSfbf+YV9h+z/AGf7P/02l37vP9sbe+eAD1H9qL9l74lftpfHrxN8YPg34c/4TD4deJBanS9aN/bWX2n7PbRWs37m5kimTbNbyp86DO3IypBPln/BLsf8Z0/DT6an/wCmy7r1T9lv/gqiP2a/gb4a+Hf/AAq//hIzo32n/iZ/8JB9l87zrmWf/V/ZX2483b945254zgfU/wCy3/wSr/4Zt+Ofhn4jn4oDxEdG+0/8SwaB9m87zrWWD/W/an2483d905244zkAH1V8cv2ovhj+zadDHxG8S/8ACOnW/PFgBp91ded5Pl+Z/qIn2482P72M7uM4OPyv/ai/Ze+J37Z/xy8S/GP4OeGP+Ex+HHiP7N/ZWt/b7aw+0/Z7aK1m/c3Uscy7Z4Jk+dBnbkZUgn1H/guScj4Kf9xv+dhX1Z/wS6/5MU+GX/cT/wDTnd0Aedf8Exv2dfiH+zX4D8d2XxF8ON4fuNS1G1ubdTe29yHjRSHbMMjhcZ74z+FfUnxa+Fp8Yx2msaNPFpvi3TFdbO5mBMFzE3+stLlRy8L4HujBXXlcGv8AtJfGyy/Z2+EmseP9U0ufWNK0p7ZbuztmCytHNcxQEqW+UlfN3bSQGxjIzkeYeH/+Chv7PeqabDLb/FPTbWKRQ4ttStLiOWH/AGMMik4/H6kYoTs7kTjzI5XxBp2k/EqQ+BPEnh22jvZmebUvC+uuVnt0BXE1g8YBkjQIypLDgAcSKnIGf4G+BHi74c6Tqa+C/G11DoOnKl3JoPjGxN1HbMPn8mO5hZZRjYDgINwKHByDXWeMf2x/2YfHmm/2d4h+IXhbVrUHIS6tpsxn+8jbdyOOzKQR611l18N7eyuP+Kf+LnibQ7JcY091g1OEYxgb7yGaTHC8b+McY4x1wrtddDhlh+p5vP4Q+IPxX1HUNKbx9o3hCAp5M8Hhqynurh8ZO0T3DR+U5G85VQSpXsQSnw8+Hnw//ZrurDULO1hGn6yjRXN/rCtda5rTvDkwQx7SxbzCoaONQCDlj8tehp4AZp0M3xk1+3iUndBpel6fZhweCC6Wm8dOoYV1Hg/wx8P/AARey32mNbtqs4/f6rfefd3s3+9PMzOR7ZxRKsrbhGi+iKnw6+Hl/wCJfENl4t8VafLpdtYE/wBg+HbiUTNagrtF3dMCQ10YzsAyREuQCxZjUX7YPgnXPil+zr8SfCvhixGpa9qelJa2toZ44vMk80Nt3yFVHy88kda9FPjPTSP+QvEB/wBM7Z93/Ac5H6GpbS7S+ZIrKGVrUne88n3pW988/wCewFcznzM74Q5FofE37Lf7UXwy/Yz+BPhr4O/GLxMfCHxH8Nm6Gq6KbC6vfs32i5luof31tHLE+6GeJ/lc43YOCCB989Rk428EAjvX4Ff8FQf+T5viZ9dN/wDTZa1+0n7Tvxw/4Zv+BniP4i/2L/wkP9jC1/4lv2v7L53nXUUH+t2Ptx5u77pztxxnISNA+OP7UPwz/ZuOiD4jeJh4c/trz/sH+gXVz53k+X5v+oifbjzY/vYzu4zg48t/4eh/syf9FM/8oOp//I1fKr/8bnnAXHwgHw26n/kN/wBo/wBof+A3leX9g/293m/w7efgP9qD4Hn9m345+Jfhyda/4SI6L9l/4mX2X7N53nWsU/8Aq977cebt+8c7c8ZwGB/SdXwB/wAFW/2X/ib+0iPhefhz4ZPiL+xf7U+3/wCnW1t5PnfZPL/18ibs+VJ93ONvOOK+/wCvlj9uP9uIfsZDwV/xRf8AwmB8SG94/tX7F9n+z/Z/+mMu/d9o9sbe+eJJOm/YP+Fvif4M/so+BfBvi/Tjo3iPTBffa7A3EU/lmS+uJU+eJmU5SRDwxxnB5Brl/wDgqID/AMMJ/Ezn/oGf+nS0r1P9lz45j9pL4GeGviKNF/4R3+2ftX/Es+1favJ8m6lg/wBZsTdnyt33RjdjnGS79qL4G/8ADSfwK8TfDj+2/wDhHf7a+zf8TP7J9q8nybqKf/Vb03Z8rb94Y3Z5xggH4B/Az9lz4n/tK/23/wAK48M/8JH/AGL5H2//AE+1tfJ87zPK/wBfKm7PlSfdzjbzjIz+qP7L37Ufwz/Yx+B3hv4O/GXxR/wh3xG8N/af7U0Qafc332b7Rcy3UP7+1jlhfdDPE3yOcbsHDAgeWrj/AIIvKck/GE/EnHb+w/7O/s//AMCfN8z7f/sbfK/i3cfn/wDtQ/HL/hpL46eJviMNE/4R3+2vs3/Et+1/avJ8m1ig/wBZsTdu8rd90Y3Y5xkgH9KlFFFABRRRQAUUUUAfkD+3n+3l8cvgt+1Z478HeDPHJ0bw7ppsTa2X9kWE/l+ZYW8r/PLAznLyOeWOM4GAAK+1f+Con/Ji/wAS/rpg/wDKnaV+VX/BUP8A5Po+Jv00v/02Wlfup8Ufih4Y+DHgXU/GXjLUv7H8N6Z5Ru737PLP5fmSpEnyRKznLyIOFOM5OACaAPyB/wCCVX7L3w0/aSf4oD4ieGv+EiGi/wBmGwBv7q18ky/a/M/1Eqbs+Un3s428Yyc+A/t5/DDwv8Gf2rvHHg7whpn9jeHdN+w/ZbJZ5JhH5ljbyv8APKzOcvI55Y4zgYAAr3//AIKs/tTfDH9pJfhePhv4nPiL+xjqhv8A/QLq18nzvsnlf6+JN2fKk+7nG3nGRn58+Fv7B3x0+NfgfTfGPg3wQNZ8O6l5v2W8/tiwgMnlyvE/ySzq4w8bjlRnGRkEGgD9Kf2o/wBl/wCGX7F/wN8TfGP4N+Gj4P8AiP4a+y/2VrX9oXV99m+0XMVrP+5uZZYX3Qzyp86HG/IwwBH5YfG/9qT4nftKNov/AAsfxN/wkX9iif7B/oFta+T53l+Z/qY03Z8qP72cbeMZOep/YN+J3hn4MftX+BvGPjDUv7I8O6Z9uN1e/Z5Z/L8ywuIk+SJWc5d0HCnGcngGvtP9uOQf8FJT4JH7OePiIfBn23+3R/yDPsf2zyPs3/H75Pmb/sk/3N23Z82Ny5AOm/YO/YO+B/xr/ZT8EeMvGPgVdZ8Q6j9u+1Xv9rX8Bk8u+uIk+SKdUGEjQcKM4yckk18YH/gqF+02v3fiVtHQD+wNM7f9u1ff37Lf7UPwx/Yt+BXhr4N/GTxP/wAIf8SPDn2k6pov2C5vvs/2i5luof31rHLC+6GeJ/lc43YOGBA/Ib4ZfDLxN8ZvHOmeDvBum/2x4i1Hzfsll9oig83y4nlf55WVBhI3PLDOMDJIFAHTfHP9qL4n/tJ/2J/wsfxN/wAJH/Yvn/YP9AtbXyfO8vzf9REm7PlR/ezjbxjJz+1H/BLn/kxT4Zf9xP8A9Od3Xyn+wz/xre/4TVv2i1Hw7PjL7ENBJ/4mZvPsn2j7SP8AQfO8vb9qt/8AWbd2/wCXO1sfVQ/4Kg/syKMf8LLP/gi1T/5GoAT/AIKj/wDJi3xM+umf+nO1r4F/4JXfsu/DT9pMfE7/AIWH4c/4SA6KumfYMX9zbeSZvtfmf6mRN2fKT72cbeMZOfgI7drgN9BjrX6n/wDBDgn/AIvT9NE/9v6QHxl+3h8LfDHwY/at8ceDfB+m/wBk+HNN+w/ZbMzyT+X5ljbyv88jM5y8jnknGcDgAV9J/sJftlfF/wCM/wC1X4H8G+MfFker+HdSF+Lqy/smyg8zy7C4lT54oVYYaJDwRnGDkEiv0M+KX7eXwL+C/jrUvBvjLxx/Y3iTTvK+1WX9kX8/l+ZEkqfPFAyHKSKeGOM4PIIr8Xf2D/il4Z+DX7WPgbxj4x1P+yPDemC/+13ot5Z/L8ywuIk+SJWc5eRBwpxnJwATQwP0Q/4KqfH3x5+zWPhf/wAK61uPw8dZ/tQX3/EvtrnzRF9j8v8A18b7cea/3cZzznAx8Cf8PIv2iB/zP0X/AIINM/8Akav1iH/BUT9mPP8AyUz/AMoOp/8AyNUn/D0T9mPH/JTP/KBqf/yNSA+kYPDmnAZEAbPXcK+Ff+Cpv7S3xF/ZkT4YL8N/EQ8ODWf7U+2gWFtc+aIfsnl/66N9uPNk+7jO7nOBj4E/4Jd8ft1/DP8A7iX/AKa7uv2n+OX7UXwx/ZtOif8ACxvEw8Of215/2DNhc3PneT5fm/6iJ9uPNj+9jO7jODhFJn873xT+KHib4z+OtT8ZeMNS/tjxHqXlfar3yIoPM8uJIk+SJVQYSNBwozjJ5JNfaX7L/wC1D8TP2z/jn4Z+Dnxj8SDxh8OPEv2r+1tF+wW1j9p+z2st1D++to45k2zW8L/I4zswcgkH76/4ejfsx/8ARTf/ACg6n/8AI1O/4KhgH9hf4l7idudLzj/sKWlVcD1L4HfsufDH9mz+2/8AhXHhn/hHf7a8j7f/AKfdXXneT5nl/wCvlfbjzZPu4zu5zgY/Fn/gqF/yfR8S/wDuGf8ApstK9W/4JVftRfDH9m0/FEfEXxMfDq61/Zf9n5sbm687yftfmf6iJ9uPNj+9jO7jODj76H/BUP8AZk/6KX/5QdT/APkanzAj8sP+Hon7Tf8A0Uz/AMoGmf8AyNXlnxv/AGpPid+0g2iH4j+Jf+Ej/sXz/sH+gWtr5PneX5v+oiTdnyo/vZxt4xk5/pLDD/K18B/8FWP2Xfib+0r/AMKv/wCFceGv+Ei/sX+1Pt+L62tfJ877J5f+vlTdnypPu5xt5xkZOYR6t/wS7Of2FPhofX+0/wD06XddV+3n8UvE3wX/AGUvHHjLwfqZ0fxHppsfst6LeKfyxJf28UnySqyHKSOOVOM5HIBrwH9l39qH4Y/sXfAnwx8G/jJ4n/4Q74keG/tP9q6L9gub77P9oupbqH99axywtuhnib5XON2DhgQPtP4o/FDwz8GPA2qeMvGOpf2P4b0zy/td6LeWfy/MlSJPkiVnOXkQcKcZycAE0CPzX/YaY/8ABSKXxsf2imPxDHgv7CdBH/IL+x/a/P8AtH/Hj5HmbvssH+s3bdny43Nn4u/bx+Fvhj4MftVeN/B/g7TTpHhzTfsItbI3Es/l+ZYW0r/PKzOcvI55Y4zgYAAr3/8A4Kq/tSfDH9pKP4Y/8K58TnxENFOpm/H2C6tfKM32Tyv9fEm7PlSfdzjbzjIz7/8AsIft2/Ar4K/speBfB3jHxx/YniPThfG6sW0m+m8syX1xKvzxQMhyjqeGOM4OCCKAP0nooooAKKKKACiiigD8Af8AgqH/AMn0fE36aX/6bLSv2p/aj+Bn/DSfwJ8TfDga3/wjn9tfZv8AiZ/ZPtXk+TdRT/6rem7d5W37wxuzzjB/Fb/gqJ/yfR8Tfppf/pstK/X/APbz+KXib4Lfso+OPGXg7Uzo/iPTfsH2W9FvFP5fmX9vE/ySqyHKSOOVOM5HIBoA+Kv+HGP/AFWz/wAtT/7tpo/bk/4duP8A8M7L4GPxE/4Qzr4l/tX+y/tn2sfbv+PbyJvL2fa/L/1jbtm7jdtHyx/w9F/ac/6Kb/5QdL/+Rq/QD9l39mD4Y/tnfAzwz8YfjF4aPjH4j+JBcnVdaOoXVj9o+z3U1rD+5tZYoU2w28SfIgztycsSSAflV+y/8DT+0l8dPDXw5/tr/hHTrIuj/aX2T7V5Pk2ss/8Aqt6bs+Vt+8Mbs84wf2n/AGFv2GT+xgPGxPjT/hLz4l+xcf2V9h+zfZ/tH/TaXfu+0e2NvfPHlv7Uf7Lfwx/Yz+BXif4x/Bzw0fB3xI8NC2Ola0NQur37P9ouYrWb9zcyyxPuhnlT5kON2RhgCPz9/wCHof7TX/RTT/4INM/+RqAF/wCCon/J8/xK/wC4b/6a7SvKv2X/AI4/8M3/ABz8M/Eb+xf+Ei/sX7T/AMS37X9l87zrWWD/AFmx9u3zd33TnbjjORyvxR+KPib40eOtS8Y+MtUOs+I9R8r7Vem3ig8zy4kiT5IlVBhEUcKM4yeSTXq37BXwu8L/ABo/aw8DeDfGWmf2z4b1L7d9rsvPlg8zy7C4lT54mVxh40PDDOMHIJFAHWftw/tyj9s3/hCv+KJ/4Q4+G/tvP9rfbvtP2jyP+mMWzb5Hvnd2xz6r+y5/wSq/4aT+Bfhr4jf8LP8A+Ec/tk3I/s0+HvtXleTcywf6z7Um7PlbvujGcc4yT/gqv+y58Mf2bP8AhV3/AArjwz/wjn9tf2p9v/0+6uvO8n7J5X+vlfbjzZPu4zu5zgY8E+Gf7eXxz+DfgTTfB/g3xx/Yvh3TjJ9lsv7IsJxEJJGlf55YGc5d3PLHGcDAAFAHz3IArnAPXvwRX6of8EOOT8afpon/ALf1+WRkPmOSAxYkk8Cv1O/4IadfjXn00T/2/pMD5Y/4Kj8ftz/Ev/uGf+my0r1L9p3/AIJVD9m74G+J/iMfiiPEH9jC2xpn/CP/AGUz+ddRQf6z7U+3Hm7vunO3HGcj9JPin+wh8DfjT491Txj4y8D/ANseItS8r7VejVr+AyeXEkSfJFOqDCRoOFHTJySTXMf8FRRj9hP4le39mf8ApztKGB+Vn7Dn7Dn/AA2cfGuPGn/CIDw39i5/sr7d9o+0ef8A9N4tm37P753dsc/VI/4Ib5H/ACWof+Er/wDdtfAfwK/ai+Jv7Nh1o/DrxKPD39s+R9vzYW1153k+Z5f+vjfbjzZPu4zu5zgV+5f7B/xN8TfGP9lPwP4y8X6kNX8Q6l9u+03vkRweZ5d/cRJ8kSqgwkaD5VGcZOSSaQHgv7Lv/BKn/hm346+GfiP/AMLQ/wCEi/sX7T/xLf8AhH/svnedaywf6z7U+3Hm7vunO3HGcjyr/guZ/wA0T/7jf/thXy1/w9B/aZ/6KZ/5QNL/APkavKPjt+1D8Tf2kv7D/wCFjeJv+Ei/sXz/ALB/xL7W18nzvL8z/URJuz5Uf3s428YyciHc+qf2XP8AglJ/w0p8CfDPxH/4Wj/wjn9tfav+JZ/wj32ryfJupYP9b9qTdnyt33RjdjnGT9/f8FReP2Ffib/3DP8A06WlL/wS4/5MT+GX/cT/APTpd1+QXxR/b1+Onxq8Cap4N8ZeOP7X8OamYvtViNIsYBII5VlT54oFcYeNDww6YOQTQCOp/Yb/AGGz+2c3jX/itf8AhDx4b+xc/wBlfbjcfaPP/wCm0W3b9n987u2Ofqof8ENSR/yW0/8AhK//AHbR/wAENBk/Gz66J/7f1yv7en7efxz+DH7Vnjrwd4N8cnR/Dummx+yWX9kWE4jElhbyv88sDOcvI55Y4zgYAAoGfr1s96UDFfgF/wAPRP2m/wDopY/8EGl//I1H/D0T9pv/AKKWP/BBpf8A8jUWFc+//wBqL/glP/w0n8dPEvxG/wCFof8ACO/2z9l/4lv/AAj32ryfJtYoP9b9qTdu8rd90Y3Y5xk/VX7UXwNP7SfwK8TfDka3/wAI5/bX2b/iZ/ZPtXk+TdRT/wCr3pu3eVt+8Mbs84wfxW/4eiftNj/mpY/8EGl//I1fr/8At5fFHxN8Fv2UvHHjLwfqZ0fxHpv2H7Lei3in8sSX9vE/ySqyHKSOOVOM5HIBqhH5Bfty/sM/8MXL4K/4rb/hMf8AhJPtv/MJ+w/Zvs/kf9N5d+77R7Y2988eq/su/wDBKY/tLfAnwx8Rz8Uf+Ec/tr7V/wASz/hHvtXk+TdTQf637Um7PlbvujG7HOMn5X+On7UXxN/aS/sb/hYvib/hIhovnfYP9AtbXyfO8vzP9REm7PlR/ezjbxjJz+0//BLj/kxP4Zf9xP8A9Ol3QB9VUUUUAFFFFABSHpS0hoA+f/ij+3h8Dfgv471Pwd4y8b/2N4h00RfarQ6TfzeX5kSSp88UDI2UkQ8McZwcEEVyv/D0L9mPP/JTR/4IdU/+Rq/K3/gqN/yfR8S/+4b/AOmy1r6o/wCHGX/VbP8Ay1P/ALtoA+qv+HoX7Mn/AEU0f+CLVP8A5Go/4ehfsx/9FNH/AIIdU/8AkavlX/hxl/1Wz/y1P/u2j/hxl/1Wz/y1P/u2gD6q/wCHoX7Mf/RTR/4IdU/+Rq9U+Bv7UPwx/aS/tv8A4Vx4m/4SP+xfI+3/AOgXVr5PneZ5X+viTdnypPu5xt5xkZ/K39qH/glH/wAM3fAzxL8Rh8Uf+Ei/sb7N/wAS3/hH/svnedcxQf637U+3Hm7vunO3HGcj1X/ghpx/wuv/ALgn/t/QByH7eP7CPx0+NX7Vvjjxj4N8DnWvDeo/YRaXq6rYwiTy7G3if5JJ1dcPG45UZxkcEE/nCAYztX73ILA4z7fzr+p6v5s/2YPgb/w0l8c/DXw6/tr/AIR06yLrGpfZPtXk+Tayz/6rem7PlbfvDG7POMEA++v+CHLAt8aDtGf+JKM45/5f6/VIDAr5V/Ya/YYP7Gf/AAmhPjT/AIS7/hJDZHH9lfYfs32f7R/03l3bvtHtjb3zx9VUAfm1+3f+3l8CfjR+yl448HeD/HB1jxHqYsfsll/ZF/B5vl31vK/zywKgwkbnlhnGBycV+a3wO/Zd+Jv7SH9t/wDCufDY8Rf2KITf51C1tfJEvmeX/r5U3Z8qT7ucbecZGfvwf8ENT/0Wz/y1P/u2vqn9hv8AYZH7GR8an/hNf+Ex/wCEkFkP+QT9h+z/AGfz/wDptLv3ef7Y2988AHVfsGfDHxN8G/2UfA/g7xlpn9j+JdNN99rsvtEU/l+ZfXEqfPEzIcpIh4Y4zg8g17/XwB+1D/wVWH7NHx08S/DgfC//AISP+xvs3/Ey/wCEg+y+d51tFP8A6r7K+3Hm7fvHOM8ZwF/Zd/4Ksn9pT46eGfhyPhb/AMI9/bP2n/iZ/wDCQfavJ8m2ln/1f2VN2fK2/eGN2ecYIB5Z/wAFy/8Amin/AHG//bCvytr9+v25f2Gv+G0P+EJ/4rb/AIQ7/hG/tv8AzCvt32n7R9n/AOm0Wzb9n987u2Oflf8A4caf9Vr/APLU/wDu2gD8q8mvVfgZ+y78T/2lf7b/AOFceGf+Ej/sXyPt/wDp9ra+T53meV/r5U3Z8qT7ucbecZGT9l/4Gf8ADSXxz8NfDka1/wAI6dZF0f7S+yfavJ8m1ln/ANVvTdu8rb94Y3Z5xg/tP+wv+w0f2ME8bE+NP+EvPiX7Dx/ZX2H7N9n+0f8ATaXfu+0e2NvfPAB+F3xS+F3iX4MeOtT8HeMNO/sjxHpvl/arPz4pvL8yJJU+eNmQ5SRDwTjODyCK+1P2W/2W/if+xf8AHbwz8ZPjJ4Z/4Q74b+GvtX9q61/aFrffZ/tFrLaw/ubaWWZ9008S/IjY3ZOFBI+qf2oP+CUf/DSPxy8SfEX/AIWl/wAI7/bAth/Zv/CPfavJ8m2ig/1n2pN2fK3fdGN2OcZPqv8AwVF/5MY+Jf8A3Df/AE6WlAHwN/wVW/al+GP7ScfwxHw48TnxENFOpm/H2C6tfKM32Tyv9fEm7PlSfdzjbzjIz+ftfVH7D37Dh/bO/wCE1x40/wCEPHhsWXP9lfbftH2jz/8ApvFs2/Z/fO7tjnyv9qH4GH9m345+Jfhyda/4SL+xvs3/ABM/sn2XzvOtop/9Xvfbjzdv3jnbnjOAAf0P/FD4l+GPgx4F1Lxj4w1L+x/DOmCP7Ve/Z5ZzGJJUiT5IlZzl5EHCnGcngZHL/Av9qH4YftJf23/wrjxN/wAJF/Yvkfb/APQLq18nzvM8r/XxJuz5Un3c4284yMy/tQfA7/hpD4GeJfhyNa/4R0az9lH9pfZPtXk+TdRT/wCr3pu3eVt+8Mbs84wfKf2G/wBhf/hi/wD4TY/8Jt/wmH/CS/Yv+YT9h+zfZ/tH/TeXfu+0e2NvfPAB+V3/AAVG/wCT6viZ9NM/9NlpX69/DP8Abz+Bvxj8d6b4O8HeNv7a8R6iJfstmuk30PmeXE8r/PLAqDCRu3LDOMDJIFfkJ/wVG/5Pq+Jn00z/ANNlpX3z+y5/wSs/4Zu+OXhn4jH4oDxF/Y32n/iWDQPs3n+daywf637U+3b5u77pztxxnIQzy3/guU2R8FOMf8hv/wBsK639gv8Ab0+BXwV/ZO8C+DfGfjn+xvEmnfbjdWX9kX8/l+Zf3EqfPFAyHKSKeGOM4PIIrlP+C5OCPgpj/qN/+2FflWetCA/qoooopiCiiigAooooA/AP/gqL/wAnz/Ev/uGf+mu0r9e/28vil4m+C/7KPjjxl4O1M6P4j037D9lvRbxT+X5l/bxP8kqshykjjlTjORyAa/IT/gqL/wAnz/Ev/uGf+mu0r9T/APgqN/yYt8TPppn/AKdLSgD8sP8Ah6J+0z/0Uw/+CHS//kal/wCHon7Tn/RTD/4IdL/+Rq+UqM0Afv8A/wDBUD/kxf4mf9wz/wBOdpXyp/wQ16/Gz/uCf+39fVf/AAVE/wCTFviX/wBwz/052lfKn/BDT/mtf/cE/wDb+gDlf28/28/jn8GP2q/HPg7wb45Oj+HdN+wm0sv7IsJxGJLC3lf55YGc5eRzyxxnAwABXvn7UX7MHwy/Yv8Agf4n+MXwd8Nf8Ih8SPDQtf7K1s39ze/Z/tF1FazfubmSSF90NxKnzo2N2RhgCPgP/gqH/wAn0fE36aX/AOmy0r9UT/wU+/ZkZ95+JRxjH/IA1Mj8/s1AHlv/AASl/aj+J/7Sn/C0f+Fj+Jv+Ej/sX+y/sH+gWtr5Pnfa/N/1ESbs+VH97ONvGMnPgH7en7efxz+DH7Vnjrwb4N8cnR/Dummx+yWX9kWE4jElhbyv88sDOcvI55Y4zgYAArmf+Cqv7Ufwx/aQj+GA+HHiY+IRop1M34+wXVr5Rm+yeV/r4k3Z8qT7ucbecZGfvj/gl8GP7C/w0ZizEjUs5PX/AImd0B+mKAPiv9gr9vL46fGn9rHwN4N8ZeOBrPhvUvt32uy/sewg8zy7C4lT54oFcYeNDwwzjB4JFfQP/BVv9qL4m/s1j4Xf8K48Tf8ACOHWv7U+3/6Ba3XneT9k8v8A18T7cebJ93Gd3OcDH38BxXlfxy/ai+GP7Nh0QfEfxMPDn9tef9gzYXNz53k+X5v+oifbjzY/vYzu4zg4APlX9lz9lz4Yfto/Anwz8ZfjL4Z/4TH4k+JftX9q639vurH7T9nupbWH9zayxQptht4k+RBnbk5Ykn4B/wCCW5I/bq+Gg9f7T/8ATZd1+qf/AA9H/Zi/6Kb/AOUDU/8A5Gr6mwGKkHHfpQB8B/8ABVn9qP4m/s1j4X/8K48Tf8I6da/tT7f/AKBa3XneT9k8v/XxPtx5sn3cZ3c5wMe+/sFfFDxN8Z/2TvA3jLxjqQ1jxJqf283d6LeKDzPLv7iJPkiVUGEjQcKM4yckk11nxy/ai+GP7Np0QfEbxL/wjp1vz/7PA0+6uvO8ny/M/wBRE+3Hmx/exndxnBx+GP7d/wAT/DHxm/as8ceMvCN//bXh3U/sP2S+EMsHmeXY28T/ACSqrjDxuOVGcZ6EUAeU/C34peJvgt480vxl4O1P+x/Eem+b9lvRBFP5fmRPE/ySq6HKSOOVOM5HIBr9fP8AglN+1B8S/wBpI/FI/EXxJ/wkP9jf2X9h/wBAtbXyfO+1+Z/qIo92fKj+9nG3jGTn334X/t2/A740eONO8IeD/Gp1bxBqHmfZbP8Asi+g3+XE0j/PLAqDCI55YZxgZJAr6AJ7UAfkJ+3p+3p8c/gz+1X468HeDfHJ0fw7phsfslj/AGRYTiMSWFtK/wA8sDOcvI55Y4zgYAArkv2W/wBqP4nftn/Hbwz8G/jJ4mHjD4b+JPtX9q6L/Z9rY/afs9rLdQ/vrWKKZNs0ET/I4ztwcqSD1n7eX7Bfx0+M/wC1b468Y+DfA51jw5qf2AWl7/a1hAJPLsLeJ/klnVxh43HKjpkZBBr9Svif8TfDHwV8E6l4w8YaiNJ8NaYIvtV6beWfyvMlSJPkiVnOXkQcKcZyeATQB+b37dKr/wAE2z4Hb9nNR8PD4z+3f26T/wATP7YLT7P9m/4/fO8vZ9qn/wBXt3b/AJs7Vx+bPxR+KXif40eOdS8ZeMtT/tjxJqXlfar37PFB5nlxJEnyRKqDCRoOFGcZPJJr9Jv25Sf+ClA8E/8ADOI/4WJ/whf23+3v+YX9j+2fZ/s3/H95Hmb/ALJcf6vdt2fNjcuflb/h1x+07/0TL/yv6X/8k0AJ/wAPQP2mf+ilf+UDS/8A5Go/4ef/ALTP/RSx/wCCDS//AJGr9e/28vhl4n+Mn7KXjjwh4O0v+2PEmo/YfslkZ4ofN8u/t5X+eVlQYRHPLDOMDJIFfhj8cv2X/ib+zcNE/wCFjeGT4d/trz/sGb61ufO8ny/M/wBRK+3Hmx/exndxnBwAcr8Ufij4n+NHjrU/GXjHUv7Y8Sal5X2u9+zxQeZ5cSRJ8kSqgwkaDhRnGTySa/fr9vL4neJPgz+yl428ZeENS/sfxFposvs16IIp/L8y+t4n+SVWQ5SRxypxnI5ANcl/wS9cH9hT4aA9v7TP/lTuq8D/AG8/28vgX8Zv2UPHPg3wd45/tjxJqX2IWll/ZN9B5vl31vK/zyQKgwkbnlhnGByQKVhnK/sPMf8AgpIPGn/DRP8AxcYeCzY/2Fu/4ln2MXf2j7T/AMePkeZv+yW/+s3bdny43Nn6pH/BL/8AZhPT4Z/+V7U//kmvlX/ghp9z42/TRP8A2/r7T+Jf7dvwM+C3jfU/CHjPxv8A2P4h03yhdWZ0m+m8vzIklT544GQ5SRDwxxnB5BFIZ9BdaWiiqJCiiigAooooA/AP/gqL/wAnz/Ev/uGf+mu0r9pP2o/gX/w0p8CvE3w5/tv/AIRz+2vs3/Ez+yfavJ8m6hn/ANVvTdnydv3hjdnnGD+Lf/BUX/k+j4l/9wz/ANNdpTR/wVB/acxn/hZn/lA0z/5GoA+qP+HGf/VbP/LU/wDu2j/hxn/1Wz/y1P8A7tr5Y/4ejftNj/mpn/lA0z/5Go/4ejftN/8ARTP/ACgaZ/8AI1AH6p/8FRf+TFviX/3DP/TnaV8q/wDBDT/mtf8A3BP/AG/r4s+KP7evxz+NHgXU/B3jLxwNZ8Oal5X2qz/siwg8zy5UlT54oFcYeNDwwzjB4JFfaf8AwQ0/5rX/ANwT/wBv6APU/wBqH/glN/w0l8dPE3xG/wCFo/8ACO/20LUf2b/wj/2ryfJtYYP9Z9qTdnyt33RjdjnGT+LFf1S18s/8Ovv2Zv8Aomh/8H+qf/JNAH5TfsOfsOH9s4+Nf+K1Hg8eGxZf8wr7cbk3Hn/9Notu37P753dsc/WP/Dc6/wDBNuMfs6nwX/wsNvBfH/CR/wBq/wBmG8N3/p//AB7eTN5ez7X5f+sbds3cZ2iP9ukD/gm43gdv2dVHw8PjL7d/buSdU+2fZPs/2f8A4/fO8vZ9qn/1e3dv+bO1cerfst/st/DD9tH4E+GfjJ8ZPDH/AAmHxI8S/av7V1r7fdWP2j7PdS2sP7m2lihTbDbxJ8iDO3JyxJIB9VftRfHMfs1/ArxL8Rzon/CRDRfsudNF19m87zrqKD/WbH2483d905244zkfn8zH/gtEwAA+Dw+G3Xn+3P7R/tD/AMBvK8v7B/t7vN/h28/FvxP/AG8Pjj8aPAOp+DPGPjYav4c1IxG6s/7IsYPM8uVZU+eOBXGHjQ/KwzjByCRX2h/wQzH7341f7ui/+39AHwL+1F8Cj+zZ8c/Enw5Ot/8ACRf2MLb/AImX2T7L53nWsU/+r3vtx5u37xztzxnA/VH9l7/gqyP2kPjl4Y+HB+F//CO/2z9pH9p/8JB9q8nybWWf/V/ZU3Z8rb94Y3Z5xg/Af/BUX/k+r4mD/sG/+mu0pf8Agl2P+M6vhp9dT/8ATZd0AfVX/Bcrp8FP+41/Owr8q8kMcV/Sf8df2XPhn+0m+hn4i+G/+EhGi+f9h/0+5tfJ87y/M/1Eibs+VH97ONvGMmvwz/by+GXhn4N/tXeOPBnhDTTpHh7TPsJtrLz5JhH5ljbyv88jM5y8jnljjOBwAKAPs4/sON/wTejH7Rf/AAmv/Cw28GDjw1/ZX9mfbDd/6D/x8+dN5ez7V5n+rbd5e35d24J/w/Jb/oiw/wDCrH/yFX6U/FL4W+GPjR4H1Lwb4y0z+2PDepeV9rsvtEsHmeXKkqfPEyuMPGh4YZxg8EivAv8Ah1x+zF/0TL/yv6p/8k0AfKf/AA/Jc/8ANFh/4VY/+Qq+q/8AgqACP2GPiWxOcf2af/Kla1+QX7evwu8LfBf9q7xx4N8GaYdG8OaabH7LZfaJZ/LElhbSv88rM5y8jnljjOBgACv1/wD+CoX/ACYp8TP93Tf/AE52tAH5VfsM/tz/APDFx8bf8UT/AMJj/wAJL9i/5i32H7N9n+0f9MJd+77R7Y2988fVX/D87/qif/l1/wD3FX5V1+v37BX7BXwJ+NP7J3gbxl4y8Df2z4k1L7d9rvf7Xv4PM8u/uIk+SKdUGEjQcKM4yeSTQB9pftRfHAfs3/A3xJ8RP7FHiH+xvs3/ABLftYtfO866ig/1ux9uPN3fdOduOM5HwE4/4fOthSPhAPhsOT/yG/7ROoen/Ht5Xl/YP9vd5v8ADt5+Lfir+3p8cvjT4G1Pwb4w8bjWfDepGI3dn/ZFjB5nlypKmHjgV1AeNDwwzjB4JFfaX/BDLr8a/wDuCf8At/QB9+/svfAv/hm74E+Gfhz/AGyPEP8AY32n/iZfZPsvnedcyz/6re+3Hm7fvHO3PGcD8A/2YPgcf2lPjp4a+HX9tf8ACOnWRdf8TL7J9q8nybWWf/Vb03Z8rb94Y3Z5xg/0pnpX8wnwq+KHib4L+PNM8Z+DtTOj+I9M837LeiCKfy/MieJ/klVkOUkccqcZyOQDQB+537DH7Df/AAxjH44P/Ca/8Jh/wkoseP7K+w/Zvs/2j/pvLv3faP8AZxs754/LH/gqJ/yfR8S/+4b/AOm21pf+Hof7Tf8A0Ur/AMt/TP8A5GrwH4o/FHxP8aPHWp+MvGWp/wBseJNS8r7Xe/Z4oPM8uJIk+SJVQYSNBwozjJ5JNSUf080UUVRIUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH/2bhK9z8AAAAAs0eehgFm4G4dJPaTqbRjJA==";

  let labelJsonString = '{"pageData":{"name":"测试模板123","width":560,"height":600,"offsetTop":0,"offsetLeft":0,"gap":16},"items":[{"id":"1","name":"TextItem","title":"文本","minWidth":10,"minHeight":10,"active":false,"options":{"mode":"single","bindAttr":"","fontFamily":"黑体","fontSize":"40","fontWeight":"1","content":"钣金入库票(HSF)","zIndex":0,"width":346,"height":50,"left":47,"top":0}},{"id":"3","name":"LineItem","title":"直线","minWidth":1,"minHeight":1,"active":false,"options":{"zIndex":0,"width":560,"height":3,"left":0,"top":146}},{"id":"6","name":"BarcodeItem","title":"条码","minWidth":10,"minHeight":10,"active":false,"options":{"bindAttr":"","content":"0123456789","zIndex":0,"width":268,"height":45,"left":70,"top":49,"codeType":"CODE_128","margin":0}},{"name":"TextItem","title":"文本","minWidth":10,"minHeight":10,"active":false,"thumbnail":"textIcon","options":{"mode":"single","bindAttr":"","fontFamily":"黑体","fontSize":"24","fontWeight":"0","content":"物料编码:01413068","zIndex":0,"width":297,"height":30,"left":5,"top":156},"id":"0.5038"},{"name":"CircleItem","title":"圆形","minWidth":10,"minHeight":10,"active":false,"thumbnail":"circleIcon","iconWidth":"30","options":{"zIndex":0,"width":137,"height":68,"left":385,"top":177,"borderWidth":2},"id":"0.8272439361077832"},{"name":"BoxItem","title":"矩形框","minWidth":10,"minHeight":10,"active":false,"thumbnail":"boxIcon","options":{"borderColor":"#000","borderWidth":4,"borderRadius":10,"zIndex":0,"width":100,"height":40,"left":30,"top":194},"id":"0.79908"},{"name":"TableItem","title":"表格","minWidth":20,"minHeight":10,"active":false,"thumbnail":"tableIcon","options":{"row":2,"column":3,"borderWidth":2,"borderColor":"#000","borderRadius":10,"zIndex":-3,"width":187,"height":49,"left":155,"top":193},"id":"0.59669"},{"id":"0.25700723462520125","name":"BarcodeItem","title":"条码","minWidth":10,"minHeight":10,"active":false,"options":{"bindAttr":"","content":"0123456789","zIndex":0,"width":268,"height":45,"left":70,"top":98,"codeType":"CODE_128","margin":10}},{"id":"0.7829247298658755","name":"QRcodeItem","title":"二维码","minWidth":20,"minHeight":20,"active":false,"options":{"bindAttr":"","content":"0123456789","zIndex":0,"width":122,"height":122,"left":29,"top":301,"codeType":"QR_CODE","qrVersion":10,"gs1Mode":"true","characterSet":"utf-8","errorLevel":"L","errorLevel2":0,"aztecLayers":0,"dataMatrixShape":"FORCE_NONE","margin":0,"pdf417Compact":"false","pdf417Compaction":"AUTO","minCols":2,"maxCols":30,"minRows":3,"maxRows":90}},{"id":"0.9420211426391194","name":"QRcodeItem","title":"二维码","minWidth":20,"minHeight":20,"active":false,"options":{"bindAttr":"","content":"0123456789","zIndex":0,"width":122,"height":122,"left":208,"top":296,"codeType":"AZTEC","qrVersion":0,"gs1Mode":"true","characterSet":"utf-8","errorLevel":"L","errorLevel2":2,"aztecLayers":5,"dataMatrixShape":"FORCE_NONE","margin":0,"pdf417Compact":"false","pdf417Compaction":"AUTO","minCols":2,"maxCols":30,"minRows":3,"maxRows":90}},{"id":"0.49940625140976236","name":"QRcodeItem","title":"二维码","minWidth":20,"minHeight":20,"active":false,"options":{"bindAttr":"","content":"0123456789","zIndex":0,"width":122,"height":122,"left":386,"top":293,"codeType":"DATA_MATRIX","qrVersion":0,"gs1Mode":"true","characterSet":"utf-8","errorLevel":"L","errorLevel2":0,"aztecLayers":0,"dataMatrixShape":"FORCE_SQUARE","margin":0,"pdf417Compact":"true","pdf417Compaction":"AUTO","minCols":2,"maxCols":30,"minRows":3,"maxRows":90}},{"id":"0.88243","name":"QRcodeItem","title":"二维码","minWidth":20,"minHeight":20,"active":true,"options":{"bindAttr":"","content":"0123456789","zIndex":0,"width":122,"height":122,"left":389,"top":444,"codeType":"PDF_417","qrVersion":0,"gs1Mode":"true","characterSet":"utf-8","errorLevel":"L","errorLevel2":3,"aztecLayers":0,"dataMatrixShape":"FORCE_RECTANGLE","margin":0,"pdf417Compact":"true","pdf417Compaction":"NUMERIC","minCols":2,"maxCols":30,"minRows":3,"maxRows":90}}]}';
  labelJsonString = '{"pageData":{"name":"测试模板123","width":560,"height":600,"offsetTop":0,"offsetLeft":0,"type":"label","gap":16,"cmdType":"CPCL","drawType":"cmd"},"items":[{"id":"1","name":"TextItem","title":"文本","minWidth":10,"minHeight":10,"active":false,"options":{"mode":"single","bindAttr":"","fontFamily":"0","fontSize":24,"fontWeight":"1","content":"钣金入库票(HSF)","zIndex":0,"width":387,"height":66,"left":19,"top":7,"align":"center","effectLater":"no","truncation":"no","scale":2,"fontHeight":24,"innerFont":"yes"}},{"id":"7","name":"QRcodeItem","title":"二维码","minWidth":20,"minHeight":20,"active":false,"options":{"bindAttr":"","content":"0123456789","zIndex":0,"width":122,"height":122,"left":415,"top":12,"codeType":"QR_CODE","qrVersion":2,"gs1Mode":"false","characterSet":"utf-8","errorLevel":"L","errorLevel2":8,"aztecLayers":2,"dataMatrixShape":"FORCE_SQUARE","pdf417Compact":"false"}},{"id":"6","name":"BarcodeItem","title":"条码","minWidth":10,"minHeight":10,"active":false,"options":{"bindAttr":"","content":"0123456789","zIndex":0,"width":268,"height":45,"left":76,"top":81,"codeType":"CODE_128","showText":"yes"}},{"id":"3","name":"LineItem","title":"直线","minWidth":1,"minHeight":1,"active":false,"options":{"zIndex":0,"width":560,"height":3,"left":0,"top":146}},{"name":"TextItem","title":"文本","minWidth":10,"minHeight":10,"active":false,"thumbnail":"textIcon","options":{"mode":"single","bindAttr":"","fontFamily":"0","fontSize":"24","fontWeight":"0","content":"物料名称:过线盖","zIndex":0,"width":236,"height":30,"left":12,"top":162,"align":"left","effectLater":"no","truncation":"no","scale":1,"fontHeight":24,"innerFont":"yes"},"id":"0.433887728909057"},{"name":"TextItem","title":"文本","minWidth":10,"minHeight":10,"active":false,"thumbnail":"textIcon","options":{"mode":"single","bindAttr":"","fontFamily":"0","fontSize":"24","fontWeight":"0","content":"物料编码:01413068","zIndex":0,"width":297,"height":30,"left":13,"top":194,"align":"left","effectLater":"no","truncation":"no","scale":1,"fontHeight":24,"innerFont":"yes"},"id":"0.5038"},{"name":"TextItem","title":"文本","minWidth":10,"minHeight":10,"active":false,"thumbnail":"textIcon","options":{"mode":"multiple","bindAttr":"","fontFamily":"0","fontSize":"24","fontWeight":"0","content":"物料图号:KFR1234666","zIndex":0,"width":318,"height":30,"left":11,"top":227,"align":"left","effectLater":"no","truncation":"no","scale":1,"fontHeight":24,"innerFont":"yes"},"id":"0.84423"},{"name":"TextItem","title":"文本","minWidth":10,"minHeight":10,"active":false,"thumbnail":"textIcon","options":{"mode":"multiple","bindAttr":"","fontFamily":"0","fontSize":"24","fontWeight":"0","content":"工作中心:BJCY01","zIndex":0,"width":293,"height":30,"left":10,"top":259,"align":"left","effectLater":"no","truncation":"no","scale":1,"fontHeight":24,"innerFont":"yes"},"id":"0.03899316427277433"},{"name":"TextItem","title":"文本","minWidth":10,"minHeight":10,"active":false,"thumbnail":"textIcon","options":{"mode":"single","bindAttr":"","fontFamily":"0","fontSize":"24","fontWeight":"0","content":"批次/订单数量:6/70","zIndex":0,"width":320,"height":30,"left":11,"top":293,"align":"left","effectLater":"no","truncation":"no","scale":1,"fontHeight":24,"innerFont":"yes"},"id":"0.47756453055216297"},{"name":"DateItem","title":"日期","minWidth":10,"minHeight":10,"active":false,"thumbnail":"dateIcon","options":{"mode":"multiple","showTime":"show","format":"yyyy/MM/DD","bindAttr":"","fontFamily":"0","fontSize":"24","fontWeight":"0","content":"2024/06/15 02:11:02","zIndex":0,"width":300,"height":30,"left":141,"top":326,"align":"left","effectLater":"no","truncation":"no","scale":1,"fontHeight":24,"innerFont":"yes"},"id":"0.6297067398418923"},{"name":"TextItem","title":"文本","minWidth":10,"minHeight":10,"active":false,"thumbnail":"textIcon","options":{"mode":"single","bindAttr":"","fontFamily":"0","fontSize":"24","fontWeight":"0","content":"生产时间:","zIndex":0,"width":133,"height":30,"left":10,"top":327,"align":"left","effectLater":"no","truncation":"no","scale":1,"fontHeight":24,"innerFont":"yes"},"id":"0.50199"},{"name":"TextItem","title":"文本","minWidth":10,"minHeight":10,"active":false,"thumbnail":"textIcon","options":{"mode":"single","bindAttr":"","fontFamily":"0","fontSize":"24","fontWeight":"0","content":"总装订单/线体:说的话就开始的课件撒活动空间","zIndex":0,"width":534,"height":30,"left":11,"top":363,"align":"left","effectLater":"no","truncation":"no","scale":1,"fontHeight":24,"innerFont":"yes"},"id":"0.32476"},{"name":"TextItem","title":"文本","minWidth":10,"minHeight":10,"active":false,"thumbnail":"textIcon","options":{"mode":"single","bindAttr":"","fontFamily":"0","fontSize":"24","fontWeight":"0","content":"操作工:佛山无影脚","zIndex":0,"width":348,"height":30,"left":10,"top":396,"align":"left","effectLater":"no","truncation":"no","scale":1,"fontHeight":24,"innerFont":"yes"},"id":"0.6444260276244673"},{"name":"TextItem","title":"文本","minWidth":10,"minHeight":10,"active":false,"thumbnail":"textIcon","options":{"mode":"multiple","bindAttr":"","fontFamily":"0","fontSize":"24","fontWeight":"0","content":"总装订单/线体:说的话就开始的课件撒活动空间","zIndex":0,"width":81,"height":107,"left":271,"top":439,"align":"left","effectLater":"yes","truncation":"no","scale":1,"fontHeight":24,"innerFont":"yes"},"id":"0.06224396171615698"},{"name":"TextItem","title":"文本","minWidth":10,"minHeight":10,"active":false,"thumbnail":"textIcon","options":{"mode":"single","bindAttr":"","fontFamily":"0","fontSize":"24","fontWeight":"0","content":"操作工:佛山无影脚","zIndex":0,"width":201,"height":30,"left":11,"top":472,"align":"left","effectLater":"no","truncation":"no","scale":1,"fontHeight":24,"innerFont":"yes"},"id":"0.34433912499167185"},{"id":"8","name":"ImageItem","title":"图片","minWidth":10,"minHeight":10,"active":false,"options":{"source":"local","bindAttr":"","url":"","content":"data:image/png;base64,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","zIndex":0,"width":80,"height":80,"left":400,"top":477}}]}';

  let testEsc = [
    { type: 'reset' },
    { type: 'setAlign', value: 1 },
    { type: 'feedLine', value: 2 },
    { type: 'text', content: 'ESC打印测试\n', value: 30, bold: 1 },
    { type: 'feedEnter' },
    { type: 'setAlign', value: 0 },
    { type: 'text', content: '**********************************************\n' },
    { type: 'text', content: '钢卷号:S945500150-450101\n', absolute: true, x: 5, underline: 1 },
    { type: 'text', content: '重量:6.980\n', absolute: true, x: 5 },
    { type: 'text', content: '供应商代码:450101\n', absolute: true, x: 5 },
    { type: 'text', content: '材料名称:热镀锌板Q235A 2.0x1250xC\n', absolute: true, x:15},
    { type: 'text', content: '材料代码:80050008\n', absolute: true, x: 5 },
    { type: "text", content:"第一列", midContent:"中间列", rightContent:"第三列", absolute:true, x:5},
    { type: 'text', content: '**********************************************\n' },
    { type: 'qrcode', content: 'www.baidu.com', width: 120, height:120, absolute: true, x: 25, imageCmd: 0},
    { type: 'feedEnter' },
    { type: 'qrcode', codeType:0, content: 'www.baidu.com', width: 280, height:80, absolute: true, x: 50, imageCmd: 0},
    { type: 'feedDot', value: 10 },
    { type: 'barcode', content: '123456789', width:240, height: 40, absolute: true, x: 100, imageCmd: 0},
    { type: 'feedLine', value: 3 },
    { type: 'setAlign', value: 1 },
    { type: 'text', content: '---------测试图片----\n', rotate: 1 },
    { type: 'image', width: 240, height: 240, absolute: true, x: 100, content: escImgStr, imageCmd: 0 },

    { type: 'text', content: '\n-----------------绘制线条-------------\n' },
    { type: 'setAlign', value: 0 },
    { type: 'line', absolute: true, x: 50, y: 60, width: 300, height: 2 , imageCmd: 0},
    { type: 'feedEnter'},

    { type: 'pageEnd' },
  ];

  let testCPCL = [
    { type: 'setup', offset: 0, dpi_w: 200, dpi_h: 200, width:600, height: 620, qty:1},
    { type: 'pageEnd'},
    { type: 'setAlign', value:0},
    { type: 'text', content: 'CPCL打印测试', font:0, value:24, bold:1, widthScale:2, heightScale:2, x:100, y:20 },
    { type: 'box', x: 10, y: 0, x1: 560, y1: 600, width:2 },
    { type: 'line', x: 10, y: 50, x1: 560, y1: 50, width:3 },
    { type: "text", content:"反色显示", font:0, value:24, x:20, y:60},
    { type: "text", content:"重量:6.980", font:0, value:24, x:20, y:90,},
    { type: "inverse", x:20, y:60, x1:300, y1:60, width:60},
    { type: "text", content:"材料代码:80050008", font:0, value:24, x:20, y:130, underline:1},
    { type: "text", content:"材料代码:80050008", font:0, value:24, x:20, y:160, underline:1},
    { type: "text", content:"材料代码:80050008", font:0, value:24, x:20, y:190, underline:1},
    { type: 'text', content:"第一行\r\n第二行\r\n第三行", font:0, value:24, x:20, y:220, height: 30}, 
    { type: 'image', width:120, height:120, x:320, y:180, content: imgStr }, 
    { type: 'qrcode', codeType:2, x:240, y:360, tolerant: 1, qrVersion:2, content:"www.baidu.com" },  
    { type: 'barcode', barcodeType:"128", width:1, height:60, x:300, y:520, content:"123456789", textPos: 1, font:0, value:2}, 
    { type: 'from'},
    { type: 'print'}
  ];

  //斑马打印机
  // testCPCL = [
  //   { type: 'setup', offset: 0, dpi_w: 200, dpi_h: 200, width:600, height: 620, qty:1},
  //   { type: 'pageEnd'},
  //   { type: 'setAlign', value:0},
  //   { type: 'text', content: 'CPCLkkkkk', font:0, value:0, bold:0, widthScale:2, heightScale:2, x:100, y:20 },
  //   { type: 'box', x: 10, y: 0, x1: 560, y1: 600, width:2 },
  //   { type: 'line', x: 10, y: 50, x1: 560, y1: 50, width:3 },
  //   { type: "text", content:"反色显示", font:"GBUNSG24.CPF", value:0, x:20, y:60},
  //   { type: "text", content:"重量:6.980", font:"GBUNSG24.CPF", value:0, x:20, y:90,},
  //   { type: "text", content:"材料代码:80050008", font:"GBUNSG24.CPF", value:0, x:20, y:120, underline:1},
  //   { type: 'text', content:"第一行\r\n第二行\r\n第三行", font:"GBUNSG24.CPF", value:0, x:20, y:140, height: 30,bold:1, }, 
  //   { type: 'image', width:120, height:120, x:320, y:180, content: imgStr }, 
  //   { type: 'qrcode', codeType:2, x:240, y:300, tolerant: 1, qrVersion:2, content:"www.baidu.com" },  
  //   { type: 'barcode', barcodeType:"128", width:1, height:60, x:300, y:420, content:"123456789", textPos: 1, font:0, value:2}, 
  //   { type: 'from'},
  //   { type: 'print'}
  // ];

  //模板打印
  // testCPCL = [
  //   { type: 'setup', offset: 0, dpi_w: 200, dpi_h: 200, width:600, height: 620, qty:1},
  //   { type: 'pageEnd'},
  //   { type: 'image', x:10, y:10, width: 560, height: 600, json: labelJsonString, heightAdjust: true }, 
  //   { type: 'template', json: labelJsonString}, 
  //   { type: 'from'},
  //   { type: 'print'}
  // ];

  let testTSPL = [
    { type: 'setup', width:60, height: 40, unit: 'mm'},
    { type: 'gap', x: 2, y: 0, unit: 'mm' },
    { type:"text","content":"使用模板设计数据绘制",widthScale:2,heightScale:2,x:100,y:20,align:1},
    // { type: 'image', width:560, height:580, x:10, y:10, json: labelJsonString }, 
    // { type: 'template', json: labelJsonString}, 
    {type:"print", x:1,y:1}
  ];

  testTSPL = [
    { type: 'setup', width:560, height: 600, unit: 'dot'}, //unit默认为dot,可以使用公制单位mm
    { type: 'gap', x: 16, y: 0, unit: 'dot' }, //unit默认为dot,可以使用公制单位mm
    {type:"text","content":"钣金入库标签(HSF)",widthScale:2,heightScale:2,x:288,y:20,align:1},
    {x:10,y:165,type:"text",content:"物料名称:过线盖"},
    {x:10,y:205,type:"text",content:"物料编码:068"},
    {x:10,y:245,type:"text",content:"物料图号:KFR35Wsdksahdkhk"},
    {x:10,y:285,type:"text",content:"工作中心:BJCY01"},
    {x:10,y:325,type:"text",content:"批次/订单数量:6/70"},
    {x:10,y:365,type:"text",content:"生产时间:2022-12-19 14:50:44"},
    {x:10,y:405,type:"text",content:"总装订单/线体:WERashdjhj7878"},
    {x:10,y:445,type:"text",font:"TSS24.BF2",content:"操作工:钣_操作工"},
    {type: 'image', width:80, height:80, x:200, y:60, content: imgStr }, 
    {type:"print", x:1,y:1},
  ]

  const testSunmiLabel = [
    { type: 'setup', width:590, height: 620},
    {type:"text",text:"钣金入库标签",bold:1, textWidthRatio:2,textHightRatio:2,posX:288,y:20,align:2},
    {type:"barcode",text:"QTBJ10010023",barcodeType:"CODE128",height:50,dotWidth:2,readable:2,align:2,posY:70,posX:288},
    {posX:10,posY:165,type:"text",text:"物料名称:过线sad盖"},
    {posX:10,posY:205,type:"text",text:"物料编码:0141sdsd3068"},
    {posX:10,posY:245,type:"text",text:"物料图号:KFjhsdjhsadjh23232"},
    {posX:10,posY:285,type:"text",text:"工作中心:B4545JCY01"},
    {posX:10,posY:325,type:"text",text:"批次/订单数量:6/70"},
    {posX:10,posY:365,type:"text",text:"生产时间:2022-12-19 14:50:44"},
    {posX:10,posY:405,type:"text",text:"总装订单/线体:shdjkhsjdhsjdhjsd"},
    {posX:10,posY:445,type:"text",text:"操作工:钣_操作工"},
    {type:"qrcode",text:"88c7f2332f795d94bc5fb96e17995e5b",posY:450,posX:400,dot:4},
    {type:"image",content:imgStr,posY:500,posX:200,width:80,height:80},
    {type:"print", value:1}
  ]

  const testSunmiTicket = [
    {type: 'setup', width:590, height: 620,align:2},
    {type:"printText",text:"钣金入库标",bold:1, textWidthRatio:1,textHightRatio:1},
    {type:"barcode",text:"QTBJ10010023",barcodeType:"CODE128",height:50,dotWidth:2,readable:2,align:2},
    {type: 'setup', align:1},
    {type:"printText",text:"物料名称:过线sdsad盖"},
    {type:"printText",text:"物料编码:01asdasdasd068"},
    {type:"printText",text:"物料图号:KFR35WJ3hsjdhj455"},
    {type:"printText",text:"工作中心:BJ65656CY01"},
    {type:"printText",text:"批次/订单数量:6/70"},
    {type:"printText",text:"生产时间:2022-12-19 14:50:44"},
    {type:"printText",text:"总装订单/线体:shdjkhsjdhsjdhjsd"},
    {type:"printText",text:"操作工:钣_操作工"},
    {type:"qrcode",text:"88c7f2332f795d94bc5fb96e17995e5b",dot:4,align:2},
    {type:"image",content:imgStr,width:80,height:80,align:2},
    {type:"print"}
  ]

  const testZPL = [
    {"type":"size","width":592,"height":640},
    {"type":"printCount","value":2},
    {"type":"text","content":"重量:6.980","font":"0","x":200,"y":300,"widthScale":40,"heightScale":40,"customFont":"E:LZHONGHE.TTF"},
    {"type":"text","content":"rotate 0","font":"B","x":100,"y":500,"widthScale":20,"heightScale":20},
    {"type":"textBlock","content":"我们12345679qwertyuiop","font":"A","x":400,"y":400,"widthScale":20,"heightScale":20,"width":150,"height":200,"customFont":"E:LZHONGHE.TTF"},
    {"type":"box","x":10,"y":20,"width":200,"height":100,"thickness":2},
    {"type":"bar","x":10,"y":50,"width":200,"height":3},
    {"type":"line","x":10,"y":50,"width":200,"height":3,"direction":"L"},
    {"type":"circle","x":10,"y":50,"width":200,"thickness":3},
    {"type":"ellipse","x":10,"y":50,"width":200,"height":100,"thickness":2},
    {"type":"qrcode","x":240,"y":360,"tolerant":"L","content":"www.baidu.com","model":"1","factor":2,"rotate":90},
    {"type":"barcode","height":60,"x":300,"y":520,"content":"123456789","textPos":1,"rotate":90},
    {"type":"image","width":120,"height":120,"x":320,"y":180,"content":imgStr}
  ]

  const typeArr = ["esc","cpcl","tspl","sunmi_ticket","sunmi_label", "zpl"];

  const testMap = {
    "esc": testEsc,
    "cpcl": testCPCL,
    "tspl": testTSPL,
    "sunmi_label": testSunmiLabel,
    "sunmi_ticket": testSunmiTicket,
    "zpl": testZPL,
  }

  export default {
    data() {
      return {
        currentMode: 'BT',
        device: "",
        devices: [],
        customData: '{"cmdType":"tspl","encoding":"UTF-8","data":[{"type":"setup","width":40,"height":60,"unit":"mm"},{"type":"gap","x":2,"y":0,"unit":"mm"},{"x":10,"y":60,"type":"text","content":"物料名称:过线盖物料名称:过线盖物料名称:过线盖"},{"type":"print","x":1,"y":1}]}', 
        searchData: "",
        address: '',
        ip: '',
        port: '',
        useCustomData: false,
        currentConnect: "random",
        connects: []
      }
    },

    mounted() {
      instance = this;
      const that = this;
      printerModule.addEventListener('searchHandler', function(e) {
        that.searchData = JSON.stringify(e)
      })
      this.requestPermission();
    },

    methods: {
      requestPermission() {
        const permissions = [
          'android.permission.BLUETOOTH',
          'android.permission.BLUETOOTH_ADMIN',
          'android.permission.BLUETOOTH_CONNECT',
          'android.permission.ACCESS_FINE_LOCATION'
        ];

        plus.android.requestPermissions(permissions, (result) => {
            if (result.deniedAlways.length > 0 || result.denied.length > 0) {
                showPermissionDialog();
            } else {
                startBluetooth();
            }
        }, (error) => {
            console.error('权限请求失败:', error);
        });
      },
      showPermissionDialog() {
        uni.showModal({
          title: '权限不足',
          content: '需要蓝牙和位置权限才能连接设备,请前往设置开启。',
          confirmText: '去设置',
          success: (res) => {
            if (res.confirm) {
              plus.runtime.openSettings(); // 打开原生设置
            }
          }
        });
      },
      startBluetooth() {
          uni.openBluetoothAdapter({
              success: (res) => {
                  console.log('蓝牙已打开');
              },
              fail: (err) => {
                  uni.showToast({
                      title: '蓝牙初始化失败',
                      icon: 'none'
                  });
              }
          });
      },

      checkboxChange: function (e) {
        this.useCustomData = e.detail.value.length > 0
      },

      radioChange(evt){
        this.currentMode = evt.detail.value;
        this.devices = []
        this.device = null;
      },

      connectChange(evt){
        this.currentConnect = evt.detail.value;
      },

      //开始蓝牙搜索
      startSearch() {
        printerModule.search({}, (ret) => {
          modal.toast({
            message: JSON.stringify(ret),
            duration: 3
          });
        })
      },
      //停止蓝牙搜索
      stopSearch() {
        printerModule.stopSearch({}, (ret) => {
          modal.toast({
            message: JSON.stringify(ret),
            duration: 3
          });
        })
      },
      //绑定配对蓝牙
      bond() {
        //需要配对的地址,如:"00:12:52:40:60:79";
        printerModule.bond({address: this.address}, (ret) => {
          modal.toast({
            message: JSON.stringify(ret),
            duration: 3
          });
        })
      },
      //刷新蓝牙、USB设备
      //蓝牙模式, 返回data为{success: true, msg: '' , data: [{name: 'xx', address: 'yyy', type: 0|1|2|3}]}
      //设备类型0:未知 1:低功耗 2:经典蓝牙 3:低功耗、经典蓝牙双模
      //USB模式, 返回data为{success: true, msg: '' , data: [{"name": "ZR338 WIFI", vendorId: "1",productId: "2",deviceId: "3",}]}
      //设备类型0:未知 1:低功耗 2:经典蓝牙 3:低功耗、经典蓝牙双模
      refresh(type) {
        const isUSB = type ==2
        printerModule.getDevices({isUSB}, (ret) => {
          console.info(ret)
          modal.toast({
            message: JSON.stringify(ret.data),
            duration: 1.5
          });
          this.devices = ret.data;
        })
      },
      selectDevice(item) {
        this.device = item
      },

      //连接设备
      connect() {
        if(this.currentMode !== "WIFI"){
          if (this.device) {
            //参数为设备地址,
            //如果设备为BLE设备,需要增加参数BLE特征值"uuid_ble"、写特征值"uuid_write"、叙词特征值"uuid_descriptor"
            //该值默认分别为:"0000fff1-0000-1000-8000-00805f9b34fb"、"0000fff2-0000-1000-8000-00805f9b34fb"、"00002902-0000-1000-8000-00805f9b34fb"
            //如连接、发送数据等出现问题,请联系设备厂商
            let data = {
              'address': this.device.address, //仅蓝牙模式
            }
            if(this.currentMode == "USB"){
              data = {
                vendorId: this.device.vendorId,  //仅USB模式
                productId: this.device.productId, //仅USB模式
                deviceId: this.device.deviceId, //仅USB模式
                isUSB: true ,//仅USB模式
              }
            }
            printerModule.connect(data,
              (ret) => {
                if(ret.success){
                  let connct = this.connects.find(e=>{
                    return e.key === ret.data
                  })
                  if(!connct){
                    connct = {
                      name: this.device.name,
                      key: ret.data,
                    }
                    this.connects.push(connct)
                    this.currentConnect = ret.data

                    modal.toast({
                      message: "连接设备: " + ret.data,
                      duration: 3
                    });
                  }
                }else{
                  modal.toast({
                    message: ret.msg,
                    duration: 3
                  });
                }

              })
          }else{
            modal.toast({
              message: "请先选择设备.",
              duration: 1.5
            });
          }
        }else if(this.ip && this.port){
          printerModule.connect({
              ip: this.ip,
              port: this.port,
              isIP: true
            },
            (ret) => {
              modal.toast({
                message: JSON.stringify(ret.msg),
                duration: 1.5
              });

              if(ret.success){
                let connct = this.connects.find(e=>{
                  return e.key === ret.data
                })
                if(!connct){
                  connct = {
                    name: ret.data,
                    key: ret.data,
                  }
                  this.connects.push(connct)
                  this.currentConnect = ret.data
                  modal.toast({
                    message: "连接设备: " + ret.data,
                    duration: 3
                  });
                }
              }
              modal.toast({
                message: ret.msg,
                duration: 1.5
              });

            })
        }else{
          modal.toast({
            message: "请先填写IP/端口",
            duration: 1.5
          });
        }
      },
      //断开连接
      disconnect() {
        if(this.connects.length == 0){
          modal.toast({
            message: "当前未连接任何设备",
            duration: 1.5
          });
          return;
        }

        //连接ID,该值存在时,忽略isUSB, isIP, any三个参数
        const connectId = this.currentConnect == 'random'? "" : this.currentConnect
        //isUSB为true时,查找usb类型的连接,
        const isUSB = !connectId && this.currentMode==="USB"
        //isIP为true时,查找wifi类型的连接,
        const isIP = !connectId && this.currentMode==="WIFI"

        printerModule.disconnect({isUSB, isIP, connectId},
          (ret) => {
            modal.toast({
              message: ret.msg,
              duration: 1.5
            });

            const cid = ret.data

            if(cid){
              const index = this.connects.findIndex(e=>{
                return e.key === cid
              })

              if(index > -1){
                this.connects.splice(index, 1)
                if(this.currentConnect === connectId){
                  this.currentConnect = "random"
                }
              }
            }
          })
      },

      disconnectAll(){
        printerModule.disconnect({all: true},
          (ret) => {
            modal.toast({
              message: ret.msg,
              duration: 1.5
            });
            this.connects = [];
            this.currentConnect = "random"
          })
      },

      //打印
      print(type) {
        if(this.connects.length == 0){
          modal.toast({
            message: "当前未连接任何设备",
            duration: 1.5
          });
          return;
        }

        //连接ID,该值存在时,忽略isUSB, isIP两个参数
        const connectId = this.currentConnect == 'random'? "" : this.currentConnect
        //isUSB为true时,查找usb类型的连接,
        const isUSB = !connectId && this.currentMode==="USB"
        //isIP为true时,查找wifi类型的连接,
        const isIP = !connectId && this.currentMode==="WIFI"

        let jsonData = {
          'cmdType': typeArr[type],
          'encoding': type==2?'UTF-8':'GB18030',
          'data': testMap[typeArr[type]],
          isUSB,
          isIP,
          connectId
        };

        if(this.useCustomData && !!this.customData){
          try{
            let tempData = JSON.parse(this.customData)
            jsonData = {...jsonData, ...tempData}
          }catch(e){
            modal.toast({
              message: `输入${typeArr[type]}命令格式错误,请检查数据`,
              duration: 1.5
            });
            return;
          }
        }

        printerModule.print(jsonData,
          (ret) => {
            modal.toast({
              message: ret.msg + JSON.stringify(ret.data),
              duration: 1.5,
            });
          })
      },

      //解析数据为原始打印命令,只支持解析cpcl\tspl\zpl
      //type = 1,2,5
      parse(type) { 
        let jsonData = {
          'cmdType': typeArr[type],
          'encoding': type==2?'UTF-8':'GB18030',
          'data': testMap[typeArr[type]]
        };
        printerModule.parse(jsonData,
          (ret) => {
            modal.toast({
              message: ret.data,
              duration: 1.5,
            });
          })

      },

      //获取打印机状态
      getState(){
        if(this.connects.length == 0){
          modal.toast({
            message: "当前未连接任何设备",
            duration: 1.5
          });
          return;
        }

        //连接ID,该值存在时,忽略isUSB, isIP三个参数
        const connectId = this.currentConnect == 'random'? "" : this.currentConnect
        //isUSB为true时,查找usb类型的连接,
        const isUSB = !connectId && this.currentMode==="USB"
        //isIP为true时,查找wifi类型的连接,
        const isIP = !connectId && this.currentMode==="WIFI"

        //获取打印机状态: timeout(100~1000) retry(1~10)  cmd十进制命令数组   resultLength返回结果字节数
        //具体的命令以及返回结果长度,需要参考具体打印机厂商的开发文档。目前例子cmd[29, 153]参数仅对济强有效
        //[27, 33, 101, 120, 105, 116, 13, 10, 27, 33, 63, 27, 33, 68] 芯烨
        //[29, 153] 芝柯
        //[27, 104] 斑马
        //[29, 153] 济强
        printerModule.getState({
          timeout: 5000,
          retry:5,
          cmd: [27,104],
          resultLength: 4,
          isUSB,
          isIP,
          connectId
        },
        (ret) => {
          modal.toast({
            message: ret.success? ret.data: ret.msg,
            duration: 1.5
          });
        })
      },

      //获取当前所有连接设备
      getConnectDevices(){
        if(this.connects.length == 0){
          modal.toast({
            message: "当前未连接任何设备",
            duration: 1.5
          });
          return;
        }

        printerModule.getConnectDevice({},
          (ret) => {
            modal.toast({
              message: ret.data,
              duration: 1.5
            });
          })
      },
      //获取当前连接设备
      getConnectDevice(){
        if(this.connects.length == 0){
          modal.toast({
            message: "当前未连接任何设备",
            duration: 1.5
          });
          return;
        }

        //连接ID,该值存在时,忽略isUSB, isIP, any三个参数
        const connectId = this.currentConnect == 'random'? "" : this.currentConnect
        //isUSB为true时,查找usb类型的连接,
        const isUSB = !connectId && this.currentMode==="USB"
        //isIP为true时,查找wifi类型的连接,
        const isIP = !connectId && this.currentMode==="WIFI"

        //any为true时,只要有设备连接就返回TRUE,忽略isUSB, isIP两个参数
        printerModule.getConnectDevice({isUSB, isIP, connectId, any: false},
          (ret) => {
            modal.toast({
              message: ret.data,
              duration: 1.5
            });
          })
      },
      //蓝牙环境是否OK
      isReady(){
        printerModule.isReady({},
          (ret) => {
            modal.toast({
              message: ret.data,
              duration: 1.5
            });
          })
      },
      //是否连接
      isConnect(){
        if(this.connects.length == 0){
          modal.toast({
            message: "当前未连接任何设备",
            duration: 1.5
          });
          return;
        }

        //连接ID,该值存在时,忽略isUSB, isIP, any三个参数
        const connectId = this.currentConnect == 'random'? "" : this.currentConnect
        //isUSB为true时,查找usb类型的连接,
        const isUSB = !connectId && this.currentMode==="USB"
        //isIP为true时,查找wifi类型的连接,
        const isIP = !connectId && this.currentMode==="WIFI"

        //any为true时,只要有设备连接就返回TRUE,忽略isUSB, isIP两个参数
        printerModule.isConnect({isUSB, isIP, connectId, any: false},
          (ret) => {
            modal.toast({
              message: ret.data,
              duration: 1.5
            });
          })
      },
      //打开蓝牙
      open(){
        printerModule.openBluetooth({},
          (ret) => {
            modal.toast({
              message: ret.data,
              duration: 1.5
            });
          })
      },
      //关闭蓝牙
      close(){
        printerModule.closeBluetooth({},
          (ret) => {
            modal.toast({
              message: ret.data,
              duration: 1.5
            });
          })
      },
      //默认情况下,插件会自动向系统注册蓝牙断开的广播,如果被调用removeBroadcastReceiver移除后。可以重新加回来
      addBroadcastReceiver(){
        printerModule.addBroadcastReceiver({},
          (ret) => {
            modal.toast({
              message: ret.msg,
              duration: 1.5
            });
          })
      },
      //默认情况下,插件会自动向系统注册蓝牙断开的广播,可以调用removeBroadcastReceiver移除。为了避免系统内存泄漏,建议在系统退出是调用此方法
      removeBroadcastReceiver(){
        printerModule.removeBroadcastReceiver({},
          (ret) => {
            modal.toast({
              message: ret.msg,
              duration: 1.5
            });
          })
      }
    }
  }
</script>

<style>
  button{
    font-size: 12px;
  }
</style>

CPCL示例打印结果:

3.2 ESC方式打印

使用 ESC 方式需要将 cmdType 设置为 "esc", 同时指令也跟 CPCL 方式有一定的区别。当打印qrcode、barcode、line、image异常时候,可尝试imageCmd修改为1。 imageCmd=1适配ESC的1D 76打印图片指令。imageCmd为1时候,可以额外添加subHeight(默认32)、sleep(默认250毫秒)参数。subHeight为正整数用于将图片分成小块打印。 sleep用于小图片打印后的休眠时间,防止内存溢出,sleep小于1为不休眠。

let imgStr = '我是base64图片数据,需要替换为真正的BASE'
let jsonData = {
  cmdType: 'esc',
  data: [
    { type: 'setAlign', value: 1 },
    { type: 'feedLine', value: 2 },
    { type: 'text', content: 'ESC打印测试\n', value: 30, bold: 1 },
    { type: 'feedEnter' },
    { type: 'setAlign', value: 0 },
    { type: 'text', content: '**********************************************\n' },
    { type: 'text', content: '钢卷号:S945500150-450101\n', absolute: true, x: 5, underline: 1 },
    { type: 'text', content: '重量:6.980\n', absolute: true, x: 5 },
    { type: 'text', content: '供应商代码:450101\n', absolute: true, x: 5 },
    { type: 'text', content: '材料名称:热镀锌板Q235A 2.0x1250xC\n', absolute: true, x:15},
    { type: 'text', content: '材料代码:80050008\n', absolute: true, x: 5 },
    { type: "text", content:"第一列", midContent:"中间列", rightContent:"第三列", absolute:true, x:5},
    { type: 'text', content: '**********************************************\n' },
    { type: 'qrcode', content: 'www.baidu.com', width: 120, height:120, absolute: true, x: 25},
    { type: 'feedEnter' },
    { type: 'qrcode', codeType:0, content: 'www.baidu.com', width: 280, height:80, absolute: true, x: 50, imageCmd: 0}, //如打印异常可尝试imageCmd修改为1
    { type: 'feedDot', value: 10 },
    { type: 'barcode', content: '123456789', width:240, height: 40, absolute: true, x: 100, imageCmd: 0}, //如打印异常可尝试imageCmd修改为1
    { type: 'feedLine', value: 3 },
    { type: 'setAlign', value: 1 },
    { type: 'text', content: '---------测试图片----\n', rotate: 1 },
    { type: 'image', width: 240, height: 240, absolute: true, x: 200, content: imgStr, imageCmd: 0  }, //如图片打印异常可尝试imageCmd修改为1改用1d76指令打印

    { type: 'text', content: '\n-----------------绘制线条-------------\n' },
    { type: 'setAlign', value: 0 },
    { type: 'line', width: 300, height: 2, imageCmd: 0}, //如打印异常可尝试imageCmd修改为1
    { type: 'feedEnter'},
    { type: 'line', absolute: true, x: 50, y: 60, width: 300, height: 2, imageCmd: 0}, //如打印异常可尝试imageCmd修改为1
    { type: 'feedEnter'},
    { type: 'feedLine', value: 1 },

    { type: 'setAlign', value: 1 },
    { type: 'text', content: '-----------------设置Tab-------------\n' },
    { type: 'setAlign', value: 0 },
    { type: 'setTab', tabs: [10, 22, 34, 42] },
    { type: 'text', content: '运单号    到达站点    货物名称    件数    运费\n' },
    { type: 'text', content: '1234567' },
    { type: 'moveTab' },
    { type: 'text', content: '珠海' },
    { type: 'moveTab' },
    { type: 'text', content: '五香瓜子' },
    { type: 'moveTab' },
    { type: 'text', content: '5包' },
    { type: 'moveTab' },
    { type: 'text', content: '1毛' },
    { type: 'feedEnter' },
    { type: 'setAlign', value: 1 },
    { type: 'text', content: '-----------------设置Tab end-------------\n' },
    { type: 'feedLine', value: 2 },
    { type: 'pageEnd' },
  ],
}

printerModule.print(jsonData, (ret) => {
  modal.toast({
    message: ret.msg,
    duration: 1.5,
  })
})

ESC 示例打印结果:

3.3 TSPL方式打印

使用 TSPL 方式需要将 cmdType 设置为 "tspl", encoding设置为"UTF-8", 同时指令也跟 CPCL 方式有一定的区别

let imgStr = '我是base64图片数据,需要替换为真正的BASE'
let jsonData = {
  cmdType: 'tspl',
  data: [
    { type: 'setup', width:590, height: 600, unit: 'dot'}, //unit默认为dot,可以使用公制单位mm。佳博打印机需要使用mm
    { type: 'gap', x: 16, y: 0, unit: 'dot' }, //unit默认为dot,可以使用公制单位mm。佳博打印机需要使用mm
    {type:"text","content":"钣金入库标签(HSF)",widthScale:2,heightScale:2,x:288,y:20,align:1}, //佳博打印机需要增加(vendor: "jiabo"),如果芯烨打印机无法打印文字,可以尝试增加(vendor: "jiabo")
    {type:"barcode",content:"QTBJ10010023",barcodeType:"128",height:50,narrow:2,wide:2,textPos:1,y:70,x:288},
    {x:10,y:165,type:"text",content:"物料名称:过线盖"},
    {x:10,y:205,type:"text",content:"物料编码:068"},
    {x:10,y:245,type:"text",content:"物料图号:KFR35Wsdksahdkhk"},
    {x:10,y:285,type:"text",content:"工作中心:BJCY01"},
    {x:10,y:325,type:"text",content:"批次/订单数量:6/70"},
    {x:10,y:365,type:"text",content:"生产时间:2022-12-19 14:50:44"},
    {x:10,y:405,type:"text",content:"总装订单/线体:WERashdjhj7878"},
    {x:10,y:445,type:"text",font:"TSS24.BF2",content:"操作工:钣_操作工"},
    {type:"qrcode",content:"7878788c7f2332f795d94bc5fb96e17995e5b",y:450,x:400,tolerant:"L"},
    {type:"print", x:1,y:1}
  ],
}

printerModule.print(jsonData, (ret) => {
  modal.toast({
    message: ret.msg,
    duration: 1.5,
  })
})

TSPL 示例打印结果:

3.4 商米标签打印

使用商米标签打印方式需要将 cmdType 设置为 "sunmi_label", 指令参考商米API。其中style参数被打散为API参数,bool参数改为int型,大于0为true

let imgStr = '我是base64图片数据,需要替换为真正的BASE'
let jsonData = {
  cmdType: 'sunmi_label',
  data: [
    {type: 'setup', width:590, height: 620},
    {type:"text",text:"钣金入库标签",bold:1, textWidthRatio:2,textHightRatio:2,posX:288,y:20,align:2},
    {type:"barcode",text:"QTBJ10111010023",barcodeType:"CODE128",height:50,dotWidth:2,readable:2,align:2,posY:70,posX:288},
    {posX:10,posY:165,type:"text",text:"物料名称:过线盖"},
    {posX:10,posY:205,type:"text",text:"物料编码:0306888"},
    {posX:10,posY:245,type:"text",text:"物料图号:KFR35Wjasdhsadh7878"},
    {posX:10,posY:285,type:"text",text:"工作中心:BJCY01"},
    {posX:10,posY:325,type:"text",text:"批次/订单数量:6/70"},
    {posX:10,posY:365,type:"text",text:"生产时间:2022-12-19 14:50:44"},
    {posX:10,posY:405,type:"text",text:"总装订单/线体:WERWaksjkj7878"},
    {posX:10,posY:445,type:"text",text:"操作工:钣_操作工"},
    {type:"qrcode",text:"88c7f2332f795d94bc5fb96esdhhjhjsd17995e5b",posY:450,posX:400,dot:4},
    {type:"image",content:imgStr,posY:500,posX:200,width:80,height:80},
    {type:"print", value:1}
  ],
}

3.5 商米小票打印

使用商米小票打印方式需要将 cmdType 设置为 "sunmi_ticket", 指令参考商米API。其中style参数被打散为API参数,bool参数改为int型,大于0为true

let imgStr = '我是base64图片数据,需要替换为真正的BASE'
let jsonData = {
  cmdType: 'sunmi_ticket',
  data: [
    {type: 'setup', width:590, height: 620,align:2},
    {type:"printText",text:"钣金入库",bold:1, textWidthRatio:1,textHightRatio:1},
    {type:"barcode",text:"QTBJ10010023",barcodeType:"CODE128",height:50,dotWidth:2,readable:2,align:2},
    {type: 'setup', align:1},
    {type:"printText",text:"物料名称:过线盖"},
    {type:"printText",text:"物料编码:068"},
    {type:"printText",text:"物料图号:KFR35WJ33787KJKJKJ"},
    {type:"printText",text:"工作中心:BJCYKLKHBF01"},
    {type:"printText",text:"批次/订单数量:6/70"},
    {type:"printText",text:"生产时间:2022-12-19 14:50:44"},
    {type:"printText",text:"总装订单/线体:WERW3SDKJK4545"},
    {type:"printText",text:"操作工:钣_操作工"},
    {type:"qrcode",text:"78787888c7f2332f795d94bc5fb96e17995e5b",dot:4,align:2},
    {type:"image",content:imgStr,width:80,height:80,align:2},
    {type:"print"}
  ],
}

3.5 ZPL打印

使用ZPL打印方式需要将 cmdType 设置为 "zpl",

let imgStr = '我是base64图片数据,需要替换为真正的BASE'
let jsonData = {
  "cmdType": "zpl",
    "encoding":"UTF-8",
    "data": [
        { type: 'size', width:592, height: 640},
        { type: "text", content:"重量:6.980", font:"0", x:200, y:300, widthScale:40, heightScale:40,"customFont":"E:LZHONGHE.TTF"},
        { type: "text", content:"rotate 0", font:"B", x:100, y:500, widthScale:20, heightScale:20}, 
        { type: "textBlock", content:"我们12345679qwertyuiop", font:"A", x:400, y:400, widthScale:20, heightScale:20, width: 150, height: 200,"customFont":"E:LZHONGHE.TTF"}, 
        { type: 'box', x: 10, y: 20, width:200, height: 100, thickness: 2, radius: 0 },
        { type: 'bar', x: 10, y: 50, width:200, height: 3},
        { type: 'line', x: 10, y: 50, width:200, height: 3, direction: 'L'},
        { type: 'circle', x: 10, y: 50, diameter:200,thickness: 3 },
        { type: 'ellipse', x: 10, y: 50, width:200, height: 100, thickness: 2 },
        { type: 'qrcode', x:240, y:360, tolerant: 1, content:"www.baidu.com", model: '1', factor: 2, mask: 7, rotate: 90 },   
        { type: 'barcode', height:60, x:300, y:520, content:"123456789", textPos: 1, rotate: 90}, 
        { type: 'image', width:120, height:120, x:320, y:180, content: imgStr }
    ]
}

3.6 cmdType说明

通过cmdType区分打印机使用的指令类型,ESC适用于打印长度不固定内容,排版能力弱,比如流水单。 CPCL是一种以页面排版方式的指令集,适用于打印长度固定内容,比如价签,快递单。 每项数据通过 type 来区分不同的打印指令,ESC和CPCL下的指令略有不同。

3.7 encoding说明

插件中默认使用的编码方式为gbk。 出现乱码可以尝试以下方式解决:

  1. 更改encoding为其他编码。
  2. 可以尝试设置打印机。
  3. 或者在指令中指定字体文件,如以下zpl指令: "^FO0,45^A@N,36,18,E:MSUNG24.FNT^FD箱码:^FS"

3.8 ESC/CPCL/TSPL/ZPL指令打印示例

原始的打印机指令分为 “整型” 和 “字符串”两种。 ESC为典型的“整型”类型,它支持十进制、十六进制的格式,比如下列设置行间距指令: 十六进制: 0x1B 0x33 n
十进制: 27 51 n CPCL为典型的“字符串”类型,它支持字符串的格式,比如下列打印文字的指令: TEXT 7 0 210 60 HORIZ.

3.8.1整型指令示例

使用esc等“整型”指令, 需要将 cmdType 设置为 "esc",然后将原始指令的十进制形式放入esc数组中。

let jsonData = {
  cmdType: 'esc',  
  data: [
    { type: 'esc', esc: [27,51,2] }, // 发送原始命令,指令必须为十进制数值。
  ],
}

使用插件封装的ESC指令,配合原始指令进行自由组合可以实现复杂功能。该方式仅支持二次封装的ESC指令和原始ESC指令的混用

let jsonData = {
  cmdType: 'esc',  
  data: [
    { type: 'setAlign', value: 1 },
    { type: 'esc', esc: [27,51,2] }, // 发送原始命令,指令必须为十进制数值。
    { type: 'feedLine', value: 2 },
    { type: 'text', content: 'ESC打印测试\n', value: 30, bold: 1 },
    { type: 'esc', esc: [27,51,5] }, // 发送原始命令,指令必须为十进制数值。
  ],
}

3.8.2 字符串型指令示例

使用cpcl等“字符串”指令, 需要将 cmdType 设置为 "cpcl",然后将原始指令的字符串放入cpcl数组中。

//发送原始cpcl指令
let jsonData = {
  cmdType: 'cpcl',  
  data: [
    { type: 'cpcl', cpcl: ["BARCODE 128 1 1 50 150 10 HORIZ ", "TEXT 7 0 210 60 HORIZ"] }, // 发送原始命令,指令必须为字符串。
  ],
}
//发送原始zpl指令
jsonData = {
  cmdType: 'cpcl',  
  data: [
    {type: 'cpcl', cpcl: [
      "^XA^MNW^JUS^CI28",
      "^FO0,45^A@N,36,18,E:MSUNG24.FNT^FD箱码:^FS",
      "^FO90,25^JMA^MD20^BY2,3,320^BCN,60,Y,N,N^FD1234567890^FS",
      "^FO0,100^A@N,36,18^FD类型:直通^FS",
      "^PQ1,0,1,Y",
      "^XZ"
      ] 
    }, // 发送原始命令,指令为字符串,请参考各指令编程文档
  ]
}

使用插件封装的cpcl指令,配合原始指令进行自由组合可以实现复杂功能。该方式仅支持二次封装的cpcl指令和原始cpcl指令的混用

let jsonData = {
  cmdType: 'cpcl',  
  data: [
    {type:'setup', offset: 0, dpi_w: 200, dpi_h: 200, width:600, height: 620, qty:1},
    {type: 'cpcl', cpcl: ["TEXT 55 0 4 2 $"] },
    {type:'box',x:0, y:0, x1:560, y1:500,width:2},
    {type:'text',content:"生产订单:122",font:24,value:0,x:10,y:60}, 
    { type: 'from'},
    { type: 'print'} 
  ],
}

4. 二次封装指令完全说明

以下内容为针对本插件提供的二次封装指令的完全,使用者 切勿 完全照搬作为示例.

4.1 ESC二次封装指令说明

let imgStr = '我是base64图片数据,'

//ESC格式,由于各个厂商设备支持力度、固件不一样。字体、字体大小、一维码类型、容错等级、打印速度等的设置需要参考打印机说明。
let jsonData = {
  cmdType: 'esc',  
  data: [
    { type: 'esc', esc: [27,100,2] }, // 发送原始命令,指令为十进制数值。
    { type: 'setup',maxCharCount:48 }, // 设置当前字体设置下每行支持最大字符数,用于计算2列、3列的空白符个数
    { type: 'reset' }, // 重置打印机
    { type: 'setMode', value: 0 }, // 设置打印模式 0:标准模式 1:页模式, 未经测试
    { type: 'setPage', x: 20, y: 10, width: 300, height: 400 }, // 页模式下设置打印区域, 未经测试
    { type: 'setRotate', value: 0  }, // 页模式下设置打印方向 0 1 2 3, 未经测试
    { type: 'pluse', value: 10, x:10, y: 10 }, // 钱箱脉冲,未经测试  value  = 0, 1, 48, 49 0 ≤ x ≤ 255, 0 ≤ y ≤ 255。
    { type: 'pageLeft' }, // 走纸至左边黑标
    { type: 'pageRight' },  //走纸至右边黑标
    { type: 'pageEnd' },  //走纸到标签缝
    { type: 'cutPaper' }, // 半切,未经测试
    { type: 'cutPaper', value: 1 }, // 全切,未经测试
    { type: 'setLineSpace', value: 10 }, // 设置行间距为10
    { type: 'setCharSpace', value: 10  }, // 设置字符左右间距为10
    { type: 'setLeftMargin', value: 10  }, // 设置左边距10, 
    { type: 'setRightMargin', value: 10  }, // 设置右边距10, 
    { type: 'setAlign', value: 0 }, //设置对齐方式,行首有效(0:左对齐, 1:居中, 2:右对齐)
    { type: 'setTab', tabs: [10, 22, 34, 42] },  //设置4个tab位置点,单位为点
    { type: 'moveTab' },  //移动到下一TAB位置
    { type: 'feedEnter' }, //打印内容并换行
    { type: 'feedLine', value: 2 }, //打印内容并走纸 2行
    { type: 'feedDot', value: 2 }, //打印内容并走纸 2点
    { type: 'feedBack', value: 2 }, //打印内容并退纸 2点,未经测试
    { type: 'space', value: 10 }, //连续打印10个空格
    { type: 'line', absolute: true, x: 50, width: 300, height: 1, imageCmd: 0}, //如打印异常可尝试imageCmd修改为1, 从x=50处画横线,长300, 高1
    { type: 'text', content: '1234567' },  //默认打印文本
    { type: 'text', content: '钣金喷涂分厂物料合格标识', value: 30, bold: true, underline: true, rotate: 1 }, //默认位置打印内容,字体大小为30、祖体、带下横线、文字旋转90度(0,1,2,3)
    { type: 'text', content: '钢卷号:S945500150-450101', absolute: true, x: 5, underline: true }, //绝对位置打印文本,带下横线,absolute为true时表示绝对位置
    { type: 'text', content: '左边内容', rightContent: '右边内容\n' }, //双列打印
    { type: 'text', content: '左边内容', midContent: '中间内容', rightContent: '右边内容\n' }, //三列打印
    { type: 'image', width: 200, height: 50, absolute: true, x: 200, content: imgStr, imageCmd: 0 },  //绝对位置打印图片, width为宽度, height为高度,content为base64图片数据, 如图片打印异常可尝试imageCmd修改为1改用1d76指令打印
    { type: 'qrcode', content: 'www.baidu.com', absolute: true, x: 460,  codeType: 2, tolerant: 0, qrVersion: 1, imageCmd: 0 }, //绝对位置打印二维码,unit为条码单元大小. codeType二维码类型 0 :PDF417  1 :DataMatrix 2 :QRCode    tolerant容错级别QRCode: [ 0 1 2 3]  PDF417: [ 0 1 2 3 4 5 6 7 8]    如打印异常可尝试imageCmd修改为1
    { type: 'barcode', content: '123456789', width: 160, height: 40, absolute: true, x: 140, barcodeType:"128", imageCmd: 0},  //绝对位置打印条码,height条码高度,width条码宽度,barcodeType一维码类型(UPCA,UPCE,EAN13,EAN8,39,93,128,I2OF5,CODEBAR)  //如打印异常可尝试imageCmd修改为1
  ],
}

4.2 CPCL二次封装指令说明

CPCL格式,由于各个厂商设备支持力度、固件不一样。因此字体、字体大小、一维码类型、容错等级、打印速度等的设置需要参考打印机说明。cpcl指令先后顺序有一定影响,请参考cpcl文档

jsonData = {
  cmdType: 'cpcl',  
  data: [
    {type: 'cpcl', cpcl: ["TEXT 55 0 4 2 $"] }, // 发送原始命令,指令为字符串,请参考cpcl文档
    {type:'setup', offset: 0, dpi_w: 200, dpi_h: 200, width:600, height: 620, qty:1},  //设置水平补偿点数offset,水平分辨率dpi_w,垂直分辨率dpi_h,标签的最大高度点数height,标签的最大宽度点数width,打印次数qty'
    {type:'pageEnd'}, //设置标签检测指令,和FORM配合使用后,打印完后走纸到标签
    {type:'pageLeft'}, //设置标签检测指令,和FORM配合使用后,打印完后走纸到左侧标签
    {type:'pageRight'}, //设置标签检测指令,和FORM配合使用后,打印完后走纸到右侧标签
    {type:'background',value:110},  //设置水印文字灰度级,0-255
    {type:'setAlign',value:0}, //设置对齐方式 0左对齐 1居中 2右对齐 
    {type:'setCharSpace',value:5},  //设置字符间距为5
    {type:'text',content:"钣金喷涂分厂物料合格标识",font:55,value:4,bold:0,underline:0,widthScale:1, heightScale:1,x:10,y:10,rotate:0}, //添加文字,字体55,字体大小4,不加粗,不加下划线,宽度、高度缩放为1,坐标(10,10),旋转角度为0(0,90,180,270)。
    {type:'setCharSpace',value:0}, //设置字符间距为默认
    {type:'setAlign',value:2}, //设置右对齐 
    {type:'text',content:"HSF ",font:0, value:3, bold:1, underline:1, x:0, y:20}, //添加文字,字体0,字体大小3,加粗,加下划线,坐标(0,20)。
    {type:'setAlign',value:0}, //设置左对齐 
    {type:'box',x:0, y:0, x1:560, y1:500,width:2}, //添加矩形起点(0,0),终点(560,500),线宽2
    {type:'line',x:0, y:50,x1:560, y1:50,width:3}, //添加线条起点(0,50),终点(560,50),线宽3
    {type:'setAlign',value:0}, //设置左对齐 
    {type:'text',content:"生产订单:122",font:24,value:0,x:10,y:60}, //添加文字
    {type:'text',content:"物料名称/编号:122",font:24,value:0,x:10,y:90,}, //添加文字
    {type:'inverse',x:10, y:60,x1:300, y1:60,width:60}, //反白显示,起点(10,60),终点(300,60),线宽60,在此区域内的内容将反白显示
    {type:'text',content:"物料图号:122\r\n工作中心:122\r\n工艺路径:122",font:24,value:0,x:10,y:120,height: 30},  //添加多行文字,每行高度为30,height为0时表示为单行显示
    {type:'text',content:"批次/订单数量:122",font:24,value:0,x:10,y:210,}, //添加文字
    {type:'text',content:"操作工:122",font:24,value:0,x:10,y:240,}, //添加文字
    {type:'bktext',content:"生产时间:122",font:24,value:0,x:10,y:270,}, //添加水印文字
    {type:'concat',concats:["4 2 5 $","4 3 0 12","4 2 5 34",],x:10,y:300,}, //添加单行不同格式文字,示例为在(10,300)开始显示不同格式的文字。$字体为4,字体大小为2,偏移为5;12字体为4,字体大小为3,偏移为0;34字体为4,字体大小为2,偏移为5
    {type:'qrcode',codeType:1,width:120,height:120,x:10,y:360,density:3,content:"www.baidu.com" },  //添加DATAMATRIX码,不显示标识符,DATAMATRIX条码点密度density为3
    {type:'qrcode',codeType:2,x:140,y:360,tolerant: 1, qrScale: 6, content:"www.baidu.com" }, //添加二维码,不显示标识符,120*120。容错等级3(非常高的可靠和密度等级),2(高可靠等级),1(标准等级),0(高密度等级), qrScale:设置放大缩小(1-32,默认为6)
    {type:'image',width:120,height:120,x:320,y:360, content: imgStr},  //添加图片,数据为base64格式
    {type:'qrcode',codeType:0, minDot_w: 2, minDot_h:6, cap:3, tolerant:0, x:0,y:520,content:"www.baidu.com" },  //添加PDF-417码,宽度最小点数minDot_w为2,高度最小点数minDot_h为6,每行容纳的码数cap为3,容错等级为0
    {type:'barcode',barcodeType:"128",width:1,height:60,x:300,y:520,content:"123456789",textPos: 1,font:0,value:2}, //添加一维码,类型为“128”(参考打印机说明),显示标识符,标识符字体为0,标识符字体大小为2'
    {type:'background',value:0},  //设置水印文字灰度级为默认
    {type:'from'}, //设置打印结束后,并走纸到定位点。 必须要在print之前
    {type:'print'}  //执行打印控制内容 
    {type:'cutPaper', value: 0}  //切纸, 0半切 1全切

    //其他指令
    {type:'end', }  //结束指令
    {type:'abort'}  //取消指令
    {type:'preFeed', value: 10}  //打印前进纸10 
    {type:'postFeed', value: 20}  //打印后进纸20
    {type:'wait', value: 8}  //打印一张后,需要等待设置的时间过后才打印第二张。延时8*(1/8)秒的时间 
    {type:'contrast', value: 0}  //设置打印对比度0-3
    {type:'zprotate', value: 0}  //旋转打印0 90 180 270
    {type:'speed', value: 0}  //设置打印速度0-5,0最慢
  ]
}

4.3 TSPL二次封装指令说明

TSPL格式,由于各个厂商设备支持力度、固件不一样。因此字体、字体大小、一维码类型、容错等级、打印速度等的设置需要参考打印机说明。TSPL指令先后顺序有一定影响,请参考TSPL文档

jsonData = {
  cmdType: 'tspl',  
  data: [
    {type: 'tspl', tspl: ["size 600 dot, 500 dot"] }, // 插入发送原始命令,指令为字符串,请参考TSPL文档, 
    {type:'reset'}, //重置打印机
    { type: 'setup', width:590, height: 620, unit: 'dot'}, //设置初始参数,width: 标签宽度; height:标签高度;单位unit默认为dot/mm; 该指令同时设置了direction reference cls三个指令.//佳博打印机需要使用mm
    { type: 'size', width:590, height: 620, unit: 'dot'}, //设置标签宽高,width: 标签宽度; height:标签高度;单位unit默认为dot,可以使用公制mm;//佳博打印机需要使用mm
    { type: 'gap', x: 0, y: 0, unit: 'dot' }, //设置两张标签之间空白距离,以及左右两边空白宽度,x: 标签之间空白距离,单位为dot/mm; y:左右两边空白宽度,单位为dot/mm; x设置为0,则为连续纸. 佳博打印机需要使用mm
    { type: 'direction', x: 0, y: 0 }, //设置打印方向,以及镜像打印,x: 打印方向; y:是否镜像; 默认为 0 0
    { type: 'feedDot', value: 0 }, //设置走纸距离; value:走纸距离,单位为dot;
    { type: 'feedBack', value: 0 }, //设置退纸距离; value:退纸距离,单位为dot;
    { type: 'form', }, //走纸一张标签纸
    { type: 'feedHome'}, //走纸到下一正确打印位置
    { type: 'wait', value: 0 }, //延迟执行命令,value:延迟毫秒数
    { type: 'speed', value: 0 }, //设置打印速度
    { type: 'density', value: 0 }, //设置打印黑度
    { type: 'cls'}, //清除缓冲区
    { type: 'country', content: "" }, //设置国际字符集
    { type: 'codePage', content: "" }, //设置国际代码页
    { type: 'cutPaper'}, //切纸
    { type: 'line', x: 0, y: 0, x1:100, y1: 100, thickness: 1 }, //打印直线,x: 起点X; y:起点Y; x1:终点x  y1:终点Y  thickness:线宽
    { type: 'bar', x: 0, y: 0, width: 100, height: 10 }, //打印矩形块,可以用来打印直线。x: 起点X; y:起点Y; width:宽度  height:高度
    { type: 'box', x: 0, y: 0, x1:100, y1: 100, thickness: 1, radius: 2 }, //打印线框,x: 起点X; y:起点Y; x1:终点x  y1:终点Y  thickness:线宽  radius: 圆角
    { type: 'circle', x: 0, y:0,  diameter: 10, thickness: 1 }, //打印圆,x: 起点X; y:起点Y; diameter:直径  thickness:线宽
    { type: 'ellipse', x: 0, y: 0, width: 100, height: 10, thickness: 1 }, //打印椭圆,x: 起点X; y:起点Y; width:宽度  height:高度  thickness:线宽
    { type: 'erase', x: 0, y: 0, width: 100, height: 10 }, //擦除,。x: 起点X; y:起点Y; width:宽度  height:高度
    {type:"text","content":"钣金入库标签(HSF)",widthScale:2,heightScale:2,x:288,y:20,align:1,rotate: 0, font: 'TSS24.BF2'}, //打印文字,x: 起点X; y:起点Y; content:内容  widthScale:文字X方向放大倍数  heightScale:文字Y方向放大倍数   align:对齐方式,(0:左 1:居中 2:右) rotate:旋转角度(0 90 180 270) font:字体,默认为TSS24.BF2。佳博打印机需要使用增加(vendor: "jiabo")
    {type:"block","content":"钣金入库标签(HSF)",width: 100, height: 50, space: 10, fit:0,  widthScale:2,heightScale:2,x:288,y:20,align:1,rotate: 0, font: 'TSS24.BF2'}, //打印文字块,x: 起点X; y:起点Y; content:内容  width:宽度  height:高度 widthScale:文字X方向放大倍数  heightScale:文字Y方向放大倍数   align:对齐方式,(0:左 1:居中 2:右) rotate:旋转角度(0 90 180 270) font:字体,默认为TSS24.BF2  space:增加行间距  fit: 是否收缩文字。佳博打印机需要使用增加(vendor: "jiabo")
    {type:"barcode",content:"QTBJ10010023",barcodeType:"128",height:50,narrow:2,wide:2,textPos:1,y:70,x:288, rotate: 0}, //打印条码,x: 起点X; y:起点Y; content:内容  barcodeType:条码类型   align:对齐方式,(0:左 1:居中 2:右) textPos:条码文字,(0:无 1:左 2:中 3:右) rotate:旋转角度(0 90 180 270) wide:宽bar宽度  narrow:窄bar宽度
    {type:"qrcode",content:"lyen-bdc|unitmes-nanjing|88c7f2332f795d94bc5fb96e17995e5b",y:450,x:400, tolerant: 'L', cellWidth: 4, mode: 'A',rotate: 0}, //打印二维码  x: 起点X; y:起点Y; content:二维码数据   tolerant:容错等级(L M H Q) cellWidth: 单元宽度  mode: 手动M/自动编码A  rotate:旋转角度(0 90 180 270)
    {type:"image",content:"data:image/png;base64xxxxxxx",y:450,x:400,width: 120, height:120}, //打印图片,x: 起点X; y:起点Y; content:base64格式图片数据   width:宽度  height:高度
    {type:"pdf417",content:"123456",y:450,x:400,width: 120, height:120,option: ""}, //打印PDF417码,x: x坐标; y:Y坐标; content:数据   width:预期宽度  height:预期高度  option: 其它设置,默认为空
    {type:"print", x:1,y:1}  //x:打印多少组  y: 每组打印多少份
  ]
}

4.4 ZPL二次封装指令说明

ZPL格式,由于各个厂商设备支持力度、固件不一样。如果使用原始指令请参考ZPL文档

jsonData = {
  cmdType: 'zpl',  
  data: [
    "cmdType": "zpl",
    "encoding":"UTF-8",  //设置编码方式
    "data": [
      { type: 'size', width:592, height: 640},  //设置标签宽高,也如果为连续纸,则必须设置height
      { type: 'printCount', value: 2}, //打印2份标签
      { type: 'zpl', zpl: ["^FO100,100","^BQN,2,10","^FDQA,https://www.example.com^FS"]},  //插入原始zpl指令,该方式可以实现更多插件没有封装的功能
      { type: 'customFont', customFont:"E:LZHONGHE.TTF", fontAlias: 'A', codePage: 28}, //降内部"A"字体映射为自定义字体"E:LZHONGHE.TTF",并且指定编码为28(UTF-8),该命令设置后,所有使用A字体打印都会使用自定义字体,在打印机关机前一直生效。该命令的具体值参考zpl文档,或者厂商指导文档
      { type: "text", content:"重量:6.980", x:200, y:300, widthScale:40, heightScale:40, customFont:"E:LZHONGHE.TTF", codePage: 28}, //使用默认自定义字体"E:LZHONGHE.TTF",编码UTF-8进行打印,widthScale字体款为40,heightScale字体高为40, 该方式只会影响当前指令,不会更改其它指令字体效果
      { type: "text", content:"rotate 0", font:"B", x:100, y:500, widthScale:20, heightScale:20, rotate: 90, reverse:false },    //使用默认B字体打印,widthScale字体款为20,heightScale字体高为20, rotate旋转角度(0/90/180/270), reverse是否打印白色(需要在对应区域打印黑色块,方能看到白色效果)
      { type: "textBlock", content:"我们12345679qwertyuiop", font:"B", x:400, y:400, widthScale:20, heightScale:20, width: 150, height: 200}, //在指定的矩形块区域(宽150高200)打印文本块,内容会自动换行,显示不下的字符会忽略。widthScale字体款为20,heightScale字体高为20
      { type: 'box', x: 10, y: 20, width:200, height: 100, thickness: 2}, //打印矩形,宽为200,高为100, 线宽为2
      { type: 'bar', x: 10, y: 50, width:200, height: 3},  //打印直线,宽为200,高为3
      { type: 'line', x: 10, y: 50, width:200, height: 100, direction: 'L', thickness: 2}, //打印对角线,外矩形宽为200,高为100,线宽为2, direction:R(对角线右倾)/L(对角线左倾)
      { type: 'circle', x: 10, y: 50, diameter:200, thickness: 3 }, //打印圆形,直径为200,线宽为3
      { type: 'ellipse', x: 10, y: 50, width:200, height: 100, thickness: 2 },  //打印椭圆形,外矩形宽为200,高为100,线宽为3
      { type: 'qrcode', x:240, y:360, tolerant: "L", content:"www.baidu.com", model: '1', factor: 2, rotate: 90 },  //打印二维码, tolerant容错级别(L/M/Q/H), factor放大因子(值越大显示的二维码越大,取值1-7), model模式1(原始)和 2(增强,推荐使用)
      { type: 'barcode', height:60, x:300, y:520, content:"123456789", textPos: 1, rotate: 90},  //打印code128条码,高为60,rotate旋转角度(0/90/180/270), textPos是否显示可读字符(0/1)
      { type: 'image', width:120, height:120, x:320, y:180, content: imgStr }  //打印图片, content需要为base64格式的图片数据
      {type:"pdf417",content:"123456",y:450,x:400,height:8}, //打印PDF417码,x: x坐标; y:Y坐标; content:数据  height:每层高度  securityLevel: 安全级别(0-8),默认为5   rotate旋转角度(0/90/180/270)  col: 列数(1-30),默认为6  row: 行数(3-90),默认为12    truncation:是否截断(Y/N), 默认为"N"
    ]
}

5. 使用可视化模板数据打印

5.1 该方式是使用模板化的数据,将布局数据转化为图片,然后进行图片打印。该方式消除了不同打印机厂商对指令实现的差异造成的异常,使不同打印机之间打印效果一致。

配合可视化的 "模板编辑器" http://47.107.85.113:81/label-editor/index.html, 可以快速的实现复杂的标签布局。标签编辑完成后,只需要将业务数据进行填充(替换布局元素的content字段)即可直接使用。改编辑器可以提供系统集成服务,欢迎洽谈!

5.2 ESC方式


let jsonStr = '我是模板数据,需要替换为填充业务数据后真正的json字符串';
let jsonData = {
  cmdType: 'esc',
  data: [
    { type: 'template', json: jsonStr, imageCmd: 0}, //如果条码、二维码、横线,图片异常,请尝试将imageCmd修改为1
  ],
}

5.3 CPCL方式


let jsonStr = '我是模板数据,需要替换为填充业务数据后真正的json字符串';
let jsonData = {
  cmdType: 'cpcl',
  data: [
    { type: 'template', json: jsonStr}, //如果条码、二维码、横线,图片异常,请尝试将imageCmd修改为1
  ],
}

5.4 TSPL方式


let jsonStr = '我是模板数据,需要替换为填充业务数据后真正的json字符串';
let jsonData = {
  cmdType: 'tspl',
  data: [
    { type: 'template', json: jsonStr, imageCmd: 0}, //如果条码、二维码、横线,图片异常,请尝试将imageCmd修改为1。佳博打印机需要使用增加(vendor: "jiabo")
  ],
}

5.5 商米标签方式


let jsonStr = '我是模板数据,需要替换为填充业务数据后真正的json字符串';
let jsonData = {
  cmdType: 'sunmi_label',
  data: [
    {type: 'setup', width:590, height: 620},
    {type:"image",width:80,height:80, posY:10,posX:10, json: jsonStr, heightAdjust:false }, //heightAdjust为true时,会重新调整高度以适应实际内容高度
    {type:"print", value:1}
  ],
}

5.6 商米小票方式


let jsonStr = '我是模板数据,需要替换为填充业务数据后真正的json字符串';
let jsonData = {
  cmdType: 'sunmi_ticket',
  data: [
    {type: 'setup', width:590, height: 620, align:1},
    {type:"image",width:80,height:80, x:10, y:10, json: jsonStr, heightAdjust:false }, //heightAdjust为true时,会重新调整高度以适应实际内容高度
    {type:"print"}
  ],
}

5.6 ZPL方式


let jsonStr = '我是模板数据,需要替换为填充业务数据后真正的json字符串';
let jsonData = {
  cmdType: 'zpl',
  data: [
    { type: 'template', json: jsonStr, imageCmd: 0}, //如果条码、二维码、横线,图片异常,请尝试将imageCmd修改为1
  ],
}

6. 联系方式

需要咨询的朋友也可以添加作者企鹅:‌壹‌壹‌玖贰玖‌陆零‌柒‌玖‌捌。或者v信: ‌壹‌伍‌捌‌壹‌肆零‌叁‌贰‌玖‌陆‌玖,获得更快捷的服务支持。

隐私、权限声明

1. 本插件需要申请的系统权限列表:

Android:需要授予蓝牙权限 IOS:不支持

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问