시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 128 MB222271715.888%

문제

FoodVictory의 물류 관리자인 영우는 2685번에서 용태에게 패배한 충격으로 그만 바코드 데이터베이스 일부를 날려버렸다. 이 사건이 알려지면 영우는 굉장히 곤란한 상황에 처하게 되므로 지푸라기라도 붙잡는 심정으로 인터넷에 바코드를 검색해 보았다.

UPC-A 바코드는 12자리의 십진수를 번갈아나며 나타나는 "밝은" 부분과 "어두운" 막대로 이루어진 15개의 패턴으로 표현한다. 이 패턴은 SLLLLLLMRRRRRRE와 같은 패턴이다. 여기서 S는 시작 패턴으로 101(1은 "어두운" 막대이고 0은 "밝은" 막대이다)이고, M은 중간 패턴으로 01010이다. 그리고 E는 끝 패턴으로 101이다. L은 왼쪽 패턴으로 각 자리가 10진수의 첫 6자리와 대응되고, R은 오른쪽 패턴으로 각 자리가 10진수의 뒤 6자리와 대응된다. 각 막대의 두께는 일정한 값(바코드의 가로 크기)의 배수이며, 바코드 위의 작은 표시는 패턴(S, L, M, R, E)의 시작을 표시한다. (단, 가장 마지막 표시는 바코드의 끝을 나타낸다) 바코드에는 총 3 + 5 + 3 + 12*7 = 95개의 코드(1,0)가 있어야 하고, 양 끝에 최소한 9개의 "밝은" 막대가 있어야 한다.

바코드의 십진수 마지막 자리는 체크섬 숫자이며, 다음과 같이 계산한다.

(digitN = 십진수의 N번째 자리, check_digit = 마지막 자리)

CheckSum = 3*(digit1 + digit3 + digit5 + digit7 + digit9 + digit11) + digit2 + digit4 + digit6 + digit8 + digit10;
Code = CheckSum % 10;
If (Code == 0) check_digit = 0;
else check_digit = (10 - Code);

바코드 스캐너는 카메라를 이용해 바코드의 좁은 이미지를 읽어내고, 이미지로부터 코드를 추론해낸다.

바코드가 뒤집혀진채로 읽힌다면 코드가 반대 방향으로 읽히게 된다.

안타깝게도, 색상 대비의 부족이나 반짝이는 물체의 반사때문에 이 이미지는 언제나 명확하지는 않다.

위의 그림을 보면, 확실히 밝은 막대인지 어두운 막대인지 제대로 알아볼 수가 없다. 하지만 이런 경우에도 대부분은 바코드를 인식할 수 있는데, 그 이유는 다음과 같다. 첫째, 128가지의 가능한 7-비트 숫자중 20개만이 사용된다. 둘째, 체크섬이 맞아 떨어지는 경우에만 옳은 바코드이다. 마지막으로, 여러 바코드가 매치된다고 해도, 그중 두 개 이상이 같은 목적으로 데이터베이스에 저장되어있을 가능성은 희박하다.

자, 영우의 위기를 막기 위해 손상된 바코드와 매칭될 수 있는 모든 옳은 바코드의 목록을 출력해주자(뒤집혀서 읽힌 경우도 고려할것!). 손상된 바코드는 0과 1, 그리고 ?(손상되어 알 수 없는 부분)으로 이루어진 95자의 코드로 표현된다

입력

첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 두 줄로 이루어져 있는데, 첫째 줄에는 바코드의 첫 50자가, 둘째 줄에는 바코드의 마지막 45자가 주어진다.

출력

각 테스트 케이스마다 첫째 줄에는 입력과 매치되는 올바른 바코드의 개수를 출력하는데, 만약 매치되는 개수가 8보다 크다면 9를 출력한다. 그 다음 줄부터는 매치되는 모든 바코드를 증가하는 순서로 한 줄에 한 개씩 출력한다. (단, 매치되는 바코드의 수가 9 이상이라면 첫 8개만 출력한다)

예제 입력 1

3
10100110110100111010000100110110001001000010101010
100011010110001101110110100011000101011000101
1010001101010001100010????????????1101011000101010
101000010010001101100100001011100101101100101
1010001101010001100010????????????1101011000101010
101000010010001??????????01011100101101100101

예제 출력 1

