시간 제한메모리 제한제출정답맞힌 사람정답 비율
4 초 (추가 시간 없음) 1024 MB (추가 메모리 없음)72241936.538%

문제

군집화(clustering) 알고리즘은 같은 클러스터에는 최대한 비슷한 데이터가 묶이고, 서로 다른 클러스터 사이에는 다른 데이터들이 위치하도록 하는 알고리즘이다. UCP-Clustering은 군집화 알고리즘 중 하나로, 2차원 평면 위에 $n$개의 데이터가 주어질 때 다음과 같은 방식으로 데이터를 $k$개의 클러스터로 나눈다.

  1. 각 클러스터는 구심점이 되는 중심 좌표를 하나씩 가진다. $n$개의 데이터 중 서로 다른 $k$개를 무작위로 선택하고, 각 데이터의 좌표를 중심 좌표로 갖는 $k$개의 빈 클러스터를 만든다.
  2. 아래의 과정을 반복한다.
    1. 각각의 데이터에 대하여 유클리드 거리가 가장 가까운 클러스터의 중심 좌표를 선택하고, 그에 해당하는 클러스터에 그 데이터를 포함시킨다. 가장 가까운 중심 좌표가 여러 개라면 그중에서 가장 작은 것을 선택한다. 좌표 $(x_1, y_1)$이 $(x_2, y_2)$보다 작다는 것은 $x_1 < x_2$거나, $x_1=x_2$이고 $y_1<y_2$인 경우를 의미한다.
    2. 각각의 클러스터에 대하여 클러스터의 새로운 중심 좌표를 계산한다. 각 클러스터의 새로운 중심 좌표는 그 클러스터에 포함된 모든 데이터의 좌표들로부터 각 차원별로 중앙값을 계산하여 결정된다. 단, 값의 개수가 짝수일 경우, 중앙값은 값들을 정렬했을 때 가운데 두 값의 평균으로 계산된다.
    3. 만약 모든 클러스터의 새로운 중심 좌표가 원래의 중심 좌표와 같다면 알고리즘을 종료한다. 그렇지 않다면 클러스터 구성을 초기화하고, 이 새로운 중심 좌표들을 중심 좌표로 갖는 $k$개의 빈 클러스터를 새로 만든다.

예를 들어, 3개의 데이터 $\{(1, 2), (3, 4), (5, 6)\}$를 UCP-Clustering 알고리즘을 이용해 두 개의 클러스터로 나누는 상황을 생각해 보자. $(1, 2)$와 $(3, 4)$를 초기 중심 좌표로 선택하면 $\{(1, 2)\}$와 $\{(3, 4), (5, 6)\}$ 두 개의 클러스터로 나뉘고, 두 클러스터의 중심 좌표는 각각 $(1, 2)$, $(4, 5)$가 된다. 다른 예시로 $(1, 2)$와 $(5, 6)$을 초기 중심 좌표로 선택하면 $\{(1, 2), (3, 4)\}$와 $\{(5, 6)\}$으로 나뉘고, 두 클러스터의 중심 좌표는 각각 $(2, 3)$, $(5, 6)$이 된다. 예시에서 알 수 있듯이, 초기에 클러스터의 중심 좌표를 어떻게 선택하느냐에 따라 알고리즘의 실행 결과가 달라지며, 위의 두 경우에서는 2번 과정이 모두 2번 반복된다.

$k=2$로 고정한다면 가능한 초기 중심 좌표의 경우의 수는 총 $n(n-1)/2$ 가지이다. 알고리즘을 완료했을 때 두 클러스터의 중심 좌표로 가능한 경우를 모두 찾고, 각 경우에 대해 수렴하는 데까지 걸리는 2번 과정의 반복 횟수의 기댓값을 구하시오.

입력

첫 번째 줄에 데이터의 수 $N$이 주어진다. ($2 \leq N \leq 512$)

그 후 $N$개의 줄에 $i$번째 데이터의 좌표인 $(x_i, y_i)$가 공백을 사이에 두고 주어진다. 모든 좌표는 정수이며, 모든 데이터의 좌표는 서로 다르다. ($-10^6 \leq x_i, y_i \leq 10^6$)

출력

두 클러스터의 최종 중심 좌표 $\mu_1 = (x^{\mu}_{1}, y^{\mu}_{1})$, $\mu_2 = (x^{\mu}_{2}, y^{\mu}_{2})$와 클러스터의 중심 좌표가 두 좌표로 수렴하는 데까지 걸리는 2번 과정의 반복 횟수의 기댓값을 공백을 사이에 두고 출력한다. 단, 두 좌표 중 더 작은 쪽을 $\mu_1$으로 둔다. 가능한 좌표 쌍이 여러 개 존재하는 경우 $\mu_1$이 작은 것부터, $\mu_1$이 같은 경우는 $\mu_2$가 작은 것부터 출력한다. 출력하는 값의 절대 오차 또는 상대 오차는 $10^{-6}$까지 허용한다.

주어지는 모든 데이터에서 처음에 클러스터의 중심 좌표가 되는 데이터를 어떻게 고르더라도 UCP-Clustering이 실패하는 상황, 즉 두 클러스터의 중심 좌표가 같아지거나, 한쪽 클러스터가 비거나, 클러스터의 중심 좌표가 수렴하지 않게 되는 상황이 발생하지 않음이 보장된다.

예제 입력 1

3
1 2
3 4
5 6

예제 출력 1

1.0 2.0 4.0 5.0 2.000000
2.0 3.0 5.0 6.0 2.000000

예제 입력 2

4
0 0
0 3
3 0
3 3

예제 출력 2

0.0 0.0 3.0 3.0 1.000000
0.0 1.5 3.0 1.5 2.000000
0.0 3.0 3.0 0.0 1.000000
1.5 0.0 1.5 3.0 2.000000

노트

첫 번째 예제에서, 알고리즘은 다음과 같이 동작한다.

  • 초기 두 클러스터의 중심 좌표로 $(1, 2)$, $(3, 4)$를 선택한 경우: 첫 번째 반복을 통해 두 클러스터의 중심 좌표가 각각 $(1, 2)$, $(4, 5)$으로 바뀌고, 두 번째 반복에서 클러스터의 중심 좌표가 바뀌지 않아 알고리즘이 종료된다.
  • 초기 두 클러스터의 중심 좌표로 $(1, 2)$, $(5, 6)$를 선택한 경우: 첫 번째 반복을 통해 두 클러스터의 중심 좌표가 각각 $(2, 3)$, $(5, 6)$으로 바뀌고, 두 번째 반복에서 클러스터의 중심 좌표가 바뀌지 않아 알고리즘이 종료된다.
  • 초기 두 클러스터의 중심 좌표로 $(3, 4)$, $(5, 6)$를 선택한 경우: 첫 번째 반복을 통해 두 클러스터의 중심 좌표가 각각 $(2, 3)$, $(5, 6)$으로 바뀌고, 두 번째 반복에서 클러스터의 중심 좌표가 바뀌지 않아 알고리즘이 종료된다.

세 가지 경우를 모두 고려했을 때, 중심 좌표가 $\mu_1=(1, 2)$와 $\mu_2=(4, 5)$로 수렴하는 데에 걸리는 평균 반복 횟수는 2회이다. 마찬가지로, $\mu_1=(2, 3)$과 $\mu_2=(5, 6)$으로 수렴하는 데에 걸리는 평균 반복 횟수 또한 2회이다. 두 $\mu_1$ 중 $(1, 2)$가 $(2, 3)$보다 작으므로 $(1, 2)$와 $(4, 5)$로 수렴하는 경우부터 출력한다.

