시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 128 MB118151230.000%

문제

한 회사에서 지뢰 탐사용 로봇을 출시하였다. 이 회사의 로봇 제품은 명령에 따라 움직이거나, 혹은 돌거나, 혹은 지뢰를 찾아보게 된다. 이러한 명령은 총 네 가지 종류로 정리되어 있는데, 각각은 다음과 같다.

  1. Forward : 로봇이 한 칸 앞으로 이동한다.
  2. Turn Left : 로봇이 왼쪽으로 90도만큼 회전한다.
  3. Turn Right : 로봇이 오른쪽으로 90도만큼 회전한다.
  4. Scan : 로봇의 한 칸 앞에서 지뢰를 찾아본다.

회전은 90도 단위로 하게 되는데, 이는 로봇의 성능의 한계 때문에 지형을 격자 형태로 인식하여 처리하기 때문이다. 또한, 회전을 항상 90도 단위로 해야 하기 때문에 뒤로 돌기 위해서는 두 번의 회전 명령을 내려야 한다.

지뢰 탐사에 로봇을 사용하는 아이디어가 획기적이었기 때문에, 여러 국가의 국방부에서 이 로봇에 대한 관심을 보이게 되었다. 하지만 중국에서 이 로봇과 똑같은 제품을 더 싼 가격에 내놓게 되었고, 이에 대응하기 위해 회사에서는 새로운 로봇 개발에 박차를 가하였다. 새로운 로봇은 다음의 두 종류의 명령에 따라 움직이게 된다.

(1) Move [방향] [N] : 로봇이 [방향] 쪽으로 [N]칸 이동한다. [방향]은 Forward, Back, Left, Right 중의 하나이며 N은 양의 정수이다. 만약 [방향]이 Forward가 아니라면, 그 쪽으로 먼저 회전을 한 뒤에 움직이게 된다(움직인 뒤에는 회전한 방향을 유지한다).   (2) Scan [방향] : 로봇이 [방향] 쪽의 한 칸 앞에서 지뢰를 찾아본다. [방향]은 Forward, Back, Left, Right 중의 하나이다. 만약 [방향]이 Forward가 아니라면, 그 쪽으로 먼저 회전을 한 뒤에 지뢰를 찾아보게 된다(지뢰를 찾아본 뒤에는 회전한 방향을 유지한다).

회사 측에서는 명령의 종류를 줄여서 더욱 효율적으로 지뢰 탐사를 수행할 수 있다는 사실을 홍보하려 한다. 이를 위해서 구형 로봇을 동작시키기 위해 필요한 명령 회수와, 똑같은 작업을 수행하기 위한 신형 로봇의 명령 회수를 비교해 보려 한다.

구형 로봇에서 수행한 명령들이 주어졌을 때, 이와 같은 동작을 하도록 하기 위해 신형 로봇에 입력해야 하는 최소 개수의 명령을 찾아내는 프로그램을 작성하시오. 구형 로봇과 신형 로봇은 같은 위치에서, 같은 방향을 향해 있는 상태에서 동작을 시작하며, 지뢰들을 같은 순서대로, 같은 위치를 찾아보아야 한다. 중간에 지나는 위치는 다르더라도 Scan을 수행하는 위치만 일치하면 되는 것으로 한다. 또, 만약 같은 위치에 대해서 여러 번 Scan을 수행하는 입력이 주어진다면, 출력 역시 같은 위치에 대해서 여러 번 Scan을 수행해야 한다. 로봇 자체는 지뢰에 대한 방어 장치가 있기 때문에, Scan을 수행해야 하는 위치를 지나 갈 수도 있다.

입력

첫째 줄에 구형 로봇에서 수행한 명령의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 각각의 명령이 위에 있는 형식대로, 한 줄에 하나씩 주어진다.

출력

첫째 줄에 신형 로봇에서 필요한 최소 개수의 명령을 출력한다.

예제 입력 1

8
Forward
Forward
Turn Left
Forward
Scan
Turn Right
Scan
Forward

예제 출력 1

