It starts with a shipwreck following a magical storm at sea. Horace, a soldier from the west, had joined the Great Crusade against the heathens of Akeshia after the deaths of his wife and son from plague. When he washes ashore, he finds himself at the mercy of the very people he was sent to kill, who speak a language and have a culture and customs he doesn't even begin to understand.
Not long after, Horace is pressed into service as a house slave. But this doesn't last. The Akeshians discover that Horace was a latent sorcerer, and he is catapulted from the chains of a slave to the halls of power in the queen's court. Together with Jirom, an ex-mercenary and gladiator, and Alyra, a spy in the court, he will seek a path to free himself and the empire's caste of slaves from a system where every man and woman must pay the price of blood or iron. Before the end, Horace will have paid dearly in both.
Includes Book of the Black Earth 1-4 (7 Parts).
Audio Sample Player
Social Media Share Widgets
Purchase Options
Format Information
ALL DOWNLOAD FORMATS INCLUDE LISTENING TO THE TITLE IN GRAPHICAUDIO ACCESS™ APP ON ANDROID AND APPLE IOS DEVICES! LEARN MORE.
GraphicAudio is available in various high quality digital audio formats.
Listen with Access App Only - Download our app for Apple iOS & Android. App Device Compatibility: Android phones with OS 5 or later and iPhone, iPad, and iPod touch with iOS 9.0 or later. The Access App Only option does not include a zip download.
MP3 (256kbps) - Download the zip file and Play with any media player. You also get to Listen with GraphicAudio Access App. This is the most common audio download format that will play on any computer or media player. The average size of this download will be around 600 MB.
M4B (256kbps) - Download the zip file and Play with Apple Music, iPhone, iPod and iPad. You also get to Listen with GraphicAudio Access App. This format will work only in iTunes, Quicktime, on a Mac computer, or on an iOS device such as iPhone or iPad. M4B's have the ability to bookmark in some audio apps. The M4B download is one complete file, so it is not split up into smaller parts. The average size of this download will be around 600 MB.
FLAC (16 bit / 44.1 khz) - Download the zip file and Play with VLC or other high quality audio software. You also get to Listen with GraphicAudio Access App. This a studio-quality lossless digital audio format. This means that it does not lose data like other types of compressed audio files. Lossless compression still retains low-level resolution of a standard CD. The advantage of FLAC is that it takes up less room on your computer than an WAV (CD files). The average size of this download will be around 2,000 MB (2 GB).
FLAC 5.1 SURROUND (16 bit / 44.1 khz) - Download the zip file and Play with 5.1 Surround Sound Home Theater systems or other high quality surround sound audio software. You also get to listen to stereo version with the GraphicAudio Access App. The average size of this download will be around 4,500 MB (4.5 GB).
How do I un-zip my download?
When you download the file, it arrives on your computer in a compressed format called zip. Before you can add the audio files to your library and listen to it, you'll need to decompress, or "unzip" it. Doing so is very easy: If you're on a PC, right-click the file and choose Extract All... You're done. If you're on a Mac, double-click the file and it extracts into a separate folder next to where the other file is located.
My zip download says it's expired. What now?
Click here to send a customer support ticket to us. Please include the order number if you have it.
7 Titles In This Set - See AllSee Fewer
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTIzNTgtMTI2OTQyOTIxIj4KICAgIDxzcGFuIGNsYXNzPSJwcm9kdWN0LWltYWdlLXdyYXBwZXIiPgogICAgICAgIDxpbWcgY2xhc3M9InByb2R1Y3QtaW1hZ2UtcGhvdG8iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3Qtc2t1PSJCT1RCRTAxIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1wcm9kdWN0LW5hbWU9IlFtOXZheUJ2WmlCMGFHVWdRbXhoWTJzZ1JXRnlkR2dnTVRvZ1FteHZiMlFnWVc1a0lFbHliMjQ9IgogICAgICAgICAgICAgICAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LmdyYXBoaWNhdWRpby5uZXQvbWVkaWEvY2F0YWxvZy9wcm9kdWN0L2NhY2hlL2NlNjkyMzk0YmMzMWRiZTQxN2Y5ZDA0ZWI2NzgwMjM4LzkvNy85NzgxNjQ4NzkyNTg4LmpwZyIKICAgICAgICAgICAgbG9hZGluZz0ibGF6eSIKICAgICAgICAgICAgd2lkdGg9IjIwMCIKICAgICAgICAgICAgaGVpZ2h0PSIyMDAiCiAgICAgICAgICAgIGFsdD0iQm9vayYjeDIwO29mJiN4MjA7dGhlJiN4MjA7QmxhY2smI3gyMDtFYXJ0aCYjeDIwOzEmI3gzQTsmI3gyMDtCbG9vZCYjeDIwO2FuZCYjeDIwO0lyb24iLz48L3NwYW4+Cjwvc3Bhbj4KPHN0eWxlPi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0yMzU4LTEyNjk0MjkyMSB7CiAgICB3aWR0aDogMjAwcHg7Cn0KLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTIzNTgtMTI2OTQyOTIxIHNwYW4ucHJvZHVjdC1pbWFnZS13cmFwcGVyIHsKICAgIHBhZGRpbmctYm90dG9tOiAxMDAlOwp9PC9zdHlsZT48c2NyaXB0IHR5cGU9InRleHQmI3gyRjtqYXZhc2NyaXB0Ij5wcm9kSW1hZ2VDb250YWluZXJzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTIzNTgtMTI2OTQyOTIxIik7CmZvciAodmFyIGkgPSAwOyBpIDwgcHJvZEltYWdlQ29udGFpbmVycy5sZW5ndGg7IGkrKykgewogICAgcHJvZEltYWdlQ29udGFpbmVyc1tpXS5zdHlsZS53aWR0aCA9ICIyMDBweCI7Cn0KcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgKICAgICIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMjM1OC0xMjY5NDI5MjEgIHNwYW4ucHJvZHVjdC1pbWFnZS13cmFwcGVyIgopOwpmb3IgKHZhciBpID0gMDsgaSA8IHByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVycy5sZW5ndGg7IGkrKykgewogICAgcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzW2ldLnN0eWxlLnBhZGRpbmdCb3R0b20gPSAiMTAwJSI7Cn08L3NjcmlwdD48L2Rpdj4KCjxoMSBjbGFzcz0icHJvZHVjdC1uYW1lIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VyaWVzLW5hbWUiPkJvb2sgb2YgdGhlIEJsYWNrIEVhcnRoPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXBpc29kZS1uYW1lIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJudW1iZXIiPjEgOjwvc3Bhbj4gICAgICAgICAgICAgICAgQmxvb2QgYW5kIElyb24gICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9oMT4KCjxkaXYgY2xhc3M9InByb2R1Y3QtYXV0aG9yIj4KICAgIGJ5IEpvbiBTcHJ1bms8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJtaW5pLWF0dHJpYnV0ZXMiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtcmVsZWFzZWRhdGUiPgogICAgICAgICAgICAgICAgPGxhYmVsPlJlbGVhc2UgRGF0ZTo8L2xhYmVsPiBOb3YgMSwgMjAxNCAgICAgICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtcnVubmluZ3RpbWUiPgogICAgICAgICAgICAgICAgPGxhYmVsPkFwcHJveGltYXRlIFJ1bm5pbmcgVGltZTo8L2xhYmVsPiA5IEhvdXJzCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtY29udGVudHJhdGluZyI+CiAgICAgICAgICAgICAgICA8bGFiZWw+Q29udGVudCBSYXRpbmc6PC9sYWJlbD4gQWdlcyAxOCsgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CgogICA8ZGl2IGNsYXNzPSJkZXNjcmlwdGlvbiI+CiAgICAgICA8ZGl2IGNsYXNzPSJzdGQiPlRoaXMgYWN0aW9uLWhlYXZ5IEVQSUMgRkFOVEFTWSBTRVJJRVMgT1BFTkVSIGlzIGxpa2UgYSBzd29yZC1hbmQtc29yY2VyeSBTcGFydGFjdXMgc2V0IGluIGEgcmljaGx5LWltYWdpbmVkIHdvcmxkLjxiciAvPg0KPGJyIC8+DQpJdCBzdGFydHMgd2l0aCBhIHNoaXB3cmVjayBmb2xsb3dpbmcgYSBtYWdpY2FsIHN0b3JtIGF0IHNlYS4gSG9yYWNlLCBhIHNvbGRpZXIgZnJvbSB0aGUgd2VzdCwgaGFkIGpvaW5lZCB0aGUgR3JlYXQgQ3J1c2FkZSBhZ2FpbnN0IHRoZSBoZWF0aGVucyBvZiBBa2VzaGlhIGFmdGVyIHRoZSBkZWF0aHMgb2YgaGlzIHdpZmUgYW5kIHNvbiBmcm9tIHBsYWd1ZS4gV2hlbiBoZSB3YXNoZXMgYXNob3JlLCBoZSBmaW5kcyBoaW1zZWxmIGF0IHRoZSBtZXJjeSBvZiB0aGUgdmVyeSBwZW9wbGUgaGUgd2FzIHNlbnQgdG8ga2lsbCwgd2hvIHNwZWFrIGEgbGFuZ3VhZ2UgYW5kIGhhdmUgYSBjdWx0dXJlIGFuZCBjdXN0b21zIGhlIGRvZXNuJ3QgZXZlbiBiZWdpbiB0byB1bmRlcnN0YW5kLiA8YnIgLz4NCjxiciAvPg0KTm90IGxvbmcgYWZ0ZXIsIEhvcmFjZSBpcyBwcmVzc2VkIGludG8gc2VydmljZSBhcyBhIGhvdXNlIHNsYXZlLiBCdXQgdGhpcyBkb2Vzbid0IGxhc3QuIFRoZSBBa2VzaGlhbnMgZGlzY292ZXIgdGhhdCBIb3JhY2Ugd2FzIGEgbGF0ZW50IHNvcmNlcmVyLCBhbmQgaGUgaXMgY2F0YXB1bHRlZCBmcm9tIHRoZSBjaGFpbnMgb2YgYSBzbGF2ZSB0byB0aGUgaGFsbHMgb2YgcG93ZXIgaW4gdGhlIHF1ZWVuJ3MgY291cnQuIFRvZ2V0aGVyIHdpdGggSmlyb20sIGFuIGV4LW1lcmNlbmFyeSBhbmQgZ2xhZGlhdG9yLCBhbmQgQWx5cmEsIGEgc3B5IGluIHRoZSBjb3VydCwgaGUgd2lsbCBzZWVrIGEgcGF0aCB0byBmcmVlIGhpbXNlbGYgYW5kIHRoZSBlbXBpcmUncyBjYXN0ZSBvZiBzbGF2ZXMgZnJvbSBhIHN5c3RlbSB3aGVyZSBldmVyeSBtYW4gYW5kIHdvbWFuIG11c3QgcGF5IHRoZSBwcmljZSBvZiBibG9vZCBvciBpcm9uLiBCZWZvcmUgdGhlIGVuZCwgSG9yYWNlIHdpbGwgaGF2ZSBwYWlkIGRlYXJseSBpbiBib3RoLiAgICAgICAgPC9kaXY+CiAgIDwvZGl2PgoKPGRpdiBjbGFzcz0icHJvZHVjdC1jb3B5cmlnaHQiPgogICAgQ29weXJpZ2h0IMKpIDIwMTQgSm9uIFNwcnVuay4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gUmVjb3JkZWQgd2l0aCBwZXJtaXNzaW9uIG9mIHRoZSBBdXRob3IuIOKElyAyMDE0IFRoZSBDdXR0aW5nIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1lZGlhLXBsYXllciI+CiAgICAgICAgPGF1ZGlvIGNvbnRyb2xzIHByZWxvYWQ9Im1ldGFkYXRhIiBzdHlsZT0id2lkdGg6IDEwMCU7IiBzcmM9Imh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9ncmFwaGljYXVkaW9zYW1wbGVzL0JPVEJFMDEubXAzIiB0eXBlPSJhdWRpby9tcGVnIj4KICAgICAgICA8IS0tIGZhbGxiYWNrIGZvciBub24gc3VwcG9ydGluZyBicm93c2VycyBnb2VzIGhlcmUgLS0+CiAgICAgICAgPHA+WW91ciBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgSFRNTDUuIFlvdSBjYW4gPGEgaHJlZj0iaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL2dyYXBoaWNhdWRpb3NhbXBsZXMvQk9UQkUwMS5tcDMiPmRvd25sb2FkIHRoZSBhdWRpbyBzYW1wbGU8L2E+LjwvcD4KICAgICAgICA8L2F1ZGlvPgogICAgPC9kaXY+CiAKCjwvZGl2Pg==
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTI1MjUtMzk4NzA1NDkwIj4KICAgIDxzcGFuIGNsYXNzPSJwcm9kdWN0LWltYWdlLXdyYXBwZXIiPgogICAgICAgIDxpbWcgY2xhc3M9InByb2R1Y3QtaW1hZ2UtcGhvdG8iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3Qtc2t1PSJCT1RCRTAyMDEiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3QtbmFtZT0iUW05dmF5QnZaaUIwYUdVZ1FteGhZMnNnUldGeWRHZ2dNam9nVTNSdmNtMGdZVzVrSUZOMFpXVnNJREVnYjJZZ01nPT0iCiAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuZ3JhcGhpY2F1ZGlvLm5ldC9tZWRpYS9jYXRhbG9nL3Byb2R1Y3QvY2FjaGUvY2U2OTIzOTRiYzMxZGJlNDE3ZjlkMDRlYjY3ODAyMzgvOS83Lzk3ODE2NDg3OTI2MDEuanBnIgogICAgICAgICAgICBsb2FkaW5nPSJsYXp5IgogICAgICAgICAgICB3aWR0aD0iMjAwIgogICAgICAgICAgICBoZWlnaHQ9IjIwMCIKICAgICAgICAgICAgYWx0PSJCb29rJiN4MjA7b2YmI3gyMDt0aGUmI3gyMDtCbGFjayYjeDIwO0VhcnRoJiN4MjA7MiYjeDNBOyYjeDIwO1N0b3JtJiN4MjA7YW5kJiN4MjA7U3RlZWwmI3gyMDsxJiN4MjA7b2YmI3gyMDsyIi8+PC9zcGFuPgo8L3NwYW4+CjxzdHlsZT4ucHJvZHVjdC1pbWFnZS1jb250YWluZXItMjUyNS0zOTg3MDU0OTAgewogICAgd2lkdGg6IDIwMHB4Owp9Ci5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0yNTI1LTM5ODcwNTQ5MCBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciB7CiAgICBwYWRkaW5nLWJvdHRvbTogMTAwJTsKfTwvc3R5bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0JiN4MkY7amF2YXNjcmlwdCI+cHJvZEltYWdlQ29udGFpbmVycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0yNTI1LTM5ODcwNTQ5MCIpOwpmb3IgKHZhciBpID0gMDsgaSA8IHByb2RJbWFnZUNvbnRhaW5lcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNbaV0uc3R5bGUud2lkdGggPSAiMjAwcHgiOwp9CnByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoCiAgICAiLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTI1MjUtMzk4NzA1NDkwICBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciIKKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVyc1tpXS5zdHlsZS5wYWRkaW5nQm90dG9tID0gIjEwMCUiOwp9PC9zY3JpcHQ+PC9kaXY+Cgo8aDEgY2xhc3M9InByb2R1Y3QtbmFtZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcmllcy1uYW1lIj5Cb29rIG9mIHRoZSBCbGFjayBFYXJ0aDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVwaXNvZGUtbmFtZSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibnVtYmVyIj4yIDo8L3NwYW4+ICAgICAgICAgICAgICAgIFN0b3JtIGFuZCBTdGVlbCAoMSBvZiAyKSAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2gxPgoKPGRpdiBjbGFzcz0icHJvZHVjdC1hdXRob3IiPgogICAgYnkgSm9uIFNwcnVuazwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1pbmktYXR0cmlidXRlcyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1yZWxlYXNlZGF0ZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+UmVsZWFzZSBEYXRlOjwvbGFiZWw+IEF1ZyAyNywgMjAxNSAgICAgICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtcnVubmluZ3RpbWUiPgogICAgICAgICAgICAgICAgPGxhYmVsPkFwcHJveGltYXRlIFJ1bm5pbmcgVGltZTo8L2xhYmVsPiA3IEhvdXJzCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtY29udGVudHJhdGluZyI+CiAgICAgICAgICAgICAgICA8bGFiZWw+Q29udGVudCBSYXRpbmc6PC9sYWJlbD4gQWdlcyAxOCsgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CgogICA8ZGl2IGNsYXNzPSJkZXNjcmlwdGlvbiI+CiAgICAgICA8ZGl2IGNsYXNzPSJzdGQiPkFuIGVtcGlyZSBhdCB3YXIuIFRocmVlIGZhdGVzIGludGVydHdpbmVkLjxiciAvPg0KPGJyIC8+DQpUaGUgTWFnaWNpYW4uIEhvcmFjZSBoYXMgZGVzdHJveWVkIHRoZSBUZW1wbGUgb2YgdGhlIFN1biwgYnV0IG5vdyBoZSBmaW5kcyBoaXMgc2xhdmUgY2hhaW5zIGhhdmUgYmVlbiByZXBsYWNlZCBieSBib25kcyBvZiBob25vciwgZHV0eSwgYW5kIGxvdmUuIENhdWdodCBiZXR3ZWVuIHR3byB3b21lbiBhbmQgdHdvIGN1bHR1cmVzLCBoZSBtdXN0IGNvbnRlbmQgd2l0aCBkZWFkbHkgZm9yY2VzIGZyb20gdGhlIHVuc2VlbiB3b3JsZC48YnIgLz4NCjxiciAvPg0KVGhlIFJlYmVsLiBKaXJvbSBoYXMgdGhyb3duIGluIGhpcyBsb3Qgd2l0aCB0aGUgc2xhdmUgdXByaXNpbmcsIGJ1dCBoaXMgcm9hZCB0byBmcmVlZG9tIGJlY29tZXMgZXZlciBtb3JlIGRhbmdlcm91cyBhcyB0aGUgcmViZWxzIGV4cGFuZCB0aGVpciBjYW1wYWlnbiBhZ2FpbnN0IHRoZSBlbXBpcmUuIEV2ZW4gd29yc2UsIGhlIGZlZWxzIGhpcyBjb25uZWN0aW9uIHdpdGggRW1hbm9uIHNsaXBwaW5nIGF3YXkgd2l0aCBldmVyeSBibG93IHRoZXkgc3RyaWtlIGluIHRoZSBuYW1lIG9mIGZyZWVkb20uPGJyIC8+DQo8YnIgLz4NClRoZSBTcHkuIEFseXJhIGhhcyBzZXZlcmVkIGhlciB0aWVzIHRvIHRoZSB1bmRlcmdyb3VuZCBuZXR3b3JrIHRoYXQgYnJvdWdodCBoZXIgdG8gQWtlc2hpYSwgYnV0IHNoZSBjb250aW51ZXMgdGhlIG1pc3Npb24gb24gaGVyIG93bi4gWWV0LCB3aXRoIEhvcmFjZeKAmXMgY29ubmVjdGlvbiB0byB0aGUgcXVlZW4gYW5kIHRoZSByZWJlbGxpb27igJlzIGVzY2FsYXRpb24gb2YgdmlvbGVuY2UsIHNoZSBmaW5kcyBoZXJzZWxmIHRyZWFkaW5nIGEga25pZmXigJlzIGVkZ2UgYmV0d2VlbiBsb3ZlIGFuZCBkdXR5LjxiciAvPg0KPGJyIC8+DQpEYXJrIGNvbnNwaXJhY2llcyBidWJibGUgdG8gdGhlIHN1cmZhY2UgYXMgd2FyIGFuZCB6ZWFsb3RyeSBzcHJlYWQgYWNyb3NzIHRoZSBlbXBpcmUuIE9sZCBhbGxpYW5jZXMgYXJlIHNoYXR0ZXJlZCwgbmV3IHZlbmRldHRhcyBhcmUgYm9ybiwgYW5kIGFsbCBwZW9wbGVz4oCUY2l0aXplbiBhbmQgc2xhdmUgYWxpa2XigJRtdXN0IGVuZHVyZSB0aGUgcmF2YWdlcyBvZiBzdG9ybSBhbmQgc3RlZWwuICAgICAgICA8L2Rpdj4KICAgPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwcm9kdWN0LWNvcHlyaWdodCI+CiAgICBDb3B5cmlnaHQgwqkgMjAxNSBKb24gU3BydW5rLiBBbGwgUmlnaHRzIFJlc2VydmVkLiBSZWNvcmRlZCB3aXRoIHBlcm1pc3Npb24gb2YgdGhlIEF1dGhvci4g4oSXIDIwMTUgVGhlIEN1dHRpbmcgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ibWVkaWEtcGxheWVyIj4KICAgICAgICA8YXVkaW8gY29udHJvbHMgcHJlbG9hZD0ibWV0YWRhdGEiIHN0eWxlPSJ3aWR0aDogMTAwJTsiIHNyYz0iaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL2dyYXBoaWNhdWRpb3NhbXBsZXMvQk9UQkUwMjAxLm1wMyIgdHlwZT0iYXVkaW8vbXBlZyI+CiAgICAgICAgPCEtLSBmYWxsYmFjayBmb3Igbm9uIHN1cHBvcnRpbmcgYnJvd3NlcnMgZ29lcyBoZXJlIC0tPgogICAgICAgIDxwPllvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IEhUTUw1LiBZb3UgY2FuIDxhIGhyZWY9Imh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9ncmFwaGljYXVkaW9zYW1wbGVzL0JPVEJFMDIwMS5tcDMiPmRvd25sb2FkIHRoZSBhdWRpbyBzYW1wbGU8L2E+LjwvcD4KICAgICAgICA8L2F1ZGlvPgogICAgPC9kaXY+CiAKCjwvZGl2Pg==
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTI1MjctNTgwNjAyNDY2Ij4KICAgIDxzcGFuIGNsYXNzPSJwcm9kdWN0LWltYWdlLXdyYXBwZXIiPgogICAgICAgIDxpbWcgY2xhc3M9InByb2R1Y3QtaW1hZ2UtcGhvdG8iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3Qtc2t1PSJCT1RCRTAyMDIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3QtbmFtZT0iUW05dmF5QnZaaUIwYUdVZ1FteGhZMnNnUldGeWRHZ2dNam9nVTNSdmNtMGdZVzVrSUZOMFpXVnNJRElnYjJZZ01nPT0iCiAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuZ3JhcGhpY2F1ZGlvLm5ldC9tZWRpYS9jYXRhbG9nL3Byb2R1Y3QvY2FjaGUvY2U2OTIzOTRiYzMxZGJlNDE3ZjlkMDRlYjY3ODAyMzgvOS83Lzk3ODE2NDg3OTI2MjUuanBnIgogICAgICAgICAgICBsb2FkaW5nPSJsYXp5IgogICAgICAgICAgICB3aWR0aD0iMjAwIgogICAgICAgICAgICBoZWlnaHQ9IjIwMCIKICAgICAgICAgICAgYWx0PSJCb29rJiN4MjA7b2YmI3gyMDt0aGUmI3gyMDtCbGFjayYjeDIwO0VhcnRoJiN4MjA7MiYjeDNBOyYjeDIwO1N0b3JtJiN4MjA7YW5kJiN4MjA7U3RlZWwmI3gyMDsyJiN4MjA7b2YmI3gyMDsyIi8+PC9zcGFuPgo8L3NwYW4+CjxzdHlsZT4ucHJvZHVjdC1pbWFnZS1jb250YWluZXItMjUyNy01ODA2MDI0NjYgewogICAgd2lkdGg6IDIwMHB4Owp9Ci5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0yNTI3LTU4MDYwMjQ2NiBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciB7CiAgICBwYWRkaW5nLWJvdHRvbTogMTAwJTsKfTwvc3R5bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0JiN4MkY7amF2YXNjcmlwdCI+cHJvZEltYWdlQ29udGFpbmVycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0yNTI3LTU4MDYwMjQ2NiIpOwpmb3IgKHZhciBpID0gMDsgaSA8IHByb2RJbWFnZUNvbnRhaW5lcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNbaV0uc3R5bGUud2lkdGggPSAiMjAwcHgiOwp9CnByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoCiAgICAiLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTI1MjctNTgwNjAyNDY2ICBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciIKKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVyc1tpXS5zdHlsZS5wYWRkaW5nQm90dG9tID0gIjEwMCUiOwp9PC9zY3JpcHQ+PC9kaXY+Cgo8aDEgY2xhc3M9InByb2R1Y3QtbmFtZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcmllcy1uYW1lIj5Cb29rIG9mIHRoZSBCbGFjayBFYXJ0aDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVwaXNvZGUtbmFtZSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibnVtYmVyIj4yIDo8L3NwYW4+ICAgICAgICAgICAgICAgIFN0b3JtIGFuZCBTdGVlbCAoMiBvZiAyKSAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2gxPgoKPGRpdiBjbGFzcz0icHJvZHVjdC1hdXRob3IiPgogICAgYnkgSm9uIFNwcnVuazwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1pbmktYXR0cmlidXRlcyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1yZWxlYXNlZGF0ZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+UmVsZWFzZSBEYXRlOjwvbGFiZWw+IE9jdCA1LCAyMDE1ICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1ydW5uaW5ndGltZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+QXBwcm94aW1hdGUgUnVubmluZyBUaW1lOjwvbGFiZWw+IDYgSG91cnMKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1jb250ZW50cmF0aW5nIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5Db250ZW50IFJhdGluZzo8L2xhYmVsPiBBZ2VzIDE4KyAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgIDxkaXYgY2xhc3M9ImRlc2NyaXB0aW9uIj4KICAgICAgIDxkaXYgY2xhc3M9InN0ZCI+QW4gZW1waXJlIGF0IHdhci4gVGhyZWUgZmF0ZXMgaW50ZXJ0d2luZWQuPGJyIC8+DQo8YnIgLz4NClRoZSBNYWdpY2lhbi4gSG9yYWNlIGhhcyBkZXN0cm95ZWQgdGhlIFRlbXBsZSBvZiB0aGUgU3VuLCBidXQgbm93IGhlIGZpbmRzIGhpcyBzbGF2ZSBjaGFpbnMgaGF2ZSBiZWVuIHJlcGxhY2VkIGJ5IGJvbmRzIG9mIGhvbm9yLCBkdXR5LCBhbmQgbG92ZS4gQ2F1Z2h0IGJldHdlZW4gdHdvIHdvbWVuIGFuZCB0d28gY3VsdHVyZXMsIGhlIG11c3QgY29udGVuZCB3aXRoIGRlYWRseSBmb3JjZXMgZnJvbSB0aGUgdW5zZWVuIHdvcmxkLjxiciAvPg0KPGJyIC8+DQpUaGUgUmViZWwuIEppcm9tIGhhcyB0aHJvd24gaW4gaGlzIGxvdCB3aXRoIHRoZSBzbGF2ZSB1cHJpc2luZywgYnV0IGhpcyByb2FkIHRvIGZyZWVkb20gYmVjb21lcyBldmVyIG1vcmUgZGFuZ2Vyb3VzIGFzIHRoZSByZWJlbHMgZXhwYW5kIHRoZWlyIGNhbXBhaWduIGFnYWluc3QgdGhlIGVtcGlyZS4gRXZlbiB3b3JzZSwgaGUgZmVlbHMgaGlzIGNvbm5lY3Rpb24gd2l0aCBFbWFub24gc2xpcHBpbmcgYXdheSB3aXRoIGV2ZXJ5IGJsb3cgdGhleSBzdHJpa2UgaW4gdGhlIG5hbWUgb2YgZnJlZWRvbS48YnIgLz4NCjxiciAvPg0KVGhlIFNweS4gQWx5cmEgaGFzIHNldmVyZWQgaGVyIHRpZXMgdG8gdGhlIHVuZGVyZ3JvdW5kIG5ldHdvcmsgdGhhdCBicm91Z2h0IGhlciB0byBBa2VzaGlhLCBidXQgc2hlIGNvbnRpbnVlcyB0aGUgbWlzc2lvbiBvbiBoZXIgb3duLiBZZXQsIHdpdGggSG9yYWNl4oCZcyBjb25uZWN0aW9uIHRvIHRoZSBxdWVlbiBhbmQgdGhlIHJlYmVsbGlvbuKAmXMgZXNjYWxhdGlvbiBvZiB2aW9sZW5jZSwgc2hlIGZpbmRzIGhlcnNlbGYgdHJlYWRpbmcgYSBrbmlmZeKAmXMgZWRnZSBiZXR3ZWVuIGxvdmUgYW5kIGR1dHkuPGJyIC8+DQo8YnIgLz4NCkRhcmsgY29uc3BpcmFjaWVzIGJ1YmJsZSB0byB0aGUgc3VyZmFjZSBhcyB3YXIgYW5kIHplYWxvdHJ5IHNwcmVhZCBhY3Jvc3MgdGhlIGVtcGlyZS4gT2xkIGFsbGlhbmNlcyBhcmUgc2hhdHRlcmVkLCBuZXcgdmVuZGV0dGFzIGFyZSBib3JuLCBhbmQgYWxsIHBlb3BsZXPigJRjaXRpemVuIGFuZCBzbGF2ZSBhbGlrZeKAlG11c3QgZW5kdXJlIHRoZSByYXZhZ2VzIG9mIHN0b3JtIGFuZCBzdGVlbC4gICAgICAgIDwvZGl2PgogICA8L2Rpdj4KCjxkaXYgY2xhc3M9InByb2R1Y3QtY29weXJpZ2h0Ij4KICAgIENvcHlyaWdodCDCqSAyMDE1IEpvbiBTcHJ1bmsuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuIFJlY29yZGVkIHdpdGggcGVybWlzc2lvbiBvZiB0aGUgQXV0aG9yLiDihJcgMjAxNSBUaGUgQ3V0dGluZyBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJtZWRpYS1wbGF5ZXIiPgogICAgICAgIDxhdWRpbyBjb250cm9scyBwcmVsb2FkPSJtZXRhZGF0YSIgc3R5bGU9IndpZHRoOiAxMDAlOyIgc3JjPSJodHRwczovL3MzLmFtYXpvbmF3cy5jb20vZ3JhcGhpY2F1ZGlvc2FtcGxlcy9CT1RCRTAyMDIubXAzIiB0eXBlPSJhdWRpby9tcGVnIj4KICAgICAgICA8IS0tIGZhbGxiYWNrIGZvciBub24gc3VwcG9ydGluZyBicm93c2VycyBnb2VzIGhlcmUgLS0+CiAgICAgICAgPHA+WW91ciBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgSFRNTDUuIFlvdSBjYW4gPGEgaHJlZj0iaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL2dyYXBoaWNhdWRpb3NhbXBsZXMvQk9UQkUwMjAyLm1wMyI+ZG93bmxvYWQgdGhlIGF1ZGlvIHNhbXBsZTwvYT4uPC9wPgogICAgICAgIDwvYXVkaW8+CiAgICA8L2Rpdj4KIAoKPC9kaXY+
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTUxMDItODEwMDAxNjM2Ij4KICAgIDxzcGFuIGNsYXNzPSJwcm9kdWN0LWltYWdlLXdyYXBwZXIiPgogICAgICAgIDxpbWcgY2xhc3M9InByb2R1Y3QtaW1hZ2UtcGhvdG8iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3Qtc2t1PSJCT1RCRTAzMDEiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3QtbmFtZT0iUW05dmF5QnZaaUIwYUdVZ1FteGhZMnNnUldGeWRHZ2dNem9nUW14aFpHVWdZVzVrSUVKdmJtVWdNU0J2WmlBeSIKICAgICAgICAgICAgICAgICAgICAgICAgc3JjPSJodHRwczovL3d3dy5ncmFwaGljYXVkaW8ubmV0L21lZGlhL2NhdGFsb2cvcHJvZHVjdC9jYWNoZS9jZTY5MjM5NGJjMzFkYmU0MTdmOWQwNGViNjc4MDIzOC85LzcvOTc4MTY0ODgxMDQyOF8xLmpwZyIKICAgICAgICAgICAgbG9hZGluZz0ibGF6eSIKICAgICAgICAgICAgd2lkdGg9IjIwMCIKICAgICAgICAgICAgaGVpZ2h0PSIyMDAiCiAgICAgICAgICAgIGFsdD0iQm9vayYjeDIwO29mJiN4MjA7dGhlJiN4MjA7QmxhY2smI3gyMDtFYXJ0aCYjeDIwOzMmI3gzQTsmI3gyMDtCbGFkZSYjeDIwO2FuZCYjeDIwO0JvbmUmI3gyMDsxJiN4MjA7b2YmI3gyMDsyIi8+PC9zcGFuPgo8L3NwYW4+CjxzdHlsZT4ucHJvZHVjdC1pbWFnZS1jb250YWluZXItNTEwMi04MTAwMDE2MzYgewogICAgd2lkdGg6IDIwMHB4Owp9Ci5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci01MTAyLTgxMDAwMTYzNiBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciB7CiAgICBwYWRkaW5nLWJvdHRvbTogMTAwJTsKfTwvc3R5bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0JiN4MkY7amF2YXNjcmlwdCI+cHJvZEltYWdlQ29udGFpbmVycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci01MTAyLTgxMDAwMTYzNiIpOwpmb3IgKHZhciBpID0gMDsgaSA8IHByb2RJbWFnZUNvbnRhaW5lcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNbaV0uc3R5bGUud2lkdGggPSAiMjAwcHgiOwp9CnByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoCiAgICAiLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTUxMDItODEwMDAxNjM2ICBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciIKKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVyc1tpXS5zdHlsZS5wYWRkaW5nQm90dG9tID0gIjEwMCUiOwp9PC9zY3JpcHQ+PC9kaXY+Cgo8aDEgY2xhc3M9InByb2R1Y3QtbmFtZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcmllcy1uYW1lIj5Cb29rIG9mIHRoZSBCbGFjayBFYXJ0aDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVwaXNvZGUtbmFtZSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibnVtYmVyIj4zIDo8L3NwYW4+ICAgICAgICAgICAgICAgIEJsYWRlIGFuZCBCb25lICgxIG9mIDIpICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvaDE+Cgo8ZGl2IGNsYXNzPSJwcm9kdWN0LWF1dGhvciI+CiAgICBieSBKb24gU3BydW5rPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ibWluaS1hdHRyaWJ1dGVzIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LXJlbGVhc2VkYXRlIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5SZWxlYXNlIERhdGU6PC9sYWJlbD4gRmViIDI0LCAyMDIwICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1ydW5uaW5ndGltZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+QXBwcm94aW1hdGUgUnVubmluZyBUaW1lOjwvbGFiZWw+IDQuNSBIb3VycwogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWNvbnRlbnRyYXRpbmciPgogICAgICAgICAgICAgICAgPGxhYmVsPkNvbnRlbnQgUmF0aW5nOjwvbGFiZWw+IEFnZXMgMTgrICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKICAgPGRpdiBjbGFzcz0iZGVzY3JpcHRpb24iPgogICAgICAgPGRpdiBjbGFzcz0ic3RkIj5JbiBhIHdvcmxkIG9mIHNvcmNlcnkgYW5kIHNhbmQsIGEgc2xhdmUgcmViZWxsaW9uIGlzIG91dCBvZiBjb250cm9sIGFuZCBhbiBhcm15IG9mIHVuZGVhZCBpcyBhcHByb2FjaGluZy4gPGJyIC8+DQo8YnIgLz4NCkRvZXMgSG9yYWNlIGhhdmUgdGhlIHBvd2VyIGFuZCBzdHJlbmd0aCB0byBzYXZlIHdoYXQgaGUgZm91Z2h0IHNvIGhhcmQgdG8gd2luPyBJbiBhIHNldHRpbmcgcmVtaW5pc2NlbnQgb2YgYW5jaWVudCBFZ3lwdCBhbmQgQmFieWxvbiwgd2hlcmUgR29kLUtpbmdzIGFuZCBHb2QtUXVlZW5zIGhvbGQgdGhlIHBvd2VyIG9mIGxpZmUgYW5kIGRlYXRoIGluIHRoZWlyIGhhbmRzLCBIb3JhY2UsIHRoZSBvbmV0aW1lIHNsYXZlIHdobyBiZWNhbWUgYSBwb3dlcmZ1bCBtYWdpY2lhbiwgaGFzIHR1cm5lZCB0aGUgdGFibGVzIG9uIGhpcyBmb3JtZXIgbWFzdGVycy4gPGJyIC8+DQo8YnIgLz4NCkZvbGxvdyBIb3JhY2UsIEFseXJhLCBhbmQgSmlyb20gYXMgdGhleSBuYXZpZ2F0ZSB0aGUgaHVyZGxlcyBvZiBtYW5hZ2luZyB0aGUgc2xhdmUgcmViZWxsaW9uIHVuZGVyIHRoZSBBa2VzaGlhbiBFbXBpcmUncyBub3NlLiBCdXQgZXZpbCBpcyBub3QgY29udGVudCB0byBzaXQgYmFjayBhbmQgbGV0IHRoZW0gZ2F0aGVyIHRoZWlyIHN0cmVuZ3RoLiBBIG5ldyB0aHJlYXQgaXMgY29taW5nIGluIHRoZSBmb3JtIG9mIGFuIHVuc3RvcHBhYmxlIGFybXkgb2YgdGhlIHdhbGtpbmcgZGVhZC4gVG8gZmFjZSB0aGlzIGVuZW15LCBvdXIgaGVyb2VzIHdpbGwgaGF2ZSB0byBkaWcgZGVlcGVyIGFuZCBmaW5kIGEgc3RyZW5ndGggdGhleSBkaWRuJ3Qga25vdyB0aGV5IHBvc3Nlc3NlZC4gICAgICAgIDwvZGl2PgogICA8L2Rpdj4KCjxkaXYgY2xhc3M9InByb2R1Y3QtY29weXJpZ2h0Ij4KICAgIENvcHlyaWdodCDCqSAyMDE4IEpvbiBTcHJ1bmsuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuIFJlY29yZGVkIHdpdGggcGVybWlzc2lvbiBvZiB0aGUgQXV0aG9yLiDihJcgMjAyMCBUaGUgQ3V0dGluZyBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJtZWRpYS1wbGF5ZXIiPgogICAgICAgIDxhdWRpbyBjb250cm9scyBwcmVsb2FkPSJtZXRhZGF0YSIgc3R5bGU9IndpZHRoOiAxMDAlOyIgc3JjPSJodHRwczovL3MzLmFtYXpvbmF3cy5jb20vZ3JhcGhpY2F1ZGlvc2FtcGxlcy9CT1RCRTAzMDEubXAzIiB0eXBlPSJhdWRpby9tcGVnIj4KICAgICAgICA8IS0tIGZhbGxiYWNrIGZvciBub24gc3VwcG9ydGluZyBicm93c2VycyBnb2VzIGhlcmUgLS0+CiAgICAgICAgPHA+WW91ciBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgSFRNTDUuIFlvdSBjYW4gPGEgaHJlZj0iaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL2dyYXBoaWNhdWRpb3NhbXBsZXMvQk9UQkUwMzAxLm1wMyI+ZG93bmxvYWQgdGhlIGF1ZGlvIHNhbXBsZTwvYT4uPC9wPgogICAgICAgIDwvYXVkaW8+CiAgICA8L2Rpdj4KIAoKPC9kaXY+
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTUxMjUtMTY4OTc3NTAwMSI+CiAgICA8c3BhbiBjbGFzcz0icHJvZHVjdC1pbWFnZS13cmFwcGVyIj4KICAgICAgICA8aW1nIGNsYXNzPSJwcm9kdWN0LWltYWdlLXBob3RvIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1wcm9kdWN0LXNrdT0iQk9UQkUwMzAyIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1wcm9kdWN0LW5hbWU9IlFtOXZheUJ2WmlCMGFHVWdRbXhoWTJzZ1JXRnlkR2dnTXpvZ1FteGhaR1VnWVc1a0lFSnZibVVnTWlCdlppQXkiCiAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuZ3JhcGhpY2F1ZGlvLm5ldC9tZWRpYS9jYXRhbG9nL3Byb2R1Y3QvY2FjaGUvY2U2OTIzOTRiYzMxZGJlNDE3ZjlkMDRlYjY3ODAyMzgvOS83Lzk3ODE2NDg4MTA1MDNfMS5qcGciCiAgICAgICAgICAgIGxvYWRpbmc9ImxhenkiCiAgICAgICAgICAgIHdpZHRoPSIyMDAiCiAgICAgICAgICAgIGhlaWdodD0iMjAwIgogICAgICAgICAgICBhbHQ9IkJvb2smI3gyMDtvZiYjeDIwO3RoZSYjeDIwO0JsYWNrJiN4MjA7RWFydGgmI3gyMDszJiN4M0E7JiN4MjA7QmxhZGUmI3gyMDthbmQmI3gyMDtCb25lJiN4MjA7MiYjeDIwO29mJiN4MjA7MiIvPjwvc3Bhbj4KPC9zcGFuPgo8c3R5bGU+LnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTUxMjUtMTY4OTc3NTAwMSB7CiAgICB3aWR0aDogMjAwcHg7Cn0KLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTUxMjUtMTY4OTc3NTAwMSBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciB7CiAgICBwYWRkaW5nLWJvdHRvbTogMTAwJTsKfTwvc3R5bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0JiN4MkY7amF2YXNjcmlwdCI+cHJvZEltYWdlQ29udGFpbmVycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci01MTI1LTE2ODk3NzUwMDEiKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzLmxlbmd0aDsgaSsrKSB7CiAgICBwcm9kSW1hZ2VDb250YWluZXJzW2ldLnN0eWxlLndpZHRoID0gIjIwMHB4IjsKfQpwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKAogICAgIi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci01MTI1LTE2ODk3NzUwMDEgIHNwYW4ucHJvZHVjdC1pbWFnZS13cmFwcGVyIgopOwpmb3IgKHZhciBpID0gMDsgaSA8IHByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVycy5sZW5ndGg7IGkrKykgewogICAgcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzW2ldLnN0eWxlLnBhZGRpbmdCb3R0b20gPSAiMTAwJSI7Cn08L3NjcmlwdD48L2Rpdj4KCjxoMSBjbGFzcz0icHJvZHVjdC1uYW1lIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VyaWVzLW5hbWUiPkJvb2sgb2YgdGhlIEJsYWNrIEVhcnRoPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXBpc29kZS1uYW1lIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJudW1iZXIiPjMgOjwvc3Bhbj4gICAgICAgICAgICAgICAgQmxhZGUgYW5kIEJvbmUgKDIgb2YgMikgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9oMT4KCjxkaXYgY2xhc3M9InByb2R1Y3QtYXV0aG9yIj4KICAgIGJ5IEpvbiBTcHJ1bms8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJtaW5pLWF0dHJpYnV0ZXMiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtcmVsZWFzZWRhdGUiPgogICAgICAgICAgICAgICAgPGxhYmVsPlJlbGVhc2UgRGF0ZTo8L2xhYmVsPiBNYXIgMTEsIDIwMjAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LXJ1bm5pbmd0aW1lIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5BcHByb3hpbWF0ZSBSdW5uaW5nIFRpbWU6PC9sYWJlbD4gNSBIb3VycwogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWNvbnRlbnRyYXRpbmciPgogICAgICAgICAgICAgICAgPGxhYmVsPkNvbnRlbnQgUmF0aW5nOjwvbGFiZWw+IEFnZXMgMTgrICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKICAgPGRpdiBjbGFzcz0iZGVzY3JpcHRpb24iPgogICAgICAgPGRpdiBjbGFzcz0ic3RkIj5JbiBhIHdvcmxkIG9mIHNvcmNlcnkgYW5kIHNhbmQsIGEgc2xhdmUgcmViZWxsaW9uIGlzIG91dCBvZiBjb250cm9sIGFuZCBhbiBhcm15IG9mIHVuZGVhZCBpcyBhcHByb2FjaGluZy4gPGJyIC8+DQo8YnIgLz4NCkRvZXMgSG9yYWNlIGhhdmUgdGhlIHBvd2VyIGFuZCBzdHJlbmd0aCB0byBzYXZlIHdoYXQgaGUgZm91Z2h0IHNvIGhhcmQgdG8gd2luPyBJbiBhIHNldHRpbmcgcmVtaW5pc2NlbnQgb2YgYW5jaWVudCBFZ3lwdCBhbmQgQmFieWxvbiwgd2hlcmUgR29kLUtpbmdzIGFuZCBHb2QtUXVlZW5zIGhvbGQgdGhlIHBvd2VyIG9mIGxpZmUgYW5kIGRlYXRoIGluIHRoZWlyIGhhbmRzLCBIb3JhY2UsIHRoZSBvbmV0aW1lIHNsYXZlIHdobyBiZWNhbWUgYSBwb3dlcmZ1bCBtYWdpY2lhbiwgaGFzIHR1cm5lZCB0aGUgdGFibGVzIG9uIGhpcyBmb3JtZXIgbWFzdGVycy4gPGJyIC8+DQo8YnIgLz4NCkZvbGxvdyBIb3JhY2UsIEFseXJhLCBhbmQgSmlyb20gYXMgdGhleSBuYXZpZ2F0ZSB0aGUgaHVyZGxlcyBvZiBtYW5hZ2luZyB0aGUgc2xhdmUgcmViZWxsaW9uIHVuZGVyIHRoZSBBa2VzaGlhbiBFbXBpcmUncyBub3NlLiBCdXQgZXZpbCBpcyBub3QgY29udGVudCB0byBzaXQgYmFjayBhbmQgbGV0IHRoZW0gZ2F0aGVyIHRoZWlyIHN0cmVuZ3RoLiBBIG5ldyB0aHJlYXQgaXMgY29taW5nIGluIHRoZSBmb3JtIG9mIGFuIHVuc3RvcHBhYmxlIGFybXkgb2YgdGhlIHdhbGtpbmcgZGVhZC4gVG8gZmFjZSB0aGlzIGVuZW15LCBvdXIgaGVyb2VzIHdpbGwgaGF2ZSB0byBkaWcgZGVlcGVyIGFuZCBmaW5kIGEgc3RyZW5ndGggdGhleSBkaWRuJ3Qga25vdyB0aGV5IHBvc3Nlc3NlZC4gICAgICAgIDwvZGl2PgogICA8L2Rpdj4KCjxkaXYgY2xhc3M9InByb2R1Y3QtY29weXJpZ2h0Ij4KICAgIENvcHlyaWdodCDCqSAyMDE4IEpvbiBTcHJ1bmsuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuIFJlY29yZGVkIHdpdGggcGVybWlzc2lvbiBvZiB0aGUgQXV0aG9yLiDihJcgMjAyMCBHcmFwaGljIEF1ZGlvLCBMTEMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ibWVkaWEtcGxheWVyIj4KICAgICAgICA8YXVkaW8gY29udHJvbHMgcHJlbG9hZD0ibWV0YWRhdGEiIHN0eWxlPSJ3aWR0aDogMTAwJTsiIHNyYz0iaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL2dyYXBoaWNhdWRpb3NhbXBsZXMvQk9UQkUwMzAyLm1wMyIgdHlwZT0iYXVkaW8vbXBlZyI+CiAgICAgICAgPCEtLSBmYWxsYmFjayBmb3Igbm9uIHN1cHBvcnRpbmcgYnJvd3NlcnMgZ29lcyBoZXJlIC0tPgogICAgICAgIDxwPllvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IEhUTUw1LiBZb3UgY2FuIDxhIGhyZWY9Imh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9ncmFwaGljYXVkaW9zYW1wbGVzL0JPVEJFMDMwMi5tcDMiPmRvd25sb2FkIHRoZSBhdWRpbyBzYW1wbGU8L2E+LjwvcD4KICAgICAgICA8L2F1ZGlvPgogICAgPC9kaXY+CiAKCjwvZGl2Pg==
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTUyNTYtMjM4OTA5MDQwIj4KICAgIDxzcGFuIGNsYXNzPSJwcm9kdWN0LWltYWdlLXdyYXBwZXIiPgogICAgICAgIDxpbWcgY2xhc3M9InByb2R1Y3QtaW1hZ2UtcGhvdG8iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3Qtc2t1PSJCT1RCRTA0MDEiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3QtbmFtZT0iUW05dmF5QnZaaUIwYUdVZ1FteGhZMnNnUldGeWRHZ2dORG9nVTNWdUlHRnVaQ0JUWlhKd1pXNTBJREVnYjJZZ01nPT0iCiAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuZ3JhcGhpY2F1ZGlvLm5ldC9tZWRpYS9jYXRhbG9nL3Byb2R1Y3QvY2FjaGUvY2U2OTIzOTRiYzMxZGJlNDE3ZjlkMDRlYjY3ODAyMzgvOS83Lzk3ODE2NDg4MTU5NDIuanBnIgogICAgICAgICAgICBsb2FkaW5nPSJsYXp5IgogICAgICAgICAgICB3aWR0aD0iMjAwIgogICAgICAgICAgICBoZWlnaHQ9IjIwMCIKICAgICAgICAgICAgYWx0PSJCb29rJiN4MjA7b2YmI3gyMDt0aGUmI3gyMDtCbGFjayYjeDIwO0VhcnRoJiN4MjA7NCYjeDNBOyYjeDIwO1N1biYjeDIwO2FuZCYjeDIwO1NlcnBlbnQmI3gyMDsxJiN4MjA7b2YmI3gyMDsyIi8+PC9zcGFuPgo8L3NwYW4+CjxzdHlsZT4ucHJvZHVjdC1pbWFnZS1jb250YWluZXItNTI1Ni0yMzg5MDkwNDAgewogICAgd2lkdGg6IDIwMHB4Owp9Ci5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci01MjU2LTIzODkwOTA0MCBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciB7CiAgICBwYWRkaW5nLWJvdHRvbTogMTAwJTsKfTwvc3R5bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0JiN4MkY7amF2YXNjcmlwdCI+cHJvZEltYWdlQ29udGFpbmVycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci01MjU2LTIzODkwOTA0MCIpOwpmb3IgKHZhciBpID0gMDsgaSA8IHByb2RJbWFnZUNvbnRhaW5lcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNbaV0uc3R5bGUud2lkdGggPSAiMjAwcHgiOwp9CnByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoCiAgICAiLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTUyNTYtMjM4OTA5MDQwICBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciIKKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVyc1tpXS5zdHlsZS5wYWRkaW5nQm90dG9tID0gIjEwMCUiOwp9PC9zY3JpcHQ+PC9kaXY+Cgo8aDEgY2xhc3M9InByb2R1Y3QtbmFtZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcmllcy1uYW1lIj5Cb29rIG9mIHRoZSBCbGFjayBFYXJ0aDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVwaXNvZGUtbmFtZSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibnVtYmVyIj40IDo8L3NwYW4+ICAgICAgICAgICAgICAgIFN1biBhbmQgU2VycGVudCAoMSBvZiAyKSAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2gxPgoKPGRpdiBjbGFzcz0icHJvZHVjdC1hdXRob3IiPgogICAgYnkgSm9uIFNwcnVuazwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1pbmktYXR0cmlidXRlcyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1yZWxlYXNlZGF0ZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+UmVsZWFzZSBEYXRlOjwvbGFiZWw+IFNlcCAyMSwgMjAyMCAgICAgICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtcnVubmluZ3RpbWUiPgogICAgICAgICAgICAgICAgPGxhYmVsPkFwcHJveGltYXRlIFJ1bm5pbmcgVGltZTo8L2xhYmVsPiA1IEhvdXJzCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtY29udGVudHJhdGluZyI+CiAgICAgICAgICAgICAgICA8bGFiZWw+Q29udGVudCBSYXRpbmc6PC9sYWJlbD4gQWdlcyAxOCsgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CgogICA8ZGl2IGNsYXNzPSJkZXNjcmlwdGlvbiI+CiAgICAgICA8ZGl2IGNsYXNzPSJzdGQiPlRoZSB3YXIgY29udGludWVzLCBhbmQgdGhlIHVuZGVhZCByYXZhZ2UgdGhlIGxhbmQuIEppcm9tLCBIb3JhY2UsIGFuZCBFbWFub24gYmVnaW4gdG8gaG9wZSB0aGV5IG1pZ2h0IGZyZWUgdGhlIGVtcGlyZS4gQnV0IGNhbiB0aGV5IG1hbmFnZSB0byBkbyBzbyBiZWZvcmUgdGhlIGRhcmsga2luZyBjb25xdWVycyB0aGUgd29ybGQ/PGJyIC8+DQo8YnIgLz4NCkhvcmFjZSBoYXMgY29tZSBhIGxvbmcgd2F5IGZyb20gaGlzIGRheXMgb2Ygc2xhdmVyeS4gTm93IGhlLCBKaXJvbSwgYW5kIHRoZWlyIGNvbXBhbmlvbnMgdGhpbmsgdGhleSBqdXN0IG1pZ2h0IGdsaW1wc2UgdmljdG9yeSBhaGVhZCwgYW5kIHRoZSB0cml1bXBoYW50IGVuZCB0byB3aGF0IGJlZ2FuIGFzIGEgbWVyZSBzbGF2ZSByZWJlbGxpb24uIEJ1dCBmaXJzdCBIb3JhY2UgbXVzdCByZWNvdmVyIGZyb20gdGhlIGxvc3Mgb2YgaGlzIGJlbG92ZWQgQWx5cmEuIEFuZCBKaXJvbSBmaW5kcyBoaW1zZWxmIGFza2luZyBpZiBldmVuIHZpY3Rvcnkgd2lsbCBiZSB3b3J0aCB0aGUgY29zdC0taG93IGNhbiBoZSBiZSBzdXJlIGhlIGFuZCB0aGUgb3RoZXIgd2lubmVycyBvZiB0aGlzIHdhciB3aWxsIHJ1bGUgbW9yZSBqdXN0bHkgdGhhbiB0aGUgQWtlc2hpYW5zIGRpZD8gTWVhbndoaWxlLCBhIG15c3RlcmlvdXMgbWFzcyBtdXJkZXItc3VpY2lkZSBpbiBhIHRlbXBsZSBpbiBUaHV1bSBoaW50cyB0aGF0IHRoZXkgaGF2ZSBtb3JlIGZvZXMgdGhhbiB0aGV5IGtuZXcgb2YuIEFuZCBhcyB0aGV5IGFkdmFuY2UgdXBvbiB0aGUgY2FwaXRhbCwgdGhleSBmaW5kIHN0cmFuZ2Ugb2JzdGFjbGVzIGJhcnJpbmcgdGhlaXIgd2F5LiBPYnN0YWNsZXMgdGhhdCBzdWdnZXN0IHRoZSBiYXJyaWVycyBiZXR3ZWVuIHdvcmxkcyBhcmUgZ3Jvd2luZyBkYW5nZXJvdXNseSB0aGlu4oCmICAgICAgICA8L2Rpdj4KICAgPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwcm9kdWN0LWNvcHlyaWdodCI+CiAgICDCqSAyMDE5IEpvbiBTcHJ1bmsuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuIFJlY29yZGVkIHdpdGggcGVybWlzc2lvbiBvZiB0aGUgQXV0aG9yLiDihJcgMjAyMCBHcmFwaGljIEF1ZGlvLCBMTEMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ibWVkaWEtcGxheWVyIj4KICAgICAgICA8YXVkaW8gY29udHJvbHMgcHJlbG9hZD0ibWV0YWRhdGEiIHN0eWxlPSJ3aWR0aDogMTAwJTsiIHNyYz0iaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL2dyYXBoaWNhdWRpb3NhbXBsZXMvQk9UQkUwNDAxLm1wMyIgdHlwZT0iYXVkaW8vbXBlZyI+CiAgICAgICAgPCEtLSBmYWxsYmFjayBmb3Igbm9uIHN1cHBvcnRpbmcgYnJvd3NlcnMgZ29lcyBoZXJlIC0tPgogICAgICAgIDxwPllvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IEhUTUw1LiBZb3UgY2FuIDxhIGhyZWY9Imh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9ncmFwaGljYXVkaW9zYW1wbGVzL0JPVEJFMDQwMS5tcDMiPmRvd25sb2FkIHRoZSBhdWRpbyBzYW1wbGU8L2E+LjwvcD4KICAgICAgICA8L2F1ZGlvPgogICAgPC9kaXY+CiAKCjwvZGl2Pg==
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTUzMDgtODY0Mjc5NDU0Ij4KICAgIDxzcGFuIGNsYXNzPSJwcm9kdWN0LWltYWdlLXdyYXBwZXIiPgogICAgICAgIDxpbWcgY2xhc3M9InByb2R1Y3QtaW1hZ2UtcGhvdG8iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3Qtc2t1PSJCT1RCRTA0MDIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3QtbmFtZT0iUW05dmF5QnZaaUIwYUdVZ1FteGhZMnNnUldGeWRHZ2dORG9nVTNWdUlHRnVaQ0JUWlhKd1pXNTBJRElnYjJZZ01nPT0iCiAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuZ3JhcGhpY2F1ZGlvLm5ldC9tZWRpYS9jYXRhbG9nL3Byb2R1Y3QvY2FjaGUvY2U2OTIzOTRiYzMxZGJlNDE3ZjlkMDRlYjY3ODAyMzgvOS83Lzk3ODE2NDg4MTYzOTAuanBnIgogICAgICAgICAgICBsb2FkaW5nPSJsYXp5IgogICAgICAgICAgICB3aWR0aD0iMjAwIgogICAgICAgICAgICBoZWlnaHQ9IjIwMCIKICAgICAgICAgICAgYWx0PSJCb29rJiN4MjA7b2YmI3gyMDt0aGUmI3gyMDtCbGFjayYjeDIwO0VhcnRoJiN4MjA7NCYjeDNBOyYjeDIwO1N1biYjeDIwO2FuZCYjeDIwO1NlcnBlbnQmI3gyMDsyJiN4MjA7b2YmI3gyMDsyIi8+PC9zcGFuPgo8L3NwYW4+CjxzdHlsZT4ucHJvZHVjdC1pbWFnZS1jb250YWluZXItNTMwOC04NjQyNzk0NTQgewogICAgd2lkdGg6IDIwMHB4Owp9Ci5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci01MzA4LTg2NDI3OTQ1NCBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciB7CiAgICBwYWRkaW5nLWJvdHRvbTogMTAwJTsKfTwvc3R5bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0JiN4MkY7amF2YXNjcmlwdCI+cHJvZEltYWdlQ29udGFpbmVycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci01MzA4LTg2NDI3OTQ1NCIpOwpmb3IgKHZhciBpID0gMDsgaSA8IHByb2RJbWFnZUNvbnRhaW5lcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNbaV0uc3R5bGUud2lkdGggPSAiMjAwcHgiOwp9CnByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoCiAgICAiLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTUzMDgtODY0Mjc5NDU0ICBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciIKKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVyc1tpXS5zdHlsZS5wYWRkaW5nQm90dG9tID0gIjEwMCUiOwp9PC9zY3JpcHQ+PC9kaXY+Cgo8aDEgY2xhc3M9InByb2R1Y3QtbmFtZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcmllcy1uYW1lIj5Cb29rIG9mIHRoZSBCbGFjayBFYXJ0aDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVwaXNvZGUtbmFtZSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibnVtYmVyIj40IDo8L3NwYW4+ICAgICAgICAgICAgICAgIFN1biBhbmQgU2VycGVudCAoMiBvZiAyKSAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2gxPgoKPGRpdiBjbGFzcz0icHJvZHVjdC1hdXRob3IiPgogICAgYnkgSm9uIFNwcnVuazwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1pbmktYXR0cmlidXRlcyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1yZWxlYXNlZGF0ZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+UmVsZWFzZSBEYXRlOjwvbGFiZWw+IE5vdiA5LCAyMDIwICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1ydW5uaW5ndGltZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+QXBwcm94aW1hdGUgUnVubmluZyBUaW1lOjwvbGFiZWw+IDUgSG91cnMKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1jb250ZW50cmF0aW5nIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5Db250ZW50IFJhdGluZzo8L2xhYmVsPiBBZ2VzIDE4KyAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgIDxkaXYgY2xhc3M9ImRlc2NyaXB0aW9uIj4KICAgICAgIDxkaXYgY2xhc3M9InN0ZCI+VGhlIHdhciBjb250aW51ZXMsIGFuZCB0aGUgdW5kZWFkIHJhdmFnZSB0aGUgbGFuZC4gSmlyb20sIEhvcmFjZSwgYW5kIEVtYW5vbiBiZWdpbiB0byBob3BlIHRoZXkgbWlnaHQgZnJlZSB0aGUgZW1waXJlLiBCdXQgY2FuIHRoZXkgbWFuYWdlIHRvIGRvIHNvIGJlZm9yZSB0aGUgZGFyayBraW5nIGNvbnF1ZXJzIHRoZSB3b3JsZD88YnIgLz4NCjxiciAvPg0KSG9yYWNlIGhhcyBjb21lIGEgbG9uZyB3YXkgZnJvbSBoaXMgZGF5cyBvZiBzbGF2ZXJ5LiBOb3cgaGUsIEppcm9tLCBhbmQgdGhlaXIgY29tcGFuaW9ucyB0aGluayB0aGV5IGp1c3QgbWlnaHQgZ2xpbXBzZSB2aWN0b3J5IGFoZWFkLCBhbmQgdGhlIHRyaXVtcGhhbnQgZW5kIHRvIHdoYXQgYmVnYW4gYXMgYSBtZXJlIHNsYXZlIHJlYmVsbGlvbi4gQnV0IGZpcnN0IEhvcmFjZSBtdXN0IHJlY292ZXIgZnJvbSB0aGUgbG9zcyBvZiBoaXMgYmVsb3ZlZCBBbHlyYS4gQW5kIEppcm9tIGZpbmRzIGhpbXNlbGYgYXNraW5nIGlmIGV2ZW4gdmljdG9yeSB3aWxsIGJlIHdvcnRoIHRoZSBjb3N0LS1ob3cgY2FuIGhlIGJlIHN1cmUgaGUgYW5kIHRoZSBvdGhlciB3aW5uZXJzIG9mIHRoaXMgd2FyIHdpbGwgcnVsZSBtb3JlIGp1c3RseSB0aGFuIHRoZSBBa2VzaGlhbnMgZGlkPyBNZWFud2hpbGUsIGEgbXlzdGVyaW91cyBtYXNzIG11cmRlci1zdWljaWRlIGluIGEgdGVtcGxlIGluIFRodXVtIGhpbnRzIHRoYXQgdGhleSBoYXZlIG1vcmUgZm9lcyB0aGFuIHRoZXkga25ldyBvZi4gQW5kIGFzIHRoZXkgYWR2YW5jZSB1cG9uIHRoZSBjYXBpdGFsLCB0aGV5IGZpbmQgc3RyYW5nZSBvYnN0YWNsZXMgYmFycmluZyB0aGVpciB3YXkuIE9ic3RhY2xlcyB0aGF0IHN1Z2dlc3QgdGhlIGJhcnJpZXJzIGJldHdlZW4gd29ybGRzIGFyZSBncm93aW5nIGRhbmdlcm91c2x5IHRoaW7igKYgICAgICAgIDwvZGl2PgogICA8L2Rpdj4KCjxkaXYgY2xhc3M9InByb2R1Y3QtY29weXJpZ2h0Ij4KICAgIMKpIDIwMTkgSm9uIFNwcnVuay4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gUmVjb3JkZWQgd2l0aCBwZXJtaXNzaW9uIG9mIHRoZSBBdXRob3IuIOKElyAyMDIwIEdyYXBoaWMgQXVkaW8sIExMQy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJtZWRpYS1wbGF5ZXIiPgogICAgICAgIDxhdWRpbyBjb250cm9scyBwcmVsb2FkPSJtZXRhZGF0YSIgc3R5bGU9IndpZHRoOiAxMDAlOyIgc3JjPSJodHRwczovL3MzLmFtYXpvbmF3cy5jb20vZ3JhcGhpY2F1ZGlvc2FtcGxlcy9CT1RCRTA0MDIubXAzIiB0eXBlPSJhdWRpby9tcGVnIj4KICAgICAgICA8IS0tIGZhbGxiYWNrIGZvciBub24gc3VwcG9ydGluZyBicm93c2VycyBnb2VzIGhlcmUgLS0+CiAgICAgICAgPHA+WW91ciBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgSFRNTDUuIFlvdSBjYW4gPGEgaHJlZj0iaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL2dyYXBoaWNhdWRpb3NhbXBsZXMvQk9UQkUwNDAyLm1wMyI+ZG93bmxvYWQgdGhlIGF1ZGlvIHNhbXBsZTwvYT4uPC9wPgogICAgICAgIDwvYXVkaW8+CiAgICA8L2Rpdj4KIAoKPC9kaXY+