시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 128 MB 23 10 6 46.154%

문제

중세 기사 시대에, 사악한 조롱에 대항하는 정신력, 즉 '멘탈'은 아주 중요한 것이었다.

킹 현우는 자신의 노예들이 약한 멘탈을 갖기를 바라지 않았다. 그래서 자신의 엄청난 코딩 능력으로 트레이닝용 도발 봇을 만들어냈다.

하지만 현우는 아직 인공지능 수업을 듣지 않았고, 아는 것이라곤 오토마타 1단원 뿐이었기 때문에 같은 상태에서 같은 입력을 받는다면 항상 같은 행동을 하는 것이 보장되는 봇 하나를 짜는 것이 고작이었다.

현우가 만든 도발 봇은 아래의 테이블과, 이어 설명할 몇 가지 규칙에 따라 행동한다.

<taunt> ::= <sentence> | <taunt> <sentence> | <noun>! | <sentence>
<sentence> ::= <past-rel> <noun-phrase> | <present-rel> <noun-phrase> | <past-rel> <article> <noun> 
<noun-phrase> ::= <article> <modified-noun>
<modified-noun> ::= <noun> | <modifier> <noun>
<modifier> ::= <adjective> | <adverb> <adjective>
<present-rel> ::= your <present-person> <present-verb>
<past-rel> ::= your <past-person> <past-verb>
<present-person> ::= steed | king | first-born
<past-person> ::= mother | father | grandmother | grandfather | godfather
<noun> ::= hamster | coconut | duck | herring | newt | peril | chicken | vole | parrot | mouse | twit 
<present-verb> ::= is | “masquerades as”
<past-verb> ::= was | personified
<article> ::= a
<adjective> ::= silly | wicked | sordid | naughty | repulsive | malodorous | ill-tempered
<adverb> ::= conspicuously | categorically | positively | cruelly | incontrovertibly

쌍따옴표 안에 있는 문구는 항상 하나의 단어로 취급된다.

위의 표를 읽는 법을 모른다면 이 링크를 참고하자.

봇은 위의 테이블을 참조하여, 아래와 같은 규칙으로 도발을 한다.

  • '단어'란, 최소 한 개의 영어 알파벳을 포함하고 있으며, 다른 단어와 최소 한 개 이상의 공백 문자로 구분되어 있는 연속된 문자열을 의미한다.
  • 봇은 우선 상대의 말을 모두 듣는다. 그 이후, 상대의 말에 몇 개의 단어가 있는지에 따라 도발의 수가 결정된다. 상대가 3개의 단어를 말할 때마다 한 개의 도발을 하며, 만일 상대가 말한 단어의 수가 3으로 나누어 떨어지지 않는다면 한 번의 도발을 더 한다.
  • 기본적으로 봇이 하는 도발은 위의 테이블에서 <taunt> 하나로 시작하여 재귀적으로 계속 확장하게 된다. 이 때, 자세히 보면 <taunt>가 다시 <taunt>를 만들게 되어 한 문장에 도발이 두 번 들어가는 경우가 있는데, 이런 경우엔 도발을 두 번 한 것으로 세야 한다. 만일 상대가 말한 문장이 4개의 단어로 이루어져 있고, 봇이 한 문장에 도발을 두 번 하게 된다면, 그대로 봇은 임무를 다한 것이다.
  • 어떤 기호에 대한 표현식이 총 N가지이고, 이 기호를 지금 K번째로 만났으면 ((K-1) mod N) + 1 번째 선택지를 택한다. 이 선택은 모든 기호에 대해 독립적이다. 예를 들어, 첫 번째 도발은
    <taunt>
    => <sentence>
    => <past-rel> <noun-phrase>
    => your <past-person> <past-verb> <article> <modified-noun>
    => your mother was a <noun>
    => your mother was a hamster
    가 되며, 두 번째 도발의 첫 확장 부분은
    <taunt>
    => <taunt> <sentence>
    => <noun>! <present-rel> <noun-phrase>
    => ...
    이 될 것이다.
  • 이외에 항상 적용되는 특별한 예외 규칙으로, 상대가 말한 문장에 t-h-e-h-o-l-y-g-r-a-i-l (대소문자 구분 없음) 의 12글자가 순서대로 (비연속적이어도 상관 없음) 등장한다면, 봇이 처음으로 만드는 도발은 "(A childish hand gesture)." 가 되어야 한다. 이 도발은 선택지를 거치지 않기 때문에 각 기호들의 선택 상태에 아무 영향을 미치지 않으며, 한 개의 도발로 카운트된다.

킹 현우는 이 복잡한 봇을 통해 노예들을 훈련시킬 것이다.

킹 현우의 도발 봇이 어떻게 행동하게 될 지 시뮬레이션해 보자.

입력

입력은 임의의 여러 줄로 구성된다.

각 줄은 봇의 상대가 말한 내용으로 구성되어 있으며, 항상 알파벳 대소문자, 숫자, ",.-!?", 공백으로만 이루어져 있다.

모든 라인은 최소 1개, 최대 72개의 문자로 이루어져 있으며, 단어는 항상 하나 이상의 공백으로 구분되어져 있다.

모든 라인에 대해, 단어가 0개인 경우는 없다.

출력

각 입력에 대해, 아래와 같이 출력한다.

  • "Kight:", 공백 문자 하나, 입력된 문장을 순서대로 출력한다. 이 때, 입력에 만일 1개를 초과하는 연속된 공백 문자가 있다면 모두 단 하나의 공백 문자로 대체되어야 한다.
  • "Taunter:", 공백 문자 하나, 문제에서 설명한 도발, 마침표 하나를 필요한 도발 수만큼 순서대로 출력한다. 각 단어는 항상 하나의 공백 문자로 구분되어야 한다.
  • 위의 두 출력단이 끝나면, 빈 줄 하나를 추가로 출력한다.

모든 도발은 대문자로 시작해야 하며, 추가적인 공백 문자가 있어서는 안 된다.

예제 입력 1

Hello! 
Are you feeling alright? 
Is there someone else I could talk to? 
Anyone at    all? 
We seek the holy grail . . .

예제 출력 1

Knight: Hello! 
Taunter: Your mother was a hamster. 

Knight: Are you feeling alright? 
Taunter: Coconut! Your steed is a silly duck. 

Knight: Is there someone else I could talk to? 
Taunter: Your father personified a herring. 
Taunter: Your grandmother was a newt. 
Taunter: Peril! Your king masquerades as a conspicuously wicked chicken. 

Knight: Anyone at all? 
Taunter: Your grandfather personified a vole. 

