시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
2 초 64 MB 11 1 1 100.000%

문제

상범이는 수상한 것들을 모으는 취미가 있다. 이 상범이는 최근에 엄청 이상한 것을 발견했다. 그 이상한 물건은 철제 구조물로, 몇 개의 철 막대가 구슬과 납땜되어진 물건이었다. 이를테면 다음 그림과 같은 모양으로:

상범이는 이 구조물을 보자마자 자신의 남자친구에게 줄 사진 액자를 만들 재료로 딱!이라고 생각했다.

상범이가 원하는 액자는 반드시 철제 막대로 이루어진 닫힌 고리여야 한다. 이를 위해서 상범이는 몇 개의 구슬을 떼어내서 고리의 끝을 분리하고, 그런 막대들을 다시 납땜하는 식으로 고치기 시작했다.

여기서 흥미로운 사실은, 상범이가 구슬을 떼어낼 때 막대를 어떤 식으로 분리할 지 마음대로 고를 수 있다는 것이다. 그러니까, 한 개의 구슬에 여러 개의 막대가 납땜되어있을 경우, 이 구슬을 제거하면서 일부 막대끼리는 붙여놓고, 어떤 건 분리하는 것이 가능하다.

예를 들어, 위의 그림에 나온 구조물을 상범이가 남자친구에게 줄 액자로 만들기 위해서는 A번 구슬을 떼어내면서 막대 1번을 분리한다. 그 다음 D번 구슬을 떼어내면서 막대 4-5번 쌍과 3-7번 쌍을 분리하고(4번과 5번은 여전히 납땜되어진 채로 두고, 3-7번도 납땜되어진 채로 둔다), E번 구슬을 떼어내면서 막대 7번을 분리한다. 마지막으로 끝이 연결되지 않은 1번과 7번 막대를 연결하면 상범이가 남자친구에게 선물할 액자인 1-7-3-2-4-5-6-8이란 이름의 구조물이 완성된다.

상범이는 의외로 게으르기 때문에 최소한의 동작(구슬을 떼어내는 것, 두 개의 막대를 연결하는 것)을 통해 액자를 완성하고싶다.

철제 구조물의 초기 상태가 주어졌을 때, 이 구조물은 얼마나 많은 동작을 통해야 액자가 될 수 있을지 구해보자.

입력

첫 번째 줄에 구슬의 수 N(0 ≤ N ≤ 1000)과 막대의 수 M(2 ≤ M ≤ 50,000)이 주어진다.

구슬의 번호는 1번부터 N번으로 매겨지며, 이어지는 M개의 줄에는 막대의 양 끝이 연결된 구슬의 번호를 나타내는 두 개의 정수가 주어진다.

철제 구조물의 초기 상태는 연결된 상태가 아닐 수도 있으며(즉, 여러 개의 구조물 조각으로 이루어져있을 수도 있다). 구슬 하나에 막대가 하나만 연결되어있을 수도 있는데, 이런 경우, 구슬은 연결된 막대가 다른 막대와 연결되기 전에 떼어내지 않아도 된다.

또한, 막대가 하나도 연결되지 않은 구슬도 있을 수 있다. 상범이는 구슬이 아닌 막대기에만 관심이 있으므로, 그런 구슬은 붙여도 되고 붙이지 않아도 된다.

출력

상범이가 남자친구에게 줄 액자를 만들기 위해 행해야 하는 동작의 최소 횟수를 나타내는 정수 한 개를 출력한다.

예제 입력 1

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

예제 출력 1

