Mw0NCgxae2N8DAAA4wAAAAAAAAAAAAAAAA4AAABAAAAAc14BAABkAFoAZAFkAmcCWgFkA2QEbAJtA1oDAQBkA2QFbARtBVoGAQBkA2QGbARtB1oHAQBkA2QFbAhtBVoJAQBkA2QHbAptC1oLbQxaDG0NWg1tDloObQ9aDwEAZANkCGwQbRFaEQEAZQ9lB2oFZQdqCWYCGQBaBWUOZAmDAVoSZQ5kCoMBWhN5DGQDZAtsFFoEVwBuGAQAZRVrCnKoAQABAAEAZAxaFlkAbgZYAGQNWhZkDloXZQNlBWUNZQUZAGQPnAJkEGQRhASDAVoYZBplC2USZwFlE2YCGQBlDGUSGQBlGWUNZRMZAGQTnARkFGQVhAVaGmQbZQtlEmcBZRNmAhkAZQxlEhkAZRllDWUTGQBkE5wEZBZkF4QFWhtkHGULZRJnAWUTZgIZAGUMZRIZAGUZZQ1lExkAZBOcBGQYZBmEBVocZRaQAXJSZRoEAFodWh5uCGUbWh1lHFoeZAtTACkdYWICAABDb252ZW5pZW50IHBhcmFsbGVsaXphdGlvbiBvZiBoaWdoZXIgb3JkZXIgZnVuY3Rpb25zLgoKVGhpcyBtb2R1bGUgcHJvdmlkZXMgdHdvIGhlbHBlciBmdW5jdGlvbnMsIHdpdGggYXBwcm9wcmlhdGUgZmFsbGJhY2tzIG9uClB5dGhvbiAyIGFuZCBvbiBzeXN0ZW1zIGxhY2tpbmcgc3VwcG9ydCBmb3Igc3luY2hyb25pemF0aW9uIG1lY2hhbmlzbXM6CgotIG1hcF9tdWx0aXByb2Nlc3MKLSBtYXBfbXVsdGl0aHJlYWQKClRoZXNlIGhlbHBlcnMgd29yayBsaWtlIFB5dGhvbiAzJ3MgbWFwLCB3aXRoIHR3byBkaWZmZXJlbmNlczoKCi0gVGhleSBkb24ndCBndWFyYW50ZWUgdGhlIG9yZGVyIG9mIHByb2Nlc3Npbmcgb2YKICB0aGUgZWxlbWVudHMgb2YgdGhlIGl0ZXJhYmxlLgotIFRoZSB1bmRlcmx5aW5nIHByb2Nlc3MvdGhyZWFkIHBvb2xzIGNob3AgdGhlIGl0ZXJhYmxlIGludG8KICBhIG51bWJlciBvZiBjaHVua3MsIHNvIHRoYXQgZm9yIHZlcnkgbG9uZyBpdGVyYWJsZXMgdXNpbmcKICBhIGxhcmdlIHZhbHVlIGZvciBjaHVua3NpemUgY2FuIG1ha2UgdGhlIGpvYiBjb21wbGV0ZSBtdWNoIGZhc3RlcgogIHRoYW4gdXNpbmcgdGhlIGRlZmF1bHQgdmFsdWUgb2YgMS4K2hBtYXBfbXVsdGlwcm9jZXNz2g9tYXBfbXVsdGl0aHJlYWTpAAAAACkB2g5jb250ZXh0bWFuYWdlcikB2gRQb29sKQHaBHBvb2wpBdoIQ2FsbGFibGXaCEl0ZXJhYmxl2ghJdGVyYXRvctoHVHlwZVZhctoFVW5pb24pAdoQREVGQVVMVF9QT09MU0laRdoBU9oBVE5URmmAhB4AKQJyBgAAANoGcmV0dXJuYwEAAAAAAAAAAQAAAAoAAABjAAAAcyoAAAB6CnwAVgABAFcAZAF8AGoAgwABAHwAagGDAAEAfABqAoMAAQBYAGQBUwApAno+UmV0dXJuIGEgY29udGV4dCBtYW5hZ2VyIG1ha2luZyBzdXJlIHRoZSBwb29sIGNsb3NlcyBwcm9wZXJseS5OKQPaBWNsb3Nl2gRqb2lu2gl0ZXJtaW5hdGUpAXIGAAAAqQByEwAAAPo7L3RtcC9waXAtYnVpbGQtMWZpY29qNHMvcGlwL3BpcC9faW50ZXJuYWwvdXRpbHMvcGFyYWxsZWwucHnaB2Nsb3NpbmcuAAAAcwoAAAAAAwIBCgQIAQgBchUAAADpAQAAACkE2gRmdW5j2ghpdGVyYWJsZdoJY2h1bmtzaXplcg8AAABjAwAAAAAAAAADAAAAAwAAAEMAAABzCgAAAHQAfAB8AYMCUwApAXreTWFrZSBhbiBpdGVyYXRvciBhcHBseWluZyBmdW5jIHRvIGVhY2ggZWxlbWVudCBpbiBpdGVyYWJsZS4KCiAgICBUaGlzIGZ1bmN0aW9uIGlzIHRoZSBzZXF1ZW50aWFsIGZhbGxiYWNrIGVpdGhlciBvbiBQeXRob24gMgogICAgd2hlcmUgUG9vbC5pbWFwKiBkb2Vzbid0IHJlYWN0IHRvIEtleWJvYXJkSW50ZXJydXB0CiAgICBvciB3aGVuIHNlbV9vcGVuIGlzIHVuYXZhaWxhYmxlLgogICAgKQHaA21hcCkDchcAAAByGAAAAHIZAAAAchMAAAByEwAAAHIUAAAA2g1fbWFwX2ZhbGxiYWNrOwAAAHMCAAAAAAlyGwAAAGMDAAAAAAAAAAQAAAALAAAAQwAAAHMkAAAAdAB0AYMAgwGPEH0DfANqAnwAfAF8AoMDUwBRAFIAWABkAVMAKQJ6/0Nob3AgaXRlcmFibGUgaW50byBjaHVua3MgYW5kIHN1Ym1pdCB0aGVtIHRvIGEgcHJvY2VzcyBwb29sLgoKICAgIEZvciB2ZXJ5IGxvbmcgaXRlcmFibGVzIHVzaW5nIGEgbGFyZ2UgdmFsdWUgZm9yIGNodW5rc2l6ZSBjYW4gbWFrZQogICAgdGhlIGpvYiBjb21wbGV0ZSBtdWNoIGZhc3RlciB0aGFuIHVzaW5nIHRoZSBkZWZhdWx0IHZhbHVlIG9mIDEuCgogICAgUmV0dXJuIGFuIHVub3JkZXJlZCBpdGVyYXRvciBvZiB0aGUgcmVzdWx0cy4KICAgIE4pA3IVAAAA2gtQcm9jZXNzUG9vbNoOaW1hcF91bm9yZGVyZWQpBHIXAAAAchgAAAByGQAAAHIGAAAAchMAAAByEwAAAHIUAAAA2hFfbWFwX211bHRpcHJvY2Vzc0cAAABzBAAAAAAKDAFyHgAAAGMDAAAAAAAAAAQAAAALAAAAQwAAAHMmAAAAdAB0AXQCgwGDAY8QfQN8A2oDfAB8AXwCgwNTAFEAUgBYAGQBUwApAnr+Q2hvcCBpdGVyYWJsZSBpbnRvIGNodW5rcyBhbmQgc3VibWl0IHRoZW0gdG8gYSB0aHJlYWQgcG9vbC4KCiAgICBGb3IgdmVyeSBsb25nIGl0ZXJhYmxlcyB1c2luZyBhIGxhcmdlIHZhbHVlIGZvciBjaHVua3NpemUgY2FuIG1ha2UKICAgIHRoZSBqb2IgY29tcGxldGUgbXVjaCBmYXN0ZXIgdGhhbiB1c2luZyB0aGUgZGVmYXVsdCB2YWx1ZSBvZiAxLgoKICAgIFJldHVybiBhbiB1bm9yZGVyZWQgaXRlcmF0b3Igb2YgdGhlIHJlc3VsdHMuCiAgICBOKQRyFQAAANoKVGhyZWFkUG9vbHIMAAAAch0AAAApBHIXAAAAchgAAAByGQAAAHIGAAAAchMAAAByEwAAAHIUAAAA2hBfbWFwX211bHRpdGhyZWFkVQAAAHMEAAAAAAoOAXIgAAAAKQFyFgAAACkBchYAAAApAXIWAAAAKR/aB19fZG9jX1/aB19fYWxsX1/aCmNvbnRleHRsaWJyBAAAANoPbXVsdGlwcm9jZXNzaW5ncgUAAAByHAAAAHIGAAAAWhVtdWx0aXByb2Nlc3NpbmcuZHVtbXlyHwAAAFoGdHlwaW5ncgcAAAByCAAAAHIJAAAAcgoAAAByCwAAAFodcGlwLl92ZW5kb3IucmVxdWVzdHMuYWRhcHRlcnNyDAAAAHINAAAAcg4AAABaG211bHRpcHJvY2Vzc2luZy5zeW5jaHJvbml6ZdoLSW1wb3J0RXJyb3JaDUxBQ0tfU0VNX09QRU7aB1RJTUVPVVRyFQAAANoDaW50chsAAAByHgAAAHIgAAAAcgEAAAByAgAAAHITAAAAchMAAAByEwAAAHIUAAAA2gg8bW9kdWxlPhEAAABzOAAAAAQCCAIMAQwBDAEMARwCDAIQAQgBCAQCAQwBDgEKAgQDBAMCARYNFgESCxYBEg0WARIMBgEKAgQB