1
049705682302
2
049705682302
049835682302
9
049005681302
049005682002
049035688302
049035689002
049105684302
049105685002
049135681302
049135682002
W3sicHJvYmxlbV9pZCI6IjI2OTEiLCJwcm9ibGVtX2xhbmciOiIwIiwidGl0bGUiOiJVUEMgXHViYzE0XHVjZjU0XHViNGRjIFx1Yzc3ZFx1YWUzMCIsImRlc2NyaXB0aW9uIjoiPHA+PGltZyBhbHQ9XCJcIiBzcmM9XCJcL3VwbG9hZFwvaW1hZ2VzXC9iYXIxLnBuZ1wiIHN0eWxlPVwiZmxvYXQ6cmlnaHQ7IGhlaWdodDoxMjNweDsgd2lkdGg6MjM3cHhcIiBcLz5Gb29kVmljdG9yeVx1Yzc1OCBcdWJiM2NcdWI5NTggXHVhZDAwXHViOWFjXHVjNzkwXHVjNzc4IFx1YzYwMVx1YzZiMFx1YjI5NCA8YSBocmVmPVwiaHR0cHM6XC9cL3d3dy5hY21pY3BjLm5ldFwvcHJvYmxlbVwvMjY4NVwiPjI2ODU8XC9hPlx1YmM4OFx1YzVkMFx1YzExYyBcdWM2YTlcdWQwZGNcdWM1ZDBcdWFjOGMgXHVkMzI4XHViYzMwXHVkNTVjIFx1Y2RhOVx1YWNhOVx1YzczY1x1Yjg1YyBcdWFkZjhcdWI5Y2MgXHViYzE0XHVjZjU0XHViNGRjIFx1YjM3MFx1Yzc3NFx1ZDEzMFx1YmNhMFx1Yzc3NFx1YzJhNCBcdWM3N2NcdWJkODBcdWI5N2MgXHViMGEwXHViODI0XHViYzg0XHViODM4XHViMmU0LiBcdWM3NzQgXHVjMGFjXHVhYzc0XHVjNzc0IFx1YzU0Y1x1YjgyNFx1YzljMFx1YmE3NCBcdWM2MDFcdWM2YjBcdWIyOTQgXHVhZDQ5XHVjN2E1XHVkNzg4IFx1YWNlNFx1Yjc4MFx1ZDU1YyBcdWMwYzFcdWQ2NjlcdWM1ZDAgXHVjYzk4XHVkNTU4XHVhYzhjIFx1YjQxOFx1YmJjMFx1Yjg1YyBcdWM5YzBcdWQ0NzhcdWI3N2NcdWFlMzBcdWI3N2NcdWIzYzQgXHViZDk5XHVjN2ExXHViMjk0IFx1YzJlY1x1YzgxNVx1YzczY1x1Yjg1YyBcdWM3NzhcdWQxMzBcdWIxMzdcdWM1ZDAgXHViYzE0XHVjZjU0XHViNGRjXHViOTdjIFx1YWM4MFx1YzBjOVx1ZDU3NCBcdWJjZjRcdWM1NThcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlVQQy1BIFx1YmMxNFx1Y2Y1NFx1YjRkY1x1YjI5NCAxMlx1Yzc5MFx1YjlhY1x1Yzc1OCBcdWMyZWRcdWM5YzRcdWMyMThcdWI5N2MgXHViYzg4XHVhYzA4XHVjNTQ0XHViMDk4XHViYTcwIFx1YjA5OFx1ZDBjMFx1YjA5OFx1YjI5NCAmcXVvdDtcdWJjMWRcdWM3NDAmcXVvdDsgXHViZDgwXHViZDg0XHVhY2ZjICZxdW90O1x1YzViNFx1YjQ1MFx1YzZiNCZxdW90OyBcdWI5YzlcdWIzMDBcdWI4NWMgXHVjNzc0XHViOGU4XHVjNWI0XHVjOWM0IDE1XHVhYzFjXHVjNzU4IFx1ZDMyOFx1ZDEzNFx1YzczY1x1Yjg1YyBcdWQ0NWNcdWQ2MDRcdWQ1NWNcdWIyZTQuIFx1Yzc3NCBcdWQzMjhcdWQxMzRcdWM3NDAgU0xMTExMTE1SUlJSUlJFXHVjNjQwIFx1YWMxOVx1Yzc0MCBcdWQzMjhcdWQxMzRcdWM3NzRcdWIyZTQuIFx1YzVlY1x1YWUzMFx1YzExYyBTXHViMjk0IFx1YzJkY1x1Yzc5MSBcdWQzMjhcdWQxMzRcdWM3M2NcdWI4NWMgMTAxKDFcdWM3NDAgJnF1b3Q7XHVjNWI0XHViNDUwXHVjNmI0JnF1b3Q7IFx1YjljOVx1YjMwMFx1Yzc3NFx1YWNlMCAwXHVjNzQwICZxdW90O1x1YmMxZFx1Yzc0MCZxdW90OyBcdWI5YzlcdWIzMDBcdWM3NzRcdWIyZTQpXHVjNzc0XHVhY2UwLCBNXHVjNzQwIFx1YzkxMVx1YWMwNCBcdWQzMjhcdWQxMzRcdWM3M2NcdWI4NWMgMDEwMTBcdWM3NzRcdWIyZTQuIFx1YWRmOFx1YjlhY1x1YWNlMCBFXHViMjk0IFx1YjA1ZCBcdWQzMjhcdWQxMzRcdWM3M2NcdWI4NWMgMTAxXHVjNzc0XHViMmU0LiBMXHVjNzQwIFx1YzY3Y1x1Y2FiZCBcdWQzMjhcdWQxMzRcdWM3M2NcdWI4NWMgXHVhYzAxIFx1Yzc5MFx1YjlhY1x1YWMwMCAxMFx1YzljNFx1YzIxOFx1Yzc1OCBcdWNjYWIgNlx1Yzc5MFx1YjlhY1x1YzY0MCBcdWIzMDBcdWM3NTFcdWI0MThcdWFjZTAsIFJcdWM3NDAgXHVjNjI0XHViOTc4XHVjYWJkIFx1ZDMyOFx1ZDEzNFx1YzczY1x1Yjg1YyBcdWFjMDEgXHVjNzkwXHViOWFjXHVhYzAwIDEwXHVjOWM0XHVjMjE4XHVjNzU4IFx1YjRhNCA2XHVjNzkwXHViOWFjXHVjNjQwIFx1YjMwMFx1Yzc1MVx1YjQxY1x1YjJlNC4gXHVhYzAxIFx1YjljOVx1YjMwMFx1Yzc1OCBcdWI0NTBcdWFlZDhcdWIyOTQgXHVjNzdjXHVjODE1XHVkNTVjIFx1YWMxMihcdWJjMTRcdWNmNTRcdWI0ZGNcdWM3NTggXHVhYzAwXHViODVjIFx1ZDA2Y1x1YWUzMClcdWM3NTggXHViYzMwXHVjMjE4XHVjNzc0XHViYTcwLCBcdWJjMTRcdWNmNTRcdWI0ZGMgXHVjNzA0XHVjNzU4IFx1Yzc5MVx1Yzc0MCBcdWQ0NWNcdWMyZGNcdWIyOTQgXHVkMzI4XHVkMTM0KFMsIEwsIE0sIFIsIEUpXHVjNzU4IFx1YzJkY1x1Yzc5MVx1Yzc0NCBcdWQ0NWNcdWMyZGNcdWQ1NWNcdWIyZTQuIChcdWIyZTgsIFx1YWMwMFx1YzdhNSBcdWI5YzhcdWM5YzBcdWI5YzkgXHVkNDVjXHVjMmRjXHViMjk0IFx1YmMxNFx1Y2Y1NFx1YjRkY1x1Yzc1OCBcdWIwNWRcdWM3NDQgXHViMDk4XHVkMGMwXHViMGI4XHViMmU0KSBcdWJjMTRcdWNmNTRcdWI0ZGNcdWM1ZDBcdWIyOTQgXHVjZDFkIDMgKyA1ICsgMyArIDEyKjcgPSA5NVx1YWMxY1x1Yzc1OCBcdWNmNTRcdWI0ZGMoMSwwKVx1YWMwMCBcdWM3ODhcdWM1YjRcdWM1N2MgXHVkNTU4XHVhY2UwLCBcdWM1OTEgXHViMDVkXHVjNWQwIFx1Y2Q1Y1x1YzE4Y1x1ZDU1YyA5XHVhYzFjXHVjNzU4ICZxdW90O1x1YmMxZFx1Yzc0MCZxdW90OyBcdWI5YzlcdWIzMDBcdWFjMDAgXHVjNzg4XHVjNWI0XHVjNTdjIFx1ZDU1Y1x1YjJlNC48XC9wPlxyXG5cclxuPHA+XHViYzE0XHVjZjU0XHViNGRjXHVjNzU4IFx1YzJlZFx1YzljNFx1YzIxOCBcdWI5YzhcdWM5YzBcdWI5YzkgXHVjNzkwXHViOWFjXHViMjk0IFx1Y2NiNFx1ZDA2Y1x1YzEyYyBcdWMyMmJcdWM3OTBcdWM3NzRcdWJhNzAsIFx1YjJlNFx1Yzc0Y1x1YWNmYyBcdWFjMTlcdWM3NzQgXHVhY2M0XHVjMGIwXHVkNTVjXHViMmU0LjxcL3A+XHJcblxyXG48cD4oZGlnaXROID0gXHVjMmVkXHVjOWM0XHVjMjE4XHVjNzU4IE5cdWJjODhcdWM5ZjggXHVjNzkwXHViOWFjLCBjaGVja19kaWdpdCA9IFx1YjljOFx1YzljMFx1YjljOSBcdWM3OTBcdWI5YWMpPFwvcD5cclxuXHJcbjxwcmU+XHJcbkNoZWNrU3VtID0gMyooZGlnaXQxICsgZGlnaXQzICsgZGlnaXQ1ICsgZGlnaXQ3ICsgZGlnaXQ5ICsgZGlnaXQxMSkgKyBkaWdpdDIgKyBkaWdpdDQgKyBkaWdpdDYgKyBkaWdpdDggKyBkaWdpdDEwO1xyXG5Db2RlID0gQ2hlY2tTdW0gJSAxMDtcclxuSWYgKENvZGUgPT0gMCkgY2hlY2tfZGlnaXQgPSAwO1xyXG5lbHNlIGNoZWNrX2RpZ2l0ID0gKDEwIC0gQ29kZSk7PFwvcHJlPlxyXG5cclxuPHA+PGltZyBhbHQ9XCJcIiBzcmM9XCJcL3VwbG9hZFwvaW1hZ2VzXC9iYXIyLnBuZ1wiIHN0eWxlPVwiZmxvYXQ6cmlnaHQ7IGhlaWdodDoyNjVweDsgd2lkdGg6MjE0cHhcIiBcLz48XC9wPlxyXG5cclxuPHA+XHViYzE0XHVjZjU0XHViNGRjIFx1YzJhNFx1Y2U5MFx1YjEwOFx1YjI5NCBcdWNlNzRcdWJhNTRcdWI3N2NcdWI5N2MgXHVjNzc0XHVjNmE5XHVkNTc0IFx1YmMxNFx1Y2Y1NFx1YjRkY1x1Yzc1OCBcdWM4ODFcdWM3NDAgXHVjNzc0XHViYmY4XHVjOWMwXHViOTdjIFx1Yzc3ZFx1YzViNFx1YjBiNFx1YWNlMCwgXHVjNzc0XHViYmY4XHVjOWMwXHViODVjXHViZDgwXHVkMTMwIFx1Y2Y1NFx1YjRkY1x1Yjk3YyBcdWNkOTRcdWI4NjBcdWQ1NzRcdWIwYjhcdWIyZTQuPFwvcD5cclxuXHJcbjxwPjxpbWcgYWx0PVwiXCIgc3JjPVwiXC91cGxvYWRcL2ltYWdlc1wvYmFyMy5wbmdcIiBzdHlsZT1cImhlaWdodDo1OHB4OyB3aWR0aDo1OTNweFwiIFwvPjxcL3A+XHJcblxyXG48cD5cdWJjMTRcdWNmNTRcdWI0ZGNcdWFjMDAgXHViNGE0XHVjOWQxXHVkNjAwXHVjOWM0XHVjYzQ0XHViODVjIFx1Yzc3ZFx1ZDc4Y1x1YjJlNFx1YmE3NCBcdWNmNTRcdWI0ZGNcdWFjMDAgXHViYzE4XHViMzAwIFx1YmMyOVx1ZDVhNVx1YzczY1x1Yjg1YyBcdWM3N2RcdWQ3ODhcdWFjOGMgXHViNDFjXHViMmU0LjxcL3A+XHJcblxyXG48cD48aW1nIGFsdD1cIlwiIHNyYz1cIlwvdXBsb2FkXC9pbWFnZXNcL2JhcjQucG5nXCIgc3R5bGU9XCJoZWlnaHQ6NTVweDsgd2lkdGg6NTkwcHhcIiBcLz48XC9wPlxyXG5cclxuPHA+XHVjNTQ4XHVkMGMwXHVhZTVkXHVhYzhjXHViM2M0LCBcdWMwYzlcdWMwYzEgXHViMzAwXHViZTQ0XHVjNzU4IFx1YmQ4MFx1Yzg3MVx1Yzc3NFx1YjA5OCBcdWJjMThcdWM5ZGRcdWM3NzRcdWIyOTQgXHViYjNjXHVjY2I0XHVjNzU4IFx1YmMxOFx1YzBhY1x1YjU0Y1x1YmIzOFx1YzVkMCBcdWM3NzQgXHVjNzc0XHViYmY4XHVjOWMwXHViMjk0IFx1YzViOFx1YzgxY1x1YjA5OCBcdWJhODVcdWQ2NTVcdWQ1NThcdWM5YzBcdWIyOTQgXHVjNTRhXHViMmU0LjxcL3A+XHJcblxyXG48cD48aW1nIGFsdD1cIlwiIHNyYz1cIlwvdXBsb2FkXC9pbWFnZXNcL2JhcjUucG5nXCIgc3R5bGU9XCJoZWlnaHQ6NDhweDsgd2lkdGg6NjAycHhcIiBcLz48XC9wPlxyXG5cclxuPHA+XHVjNzA0XHVjNzU4IFx1YWRmOFx1YjliY1x1Yzc0NCBcdWJjZjRcdWJhNzQsIFx1ZDY1NVx1YzJlNFx1ZDc4OCBcdWJjMWRcdWM3NDAgXHViOWM5XHViMzAwXHVjNzc4XHVjOWMwIFx1YzViNFx1YjQ1MFx1YzZiNCBcdWI5YzlcdWIzMDBcdWM3NzhcdWM5YzAgXHVjODFjXHViMzAwXHViODVjIFx1YzU0Y1x1YzU0NFx1YmNmYyBcdWMyMThcdWFjMDAgXHVjNWM2XHViMmU0LiBcdWQ1NThcdWM5YzBcdWI5Y2MgXHVjNzc0XHViN2YwIFx1YWNiZFx1YzZiMFx1YzVkMFx1YjNjNCBcdWIzMDBcdWJkODBcdWJkODRcdWM3NDAgXHViYzE0XHVjZjU0XHViNGRjXHViOTdjIFx1Yzc3OFx1YzJkZFx1ZDU2MCBcdWMyMTggXHVjNzg4XHViMjk0XHViMzcwLCBcdWFkZjggXHVjNzc0XHVjNzIwXHViMjk0IFx1YjJlNFx1Yzc0Y1x1YWNmYyBcdWFjMTlcdWIyZTQuIFx1Y2NhYlx1YzlmOCwgMTI4XHVhYzAwXHVjOWMwXHVjNzU4IFx1YWMwMFx1YjJhNVx1ZDU1YyA3LVx1YmU0NFx1ZDJiOCBcdWMyMmJcdWM3OTBcdWM5MTEgMjBcdWFjMWNcdWI5Y2NcdWM3NzQgXHVjMGFjXHVjNmE5XHViNDFjXHViMmU0LiBcdWI0NThcdWM5ZjgsIFx1Y2NiNFx1ZDA2Y1x1YzEyY1x1Yzc3NCBcdWI5ZGVcdWM1NDQgXHViNWE4XHVjNWI0XHVjOWMwXHViMjk0IFx1YWNiZFx1YzZiMFx1YzVkMFx1YjljYyBcdWM2MzNcdWM3NDAgXHViYzE0XHVjZjU0XHViNGRjXHVjNzc0XHViMmU0LiBcdWI5YzhcdWM5YzBcdWI5YzlcdWM3M2NcdWI4NWMsIFx1YzVlY1x1YjdlYyBcdWJjMTRcdWNmNTRcdWI0ZGNcdWFjMDAgXHViOWU0XHVjZTU4XHViNDFjXHViMmU0XHVhY2UwIFx1ZDU3NFx1YjNjNCwgXHVhZGY4XHVjOTExIFx1YjQ1MCBcdWFjMWMgXHVjNzc0XHVjMGMxXHVjNzc0IFx1YWMxOVx1Yzc0MCBcdWJhYTlcdWM4MDFcdWM3M2NcdWI4NWMgXHViMzcwXHVjNzc0XHVkMTMwXHViY2EwXHVjNzc0XHVjMmE0XHVjNWQwIFx1YzgwMFx1YzdhNVx1YjQxOFx1YzViNFx1Yzc4OFx1Yzc0NCBcdWFjMDBcdWIyYTVcdWMxMzFcdWM3NDAgXHVkNzZjXHViYzE1XHVkNTU4XHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWM3OTAsIFx1YzYwMVx1YzZiMFx1Yzc1OCBcdWM3MDRcdWFlMzBcdWI5N2MgXHViOWM5XHVhZTMwIFx1YzcwNFx1ZDU3NCBcdWMxOTBcdWMwYzFcdWI0MWMgXHViYzE0XHVjZjU0XHViNGRjXHVjNjQwIFx1YjllNFx1Y2U2ZFx1YjQyMCBcdWMyMTggXHVjNzg4XHViMjk0IFx1YmFhOFx1YjRlMCBcdWM2MzNcdWM3NDAgXHViYzE0XHVjZjU0XHViNGRjXHVjNzU4IFx1YmFhOVx1Yjg1ZFx1Yzc0NCBcdWNkOWNcdWI4MjVcdWQ1NzRcdWM4ZmNcdWM3OTAoXHViNGE0XHVjOWQxXHVkNjAwXHVjMTFjIFx1Yzc3ZFx1ZDc4YyBcdWFjYmRcdWM2YjBcdWIzYzQgXHVhY2UwXHViODI0XHVkNTYwXHVhYzgzISkuIFx1YzE5MFx1YzBjMVx1YjQxYyBcdWJjMTRcdWNmNTRcdWI0ZGNcdWIyOTQgMFx1YWNmYyAxLCBcdWFkZjhcdWI5YWNcdWFjZTAgPyhcdWMxOTBcdWMwYzFcdWI0MThcdWM1YjQgXHVjNTRjIFx1YzIxOCBcdWM1YzZcdWIyOTQgXHViZDgwXHViZDg0KVx1YzczY1x1Yjg1YyBcdWM3NzRcdWI4ZThcdWM1YjRcdWM5YzQgOTVcdWM3OTBcdWM3NTggXHVjZjU0XHViNGRjXHViODVjIFx1ZDQ1Y1x1ZDYwNFx1YjQxY1x1YjJlNDxcL3A+XHJcbiIsImlucHV0IjoiPHA+XHVjY2FiXHVjOWY4IFx1YzkwNFx1YzVkMCBcdWQxNGNcdWMyYTRcdWQyYjggXHVjZjAwXHVjNzc0XHVjMmE0XHVjNzU4IFx1YWMxY1x1YzIxOCBUXHVhYzAwIFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNC4gXHVhYzAxIFx1ZDE0Y1x1YzJhNFx1ZDJiOCBcdWNmMDBcdWM3NzRcdWMyYTRcdWIyOTQgXHViNDUwIFx1YzkwNFx1Yjg1YyBcdWM3NzRcdWI4ZThcdWM1YjRcdWM4MzggXHVjNzg4XHViMjk0XHViMzcwLCBcdWNjYWJcdWM5ZjggXHVjOTA0XHVjNWQwXHViMjk0IFx1YmMxNFx1Y2Y1NFx1YjRkY1x1Yzc1OCBcdWNjYWIgNTBcdWM3OTBcdWFjMDAsIFx1YjQ1OFx1YzlmOCBcdWM5MDRcdWM1ZDBcdWIyOTQgXHViYzE0XHVjZjU0XHViNGRjXHVjNzU4IFx1YjljOFx1YzljMFx1YjljOSA0NVx1Yzc5MFx1YWMwMCBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuPFwvcD5cclxuIiwib3V0cHV0IjoiPHA+XHVhYzAxIFx1ZDE0Y1x1YzJhNFx1ZDJiOCBcdWNmMDBcdWM3NzRcdWMyYTRcdWI5YzhcdWIyZTQgXHVjY2FiXHVjOWY4IFx1YzkwNFx1YzVkMFx1YjI5NCBcdWM3ODVcdWI4MjVcdWFjZmMgXHViOWU0XHVjZTU4XHViNDE4XHViMjk0IFx1YzYyY1x1YmMxNFx1Yjk3OCBcdWJjMTRcdWNmNTRcdWI0ZGNcdWM3NTggXHVhYzFjXHVjMjE4XHViOTdjIFx1Y2Q5Y1x1YjgyNVx1ZDU1OFx1YjI5NFx1YjM3MCwgXHViOWNjXHVjNTdkIFx1YjllNFx1Y2U1OFx1YjQxOFx1YjI5NCBcdWFjMWNcdWMyMThcdWFjMDAgOFx1YmNmNFx1YjJlNCBcdWQwNmNcdWIyZTRcdWJhNzQgOVx1Yjk3YyBcdWNkOWNcdWI4MjVcdWQ1NWNcdWIyZTQuIFx1YWRmOCBcdWIyZTRcdWM3NGMgXHVjOTA0XHViZDgwXHVkMTMwXHViMjk0IFx1YjllNFx1Y2U1OFx1YjQxOFx1YjI5NCBcdWJhYThcdWI0ZTAgXHViYzE0XHVjZjU0XHViNGRjXHViOTdjIFx1Yzk5ZFx1YWMwMFx1ZDU1OFx1YjI5NCBcdWMyMWNcdWMxMWNcdWI4NWMgXHVkNTVjIFx1YzkwNFx1YzVkMCBcdWQ1NWMgXHVhYzFjXHVjNTI5IFx1Y2Q5Y1x1YjgyNVx1ZDU1Y1x1YjJlNC4gKFx1YjJlOCwgXHViOWU0XHVjZTU4XHViNDE4XHViMjk0IFx1YmMxNFx1Y2Y1NFx1YjRkY1x1Yzc1OCBcdWMyMThcdWFjMDAgOSBcdWM3NzRcdWMwYzFcdWM3NzRcdWI3N2NcdWJhNzQgXHVjY2FiIDhcdWFjMWNcdWI5Y2MgXHVjZDljXHViODI1XHVkNTVjXHViMmU0KTxcL3A+XHJcbiIsImhpbnQiOiIiLCJvcmlnaW5hbCI6IjAiLCJodG1sX3RpdGxlIjoiMCIsInByb2JsZW1fbGFuZ190Y29kZSI6IktvcmVhbiJ9LHsicHJvYmxlbV9pZCI6IjI2OTEiLCJwcm9ibGVtX2xhbmciOiIxIiwidGl0bGUiOiJTY2FubmluZyBVUEMgQmFyY29kZXMiLCJkZXNjcmlwdGlvbiI6IjxwPjxpbWcgYWx0PVwiXCIgc3JjPVwiXC91cGxvYWRcL2ltYWdlc1wvYmFyMS5wbmdcIiBzdHlsZT1cImZsb2F0OnJpZ2h0OyBoZWlnaHQ6MTIzcHg7IHdpZHRoOjIzN3B4XCIgXC8+VGhlIFVQQy1BIGJhciBjb2RlIGVuY29kZXMgMTIgZGVjaW1hbCBkaWdpdHMgaW4gYWx0ZXJuYXRpbmcgJmxkcXVvO2RhcmsmcmRxdW87IGFuZCAmbGRxdW87bGlnaHQmcmRxdW87IGJhcnMgYXMgMTUgcGF0dGVybnMgU0xMTExMTE1SUlJSUlJFIHdoZXJlIFMgaXMgdGhlIHN0YXJ0IHBhdHRlcm4gMTAxICgxIGluZGljYXRlcyAmbGRxdW87ZGFyayZyZHF1bzsgYW5kIDAgaW5kaWNhdGVzICZsZHF1bztsaWdodCZyZHF1bzspLCBNIGlzIHRoZSBtaWRkbGUgcGF0dGVybiAwMTAxMCBhbmQgRSBpcyB0aGUgZW5kIHBhdHRlcm4gMTAxLiBFYWNoIEwgaXMgYSBsZWZ0IHBhdHRlcm4gY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlIGZpcnN0IDYgZGlnaXRzIGFuZCBlYWNoIFIgaXMgYSByaWdodCBwYXR0ZXJuIGNvcnJlc3BvbmRpbmcgdG8gb25lIG9mIHRoZSBsYXN0IDYgZGlnaXRzLiBUaGUgd2lkdGggb2YgZWFjaCBiYXIgaXMgYSBtdWx0aXBsZSBvZiBhIGZpeGVkIHZhbHVlICh0aGUgWCBkaW1lbnNpb24pLiBBZ2FpbiBhIDEgaW5kaWNhdGVzIGEgJmxkcXVvO2RhcmsmcmRxdW87IGJhbmQgYW5kIDAgaW5kaWNhdGVzIGEgJmxkcXVvO2xpZ2h0JnJkcXVvOyBiYW5kLiBUaGUgdGljayBtYXJrcyBhYm92ZSB0aGUgYmFyIGNvZGUgaWxsdXN0cmF0aW9uIGluZGljYXRlIHRoZSBzdGFydCBvZiBlYWNoIGNvZGUuIFRoZXJlIGFyZSAzICsgNSArIDMgKyAxMio3ID0gOTUgYmFuZHMgdG90YWwuIEluIGFkZGl0aW9uIHRoZXJlIG11c3QgYmUgYXQgbGVhc3QgOSAmbGRxdW87bGlnaHQmcmRxdW87IGJhbmRzIGF0IGVpdGhlciBlbmQgb2YgdGhlIGJhciBjb2RlLjxcL3A+XHJcblxyXG48cD5UaGUgbGFzdCBkZWNpbWFsIGRpZ2l0IGluIHRoZSBjb2RlIGlzIGEgY2hlY2sgc3VtIGRpZ2l0IHdoaWNoIGlzIGNvbXB1dGVkIGFzIGZvbGxvd3M6PFwvcD5cclxuXHJcbjxwcmU+XHJcbkNoZWNrU3VtID0gMyooZGlnaXQxICsgZGlnaXQzICsgZGlnaXQ1ICsgZGlnaXQ3ICsgZGlnaXQ5ICsgZGlnaXQxMSkgKyBkaWdpdDIgKyBkaWdpdDQgKyBkaWdpdDYgKyBkaWdpdDggKyBkaWdpdDEwO1xyXG5Db2RlID0gQ2hlY2tTdW0gJSAxMDtcclxuSWYgKENvZGUgPT0gMCkgY2hlY2tfZGlnaXQgPSAwO1xyXG5lbHNlIGNoZWNrX2RpZ2l0ID0gKDEwIC0gQ29kZSk7PFwvcHJlPlxyXG5cclxuPHA+PGltZyBhbHQ9XCJcIiBzcmM9XCJcL3VwbG9hZFwvaW1hZ2VzXC9iYXIyLnBuZ1wiIHN0eWxlPVwiZmxvYXQ6cmlnaHQ7IGhlaWdodDoyNjVweDsgd2lkdGg6MjE0cHhcIiBcLz5BIGJhciBjb2RlIHNjYW5uZXIgY291bGQgdXNlIGEgY2FtZXJhIHRvIHRha2UgYSBuYXJyb3cgaW1hZ2UgYWNyb3NzIHRoZSBiYXIgY29kZSBhbmQgZGVkdWNlIHRoZSBvblwvb2ZmIHBhdHRlcm4gb2YgYmFuZHMgYXMgYmVsb3c6PFwvcD5cclxuXHJcbjxwPjxpbWcgYWx0PVwiXCIgc3JjPVwiXC91cGxvYWRcL2ltYWdlc1wvYmFyMy5wbmdcIiBzdHlsZT1cImhlaWdodDo1OHB4OyB3aWR0aDo1OTNweFwiIFwvPjxcL3A+XHJcblxyXG48cD5pZiB0aGUgY29kZSB3YXMgc2Nhbm5lZCByaWdodCBzaWRlIHVwIG9yIHRoZSBmb2xsb3dpbmcgaWYgaXQgd2FzIHNjYW5uZWQgdXBzaWRlIGRvd246PFwvcD5cclxuXHJcbjxwPjxpbWcgYWx0PVwiXCIgc3JjPVwiXC91cGxvYWRcL2ltYWdlc1wvYmFyNC5wbmdcIiBzdHlsZT1cImhlaWdodDo1NXB4OyB3aWR0aDo1OTBweFwiIFwvPjxcL3A+XHJcblxyXG48cD5BZ2FpbiwgdGhlIHRpY2sgbWFya3MgYWJvdmUgZWFjaCBpbWFnZSBpbmRpY2F0ZSB0aGUgc3RhcnQgb2YgZWFjaCBjb2RlLjxcL3A+XHJcblxyXG48cD5VbmZvcnR1bmF0ZWx5LCB0aGUgaW1hZ2VzIGFyZSBub3QgYWx3YXlzIHRoaXMgY2xlYXIgZHVlIHRvIGxhY2sgb2YgY29udHJhc3Qgb3IgcmVmbGVjdGlvbnMgb2ZmIHNoaW55IG1hdGVyaWFsLCBhcyBzaG93biBoZXJlOjxcL3A+XHJcblxyXG48cD48aW1nIGFsdD1cIlwiIHNyYz1cIlwvdXBsb2FkXC9pbWFnZXNcL2JhcjUucG5nXCIgc3R5bGU9XCJoZWlnaHQ6NDhweDsgd2lkdGg6NjAycHhcIiBcLz48XC9wPlxyXG5cclxuPHA+V2hlbiBzY2FubmluZyB0aGUgaW1hZ2UsIGl0IGlzIG5vdCBhbHdheXMgY2xlYXIgd2hldGhlciBhIHBhcnRpY3VsYXIgYmFuZCBpcyBkYXJrIG9yIGxpZ2h0LiBJdCBpcyBvZnRlbiBzdGlsbCBwb3NzaWJsZSB0byBkZXRlcm1pbmUgdGhlIGJhciBjb2RlIGV2ZW4gaWYgd2UgZG8gbm90IGtub3cgZXhhY3RseSB3aGV0aGVyIGEgcGFydGljdWxhciBiYW5kIGlzICZsZHF1bztkYXJrJnJkcXVvOyBvciAmbGRxdW87bGlnaHQmcmRxdW87LiBGaXJzdCwgb25seSAyMCBvZiAxMjggcG9zc2libGUgNy1iaXQgZGlnaXQgY29kZXMgYXJlIHVzZWQuIFNlY29uZCwgb25seSBjb2RlcyB3aXRoIGEgY29ycmVjdCBjaGVjayBkaWdpdCBhcmUgdmFsaWQuIEZpbmFsbHksIGV2ZW4gaWYgc2V2ZXJhbCBjb2RlcyBtYXRjaCwgaXQgaXMgdW5saWtlbHkgdGhhdCBtb3JlIHRoYW4gb25lIHdpbGwgYmUgaW4gdGhlIGRhdGFiYXNlIGZvciBhIHBhcnRpY3VsYXIgYXBwbGljYXRpb24uIEZvciB0aGlzIHByb2JsZW0gd2Ugd2lsbCB1c2UgYSAmbHNxdW87PyZyc3F1bzsgdG8gaW5kaWNhdGUgdW5jZXJ0YWludHkgaW4gdGhlIHZhbHVlIG9mIGEgcGFydGljdWxhciBiYW5kLiBUaGUgc3RhcnQgKFMpLCBtaWRkbGUgKE0pIGFuZCBlbmQgKEUpIGNvZGVzIG11c3QgbWF0Y2ggaW4gb3JkZXIgZm9yIGEgbWF0Y2ggdG8gYmUgY29uc2lkZXJlZCB2YWxpZC48XC9wPlxyXG5cclxuPHA+V3JpdGUgYSBwcm9ncmFtIHdoaWNoIHRha2VzIGFzIGlucHV0IGEgc3RyaW5nIG9mIDk1IGNoYXJhY3RlcnMsICZsc3F1bzswJnJzcXVvOywgJmxzcXVvOzEmcnNxdW87LCBvciAmbHNxdW87PyZyc3F1bzsgYW5kIG91dHB1dHMgYWxsIHZhbGlkIFVQQy1BIGRpZ2l0IHN0cmluZ3Mgd2hpY2ggY291bGQgc2NhbiB0byB0aGF0IHNlcXVlbmNlIG9mIGJhbmQgdmFsdWVzIGluIGVpdGhlciBkaXJlY3Rpb24uPFwvcD5cclxuIiwiaW5wdXQiOiI8cD5UaGUgZmlyc3QgbGluZSBvZiBpbnB1dCBjb250YWlucyBhIHNpbmdsZSBpbnRlZ2VyIFAsICgxICZsZTsgUCAmbGU7IDEwMDApLCB3aGljaCBpcyB0aGUgbnVtYmVyIG9mIGRhdGEgc2V0cyB0aGF0IGZvbGxvdy4gRWFjaCBkYXRhIHNldCBjb25zaXN0cyBvZiAzIGxpbmVzLiBUaGUgZmlyc3QgbGluZSBjb250YWlucyBhIHNpbmdsZSBkZWNpbWFsIGludGVnZXIgd2hpY2ggaXMgdGhlIHByb2JsZW0gbnVtYmVyIChzdGFydGluZyBhdCAxKS4gVGhlIHNlY29uZCBsaW5lIGNvbnRhaW5zIHRoZSBmaXJzdCA1MCBjaGFyYWN0ZXJzIG9mIHRoZSBpbnB1dCBzdHJpbmcuIFRoZSB0aGlyZCBsaW5lIGNvbnRhaW5zIHRoZSBmaW5hbCA0NSBjaGFyYWN0ZXJzIG9mIHRoZSBpbnB1dCBzdHJpbmcuIEFzIG5vdGVkIGFib3ZlLCB0aGUgaW5wdXQgc3RyaW5nIGNvbnNpc3RzIG9mIG9ubHkgdGhlIGNoYXJhY3RlcnMgJmxzcXVvOzAmcnNxdW87LCAmbHNxdW87MSZyc3F1bzssIG9yICZsc3F1bzs/JnJzcXVvOy48XC9wPlxyXG4iLCJvdXRwdXQiOiI8cD5Gb3IgZWFjaCBkYXRhIHNldCB0aGVyZSBhcmUgdmFyeWluZyBudW1iZXIgb2YgbGluZXMgb2Ygb3V0cHV0LiBJZiBubyBVUEMgY29kZXMgbWF0Y2ggdGhlIGlucHV0IHN0cmluZywgdGhlbiB0aGUgb25seSBsaW5lIG9mIG91dHB1dCBzaG91bGQgY29udGFpbiB0aGUgcHJvYmxlbSBudW1iZXIgKHN0YXJ0aW5nIGF0IDEpLCBhIHNwYWNlLCB0aGVuIHRoZSBkaWdpdCAwLiBJZiBtb3JlIHRoYW4gOCBjb2RlcyBtYXRjaCB0aGUgaW5wdXQgc3RyaW5nLCB0aGUgZmlyc3QgbGluZSBvZiBvdXRwdXQgY29udGFpbnMgdGhlIHByb2JsZW0gbnVtYmVyLCBhIHNwYWNlLCB0aGVuIHRoZSBkaWdpdCA5LiBUaGlzIGxpbmUgaXMgZm9sbG93ZWQgYnkgdGhlIGZpcnN0IDggY29kZXMgd2hpY2ggbWF0Y2gsIGluIGFzY2VuZGluZyBudW1lcmljIG9yZGVyLCBvbmUgcGVyIGxpbmUuIE90aGVyd2lzZSwgdGhlIGZpcnN0IGxpbmUgb2Ygb3V0cHV0IGNvbnRhaW5zIHRoZSBwcm9ibGVtIG51bWJlciwgYSBzcGFjZSwgdGhlbiBhIHNpbmdsZSBkZWNpbWFsIGRpZ2l0ICgxLTgpIHdoaWNoIGlzIHRoZSBudW1iZXIgb2YgbWF0Y2hpbmcgY29kZXMuIFRoaXMgbGluZSBpcyBmb2xsb3dlZCBieSB0aGUgbWF0Y2hpbmcgY29kZXMsIGluIGFzY2VuZGluZyBudW1lcmljIG9yZGVyLCBvbmUgcGVyIGxpbmUuPFwvcD5cclxuIiwiaGludCI6IiIsIm9yaWdpbmFsIjoiMSIsImh0bWxfdGl0bGUiOiIwIiwicHJvYmxlbV9sYW5nX3Rjb2RlIjoiRW5nbGlzaCJ9XQ==