문제
고려 시대의 학자 하의비는 최근 들어온 제자 바의히에게 활자의 역사를 가르치기로 했다. 이를 위해 목판 활자를 사용한 신라 시대의 기록을 연구하던 하의비는 놀라운 사실을 알아냈다. 바로 신라 시대의 사람들은 목판 활자를 사용하여 영어 알파벳 대문자로 구성된 문자열을 찍어냈다는 점과, 이를 숨기기 위해 이와 관련된 모든 기록을 암호화했다는 점이다!
하의비의 연구에 따르면 신라 시대의 학자들은 $T+26$개의 활자 문자열을 가지고 있으며, 알파벳 대문자 하나로 이루어진 기초 활자 문자열 26ドル$개와 학자들이 만든 $T$개의 복합 활자 문자열로 이루어져 있다. 기초 활자 문자열에는 A 부터 Z 까지 각각 1ドル$부터 26ドル$까지의 번호가 붙어있으며, 복합 활자 문자열에는 만든 순서대로 1ドル$부터 $T$까지의 번호가 매겨져 있다.
$t$번 복합 활자 문자열은 기초 활자 문자열과 이전에 만든 복합 활자 문자열을 총 $N_t$개 이어 붙여서 만들어지며, 이를 만드는 과정을 암호화한 수 $C_t$는 다음과 같이 만들어진다.
수열 $A$를 만든다. 초기에 이 수열은 비어 있다.
$t$번 복합 활자 문자열의 끝에 활자 문자열을 하나씩 추가한다. 이때 수열 $A$에는 다음과 같이 원소를 추가한다.
만약 추가한 활자 문자열이 $i$번 기초 활자 문자열이라면, $A$의 끝에 $i$를 추가한다. $(1 \le i \le 26)$
만약 추가한 활자 문자열이 $i$번 복합 활자 문자열이라면, $A$의 끝에 $-i$를 추가한다. $(1 \le i < t)$
$A$를 26ドル+t$진법으로 읽어서 $C_t$를 만든다. 정확히는, $C_t = \sum_{k=1}^{N_t}(26+t)^{N_t-k}A_{k}$이다.
$T$개의 암호화된 복합 활자 문자열이 주어질 때, 하의비의 연구에 따라 $T$개의 복합 활자 문자열을 모두 해독해 보자.
출력
첫째 줄부터 $T$개의 줄에 걸쳐, $t$번째 줄에는 $t$번 복합 활자 문자열을 출력한다.
$T$개의 활자 문자열의 길이의 합이 1ドル,000円,000円$을 넘지 않음이 보장된다.
각 정수는 다음과 같이 해독할 수 있다.
225ドル=8\cdot 27^1+9\cdot 27^0$이므로, $A=[8,9]$이다. 따라서 1ドル$번 복합 활자 문자열은 HI 가 된다.
2273ドル=2\cdot 28^2+25\cdot 28^1+5\cdot 28^0$이므로, $A=[2,25,5]$이다. 따라서 2ドル$번 복합 활자 문자열은 BYE 가 된다.
$-31=(-1)\cdot 29^1+(-2)\cdot 29^0$이므로, $A=[-1,-2]$이다. 따라서 3ドル$번 복합 활자 문자열은 HIBYE 가 된다.
예제 출력 2
복사
ONE
ONETWOONESEVEN
W3sicHJvYmxlbV9pZCI6IjM0MTM1IiwicHJvYmxlbV9sYW5nIjoiMCIsInRpdGxlIjoiW1VdIFVucmF2ZWxpbmcgdGhlIEhpc3RvcnkiLCJkZXNjcmlwdGlvbiI6IjxwPlx1YWNlMFx1YjgyNCBcdWMyZGNcdWIzMDBcdWM3NTggXHVkNTU5XHVjNzkwIFx1ZDU1OFx1Yzc1OFx1YmU0NFx1YjI5NCBcdWNkNWNcdWFkZmMgXHViNGU0XHVjNWI0XHVjNjI4IFx1YzgxY1x1Yzc5MCBcdWJjMTRcdWM3NThcdWQ3ODhcdWM1ZDBcdWFjOGMgXHVkNjVjXHVjNzkwXHVjNzU4IFx1YzVlZFx1YzBhY1x1Yjk3YyBcdWFjMDBcdWI5NzRcdWNlNThcdWFlMzBcdWI4NWMgXHVkNTg4XHViMmU0LiBcdWM3NzRcdWI5N2MgXHVjNzA0XHVkNTc0IFx1YmFhOVx1ZDMxMCBcdWQ2NWNcdWM3OTBcdWI5N2MgXHVjMGFjXHVjNmE5XHVkNTVjIFx1YzJlMFx1Yjc3YyBcdWMyZGNcdWIzMDBcdWM3NTggXHVhZTMwXHViODVkXHVjNzQ0IFx1YzVmMFx1YWQ2Y1x1ZDU1OFx1YjM1OCBcdWQ1NThcdWM3NThcdWJlNDRcdWIyOTQgXHViMTgwXHViNzdjXHVjNmI0IFx1YzBhY1x1YzJlNFx1Yzc0NCBcdWM1NGNcdWM1NDRcdWIwYzhcdWIyZTQuIFx1YmMxNFx1Yjg1YyBcdWMyZTBcdWI3N2MgXHVjMmRjXHViMzAwXHVjNzU4IFx1YzBhY1x1Yjc4Y1x1YjRlNFx1Yzc0MCBcdWJhYTlcdWQzMTAgXHVkNjVjXHVjNzkwXHViOTdjIFx1YzBhY1x1YzZhOVx1ZDU1OFx1YzVlYyBcdWM2MDFcdWM1YjQgXHVjNTRjXHVkMzBjXHViY2IzIFx1YjMwMFx1YmIzOFx1Yzc5MFx1Yjg1YyBcdWFkNmNcdWMxMzFcdWI0MWMgXHViYjM4XHVjNzkwXHVjNWY0XHVjNzQ0IFx1Y2MwZFx1YzViNFx1YjBjOFx1YjJlNFx1YjI5NCBcdWM4MTBcdWFjZmMsIFx1Yzc3NFx1Yjk3YyBcdWMyMjhcdWFlMzBcdWFlMzAgXHVjNzA0XHVkNTc0IFx1Yzc3NFx1YzY0MCBcdWFkMDBcdWI4MjhcdWI0MWMgXHViYWE4XHViNGUwIFx1YWUzMFx1Yjg1ZFx1Yzc0NCBcdWM1NTRcdWQ2MzhcdWQ2NTRcdWQ1ODhcdWIyZTRcdWIyOTQgXHVjODEwXHVjNzc0XHViMmU0ITxcL3A+XHJcblxyXG48cD5cdWQ1NThcdWM3NThcdWJlNDRcdWM3NTggXHVjNWYwXHVhZDZjXHVjNWQwIFx1YjUzMFx1Yjk3NFx1YmE3NCBcdWMyZTBcdWI3N2MgXHVjMmRjXHViMzAwXHVjNzU4IFx1ZDU1OVx1Yzc5MFx1YjRlNFx1Yzc0MCAkVCsyNiRcdWFjMWNcdWM3NTggXHVkNjVjXHVjNzkwIFx1YmIzOFx1Yzc5MFx1YzVmNFx1Yzc0NCBcdWFjMDBcdWM5YzBcdWFjZTAgXHVjNzg4XHVjNzNjXHViYTcwLCBcdWM1NGNcdWQzMGNcdWJjYjMgXHViMzAwXHViYjM4XHVjNzkwIFx1ZDU1OFx1YjA5OFx1Yjg1YyBcdWM3NzRcdWI4ZThcdWM1YjRcdWM5YzQgXHVhZTMwXHVjZDA4IFx1ZDY1Y1x1Yzc5MCBcdWJiMzhcdWM3OTBcdWM1ZjQgJDI2JFx1YWMxY1x1YzY0MCBcdWQ1NTlcdWM3OTBcdWI0ZTRcdWM3NzQgXHViOWNjXHViNGUwICRUJFx1YWMxY1x1Yzc1OCBcdWJjZjVcdWQ1NjkgXHVkNjVjXHVjNzkwIFx1YmIzOFx1Yzc5MFx1YzVmNFx1Yjg1YyBcdWM3NzRcdWI4ZThcdWM1YjRcdWM4MzggXHVjNzg4XHViMmU0LiBcdWFlMzBcdWNkMDggXHVkNjVjXHVjNzkwIFx1YmIzOFx1Yzc5MFx1YzVmNFx1YzVkMFx1YjI5NCA8c3BhbiBzdHlsZT1cImNvbG9yOiNlNzRjM2M7XCI+PGNvZGU+QTxcL2NvZGU+PFwvc3Bhbj5cdWJkODBcdWQxMzAgPHNwYW4gc3R5bGU9XCJjb2xvcjojZTc0YzNjO1wiPjxjb2RlPlo8XC9jb2RlPjxcL3NwYW4+XHVhZTRjXHVjOWMwIFx1YWMwMVx1YWMwMSAkMSRcdWJkODBcdWQxMzAgJDI2JFx1YWU0Y1x1YzljMFx1Yzc1OCBcdWJjODhcdWQ2MzhcdWFjMDAgXHViZDk5XHVjNWI0XHVjNzg4XHVjNzNjXHViYTcwLCBcdWJjZjVcdWQ1NjkgXHVkNjVjXHVjNzkwIFx1YmIzOFx1Yzc5MFx1YzVmNFx1YzVkMFx1YjI5NCBcdWI5Y2NcdWI0ZTAgXHVjMjFjXHVjMTFjXHViMzAwXHViODVjICQxJFx1YmQ4MFx1ZDEzMCAkVCRcdWFlNGNcdWM5YzBcdWM3NTggXHViYzg4XHVkNjM4XHVhYzAwIFx1YjllNFx1YWNhOFx1YzgzOCBcdWM3ODhcdWIyZTQuPFwvcD5cclxuXHJcbjxwPiR0JFx1YmM4OCBcdWJjZjVcdWQ1NjkgXHVkNjVjXHVjNzkwIFx1YmIzOFx1Yzc5MFx1YzVmNFx1Yzc0MCBcdWFlMzBcdWNkMDggXHVkNjVjXHVjNzkwIFx1YmIzOFx1Yzc5MFx1YzVmNFx1YWNmYyBcdWM3NzRcdWM4MDRcdWM1ZDAgXHViOWNjXHViNGUwIFx1YmNmNVx1ZDU2OSBcdWQ2NWNcdWM3OTAgXHViYjM4XHVjNzkwXHVjNWY0XHVjNzQ0IFx1Y2QxZCAkTl90JFx1YWMxYyBcdWM3NzRcdWM1YjQgXHViZDk5XHVjNWVjXHVjMTFjIFx1YjljY1x1YjRlNFx1YzViNFx1YzljMFx1YmE3MCwgXHVjNzc0XHViOTdjIFx1YjljY1x1YjRkY1x1YjI5NCBcdWFjZmNcdWM4MTVcdWM3NDQgXHVjNTU0XHVkNjM4XHVkNjU0XHVkNTVjIFx1YzIxOCAkQ190JFx1YjI5NCBcdWIyZTRcdWM3NGNcdWFjZmMgXHVhYzE5XHVjNzc0IFx1YjljY1x1YjRlNFx1YzViNFx1YzljNFx1YjJlNC48XC9wPlxyXG5cclxuPG9sPlxyXG5cdDxsaT5cdWMyMThcdWM1ZjQgJEEkXHViOTdjIFx1YjljY1x1YjRlMFx1YjJlNC4gXHVjZDA4XHVhZTMwXHVjNWQwIFx1Yzc3NCBcdWMyMThcdWM1ZjRcdWM3NDAgXHViZTQ0XHVjNWI0IFx1Yzc4OFx1YjJlNC48XC9saT5cclxuXHQ8bGk+JHQkXHViYzg4IFx1YmNmNVx1ZDU2OSBcdWQ2NWNcdWM3OTAgXHViYjM4XHVjNzkwXHVjNWY0XHVjNzU4IFx1YjA1ZFx1YzVkMCBcdWQ2NWNcdWM3OTAgXHViYjM4XHVjNzkwXHVjNWY0XHVjNzQ0IFx1ZDU1OFx1YjA5OFx1YzUyOSBcdWNkOTRcdWFjMDBcdWQ1NWNcdWIyZTQuIFx1Yzc3NFx1YjU0YyBcdWMyMThcdWM1ZjQgJEEkXHVjNWQwXHViMjk0IFx1YjJlNFx1Yzc0Y1x1YWNmYyBcdWFjMTlcdWM3NzQgXHVjNmQwXHVjMThjXHViOTdjIFx1Y2Q5NFx1YWMwMFx1ZDU1Y1x1YjJlNC5cclxuXHQ8dWw+XHJcblx0XHQ8bGk+XHViOWNjXHVjNTdkIFx1Y2Q5NFx1YWMwMFx1ZDU1YyBcdWQ2NWNcdWM3OTAgXHViYjM4XHVjNzkwXHVjNWY0XHVjNzc0ICRpJFx1YmM4OCBcdWFlMzBcdWNkMDggXHVkNjVjXHVjNzkwIFx1YmIzOFx1Yzc5MFx1YzVmNFx1Yzc3NFx1Yjc3Y1x1YmE3NCwgJEEkXHVjNzU4IFx1YjA1ZFx1YzVkMCAkaSRcdWI5N2MgXHVjZDk0XHVhYzAwXHVkNTVjXHViMmU0LiAkKDEgXFxsZSBpIFxcbGUgMjYpJDxcL2xpPlxyXG5cdFx0PGxpPlx1YjljY1x1YzU3ZCBcdWNkOTRcdWFjMDBcdWQ1NWMgXHVkNjVjXHVjNzkwIFx1YmIzOFx1Yzc5MFx1YzVmNFx1Yzc3NCAkaSRcdWJjODggXHViY2Y1XHVkNTY5IFx1ZDY1Y1x1Yzc5MCBcdWJiMzhcdWM3OTBcdWM1ZjRcdWM3NzRcdWI3N2NcdWJhNzQsICRBJFx1Yzc1OCBcdWIwNWRcdWM1ZDAgJC1pJFx1Yjk3YyBcdWNkOTRcdWFjMDBcdWQ1NWNcdWIyZTQuICQoMSBcXGxlIGkgJmx0OyB0KSQ8XC9saT5cclxuXHQ8XC91bD5cclxuXHQ8XC9saT5cclxuXHQ8bGk+JEEkXHViOTdjICQyNit0JFx1YzljNFx1YmM5NVx1YzczY1x1Yjg1YyBcdWM3N2RcdWM1YjRcdWMxMWMgJENfdCRcdWI5N2MgXHViOWNjXHViNGUwXHViMmU0LiBcdWM4MTVcdWQ2NTVcdWQ3ODhcdWIyOTQsICRDX3QgPSBcXHN1bV97az0xfV57Tl90fSgyNit0KV57Tl90LWt9QV97a30kXHVjNzc0XHViMmU0LjxcL2xpPlxyXG48XC9vbD5cclxuXHJcbjxwPiRUJFx1YWMxY1x1Yzc1OCBcdWM1NTRcdWQ2MzhcdWQ2NTRcdWI0MWMgXHViY2Y1XHVkNTY5IFx1ZDY1Y1x1Yzc5MCBcdWJiMzhcdWM3OTBcdWM1ZjRcdWM3NzQgXHVjOGZjXHVjNWI0XHVjOWM4IFx1YjU0YywgXHVkNTU4XHVjNzU4XHViZTQ0XHVjNzU4IFx1YzVmMFx1YWQ2Y1x1YzVkMCBcdWI1MzBcdWI3N2MgJFQkXHVhYzFjXHVjNzU4IFx1YmNmNVx1ZDU2OSBcdWQ2NWNcdWM3OTAgXHViYjM4XHVjNzkwXHVjNWY0XHVjNzQ0IFx1YmFhOFx1YjQ1MCBcdWQ1NzRcdWIzYzVcdWQ1NzQgXHViY2Y0XHVjNzkwLjxcL3A+XHJcbiIsImlucHV0IjoiPHA+XHVjY2FiXHVjOWY4IFx1YzkwNFx1YzVkMFx1YjI5NCBcdWM1NGNcdWM1NDRcdWIwYjRcdWM1N2MgXHVkNTU4XHViMjk0IFx1YmNmNVx1ZDU2OSBcdWQ2NWNcdWM3OTAgXHViYjM4XHVjNzkwXHVjNWY0XHVjNzU4IFx1YzIxOCAkVCRcdWFjMDAgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0LiAkKDFcXGxlIFRcXGxlIDFcXCwgMDAwXFwsIDAwMCkkPFwvcD5cclxuXHJcbjxwPlx1YjQ1OFx1YzlmOCBcdWM5MDRcdWJkODBcdWQxMzAgJFQkXHVhYzFjXHVjNzU4IFx1YzkwNFx1YzVkMCBcdWFjNzhcdWNjZDAsICR0KzEkXHViYzg4XHVjOWY4IFx1YzkwNFx1YzVkMFx1YjI5NCBcdWM4ZmNcdWM1YjRcdWM5YzQgXHViYzI5XHViYzk1XHViMzAwXHViODVjIFx1YzU1NFx1ZDYzOFx1ZDY1NFx1YjQxYyAkdCRcdWJjODggXHViY2Y1XHVkNTY5IFx1ZDY1Y1x1Yzc5MCBcdWJiMzhcdWM3OTBcdWM1ZjRcdWM3NDQgXHVjNzU4XHViYmY4XHVkNTU4XHViMjk0IFx1YzgxNVx1YzIxOCAkQ190JFx1YWMwMCBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuICQoMVxcbGUgfENfdHxcXGxlIDEwXnsxOH0pJDxcL3A+XHJcbiIsIm91dHB1dCI6IjxwPlx1Y2NhYlx1YzlmOCBcdWM5MDRcdWJkODBcdWQxMzAgJFQkXHVhYzFjXHVjNzU4IFx1YzkwNFx1YzVkMCBcdWFjNzhcdWNjZDAsICR0JFx1YmM4OFx1YzlmOCBcdWM5MDRcdWM1ZDBcdWIyOTQgJHQkXHViYzg4IFx1YmNmNVx1ZDU2OSBcdWQ2NWNcdWM3OTAgXHViYjM4XHVjNzkwXHVjNWY0XHVjNzQ0IFx1Y2Q5Y1x1YjgyNVx1ZDU1Y1x1YjJlNC48XC9wPlxyXG5cclxuPHA+JFQkXHVhYzFjXHVjNzU4IFx1ZDY1Y1x1Yzc5MCBcdWJiMzhcdWM3OTBcdWM1ZjRcdWM3NTggXHVhZTM4XHVjNzc0XHVjNzU4IFx1ZDU2OVx1Yzc3NCAkMVxcLDAwMFxcLDAwMCRcdWM3NDQgXHViMTE4XHVjOWMwIFx1YzU0YVx1Yzc0Y1x1Yzc3NCBcdWJjZjRcdWM3YTVcdWI0MWNcdWIyZTQuPFwvcD5cclxuIiwiaGludCI6IiIsIm9yaWdpbmFsIjoiMSIsImh0bWxfdGl0bGUiOiIwIiwicHJvYmxlbV9sYW5nX3Rjb2RlIjoiS29yZWFuIiwic2FtcGxlX2V4cGxhaW5fMSI6IjxwPlx1YWMwMSBcdWM4MTVcdWMyMThcdWIyOTQgXHViMmU0XHVjNzRjXHVhY2ZjIFx1YWMxOVx1Yzc3NCBcdWQ1NzRcdWIzYzVcdWQ1NjAgXHVjMjE4IFx1Yzc4OFx1YjJlNC48XC9wPlxyXG5cclxuPHVsPlxyXG5cdDxsaT4kMjI1PThcXGNkb3QgMjdeMSs5XFxjZG90IDI3XjAkXHVjNzc0XHViYmMwXHViODVjLCAkQT1bOCw5XSRcdWM3NzRcdWIyZTQuIFx1YjUzMFx1Yjc3Y1x1YzExYyAkMSRcdWJjODggXHViY2Y1XHVkNTY5IFx1ZDY1Y1x1Yzc5MCBcdWJiMzhcdWM3OTBcdWM1ZjRcdWM3NDAgPHNwYW4gc3R5bGU9XCJjb2xvcjojZTc0YzNjO1wiPjxjb2RlPkhJPFwvY29kZT48XC9zcGFuPlx1YWMwMCBcdWI0MWNcdWIyZTQuPFwvbGk+XHJcblx0PGxpPiQyMjczPTJcXGNkb3QgMjheMisyNVxcY2RvdCAyOF4xKzVcXGNkb3QgMjheMCRcdWM3NzRcdWJiYzBcdWI4NWMsICRBPVsyLDI1LDVdJFx1Yzc3NFx1YjJlNC4gXHViNTMwXHViNzdjXHVjMTFjICQyJFx1YmM4OCBcdWJjZjVcdWQ1NjkgXHVkNjVjXHVjNzkwIFx1YmIzOFx1Yzc5MFx1YzVmNFx1Yzc0MCA8c3BhbiBzdHlsZT1cImNvbG9yOiNlNzRjM2M7XCI+PGNvZGU+QllFPFwvY29kZT48XC9zcGFuPlx1YWMwMCBcdWI0MWNcdWIyZTQuPFwvbGk+XHJcblx0PGxpPiQtMzE9KC0xKVxcY2RvdCAyOV4xKygtMilcXGNkb3QgMjleMCRcdWM3NzRcdWJiYzBcdWI4NWMsICRBPVstMSwtMl0kXHVjNzc0XHViMmU0LiBcdWI1MzBcdWI3N2NcdWMxMWMgJDMkXHViYzg4IFx1YmNmNVx1ZDU2OSBcdWQ2NWNcdWM3OTAgXHViYjM4XHVjNzkwXHVjNWY0XHVjNzQwIDxzcGFuIHN0eWxlPVwiY29sb3I6I2U3NGMzYztcIj48Y29kZT5ISUJZRTxcL2NvZGU+PFwvc3Bhbj5cdWFjMDAgXHViNDFjXHViMmU0LjxcL2xpPlxyXG48XC91bD5cclxuIn0seyJwcm9ibGVtX2lkIjoiMzQxMzUiLCJwcm9ibGVtX2xhbmciOiIxIiwidGl0bGUiOiJbVV0gVW5yYXZlbGluZyB0aGUgSGlzdG9yeSIsImRlc2NyaXB0aW9uIjoiPHA+SGF1aWJpLCBhIHNjaG9sYXIgZnJvbSB0aGUgS29yZWEgZHluYXN0eSwgZGVjaWRlZCB0byB0ZWFjaCB0aGUgaGlzdG9yeSBvZiB0eXBlcyAoYSBkZXZpY2UgdXNlZCB0byBwcmludCBsZXR0ZXJzKSB0byBCYXVpaGksIGhpcyBuZXcgcHVwaWwuIFdoaWxlIHN0dWR5aW5nIHJlc2VhcmNoIHJlY29yZHMgdXNpbmcgd29vZGVuIHR5cGVzIGZyb20gdGhlIFNpbGxhIGR5bmFzdHkgdG8gcHJlcGFyZSBsZWN0dXJlIG1hdGVyaWFsLCBIYXVpYmkgZGlzY292ZXJlZCBzb21ldGhpbmcgaW50ZXJlc3RpbmcuIFBlb3BsZSBvZiB0aGUgU2lsbGEgZHluYXN0eSB1c2VkIHdvb2RlbiB0eXBlcyB0byBwcmludCBzdHJpbmdzIGNvbnNpc3Rpbmcgb2YgdXBwZXJjYXNlIGxldHRlcnMgb2YgdGhlIEVuZ2xpc2ggYWxwaGFiZXQsIGFuZCBhbnkgcmVjb3JkcyByZWdhcmRpbmcgdGhpcyBoYWQgYmVlbiBlbmNyeXB0ZWQgYW5kIGhpZGRlbiBhd2F5ITxcL3A+XHJcblxyXG48cD5BY2NvcmRpbmcgdG8gSGF1aWJpJiMzOTtzIHJlc2VhcmNoLCBzY2hvbGFycyBmcm9tIHRoZSBTaWxsYSBkeW5hc3R5IGhhZCAkVCsyNiQgdHlwZSBzdHJpbmdzLCBjb25zaXN0aW5nIG9mICQyNiQgYmFzaWMgdHlwZSBzdHJpbmdzIGNvbnNpc3Rpbmcgb2YgYSBzaW5nbGUgRW5nbGlzaCB1cHBlcmNhc2UgbGV0dGVyLCBhbmQgJFQkIGNvbXBvc2l0ZSB0eXBlIHN0cmluZ3MgY3JlYXRlZCBieSB0aGUgc2Nob2xhcnMuIEVhY2ggYmFzaWMgdHlwZSBzdHJpbmcgZnJvbSA8c3BhbiBzdHlsZT1cImNvbG9yOiNlNzRjM2M7XCI+PGNvZGU+QTxcL2NvZGU+PFwvc3Bhbj4gdG8gPHNwYW4gc3R5bGU9XCJjb2xvcjojZTc0YzNjO1wiPjxjb2RlPlo8XC9jb2RlPjxcL3NwYW4+IGlzIG51bWJlcmVkIGZyb20gJDEkIHRvICQyNiQsIGFuZCBlYWNoIGNvbXBvc2l0ZSB0eXBlIHN0cmluZyBpcyBudW1iZXJlZCBmcm9tICQxJCB0byAkVCQgaW4gdGhlIG9yZGVyIHRoZXkgd2VyZSBjcmVhdGVkLjxcL3A+XHJcblxyXG48cD5UaGUgY29tcG9zaXRlIHR5cGUgc3RyaW5nIG51bWJlcmVkICR0JCBpcyBjcmVhdGVkIGJ5IGNvbmNhdGVuYXRpbmcgYSB0b3RhbCBvZiAkTl90JCBiYXNpYyB0eXBlIHN0cmluZ3MgYW5kIHByZXZpb3VzbHkgY3JlYXRlZCBjb21wb3NpdGUgdHlwZSBzdHJpbmdzLCBhbmQgdGhlIG51bWJlciAkQ190JCBpcyBjcmVhdGVkIGFzIGEgcmVzdWx0IG9mIGVuY3J5cHRpbmcgdGhpcyBwcm9jZXNzIGFzIGZvbGxvd3MuPFwvcD5cclxuXHJcbjxvbD5cclxuXHQ8bGk+QSBzZXF1ZW5jZSAkQSQgaXMgY3JlYXRlZC4gSW5pdGlhbGx5LCB0aGlzIHNlcXVlbmNlIGlzIGVtcHR5LjxcL2xpPlxyXG5cdDxsaT5UeXBlIHN0cmluZ3MgYXJlIGFwcGVuZGVkIHRvIHRoZSBlbmQgb2YgdGhlIGNvbXBvc2l0ZSB0eXBlIHN0cmluZyBudW1iZXIgJHQkIG9uZSBieSBvbmUuIEVsZW1lbnRzIGFyZSBhbHNvIGluc2VydGVkIGF0IHRoZSBlbmQgb2Ygc2VxdWVuY2UgJEEkIGFzIGZvbGxvd3MuXHJcblx0PHVsPlxyXG5cdFx0PGxpPklmIHRoZSBhcHBlbmRlZCB0eXBlIHN0cmluZyBpcyBhIGJhc2ljIHR5cGUgc3RyaW5nIG51bWJlcmVkICRpJCwgaW5zZXJ0ICRpJCBhdCB0aGUgZW5kIG9mICRBJC4gJCgxIFxcbGUgaSBcXGxlIDI2KSQ8XC9saT5cclxuXHRcdDxsaT5JZiB0aGUgYXBwZW5kZWQgdHlwZSBzdHJpbmcgaXMgYSBjb21wb3NpdGUgdHlwZSBzdHJpbmcgbnVtYmVyZWQgJGkkLCBpbnNlcnQgJC1pJCBhdCB0aGUgZW5kIG9mICRBJC4gJCgxIFxcbGUgaSAmbHQ7IHQpJDxcL2xpPlxyXG5cdDxcL3VsPlxyXG5cdDxcL2xpPlxyXG5cdDxsaT5SZWFkICRBJCBpbiBiYXNlICQyNit0JCB0byBjcmVhdGUgJENfdCQuIFNwZWNpZmljYWxseSwgJENfdCA9IFxcc3VtX3trPTF9XntOX3R9KDI2K3QpXntOX3Qta31BX3trfSQuPFwvbGk+XHJcbjxcL29sPlxyXG5cclxuPHA+R2l2ZW4gJFQkIGVuY3J5cHRlZCBjb21wb3NpdGUgdHlwZSBzdHJpbmdzLCBkZWNyeXB0IHRoZW0gYmFzZWQgb24gSGF1aWJpJiMzOTtzIHJlc2VhcmNoLjxcL3A+XHJcbiIsImlucHV0IjoiPHA+VGhlIGZpcnN0IGxpbmUgb2YgaW5wdXQgY29udGFpbnMgJFQkLCB0aGUgbnVtYmVyIG9mIHN0cmluZ3MuICQoMVxcbGUgVFxcbGUgMVxcLCAwMDBcXCwgMDAwKSQ8XC9wPlxyXG5cclxuPHA+VGhlICR0JC10aCBvZiB0aGUgZm9sbG93aW5nICRUJCBsaW5lcyBjb250YWlucyAkQ190JCwgZGVub3RpbmcgdGhlIGVuY3J5cHRlZCB2YWx1ZSBvZiB0aGUmbmJzcDtzdHJpbmcgbnVtYmVyZWQgJHQkIGFzIGV4cGxhaW5lZCBpbiB0aGUgcHJvYmxlbSBzdGF0ZW1lbnQuJm5ic3A7JCgxXFxsZSB8Q190fFxcbGUgMTBeezE4fSkkPFwvcD5cclxuIiwib3V0cHV0IjoiPHA+UHJpbnQgJFQkIGxpbmVzIGluIHRvdGFsLiBUaGUgJHQkLXRoIGxpbmUgb2Ygb3V0cHV0IHNob3VsZCBjb250YWluIHRoZSBzdHJpbmcgbnVtYmVyZWQgJHQkLjxcL3A+XHJcblxyXG48cD5JdCBpcyBndWFyYW50ZWVkIHRoYXQgdGhlIHN1bSBvZiB0aGUgbGVuZ3RocyBvZiBhbGwgJFQkIHN0cmluZ3MgZG9lcyBub3QgZXhjZWVkJm5ic3A7JDFcXCwwMDBcXCwwMDAkLjxcL3A+XHJcbiIsImhpbnQiOiIiLCJvcmlnaW5hbCI6IjAiLCJodG1sX3RpdGxlIjoiMCIsInByb2JsZW1fbGFuZ190Y29kZSI6IkVuZ2xpc2giLCJzYW1wbGVfZXhwbGFpbl8xIjoiPHA+RWFjaCBpbnRlZ2VyIGNhbiBiZSBkZWNyeXB0ZWQgYXMgZm9sbG93cy48XC9wPlxyXG5cclxuPHVsPlxyXG5cdDxsaT4kMjI1PThcXGNkb3QgMjdeMSs5XFxjZG90IDI3XjAkLCBzbyAkQT1bOCw5XSQuIFRoZXJlZm9yZSwgc3RyaW5nICQxJCBpcyA8c3BhbiBzdHlsZT1cImNvbG9yOiNlNzRjM2M7XCI+PGNvZGU+SEk8XC9jb2RlPjxcL3NwYW4+LjxcL2xpPlxyXG5cdDxsaT4kMjI3Mz0yXFxjZG90IDI4XjIrMjVcXGNkb3QgMjheMSs1XFxjZG90IDI4XjAkLCBzbyAkQT1bMiwyNSw1XSQuIFRoZXJlZm9yZSwgc3RyaW5nICQyJCBpcyA8c3BhbiBzdHlsZT1cImNvbG9yOiNlNzRjM2M7XCI+PGNvZGU+QllFPFwvY29kZT48XC9zcGFuPi48XC9saT5cclxuXHQ8bGk+JC0zMT0oLTEpXFxjZG90IDI5XjErKC0yKVxcY2RvdCAyOV4wJCwgc28gJEE9Wy0xLC0yXSQuIFRoZXJlZm9yZSwgc3RyaW5nICQzJCBpcyA8c3BhbiBzdHlsZT1cImNvbG9yOiNlNzRjM2M7XCI+PGNvZGU+SElCWUU8XC9jb2RlPjxcL3NwYW4+LjxcL2xpPlxyXG48XC91bD5cclxuIn1d