4
W3sicHJvYmxlbV9pZCI6IjM2MjMiLCJwcm9ibGVtX2xhbmciOiIwIiwidGl0bGUiOiJcdWMwYzFcdWJjOTRcdWM3NzRcdWM3NTggXHVjNTYxXHVjNzkwIiwiZGVzY3JpcHRpb24iOiI8cD5cdWMwYzFcdWJjOTRcdWM3NzRcdWIyOTQgXHVjMjE4XHVjMGMxXHVkNTVjIFx1YWM4M1x1YjRlNFx1Yzc0NCBcdWJhYThcdWM3M2NcdWIyOTQgXHVjZGU4XHViYmY4XHVhYzAwIFx1Yzc4OFx1YjJlNC4gXHVjNzc0Jm5ic3A7XHVjMGMxXHViYzk0XHVjNzc0XHViMjk0IFx1Y2Q1Y1x1YWRmY1x1YzVkMCBcdWM1YzRcdWNjYWQgXHVjNzc0XHVjMGMxXHVkNTVjIFx1YWM4M1x1Yzc0NCBcdWJjMWNcdWFjYWNcdWQ1ODhcdWIyZTQuIFx1YWRmOCBcdWM3NzRcdWMwYzFcdWQ1NWMgXHViYjNjXHVhYzc0XHVjNzQwIFx1Y2NhMFx1YzgxYyBcdWFkNmNcdWM4NzBcdWJiM2NcdWI4NWMsJm5ic3A7XHViYTg3IFx1YWMxY1x1Yzc1OCBcdWNjYTAgXHViOWM5XHViMzAwXHVhYzAwIFx1YWQ2Y1x1YzJhY1x1YWNmYyBcdWIwYTlcdWI1NWNcdWI0MThcdWM1YjRcdWM5YzQgXHViYjNjXHVhYzc0XHVjNzc0XHVjNWM4XHViMmU0LiBcdWM3NzRcdWI5N2NcdWQxNGNcdWJhNzQgXHViMmU0XHVjNzRjIFx1YWRmOFx1YjliY1x1YWNmYyBcdWFjMTlcdWM3NDAgXHViYWE4XHVjNTkxXHVjNzNjXHViODVjOjxcL3A+XHJcblxyXG48cD48aW1nIGFsdD1cIlwiIHNyYz1cIlwvdXBsb2FkXC9pbWFnZXNcL2lkZWFsMS5wbmdcIiBzdHlsZT1cImhlaWdodDoxMTZweDsgd2lkdGg6MTI4cHhcIiBcLz48XC9wPlxyXG5cclxuPHA+XHVjMGMxXHViYzk0XHVjNzc0XHViMjk0IFx1Yzc3NCBcdWFkNmNcdWM4NzBcdWJiM2NcdWM3NDQgXHViY2Y0XHVjNzkwXHViOWM4XHVjNzkwIFx1Yzc5MFx1YzJlMFx1Yzc1OCBcdWIwYThcdWM3OTBcdWNlNWNcdWFkNmNcdWM1ZDBcdWFjOGMgXHVjOTA0IFx1YzBhY1x1YzljNCBcdWM1NjFcdWM3OTBcdWI5N2MgXHViOWNjXHViNGU0IFx1YzdhY1x1YjhjY1x1Yjg1YyBcdWI1MzEhXHVjNzc0XHViNzdjXHVhY2UwIFx1YzBkZFx1YWMwMVx1ZDU4OFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVjMGMxXHViYzk0XHVjNzc0XHVhYzAwIFx1YzZkMFx1ZDU1OFx1YjI5NCBcdWM1NjFcdWM3OTBcdWIyOTQgXHViYzE4XHViNGRjXHVjMmRjIFx1Y2NhMFx1YzgxYyBcdWI5YzlcdWIzMDBcdWI4NWMgXHVjNzc0XHViOGU4XHVjNWI0XHVjOWM0IFx1YjJlYlx1ZDc4YyBcdWFjZTBcdWI5YWNcdWM1ZWNcdWM1N2MgXHVkNTVjXHViMmU0LiZuYnNwO1x1Yzc3NFx1Yjk3YyBcdWM3MDRcdWQ1NzRcdWMxMWMgXHVjMGMxXHViYzk0XHVjNzc0XHViMjk0IFx1YmE4NyBcdWFjMWNcdWM3NTggXHVhZDZjXHVjMmFjXHVjNzQ0IFx1YjViY1x1YzViNFx1YjBiNFx1YzExYyBcdWFjZTBcdWI5YWNcdWM3NTggXHViMDVkXHVjNzQ0IFx1YmQ4NFx1YjlhY1x1ZDU1OFx1YWNlMCwmbmJzcDtcdWFkZjhcdWI3ZjAgXHViOWM5XHViMzAwXHViNGU0XHVjNzQ0Jm5ic3A7XHViMmU0XHVjMmRjIFx1YjBhOVx1YjU1Y1x1ZDU1OFx1YjI5NCBcdWMyZGRcdWM3M2NcdWI4NWMgXHVhY2UwXHVjZTU4XHVhZTMwIFx1YzJkY1x1Yzc5MVx1ZDU4OFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVjNWVjXHVhZTMwXHVjMTFjIFx1ZDc2NVx1YmJmOFx1Yjg1Y1x1YzZiNCBcdWMwYWNcdWMyZTRcdWM3NDAsJm5ic3A7XHVjMGMxXHViYzk0XHVjNzc0XHVhYzAwIFx1YWQ2Y1x1YzJhY1x1Yzc0NCBcdWI1YmNcdWM1YjRcdWIwYmMgXHViNTRjIFx1YjljOVx1YjMwMFx1Yjk3YyBcdWM1YjRcdWI1YTQgXHVjMmRkXHVjNzNjXHViODVjIFx1YmQ4NFx1YjlhY1x1ZDU2MCBcdWM5YzAgXHViOWM4XHVjNzRjXHViMzAwXHViODVjIFx1YWNlMFx1Yjk3YyBcdWMyMTggXHVjNzg4XHViMmU0XHViMjk0IFx1YWM4M1x1Yzc3NFx1YjJlNC4gXHVhZGY4XHViN2VjXHViMmM4XHVhZTRjLCBcdWQ1NWMgXHVhYzFjXHVjNzU4IFx1YWQ2Y1x1YzJhY1x1YzVkMCBcdWM1ZWNcdWI3ZWMgXHVhYzFjXHVjNzU4IFx1YjljOVx1YjMwMFx1YWMwMCBcdWIwYTlcdWI1NWNcdWI0MThcdWM1YjRcdWM3ODhcdWM3NDQgXHVhY2JkXHVjNmIwLCZuYnNwO1x1Yzc3NCBcdWFkNmNcdWMyYWNcdWM3NDQgXHVjODFjXHVhYzcwXHVkNTU4XHViYTc0XHVjMTFjIFx1Yzc3Y1x1YmQ4MCBcdWI5YzlcdWIzMDBcdWIwN2NcdWI5YWNcdWIyOTQgXHViZDk5XHVjNWVjXHViMTkzXHVhY2UwLCBcdWM1YjRcdWI1YTQgXHVhYzc0IFx1YmQ4NFx1YjlhY1x1ZDU1OFx1YjI5NCBcdWFjODNcdWM3NzQgXHVhYzAwXHViMmE1XHVkNTU4XHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWM2MDhcdWI5N2MgXHViNGU0XHVjNWI0LCBcdWM3MDRcdWM3NTggXHVhZGY4XHViOWJjXHVjNWQwIFx1YjA5OFx1YzYyOCBcdWFkNmNcdWM4NzBcdWJiM2NcdWM3NDQgXHVjMGMxXHViYzk0XHVjNzc0XHVhYzAwJm5ic3A7XHViMGE4XHVjNzkwXHVjZTVjXHVhZDZjXHVjNWQwXHVhYzhjIFx1YzkwNCBcdWM1NjFcdWM3OTBcdWI4NWMgXHViOWNjXHViNGU0XHVhZTMwIFx1YzcwNFx1ZDU3NFx1YzExY1x1YjI5NCBBXHViYzg4IFx1YWQ2Y1x1YzJhY1x1Yzc0NCBcdWI1YmNcdWM1YjRcdWIwYjRcdWJhNzRcdWMxMWMgXHViOWM5XHViMzAwIDFcdWJjODhcdWM3NDQgXHViZDg0XHViOWFjXHVkNTVjXHViMmU0LiZuYnNwO1x1YWRmOCBcdWIyZTRcdWM3NGMgRFx1YmM4OCBcdWFkNmNcdWMyYWNcdWM3NDQgXHViNWJjXHVjNWI0XHViMGI0XHViYTc0XHVjMTFjIFx1YjljOVx1YjMwMCA0LTVcdWJjODggXHVjMzBkXHVhY2ZjIDMtN1x1YmM4OCBcdWMzMGRcdWM3NDQgXHViZDg0XHViOWFjXHVkNTU4XHVhY2UwKDRcdWJjODhcdWFjZmMgNVx1YmM4OFx1Yzc0MCBcdWM1ZWNcdWM4MDRcdWQ3ODggXHViMGE5XHViNTVjXHViNDE4XHVjNWI0XHVjOWM0IFx1Y2M0NFx1Yjg1YyBcdWI0NTBcdWFjZTAsIDMtN1x1YmM4OFx1YjNjNCBcdWIwYTlcdWI1NWNcdWI0MThcdWM1YjRcdWM5YzQgXHVjYzQ0XHViODVjIFx1YjQ1NFx1YjJlNCksJm5ic3A7RVx1YmM4OCBcdWFkNmNcdWMyYWNcdWM3NDQgXHViNWJjXHVjNWI0XHViMGI0XHViYTc0XHVjMTFjIFx1YjljOVx1YjMwMCA3XHViYzg4XHVjNzQ0IFx1YmQ4NFx1YjlhY1x1ZDU1Y1x1YjJlNC4mbmJzcDtcdWI5YzhcdWM5YzBcdWI5YzlcdWM3M2NcdWI4NWMgXHViMDVkXHVjNzc0IFx1YzVmMFx1YWNiMFx1YjQxOFx1YzljMCBcdWM1NGFcdWM3NDAmbmJzcDsxXHViYzg4XHVhY2ZjIDdcdWJjODggXHViOWM5XHViMzAwXHViOTdjIFx1YzVmMFx1YWNiMFx1ZDU1OFx1YmE3NCBcdWMwYzFcdWJjOTRcdWM3NzRcdWFjMDAgXHViMGE4XHVjNzkwXHVjZTVjXHVhZDZjXHVjNWQwXHVhYzhjIFx1YzEyMFx1YmIzY1x1ZDU2MCBcdWM1NjFcdWM3OTBcdWM3NzggMS03LTMtMi00LTUtNi04XHVjNzc0XHViNzgwIFx1Yzc3NFx1Yjk4NFx1Yzc1OCBcdWFkNmNcdWM4NzBcdWJiM2NcdWM3NzQgXHVjNjQ0XHVjMTMxXHViNDFjXHViMmU0LjxcL3A+XHJcblxyXG48cD48aW1nIGFsdD1cIlwiIHNyYz1cIlwvdXBsb2FkXC9pbWFnZXNcL2lkZWFsMi5wbmdcIiBzdHlsZT1cImhlaWdodDoxNDJweDsgd2lkdGg6NjY4cHhcIiBcLz48XC9wPlxyXG5cclxuPHA+XHVjMGMxXHViYzk0XHVjNzc0XHViMjk0IFx1Yzc1OFx1YzY3OFx1Yjg1YyBcdWFjOGNcdWM3M2NcdWI5NzRcdWFlMzAgXHViNTRjXHViYjM4XHVjNWQwIFx1Y2Q1Y1x1YzE4Y1x1ZDU1Y1x1Yzc1OCBcdWIzZDlcdWM3OTEoXHVhZDZjXHVjMmFjXHVjNzQ0IFx1YjViY1x1YzViNFx1YjBiNFx1YjI5NCBcdWFjODMsIFx1YjQ1MCBcdWFjMWNcdWM3NTggXHViOWM5XHViMzAwXHViOTdjIFx1YzVmMFx1YWNiMFx1ZDU1OFx1YjI5NCBcdWFjODMpXHVjNzQ0IFx1ZDFiNVx1ZDU3NCBcdWM1NjFcdWM3OTBcdWI5N2MgXHVjNjQ0XHVjMTMxXHVkNTU4XHVhY2UwXHVjMmY2XHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWNjYTBcdWM4MWMgXHVhZDZjXHVjODcwXHViYjNjXHVjNzU4IFx1Y2QwOFx1YWUzMCBcdWMwYzFcdWQwZGNcdWFjMDAgXHVjOGZjXHVjNWI0XHVjODRjXHVjNzQ0IFx1YjU0YywgXHVjNzc0IFx1YWQ2Y1x1Yzg3MFx1YmIzY1x1Yzc0MCZuYnNwO1x1YzViY1x1YjljOFx1YjA5OCBcdWI5Y2VcdWM3NDAgXHViM2Q5XHVjNzkxXHVjNzQ0IFx1ZDFiNVx1ZDU3NFx1YzU3YyBcdWM1NjFcdWM3OTBcdWFjMDAgXHViNDIwIFx1YzIxOCBcdWM3ODhcdWM3NDRcdWM5YzAgXHVhZDZjXHVkNTc0XHViY2Y0XHVjNzkwLjxcL3A+XHJcbiIsImlucHV0IjoiPHA+XHVjY2FiIFx1YmM4OFx1YzlmOCBcdWM5MDRcdWM1ZDAgXHVhZDZjXHVjMmFjXHVjNzU4IFx1YzIxOCZuYnNwO04oMCAmbGU7IE4gJmxlOyAxMDAwKVx1YWNmYyBcdWI5YzlcdWIzMDBcdWM3NTggXHVjMjE4Jm5ic3A7TSgyICZsZTsgTSAmbGU7IDUwLDAwMClcdWM3NzQgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWFkNmNcdWMyYWNcdWM3NTggXHViYzg4XHVkNjM4XHViMjk0IDFcdWJjODhcdWJkODBcdWQxMzAgTlx1YmM4OFx1YzczY1x1Yjg1YyBcdWI5ZTRcdWFjYThcdWM5YzBcdWJhNzAsJm5ic3A7XHVjNzc0XHVjNWI0XHVjOWMwXHViMjk0IE1cdWFjMWNcdWM3NTggXHVjOTA0XHVjNWQwXHViMjk0IFx1YjljOVx1YjMwMFx1Yzc1OCBcdWM1OTEgXHViMDVkXHVjNzc0IFx1YzVmMFx1YWNiMFx1YjQxYyBcdWFkNmNcdWMyYWNcdWM3NTggXHViYzg4XHVkNjM4XHViOTdjIFx1YjA5OFx1ZDBjMFx1YjBiNFx1YjI5NCBcdWI0NTAgXHVhYzFjXHVjNzU4IFx1YzgxNVx1YzIxOFx1YWMwMCBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1Y2NhMFx1YzgxYyBcdWFkNmNcdWM4NzBcdWJiM2NcdWM3NTggXHVjZDA4XHVhZTMwIFx1YzBjMVx1ZDBkY1x1YjI5NCBcdWM1ZjBcdWFjYjBcdWI0MWMgXHVjMGMxXHVkMGRjXHVhYzAwIFx1YzU0NFx1YjJkMCBcdWMyMThcdWIzYzQgXHVjNzg4XHVjNzNjXHViYTcwKFx1Yzk4OSwgXHVjNWVjXHViN2VjIFx1YWMxY1x1Yzc1OCBcdWFkNmNcdWM4NzBcdWJiM2MgXHVjODcwXHVhYzAxXHVjNzNjXHViODVjIFx1Yzc3NFx1YjhlOFx1YzViNFx1YzgzOFx1Yzc4OFx1Yzc0NCBcdWMyMThcdWIzYzQgXHVjNzg4XHViMmU0KS4mbmJzcDtcdWFkNmNcdWMyYWMgXHVkNTU4XHViMDk4XHVjNWQwIFx1YjljOVx1YjMwMFx1YWMwMCBcdWQ1NThcdWIwOThcdWI5Y2MgXHVjNWYwXHVhY2IwXHViNDE4XHVjNWI0XHVjNzg4XHVjNzQ0IFx1YzIxOFx1YjNjNCBcdWM3ODhcdWIyOTRcdWIzNzAsIFx1Yzc3NFx1YjdmMCBcdWFjYmRcdWM2YjAsJm5ic3A7XHVhZDZjXHVjMmFjXHVjNzQwIFx1YzVmMFx1YWNiMFx1YjQxYyBcdWI5YzlcdWIzMDBcdWFjMDAmbmJzcDtcdWIyZTRcdWI5NzggXHViOWM5XHViMzAwXHVjNjQwJm5ic3A7XHVjNWYwXHVhY2IwXHViNDE4XHVhZTMwIFx1YzgwNFx1YzVkMCBcdWI1YmNcdWM1YjRcdWIwYjRcdWM5YzAgXHVjNTRhXHVjNTQ0XHViM2M0IFx1YjQxY1x1YjJlNC48XC9wPlxyXG5cclxuPHA+XHViNjEwXHVkNTVjLCBcdWI5YzlcdWIzMDBcdWFjMDAgXHVkNTU4XHViMDk4XHViM2M0IFx1YzVmMFx1YWNiMFx1YjQxOFx1YzljMCBcdWM1NGFcdWM3NDAgXHVhZDZjXHVjMmFjXHViM2M0IFx1Yzc4OFx1Yzc0NCBcdWMyMTggXHVjNzg4XHViMmU0LiZuYnNwO1x1YzBjMVx1YmM5NFx1Yzc3NFx1YjI5NCBcdWFkNmNcdWMyYWNcdWM3NzQgXHVjNTQ0XHViMmNjIFx1YjljOVx1YjMwMFx1YWUzMFx1YzVkMFx1YjljYyBcdWFkMDBcdWMyZWNcdWM3NzQgXHVjNzg4XHVjNzNjXHViYmMwXHViODVjLCBcdWFkZjhcdWI3ZjAgXHVhZDZjXHVjMmFjXHVjNzQwIFx1YmQ5OVx1YzVlY1x1YjNjNCBcdWI0MThcdWFjZTAgXHViZDk5XHVjNzc0XHVjOWMwIFx1YzU0YVx1YzU0NFx1YjNjNCBcdWI0MWNcdWIyZTQuPFwvcD5cclxuIiwib3V0cHV0IjoiPHA+XHVjMGMxXHViYzk0XHVjNzc0XHVhYzAwIFx1YjBhOFx1Yzc5MFx1Y2U1Y1x1YWQ2Y1x1YzVkMFx1YWM4YyBcdWM5MDQgXHVjNTYxXHVjNzkwXHViOTdjIFx1YjljY1x1YjRlNFx1YWUzMCBcdWM3MDRcdWQ1NzQmbmJzcDtcdWQ1ODlcdWQ1NzRcdWM1N2MgXHVkNTU4XHViMjk0IFx1YjNkOVx1Yzc5MVx1Yzc1OCBcdWNkNWNcdWMxOGMgXHVkNjlmXHVjMjE4XHViOTdjIFx1YjA5OFx1ZDBjMFx1YjBiNFx1YjI5NCBcdWM4MTVcdWMyMTggXHVkNTVjIFx1YWMxY1x1Yjk3YyBcdWNkOWNcdWI4MjVcdWQ1NWNcdWIyZTQuPFwvcD5cclxuIiwiaGludCI6IiIsIm9yaWdpbmFsIjoiMCIsInByb2JsZW1fbGFuZ19jb2RlIjoiXHVkNTVjXHVhZDZkXHVjNWI0In0seyJwcm9ibGVtX2lkIjoiMzYyMyIsInByb2JsZW1fbGFuZyI6IjEiLCJ0aXRsZSI6IklkZWFsIEZyYW1lIiwiZGVzY3JpcHRpb24iOiI8cD5QZXRlciBpcyBmb25kIG9mIGNvbGxlY3RpbmcgdmFyaW91cyBmdW5ueSB0aGluZ3MuIEhlIGNhbiBzcGVuZCBob3VycyByZXN0b3JpbmcgYW5kIHBvbGlzaGluZyBzb21lIHVzZWxlc3MgaXRlbSBoZSBoYWQgZm91bmQgaW4gYSBnYXJiYWdlIGhlYXAuPFwvcD5cclxuXHJcbjxwPlJlY2VudGx5IGhlIGhhcyBmb3VuZCBhIHJlYWxseSBuaWNlIHRoaW5nLiBJdCBpcyBhIHNtYWxsIG1ldGFsIGNvbnN0cnVjdGlvbiB0aGF0IGNvbnNpc3RzIG9mIHNldmVyYWwgaXJvbiByb2RzIHNvbGRlcmVkIHRvZ2V0aGVyIHdpdGggbGl0dGxlIHRpbiBiZWFkcy4gQW4gZXhhbXBsZSBvZiBzdWNoIGNvbnN0cnVjdGlvbiBpcyBzaG93biBvbiB0aGUgcGljdHVyZSBiZWxvdy48XC9wPlxyXG5cclxuPHA+PGltZyBhbHQ9XCJcIiBzcmM9XCJcL3VwbG9hZFwvaW1hZ2VzXC9pZGVhbDEucG5nXCIgc3R5bGU9XCJoZWlnaHQ6MTE2cHg7IHdpZHRoOjEyOHB4XCIgXC8+PFwvcD5cclxuXHJcbjxwPlBldGVyIGhhcyBpbW1lZGlhdGVseSB1bmRlcnN0b29kIHRoYXQgdGhlc2UgbmljZSByb2RzIGFyZSBleGFjdGx5IHdoYXQgaGUgbmVlZHMgZm9yIHRoZSBmcmFtZSBhcm91bmQgdGhlIHBob3RvIG9mIGhpcyBnaXJsZnJpZW5kLiBUaGUgZnJhbWUgbXVzdCBoYXZlIGEgZm9ybSBvZiBhIGNsb3NlZCBjaGFpbiBvZiByb2RzLiBUbyBkbyB0aGUgdHJhbnNmb3JtYXRpb24gUGV0ZXIgd291bGQgdW5zb2xkZXIgc29tZSBiZWFkcywgcmVsZWFzaW5nIHRoZSByb2RzIGVuZHMsIGFuZCBhZnRlciB0aGF0IHNvbGRlciBzb21lIGZyZWUgcm9kIGVuZHMgdG9nZXRoZXIgYWdhaW4uIFdoZW4gdW5zb2xkZXJpbmcgYSBiZWFkLCBQZXRlciBjYW4gc2VwYXJhdGUgdGhlIGVuZHMgb2YgdGhlIHJvZHMgY29ubmVjdGVkIGF0IHRoYXQgYmVhZCwgaW4gYXJiaXRyYXJ5IHdheSAmbWRhc2g7IHRoYXQgaXMsIGhlIGNhbiBjaG9vc2UgYW4gYXJiaXRyYXJ5IHBhcnRpdGlvbiBvZiByb2RzIGNvbm5lY3RlZCB0byB0aGUgYmVhZCBpbnRvIG5vbi1lbXB0eSBncm91cHMsIHNvIHRoYXQgb25jZSB0aGUgYmVhZCBpcyB1bnNvbGRlcmVkIG9ubHkgdGhlIHJvZHMgYmVsb25naW5nIHRvIHRoZSBzYW1lIGdyb3VwIHJlbWFpbiBjb25uZWN0ZWQgdG8gZWFjaCBvdGhlci48XC9wPlxyXG5cclxuPHA+Rm9yIGV4YW1wbGUsIHRvIHR1cm4gdGhlIGNvbnN0cnVjdGlvbiBvbiB0aGUgcGljdHVyZSBhYm92ZSB0byBhIGZyYW1lLCBoZSBjb3VsZCB1bnNvbGRlciB0aGUgYmVhZCBBLCBzZXBhcmF0aW5nIHRoZSBlbmQgb2Ygcm9kIDEsIHVuc29sZGVyIHRoZSBiZWFkIEQsIHNlcGFyYXRpbmcgcGFpcnMgb3Igcm9kcyA0Jm5kYXNoOzUgYW5kIDMmbmRhc2g7NyAoYnV0IGtlZXBpbmcgdGhlIHJvZHMgaW4gcGFpcnMgY29ubmVjdGVkKSwgYW5kIHVuc29sZGVyIHRoZSBiZWFkIEUsIHNlcGFyYXRpbmcgdGhlIGVuZCBvZiB0aGUgcm9kIDcuIEFmdGVyIHRoYXQgaGUgbmVlZHMgdG8gc29sZGVyIHRoZSBmcmVlIGVuZHMgb2Ygcm9kcyAxIGFuZCA3IHRvIGdldCB0aGUgZnJhbWUgMSZuZGFzaDs3Jm5kYXNoOzMmbmRhc2g7MiZuZGFzaDs0Jm5kYXNoOzUmbmRhc2g7NiZuZGFzaDs4LjxcL3A+XHJcblxyXG48cD48aW1nIGFsdD1cIlwiIHNyYz1cIlwvdXBsb2FkXC9pbWFnZXNcL2lkZWFsMi5wbmdcIiBzdHlsZT1cImhlaWdodDoxNDJweDsgd2lkdGg6NjY4cHhcIiBcLz48XC9wPlxyXG5cclxuPHA+Tm93IGhlbHAgUGV0ZXIgdG8gXHVmYjAxbmQgdGhlIHdheSB0byBjcmVhdGUgdGhlIGZyYW1lIGZyb20gdGhlIGNvbnN0cnVjdGlvbiBoZSBoYXMgZ290IGJ5IG1ha2luZyBhcyBmZXcgb3BlcmF0aW9ucyBhcyBwb3NzaWJsZS4gVGhlcmUgYXJlIHR3byB0eXBlcyBvZiBvcGVyYXRpb25zOiB1bnNvbGRlcmluZyBhIGJlYWQsIGFuZCBzb2xkZXJpbmcgdHdvIGZyZWUgZW5kcyBvZiByb2RzIHRvZ2V0aGVyLiBVbnNvbGRlcmluZyBpcyBjb3VudGVkIGFzIG9uZSBvcGVyYXRpb24gbm8gbWF0dGVyIGhvdyBtYW55IHJvZHMgd2VyZSBjb25uZWN0ZWQgaW4gYSBiZWFkIGFuZCBob3cgdGhleSB3ZXJlIHJlYXJyYW5nZWQuPFwvcD5cclxuIiwiaW5wdXQiOiI8cD5UaGUgXHVmYjAxcnN0IGxpbmUgb2YgdGhlIGlucHV0IFx1ZmIwMWxlIGNvbnRhaW5zIHR3byBpbnRlZ2VyIG51bWJlcnMgbiBhbmQgbSAmbWRhc2g7IHRoZSBudW1iZXIgb2YgYmVhZHMgYW5kIHRoZSBudW1iZXIgb2Ygcm9kcywgcmVzcGVjdGl2ZWx5ICgwICZsZTsgbiAmbGU7IDEwMDAsIDIgJmxlOyBtICZsZTsgNTAgMDAwKS4gTGV0IHRoZSBiZWFkcyBiZSBudW1iZXJlZCBmcm9tIDEgdG8gbi4gVGhlIGZvbGxvd2luZyBtIGxpbmVzIGNvbnRhaW4gdHdvIGludGVnZXIgbnVtYmVycyBlYWNoICZtZGFzaDsgdGhlIG51bWJlcnMgb2YgdGhlIGJlYWRzIGNvbm5lY3RlZCBieSB0aGUgY29ycmVzcG9uZGluZyByb2QuIElmIHRoZSBlbmQgb2YgdGhlIHJvZCBpcyBub3QgY29ubmVjdGVkIHRvIGFueSBiZWFkLCAwIGlzIHVzZWQuPFwvcD5cclxuXHJcbjxwPlRoZSBjb25zdHJ1Y3Rpb24gbWF5IGJlIG5vdCBjb25uZWN0ZWQgKGkuZS4gaXQgY2FuIGNvbnNpc3Qgb2Ygc2V2ZXJhbCBwaWVjZXMpLiBUaGVyZSBjYW4gYmUgYmVhZHMgdGhhdCBoYXZlIG9ubHkgb25lIHJvZCBzb2xkZXJlZCBpbnRvIGl0LiBUaGVzZSBiZWFkcyBuZWVkIG5vdCBiZSB1bnNvbGRlcmVkIGJlZm9yZSB0aGUgY29ycmVzcG9uZGluZyBlbmQgb2YgdGhlIHJvZCBpcyBzb2xkZXJlZCB0byBhbm90aGVyIG9uZS48XC9wPlxyXG5cclxuPHA+VGhlcmUgY2FuIGFsc28gYmUgYmVhZHMgdGhhdCBoYXZlIG5vIHJvZHMgc29sZGVyZWQgaW50byBpdC4gU2luY2UgUGV0ZXIgaXMgb25seSBpbnRlcmVzdGVkIGluIHJvZHMsIHRoZXNlIGJlYWRzIG5lZWQgbm90IGJlIHNvbGRlcmVkXC91bnNvbGRlcmVkLjxcL3A+XHJcbiIsIm91dHB1dCI6IjxwPk91dHB1dCBvbmUgaW50ZWdlciBudW1iZXIgJm1kYXNoOyB0aGUgbnVtYmVyIG9mIG9wZXJhdGlvbnMgUGV0ZXIgbmVlZHMgdG8gY3JlYXRlIHRoZSBmcmFtZSBmcm9tIHRoZSBjb25zdHJ1Y3Rpb24gZGVzY3JpYmVkIGluIHRoZSBpbnB1dCBcdWZiMDFsZS48XC9wPlxyXG4iLCJoaW50IjoiIiwib3JpZ2luYWwiOiIxIiwicHJvYmxlbV9sYW5nX2NvZGUiOiJcdWM2MDFcdWM1YjQifV0=