시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
2 초 128 MB 108 15 11 13.253%

문제

흰색과 검은색으로 이루어진 이미지는 쿼드트리를 이용하여 표현할 수 있다. 쿼드트리의 루트는 이미지의 전체를 나타낸다. 만약 전체 이미지가 한 색깔로 이루어져 있으면, 그 색깔에 해당하는 정점을 루트로 한다. 그 외의 경우에는 그림을 넷으로 나누고, 각각의 나눠진 그림을 루트의 네 자식 정점으로 표현하면 된다. 이때 첫 번째 자식이 왼쪽 위의 그림을, 두 번째 자식이 오른쪽 위의 그림을, 세 번째 자식이 왼쪽 아래의 그림을, 네 번째 자식이 오른쪽 아래의 그림을 표현하게 된다. 각각의 작은 이미지를 표현할 때도 같은 방법을 재귀적으로 적용한다.

위의 예는 4×4 크기의 이미지와 그에 해당하는 쿼드트리이다. 위의 예에서는 이미지의 크기(사각형의 변의 길이)가 2의 k승이라서 상관이 없었지만, 그 외의 경우에는 문제가 된다. 만약에 이미지의 크기가 2의 k승이 아닐 경우에는, 이미지의 크기를 오른쪽과 아래쪽으로 가장 가까운 2의 k승으로 늘린 뒤, 흰색으로 나머지 공간을 채우면 된다. 이때 이미지가 정사각형 모양이 되도록 한다. 예를 들어 5×13의 이미지는 16×16 크기의 이미지가 되고, 원래의 이미지가 왼쪽 위에 들어가고 나머지 공간은 흰색으로 채우면 된다.

쿼드트리 자체가 이미지를 압축적으로 표현하는 방법이지만, 우리는 압축된 쿼드트리를 이용하여 좀 더 효율적으로 표현하려 한다. 만약 쿼드트리에서 같은 모양의 부분 트리가 여러 개 나올 경우, 이를 한 번만 저장한 뒤 나머지는 포인터로 연결할 수 있다. 위의 예는 다음과 같은 압축된 쿼드트리로 표현할 수 있다.

원래의 쿼드트리는 17개의 정점을 갖지만, 압축된 쿼드트리는 12개의 정점을 갖는다. 12개의 정점을 갖는 압축된 쿼드트리가 몇 개 더 있기는 하지만, 11개 이하의 정점을 갖는 압축된 쿼드트리는 존재하지 않는다. 따라서 위의 경우가 가장 효율적(정점 개수가 최소)이다.

주의할 것은, B나 W로 표현되는 정점은 포인터가 아니가 값 자체이므로 이를 연결할 경우는 압축하는 것이 아니다. 즉, 정점이 하나인 경우(높이가 1인 경우)에는 포인터를 이용하여 연결할 필요가 없다. 또, 실제 이미지의 크기가 다르더라도 트리의 모양이 같다면, 같은 쿼드트리로 표현될 수 있는데, 이런 경우에도 포인터로 연결할 수 있다.

이미지가 주어졌을 때, 쿼드트리의 정점의 개수와 가장 효율적인 압축된 쿼드트리의 정점의 개수를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 이미지의 크기를 나타내는 두 정수 n(1≤n≤128), m(1≤m≤128)이 주어진다. 이는 이미지의 크기가 n×m이라는 의미이다. 다음 n개의 줄에는 m개의 숫자로 이미지가 주어진다. 흰색은 0으로, 검은색은 1로 표현된다.

출력

첫째 줄에 쿼드트리의 정점의 개수와 가장 효율적인 압축된 쿼드트리의 정점의 개수를 출력한다.

예제 입력 1

4 4
1011
0111
1010
0111

예제 출력 1