4
W3sicHJvYmxlbV9pZCI6IjIxMzEiLCJwcm9ibGVtX2xhbmciOiIwIiwidGl0bGUiOiJcdWI4NWNcdWJkMDcgXHViYTg1XHViODM5IiwiZGVzY3JpcHRpb24iOiI8cD5cdWQ1NWMgXHVkNjhjXHVjMGFjXHVjNWQwXHVjMTFjIFx1YzljMFx1YjhiMCBcdWQwZDBcdWMwYWNcdWM2YTkgXHViODVjXHViZDA3XHVjNzQ0IFx1Y2Q5Y1x1YzJkY1x1ZDU1OFx1YzYwMFx1YjJlNC4gXHVjNzc0IFx1ZDY4Y1x1YzBhY1x1Yzc1OCBcdWI4NWNcdWJkMDcgXHVjODFjXHVkNDg4XHVjNzQwIFx1YmE4NVx1YjgzOVx1YzVkMCBcdWI1MzBcdWI3N2MgXHVjNmMwXHVjOWMxXHVjNzc0XHVhYzcwXHViMDk4LCBcdWQ2MzlcdWM3NDAgXHViM2NjXHVhYzcwXHViMDk4LCBcdWQ2MzlcdWM3NDAgXHVjOWMwXHViOGIwXHViOTdjIFx1Y2MzZVx1YzU0NFx1YmNmNFx1YWM4YyBcdWI0MWNcdWIyZTQuIFx1Yzc3NFx1YjdlY1x1ZDU1YyBcdWJhODVcdWI4MzlcdWM3NDAgXHVjZDFkIFx1YjEyNCBcdWFjMDBcdWM5YzAgXHVjODg1XHViOTU4XHViODVjIFx1YzgxNVx1YjlhY1x1YjQxOFx1YzViNCBcdWM3ODhcdWIyOTRcdWIzNzAsIFx1YWMwMVx1YWMwMVx1Yzc0MCBcdWIyZTRcdWM3NGNcdWFjZmMgXHVhYzE5XHViMmU0LjxcL3A+XHJcblxyXG48b2w+XHJcblx0PGxpPkZvcndhcmQgOiBcdWI4NWNcdWJkMDdcdWM3NzQgXHVkNTVjIFx1Y2U3OCBcdWM1NWVcdWM3M2NcdWI4NWMgXHVjNzc0XHViM2Q5XHVkNTVjXHViMmU0LjxcL2xpPlxyXG5cdDxsaT5UdXJuIExlZnQgOiBcdWI4NWNcdWJkMDdcdWM3NzQgXHVjNjdjXHVjYWJkXHVjNzNjXHViODVjIDkwXHViM2M0XHViOWNjXHVkMDdjIFx1ZDY4Y1x1YzgwNFx1ZDU1Y1x1YjJlNC48XC9saT5cclxuXHQ8bGk+VHVybiBSaWdodCA6IFx1Yjg1Y1x1YmQwN1x1Yzc3NCBcdWM2MjRcdWI5NzhcdWNhYmRcdWM3M2NcdWI4NWMgOTBcdWIzYzRcdWI5Y2NcdWQwN2MgXHVkNjhjXHVjODA0XHVkNTVjXHViMmU0LjxcL2xpPlxyXG5cdDxsaT5TY2FuIDogXHViODVjXHViZDA3XHVjNzU4IFx1ZDU1YyBcdWNlNzggXHVjNTVlXHVjNWQwXHVjMTFjIFx1YzljMFx1YjhiMFx1Yjk3YyBcdWNjM2VcdWM1NDRcdWJjZjhcdWIyZTQuPFwvbGk+XHJcbjxcL29sPlxyXG5cclxuPHA+XHVkNjhjXHVjODA0XHVjNzQwIDkwXHViM2M0IFx1YjJlOFx1YzcwNFx1Yjg1YyBcdWQ1NThcdWFjOGMgXHViNDE4XHViMjk0XHViMzcwLCBcdWM3NzRcdWIyOTQgXHViODVjXHViZDA3XHVjNzU4IFx1YzEzMVx1YjJhNVx1Yzc1OCBcdWQ1NWNcdWFjYzQgXHViNTRjXHViYjM4XHVjNWQwIFx1YzljMFx1ZDYxNVx1Yzc0NCBcdWFjYTlcdWM3OTAgXHVkNjE1XHVkMGRjXHViODVjIFx1Yzc3OFx1YzJkZFx1ZDU1OFx1YzVlYyBcdWNjOThcdWI5YWNcdWQ1NThcdWFlMzAgXHViNTRjXHViYjM4XHVjNzc0XHViMmU0LiBcdWI2MTBcdWQ1NWMsIFx1ZDY4Y1x1YzgwNFx1Yzc0NCBcdWQ1NmRcdWMwYzEgOTBcdWIzYzQgXHViMmU4XHVjNzA0XHViODVjIFx1ZDU3NFx1YzU3YyBcdWQ1NThcdWFlMzAgXHViNTRjXHViYjM4XHVjNWQwIFx1YjRhNFx1Yjg1YyBcdWIzY2NcdWFlMzAgXHVjNzA0XHVkNTc0XHVjMTFjXHViMjk0IFx1YjQ1MCBcdWJjODhcdWM3NTggXHVkNjhjXHVjODA0IFx1YmE4NVx1YjgzOVx1Yzc0NCBcdWIwYjRcdWI4MjRcdWM1N2MgXHVkNTVjXHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWM5YzBcdWI4YjAgXHVkMGQwXHVjMGFjXHVjNWQwIFx1Yjg1Y1x1YmQwN1x1Yzc0NCBcdWMwYWNcdWM2YTlcdWQ1NThcdWIyOTQgXHVjNTQ0XHVjNzc0XHViNTE0XHVjNWI0XHVhYzAwIFx1ZDY4ZFx1YWUzMFx1YzgwMVx1Yzc3NFx1YzVjOFx1YWUzMCBcdWI1NGNcdWJiMzhcdWM1ZDAsIFx1YzVlY1x1YjdlYyBcdWFkNmRcdWFjMDBcdWM3NTggXHVhZDZkXHViYzI5XHViZDgwXHVjNWQwXHVjMTFjIFx1Yzc3NCBcdWI4NWNcdWJkMDdcdWM1ZDAgXHViMzAwXHVkNTVjIFx1YWQwMFx1YzJlY1x1Yzc0NCBcdWJjZjRcdWM3NzRcdWFjOGMgXHViNDE4XHVjNWM4XHViMmU0LiBcdWQ1NThcdWM5YzBcdWI5Y2MgXHVjOTExXHVhZDZkXHVjNWQwXHVjMTFjIFx1Yzc3NCBcdWI4NWNcdWJkMDdcdWFjZmMgXHViNjExXHVhYzE5XHVjNzQwIFx1YzgxY1x1ZDQ4OFx1Yzc0NCBcdWIzNTQgXHVjMmZjIFx1YWMwMFx1YWNhOVx1YzVkMCBcdWIwYjRcdWIxOTNcdWFjOGMgXHViNDE4XHVjNWM4XHVhY2UwLCBcdWM3NzRcdWM1ZDAgXHViMzAwXHVjNzUxXHVkNTU4XHVhZTMwIFx1YzcwNFx1ZDU3NCBcdWQ2OGNcdWMwYWNcdWM1ZDBcdWMxMWNcdWIyOTQgXHVjMGM4XHViODVjXHVjNmI0IFx1Yjg1Y1x1YmQwNyBcdWFjMWNcdWJjMWNcdWM1ZDAgXHViYzE1XHVjYzI4XHViOTdjIFx1YWMwMFx1ZDU1OFx1YzYwMFx1YjJlNC4gXHVjMGM4XHViODVjXHVjNmI0IFx1Yjg1Y1x1YmQwN1x1Yzc0MCBcdWIyZTRcdWM3NGNcdWM3NTggXHViNDUwIFx1Yzg4NVx1Yjk1OFx1Yzc1OCBcdWJhODVcdWI4MzlcdWM1ZDAgXHViNTMwXHViNzdjIFx1YzZjMFx1YzljMVx1Yzc3NFx1YWM4YyBcdWI0MWNcdWIyZTQuPFwvcD5cclxuXHJcbjxwPigxKSBNb3ZlIFtcdWJjMjlcdWQ1YTVdIFtOXSA6IFx1Yjg1Y1x1YmQwN1x1Yzc3NCBbXHViYzI5XHVkNWE1XSBcdWNhYmRcdWM3M2NcdWI4NWMgW05dXHVjZTc4IFx1Yzc3NFx1YjNkOVx1ZDU1Y1x1YjJlNC4gW1x1YmMyOVx1ZDVhNV1cdWM3NDAgRm9yd2FyZCwgQmFjaywgTGVmdCwgUmlnaHQgXHVjOTExXHVjNzU4IFx1ZDU1OFx1YjA5OFx1Yzc3NFx1YmE3MCBOXHVjNzQwIFx1YzU5MVx1Yzc1OCBcdWM4MTVcdWMyMThcdWM3NzRcdWIyZTQuIFx1YjljY1x1YzU3ZCBbXHViYzI5XHVkNWE1XVx1Yzc3NCBGb3J3YXJkXHVhYzAwIFx1YzU0NFx1YjJjOFx1Yjc3Y1x1YmE3NCwgXHVhZGY4IFx1Y2FiZFx1YzczY1x1Yjg1YyBcdWJhM2NcdWM4MDAgXHVkNjhjXHVjODA0XHVjNzQ0IFx1ZDU1YyBcdWI0YTRcdWM1ZDAgXHVjNmMwXHVjOWMxXHVjNzc0XHVhYzhjIFx1YjQxY1x1YjJlNChcdWM2YzBcdWM5YzFcdWM3NzggXHViNGE0XHVjNWQwXHViMjk0IFx1ZDY4Y1x1YzgwNFx1ZDU1YyBcdWJjMjlcdWQ1YTVcdWM3NDQgXHVjNzIwXHVjOWMwXHVkNTVjXHViMmU0KS4gJm5ic3A7ICgyKSBTY2FuIFtcdWJjMjlcdWQ1YTVdIDogXHViODVjXHViZDA3XHVjNzc0IFtcdWJjMjlcdWQ1YTVdIFx1Y2FiZFx1Yzc1OCBcdWQ1NWMgXHVjZTc4IFx1YzU1ZVx1YzVkMFx1YzExYyBcdWM5YzBcdWI4YjBcdWI5N2MgXHVjYzNlXHVjNTQ0XHViY2Y4XHViMmU0LiBbXHViYzI5XHVkNWE1XVx1Yzc0MCBGb3J3YXJkLCBCYWNrLCBMZWZ0LCBSaWdodCBcdWM5MTFcdWM3NTggXHVkNTU4XHViMDk4XHVjNzc0XHViMmU0LiBcdWI5Y2NcdWM1N2QgW1x1YmMyOVx1ZDVhNV1cdWM3NzQgRm9yd2FyZFx1YWMwMCBcdWM1NDRcdWIyYzhcdWI3N2NcdWJhNzQsIFx1YWRmOCBcdWNhYmRcdWM3M2NcdWI4NWMgXHViYTNjXHVjODAwIFx1ZDY4Y1x1YzgwNFx1Yzc0NCBcdWQ1NWMgXHViNGE0XHVjNWQwIFx1YzljMFx1YjhiMFx1Yjk3YyBcdWNjM2VcdWM1NDRcdWJjZjRcdWFjOGMgXHViNDFjXHViMmU0KFx1YzljMFx1YjhiMFx1Yjk3YyBcdWNjM2VcdWM1NDRcdWJjZjggXHViNGE0XHVjNWQwXHViMjk0IFx1ZDY4Y1x1YzgwNFx1ZDU1YyBcdWJjMjlcdWQ1YTVcdWM3NDQgXHVjNzIwXHVjOWMwXHVkNTVjXHViMmU0KS48XC9wPlxyXG5cclxuPHA+XHVkNjhjXHVjMGFjIFx1Y2UyMVx1YzVkMFx1YzExY1x1YjI5NCBcdWJhODVcdWI4MzlcdWM3NTggXHVjODg1XHViOTU4XHViOTdjIFx1YzkwNFx1YzVlY1x1YzExYyBcdWIzNTRcdWM2YjEgXHVkNmE4XHVjNzI4XHVjODAxXHVjNzNjXHViODVjIFx1YzljMFx1YjhiMCBcdWQwZDBcdWMwYWNcdWI5N2MgXHVjMjE4XHVkNTg5XHVkNTYwIFx1YzIxOCBcdWM3ODhcdWIyZTRcdWIyOTQgXHVjMGFjXHVjMmU0XHVjNzQ0IFx1ZDY0ZFx1YmNmNFx1ZDU1OFx1YjgyNCBcdWQ1NWNcdWIyZTQuIFx1Yzc3NFx1Yjk3YyBcdWM3MDRcdWQ1NzRcdWMxMWMgXHVhZDZjXHVkNjE1IFx1Yjg1Y1x1YmQwN1x1Yzc0NCBcdWIzZDlcdWM3OTFcdWMyZGNcdWQwYTRcdWFlMzAgXHVjNzA0XHVkNTc0IFx1ZDU0NFx1YzY5NFx1ZDU1YyBcdWJhODVcdWI4MzkgXHVkNjhjXHVjMjE4XHVjNjQwLCBcdWI2MTFcdWFjMTlcdWM3NDAgXHVjNzkxXHVjNWM1XHVjNzQ0IFx1YzIxOFx1ZDU4OVx1ZDU1OFx1YWUzMCBcdWM3MDRcdWQ1NWMgXHVjMmUwXHVkNjE1IFx1Yjg1Y1x1YmQwN1x1Yzc1OCBcdWJhODVcdWI4MzkgXHVkNjhjXHVjMjE4XHViOTdjIFx1YmU0NFx1YWQ1MFx1ZDU3NCBcdWJjZjRcdWI4MjQgXHVkNTVjXHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWFkNmNcdWQ2MTUgXHViODVjXHViZDA3XHVjNWQwXHVjMTFjIFx1YzIxOFx1ZDU4OVx1ZDU1YyBcdWJhODVcdWI4MzlcdWI0ZTRcdWM3NzQgXHVjOGZjXHVjNWI0XHVjODRjXHVjNzQ0IFx1YjU0YywgXHVjNzc0XHVjNjQwIFx1YWMxOVx1Yzc0MCBcdWIzZDlcdWM3OTFcdWM3NDQgXHVkNTU4XHViM2M0XHViODVkIFx1ZDU1OFx1YWUzMCBcdWM3MDRcdWQ1NzQgXHVjMmUwXHVkNjE1IFx1Yjg1Y1x1YmQwN1x1YzVkMCBcdWM3ODVcdWI4MjVcdWQ1NzRcdWM1N2MgXHVkNTU4XHViMjk0IFx1Y2Q1Y1x1YzE4YyBcdWFjMWNcdWMyMThcdWM3NTggXHViYTg1XHViODM5XHVjNzQ0IFx1Y2MzZVx1YzU0NFx1YjBiNFx1YjI5NCBcdWQ1MDRcdWI4NWNcdWFkZjhcdWI3YThcdWM3NDQgXHVjNzkxXHVjMTMxXHVkNTU4XHVjMmRjXHVjNjI0LiBcdWFkNmNcdWQ2MTUgXHViODVjXHViZDA3XHVhY2ZjIFx1YzJlMFx1ZDYxNSBcdWI4NWNcdWJkMDdcdWM3NDAgXHVhYzE5XHVjNzQwIFx1YzcwNFx1Y2U1OFx1YzVkMFx1YzExYywgXHVhYzE5XHVjNzQwIFx1YmMyOVx1ZDVhNVx1Yzc0NCBcdWQ1YTVcdWQ1NzQgXHVjNzg4XHViMjk0IFx1YzBjMVx1ZDBkY1x1YzVkMFx1YzExYyBcdWIzZDlcdWM3OTFcdWM3NDQgXHVjMmRjXHVjNzkxXHVkNTU4XHViYTcwLCBcdWM5YzBcdWI4YjBcdWI0ZTRcdWM3NDQgXHVhYzE5XHVjNzQwIFx1YzIxY1x1YzExY1x1YjMwMFx1Yjg1YywgXHVhYzE5XHVjNzQwIFx1YzcwNFx1Y2U1OFx1Yjk3YyBcdWNjM2VcdWM1NDRcdWJjZjRcdWM1NDRcdWM1N2MgXHVkNTVjXHViMmU0LiBcdWM5MTFcdWFjMDRcdWM1ZDAgXHVjOWMwXHViMDk4XHViMjk0IFx1YzcwNFx1Y2U1OFx1YjI5NCBcdWIyZTRcdWI5NzRcdWIzNTRcdWI3N2NcdWIzYzQgU2Nhblx1Yzc0NCBcdWMyMThcdWQ1ODlcdWQ1NThcdWIyOTQgXHVjNzA0XHVjZTU4XHViOWNjIFx1Yzc3Y1x1Y2U1OFx1ZDU1OFx1YmE3NCBcdWI0MThcdWIyOTQgXHVhYzgzXHVjNzNjXHViODVjIFx1ZDU1Y1x1YjJlNC4gXHViNjEwLCBcdWI5Y2NcdWM1N2QgXHVhYzE5XHVjNzQwIFx1YzcwNFx1Y2U1OFx1YzVkMCBcdWIzMDBcdWQ1NzRcdWMxMWMgXHVjNWVjXHViN2VjIFx1YmM4OCBTY2FuXHVjNzQ0IFx1YzIxOFx1ZDU4OVx1ZDU1OFx1YjI5NCBcdWM3ODVcdWI4MjVcdWM3NzQgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0XHViYTc0LCBcdWNkOWNcdWI4MjUgXHVjNWVkXHVjMmRjIFx1YWMxOVx1Yzc0MCBcdWM3MDRcdWNlNThcdWM1ZDAgXHViMzAwXHVkNTc0XHVjMTFjIFx1YzVlY1x1YjdlYyBcdWJjODggU2Nhblx1Yzc0NCBcdWMyMThcdWQ1ODlcdWQ1NzRcdWM1N2MgXHVkNTVjXHViMmU0LiBcdWI4NWNcdWJkMDcgXHVjNzkwXHVjY2I0XHViMjk0IFx1YzljMFx1YjhiMFx1YzVkMCBcdWIzMDBcdWQ1NWMgXHViYzI5XHVjNWI0IFx1YzdhNVx1Y2U1OFx1YWMwMCBcdWM3ODhcdWFlMzAgXHViNTRjXHViYjM4XHVjNWQwLCBTY2FuXHVjNzQ0IFx1YzIxOFx1ZDU4OVx1ZDU3NFx1YzU3YyBcdWQ1NThcdWIyOTQgXHVjNzA0XHVjZTU4XHViOTdjIFx1YzljMFx1YjA5OCBcdWFjMDggXHVjMjE4XHViM2M0IFx1Yzc4OFx1YjJlNC48XC9wPlxyXG4iLCJpbnB1dCI6IjxwPlx1Y2NhYlx1YzlmOCBcdWM5MDRcdWM1ZDAgXHVhZDZjXHVkNjE1IFx1Yjg1Y1x1YmQwN1x1YzVkMFx1YzExYyBcdWMyMThcdWQ1ODlcdWQ1NWMgXHViYTg1XHViODM5XHVjNzU4IFx1YWMxY1x1YzIxOCBOKDEgJmxlOyBOICZsZTsgMTAwLDAwMClcdWM3NzQgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0LiBcdWIyZTRcdWM3NGMgTlx1YWMxY1x1Yzc1OCBcdWM5MDRcdWM1ZDBcdWIyOTQgXHVhYzAxXHVhYzAxXHVjNzU4IFx1YmE4NVx1YjgzOVx1Yzc3NCBcdWM3MDRcdWM1ZDAgXHVjNzg4XHViMjk0IFx1ZDYxNVx1YzJkZFx1YjMwMFx1Yjg1YywgXHVkNTVjIFx1YzkwNFx1YzVkMCBcdWQ1NThcdWIwOThcdWM1MjkgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0LjxcL3A+XHJcbiIsIm91dHB1dCI6IjxwPlx1Y2NhYlx1YzlmOCBcdWM5MDRcdWM1ZDAgXHVjMmUwXHVkNjE1IFx1Yjg1Y1x1YmQwN1x1YzVkMFx1YzExYyBcdWQ1NDRcdWM2OTRcdWQ1NWMgXHVjZDVjXHVjMThjIFx1YWMxY1x1YzIxOFx1Yzc1OCBcdWJhODVcdWI4MzlcdWM3NDQgXHVjZDljXHViODI1XHVkNTVjXHViMmU0LjxcL3A+XHJcbiIsImhpbnQiOiIiLCJvcmlnaW5hbCI6IjAiLCJodG1sX3RpdGxlIjoiMCIsInByb2JsZW1fbGFuZ190Y29kZSI6IktvcmVhbiJ9LHsicHJvYmxlbV9pZCI6IjIxMzEiLCJwcm9ibGVtX2xhbmciOiIxIiwidGl0bGUiOiJJbnN0cnVjdGlvbnMiLCJkZXNjcmlwdGlvbiI6IjxwPk1hcmsgSSBpcyB0aGUgZmlyc3QgZ2VuZXJhdGlvbiByb2JvdCBkZXNpZ25lZCBieSB0aGUgY29ycG9yYXRpb24gZm9yIG1pbmUgZXhwbG9yYXRpb24uIFRoZSBhcmVhIHRvIGV4cGxvcmUgaXMgYWx3YXlzIHBhcnRpdGlvbmVkIGludG8gZ3JpZHMuIEVhY2ggZ3JpZCBtYXkgb3IgbWF5IG5vdCBoYXZlIG1pbmUgdW5kZXJncm91bmQuIFRoZSByb2JvdCYjMzk7cyB0YXNrIGlzIHRvIGV4cGxvcmUgdGhlIG1pbmVzIGluIHRoZSBhcmVhLjxcL3A+XHJcblxyXG48cD5UaGUgcm9ib3QgY2FuIHBlcmZvcm0gYWN0aW9ucyBhY2NvcmRpbmcgdG8gdGhlIGZvbGxvd2luZyBmb3VyIGluc3RydWN0aW9uczo8XC9wPlxyXG5cclxuPHVsPlxyXG5cdDxsaT5Gb3J3YXJkOiBUaGUgcm9ib3Qgd2lsbCBtb3ZlIGZvcndhcmQgYnkgb25lIGdyaWQ7Jm5ic3A7PFwvbGk+XHJcblx0PGxpPlR1cm4gTGVmdDogVGhlIHJvYm90IHdpbGwgdHVybiB0byBpdHMgbGVmdDsmbmJzcDs8XC9saT5cclxuXHQ8bGk+VHVybiBSaWdodDogVGhlIHJvYm90IHdpbGwgdHVybiB0byBpdHMgcmlnaHQ7Jm5ic3A7PFwvbGk+XHJcblx0PGxpPlNjYW46IFRoZSByb2JvdCB3aWxsIHNjYW4gdGhlIGdyaWQgaW4gZnJvbnQgb2YgaXRzZWxmLjxcL2xpPlxyXG48XC91bD5cclxuXHJcbjxwPk1hcmsgSSBpcyBzbyBwb3B1bGFyIHRoYXQgaXQgYnJpbmdzIGNvbnNpZGVyYWJsZSBwcm9maXQgdG8gdGhlIGNvcnBvcmF0aW9uLiBIb3dldmVyIHNvbWUgb3RoZXIgY29tcGFuaWVzIGJlZ2luIHRvIGRldmlzZSBzaW1pbGFyIHByb2R1Y3RzLiBJbiBvcmRlciB0byBkZWZlYXQgdGhvc2Ugb3Bwb25lbnRzLCBNYXJrIElJIGNvbWVzIHRvIHRoZSB3b3JsZC4gU2luY2UgbWFueSBjdXN0b21lcnMgY29tcGxhaW4gYWJvdXQgdGhlIGNvbXBsZXhpdHkgb2YgdGhlIGZvcm1lciBwcm9kdWN0LCBNYXJrIElJIG5vIGxvbmcgdXNlcyB0aGUgb2xkIGluc3RydWN0aW9ucy4gSW5zdGVhZCBpdCBzdXBwb3J0cyBvbmx5IDIgaW5zdHJ1Y3Rpb25zIC0gTW92ZSBhbmQgU2Nhbi48XC9wPlxyXG5cclxuPHA+TW92ZSBpbnN0cnVjdGlvbiBpcyBpbiB0aGUgZm9sbG93aW5nIGZvcm06PFwvcD5cclxuXHJcbjxwPk1vdmUgRElSIE48XC9wPlxyXG5cclxuPHA+RElSIGNhbiBiZSBlaXRoZXIgJnF1b3Q7Rm9yd2FyZCZxdW90OywgJnF1b3Q7QmFjayZxdW90OywgJnF1b3Q7TGVmdCZxdW90OyBvciAmcXVvdDtSaWdodCZxdW90Oy4gTiBpcyBhIHBvc2l0aXZlIG51bWJlci4gSXQgd2lsbCBtYWtlIHRoZSByb2JvdCBtb3ZlIGZvcndhcmQgYnkgTiBncmlkcy4gSWYgRElSIGlzIG5vdCAmcXVvdDtGb3J3YXJkJnF1b3Q7LCB0aGUgcm9ib3Qgd2lsbCB0dXJuIHRvIHRoZSBzcGVjaWZpZWQgZGlyZWN0aW9uIGJlZm9yZSBtYWtpbmcgdGhlIG1vdmVtZW50cy48XC9wPlxyXG5cclxuPHA+U2NhbiBjb21tYW5kIGlzIGluIHRoZSBmb2xsb3dpbmcgZm9ybTo8XC9wPlxyXG5cclxuPHA+U2NhbiBESVI8XC9wPlxyXG5cclxuPHA+RElSIGNhbiBiZSBlaXRoZXIgJnF1b3Q7Rm9yd2FyZCZxdW90OywgJnF1b3Q7QmFjayZxdW90OywgJnF1b3Q7TGVmdCZxdW90OyBvciAmcXVvdDtSaWdodCZxdW90Oy4gSXQgd2lsbCBtYWtlIHRoZSByb2JvdCBzY2FuIHRoZSBncmlkIGluIGZyb250IG9mIGl0c2VsZi4gSWYgRElSIGlzIG5vdCAmcXVvdDtGb3J3YXJkJnF1b3Q7LCB0aGUgcm9ib3Qgd2lsbCB0dXJuIHRvIHRoZSBzcGVjaWZpZWQgZGlyZWN0aW9uIGJlZm9yZSBwZXJmb3JtaW5nIHRoZSBzY2Fucy48XC9wPlxyXG5cclxuPHA+SW4gb3JkZXIgdG8gcGVyc3VhZGUgdGhvc2Ugb3JpZ2luYWwgY3VzdG9tZXJzIHdpdGggTWFyayBJIHRvIHVwZ3JhZGUgdGhlaXIgcHJvZHVjdHMsIHRoZSBjb3Jwb3JhdGlvbiBwbGFucyB0byBpbnN0YWxsIGEgbmV3IGNoaXAgaW50byBNYXJrIElJLCB3aGljaCBjYW4gdHJhbnNsYXRlIHRoZSBvbGQgaW5zdHJ1Y3Rpb24gc2NyaXB0cyBpbnRvIHRoZSBlcXVpdmFsZW50IG5ldyB2ZXJzaW9uLjxcL3A+XHJcbiIsImlucHV0IjoiPHA+U3RhbmRhcmQgaW5wdXQgd2lsbCBjb250YWluIG11bHRpcGxlIHRlc3QgY2FzZXMuIFRoZSBmaXJzdCBsaW5lIG9mIHRoZSBpbnB1dCBpcyBhIHNpbmdsZSBpbnRlZ2VyIFQgKDEgJmxlOyBUICZsZTsgMTApIHdoaWNoIGlzIHRoZSBudW1iZXIgb2YgdGVzdCBjYXNlcy4gVCB0ZXN0IGNhc2VzIGZvbGxvdywgZWFjaCBwcmVjZWRlZCBieSBhIHNpbmdsZSBibGFuayBsaW5lLjxcL3A+XHJcblxyXG48cD5FYWNoIHRlc3QgY2FzZSBpcyBhbiBvbGQgaW5zdHJ1Y3Rpb24gc2NyaXB0LiBJdCBzdGFydHMgd2l0aCBhbiBpbnRlZ2VyIE4gKDEgJmxlOyBOICZsZTsgMSwgMDAwKSB3aGljaCBpcyB0aGUgbnVtYmVyIG9mIGluc3RydWN0aW9ucyBpbiB0aGUgc2NyaXB0LiBUaGUgZm9sbG93aW5nIE4gbGluZXMgZ2l2ZSB0aGUgY29tcGxldGUgc2NyaXB0LCB3aXRoIG9uZSBpbnN0cnVjdGlvbiBvbiBlYWNoIGxpbmUuIFRoZSBhcmVhIGlzIGNvbnNpZGVyZWQgYm91bmRsZXNzLjxcL3A+XHJcbiIsIm91dHB1dCI6IjxwPlJlc3VsdHMgc2hvdWxkIGJlIGRpcmVjdGVkIHRvIHN0YW5kYXJkIG91dHB1dC4gU3RhcnQgZWFjaCBjYXNlIHdpdGggJnF1b3Q7Q2FzZSAjIDomcXVvdDsgb24gYSBzaW5nbGUgbGluZSwgd2hlcmUgIyBpcyB0aGUgY2FzZSBudW1iZXIgc3RhcnRpbmcgZnJvbSAxLiBUd28gY29uc2VjdXRpdmUgY2FzZXMgc2hvdWxkIGJlIHNlcGFyYXRlZCBieSBhIHNpbmdsZSBibGFuayBsaW5lLiBObyBibGFuayBsaW5lIHNob3VsZCBiZSBwcm9kdWNlZCBhZnRlciB0aGUgbGFzdCB0ZXN0IGNhc2UuPFwvcD5cclxuXHJcbjxwPkZvciBlYWNoIHRlc3QgY2FzZSwgcHJpbnQgdGhlIG1pbmltdW0gbnVtYmVyIG9mIGluc3RydWN0aW9ucyBpbiB0aGUgZXF1aXZhbGVudCBuZXcgaW5zdHJ1Y3Rpb24gc2NyaXB0LiBUaGUgcm9ib3QgbXVzdCBzdGFydCBmcm9tIHRoZSBzYW1lIGxvY2F0aW9uIGFuZCBmYWNlIHRoZSBzYW1lIGRpcmVjdGlvbiwgYW5kIHdpbGwgc2NhbiB0aGUgc2FtZSBncmlkcyBpbiB0aGUgc2FtZSBvcmRlci48XC9wPlxyXG4iLCJoaW50IjoiIiwib3JpZ2luYWwiOiIxIiwiaHRtbF90aXRsZSI6IjAiLCJwcm9ibGVtX2xhbmdfdGNvZGUiOiJFbmdsaXNoIn1d