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

문제

다각형의 삼각분할이란 다각형을 삼각형으로 나누는 꼭짓점을 연결하는 직선의 집합이다. 직선은 반드시 다각형 내부에 있어야 하며, 꼭짓점을 제외한 다른 곳에서 다른 직선과 교차하면 안 된다. 

위의 그림에서 굵은 선은 다각형의 변을 나타내고, 가는 선은 삼각분할을 나타낸다. 꼭짓점이 n개인 다각형을 삼각분할하면 (n-2)개의 삼각형을 만들 수 있다.

한 꼭짓점에서 시작해 변을 따라 이동하면서 각 꼭짓점에 있는 삼각형의 개수를 나열한 것을 삼각형 개수 수열이라고 한다. 위의 그림에 나와있는 다각형의 삼각형 개수 수열은 아래와 같다. 가장 왼쪽 위에 있는 꼭짓점에서 시작한다.

  • A: 1 3 1 3 1 3
  • B: 2 2 1 4 1 2
  • C: 1 2 3 2 1 6 1 2 3 2 1 6

N개의 양의 정수로 이루어진 삼각형 개수 수열이 주어졌을 때, 이러한 수열을 만드는 다각형이 존재하는지 안하는지를 구하는 프로그램을 작성하시오. 존재하는 경우에는 삼각형을 모두 출력한다.

입력

첫째 줄에 테스트 케이스의 개수 P (1 ≤ P ≤ 1000)가 주어진다.

각 테스트 케이스는 한 줄로 이루어져 있다. 첫 번째 숫자는 테스트 케이스 번호 K이며, 두 번째 숫자는 수열의 길이 N (4 ≤ N ≤ 20)이다. 다음 N개의 숫자는 삼각형 개수 수열이다.

출력

입력으로 주어진 수열이 삼각형 개수 수열이 아닌 경우에는 테스트 케이스 번호 K와 알파벳 대문자 "N"을 출력한다.

올바른 경우에는 테스트 케이스 번호 K와 알파벳 대문자 "Y"를 출력한다. 다음 (N-2)개 줄에는 어떤 꼭짓점이 삼각형을 이루는지 한 줄에 하나씩 출력한다. 꼭짓점은 입력으로 주어진 순서대로 1번부터 시작하며, 사전순으로 정렬해서 출력한다. k < l < m이 한 삼각형이고, r < s < t가 다른 삼각형일 때, 아래 조건을 만족하면 첫 번째 삼각형이 두 번째보다 사전순으로 앞선다.

k<r OR (k==r AND l<s) OR (k==r AND l==s AND m<t)

예제 입력 1

4
1 6 1 3 1 3 1 3
2 6 1 3 2 2 1 3
3 12 1 2 3 2 1 6 1 2 3 2 1 6
4 20 1 2 3 2 1 6 1 2 3 2 1 6 1 3 2 2 1 3 1 2

예제 출력 1