W3sicHJvYmxlbV9pZCI6IjIyODc1IiwicHJvYmxlbV9sYW5nIjoiMCIsInRpdGxlIjoiVUNQLUNsdXN0ZXJpbmciLCJkZXNjcmlwdGlvbiI6IjxwPlx1YWQ3MFx1YzlkMVx1ZDY1NChjbHVzdGVyaW5nKSBcdWM1NGNcdWFjZTBcdWI5YWNcdWM5OThcdWM3NDAgXHVhYzE5XHVjNzQwIFx1ZDA3NFx1YjdlY1x1YzJhNFx1ZDEzMFx1YzVkMFx1YjI5NCBcdWNkNWNcdWIzMDBcdWQ1NWMgXHViZTQ0XHVjMmI3XHVkNTVjIFx1YjM3MFx1Yzc3NFx1ZDEzMFx1YWMwMCBcdWJiMzZcdWM3NzRcdWFjZTAsIFx1YzExY1x1Yjg1YyBcdWIyZTRcdWI5NzggXHVkMDc0XHViN2VjXHVjMmE0XHVkMTMwIFx1YzBhY1x1Yzc3NFx1YzVkMFx1YjI5NCBcdWIyZTRcdWI5NzggXHViMzcwXHVjNzc0XHVkMTMwXHViNGU0XHVjNzc0IFx1YzcwNFx1Y2U1OFx1ZDU1OFx1YjNjNFx1Yjg1ZCBcdWQ1NThcdWIyOTQgXHVjNTRjXHVhY2UwXHViOWFjXHVjOTk4XHVjNzc0XHViMmU0LiBVQ1AtQ2x1c3RlcmluZ1x1Yzc0MCBcdWFkNzBcdWM5ZDFcdWQ2NTQgXHVjNTRjXHVhY2UwXHViOWFjXHVjOTk4IFx1YzkxMSBcdWQ1NThcdWIwOThcdWI4NWMsIDJcdWNjMjhcdWM2ZDAgXHVkM2M5XHViYTc0IFx1YzcwNFx1YzVkMCAkbiRcdWFjMWNcdWM3NTggXHViMzcwXHVjNzc0XHVkMTMwXHVhYzAwIFx1YzhmY1x1YzViNFx1YzljOCBcdWI1NGMgXHViMmU0XHVjNzRjXHVhY2ZjIFx1YWMxOVx1Yzc0MCBcdWJjMjlcdWMyZGRcdWM3M2NcdWI4NWMgXHViMzcwXHVjNzc0XHVkMTMwXHViOTdjICRrJFx1YWMxY1x1Yzc1OCBcdWQwNzRcdWI3ZWNcdWMyYTRcdWQxMzBcdWI4NWMgXHViMDk4XHViMjA4XHViMmU0LjxcL3A+XHJcblxyXG48b2w+XHJcblx0PGxpPlx1YWMwMSBcdWQwNzRcdWI3ZWNcdWMyYTRcdWQxMzBcdWIyOTQgXHVhZDZjXHVjMmVjXHVjODEwXHVjNzc0IFx1YjQxOFx1YjI5NCBcdWM5MTFcdWMyZWMgXHVjODhjXHVkNDVjXHViOTdjIFx1ZDU1OFx1YjA5OFx1YzUyOSBcdWFjMDBcdWM5YzRcdWIyZTQuICRuJFx1YWMxY1x1Yzc1OCBcdWIzNzBcdWM3NzRcdWQxMzAgXHVjOTExIFx1YzExY1x1Yjg1YyBcdWIyZTRcdWI5NzggJGskXHVhYzFjXHViOTdjIFx1YmIzNFx1Yzc5MVx1YzcwNFx1Yjg1YyBcdWMxMjBcdWQwZGRcdWQ1NThcdWFjZTAsIFx1YWMwMSBcdWIzNzBcdWM3NzRcdWQxMzBcdWM3NTggXHVjODhjXHVkNDVjXHViOTdjIFx1YzkxMVx1YzJlYyBcdWM4OGNcdWQ0NWNcdWI4NWMgXHVhYzE2XHViMjk0ICRrJFx1YWMxY1x1Yzc1OCBcdWJlNDggXHVkMDc0XHViN2VjXHVjMmE0XHVkMTMwXHViOTdjIFx1YjljY1x1YjRlMFx1YjJlNC48XC9saT5cclxuXHQ8bGk+XHVjNTQ0XHViNzk4XHVjNzU4IFx1YWNmY1x1YzgxNVx1Yzc0NCBcdWJjMThcdWJjZjVcdWQ1NWNcdWIyZTQuXHJcblx0PG9sIHN0eWxlPVwibGlzdC1zdHlsZS10eXBlOiBsb3dlci1hbHBoYTtcIj5cclxuXHRcdDxsaT5cdWFjMDFcdWFjMDFcdWM3NTggXHViMzcwXHVjNzc0XHVkMTMwXHVjNWQwIFx1YjMwMFx1ZDU1OFx1YzVlYyBcdWM3MjBcdWQwNzRcdWI5YWNcdWI0ZGMgXHVhYzcwXHViOWFjXHVhYzAwIFx1YWMwMFx1YzdhNSBcdWFjMDBcdWFlNGNcdWM2YjQgXHVkMDc0XHViN2VjXHVjMmE0XHVkMTMwXHVjNzU4IFx1YzkxMVx1YzJlYyBcdWM4OGNcdWQ0NWNcdWI5N2MgXHVjMTIwXHVkMGRkXHVkNTU4XHVhY2UwLCBcdWFkZjhcdWM1ZDAgXHVkNTc0XHViMmY5XHVkNTU4XHViMjk0IFx1ZDA3NFx1YjdlY1x1YzJhNFx1ZDEzMFx1YzVkMCBcdWFkZjggXHViMzcwXHVjNzc0XHVkMTMwXHViOTdjIFx1ZDNlY1x1ZDU2OFx1YzJkY1x1ZDBhOFx1YjJlNC4gXHVhYzAwXHVjN2E1IFx1YWMwMFx1YWU0Y1x1YzZiNCBcdWM5MTFcdWMyZWMgXHVjODhjXHVkNDVjXHVhYzAwIFx1YzVlY1x1YjdlYyBcdWFjMWNcdWI3N2NcdWJhNzQgXHVhZGY4XHVjOTExXHVjNWQwXHVjMTFjIFx1YWMwMFx1YzdhNSBcdWM3OTFcdWM3NDAgXHVhYzgzXHVjNzQ0IFx1YzEyMFx1ZDBkZFx1ZDU1Y1x1YjJlNC4gXHVjODhjXHVkNDVjICQoeF8xLCB5XzEpJFx1Yzc3NCAkKHhfMiwgeV8yKSRcdWJjZjRcdWIyZTQgXHVjNzkxXHViMmU0XHViMjk0IFx1YWM4M1x1Yzc0MCAkeF8xICZsdDsgeF8yJFx1YWM3MFx1YjA5OCwgJHhfMT14XzIkXHVjNzc0XHVhY2UwICR5XzEmbHQ7eV8yJFx1Yzc3OCBcdWFjYmRcdWM2YjBcdWI5N2MgXHVjNzU4XHViYmY4XHVkNTVjXHViMmU0LjxcL2xpPlxyXG5cdFx0PGxpPlx1YWMwMVx1YWMwMVx1Yzc1OCBcdWQwNzRcdWI3ZWNcdWMyYTRcdWQxMzBcdWM1ZDAgXHViMzAwXHVkNTU4XHVjNWVjIFx1ZDA3NFx1YjdlY1x1YzJhNFx1ZDEzMFx1Yzc1OCBcdWMwYzhcdWI4NWNcdWM2YjQgXHVjOTExXHVjMmVjIFx1Yzg4Y1x1ZDQ1Y1x1Yjk3YyBcdWFjYzRcdWMwYjBcdWQ1NWNcdWIyZTQuIFx1YWMwMSBcdWQwNzRcdWI3ZWNcdWMyYTRcdWQxMzBcdWM3NTggXHVjMGM4XHViODVjXHVjNmI0IFx1YzkxMVx1YzJlYyBcdWM4OGNcdWQ0NWNcdWIyOTQgXHVhZGY4IFx1ZDA3NFx1YjdlY1x1YzJhNFx1ZDEzMFx1YzVkMCBcdWQzZWNcdWQ1NjhcdWI0MWMgXHViYWE4XHViNGUwIFx1YjM3MFx1Yzc3NFx1ZDEzMFx1Yzc1OCBcdWM4OGNcdWQ0NWNcdWI0ZTRcdWI4NWNcdWJkODBcdWQxMzAgXHVhYzAxIFx1Y2MyOFx1YzZkMFx1YmNjNFx1Yjg1YyBcdWM5MTFcdWM1NTlcdWFjMTJcdWM3NDQgXHVhY2M0XHVjMGIwXHVkNTU4XHVjNWVjIFx1YWNiMFx1YzgxNVx1YjQxY1x1YjJlNC4gXHViMmU4LCBcdWFjMTJcdWM3NTggXHVhYzFjXHVjMjE4XHVhYzAwIFx1YzlkZFx1YzIxOFx1Yzc3YyBcdWFjYmRcdWM2YjAsIFx1YzkxMVx1YzU1OVx1YWMxMlx1Yzc0MCBcdWFjMTJcdWI0ZTRcdWM3NDQgXHVjODE1XHViODJjXHVkNTg4XHVjNzQ0IFx1YjU0YyBcdWFjMDBcdWM2YjRcdWIzNzAgXHViNDUwIFx1YWMxMlx1Yzc1OCBcdWQzYzlcdWFkZTBcdWM3M2NcdWI4NWMgXHVhY2M0XHVjMGIwXHViNDFjXHViMmU0LjxcL2xpPlxyXG5cdFx0PGxpPlx1YjljY1x1YzU3ZCBcdWJhYThcdWI0ZTAgXHVkMDc0XHViN2VjXHVjMmE0XHVkMTMwXHVjNzU4IFx1YzBjOFx1Yjg1Y1x1YzZiNCBcdWM5MTFcdWMyZWMgXHVjODhjXHVkNDVjXHVhYzAwIFx1YzZkMFx1Yjc5OFx1Yzc1OCBcdWM5MTFcdWMyZWMgXHVjODhjXHVkNDVjXHVjNjQwIFx1YWMxOVx1YjJlNFx1YmE3NCBcdWM1NGNcdWFjZTBcdWI5YWNcdWM5OThcdWM3NDQgXHVjODg1XHViOGNjXHVkNTVjXHViMmU0LiBcdWFkZjhcdWI4MDdcdWM5YzAgXHVjNTRhXHViMmU0XHViYTc0IFx1ZDA3NFx1YjdlY1x1YzJhNFx1ZDEzMCBcdWFkNmNcdWMxMzFcdWM3NDQgXHVjZDA4XHVhZTMwXHVkNjU0XHVkNTU4XHVhY2UwLCBcdWM3NzQgXHVjMGM4XHViODVjXHVjNmI0IFx1YzkxMVx1YzJlYyBcdWM4OGNcdWQ0NWNcdWI0ZTRcdWM3NDQgXHVjOTExXHVjMmVjIFx1Yzg4Y1x1ZDQ1Y1x1Yjg1YyBcdWFjMTZcdWIyOTQgJGskXHVhYzFjXHVjNzU4IFx1YmU0OCBcdWQwNzRcdWI3ZWNcdWMyYTRcdWQxMzBcdWI5N2MgXHVjMGM4XHViODVjIFx1YjljY1x1YjRlMFx1YjJlNC48XC9saT5cclxuXHQ8XC9vbD5cclxuXHQ8XC9saT5cclxuPFwvb2w+XHJcblxyXG48cD5cdWM2MDhcdWI5N2MgXHViNGU0XHVjNWI0LCAzXHVhYzFjXHVjNzU4IFx1YjM3MFx1Yzc3NFx1ZDEzMCAkXFx7KDEsIDIpLCAoMywgNCksICg1LCA2KVxcfSRcdWI5N2MgVUNQLUNsdXN0ZXJpbmcgXHVjNTRjXHVhY2UwXHViOWFjXHVjOTk4XHVjNzQ0IFx1Yzc3NFx1YzZhOVx1ZDU3NCBcdWI0NTAgXHVhYzFjXHVjNzU4IFx1ZDA3NFx1YjdlY1x1YzJhNFx1ZDEzMFx1Yjg1YyBcdWIwOThcdWIyMDRcdWIyOTQgXHVjMGMxXHVkNjY5XHVjNzQ0IFx1YzBkZFx1YWMwMVx1ZDU3NCBcdWJjZjRcdWM3OTAuICQoMSwgMikkXHVjNjQwICQoMywgNCkkXHViOTdjIFx1Y2QwOFx1YWUzMCBcdWM5MTFcdWMyZWMgXHVjODhjXHVkNDVjXHViODVjIFx1YzEyMFx1ZDBkZFx1ZDU1OFx1YmE3NCAkXFx7KDEsIDIpXFx9JFx1YzY0MCAkXFx7KDMsIDQpLCAoNSwgNilcXH0kIFx1YjQ1MCBcdWFjMWNcdWM3NTggXHVkMDc0XHViN2VjXHVjMmE0XHVkMTMwXHViODVjIFx1YjA5OFx1YjI1OFx1YWNlMCwgXHViNDUwIFx1ZDA3NFx1YjdlY1x1YzJhNFx1ZDEzMFx1Yzc1OCBcdWM5MTFcdWMyZWMgXHVjODhjXHVkNDVjXHViMjk0IFx1YWMwMVx1YWMwMSAkKDEsIDIpJCwgJCg0LCA1KSRcdWFjMDAgXHViNDFjXHViMmU0LiBcdWIyZTRcdWI5NzggXHVjNjA4XHVjMmRjXHViODVjICQoMSwgMikkXHVjNjQwICQoNSwgNikkXHVjNzQ0IFx1Y2QwOFx1YWUzMCBcdWM5MTFcdWMyZWMgXHVjODhjXHVkNDVjXHViODVjIFx1YzEyMFx1ZDBkZFx1ZDU1OFx1YmE3NCAkXFx7KDEsIDIpLCAoMywgNClcXH0kXHVjNjQwICRcXHsoNSwgNilcXH0kXHVjNzNjXHViODVjIFx1YjA5OFx1YjI1OFx1YWNlMCwgXHViNDUwIFx1ZDA3NFx1YjdlY1x1YzJhNFx1ZDEzMFx1Yzc1OCBcdWM5MTFcdWMyZWMgXHVjODhjXHVkNDVjXHViMjk0IFx1YWMwMVx1YWMwMSAkKDIsIDMpJCwgJCg1LCA2KSRcdWM3NzQgXHViNDFjXHViMmU0LiBcdWM2MDhcdWMyZGNcdWM1ZDBcdWMxMWMgXHVjNTRjIFx1YzIxOCBcdWM3ODhcdWI0ZWZcdWM3NzQsIFx1Y2QwOFx1YWUzMFx1YzVkMCBcdWQwNzRcdWI3ZWNcdWMyYTRcdWQxMzBcdWM3NTggXHVjOTExXHVjMmVjIFx1Yzg4Y1x1ZDQ1Y1x1Yjk3YyBcdWM1YjRcdWI1YmJcdWFjOGMgXHVjMTIwXHVkMGRkXHVkNTU4XHViMjkwXHViMGQwXHVjNWQwIFx1YjUzMFx1Yjc3YyBcdWM1NGNcdWFjZTBcdWI5YWNcdWM5OThcdWM3NTggXHVjMmU0XHVkNTg5IFx1YWNiMFx1YWNmY1x1YWMwMCBcdWIyZWNcdWI3N2NcdWM5YzBcdWJhNzAsIFx1YzcwNFx1Yzc1OCBcdWI0NTAgXHVhY2JkXHVjNmIwXHVjNWQwXHVjMTFjXHViMjk0IDJcdWJjODggXHVhY2ZjXHVjODE1XHVjNzc0IFx1YmFhOFx1YjQ1MCAyXHViYzg4IFx1YmMxOFx1YmNmNVx1YjQxY1x1YjJlNC48XC9wPlxyXG5cclxuPHA+JGs9MiRcdWI4NWMgXHVhY2UwXHVjODE1XHVkNTVjXHViMmU0XHViYTc0IFx1YWMwMFx1YjJhNVx1ZDU1YyBcdWNkMDhcdWFlMzAgXHVjOTExXHVjMmVjIFx1Yzg4Y1x1ZDQ1Y1x1Yzc1OCBcdWFjYmRcdWM2YjBcdWM3NTggXHVjMjE4XHViMjk0IFx1Y2QxZCAkbihuLTEpXC8yJCBcdWFjMDBcdWM5YzBcdWM3NzRcdWIyZTQuIFx1YzU0Y1x1YWNlMFx1YjlhY1x1Yzk5OFx1Yzc0NCBcdWM2NDRcdWI4Y2NcdWQ1ODhcdWM3NDQgXHViNTRjIFx1YjQ1MCBcdWQwNzRcdWI3ZWNcdWMyYTRcdWQxMzBcdWM3NTggXHVjOTExXHVjMmVjIFx1Yzg4Y1x1ZDQ1Y1x1Yjg1YyBcdWFjMDBcdWIyYTVcdWQ1NWMgXHVhY2JkXHVjNmIwXHViOTdjIFx1YmFhOFx1YjQ1MCBcdWNjM2VcdWFjZTAsIFx1YWMwMSBcdWFjYmRcdWM2YjBcdWM1ZDAgXHViMzAwXHVkNTc0IFx1YzIxOFx1YjgzNFx1ZDU1OFx1YjI5NCBcdWIzNzBcdWFlNGNcdWM5YzAgXHVhYzc4XHViOWFjXHViMjk0IDJcdWJjODggXHVhY2ZjXHVjODE1XHVjNzU4IFx1YmMxOFx1YmNmNSBcdWQ2OWZcdWMyMThcdWM3NTggXHVhZTMwXHViMzEzXHVhYzEyXHVjNzQ0IFx1YWQ2Y1x1ZDU1OFx1YzJkY1x1YzYyNC48XC9wPlxyXG4iLCJpbnB1dCI6IjxwPlx1Y2NhYiBcdWJjODhcdWM5ZjggXHVjOTA0XHVjNWQwIFx1YjM3MFx1Yzc3NFx1ZDEzMFx1Yzc1OCBcdWMyMTggJE4kXHVjNzc0IFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNC4gKCQyIFxcbGVxIE4gXFxsZXEgNTEyJCk8XC9wPlxyXG5cclxuPHA+XHVhZGY4IFx1ZDZjNCAkTiRcdWFjMWNcdWM3NTggXHVjOTA0XHVjNWQwICRpJFx1YmM4OFx1YzlmOCBcdWIzNzBcdWM3NzRcdWQxMzBcdWM3NTggXHVjODhjXHVkNDVjXHVjNzc4ICQoeF9pLCB5X2kpJFx1YWMwMCBcdWFjZjVcdWJjMzFcdWM3NDQgXHVjMGFjXHVjNzc0XHVjNWQwIFx1YjQ1MFx1YWNlMCBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuIFx1YmFhOFx1YjRlMCBcdWM4OGNcdWQ0NWNcdWIyOTQgXHVjODE1XHVjMjE4XHVjNzc0XHViYTcwLCBcdWJhYThcdWI0ZTAgXHViMzcwXHVjNzc0XHVkMTMwXHVjNzU4IFx1Yzg4Y1x1ZDQ1Y1x1YjI5NCBcdWMxMWNcdWI4NWMgXHViMmU0XHViOTc0XHViMmU0LiAoJC0xMF42IFxcbGVxIHhfaSwgeV9pIFxcbGVxIDEwXjYkKTxcL3A+XHJcbiIsIm91dHB1dCI6IjxwPlx1YjQ1MCBcdWQwNzRcdWI3ZWNcdWMyYTRcdWQxMzBcdWM3NTggXHVjZDVjXHVjODg1IFx1YzkxMVx1YzJlYyBcdWM4OGNcdWQ0NWMgJFxcbXVfMSA9ICh4XntcXG11fV97MX0sIHlee1xcbXV9X3sxfSkkLCAkXFxtdV8yID0gKHhee1xcbXV9X3syfSwgeV57XFxtdX1fezJ9KSRcdWM2NDAgXHVkMDc0XHViN2VjXHVjMmE0XHVkMTMwXHVjNzU4IFx1YzkxMVx1YzJlYyBcdWM4OGNcdWQ0NWNcdWFjMDAgXHViNDUwIFx1Yzg4Y1x1ZDQ1Y1x1Yjg1YyBcdWMyMThcdWI4MzRcdWQ1NThcdWIyOTQgXHViMzcwXHVhZTRjXHVjOWMwIFx1YWM3OFx1YjlhY1x1YjI5NCAyXHViYzg4IFx1YWNmY1x1YzgxNVx1Yzc1OCBcdWJjMThcdWJjZjUgXHVkNjlmXHVjMjE4XHVjNzU4IFx1YWUzMFx1YjMxM1x1YWMxMlx1Yzc0NCBcdWFjZjVcdWJjMzFcdWM3NDQgXHVjMGFjXHVjNzc0XHVjNWQwIFx1YjQ1MFx1YWNlMCBcdWNkOWNcdWI4MjVcdWQ1NWNcdWIyZTQuIFx1YjJlOCwgXHViNDUwIFx1Yzg4Y1x1ZDQ1YyBcdWM5MTEgXHViMzU0IFx1Yzc5MVx1Yzc0MCBcdWNhYmRcdWM3NDQgJFxcbXVfMSRcdWM3M2NcdWI4NWMgXHViNDU0XHViMmU0LiBcdWFjMDBcdWIyYTVcdWQ1NWMgXHVjODhjXHVkNDVjIFx1YzMwZFx1Yzc3NCBcdWM1ZWNcdWI3ZWMgXHVhYzFjIFx1Yzg3NFx1YzdhY1x1ZDU1OFx1YjI5NCBcdWFjYmRcdWM2YjAgJFxcbXVfMSRcdWM3NzQgXHVjNzkxXHVjNzQwIFx1YWM4M1x1YmQ4MFx1ZDEzMCwgJFxcbXVfMSRcdWM3NzQgXHVhYzE5XHVjNzQwIFx1YWNiZFx1YzZiMFx1YjI5NCAkXFxtdV8yJFx1YWMwMCBcdWM3OTFcdWM3NDAgXHVhYzgzXHViZDgwXHVkMTMwIFx1Y2Q5Y1x1YjgyNVx1ZDU1Y1x1YjJlNC4gXHVjZDljXHViODI1XHVkNTU4XHViMjk0IFx1YWMxMlx1Yzc1OCBcdWM4MDhcdWIzMDAgXHVjNjI0XHVjYzI4IFx1YjYxMFx1YjI5NCBcdWMwYzFcdWIzMDAgXHVjNjI0XHVjYzI4XHViMjk0ICQxMF57LTZ9JFx1YWU0Y1x1YzljMCBcdWQ1YzhcdWM2YTlcdWQ1NWNcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YzhmY1x1YzViNFx1YzljMFx1YjI5NCBcdWJhYThcdWI0ZTAgXHViMzcwXHVjNzc0XHVkMTMwXHVjNWQwXHVjMTFjIFx1Y2M5OFx1Yzc0Y1x1YzVkMCBcdWQwNzRcdWI3ZWNcdWMyYTRcdWQxMzBcdWM3NTggXHVjOTExXHVjMmVjIFx1Yzg4Y1x1ZDQ1Y1x1YWMwMCBcdWI0MThcdWIyOTQgXHViMzcwXHVjNzc0XHVkMTMwXHViOTdjIFx1YzViNFx1YjViYlx1YWM4YyBcdWFjZTBcdWI5NzRcdWIzNTRcdWI3N2NcdWIzYzQgVUNQLUNsdXN0ZXJpbmdcdWM3NzQgXHVjMmU0XHVkMzI4XHVkNTU4XHViMjk0IFx1YzBjMVx1ZDY2OSwgXHVjOTg5IFx1YjQ1MCBcdWQwNzRcdWI3ZWNcdWMyYTRcdWQxMzBcdWM3NTggXHVjOTExXHVjMmVjIFx1Yzg4Y1x1ZDQ1Y1x1YWMwMCBcdWFjMTlcdWM1NDRcdWM5YzBcdWFjNzBcdWIwOTgsIFx1ZDU1Y1x1Y2FiZCBcdWQwNzRcdWI3ZWNcdWMyYTRcdWQxMzBcdWFjMDAgXHViZTQ0XHVhYzcwXHViMDk4LCBcdWQwNzRcdWI3ZWNcdWMyYTRcdWQxMzBcdWM3NTggXHVjOTExXHVjMmVjIFx1Yzg4Y1x1ZDQ1Y1x1YWMwMCBcdWMyMThcdWI4MzRcdWQ1NThcdWM5YzAgXHVjNTRhXHVhYzhjIFx1YjQxOFx1YjI5NCBcdWMwYzFcdWQ2NjlcdWM3NzQgXHViYzFjXHVjMGRkXHVkNTU4XHVjOWMwIFx1YzU0YVx1Yzc0Y1x1Yzc3NCBcdWJjZjRcdWM3YTVcdWI0MWNcdWIyZTQuPFwvcD5cclxuIiwiaGludCI6IjxwPlx1Y2NhYiBcdWJjODhcdWM5ZjggXHVjNjA4XHVjODFjXHVjNWQwXHVjMTFjLCBcdWM1NGNcdWFjZTBcdWI5YWNcdWM5OThcdWM3NDAgXHViMmU0XHVjNzRjXHVhY2ZjIFx1YWMxOVx1Yzc3NCBcdWIzZDlcdWM3OTFcdWQ1NWNcdWIyZTQuPFwvcD5cclxuXHJcbjx1bD5cclxuXHQ8bGk+XHVjZDA4XHVhZTMwIFx1YjQ1MCBcdWQwNzRcdWI3ZWNcdWMyYTRcdWQxMzBcdWM3NTggXHVjOTExXHVjMmVjIFx1Yzg4Y1x1ZDQ1Y1x1Yjg1YyAkKDEsIDIpJCwgJCgzLCA0KSRcdWI5N2MgXHVjMTIwXHVkMGRkXHVkNTVjIFx1YWNiZFx1YzZiMDogXHVjY2FiIFx1YmM4OFx1YzlmOCBcdWJjMThcdWJjZjVcdWM3NDQgXHVkMWI1XHVkNTc0IFx1YjQ1MCBcdWQwNzRcdWI3ZWNcdWMyYTRcdWQxMzBcdWM3NTggXHVjOTExXHVjMmVjIFx1Yzg4Y1x1ZDQ1Y1x1YWMwMCBcdWFjMDFcdWFjMDEgJCgxLCAyKSQsICQoNCwgNSkkXHVjNzNjXHViODVjIFx1YmMxNFx1YjAwY1x1YWNlMCwgXHViNDUwIFx1YmM4OFx1YzlmOCBcdWJjMThcdWJjZjVcdWM1ZDBcdWMxMWMgXHVkMDc0XHViN2VjXHVjMmE0XHVkMTMwXHVjNzU4IFx1YzkxMVx1YzJlYyBcdWM4OGNcdWQ0NWNcdWFjMDAgXHViYzE0XHViMDBjXHVjOWMwIFx1YzU0YVx1YzU0NCBcdWM1NGNcdWFjZTBcdWI5YWNcdWM5OThcdWM3NzQgXHVjODg1XHViOGNjXHViNDFjXHViMmU0LjxcL2xpPlxyXG5cdDxsaT5cdWNkMDhcdWFlMzAgXHViNDUwIFx1ZDA3NFx1YjdlY1x1YzJhNFx1ZDEzMFx1Yzc1OCBcdWM5MTFcdWMyZWMgXHVjODhjXHVkNDVjXHViODVjICQoMSwgMikkLCAkKDUsIDYpJFx1Yjk3YyBcdWMxMjBcdWQwZGRcdWQ1NWMgXHVhY2JkXHVjNmIwOiBcdWNjYWIgXHViYzg4XHVjOWY4IFx1YmMxOFx1YmNmNVx1Yzc0NCBcdWQxYjVcdWQ1NzQgXHViNDUwIFx1ZDA3NFx1YjdlY1x1YzJhNFx1ZDEzMFx1Yzc1OCBcdWM5MTFcdWMyZWMgXHVjODhjXHVkNDVjXHVhYzAwIFx1YWMwMVx1YWMwMSAkKDIsIDMpJCwgJCg1LCA2KSRcdWM3M2NcdWI4NWMgXHViYzE0XHViMDBjXHVhY2UwLCBcdWI0NTAgXHViYzg4XHVjOWY4IFx1YmMxOFx1YmNmNVx1YzVkMFx1YzExYyBcdWQwNzRcdWI3ZWNcdWMyYTRcdWQxMzBcdWM3NTggXHVjOTExXHVjMmVjIFx1Yzg4Y1x1ZDQ1Y1x1YWMwMCBcdWJjMTRcdWIwMGNcdWM5YzAgXHVjNTRhXHVjNTQ0IFx1YzU0Y1x1YWNlMFx1YjlhY1x1Yzk5OFx1Yzc3NCBcdWM4ODVcdWI4Y2NcdWI0MWNcdWIyZTQuPFwvbGk+XHJcblx0PGxpPlx1Y2QwOFx1YWUzMCBcdWI0NTAgXHVkMDc0XHViN2VjXHVjMmE0XHVkMTMwXHVjNzU4IFx1YzkxMVx1YzJlYyBcdWM4OGNcdWQ0NWNcdWI4NWMgJCgzLCA0KSQsICQoNSwgNikkXHViOTdjIFx1YzEyMFx1ZDBkZFx1ZDU1YyBcdWFjYmRcdWM2YjA6IFx1Y2NhYiBcdWJjODhcdWM5ZjggXHViYzE4XHViY2Y1XHVjNzQ0IFx1ZDFiNVx1ZDU3NCBcdWI0NTAgXHVkMDc0XHViN2VjXHVjMmE0XHVkMTMwXHVjNzU4IFx1YzkxMVx1YzJlYyBcdWM4OGNcdWQ0NWNcdWFjMDAgXHVhYzAxXHVhYzAxICQoMiwgMykkLCAkKDUsIDYpJFx1YzczY1x1Yjg1YyBcdWJjMTRcdWIwMGNcdWFjZTAsIFx1YjQ1MCBcdWJjODhcdWM5ZjggXHViYzE4XHViY2Y1XHVjNWQwXHVjMTFjIFx1ZDA3NFx1YjdlY1x1YzJhNFx1ZDEzMFx1Yzc1OCBcdWM5MTFcdWMyZWMgXHVjODhjXHVkNDVjXHVhYzAwIFx1YmMxNFx1YjAwY1x1YzljMCBcdWM1NGFcdWM1NDQgXHVjNTRjXHVhY2UwXHViOWFjXHVjOTk4XHVjNzc0IFx1Yzg4NVx1YjhjY1x1YjQxY1x1YjJlNC48XC9saT5cclxuPFwvdWw+XHJcblxyXG48cD5cdWMxMzggXHVhYzAwXHVjOWMwIFx1YWNiZFx1YzZiMFx1Yjk3YyBcdWJhYThcdWI0NTAgXHVhY2UwXHViODI0XHVkNTg4XHVjNzQ0IFx1YjU0YywgXHVjOTExXHVjMmVjIFx1Yzg4Y1x1ZDQ1Y1x1YWMwMCAkXFxtdV8xPSgxLCAyKSRcdWM2NDAgJFxcbXVfMj0oNCwgNSkkXHViODVjIFx1YzIxOFx1YjgzNFx1ZDU1OFx1YjI5NCBcdWIzNzBcdWM1ZDAgXHVhYzc4XHViOWFjXHViMjk0IFx1ZDNjOVx1YWRlMCBcdWJjMThcdWJjZjUgXHVkNjlmXHVjMjE4XHViMjk0IDJcdWQ2OGNcdWM3NzRcdWIyZTQuIFx1YjljOFx1Y2MyY1x1YWMwMFx1YzljMFx1Yjg1YywgJFxcbXVfMT0oMiwgMykkXHVhY2ZjICRcXG11XzI9KDUsIDYpJFx1YzczY1x1Yjg1YyBcdWMyMThcdWI4MzRcdWQ1NThcdWIyOTQgXHViMzcwXHVjNWQwIFx1YWM3OFx1YjlhY1x1YjI5NCBcdWQzYzlcdWFkZTAgXHViYzE4XHViY2Y1IFx1ZDY5Zlx1YzIxOCBcdWI2MTBcdWQ1NWMgMlx1ZDY4Y1x1Yzc3NFx1YjJlNC4gXHViNDUwICRcXG11XzEkIFx1YzkxMSAkKDEsIDIpJFx1YWMwMCAkKDIsIDMpJFx1YmNmNFx1YjJlNCBcdWM3OTFcdWM3M2NcdWJiYzBcdWI4NWMgJCgxLCAyKSRcdWM2NDAgJCg0LCA1KSRcdWI4NWMgXHVjMjE4XHViODM0XHVkNTU4XHViMjk0IFx1YWNiZFx1YzZiMFx1YmQ4MFx1ZDEzMCBcdWNkOWNcdWI4MjVcdWQ1NWNcdWIyZTQuPFwvcD5cclxuIiwib3JpZ2luYWwiOiIxIiwiaHRtbF90aXRsZSI6IjAiLCJwcm9ibGVtX2xhbmdfdGNvZGUiOiJLb3JlYW4ifSx7InByb2JsZW1faWQiOiIyMjg3NSIsInByb2JsZW1fbGFuZyI6IjEiLCJ0aXRsZSI6IlVDUC1DbHVzdGVyaW5nIiwiZGVzY3JpcHRpb24iOiI8cD48ZW0+Q2x1c3RlcmluZyBhbGdvcml0aG1zPFwvZW0+Jm5ic3A7YXJlIGFsZ29yaXRobXMgdGhhdCBwYXJ0aXRpb24gZGF0YSBpbnRvIHN1YnNldHMgbmFtZWQmbmJzcDs8ZW0+Y2x1c3RlcnM8XC9lbT4sIGludGVuZGluZyB0byBwbGFjZSBzaW1pbGFyIGRhdGEgaW50byB0aGUgc2FtZSBjbHVzdGVyIGFuZCBkaWZmZXJlbnQgZGF0YSBpbnRvIGRpZmZlcmVudCBjbHVzdGVycy48XC9wPlxyXG5cclxuPHA+UHJvZmVzc29yIEppaG9vbiBLbyBkaXNjb3ZlcmVkIHRoZSByZXZvbHV0aW9uYXJ5IGNsdXN0ZXJpbmcgYWxnb3JpdGhtJm5ic3A7PGVtPlVDUC1DbHVzdGVyaW5nPFwvZW0+LiBHaXZlbiZuYnNwOyROJCZuYnNwO2Rpc3RpbmN0IHBvaW50cyBpbiBhIDItZGltZW5zaW9uYWwgc3BhY2UsIHRoZSBhbGdvcml0aG0gcGFydGl0aW9ucyB0aGUgcG9pbnRzIGludG8mbmJzcDskSyQmbmJzcDtjbHVzdGVycyB3aXRoIHRoZSBmb2xsb3dpbmcgYWxnb3JpdGhtLjxcL3A+XHJcblxyXG48dWw+XHJcblx0PGxpPkVhY2ggY2x1c3RlciBpcyBhc3NpZ25lZCBhJm5ic3A7PGVtPnJlcHJlc2VudGF0aXZlIGNvb3JkaW5hdGU8XC9lbT4mbmJzcDsoUkMpIHdoaWNoIHdpbGwgYmUgdXNlZCBsYXRlci4gSW5pdGlhbGx5LCZuYnNwOyRLJCZuYnNwO3BvaW50cyBmcm9tIHRoZSBnaXZlbiZuYnNwOyROJCZuYnNwO3BvaW50cyBhcmUgY2hvc2VuLCBhbmQgZWFjaCBjbHVzdGVyJiMzOTtzIFJDIGNvcnJlc3BvbmRzIHRvIG9uZSBvZiB0aGUgY2hvc2VuIHBvaW50cy4gRXZlbiB0aG91Z2ggdGhlIGNvb3JkaW5hdGVzIGFyZSBjaG9zZW4gZnJvbSB0aGUgcG9pbnRzLCBhbGwgY2x1c3RlcnMgYXJlIGVtcHR5IGF0IHRoaXMgcG9pbnQuPFwvbGk+XHJcblx0PGxpPlJlcGVhdCB0aGUgZm9sbG93aW5nIGFsZ29yaXRobSZuYnNwOzxjb2RlPnJlY29tcHV0ZTxcL2NvZGU+OlxyXG5cdDx1bD5cclxuXHRcdDxsaT5Gb3IgZWFjaCBwb2ludCwgaW5zZXJ0IGl0IGludG8gdGhlIGNsdXN0ZXIgd2hpY2ggbWluaW1pemVzIHRoZSBkaXN0YW5jZSB0byBpdHMgUkMuIElmIHRoZXJlIGlzIG1vcmUgdGhhbiBvbmUgc3VjaCBjbHVzdGVyLCBwaWNrIHRoZSBvbmUgd2l0aCB0aGUgc21hbGxlc3QgUkMgcGVyIHRoZWlyIGxleGljb2dyYXBoaWMgb3JkZXIuPFwvbGk+XHJcblx0XHQ8bGk+Rm9yIGVhY2ggY2x1c3RlciwgcmVjb21wdXRlIGl0cyBSQy4gVGhlJm5ic3A7JHgkLWNvb3JkaW5hdGUgb2YgdGhlIG5ldyBSQyBpcyB0aGUgbWVkaWFuIG9mIHRoZSZuYnNwOyR4JC1jb29yZGluYXRlcyBvZiBwb2ludHMgaW4gdGhlIGNsdXN0ZXIuIFNpbWlsYXJseSwgdGhlJm5ic3A7JHkkLWNvb3JkaW5hdGUgaXMgdGhlIG1lZGlhbiBvZiB0aGUmbmJzcDskeSQtY29vcmRpbmF0ZXMuPFwvbGk+XHJcblx0XHQ8bGk+SWYgbm9uZSBvZiB0aGUgY2x1c3RlcnMgaGFkIHRoZWlyIFJDIGNoYW5nZSwgdGhlIGFsZ29yaXRobSB0ZXJtaW5hdGVzLiBPdGhlcndpc2UsIGVtcHR5IGFsbCB0aGUgY2x1c3RlcnMgYW5kIHJ1biB0aGUmbmJzcDs8Y29kZT5yZWNvbXB1dGU8XC9jb2RlPiZuYnNwO2FsZ29yaXRobSBhZ2FpbiAoZW1wdHlpbmcgZG9lcyBub3QgcmVpbml0aWFsaXplIHRoZSBSQykuPFwvbGk+XHJcblx0PFwvdWw+XHJcblx0PFwvbGk+XHJcbjxcL3VsPlxyXG5cclxuPHA+SGVyZSwgdGhlIGZvbGxvd2luZyBkZWZpbml0aW9ucyBhcmUgdXNlZDo8XC9wPlxyXG5cclxuPHVsPlxyXG5cdDxsaT5Qb2ludCZuYnNwOyQoeF8xLCB5XzEpJCZuYnNwO2lzIGxleGljb2dyYXBoaWNhbGx5IHNtYWxsZXIgdGhhbiZuYnNwOyQoeF8yLCB5XzIpJCZuYnNwO2lmIGFuZCBvbmx5IGlmJm5ic3A7JHhfMSAmbHQ7IHhfMiQmbmJzcDtvciZuYnNwOyR4XzEgPSB4XzIkJm5ic3A7YW5kJm5ic3A7JHlfMSAmbHQ7IHlfMiQuPFwvbGk+XHJcblx0PGxpPkZvciBhIHNlcXVlbmNlIG9mIGxlbmd0aCZuYnNwOyRuICZndDsgMCQsIHRoZSBtZWRpYW4gaXMgZGVmaW5lZCBhcyB0aGUmbmJzcDskKG4rMSlcLzIkLXRoIGxhcmdlc3QgdmFsdWUgaWYmbmJzcDskbiQmbmJzcDtpcyBvZGQsIGFuZCBhcyB0aGUmbmJzcDthdmVyYWdlJm5ic3A7b2YgdGhlJm5ic3A7JG5cLzIkLXRoIGFuZCZuYnNwOyRuXC8yKzEkLXRoIGxhcmdlc3QgdmFsdWVzIGlmJm5ic3A7JG4kJm5ic3A7aXMgZXZlbi48XC9saT5cclxuPFwvdWw+XHJcblxyXG48cD5Gb3IgZXhhbXBsZSwgY29uc2lkZXIgdGhlIGNhc2Ugd2hlcmUmbmJzcDskTiA9IDMkJm5ic3A7cG9pbnRzJm5ic3A7JFxceygxLCAyKSwgKDMsIDQpLCAoNSwgNilcXH0kJm5ic3A7YXJlIGNsdXN0ZXJlZCBpbnRvJm5ic3A7JEsgPSAyJCZuYnNwO3NldHMuIFN1cHBvc2UgdGhhdCB0aGUgcG9pbnRzJm5ic3A7JCgxLCAyKSQmbmJzcDthbmQmbmJzcDskKDMsIDQpJCZuYnNwO2FyZSBzZWxlY3RlZCBhcyBSQ3MuIFRoZSBmaXJzdCBpdGVyYXRpb24gb2YgdGhlJm5ic3A7PGNvZGU+cmVjb21wdXRlPFwvY29kZT4mbmJzcDthbGdvcml0aG0gY2x1c3RlcnMgdGhlIHBvaW50cyBpbnRvJm5ic3A7JFxceygxLCAyKVxcfSQmbmJzcDthbmQmbmJzcDskXFx7KDMsIDQpLCAoNSwgNilcXH0kJm5ic3A7d2l0aCB0aGVpciBSQ3MgYmVpbmcmbmJzcDskKDEsIDIpJCZuYnNwO2FuZCZuYnNwOyQoNCwgNSkkLiBUaGUgc2Vjb25kIGl0ZXJhdGlvbiBkb2VzIG5vdCBjaGFuZ2UgdGhlIFJDcywgdGh1cyB0aGUmbmJzcDs8Y29kZT5yZWNvbXB1dGU8XC9jb2RlPiZuYnNwO2FsZ29yaXRobSBpcyBleGVjdXRlZCB0d2ljZS4gU3VwcG9zZSB0aGF0IHRoZSBwb2ludHMmbmJzcDskKDEsIDIpJCZuYnNwO2FuZCZuYnNwOyQoNSwgNikkJm5ic3A7YXJlIHNlbGVjdGVkIGFzIFJDcy4gVGhlbiB0aGUgZmlyc3QgaXRlcmF0aW9uIG9mIHRoZSZuYnNwOzxjb2RlPnJlY29tcHV0ZTxcL2NvZGU+Jm5ic3A7YWxnb3JpdGhtIGNsdXN0ZXJzIHRoZSBwb2ludCBpbnRvJm5ic3A7JFxceygxLCAyKSwgKDMsIDQpXFx9JCZuYnNwO2FuZCZuYnNwOyRcXHsoNSwgNilcXH0kJm5ic3A7d2l0aCB0aGVpciBSQ3MgYmVpbmcmbmJzcDskKDIsIDMpJCZuYnNwO2FuZCZuYnNwOyQoNSwgNikkLiBUaGUgc2Vjb25kIGl0ZXJhdGlvbiBkb2VzIG5vdCBjaGFuZ2UgdGhlIFJDcywgdGh1cyB0aGUmbmJzcDs8Y29kZT5yZWNvbXB1dGU8XC9jb2RlPiZuYnNwO2FsZ29yaXRobSBpcyBleGVjdXRlZCB0d2ljZS4gRnJvbSB0aGUgYWJvdmUgZXhhbXBsZSwgd2UgY2FuIHNlZSB0aGF0IHRoZSBpbml0aWFsIGNob2ljZSBvZiB0aGUgUkMgbWF5IGNoYW5nZSB0aGUgcmVzdWx0IG9mIHRoZSBjbHVzdGVyaW5nLjxcL3A+XHJcblxyXG48cD5JbiB0aGlzIHByb2JsZW0sIGxldCYjMzk7cyBmb2N1cyBvbiB0aGUgY2FzZSZuYnNwOyRLID0gMiQuIFN1cHBvc2UgdGhhdCBhbGwmbmJzcDskTihOLTEpXC8yJCZuYnNwO3Bvc3NpYmxlIGluaXRpYWwgcmVwcmVzZW50YXRpdmUgY29vcmRpbmF0ZXMgYXJlIGNob3NlbiBmb3IgZWFjaCBjbHVzdGVyIGVxdWlwcm9iYWJseS4gUGxlYXNlIGZpbmQgYWxsIHRoZSBwb3NzaWJsZSBzZXRzIG9mIHJlcHJlc2VudGF0aXZlIGNvb3JkaW5hdGVzIGF0IHRoZSBlbmQgb2YgdGhlIGFsZ29yaXRobSwgYW5kIHRoZSBleHBlY3RlZCB2YWx1ZSBvZiBleGVjdXRpb24gY291bnQgZm9yJm5ic3A7PGVtPnJlY29tcHV0ZTxcL2VtPiZuYnNwO2lmIHRoZSBhbGdvcml0aG0gcmVhY2hlcyB0aGlzIHNldCBvZiBwb2ludHMuPFwvcD5cclxuIiwiaW5wdXQiOiI8cD5UaGUgZmlyc3QgbGluZSBjb250YWlucyBhIHNpbmdsZSBpbnRlZ2VyJm5ic3A7JE4kJm5ic3A7KCQyIFxcbGUgTiBcXGxlIDUxMiQpLjxcL3A+XHJcblxyXG48cD5UaGUgbmV4dCZuYnNwOyROJCZuYnNwO2xpbmVzIGNvbnRhaW4gdHdvIGludGVnZXJzJm5ic3A7JHhfaSQmbmJzcDthbmQmbmJzcDskeV9pJCZuYnNwO2Rlbm90aW5nIHBvaW50Jm5ic3A7JCh4X2ksIHlfaSkkLiBBbGwgcG9pbnRzIGFyZSBkaXN0aW5jdCAoJC0xMF42IFxcbGUgeF9pLCB5X2kgXFxsZSAxMF42JCkuPFwvcD5cclxuIiwib3V0cHV0IjoiPHA+T3V0cHV0IGFsbCB0aGUgcG9zc2libGUgc2V0cyBvZiByZXByZXNlbnRhdGl2ZSBjb29yZGluYXRlcywgb25lIHBlciBsaW5lLCBpbiB0aGUgZm9sbG93aW5nIGZvcm1hdC48XC9wPlxyXG5cclxuPHA+TGV0Jm5ic3A7JCh4XzEsIHlfMSksICh4XzIsIHlfMikkJm5ic3A7YmUgdGhlIGZpbmFsIHJlcHJlc2VudGF0aXZlIGNvb3JkaW5hdGVzLiBPdXRwdXQgZml2ZSByZWFsIG51bWJlcnMmbmJzcDskeF8xLCB5XzEsIHhfMiwgeV8yLCBFJCZuYnNwO3doZXJlJm5ic3A7JCh4XzEsIHlfMSkkJm5ic3A7aXMgbGV4aWNvZ3JhcGhpY2FsbHkgc21hbGxlciB0aGFuJm5ic3A7JCh4XzIsIHlfMikkLCBhbmQmbmJzcDskRSQmbmJzcDtpcyB0aGUgZXhwZWN0ZWQgdmFsdWUgb2YgZXhlY3V0aW9uIGNvdW50IGZvciZuYnNwOzxlbT5jb21wdXRlPFwvZW0+Jm5ic3A7aWYgdGhlIGFsZ29yaXRobSByZWFjaGVzIHRoaXMgc2V0IG9mIHBvaW50cy48XC9wPlxyXG5cclxuPHA+VGhlIHNldHMgbXVzdCBiZSBwcmludGVkIGluIGxleGljb2dyYXBoaWMgb3JkZXIgYnkmbmJzcDskKHhfMSwgeV8xKSQsIHdpdGggc2V0cyB0aGF0IGhhdmUgdGhlIHNhbWUgcmVwcmVzZW50YXRpdmUgY29vcmRpbmF0ZSBmb3ImbmJzcDskKHhfMSwgeV8xKSQmbmJzcDtwcmludGVkIGluIGxleGljb2dyYXBoaWMgb3JkZXIgYnkmbmJzcDskKHhfMiwgeV8yKSQuPFwvcD5cclxuXHJcbjxwPkFsbCB2YWx1ZXMgbXVzdCBiZSB3aXRoaW4gYW4gYWJzb2x1dGUgb3IgcmVsYXRpdmUgZXJyb3Igb2YmbmJzcDskMTBeey02fSQuPFwvcD5cclxuXHJcbjxwPlRoZSBpbnB1dCBkYXRhIGFyZSBkZXNpZ25lZCBzdWNoIHRoYXQgYW55IGNob2ljZSBvZiBpbml0aWFsIFJDIHdpbGwgbm90IG1ha2UgdGhlIGFsZ29yaXRobSByZWFjaCBzb21lIHN0YXRlIHdoZXJlIGFueSBvZiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgaXMgdHJ1ZTo8XC9wPlxyXG5cclxuPHVsPlxyXG5cdDxsaT5Tb21lIGNsdXN0ZXIgYmVjb21lcyBlbXB0eS48XC9saT5cclxuXHQ8bGk+VGhlJm5ic3A7PGVtPnJlY29tcHV0ZTxcL2VtPiZuYnNwO2FsZ29yaXRobSBpcyBpbnZva2VkIGluZmluaXRlbHkgbWFueSB0aW1lcy48XC9saT5cclxuXHQ8bGk+VHdvIG9yIG1vcmUgY2x1c3RlcnMgaGF2ZSB0aGUgc2FtZSBSQy48XC9saT5cclxuPFwvdWw+XHJcbiIsImhpbnQiOiIiLCJvcmlnaW5hbCI6IjAiLCJodG1sX3RpdGxlIjoiMCIsInByb2JsZW1fbGFuZ190Y29kZSI6IkVuZ2xpc2gifV0=