Knight: We seek the holy grail . . . 
Taunter: (A childish hand gesture). 
Taunter: Your godfather was a parrot.
W3sicHJvYmxlbV9pZCI6IjkxNjciLCJwcm9ibGVtX2xhbmciOiIwIiwidGl0bGUiOiJcdWIzYzRcdWJjMWMgXHViZDA3IiwiZGVzY3JpcHRpb24iOiI8cD5cdWM5MTFcdWMxMzggXHVhZTMwXHVjMGFjIFx1YzJkY1x1YjMwMFx1YzVkMCwgXHVjMGFjXHVjNTQ1XHVkNTVjIFx1Yzg3MFx1Yjg3MVx1YzVkMCBcdWIzMDBcdWQ1NmRcdWQ1NThcdWIyOTQgXHVjODE1XHVjMmUwXHViODI1LCBcdWM5ODkgJiMzOTtcdWJhNThcdWQwYzgmIzM5O1x1Yzc0MCBcdWM1NDRcdWM4ZmMgXHVjOTExXHVjNjk0XHVkNTVjIFx1YWM4M1x1Yzc3NFx1YzVjOFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVkMGI5IFx1ZDYwNFx1YzZiMFx1YjI5NCBcdWM3OTBcdWMyZTBcdWM3NTggXHViMTc4XHVjNjA4XHViNGU0XHVjNzc0IFx1YzU3ZFx1ZDU1YyBcdWJhNThcdWQwYzhcdWM3NDQgXHVhYzE2XHVhZTMwXHViOTdjIFx1YmMxNFx1Yjc3Y1x1YzljMCBcdWM1NGFcdWM1NThcdWIyZTQuIFx1YWRmOFx1Yjc5OFx1YzExYyBcdWM3OTBcdWMyZTBcdWM3NTggXHVjNWM0XHVjY2FkXHViMDljIFx1Y2Y1NFx1YjUyOSBcdWIyYTVcdWI4MjVcdWM3M2NcdWI4NWMgXHVkMmI4XHViODA4XHVjNzc0XHViMmRkXHVjNmE5IFx1YjNjNFx1YmMxYyBcdWJkMDdcdWM3NDQgXHViOWNjXHViNGU0XHVjNWI0XHViMGM4XHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWQ1NThcdWM5YzBcdWI5Y2MgXHVkNjA0XHVjNmIwXHViMjk0IFx1YzU0NFx1YzljMSBcdWM3NzhcdWFjZjVcdWM5YzBcdWIyYTUgXHVjMjE4XHVjNWM1XHVjNzQ0IFx1YjRlM1x1YzljMCBcdWM1NGFcdWM1NThcdWFjZTAsIFx1YzU0NFx1YjI5NCBcdWFjODNcdWM3NzRcdWI3N2NcdWFjZTQgXHVjNjI0XHVkMWEwXHViOWM4XHVkMGMwIDFcdWIyZThcdWM2ZDAgXHViZmQwXHVjNzc0XHVjNWM4XHVhZTMwIFx1YjU0Y1x1YmIzOFx1YzVkMCBcdWFjMTlcdWM3NDAgXHVjMGMxXHVkMGRjXHVjNWQwXHVjMTFjIFx1YWMxOVx1Yzc0MCBcdWM3ODVcdWI4MjVcdWM3NDQgXHViYzFiXHViMjk0XHViMmU0XHViYTc0IFx1ZDU2ZFx1YzBjMSBcdWFjMTlcdWM3NDAgXHVkNTg5XHViM2Q5XHVjNzQ0IFx1ZDU1OFx1YjI5NCBcdWFjODNcdWM3NzQgXHViY2Y0XHVjN2E1XHViNDE4XHViMjk0IFx1YmQwNyBcdWQ1NThcdWIwOThcdWI5N2MgXHVjOWRjXHViMjk0IFx1YWM4M1x1Yzc3NCBcdWFjZTBcdWM3OTFcdWM3NzRcdWM1YzhcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1ZDYwNFx1YzZiMFx1YWMwMCBcdWI5Y2NcdWI0ZTAgXHViM2M0XHViYzFjIFx1YmQwN1x1Yzc0MCBcdWM1NDRcdWI3OThcdWM3NTggXHVkMTRjXHVjNzc0XHViZTE0XHVhY2ZjLCBcdWM3NzRcdWM1YjQgXHVjMTI0XHViYTg1XHVkNTYwIFx1YmE4NyBcdWFjMDBcdWM5YzAgXHVhZGRjXHVjZTU5XHVjNWQwIFx1YjUzMFx1Yjc3YyBcdWQ1ODlcdWIzZDlcdWQ1NWNcdWIyZTQuPFwvcD5cclxuXHJcbjxwcmU+XHJcbiZsdDt0YXVudCZndDsgOjo9ICZsdDtzZW50ZW5jZSZndDsgfCAmbHQ7dGF1bnQmZ3Q7ICZsdDtzZW50ZW5jZSZndDsgfCAmbHQ7bm91biZndDshIHwgJmx0O3NlbnRlbmNlJmd0O1xyXG4mbHQ7c2VudGVuY2UmZ3Q7IDo6PSAmbHQ7cGFzdC1yZWwmZ3Q7ICZsdDtub3VuLXBocmFzZSZndDsgfCAmbHQ7cHJlc2VudC1yZWwmZ3Q7ICZsdDtub3VuLXBocmFzZSZndDsgfCAmbHQ7cGFzdC1yZWwmZ3Q7ICZsdDthcnRpY2xlJmd0OyAmbHQ7bm91biZndDsgXHJcbiZsdDtub3VuLXBocmFzZSZndDsgOjo9ICZsdDthcnRpY2xlJmd0OyAmbHQ7bW9kaWZpZWQtbm91biZndDtcclxuJmx0O21vZGlmaWVkLW5vdW4mZ3Q7IDo6PSAmbHQ7bm91biZndDsgfCAmbHQ7bW9kaWZpZXImZ3Q7ICZsdDtub3VuJmd0O1xyXG4mbHQ7bW9kaWZpZXImZ3Q7IDo6PSAmbHQ7YWRqZWN0aXZlJmd0OyB8ICZsdDthZHZlcmImZ3Q7ICZsdDthZGplY3RpdmUmZ3Q7XHJcbiZsdDtwcmVzZW50LXJlbCZndDsgOjo9IHlvdXIgJmx0O3ByZXNlbnQtcGVyc29uJmd0OyAmbHQ7cHJlc2VudC12ZXJiJmd0O1xyXG4mbHQ7cGFzdC1yZWwmZ3Q7IDo6PSB5b3VyICZsdDtwYXN0LXBlcnNvbiZndDsgJmx0O3Bhc3QtdmVyYiZndDtcclxuJmx0O3ByZXNlbnQtcGVyc29uJmd0OyA6Oj0gc3RlZWQgfCBraW5nIHwgZmlyc3QtYm9yblxyXG4mbHQ7cGFzdC1wZXJzb24mZ3Q7IDo6PSBtb3RoZXIgfCBmYXRoZXIgfCBncmFuZG1vdGhlciB8IGdyYW5kZmF0aGVyIHwgZ29kZmF0aGVyXHJcbiZsdDtub3VuJmd0OyA6Oj0gaGFtc3RlciB8IGNvY29udXQgfCBkdWNrIHwgaGVycmluZyB8IG5ld3QgfCBwZXJpbCB8IGNoaWNrZW4gfCB2b2xlIHwgcGFycm90IHwgbW91c2UgfCB0d2l0IFxyXG4mbHQ7cHJlc2VudC12ZXJiJmd0OyA6Oj0gaXMgfCAmbGRxdW87bWFzcXVlcmFkZXMgYXMmcmRxdW87XHJcbiZsdDtwYXN0LXZlcmImZ3Q7IDo6PSB3YXMgfCBwZXJzb25pZmllZFxyXG4mbHQ7YXJ0aWNsZSZndDsgOjo9IGFcclxuJmx0O2FkamVjdGl2ZSZndDsgOjo9IHNpbGx5IHwgd2lja2VkIHwgc29yZGlkIHwgbmF1Z2h0eSB8IHJlcHVsc2l2ZSB8IG1hbG9kb3JvdXMgfCBpbGwtdGVtcGVyZWRcclxuJmx0O2FkdmVyYiZndDsgOjo9IGNvbnNwaWN1b3VzbHkgfCBjYXRlZ29yaWNhbGx5IHwgcG9zaXRpdmVseSB8IGNydWVsbHkgfCBpbmNvbnRyb3ZlcnRpYmx5PFwvcHJlPlxyXG5cclxuPHA+XHVjMzBkXHViNTMwXHVjNjM0XHVkNDVjIFx1YzU0OFx1YzVkMCBcdWM3ODhcdWIyOTQgXHViYjM4XHVhZDZjXHViMjk0IFx1ZDU2ZFx1YzBjMSBcdWQ1NThcdWIwOThcdWM3NTggXHViMmU4XHVjNWI0XHViODVjIFx1Y2RlOFx1YWUwOVx1YjQxY1x1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVjNzA0XHVjNzU4IFx1ZDQ1Y1x1Yjk3YyBcdWM3N2RcdWIyOTQgXHViYzk1XHVjNzQ0IFx1YmFhOFx1Yjk3OFx1YjJlNFx1YmE3NCZuYnNwOzxhIGhyZWY9XCJodHRwczpcL1wva28ud2lraXBlZGlhLm9yZ1wvd2lraVwvJUVCJUIwJUIwJUVDJUJCJUE0JUVDJThBJUE0LSVFQiU4MiU5OCVFQyU5QSVCMCVFQiVBNSVCNF8lRUQlOTElOUMlRUElQjglQjAlRUIlQjIlOTVcIj5cdWM3NzQgXHViOWMxXHVkMDZjPFwvYT5cdWI5N2MgXHVjYzM4XHVhY2UwXHVkNTU4XHVjNzkwLjxcL3A+XHJcblxyXG48cD5cdWJkMDdcdWM3NDAgXHVjNzA0XHVjNzU4IFx1ZDE0Y1x1Yzc3NFx1YmUxNFx1Yzc0NCBcdWNjMzhcdWM4NzBcdWQ1NThcdWM1ZWMsIFx1YzU0NFx1Yjc5OFx1YzY0MCBcdWFjMTlcdWM3NDAgXHVhZGRjXHVjZTU5XHVjNzNjXHViODVjIFx1YjNjNFx1YmMxY1x1Yzc0NCBcdWQ1NWNcdWIyZTQuPFwvcD5cclxuXHJcbjx1bD5cclxuXHQ8bGk+JiMzOTtcdWIyZThcdWM1YjQmIzM5O1x1Yjc4MCwgXHVjZDVjXHVjMThjIFx1ZDU1YyBcdWFjMWNcdWM3NTggXHVjNjAxXHVjNWI0IFx1YzU0Y1x1ZDMwY1x1YmNiM1x1Yzc0NCBcdWQzZWNcdWQ1NjhcdWQ1NThcdWFjZTAgXHVjNzg4XHVjNzNjXHViYTcwLCBcdWIyZTRcdWI5NzggXHViMmU4XHVjNWI0XHVjNjQwIFx1Y2Q1Y1x1YzE4YyBcdWQ1NWMgXHVhYzFjIFx1Yzc3NFx1YzBjMVx1Yzc1OCBcdWFjZjVcdWJjMzEgXHViYjM4XHVjNzkwXHViODVjIFx1YWQ2Y1x1YmQ4NFx1YjQxOFx1YzViNCBcdWM3ODhcdWIyOTQgXHVjNWYwXHVjMThkXHViNDFjIFx1YmIzOFx1Yzc5MFx1YzVmNFx1Yzc0NCBcdWM3NThcdWJiZjhcdWQ1NWNcdWIyZTQuPFwvbGk+XHJcblx0PGxpPlx1YmQwN1x1Yzc0MCBcdWM2YjBcdWMxMjAgXHVjMGMxXHViMzAwXHVjNzU4IFx1YjlkMFx1Yzc0NCBcdWJhYThcdWI0NTAgXHViNGUzXHViMjk0XHViMmU0LiBcdWFkZjggXHVjNzc0XHVkNmM0LCBcdWMwYzFcdWIzMDBcdWM3NTggXHViOWQwXHVjNWQwIFx1YmE4NyBcdWFjMWNcdWM3NTggXHViMmU4XHVjNWI0XHVhYzAwIFx1Yzc4OFx1YjI5NFx1YzljMFx1YzVkMCBcdWI1MzBcdWI3N2MgXHViM2M0XHViYzFjXHVjNzU4IFx1YzIxOFx1YWMwMCBcdWFjYjBcdWM4MTVcdWI0MWNcdWIyZTQuIFx1YzBjMVx1YjMwMFx1YWMwMCAzXHVhYzFjXHVjNzU4IFx1YjJlOFx1YzViNFx1Yjk3YyBcdWI5ZDBcdWQ1NjAgXHViNTRjXHViOWM4XHViMmU0IFx1ZDU1YyBcdWFjMWNcdWM3NTggXHViM2M0XHViYzFjXHVjNzQ0IFx1ZDU1OFx1YmE3MCwgXHViOWNjXHVjNzdjIFx1YzBjMVx1YjMwMFx1YWMwMCBcdWI5ZDBcdWQ1NWMgXHViMmU4XHVjNWI0XHVjNzU4IFx1YzIxOFx1YWMwMCAzXHVjNzNjXHViODVjIFx1YjA5OFx1YjIwNFx1YzViNCBcdWI1YThcdWM1YjRcdWM5YzBcdWM5YzAgXHVjNTRhXHViMjk0XHViMmU0XHViYTc0IFx1ZDU1YyBcdWJjODhcdWM3NTggXHViM2M0XHViYzFjXHVjNzQ0IFx1YjM1NCBcdWQ1NWNcdWIyZTQuPFwvbGk+XHJcblx0PGxpPlx1YWUzMFx1YmNmOFx1YzgwMVx1YzczY1x1Yjg1YyBcdWJkMDdcdWM3NzQgXHVkNTU4XHViMjk0IFx1YjNjNFx1YmMxY1x1Yzc0MCBcdWM3MDRcdWM3NTggXHVkMTRjXHVjNzc0XHViZTE0XHVjNWQwXHVjMTFjICZsdDt0YXVudCZndDsgXHVkNTU4XHViMDk4XHViODVjIFx1YzJkY1x1Yzc5MVx1ZDU1OFx1YzVlYyBcdWM3YWNcdWFkYzBcdWM4MDFcdWM3M2NcdWI4NWMgXHVhY2M0XHVjMThkIFx1ZDY1NVx1YzdhNVx1ZDU1OFx1YWM4YyBcdWI0MWNcdWIyZTQuIFx1Yzc3NCBcdWI1NGMsIFx1Yzc5MFx1YzEzOFx1ZDc4OCBcdWJjZjRcdWJhNzQgJmx0O3RhdW50Jmd0O1x1YWMwMCBcdWIyZTRcdWMyZGMgJmx0O3RhdW50Jmd0O1x1Yjk3YyBcdWI5Y2NcdWI0ZTRcdWFjOGMgXHViNDE4XHVjNWI0IFx1ZDU1YyBcdWJiMzhcdWM3YTVcdWM1ZDAgXHViM2M0XHViYzFjXHVjNzc0IFx1YjQ1MCBcdWJjODggXHViNGU0XHVjNWI0XHVhYzAwXHViMjk0IFx1YWNiZFx1YzZiMFx1YWMwMCBcdWM3ODhcdWIyOTRcdWIzNzAsIFx1Yzc3NFx1YjdmMCBcdWFjYmRcdWM2YjBcdWM1ZDQgXHViM2M0XHViYzFjXHVjNzQ0IFx1YjQ1MCBcdWJjODggXHVkNTVjIFx1YWM4M1x1YzczY1x1Yjg1YyBcdWMxMzhcdWM1N2MgXHVkNTVjXHViMmU0LiBcdWI5Y2NcdWM3N2MgXHVjMGMxXHViMzAwXHVhYzAwIFx1YjlkMFx1ZDU1YyBcdWJiMzhcdWM3YTVcdWM3NzQgNFx1YWMxY1x1Yzc1OCBcdWIyZThcdWM1YjRcdWI4NWMgXHVjNzc0XHViOGU4XHVjNWI0XHVjODM4IFx1Yzc4OFx1YWNlMCwgXHViZDA3XHVjNzc0IFx1ZDU1YyBcdWJiMzhcdWM3YTVcdWM1ZDAgXHViM2M0XHViYzFjXHVjNzQ0IFx1YjQ1MCBcdWJjODggXHVkNTU4XHVhYzhjIFx1YjQxY1x1YjJlNFx1YmE3NCwgXHVhZGY4XHViMzAwXHViODVjIFx1YmQwN1x1Yzc0MCBcdWM3ODRcdWJiMzRcdWI5N2MgXHViMmU0XHVkNTVjIFx1YWM4M1x1Yzc3NFx1YjJlNC48XC9saT5cclxuXHQ8bGk+XHVjNWI0XHViNWE0IFx1YWUzMFx1ZDYzOFx1YzVkMCBcdWIzMDBcdWQ1NWMgXHVkNDVjXHVkNjA0XHVjMmRkXHVjNzc0IFx1Y2QxZCBOXHVhYzAwXHVjOWMwXHVjNzc0XHVhY2UwLCBcdWM3NzQgXHVhZTMwXHVkNjM4XHViOTdjIFx1YzljMFx1YWUwOCBLXHViYzg4XHVjOWY4XHViODVjIFx1YjljY1x1YjBhY1x1YzczY1x1YmE3NCAoKEstMSkgbW9kIE4pICsgMSBcdWJjODhcdWM5ZjggXHVjMTIwXHVkMGRkXHVjOWMwXHViOTdjIFx1ZDBkZFx1ZDU1Y1x1YjJlNC4gXHVjNzc0IFx1YzEyMFx1ZDBkZFx1Yzc0MCBcdWJhYThcdWI0ZTAgXHVhZTMwXHVkNjM4XHVjNWQwIFx1YjMwMFx1ZDU3NCBcdWIzYzVcdWI5YmRcdWM4MDFcdWM3NzRcdWIyZTQuIFx1YzYwOFx1Yjk3YyBcdWI0ZTRcdWM1YjQsIFx1Y2NhYiBcdWJjODhcdWM5ZjggXHViM2M0XHViYzFjXHVjNzQwPGJyIFwvPlxyXG5cdCZsdDt0YXVudCZndDs8YnIgXC8+XHJcblx0PSZndDsgJmx0O3NlbnRlbmNlJmd0OzxiciBcLz5cclxuXHQ9Jmd0OyAmbHQ7cGFzdC1yZWwmZ3Q7ICZsdDtub3VuLXBocmFzZSZndDs8YnIgXC8+XHJcblx0PSZndDsgeW91ciAmbHQ7cGFzdC1wZXJzb24mZ3Q7ICZsdDtwYXN0LXZlcmImZ3Q7ICZsdDthcnRpY2xlJmd0OyAmbHQ7bW9kaWZpZWQtbm91biZndDs8YnIgXC8+XHJcblx0PSZndDsgeW91ciBtb3RoZXIgd2FzIGEgJmx0O25vdW4mZ3Q7PGJyIFwvPlxyXG5cdD0mZ3Q7IHlvdXIgbW90aGVyIHdhcyBhIGhhbXN0ZXI8YnIgXC8+XHJcblx0XHVhYzAwIFx1YjQxOFx1YmE3MCwgXHViNDUwIFx1YmM4OFx1YzlmOCBcdWIzYzRcdWJjMWNcdWM3NTggXHVjY2FiIFx1ZDY1NVx1YzdhNSBcdWJkODBcdWJkODRcdWM3NDA8YnIgXC8+XHJcblx0Jmx0O3RhdW50Jmd0OzxiciBcLz5cclxuXHQ9Jmd0OyAmbHQ7dGF1bnQmZ3Q7ICZsdDtzZW50ZW5jZSZndDs8YnIgXC8+XHJcblx0PSZndDsgJmx0O25vdW4mZ3Q7ISZuYnNwOyZsdDtwcmVzZW50LXJlbCZndDsgJmx0O25vdW4tcGhyYXNlJmd0OzxiciBcLz5cclxuXHQ9Jmd0OyAuLi48YnIgXC8+XHJcblx0XHVjNzc0IFx1YjQyMCBcdWFjODNcdWM3NzRcdWIyZTQuPFwvbGk+XHJcblx0PGxpPlx1Yzc3NFx1YzY3OFx1YzVkMCBcdWQ1NmRcdWMwYzEgXHVjODAxXHVjNmE5XHViNDE4XHViMjk0IFx1ZDJiOVx1YmNjNFx1ZDU1YyBcdWM2MDhcdWM2NzggXHVhZGRjXHVjZTU5XHVjNzNjXHViODVjLCBcdWMwYzFcdWIzMDBcdWFjMDAgXHViOWQwXHVkNTVjIFx1YmIzOFx1YzdhNVx1YzVkMCB0LWgtZS1oLW8tbC15LWctci1hLWktbCAoXHViMzAwXHVjMThjXHViYjM4XHVjNzkwIFx1YWQ2Y1x1YmQ4NCBcdWM1YzZcdWM3NGMpIFx1Yzc1OCAxMlx1YWUwMFx1Yzc5MFx1YWMwMCBcdWMyMWNcdWMxMWNcdWIzMDBcdWI4NWMgKFx1YmU0NFx1YzVmMFx1YzE4ZFx1YzgwMVx1Yzc3NFx1YzViNFx1YjNjNCBcdWMwYzFcdWFkMDAgXHVjNWM2XHVjNzRjKSBcdWI0ZjFcdWM3YTVcdWQ1NWNcdWIyZTRcdWJhNzQsIFx1YmQwN1x1Yzc3NCBcdWNjOThcdWM3NGNcdWM3M2NcdWI4NWMgXHViOWNjXHViNGRjXHViMjk0IFx1YjNjNFx1YmMxY1x1Yzc0MCAmcXVvdDsoQSBjaGlsZGlzaCBoYW5kIGdlc3R1cmUpLiZxdW90OyBcdWFjMDAgXHViNDE4XHVjNWI0XHVjNTdjIFx1ZDU1Y1x1YjJlNC4gXHVjNzc0IFx1YjNjNFx1YmMxY1x1Yzc0MCBcdWMxMjBcdWQwZGRcdWM5YzBcdWI5N2MgXHVhYzcwXHVjZTU4XHVjOWMwIFx1YzU0YVx1YWUzMCBcdWI1NGNcdWJiMzhcdWM1ZDAgXHVhYzAxIFx1YWUzMFx1ZDYzOFx1YjRlNFx1Yzc1OCBcdWMxMjBcdWQwZGQgXHVjMGMxXHVkMGRjXHVjNWQwIFx1YzU0NFx1YmIzNCBcdWM2MDFcdWQ1YTVcdWM3NDQgXHViYmY4XHVjZTU4XHVjOWMwIFx1YzU0YVx1YzczY1x1YmE3MCwgXHVkNTVjIFx1YWMxY1x1Yzc1OCBcdWIzYzRcdWJjMWNcdWI4NWMgXHVjZTc0XHVjNmI0XHVkMmI4XHViNDFjXHViMmU0LjxcL2xpPlxyXG48XC91bD5cclxuXHJcbjxwPlx1ZDBiOSBcdWQ2MDRcdWM2YjBcdWIyOTQgXHVjNzc0IFx1YmNmNVx1YzdhMVx1ZDU1YyBcdWJkMDdcdWM3NDQgXHVkMWI1XHVkNTc0IFx1YjE3OFx1YzYwOFx1YjRlNFx1Yzc0NCBcdWQ2YzhcdWI4MjhcdWMyZGNcdWQwYWMgXHVhYzgzXHVjNzc0XHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWQwYjkgXHVkNjA0XHVjNmIwXHVjNzU4IFx1YjNjNFx1YmMxYyBcdWJkMDdcdWM3NzQgXHVjNWI0XHViNWJiXHVhYzhjIFx1ZDU4OVx1YjNkOVx1ZDU1OFx1YWM4YyBcdWI0MjAgXHVjOWMwIFx1YzJkY1x1YmJhY1x1YjgwOFx1Yzc3NFx1YzE1OFx1ZDU3NCBcdWJjZjRcdWM3OTAuPFwvcD5cclxuIiwiaW5wdXQiOiI8cD5cdWM3ODVcdWI4MjVcdWM3NDAgXHVjNzg0XHVjNzU4XHVjNzU4IFx1YzVlY1x1YjdlYyBcdWM5MDRcdWI4NWMgXHVhZDZjXHVjMTMxXHViNDFjXHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWFjMDEgXHVjOTA0XHVjNzQwIFx1YmQwN1x1Yzc1OCBcdWMwYzFcdWIzMDBcdWFjMDAgXHViOWQwXHVkNTVjIFx1YjBiNFx1YzZhOVx1YzczY1x1Yjg1YyBcdWFkNmNcdWMxMzFcdWI0MThcdWM1YjQgXHVjNzg4XHVjNzNjXHViYTcwLCBcdWQ1NmRcdWMwYzEgXHVjNTRjXHVkMzBjXHViY2IzIFx1YjMwMFx1YzE4Y1x1YmIzOFx1Yzc5MCwgXHVjMjJiXHVjNzkwLCAmcXVvdDssLi0hPyZxdW90OywgXHVhY2Y1XHViYzMxXHVjNzNjXHViODVjXHViOWNjIFx1Yzc3NFx1YjhlOFx1YzViNFx1YzgzOCBcdWM3ODhcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YmFhOFx1YjRlMCBcdWI3N2NcdWM3NzhcdWM3NDAgXHVjZDVjXHVjMThjIDFcdWFjMWMsIFx1Y2Q1Y1x1YjMwMCA3Mlx1YWMxY1x1Yzc1OCBcdWJiMzhcdWM3OTBcdWI4NWMgXHVjNzc0XHViOGU4XHVjNWI0XHVjODM4IFx1Yzc4OFx1YzczY1x1YmE3MCwgXHViMmU4XHVjNWI0XHViMjk0IFx1ZDU2ZFx1YzBjMSBcdWQ1NThcdWIwOTggXHVjNzc0XHVjMGMxXHVjNzU4IFx1YWNmNVx1YmMzMVx1YzczY1x1Yjg1YyBcdWFkNmNcdWJkODRcdWI0MThcdWM1YjRcdWM4MzggXHVjNzg4XHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWJhYThcdWI0ZTAgXHViNzdjXHVjNzc4XHVjNWQwIFx1YjMwMFx1ZDU3NCwgXHViMmU4XHVjNWI0XHVhYzAwIDBcdWFjMWNcdWM3NzggXHVhY2JkXHVjNmIwXHViMjk0IFx1YzVjNlx1YjJlNC48XC9wPlxyXG4iLCJvdXRwdXQiOiI8cD5cdWFjMDEgXHVjNzg1XHViODI1XHVjNWQwIFx1YjMwMFx1ZDU3NCwgXHVjNTQ0XHViNzk4XHVjNjQwIFx1YWMxOVx1Yzc3NCBcdWNkOWNcdWI4MjVcdWQ1NWNcdWIyZTQuPFwvcD5cclxuXHJcbjx1bD5cclxuXHQ8bGk+JnF1b3Q7S2lnaHQ6JnF1b3Q7LCBcdWFjZjVcdWJjMzEgXHViYjM4XHVjNzkwIFx1ZDU1OFx1YjA5OCwgXHVjNzg1XHViODI1XHViNDFjIFx1YmIzOFx1YzdhNVx1Yzc0NCBcdWMyMWNcdWMxMWNcdWIzMDBcdWI4NWMgXHVjZDljXHViODI1XHVkNTVjXHViMmU0LiBcdWM3NzQgXHViNTRjLCBcdWM3ODVcdWI4MjVcdWM1ZDAgXHViOWNjXHVjNzdjIDFcdWFjMWNcdWI5N2MgXHVjZDA4XHVhY2ZjXHVkNTU4XHViMjk0IFx1YzVmMFx1YzE4ZFx1YjQxYyBcdWFjZjVcdWJjMzEgXHViYjM4XHVjNzkwXHVhYzAwIFx1Yzc4OFx1YjJlNFx1YmE3NCBcdWJhYThcdWI0NTAgXHViMmU4IFx1ZDU1OFx1YjA5OFx1Yzc1OCBcdWFjZjVcdWJjMzEgXHViYjM4XHVjNzkwXHViODVjIFx1YjMwMFx1Y2NiNFx1YjQxOFx1YzViNFx1YzU3YyBcdWQ1NWNcdWIyZTQuPFwvbGk+XHJcblx0PGxpPiZxdW90O1RhdW50ZXI6JnF1b3Q7LCBcdWFjZjVcdWJjMzEgXHViYjM4XHVjNzkwIFx1ZDU1OFx1YjA5OCwgXHViYjM4XHVjODFjXHVjNWQwXHVjMTFjIFx1YzEyNFx1YmE4NVx1ZDU1YyBcdWIzYzRcdWJjMWMsIFx1YjljOFx1Y2U2OFx1ZDQ1YyBcdWQ1NThcdWIwOThcdWI5N2MgXHVkNTQ0XHVjNjk0XHVkNTVjIFx1YjNjNFx1YmMxYyBcdWMyMThcdWI5Y2NcdWQwN2MgXHVjMjFjXHVjMTFjXHViMzAwXHViODVjIFx1Y2Q5Y1x1YjgyNVx1ZDU1Y1x1YjJlNC4gXHVhYzAxIFx1YjJlOFx1YzViNFx1YjI5NCBcdWQ1NmRcdWMwYzEgXHVkNTU4XHViMDk4XHVjNzU4IFx1YWNmNVx1YmMzMSBcdWJiMzhcdWM3OTBcdWI4NWMgXHVhZDZjXHViZDg0XHViNDE4XHVjNWI0XHVjNTdjIFx1ZDU1Y1x1YjJlNC48XC9saT5cclxuXHQ8bGk+XHVjNzA0XHVjNzU4IFx1YjQ1MCBcdWNkOWNcdWI4MjVcdWIyZThcdWM3NzQgXHViMDVkXHViMDk4XHViYTc0LCBcdWJlNDggXHVjOTA0IFx1ZDU1OFx1YjA5OFx1Yjk3YyBcdWNkOTRcdWFjMDBcdWI4NWMgXHVjZDljXHViODI1XHVkNTVjXHViMmU0LjxcL2xpPlxyXG48XC91bD5cclxuXHJcbjxwPlx1YmFhOFx1YjRlMCBcdWIzYzRcdWJjMWNcdWM3NDAgXHViMzAwXHViYjM4XHVjNzkwXHViODVjIFx1YzJkY1x1Yzc5MVx1ZDU3NFx1YzU3YyBcdWQ1NThcdWJhNzAsIFx1Y2Q5NFx1YWMwMFx1YzgwMVx1Yzc3OCBcdWFjZjVcdWJjMzEgXHViYjM4XHVjNzkwXHVhYzAwIFx1Yzc4OFx1YzViNFx1YzExY1x1YjI5NCBcdWM1NDggXHViNDFjXHViMmU0LjxcL3A+XHJcbiIsImhpbnQiOiIiLCJvcmlnaW5hbCI6IjAiLCJwcm9ibGVtX2xhbmdfY29kZSI6Ilx1ZDU1Y1x1YWQ2ZFx1YzViNCJ9LHsicHJvYmxlbV9pZCI6IjkxNjciLCJwcm9ibGVtX2xhbmciOiIxIiwidGl0bGUiOiJUYXVudCBHZW5lcmF0aW9uIFNpbXVsYXRvciIsImRlc2NyaXB0aW9uIjoiPHA+SW4gYWxsIHRoZSBhbm5hbHMgb2Yga25pZ2h0aG9vZCwgbm8gcGVyc29uYWxpdHkgdHJhaXQgaGFzIGJlZW4gaW4gbW9yZSBkaXJlIG5lZWQgdGhhbiB0aGUgZm9ydGl0dWRlIHRvIHdpdGhzdGFuZCB0aGUgZGlwbG9tYXRpY2FsbHkgZGVsZXRlcmlvdXMgZWZmZWN0cyBvZiBhIHZpY2lvdXMsIHJlbGVudGxlc3MgdGF1bnRpbmcuIFRhc2tlZCB3aXRoIHN0cmVuZ3RoZW5pbmcgdGhlIG1lbnRhbCBlbmR1cmFuY2Ugb2YgQ2FtZWxvdCZyc3F1bztzIGtuaWdodHMsIEtpbmcgQXJ0aHVyJiMzOTtzIGNvdXJ0IGRlY2lkZWQgdGhhdCBpbnN0cnVjdGlvbmFsIHRhdW50aW5nIG11c3QgYmUgYXBwbGllZCwgeWV0IGl0IGNvdWxkIG5vdCBiZSBkZWxpdmVyZWQgYnkgdGhlIGNoaXZhbHJvdXMgYWRtaW5pc3RyYXRpb24uIFRodXMsIFNpciBMYW5jZWxvdCBjb21tYW5kZWQgYSBsb2NhbCBhbmFyY2hvLXN5bmRpY2FsaXN0IHBlYXNhbnQgdG8gd3JpdGUgYSBwcm9ncmFtIHRoYXQgZ2VuZXJhdGVzIHRhdW50cyAoYS5rLmEuIG11ZHNsaW5naW5nKSB0aGVyZWJ5IHByb2R1Y2luZyBhIHNjcmlwdCB0byB0ZXN0IHRoZSBwYXRpZW5jZSBvZiBrbmlnaHRzIGluIGEgdHJhaW5pbmcgZW52aXJvbm1lbnQuIFRvIHByZXZlbnQgdW5icmlkbGVkIGNyZWF0aXZpdHkgaW4gdGF1bnRpbmcgZnJvbSBzcG9pbGluZyB0aGUgb3RoZXJ3aXNlIHN0YXRlbHkgcHJvY2VlZGluZ3Mgb2YgYSBub2JsZW1hbiZyc3F1bztzIGVkdWNhdGlvbiwgdGhlIGZvbGxvd2luZyBydWxlcyBkZXNpZ25lZCBieSBjb21taXR0ZWUgKFRoZSBSb3VuZCBUYWJsZSkgbXVzdCBiZSBhZGhlcmVkIHRvOjxcL3A+XHJcblxyXG48cHJlPlxyXG4mbHQ7dGF1bnQmZ3Q7IDo6PSAmbHQ7c2VudGVuY2UmZ3Q7IHwgJmx0O3RhdW50Jmd0OyAmbHQ7c2VudGVuY2UmZ3Q7IHwgJmx0O25vdW4mZ3Q7ISB8ICZsdDtzZW50ZW5jZSZndDtcclxuJmx0O3NlbnRlbmNlJmd0OyA6Oj0gJmx0O3Bhc3QtcmVsJmd0OyAmbHQ7bm91bi1waHJhc2UmZ3Q7IHwgJmx0O3ByZXNlbnQtcmVsJmd0OyAmbHQ7bm91bi1waHJhc2UmZ3Q7IHwgJmx0O3Bhc3QtcmVsJmd0OyAmbHQ7YXJ0aWNsZSZndDsgJmx0O25vdW4mZ3Q7IFxyXG4mbHQ7bm91bi1waHJhc2UmZ3Q7IDo6PSAmbHQ7YXJ0aWNsZSZndDsgJmx0O21vZGlmaWVkLW5vdW4mZ3Q7XHJcbiZsdDttb2RpZmllZC1ub3VuJmd0OyA6Oj0gJmx0O25vdW4mZ3Q7IHwgJmx0O21vZGlmaWVyJmd0OyAmbHQ7bm91biZndDtcclxuJmx0O21vZGlmaWVyJmd0OyA6Oj0gJmx0O2FkamVjdGl2ZSZndDsgfCAmbHQ7YWR2ZXJiJmd0OyAmbHQ7YWRqZWN0aXZlJmd0O1xyXG4mbHQ7cHJlc2VudC1yZWwmZ3Q7IDo6PSB5b3VyICZsdDtwcmVzZW50LXBlcnNvbiZndDsgJmx0O3ByZXNlbnQtdmVyYiZndDtcclxuJmx0O3Bhc3QtcmVsJmd0OyA6Oj0geW91ciAmbHQ7cGFzdC1wZXJzb24mZ3Q7ICZsdDtwYXN0LXZlcmImZ3Q7XHJcbiZsdDtwcmVzZW50LXBlcnNvbiZndDsgOjo9IHN0ZWVkIHwga2luZyB8IGZpcnN0LWJvcm5cclxuJmx0O3Bhc3QtcGVyc29uJmd0OyA6Oj0gbW90aGVyIHwgZmF0aGVyIHwgZ3JhbmRtb3RoZXIgfCBncmFuZGZhdGhlciB8IGdvZGZhdGhlclxyXG4mbHQ7bm91biZndDsgOjo9IGhhbXN0ZXIgfCBjb2NvbnV0IHwgZHVjayB8IGhlcnJpbmcgfCBuZXd0IHwgcGVyaWwgfCBjaGlja2VuIHwgdm9sZSB8IHBhcnJvdCB8IG1vdXNlIHwgdHdpdCBcclxuJmx0O3ByZXNlbnQtdmVyYiZndDsgOjo9IGlzIHwgJmxkcXVvO21hc3F1ZXJhZGVzIGFzJnJkcXVvO1xyXG4mbHQ7cGFzdC12ZXJiJmd0OyA6Oj0gd2FzIHwgcGVyc29uaWZpZWRcclxuJmx0O2FydGljbGUmZ3Q7IDo6PSBhXHJcbiZsdDthZGplY3RpdmUmZ3Q7IDo6PSBzaWxseSB8IHdpY2tlZCB8IHNvcmRpZCB8IG5hdWdodHkgfCByZXB1bHNpdmUgfCBtYWxvZG9yb3VzIHwgaWxsLXRlbXBlcmVkXHJcbiZsdDthZHZlcmImZ3Q7IDo6PSBjb25zcGljdW91c2x5IHwgY2F0ZWdvcmljYWxseSB8IHBvc2l0aXZlbHkgfCBjcnVlbGx5IHwgaW5jb250cm92ZXJ0aWJseTxcL3ByZT5cclxuXHJcbjxwPk5vdGUgdGhhdCBhbGwgcGhyYXNlcyBpbiBkb3VibGUgcXVvdGVzIGFyZSB0byBiZSB0cmVhdGVkIGFzIG9uZSB3b3JkIGZvciB0YXVudCBzaW11bGF0aW9uIG91dHB1dC48XC9wPlxyXG5cclxuPHA+VGhlIG51bWJlciBvZiB0YXVudHMgZWxpY2l0ZWQgYXQgYW55IGdpdmVuIHRpbWUgaXMgZGVyaXZlZCBmcm9tIHRoZSBudW1iZXIgb2Ygd29yZHMgc3Bva2VuIGJ5IHRoZSBrbmlnaHQuIEZvciBldmVyeSB0aHJlZSB3b3JkcyAob3IgZnJhY3Rpb24gdGhlcmVvZikgZGVsaXZlcmVkIGJ5IHRoZSBrbmlnaHQsIHRoZSBnZW5lcmF0b3IgcHJvZHVjZXMgb25lIG9yIG1vcmUgdGF1bnRzIGluIGEgdGhlYXRlci1zdHlsZSBzY3JpcHQgZm9ybWF0LiBJbiB0aGUgZXZlbnQgdGhhdCAyIHRhdW50cyBtdXN0IGJlIHByb2R1Y2VkIG9uIGEgc2luZ2xlIGxpbmUsIHRoZXkgd2lsbCBiZSBjb3VudGVkIGFzIDIgdGF1bnRzIHRvd2FyZHMgdGhlIHRvdGFsIHJlcXVpcmVkLiBCeSBhIG1hbmRhdGUgZnJvbSB0aGUgbWFzc2VzLCBhIHdvcmQgd2lsbCBhbHdheXMgY29udGFpbiBhdCBsZWFzdCBvbmUgYWxwaGFiZXRpYyBjaGFyYWN0ZXIsIGFuZCB3aWxsIGJlIHNlcGFyYXRlZCBmcm9tIG90aGVyIHdvcmRzIGJ5IGF0IGxlYXN0IDEgc3BhY2UuPFwvcD5cclxuXHJcbjxwPkluIGV4Y2VwdGlvbiB0byB0aGUgYWJvdmUgcnVsZXMsIHdoZW5ldmVyIHRoZSBwcm9ncmFtIGZpbmRzIHRoZSBob2x5IGdyYWlsLCB3aGljaCBpcyB0byBzYXksIHRoZSBsZXR0ZXJzIHQtaC1lLWgtby1sLXktZy1yLWEtaS1sIChjYXNlIGluc2Vuc2l0aXZlKSBpbiB0aGF0IG9yZGVyIGluIGEgbGluZSBvZiBpbnB1dCwgdGhlbiB0aGUgZmlyc3QgdGF1bnQgZ2VuZXJhdGVkIHdpbGwgYmUgZGlzcGxheWVkIGJ5IHRoZSBwcm9ncmFtIGFzICZsZHF1bzsoQSBjaGlsZGlzaCBoYW5kIGdlc3R1cmUpJnJkcXVvOy48XC9wPlxyXG5cclxuPHA+VG8gZW5zdXJlIGFsbCByb3lhbCBxdWFsaXR5IGFzc3VyYW5jZSBjcml0ZXJpYSBhcmUgbWV0LCB0aGUgcHJvZ3JhbSBtdXN0IGJlIGRlbW9uc3RyYXRlZCBieSBhIHNpbXVsYXRpb24gc2hvd2luZyB0aGUgdGF1bnRzIHByb2R1Y2VkIGZyb20gYSBzZXJpZXMgb2YgaW5wdXRzLiBFYWNoIHRhdW50IGlzIGdlbmVyYXRlZCBieSBhcHBseWluZyB0aGUgdGF1bnQgZ2VuZXJhdGlvbiBydWxlcyB1bnRpbCBhbGwgb2YgdGhlICZsdDsuLi4mZ3Q7IGhhdmUgYmVlbiByZXBsYWNlZCB3aXRoIGFwcHJvcHJpYXRlIHdvcmRzLiBJbiBtb3N0IGNhc2VzLCB5b3Ugd2lsbCBmYWNlIGEgY2hvaWNlIG9mIGFsdGVybmF0ZSBydWxlcyBmb3IgZXhwYW5kaW5nIGEgcGhyYXNlIG5hbWUuIEluIHRoZXNlIGNhc2VzLCB5b3Ugc2hvdWxkIG1ha2UgYSBjaG9pY2UgYXMgZm9sbG93czogU3VwcG9zZSB0aGF0IHRoaXMgaXMgdGhlIGs8c3VwPnRoPFwvc3VwPiBzdWNoIGNob2ljZSB0aGF0IHlvdSBoYXZlIGZhY2VkIGZvciB0aGF0IHJ1bGUgc2luY2UgdGhlIHN0YXJ0IG9mIHByb2dyYW0gZXhlY3V0aW9uLCBhbmQgdGhhdCB5b3UgbXVzdCBjaG9vc2Ugb25lIG9mIG4gcnVsZXMgZm9yIGV4cGFuZGluZyBhIGdpdmVuIGtpbmQgb2YgcGhyYXNlLiBMZXQgdGhlIHJ1bGVzIGZvciB0aGF0IHBocmFzZSBiZSBudW1iZXJlZCBmcm9tIDEuLi5uIGluIHRoZSBvcmRlciBvZiBhcHBlYXJhbmNlIGFib3ZlLCBhbmQgdGhlbiBjaG9vc2UgcnVsZSBudW1iZXIgKChrLTEpIG1vZCBuKSArIDEuPFwvcD5cclxuXHJcbjxwPldlbGwsIGdldCBvbiB3aXRoIGl0ITxcL3A+XHJcbiIsImlucHV0IjoiPHA+VGhlIGlucHV0IHdpbGwgY29uc2lzdCBvZiBhbiB1bnNwZWNpZmllZCBudW1iZXIgb2YgbGluZXMuIEVhY2ggbGluZSB3aWxsIGNvbnRhaW4gYSBzdGF0ZW1lbnQgdXR0ZXJlZCBieSBhIGtuaWdodCBjb25zaXN0aW5nIG9mIGxldHRlcnMsIGRpZ2l0cywgdGhlIGNoYXJhY3RlcnMgJnF1b3Q7LC4tIT8mcXVvdDsgYW5kIHdoaXRlc3BhY2UuIEVhY2ggbGluZSBvZiBpbnB1dCB3aWxsIGJlIG1vcmUgdGhhbiAxIGNoYXJhY3RlciBhbmQgbGVzcyB0aGFuIDcyIGNoYXJhY3RlcnMgaW4gbGVuZ3RoLiBBbGwgd29yZHMgd2lsbCBiZSBzZXBhcmF0ZWQgYnkgd2hpdGVzcGFjZS4gRWFjaCBzdGF0ZW1lbnQgd2lsbCBjb250YWluIGF0IGxlYXN0IG9uZSB3b3JkLjxcL3A+XHJcbiIsIm91dHB1dCI6IjxwPkZvciBldmVyeSBsaW5lIG9mIGlucHV0LCBwcmludCBhIGJsb2NrIG9mIG91dHB1dCBjb250YWluaW5nIHRoZSBmb2xsb3dpbmc6PFwvcD5cclxuXHJcbjx1bD5cclxuXHQ8bGk+QSBzaW5nbGUgbGluZSBjb250YWluaW5nICZxdW90O0tuaWdodDomcXVvdDssIGEgc3BhY2UsIGFuZCB0aGUgaW5wdXQuIEFueSBhcHBlYXJhbmNlIG9mIHdoaXRlc3BhY2UgaW5zaWRlIHRoZSBpbnB1dCB3aWxsIGJlIHJlcGxhY2VkIGJ5IGEgc2luZ2xlIHNwYWNlLjxcL2xpPlxyXG5cdDxsaT5BbGwgdGF1bnRzIChhcyBleHBsYWluZWQgaW4gdGhlIGFib3ZlIHJ1bGVzKSBwcmVmYWNlZCBieSAmcXVvdDtUYXVudGVyOiZxdW90OyBhbmQgYSBzcGFjZSwgdGhlIHRhdW50LCBhbmQgYSBwZXJpb2QuIEVhY2ggd29yZCBzaG91bGQgYmUgc2VwYXJhdGVkIGZyb20gbmVpZ2hib3Jpbmcgd29yZHMgYnkgYSBzaW5nbGUgc3BhY2UuPFwvbGk+XHJcblx0PGxpPkEgYmxhbmsgbGluZSZuYnNwOzxcL2xpPlxyXG48XC91bD5cclxuXHJcbjxwPkVhY2ggdGF1bnQgc2hvdWxkIGJlZ2luIHdpdGggYSBjYXBpdGFsIGxldHRlciwgYW5kIG5vIGV4dHJhIGNoYXJhY3RlcnMgc2hvdWxkIGJlIGFkZGVkLjxcL3A+XHJcbiIsImhpbnQiOiIiLCJvcmlnaW5hbCI6IjEiLCJwcm9ibGVtX2xhbmdfY29kZSI6Ilx1YzYwMVx1YzViNCJ9XQ==