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ICAgICAgICBvYmplY3RzIGRlY29kZWQgYnkgdGhpcyBpbnN0YW5jZSAodXRmLTggYnkgZGVmYXVsdCkuICBJdCBoYXMgbm8KICAgICAgICBlZmZlY3Qgd2hlbiBkZWNvZGluZyBgYHVuaWNvZGVgYCBvYmplY3RzLgoKICAgICAgICBOb3RlIHRoYXQgY3VycmVudGx5IG9ubHkgZW5jb2RpbmdzIHRoYXQgYXJlIGEgc3VwZXJzZXQgb2YgQVNDSUkgd29yaywKICAgICAgICBzdHJpbmdzIG9mIG90aGVyIGVuY29kaW5ncyBzaG91bGQgYmUgcGFzc2VkIGluIGFzIGBgdW5pY29kZWBgLgoKICAgICAgICBgYG9iamVjdF9ob29rYGAsIGlmIHNwZWNpZmllZCwgd2lsbCBiZSBjYWxsZWQgd2l0aCB0aGUgcmVzdWx0CiAgICAgICAgb2YgZXZlcnkgSlNPTiBvYmplY3QgZGVjb2RlZCBhbmQgaXRzIHJldHVybiB2YWx1ZSB3aWxsIGJlIHVzZWQgaW4KICAgICAgICBwbGFjZSBvZiB0aGUgZ2l2ZW4gYGBkaWN0YGAuICBUaGlzIGNhbiBiZSB1c2VkIHRvIHByb3ZpZGUgY3VzdG9tCiAgICAgICAgZGVzZXJpYWxpemF0aW9ucyAoZS5nLiB0byBzdXBwb3J0IEpTT04tUlBDIGNsYXNzIGhpbnRpbmcpLgoKICAgICAgICBgYG9iamVjdF9wYWlyc19ob29rYGAsIGlmIHNwZWNpZmllZCB3aWxsIGJlIGNhbGxlZCB3aXRoIHRoZSByZXN1bHQgb2YKICAgICAgICBldmVyeSBKU09OIG9iamVjdCBkZWNvZGVkIHdpdGggYW4gb3JkZXJlZCBsaXN0IG9mIHBhaXJzLiAgVGhlIHJldHVybgogICAgICAgIHZhbHVlIG9mIGBgb2JqZWN0X3BhaXJzX2hvb2tgYCB3aWxsIGJlIHVzZWQgaW5zdGVhZCBvZiB0aGUgYGBkaWN0YGAuCiAgICAgICAgVGhpcyBmZWF0dXJlIGNhbiBiZSB1c2VkIHRvIGltcGxlbWVudCBjdXN0b20gZGVjb2RlcnMgdGhhdCByZWx5IG9uIHRoZQogICAgICAgIG9yZGVyIHRoYXQgdGhlIGtleSBhbmQgdmFsdWUgcGFpcnMgYXJlIGRlY29kZWQgKGZvciBleGFtcGxlLAogICAgICAgIGNvbGxlY3Rpb25zLk9yZGVyZWREaWN0IHdpbGwgcmVtZW1iZXIgdGhlIG9yZGVyIG9mIGluc2VydGlvbikuIElmCiAgICAgICAgYGBvYmplY3RfaG9va2BgIGlzIGFsc28gZGVmaW5lZCwgdGhlIGBgb2JqZWN0X3BhaXJzX2hvb2tgYCB0YWtlcwogICAgICAgIHByaW9yaXR5LgoKICAgICAgICBgYHBhcnNlX2Zsb2F0YGAsIGlmIHNwZWNpZmllZCwgd2lsbCBiZSBjYWxsZWQgd2l0aCB0aGUgc3RyaW5nCiAgICAgICAgb2YgZXZlcnkgSlNPTiBmbG9hdCB0byBiZSBkZWNvZGVkLiBCeSBkZWZhdWx0IHRoaXMgaXMgZXF1aXZhbGVudCB0bwogICAgICAgIGZsb2F0KG51bV9zdHIpLiBUaGlzIGNhbiBiZSB1c2VkIHRvIHVzZSBhbm90aGVyIGRhdGF0eXBlIG9yIHBhcnNlcgogICAgICAgIGZvciBKU09OIGZsb2F0cyAoZS5nLiBkZWNpbWFsLkRlY2ltYWwpLgoKICAgICAgICBgYHBhcnNlX2ludGBgLCBpZiBzcGVjaWZpZWQsIHdpbGwgYmUgY2FsbGVkIHdpdGggdGhlIHN0cmluZwogICAgICAgIG9mIGV2ZXJ5IEpTT04gaW50IHRvIGJlIGRlY29kZWQuIEJ5IGRlZmF1bHQgdGhpcyBpcyBlcXVpdmFsZW50IHRvCiAgICAgICAgaW50KG51bV9zdHIpLiBUaGlzIGNhbiBiZSB1c2VkIHRvIHVzZSBhbm90aGVyIGRhdGF0eXBlIG9yIHBhcnNlcgogICAgICAgIGZvciBKU09OIGludGVnZXJzIChlLmcuIGZsb2F0KS4KCiAgICAgICAgYGBwYXJzZV9jb25zdGFudGBgLCBpZiBzcGVjaWZpZWQsIHdpbGwgYmUgY2FsbGVkIHdpdGggb25lIG9mIHRoZQogICAgICAgIGZvbGxvd2luZyBzdHJpbmdzOiAtSW5maW5pdHksIEluZmluaXR5LCBOYU4uCiAgICAgICAgVGhpcyBjYW4gYmUgdXNlZCB0byByYWlzZSBhbiBleGNlcHRp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dWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9kYXJ3aW4teDg2XzY0L2xpYi9weXRob24yLjcvanNvbi9kZWNvZGVyLnB5Um0AAABzAQAAcwoAAAAACQMBHAENARABTigKAAAAdAgAAABfX25hbWVfX3QKAAAAX19tb2R1bGVfX3QHAAAAX19kb2NfX1IXAAAAUk0AAABSawAAAHQKAAAAV0hJVEVTUEFDRXQFAAAAbWF0Y2hSBwAAAFJtAAAAKAAAAAAoAAAAACgAAAAAc1QAAAAvdG1wL25kay1Vc2VyL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2Rhcndpbi14ODZfNjQvbGliL3B5dGhvbjIuNy9qc29uL2RlY29kZXIucHlSAgAAABEBAABzDAAAAAYcBgIJAQkBDDcPCygkAAAAUnEAAAB0AgAAAHJlUggAAABSCgAAAHQEAAAAanNvblIAAAAAdAUAAABfanNvblIBAAAAdAwAAABjX3NjYW5zdHJpbmd0CwAAAEltcG9ydEVycm9yUhcAAAB0BwAAAF9fYWxsX190BwAAAFZFUkJPU0V0CQAAAE1VTFRJTElORXQGAAAARE9UQUxMdAUAAABGTEFHU1IPAAAAUiAAAAB0BgAAAFBvc0luZnQGAAAATmVnSW5mUhYAAABSHgAAAFJjAAAAdAcAAABjb21waWxldAsAAABTVFJJTkdDSFVOS3QJAAAAQkFDS1NMQVNIUikAAABSTQAAAFJzAAAAUkgAAABScgAAAHQOAAAAV0hJVEVTUEFDRV9TVFJSXAAAAFJfAAAAdAYAAABvYmplY3RSAgAAACgAAAAAKAAAAAAoAAAAAHNUAAAAL3RtcC9uZGstVXNlci9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9kYXJ3aW4teDg2XzY0L2xpYi9weXRob24yLjcvanNvbi9kZWNvZGVyLnB5dAgAAAA8bW9kdWxlPgIAAABzPgAAAAYBDAEMAQwCEAEDARQBDQEKAgkCFwIJBxIDCQkMDwMBBwEHAQoDEgEDARUBJgMGAgYBEk4MAhIBBgMSVxIk