시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 128 MB 0 0 0 0.000%

문제

랩탑(노트북)은 이동하면서 사용할 수 있는 개인용 컴퓨터이다. 노트북은 디스플레이, 키보드, CD-ROM 같은 데스크탑 컴퓨터의 전형적인 부품을 모두 포함하고 있다. 랩탑의 가장 큰 특징은 휴대성이다. 즉, 집이나 사무실 말고도 커피숍, 강의실, 도서관, 미팅룸과 같은 곳에서도 자유롭게 이용할 수 있다. 랩탑은 배터리를 사용한다. 보통 배터리를 2시간에서 5시간정도 사용할 수 있으며, 에너지를 많이 사용하는 경우에는 1시간으로 줄어들 수도 있다. 배터리의 성능은 사용 기간이 오래될수록 점점 떨어진다.

일정 시간동안 랩탑을 사용하지 않으면, 에너지 소비를 줄이기 위해 대기 모드나 절전 모드로 진입한다. 이러한 모드에 진입하게 되면, 에너지를 더 이상 소비하지 않는다. 하지만, 랩탑을 다시 활성화 시키려면 단위 시간동안 특정 양만큼의 에너지가 필요하다. 따라서 랩탑의 총 에너지 소비량을 줄이려면, 사용하지 않는 구간을 줄여야 한다.

각각의 작업 Ti는 릴리즈 타임 ri와 데드라인 di를 가지고 있다. Ti는 단위 시간만큼만 실행되며, 시간 구간 [ri,di]내에 스케줄되고 완료되어야 한다. 즉, 아래와 같은 조건을 만족한다.

  1. ri와 di는 정수이고, Ti 는 정수 시간에 스케줄 되어야 한다.
  2. ri ≤ rj 이고, 오직 그 경우에만 di ≤ dj 이다. (iff)
  3. 모든 작업을 각각의 구간 내에 완료하는 스케줄이 적어도 하나 존재한다.

사용하지 않는 구간의 수를 최소화하면서 모든 작업을 스케줄하는 방법을 찾는 프로그램을 작성하시오. 사용하지 않는 구간은 첫 번째 작업을 스케줄한 이후부터 센다.

예를 들어, [r1,d1] = [4,8], [r2,d2] = [1,3], [r3,d3] = [8,10], [r4,d4] = [0,3], [r5,d5] = [6,8]과 같이 작업이 다섯 개 있는 경우를 생각해보자. 그림 1처럼 스케줄한 경우 사용하지 않는 구간의 수는 3개이다. 하지만, 그림 2와 같이 스케줄하면 사용하지 않는 구간은 1개이다.

그림 1. 사용하지 않는 구간이 3개인 스케줄

그림 2. 사용하지 않는 구간이 최소 개수인 스케줄

입력

첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스의 첫째 줄에는 작업의 수 n(1 ≤ n ≤ 100,000)가 주어진다. 다음 n개 줄에는 작업 Ti의 릴리즈 시간 ri와 데드라인 di가 주어진다. (0 ≤ ri ≤ di ≤ 1,000,000)

출력

각 테스트 케이스 마다 사용하지 않는 구간의 최소 개수를 출력한다.

예제 입력 1

2
5
4 8
1 3
8 10
0 3
6 8
9
0 4
0 4
3 6
3 6
5 7
6 8
8 11
9 11
10 11

예제 출력 1

