You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

402 lines
60 KiB

#!/usr/bin/env python3
# MIT License
#
# Copyright (c) 2021 Eugenio Parodi <ceccopierangiolieugenio AT googlemail DOT com>
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
import sys, os
import timeit
import random
sys.path.append(os.path.join(sys.path[0],'../..'))
import TermTk as ttk
c1 = {
'data' : ttk.TTkUtil.base64_deflate_2_obj(
"eJzt201LVFEcx/GODyBoirVqlY9lVuZTpcvUat82XJRN/YIwiBYtpfUJDI4UgQS9H9+Er8T/0WJEsN9G6BDf+cx/uHC5M5e5X+5dnZ2+vYMvl45fm2Um3jmNFfUA5+lE" +
"JerJvYd7pdTP3aL+FtRz+Ua7zen28jWuTk7PSk7vYz7GvCgazOltbG3HvDne/67osoZz6hQN5fShXtERXanbr+qeUQ1r8KLPMafn8fufYjaLBv71P4azug39rPecslN0" +
"rQX1jH5xz2nOSS8aqK3kJlqpZ7LLvaVBp1v5HE+AhZjFmKWY5Zj7MQ9iHsasxKzGzMc8inkZs1V0VaM5vS4ayUn1GTWb01rsWY/ZiHkc8yTmadGYxjWhSU1pWjd0UzO6" +
"pVnd1p36HbobT7q5erzuaV4LWtSSlv96zHWKas+fouLqXPT1ppH/BI3AoRE4NAKHRuDQCBwagUMjcGgEDo3AoRE4NAKHRuDQCBwagUMjcGgEDo3AoRE4NAKHRuDQCBwa" +
"gXN6NU5pZuXWd1ZuNai7KvRHI2vQT1ah77MitDm/7yvAuWgEDo3AoRE4NAKHRuDQCBwagUMjcGgEDo3AoRE4NAKHRuDQCBwagUMjcGgEDo3AoRE4NAKHRuDQCBwagUMj" +
"cGgEDo3AoRE4NAKHRuDQCBwagUMjcGgEDo3A6XTmjgBzNbGA" ),
'colors' : ttk.TTkUtil.base64_deflate_2_obj(
"eJzt2z1Lw1AYhuGo1VbFRXTq1E2X0tYPhIy6BTN1KxJsTQ20NVBwFHTxA4KLx5/X36InKUiryDPmDHevhqQhCSXcebc8Vj7f373ic2UO7Dfb68bTSXfU7HZH5+k0bg7S" +
"cTo12WZU7Mi3P8zhkwkf7LFr0fDWhHbVz1eVaJLemMCzxxYnXdpfYVaN+vfDYWwvUan3WhOTbUSDcXx9Z17vn00/WQf+E9sgy/4PcJtTjaxmtb9jMqkGM+v1xSS1wLMu" +
"7NZm4CVbYbKdNexU9I/O/I7f6bSLpX106h/nO1rW6dnEJDvMSmc51R+c9NPI7vJImOUjIbSzYGU+C/brvaVJUEyD/Pl/K57/uhNKv5v47aev+mJhX9a/hZ2czJflwhql" +
"oy8HLfRVdh804igagUIjUGgECo1AoREoNAKFRqDQCBQagUIjUGgECo1AoREoNAKFRqDQCBQagUIjUGgECo1AoREoNAJloRE3lH5H8BvvkEKhESg0AoVGoNAIFBqBQiNQ" +
"aAQKjUChESg0AoVGoNAIFBqBQiNQaAQKjUChESg0AoVGoNAIFBqBQiNQaAQKjUChESg0AoVGoNAIFBqBQiNQaAQKjUChESg0AoVGoMRx8xtGdW6R" )}
c2 = {
'data' : ttk.TTkUtil.base64_deflate_2_obj(
"eJzt3c1KW1EUhmG3VgjERqyjjqr2xzTVNIm/Hdradt6pZNBq9BNEQRx0GDreBYUVLEIp9H56E15J19aBoxJPJztwXpdLgvFRYb85GZ7+g8Gf72M3H12r+2cMc6ZxhvnX" +
"9LySYT8TJ64HZunruWmSKdOkU7+04r1cuInhk8Vw4nvm+9lUjeHQHx37Htw8f2R6qFoMPdNUDKfp70zrUXq8l56ZUU3V3K8Q5n8nhh0/6a++XVPl7vv3behXuuZY3/SY" +
"KdOks/9d8JqjSmol0kqpJp35eeFry20r3/y61Pbt+K74rvqu+a77bvhu+r7xbflu+X7x3TXNaiaGfdN0DErvUY0Y3voz73y3fd/7fvD9aJrTvBb0VM/0XC+0qLpeqqFX" +
"Wkq/Q8v+TtdMXq/VUlsdrWgVMxLmSfGi3OT/vzE0ghkdQyMYGsHQCIZGMLkNjWBoBEMjGBrB5DY0gqERDI1gaAST29AIhkYwNIKhEUxuQyMYGsHQCIZGMLkNjWBoBEMj" +
"GBrB5DY0gqERDI1gaAST29AIhkYwNIKhEUxuQyMYGsHQCIZGMLkNjWBoBEMjGBrB5DY0gqERDI1gaAST29AIhkYwNIKhEUxuQyMYGsHQCIZGMLkNjWBoBJOhkXTHaOPu" +
"4qWadOY/Ct9dPN29/so0yZRr0rn/tILXFabUQyPMsOn1mn8BFbfO2g==" ),
'colors' : ttk.TTkUtil.base64_deflate_2_obj(
"eJzt1cFLwlAAx3ErSy28RF300rEukoYQeKzbaCdvEiNtNtA1EDwGdSmD0aXXn+ffUs8FkZj80kMG++6z8d7GNt7hC+8++9Z7ySTHpTm0Z7zX9Adhs1dpNntn0cCvdKJ+" +
"NDBxwUseTOav5ujBuHf23Q2ve2NcO7QnQ9YLo2vjZOy7yUcX9s6Nc1572O369hfZcus4NPGW1+n7V7dmNHw07WATmMe3Qa56DfjfaAQz1uP87HYV5JyxNXoyQd7JWOd2" +
"VnAywbYb7LhB8YcNibig/LKR3ekKx5MKXZvfWpJfvF9unZw2ao1arfp1VUMTFJ+TKktIlcX7Kn0v7N2aW1i9/nlNF3aA1Fiur1WvGn+JRqDQCBQagUIjUGgECo1AoREo" +
"NAKFRqDQCBQagUIjUGgECo1AoREoNAKFRqDQCBQagUIjUGgECo1AoREoNAKFRqDQCBQagUIjUGgECo1AoREoNAKFRqDQCBQagUIjUGgECo1AoREoNAKFRqDQCBQagUIj" +
"UGgECo1AoREoNAKFRqDQCBQagUIjUGgECo1AoREoyzWCdFm8EaQYjUChESi+X/kAcWuoow==" )}
c3 = {
'data' : ttk.TTkUtil.base64_deflate_2_obj(
"eJztmDlLA1EURn0uEIgmRCsr4x63mM2opXtvKylcop8gCmJhGaxfEeEGRRDBf2XrL/G+RMlYicVcLb6cnDAw8AbOmxnIbfS33qo97U9Ncvr1LivoJRbUtTd6fd97SyT8" +
"NgUDcRDWfuCuRuiWv9cu3u2Ld1fqjXooSHp3rkeX6ln7/IVgCCnv6oJB765DyzSGw/FJOJNBCsmfrundga53q9YEib8u8J/o7sZLeA6kIRiNg3CFVz4HETrlkQjVfSzV" +
"w8pN3u/fiFa/0/dBUS2pZbWirqhVdVVdU9fVgrqhHqnHghFkvDsVpL1DeAPNe7epZ7bUbXVH3VX3BFmMYwKTmMI0ZjCLHOYwjwUshjWwhDHuTZSvvdEuP5VLIx/KYxkF" +
"FFFCGRXW/h2sbQlrW8LalrC2JaxtCWtbwtqWsLYlrG1J9H++xDZdeeR05RvdaeJTTPP0zkT9mZPECJ/3OjGBtS1hbUtY2xLWtoS1LWFtS1jbEta2hLUtYW1LWNsS1raE" +
"tS1hbUtY2xLWtoS1LWFtS1jbkno9/wENgfT7" ),
'colors' : ttk.TTkUtil.base64_deflate_2_obj(
"eJzt2M9LwmAcx/FVllp0iTrt5K0uojNN2LFuo512kxhpjw10DQSPQV3KYLeeLv1v/i313QTZ+nFzH4M+vhybY4q8n+8ueyi9vZ8Z6etKH8s7PvTUJPRGdc8bnUcTVR9E" +
"42ii46qfnkiOX/XJo3bv5dotf3irXdn1k13JD6Mb7RhybfqlS/nkxmW/Px0OlfxEyew1Qh3v+IOxur7Ts+mT7gfbhKBkadf9H/6PQmtvxpXvt2JQduZi9qyDimOICzmq" +
"Okaw6wZ7cU3uPLvVtS3bsprp1mx17NPkREN0uqEO9nk//oD3DdKy9kF+rOfJWLsyzxuLeT4ye7lpTic6meGXdIbNQqy9zl+yXCkzu1Yf4te1arcXW36taivHlcrJrNTq" +
"W7P2F6yNxNpIrI3E2kisjcTaSKyNxNpIrI2Uqc1nLIXjs0ck1kZibSTWRmJtJNZGYm0k1kZibSTWRmJtJNZGYm0k1kZibSTWRmJtJNZGYm0k1kZibSSl6p9D3lcz" )}
c4 = {
'data' : ttk.TTkUtil.base64_deflate_2_obj(
"eJztmEtLAlEYhjslCJVirVqV3bOLpZbVsvu+bbToMvUGURAtWkrrszD4pAgi6F+17Zf0nSKQGlAG+mrx+vjIyDgDPnM7M7VU47Xa8fHalyl9e5cXdH7hu94aIuGzLkgl" +
"ISx737RGEk+k7Zu/h2532s27XfHuUr1WDwTd3p3p1IV6+jH/XNCLjHeRoMe7q9A6i74wfRzm5JAJy+zp72/UfUH6r//r/yduazyH40BqgoEkhDW88DhoyffySIfqPlH1" +
"sGSd+3sbxFe/1fNFSS2rFXVRXVKr6rK6oq6qC+qaeqgeCfqR8+5EkPUO4QxU8G5d52yom+qWuq3uCAa5bVrzc9totyHkMYwRjGIM45jAJKZQwDRmQn3M6hVgLpRHEfNY" +
"QAllVFi7HVjbEta2hLUtYW1L4kcwknjc+MBxYxvE3Sc9JnxS8Pms4In3SC35sa+TX4S1LWFtS1jbEta2hLUtYW1LWNsS1raEtS1hbUtY2xLWtoS1LWFtS1jbEta2hLUt" +
"YW1LWNsS1raEtS1hbUtY2xLWtoS1LYmi4ju/j8Qc"),
'colors' : ttk.TTkUtil.base64_deflate_2_obj(
"eJzt1z1PwmAUhuGqVUDjYKILLLrp0vAhSNJRt8ZO3YhpBF9sArUJCaOJLgpJN18X/xu/RU/LIrEmxeCjw8MFaWmgw33OAA/m69uZkT6u9LE8431PjUJvYHne4DwaKasX" +
"DaORjkt+eiE5f9Enj9q9l89u+P1b7cqhmxxMP4xutGPIZ9MvXco7Ny743XG/r+QWZqVTDXW85feG6vpOT8ZPuhtsEoKS0a7gPutx8esaBAVnJibPOig6hriQs5JjBNtu" +
"sBMfydTtRtuu2/V6LX3VGi37NLlQFa12qINd7kJuK5ok5ZJRe29x7WfJ2ruy72vzfT+odBa2Pd34ZMen6Y6Xf+TPO/x/GZMqf57Vu/h2Vs3m/LU4q8OlcVI5ZE5q+das" +
"nQtrI7E2EmsjsTZSZm3+evwl/FeFxNpIrI3E2kisjcTaSKyNxNpIrI3E2kisjcTaSKyNxNpIrI3E2kisjcTaSKyNxNpIrI3E2kisjcTaSKyNxNpIrI2klPUB5ZExPw==" )}
# xterm full screen - 320 x 80
c5 = {
'data' : ttk.TTkUtil.base64_deflate_2_obj(
"eJzt1ktLllEUhuG2JgiWYo0aZXbQrMxTWsPO86bhoMNXTxAF4qChNN4Dg/VRGBH0Xxr0N/wlra0Dp77wwmN0+7hE+LgU4fbVndPD339OHbxtxny+1zITGmHMtUFWqJE6uj+MaB93Q2OM9bnW1ddjPueOevySopZnUcvHvO28F6GJWt7lZx/y3h68/j50VpO1DEJnatlq32VK59rnr9sr05rUhPt3jJ3c1fI8W/qUtxkaP545avRne2bGTu" +
"gCY32u1fWr0zNT463FSous17Wqdjs+Gw9b/JxP1eW8lbzVvLW8O3nreRt5d/Pu5S3l3c97mfcqdF7TtbwJTdWi9jd8oZYH+crDvEd5j/Oe5D0NzeiSZnVZV3RV1zSneV3Xgm7oZvsaupX/CSw2r9ta0rJWtKo1zH9iLnYtNsW/9jNiTrahQYzb0CDGbWgQ4zY0iHEbGsS4DQ1i3IYGMW5Dgxi3oUGM29Agxm1oEOM2NIhxGxrEuA0NYtyG" +
"BjFuQ4MYt6FBjNvQIMZtaBDjNjSIcRsaxLgNDWLchgYxbkODGLehQYzb0CDGbWgQ4zY0iHEbGsS4DQ1i3IYGMW5Dgxi3oUGM29Agxm1oEOM2NIhxGxrEuA0NYtyGBjFuQ4MYt6FBjNvQIMZtaBDjNjSIcRsaxLgNDWLchgYxbkODGLehQYzb0CDGbWgQ4zY0iHEbGsS4DQ1i3IYGMW5Dgxi3oUGM29Agxm1oEOM2NIhxGxrEuA0NYtyGBj" +
"FuQ4MYt6FBjNvQIMZtaBDjNjSIcRsaxLhN5wbr6P7wW2iMsf7Wqvoe3VpsZo8SWe9rZf2ITs9FxmyjQebeYLD4F0mJCiQ=" ),
'colors' : ttk.TTkUtil.base64_deflate_2_obj(
"eJztnQmcZVddrSsQpiBCGAQZlFEMAnZ19WihqCAYDkTFOCBqDNDQLZBACCoqCg5AS3Ci44ATjhgVR5xwwhFbxREnFBRFMaIoCoryhLfvrqb71jr/VXXrq6quW90r5/lrn+xvn9Vk3+5bZ6/v7OddeP0FCxcsTP75nBMf3v7fdXe8/Mg1T7/8qQ++/PKnPuzqa448+IlXP+3qa05cd6sr+v9h8r+/9MQlzz9x2XPb2Jte8eSnnLis/fKEyS" +
"8XXvH0q590YlhoYzv0mPb/u+y6W1zxhGc/+clH2hQX3u3xe55+4rqbX/HEpx258qoTL3r2C0484ejNcuXaqetIW/Dt15tcd8vx4j56i+F97fq0F544esvLjt5qWDh60WVHb33d7e/2+KVDy3uX9+7f3//n0P6nnzh6m+N9Ld8+V64tvzaykmccnSvXjNfFZ/44fGO7XjT543BYaNfD2/92+k/Fe7W/2pdX/lzcu9j/Z3HpwPK+yf9hT7sO" +
"HJr8Ifn+v/A3uqRz5dr6a2Nr8OLpbwULw/umvhW0rw8Xt68Pjz521ZErr3nkNVc+6diRq66d+pJ80RVPOnbNkSdee+zqq0486r3ve9/7hvu/4MR1dznzf73iWc989pXXHHnS045c9ZRrj554zLtu1r5BP+HKZx254hlXP+vEcMfhojb+Nldce+U1Tzly7cpX6xPTgRYmkeRrym1PfU3Z07+k7Dn9HaV/BG993cVT32L6kDNfYu6ZK9eWXh" +
"v9rN1zanFfdupvm/e9/2+bo/d9/392/+Emk0/S0UvaB+boA45+xNEHCjf5oC5M/y3VPhT7zqz60Yfi/f/xHv1IHDgHrwtH/xW/t/qvauW/i31n/rtYm7usHnZBG/Z/1fSLffolN/1NGvf/yn+Dnds7K2di3bQNe081/VKfftFNf2Hj/rfi9nVuz6yciXWzNux/qun7n9X7Drvpb964d1fcgc4dmpUzsSZ/0fx3Nf3BPv1BN/1klfxXxR3q" +
"3IFZOROr/cfDu6rpD/fp97vpL2rcO6e5271/TfY1v8+ueQVNrlu3Yf9Zzt8X/T676D+ggf9Rgn3V77OrXkET7DZt2DvK+fuy32eX/Qc28N9LsK/7fXbdK2iC3bYN+7dy/r7wl+zCv10D316CfeUv2ZWvoAl2cRv2r+X8fekv2aV/+wb+Swn2tb9k176CJtgd2rC3lfP3xb9kF/8dG/jPFbi3L/4lu/gVNMHu1IbdWM7fF/+SXfwf1MB/Ks" +
"G++Jfs4lfQBLtzG/bWcv6++Jfs4r9LA/+xBPviX7KLX0ET7IPbsH8o5++Lf69d/Hdt4FtKsC/+vXbxK2iC3a0N+/ty/r7499rFf/cG/l0J9sW/1y5+BU2we7Rhby7n74t/r138H9LAv63Apb7499rFr6AJ9qFt2N+U8/fFv9cu/ns28E0l2Bf/Xrv4FTTB7tWGvbGcvy/+vXbx37uBf12CffHvtYtfQRPsPm3YX5Xz98W/aBf/fRv4hhLs" +
"i3/RLn4FTbD7tWF/Wc7fF/+iXfwKmvk/rA37i3L+/hlZtJ+R+zfwz0uwL/5Fu/gVNME+vA37s2r+ff0zsmg/I5c08E9LsC/+Rbv4FTTBHtCGvb6cv39GFu1n5CMa+Ccl2Bf/ol38CppgD2zD/ricv39GFu1n5EEN/KMS7It/j138CppgD27D/rCcv39G9tjPyEc28A9KsC/+PXbxK2iC7WnDfr+cvy/+PXbxLzbwdSXYF/8eu/gVNMH2tm" +
"G/V82/vy/+PXbxLzXwd0uwL/49dvEraILta8N+p5y/L/49dvHvb+DJEuyLf49d/AqaYAfasN8u5++Lf49d/Acb+NoSnCz+xcN28Stogh1qw36rnP9An98u/sMN/M0SPNhBu/gVNME+qg37jXL+Q31+u/iXG/jrJXi4g3bxK2iCPaQN+7Vq/gN7+vx28X90A3+1BBc7aBe/gibYx7Rhrynn39vnt4v/oQ38lRJc6qBd/AqaYB/bhv1yOf++" +
"Pr9d/B/XwF8qwb74D9nFr6AJ9vFt2C+W8/fFf8gu/oc18BdKsC/+Q3bxK2iCPbwNe3U5f1/8h+zi/4QG/nwJ9sV/yC5+BU2wR7RhP1fNf7Av/kN28T+ygT9bgn3xH7KLX0ET7BPbsJ8p5++L/5Bd/Jc28KdLsC/+Q3bxK2iCPaoNe1U5f1/8h+ziHxr4UyXYF/9Bu/gVNMEe3Yb9ZDl/X/wH7eJ/TAN/ogT74j9oF7+CJthlbdiPl/P3xX" +
"/QLv5PauCPlWBf/Aft4lfQBPvkNuxHq/kP9cV/0C7+T2ngK0uwL/6DdvEraII9tg37kXL+vvgP2sX/qQ384RLsi/+gXfwKmmCXt2E/VM7fF/9Bu/g/rYE3lGBf/Afs4lfQBPv0NuwHy/n74j9gF/9nNPAVJdgX/wG7+BU0wT6zDfuBcv6++A/Yxf+4Bn5/CfbFf8AufgVNsM9qw76vmv9wX/wH7OJ/fAO/twT74j9gF7+CJthnt2HfU87f" +
"F/8Bu/g/p4HfXYJ98R+wi19BE+xz27CXl/P3xX/ALv4rGvhdJdgX/367+BU0wT6vDfvOcv6++PfbxX9lA7+jBPvi328Xv4Im2BPasG8v5++Lf79d/E9s4LeVYF/8++3iV9AEe1Ib9rLp+S8+vRfWV7/fAD7SyG+tyb78/d6ukibak9uwb6lv0Ne/3wR+SiO/uSb7B8Dv7yppoh1tw76pvkH/BPiN4GONvL4m+0fA7/EqaaJ9fht2or5B/w" +
"z4zeCnNvKlNdk/BH6fV0kT7Wlt2DfWN+ifAr8h/PRGfkNN9o+B3+tV0kS7qg37+vIGfU940e8JK2lucHUb9nX1DfqnxW8KP6ORX1uT/WPgd4WVNNGe2Ya9pL5B/7T4beFrGnldTfaPgd8XVtJEe1Yb9uL6Bv3T4jeGr23k19Rk/xj4nWElTbRnt2HH6xv0T4vfGv6CRr6oJvvHwO8NK2mifWEb9sL6Bv3T4jeHv6iRLyjJvju86HeHlTTR" +
"ntOGfXV9g/4x8NvDX9zIr6rJ/jHw+8NKmmhf0oZ9ZX2D/jHwG8Rf2sivqMn+MfA7xEqejkaqczvdK5ufbhotnSlnVgrtptHSmXImFu2m0dKZciYW7abR0plyJhbtprXxqHSmnImFu2m4dKagCYa7abh0pqAJhrtpuHSmoAmGu2m4dKagCYa7abh0pqAJhrtpuHSmoAmGu2m4dKagCYa7abh0pqAJhrtpuHSmoAmGu2m4dKagCYa7abh0pq" +
"AJhrtpuHSmoAmGu2m4dKagCYa7aSmd6fwpnaV0ltJZSmerh6V0ZsGUzlI6S+ls9bCUziy41aUzBc38lw6wm4ZLZwqaYLibhktnCppguJuGS2cKmmC4m4ZLZwqaYLibhktnCppguJuGS2cKmmC4m4ZLZwqaYLibhktnCppguJuGS2cKmmC4m4ZLZwqaYLibhktnCppguJuGS2cKmmC4m4ZLZwqaYLibxktnSppkvJvGS2dKmmi8m8ZLZ0qa" +
"aMcG2k3jpTMlTTTeTeOlMyVNNN5NS+msvEFKZymdpXS2A6Wz1cOe24Y9v75B/xj4LeIva+TzarJ/DPzmr5Im2pe3YV9e36B/DPwm8fMa+WU12T8GfvtXSRPt+W3Yc+sb9I+B3yb+ikZ+aUn2DeBFvwGspIn2lW3Yl9Q36B+D6Y3i86F/uPq/nXQNSy5dw3QNR2C6hqP50zWsh6VraMF0DdM1NPOnaziaP13DetjcvgcPdw0VNMFwJRF3DR" +
"U0wS4ZYCURdw0VNMFwJRF3DRU0wXAlEXcNFTTBcCURdw0VNMFwJRF3DRU0wXAlEXcNFTTBcCURdw0VNMFwJRF3DRU0wXAlEXcNFTTBcCURdw0VNMFwJRF3DRU0wXAlEXcNFTTBcCURdw0VNMFwJRF3DRU0wXAlEXcNFTTBcCUxXcPR/Oka1sPSNbRguobpGpr50zUczZ+uYT0sXUNPpmu4nK7hbu0abvt78HjXUEkTjVcSeddQSRONVxJ5" +
"11BJE41XEnnXUEkTjVcSeddQSRONVxJ511BJE41XEnnXUEkTjVcSeddQSRONVxJ511BJE41XEnnXUEkTjVcSN9I1XJs00b6qDfvi+gb9Y+B3ir+6kc+pyf4x8FvFSppoL2jDvqi+Qf8Y+L3iFzbyC2uyfwz8ZrGSJtqL2rAvqG/QPwZ+t/h4I59dk/1j4PeBlTwd7VzrmK7+bedc5VXT51zlYljOVa5BkyvnKlvQBMu5yhY0wXKusgVNsJ" +
"yrbEETLOcqW9AEy7nKFjTBzr1zldMnHc2fPmk9LH1SC6ZPmj6pmT990tH86ZPWw9IntWD6pOmTmvkVNPPnXGULmmA5V9mCJljOVbagCZZzlS1oguVcZQuaYDlX2YImWM5VXoM00XKu8pqkiZZzldck0yddTp80fdL0SZfTJ02fNH3S5fRJz3afdPWwr2nDrq1v0D8Gfr/4xY18Vk32j4HfCVbSRLuuDbumvEHfMV70O8YvaeQza7J/DPxe" +
"sJIm2te2Yc+ob9A/Bn7P+OsaeXVN9o+B3w1W0kT7+jbsqvoG/WMwvWu8m6vFq3/XqRGvmj414mJYasQ1mBpxasRm/tSIR/OnRlwPS43YgqkRp0Zs5p/bGrGCZn7cNsY1YgVNMNw2vmSANWIFTTDcNsY1YgVNMNw2xjViBU0w3DbGNWIFTTDcNsY1YgVNMNw2xjViBU0w3DbGNWIFTTDcNsY1YgVNMNw2xjViBU0w3DbGNWIFTTDcNsY1Yg" +
"VNMNw2xjViBU0w3DbGNWIFTTDcNsY1YgVNMNw2xjViBU0w3DbGNWIFTTDcNr50SI1Y5k+NuB6WGrEFUyNOjdjMnxrxaP7UiOthqRGvQaZGvJwa8W6tEStpbsDbxrxGrKSJxtvGvEaspInG28a8RqykicbbxrxGrKSJxtvGvEaspInG28a8RqykicbbxrxGrKSJxtvGvEaspInG28a8RqykicbbxrxGrKSJxtvGvEaspInG28a8Rqykicbb" +
"xrxGrKSJdnygbWNeI1bSRONtY14jVtJE421jXiNW0kTjbeON1IjXJk20b2jDnl7foH8M/LbxNzbyaTXZPwZ+Q1hJE+2lbdhT6xv0j4HfOD7RyM+vyf4x8FvCSppo17dhx+ob9I+B3zr+pkYeLcm+KbzoN4WVPB1t99THV/+GaFmctsCVM/9uaVmctsCVM7FoWZy2wJUzsWhZnLbAlTOxaFm8jUctcOVMLFwWxy1wBU0wXBbHLXAFTTBcFs" +
"ctcAVNMFwWxy1wBU0wXBbHLXAFTTBcFsctcAVNMFwWxy1wBU0wXBbHLXAFTTBcFsctcAVNMFwWxy1wBU0wXBbHLXAFTTBcFsctcAVNMFwWxy1wBU0wXBZPC1znTws8LfC0wM38aYGP5k8LvB6WFrgF0wJPC9zMnxb4aP4dfuc0boEraILhsjhugStoguGyOG6BK2iC4bI4boEraILhsjhugStoguGyOG6BK2iC4bI4boEraILhsjhugSto" +
"guGyOG6BK2iC4bI4boEraILhsvhGWuDXX7hwwcLknzVnMAlxaxzXwRU0wXBrHNfBFTTBcGuc18GVNMl4a5zXwZU00XhrnNfBlTTRjg20Nc7r4EqaaLw1zuvgSppovDWeOnh5g9TBUwc/VTFIHTx18GJY6uBrkqmDL6cOnjp46uDL81AHV9LcgLfGeR1cSRONt8Z5HVxJE423xr+5kU+pyf4x8LvISppo39KGPbm+Qf+0+G3kb23kkZrsHw" +
"O/j6ykifayNuxJ9Q36p8VvJH9bI59YPfJY7DvJfiNZQZPs29uwJ9TzTz4FfiP5Oxp4ZQ1OPgTTG8nzqQWs/u1EASi5KABRAEZgFIDR/FEA6mFRACwYBSAKgJk/CsBo/igA9bC5fV88VgAUNMGwKYAVAAVNsEsGaApgBUBBEwybAlgBUNAEw6YAVgAUNMGwKYAVAAVNMGwKYAVAQRMMmwJYAVDQBMOmAFYAFDTBsCmAFQAFTTBsCmAFQEET" +
"DJsCWAFQ0ATDpgBWABQ0wbApgBUABU0wbApgBUBBEwybAlgBUNAEw6YAVgAUNMGwKRAFYDR/FIB6WBQAC0YBiAJg5o8CMJp/CxWANcE0/9P8T/O/GHZsSPN/DXLLm//b/r543vxX0kTjggBv/itponFBgDf/lTTRuCDAm/9KmmhcEODNfyVNNC4I8Oa/kiYaFwR4819JE40LArz5r6SJxgUB3vxX0kTjggBv/itponFBgDf/lTTRuCDAm/" +
"9KmmhcEODNfyVNNC4IHB9o819JE40LArz5r6SJxgUB3vxX0kTjggBv/itponFBIM3/8gZp/qf5f4rcNc3/tUET7DvbsM+r5598Bvz+8Xc18IoanHwE/MawgibYy9uwzy3n7xvIfv/4uxv4OTU4+QD4jWEFTbDvacM+u55/sv79/vH3NvDxNThZ/n5jWMHTwTbuepyZeHjvsCJh3PKy8cTzKH8oZ/71UEeEyh/KmVjUEaHyh3ImFnVEqPyh" +
"nIlFHREqfyhnYrX/GDkiWP5Q0OTCjgiWPxQ0wbAjguUPBU0w7Ihg+UNBEww7Ilj+UNAEw44Ilj8UNMGwI4LlDwVNMOyIYPlDQRMMOyJY/lDQBMOOCJY/FDTBsCOC5Q8FTTDsiGD5Q0ETDDsiWP5Q0ATDjkjkj9H8kT/qYZE/LBj5I/KHmT/yx2j+yB/1sMgfFoz8EfnDzD+38oeCZn7siGD5Q0ETDDsiWP5Q0ATDjgiWPxQ0wbAjguUPBU" +
"0w7Ihg+UNBEww7Ilj+UNAEw44Ilj8UNMGwI4LlDwVNMOyIYPlDQRMMOyJY/lDQBMOOCJY/FDTBsCOC5Q8FTTDsiGD5Q0ETjDsiXP5Q0kTjjgiXP5Q00bgjcmyg8oeSJhp3RLj8oaSJxh2RyB/lDSJ/RP44RUb+iPxRDIv8sSYZ+WM58kfkj8gfy5E/1pQ/lDQ34I4Ilz+UNNG4I8LlDyVNNO6IcPlDSRONOyJc/lDSRMOOCJY/FDTBsCOC" +
"5Q8FTTDsiGD5Q0ETDDsiWP5Q0ATDjsj3NfCzanCy+v3+sYIm2Pe3YY+r558sfr9//AMN/MwanCx+v3+soAn2ijbsM+r5J4vf7x//YAM/vQYni9/vHytogt3Qhn1aPf9k8fv94x9q4OUl2DeQp/ePNyUAvXu4eXcxtlYAWv17ieyzavrIPsWwyD41GNknso+ZP7LPaP7IPvWwyD4WjOwT2cfMP7eyj4JmfuwEYdlHQRMMO0GXDFD2UdAEw0" +
"4Qln0UNMGwE4RlHwVNMOwEYdlHQRMMO0FY9lHQBMNOEJZ9FDTBsBOEZR8FTTDsBGHZR0ETDDtBWPZR0ATDThCWfRQ0wbAThGUfBU0w7ARh2UdBEww7QVj2UdAEw04Qln0UNMGwE4RlHwVNMOwEYdlHQRMMO0GXDpF9ZP7IPvWwyD4WjOwT2cfMH9lnNH9kn3pYZJ81yMg+y5F9dqvso6S5AXeCuOyjpInGnSAu+yhponEniMs+Sppo3Ani" +
"so+SJhp3grjso6SJxp0gLvsoaaJxJ4jLPkqaaNwJ4rKPkiYad4K47KOkicadIC77KGmicSeIyz5KmmjcCeKyj5ImGneCuOyjpIl2fKBOEJd9lDTRuBPEZR8lTTTuBHHZR0kTjTtBXPZR0kTjTlBkn/IGkX0i+6yAkX1KMLLPeP7IPuWw81r2WRs0wX64DfvUev7J4vf7xz/SwMfW4GTx+41hBU2wV7Zhn1LPP1n8fv/4Rxv4yTU4Wfx+Y1" +
"hBE+zH2rBPquefLH6/f/zjDbysBieL328MK3g62Kb0rncMt+k6xmb0rtU5oZS1uWFU1aIOlnImFlW1qIOlnIlFVS3qYClnYlFVq41HDpZyJhZWtbCDpaAJhlUt7GApaIJhVQs7WAqaYFjVwg6WgiYYVrWwg6WgCYZVLexgKWiCYVULO1gKmmBY1cIOloImGFa1sIOloAmGVS3sYClogmFVCztYCppgWNXCDpaCJhhWtbCDpaAJhlWtOFg6" +
"fxysOFhxsMz8cbBG88fBqofFwbJgHKw4WGb+OFij+Xf4XCbsYClogmFVCztYCppgWNXCDpaCJhhWtbCDpaAJhlUt7GApaIJhVQs7WAqaYFjVwg6WgiYYVrWwg6WgCYZVLexgKWiCYVULO1gKmmBY1cIOloImGFa1sIOloAmGVS3sYClogmFViztYSppkXNXiDpaSJhpXtbiDpaSJdmygqhZ3sJQ00biqxR0sJU00rmrFwSpvEAcrDtapZk" +
"EcrDhYxbA4WGuScbCW42DFwYqDtTwPDta2n8vEHSwlTTSuanEHS0kTjata3MFS0kTjqhZ3sJQ00biqhR0sBU0yrGphB0tBEwyrWtjBUtAEw6oWdrAUNMGwqoUdLAVNMKxqYQdLQRMMq1rYwVLQBMOq1g0DdLAUNMGwqoUdLAVNMKxqYQdLQRMMq1rYwVLQBMOq1k808DE1OFn8fmNYQRPsJ9uwR9fzTxa/3z/+qQYONThZ/H5jWEET7FVt" +
"2KPK+fsGst8//ukGXlqDk8XvN4YVNMF+pg37xHr+yeL3+8c/28BH1uBk8U9vDG/Kw3vbcIeuY8zq4a1Ouc0HoUXCW8Vtj4Rnhs3ozp3t49Ha+Dh3q+aPc1cPi3NnwTh3ce7M/HHudP44d+eNc7fdx6Nh505BEwyredi5U9AEu2SAah527hQ0wbCah507BU0wrOZh505BEwyredi5U9AEw2oedu4UNMGwmoedOwVNMKzmYedOQRMMq3nYuV" +
"PQBMNqHnbuFDTBsJqHnTsFTTCs5mHnTkETDKt52LlT0ATDah527hQ0wbCah507BU0wrOZh505BEwyreXHuRvPHuauHxbmz4M45d9dfsHDBwuSfdWaIfBf5zswf+W40f+S7eljku7XIyHfLke/WlO+2/Zw0Lt8paaJxR4/Ld0qaaNzR4/KdkiYad/S4fKekicYdPS7fKWmicUePy3dKmmjc0ePynZImGnf0uHynpInGHT0u3ylponFHj8t3" +
"Sppo3NHj8p2SJhp39Lh8p6SJxh09Lt8paaJxR+/4QOU7JU007uhx+U5JE407ely+U9JE444el++UNNG4oxf5rrxB5LvId6fIyHclGPluPH/ku3JY5DsLRr6LfGfmj3w3mn+3yncKmvk34OitBn+ugY+owcni9y9vVdAE+/k27BPq+SefEb9//OoGPrwGJ4vf7x8raIL9Qhv2sHr+yWfE7x//YgM/vgYni9/vHytogv1SG/Zx9fyTz8j0/v" +
"GmdMu3DHftXkalW65ONKNauc0GJlUrlTOxqIFJ1UrlTCxqYNLzDaGSud2upXImVvuPkZKJXUsFTS6sZGLXUkETDJqVcyNgYrNSQfM7wgImNisVNMGwgInNSgVNMCxgYrNSQRMMC5jYrFTQBMMCJjYrFTTBsICJzUoFTTAsYGKzUkETDAuY2KxU0ATDAiY2KxU0wbCAGbNyNH/MynpYzEoLxqyMWWnmj1k5mj9mZT0sZqUFY1bGrDTzz61Z" +
"qaCZHwuY2KxU0ATDAiY2KxU0wbCAic1KBU0wLGBis1JBEwwLmNisVNAEw4ceYqFSQRMMe5dYqFTQBMPeJRYqFTTBsHeJhUoFTTDsXWKhUkETDHuXWKhU0ATD3iUWKhU0wbB3iYVKBU0w7l1yoVJJE417l1yoVNJE497lsYEKlUqaaNy75EKlkiYa9y4jVJY3iFAZofIUGaEyQmUxLELlmmSEyuUIlREqI1QuR6hcU6hU0tyAe5dcqFTSRO" +
"PeJRcqlTTRuHfJhUolTTTuXXKhUkkTDXuXWKhU0ATD3iUWKhU0wbB3iYVKBU0w7F1ioVJBEwx7l1ioVNAEw94lFioVNMGwd4mFSgVNsBsG6F1ioVJBEwx7l1ioVNAEw94lFioVNMGwd4mFSgVNMOxdYqFSQRMMe5dYqFTQBMPeZYTK8fwRKsthGxAqV4O/3MCPLcG+M+w3hhU0wX6lDXtoPf9k8fv949c08GNqcLL4/cawgibYr7ZhH13P" +
"P1n8fv/41xr4kBqcLH6/MaygCfbrbdhyPf9k8fv9499o4EfV4GTxT28Mb0qqfdNwz65jrC/VRrRc/e/hPBMtz8y/ztmX2Kmc0dmMemnBGdVLM2xGX/Lsn3QZ0XI0f0TLelhESwtGtNxp0VJBMz/2MbFoqaAJhn3MSwYoWipogmEfE4uWCppg2MfEoqWCJhj2MbFoqaAJhn1MLFoqaIJhHxOLlgqaYNjHxKKlgiYY9jGxaKmgCYZ9TCxaKm" +
"iCYR8Ti5YKmmDYx8SipYImGPYxsWipoAmGfUwsWipogmEfE4uWCppg2MfEoqWCJhj2MbFoqaAJhn3MS4eIljJ/RMt6WERLC0a0jGhp5o9oOZo/omU9LKLlGmREy+WIlrtVtFTS3ID7mFy0VNJE4z4mFy2VNNG4j8lFSyVNNO5jctFSSRON+5hctFTSROM+JhctlTTRuI/JRUslTTTuY3LRUkkTjfuYXLRU0kTjPiYXLZU00biPyUVLJU00" +
"7mNy0VJJE437mFy0VNJEOz5QH5OLlkqaaNzH5KKlkiYa9zG5aKmkicZ9TC5aKmmicR8zomV5g4iWES1XwIiWJRjRcjx/RMtyWERLC0a0jGhp5o9oOZ5/l4qWCpr5sY+JRUsFTTDsY2LRUkETDPuYWLRU0ATDPiYWLRU0wbCPiUVLBU0w7GNi0VJBE2wDPuZq8DcbeLgGJ4vf7x8raIL9Vht2qJ5/svj9/vFrG3iwBieL3+8fK2iC/XYbdq" +
"Caf2/fP/bbxycbuL8GJ4vf7x4raIL9Thu2r55/svinN483pdb++XD/blWsr9bOeKglPPvyzL/Y7TrUUkETDAuY2KxU0ATDAiY+1BIqmVNLdXl7XEsFTTCsZGLXUkETDCuZ2LVU0ASDZuXcCJjYrFTQ/I6wgInNSgVNMCxgYrNSQRMMC5jYrFTQBMMCZsxKnT9mZczKmJVm/piVo/ljVtbDYlZaMGZlzEozf8zK0fw7fNIlNisVNMGwgInN" +
"SgVNMCxgYrNSQRMMC5jYrFTQBMMCJjYrFTTBsICJzUoFTTAsYGKzUkETDAuY2KxU0ATDAiY2KxU0wbCAic1KBU0wLGBis1JBEwwLmNisVNAEwwImNisVNMGwgMnNSiVNMi5gcrNSSRONC5jcrFTSRDs2UAGTm5VKmmhcwORmpZImGhcwY1aWN4hZGbNyhYxZGbOyGhazck0yZuVyzMqYlTErl+fBrNz2ky65WamkicYFTG5WKmmicQGTm5" +
"VKmmhcwORmpZImGhcwsVmpoEmGBUxsVipogmEBE5uVCppgWMDEZqWCJhgWMLFZqaAJhgVMbFYqaIJhAROblQqaYFjAvGGAZqWCJhgWMLFZqaAJhgVMbFYqaIJhAROblQqaYFjAxGalgiYYFjCxWamgCYYFTGxWKmiCYQEzZuV4/piV5bCYlRaMWRmz0sx/cpgbs3I1+LsNXKrByeL3m8IKmmC/14btreefLH6/dfy6Bi7W4GTx+y1hBU2w" +
"32/D9tTzTxa/3zj+gwZ+ZA1OFr/fEFbQBPvDNuzB9fyTxe+3jf+ogQ+qwcnin94O3pRd+0fDg7qOsb5dG9dyBJ5nruWZ+dc5/hJrlTNqm7EvLbjb7UszbEZl8tw77BK7lgqaYFjJxK6lgibYJQNUMrFrqaAJhpVM7FoqaIJhJRO7lgqaYFjJxK6lgiYYVjKxa6mgCYaVTOxaKmiCYSUTu5YKmmBYycSupYImGFYysWupoAmGlUzsWipogm" +
"ElE7uWCppgWMnErqWCJhhWMrFrqaAJhpVM7FoqaIJhJRO7lgqaYFjJjGs5mj+uZT0srqUF41rGtTTzx7UczR/Xsh4W19KTcS2X41ruVtdy2w+75K6lkiYaVzK5a6mkicaVTO5aKmmicSWTu5ZKmmhcyeSupZImGlcyuWuppInGlUzuWipponElk7uWSppoXMnkrqWSJhpXMrlrqaSJxpVM7loqaaJxJZO7lkqaaFzJ5K6lkiYaVzKPD9S1" +
"VNJE40omdy2VNNG4ksldSyVNNK5kctdSSRONK5lxLcsbxLWMa3mKjGtZgnEtx/PHtSyHxbW04Py4ltcvLFywMPlniHSpYKTLEox0OZ5/Z0+9xNKlgiYYdjOxdKmgCYbdTCxdKmiCYTcTS5cKmmDYzcTSpYImGHYzsXSpoAmG3UwsXSpogmE3E0uXCppg2M3E0qWCJtjJAbqZWLpU0ATDbiaWLhU0wbCbiaVLBU0w7GZi6VJBE2wDbuZq8I" +
"8b+MAS7PvCfltYQRPsT9qwj6jnnyx+v3n8+gY+oAYni99vCitogv1pG3ZJPf9k8fut4z9r4IfX4GTx+y1hBU2wP2/D7l/PP1n80xvHm9Jsf2fY1/WK9TXbGQ+4hOdgnvn9bdcBlwqaYNjExIqlgiYYNjGxYqmgCYZNTHzAJXQzz8wf6bIeBo+znHHYGYttu069jGI5mj+KZT0siqUFo1hGsTTzR7EczR/Fsh4WxdKC541iqaCZH5uYWLFU" +
"0ATDJiZWLBU0wbCJiRVLBU0wbGJixVJBEwybmFixVNAEwyYmViwVNMGwiYkVSwVNMGxiYsVSQRMMm5hYsVTQBMMmJlYsFTTBsImJFUsFTTBsYmLFUkETDJuYWLFU0ATjJiZXLJU00biJyRVLJU00bmIeG6hiqaSJxk1MrlgqaaJxEzOKZXmDKJZRLE+RUSyjWBbDoliuSUaxXI5iGcUyiuVyFMs1FUslzQ24ickVSyVNNG5icsVSSRONm5" +
"hcsVTSROMmJlcslTTRsImJFUsFTTBsYmLFUkETDJuYWLFU0ATDJiZWLBU0wbCJiRVLBU0wbGJixVJBEwybmFixVNAEu2GAJiZWLBU0wbCJic1KBU0wLGBis1JBEwwLmNisVNAEwwImNisVNMGwgInNSgVNMCxgxqwczx+zshwWs9KCMStjVpr5Y1aO549ZWQ6LWWnBmJVn36xcDf5FAz+sBieL3+8DK2iC/WUbdr96/sni97vFb2jgfWtw" +
"svj9LrCCJthftWH3qeefLH6/V6ygmf+v27B7l/P3vWK/VfzGBt6rBieL3+8UK3g62KZc2t8YPqrLF+u7tDErR+AOm5UKmvmxgImPs4RK5hmdbbtcSwVNMKxkYtdSQRMMK5nYtVTQBINm5dwImNisVND8jrCAic1KBU0wLGBis1JBEwwLmNisVNAEwwImNisVNMGwgInNSgVNMCxgYrNSQRMMC5jYrFTQBMMCJjYrFTTBsICJzUoFTTAsYG" +
"KzUkETDAuY2KxU0ATDAualQ8xKmT9mZT0sZqUFY1bGrDTzx6wczR+zsh4Ws3INMmblcszK3WpWKmluwAVMblYqaaJxAZOblUqaaFzA5GalkiYaFzC5WamkicYFTG5WKmmicQGTm5VKmmhcwORmpZImGhcwuVmppInGBUxuVipponEBk5uVSppoXMDkZqWSJhoXMLlZqaSJxgVMblYqaaIdH6iAyc1KJU00LmBys1JJE40LmNysVNJE4wIm" +
"NyuVNNG4gBmzsrxBzMqYlStgzMoSjFk5nj9mZTksZqUFY1bGrDTzx6wcz79LzUoFzfxYwMRmpYImGBYwsVmpoAmGBUxsVipogmEBE5uVCppgWMDEZqWCJhgWMLFZqaAJhgVMbFYqaIJhAROblQqaYFjAPDlAs1JBEwwLmNisVNAEwwImNisVNMGwgInNSgVNMCxgYrNSQRMMC5jYrFTQBMMCJjYrFTTBsICJzUoFTTAsYGKzUkETDAuY55" +
"FZuXrYm9qwe9bzTxa/3yj+mwZ+aA1OFr/fAFbQBPvbNuxD6vkni99vE7+5gfeowa6F2cWvoAn2d23Y3ev5uzppF//fN/BuNdgNMLv4FTTB3tKG3bWev4tiU4t/U3btLw0f162K9e3aGZXJmJUj8DwzK8/Mv85hl1iinFHSjGtpwRldSzNsRkHy7B9tGbNyNH/MynpYzEoLxqyMWWnm3+6jLbFZqaAJhgVMbFYqaIJhAROblQqaYFjAxGal" +
"giYYFjCxWamgCYYFTGxWKmiCYQETm5UKmmBYwMRmpYImGBYwsVmpoAmGBUxsVipogmEBE5uVCppgWMDEZqWCJhgWMLFZqaAJhgVMblYqaZJxAZOblUqaaFzA5GalkibasYEKmNysVNJE4wImNyuVNNG4gBmzsrxBzMqYlStkzMqYldWwmJVrkjErl2NWxqyMWbk8D2blth9tyc1KJU00LmBys1JJE40LmNysVNJE4wImNyuVNNG4gInNSg" +
"VNMixgYrNSQRMMC5jYrFTQBMMCJjYrFTTBsICJzUoFTTAsYGKzUkETDAuY2KxU0ATDAuYNAzQrFTTBsICJzUoFTTAsYGKzUkETDAuY2KxU0ATDAiY2KxU0wbCAic1KBU0wLGBis1JBEwwLmDErx/PHrCyHxay0YMzKmJVm/pNDzEqdP2ZlOSxmpQVjVsasNPNv99GW2KxU0ATDAiY2KxU0wbCAic1KBU0wLGBis1JBEwwLmBswK9cGTbB/" +
"aMM+uJ6/22N28f9jA+9Sgn2H2G8QK2iCvbUNu3M9f7fH7OL/pwZ+UA12J9IufgVNsBvbsDvV86+ok27+f27gHWtwRRSbFTwdbFMu7c8Oj+zyxfou7XablfCwyzPzb9cplgqaYFjAxGalgiYYFjDxKZZQyTwz/3a5lgqaYFjJxK6lgiYYVjKxa6mgCQbNyrkRMLFZqaD5HWEBE5uVCppgWMDEZqWCJhgWMLFZqaAJhgVMbFYqaIJhATNm5W" +
"j+mJX1sJiVFoxZGbPSzB+zcjR/zMp6WMxKT8asXI5ZuVvNym0/2pKblUqaaFzA5GalkiYaFzC5WamkicYFTG5WKmmicQGTm5VKmmhcwORmpZImGhcwuVmppInGBUxuVipponEBk5uVSppoXMDkZqWSJhoXMLlZqaSJxgVMblYqaaJxAZOblUqaaFzAPD5Qs1JJE40LmNysVNJE4wImNyuVNNG4gMnNSiVNNC5gxqwsbxCzMmblKTJmZQnG" +
"rBzPH7OyHBaz0oIxK2NWmvljVo7m361m5XYfbYnNSgVNMCxgYrNSQRMMC5jYrFTQBMMCJjYrFTTBsICJzUoFTTAsYGKzUkETDAuY2KxU0ATDAiY2KxU0wbCAic1KBU2wkwMUMLFZqaAJhgVMbFYqaIJhAROblQqaYFjAxGalgiYYFjCxWamgCYYFTGxWKmiCYQETm5UKmmBYwMRmpYImGBYwY1aO549ZWQ6LWWnBmJXnnlm5etjb2rA71P" +
"OvaGFu/n9p4O1rcMWVmRU0wf61Dbu4nn9FF3Dzv72Bt6vBlcb0rKAJ9m9t2G3r+VdKo27+f2/gB5bgyoavXfwKmmDvaMNuU8+/UhI6M/+m7NqfGB7TPY717doZlcmYlSPwPDMrz8y/zmGXWKKcUdKMa2nB3e5ammEzCpKbOdry+oWFCxYm/0SxrMGtViwVNPNjExMrlgqaYNjExIqlgiYYNjGxYqmgCYZNTKxYKmiCYRMTK5YKmmDYxMSK" +
"pYImGDYxsWKpoAmGTUysWCpogmETEyuWCppg2MTEiqWCJhg2MbFiqaAJhk1MrFgqaIJhExMrlgqaYNzE5IqlkiYaNzG5YqmkicZNzGMDVSyVNNG4ickVSyVNNG5iRrEsbxDFMorlKTKKZRTLYlgUyzXJKJbLUSyjWEaxXI5iuaZiqaS5ATcxuWKppInGTUyuWCpponETkyuWSppo3MTkiqWSJho2MbFiqaAJhk1MrFgqaIJhExMrlgqaYN" +
"jExIqlgiYYNjGxYqmgCYZNTKxYKmiCYRMTK5YKmmA3DNDExIqlgiYYNjGxYqmgCYZNTKxYKmiCYRMTK5YKmmDYxMSKpYImGDYxsWKpoAmGTcwoluP5o1iWw6JYWjCKZRRLM38Uy/H8USzLYVEsLRjFMoqlmX9uFUsFzfzYxMSKpYImGDYxsWKpoAmGTUysWCpogmETEyuWCppg2MTEiqWCJhg2MbFiqaAJhk3MGweoWCpogmETEyuWCppg" +
"2MTEiqWCJhg2MbFiqaAJhk3MDSiWa4Mm2H+0YR9Qz79SjnDz/2cDb12DK5vCs4Im2DvbsIvq+Vc2w9z872rgrabB254G+ybXrJzJ9V9t2C3r6ftugJv+vxt3i5rrDzpn5U7H2pRR+0PD5d3FWN+o3W6/Eh55ecZl266zLBU0wbCGif1KBU0wrGFiv1JBEwxrmPgsSyhmnpl/feOSiZYKmmDYx8SipYImGNQqt9q+jFZpwWiV0SrN/NEqR/" +
"NHq6yHRau0YLTKaJXRKqth0SrXJLdcq1TS3IDbl1yrVNJE4/Yl1yqVNNG4fcm1SiVNNG5fcq1SSRON25dcq1TSROP2JdcqlTTRuH3JtUolTTRuX3KtUkkTjduXXKtU0kTj9iXXKpU00bh9ybVKJU00bl9yrVJJE43bl1yrVNJEOz5Q+5JrlUqaaNy+5FqlkiYaty+5VqmkicbtS65VKmmicfsyWmV5g2iV0SpXwGiVJRitcjx/tMpyWLRK" +
"C0arjFZp5o9WOZ5/l2qVCpr5sX2JtUoFTTBsX2KtUkETDNuXWKtU0ATD9iXWKhU0wbB9ibVKBU0wbF9irVJBEwzbl1irVNAEw/Yl1ioVNMGwfXlygFqlgiYYti+xVqmgCYbtS6xVKmiCYfsSa5UKmmDYvsRapYImGLYvsVapoAmG7UusVSpogmH7EmuVCppg2L7EWqWCJhi2L6NVjuePVlkOi1ZpwWiV0SrN/NEqR/NHq6yHRausORPr3W" +
"3Yzevp+6MeN/3/NO5mNdd/2J2VM7H+tw27sJy+bwTbZf+ext205voXnlk5E+v/tWE3qafvf+S76f+vcRfUXF/0s3Im1nvbsIV6+sman1rym3Jqv2/4rG5vrO/UzihKxqccgeeZT3lm/h0+3xIblgqaYFjExIalgiYYFjGxYamgCQZ9yrnRLrFPqaD5HWHtEvuUCppgWLvEPqWCJhjWLrFPqaAJhrVL7FMqaIJh7RL7lAqaYFi7xD6lgiYY" +
"1i6xT6mgCYa1S+xTKmiCYe2S+5RKmmRcu+Q+pZImGtcuuU+ppIl2bKDaJfcplTTRuHbJfUolTTSuXcanLG8QnzI+5QoZnzI+ZTUsPuWaZHzK5fiU8SnjUy7Pg0+57adZcp9SSRONa5fcp1TSROPaJfcplTTRuHbJfUolTTSuXWKfUkGTDGuX2KdU0ATD2iX2KRU0wbB2iX1KBU0wrF1in1JBEwxrl9inVNAEw9ol9ikVNMGwdnnDAH1KBU" +
"0wrF1in1JBEwxrl9inVNAEw9ol9ikVNMGwdol9SgVNMKxdYp9SQRMMa5fYp1TQBMPaZXzK8fzxKcth8SktGJ8yPqWZ/+QQn1Lnj09ZDotPacH4lPEpzfzbfZol9ikVNMGwdol9SgVNMKxdYp9SQRMMa5fYp1TQBMPaJfYpFTTBsHaJfUoFTTCsXWKfUkET7MYBapfYp1TQBMPaJfYpFTTBsHaJfUoFTTCsXWKfUkETDGuX2KdU0ATD2iX2" +
"KRU0wah2SX1K5Uwsql1Sn1I5E4tql9SnVM7Eotol9SmVM7Godjm7T7k2dzrWQ0bXpkTM7xiu7F3+9UXMaHlrB4uWZ8EZtbwz869zPiI28GY0/CLqWXC3i3pm2Ix23dk/DTFa3mj+aHn1sGh5noyWtxwtb7dqedt+GiLX8pQ00bi9x7U8JU00bu9xLU9JE43be1zLU9JE4/Ye1/KUNNG4vce1PCVNNG7vcS1PSRON23tcy1PSROP2HtfylD" +
"TRuL3HtTwlTTRu73EtT0kTjdt7XMtT0kTj9h7X8pQ00bi9d3ygWp6SJhq397iWp6SJxu09ruUpaaJxe49reUqaaNzei5ZX3iBaXrS8U2S0vBKMljeeP1peOSxangWj5UXLM/NHyxvNv1u1vO0+DRFreQqaYNjew1qegiYYtvewlqegCYbtPazlKWiCYXsPa3kKmmDY3sNanoImGLb3sJanoAmG7T2s5SlogmF7D2t5CppgJwdo72EtT0ET" +
"DNt7WMtT0ATD9h7W8hQ0wbC9h7U8BU0wbO9hLU9BEwzbe1jLU9AEw/Ye1vIUNMGwvYe1PAVNMGzvRcsbzx8trxwWLc+C0fKi5Zn5o+WN54+WVw6Llme4aHnL0fKEOwtaXnVtStX75uEpvRG+vqqnxpcZhv0uLG7Bg9hm9ruwuKWgCYb9LixuKWiCYb8Li1sKmmDY78InrEHja/tVLgVNMGx8YZVLQRMMiltz43dhcUtB8zvCfhcWtxQ0wb" +
"DfhcUtBU0w7ndxcUtJE437XVzcUtJE437XsYGKW0qaaNzv4uKWkiYa97sibpU3iLgVcesUGXEr4lYxLOLWmmTEreWIWxG3Im4tR9xaU9xS0tyA+11c3FLSRON+Fxe3lDTRuN/FxS0lTTTud3FxS0kTDftdWNxS0ATDfhcWtxQ0wbDfhcUtBU0w7HdhcUtBEwz7XVjcUtAEw34XFrcUNMGw34XFLQVNsBsG6HdhcUtBEwz7XVjcUtAEw34X" +
"Frd+9PqFhQsWJv/IDCYhFr2wwaWgCYZFL2xwKWiCYdELG1wKmmBY9IrBNZ4/Blc5LAaXBWNwxeAy88fgGs8fg6scFoPLgjG4YnCZ+efW4FLQzI9FL2xwKWiCYdELG1wKmmBY9MIGl4ImGBa9sMGloAmGRS9scClogmHRCxtcCppgWPS6cYAGl4ImGBa9sMGloAmGRS9scClogmHRCxtcCppgWPTCBpeCJhgWvbDBpaAJhkUvanApZ3JR0Y" +
"saXMqZWFT0ogaXciYWFb2owaWciUVFL2pwKWdizS56zWZwbbnV9fXDVb38u77Vtd1HMcXoGYHnmdFzZv51znDC8s6MclAcHwvudsfHDJtRy9mJA5si9JQ3iNCzDUKPkuYG3PvhQo+SJhr3frjQo6SJxr0fLvQoaaJx74cLPUqaaNz74UKPkiYa93640KOkica9Hy70KGmice+HCz1Kmmjc++FCj5ImGvd+uNCjpInGvR8u9ChponHvhws9" +
"Sppo3PvhQo+SJtrxgXo/XOhR0kTj3g8XepQ00bj3w4UeJU007v1woUdJE417PxF6yhtE6InQswJG6CnBCD3j+SP0lMMi9FgwQs+6Qs8Qj0fBeDwlOLcej4Jmfqz7YI9HQRMM6z7Y41HQBMO6D/Z4FDTBsO6DPR4FTTCs+2CPR0ETDOs+2ONR0ATDug/2eBQ0wbDugz0eBU0wrPucHKDHo6AJhnUf7PEoaIJh3Qd7PAqaYFj3wR6PgiYY1n" +
"2wx6OgCYZ1H+zxKGiCYd0HezwKmmBY98Eej4ImGNZ9sMejoAmGdZ94POP54/GUw+LxWDAeTzweM388ntH88XjqYfF4ai4ez3I8nk14PFvu9nzNcG0vf67v9qgiYoZhIQSbHvDQl5mFEGx6KGiCYSEEmx4KmmBYCMGmh4ImGBZC+Gku0BE5G/KHkiYad0S4/KGkiXZsQKbHHAkh3PRQ0vymuBAS06O8QUyPmB4rZEyPmB7VsJgea5IxPZZj" +
"esT0iOmxPA+mx7af8MJNDyVNNC6EcNNDSRONCyHc9FDSRONCCDc9lDTRuBCCTQ8FTTIshGDTQ0ETDAsh2PRQ0ATDQgg2PRQ0wbAQgk0PBU0wLIRg00NBEwwLIdj0UNAEw0LIDQM0PRQ0wbAQgk0PBU0wLIRg00NBEwwLIdj0UNAEw0IINj0UNMGwEIJNDwVNMCyEYNNDQRMMCyExPcbzx/Qoh8X0sGBMj5geZv6TQ0wPnT+mRzkspocFY3" +
"rE9DDzb/fBLtj0UNAEw0IINj0UNMGwEIJNDwVNMCyEYNNDQRMMCyHY9FDQBMNCCDY9FDTBsBCCTQ8FTbAbByiEYNNDQRMMCyHY9FDQBMNCCDY9FDTBsBCCTQ8FTTAshGDTQ0ETDAsh2PRQ0ASjQgg1PZQzsagQQk0P5UwsKoRQ00M5E4sKIdT0UM7EokLI7KbH2tzpWFsrhGyxIvKVw5f09uD6ish2HwQRPaAizzs9YPYjJLgKMKNrcE4a" +
"A9t+hAQ3BpQ00aAeMEcWAdcDlDS/KW4RcD1ASRONWwRcD1DSROMWAdcDlDTRuEXA9QAlTTRuEXA9QEkTjVsEXA9Q0kTjFgHXA5Q00bhFwPUAJU00bhFwPUBJE41bBFwPUNJE4xbB8YHqAUqaaNwi4HqAkiYatwi4HqCkicYtAq4HKGmicYsgekB5g+gB0QNOkdEDSjB6wHj+6AHlsOgBFoweED3AzB89YDT/btUDtvu8CKwHKGiCYYsA6w" +
"EKmmDYIsB6gIImGLYIsB6goAmGLQKsByhogmGLAOsBCppg2CLAeoCCJhi2CLAeoKAJhi0CrAcoaIKdHKBFgPUABU0wbBFgPUBBEwxbBFgPUNAEwxYB1gMUNMGwRYD1AAVNMGwRYD1AQRMMWwRYD1DQBMMWAdYDFDTBsEUQPWA8f/SAclj0AAtGD4geYOaPHjCeP3pAOSx6gOGiByxHDxBu1+kBW64MPHd4fq+Rra8MaO3cDOMd82MDLY8r" +
"aaLtxOvmlTTReMc85fHyBuu8lZ4XxWdsoqdPvia5+/vkZtiMFfCdeAV9yuPlDVIeT3n8FJnyeMrjxbCUx9ckz6fyuJLmBrxjzsvjSppovGPOy+NKmmi8Y87L40qaaLxjzsvjSppouGOOy+MKmmC4Y47L4wqaYLhjjsvjCppguGOOy+MKmmC4Y47L4wqaYLhjjsvjCppguGOOy+MKmmA3DLBjjsvjCppguGOOy+MKmmC4Y47L4wqaYLhjjs" +
"vjCppguGOOy+MKmmC4Y47L4wqaYLhjnvL4eP6Ux8thKY9bMOXxlMfN/CmPj+dPebwclvK4BVMeT3nczD+35XEFzfy4Y47L4wqaYLhjjsvjCppguGOOy+MKmmC4Y47L4wqaYLhjjsvjCppguGOOy+MKmmC4Y37jAMvjCppguGOOy+MKmmC4Y47L4wqaYLhjjsvjCppguGOOy+MKmmC4Y47L4wqaYLhjTsvjyplctGNOy+PKmVi0Y07L48qZ" +
"WLRjTsvjyplYtGNOy+PKmVizd8x3ojy+5YXyLxhe1CtG6xfKtVi8uWG8bMxbxPDl1WfjrdRKmmi8bMxbxEqaaLxszFvESppovGzM30oN+8dno1ispInG+8e8WKykiQZbxHNUNuYtYiXNb4qXjXmLWEkTjZeNeYtYSRONl415i1hJE42XjXmLWEkT7fhAy8a8RaykicbLxrxFrKSJxsvGvEWspInGy8a8RaykicbLxmkRlzdIizgt4hUwLe" +
"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" )}
c6 = {
'data' : ttk.TTkUtil.base64_deflate_2_obj(
"eJzt1k1LVVEUxvF2JgiWYo0aaWWlVuZbpcPsbd40HJTdeoIoiAYNpfEeKKxLUUTQd2nQ1/CTtLbRRIR7J4enl7/LJQfO+V0c/O++d+dE//uPYwc/WzGXv7XMhI4zjGt6WeHv6zqy349of3dDowzT1bTGPhx58h3ucS+fquVh1PI6923u49B4LS/y6lXu84P7L0OnNFFLL3SyljftlSd1ul0/bXemNKFx9zuN+TumlkfZ1bvcrdDYUU8cbv" +
"RrOzNjJ3SWYbqaVtq3gWemxlqLlRaZzqYVtjvE2firxfd5ki7nruSu5q7l3si9mXsrdz13I3cp93buk9zt0BlN1fIsNFmL2mf4Qi2beedO7t3ce7n3cx+EZnRO53VBs7qoS7qsOc1rQVd0tb2GruU3gcXmdV1LWtaKVrWG+Q/N9DDF5lN/yv+L+fcMDWLchgYxbkODGLehQYzb0CDGbWgQ4zY0iHEbGsS4DQ1i3IYGMW5Dgxi3oUGM29Ag" +
"xm1oEOM2NIhxGxrEuA0NYtyGBjFuQ4MYt6FBjNvQIMZtaBDjNjSIcRsaxLgNDWLchgYxbkODGLehQYzb0CDGbWgQ4zY0iHEbGsS4DQ1i3IYGMW5Dgxi3oUGM29Agxm1oEOM2NIhxGxrEuA0NYtyGBjFuQ4MYt6FBjNvQIMZtaBDjNjSIcRsaxLgNDWLchgYxbkODGLehQYzb0CDGbWgQ4zY0iHEbGsS4DQ1i3IYGMW5Dgxi3oUGM29Agxm" +
"1oEOM2NIhxGxrEuA0NYtyGBjFuQ4MYt6FBjNvQIMZtaBDjNkM1WEf2+x9DowzTzbTCPsfgFttznyiR6XRaZV9i4LnIMIbp9RZ/AsswbPU=" ),
'colors' : ttk.TTkUtil.base64_deflate_2_obj(
"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" +
"2M/qvHtWz63B3zKD/UKedy/k82rwNw4PnvqV4Mx0X3Pz7po7vyZ/3U72RWfvKrTkjpr8VTvZV529k9GSO2tyr53sZ3bOPbOPr8ln2cm+7ubcdXdhTf6ynewLz94lasmLa/KXzORMX3n2zlRLPrEmf8FO9qVnb4e15KU1udtO9nM7557by2ry5+xkX3yz7uL7wZp8pp3sq8/ebWzJH67Jp5vJLX312VucLfmjNfkzdrKvPntftSV/rCZ/2k" +
"72c+s/TzylJp9mJ/vq8x8ofrImf9JO9tXnP1E8rSafYif76rP3ylvyp2vyx8zkbF999gZ9S/5MTf6onezn1n+oeHpN/rCd7KvPf6p4Zk3+oJ3sq89/rPi5mrzMTvbVZzddWvLna/JJdrKfW//B4hdq8olmsj9ZzPhPFr9Ukxfbyb76/EeLX67JC+1kX312I60ln1WTj7eTffXZ3buW3FOTF9jJfm79p4tfrckdZrI/Xsz4jxe/XpPn28m+" +
"+vzni9+oyfPsZF99dke2JX+rJs+1Pj7rJ2dN2l3gFnxODZ5jB9up9R8wnluD2+xgW3v+A8bv1OCjzeBCW3p2h70FX1CDZ9vBtvLsrn4L/m4Nfr8dbAvPJgla8EU1+Ag72M7qkntWf68Gv88OtmXnP5b8fg2eZQb7c4n/WPIHNfi9drAtuiV3zf1hDZ5pB9uaW3KX3Mtq8MF2sJ1V/7Hkj2rwQXawLTn/seSPa7DYwbbk/MeSP6nBrWZwqS" +
"05mxBqwVfW4APsYDur/mPJq2rwfnawnVX/seTPhlTnanDhEMRpBV9bg/e2g23J2cRXC/55DX63GVzu2Ki75F5fg/e0g+2s+o8lb6jBe9jBdiH7jyV/WYMrdrAtOf+x5K9qcNkOtiVnU4Mt+Nc1uGgH25Kbd5fcW2pwwdxI7Y8l/lPJW2twzg62Jec/lPxNDW6xg23J+c8k76jBaTvYlpzd0G3BK2vwLnawLTm7h9yC76rBO9vBdlb9B5J3" +
"1+CdzGB/IPGfR/6uBjfbwbbk/MeRv6/B77CDbcnZREAL/kMNfrsdbEvOphBa8P01eDs72M6q/yzyjzX4bWawP4v4jyL/VIPfagfbkvOfRP65Br/FDrYlZ1MlLfihGryVHeydDfesfrgGT7ODfQ/ePav/WoPfZAf7Hry75D5Wgze3mzd9D95dcgdq8Bvt4GgP3gt+ogZvagf7Hrx7Vj9Zgzexg/0RxL2Q/70GT7GD/S7ZXXJX1+DXm8G5fp" +
"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" )}
# dataA,colorsA = c1['data'], c1['colors']
# dataB,colorsB = c2['data'], c2['colors']
dataA,colorsA = c5['data'], c5['colors']
dataB,colorsB = c6['data'], c6['colors']
w=len(dataA[0])
h=len(dataA)
print(f"{w=} {h=}")
def ptt1():
# TTkLog.debug("pushToTerminal")
oldData, oldColors = dataB, colorsB
lastcolor = ttk.TTkColor.RST
empty = True
ansi = ""
for y in range(0, h):
for x in range(0, w):
if dataA[y][x] == oldData[y][x] and \
colorsA[y][x] == oldColors[y][x]:
if not empty:
# TTkTerm.push(ansi)
empty=True
continue
ch = dataA[y][x]
color = colorsA[y][x]
if empty:
ansi = ttk.TTkTerm.Cursor.moveTo(y+1,x+1)
empty = False
if color != lastcolor:
ansi += str(color-lastcolor)
lastcolor = color
ansi+=ch
if not empty:
# ttk.TTkTerm.push(ansi)
empty=True
# Reset the color at the end
# TTkTerm.push(TTkColor.RST)
# Switch the buffer
# dataB, dataA, colorsB, colorsA = dataA, dataB, colorsA, colorsB
def ptt2():
oldData, oldColors = dataB, colorsB
lastcolor = ttk.TTkColor.RST
empty = True
ansi = ""
for y,(lda,ldb,lca,lcb) in enumerate(zip(dataA,dataB,colorsA,colorsB)):
for x,(da,db,ca,cb) in enumerate(zip(lda,ldb,lca,lcb)):
if da==db and ca==cb:
if not empty:
empty=True
continue
ch, color = da, ca
if empty:
ansi = ttk.TTkTerm.Cursor.moveTo(y+1,x+1)
empty = False
if color != lastcolor:
ansi += str(color-lastcolor)
lastcolor = color
ansi+=ch
if not empty:
empty=True
def ptt3():
oldData, oldColors = dataB, colorsB
lastcolor = ttk.TTkColor.RST
empty = True
ansi = ""
for y,(lda,ldb,lca,lcb) in enumerate(zip(dataA,dataB,colorsA,colorsB)):
for x,(da,db,ca,cb) in enumerate(zip(lda,ldb,lca,lcb)):
if da==db and ca==cb:
if not empty:
empty=True
continue
ch, color = da, ca
if empty:
ansi = ttk.TTkTerm.Cursor.moveTo(y+1,x+1)
empty = False
if color != lastcolor:
ansi += color.canvasDiff2Str(lastcolor)
lastcolor = color
ansi+=ch
if not empty:
empty=True
def test1(): return ptt1()
def test2(): return ptt2()
def test3(): return ptt2()
def test4(): return ptt1()
def test5(): return ptt1()
def test6(): return ptt1()
def test7(): return ptt1()
def test8(): return ptt1()
def test9(): return ptt1()
loop = 50
a={}
iii = 1
while (testName := f'test{iii}') and (testName in globals()):
result = timeit.timeit(f'{testName}(*a)', globals=globals(), number=loop)
print(f"test{iii}) fps {loop / result :.3f} - s {result / loop:.10f} - {result / loop} {globals()[testName](*a)}")
iii+=1