시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
3 초 128 MB 1 0 0 0.000%

문제

평면 위에 점이 여러 개 주어진다. 이 점을 모두 지나는 지그재그 선을 찾으려고 한다. 이때, 전환점(turning point)의 개수를 가장 적게 하려고 한다. 또, 전환점의 개수가 같은 경우에는 선의 길이가 가장 작은 것을 찾으려고 한다.

예를 들어, 아래와 같이 평면 위에 점이 9개가 있다고 하자.

지그재그 선은 여러 선분으로 이루어져 있고, 각 선분은 점을 두 개 이상 지나야 한다.

지그재그 선은 선이 꺽일 수 있는데, 이 꺽이는 지점을 전환점(turning point)라고 한다. 전환점은 주어진 점 위에 있을 수도 있고, 아닐 수도 있다.

왼쪽 지그재그 선의 길이: 8 + 3√2 ≃ 12.242641, 오른쪽 지그재그 선의 길이: 2√2 + (6 + 1/2) + 5√5/2 ≃ 14.918597

위의 그림은 주어진 점을 지나는 지그재그 선이고 두 선 모두 전환점의 개수는 3개이다. 왼쪽 지그재그 선의 길이는 오른쪽 지그재그 선의 길이보다 짧다. 또, 왼쪽 지그재그 선은 주어진 아홉 개의 점을 지나는 가장 짧은 지그재그 선이다.

전환점을 네 개 갖는 지그재그 선은 아래와 같다. 이 선의 길이는 위의 그림의 길이보다 짧지만, 전환점의 수가 더 많기 때문에 정답이 아니다.

아래와 같이 점이 7개 있고, 그 점을 잇는 두가지로 이었다고 하자. 이때, 왼쪽의 길이가 오른쪽보다 더 길지만, 정답은 왼쪽 그림이 된다. 그 이유는 지그재그 선의 모든 선분은 점을 두 개 이상 지나야 하기 때문이다.

점이 주어졌을 때, 지그재그 선을 구하는 프로그램을 작성하시오.

입력

입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 점의 개수 n이 주어진다. 다음 n개의 줄에는 점의 좌표가 주어진다.

모든 좌표는 음이 아닌 정수이고, 공백으로 구분되어 있다. n은 2이상 10이하의 자연수이고, x,y좌표는 0이상 10이하의 정수이다. 점의 순서는 별 의미가 없다.

출력

각 테스트 케이스에 대해서, 가장 전환점을 갖는 지그재그 선 중 가장 짧은 것의 전환점의 개수와 길이를 출력한다. 선의 길이는 정답과의 오차가 0.0001까지 허용된다.

가장 작은 전환점의 개수는 최대 4개이며, 따라서 선분의 개수는 최대 5개가 된다.

예제 입력 1

2
0 0
10 9
4
0 0
3 1
0 3
3 3
10
2 2
4 2
6 2
2 4
4 4
6 4
2 6
4 6
6 6
3 3
10
0 0
2 0
4 0
0 2
2 2
4 2
0 4
2 4
4 4
6 8
9
0 0
1 0
3 0
0 1
1 1
3 1
0 2
1 2
2 2
10
0 0
1 0
0 1
1 1
9 9
9 10
10 9
10 10
0 2
10 8
10
0 0
0 10
2 0
2 1
2 7
2 10
5 1
6 7
9 2
10 9
0

예제 출력 1

0 13.45362405
1 18.48683298
3 24.14213562
4 24.94813673
3 12.24264069
3 60.78289622
3 502.7804353

힌트

첫 번째 데이터: 

두 번째 데이터: 

세 번째 데이터: 

네 번째 데이터: 

