시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
2 초 128 MB 47 12 7 33.333%

문제

벌은 가장 근면성실한 곤충들 중의 하나입니다. 꽃에서 꿀과 꽃가루를 수집하기위해, 벌들은 숲 속의 나무들을 의지할 수 밖에 없습니다. 벌들은 작업을 단순하게 하기 위하여 n 개의 나무에 0 부터 n - 1 까지의 번호를 붙였습니다. 숲 전체를 돌아다니는 대신에, 경로들을 모아놓은 특정한 목록을 이용합니다. 하나의 경로는 두 개의 나무로 구성되고, 벌들은 어느 방향으로든 이동할 수 있습니다 (하나의 나무에서 다른 나무까지 직선으로). 그 목록에 없는 경로는 이용하지 않습니다.

기술이 꽤 발전하면서, 벌들은 일하는 전략 역시 변경했습니다. 숲 속에 있는 모든 나무들 위를 맴도는 대신에, 꽃들이 많은 특정 나무들을 목표로 삼고자 합니다. 그래서, 벌들은 목표한 몇몇 나무들에 새로운 벌집을 건설할 계획을 세웠습니다. 벌집이 모두 완성되면, 벌집이 있는 나무들에서만 식량을 모으려고 합니다. 그리고 벌집이 없는 나무에는 가지 않도록 하기 위해서 몇몇 경로들을 목록에서 지울 것 입니다. 

자 이제, 벌들은 벌집을 건설하려고 합니다. 이 벌집들은 여러 경로 중 하나에 문제가 발생하더라도 (해당 경로 상에서 새나 동물들이 벌들을 방해할 수 있습니다.) 존재하는 다른 경로들을 이용해서 모든 벌집 간의 이동이 가능해야 합니다.

벌집 하나를 완성하는데는 많은 노력이 들기 때문에 벌들은 ,적어도 두 개 이상의 나무에, 가능한 적은 수의 벌집을 유지하고자 합니다. 이제 벌들이 이용하는 여러 경로와 나무를 이용해서, 새로운 벌집 군집를 제안해 봅시다.

입력

입력은 테스트 케이스들의 수를 나타내는 정수 T (T ≤ 50) 와 시작하고, 

각각의 케이스는 하나의 빈 줄로 시작합니다. 다음 라인부터 두 개의 정수 n (2 ≤ n ≤ 500) 과 m (0 ≤ m ≤ 20000) 이 주어지고, n 은 나무들의 개수를 나타내고, m 은 경로들의 개수를 나타냅니다. 다음 m 라인은 두 개의 정수 u v (0 ≤ u, v < n, u ≠ v) 이고, 나무 u 에서 나무 v 로의 하나의 경로를 의미합니다. 나무 u 에서 나무 v 의 경로는 하나의 경로만 있다고 가정합니다. 말할 필요가 없긴 하지만, 입력으로 주어진 하나의 경로는 다시 주어지지 않을 것입니다.

출력

각각의 경우에 대해서, 문제 번호와 제안된 벌집 군집에서의 벌집의 개수를 출력하거나, 그러한 군집을 찾을 수 없다면 ‘impossible’을 출력합니다.

예제 입력 1

3

3 3
0 1
1 2
2 0

2 1
0 1

5 6
0 1
1 2
1 3
2 3
0 4
3 4

예제 출력 1

Case 1: 3
Case 2: impossible
Case 3: 3

힌트

입력데이터가 큽니다. 빠른 I/O 처리를 이용하세요.