17 12
W3sicHJvYmxlbV9pZCI6IjE5OTgiLCJwcm9ibGVtX2xhbmciOiIwIiwidGl0bGUiOiJcdWM3NzRcdWJiZjhcdWM5YzAgXHVjNTU1XHVjZDk1IiwiZGVzY3JpcHRpb24iOiI8cD5cdWQ3NzBcdWMwYzlcdWFjZmMgXHVhYzgwXHVjNzQwXHVjMGM5XHVjNzNjXHViODVjIFx1Yzc3NFx1YjhlOFx1YzViNFx1YzljNCBcdWM3NzRcdWJiZjhcdWM5YzBcdWIyOTQgXHVjZmZjXHViNGRjXHVkMmI4XHViOWFjXHViOTdjIFx1Yzc3NFx1YzZhOVx1ZDU1OFx1YzVlYyBcdWQ0NWNcdWQ2MDRcdWQ1NjAgXHVjMjE4IFx1Yzc4OFx1YjJlNC4gXHVjZmZjXHViNGRjXHVkMmI4XHViOWFjXHVjNzU4IFx1YjhlOFx1ZDJiOFx1YjI5NCBcdWM3NzRcdWJiZjhcdWM5YzBcdWM3NTggXHVjODA0XHVjY2I0XHViOTdjIFx1YjA5OFx1ZDBjMFx1YjBiOFx1YjJlNC4gXHViOWNjXHVjNTdkIFx1YzgwNFx1Y2NiNCBcdWM3NzRcdWJiZjhcdWM5YzBcdWFjMDAgXHVkNTVjIFx1YzBjOVx1YWU1NFx1Yjg1YyBcdWM3NzRcdWI4ZThcdWM1YjRcdWM4MzggXHVjNzg4XHVjNzNjXHViYTc0LCBcdWFkZjggXHVjMGM5XHVhZTU0XHVjNWQwIFx1ZDU3NFx1YjJmOVx1ZDU1OFx1YjI5NCBcdWM4MTVcdWM4MTBcdWM3NDQgXHViOGU4XHVkMmI4XHViODVjIFx1ZDU1Y1x1YjJlNC4gXHVhZGY4IFx1YzY3OFx1Yzc1OCBcdWFjYmRcdWM2YjBcdWM1ZDBcdWIyOTQgXHVhZGY4XHViOWJjXHVjNzQ0IFx1YjEzN1x1YzczY1x1Yjg1YyBcdWIwOThcdWIyMDRcdWFjZTAsIFx1YWMwMVx1YWMwMVx1Yzc1OCBcdWIwOThcdWIyMjBcdWM5YzQgXHVhZGY4XHViOWJjXHVjNzQ0IFx1YjhlOFx1ZDJiOFx1Yzc1OCBcdWIxMjQgXHVjNzkwXHVjMmRkIFx1YzgxNVx1YzgxMFx1YzczY1x1Yjg1YyBcdWQ0NWNcdWQ2MDRcdWQ1NThcdWJhNzQgXHViNDFjXHViMmU0LiBcdWM3NzRcdWI1NGMgXHVjY2FiIFx1YmM4OFx1YzlmOCBcdWM3OTBcdWMyZGRcdWM3NzQgXHVjNjdjXHVjYWJkIFx1YzcwNFx1Yzc1OCBcdWFkZjhcdWI5YmNcdWM3NDQsIFx1YjQ1MCBcdWJjODhcdWM5ZjggXHVjNzkwXHVjMmRkXHVjNzc0IFx1YzYyNFx1Yjk3OFx1Y2FiZCBcdWM3MDRcdWM3NTggXHVhZGY4XHViOWJjXHVjNzQ0LCBcdWMxMzggXHViYzg4XHVjOWY4IFx1Yzc5MFx1YzJkZFx1Yzc3NCBcdWM2N2NcdWNhYmQgXHVjNTQ0XHViNzk4XHVjNzU4IFx1YWRmOFx1YjliY1x1Yzc0NCwgXHViMTI0IFx1YmM4OFx1YzlmOCBcdWM3OTBcdWMyZGRcdWM3NzQgXHVjNjI0XHViOTc4XHVjYWJkIFx1YzU0NFx1Yjc5OFx1Yzc1OCBcdWFkZjhcdWI5YmNcdWM3NDQgXHVkNDVjXHVkNjA0XHVkNTU4XHVhYzhjIFx1YjQxY1x1YjJlNC4gXHVhYzAxXHVhYzAxXHVjNzU4IFx1Yzc5MVx1Yzc0MCBcdWM3NzRcdWJiZjhcdWM5YzBcdWI5N2MgXHVkNDVjXHVkNjA0XHVkNTYwIFx1YjU0Y1x1YjNjNCBcdWFjMTlcdWM3NDAgXHViYzI5XHViYzk1XHVjNzQ0IFx1YzdhY1x1YWRjMFx1YzgwMVx1YzczY1x1Yjg1YyBcdWM4MDFcdWM2YTlcdWQ1NWNcdWIyZTQuPFwvcD5cclxuPHA+PGltZyB3aWR0aD1cIjQzMlwiIGhlaWdodD1cIjExN1wiIGFsdD1cIlwiIHNyYz1cIlwvSnVkZ2VPbmxpbmVcL3VwbG9hZFwvMjAxMDA3XC9xcXEucG5nXCIgXC8+PFwvcD5cclxuPHA+XHVjNzA0XHVjNzU4IFx1YzYwOFx1YjI5NCA0JnRpbWVzOzQgXHVkMDZjXHVhZTMwXHVjNzU4IFx1Yzc3NFx1YmJmOFx1YzljMFx1YzY0MCBcdWFkZjhcdWM1ZDAgXHVkNTc0XHViMmY5XHVkNTU4XHViMjk0IFx1Y2ZmY1x1YjRkY1x1ZDJiOFx1YjlhY1x1Yzc3NFx1YjJlNC4gXHVjNzA0XHVjNzU4IFx1YzYwOFx1YzVkMFx1YzExY1x1YjI5NCBcdWM3NzRcdWJiZjhcdWM5YzBcdWM3NTggXHVkMDZjXHVhZTMwKFx1YzBhY1x1YWMwMVx1ZDYxNVx1Yzc1OCBcdWJjYzBcdWM3NTggXHVhZTM4XHVjNzc0KVx1YWMwMCAyXHVjNzU4IGtcdWMyYjlcdWM3NzRcdWI3N2NcdWMxMWMgXHVjMGMxXHVhZDAwXHVjNzc0IFx1YzVjNlx1YzVjOFx1YzljMFx1YjljYywgXHVhZGY4IFx1YzY3OFx1Yzc1OCBcdWFjYmRcdWM2YjBcdWM1ZDBcdWIyOTQgXHViYjM4XHVjODFjXHVhYzAwIFx1YjQxY1x1YjJlNC4gXHViOWNjXHVjNTdkXHVjNWQwIFx1Yzc3NFx1YmJmOFx1YzljMFx1Yzc1OCBcdWQwNmNcdWFlMzBcdWFjMDAgMlx1Yzc1OCBrXHVjMmI5XHVjNzc0IFx1YzU0NFx1YjJkMCBcdWFjYmRcdWM2YjBcdWM1ZDBcdWIyOTQsIFx1Yzc3NFx1YmJmOFx1YzljMFx1Yzc1OCBcdWQwNmNcdWFlMzBcdWI5N2MgXHVjNjI0XHViOTc4XHVjYWJkXHVhY2ZjIFx1YzU0NFx1Yjc5OFx1Y2FiZFx1YzczY1x1Yjg1YyBcdWFjMDBcdWM3YTUgXHVhYzAwXHVhZTRjXHVjNmI0IDJcdWM3NTgga1x1YzJiOVx1YzczY1x1Yjg1YyBcdWIyOThcdWI5YjAgXHViNGE0LCBcdWQ3NzBcdWMwYzlcdWM3M2NcdWI4NWMgXHViMDk4XHViYTM4XHVjOWMwIFx1YWNmNVx1YWMwNFx1Yzc0NCBcdWNjNDRcdWM2YjBcdWJhNzQgXHViNDFjXHViMmU0LiBcdWM3NzRcdWI1NGMgXHVjNzc0XHViYmY4XHVjOWMwXHVhYzAwIFx1YzgxNVx1YzBhY1x1YWMwMVx1ZDYxNSBcdWJhYThcdWM1OTFcdWM3NzQgXHViNDE4XHViM2M0XHViODVkIFx1ZDU1Y1x1YjJlNC4gXHVjNjA4XHViOTdjIFx1YjRlNFx1YzViNCA1JnRpbWVzOzEzXHVjNzU4IFx1Yzc3NFx1YmJmOFx1YzljMFx1YjI5NCAxNiZ0aW1lczsxNiBcdWQwNmNcdWFlMzBcdWM3NTggXHVjNzc0XHViYmY4XHVjOWMwXHVhYzAwIFx1YjQxOFx1YWNlMCwgXHVjNmQwXHViNzk4XHVjNzU4IFx1Yzc3NFx1YmJmOFx1YzljMFx1YWMwMCBcdWM2N2NcdWNhYmQgXHVjNzA0XHVjNWQwIFx1YjRlNFx1YzViNFx1YWMwMFx1YWNlMCBcdWIwOThcdWJhMzhcdWM5YzAgXHVhY2Y1XHVhYzA0XHVjNzQwIFx1ZDc3MFx1YzBjOVx1YzczY1x1Yjg1YyBcdWNjNDRcdWM2YjBcdWJhNzQgXHViNDFjXHViMmU0LjxcL3A+XHJcbjxwPlx1Y2ZmY1x1YjRkY1x1ZDJiOFx1YjlhYyBcdWM3OTBcdWNjYjRcdWFjMDAgXHVjNzc0XHViYmY4XHVjOWMwXHViOTdjIFx1YzU1NVx1Y2Q5NVx1YzgwMVx1YzczY1x1Yjg1YyBcdWQ0NWNcdWQ2MDRcdWQ1NThcdWIyOTQgXHViYzI5XHViYzk1XHVjNzc0XHVjOWMwXHViOWNjLCBcdWM2YjBcdWI5YWNcdWIyOTQgXHVjNTU1XHVjZDk1XHViNDFjIFx1Y2ZmY1x1YjRkY1x1ZDJiOFx1YjlhY1x1Yjk3YyBcdWM3NzRcdWM2YTlcdWQ1NThcdWM1ZWMgXHVjODgwIFx1YjM1NCBcdWQ2YThcdWM3MjhcdWM4MDFcdWM3M2NcdWI4NWMgXHVkNDVjXHVkNjA0XHVkNTU4XHViODI0IFx1ZDU1Y1x1YjJlNC4gXHViOWNjXHVjNTdkIFx1Y2ZmY1x1YjRkY1x1ZDJiOFx1YjlhY1x1YzVkMFx1YzExYyBcdWFjMTlcdWM3NDAgXHViYWE4XHVjNTkxXHVjNzU4IFx1YmQ4MFx1YmQ4NCBcdWQyYjhcdWI5YWNcdWFjMDAgXHVjNWVjXHViN2VjIFx1YWMxYyBcdWIwOThcdWM2MmMgXHVhY2JkXHVjNmIwLCBcdWM3NzRcdWI5N2MgXHVkNTVjIFx1YmM4OFx1YjljYyBcdWM4MDBcdWM3YTVcdWQ1NWMgXHViNGE0IFx1YjA5OFx1YmEzOFx1YzljMFx1YjI5NCBcdWQzZWNcdWM3NzhcdWQxMzBcdWI4NWMgXHVjNWYwXHVhY2IwXHVkNTYwIFx1YzIxOCBcdWM3ODhcdWIyZTQuIFx1YzcwNFx1Yzc1OCBcdWM2MDhcdWIyOTQgXHViMmU0XHVjNzRjXHVhY2ZjIFx1YWMxOVx1Yzc0MCBcdWM1NTVcdWNkOTVcdWI0MWMgXHVjZmZjXHViNGRjXHVkMmI4XHViOWFjXHViODVjIFx1ZDQ1Y1x1ZDYwNFx1ZDU2MCBcdWMyMTggXHVjNzg4XHViMmU0LjxcL3A+XHJcbjxwPjxpbWcgd2lkdGg9XCIzMDVcIiBoZWlnaHQ9XCIxMTFcIiBhbHQ9XCJcIiBzcmM9XCJcL0p1ZGdlT25saW5lXC91cGxvYWRcLzIwMTAwN1wvcXFxcXFxcS5wbmdcIiBcLz48XC9wPlxyXG48cD5cdWM2ZDBcdWI3OThcdWM3NTggXHVjZmZjXHViNGRjXHVkMmI4XHViOWFjXHViMjk0IDE3XHVhYzFjXHVjNzU4IFx1YzgxNVx1YzgxMFx1Yzc0NCBcdWFjMTZcdWM5YzBcdWI5Y2MsIFx1YzU1NVx1Y2Q5NVx1YjQxYyBcdWNmZmNcdWI0ZGNcdWQyYjhcdWI5YWNcdWIyOTQgMTJcdWFjMWNcdWM3NTggXHVjODE1XHVjODEwXHVjNzQ0IFx1YWMxNlx1YjI5NFx1YjJlNC4gMTJcdWFjMWNcdWM3NTggXHVjODE1XHVjODEwXHVjNzQ0IFx1YWMxNlx1YjI5NCBcdWM1NTVcdWNkOTVcdWI0MWMgXHVjZmZjXHViNGRjXHVkMmI4XHViOWFjXHVhYzAwIFx1YmE4NyBcdWFjMWMgXHViMzU0IFx1Yzc4OFx1YWUzMFx1YjI5NCBcdWQ1NThcdWM5YzBcdWI5Y2MsIDExXHVhYzFjIFx1Yzc3NFx1ZDU1OFx1Yzc1OCBcdWM4MTVcdWM4MTBcdWM3NDQgXHVhYzE2XHViMjk0IFx1YzU1NVx1Y2Q5NVx1YjQxYyBcdWNmZmNcdWI0ZGNcdWQyYjhcdWI5YWNcdWIyOTQgXHVjODc0XHVjN2FjXHVkNTU4XHVjOWMwIFx1YzU0YVx1YjI5NFx1YjJlNC4gXHViNTMwXHViNzdjXHVjMTFjIFx1YzcwNFx1Yzc1OCBcdWFjYmRcdWM2YjBcdWFjMDAgXHVhYzAwXHVjN2E1IFx1ZDZhOFx1YzcyOFx1YzgwMShcdWM4MTVcdWM4MTAgXHVhYzFjXHVjMjE4XHVhYzAwIFx1Y2Q1Y1x1YzE4YylcdWM3NzRcdWIyZTQuPFwvcD5cclxuPHA+XHVjOGZjXHVjNzU4XHVkNTYwIFx1YWM4M1x1Yzc0MCwgQlx1YjA5OCBXXHViODVjIFx1ZDQ1Y1x1ZDYwNFx1YjQxOFx1YjI5NCBcdWM4MTVcdWM4MTBcdWM3NDAgXHVkM2VjXHVjNzc4XHVkMTMwXHVhYzAwIFx1YzU0NFx1YjJjOFx1YWMwMCBcdWFjMTIgXHVjNzkwXHVjY2I0XHVjNzc0XHViYmMwXHViODVjIFx1Yzc3NFx1Yjk3YyBcdWM1ZjBcdWFjYjBcdWQ1NjAgXHVhY2JkXHVjNmIwXHViMjk0IFx1YzU1NVx1Y2Q5NVx1ZDU1OFx1YjI5NCBcdWFjODNcdWM3NzQgXHVjNTQ0XHViMmM4XHViMmU0LiBcdWM5ODksIFx1YzgxNVx1YzgxMFx1Yzc3NCBcdWQ1NThcdWIwOThcdWM3NzggXHVhY2JkXHVjNmIwKFx1YjE5Mlx1Yzc3NFx1YWMwMCAxXHVjNzc4IFx1YWNiZFx1YzZiMClcdWM1ZDBcdWIyOTQgXHVkM2VjXHVjNzc4XHVkMTMwXHViOTdjIFx1Yzc3NFx1YzZhOVx1ZDU1OFx1YzVlYyBcdWM1ZjBcdWFjYjBcdWQ1NjAgXHVkNTQ0XHVjNjk0XHVhYzAwIFx1YzVjNlx1YjJlNC4gXHViNjEwLCBcdWMyZTRcdWM4MWMgXHVjNzc0XHViYmY4XHVjOWMwXHVjNzU4IFx1ZDA2Y1x1YWUzMFx1YWMwMCBcdWIyZTRcdWI5NzRcdWIzNTRcdWI3N2NcdWIzYzQgXHVkMmI4XHViOWFjXHVjNzU4IFx1YmFhOFx1YzU5MVx1Yzc3NCBcdWFjMTlcdWIyZTRcdWJhNzQsIFx1YWMxOVx1Yzc0MCBcdWNmZmNcdWI0ZGNcdWQyYjhcdWI5YWNcdWI4NWMgXHVkNDVjXHVkNjA0XHViNDIwIFx1YzIxOCBcdWM3ODhcdWIyOTRcdWIzNzAsIFx1Yzc3NFx1YjdmMCBcdWFjYmRcdWM2YjBcdWM1ZDBcdWIzYzQgXHVkM2VjXHVjNzc4XHVkMTMwXHViODVjIFx1YzVmMFx1YWNiMFx1ZDU2MCBcdWMyMTggXHVjNzg4XHViMmU0LjxcL3A+XHJcbjxwPlx1Yzc3NFx1YmJmOFx1YzljMFx1YWMwMCBcdWM4ZmNcdWM1YjRcdWM4NGNcdWM3NDQgXHViNTRjLCBcdWNmZmNcdWI0ZGNcdWQyYjhcdWI5YWNcdWM3NTggXHVjODE1XHVjODEwXHVjNzU4IFx1YWMxY1x1YzIxOFx1YzY0MCBcdWFjMDBcdWM3YTUgXHVkNmE4XHVjNzI4XHVjODAxXHVjNzc4IFx1YzU1NVx1Y2Q5NVx1YjQxYyBcdWNmZmNcdWI0ZGNcdWQyYjhcdWI5YWNcdWM3NTggXHVjODE1XHVjODEwXHVjNzU4IFx1YWMxY1x1YzIxOFx1Yjk3YyBcdWFkNmNcdWQ1NThcdWIyOTQgXHVkNTA0XHViODVjXHVhZGY4XHViN2E4XHVjNzQ0IFx1Yzc5MVx1YzEzMVx1ZDU1OFx1YzJkY1x1YzYyNC48XC9wPiIsImlucHV0IjoiPHA+XHVjY2FiXHVjOWY4IFx1YzkwNFx1YzVkMCBcdWM3NzRcdWJiZjhcdWM5YzBcdWM3NTggXHVkMDZjXHVhZTMwXHViOTdjIFx1YjA5OFx1ZDBjMFx1YjBiNFx1YjI5NCBcdWI0NTAgXHVjODE1XHVjMjE4IG4oMSZsZTtuJmxlOzEyOCksIG0oMSZsZTttJmxlOzEyOClcdWM3NzQgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0LiBcdWM3NzRcdWIyOTQgXHVjNzc0XHViYmY4XHVjOWMwXHVjNzU4IFx1ZDA2Y1x1YWUzMFx1YWMwMCBuJnRpbWVzO21cdWM3NzRcdWI3N2NcdWIyOTQgXHVjNzU4XHViYmY4XHVjNzc0XHViMmU0LiBcdWIyZTRcdWM3NGMgblx1YWMxY1x1Yzc1OCBcdWM5MDRcdWM1ZDBcdWIyOTQgbVx1YWMxY1x1Yzc1OCBcdWMyMmJcdWM3OTBcdWI4NWMgXHVjNzc0XHViYmY4XHVjOWMwXHVhYzAwIFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNC4gXHVkNzcwXHVjMGM5XHVjNzQwIDBcdWM3M2NcdWI4NWMsIFx1YWM4MFx1Yzc0MFx1YzBjOVx1Yzc0MCAxXHViODVjIFx1ZDQ1Y1x1ZDYwNFx1YjQxY1x1YjJlNC48XC9wPiIsIm91dHB1dCI6IjxwPlx1Y2NhYlx1YzlmOCBcdWM5MDRcdWM1ZDAgXHVjZmZjXHViNGRjXHVkMmI4XHViOWFjXHVjNzU4IFx1YzgxNVx1YzgxMFx1Yzc1OCBcdWFjMWNcdWMyMThcdWM2NDAgXHVhYzAwXHVjN2E1IFx1ZDZhOFx1YzcyOFx1YzgwMVx1Yzc3OCBcdWM1NTVcdWNkOTVcdWI0MWMgXHVjZmZjXHViNGRjXHVkMmI4XHViOWFjXHVjNzU4IFx1YzgxNVx1YzgxMFx1Yzc1OCBcdWFjMWNcdWMyMThcdWI5N2MgXHVjZDljXHViODI1XHVkNTVjXHViMmU0LjxcL3A+IiwiaGludCI6IiIsIm9yaWdpbmFsIjoiMCIsInByb2JsZW1fbGFuZ19jb2RlIjoiXHVkNTVjXHVhZDZkXHVjNWI0In0seyJwcm9ibGVtX2lkIjoiMTk5OCIsInByb2JsZW1fbGFuZyI6IjEiLCJ0aXRsZSI6IlNxdWFkdHJlZXMiLCJkZXNjcmlwdGlvbiI6IjxwPlF1YWR0cmVlcyBhcmUgZGF0YSBzdHJ1Y3R1cmVzIHVzZWQgdG8gc3RvcmUgZGlnaXRhbCBpbWFnZXMuIEZvciBvdXIgcHVycG9zZXMsIHRoZSBpbWFnZXMgd2lsbCBiZSBzaW1wbGUgYml0bWFwcywgd2hlcmUgZXZlcnkgcGl4ZWwgaXMgZWl0aGVyIGEgMSAoYmxhY2spIG9yIGEgMCAod2hpdGUpLiBBIHF1YWR0cmVlIHJlcHJlc2VudGF0aW9uIG9mIGEgYml0bWFwIGlzIG9idGFpbmVkIGFzIGZvbGxvd3M6IGZpcnN0LCBhc3NvY2lhdGUgdGhlIHJvb3Qgbm9kZSB3aXRoIHRoZSBlbnRpcmUgaW1hZ2UuIElmIHRoZSBlbnRpcmUgaW1hZ2UgaXMgZWl0aGVyIGFsbCAxJiMzOTtzIG9yIGFsbCAwJiMzOTtzLCB0aGVuIHN0b3JlIHRoYXQgdmFsdWUgaW4gdGhlIG5vZGUgYW5kIHlvdSYjMzk7cmUgZG9uZS4gT3RoZXJ3aXNlIGRpdmlkZSB0aGUgcmVnaW9uIGludG8gZm91ciBlcXVhbCBzaXplIHF1YWRyYW50cywgYWRkIGZvdXIgY2hpbGRyZW4gdG8gdGhlIHJvb3QsIGFuZCBhc3NpZ24gZWFjaCBjaGlsZCBvbmUgb2YgdGhlIGZvdXIgcmVnaW9ucyBpbiB0aGUgZm9sbG93aW5nIG9yZGVyOiB0aGUgZmlyc3QgY2hpbGQgZ2V0cyB0aGUgdXBwZXIgbGVmdCBxdWFkcmFudCwgdGhlIHNlY29uZCB0aGUgdXBwZXIgcmlnaHQsIHRoZSB0aGlyZCB0aGUgbG93ZXIgbGVmdCBhbmQgdGhlIGZvdXJ0aCB0aGUgbG93ZXIgcmlnaHQuIFRoZW4gcmVjdXJzaXZlbHkgYXBwbHkgdGhlIGFib3ZlIHJ1bGVzIHRvIGVhY2ggb2YgdGhlIGNoaWxkcmVuLiBGb3IgZXhhbXBsZSwgdGhlIDR4NCBpbWFnZSBvbiB0aGUgbGVmdCB3b3VsZCBiZSByZXByZXNlbnRlZCBieSB0aGUgcXVhZHRyZWUgb24gdGhlIHJpZ2h0OjxcL3A+XHJcblxyXG48cD48aW1nIGFsdD1cIlwiIHNyYz1cIlwvdXBsb2FkXC9pbWFnZXNcL3FkdDEucG5nXCIgc3R5bGU9XCJoZWlnaHQ6MTE1cHg7IHdpZHRoOjM3NXB4XCIgXC8+PFwvcD5cclxuXHJcbjxwPk5vdGUgdGhhdCB0aGlzIHByb2NlZHVyZSBvbmx5IHdvcmtzIGFzIHN0YXRlZCBpZiB0aGUgaW1hZ2UgaXMgYSBzcXVhcmUgYW5kIGhhcyBhIHNpZGUgbGVuZ3RoIGVxdWFsIHRvIGEgcG93ZXIgb2YgMi4gRm9yIHRob3NlIGltYWdlcyB3aGljaCBkbyBub3QgbWVldCB0aG9zZSByZXF1aXJlbWVudHMsIHdlIHBhZCB0aGUgcm93cyBhbmQgY29sdW1ucyB3aXRoIDAmIzM5O3MgKG9uIHRoZSByaWdodCBhbmQgb24gdGhlIGJvdHRvbSwgcmVzcGVjdGl2ZWx5KSB1bnRpbCB3ZSBoYXZlIGEgYml0bWFwIG9mIHRoZSBhcHByb3ByaWF0ZSBzaXplLiBGb3IgZXhhbXBsZSwgYSA1eDEzIGltYWdlIHdvdWxkIGJlIGNvbnZlcnRlZCB0byBhIDE2eDE2IGJpdG1hcCAod2l0aCB0aGUgb3JpZ2luYWwgaW1hZ2UgcmVzaWRpbmcgaW4gdGhlIHVwcGVyIGxlZnQgcG9ydGlvbiwgYW5kIHRoZSByZW1haW5kZXIgb2YgdGhlIGltYWdlIGZpbGxlZCB3aXRoIDAmIzM5O3MpLiZuYnNwOzxcL3A+XHJcblxyXG48cD5XaGlsZSBxdWFkdHJlZXMgY2FuIHJlc3VsdCBpbiBhIHNpZ25pZmljYW50IHNhdmluZ3MgaW4gc3BhY2Ugb3ZlciB0aGUgb3JpZ2luYWwgaW1hZ2UsIGV2ZW4gbW9yZSBzYXZpbmdzIGNhbiBiZSBhY2hpZXZlZCBpZiB3ZSBpZGVudGlmeSByZXBlYXRlZCBzdWJ0cmVlcy4gRm9yIGV4YW1wbGUsIGluIHRoZSB0cmVlIGFib3ZlLCB0aGUgZmlyc3QgYW5kIHRoaXJkIHN1YnRyZWVzIG9mIHRoZSByb290IGFyZSBpZGVudGljYWwsIHNvIHdlIGNvdWxkIHJlcGxhY2UgdGhlIHJvb3Qgb2YgdGhlIHRoaXJkIHN1YnRyZWUgd2l0aCBhIHJlZmVyZW5jZSB0byB0aGUgZmlyc3Qgc3VidHJlZSwgb2J0YWluaW5nIHNvbWV0aGluZyB0aGF0IHN5bWJvbGljYWxseSBsb29rcyBsaWtlIHRoZSBmb2xsb3dpbmc6PFwvcD5cclxuXHJcbjxwPjxpbWcgYWx0PVwiXCIgc3JjPVwiXC91cGxvYWRcL2ltYWdlc1wvcWR0Mi5wbmdcIiBzdHlsZT1cImhlaWdodDoxMDRweDsgd2lkdGg6MjgycHhcIiBcLz48XC9wPlxyXG5cclxuPHA+V2Ugd2lsbCBjYWxsIHRoZXNlIGNvbXByZXNzZWQgcXVhZHRyZWVzIHN1cGVyIHF1YWR0cmVlcywgb3Igc3F1YWR0cmVlcy4gRm9yIG91ciBwdXJwb3NlcyB0aGUgdXNlIG9mIGEgcmVmZXJlbmNlIHNhdmVzIHNwYWNlIG9ubHkgd2hlbiB0aGUgdHJlZSBpdCByZXBsYWNlcyBoYXMgaGVpZ2h0IG9mIGF0IGxlYXN0IDEuIFRodXMsIHdoaWxlIHdlIGNvdWxkIHJlcGxhY2UgNSBvZiB0aGUgbm9kZXMgd2hpY2ggY29udGFpbiBhIEIgd2l0aCByZWZlcmVuY2VzIHRvIHRoZSBmaXJzdCBub2RlIHdpdGggYSBCLCB0aGlzIHdvdWxkIG5vdCBpbiBwcmFjdGljZSBzYXZlIGFueSBzcGFjZSBpbiB0aGUgY29tcHJlc3Npb24uIFVzaW5nIHRoaXMgcnVsZSwgb3VyIHNxdWFkdHJlZSBjb250YWlucyBvbmx5IDEyIG5vZGVzLCBhcyBvcHBvc2VkIHRvIDE3IGluIHRoZSBvcmlnaW5hbCBxdWFkdHJlZS4gWW91ciBqb2IgZm9yIHRoaXMgcHJvYmxlbSBpcyB0byB0YWtlIGEgc2V0IG9mIGltYWdlcyBhbmQgZGV0ZXJtaW5lIHRoZSBudW1iZXIgb2Ygbm9kZXMgaW4gYm90aCB0aGUgcmVzdWx0aW5nIHF1YWR0cmVlcyBhbmQgc3F1YWR0cmVlcy48XC9wPlxyXG4iLCJpbnB1dCI6IjxwPklucHV0IHdpbGwgY29uc2lzdCBvZiBtdWx0aXBsZSBwcm9ibGVtIGluc3RhbmNlcy4gRWFjaCBpbnN0YW5jZSB3aWxsIHN0YXJ0IHdpdGggYSBzaW5nbGUgbGluZSBjb250YWluaW5nIHR3byBpbnRlZ2VycyBuIGFuZCBtLCBpbmRpY2F0aW5nIHRoZSBudW1iZXIgb2Ygcm93cyBhbmQgY29sdW1ucyBpbiB0aGUgaW1hZ2UuIFRoZSBtYXhpbXVtIHZhbHVlcyBmb3IgdGhlc2UgaW50ZWdlcnMgaXMgMTI4LiBUaGUgbmV4dCBuIGxpbmVzIHdpbGwgZWFjaCBjb250YWluIG0gY2hhcmFjdGVycyByZXByZXNlbnRpbmcgdGhlIGltYWdlIHRvIHByb2Nlc3MuIEEgYmxhY2sgcGl4ZWwgd2lsbCBiZSByZXByZXNlbnRlZCBieSBhIGAxJiMzOTssIGFuZCBhIHdoaXRlIHBpeGVsIHdpbGwgYmUgcmVwcmVzZW50ZWQgYnkgYSBgMCYjMzk7LiBUaGUgaW5wdXQgbGluZSAwIDAgd2lsbCB0ZXJtaW5hdGUgaW5wdXQgYW5kIHNob3VsZCBub3QgYmUgcHJvY2Vzc2VkLjxcL3A+XHJcbiIsIm91dHB1dCI6IjxwPkZvciBlYWNoIHByb2JsZW0gaW5zdGFuY2UsIG91dHB1dCB0d28gaW50ZWdlcnMgc2VwYXJhdGVkIGJ5IGEgc2luZ2xlIHNwYWNlLiBUaGUgZmlyc3QgdmFsdWUgaXMgdGhlIG51bWJlciBvZiBub2RlcyBpbiB0aGUgcXVhZHRyZWUgZm9yIHRoZSBwcm9ibGVtIGluc3RhbmNlLCBhbmQgdGhlIHNlY29uZCBpcyB0aGUgbnVtYmVyIG9mIG5vZGVzIGluIHRoZSBzcXVhZHRyZWUuPFwvcD5cclxuIiwiaGludCI6IiIsIm9yaWdpbmFsIjoiMSIsInByb2JsZW1fbGFuZ19jb2RlIjoiXHVjNjAxXHVjNWI0In1d