W3sicHJvYmxlbV9pZCI6IjM4OTQiLCJwcm9ibGVtX2xhbmciOiIwIiwidGl0bGUiOiJcdWM5YzBcdWFkZjhcdWM3YWNcdWFkZjgiLCJkZXNjcmlwdGlvbiI6IjxwPlxyXG5cdFx1ZDNjOVx1YmE3NCBcdWM3MDRcdWM1ZDAgXHVjODEwXHVjNzc0IFx1YzVlY1x1YjdlYyBcdWFjMWMgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0LiBcdWM3NzQgXHVjODEwXHVjNzQ0IFx1YmFhOFx1YjQ1MCBcdWM5YzBcdWIwOThcdWIyOTQgXHVjOWMwXHVhZGY4XHVjN2FjXHVhZGY4IFx1YzEyMFx1Yzc0NCBcdWNjM2VcdWM3M2NcdWI4MjRcdWFjZTAgXHVkNTVjXHViMmU0LiBcdWM3NzRcdWI1NGMsIFx1YzgwNFx1ZDY1OFx1YzgxMCh0dXJuaW5nIHBvaW50KVx1Yzc1OCBcdWFjMWNcdWMyMThcdWI5N2MgXHVhYzAwXHVjN2E1IFx1YzgwMVx1YWM4YyBcdWQ1NThcdWI4MjRcdWFjZTAgXHVkNTVjXHViMmU0LiBcdWI2MTAsIFx1YzgwNFx1ZDY1OFx1YzgxMFx1Yzc1OCBcdWFjMWNcdWMyMThcdWFjMDAgXHVhYzE5XHVjNzQwIFx1YWNiZFx1YzZiMFx1YzVkMFx1YjI5NCBcdWMxMjBcdWM3NTggXHVhZTM4XHVjNzc0XHVhYzAwIFx1YWMwMFx1YzdhNSBcdWM3OTFcdWM3NDAgXHVhYzgzXHVjNzQ0IFx1Y2MzZVx1YzczY1x1YjgyNFx1YWNlMCBcdWQ1NWNcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlxyXG5cdFx1YzYwOFx1Yjk3YyBcdWI0ZTRcdWM1YjQsIFx1YzU0NFx1Yjc5OFx1YzY0MCBcdWFjMTlcdWM3NzQgXHVkM2M5XHViYTc0IFx1YzcwNFx1YzVkMCBcdWM4MTBcdWM3NzQgOVx1YWMxY1x1YWMwMCBcdWM3ODhcdWIyZTRcdWFjZTAgXHVkNTU4XHVjNzkwLjxcL3A+XHJcblxyXG48cD5cclxuXHQ8aW1nIGFsdD1cIlwiIHNyYz1cIlwvdXBsb2FkXC9pbWFnZXNcL3oxLnBuZ1wiIHN0eWxlPVwid2lkdGg6IDE2MXB4OyBoZWlnaHQ6IDE0M3B4O1wiIFwvPjxcL3A+XHJcblxyXG48cD5cclxuXHRcdWM5YzBcdWFkZjhcdWM3YWNcdWFkZjggXHVjMTIwXHVjNzQwIFx1YzVlY1x1YjdlYyBcdWMxMjBcdWJkODRcdWM3M2NcdWI4NWMgXHVjNzc0XHViOGU4XHVjNWI0XHVjODM4IFx1Yzc4OFx1YWNlMCwgXHVhYzAxIFx1YzEyMFx1YmQ4NFx1Yzc0MCBcdWM4MTBcdWM3NDQgXHViNDUwIFx1YWMxYyBcdWM3NzRcdWMwYzEgXHVjOWMwXHViMDk4XHVjNTdjIFx1ZDU1Y1x1YjJlNC48XC9wPlxyXG5cclxuPHA+XHJcblx0XHVjOWMwXHVhZGY4XHVjN2FjXHVhZGY4IFx1YzEyMFx1Yzc0MCBcdWMxMjBcdWM3NzQgXHVhZWJkXHVjNzdjIFx1YzIxOCBcdWM3ODhcdWIyOTRcdWIzNzAsIFx1Yzc3NCBcdWFlYmRcdWM3NzRcdWIyOTQgXHVjOWMwXHVjODEwXHVjNzQ0IFx1YzgwNFx1ZDY1OFx1YzgxMCh0dXJuaW5nIHBvaW50KVx1Yjc3Y1x1YWNlMCBcdWQ1NWNcdWIyZTQuIFx1YzgwNFx1ZDY1OFx1YzgxMFx1Yzc0MCBcdWM4ZmNcdWM1YjRcdWM5YzQgXHVjODEwIFx1YzcwNFx1YzVkMCBcdWM3ODhcdWM3NDQgXHVjMjE4XHViM2M0IFx1Yzc4OFx1YWNlMCwgXHVjNTQ0XHViMmQwIFx1YzIxOFx1YjNjNCBcdWM3ODhcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlxyXG5cdDxpbWcgYWx0PVwiXCIgc3JjPVwiXC91cGxvYWRcL2ltYWdlc1wvejIucG5nXCIgc3R5bGU9XCJ3aWR0aDogNDg2cHg7IGhlaWdodDogMTM3cHg7XCIgXC8+PFwvcD5cclxuXHJcbjxwPlxyXG5cdFx1YzY3Y1x1Y2FiZCBcdWM5YzBcdWFkZjhcdWM3YWNcdWFkZjggXHVjMTIwXHVjNzU4IFx1YWUzOFx1Yzc3NDogOCArIDMmcmFkaWM7MiBcdTIyNDMgMTIuMjQyNjQxLCBcdWM2MjRcdWI5NzhcdWNhYmQgXHVjOWMwXHVhZGY4XHVjN2FjXHVhZGY4IFx1YzEyMFx1Yzc1OCBcdWFlMzhcdWM3NzQ6IDImcmFkaWM7MiArICg2ICsgMVwvMikgKyA1JnJhZGljOzVcLzIgXHUyMjQzIDE0LjkxODU5NzxcL3A+XHJcblxyXG48cD5cclxuXHRcdWM3MDRcdWM3NTggXHVhZGY4XHViOWJjXHVjNzQwIFx1YzhmY1x1YzViNFx1YzljNCBcdWM4MTBcdWM3NDQgXHVjOWMwXHViMDk4XHViMjk0IFx1YzljMFx1YWRmOFx1YzdhY1x1YWRmOCBcdWMxMjBcdWM3NzRcdWFjZTAgXHViNDUwIFx1YzEyMCBcdWJhYThcdWI0NTAgXHVjODA0XHVkNjU4XHVjODEwXHVjNzU4IFx1YWMxY1x1YzIxOFx1YjI5NCAzXHVhYzFjXHVjNzc0XHViMmU0LiBcdWM2N2NcdWNhYmQgXHVjOWMwXHVhZGY4XHVjN2FjXHVhZGY4IFx1YzEyMFx1Yzc1OCBcdWFlMzhcdWM3NzRcdWIyOTQgXHVjNjI0XHViOTc4XHVjYWJkIFx1YzljMFx1YWRmOFx1YzdhY1x1YWRmOCBcdWMxMjBcdWM3NTggXHVhZTM4XHVjNzc0XHViY2Y0XHViMmU0IFx1YzllN1x1YjJlNC4gXHViNjEwLCBcdWM2N2NcdWNhYmQgXHVjOWMwXHVhZGY4XHVjN2FjXHVhZGY4IFx1YzEyMFx1Yzc0MCBcdWM4ZmNcdWM1YjRcdWM5YzQgXHVjNTQ0XHVkNjQ5IFx1YWMxY1x1Yzc1OCBcdWM4MTBcdWM3NDQgXHVjOWMwXHViMDk4XHViMjk0IFx1YWMwMFx1YzdhNSBcdWM5ZTdcdWM3NDAgXHVjOWMwXHVhZGY4XHVjN2FjXHVhZGY4IFx1YzEyMFx1Yzc3NFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHJcblx0XHVjODA0XHVkNjU4XHVjODEwXHVjNzQ0IFx1YjEyNCBcdWFjMWMgXHVhYzE2XHViMjk0IFx1YzljMFx1YWRmOFx1YzdhY1x1YWRmOCBcdWMxMjBcdWM3NDAgXHVjNTQ0XHViNzk4XHVjNjQwIFx1YWMxOVx1YjJlNC4gXHVjNzc0IFx1YzEyMFx1Yzc1OCBcdWFlMzhcdWM3NzRcdWIyOTQgXHVjNzA0XHVjNzU4IFx1YWRmOFx1YjliY1x1Yzc1OCBcdWFlMzhcdWM3NzRcdWJjZjRcdWIyZTQgXHVjOWU3XHVjOWMwXHViOWNjLCBcdWM4MDRcdWQ2NThcdWM4MTBcdWM3NTggXHVjMjE4XHVhYzAwIFx1YjM1NCBcdWI5Y2VcdWFlMzAgXHViNTRjXHViYjM4XHVjNWQwIFx1YzgxNVx1YjJmNVx1Yzc3NCBcdWM1NDRcdWIyYzhcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlxyXG5cdDxpbWcgYWx0PVwiXCIgc3JjPVwiXC91cGxvYWRcL2ltYWdlc1wvejMucG5nXCIgc3R5bGU9XCJ3aWR0aDogMTQ4cHg7IGhlaWdodDogOThweDtcIiBcLz48XC9wPlxyXG5cclxuPHA+XHJcblx0XHVjNTQ0XHViNzk4XHVjNjQwIFx1YWMxOVx1Yzc3NCBcdWM4MTBcdWM3NzQgN1x1YWMxYyBcdWM3ODhcdWFjZTAsIFx1YWRmOCBcdWM4MTBcdWM3NDQgXHVjNzg3XHViMjk0IFx1YjQ1MFx1YWMwMFx1YzljMFx1Yjg1YyBcdWM3NzRcdWM1YzhcdWIyZTRcdWFjZTAgXHVkNTU4XHVjNzkwLiBcdWM3NzRcdWI1NGMsIFx1YzY3Y1x1Y2FiZFx1Yzc1OCBcdWFlMzhcdWM3NzRcdWFjMDAgXHVjNjI0XHViOTc4XHVjYWJkXHViY2Y0XHViMmU0IFx1YjM1NCBcdWFlMzhcdWM5YzBcdWI5Y2MsIFx1YzgxNVx1YjJmNVx1Yzc0MCBcdWM2N2NcdWNhYmQgXHVhZGY4XHViOWJjXHVjNzc0IFx1YjQxY1x1YjJlNC4gXHVhZGY4IFx1Yzc3NFx1YzcyMFx1YjI5NCBcdWM5YzBcdWFkZjhcdWM3YWNcdWFkZjggXHVjMTIwXHVjNzU4IFx1YmFhOFx1YjRlMCBcdWMxMjBcdWJkODRcdWM3NDAgXHVjODEwXHVjNzQ0IFx1YjQ1MCBcdWFjMWMgXHVjNzc0XHVjMGMxIFx1YzljMFx1YjA5OFx1YzU3YyBcdWQ1NThcdWFlMzAgXHViNTRjXHViYjM4XHVjNzc0XHViMmU0LjxcL3A+XHJcblxyXG48cD5cclxuXHQ8aW1nIGFsdD1cIlwiIHNyYz1cIlwvdXBsb2FkXC9pbWFnZXNcL3o0LnBuZ1wiIHN0eWxlPVwid2lkdGg6IDQyN3B4OyBoZWlnaHQ6IDc0cHg7XCIgXC8+PFwvcD5cclxuXHJcbjxwPlxyXG5cdFx1YzgxMFx1Yzc3NCBcdWM4ZmNcdWM1YjRcdWM4NGNcdWM3NDQgXHViNTRjLCBcdWM5YzBcdWFkZjhcdWM3YWNcdWFkZjggXHVjMTIwXHVjNzQ0IFx1YWQ2Y1x1ZDU1OFx1YjI5NCBcdWQ1MDRcdWI4NWNcdWFkZjhcdWI3YThcdWM3NDQgXHVjNzkxXHVjMTMxXHVkNTU4XHVjMmRjXHVjNjI0LjxcL3A+XHJcbiIsImlucHV0IjoiPHA+XHJcblx0XHVjNzg1XHViODI1XHVjNzQwIFx1YzVlY1x1YjdlYyBcdWFjMWNcdWM3NTggXHVkMTRjXHVjMmE0XHVkMmI4IFx1Y2YwMFx1Yzc3NFx1YzJhNFx1Yjg1YyBcdWM3NzRcdWI4ZThcdWM1YjRcdWM4MzggXHVjNzg4XHViMmU0LiBcdWFjMDEgXHVkMTRjXHVjMmE0XHVkMmI4IFx1Y2YwMFx1Yzc3NFx1YzJhNFx1Yzc1OCBcdWNjYWJcdWM5ZjggXHVjOTA0XHVjNWQwXHViMjk0IFx1YzgxMFx1Yzc1OCBcdWFjMWNcdWMyMTggblx1Yzc3NCBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuIFx1YjJlNFx1Yzc0YyBuXHVhYzFjXHVjNzU4IFx1YzkwNFx1YzVkMFx1YjI5NCBcdWM4MTBcdWM3NTggXHVjODhjXHVkNDVjXHVhYzAwIFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHJcblx0XHViYWE4XHViNGUwIFx1Yzg4Y1x1ZDQ1Y1x1YjI5NCBcdWM3NGNcdWM3NzQgXHVjNTQ0XHViMmNjIFx1YzgxNVx1YzIxOFx1Yzc3NFx1YWNlMCwgXHVhY2Y1XHViYzMxXHVjNzNjXHViODVjIFx1YWQ2Y1x1YmQ4NFx1YjQxOFx1YzViNCBcdWM3ODhcdWIyZTQuIG5cdWM3NDAgMlx1Yzc3NFx1YzBjMSAxMFx1Yzc3NFx1ZDU1OFx1Yzc1OCBcdWM3OTBcdWM1ZjBcdWMyMThcdWM3NzRcdWFjZTAsIHgseVx1Yzg4Y1x1ZDQ1Y1x1YjI5NCAwXHVjNzc0XHVjMGMxIDEwXHVjNzc0XHVkNTU4XHVjNzU4IFx1YzgxNVx1YzIxOFx1Yzc3NFx1YjJlNC4gXHVjODEwXHVjNzU4IFx1YzIxY1x1YzExY1x1YjI5NCBcdWJjYzQgXHVjNzU4XHViYmY4XHVhYzAwIFx1YzVjNlx1YjJlNC48XC9wPlxyXG4iLCJvdXRwdXQiOiI8cD5cclxuXHRcdWFjMDEgXHVkMTRjXHVjMmE0XHVkMmI4IFx1Y2YwMFx1Yzc3NFx1YzJhNFx1YzVkMCBcdWIzMDBcdWQ1NzRcdWMxMWMsIFx1YWMwMFx1YzdhNSBcdWM4MDRcdWQ2NThcdWM4MTBcdWM3NDQgXHVhYzE2XHViMjk0IFx1YzljMFx1YWRmOFx1YzdhY1x1YWRmOCBcdWMxMjAgXHVjOTExIFx1YWMwMFx1YzdhNSBcdWM5ZTdcdWM3NDAgXHVhYzgzXHVjNzU4IFx1YzgwNFx1ZDY1OFx1YzgxMFx1Yzc1OCBcdWFjMWNcdWMyMThcdWM2NDAgXHVhZTM4XHVjNzc0XHViOTdjIFx1Y2Q5Y1x1YjgyNVx1ZDU1Y1x1YjJlNC4gXHVjMTIwXHVjNzU4IFx1YWUzOFx1Yzc3NFx1YjI5NCBcdWM4MTVcdWIyZjVcdWFjZmNcdWM3NTggXHVjNjI0XHVjYzI4XHVhYzAwIDAuMDAwMVx1YWU0Y1x1YzljMCBcdWQ1YzhcdWM2YTlcdWI0MWNcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlxyXG5cdFx1YWMwMFx1YzdhNSBcdWM3OTFcdWM3NDAgXHVjODA0XHVkNjU4XHVjODEwXHVjNzU4IFx1YWMxY1x1YzIxOFx1YjI5NCBcdWNkNWNcdWIzMDAgNFx1YWMxY1x1Yzc3NFx1YmE3MCwgXHViNTMwXHViNzdjXHVjMTFjIFx1YzEyMFx1YmQ4NFx1Yzc1OCBcdWFjMWNcdWMyMThcdWIyOTQgXHVjZDVjXHViMzAwIDVcdWFjMWNcdWFjMDAgXHViNDFjXHViMmU0LjxcL3A+XHJcbiIsImhpbnQiOiI8cD5cclxuXHRcdWNjYWIgXHViYzg4XHVjOWY4IFx1YjM3MFx1Yzc3NFx1ZDEzMDombmJzcDs8aW1nIGFsdD1cIlwiIHNyYz1cIlwvdXBsb2FkXC9pbWFnZXNcL3poMS5wbmdcIiBzdHlsZT1cIndpZHRoOiAxNjNweDsgaGVpZ2h0OiAxNjZweDtcIiBcLz48XC9wPlxyXG48cD5cclxuXHRcdWI0NTAgXHViYzg4XHVjOWY4IFx1YjM3MFx1Yzc3NFx1ZDEzMDombmJzcDs8aW1nIGFsdD1cIlwiIHNyYz1cIlwvdXBsb2FkXC9pbWFnZXNcL3poMi5wbmdcIiBzdHlsZT1cIndpZHRoOiAxNThweDsgaGVpZ2h0OiAxNjRweDtcIiBcLz48XC9wPlxyXG48cD5cclxuXHRcdWMxMzggXHViYzg4XHVjOWY4IFx1YjM3MFx1Yzc3NFx1ZDEzMDombmJzcDs8aW1nIGFsdD1cIlwiIHNyYz1cIlwvdXBsb2FkXC9pbWFnZXNcL3poMy5wbmdcIiBzdHlsZT1cIndpZHRoOiAxNjJweDsgaGVpZ2h0OiAxNjJweDtcIiBcLz48XC9wPlxyXG48cD5cclxuXHRcdWIxMjQgXHViYzg4XHVjOWY4IFx1YjM3MFx1Yzc3NFx1ZDEzMDombmJzcDs8aW1nIGFsdD1cIlwiIHNyYz1cIlwvdXBsb2FkXC9pbWFnZXNcL3poNC5wbmdcIiBzdHlsZT1cIndpZHRoOiAxNThweDsgaGVpZ2h0OiAxNjFweDtcIiBcLz48XC9wPlxyXG4iLCJvcmlnaW5hbCI6IjAiLCJwcm9ibGVtX2xhbmdfY29kZSI6Ilx1ZDU1Y1x1YWQ2ZFx1YzViNCJ9LHsicHJvYmxlbV9pZCI6IjM4OTQiLCJwcm9ibGVtX2xhbmciOiIxIiwidGl0bGUiOiJaaWd6YWciLCJkZXNjcmlwdGlvbiI6IjxwPkdpdmVuIHNldmVyYWwgcG9pbnRzIG9uIGEgcGxhbmUsIGxldCZyc3F1bztzIHRyeSB0byBzb2x2ZSBhIHB1enpsZSBjb25uZWN0aW5nIHRoZW0gd2l0aCBhIHppZ3phZyBsaW5lLiBUaGUgcHV6emxlIGlzIHRvIGZpbmQgdGhlIHppZ3phZyBsaW5lIHRoYXQgcGFzc2VzIHRocm91Z2ggYWxsIHRoZSBnaXZlbiBwb2ludHMgd2l0aCB0aGUgbWluaW11bSBudW1iZXIgb2YgdHVybnMuIE1vcmVvdmVyLCB3aGVuIHRoZXJlIGFyZSBzZXZlcmFsIHppZ3phZyBsaW5lcyB3aXRoIHRoZSBtaW5pbXVtIG51bWJlciBvZiB0dXJucywgdGhlIHNob3J0ZXN0IG9uZSBhbW9uZyB0aGVtIHNob3VsZCBiZSBmb3VuZC48XC9wPlxyXG5cclxuPHA+Rm9yIGV4YW1wbGUsIGNvbnNpZGVyIG5pbmUgcG9pbnRzIGdpdmVuIGluIEZpZ3VyZSAxMC48XC9wPlxyXG5cclxuPHA+PGltZyBhbHQ9XCJcIiBzcmM9XCJcL3VwbG9hZFwvaW1hZ2VzXC96MS5wbmdcIiBzdHlsZT1cImhlaWdodDoxNDNweDsgb3BhY2l0eTowLjk7IHdpZHRoOjE2MXB4XCIgXC8+PFwvcD5cclxuXHJcbjxwPkZpZ3VyZSAxMDogR2l2ZW4gbmluZSBwb2ludHM8XC9wPlxyXG5cclxuPHA+QSB6aWd6YWcgbGluZSBpcyBjb21wb3NlZCBvZiBzZXZlcmFsIHN0cmFpZ2h0IGxpbmUgc2VnbWVudHMuIEhlcmUsIHRoZSBydWxlIHJlcXVlc3RzIHRoYXQgZWFjaCBsaW5lIHNlZ21lbnQgc2hvdWxkIHBhc3MgdGhyb3VnaCB0d28gb3IgbW9yZSBnaXZlbiBwb2ludHMuPFwvcD5cclxuXHJcbjxwPkEgemlnemFnIGxpbmUgbWF5IHR1cm4gYXQgc29tZSBvZiB0aGUgZ2l2ZW4gcG9pbnRzIG9yIGFueXdoZXJlIGVsc2UuIFRoZXJlIG1heSBiZSBzb21lIGdpdmVuIHBvaW50cyBwYXNzZWQgbW9yZSB0aGFuIG9uY2UuPFwvcD5cclxuXHJcbjxwPjxpbWcgYWx0PVwiXCIgc3JjPVwiXC91cGxvYWRcL2ltYWdlc1wveml6YS5wbmdcIiBzdHlsZT1cImhlaWdodDoxOTBweDsgd2lkdGg6NTQ0cHhcIiBcLz48XC9wPlxyXG5cclxuPHA+RmlndXJlIDExOiBaaWd6YWcgbGluZXMgd2l0aCB0aHJlZSB0dXJuaW5nIHBvaW50cy48XC9wPlxyXG5cclxuPHA+VHdvIHppZ3phZyBsaW5lcyB3aXRoIHRocmVlIHR1cm5pbmcgcG9pbnRzIGFyZSBkZXBpY3RlZCBpbiBGaWd1cmUgMTEgKGEpIGFuZCAoYikgZm9yIHRoZSBzYW1lIHNldCBvZiBnaXZlbiBwb2ludHMgc2hvd24gaW4gRmlndXJlIDEwLiBUaGUgbGVuZ3RoIG9mIHRoZSB6aWd6YWcgbGluZSBpbiBGaWd1cmUgMTEgKGEpIGlzIHNob3J0ZXIgdGhhbiB0aGF0IGluIEZpZ3VyZSAxMSAoYikuIEluIGZhY3QsIHRoZSBsZW5ndGggb2YgdGhlIHppZ3phZyBsaW5lIGluIEZpZ3VyZSAxMSAoYSkgaXMgdGhlIHNob3J0ZXN0IHNvIHRoYXQgaXQgaXMgdGhlIHNvbHV0aW9uIGZvciB0aGUgbmluZSBwb2ludHMgZ2l2ZW4gaW4gRmlndXJlIDEwLjxcL3A+XHJcblxyXG48cD5Bbm90aGVyIHppZ3phZyBsaW5lIHdpdGggZm91ciB0dXJuaW5nIHBvaW50cyBpcyBkZXBpY3RlZCBpbiBGaWd1cmUgMTIuIEl0cyBsZW5ndGggaXMgc2hvcnRlciB0aGFuIHRob3NlIGluIEZpZ3VyZSAxMSwgaG93ZXZlciwgdGhlIG51bWJlciBvZiB0dXJuaW5nIHBvaW50cyBpcyBncmVhdGVyIHRoYW4gdGhvc2UgaW4gRmlndXJlIDExLCBhbmQgdGh1cywgaXQgaXMgbm90IHRoZSBzb2x1dGlvbi48XC9wPlxyXG5cclxuPHA+PGltZyBhbHQ9XCJcIiBzcmM9XCJcL3VwbG9hZFwvaW1hZ2VzXC96aXphMi5wbmdcIiBzdHlsZT1cImhlaWdodDoxMjJweDsgd2lkdGg6MTY1cHhcIiBcLz48XC9wPlxyXG5cclxuPHA+RmlndXJlIDEyOiBaaWd6YWcgbGluZSB3aXRoIGZvdXIgdHVybmluZyBwb2ludHMuPFwvcD5cclxuXHJcbjxwPlRoZXJlIGFyZSB0d28gemlnemFnIGxpbmVzIHRoYXQgcGFzc2VzIGFub3RoZXIgc2V0IG9mIGdpdmVuIHBvaW50cyBkZXBpY3RlZCBpbiBGaWd1cmUgMTMgKGEpIGFuZCAoYikuPFwvcD5cclxuXHJcbjxwPkJvdGggaGF2ZSB0aGUgc2FtZSBudW1iZXIgb2YgdHVybmluZyBwb2ludHMsIGFuZCB0aGUgbGluZSBpbiAoYSkgaXMgbG9uZ2VyIHRoYW4gdGhhdCBpbiAoYikuIEhvd2V2ZXIsIHRoZSBzb2x1dGlvbiBpcyAoYSksIGJlY2F1c2Ugb25lIG9mIHRoZSBzZWdtZW50cyBvZiB0aGUgemlnemFnIGxpbmUgaW4gKGIpIHBhc3NlcyBvbmx5IG9uZSBnaXZlbiBwb2ludCwgdmlvbGF0aW5nIHRoZSBydWxlLjxcL3A+XHJcblxyXG48cD48aW1nIGFsdD1cIlwiIHNyYz1cIlwvdXBsb2FkXC9pbWFnZXNcL3ppemEzLnBuZ1wiIHN0eWxlPVwiaGVpZ2h0OjEwN3B4OyB3aWR0aDo0NDRweFwiIFwvPjxcL3A+XHJcblxyXG48cD5GaWd1cmUgMTM6IFppZ3phZyBsaW5lIHdpdGggdHdvIHR1cm5pbmcgcG9pbnRzIChhKSwgYW5kIG5vdCBhIHppZ3phZyBsaW5lIGNvbmNlcm5lZCAoYikuPFwvcD5cclxuXHJcbjxwPllvdXIgam9iIGlzIHRvIHdyaXRlIGEgcHJvZ3JhbSB0aGF0IHNvbHZlcyB0aGlzIHB1enpsZS48XC9wPlxyXG4iLCJpbnB1dCI6IjxwPlRoZSBpbnB1dCBjb25zaXN0cyBvZiBtdWx0aXBsZSBkYXRhc2V0cywgZm9sbG93ZWQgYnkgYSBsaW5lIGNvbnRhaW5pbmcgb25lIHplcm8uIEVhY2ggZGF0YXNldCBoYXMgdGhlIGZvbGxvd2luZyBmb3JtYXQuPFwvcD5cclxuXHJcbjxwcmU+XHJcbm5cclxueDxzdWI+MTxcL3N1Yj4geTxzdWI+MTxcL3N1Yj5cclxuLi4uXHJcbng8c3ViPm48XC9zdWI+IHk8c3ViPm48XC9zdWI+PFwvcHJlPlxyXG5cclxuPHA+RXZlcnkgaW5wdXQgaXRlbSBpbiBhIGRhdGFzZXQgaXMgYSBub24tbmVnYXRpdmUgaW50ZWdlci4gSXRlbXMgaW4gYSBsaW5lIGFyZSBzZXBhcmF0ZWQgYnkgYSBzaW5nbGUgc3BhY2UuPFwvcD5cclxuXHJcbjxwPm4gaXMgdGhlIG51bWJlciBvZiB0aGUgZ2l2ZW4gcG9pbnRzLiB4PHN1Yj5rPFwvc3ViPiBhbmQgeTxzdWI+azxcL3N1Yj4gKGsgPSAxLCAuLi4sIG4pIGluZGljYXRlIHRoZSBwb3NpdGlvbiBvZiB0aGUgay10aCBwb2ludC4gVGhlIG9yZGVyIG9mIHRoZSBwb2ludHMgaXMgbWVhbmluZ2xlc3MuIFlvdSBjYW4gYXNzdW1lIHRoYXQgMiAmbGU7IG4gJmxlOyAxMCwgMCAmbGU7IHg8c3ViPms8XC9zdWI+ICZsZTsgMTAsIGFuZCAwICZsZTsgeTxzdWI+azxcL3N1Yj4gJmxlOyAxMC48XC9wPlxyXG4iLCJvdXRwdXQiOiI8cD5Gb3IgZWFjaCBkYXRhc2V0LCB0aGUgbWluaW11bSBudW1iZXIgb2YgdHVybmluZyBwb2ludHMgYW5kIHRoZSBsZW5ndGggb2YgdGhlIHNob3J0ZXN0IHppZ3phZyBsaW5lIHdpdGggdGhhdCBudW1iZXIgb2YgdHVybmluZyBwb2ludHMgc2hvdWxkIGJlIHByaW50ZWQsIHNlcGFyYXRlZCBieSBhIHNwYWNlIGluIGEgbGluZS4gVGhlIGxlbmd0aCBzaG91bGQgYmUgaW4gYSBkZWNpbWFsIGZyYWN0aW9uIHdpdGggYW4gZXJyb3IgbGVzcyB0aGFuIDAuMDAwMSAoPSAxLjAgJnRpbWVzOyAxMDxzdXA+Jm1pbnVzOzQ8XC9zdXA+KS48XC9wPlxyXG5cclxuPHA+WW91IG1heSBhc3N1bWUgdGhhdCB0aGUgbWluaW11bSBudW1iZXIgb2YgdHVybmluZyBwb2ludHMgaXMgYXQgbW9zdCBmb3VyLCB0aGF0IGlzLCB0aGUgbnVtYmVyIG9mIGxpbmUgc2VnbWVudHMgaXMgYXQgbW9zdCBmaXZlLjxcL3A+XHJcblxyXG48cD5UaGUgZXhhbXBsZSBzb2x1dGlvbnMgZm9yIHRoZSBmaXJzdCBmb3VyIGRhdGFzZXRzIGluIHRoZSBzYW1wbGUgaW5wdXQgYXJlIGRlcGljdGVkIGluIEZpZ3VyZSAxNCBhbmQgMTUuPFwvcD5cclxuIiwiaGludCI6IjxwPjxpbWcgYWx0PVwiXCIgc3JjPVwiXC91cGxvYWRcL2ltYWdlc1wveml6YTQucG5nXCIgc3R5bGU9XCJoZWlnaHQ6NjkwcHg7IHdpZHRoOjYxM3B4XCIgXC8+PFwvcD5cclxuIiwib3JpZ2luYWwiOiIxIiwicHJvYmxlbV9sYW5nX2NvZGUiOiJcdWM2MDFcdWM1YjQifV0=