시간 제한메모리 제한제출정답맞힌 사람정답 비율
0.5 초 (추가 시간 없음) 512 MB35821488125042.215%

문제

국제자본부동산회사(ICPC)는 바이트 코인(Byte Coin)에 자금을 투자하고 있다. 바이트 코인은 김박사가 만든 가상 화폐이다. 실제로는 바이트 코인 가격을 예상할 수 없지만 이 문제에서는 바이트 코인 가격 등락을 미리 정확히 예측할 수 있다고 가정하자.

우리는 1일부터 n일까지 n일 동안 그림 1과 같이 바이트 코인의 등락을 미리 알 수 있으며 우리에게는 초기 현금 W가 주어져 있다. 그림 1의 빨간색 네모는 해당 일자의 바이트 코인 가격을 나타낸다. 매일 바이트 코인을 매수하거나 매도할 수 있다고 하자. 다만 바이트 코인 하나를 나누어 매도하거나 매수할 수는 없다. 우리는 n일 날 보유하고 있는 모든 코인을 매도할 때 가지고 있는 현금을 최대화하고 싶다. 

그림 1. 10 일간 바이트 코인 가격 등락 그래프

예를 들어, 그림 1과 같은 바이트 코인 등락 그래프를 첫날 미리 알 수 있다고 하고 우리에게 주어진 초기 현금이 24라고 하자. 수익을 최대한 높이려면 다음과 같이 바이트 코인을 매수, 매도할 수 있다. 첫 날 현금 20을 써서 4개의 코인을 산다. 둘째 날 모든 코인을 매도해서 현금 28을 얻고 모두 32의 현금을 갖게 된다. 5일째 되는 날 현금 32를 써서 16개의 코인을 매수한다. 7일째 되는 날 모든 코인을 매도해서 모두 128의 현금을 갖게 된다. 9일째 되는 날 현금 126을 써서 42개의 코인을 사고 10일 날 모든 코인을 매도한다. 그러면 10일 날 현금이 170이 되고 이것이 최대이다.

요일 수 n, 초기 현금 W, 1일부터 n일까지 각 요일의 바이트 코인 가격이 주어질 때, n일 날 보유하고 있는 모든 코인을 매도할 때 보유하게 될 최종 현금의 최댓값을 출력하는 프로그램을 작성하시오.

입력

입력은 표준입력을 사용한다. 첫 번째 줄에 요일 수를 나타내는 양의 정수 n과 초기 현금 W(1 ≤ n ≤ 15, 1 ≤ W ≤ 100,000)가 주어진다. 다음 n 개의 줄에서, i번째 줄은 i일의 바이트 코인 가격을 나타내는 정수 si가 주어진다(1 ≤ si ≤ 50).

출력

출력은 표준출력을 사용한다. n일 날 보유하고 있는 모든 코인을 매도할 때 가지고 있는 현금의 최댓값을 한 행에 출력한다. 비록 초기 현금 W는 그렇게 크지 않지만 최종 현금은 매우 커질 수 있음에 주의하자.

예제 입력 1

10 24
5
7
5
4
2
7
8
5
3
4

예제 출력 1

170

예제 입력 2

5 15
5
4
4
2
7

예제 출력 2

50

예제 입력 3

7 54
7
5
5
4
2
2
1

예제 출력 3