1
0
W3sicHJvYmxlbV9pZCI6Ijg5MDYiLCJwcm9ibGVtX2xhbmciOiIwIiwidGl0bGUiOiJcdWI3YTlcdWQwZDEiLCJkZXNjcmlwdGlvbiI6IjxwPlx1YjdhOVx1ZDBkMShcdWIxNzhcdWQyYjhcdWJkODEpXHVjNzQwIFx1Yzc3NFx1YjNkOVx1ZDU1OFx1YmE3NFx1YzExYyBcdWMwYWNcdWM2YTlcdWQ1NjAgXHVjMjE4IFx1Yzc4OFx1YjI5NCBcdWFjMWNcdWM3NzhcdWM2YTkgXHVjZWY0XHVkNGU4XHVkMTMwXHVjNzc0XHViMmU0LiBcdWIxNzhcdWQyYjhcdWJkODFcdWM3NDAgXHViNTE0XHVjMmE0XHVkNTBjXHViODA4XHVjNzc0LCBcdWQwYTRcdWJjZjRcdWI0ZGMsIENELVJPTSBcdWFjMTlcdWM3NDAgXHViMzcwXHVjMmE0XHVkMDZjXHVkMGQxIFx1Y2VmNFx1ZDRlOFx1ZDEzMFx1Yzc1OCBcdWM4MDRcdWQ2MTVcdWM4MDFcdWM3NzggXHViZDgwXHVkNDg4XHVjNzQ0IFx1YmFhOFx1YjQ1MCBcdWQzZWNcdWQ1NjhcdWQ1NThcdWFjZTAgXHVjNzg4XHViMmU0LiBcdWI3YTlcdWQwZDFcdWM3NTggXHVhYzAwXHVjN2E1IFx1ZDA3MCBcdWQyYjlcdWM5ZDVcdWM3NDAgXHVkNzM0XHViMzAwXHVjMTMxXHVjNzc0XHViMmU0LiBcdWM5ODksIFx1YzlkMVx1Yzc3NFx1YjA5OCBcdWMwYWNcdWJiMzRcdWMyZTQgXHViOWQwXHVhY2UwXHViM2M0IFx1Y2VlNFx1ZDUzY1x1YzIwZCwgXHVhYzE1XHVjNzU4XHVjMmU0LCBcdWIzYzRcdWMxMWNcdWFkMDAsIFx1YmJmOFx1ZDMwNVx1YjhmOFx1YWNmYyBcdWFjMTlcdWM3NDAgXHVhY2YzXHVjNWQwXHVjMTFjXHViM2M0IFx1Yzc5MFx1YzcyMFx1Yjg2ZFx1YWM4YyBcdWM3NzRcdWM2YTlcdWQ1NjAgXHVjMjE4IFx1Yzc4OFx1YjJlNC4gXHViN2E5XHVkMGQxXHVjNzQwIFx1YmMzMFx1ZDEzMFx1YjlhY1x1Yjk3YyBcdWMwYWNcdWM2YTlcdWQ1NWNcdWIyZTQuIFx1YmNmNFx1ZDFiNSBcdWJjMzBcdWQxMzBcdWI5YWNcdWI5N2MgMlx1YzJkY1x1YWMwNFx1YzVkMFx1YzExYyA1XHVjMmRjXHVhYzA0XHVjODE1XHViM2M0IFx1YzBhY1x1YzZhOVx1ZDU2MCBcdWMyMTggXHVjNzg4XHVjNzNjXHViYTcwLCBcdWM1ZDBcdWIxMDhcdWM5YzBcdWI5N2MgXHViOWNlXHVjNzc0IFx1YzBhY1x1YzZhOVx1ZDU1OFx1YjI5NCBcdWFjYmRcdWM2YjBcdWM1ZDBcdWIyOTQgMVx1YzJkY1x1YWMwNFx1YzczY1x1Yjg1YyBcdWM5MDRcdWM1YjRcdWI0ZTQgXHVjMjE4XHViM2M0IFx1Yzc4OFx1YjJlNC4gXHViYzMwXHVkMTMwXHViOWFjXHVjNzU4IFx1YzEzMVx1YjJhNVx1Yzc0MCBcdWMwYWNcdWM2YTkgXHVhZTMwXHVhYzA0XHVjNzc0IFx1YzYyNFx1Yjc5OFx1YjQyMFx1YzIxOFx1Yjg1ZCBcdWM4MTBcdWM4MTAgXHViNWE4XHVjNWI0XHVjOWM0XHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWM3N2NcdWM4MTUgXHVjMmRjXHVhYzA0XHViM2Q5XHVjNTQ4IFx1YjdhOVx1ZDBkMVx1Yzc0NCBcdWMwYWNcdWM2YTlcdWQ1NThcdWM5YzAgXHVjNTRhXHVjNzNjXHViYTc0LCBcdWM1ZDBcdWIxMDhcdWM5YzAgXHVjMThjXHViZTQ0XHViOTdjIFx1YzkwNFx1Yzc3NFx1YWUzMCBcdWM3MDRcdWQ1NzQgXHViMzAwXHVhZTMwIFx1YmFhOFx1YjRkY1x1YjA5OCBcdWM4MDhcdWM4MDQgXHViYWE4XHViNGRjXHViODVjIFx1YzljNFx1Yzc4NVx1ZDU1Y1x1YjJlNC4gXHVjNzc0XHViN2VjXHVkNTVjIFx1YmFhOFx1YjRkY1x1YzVkMCBcdWM5YzRcdWM3ODVcdWQ1NThcdWFjOGMgXHViNDE4XHViYTc0LCBcdWM1ZDBcdWIxMDhcdWM5YzBcdWI5N2MgXHViMzU0IFx1Yzc3NFx1YzBjMSBcdWMxOGNcdWJlNDRcdWQ1NThcdWM5YzAgXHVjNTRhXHViMjk0XHViMmU0LiBcdWQ1NThcdWM5YzBcdWI5Y2MsIFx1YjdhOVx1ZDBkMVx1Yzc0NCBcdWIyZTRcdWMyZGMgXHVkNjVjXHVjMTMxXHVkNjU0IFx1YzJkY1x1ZDBhNFx1YjgyNFx1YmE3NCBcdWIyZThcdWM3MDQgXHVjMmRjXHVhYzA0XHViM2Q5XHVjNTQ4IFx1ZDJiOVx1YzgxNSBcdWM1OTFcdWI5Y2NcdWQwN2NcdWM3NTggXHVjNWQwXHViMTA4XHVjOWMwXHVhYzAwIFx1ZDU0NFx1YzY5NFx1ZDU1OFx1YjJlNC4gXHViNTMwXHViNzdjXHVjMTFjIFx1YjdhOVx1ZDBkMVx1Yzc1OCBcdWNkMWQgXHVjNWQwXHViMTA4XHVjOWMwIFx1YzE4Y1x1YmU0NFx1YjdjOVx1Yzc0NCBcdWM5MDRcdWM3NzRcdWI4MjRcdWJhNzQsIFx1YzBhY1x1YzZhOVx1ZDU1OFx1YzljMCBcdWM1NGFcdWIyOTQgXHVhZDZjXHVhYzA0XHVjNzQ0IFx1YzkwNFx1YzVlY1x1YzU3YyBcdWQ1NWNcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YWMwMVx1YWMwMVx1Yzc1OCBcdWM3OTFcdWM1YzUgVDxzdWI+aTxcL3N1Yj5cdWIyOTQgXHViOWI0XHViOWFjXHVjOTg4IFx1ZDBjMFx1Yzc4NCByPHN1Yj5pPFwvc3ViPlx1YzY0MCBcdWIzNzBcdWI0ZGNcdWI3N2NcdWM3NzggZDxzdWI+aTxcL3N1Yj5cdWI5N2MgXHVhYzAwXHVjOWMwXHVhY2UwIFx1Yzc4OFx1YjJlNC4gVDxzdWI+aTxcL3N1Yj5cdWIyOTQgXHViMmU4XHVjNzA0IFx1YzJkY1x1YWMwNFx1YjljY1x1ZDA3Y1x1YjljYyBcdWMyZTRcdWQ1ODlcdWI0MThcdWJhNzAsIFx1YzJkY1x1YWMwNCBcdWFkNmNcdWFjMDQgW3I8c3ViPmk8XC9zdWI+LGQ8c3ViPmk8XC9zdWI+XVx1YjBiNFx1YzVkMCBcdWMyYTRcdWNmMDBcdWM5MDRcdWI0MThcdWFjZTAgXHVjNjQ0XHViOGNjXHViNDE4XHVjNWI0XHVjNTdjIFx1ZDU1Y1x1YjJlNC4gXHVjOTg5LCBcdWM1NDRcdWI3OThcdWM2NDAgXHVhYzE5XHVjNzQwIFx1Yzg3MFx1YWM3NFx1Yzc0NCBcdWI5Y2NcdWM4NzFcdWQ1NWNcdWIyZTQuPFwvcD5cclxuXHJcbjxvbD5cclxuXHQ8bGk+cjxzdWI+aTxcL3N1Yj5cdWM2NDAgZDxzdWI+aTxcL3N1Yj5cdWIyOTQgXHVjODE1XHVjMjE4XHVjNzc0XHVhY2UwLCBUPHN1Yj5pPFwvc3ViPiBcdWIyOTQgXHVjODE1XHVjMjE4IFx1YzJkY1x1YWMwNFx1YzVkMCBcdWMyYTRcdWNmMDBcdWM5MDQgXHViNDE4XHVjNWI0XHVjNTdjIFx1ZDU1Y1x1YjJlNC48XC9saT5cclxuXHQ8bGk+cjxzdWI+aTxcL3N1Yj4gJmxlOyByPHN1Yj5qPFwvc3ViPiBcdWM3NzRcdWFjZTAsIFx1YzYyNFx1YzljMSBcdWFkZjggXHVhY2JkXHVjNmIwXHVjNWQwXHViOWNjIGQ8c3ViPmk8XC9zdWI+ICZsZTsgZDxzdWI+ajxcL3N1Yj4gXHVjNzc0XHViMmU0LiAoaWZmKTxcL2xpPlxyXG5cdDxsaT5cdWJhYThcdWI0ZTAgXHVjNzkxXHVjNWM1XHVjNzQ0IFx1YWMwMVx1YWMwMVx1Yzc1OCBcdWFkNmNcdWFjMDQgXHViMGI0XHVjNWQwIFx1YzY0NFx1YjhjY1x1ZDU1OFx1YjI5NCBcdWMyYTRcdWNmMDBcdWM5MDRcdWM3NzQgXHVjODAxXHVjNWI0XHViM2M0IFx1ZDU1OFx1YjA5OCBcdWM4NzRcdWM3YWNcdWQ1NWNcdWIyZTQuPFwvbGk+XHJcbjxcL29sPlxyXG5cclxuPHA+XHVjMGFjXHVjNmE5XHVkNTU4XHVjOWMwIFx1YzU0YVx1YjI5NCBcdWFkNmNcdWFjMDRcdWM3NTggXHVjMjE4XHViOTdjIFx1Y2Q1Y1x1YzE4Y1x1ZDY1NFx1ZDU1OFx1YmE3NFx1YzExYyBcdWJhYThcdWI0ZTAgXHVjNzkxXHVjNWM1XHVjNzQ0IFx1YzJhNFx1Y2YwMFx1YzkwNFx1ZDU1OFx1YjI5NCBcdWJjMjlcdWJjOTVcdWM3NDQgXHVjYzNlXHViMjk0IFx1ZDUwNFx1Yjg1Y1x1YWRmOFx1YjdhOFx1Yzc0NCBcdWM3OTFcdWMxMzFcdWQ1NThcdWMyZGNcdWM2MjQuIFx1YzBhY1x1YzZhOVx1ZDU1OFx1YzljMCBcdWM1NGFcdWIyOTQgXHVhZDZjXHVhYzA0XHVjNzQwIFx1Y2NhYiBcdWJjODhcdWM5ZjggXHVjNzkxXHVjNWM1XHVjNzQ0IFx1YzJhNFx1Y2YwMFx1YzkwNFx1ZDU1YyBcdWM3NzRcdWQ2YzRcdWJkODBcdWQxMzAgXHVjMTNjXHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWM2MDhcdWI5N2MgXHViNGU0XHVjNWI0LCBbcjxzdWI+MTxcL3N1Yj4sZDxzdWI+MTxcL3N1Yj5dID0gWzQsOF0sIFtyPHN1Yj4yPFwvc3ViPixkPHN1Yj4yPFwvc3ViPl0gPSBbMSwzXSwgW3I8c3ViPjM8XC9zdWI+LGQ8c3ViPjM8XC9zdWI+XSA9IFs4LDEwXSwgW3I8c3ViPjQ8XC9zdWI+LGQ8c3ViPjQ8XC9zdWI+XSA9IFswLDNdLCBbcjxzdWI+NTxcL3N1Yj4sZDxzdWI+NTxcL3N1Yj5dID0gWzYsOF1cdWFjZmMgXHVhYzE5XHVjNzc0IFx1Yzc5MVx1YzVjNVx1Yzc3NCBcdWIyZTRcdWMxMmYgXHVhYzFjIFx1Yzc4OFx1YjI5NCBcdWFjYmRcdWM2YjBcdWI5N2MgXHVjMGRkXHVhYzAxXHVkNTc0XHViY2Y0XHVjNzkwLiBcdWFkZjhcdWI5YmMgMVx1Y2M5OFx1YjdmYyBcdWMyYTRcdWNmMDBcdWM5MDRcdWQ1NWMgXHVhY2JkXHVjNmIwIFx1YzBhY1x1YzZhOVx1ZDU1OFx1YzljMCBcdWM1NGFcdWIyOTQgXHVhZDZjXHVhYzA0XHVjNzU4IFx1YzIxOFx1YjI5NCAzXHVhYzFjXHVjNzc0XHViMmU0LiBcdWQ1NThcdWM5YzBcdWI5Y2MsIFx1YWRmOFx1YjliYyAyXHVjNjQwIFx1YWMxOVx1Yzc3NCBcdWMyYTRcdWNmMDBcdWM5MDRcdWQ1NThcdWJhNzQgXHVjMGFjXHVjNmE5XHVkNTU4XHVjOWMwIFx1YzU0YVx1YjI5NCBcdWFkNmNcdWFjMDRcdWM3NDAgMVx1YWMxY1x1Yzc3NFx1YjJlNC48XC9wPlxyXG5cclxuPHAgc3R5bGU9XCJ0ZXh0LWFsaWduOmNlbnRlclwiPjxpbWcgYWx0PVwiXCIgc3JjPVwiXC91cGxvYWRcL2ltYWdlc1wvaWRlbDIucG5nXCIgc3R5bGU9XCJoZWlnaHQ6MTMxcHg7IHdpZHRoOjU2NHB4XCIgXC8+PFwvcD5cclxuXHJcbjxwIHN0eWxlPVwidGV4dC1hbGlnbjpjZW50ZXJcIj5cdWFkZjhcdWI5YmMgMS4gXHVjMGFjXHVjNmE5XHVkNTU4XHVjOWMwIFx1YzU0YVx1YjI5NCBcdWFkNmNcdWFjMDRcdWM3NzQgM1x1YWMxY1x1Yzc3OCBcdWMyYTRcdWNmMDBcdWM5MDQ8XC9wPlxyXG5cclxuPHAgc3R5bGU9XCJ0ZXh0LWFsaWduOmNlbnRlclwiPjxpbWcgYWx0PVwiXCIgc3JjPVwiXC91cGxvYWRcL2ltYWdlc1wvaWRsZTEucG5nXCIgc3R5bGU9XCJoZWlnaHQ6ODVweDsgd2lkdGg6NTY4cHhcIiBcLz48XC9wPlxyXG5cclxuPHAgc3R5bGU9XCJ0ZXh0LWFsaWduOmNlbnRlclwiPlx1YWRmOFx1YjliYyAyLiBcdWMwYWNcdWM2YTlcdWQ1NThcdWM5YzAgXHVjNTRhXHViMjk0IFx1YWQ2Y1x1YWMwNFx1Yzc3NCBcdWNkNWNcdWMxOGMgXHVhYzFjXHVjMjE4XHVjNzc4IFx1YzJhNFx1Y2YwMFx1YzkwNDxcL3A+XHJcbiIsImlucHV0IjoiPHA+XHVjY2FiXHVjOWY4IFx1YzkwNFx1YzVkMCBcdWQxNGNcdWMyYTRcdWQyYjggXHVjZjAwXHVjNzc0XHVjMmE0XHVjNzU4IFx1YWMxY1x1YzIxOCBUXHVhYzAwIFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNC4gXHVhYzAxIFx1ZDE0Y1x1YzJhNFx1ZDJiOCBcdWNmMDBcdWM3NzRcdWMyYTRcdWM3NTggXHVjY2FiXHVjOWY4IFx1YzkwNFx1YzVkMFx1YjI5NCBcdWM3OTFcdWM1YzVcdWM3NTggXHVjMjE4IG4oMSAmbGU7IG4gJmxlOyAxMDAsMDAwKVx1YWMwMCBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuIFx1YjJlNFx1Yzc0YyBuXHVhYzFjIFx1YzkwNFx1YzVkMFx1YjI5NCBcdWM3OTFcdWM1YzUgVDxzdWI+aTxcL3N1Yj5cdWM3NTggXHViOWI0XHViOWFjXHVjOTg4IFx1YzJkY1x1YWMwNCByPHN1Yj5pPFwvc3ViPlx1YzY0MCBcdWIzNzBcdWI0ZGNcdWI3N2NcdWM3NzggZDxzdWI+aTxcL3N1Yj5cdWFjMDAgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0LiAoMCAmbGU7IHI8c3ViPmk8XC9zdWI+ICZsZTsgZGkgJmxlOyAxLDAwMCwwMDApPFwvcD5cclxuIiwib3V0cHV0IjoiPHA+XHVhYzAxIFx1ZDE0Y1x1YzJhNFx1ZDJiOCBcdWNmMDBcdWM3NzRcdWMyYTQgXHViOWM4XHViMmU0IFx1YzBhY1x1YzZhOVx1ZDU1OFx1YzljMCBcdWM1NGFcdWIyOTQgXHVhZDZjXHVhYzA0XHVjNzU4IFx1Y2Q1Y1x1YzE4YyBcdWFjMWNcdWMyMThcdWI5N2MgXHVjZDljXHViODI1XHVkNTVjXHViMmU0LjxcL3A+XHJcbiIsImhpbnQiOiIiLCJvcmlnaW5hbCI6IjAiLCJwcm9ibGVtX2xhbmdfY29kZSI6Ilx1ZDU1Y1x1YWQ2ZFx1YzViNCJ9LHsicHJvYmxlbV9pZCI6Ijg5MDYiLCJwcm9ibGVtX2xhbmciOiIxIiwidGl0bGUiOiJMYXB0b3AiLCJkZXNjcmlwdGlvbiI6IjxwPkEgbGFwdG9wLCBhbHNvIGNhbGxlZCBhIG5vdGVib29rLCBpcyBhIHBlcnNvbmFsIGNvbXB1dGVyIGZvciBtb2JpbGUgdXNlLiBBIGxhcHRvcCBpbnRlZ3JhdGVzIG1vc3Qgb2YgdGhlIHR5cGljYWwgY29tcG9uZW50cyBvZiBhIGRlc2t0b3AgY29tcHV0ZXIsIGluY2x1ZGluZyBhIGRpc3BsYXksIGEga2V5Ym9hcmQsIGEgQ0QtUk9NIGRyaXZlLCBldGMuIE5ldmVydGhlbGVzcywgYSBkaXN0aW5jdCBmZWF0dXJlIG9mIGEgbGFwdG9wIGlzIHBvcnRhYmlsaXR5LCB3aGljaCBtZWFucyB0aGF0IGEgbGFwdG9wIGNhbiBiZSB1c2VkIGluIG1hbnkgcGxhY2VzIG5vdCBvbmx5IGF0IGhvbWUgYW5kIGF0IHRoZSBvZmZpY2UsIGJ1dCBhbHNvIGluIGNvZmZlZSBzaG9wcywgaW4gbGVjdHVyZSBoYWxscyBhbmQgbGlicmFyaWVzLCBvciBhdCBhIG1lZXRpbmcgcm9vbSwgZXRjLiBMYXB0b3BzIGFyZSB0eXBpY2FsbHkgcG93ZXJlZCBieSBhbiBpbnRlcm5hbCByZWNoYXJnZWFibGUgYmF0dGVyeSB0aGF0IGlzIGNoYXJnZWQgdXNpbmcgYW4gZXh0ZXJuYWwgcG93ZXIgc3VwcGx5LiBUeXBpY2FsIGJhdHRlcnkgbGlmZSBmb3Igc3RhbmRhcmQgbGFwdG9wcyBpcyB0d28gdG8gZml2ZSBob3VycywgYnV0IG1heSBkcm9wIHRvIGFzIGxpdHRsZSBhcyBvbmUgaG91ciB3aGVuIGRvaW5nIGVuZXJneS1pbnRlbnNpdmUgdGFza3MuIEEgYmF0dGVyeSBzIHBlcmZvcm1hbmNlIGdyYWR1YWxseSBkZWNyZWFzZXMgd2l0aCB0aW1lLjxcL3A+XHJcblxyXG48cD5UbyByZWR1Y2UgZW5lcmd5IGNvbnN1bXB0aW9uLCBhIGxhcHRvcCBoYXMgYSB0cmFuc2l0aW9uIHRvIGEgc3RhbmRieSBvciBoaWJlcm5hdGUgbW9kZSBpZiBpdCBoYXMgYmVlbiBpZGxlIGZvciBhIHdoaWxlLiBJbiB0aGlzIG1vZGUsIG5vIGVuZXJneSBpcyBjb25zdW1lZCwgYnV0IGEgZml4ZWQgYW1vdW50IG9mIGVuZXJneSwgc3BlY2lmaWNhbGx5LCBlcXVhbCB0byB0aGUgZW5lcmd5IGNvbnN1bWVkIGR1cmluZyBhIHVuaXQgdGltZSwgaXMgcmVxdWlyZWQgd2hlbiBtb3ZpbmcgdGhlIGxhcHRvcCBmcm9tIHRoZSBoaWJlcm5hdGUgbW9kZSB0byB0aGUgYWN0aXZlIG1vZGUuIFNvLCBtaW5pbWl6aW5nIHRoZSBvdmVyYWxsIGVuZXJneSBjb25zdW1wdGlvbiBpcyBlcXVpdmFsZW50IHRvIGZpbmRpbmcgYSBzY2hlZHVsZSB0byBtaW5pbWl6ZSB0aGUgbnVtYmVyIG9mIGlkbGUgcGVyaW9kcy4mbmJzcDs8XC9wPlxyXG5cclxuPHA+RWFjaCB0YXNrIFQ8c3ViPmk8XC9zdWI+IGlzIGdpdmVuIHdpdGggYSByZWxlYXNlIHRpbWUgcjxzdWI+aTxcL3N1Yj4gYW5kIGEgZGVhZGxpbmUgZDxzdWI+aTxcL3N1Yj4sIHdoZXJlIFQ8c3ViPmk8XC9zdWI+IGlzIGV4ZWN1dGVkIGluIGEgdW5pdCB0aW1lLCBhbmQgaXQgc2hvdWxkIGJlIHNjaGVkdWxlZCBhbmQgY29tcGxldGVkIHdpdGhpbiB0aGUgdGltZSBpbnRlcnZhbCBbcjxzdWI+aTxcL3N1Yj4sZDxzdWI+aTxcL3N1Yj5dLiBBbHNvIHlvdSBjYW4gYXNzdW1lIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBvbiB0aGUgcHJvYmxlbSBpbnN0YW5jZSBhcmUgc2F0aXNmaWVkOiZuYnNwOzxcL3A+XHJcblxyXG48b2w+XHJcblx0PGxpPnI8c3ViPmk8XC9zdWI+IGFuZCBkPHN1Yj5pPFwvc3ViPiBhcmUgaW50ZWdlcnMgYW5kIHRoZSB0YXNrcyBUPHN1Yj5pPFwvc3ViPiBtdXN0IGJlIHNjaGVkdWxlZCBhdCBpbnRlZ3JhbCB0aW1lcy48XC9saT5cclxuXHQ8bGk+cjxzdWI+aTxcL3N1Yj4gJmxlOyByPHN1Yj5qPFwvc3ViPiBpZiBhbmQgb25seSBpZiBkPHN1Yj5pPFwvc3ViPiAmbGU7IGQ8c3ViPmo8XC9zdWI+LjxcL2xpPlxyXG5cdDxsaT5UaGVyZSBpcyBhdCBsZWFzdCBvbmUgc2NoZWR1bGUgaW4gd2hpY2ggYWxsIHRoZSB0YXNrcyBjYW4gYmUgc2NoZWR1bGVkIGFuZCBjb21wbGV0ZWQgd2l0aGluIHRoZWlyIHRpbWUgaW50ZXJ2YWxzLiZuYnNwOzxcL2xpPlxyXG48XC9vbD5cclxuXHJcbjxwPlRoZSBnb2FsIGlzIHRvIG1pbmltaXplIHRoZSBudW1iZXIgb2YgaWRsZSBwZXJpb2RzIHN1Y2ggdGhhdCBhbGwgdGhlIHRhc2tzIGFyZSBzY2hlZHVsZWQuIE5vdGUgdGhhdCB0aGUgaWRsZSBwZXJpb2RzIGFyZSBhc3N1bWVkIHRvIG9jY3VyIGFmdGVyIGEgdGFzayBpcyBmaXJzdCBzY2hlZHVsZWQuJm5ic3A7PFwvcD5cclxuXHJcbjxwPkZvciBleGFtcGxlLCB0aGVyZSBhcmUgZml2ZSB0YXNrcyBUPHN1Yj5pPFwvc3ViPiB3aXRoIHJlbGVhc2UgdGltZXMgcjxzdWI+aTxcL3N1Yj4gYW5kIGRlYWRsaW5lcyBkPHN1Yj5pPFwvc3ViPiwgaSA9IDEsIC4uLiwgNSwgc2F0aXNmeWluZyB0aGF0IFtyPHN1Yj4xPFwvc3ViPixkPHN1Yj4xPFwvc3ViPl0gPSBbNCw4XSwgW3I8c3ViPjI8XC9zdWI+LGQ8c3ViPjI8XC9zdWI+XSA9IFsxLDNdLCBbcjxzdWI+MzxcL3N1Yj4sZDxzdWI+MzxcL3N1Yj5dID0gWzgsMTBdLCBbcjxzdWI+NDxcL3N1Yj4sZDxzdWI+NDxcL3N1Yj5dID0gWzAsM10sIGFuZCBbcjxzdWI+NTxcL3N1Yj4sZDxzdWI+NTxcL3N1Yj5dID0gWzYsOF0uIEZpZ3VyZSAxIHNob3dzIGEgc2NoZWR1bGUgaW4gd2hpY2ggdGhlIG51bWJlciBvZiBpZGxlIHBlcmlvZHMgaXMgMy4gSG93ZXZlciwgdGhlcmUgaXMgYSBzY2hlZHVsZSB3aXRoIG9ubHkgb25lIGlkbGUgcGVyaW9kIGFzIHNob3duIGluIEZpZ3VyZSAyLiZuYnNwOzxcL3A+XHJcblxyXG48cCBzdHlsZT1cInRleHQtYWxpZ246Y2VudGVyXCI+PGltZyBhbHQ9XCJcIiBzcmM9XCJcL3VwbG9hZFwvaW1hZ2VzXC9pZGVsMi5wbmdcIiBzdHlsZT1cImhlaWdodDoxMzFweDsgdGV4dC1hbGlnbjpjZW50ZXI7IHdpZHRoOjU2NHB4XCIgXC8+PFwvcD5cclxuXHJcbjxwIHN0eWxlPVwidGV4dC1hbGlnbjpjZW50ZXJcIj5GaWd1cmUgMS4gQSBzY2hlZHVsZSB3aXRoIDMgaWRsZSBwZXJpb2RzLiZuYnNwOzxcL3A+XHJcblxyXG48cCBzdHlsZT1cInRleHQtYWxpZ246Y2VudGVyXCI+PGltZyBhbHQ9XCJcIiBzcmM9XCJcL3VwbG9hZFwvaW1hZ2VzXC9pZGxlMS5wbmdcIiBzdHlsZT1cImhlaWdodDo4NXB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgd2lkdGg6NTY4cHhcIiBcLz48XC9wPlxyXG5cclxuPHAgc3R5bGU9XCJ0ZXh0LWFsaWduOmNlbnRlclwiPkZpZ3VyZSAyLiBBIHNjaGVkdWxlIHdpdGggdGhlIG1pbmltdW0gbnVtYmVyIG9mIGlkbGUgcGVyaW9kcyZuYnNwOzxcL3A+XHJcbiIsImlucHV0IjoiPHA+WW91ciBwcm9ncmFtIGlzIHRvIHJlYWQgZnJvbSBzdGFuZGFyZCBpbnB1dC4gVGhlIGlucHV0IGNvbnNpc3RzIG9mIFQgdGVzdCBjYXNlcy4gVGhlIG51bWJlciBvZiB0ZXN0IGNhc2VzIFQgaXMgZ2l2ZW4gaW4gdGhlIGZpcnN0IGxpbmUgb2YgdGhlIGlucHV0LiBUaGUgZmlyc3QgbGluZSBvZiBlYWNoIHRlc3QgY2FzZSBjb250YWlucyBhbiBpbnRlZ2VyIG4oMSAmbGU7IG4gJmxlOyAxMDAsMDAwKSwgdGhlIG51bWJlciBvZiB0aGUgZ2l2ZW4gdGFza3MuIEluIHRoZSBuZXh0IG4gbGluZXMgb2YgZWFjaCB0ZXN0IGNhc2UsIHRoZSBpLXRoIGxpbmUgY29udGFpbnMgdHdvIGludGVnZXIgbnVtYmVycyByPHN1Yj5pPFwvc3ViPiBhbmQgZDxzdWI+aTxcL3N1Yj4sIHJlcHJlc2VudGluZyB0aGUgcmVsZWFzZSB0aW1lIGFuZCB0aGUgZGVhZGxpbmUgb2YgdGhlIHRhc2sgVDxzdWI+aTxcL3N1Yj4sIHJlc3BlY3RpdmVseSwgd2hlcmUgJm5ic3A7MCAmbGU7IHI8c3ViPmk8XC9zdWI+ICZsZTsgZDxzdWI+aTxcL3N1Yj4gJmxlOyAxLDAwMCwwMDAuJm5ic3A7PFwvcD5cclxuIiwib3V0cHV0IjoiPHA+WW91ciBwcm9ncmFtIGlzIHRvIHdyaXRlIHRvIHN0YW5kYXJkIG91dHB1dC4gUHJpbnQgZXhhY3RseSBvbmUgbGluZSBmb3IgZWFjaCB0ZXN0IGNhc2UuIFRoZSBsaW5lIGNvbnRhaW5zIHRoZSBtaW5pbXVtIG51bWJlciBvZiBpZGxlIHBlcmlvZHMuJm5ic3A7PFwvcD5cclxuIiwiaGludCI6IiIsIm9yaWdpbmFsIjoiMSIsInByb2JsZW1fbGFuZ19jb2RlIjoiXHVjNjAxXHVjNWI0In1d