시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 128 MB 1281 597 442 50.805%

문제

이진 트리는 매우 중요한 기본 자료 구조이다. 아래 그림은 루트 노드가 유일한 이진 트리이다. 모든 노드는 최대 2개의 자식 노드를 가질 수 있으며, 왼쪽 자식이 순서가 먼저이다. 노드 n개로 이루어진 이진 트리를 BT라고 하자. BT의 노드는 1부터 n까지 유일한 번호가 매겨져 있다.

아래 그림에 나와있는 BT의 루트는 3번 노드이다. 1번 노드는 오른쪽 자식만 가지고 있고, 4와 7은 왼쪽 자식만 가지고 있다. 3과 6은 왼쪽과 오른쪽 자식을 모두 가지고 있다. 나머지 노드는 모두 자식이 없으며, 이러한 노드는 리프 노드라고 부른다.

BT의 모든 노드를 순회하는 방법은 전위 순회(preorder), 중위 순회(inorder), 후위 순회(postorder)로 총 세 가지가 있다. 이 세 방법은 아래에 C 스타일의 의사 코드로 나와 있다. BT의 노드 v에 대해서, v.left는 왼쪽 자식, v.right는 오른쪽 자식을 나타낸다. v가 왼쪽 자식이 없으면 v.left는 ∅와 같고, 오른쪽 자식이 없으면 v.right는 ∅와 같다.

BT를 전위 순회, 중위 순회한 결과가 주어진다. 즉, 위의 함수 중 preorder(root node of BT)와 inorder(root node of BT)를 호출해서 만든 리스트가 주어진다. 두 순회한 결과를 가지고 다시 BT를 만들 수 있다. BT의 전위, 중위 순회한 결과가 주어졌을 때, 후위 순회했을 때의 결과를 구하는 프로그램을 작성하시오.

예를 들어, 위의 그림을 전위 순회하면 3,6,5,4,8,7,1,2, 중위 순회하면 5,6,8,4,3,1,2,7이 된다. 이를 이용해 후위 순회하면 5,8,4,6,2,1,7,3이 된다.

입력

첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스의 첫째 줄에는 노드의 개수 n이 주어진다. (1 ≤ n ≤ 1,000) BT의 모든 노드에는 1부터 n까지 서로 다른 번호가 매겨져 있다. 다음 줄에는 BT를 전위 순회한 결과, 그 다음 줄에는 중위 순회한 결과가 주어진다. 항상 두 순회 결과로 유일한 이진 트리가 만들어지는 경우만 입력으로 주어진다.

출력

각 테스트 케이스마다 후위 순회한 결과를 출력 한다.

예제 입력 1

2
4
3 2 1 4
2 3 4 1
8
3 6 5 4 8 7 1 2
5 6 8 4 3 1 2 7

예제 출력 1

2 4 1 3
5 8 4 6 2 1 7 3

힌트