54
W3sicHJvYmxlbV9pZCI6IjE3NTIxIiwicHJvYmxlbV9sYW5nIjoiMCIsInRpdGxlIjoiQnl0ZSBDb2luIiwiZGVzY3JpcHRpb24iOiI8cD5cdWFkNmRcdWM4MWNcdWM3OTBcdWJjZjhcdWJkODBcdWIzZDlcdWMwYjBcdWQ2OGNcdWMwYWMoSUNQQylcdWIyOTQgXHViYzE0XHVjNzc0XHVkMmI4IFx1Y2Y1NFx1Yzc3OChCeXRlIENvaW4pXHVjNWQwIFx1Yzc5MFx1YWUwOFx1Yzc0NCBcdWQyMmNcdWM3OTBcdWQ1NThcdWFjZTAgXHVjNzg4XHViMmU0LiBcdWJjMTRcdWM3NzRcdWQyYjggXHVjZjU0XHVjNzc4XHVjNzQwIFx1YWU0MFx1YmMxNVx1YzBhY1x1YWMwMCBcdWI5Y2NcdWI0ZTAgXHVhYzAwXHVjMGMxIFx1ZDY1NFx1ZDNkMFx1Yzc3NFx1YjJlNC4gXHVjMmU0XHVjODFjXHViODVjXHViMjk0IFx1YmMxNFx1Yzc3NFx1ZDJiOCBcdWNmNTRcdWM3NzggXHVhYzAwXHVhY2E5XHVjNzQ0IFx1YzYwOFx1YzBjMVx1ZDU2MCBcdWMyMTggXHVjNWM2XHVjOWMwXHViOWNjIFx1Yzc3NCBcdWJiMzhcdWM4MWNcdWM1ZDBcdWMxMWNcdWIyOTQgXHViYzE0XHVjNzc0XHVkMmI4IFx1Y2Y1NFx1Yzc3OCBcdWFjMDBcdWFjYTkgXHViNGYxXHViNzdkXHVjNzQ0IFx1YmJmOFx1YjlhYyBcdWM4MTVcdWQ2NTVcdWQ3ODggXHVjNjA4XHVjZTIxXHVkNTYwIFx1YzIxOCBcdWM3ODhcdWIyZTRcdWFjZTAgXHVhYzAwXHVjODE1XHVkNTU4XHVjNzkwLjxcL3A+XHJcblxyXG48cD5cdWM2YjBcdWI5YWNcdWIyOTQgMVx1Yzc3Y1x1YmQ4MFx1ZDEzMCA8ZW0+bjxcL2VtPlx1Yzc3Y1x1YWU0Y1x1YzljMCA8ZW0+bjxcL2VtPlx1Yzc3YyBcdWIzZDlcdWM1NDggXHVhZGY4XHViOWJjIDFcdWFjZmMgXHVhYzE5XHVjNzc0IFx1YmMxNFx1Yzc3NFx1ZDJiOCBcdWNmNTRcdWM3NzhcdWM3NTggXHViNGYxXHViNzdkXHVjNzQ0IFx1YmJmOFx1YjlhYyBcdWM1NGMgXHVjMjE4IFx1Yzc4OFx1YzczY1x1YmE3MCBcdWM2YjBcdWI5YWNcdWM1ZDBcdWFjOGNcdWIyOTQgXHVjZDA4XHVhZTMwIFx1ZDYwNFx1YWUwOCA8ZW0+VzxcL2VtPlx1YWMwMCBcdWM4ZmNcdWM1YjRcdWM4MzggXHVjNzg4XHViMmU0LiBcdWFkZjhcdWI5YmMgMVx1Yzc1OCBcdWJlNjhcdWFjMDRcdWMwYzkgXHViMTI0XHViYWE4XHViMjk0IFx1ZDU3NFx1YjJmOSBcdWM3N2NcdWM3OTBcdWM3NTggXHViYzE0XHVjNzc0XHVkMmI4IFx1Y2Y1NFx1Yzc3OCBcdWFjMDBcdWFjYTlcdWM3NDQgXHViMDk4XHVkMGMwXHViMGI4XHViMmU0LiBcdWI5ZTRcdWM3N2MgXHViYzE0XHVjNzc0XHVkMmI4IFx1Y2Y1NFx1Yzc3OFx1Yzc0NCBcdWI5ZTRcdWMyMThcdWQ1NThcdWFjNzBcdWIwOTggXHViOWU0XHViM2M0XHVkNTYwIFx1YzIxOCBcdWM3ODhcdWIyZTRcdWFjZTAgXHVkNTU4XHVjNzkwLiBcdWIyZTRcdWI5Y2MgXHViYzE0XHVjNzc0XHVkMmI4IFx1Y2Y1NFx1Yzc3OCBcdWQ1NThcdWIwOThcdWI5N2MgXHViMDk4XHViMjA0XHVjNWI0IFx1YjllNFx1YjNjNFx1ZDU1OFx1YWM3MFx1YjA5OCBcdWI5ZTRcdWMyMThcdWQ1NjAgXHVjMjE4XHViMjk0IFx1YzVjNlx1YjJlNC4gXHVjNmIwXHViOWFjXHViMjk0IDxlbT5uPFwvZW0+XHVjNzdjIFx1YjBhMCBcdWJjZjRcdWM3MjBcdWQ1NThcdWFjZTAgXHVjNzg4XHViMjk0IFx1YmFhOFx1YjRlMCBcdWNmNTRcdWM3NzhcdWM3NDQgXHViOWU0XHViM2M0XHVkNTYwIFx1YjU0YyBcdWFjMDBcdWM5YzBcdWFjZTAgXHVjNzg4XHViMjk0IFx1ZDYwNFx1YWUwOFx1Yzc0NCBcdWNkNWNcdWIzMDBcdWQ2NTRcdWQ1NThcdWFjZTAgXHVjMmY2XHViMmU0LiZuYnNwOzxcL3A+XHJcblxyXG48cCBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjtcIj48aW1nIGFsdD1cIlwiIHNyYz1cImh0dHBzOlwvXC91cGxvYWQuYWNtaWNwYy5uZXRcLzRlNWRjNzIxLWRmYmItNDA1NC1hNTQ1LTcxM2VlZTMxMzdiZVwvLVwvcHJldmlld1wvXCIgc3R5bGU9XCJ3aWR0aDogMjk1cHg7IGhlaWdodDogMjczcHg7XCIgXC8+PFwvcD5cclxuXHJcbjxwIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyO1wiPjxzdHJvbmc+XHVhZGY4XHViOWJjIDE8XC9zdHJvbmc+LiAxMCBcdWM3N2NcdWFjMDQgXHViYzE0XHVjNzc0XHVkMmI4IFx1Y2Y1NFx1Yzc3OCBcdWFjMDBcdWFjYTkgXHViNGYxXHViNzdkIFx1YWRmOFx1Yjc5OFx1ZDUwNDxcL3A+XHJcblxyXG48cD5cdWM2MDhcdWI5N2MgXHViNGU0XHVjNWI0LCBcdWFkZjhcdWI5YmMgMVx1YWNmYyBcdWFjMTlcdWM3NDAgXHViYzE0XHVjNzc0XHVkMmI4IFx1Y2Y1NFx1Yzc3OCBcdWI0ZjFcdWI3N2QgXHVhZGY4XHViNzk4XHVkNTA0XHViOTdjIFx1Y2NhYlx1YjBhMCBcdWJiZjhcdWI5YWMgXHVjNTRjIFx1YzIxOCBcdWM3ODhcdWIyZTRcdWFjZTAgXHVkNTU4XHVhY2UwIFx1YzZiMFx1YjlhY1x1YzVkMFx1YWM4YyBcdWM4ZmNcdWM1YjRcdWM5YzQgXHVjZDA4XHVhZTMwIFx1ZDYwNFx1YWUwOFx1Yzc3NCAyNFx1Yjc3Y1x1YWNlMCBcdWQ1NThcdWM3OTAuIFx1YzIxOFx1Yzc3NVx1Yzc0NCBcdWNkNWNcdWIzMDBcdWQ1NWMgXHViMTkyXHVjNzc0XHViODI0XHViYTc0IFx1YjJlNFx1Yzc0Y1x1YWNmYyBcdWFjMTlcdWM3NzQgXHViYzE0XHVjNzc0XHVkMmI4IFx1Y2Y1NFx1Yzc3OFx1Yzc0NCBcdWI5ZTRcdWMyMTgsIFx1YjllNFx1YjNjNFx1ZDU2MCBcdWMyMTggXHVjNzg4XHViMmU0LiBcdWNjYWIgXHViMGEwIFx1ZDYwNFx1YWUwOCAyMFx1Yzc0NCBcdWMzNjhcdWMxMWMgNFx1YWMxY1x1Yzc1OCBcdWNmNTRcdWM3NzhcdWM3NDQgXHVjMGIwXHViMmU0LiBcdWI0NThcdWM5ZjggXHViMGEwIFx1YmFhOFx1YjRlMCBcdWNmNTRcdWM3NzhcdWM3NDQgXHViOWU0XHViM2M0XHVkNTc0XHVjMTFjIFx1ZDYwNFx1YWUwOCAyOFx1Yzc0NCBcdWM1YmJcdWFjZTAgXHViYWE4XHViNDUwIDMyXHVjNzU4IFx1ZDYwNFx1YWUwOFx1Yzc0NCBcdWFjMTZcdWFjOGMgXHViNDFjXHViMmU0LiA1XHVjNzdjXHVjOWY4IFx1YjQxOFx1YjI5NCBcdWIwYTAgXHVkNjA0XHVhZTA4IDMyXHViOTdjIFx1YzM2OFx1YzExYyAxNlx1YWMxY1x1Yzc1OCBcdWNmNTRcdWM3NzhcdWM3NDQgXHViOWU0XHVjMjE4XHVkNTVjXHViMmU0LiA3XHVjNzdjXHVjOWY4IFx1YjQxOFx1YjI5NCZuYnNwO1x1YjBhMCBcdWJhYThcdWI0ZTAgXHVjZjU0XHVjNzc4XHVjNzQ0IFx1YjllNFx1YjNjNFx1ZDU3NFx1YzExYyBcdWJhYThcdWI0NTAgMTI4XHVjNzU4IFx1ZDYwNFx1YWUwOFx1Yzc0NCBcdWFjMTZcdWFjOGMgXHViNDFjXHViMmU0LiA5XHVjNzdjXHVjOWY4IFx1YjQxOFx1YjI5NCBcdWIwYTAgXHVkNjA0XHVhZTA4IDEyNlx1Yzc0NCBcdWMzNjhcdWMxMWMgNDJcdWFjMWNcdWM3NTggXHVjZjU0XHVjNzc4XHVjNzQ0IFx1YzBhY1x1YWNlMCAxMFx1Yzc3YyBcdWIwYTAgXHViYWE4XHViNGUwIFx1Y2Y1NFx1Yzc3OFx1Yzc0NCBcdWI5ZTRcdWIzYzRcdWQ1NWNcdWIyZTQuIFx1YWRmOFx1YjdlY1x1YmE3NCAxMFx1Yzc3YyBcdWIwYTAgXHVkNjA0XHVhZTA4XHVjNzc0IDE3MFx1Yzc3NCBcdWI0MThcdWFjZTAgXHVjNzc0XHVhYzgzXHVjNzc0IFx1Y2Q1Y1x1YjMwMFx1Yzc3NFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVjNjk0XHVjNzdjIFx1YzIxOCA8ZW0+bjxcL2VtPiwgXHVjZDA4XHVhZTMwIFx1ZDYwNFx1YWUwOCA8ZW0+VzxcL2VtPiwgMVx1Yzc3Y1x1YmQ4MFx1ZDEzMCA8ZW0+bjxcL2VtPlx1Yzc3Y1x1YWU0Y1x1YzljMCBcdWFjMDEgXHVjNjk0XHVjNzdjXHVjNzU4IFx1YmMxNFx1Yzc3NFx1ZDJiOCBcdWNmNTRcdWM3NzggXHVhYzAwXHVhY2E5XHVjNzc0IFx1YzhmY1x1YzViNFx1YzljOCBcdWI1NGMsIDxlbT5uPFwvZW0+XHVjNzdjIFx1YjBhMCBcdWJjZjRcdWM3MjBcdWQ1NThcdWFjZTAgXHVjNzg4XHViMjk0IFx1YmFhOFx1YjRlMCBcdWNmNTRcdWM3NzhcdWM3NDQgXHViOWU0XHViM2M0XHVkNTYwIFx1YjU0YyBcdWJjZjRcdWM3MjBcdWQ1NThcdWFjOGMgXHViNDIwIFx1Y2Q1Y1x1Yzg4NSBcdWQ2MDRcdWFlMDhcdWM3NTggXHVjZDVjXHViMzEzXHVhYzEyXHVjNzQ0IFx1Y2Q5Y1x1YjgyNVx1ZDU1OFx1YjI5NCBcdWQ1MDRcdWI4NWNcdWFkZjhcdWI3YThcdWM3NDQgXHVjNzkxXHVjMTMxXHVkNTU4XHVjMmRjXHVjNjI0LjxcL3A+XHJcbiIsImlucHV0IjoiPHA+XHVjNzg1XHViODI1XHVjNzQwIFx1ZDQ1Y1x1YzkwMFx1Yzc4NVx1YjgyNVx1Yzc0NCBcdWMwYWNcdWM2YTlcdWQ1NWNcdWIyZTQuIFx1Y2NhYiBcdWJjODhcdWM5ZjggXHVjOTA0XHVjNWQwIFx1YzY5NFx1Yzc3YyBcdWMyMThcdWI5N2MgXHViMDk4XHVkMGMwXHViMGI0XHViMjk0IFx1YzU5MVx1Yzc1OCBcdWM4MTVcdWMyMTggPGVtPm48XC9lbT5cdWFjZmMgXHVjZDA4XHVhZTMwIFx1ZDYwNFx1YWUwOCA8ZW0+VzxcL2VtPigxICZsZTsgPGVtPm48XC9lbT4gJmxlOyAxNSwgMSAmbGU7IDxlbT5XPFwvZW0+ICZsZTsgMTAwLDAwMClcdWFjMDAgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0LiBcdWIyZTRcdWM3NGMgPGVtPm48XC9lbT4gXHVhYzFjXHVjNzU4IFx1YzkwNFx1YzVkMFx1YzExYywgPGVtPmk8XC9lbT5cdWJjODhcdWM5ZjggXHVjOTA0XHVjNzQwIDxlbT5pPFwvZW0+XHVjNzdjXHVjNzU4IFx1YmMxNFx1Yzc3NFx1ZDJiOCBcdWNmNTRcdWM3NzggXHVhYzAwXHVhY2E5XHVjNzQ0IFx1YjA5OFx1ZDBjMFx1YjBiNFx1YjI5NCBcdWM4MTVcdWMyMTggPGVtPnM8c3ViPmk8XC9zdWI+PFwvZW0+XHVhYzAwIFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNCgxICZsZTsgPGVtPnM8c3ViPmk8XC9zdWI+PFwvZW0+Jm5ic3A7JmxlOyA1MCkuPFwvcD5cclxuIiwib3V0cHV0IjoiPHA+XHVjZDljXHViODI1XHVjNzQwIFx1ZDQ1Y1x1YzkwMFx1Y2Q5Y1x1YjgyNVx1Yzc0NCBcdWMwYWNcdWM2YTlcdWQ1NWNcdWIyZTQuIDxlbT5uPFwvZW0+XHVjNzdjIFx1YjBhMCBcdWJjZjRcdWM3MjBcdWQ1NThcdWFjZTAgXHVjNzg4XHViMjk0IFx1YmFhOFx1YjRlMCBcdWNmNTRcdWM3NzhcdWM3NDQgXHViOWU0XHViM2M0XHVkNTYwIFx1YjU0YyBcdWFjMDBcdWM5YzBcdWFjZTAgXHVjNzg4XHViMjk0IFx1ZDYwNFx1YWUwOFx1Yzc1OCBcdWNkNWNcdWIzMTNcdWFjMTJcdWM3NDQgXHVkNTVjIFx1ZDU4OVx1YzVkMCBcdWNkOWNcdWI4MjVcdWQ1NWNcdWIyZTQuIFx1YmU0NFx1Yjg1ZCBcdWNkMDhcdWFlMzAgXHVkNjA0XHVhZTA4IDxlbT5XPFwvZW0+XHViMjk0IFx1YWRmOFx1YjgwN1x1YWM4YyBcdWQwNmNcdWM5YzAgXHVjNTRhXHVjOWMwXHViOWNjIFx1Y2Q1Y1x1Yzg4NSBcdWQ2MDRcdWFlMDhcdWM3NDAgXHViOWU0XHVjNmIwIFx1Y2VlNFx1YzljOCBcdWMyMTggXHVjNzg4XHVjNzRjXHVjNWQwIFx1YzhmY1x1Yzc1OFx1ZDU1OFx1Yzc5MC48XC9wPlxyXG4iLCJoaW50IjoiIiwib3JpZ2luYWwiOiIxIiwiaHRtbF90aXRsZSI6IjAiLCJwcm9ibGVtX2xhbmdfdGNvZGUiOiJLb3JlYW4ifSx7InByb2JsZW1faWQiOiIxNzUyMSIsInByb2JsZW1fbGFuZyI6IjEiLCJ0aXRsZSI6IkJ5dGUgQ29pbiIsImRlc2NyaXB0aW9uIjoiPHA+SW50ZXJuYXRpb25hbCBDYXBpdGFsIGFuZCBQcm9wZXJ0eSBDb21wYW55IChJQ1BDKSBpcyBpbnZlc3RpbmcgbW9uZXkgdG8gQnl0ZSBDb2luLCBhIHZpcnR1YWwgY3VycmVuY3kgaW52ZW50ZWQgYnkgRHIuIEtpbS4gSW4gcmVhbGl0eSwgdGhlIHByaWNlIG9mIEJ5dGUgQ29pbiBpcyB1bnByZWRpY3RhYmxlLiBCdXQgaW4gdGhpcyBwcm9ibGVtLCBhc3N1bWUgdGhhdCB0aGUgcHJpY2Ugb2YgQnl0ZSBDb2luIGNhbiBiZSBhY2N1cmF0ZWx5IGVzdGltYXRlZCBpbiBhZHZhbmNlLjxcL3A+XHJcblxyXG48cD5XZSBhcmUgZ2l2ZW4gc3RvY2sgcHJpY2VzIG9mIDxlbT5uPFwvZW0+IGRheXMgZnJvbSBkYXkgMSB0byBkYXkgPGVtPm48XC9lbT4sIGxpa2UgRmlndXJlIDEsIGFuZCB0aGUgaW5pdGlhbCBhbW91bnQgPGVtPlc8XC9lbT4gb2YgcmVhbCBtb25leS4gVGhlIHJlZCBzcXVhcmUgaW4gRmlndXJlIDEgcmVwcmVzZW50cyB0aGUgcHJpY2UgQnl0ZSBDb2luIG9uIGVhY2ggZGF5LiBXZSBhc3N1bWUgdGhhdCB3ZSBjYW4gc2VsbCBhbmQgYnV5IEJ5dGUgQ29pbnMgb24gZWFjaCBkYXkuIEZvciBidXlpbmcgYW5kIHNlbGxpbmcgQnl0ZSBDb2lucywgd2UgY2Fubm90IHNwbGl0IGEgQnl0ZSBDb2luLiBXZSB3YW50IHRvIG1heGltaXplIHRoZSBtb25leSB0aGF0IHdlIGhhdmUgd2hlbiBzZWxsaW5nIGFsbCB0aGUgY29pbnMgd2UgaGF2ZSBvbiBkYXkgPGVtPm48XC9lbT4uPFwvcD5cclxuXHJcbjxwIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyO1wiPjxpbWcgYWx0PVwiXCIgc3JjPVwiaHR0cHM6XC9cL3VwbG9hZC5hY21pY3BjLm5ldFwvNGU1ZGM3MjEtZGZiYi00MDU0LWE1NDUtNzEzZWVlMzEzN2JlXC8tXC9wcmV2aWV3XC9cIiBzdHlsZT1cIndpZHRoOiAyOTVweDsgaGVpZ2h0OiAyNzNweDtcIiBcLz48XC9wPlxyXG5cclxuPHAgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCI+PHN0cm9uZz5GaWd1cmUgMTxcL3N0cm9uZz4uIFRoZSBCeXRlIENvaW4gcHJpY2UgY2hhbmdlIGZvciB0ZW4gZGF5czxcL3A+XHJcblxyXG48cD5Gb3IgZXhhbXBsZSwgdGhlIHByaWNlIG9mIEJ5dGUgQ29pbiBpcyBnaXZlbiBhcyBGaWd1cmUgMSBpbiBhZHZhbmNlIG9uIHRoZSBkYXkgMSBhbmQgdGhlIGluaXRpYWwgbW9uZXkgPGVtPlc8XC9lbT4gaXMgMjQuIFRvIG1heGltaXplIHRoZSByZXZlbnVlLCB0aGUgYmVzdCBzdHJhdGVneSBpcyBsaWtlIHRoZSBmb2xsb3dpbmcuIE9uIGRheSAxLCB3ZSBidXkgNCBjb2lucyBieSBwYXlpbmcgbW9uZXkgMjAuIE9uIGRheSAyLCB3ZSBzZWxsIGFsbCB0aGUgY29pbnMgYW5kIGdldCBtb25leSAyOC4gU28gd2UgaGF2ZSB0b3RhbGx5IG1vbmV5IDMyLiBPbiBkYXkgNSwgd2UgYnV5IDE2IGNvaW5zIGJ5IHBheWluZyBtb25leSAzMi4gV2Ugc2VsbCBhbGwgdGhlIGNvaW5zIG9uIGRheSA3IGFuZCBoYXZlIHRvdGFsbHkgbW9uZXkgMTI4LiBPbiBkYXkgOSwgd2UgYnV5IDQyIGNvaW5zIGJ5IHBheWluZyBtb25leSAxMjYgYW5kIG9uIGRheSAxMCwgdGhlIGxhc3QgZGF5LCB3ZSBzZWxsIGFsbCB0aGUgY29pbnMuIFRoZW4sIHdlIGhhdmUgbW9uZXkgMTcwIG9uIGRheSAxMCwgd2hpY2ggaXMgbWF4aW11bS48XC9wPlxyXG5cclxuPHA+R2l2ZW4gdGhlIG51bWJlciBvZiBkYXlzIDxlbT5uPFwvZW0+LCB0aGUgaW5pdGlhbCBhbW91bnQgb2YgbW9uZXkgPGVtPlc8XC9lbT4sIGFuZCB0aGUgcHJpY2VzIG9mIEJ5dGUgQ29pbiBvbiBlYWNoIG9mIGRheSAxIHRvIDxlbT5uPFwvZW0+LCB3cml0ZSBhIHByb2dyYW0gdG8gbWF4aW1pemUgdGhlIGZpbmFsIGFtb3VudCBvZiBtb25leSB3aGVuIHNlbGxpbmcgYWxsIHRoZSBjb2lucyB3ZSBoYXZlIG9uIGRheSA8ZW0+bjxcL2VtPi48XC9wPlxyXG4iLCJpbnB1dCI6IjxwPllvdXIgcHJvZ3JhbSBpcyB0byByZWFkIGZyb20gc3RhbmRhcmQgaW5wdXQuIFRoZSBpbnB1dCBzdGFydHMgd2l0aCBhIGxpbmUgY29udGFpbmluZyB0d28gaW50ZWdlcnMgPGVtPm48XC9lbT4gYW5kIDxlbT5XPFwvZW0+ICgxICZsZTsgPGVtPm48XC9lbT4gJmxlOyAxNSwgMSAmbGU7IDxlbT5XPFwvZW0+ICZsZTsgMTAwLDAwMCksIHdoZXJlIDxlbT5uPFwvZW0+IGlzIHRoZSBudW1iZXIgb2YgZGF5cyBhbmQgPGVtPlc8XC9lbT4gaXMgdGhlIGluaXRpYWwgbW9uZXkuIEluIHRoZSBmb2xsb3dpbmcgPGVtPm48XC9lbT4gbGluZXMsIHRoZSA8ZW0+aTxcL2VtPi10aCBsaW5lIGNvbnRhaW5zIGFuIGludGVnZXIgPGVtPnM8c3ViPmk8XC9zdWI+PFwvZW0+ICgxICZsZTsgPGVtPnM8c3ViPmk8XC9zdWI+PFwvZW0+Jm5ic3A7JmxlOyA1MCksIHdoZXJlIDxlbT5zPHN1Yj5pPFwvc3ViPjxcL2VtPiZuYnNwO2Rlbm90ZXMgdGhlIHByaWNlIG9mIEJ5dGUgQ29pbiBvbiB0aGUgZGF5IDxlbT5pPFwvZW0+LjxcL3A+XHJcbiIsIm91dHB1dCI6IjxwPllvdXIgcHJvZ3JhbSBpcyB0byB3cml0ZSB0byBzdGFuZGFyZCBvdXRwdXQuIFByaW50IGV4YWN0bHkgb25lIGxpbmUgY29udGFpbmluZyB0aGUgbWF4aW11bSBtb25leSB0aGF0IHdlIGhhdmUgd2hlbiBzZWxsaW5nIGFsbCB0aGUgY29pbnMgd2UgaGF2ZSBvbiBkYXkgPGVtPm48XC9lbT4uIEJld2FyZSB0aGF0IGV2ZW4gdGhvdWdoIHRoZSBpbml0aWFsIGFtb3VudCBvZiBtb25leSA8ZW0+VzxcL2VtPiBpcyBub3Qgc28gYmlnIGJ1dCB0aGUgZmluYWwgYW1vdW50IG9mIG1vbmV5IGNhbiBiZSB2ZXJ5IGxhcmdlLjxcL3A+XHJcbiIsImhpbnQiOiIiLCJvcmlnaW5hbCI6IjAiLCJodG1sX3RpdGxlIjoiMCIsInByb2JsZW1fbGFuZ190Y29kZSI6IkVuZ2xpc2gifV0=