W3sicHJvYmxlbV9pZCI6IjM4MDUiLCJwcm9ibGVtX2xhbmciOiIwIiwidGl0bGUiOiJcdWJjOGNcdWM5ZDFcdWI0ZTQiLCJkZXNjcmlwdGlvbiI6IjxwPlx1YmM4Y1x1Yzc0MCBcdWFjMDBcdWM3YTUgXHVhZGZjXHViYTc0XHVjMTMxXHVjMmU0XHVkNTVjJm5ic3A7XHVhY2U0XHVjZGE5XHViNGU0IFx1YzkxMVx1Yzc1OCBcdWQ1NThcdWIwOThcdWM3ODVcdWIyYzhcdWIyZTQuJm5ic3A7XHVhZjQzXHVjNWQwXHVjMTFjJm5ic3A7XHVhZmMwXHVhY2ZjIFx1YWY0M1x1YWMwMFx1YjhlOFx1Yjk3YyBcdWMyMThcdWM5ZDFcdWQ1NThcdWFlMzBcdWM3MDRcdWQ1NzQsIFx1YmM4Y1x1YjRlNFx1Yzc0MCBcdWMyMzIgXHVjMThkXHVjNzU4IFx1YjA5OFx1YmIzNFx1YjRlNFx1Yzc0NCBcdWM3NThcdWM5YzBcdWQ1NjAgXHVjMjE4IFx1YmMxNlx1YzVkMCBcdWM1YzZcdWMyYjVcdWIyYzhcdWIyZTQuJm5ic3A7XHViYzhjXHViNGU0XHVjNzQwIFx1Yzc5MVx1YzVjNVx1Yzc0NCBcdWIyZThcdWMyMWNcdWQ1NThcdWFjOGMgXHVkNTU4XHVhZTMwIFx1YzcwNFx1ZDU1OFx1YzVlYyBuIFx1YWMxY1x1Yzc1OCBcdWIwOThcdWJiMzRcdWM1ZDAgMCBcdWJkODBcdWQxMzAgbiAtIDEgXHVhZTRjXHVjOWMwXHVjNzU4IFx1YmM4OFx1ZDYzOFx1Yjk3YyBcdWJkOTlcdWM2MDBcdWMyYjVcdWIyYzhcdWIyZTQuIFx1YzIzMiBcdWM4MDRcdWNjYjRcdWI5N2MgXHViM2NjXHVjNTQ0XHViMmU0XHViMmM4XHViMjk0IFx1YjMwMFx1YzJlMFx1YzVkMCwmbmJzcDtcdWFjYmRcdWI4NWNcdWI0ZTRcdWM3NDQgXHViYWE4XHVjNTQ0XHViMTkzXHVjNzQwIFx1ZDJiOVx1YzgxNVx1ZDU1YyZuYnNwO1x1YmFhOVx1Yjg1ZFx1Yzc0NCBcdWM3NzRcdWM2YTlcdWQ1NjlcdWIyYzhcdWIyZTQuIFx1ZDU1OFx1YjA5OFx1Yzc1OCBcdWFjYmRcdWI4NWNcdWIyOTQgXHViNDUwIFx1YWMxY1x1Yzc1OCBcdWIwOThcdWJiMzRcdWI4NWMgXHVhZDZjXHVjMTMxXHViNDE4XHVhY2UwLCBcdWJjOGNcdWI0ZTRcdWM3NDAgXHVjNWI0XHViMjkwIFx1YmMyOVx1ZDVhNVx1YzczY1x1Yjg1Y1x1YjRlMCZuYnNwO1x1Yzc3NFx1YjNkOVx1ZDU2MCBcdWMyMTggXHVjNzg4XHVjMmI1XHViMmM4XHViMmU0IChcdWQ1NThcdWIwOThcdWM3NTggXHViMDk4XHViYjM0XHVjNWQwXHVjMTFjIFx1YjJlNFx1Yjk3OCBcdWIwOThcdWJiMzRcdWFlNGNcdWM5YzAgXHVjOWMxXHVjMTIwXHVjNzNjXHViODVjKS4mbmJzcDtcdWFkZjggXHViYWE5XHViODVkXHVjNWQwIFx1YzVjNlx1YjI5NCBcdWFjYmRcdWI4NWNcdWIyOTQgXHVjNzc0XHVjNmE5XHVkNTU4XHVjOWMwIFx1YzU0YVx1YzJiNVx1YjJjOFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVhZTMwXHVjMjIwXHVjNzc0IFx1YWY2NCBcdWJjMWNcdWM4MDRcdWQ1NThcdWJhNzRcdWMxMWMsIFx1YmM4Y1x1YjRlNFx1Yzc0MCZuYnNwO1x1Yzc3Y1x1ZDU1OFx1YjI5NCBcdWM4MDRcdWI3YjUgXHVjNWVkXHVjMmRjJm5ic3A7XHViY2MwXHVhY2JkXHVkNTg4XHVjMmI1XHViMmM4XHViMmU0LiBcdWMyMzIgXHVjMThkXHVjNWQwIFx1Yzc4OFx1YjI5NCBcdWJhYThcdWI0ZTAgXHViMDk4XHViYjM0XHViNGU0IFx1YzcwNFx1Yjk3YyBcdWI5ZjRcdWIzYzRcdWIyOTQgXHViMzAwXHVjMmUwXHVjNWQwLCBcdWFmNDNcdWI0ZTRcdWM3NzQgXHViOWNlXHVjNzQwIFx1ZDJiOVx1YzgxNSBcdWIwOThcdWJiMzRcdWI0ZTRcdWM3NDQgXHViYWE5XHVkNDVjXHViODVjIFx1YzBiY1x1YWNlMFx1Yzc5MCBcdWQ1NjlcdWIyYzhcdWIyZTQuIFx1YWRmOFx1Yjc5OFx1YzExYywgXHViYzhjXHViNGU0XHVjNzQwJm5ic3A7XHViYWE5XHVkNDVjXHVkNTVjIFx1YmE4N1x1YmE4NyBcdWIwOThcdWJiMzRcdWI0ZTRcdWM1ZDAmbmJzcDtcdWMwYzhcdWI4NWNcdWM2YjQgXHViYzhjXHVjOWQxXHVjNzQ0IFx1YWM3NFx1YzEyNFx1ZDU2MCBcdWFjYzRcdWQ2OGRcdWM3NDQgXHVjMTM4XHVjNmUwXHVjMmI1XHViMmM4XHViMmU0LiBcdWJjOGNcdWM5ZDFcdWM3NzQgXHViYWE4XHViNDUwIFx1YzY0NFx1YzEzMVx1YjQxOFx1YmE3NCwmbmJzcDtcdWJjOGNcdWM5ZDFcdWM3NzQgXHVjNzg4XHViMjk0Jm5ic3A7XHViMDk4XHViYjM0XHViNGU0XHVjNWQwXHVjMTFjXHViOWNjJm5ic3A7XHVjMmRkXHViN2M5XHVjNzQ0IFx1YmFhOFx1YzczY1x1YjgyNFx1YWNlMCZuYnNwO1x1ZDU2OVx1YjJjOFx1YjJlNC4gXHVhZGY4XHViOWFjXHVhY2UwJm5ic3A7XHViYzhjXHVjOWQxXHVjNzc0IFx1YzVjNlx1YjI5NCZuYnNwO1x1YjA5OFx1YmIzNFx1YzVkMFx1YjI5NCBcdWFjMDBcdWM5YzAgXHVjNTRhXHViM2M0XHViODVkIFx1ZDU1OFx1YWUzMCBcdWM3MDRcdWQ1NzRcdWMxMWMgXHViYTg3XHViYTg3IFx1YWNiZFx1Yjg1Y1x1YjRlNFx1Yzc0NCBcdWJhYTlcdWI4NWRcdWM1ZDBcdWMxMWMgXHVjOWMwXHVjNmI4IFx1YWM4MyBcdWM3ODVcdWIyYzhcdWIyZTQuJm5ic3A7PFwvcD5cclxuXHJcbjxwPlx1Yzc5MCBcdWM3NzRcdWM4MWMsIFx1YmM4Y1x1YjRlNFx1Yzc0MCBcdWJjOGNcdWM5ZDFcdWM3NDQgXHVhYzc0XHVjMTI0XHVkNTU4XHViODI0XHVhY2UwIFx1ZDU2OVx1YjJjOFx1YjJlNC4gXHVjNzc0IFx1YmM4Y1x1YzlkMVx1YjRlNFx1Yzc0MCBcdWM1ZWNcdWI3ZWMgXHVhY2JkXHViODVjJm5ic3A7XHVjOTExJm5ic3A7XHVkNTU4XHViMDk4XHVjNWQwJm5ic3A7XHViYjM4XHVjODFjXHVhYzAwIFx1YmMxY1x1YzBkZFx1ZDU1OFx1YjM1NFx1Yjc3Y1x1YjNjNCAoXHVkNTc0XHViMmY5Jm5ic3A7XHVhY2JkXHViODVjIFx1YzBjMVx1YzVkMFx1YzExYyBcdWMwYzhcdWIwOTggXHViM2Q5XHViYjNjXHViNGU0XHVjNzc0IFx1YmM4Y1x1YjRlNFx1Yzc0NCBcdWJjMjlcdWQ1NzRcdWQ1NjAgXHVjMjE4IFx1Yzc4OFx1YzJiNVx1YjJjOFx1YjJlNC4pIFx1Yzg3NFx1YzdhY1x1ZDU1OFx1YjI5NCBcdWIyZTRcdWI5NzggXHVhY2JkXHViODVjXHViNGU0XHVjNzQ0IFx1Yzc3NFx1YzZhOVx1ZDU3NFx1YzExYyBcdWJhYThcdWI0ZTAmbmJzcDtcdWJjOGNcdWM5ZDEgXHVhYzA0XHVjNzU4Jm5ic3A7XHVjNzc0XHViM2Q5XHVjNzc0IFx1YWMwMFx1YjJhNVx1ZDU3NFx1YzU3YyBcdWQ1NjlcdWIyYzhcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YmM4Y1x1YzlkMSZuYnNwO1x1ZDU1OFx1YjA5OFx1Yjk3YyBcdWM2NDRcdWMxMzFcdWQ1NThcdWIyOTRcdWIzNzBcdWIyOTQmbmJzcDtcdWI5Y2VcdWM3NDAgXHViMTc4XHViODI1XHVjNzc0IFx1YjRlNFx1YWUzMCBcdWI1NGNcdWJiMzhcdWM1ZDAmbmJzcDtcdWJjOGNcdWI0ZTRcdWM3NDAgLFx1YzgwMVx1YzViNFx1YjNjNCBcdWI0NTAgXHVhYzFjIFx1Yzc3NFx1YzBjMVx1Yzc1OCBcdWIwOThcdWJiMzRcdWM1ZDAsJm5ic3A7XHVhYzAwXHViMmE1XHVkNTVjIFx1YzgwMVx1Yzc0MCBcdWMyMThcdWM3NTggXHViYzhjXHVjOWQxXHVjNzQ0IFx1YzcyMFx1YzljMFx1ZDU1OFx1YWNlMFx1Yzc5MCBcdWQ1NjlcdWIyYzhcdWIyZTQuJm5ic3A7XHVjNzc0XHVjODFjIFx1YmM4Y1x1YjRlNFx1Yzc3NCBcdWM3NzRcdWM2YTlcdWQ1NThcdWIyOTQgXHVjNWVjXHViN2VjIFx1YWNiZFx1Yjg1Y1x1YzY0MCZuYnNwO1x1YjA5OFx1YmIzNFx1Yjk3YyZuYnNwO1x1Yzc3NFx1YzZhOVx1ZDU3NFx1YzExYywmbmJzcDtcdWMwYzhcdWI4NWNcdWM2YjQgXHViYzhjXHVjOWQxIFx1YWQ3MFx1YzlkMVx1Yjk3YyBcdWM4MWNcdWM1NDhcdWQ1NzQgXHViZDA1XHVjMmRjXHViMmU0LjxcL3A+XHJcbiIsImlucHV0IjoiPHA+XHVjNzg1XHViODI1XHVjNzQwIFx1ZDE0Y1x1YzJhNFx1ZDJiOCBcdWNmMDBcdWM3NzRcdWMyYTRcdWI0ZTRcdWM3NTggXHVjMjE4XHViOTdjIFx1YjA5OFx1ZDBjMFx1YjBiNFx1YjI5NCBcdWM4MTVcdWMyMTggVCAoVCAmbGU7IDUwKSBcdWM2NDAgXHVjMmRjXHVjNzkxXHVkNTU4XHVhY2UwLCZuYnNwOzxcL3A+XHJcblxyXG48cD5cdWFjMDFcdWFjMDFcdWM3NTggXHVjZjAwXHVjNzc0XHVjMmE0XHViMjk0IFx1ZDU1OFx1YjA5OFx1Yzc1OCBcdWJlNDggXHVjOTA0XHViODVjIFx1YzJkY1x1Yzc5MVx1ZDU2OVx1YjJjOFx1YjJlNC4gXHViMmU0XHVjNzRjIFx1Yjc3Y1x1Yzc3OFx1YmQ4MFx1ZDEzMCBcdWI0NTAgXHVhYzFjXHVjNzU4IFx1YzgxNVx1YzIxOCBuICgyICZsZTsgbiAmbGU7IDUwMCkgXHVhY2ZjIG0gKDAgJmxlOyBtICZsZTsgMjAwMDApIFx1Yzc3NCBcdWM4ZmNcdWM1YjRcdWM5YzBcdWFjZTAsIG4gXHVjNzQwIFx1YjA5OFx1YmIzNFx1YjRlNFx1Yzc1OCBcdWFjMWNcdWMyMThcdWI5N2MgXHViMDk4XHVkMGMwXHViMGI0XHVhY2UwLCBtIFx1Yzc0MCBcdWFjYmRcdWI4NWNcdWI0ZTRcdWM3NTggXHVhYzFjXHVjMjE4XHViOTdjIFx1YjA5OFx1ZDBjMFx1YjBjNVx1YjJjOFx1YjJlNC4gXHViMmU0XHVjNzRjIG0gXHViNzdjXHVjNzc4XHVjNzQwIFx1YjQ1MCBcdWFjMWNcdWM3NTggXHVjODE1XHVjMjE4IHUgdiAoMCAmbGU7IHUsIHYgJmx0OyBuLCB1ICZuZTsgdikgXHVjNzc0XHVhY2UwLCBcdWIwOThcdWJiMzQgdSBcdWM1ZDBcdWMxMWMgXHViMDk4XHViYjM0IHYgXHViODVjXHVjNzU4IFx1ZDU1OFx1YjA5OFx1Yzc1OCBcdWFjYmRcdWI4NWNcdWI5N2MgXHVjNzU4XHViYmY4XHVkNTY5XHViMmM4XHViMmU0LiBcdWIwOThcdWJiMzQgdSBcdWM1ZDBcdWMxMWMgXHViMDk4XHViYjM0IHYgXHVjNzU4IFx1YWNiZFx1Yjg1Y1x1YjI5NCBcdWQ1NThcdWIwOThcdWM3NTggXHVhY2JkXHViODVjXHViOWNjIFx1Yzc4OFx1YjJlNFx1YWNlMCBcdWFjMDBcdWM4MTVcdWQ1NjlcdWIyYzhcdWIyZTQuIFx1YjlkMFx1ZDU2MCBcdWQ1NDRcdWM2OTRcdWFjMDAmbmJzcDtcdWM1YzZcdWFlMzQgXHVkNTU4XHVjOWMwXHViOWNjLCBcdWM3ODVcdWI4MjVcdWM3M2NcdWI4NWMgXHVjOGZjXHVjNWI0XHVjOWM0IFx1ZDU1OFx1YjA5OFx1Yzc1OCBcdWFjYmRcdWI4NWNcdWIyOTQgXHViMmU0XHVjMmRjJm5ic3A7XHVjOGZjXHVjNWI0XHVjOWMwXHVjOWMwIFx1YzU0YVx1Yzc0NCBcdWFjODNcdWM3ODVcdWIyYzhcdWIyZTQuPFwvcD5cclxuIiwib3V0cHV0IjoiPHA+XHVhYzAxXHVhYzAxXHVjNzU4IFx1YWNiZFx1YzZiMFx1YzVkMCBcdWIzMDBcdWQ1NzRcdWMxMWMsIFx1YmIzOFx1YzgxYyZuYnNwO1x1YmM4OFx1ZDYzOFx1YzY0MCBcdWM4MWNcdWM1NDhcdWI0MWMgXHViYzhjXHVjOWQxIFx1YWQ3MFx1YzlkMVx1YzVkMFx1YzExY1x1Yzc1OCBcdWJjOGNcdWM5ZDFcdWM3NTggXHVhYzFjXHVjMjE4XHViOTdjIFx1Y2Q5Y1x1YjgyNVx1ZDU1OFx1YWM3MFx1YjA5OCwgXHVhZGY4XHViN2VjXHVkNTVjIFx1YWQ3MFx1YzlkMVx1Yzc0NCZuYnNwO1x1Y2MzZVx1Yzc0NCBcdWMyMTggXHVjNWM2XHViMmU0XHViYTc0ICZsc3F1bztpbXBvc3NpYmxlJnJzcXVvO1x1Yzc0NCBcdWNkOWNcdWI4MjVcdWQ1NjlcdWIyYzhcdWIyZTQuPFwvcD5cclxuIiwiaGludCI6IjxwPlx1Yzc4NVx1YjgyNVx1YjM3MFx1Yzc3NFx1ZDEzMFx1YWMwMCBcdWQwN2RcdWIyYzhcdWIyZTQuIFx1YmU2MFx1Yjk3OCBJXC9PIFx1Y2M5OFx1YjlhY1x1Yjk3YyBcdWM3NzRcdWM2YTlcdWQ1NThcdWMxMzhcdWM2OTQuPFwvcD5cclxuIiwib3JpZ2luYWwiOiIwIiwicHJvYmxlbV9sYW5nX2NvZGUiOiJcdWQ1NWNcdWFkNmRcdWM1YjQifSx7InByb2JsZW1faWQiOiIzODA1IiwicHJvYmxlbV9sYW5nIjoiMSIsInRpdGxlIjoiQmVlaGl2ZXMiLCJkZXNjcmlwdGlvbiI6IjxwPkJlZXMgYXJlIG9uZSBvZiB0aGUgbW9zdCBpbmR1c3RyaW91cyBpbnNlY3RzLiBTaW5jZSB0aGV5IGNvbGxlY3QgbmVjdGFyIGFuZCBwb2xsZW4gZnJvbSBmbG93ZXJzLCB0aGV5IGhhdmUgdG8gcmVseSBvbiB0aGUgdHJlZXMgaW4gdGhlIGZvcmVzdC4gRm9yIHNpbXBsaWNpdHkgdGhleSBudW1iZXJlZCB0aGUgbiB0cmVlcyBmcm9tIDAgdG8gbiAmbWludXM7IDEuIEluc3RlYWQgb2Ygcm9hbWluZyBhcm91bmQgYWxsIG92ZXIgdGhlIGZvcmVzdCwgdGhleSB1c2UgYSBwYXJ0aWN1bGFyIGxpc3Qgb2YgcGF0aHMuIEEgcGF0aCBpcyBiYXNlZCBvbiB0d28gdHJlZXMsIGFuZCB0aGV5IGNhbiBtb3ZlIGVpdGhlciB3YXkgaS5lLiBmcm9tIG9uZSB0cmVlIHRvIGFub3RoZXIgaW4gc3RyYWlnaHQgbGluZS4gVGhleSBkb24mcnNxdW87dCB1c2UgcGF0aHMgdGhhdCBhcmUgbm90IGluIHRoZWlyIGxpc3QuPFwvcD5cclxuXHJcbjxwPkFzIHRlY2hub2xvZ3kgaGFzIGJlZW4gaW1wcm92ZWQgYSBsb3QsIHRoZXkgYWxzbyBjaGFuZ2VkIHRoZWlyIHdvcmtpbmcgc3RyYXRlZ3kuIEluc3RlYWQgb2YgaG92ZXJpbmcgb3ZlciBhbGwgdGhlIHRyZWVzIGluIHRoZSBmb3Jlc3QsIHRoZXkgYXJlIHRhcmdldGluZyBwYXJ0aWN1bGFyIHRyZWVzLCBtYWlubHkgdHJlZXMgd2l0aCBsb3RzIG9mIGZsb3dlcnMuIFNvLCB0aGV5IHBsYW5uZWQgdGhhdCB0aGV5IHdpbGwgYnVpbGQgc29tZSBuZXcgaGl2ZXMgaW4gc29tZSB0YXJnZXRlZCB0cmVlcy4gQWZ0ZXIgdGhhdCB0aGV5IHdpbGwgb25seSBjb2xsZWN0IHRoZWlyIGZvb2RzIGZyb20gdGhlc2UgdHJlZXMuIFRoZXkgd2lsbCBhbHNvIHJlbW92ZSBzb21lIHBhdGhzIGZyb20gdGhlaXIgbGlzdCBzbyB0aGF0IHRoZXkgZG9uJnJzcXVvO3QgaGF2ZSB0byBnbyB0byBhIHRyZWUgd2l0aCBubyBoaXZlIGluIGl0LjxcL3A+XHJcblxyXG48cD5Ob3csIHRoZXkgd2FudCB0byBidWlsZCB0aGUgaGl2ZXMgc3VjaCB0aGF0IGlmIG9uZSBvZiB0aGUgcGF0aHMgaW4gdGhlaXIgbmV3IGxpc3QgZ28gZG93biAoc29tZSBiaXJkcyBvciBhbmltYWxzIGRpc3R1cmJzIHRoZW0gaW4gdGhhdCBwYXRoKSBpdCZyc3F1bztzIHN0aWxsIHBvc3NpYmxlIHRvIGdvIGZyb20gYW55IGhpdmUgdG8gYW5vdGhlciB1c2luZyB0aGUgZXhpc3RpbmcgcGF0aHMuPFwvcD5cclxuXHJcbjxwPlRoZXkgZG9uJnJzcXVvO3Qgd2FudCB0byBjaG9vc2UgbGVzcyB0aGFuIHR3byB0cmVlcyBhbmQgYXMgaGl2ZS1idWlsZGluZyByZXF1aXJlcyBhIGxvdCBvZiB3b3JrLCB0aGV5IG5lZWQgdG8ga2VlcCB0aGUgbnVtYmVyIG9mIGhpdmVzIGFzIGxvdyBhcyBwb3NzaWJsZS4gTm93IHlvdSBhcmUgZ2l2ZW4gdGhlIHRyZWVzIHdpdGggdGhlIHBhdGhzIHRoZXkgdXNlLCB5b3VyIHRhc2sgaXMgdG8gcHJvcG9zZSBhIG5ldyBiZWUgaGl2ZSBjb2xvbnkgZm9yIHRoZW0uPFwvcD5cclxuIiwiaW5wdXQiOiI8cD5JbnB1dCBzdGFydHMgd2l0aCBhbiBpbnRlZ2VyIFQgKFQgJmxlOyA1MCksIGRlbm90aW5nIHRoZSBudW1iZXIgb2YgdGVzdCBjYXNlcy48XC9wPlxyXG5cclxuPHA+RWFjaCBjYXNlIHN0YXJ0cyB3aXRoIGEgYmxhbmsgbGluZS4gTmV4dCBsaW5lIGNvbnRhaW5zIHR3byBpbnRlZ2VycyBuICgyICZsZTsgbiAmbGU7IDUwMCkgYW5kIG0gKDAgJmxlOyBtICZsZTsgMjAwMDApLCB3aGVyZSBuIGRlbm90ZXMgdGhlIG51bWJlciBvZiB0cmVlcyBhbmQgbSBkZW5vdGVzIHRoZSBudW1iZXIgb2YgcGF0aHMuIEVhY2ggb2YgdGhlIG5leHQgbSBsaW5lcyBjb250YWlucyB0d28gaW50ZWdlcnMgdSB2ICgwICZsZTsgdSwgdiAmbHQ7IG4sIHUgJm5lOyB2KSBtZWFuaW5nIHRoYXQgdGhlcmUgaXMgYSBwYXRoIGJldHdlZW4gdHJlZSB1IGFuZCB2LiBBc3N1bWUgdGhhdCB0aGVyZSBjYW4gYmUgYXQgbW9zdCBvbmUgcGF0aCBiZXR3ZWVuIHRyZWUgdSB0byB2LCBhbmQgbmVlZGxlc3MgdG8gc2F5IHRoYXQgYSBwYXRoIHdpbGwgbm90IGJlIGdpdmVuIG1vcmUgdGhhbiBvbmNlIGluIHRoZSBpbnB1dC48XC9wPlxyXG4iLCJvdXRwdXQiOiI8cD5Gb3IgZWFjaCBjYXNlLCBwcmludCB0aGUgY2FzZSBudW1iZXIgYW5kIHRoZSBudW1iZXIgb2YgYmVlaGl2ZXMgaW4gdGhlIHByb3Bvc2VkIGNvbG9ueSBvciAmbHNxdW87aW1wb3NzaWJsZSZyc3F1bzsgaWYgaXRzIGltcG9zc2libGUgdG8gZmluZCBzdWNoIGEgY29sb255LjxcL3A+XHJcbiIsImhpbnQiOiI8cD5EYXRhc2V0IGlzIGh1Z2UuIFVzZSBmYXN0ZXIgSVwvTyBtZXRob2RzLjxcL3A+XHJcbiIsIm9yaWdpbmFsIjoiMSIsInByb2JsZW1fbGFuZ19jb2RlIjoiXHVjNjAxXHVjNWI0In1d