W3sicHJvYmxlbV9pZCI6IjQyNTYiLCJwcm9ibGVtX2xhbmciOiIwIiwidGl0bGUiOiJcdWQyYjhcdWI5YWMiLCJkZXNjcmlwdGlvbiI6IjxwPlx1Yzc3NFx1YzljNCBcdWQyYjhcdWI5YWNcdWIyOTQgXHViOWU0XHVjNmIwIFx1YzkxMVx1YzY5NFx1ZDU1YyBcdWFlMzBcdWJjZjggXHVjNzkwXHViOGNjIFx1YWQ2Y1x1Yzg3MFx1Yzc3NFx1YjJlNC4gXHVjNTQ0XHViNzk4IFx1YWRmOFx1YjliY1x1Yzc0MCBcdWI4ZThcdWQyYjggXHViMTc4XHViNGRjXHVhYzAwIFx1YzcyMFx1Yzc3Y1x1ZDU1YyBcdWM3NzRcdWM5YzQgXHVkMmI4XHViOWFjXHVjNzc0XHViMmU0LiBcdWJhYThcdWI0ZTAgXHViMTc4XHViNGRjXHViMjk0IFx1Y2Q1Y1x1YjMwMCAyXHVhYzFjXHVjNzU4IFx1Yzc5MFx1YzJkZCBcdWIxNzhcdWI0ZGNcdWI5N2MgXHVhYzAwXHVjOWM4IFx1YzIxOCBcdWM3ODhcdWM3M2NcdWJhNzAsIFx1YzY3Y1x1Y2FiZCBcdWM3OTBcdWMyZGRcdWM3NzQgXHVjMjFjXHVjMTFjXHVhYzAwIFx1YmEzY1x1YzgwMFx1Yzc3NFx1YjJlNC4gXHViMTc4XHViNGRjIG5cdWFjMWNcdWI4NWMgXHVjNzc0XHViOGU4XHVjNWI0XHVjOWM0IFx1Yzc3NFx1YzljNCBcdWQyYjhcdWI5YWNcdWI5N2MgQlRcdWI3N2NcdWFjZTAgXHVkNTU4XHVjNzkwLiBCVFx1Yzc1OCBcdWIxNzhcdWI0ZGNcdWIyOTQgMVx1YmQ4MFx1ZDEzMCBuXHVhZTRjXHVjOWMwIFx1YzcyMFx1Yzc3Y1x1ZDU1YyBcdWJjODhcdWQ2MzhcdWFjMDAgXHViOWU0XHVhY2E4XHVjODM4IFx1Yzc4OFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVjNTQ0XHViNzk4IFx1YWRmOFx1YjliY1x1YzVkMCBcdWIwOThcdWM2NDBcdWM3ODhcdWIyOTQgQlRcdWM3NTggXHViOGU4XHVkMmI4XHViMjk0IDNcdWJjODggXHViMTc4XHViNGRjXHVjNzc0XHViMmU0LiAxXHViYzg4IFx1YjE3OFx1YjRkY1x1YjI5NCBcdWM2MjRcdWI5NzhcdWNhYmQgXHVjNzkwXHVjMmRkXHViOWNjIFx1YWMwMFx1YzljMFx1YWNlMCBcdWM3ODhcdWFjZTAsIDRcdWM2NDAgN1x1Yzc0MCBcdWM2N2NcdWNhYmQgXHVjNzkwXHVjMmRkXHViOWNjIFx1YWMwMFx1YzljMFx1YWNlMCBcdWM3ODhcdWIyZTQuIDNcdWFjZmMgNlx1Yzc0MCBcdWM2N2NcdWNhYmRcdWFjZmMgXHVjNjI0XHViOTc4XHVjYWJkIFx1Yzc5MFx1YzJkZFx1Yzc0NCBcdWJhYThcdWI0NTAgXHVhYzAwXHVjOWMwXHVhY2UwIFx1Yzc4OFx1YjJlNC4gXHViMDk4XHViYTM4XHVjOWMwIFx1YjE3OFx1YjRkY1x1YjI5NCBcdWJhYThcdWI0NTAgXHVjNzkwXHVjMmRkXHVjNzc0IFx1YzVjNlx1YzczY1x1YmE3MCwgXHVjNzc0XHViN2VjXHVkNTVjIFx1YjE3OFx1YjRkY1x1YjI5NCBcdWI5YWNcdWQ1MDQgXHViMTc4XHViNGRjXHViNzdjXHVhY2UwIFx1YmQ4MFx1Yjk3OFx1YjJlNC48XC9wPlxyXG5cclxuPHA+PGltZyBhbHQ9XCJcIiBzcmM9XCJcL3VwbG9hZFwvaW1hZ2VzXC90cmVlKDIpLnBuZ1wiIHN0eWxlPVwiaGVpZ2h0OjE4M3B4OyB3aWR0aDoyNTBweFwiIFwvPjxcL3A+XHJcblxyXG48cD5CVFx1Yzc1OCBcdWJhYThcdWI0ZTAgXHViMTc4XHViNGRjXHViOTdjIFx1YzIxY1x1ZDY4Y1x1ZDU1OFx1YjI5NCBcdWJjMjlcdWJjOTVcdWM3NDAgXHVjODA0XHVjNzA0IFx1YzIxY1x1ZDY4YyhwcmVvcmRlciksIFx1YzkxMVx1YzcwNCBcdWMyMWNcdWQ2OGMoaW5vcmRlciksIFx1ZDZjNFx1YzcwNCBcdWMyMWNcdWQ2OGMocG9zdG9yZGVyKVx1Yjg1YyBcdWNkMWQgXHVjMTM4IFx1YWMwMFx1YzljMFx1YWMwMCBcdWM3ODhcdWIyZTQuIFx1Yzc3NCBcdWMxMzggXHViYzI5XHViYzk1XHVjNzQwIFx1YzU0NFx1Yjc5OFx1YzVkMCBDIFx1YzJhNFx1ZDBjMFx1Yzc3Y1x1Yzc1OCBcdWM3NThcdWMwYWMgXHVjZjU0XHViNGRjXHViODVjIFx1YjA5OFx1YzY0MCBcdWM3ODhcdWIyZTQuIEJUXHVjNzU4IFx1YjE3OFx1YjRkYyB2XHVjNWQwIFx1YjMwMFx1ZDU3NFx1YzExYywgdi5sZWZ0XHViMjk0IFx1YzY3Y1x1Y2FiZCBcdWM3OTBcdWMyZGQsIHYucmlnaHRcdWIyOTQgXHVjNjI0XHViOTc4XHVjYWJkIFx1Yzc5MFx1YzJkZFx1Yzc0NCBcdWIwOThcdWQwYzBcdWIwYjhcdWIyZTQuIHZcdWFjMDAgXHVjNjdjXHVjYWJkIFx1Yzc5MFx1YzJkZFx1Yzc3NCBcdWM1YzZcdWM3M2NcdWJhNzQgdi5sZWZ0XHViMjk0ICZlbXB0eTtcdWM2NDAgXHVhYzE5XHVhY2UwLCBcdWM2MjRcdWI5NzhcdWNhYmQgXHVjNzkwXHVjMmRkXHVjNzc0IFx1YzVjNlx1YzczY1x1YmE3NCB2LnJpZ2h0XHViMjk0ICZlbXB0eTtcdWM2NDAgXHVhYzE5XHViMmU0LjxcL3A+XHJcblxyXG48cD48aW1nIGFsdD1cIlwiIHNyYz1cIlwvdXBsb2FkXC9pbWFnZXNcL3RyZWVvcmRlci5wbmdcIiBzdHlsZT1cImhlaWdodDoxNTBweDsgd2lkdGg6NjgzcHhcIiBcLz48XC9wPlxyXG5cclxuPHA+QlRcdWI5N2MgXHVjODA0XHVjNzA0IFx1YzIxY1x1ZDY4YywgXHVjOTExXHVjNzA0Jm5ic3A7XHVjMjFjXHVkNjhjXHVkNTVjIFx1YWNiMFx1YWNmY1x1YWMwMCBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuIFx1Yzk4OSwgXHVjNzA0XHVjNzU4IFx1ZDU2OFx1YzIxOCBcdWM5MTEgcHJlb3JkZXIocm9vdCBub2RlIG9mIEJUKVx1YzY0MCBpbm9yZGVyKHJvb3Qgbm9kZSBvZiBCVClcdWI5N2MgXHVkNjM4XHVjZDljXHVkNTc0XHVjMTFjIFx1YjljY1x1YjRlMCBcdWI5YWNcdWMyYTRcdWQyYjhcdWFjMDAgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0LiBcdWI0NTAgXHVjMjFjXHVkNjhjXHVkNTVjIFx1YWNiMFx1YWNmY1x1Yjk3YyBcdWFjMDBcdWM5YzBcdWFjZTAgXHViMmU0XHVjMmRjIEJUXHViOTdjIFx1YjljY1x1YjRlNCBcdWMyMTggXHVjNzg4XHViMmU0LiBCVFx1Yzc1OCBcdWM4MDRcdWM3MDQsIFx1YzkxMVx1YzcwNCBcdWMyMWNcdWQ2OGNcdWQ1NWMmbmJzcDtcdWFjYjBcdWFjZmNcdWFjMDAgXHVjOGZjXHVjNWI0XHVjODRjXHVjNzQ0IFx1YjU0YywgXHVkNmM0XHVjNzA0Jm5ic3A7XHVjMjFjXHVkNjhjXHVkNTg4XHVjNzQ0IFx1YjU0Y1x1Yzc1OCBcdWFjYjBcdWFjZmNcdWI5N2MgXHVhZDZjXHVkNTU4XHViMjk0IFx1ZDUwNFx1Yjg1Y1x1YWRmOFx1YjdhOFx1Yzc0NCBcdWM3OTFcdWMxMzFcdWQ1NThcdWMyZGNcdWM2MjQuPFwvcD5cclxuXHJcbjxwPlx1YzYwOFx1Yjk3YyBcdWI0ZTRcdWM1YjQsIFx1YzcwNFx1Yzc1OCBcdWFkZjhcdWI5YmNcdWM3NDQgXHVjODA0XHVjNzA0IFx1YzIxY1x1ZDY4Y1x1ZDU1OFx1YmE3NCAzLDYsNSw0LDgsNywxLDIsIFx1YzkxMVx1YzcwNCBcdWMyMWNcdWQ2OGNcdWQ1NThcdWJhNzQgNSw2LDgsNCwzLDEsMiw3XHVjNzc0IFx1YjQxY1x1YjJlNC4gXHVjNzc0XHViOTdjIFx1Yzc3NFx1YzZhOVx1ZDU3NCBcdWQ2YzRcdWM3MDQgXHVjMjFjXHVkNjhjXHVkNTU4XHViYTc0IDUsOCw0LDYsMiwxLDcsM1x1Yzc3NCBcdWI0MWNcdWIyZTQuPFwvcD5cclxuIiwiaW5wdXQiOiI8cD5cdWNjYWJcdWM5ZjggXHVjOTA0XHVjNWQwIFx1ZDE0Y1x1YzJhNFx1ZDJiOCBcdWNmMDBcdWM3NzRcdWMyYTRcdWM3NTggXHVhYzFjXHVjMjE4IFRcdWFjMDAgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0LiBcdWFjMDEgXHVkMTRjXHVjMmE0XHVkMmI4IFx1Y2YwMFx1Yzc3NFx1YzJhNFx1Yzc1OCBcdWNjYWJcdWM5ZjggXHVjOTA0XHVjNWQwXHViMjk0IFx1YjE3OFx1YjRkY1x1Yzc1OCBcdWFjMWNcdWMyMTggblx1Yzc3NCBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuICgxICZsZTsgbiAmbGU7IDEsMDAwKSBCVFx1Yzc1OCBcdWJhYThcdWI0ZTAgXHViMTc4XHViNGRjXHVjNWQwXHViMjk0IDFcdWJkODBcdWQxMzAgblx1YWU0Y1x1YzljMCBcdWMxMWNcdWI4NWMgXHViMmU0XHViOTc4IFx1YmM4OFx1ZDYzOFx1YWMwMCBcdWI5ZTRcdWFjYThcdWM4MzggXHVjNzg4XHViMmU0LiBcdWIyZTRcdWM3NGMgXHVjOTA0XHVjNWQwXHViMjk0IEJUXHViOTdjIFx1YzgwNFx1YzcwNCBcdWMyMWNcdWQ2OGNcdWQ1NWMgXHVhY2IwXHVhY2ZjLCBcdWFkZjggXHViMmU0XHVjNzRjIFx1YzkwNFx1YzVkMFx1YjI5NCBcdWM5MTFcdWM3MDQgXHVjMjFjXHVkNjhjXHVkNTVjIFx1YWNiMFx1YWNmY1x1YWMwMCBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuIFx1ZDU2ZFx1YzBjMSBcdWI0NTAgXHVjMjFjXHVkNjhjIFx1YWNiMFx1YWNmY1x1Yjg1YyBcdWM3MjBcdWM3N2NcdWQ1NWMgXHVjNzc0XHVjOWM0IFx1ZDJiOFx1YjlhY1x1YWMwMCBcdWI5Y2NcdWI0ZTRcdWM1YjRcdWM5YzBcdWIyOTQgXHVhY2JkXHVjNmIwXHViOWNjIFx1Yzc4NVx1YjgyNVx1YzczY1x1Yjg1YyBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuPFwvcD5cclxuIiwib3V0cHV0IjoiPHA+XHVhYzAxIFx1ZDE0Y1x1YzJhNFx1ZDJiOCBcdWNmMDBcdWM3NzRcdWMyYTRcdWI5YzhcdWIyZTQgXHVkNmM0XHVjNzA0IFx1YzIxY1x1ZDY4Y1x1ZDU1YyBcdWFjYjBcdWFjZmNcdWI5N2MgXHVjZDljXHViODI1IFx1ZDU1Y1x1YjJlNC48XC9wPlxyXG4iLCJoaW50IjoiIiwib3JpZ2luYWwiOiIwIiwicHJvYmxlbV9sYW5nX2NvZGUiOiJcdWQ1NWNcdWFkNmRcdWM1YjQifSx7InByb2JsZW1faWQiOiI0MjU2IiwicHJvYmxlbV9sYW5nIjoiMSIsInRpdGxlIjoiVHJlZSIsImRlc2NyaXB0aW9uIjoiPHA+QSBiaW5hcnkgdHJlZSBpcyBhIGJhc2ljIGFuZCBpbXBvcnRhbnQgZGF0YSBzdHJ1Y3R1cmUuIEFzIGlsbHVzdHJhdGVkIGluIEZpZ3VyZSAxLCBhIGJpbmFyeSB0cmVlIGhhcyBhIHVuaXF1ZSByb290IG5vZGUuIEVhY2ggbm9kZSBoYXMgYXQgbW9zdCB0d28gY2hpbGQgbm9kZXMgdGhhdCBhcmUgb3JkZXJlZCBmcm9tIGxlZnQgdG8gcmlnaHQuIExldCBCVCBiZSBhIGJpbmFyeSB0cmVlIG9mIG4gbm9kZXMuIE5vZGVzIG9mIEJUIGhhdmUgdW5pcXVlIGlkIG51bWJlcnMgZnJvbSAxIHRvIG4uJm5ic3A7PFwvcD5cclxuXHJcbjxwPkZvciBCVCBpbiBGaWd1cmUgMSwgdGhlIG5vZGUgb2YgaWQgMyBpcyB0aGUgcm9vdCBub2RlLiBUaGUgbm9kZSBvZiBpZCAxIGhhcyBvbmx5IHJpZ2h0IGNoaWxkIG5vZGUsIGJ1dCB0d28gbm9kZXMgb2YgaWQgNCBhbmQgaWQgNyBoYXZlIG9ubHkgbGVmdCBjaGlsZCBub2Rlcy4gVHdvIG5vZGVzIG9mIGlkIDMgYW5kIGlkIDYgaGF2ZSBsZWZ0IGFuZCByaWdodCBjaGlsZCBub2Rlcy4gVGhlIG90aGVyIG5vZGVzLCBjYWxsZWQgbGVhZiBub2RlcywgaGF2ZSBubyBjaGlsZCBub2Rlcy4mbmJzcDs8XC9wPlxyXG5cclxuPHA+PGltZyBhbHQ9XCJcIiBzcmM9XCJcL3VwbG9hZFwvaW1hZ2VzXC90cmVlKDIpLnBuZ1wiIHN0eWxlPVwiaGVpZ2h0OjE4M3B4OyB3aWR0aDoyNTBweFwiIFwvPjxcL3A+XHJcblxyXG48cD5GaWd1cmUgMS4gQSBiaW5hcnkgdHJlZSB3aXRoIDggbm9kZXMuIFRoZSBkYXNoZWQgdmVydGljYWwgbGluZXMgZnJvbSB0aGUgbm9kZXMgYXJlIGltYWdpbmFyeSBsaW5lcyB0byBkaXN0aW5ndWlzaCB0aGVpciBsZWZ0IGFuZCByaWdodCBjaGlsZCBub2RlcyZuYnNwOzxcL3A+XHJcblxyXG48cD5XZSBoYXZlIHRocmVlIG1ldGhvZHMgdG8gdHJhdmVyc2UgYWxsIG5vZGVzIG9mIEJUOyBwcmVvcmRlciwgaW5vcmRlciwgYW5kIHBvc3RvcmRlciB0cmF2ZXJzYWxzLiBUaGVzZSB0aHJlZSB0cmF2ZXJzYWxzIGFyZSBkb25lIGJ5IHRoZSBmb2xsb3dpbmcgQy1zdHlsZSBwc2V1ZG8gY29kZXM6IEZvciBhIG5vZGUgdiBvZiBCVCwgd2UgZGVub3RlIGJ5IHYubGVmdCBhbmQgdi5yaWdodCBpdHMgbGVmdCBjaGlsZCBub2RlIGFuZCByaWdodCBjaGlsZCBub2RlLCByZXNwZWN0aXZlbHkuIElmIHYgaGFzIG5vIGxlZnQgY2hpbGQsIHRoZW4gdi5sZWZ0IGlzIGVxdWFsIHRvICZlbXB0eTsuIElmIHYgaGFzIG5vIHJpZ2h0IGNoaWxkLCB0aGVuIHYucmlnaHQgaXMgZXF1YWwgdG8gJmVtcHR5Oy4mbmJzcDs8XC9wPlxyXG5cclxuPHA+PGltZyBhbHQ9XCJcIiBzcmM9XCJcL3VwbG9hZFwvaW1hZ2VzXC90cmVlb3JkZXIucG5nXCIgc3R5bGU9XCJoZWlnaHQ6MTUwcHg7IHdpZHRoOjY4M3B4XCIgXC8+PFwvcD5cclxuXHJcbjxwPllvdSBhcmUgbm93IGdpdmVuIHR3byBsaXN0cyBvZiBpZCBudW1iZXJzIG9mIEJUOyBvbmUgaXMgdGhlIGxpc3Qgb2J0YWluZWQgYnkgcHJlb3JkZXIgdHJhdmVyc2FsIGFuZCB0aGUgb3RoZXIgaXMgYnkgaW5vcmRlciB0cmF2ZXJzYWwsIGkuZS4sIHR3byBsaXN0cyBvYnRhaW5lZCBieSBjYWxsaW5nIHByZW9yZGVyKHJvb3Qgbm9kZSBvZiBCVCkgYW5kIGlub3JkZXIocm9vdCBub2RlIG9mIEJUKS4gSXQgaXMgd2VsbCBrbm93biB0aGF0IEJUIGNhbiBiZSByZWNvbnN0cnVjdGVkIGZyb20gdGhlc2UgdHdvIGxpc3RzLiBZb3UgbmVlZCB0byByZWNvbnN0cnVjdCBCVCBmcm9tIHRoZSBwcmVvcmRlciBhbmQgaW5vcmRlciB0cmF2ZXJzYWwgbGlzdHMgb2YgQlQsIGFuZCBvdXRwdXQgaXRzIHBvc3RvcmRlciB0cmF2ZXJzYWwgbGlzdCB3aGljaCBzaG91bGQgYmUgdGhlIHNhbWUgYXMgdGhlIHJlc3VsdCBvZiBwb3N0b3JkZXIocm9vdCBub2RlIG9mIEJUKS4mbmJzcDs8XC9wPlxyXG5cclxuPHA+Rm9yIGV4YW1wbGUsIGlmIHlvdSBhcmUgZ2l2ZW4gcHJlb3JkZXIgdHJhdmVyc2FsIGxpc3Qgb2YgMywgNiwgNSwgNCwgOCwgNywgMSwgMiBhbmQgaW5vcmRlciB0cmF2ZXJzYWwgbGlzdCBvZiA1LCA2LCA4LCA0LCAzLCAxLCAyLCA3LCB0aGVuIHlvdSBzaG91bGQgcmVjb25zdHJ1Y3QgdGhlIHRyZWUgYXMgaW4gRmlndXJlIDEsIGFuZCBvdXRwdXQgaXRzIHBvc3RvcmRlciB0cmF2ZXJzYWwgbGlzdCwgd2hpY2ggaXMgNSwgOCwgNCwgNiwgMiwgMSwgNywgMy4mbmJzcDs8XC9wPlxyXG4iLCJpbnB1dCI6IjxwPllvdXIgcHJvZ3JhbSBpcyB0byByZWFkIGZyb20gc3RhbmRhcmQgaW5wdXQuIFRoZSBpbnB1dCBjb25zaXN0cyBvZiBUIHRlc3QgY2FzZXMuIFRoZSBudW1iZXIgb2YgdGVzdCBjYXNlcyBUIGlzIGdpdmVuIGluIHRoZSBmaXJzdCBsaW5lIG9mIHRoZSBpbnB1dC4gRWFjaCB0ZXN0IGNhc2Ugc3RhcnRzIHdpdGggaW50ZWdlciBuLCB0aGUgbnVtYmVyIG9mIG5vZGVzIG9mIGEgcm9vdGVkIGFuZCBvcmRlcmVkIGJpbmFyeSB0cmVlIEJULCB3aGVyZSAxICZsZTsgbiAmbGU7IDEsMDAwLiBOb2RlcyBvZiBCVCBhcmUgYXNzdW1lZCB0byBoYXZlIGRpc3RpbmN0IGlkIG51bWJlciBmcm9tIDEgdG8gbi4gVGhlIG5leHQgbGluZSBjb250YWlucyBhIGxpc3Qgb2YgbiBudW1iZXJzLCBpLmUuLCBhIHBlcm11dGF0aW9uIG9mIHsxLDIsIFx1MjJlZiAsIG59LCB3aGljaCBpcyB0aGUgcHJlb3JkZXIgdHJhdmVyc2FsIGxpc3Qgb2YgQlQuIFRoZSBuZXh0IGxpbmUgY29udGFpbnMgYSBsaXN0IG9mIG4gbnVtYmVycywgaS5lLiwgYSBwZXJtdXRhdGlvbiBvZiB7MSwyLCBcdTIyZWYgLCBufSwgd2hpY2ggaXMgdGhlIGlub3JkZXIgdHJhdmVyc2FsIGxpc3Qgb2YgdGhlIHNhbWUgQlQuIFR3byBuZWlnaGJvcmluZyBub2RlIGlkIG51bWJlcnMgaW4gdGhlc2UgbGlzdHMgaGF2ZSBhIHNpbmdsZSBzcGFjZSBiZXR3ZWVuIHRoZW0uIE5vdGUgdGhhdCBhIHVuaXF1ZSBiaW5hcnkgdHJlZSBpcyBhbHdheXMgY29uc3RydWN0ZWQgZnJvbSB0aGVzZSBwcmVvcmRlciBhbmQgaW5vcmRlciB0cmF2ZXJzYWwgbGlzdHMuJm5ic3A7PFwvcD5cclxuIiwib3V0cHV0IjoiPHA+WW91ciBwcm9ncmFtIGlzIHRvIHdyaXRlIHRvIHN0YW5kYXJkIG91dHB1dC4gUHJpbnQgZXhhY3RseSBvbmUgbGluZSBmb3IgZWFjaCB0ZXN0IGNhc2UuIFRoZSBsaW5lIHNob3VsZCBjb250YWluIGEgcGVybXV0YXRpb24gb2YgbiBudW1iZXJzIG9mIHsxLDIsIFx1MjJlZiAsIG59LCB3aGljaCBpcyB0aGUgc2FtZSBhcyB0aGUgcG9zdG9yZGVyIHRyYXZlcnNhbCBsaXN0IG9mIEJULiZuYnNwOzxcL3A+XHJcbiIsImhpbnQiOiIiLCJvcmlnaW5hbCI6IjEiLCJwcm9ibGVtX2xhbmdfY29kZSI6Ilx1YzYwMVx1YzViNCJ9XQ==