1 Y
1 2 6
2 3 4
2 4 6
4 5 6
2 N
3 Y
1 2 12
2 3 12
3 4 6
3 6 12
4 5 6
6 7 8
6 8 9
6 9 12
9 10 12
10 11 12
4 N
W3sicHJvYmxlbV9pZCI6Ijk0NzQiLCJwcm9ibGVtX2xhbmciOiIwIiwidGl0bGUiOiJcdWMwYmNcdWFjMDEgXHViZDg0XHVkNTYwXHVhY2ZjIFx1YzBiY1x1YWMwMVx1ZDYxNSIsImRlc2NyaXB0aW9uIjoiPHA+XHViMmU0XHVhYzAxXHVkNjE1XHVjNzU4IFx1YzBiY1x1YWMwMVx1YmQ4NFx1ZDU2MFx1Yzc3NFx1Yjc4MCBcdWIyZTRcdWFjMDFcdWQ2MTVcdWM3NDQgXHVjMGJjXHVhYzAxXHVkNjE1XHVjNzNjXHViODVjIFx1YjA5OFx1YjIwNFx1YjI5NCBcdWFmMmRcdWM5ZDNcdWM4MTBcdWM3NDQgXHVjNWYwXHVhY2IwXHVkNTU4XHViMjk0IFx1YzljMVx1YzEyMFx1Yzc1OCBcdWM5ZDFcdWQ1NjlcdWM3NzRcdWIyZTQuIFx1YzljMVx1YzEyMFx1Yzc0MCBcdWJjMThcdWI0ZGNcdWMyZGMgXHViMmU0XHVhYzAxXHVkNjE1IFx1YjBiNFx1YmQ4MFx1YzVkMCBcdWM3ODhcdWM1YjRcdWM1N2MgXHVkNTU4XHViYTcwLCBcdWFmMmRcdWM5ZDNcdWM4MTBcdWM3NDQgXHVjODFjXHVjNjc4XHVkNTVjIFx1YjJlNFx1Yjk3OCBcdWFjZjNcdWM1ZDBcdWMxMWMgXHViMmU0XHViOTc4IFx1YzljMVx1YzEyMFx1YWNmYyBcdWFkNTBcdWNjMjhcdWQ1NThcdWJhNzQgXHVjNTQ4IFx1YjQxY1x1YjJlNC4mbmJzcDs8XC9wPlxyXG5cclxuPHA+PGltZyBhbHQ9XCJcIiBzcmM9XCJcL3VwbG9hZFwvaW1hZ2VzXC90cmlhbmd1bGEucG5nXCIgc3R5bGU9XCJoZWlnaHQ6MjMzcHg7IHdpZHRoOjYyMHB4XCIgXC8+PFwvcD5cclxuXHJcbjxwPlx1YzcwNFx1Yzc1OCBcdWFkZjhcdWI5YmNcdWM1ZDBcdWMxMWMgXHVhZDc1XHVjNzQwIFx1YzEyMFx1Yzc0MCBcdWIyZTRcdWFjMDFcdWQ2MTVcdWM3NTggXHViY2MwXHVjNzQ0IFx1YjA5OFx1ZDBjMFx1YjBiNFx1YWNlMCwgXHVhYzAwXHViMjk0IFx1YzEyMFx1Yzc0MCBcdWMwYmNcdWFjMDFcdWJkODRcdWQ1NjBcdWM3NDQgXHViMDk4XHVkMGMwXHViMGI4XHViMmU0LiBcdWFmMmRcdWM5ZDNcdWM4MTBcdWM3NzQgblx1YWMxY1x1Yzc3OCBcdWIyZTRcdWFjMDFcdWQ2MTVcdWM3NDQgXHVjMGJjXHVhYzAxXHViZDg0XHVkNTYwXHVkNTU4XHViYTc0IChuLTIpXHVhYzFjXHVjNzU4IFx1YzBiY1x1YWMwMVx1ZDYxNVx1Yzc0NCBcdWI5Y2NcdWI0ZTQgXHVjMjE4IFx1Yzc4OFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVkNTVjIFx1YWYyZFx1YzlkM1x1YzgxMFx1YzVkMFx1YzExYyBcdWMyZGNcdWM3OTFcdWQ1NzQgXHViY2MwXHVjNzQ0IFx1YjUzMFx1Yjc3YyBcdWM3NzRcdWIzZDlcdWQ1NThcdWJhNzRcdWMxMWMgXHVhYzAxIFx1YWYyZFx1YzlkM1x1YzgxMFx1YzVkMCBcdWM3ODhcdWIyOTQgXHVjMGJjXHVhYzAxXHVkNjE1XHVjNzU4IFx1YWMxY1x1YzIxOFx1Yjk3YyBcdWIwOThcdWM1ZjRcdWQ1NWMgXHVhYzgzXHVjNzQ0IFx1YzBiY1x1YWMwMVx1ZDYxNSBcdWFjMWNcdWMyMTggXHVjMjE4XHVjNWY0XHVjNzc0XHViNzdjXHVhY2UwIFx1ZDU1Y1x1YjJlNC4gXHVjNzA0XHVjNzU4IFx1YWRmOFx1YjliY1x1YzVkMCBcdWIwOThcdWM2NDBcdWM3ODhcdWIyOTQgXHViMmU0XHVhYzAxXHVkNjE1XHVjNzU4IFx1YzBiY1x1YWMwMVx1ZDYxNSBcdWFjMWNcdWMyMTggXHVjMjE4XHVjNWY0XHVjNzQwIFx1YzU0NFx1Yjc5OFx1YzY0MCBcdWFjMTlcdWIyZTQuIFx1YWMwMFx1YzdhNSBcdWM2N2NcdWNhYmQgXHVjNzA0XHVjNWQwIFx1Yzc4OFx1YjI5NCBcdWFmMmRcdWM5ZDNcdWM4MTBcdWM1ZDBcdWMxMWMgXHVjMmRjXHVjNzkxXHVkNTVjXHViMmU0LjxcL3A+XHJcblxyXG48dWw+XHJcblx0PGxpPkE6IDEgMyAxIDMgMSAzPFwvbGk+XHJcblx0PGxpPkI6IDIgMiAxIDQgMSAyPFwvbGk+XHJcblx0PGxpPkM6IDEgMiAzIDIgMSA2IDEgMiAzIDIgMSA2PFwvbGk+XHJcbjxcL3VsPlxyXG5cclxuPHA+Tlx1YWMxY1x1Yzc1OCBcdWM1OTFcdWM3NTggXHVjODE1XHVjMjE4XHViODVjIFx1Yzc3NFx1YjhlOFx1YzViNFx1YzljNCBcdWMwYmNcdWFjMDFcdWQ2MTUgXHVhYzFjXHVjMjE4IFx1YzIxOFx1YzVmNFx1Yzc3NCBcdWM4ZmNcdWM1YjRcdWM4NGNcdWM3NDQgXHViNTRjLCBcdWM3NzRcdWI3ZWNcdWQ1NWMgXHVjMjE4XHVjNWY0XHVjNzQ0IFx1YjljY1x1YjRkY1x1YjI5NCBcdWIyZTRcdWFjMDFcdWQ2MTVcdWM3NzQgXHVjODc0XHVjN2FjXHVkNTU4XHViMjk0XHVjOWMwIFx1YzU0OFx1ZDU1OFx1YjI5NFx1YzljMFx1Yjk3YyBcdWFkNmNcdWQ1NThcdWIyOTQgXHVkNTA0XHViODVjXHVhZGY4XHViN2E4XHVjNzQ0IFx1Yzc5MVx1YzEzMVx1ZDU1OFx1YzJkY1x1YzYyNC4gXHVjODc0XHVjN2FjXHVkNTU4XHViMjk0IFx1YWNiZFx1YzZiMFx1YzVkMFx1YjI5NCBcdWMwYmNcdWFjMDFcdWQ2MTVcdWM3NDQgXHViYWE4XHViNDUwIFx1Y2Q5Y1x1YjgyNVx1ZDU1Y1x1YjJlNC48XC9wPlxyXG4iLCJpbnB1dCI6IjxwPlx1Y2NhYlx1YzlmOCBcdWM5MDRcdWM1ZDAgXHVkMTRjXHVjMmE0XHVkMmI4IFx1Y2YwMFx1Yzc3NFx1YzJhNFx1Yzc1OCBcdWFjMWNcdWMyMTggUCAoMSAmbGU7IFAgJmxlOyAxMDAwKVx1YWMwMCBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YWMwMSBcdWQxNGNcdWMyYTRcdWQyYjggXHVjZjAwXHVjNzc0XHVjMmE0XHViMjk0IFx1ZDU1YyBcdWM5MDRcdWI4NWMgXHVjNzc0XHViOGU4XHVjNWI0XHVjODM4IFx1Yzc4OFx1YjJlNC4gXHVjY2FiIFx1YmM4OFx1YzlmOCBcdWMyMmJcdWM3OTBcdWIyOTQgXHVkMTRjXHVjMmE0XHVkMmI4IFx1Y2YwMFx1Yzc3NFx1YzJhNCBcdWJjODhcdWQ2MzggS1x1Yzc3NFx1YmE3MCwgXHViNDUwIFx1YmM4OFx1YzlmOCBcdWMyMmJcdWM3OTBcdWIyOTQgXHVjMjE4XHVjNWY0XHVjNzU4IFx1YWUzOFx1Yzc3NCBOICg0ICZsZTsgTiAmbGU7IDIwKVx1Yzc3NFx1YjJlNC4gXHViMmU0XHVjNzRjIE5cdWFjMWNcdWM3NTggXHVjMjJiXHVjNzkwXHViMjk0IFx1YzBiY1x1YWMwMVx1ZDYxNSBcdWFjMWNcdWMyMTggXHVjMjE4XHVjNWY0XHVjNzc0XHViMmU0LjxcL3A+XHJcbiIsIm91dHB1dCI6IjxwPlx1Yzc4NVx1YjgyNVx1YzczY1x1Yjg1YyBcdWM4ZmNcdWM1YjRcdWM5YzQgXHVjMjE4XHVjNWY0XHVjNzc0IFx1YzBiY1x1YWMwMVx1ZDYxNSBcdWFjMWNcdWMyMTggXHVjMjE4XHVjNWY0XHVjNzc0IFx1YzU0NFx1YjJjYyBcdWFjYmRcdWM2YjBcdWM1ZDBcdWIyOTQgXHVkMTRjXHVjMmE0XHVkMmI4IFx1Y2YwMFx1Yzc3NFx1YzJhNCBcdWJjODhcdWQ2MzggS1x1YzY0MCBcdWM1NGNcdWQzMGNcdWJjYjMgXHViMzAwXHViYjM4XHVjNzkwICZxdW90O04mcXVvdDtcdWM3NDQgXHVjZDljXHViODI1XHVkNTVjXHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWM2MmNcdWJjMTRcdWI5NzggXHVhY2JkXHVjNmIwXHVjNWQwXHViMjk0IFx1ZDE0Y1x1YzJhNFx1ZDJiOCBcdWNmMDBcdWM3NzRcdWMyYTQgXHViYzg4XHVkNjM4IEtcdWM2NDAgXHVjNTRjXHVkMzBjXHViY2IzIFx1YjMwMFx1YmIzOFx1Yzc5MCAmcXVvdDtZJnF1b3Q7XHViOTdjIFx1Y2Q5Y1x1YjgyNVx1ZDU1Y1x1YjJlNC4gXHViMmU0XHVjNzRjIChOLTIpXHVhYzFjIFx1YzkwNFx1YzVkMFx1YjI5NCBcdWM1YjRcdWI1YTQgXHVhZjJkXHVjOWQzXHVjODEwXHVjNzc0IFx1YzBiY1x1YWMwMVx1ZDYxNVx1Yzc0NCBcdWM3NzRcdWI4ZThcdWIyOTRcdWM5YzAgXHVkNTVjIFx1YzkwNFx1YzVkMCBcdWQ1NThcdWIwOThcdWM1MjkgXHVjZDljXHViODI1XHVkNTVjXHViMmU0LiBcdWFmMmRcdWM5ZDNcdWM4MTBcdWM3NDAgXHVjNzg1XHViODI1XHVjNzNjXHViODVjIFx1YzhmY1x1YzViNFx1YzljNCBcdWMyMWNcdWMxMWNcdWIzMDBcdWI4NWMgMVx1YmM4OFx1YmQ4MFx1ZDEzMCBcdWMyZGNcdWM3OTFcdWQ1NThcdWJhNzAsIFx1YzBhY1x1YzgwNFx1YzIxY1x1YzczY1x1Yjg1YyBcdWM4MTVcdWI4MmNcdWQ1NzRcdWMxMWMgXHVjZDljXHViODI1XHVkNTVjXHViMmU0LiBrICZsdDsgbCAmbHQ7IG1cdWM3NzQgXHVkNTVjIFx1YzBiY1x1YWMwMVx1ZDYxNVx1Yzc3NFx1YWNlMCwgciAmbHQ7IHMgJmx0OyB0XHVhYzAwIFx1YjJlNFx1Yjk3OCBcdWMwYmNcdWFjMDFcdWQ2MTVcdWM3N2MgXHViNTRjLCBcdWM1NDRcdWI3OTggXHVjODcwXHVhYzc0XHVjNzQ0IFx1YjljY1x1Yzg3MVx1ZDU1OFx1YmE3NCBcdWNjYWIgXHViYzg4XHVjOWY4IFx1YzBiY1x1YWMwMVx1ZDYxNVx1Yzc3NCBcdWI0NTAgXHViYzg4XHVjOWY4XHViY2Y0XHViMmU0IFx1YzBhY1x1YzgwNFx1YzIxY1x1YzczY1x1Yjg1YyBcdWM1NWVcdWMxMjBcdWIyZTQuPFwvcD5cclxuXHJcbjxwcmU+XHJcbmsmbHQ7ciBPUiAoaz09ciBBTkQgbCZsdDtzKSBPUiAoaz09ciBBTkQgbD09cyBBTkQgbSZsdDt0KTxcL3ByZT5cclxuIiwiaGludCI6IiIsIm9yaWdpbmFsIjoiMCIsImh0bWxfdGl0bGUiOiIwIiwicHJvYmxlbV9sYW5nX3Rjb2RlIjoiS29yZWFuIn0seyJwcm9ibGVtX2lkIjoiOTQ3NCIsInByb2JsZW1fbGFuZyI6IjEiLCJ0aXRsZSI6IlRyaWFuZ2xlIENvdW50IFNlcXVlbmNlcyBvZiBQb2x5Z29uIFRyaWFuZ3VsYXRpb25zIiwiZGVzY3JpcHRpb24iOiI8cD5BIFRyaWFuZ3VsYXRpb24gb2YgYSBwb2x5Z29uIGlzIGEgc2V0IG9mIGxpbmVzIGJldHdlZW4gdmVydGljZXMgb2YgdGhlIHBvbHlnb24gdGhhdCBkaXZpZGUgdGhlIHBvbHlnb25pbnRvIHRyaWFuZ2xlcy4gVGhlIGxpbmVzIG11c3QgYmUgaW5zaWRlIHRoZSBwb2x5Z29uIGFuZCBtYXkgbm90IGludGVyc2VjdCBlYWNoIG90aGVyIGV4Y2VwdCBhdHZlcnRpY2VzIG9mIHRoZSBwb2x5Z29uLiBGb3IgZXhhbXBsZTo8XC9wPlxyXG5cclxuPHA+PGltZyBhbHQ9XCJcIiBzcmM9XCJcL3VwbG9hZFwvaW1hZ2VzXC90cmlhbmd1bGEucG5nXCIgc3R5bGU9XCJoZWlnaHQ6MjMzcHg7IHdpZHRoOjYyMHB4XCIgXC8+PFwvcD5cclxuXHJcbjxwPkluIHRoZSBleGFtcGxlcywgdGhlIGhlYXZ5IGxpbmUgaXMgdGhlIG91dGxpbmUgb2YgdGhlIHBvbHlnb24gYW5kIHRoZSBsaWdodGVyIGxpbmVzIGdpdmUgdGhlIHRyaWFuZ3VsYXRpb24uIEluIGVhY2ggY2FzZSBhIHRyaWFuZ3VsYXRpb24gb2YgYSBwb2x5Z29uIHdpdGggbiB2ZXJ0aWNlcyB3aWxsIHJlc3VsdCBpbiAobi0yKSB0cmlhbmdsZXMuPFwvcD5cclxuXHJcbjxwPlRoZSB0cmlhbmdsZSBjb3VudCBzZXF1ZW5jZSBvZiBhIHRyaWFuZ3VsYXRpb24gaXMgb2J0YWluZWQgYnkgc3RhcnRpbmcgYXQgc29tZSB2ZXJ0ZXgsIHByb2NlZWRpbmdhcm91bmQgdGhlIHBvbHlnb24gYW5kIGZvciBlYWNoIHZlcnRleCBvZiB0aGUgcG9seWdvbiByZWNvcmRpbmcgdGhlIG51bWJlciBvZiB0cmlhbmdsZXMgb2YgdGhldHJpYW5ndWxhdGlvbiBpbmNpZGVudCBvbiB0aGF0IHZlcnRleC4gSW4gdGhlIGV4YW1wbGVzIGFib3ZlIHRoZSB0cmlhbmdsZSBjb3VudCBzZXF1ZW5jZXMgc3RhcnRpbmcgYXR0aGUgdG9wIChsZWZ0KSBhcmU6PFwvcD5cclxuXHJcbjx1bD5cclxuXHQ8bGk+QTogMSAzIDEgMyAxIDM8XC9saT5cclxuXHQ8bGk+QjogMiAyIDEgNCAxIDI8XC9saT5cclxuXHQ8bGk+QzogMSAyIDMgMiAxIDYgMSAyIDMgMiAxIDY8XC9saT5cclxuPFwvdWw+XHJcblxyXG48cD5Xcml0ZSBhIHByb2dyYW0gd2hpY2ggdGFrZXMgYXMgaW5wdXQgYSBzZXF1ZW5jZSBvZiBOIHBvc2l0aXZlIGludGVnZXJzIGFuZCBkZXRlcm1pbmVzIHdoZXRoZXIgdGhlc2VxdWVuY2UgaXMgdGhlIHRyaWFuZ2xlIGNvdW50IHNlcXVlbmNlIG9mIGEgcG9seWdvbiBvZiBOIHZlcnRpY2VzLiBJZiBzbywgbGlzdCB0aGUgdHJpYW5nbGVzIG9mIHRoZXRyaWFuZ3VsYXRpb24gaW4gbGV4aWNvZ3JhcGhpY2FsIG9yZGVyLjxcL3A+XHJcbiIsImlucHV0IjoiPHA+VGhlIGZpcnN0IGxpbmUgb2YgaW5wdXQgY29udGFpbnMgYSBzaW5nbGUgaW50ZWdlciBQLCAoMSAmbGU7IFAgJmxlOyAxMDAwKSwgd2hpY2ggaXMgdGhlIG51bWJlciBvZiBkYXRhIHNldHN0aGF0IGZvbGxvdy4gRWFjaCBkYXRhIHNldCBzaG91bGQgYmUgcHJvY2Vzc2VkIGlkZW50aWNhbGx5IGFuZCBpbmRlcGVuZGVudGx5LjxcL3A+XHJcblxyXG48cD5FYWNoIGRhdGEgc2V0IGNvbnNpc3RzIG9mIGEgc2luZ2xlIGxpbmUgb2YgaW5wdXQuIEl0IGNvbnRhaW5zIHRoZSBkYXRhIHNldCBudW1iZXIsIEssIGZvbGxvd2VkIGJ5IHRoZW51bWJlciwgTiwgKDQgJmx0Oz0gTiAmbHQ7PSAyMCkgb2YgaW50ZWdlcnMgaW4gdGhlIHNlcXVlbmNlLCBmb2xsb3dlZCBieSB0aGUgTiBpbnRlZ2VycyBvZiB0aGUgc2VxdWVuY2VpbiBvcmRlciwgYWxsIHNlcGFyYXRlZCBieSBhIHNpbmdsZSBzcGFjZS48XC9wPlxyXG4iLCJvdXRwdXQiOiI8cD5Gb3IgZWFjaCBkYXRhIHNldCB0aGVyZSBtYXkgYmUgbXVsdGlwbGUgbGluZXMgb2Ygb3V0cHV0LiBJZiB0aGUgaW5wdXQgc2VxdWVuY2UgaXMgTk9UIHRoZSB0cmlhbmdsZWNvdW50IHNlcXVlbmNlIG9mIGEgcG9seWdvbiBvZiBOIHZlcnRpY2VzLCB0aGUgc2luZ2xlIG91dHB1dCBsaW5lIGNvbnNpc3RzIG9mIHRoZSBkYXRhIHNldCBudW1iZXIsIEssZm9sbG93ZWQgYnkgYSBzaW5nbGUgc3BhY2UgZm9sbG93ZWQgYnkgdGhlIChjYXBpdGFsKSBsZXR0ZXIgTi4gT3RoZXJ3aXNlICh0aGUgaW5wdXQgc2VxdWVuY2UgaXMgdGhldHJpYW5nbGUgY291bnQgc2VxdWVuY2Ugb2YgYSBwb2x5Z29uIG9mIE4gdmVydGljZXMpLCB0aGUgZmlyc3Qgb3V0cHV0IGxpbmUgY29uc2lzdHMgb2YgdGhlIGRhdGEgc2V0bnVtYmVyLCBLLCBmb2xsb3dlZCBieSBhIHNpbmdsZSBzcGFjZSBmb2xsb3dlZCBieSB0aGUgKGNhcGl0YWwpIGxldHRlciBZLiBGb2xsb3dpbmcgdGhpcyBsaW5lIGFyZSAoTi0yKWxpbmVzIGVhY2ggY29udGFpbmluZyB0aGUgaW5kaWNlcyBvZiB0aGUgdmVydGljZXMgb2YgYSB0cmlhbmdsZSBvZiB0aGUgdHJpYW5ndWxhdGlvbiwgb25lIHRyaWFuZ2xlIHBlciBsaW5lLHdpdGggdGhlIHZlcnRleCBpbmRpY2VzIGluIGluY3JlYXNpbmcgb3JkZXIuIFRoZSB0cmlhbmdsZXMgc2hvdWxkIGJlIHNvcnRlZCBpbiBsZXhpY29ncmFwaGljIG9yZGVybGVhc3QgZmlyc3QuIFRoYXQgaXMsIGlmIGsgJmx0OyBsICZsdDsgbSBhcmUgdGhlIHZlcnRleCBpbmRpY2VzIG9mIG9uZSB0cmlhbmdsZSBhbmQgciAmbHQ7IHMgJmx0OyB0IGFyZSB0aGUgdmVydGV4aW5kaWNlcyBvZiBhbm90aGVyLCB0aGVuIHRoZSBmaXJzdCBwcmVjZWRlcyB0aGUgc2Vjb25kIGluIGxleGljb2dyYXBoaWNhbCBvcmRlciBpZjo8XC9wPlxyXG5cclxuPHByZT5cclxuayAmbHQ7IHIgT1IgKGsgPT0gciBBTkQgbCAmbHQ7IHMpIE9SIChrID09IHIgQU5EIGwgPT0gcyBBTkQgbSAmbHQ7IHQpPFwvcHJlPlxyXG4iLCJoaW50IjoiIiwib3JpZ2luYWwiOiIxIiwiaHRtbF90aXRsZSI6IjAiLCJwcm9ibGVtX2xhbmdfdGNvZGUiOiJFbmdsaXNoIn1d