CQkJCUFwYWNoZSBJdnkgKFRNKSAKCQkJCS0gVGhlIGFnaWxlIG9wZW4gc291cmNlIGRlcGVuZGVuY3kgbWFuYWdlcgoJCQkJLSBodHRwOi8vYW50LmFwYWNoZS5vcmcvaXZ5CgkJCQk9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoJCQkJCmZvciBkZXRhaWxlZCB2aWV3IG9mIGVhY2ggaXNzdWUsIHBsZWFzZSBjb25zdWx0IGh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9JVlkKCiBDb21taXR0ZXJzCglNYXR0IEJlbnNvbgoJTWFhcnRlbiBDb2VuZQoJWGF2aWVyIEhhbmluCglOaWNvbGFzIExhbGV2ZWUKCUpvbiBTY2huZWlkZXIKCUdpbGxlcyBTY29rYXJ0CiAgCiBDb250cmlidXRvcnMKCUluZ28gQWRsZXIKCWFsZXgzMjIKCU1hdGhpZXUgQW5xdWV0aW4KCUFuZHJlYXMgQXhlbHNzb24KCVN0ZXBoYW5lIEJhaWxsaWV6CglLYXJsIEJhdW0KCU1pa2tlbCBCamVyZwoJUGVyIEFybm9sZCBCbGFhc21vCglKZWZmcmV5IEJsYXR0bWFuCglKYXNwZXIgQmx1ZXMKCUppbSBCb25hbm5vCglKZWFuLUxvdWlzIEJvdWRhcnQKCUpvc2VwaCBCb3lkCglEYXZlIEJyb3NpdXMKCU1hdHRoaWV1IEJyb3VpbGxhcmQKCUNhcmx0b24gQnJvd24KCU1pcmtvIEJ1bG92aWMKCUphbWllIEJ1cm5zCglDaHJpcyBDaGlsdmVycwoJS3Jpc3RpYW4gQ2lidWxza2lzCglBbmRyZWEgQmVybmFyZG8gQ2lkZGlvCglBcmNoaWUgQ29iYnMKCUZsYXZpbyBDb3V0aW5obyBkYSBDb3N0YQoJU3RlZmFuIERlIEJvZXkKCU1hcnRpbiBFaWdlbmJyb2R0CglTdGVwaGVuIEV2YW5jaGlrCglHcmVnb3J5IEZlcm5hbmRlegoJRGFubm8gRmVycmluCglCZW5qYW1pbiBGcmFuY2lzb3VkCQoJSmFjb2IgR3J5ZGhvbHQgSmVuc2VuCglKb2huIEdpYnNvbgoJU2NvdHQgR29sZHN0ZWluCglQaWVycmUgSORnbmVzdHJhbmQKCVNjb3R0IEhlYmVydAoJVG9iaWFzIEhpbXN0ZWR0CglBYXJvbiBIYWNoZXoKCUJlbiBIYWxlCglQZXRlciBIYXllcwoJU2NvdHQgSGViZXJ0CglQYXlhbSBIZWttYXQKCUFjaGltIEh1ZWdlbgoJTWF0dCBJbmdlcgoJQW5kZXJzIEphY29ic3NvbgoJQW5kZXJzIEphbm15cgoJU3RldmUgSm9uZXMKCUNocmlzdGVyIEpvbnNzb24KCU1pY2hhZWwgS2ViZQoJTWF0dGhpYXMgS2lsaWFuCglBbGV4ZXkgS2lzZWxldgoJR3JlZ29yeSBLaXNsaW5nCglTdGVwYW4gS29sdHNvdgoJSGVzY2hpIEtyZWluaWNrCiAgICBTZWJhc3RpYW4gS3J1ZWdlcgoJVGF0IExldW5nCglDb3N0aW4gTGVhdQoJQW50b2luZSBMZXZ5LUxhbWJlcnQKCUFuZHJleSBMb21ha2luCglXaWxsaWFtIEx5dmVycwoJU2FrYXJpIE1hYXJhbmVuCglKYW4gTWF0ZXJuZQoJTWFya3VzIE0uIE1heQoJQWJlbCBNdWlubwoJSi4gTGV3aXMgTXVpcgoJU3RlcGhlbiBOZXNiaXR0CglKb3NodWEgTmljaG9scwoJQmVybmFyZCBOaXNldAoJRGF2aWQgTWFwbGVzZGVuCglHbGVuIE1hcmNoZXNhbmkKCVBoaWwgTWVzc2VuZ2VyCglTdGV2ZSBNaWxsZXIKCU1hdGhpYXMgTXVsbGVyCglSYW5keSBOb3R0CglQZXRlciBPeGVuaGFtCglEb3VnbGFzIFBhbG1lcgoJSmVzcGVyIFBlZGVyc2VuCglFbW1hbnVlbCBQZWxsZXJlYXUKCVJvc2hhbiBQdW5ub29zZQoJSmVhbi1CYXB0aXN0ZSBRdWVub3QKCUNhcmwgUXVpbm4KCURhbW9uIFJhbmQKCUdlb2ZmIFJlZWR5CglUb3JraWxkIFUuIFJlc2hlaW0KCUNocmlzdGlhbiBSaWVnZQoJSmVucyBSb2hsb2ZmCglBbmRyZWFzIFNhaGxiYWNoCglCcmlhbiBTYW5kZXJzCglBZHJpYW4gU2FuZG9yCglNaWNoYWVsIFNjaGVldHoKCUJlbiBTY2htaWR0CglSdXNsYW4gU2hldmNoZW5rbwoJSm9obiBTaGllbGRzCglOaWhhbCBTaW5oYQoJU2ltb24gU3RlaW5lcgoJSm9oYW4gU3R1eXRzCglKb2huIFRpbmV0dGkKCUphc29uIFRydW1wCglUamVlcmQgVmVyaGFnZW4KCVJpY2hhcmQgVm93bGVzCglTdmVuIFdhbHRlcgoJSmFtZXMgUC4gV2hpdGUKCVRvbSBXaWRtZXIKCUpvaG4gV2lsbGlhbXMKCUNocmlzIFdvb2QKCVBhdHJpY2sgV29vZHdvcnRoCglKYXJvc2xhdyBXeXB5Y2hvd3NraQoJU3ZlbiBaZXRoZWxpdXMKCUFsZWtzZXkgWmh1a292CgkKICAgMi4zLjAtcmMxCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSBET0NVTUVOVEFUSU9OOiBCYWQgZXhhbXBsZSBpbiBQcm9qZWN0IGRlcGVuZGVuY2llcyBUdXRvcmlhbCAoSVZZLTEyNjMpCi0gRE9DVU1FTlRBVElPTjogcmVtb3ZlIGRlcHJlY2F0ZWQgZGVmYXVsdENhY2hlIHNldHRpbmcgZnJvbSBleGFtcGxlcyAoSVZZLTEyNzMpICh0aGFua3MgdG8gSm9zZXBoIEJveWQpCi0gRE9DVU1FTlRBVElPTjogbGluayB0byBGQVEgaXMgaW5jb3JyZWN0IGluIGRpc3RyaWJ1dGlvbiBmaWxlcyAoSVZZLTc5MykgKHRoYW5rcyB0byBKb3NlcGggQm95ZCkKLSBET0NVTUVOVEFUSU9OOiBUaGUgdGFnIHZlcnNpb24tbWF0Y2hlcnMgaXMgbWlzc2luZyBhdHRyaWJ1dGUgaW4gZG9jdW1lbnRhdGlvbiAoSVZZLTEyOTIpICh0aGFua3MgdG8gUGVyIEFybm9sZCBCbGFhc21vKQotIERPQ1VNRU5UQVRJT046IHdyb25nIGRlZmF1bHQgcmVzb2x2ZXIgZG9jdW1lbnRlZCBvbiB0aGUgJ0hvdyBkb2VzIGl0IHdvcmsnIHBhZ2UgKElWWS0xMjY1KQotIERPQ1VNRU5UQVRJT046IENvcnJlY3Qgb3V0ZGF0ZWQgbGlua3MgdG8gY29uZmlndXJhdGlvbiBwYWdlcyAoSVZZLTEyNjYpCgotIE5FVzogW29yZ1BhdGhdIGNhbiBub3cgYmUgdXNlZCBhcyB0b2tlbiBpbiBpdnkvYXJ0aWZhY3QgcGF0dGVybnMKLSBORVc6IE5ldyBBbnQgZGF0YXR5cGUgaXZ5OnJlc291cmNlcywgYW4gQW50IHJlc291cmNlIGNvbGxlY3Rpb24gbGlrZSBpdnk6Y2FjaGVwYXRoIG9yIGl2eTpjYWNoZWZpbGVzZXQgKElWWS0zMzQpCi0gTkVXOiBpdnk6cmVzb2x2ZSBhbmQgcG9zdCByZXNvbGUgdGFzayBjYW4gbm93IGhhdmUgaW5saW5lZCBkZXBlbmRlbmNpZXMgZGVjbGFyYXRpb24uCi0gTkVXOiBJbXBvcnQgQnVzaGVsIGludG8gSXZ5IGNvcmUgKElWWS0xMjQxKQotIE5FVzogQW4gbmV3IHJlc29sdmVyICdtaXJyb3JlZHVybCcgd2hpY2ggY2FuIGhhbmRsZSBhIGxpc3Qgb2YgbWlycm9yZWQgVVJMIHJlcG9zaXRvcmllcyAoSVZZLTQ2OCkKLSBORVc6IFN1cHBvcnQgZm9yIGEgamFyIHJlc29sdmVyIChJVlktMTMxMikKCi0gSU1QUk9WRU1FTlQ6IGl2eTppbnN0YWxsIHRhc2sgZG9lcyBub3QgYWxsb3cgc3BlY2lmaWNhdGlvbiBvZiBjb25mIChJVlktMTMxMykgKHRoYW5rcyB0byBOaWhhbCBTaW5oYSkKLSBJTVBST1ZFTUVOVDogaXZ5Om1ha2Vwb20gaWdub3JlcyB0aGUgYXJ0aWZhY3QgdHlwZSBpbiBnZW5lcmF0ZWQgZGVwZW5kZW5jaWVzIChJVlktMTIyOSkgKHRoYW5rcyB0byBEb3VnbGFzIFBhbG1lcikKLSBJTVBST1ZFTUVOVDogaXZ5Om1ha2Vwb20gbm93IGhvbm9ycyBleGNsdXNpb24gb2YgYXJ0aWZhY3RzIGluIGdlbmVyYXRlZCBwb20gZmlsZXMgKElWWS0xMjk0KSAodGhhbmtzIHRvIEplbnMgUm9obG9mZikKLSBJTVBST1ZFTUVOVDogQWRkZWQgc3VwcG9ydCBmb3IgZHluYW1pYyByZXZpc2lvbnMgaW4gPGV4dGVuZHM+IHRhZyAoSVZZLTEyODEpICh0aGFua3MgdG8gSmVhbi1Mb3VpcyBCb3VkYXJ0KQotIElNUFJPVkVNRU5UOiBpdnk6bWFrZXBvbSBjaGlsZCBlbGVtZW50IGRlcGVuZGVuY3kgc2hvdWxkIHN1cHBvcnQgdGhlIHR5cGUgYW5kIGNsYXNzaWZpZXIgYXR0cmlidXRlcyAoSVZZLTEyNjIpCi0gSU1QUk9WRU1FTlQ6IGl2eTpyZXRyaWV2ZSBjYW4gbm93IGNyZWF0ZSBhIHBhdGggb3IgZmlsZXNldCBjb250YWluaW5nIHRoZSByZXRyaWV2ZWQgYXJ0aWZhY3RzIChJVlktMTIzNSkKLSBJTVBST1ZFTUVOVDogSW1wcm92ZSBkaWFnbm9zdGljcyBpbiBzc2ggcmVzb2x2ZXIgKElWWS0xMjY3KSAodGhhbmtzIHRvIFN0ZXBhbiBLb2x0c292KQotIElNUFJPVkVNRU5UOiBpdnk6cmV0cmlldmUgbm93IGFjY2VwdHMgYSBuZXN0ZWQgbWFwcGVyIHR5cGUuCgotIEZJWDogRXhjbHVkZSBkb2Vzbid0IHdvcmsgd2hlbiB0aGVyZSBpcyBzb21lIGNpcmN1bGFyIGRlcGVuZGVuY2llcyAoSVZZLTEzMDkpCi0gRklYOiBJbXBvc3NpYmxlIHRvIGdldCBhcnRpZmFjdHMgd2hlbiBkYXRhIGhhcyBub3QgYmVlbiBsb2FkZWQgZm9yIG11bHRpcGxlIGR5bmFtaWMgcmV2aXNpb25zIChJVlktMTMzMykKLSBGSVg6IEl2eSBkaWRuJ3QgcHJvcGVybHkgaGFuZGxlIHNvbWUgZmlsZTogVVJMcyAoSVZZLTEzNDApCi0gRklYOiBmYWxsYmFjayBtZWNoYW5pc20gZGlkbid0IHdvcmsgcHJvcGVybHkgZm9yIHByaXZhdGUgY29uZmlndXJhdGlvbnMKLSBGSVg6IC9sb2NhbGl2eSB0YXJnZXQgZG9lcyBub3Qgd29yayB3aGVuIGJ1aWxkaW5nIEl2eSBqYXIgKElWWS0xMzM4KSAodGhhbmtzIHRvIEJlbiBTY2htaWR0KQotIEZJWDogVGhlIHNob3dwcm9ncmVzcz1mYWxzZSBhdHRyaWJ1dGUgb2YgaXZ5OnJlc29sdmUgZG9lc24ndCBkbyB3aGF0IGl0IHNob3VsZCAoSVZZLTEwNTIpICh0aGFua3MgdG8gSm9zZXBoIEJveWQpCi0gRklYOiBleHRlbmRzIGlnbm9yZXMgZGVmYXVsdGNvbmZtYXBwaW5nL2RlZmF1bHRjb25mL2NvbmZtYXBwaW5nb3ZlcnJpZGUgYXR0cmlidXRlcyBmcm9tIHBhcmVudCdzIGNvbmZpZ3VyYXRpb25zIGFuZCBkZXBlbmRlbmNpZXMgdGFncyAoSVZZLTEyMTMpCi0gRklYOiBOdWxsUG9pbnRlckV4Y2VwdGlvbiB3aGVuIHByb3ZpZGluZyBlbXB0eSBwYXNzd29yZCB0byA8Y3JlZGVudGlhbHM+IChJVlktMTMzNSkKLSBGSVg6IFtvcmlnaW5hbG5hbWVdIG5vdCBleHBhbmRlZCBmb3Igc291cmNlIGFuZCBqYXZhZG9jIHR5cGVzIGR1cmluZyBwdWJsaXNoIGluIGl2eTppbnN0YWxsIChJVlktMTMyNCkKLSBGSVg6IGNhbm5vdCByZXNvbHZlIGZyb20gcmVwb3NpdG9yaWVzIHRoYXQgcmV0dXJuIEhUVFAgMjA0IGluIHJlc3BvbnNlIHRvIGFuIEhUVFAgSEVBRCByZXF1ZXN0IChJVlktMTMyOCkKLSBGSVg6IGV4dHJhIGF0dHJpYnV0ZXMgbG9zdCBmcm9tIGluZm8gd2hlbiBpdnkgZmlsZSBpcyBtZXJnZWQgd2l0aCBwYXJlbnQgKElWWS0xMjA2KQotIEZJWDogaXZ5OnJlcG9ydCBhbnQgdGFzayBpbnRlcm1pdHRlbnRseSAiY2Fubm90IGNvbXBpbGUgc3R5bGVzaGVldCIgKElWWS0xMzI1KQotIEZJWDogTWF2ZW4gJ2VjbGlwc2UtcGx1Z2luJywgJ2piaS1jb21wb25lbnQnIGFuZCAnamJpLXNoYXJlZC1saWJyYXJ5JyBwYWNrYWdpbmcgaXMgbm93IG1hcHBlZCB0byAnamFyJyBleHRlbnNpb24gKElWWS04OTkpCi0gRklYOiBJbmZpbml0ZSBsb29wIGluIGxhdGVzdC1jb21wYXRpYmxlIGNvbmZsaWN0IG1hbmFnZXIgKElWWS0xMjMzKSAodGhhbmtzIHRvIFBheWFtIEhla21hdCBhbmQgU3ZlbiBaZXRoZWxpdXMpCi0gRklYOiBleHRlbmRzIHNlY3Rpb24gb2YgaXZ5LnhtbCBpbmZvIGRvZXMgbm90IHJlcGxhY2UgdmFyaWFibGUgaW4gbG9jYXRpb24gdGFnIChJVlktMTI4NykgKHRoYW5rcyB0byBKZWFuLUxvdWlzIEJvdWRhcnQpCi0gRklYOiBWYWxpZCBQYXRoIGRvZXMgbm90IHdvcmsgZm9yIEZpbGVzeXN0ZW0gUmVzb2x2ZXIgKElWWS0xMjY4KQotIEZJWDogcXVpZXQ9InRydWUiIGRvZXMgbm90IHN1cnByZXNzIGRvd25sb2FkICdkb3RzJyBvbiBwYWNrYWdlciByZXNvbHZlciAoSVZZLTEyNjkpCi0gRklYOiBEeW5hbWljIHZlcnNpb24gcmVzb2x1dGlvbiByZXN1bHQgY2FuIGJlIGluY29ycmVjdCB3aGVuIGl2eSBtZXRhZGF0YSBjb250YWlucyBleHRyYSBhdHRyaWJ1dGVzIChJVlktMTIzNikKLSBGSVg6IE51bGxQb2ludGVyRXhjZXB0aW9uIGluIEZpbGVVdGlsI2ZvcmNlRGVsZXRlLgotIEZJWDogWG1sTW9kdWxlRGVzY3JpcHRvclVwZGF0ZXIgaXMgYSBtZXNzIHRoYXQgcHJvZHVjZXMgYnJva2VuIHhtbHMgaW4gbWFueSBjYXNlcyAoSVZZLTEwMTApCi0gRklYOiBpdnkueG1sIHRoYXQgY29udGFpbnMgVVRGLTggZW5jb2RlZCB1bWxhdXRzIGNhbm5vdCBiZSBiaWdnZXIgdGhhbiAxMDAwMCBieXRlcyAoSVZZLTEyNTMpCi0gRklYOiBDYW4gbm90IHVzZSBhIHZbcmV2aXNpb25dIGluIGFuIGFydGlmYWN0IHBhdHRlcm4gb2YgYSBmaWxlc3lzdGVtIHJlc29sdmVyIChJVlktMTIzOCkKLSBGSVg6IENhY2hlZCBpdnkueG1sIGlzIGludmFsaWQgaWYgdGhlIGRlc2NyaXB0aW9uIGNvbnRhaW5zIHRoZSBhbXBlcnNhbmQgZW50aXR5ICgmYW1wOykgKElWWS0xMjM3KQotIEZJWDogQ291bGRuJ3QgYXV0aGVudGljYXRlIGFnYWluc3Qgc2l0ZXMgaGF2aW5nIHRoZSBzYW1lIGFkZHJlc3MgYXMgdGhlIHByb3h5IHNlcnZlciAoSVZZLTEyMzQpCi0gRklYOiBPdXRPZk1lbW9yeUVycm9yIHdoZW4gdXBsb2FkaW5nIGxhcmdlIGZpbGVzIHVzaW5nIGNvbW1vbnMtaHR0cGNsaWVudCAoSVZZLTExOTcpICh0aGFua3MgdG8gVG9ya2lsZCBVLiBSZXNoZWltKQotIEZJWDogT25seSB0aGUgbGFzdCBkZXBlbmRlbmN5IGRlc2NyaXB0b3IgaXMgdGFrZW4gaW50byBhY2NvdW50IG9uIHRoZSBzYW1lIG1vZHVsZSAoSVZZLTEyNDApCi0gRklYOiBVc2VDYWNoZU9ubHkgZG9lc24ndCByZXNwZWN0IHRoZSBjYWNoZSBjb25maWd1cmF0aW9uIGluIHRoZSBpdnlzZXR0aW5ncyAoSVZZLTEyMjcpCi0gRklYOiBVc2VDYWNoZU9ubHkgaXMgaW5mbHVlbmNlZCBieSB0aGUgVFRMIG9uIGNhY2hlZCBtZXRhZGF0YSAoSVZZLTEyNDMpCi0gRklYOiBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXhjZXB0aW9uIG9uIGl2eSBzZXR0aW5ncyBsb2FkaW5nIChJVlktMTI1MCkKLSBGSVg6IE1vZHVsZSBpbmhlcml0YW5jZSBzb21ldGltZXMgZmFpbHMgdG8gbG9jYXRlIHBhcmVudCBkZXNjcmlwdG9yIGluIGRlbGl2ZXIgcHJvY2VzcyAoSVZZLTEyNDgpICh0aGFua3MgdG8gSmVhbi1Mb3VpcyBCb3VkYXJ0KQotIEZJWDogPGNhY2hlZmlsZXNldD4gb24gYW4gZW1wdHkgY29uZmlndXJhdGlvbiBwcm9kdWNlcyBhIHZlcnkgc2xvdy10by1ldmFsdWF0ZSBmaWxlc2V0IChJVlktMTI3MikKLSBGSVg6IEl2eSBkb2VzIG5vdCBhcHBseSBvdmVycmlkZGVuIHByb3BlcnRpZXMgdG8gbTIgcGFyZW50IGRlcGVuZGVuY3kgdmVyc2lvbnMgc3BlY2lmaWVkIHVzaW5nIHByb3BlcnRpZXMgKElWWS0xMjk5KQotIEZJWDogSXZ5IGRvZXMgbm90IGFwcGx5IG92ZXJyaWRkZW4gcHJvcGVydGllcyB0byBtMiBwYXJlbnQgZGVwZW5kZW5jeSB2ZXJzaW9ucyBzcGVjaWZpZWQgdXNpbmcgZGVwZW5kZW5jeU1hbmFnZW1lbnQgcHJvcGVydGllcyAoSVZZLTEzMDEpCgogICAyLjIuMAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gRE9DVU1FTlRBVElPTjogU3BlbGxpbmcgZml4ZXMgb24gYXJ0aWZhY3QgZGVzY3JpcHRpb24gcGFnZSAoSVZZLTEyMzApCi0gRE9DVU1FTlRBVElPTjogQWRkZWQgbWlzc2luZyBkb2N1bWVudGF0aW9uIGFib3V0IHRoZSBpdnk6cHVibGlzaCBjaGlsZCBlbGVtZW50cy4KLSBET0NVTUVOVEFUSU9OOiBHcmFtbWFyLCBzcGVsbGluZywgYW5kIGNsYXJpdHkgb2YgU2V0dGluZ3MgRmlsZSBkb2N1bWVudGF0aW9uIChJVlktMTIxNikgKHRoYW5rcyB0byBTdGV2ZSBNaWxsZXIpCi0gRE9DVU1FTlRBVElPTjogR3JhbW1hciwgc3BlbGxpbmcsIGFuZCBjbGFyaXR5IG9mIFR1dG9yaWFsIGRvY3VtZW50YXRpb24gKElWWS0xMjIyKSAodGhhbmtzIHRvIFN0ZXZlIE1pbGxlcikKCi0gTkVXOiB0aGUgaXZ5Om1ha2Vwb20gQW50IHRhc2sgY2FuIHVzZSBhIGN1c3RvbSB0ZW1wbGF0ZSBmaWxlIHRvIGdlbmVyYXRlIHRoZSBwb20ueG1sCi0gTkVXOiBJdnkgY2FuIG5vdyBnZW5lcmF0ZSBPcGVuUEdQIGNvbXBhdGlibGUgQVNDSUkgYXJtb3JlZCBkZXRhY2hlZCBzaWduYXR1cmVzIHdoZW4gcHVibGlzaGluZyBhcnRpZmFjdHMuCgotIElNUFJPVkVNRU5UOiB0aGUgPGFydGlmYWN0PiBjaGlsZCBvZiBpdnk6cHVibGlzaCBub3cgYWNjZXB0cyBhbnkgYXR0cmlidXRlCi0gSU1QUk9WRU1FTlQ6IEhhbmRsZSBhdHRyaWJ1dGVzIGluIGRlc2NyaXB0aW9uIHN1YmVsZW1lbnRzIChJVlktMTIxNCkgKHRoYW5rcyB0byBKZWFuLUxvdWlzIEJvdWRhcnQpCi0gSU1QUk9WRU1FTlQ6IFVzZSBJdnlBdXRoZW50aWNhdG9yIG9ubHkgd2hlbiBpdCBpcyByZWFsbHkgbmVjZXNzYXJ5IChJVlktMTIxMSkKLSBJTVBST1ZFTUVOVDogTWFrZVBvbSB0YXNrIGhhbmRsaW5nIG9mIG11bGl0cGxlIGFydGlmYWN0cyBmb3IgTWF2ZW4yIChJVlktNzcwKSAodGhhbmtzIHRvIEplc3BlciBQZWRlcnNlbikKLSBJTVBST1ZFTUVOVDogaXZ5Om1ha2Vwb20gbm93IGhhcyBhbiBvcHRpb24gdG8gZGlzYWJsZSB0aGUgZ2VuZXJhdGlvbiBvZiBhbiBleHRyYSBJdnkgY29tbWVudCBibG9jayBpbiB0aGUgUE9NCi0gSU1QUk9WRU1FTlQ6IGl2eTptYWtlcG9tIG5vdyBhY2NlcHRzIGEgbGlzdCBvZiBjb25maWd1cmF0aW9ucyB0byBpbmNsdWRlIChJVlktMTAwNSkgKHRoYW5rcyB0byBKZXNwZXIgUGVkZXJzZW4pCi0gSU1QUk9WRU1FTlQ6IGl2eTptYWtlcG9tIGNhbiBnZW5lcmF0ZSBhIDxkZXNjcmlwdGlvbj4gZWxlbWVudCBpbiB0aGUgcG9tIChJVlktMTIxNSkgKHRoYW5rcyB0byBKZXNwZXIgUGVkZXJzZW4pCgotIEZJWDogQXBhY2hlVVJMTGlzdGVyIGRvZXNuJ3QgaGFuZGxlIHNvbWUgdHJ1bmNhdGVkIGxpbmtuYW1lcyBwcm9wZXJseSAoSVZZLTEyMzIpICh0aGFua3MgdG8gSm9obiBUaW5ldHRpKQotIEZJWDogSXZ5IGNhbm5vdCBoYW5kbGUgTWF2ZW4gcG9tIHdpdGggcGFyZW50cyBkZXBlbmRpbmcgYmFjayBvbiB0aGVpcnNlbGZzIChJVlktMTIyNSkKLSBGSVg6IGFydGlmYWN0cmVwb3J0IGFudCB0YXNrIGRvZXNuJ3QgaG9ub3IgbG9nIGF0dHJpYnV0ZSAoSVZZLTEyMTIpCi0gRklYOiBYbWxNb2R1bGVEZXNjcmlwdG9yV3JpdGVyIGRvZXMgbm90IHdyaXRlIHRoZSB0cmFuc2l0aXZlIGF0dHJpYnV0ZSAoSVZZLTEyMDcpICh0aGFua3MgdG8gQWJlbCBNdWlubykKLSBGSVg6IEl2eSBpbmZvL2V4dGVuZHMvZXh0ZW5kc1R5cGUgYXR0cmlidXRlIGlzIG1pc3NwZWxsZWQgYnkgWG1sTW9kdWxlRGVzY3JpcHRvcldyaXRlciAoSVZZLTEyMDMpICh0aGFua3MgdG8gSmFzb24gVHJ1bXApCgogICAyLjIuMC1yYzEKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotIERPQ1VNRU5UQVRJT046IExpbWl0IHRoZSB3aWR0aCBvZiBydW5uaW5nIHRleHQgaW4gZG9jdW1lbnRhdGlvbiAoSVZZLTEwMzApCi0gRE9DVU1FTlRBVElPTjogUmVmZXIgdG8gdGhlIG1hdmVuIHdpa2kgaW5zdGVhZCBvZiBsaXN0aW5nIHNvbWUgbWF2ZW4yIG1pcnJvcnMgb3Vyc2VsZnMgKElWWS00OTEpCi0gRE9DVU1FTlRBVElPTjogRml4ZWQgc2V2ZXJhbCBncmFtbWF0aWNhbCBhbmQgdHlwb2dyYXBoaWMgZXJyb3JzIGluIGRvY3VtZW50YXRpb24gKElWWS0xMTcyKSAodGhhbmtzIHRvIEouIExld2lzIE11aXIpCi0gRE9DVU1FTlRBVElPTjogaXZ5LWRvYy54c2wgZG9lcyBub3Qgc2hvdyBjb25maWd1cmF0aW9ucyAoSVZZLTExNTEpICh0aGFua3MgdG8gSmFzcGVyIEJsdWVzKQotIERPQ1VNRU5UQVRJT046IEFkZGVkIGRvY3VtZW50YXRpb24gb2YgdGhlICdjaGFuZ2luZycgYXR0cmlidXRlIG9uIHRoZSBpdnk6cmVzb2x2ZSBBbnQgdGFzayAoSVZZLTExODApCgotIE5FVzogU3VwcG9ydCBpdnkueG1sIHBhcmVudCBtZWNoYW5pc20gKElWWS03NDIpICh0aGFua3MgdG8gSmFzb24gVHJ1bXAgYW5kIEplYW4tTG91aXMgQm91ZGFydCkKLSBORVc6IE1ha2UgaXZ5LnhtbCA8Y29uZiBkZXNjcmlwdGlvbj4gYXZhaWxhYmxlIChJVlktMTE1OCkKCi0gSU1QUk9WRU1FTlQ6IGFkZGVkIHN1cHBvcnQgZm9yICdnemlwJyBhbmQgJ2RlZmxhdGUnIEhUVFAgQ29udGVudC1FbmNvZGluZyAoSVZZLTExOTQpCi0gSU1QUk9WRU1FTlQ6IHJldHJpZXZlIGRvZXNuJ3QgcmV0cml2ZSBmaWxlcyBpZiB0aGUgY3VycmVudCBvbmUgaXMgbW9yZSByZWNlbnQgKElWWS0xMDQ0KQotIElNUFJPVkVNRU5UOiBiZXR0ZXIgZGlhZ25vc3RpY3Mgd2hlbiByZXBvcnRpbmcgYmFkIGl2eSBmaWxlIGluIGNhY2hlIChJVlktMTE5MCkKLSBJTVBST1ZFTUVOVDogU3VwcG9ydCBjaGFuZ2luZz0idHJ1ZSIgZm9yIGlubGluZSByZXRyaWV2ZSAoSVZZLTExODApCi0gSU1QUk9WRU1FTlQ6IEVuaGFuY2UgPGluZm8vPiB0YXNrIHRvIGFjY2VzcyB0aGUgJ3B1YmxpY2F0aW9uJywgJ2JyYW5jaCcgYW5kIHB1Ymxpc2hlZCBhcnRpZmFjdHMgYXMgYW50IHByb3BldGllcyAoSVZZLTM5NSkgKHRoYW5rcyB0byBDYXJsIFF1aW5uKQotIElNUFJPVkVNRU5UOiBJdnkgZG9lc24ndCBzdXBwb3J0IE1hdmVuIDIuMC45ICdpbXBvcnQnIHNjb3BlIChJVlktODA3KQotIElNUFJPVkVNRU5UOiByZXNvbHZlciBhdHRyaWJ1dGUgZm9yIGxpc3Rtb2R1bGVzIHRhc2sgKElWWS0xMDU3KQotIElNUFJPVkVNRU5UOiBkaXNjb3ZlciAnc3JjJyBzb3VyY2VzIGluIG1hdmVuIHJlcG9zIChJVlktMTEzOCkKLSBJTVBST1ZFTUVOVDogVHJhY2UgYSBtZXNzYWdlIHdoZW4gYSBwcm9wZXJ0eSBmaWxlIHJlZmVyZW5jZWQgZnJvbSB0aGUgc2V0dGluZ3MgZG9lc24ndCBleGl4dHMgKElWWS0xMDc0KQotIElNUFJPVkVNRU5UOiB1c2UgZGVmYXVsdGNvbmYgaW4gY29tYmluYXRpb24gd2l0aCBkZWZhdWx0Y29uZm1hcHBpbmcgKElWWS0xMTM1KSAodGhhbmtzIHRvIEpvbiBTY2huZWlkZXIpCgotIEZJWDogVGhlIGl2eS1tb2R1bGUgdmVyc2lvbiB1c2VkIGJ5IFhtbE1vZHVsZURlc2NyaXB0b3JXcml0ZXIgaXMgaGFyZCBjb2RlZCB0byAnMS4wJyAoSVZZLTExOTkpCi0gRklYOiBtYWtlcG9tIGlnbm9yZXMgYXJ0aWZhY3QgdHlwZSBpbiBpdnkueG1sIGFuZCBoYXJkY29kZXMgJ2phcicgaW4gdGhlIG91dHB1dCBwb20gKElWWS03MzYpICh0aGFua3MgdG8gQWFyb24gSGFjaGV6KQotIEZJWDogQW50IG91dHB1dCB3YXNuJ3QgYWx3YXlzIHByZWZpeGVkIGJ5IHRoZSBuYW1lIG9mIHRoZSBJdnkgdGFzawotIEZJWDogUmVzb2x2ZWQgSXZ5IHByb3BlcnRpZXMgd3JpdHRlbiB0byBjYWNoZSBkdXJpbmcgaXZ5OnJlc29sdmUgaW5jb3JyZWN0bHkgcmVwcmVzZW50cyBmb3JjZWQgcmV2aXNpb25zIChJVlktMTE1OSkKLSBGSVg6IE5hbWVzcGFjZSBydWxlcyBub3QgcHJvcGVybHkgYXBwbGllZCB0byBwYXJlbnQgcHJvamVjdHMgKElWWS0xMTg2KQotIEZJWDogTGF0ZXN0VmVyc2lvbk1hdGNoZXIubmVlZE1vZHVsZURlc2NyaXB0b3IoKSBkb2VzIG5vdCBob25vciBjdXN0b20gc3RhdHVzZXMgKElWWS0xMTcwKSAodGhhbmtzIHRvIENhcmwgUXVpbm4pCi0gRklYOiBQcm94eSBhdXRoZW50aWNhdGlvbiBjb3VsZCBmYWlsIHdoZW4gdXNpbmcgY29tbW9ucy1odHRwY2xpZW50IAotIEZJWDogUGFja2FnZXIgcmVzb2x2ZXIgYWx3YXlzIGV4dHJhY3RzIGFsbCBmaWxlcyBmcm9tIGFyY2hpdmVzIGV2ZW4gd2hlbiB0aGUgcGFja2FnaW5nIGluc3RydWN0aW9ucyBjb250YWlucyBpbmNsdWRlIHRhZ3MgKElWWS0xMTc5KSAodGhhbmtzIHRvIFN0ZWZhbiBEZSBCb2V5KQotIEZJWDogSXZ5IGNhbm5vdCBjb25uZWN0IHRvIFVSTHMgd2l0aCAnXycgaW4gdGhlaXIgaG9zdG5hbWUKLSBGSVg6IFRyYW5zaXRpdmUgZGVwZW5kZW5jaWVzIHJlc29sdXRpb25zIGlzc3VlIHdoZW4gZXZpY3Rpb24gaXMgdHJpZ2dlcmVkIChJVlktMTE3OCkKLSBGSVg6IENhbid0IGRlYWwgd2l0aCBbVkVSU0lPTl0gdmVyc2lvbiBwYXR0ZXJuIGZyb20gTWF2ZW4gKElWWS0xMTc3KSAodGhhbmtzIHRvIFJpY2hhcmQgVm93bGVzKQotIEZJWDogdmVyYm9zZS9kZWJ1ZyBtZXNzYWdlcyB3ZXJlIG5vdCBsb2dnZWQgd2hpbGUgcnVubmluZyBpdnk6Y29uZmlndXJlIHRhc2sKLSBGSVg6IEFwYWNoZVVSTExpc3RlciBkb2VzIG5vdCBhbGxvdyBkaXJlY3RvcmllcyBub3QgY29udGFpbmluZyBhIGRvdCBvbiBBcnRpZmFjdG9yeSAoSVZZLTExNzUpICh0aGFua3MgdG8gQW5kZXJzIEphY29ic3NvbikKLSBGSVg6IGFydGlmYWN0LWxvY2sgc3RyYXRlZ3kgY291bGQgaGFuZyBJdnkgd2hlbiByZXNvbHZpbmcgZHluYW1pYyByZXZpc2lvbnMKLSBGSVg6IEF1dGhlbnRpY2F0aW9uIHdvbid0IHdvcmsgaW4gc29tZSBzaXR1YXRpb25zIChJVlktMTE2OCkgKHRoYW5rcyB0byBTdmVuIFdhbHRlcikKLSBGSVg6IFVzaW5nIFNGVFAgcmVzb2x2ZXIgd2l0aCBmdWxsIHBhdHRlcm4gVVJMIHByZXZlbnRzIHVzZSBvZiBkeW5hbWljIHZlcnNpb25zIChJVlktMTE2NykgKHRoYW5rcyB0byBHcmVnb3J5IEZlcm5hbmRleikKLSBGSVg6IHBhcmVudC5ncm91cElkIGlzIG5vdCByZXNvbHZlZCBpbiBtYXZlbiAyIHBhcnNlciAoSVZZLTExNjkpICh0aGFua3MgdG8gQWNoaW0gSHVlZ2VuKQotIEZJWDogQ3JlYXRpb24gb2Ygc3ltbGlua3MgcHJvYmxlbWF0aWMgaW4gV2luZG93cyB3aXRoIEN5Z3dpbiAxLjcgKElWWS0xMTY1KQotIEZJWDogYWRkIGFiaWxpdHkgdG8gcHJvZ3JhbW1hdGljYWxseSBjaGFuZ2UgZGVmYXVsdCByZXNvbHZlciAoSVZZLTExNjMpICh0aGFua3MgdG8gSmFzb24gVHJ1bXApCi0gRklYOiBpdnkuc2V0dGluZ3MuZGlyIHNwYWNlIGVzY2FwaW5nIHByb2JsZW0gKElWWS0xMTYyKQotIEZJWDogSXZ5IGNhbm5vdCBwYXJzZSBhbHRlcm5hdGUgZm9ybWF0IGZvciBNYXZlbiBNRDUgZmlsZXMgKElWWS0xMTU1KQotIEZJWDogSXZ5IGRvZXMgbm90IGNsb3NlIFVSTCBjb25uZWN0aW9uIHRvIGl2eS1yZXBvcnQueHNsIHByb3Blcmx5IChJVlktMTE1MikKLSBGSVg6IEFydGlmYWN0IHJlcG9ydCB0aHJvd3MgTlBFIHdoZW4gYXJ0aWZhY3QgaXMgbm90IGluIGNhY2hlIChJVlktMTE1MCkgKHRoYW5rcyB0byBTdGV2ZSBKb25lcykKLSBGSVg6IHJlc29sdmUgZmFpbHMgZm9yIHRyYW5zaXRpdmUgcmVsb2NhdGVkIG1hdmVuIG1vZHVsZXMgd2hlbiB0aGUgdHlwZSBvZiB0aGUgZGVwZW5kZW5jeSB3YXMgc2V0IHRvICdqYXInCi0gRklYOiBvcHRpb25hbCBkZXBlbmRlbmNpZXMsIHNvdXJjZXMgYW5kIGphdmFkb2NzIGFyZW4ndCByZXNvbHZlZCB3aGVuIGEgbWF2ZW4gbW9kdWxlIGlzIHJlbG9jYXRlZAotIEZJWDogRW5jb3VudGVyZWQgJ211bHRpcGxlIGFydGlmYWN0cyByZXRyaWV2ZWQgdG8gc2FtZSBmaWxlJyBlcnJvciB3aGVuIG1vZHVsZSBkb2VzIG5vdCBoYXZlIG11bHRpcGxlIGFydGlmYWN0cyAoSVZZLTExNDgpCi0gRklYOiBVc2Ugb2YgYSBzaGFyZWQgRG9jdW1lbnRCdWlsZGVyIGNhdXNlcyBTQVhFeGNlcHRpb24gZHVyaW5nIHBhcmFsbGVsIHJlc29sdXRpb25zIChJVlktMTE0NykKLSBGSVg6IG1ldGFkYXRhIGxvY2sgZmlsZXMgbm90IGFsd2F5cyBkZWxldGVkIGZyb20gY2FjaGUgKElWWS0xMTQ1KSAodGhhbmtzIHRvIEphc29uIFRydW1wKQotIEZJWDogRmlsZVN5c3RlbSByZXNvbHZlciB3aXRoIG0yY29tcGF0aWJsZT10cnVlIHRocm93cyBlcnJvciB3aGVuIHB1Ymxpc2hpbmcgbW9kdWxlcyB3aXRoIGRvdHRlZCBvcmdhbmlzYXRpb24gbmFtZXMgKElWWS05NjgpCi0gRklYOiBpdnk6cmV0cmlldmUgc3luYz0idHJ1ZSIgZG9lcyBub3RoaW5nIGlmIGZpcnN0IHZhcmlhYmxlIGlzIG9wdGlvbmFsIChJVlktMTE0MikgKHRoYW5rcyB0byBBbmRyZWFzIEF4ZWxzc29uKQotIEZJWDogTGF0ZXN0IENvbXBhdGlibGUgQ29uZmxpY3QgTWFuYWdlciArIEV4dHJhIEF0dHJpYnV0ZXMgaW4gRGVwZW5kZW5jaWVzJyBJVlkgZmlsZXMgPT0gaW5maW5pdGUgbG9vcCAoSVZZLTk1NikKLSBGSVg6IFJlc29sdmUgd2l0aCBFeHRyYSBBdHRyaWJ1dGVzLCBGb3JjZWQgRGVwZW5kZW5jaWVzIGNhdXNlcyBpbnZhbGlkIGRlbGl2ZXJlZCBpdnkgZmlsZSAoSVZZLTEwNzkpCi0gRklYOiBSZXNvbHZlRW5naW5lLmdldERlcGVuZGVuY2llcyBkb2VzIG5vdCB3b3JrIHVzaW5nIGV4dHJhIGF0dHJpYnV0ZXMgKElWWS0xMTE1KQotIEZJWDogPG92ZXJyaWRlPiBpZ25vcmVkIGluIGR5bmFtaWMgcmVzb2x2ZSBtb2RlIChJVlktMTEzMSkKLSBGSVg6IEl2eU5vZGVFdmljdGlvbi5jbGVhbkV2aWN0ZWQgaGFzIGJhZCBjb21wYXJpc29uIGxvZ2ljIChJVlktMTExOCkKLSBGSVg6IENoYWluUmVzb2x2ZXIgZG9lc24ndCBwYXNzIHRoZSBzcGVjaWZpZWQgJ2NoZWNrbW9kaWZpZWQnIGF0dHJpYnV0ZSB0byB0aGUgY2FjaGUgKElWWS0xMTMzKQotIEZJWDogSXZ5IGNvdWxkbid0IGhhbmRsZSBtYXZlbiBQT01zIHRoYXQgZGVwZW5kIG9uIHRoZWlyc2VsdmVzCi0gRklYOiBTZWFyY2hFbmdpbmUubGlzdE1vZHVsZXMgcmV0dXJucyBNUklEIHdpdGhvdXQgZXh0cmEgYXR0cmlidXRlcyAoSVZZLTExMjgpICh0aGFua3MgdG8gTWljaGFlbCBTY2hlZXR6KQotIEZJWDogSXZ5QnVpbGROdW1iZXIgbm9uLWRldGVybWluaXN0aWMgYmVoYXZpb3VyIChJVlktMTEyMCkKLSBGSVg6IENoYW5nZSBzcGVsbGluZyBvZiAnb2NjdXJlZCcgdG8gJ29jY3VycmVkJyAoSVZZLTExMjMpCi0gRklYOiBJdnkgZGVsaXZlciBmYWlscyB0byByZXBsYWNlIGR5bmFtaWMgcmV2aXNpb24gd2hlbiB1c2luZyBleHRyYSBhdHRyaWJ1dGVzIChJVlktMTExMSkgKHRoYW5rcyB0byBNaWNoYWVsIFNjaGVldHopCi0gRklYOiBJYmlibGlvUmVzb2x2ZXIgbm90IGFsd2F5cyBjb3JyZWN0bHkgY29uZmlndXJlZCB3aGVuIHVzaW5nIEpSRSAxLjUgKElWWS0xMTI0KSAodGhhbmtzIHRvIEZsYXZpbyBDb3V0aW5obyBkYSBDb3N0YSkKLSBGSVg6IFZzdGZwUmVwb3NpdG9yeS5yZWFkUmVzcG9uc2UgdXNlcyBiYWQgY29tcGFyZSBsb2dpYyAoSVZZLTExMTkpICh0aGFua3MgdG8gRGF2ZSBCcm9zaXVzKQotIEZJWDogVVJMUmVzb3VyY2UgZG9lcyBub3QgcHJvcGVybHkgc3VwcG9ydCBhdXRoZW50aWNhdGlvbiAoSVZZLTExMDYpICh0aGFua3MgdG8gSGVzY2hpIEtyZWluaWNrKQotIEZJWDogRXhjZXNzaXZlIGhpdHMgdG8gbWlzc2luZyBVUkxzIHVzZXMgdXAgYWxsIHBvcnRzIG9uIFdpbmRvd3MgKElWWS0xMTA1KQotIEZJWDogaXZ5IHBhcnNlIGV4Y2VwdGlvbiB3aGVuIHVzaW5nIDxwdWJsaWNhdGlvbnMgZGVmYXVsdGNvbmY+IChJVlktMTEwMikKLSBGSVg6IENoYW5nZSBvcmcuYXBhY2hlIHRvIGNvbW1vbnMtY2xpIGF0IGpkYmMtZXhhbXBsZSAoSVZZLTExMDkpCi0gRklYOiBGaXhlZCBuYW1lIHNuYXBzaG90cyBhcmUgbm90IHVwZGF0ZWQgZXZlbiBpZiB0aGV5IGFyZSBtYXJrZWQgYXMgY2hhbmdpbmcgYW5kIHRoZSBwdWJsaWNhdGlvbiBkYXRlIGlzIGNoYW5nZWQgaW4gcmVwbyAoSVZZLTkzOCkKLSBGSVg6IENhbm5vdCBwdWJsaXNoIHdpbGRjYXJkIGNvbmZpZ3VyYXRpb25zIG90aGVyIHRoYW4gKiAoSVZZLTExNzEpCgogICAyLjEuMAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gRE9DVU1FTlRBVElPTjogbGl0dGxlIGltcHJvdmVtZW50IG9mIHRoZSBkb2N1bWVudGF0aW9ucyBvZiB0aGUgaXZ5OmJ1aWxkbGlzdCBhbmQgaXZ5OnJlc29sdmUgQW50IHRhc2tzLgotIEZJWDogQ3JlZGVudGlhbHMgd2VyZSBub3Qgc2V0IHByb3Blcmx5IGZvciBVUkxzIHRoYXQgcmVxdWlyZSBhdXRoZW50aWNhdGlvbiB3aGVuIHVzaW5nIEh0dHBDbGllbnQuCgogICAyLjEuMC1yYzIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotIERPQ1VNRU5UQVRJT046IG5vdCBhbGwgYXR0cmlidXRlcyBvZiBwdWJsaXNoIHRhc2sgYXJlIGRvY3VtZW50ZWQgKElWWS05NjMpICh0aGFua3MgdG8gSm9uIFNjaG5laWRlcikKLSBET0NVTUVOVEFUSU9OOiBtaXNzaW5nIGRvY3VtZW50YXRpb24gZm9yIHRoZSAnVmVyc2lvbiBQYXR0ZXJuIE1hdGNoZXInIChJVlktODcxKSAodGhhbmtzIHRvIEpvbiBTY2huZWlkZXIpCi0gRE9DVU1FTlRBVElPTjogYWRkZWQgbWlzc2luZyBkb2N1bWVudGF0aW9uIGZvciB0aGUgJ2tlZXAnIGF0dHJpYnV0ZSBvbiB0aGUgKHBvc3QpcmVzb2x2ZSBBbnQgdGFza3MgKElWWS0xMDkxKQotIERPQ1VNRU5UQVRJT046IHdyb25nIHVybCBpbiBpbnN0YWxsYXRpb24uaHRtbCAoSVZZLTEwNTQpCgotIE5FVzogY29uZmlndXJhdGlvbiBpbnRlcnNlY3Rpb25zIChJVlktMTA5MykKLSBORVc6IGNvbmZpZ3VyYXRpb24gZ3JvdXBzIChJVlktMTA5NykKLSBORVc6IGFkZGVkIGJ1aWx0LWluIHZlcnNpb25tYXRjaGVyOiAnVmVyc2lvbiBQYXR0ZXJuIE1hdGNoZXInIChJVlktODcxKQoKLSBJTVBST1ZFTUVOVDogUmV0cmlldmUgYW50IHRhc2sgZG9lc24ndCBzdXBwb3J0IGR5bmFtaWMgcmVzb2x2ZSBtb2RlIChJVlktMTA4NSkKLSBJTVBST1ZFTUVOVDogQWRkZWQgc3VwcG9ydCBmb3IgTlRMTSBhdXRoZW50aWNhdGlvbiAoSVZZLTEwOTQpICh0aGFua3MgdG8gTWF0aGlldSBBbnF1ZXRpbikKLSBJTVBST1ZFTUVOVDogU3RhbmRhbG9uZSBydW5uZXIgc2hvdWxkIGFjY2VwdCBhbGwgdGhlIHNhbWUgcGFyYW1ldGVycyBhcyBhbnQgdGFza3MgKElWWS0xMDkwKQotIElNUFJPVkVNRU5UOiBQcmUgYW5kIHBvc3QgcmV0cmlldmUgYXJ0aWZhY3QgZXZlbnRzIChJVlktMTA4NCkKCi0gRklYOiBJdnkgZGlkbid0IGZhaWwgd2hlbiBhbiBvdXRkYXRlZCBhcnRpZmFjdCBpbiBjYWNoZSBjb3VsZG4ndCBnZXQgZGVsZXRlZAotIEZJWDogaXZ5OnJlc29sdmUgaWdub3JlcyBicmFuY2ggaW4gImR5bmFtaWMiIHJlc29sdmUgbW9kZSAoSVZZLTEwODcpICh0aGFua3MgdG8gQWxla3NleSBaaHVrb3YpCi0gRklYOiBbb3JpZ2luYWxuYW1lXSBub3QgZXhwYW5kZWQgZHVyaW5nIHJldHJpZXZlIHdoZW4gbW9kdWxlIGRlc2NyaXB0b3IgY29udGFpbnMgZXh0cmEgYXR0cmlidXRlcyAoSVZZLTEwOTYpCi0gRklYOiBUaGUgQW50IG91dHB1dCB3YXNuJ3QgYWx3YXlzIHByZWZpeGVkIGJ5IHRoZSBuYW1lIG9mIHRoZSB0YXNrCi0gRklYOiBJdnkgYnVpbGRudW1iZXIgdGFzayBkb2VzIG5vdCBmaW5kIGFydGlmYWN0IGluIFNvbmF0eXBlIE5leHVzIHJlcG8gKElWWS0xMDY5KQotIEZJWDogUHVibGlzaCB3aXRoIFNTSCAoc2Z0cCBvciBzc2gpIHByZXZlbnRzIGVuY2xvc2luZyBqYXZhIHByb2Nlc3MgdG8gdGVybWluYXRlIChJVlktMTA3NSkKLSBGSVg6IEliaWJsaW8gcmVzb2x2ZXIgdGhyb3dzIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gd2hlbiB1c2luZyBzbmFwc2hvdCB2ZXJzaW9ucyB3aXRoIHVzZXBvbXM9J2ZhbHNlJyAoSVZZLTEwMjgpCi0gRklYOiBXcm9uZyBCdWlsZEV4Y2VwdGlvbiBtZXNzYWdlcyAoZmluZG1vZHVsZXMpIChJVlktMTA1NikKLSBGSVg6IFBvbU1vZHVsZURlc2NyaXB0b3JCdWlsZGVyIGRvZXMgbm90IHJlc29sdmUgZWpiIHR5cGUgZGVwZW5kZW5jaWVzIHRvIGphciBleHRlbnNpb24gKElWWS0xMDU4KSAodGhhbmtzIHRvIEFuZHJleSBMb21ha2luKQotIEZJWDogSXZ5IGRvZXNuJ3QgaGFuZGxlIG1hdmVuIGRlcGVuZGVuY2llcyB3aXRoIHR5cGUgJ3Rlc3QtamFyJyBjb3JyZWN0bHkgKElWWS0xMDY2KQotIEZJWDogdHJhbnNpdGl2ZSBkZXBlbmRlbmNpZXMgYW5kIGNvbmZsaWN0IG1hbmFnZW1lbnQgKElWWS0xMDgzKQotIEZJWDogZXhjbHVkZSBkb2VzIG5vdCB3b3JrIGluIG5vbi10cml2aWFsIGNvbmYgY2FzZSAoSVZZLTk4MykKLSBGSVg6IFRoZSBhcnRpZmFjdCByZXBvcnQgdGFzayBpcyBnZW5lcmF0aW5nIGR1cGxpY2F0ZSBhcnRpZmFjdCBlbnRyaWVzIChJVlktMTA5OCkKCiAgIDIuMS4wLXJjMQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gSU1QUk9WRU1FTlQ6IEZhaWwgdGhlIHJldHJpZXZlIHdoZW4gbXVsdGlwbGUgYXJ0aWZhY3RzIG9mIHNhbWUgbW9kdWxlIGFyZSBtYXBwZWQgdG8gc2FtZSBmaWxlIChJVlktMTA1MCkKLSBJTVBST1ZFTUVOVDogaXZ5IGluaXRpYWxpemF0aW9uIHNob3VsZG4ndCBmYWlsIGlmIHByb3BlcnRpZXMgZmlsZSBkb2Vzbid0IGV4aXN0IChJVlktMTAzOCkKLSBJTVBST1ZFTUVOVDogaXZ5OnJlc29sdmUgYW50IHRhc2sgZG9lcyBub3Qgc3VwcG9ydCAiYnJhbmNoIiBhdHRyaWJ1dGUgKElWWS0xMDM1KQotIElNUFJPVkVNRU5UOiBBYmlsaXR5IHRvIHN0cmlwIHJldkNvbnN0cmFpbnQgYXR0cmlidXRlIGZyb20gZGVsaXZlcmVkIEl2eSBmaWxlcyAoSVZZLTk4OSkKLSBJTVBST1ZFTUVOVDogZW5oYW5jZWQgZXJyb3IgbWVzc2FnZSB3aGVuIGRlZmluaW5nIGFuIGFydGlmYWN0IGZvciBhbiB1bmtub3duIGNvbmZpZ3VyYXRpb24uCi0gSU1QUk9WRU1FTlQ6IGRpc3BsYXkgdGhlIHJldmlzaW9uIG9mIHRoZSByZXNvbHZlZCBtb2R1bGUgaW4gaXZ5LXJlcG9ydC54c2wgKElWWS0xMDI0KSAodGhhbmtzIHRvIENhcmx0b24gQnJvd24pCi0gSU1QUk9WRU1FTlQ6IHJlc29sdmVyIGF0dHJpYnV0ZSBmb3IgYnVpbGRudW1iZXIgdGFzayAoSVZZLTEwMTkpICh0aGFua3MgdG8gTWFydGluIEVpZ2VuYnJvZHQpCi0gSU1QUk9WRU1FTlQ6IGFkZCByZWZyZXNoIHBhcmFtZXRlciB0byBwb3N0IHJlc29sdmUgdGFza3MgKElWWS0xMDE3KQotIElNUFJPVkVNRU5UOiBSZW1vdmUgZXhjZXNzaXZlIEhFQUQgcmVxdWVzdHMgZm9yIFVSTCByZXBvc2l0b3J5IChJVlktOTk2KQotIElNUFJPVkVNRU5UOiBhZGQgLXZlcnNpb24gb3B0aW9uIG9uIGNvbW1hbmQgbGluZSAoSVZZLTEwMTQpCi0gSU1QUk9WRU1FTlQ6IHN1cHBvcnQgcmVzb2x2ZSByZWZyZXNoIGluIGNvbW1hbmQgbGluZSAoSVZZLTEwMTMpCi0gSU1QUk9WRU1FTlQ6IEVycm9yIG1lc3NhZ2UgaXMgbm90IGNsZWFyIHdoZW4gc3BlY2lmeWluZyBhbiBpbnZhbGlkIHZhbHVlIGZvciBjaGVja3N1bXMgKElWWS05NzcpCi0gSU1QUk9WRU1FTlQ6IGNhdGNoIEFjY2Vzc0NvbnRyb2xFeGNlcHRpb24gb24gU3lzdGVtLmdldFByb3BlcnRpZXMoKSAoSVZZLTEwMTUpCgotIEZJWDogRXJyb3IgbWVzc2FnZTogImltcG9zc2libGUgdG8gZ2V0IGFydGlmYWN0cyB3aGVuIGRhdGEgaGFzIG5vdCBiZWVuIGxvYWRlZCIgLCBvbiBjZXJ0YWluIG1vZHVsZXMgb25seSAoSVZZLTk4NykKLSBGSVg6IEl2eSBkb2Vzbid0IGhhbmRsZSB0aGUgY2xhc3NpZmllciBhdHRyaWJ1dGUgb2YgYXJ0aWZhY3RzIGluc2lkZSBkZXBlbmRlbmN5IGVsZW1lbnRzIChJVlktMTA0MSkKLSBGSVg6IEJ1aWxkbnVtYmVyIHRhc2sgZG9lcyBub3Qgd29yayBmb3IgY2hhaW5lZCByZXNvbHZlcnMgKElWWS0xMDM3KQotIEZJWDogRGVwZW5kZW5jaWVzIGRvbid0IGluaGVyaXQgZXhjbHVzaW9ucyBmcm9tIGRlcGVuZGVuY3lNYW5hZ2VtZW50IChJVlktOTc0KSAodGhhbmtzIHRvIEpvaG4gR2lic29uKQotIEZJWDogRGVwZW5kZW5jeSBDb25maWd1cmF0aW9uIE5lZ2F0aW9uIGRvZXMgbm90IHdvcmsgKElWWS05ODIpCi0gRklYOiBJdnkgcmV0cmlldmUgZG9lcyBub3QgaG9ub3IgdmFsaWRhdGU9ImZhbHNlIiBmcm9tIGl2eXNldHRpbmdzIChJVlktOTkyKQotIEZJWDogU25hcHNob3QgaXNzdWVzIHdoZW4gdXNpbmcgaWJpYmxpbyByZXNvbHZlciB3aXRoIG0yY29tcGF0aWJsZSBpcyBmYWxzZSAoSVZZLTEwMjgpCi0gRklYOiBJdnkgU3RhbmRhbG9uZSBoYW5ncyBhZnRlciBwdWJsaXNoaW5nIHRvIFNTSCByZXNvbHZlciAoSVZZLTEwMDkpCi0gRklYOiBvdmVyd3JpdGU9J2ZhbHNlJyBjb21wbGV0ZWx5IHByZXZlbnRzIHB1Ymxpc2hpbmcgaW50byB1cmwgcmVwb3NpdG9yaWVzIChJVlktMTAwNykKLSBGSVg6IEZpeGVkIGJyb2tlbiBsb2dvIGxpbmsgaW4gaXZ5LXJlcG9ydC54c2wgKElWWS0xMDI0KSAodGhhbmtzIHRvIENhcmx0b24gQnJvd24pCi0gRklYOiBTdXBwb3J0IGZvciBvcGVuc2xsIHNoYTEgYW5kIG1kNSBjaGVja3N1bSAoSVZZLTEwMDYpCi0gRklYOiBUVEwgZG9lcyBub3Qgd29yayBhcyBleHBlY3RlZCAoSVZZLTEwMTIpCi0gRklYOiBMaXN0aW5nIG9mIFVSTCdzIHVuZGVyIGEgZ2l2ZW4gVVJMIGRvZXMgbm90IGhhbmRsZSBmdWxseSBzcGVjaWZpZWQgVVJMJ3MgKElWWS05NTkpICh0aGFua3MgdG8gUmFuZHkgTm90dCkKLSBGSVg6IDxpdnk6YnVpbGRudW1iZXI+IHJldHVybnMgd3JvbmcgcmVzdWx0IHdoZW4gcmVzb2x2ZSBmYWlscyAoSVZZLTk3MCkKLSBGSVg6IGxpc3RpbmcgcG9zc2libGUgdG9rZW4gdmFsdWVzIGRvZXNuJ3Qgd29yayBwcm9wZXJseSBmb3IgdGhlIGliaWJsaW8gcmVzb2x2ZXIKLSBGSVg6IEl2eSBkZWxpdmVyIGZhaWxzIHRvIHJlcGxhY2UgZHluYW1pYyByZXZpc2lvbiAoSVZZLTk5OSkgKHRoYW5rcyB0byBNYXJ0aW4gRWlnZW5icm9kdCkKCiAgIDIuMC4wCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSBJTVBST1ZFTUVOVDogRXh0ZW5kIHBhY2thZ2VyIHJlc29sdmVyIHRvIGFsbG93IGFyYml0cmFyeSBhbnQgdGFza3MgaW4gYnVpbGQgaW5zdHJ1Y3Rpb25zIChJVlktOTk0KSAodGhhbmtzIHRvIEFyY2hpZSBDb2JicykKLSBJTVBST1ZFTUVOVDogSXZ5IFN0YW5kYWxvbmUgc2V0dGluZyB0byBvdmVyd3JpdGUgcHVibGljYXRpb25zIChJVlktOTc2KQotIElNUFJPVkVNRU5UOiBTdXBwb3J0IHVzZU9yaWdpbiBmb3IgYXJ0aWZhY3RzIHdpdGggYSBzZXQgdXJsIGF0dHJpYnV0ZSAoSVZZLTk2NSkgKHRoYW5rcyB0byBhbGV4MzIyKQoKLSBGSVg6IE51bGxQb2ludGVyRXhjZXB0aW9uIGF0IFBvbU1vZHVsZURlc2NyaXB0b3JCdWlsZGVyLmFkZERlcGVuZGVuY3kgKElWWS05OTUpCi0gRklYOiBMb2cgbGV2ZWxzIGFyZW4ndCByZXNwZWN0ZWQgaW4gY2VydGFpbiBjYXNlcyB1c2luZyB0aGUgc3RhbmRhbG9uZSBmdW5jdGlvbmFsaXR5IChJVlktOTYwKSAodGhhbmtzIHRvIFBhdHJpY2sgV29vZHdvcnRoKQotIEZJWDogTlBFIGluIExvZ1JlcG9ydE91dHB1dHRlciAoSVZZLTk2MSkKLSBGSVg6IE51bGxQb2ludGVyRXhjZXB0aW9uIHdoZW4gcmVzb2x2aW5nIG1vZHVsZSB3aWhvdXQgcmV2aXNpb24gaW4gdGhlIHBhdHRlcm4gKElWWS05ODApCi0gRklYOiBJTyBwcm9ibGVtIHdoaWxlIHBhcnNpbmcgaXZ5IGZpbGUgKFJlc2V0dGluZyB0byBpbnZhbGlkIG1hcmspIChJVlktOTc1KQotIEZJWDogQ2Fubm90IHBhcnNlIG1hdmVuMiBwb21zIGNvbnRhaW5pbmcgYW4gVVRGLTggQk9NCi0gRklYOiBGaWxlcyB3aXRoIG5vbi1sYXRpbiBzeW1ib2xzIGZhaWwgdG8gZG93bmxvYWQgKElWWS05NjIpCgogICAyLjAuMC1yYzIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotIERPQ1VNRU5UQVRJT046IEZpbGVzeXN0ZW0gcmVzb2x2ZXI6IHRhbGtzIGFib3V0ICJwYXR0ZXJucyIgYnV0IGRvZXMgbm90IG1lbnRpb24gdGhlc2UgbXVzdCBiZWNvbWUgYWJzb2x1dGUgZmlsZSBwYXRocyAoSVZZLTkxMCkKCi0gTkVXOiBBbGxvdyBhdXRoZW50aWNhdGlvbiBjcmVkZW50aWFscyB0byBiZSBzcGVjaWZpZWQgaW4gc2V0dGluZ3MgZmlsZSAoSVZZLTk0MykgKHRoYW5rcyB0byBSYW5keSBOb3R0KQoKLSBJTVBST1ZFTUVOVDogRXJyb3IgbWVzc2FnZXMgb24gdXNlIG9mIHJlbGF0aXZlIHBhdGhzIGNhbiBiZSBjeXJwdGljIChJVlktOTA5KQotIElNUFJPVkVNRU5UOiBNYXZlbiBhY2NlcHRzIGlsbGVnYWwgWE1MIGZvciBpdHMgcG9tJ3MsIEl2eSBub3QgKElWWS05MjEpCi0gSU1QUk9WRU1FTlQ6IEl2eSBzaG91bGQgc2V0IHRoZSAke2Jhc2VkaXJ9IHByb3BlcnR5IChJVlktOTUzKQoKLSBGSVg6IE51bGxQb2ludGVyRXhjZXB0aW9uIGluIEFic3RyYWN0UGF0dGVybnNCYXNlZFJlc29sdmVyIHdoZW4gb3JnYW5pemF0aW9uIGlzIG51bGwgKElWWS05MjgpCi0gRklYOiBOdWxsUG9pbnRlckV4Y2VwdGlvbiB3aGVuIEl2eSBjYW5ub3QgbG9jYXRlIHBvbSBwYXJlbnQgKElWWS05MjcpCi0gRklYOiBDYW5ub3QgY29uZmlndXJlIGl0ZW1zIHdpdGggamF2YS5pby5GaWxlIGF0dHJpYnV0ZXMgKElWWS05MDUpCi0gRklYOiBFbnZpcm9ubWVudCBwcm9wZXJ0aWVzIGluIGl2eSBzZXR0aW5ncyBhcmUgbm8gbG9uZ2VyIHJlc29sdmVkIChJVlktOTA3KQotIEZJWDogUmVzb2x2ZSBmYWlsZWQgb24gY2VydGFpbiBwcm94eSBlbnZpcm9ubWVudCAoSVZZLTkxMSkKLSBGSVg6IEl2eSBjYW4ndCBoYW5kbGUgYmFyZSBQT00gJHtncm91cElkfSBwcm9wZXJ0eSAoSVZZLTkxMykgKHRoYW5rcyB0byBUb20gV2lkbWVyKQotIEZJWDogUHJvcGVydGllcyBuZWVkZWQgdG8gcGFyc2UgdmVyc2lvbiBpbiBQT00gKElWWS05MTQpICh0aGFua3MgdG8gVG9tIFdpZG1lcikKLSBGSVg6IGJ1aWxkLnhtbDogY2hlY2tzdHlsZSArIGNoZWNrc3R5bGUtcmVwb3J0IGRvbnQgd29yayB0b2dldGhlciAoSVZZLTkxOSkKLSBGSVg6IE1hdmVuIHBhY2thZ2luZyBvZiAicG9tIiBzaG91bGQgYWRkIGEgImphciIgYXJ0aWZhY3QgaWYgcHJlc2VudCAoSVZZLTkyMCkKLSBGSVg6IFN0YWNrT3ZlcmZsb3cgd2hlbiB1c2luZyBpdnk6c2V0dGluZ3Mgd2l0aCAiaXZ5Lmluc3RhbmNlIiBhcyBpZCAoSVZZLTkyNCkKLSBGSVg6IE1hdmVuIFBvbSByZWFkZXIgZG9lc24ndCBoYW5kbGUgb3B0aW9uYWwgZGVwZW5kZW5jaWVzIGNvcnJlY3RseSBpbiBzb21lIGluc3RhbmNlcyAoSVZZLTkyNikgKHRoYW5rcyB0byBQaGlsIE1lc3NlbmdlcikKLSBGSVg6IGl2eTpzZXR0aW5ncyBkb2Vzbid0IHdvcmsgaWYgaWQgaXMgYSBwcm9wZXJ0eSAoSVZZLTkyNSkKLSBGSVg6IEh0dHBDbGllbnRIYW5kbGVyIGhhbmdpbmcgaW4gY2VydGFpbiBjYXNlcyAoSVZZLTkzMCkgKHRoYW5rcyB0byBTY290dCBIZWJlcnQpCi0gRklYOiBDYW4ndCBkb3dubG9hZCBmaWxlcyBjb250YWluaW5nIHNwYWNlIG9yICsgaW4gdGhlaXIgbmFtZXMgYnkgSFRUUCAoSVZZLTkyMykKLSBGSVg6IE1hdmVuMiBwYXJzZXIgZG9lc24ndCBzdXBwb3J0IFBPTXMgd2l0aCA8bW9kZWw+IGFzIHJvb3QgKElWWS05MzIpCi0gRklYOiBEZWZhdWx0IHJldHJpZXZlLCBwdWJsaXNoIGFuZCBkZWxpdmVyIHBhdHRlcm5zIGRvZXNuJ3QgaW5jbHVkZSB0aGUgW2NsYXNzaWZpZXJdIHRva2VuIChJVlktOTM1KQotIEZJWDogQ2FuJ3QgdXNlIGxhdGVzdC5yZWxlYXNlIGZvciBwb20gZGVwZW5kZW5jaWVzIChJVlktOTM2KQotIEZJWDogVW5hYmxlIHRvIHJlc29sdmUgc25hcHNob3QgdmVyc2lvbnMgZGVwZW5kaW5nIG9uIHhtbCBlbGVtZW50cyBvcmRlciAoSVZZLTk0MCkKLSBGSVg6IHByZS1yZXNvbHZlLWRlcGVuZGVuY3kgZXZlbnQgZG9lc24ndCBleHBvcnQgYnJhbmNoIGluZm9ybWF0aW9uIChJVlktOTQxKSAodGhhbmtzIHRvIEphcm9zbGF3IFd5cHljaG93c2tpKQotIEZJWDogY2FjaGVmaWxlc2V0IHByb2R1Y2VzIGFuIGVtcHR5IGZpbGVzZXQgd2hlbiB0aGUgY2FjaGUgcmVmZXJzIHRvIGxpYnMgaW4gZGlyZWN0b3JpZXMgdGhhdCBvbmx5IGhhdmUgdGhlIHJvb3QgZGlyZWN0b3J5IGluIGNvbW1vbiAoSVZZLTk0OCkgKHRoYW5rcyB0byBDaHJpcyBXb29kKQotIEZJWDogRXh0cmEgQXR0cmlidXRlcyBzcGVjaWZpZWQgaW4gdGhlIERlcGVuZGVuY3kncyBNb2R1bGUgRGVzY3JpcHRvciBhcmUgbm90IGF2YWlsYWJsZSB0byByZXNvbHZlcnMgKElWWS05MjkpICh0aGFua3MgdG8gU2NvdHQgSGViZXJ0KQotIEZJWDogU3VwcG9ydCBmb3IgcGFzc2luZyBhcmJpdHJhcnkgYXJndW1lbnRzIHRvIHRoZSAtbWFpbiBpbnZva2VkIGNsYXNzIHdoZW4gdXNpbmcgdGhlIHN0YW5kYWxvbmUgbW9kZSBpcyBzZXZlcmVseSBsaW1pdGVkIChJVlktOTUyKSAodGhhbmtzIHRvIFBhdHJpY2sgV29vZHdvcnRoKQotIEZJWDogQ29ycmVjdGx5IHNldCBpdnkucmVzb2x2ZWQuY29uZmlndXJhdGlvbnMgcHJvcGVydHkgd2hlbiB0aGUgY29uZiBzdHJpbmcgaW5jbHVkZXMgYSBuZWdhdGlvbiBvcGVyYXRvciAoSVZZLTk1MSkgKHRoYW5rcyB0byBQYXRyaWNrIFdvb2R3b3J0aCkKLSBGSVg6IE1hdmVuIHBvbSBsaWNlbnNlIHVybCBjYW4gY29udGFpbiB4bWwgZW50aXRpZXMgKElWWS05NTApCi0gRklYOiBNYXZlbiBwb20gbGljZW5zZSBoYXMgbmFtZSBhcyBvcHRpb25hbCBlbGVtZW50IChJVlktOTQ5KQotIEZJWDogSXZ5IGRvZXNuJ3QgdGhyb3cgYW4gZXJyb3Igd2hlbiB0aGUgcGFyZW50IFBPTSBjYW5ub3QgYmUgbG9hZGVkIChJVlktOTMxKQotIEZJWDogTWF2ZW4gcG9tIHBhcnNlciBpcyBub3QgaGFuZGxpbmcgcG9tIHByb3BlcnR5ICR7cHJvamVjdC5wYXJlbnQudmVyc2lvbn0gKElWWS05NTUpCi0gRklYOiBpbmxpbmUgcmVzb2x2ZSBpZ25vcmVzIHRoZSB0cmFuc2l0aXZlIGF0dHJpYnV0ZSAoSVZZLTk1OCkKCiAgIDIuMC4wLXJjMQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gTkVXOiBSZXBvcnQgdmVyc2lvbiBvZiBJdnkgaW4gSFRUUCBoZWFkZXJzICh1c2VyLWFnZW50Pykgd2hlbiBJdnkgZG93bmxvYWRzIGFydGlmYWN0cyAoSVZZLTg3OCkKLSBORVc6IEFkZCBwdWJsaXNoIHN1cHBvcnQgdG8gVVJMIHJlc29sdmVyIChJVlktODQ4KSAodGhhbmtzIHRvIEJyaWFuIFNhbmRlcnMpCi0gTkVXOiBCZXR0ZXIgc3VwcG9ydCBmb3IgbG9jYWwgYnVpbGRzIChJVlktODU3KQotIE5FVzogUmV0YWluIG9yaWdpbmFsIGRlcGVuZGVuY3kgY29uc3RyYWludCBydWxlcyBpbiByZXNvbHZlZCBpdnkgZmlsZSAoSVZZLTczOSkKLSBORVc6IEFkZCBhIG5ldyByZXNvbHZlIG1vZGUgKG9wdGlvbmFsbHkgcGVyIG1vZHVsZSkgdG8gdXRpbGl6ZSBkeW5hbWljIGNvbnN0cmFpbnQgcnVsZSBtZXRhZGF0YSAoSVZZLTc0MCkKLSBORVc6IEFkZCB0cmFuc2l0aXZlIGRlcGVuZGVuY3kgdmVyc2lvbiBhbmQgYnJhbmNoIG92ZXJyaWRlIG1lY2hhbmlzbSAoSVZZLTc4NCkKLSBORVc6IEFkZCBuZXcgcGFja2FnZXIgcmVzb2x2ZXIgKElWWS04MjkpICh0aGFua3MgdG8gQXJjaGllIENvYmJzKQoKLSBJTVBST1ZFTUVOVDogRHVhbFJlc29sdmVyIHNob3VsZCBhbHNvIHByb3ZpZGUgc2V0RGVzY3JpcHRvciBtZXRob2QgaW5zdGVhZCBvZiBzZXRBbGxvd25vbWQsIHdoaWNoIGlzIGRlcHJlY2F0ZWQgZm9yIHRoZSBvdGhlciByZXNvbHZlcnMgKElWWS05MDMpCi0gSU1QUk9WRU1FTlQ6IFBhcnNlIGxpY2Vuc2UgaW5mb3JtYXRpb24gaW4gcG9tcyAoSVZZLTg5MikKLSBJTVBST1ZFTUVOVDogQ2hhbmdlICdhbHdheXNVc2VFeGFjdFJldmlzaW9uJyBkZWZhdWx0IHZhbHVlIHRvIGZhbHNlIChJVlktODkxKQotIElNUFJPVkVNRU5UOiBCZXR0ZXIgYW5kIG1vcmUgaG9tb2dlbmVvdXMgcmVsYXRpdmUgcGF0aHMgaGFuZGxpbmcgKElWWS0zODcpIAotIElNUFJPVkVNRU5UOiB1bmRlcHJlY2F0ZSBjb25maWd1cmUgdGFzayAoSVZZLTg0OSkKLSBJTVBST1ZFTUVOVDogRGV0ZWN0IG1pc3NpbmcgYXJ0aWZhY3RzIG9uIHB1Ymxpc2ggYXNhcCAoSVZZLTg2MikKLSBJTVBST1ZFTUVOVDogQWxsb3cgdG8gc2V0IHRoZSBicmFuY2ggYXQgZGVsaXZlci9wdWJsaXNoIHRpbWUgKElWWS04NTkpCi0gSU1QUk9WRU1FTlQ6IEFkZCBkZWZhdWx0Y29uZiBpbiBwdWJsaWNhdGlvbnMgdGFnIG9mIGl2eSBmaWxlIChJVlktODAxKQotIElNUFJPVkVNRU5UOiBTdXBwb3J0IGF0b21pYyBwdWJsaXNoIHdpdGggc3ViIGRpcmVjdG9yeSBzdHJ1Y3R1cmUgKElWWS04NTYpCi0gSU1QUk9WRU1FTlQ6IFByb3ZpZGUgYW50IHRhc2sgdG8gcmV0cmlldmUgaW5mb3JtYXRpb24gZnJvbSBwdWJsaXNoZWQgaXZ5IG1vZHVsZXMgKElWWS04MzgpICh0aGFua3MgdG8gRGF2aWQgTWFwbGVzZGVuKQotIElNUFJPVkVNRU5UOiBJbnN0YWxsIHRhc2sgZmFpbHMgYnV0IHJlYXNvbiBpcyBub3QgZGlzcGxheWVkIHdpdGhvdXQgdXNpbmcgLWRlYnVnIG9yIC12ZXJib3NlIChJVlktODM0KQotIElNUFJPVkVNRU5UOiBTU0ggcmVzb2x2ZXIgZG9lc24ndCBzdXBwb3J0IGtleWJvYXJkLWludGVyYWN0aXZlIGF1dGhlbnRpY2F0aW9uIChJVlktODM2KSAodGhhbmtzIHRvIFRvYmlhcyBIaW1zdGVkdCkKLSBJTVBST1ZFTUVOVDogZGVjbGFyZSBzb3VyY2UgYW5kIGphdmFkb2MgYXJ0aWZhY3RzIGluIG1hdmVuMiBtb2R1bGVzIChJVlktMzI1KQotIElNUFJPVkVNRU5UOiBTZXQgdGhlIGxhc3QgbW9kaWZpZWQgYXR0cmlidXRlIG9mIGZpbGVzIGRvd25sb2FkZWQgZnJvbSByZXBvc2l0b3JpZXMgKElWWS04MjMpCi0gSU1QUk9WRU1FTlQ6IElmIEROUyBpcyBwbGF5aW5nIHVwLCBJdnkgdGFrZXMgYSBsb3QgbG9uZ2VyIHRvIHNvcnQgcHJvamVjdCBkZXBlbmRlbmNpZXMgKElWWS04MTcpCi0gSU1QUk9WRU1FTlQ6IG1ha2UgaXQgcG9zc2libGUgdG8gc3BlY2lmeSBwZXJtaXNzaW9ucyBvZiBwdWJsaXNoZWQgZmlsZXMgZm9yIHRoZSBTU0ggcmVzb2x2ZXIgKElWWS03NjQpCi0gSU1QUk9WRU1FTlQ6IExvYWQgSXZ5IHZlcnNpb24gbnVtYmVyIGludG8gc29tZSBBbnQgcHJvcGVydHkgKElWWS03OTApCi0gSU1QUk9WRU1FTlQ6IE1ha2UgSXZ5IHN0YW5kYWxvbmUgcnVubmFibGUgd2l0aCBubyByZXF1aXJlZCBkZXBlbmRlbmNpZXMgKElWWS03NTcpCi0gSU1QUk9WRU1FTlQ6IGFkZCBicmFuY2ggYXR0cmlidXRlIGluIGl2eTppbnN0YWxsIHRhc2sgKElWWS03MjcpCi0gSU1QUk9WRU1FTlQ6IFBhcnNlIGRlc2NyaXB0aW9uIGluZm9ybWF0aW9uIGluIGl2eSBmaWxlcyAoSVZZLTc2NikKLSBJTVBST1ZFTUVOVDogUGFyc2UgZGVzY3JpcHRpb24gYW5kIGhvbWUgcGFnZSBmcm9tIHBvbXMgKElWWS03NjcpCi0gSU1QUk9WRU1FTlQ6IENoYW5nZSBhbGxvd25vbWQgYW5kIHNraXBidWlsZHdpdGhvdXRpdnkgaW50byBhIG1vcmUgc2VtYW50aWNhbGx5IGNvcnJlY3QgbmFtZSAoSVZZLTI5NykKLSBJTVBST1ZFTUVOVDogU21hcnRlciBkZXRlcm1pbmF0aW9uIGlmIGFuIGV4cHJlc3Npb24gaXMgZXhhY3Qgb3Igbm90IGZvciBSZWdleHBQYXR0ZXJuTWF0Y2hlciBhbmQgR2xvYlBhdHRlcm5NYXRjaGVyCi0gSU1QUk9WRU1FTlQ6IENoZWNrIGJyYW5jaCBjb25zaXN0ZW5jeSBkdXJpbmcgcmVzb2x2ZSAoSVZZLTg1OCkKLSBJTVBST1ZFTUVOVDogR2l2ZSB0aGUgcG9zc2liaWxpdHkgdG8gbm90IGNvbXB1dGUgaXZ5LmRlcHMuY2hhbmdlZCAoSVZZLTg3NikKLSBJTVBST1ZFTUVOVDogQWRkIGEgbWVtb3J5IGNhY2hlIGZvciB0aGUgbW9kdWxlIGRlc2NyaXB0b3IgdGhhdCBhcmUgcGFyc2VkIGZyb20gdGhlIGNhY2hlIChJVlktODgzKQotIElNUFJPVkVNRU5UOiBJbXByb3ZlIHBlcmZvcm1hbmNlIChJVlktODcyKQotIElNUFJPVkVNRU5UOiBBZGRpdGlvbmFsIGRlc2NyaXB0aW9ucyBvZiBidWlsZC54bWwgdGFyZ2V0cyAoSVZZLTQ5OSkKCi0gRklYOiBQdWJsaXNoIEFudCBUYXNrICd3YXJub25taXNzaW5nJyBpZ25vcmVkIChJVlktODY3KQotIEZJWDogSXZ5IHN0YW5kLWFsb25lIGlnbm9yZXMgLWNhY2hlIGFyZ3VtZW50IChJVlktOTAxKSAodGhhbmtzIHRvIENocmlzIENoaWx2ZXJzKQotIEZJWDogaXZ5LmNhY2hlLmRpci4ke3NldHRpbmdzUmVmfSBpcyBzZXQgdG8gZGVmYXVsdCBpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0Q2FjaGVEaXIgZnJvbSB0aGUgaXZ5c2V0dGluZ3MueG1sIGFmdGVyIGl2eTpyZXNvbHZlIChJVlktODk4KQotIEZJWDogSXZ5IGliaWJsaW8gcmVzb2x2ZXIgY2hva2VzIG9uIHZhcmlhYmxlcyB3aGlsZSBjaGVja2luZyBkZXNjcmlwdG9yIGNvbnNpc3RlbmN5IChJVlktODE4KQotIEZJWDogRW5hYmxlIGNvbnNpc3RlbnQgc3VwcG9ydCBvZiB0aGUgY29uZmlndXJhdGlvbiBuZWdhdGlvbiBvcGVyYXRvciAoSVZZLTg5NCkgKHRoYW5rcyB0byBQYXRyaWNrIFdvb2R3b3J0aCkKLSBGSVg6IGFkZCB2YXJpYWJsZSBleHBhbnNpb24gaW4gZXh0cmEgYXR0cmlidXRlcyAoSVZZLTc5OCkKLSBGSVg6IEludmFsaWQgVVJMIHdoZW4gdXNpbmcgZHluYW1pYyByYW5nZXMgKElWWS04ODUpCi0gRklYOiBjYW4ndCB1c2UgZ290b05vZGUgd2l0aCBhIG5vZGUgd2hpY2ggaGFzIG5vdCBiZWVuIHZpc2l0ZWQgeWV0IChJVlktODc0KQotIEZJWDogSXZ5IFB1Ymxpc2ggVGFzayBGYWlscyBXaGVuIFhNTCBDb21tZW50cyBFeGlzdCBOZXh0IHRvIERlcGVuZGVuY3kgRGVjbGFyYXRpb25zIChJVlktODg4KQotIEZJWDogSW5jb3JyZWN0IGRpcmVjdG9yeSBwYXRoIHJlc29sdmUgd2hlbiBydW5uaW5nIGZyb20gYSBkaWZmZXJlbnQgZGlyZWN0b3J5IChJVlktMjMyKQotIEZJWDogSXZ5I2xpc3RUb2tlblZhbHVlcyhTdHJpbmcsIE1hcCkgZG9lcyBub3QgZmlsdGVyIHJldHVybmVkIHZhbHVlcywgYW5kIGRvZXMgbm90IHVzZSBtYXZlbi1tZXRhZGF0YS54bWwgZmlsZXMgd2l0aCBJQmlibGlvIHJlc29sdmVyIChJVlktODg2KQotIEZJWDogQ2lyY3VsYXIgRGVwZW5kZW5jeSBtZXNzYWdlcyBpbiBhIHJlc29sdmUgZG8gbm90IHJlZmxlY3QgdGhlIGNvbmZpZ3VyYXRpb24gdXNlZCBkdXJpbmcgdGhlIHJlc29sdmUgKElWWS03MDgpCi0gRklYOiBGYWlsdXJlIHRvIHRyYW5zaXRpdmVseSBpbnN0YWxsIE1hdmVuMiBhcnRpZmFjdHMgd2l0aCBuYW1lc3BhY2UgKElWWS00NDApCi0gRklYOiBVbndhbnRlZCBldmljdGlvbiBvZiBkZXBlbmRlbmNpZXMgd2hlbiBvcHRpb25hbCBhdHRyaWJ1dGVzIGluIGRlcGVuZGVuY3kgYW5kIGluZm8gdGFncyBhcmUgaW4gY29uc2lzdGVudCAoSVZZLTc0NSkKLSBGSVg6IEhUVFAgSGFuZGxlcnMgaWdub3JlIHVuc3VjY2Vzc2Z1bCByZXNwb25zZSBjb2RlcyAoSVZZLTg2NCkgKHRoYW5rcyB0byBKYW1lcyBQLiBXaGl0ZSkKLSBGSVg6IERlbGl2ZXIgZGVsaXZlcnMgdGhlIHdyb25nIHZlcnNpb24gd2hlbiBhIGR5bmFtaWMgcmV2aXNpb24gaXMgZXZpY3RlZCBiZWZvcmUgYmVpbmcgcmVzb2x2ZWQgKElWWS03MDcpCi0gRklYOiBJbmNvbnNpc3RlbmN5IHdpdGggIm11bHRpLXByb2plY3QiIHR1dG9yaWFsIChJVlktNjY3KQotIEZJWDogVVJMUmVwb3NpdG9yeSBkb2VzIG5vdCBhbGxvdyBzb21lIHZhbGlkIGZpbGUgc2NoZW1lIHVyaSdzIChJVlktODg0KQotIEZJWDogSW5jb3JyZWN0IHBhcnNpbmcgYXJ0aWZhY3RQYXR0ZXJuIGF0dHJpYnV0ZSBpbiBhIHNmdHAgcmVzb2x2ZXIgKElWWS02NjEpICh0aGFua3MgdG8gQWxleGV5IEtpc2VsZXYpCi0gRklYOiBNYXZlbjIgImVqYiIgcGFja2FnaW5nIGlzIG5vdCBzdXBwb3J0ZWQgKElWWS04NzMpCi0gRklYOiBDb25maWcgZmlsZXMgd2l0aCAjIGluIHBhdGggY2FuJ3QgYmUgcmVhZCAoSVZZLTg2OCkgKHRoYW5rcyB0byBTaW1vbiBTdGVpbmVyKQotIEZJWDogQ2FjaGUgY2FuJ3QgZGlzdGluZ3Vpc2ggYXJ0aWZhY3RzIHdpdGggY2xhc3NpZmllcnMgKElWWS04MDMpICh0aGFua3MgdG8gSmFtZXMgUC4gV2hpdGUpCi0gRklYOiBSZXBvcnRzIHNob3dpbmcgZG91YmxlIGRlcGVuZGVuY2llcyBpbiBjZXJ0YWluIGNhc2VzIChJVlktNTc4KQotIEZJWDogRHluYW1pYyByZXZpc2lvbiByZXNvbHZlIGRvZXMgbm90IHRocm93IGVycm9yIHdoZW4gY29uZmlndXJhdGlvbiBpcyBtaXNzaW5nIChJVlktODYxKQotIEZJWDogUmVmZXJlbmNlZCByZXNvbHZlciBub3QgZm91bmQgaW4gbWFjcm8gKElWWS04NjApCi0gRklYOiBJdnkgZmlsZXMgYXJlIG5vdCByZXRyaWV2ZWQgd2hlbiB1c2luZyB1c2VPcmlnaW49dHJ1ZSAoSVZZLTcxMykKLSBGSVg6IE5QRSBpbiBJdnk6aW5zdGFsbCB0YXNrIGlmIHRoZSByZXBvc2l0b3J5IGNhY2hlIGRpciBoYXMgYmVlbiBjbGVhcmVkIChJVlktODQzKQotIEZJWDogTWF2ZW4gdmVyc2lvbiByYW5nZXMgd2l0aCAoICkgYXJlIG5vdCBzdXBwb3J0ZWQgKElWWS02NzgpICh0aGFua3MgdG8gTWljaGFlbCBLZWJlKQotIEZJWDogSWdub3JlIG1hdmVuIG1ldGFkYXRhIGZpbGVzIHdoZW4gbGlzdGluZyByZXZpc2lvbnMgKElWWS03NjUpCi0gRklYOiBoYWx0b25taXNzaW5nIG9uIHB1Ymxpc2ggdGFzayBkb2VzIG5vdCBwcmV2ZW50IHRoZSBvdGhlciBmaWxlcyB0byBiZSBwdWJsaXNoZWQsIGV2ZW4gd2l0aCBhbiBhdG9taWMgcHVibGlzaGVyIChJVlktNjU2KQotIEZJWDogVHJhbnNpdGl2ZSBkZXBlbmRlbmNpZXMgcmVzb2x2ZXMgaW5jb3JyZWN0bHkgd2hlbiBkaWZmZXJlbnQgbW9kdWxlcyB1c2VzIHRoZSBzYW1lIGRlcGVuZGVuY3kgd2l0aCBkaWZmZXJlbnQgY29uZmlndXJhdGlvbnMgaW4gdGhlIHNhbWUgYnVpbGQgKElWWS01NDEpCi0gRklYOiB0cmFuc2l0aXZlIGF0dHJpYnV0ZSBzZXQgdG8gZmFsc2UgYmVjYXVzZSBvZiBkZXBlbmRlbmN5IChJVlktMTA1KQotIEZJWDogV3JvbmcgY2hlY2sgZm9yIGRlZmF1bHRDYWNoZUFydGlmYWN0UGF0dGVybiAoSVZZLTg0MCkKLSBGSVg6IE5QRSBpbiBpdnk6aW5zdGFsbCBpZiBpdnkuc2V0dGluZ3MueG1sIGNvbnRhaW5zIGN1c3RvbSBhdHRyaWJ1dGUgZm9yIGEgbW9kdWxlIChJVlktODM4KQotIEZJWDogSXZ5IHVuaXQgdGVzdHMgZmFpbCBiZWNhdXNlICdjbGFzc2lmaWVyJyBhdHRyaWJ1dGUgb2YgJ2FydGlmYWN0cycgZWxlbWVudCBpcyBtaXNzaW5nIGluIGl2eS54c2QgKElWWS04MzcpCi0gRklYOiBJdnkgYnVpbGQgc3lzdGVtOiBmaXggYnVpbGQueG1sIHRvIGFsbG93ICJhbnQgY292ZXJhZ2UtcmVwb3J0IiBiZWhpbmQgYSBwcm94eSAoSVZZLTgzMikKLSBGSVg6IE5QRSBpbiBBYnN0cmFjdFJlc29sdmVyLmV4aXN0cygpIGlmIGEgcmVzb3VyY2UgY2Fubm90IGJlIGZvdW5kIChJVlktODMxKQotIEZJWDogSXZ5IGRpc3RyaWJ1dGlvbiBqYXJzIGNvbnRhaW5zIGR1cGxpY2F0ZSBlbnRyaWVzIChJVlktODI4KQotIEZJWDogaXZ5OnJlcG9ydCB3aWxsIGdlbmVyYXRlIGFuIEhUTUwgZmlsZSB0aGF0IHJlZmVyZW5jZXMgbm9uLWV4aXN0ZW50IGl2eS1yZXBvcnQuY3NzIChJVlktODI2KQotIEZJWDogZHluYW1pYyByZXNvbHZlTW9kZSBub3QgYmVpbmcgZHluYW1pYyBvbiBicmFuY2ggKElWWS04MjUpCi0gRklYOiBGaWxlc3lzdGVtIHJlcG9zaXRvcmllcyBjYW4gbm90IGhhdmUgKCkgaW4gdGhlIHBhdGggKElWWS03OTcpCi0gRklYOiBUeXBlIHRhZyBpbiBwb21zIG5vdCBzdXBwb3J0ZWQgKElWWS03NjIpCi0gRklYOiBBbiBlbXB0eSBleGNsdXNpb24gdGFnIHJlc3VsdHMgaW4gYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIChJVlktODIxKQotIEZJWDogTWF2ZW4gc2NvcGUgZGVmaW5lZCBpbiBQT00gZGVwZW5kZW5jeU1hbmFnZW1lbnQgc2VjdGlvbiBub3QgaG9ub3VyZWQgKElWWS04MTEpCi0gRklYOiBTRlRQUmVwb3NpdG9yeSBpbmNvcnJlY3RseSBjYWxjdWxhdGVzIGxhc3QgbW9kaWZpZWQgdGltZSBmb3IgcmVzb3VyY2VzIChJVlktODE1KQotIEZJWDogRmlsZXN5c3RlbSByZXNvbHZlciBkb2VzIG5vdCBldmFsdWF0ZSBbYnJhbmNoXSB0b2tlbiB3aGVuIHB1Ymxpc2hpbmcgKElWWS04MTQpCi0gRklYOiBVc2luZyBpdnk6c2V0dGluZ3Mgd2l0aCB0aGUgImlkIiBhdHRyaWJ1dGUgbm90IGJlaGF2aW5nIGFzIGV4cGVjdGVkIChJVlktODA5KQotIEZJWDogb25NaXNzaW5nRGVzY3JpcHRvciBkb2Vzbid0IHdvcmsgZHVlIHRvID09IGNvbXBhcmlzb24gKElWWS04MDUpICh0aGFua3MgdG8gQmVuIEhhbGUpCi0gRklYOiByZXZpc2lvbiB0b2tlbiBpcyBub3Qgc2V0IGluIHJlcG9ydCBvdXRwdXRwYXR0ZXJuIChJVlktMjcyKQotIEZJWDogSXZ5IHVzZXMgdGhlIGZpcnN0IHNldCBvZiBjb25maWd1cmF0aW9ucyBpdCBzZWVzIHdoZW4gcmVzb2x2aW5nIG11bHRpcGxlIHZlcnNpb25zIG9mIGEgbW9kdWxlIChJVlktNjgxKQotIEZJWDogRXZpY3Rpb24gZmFpbHMgZm9yIGxpYnMgbm90IHByb3ZpZGluZyB0aGVpciBpdnkgY29uZmlndXJhdGlvbiBhbmQgcHJvdmlkaW5nIGFydGlmYWN0cyBuYW1lZCBkaWZmZXJlbnQgYmV0d2VlbiBsaWIgdmVyc2lvbnMgKElWWS01MzcpCi0gRklYOiBNZW1vcnkgbGVhayBpbiBNb2R1bGVSZXZpc2lvbklkLmphdmEgKElWWS03OTEpCi0gRklYOiBjb25mbGljdCBtYW5hZ2VyIHNjb3BpbmcgZG9lcyBub3Qgd29yayBhcyBleHBlY3RlZCAoSVZZLTQ2NSkKLSBGSVg6IGl2eS5vcmlnaW5hbC54bWwgZmlsZSB1c2luZyBhcnRpZmFjdCBwYXR0ZXJuIGluIGNhY2hlIGFuZCBjYXVzaW5nIHByb2JsZW1zIChJVlktNzg3KQotIEZJWDogaXZ5OnJldHJpZXZlIHdpdGggc3luYz0idHJ1ZSIgcmVtb3ZlcyB0aGUgLnN2biBkaXJlY3RvcnkgKElWWS03NjMpCi0gRklYOiBJdnkgc2lsZW50bHkgZmFpbHMgWE1MIGVycm9ycyBpbiBpdnlyZXAgKElWWS01NzkpCi0gRklYOiBFeHRyYSBBdHRyaWJ1dGVzIGFyZSBub3QgYXZhaWxhYmxlIHRvIHJlc29sdmVyIGFmdGVyIHJlc29sdmUgaWYgY2FjaGUgd2FzIGVtcHR5IChJVlktNzczKQotIEZJWDogTnVsbFBvaW50ZXJFeGNlcHRpb24gZHVyaW5nIFJlc292bGVFbmdpbmUuZG93bmxvYWRBcnRpZmFjdHMuIChJVlktNTkyKQotIEZJWDogc2V0dGluZyBtMmNvbXBhdGlibGUgb24gaWJpYmxpbyByZXNvbHZlciBvdmVyd3JpdGUgcm9vdCBhbmQgcGF0dGVybiBzZXR0aW5ncyAoSVZZLTQzNykgKHRoYW5rcyB0byBKaW5nIFh1ZSkKLSBGSVg6IHVuYWJsZSB0byByZXNvbHZlIHNuYXBzaG90IHZlcnNpb25zIChJVlktNTAxKQotIEZJWDogTm8gZXJyb3Igb3Igd2FybmluZyB3aGVuIGEgcmVzb2x2ZXIgcmVmZXJlbmNlcyBhIG5vbi1leGlzdGVudCBjYWNoZSAoSVZZLTc3NykKLSBGSVg6IGl2eSBwcm9wZXJ0aWVzIGRlZmluZWQgaW4gYW4gaW5jbHVkZSBmaWxlIG5vdCBhdmFpbGFibGUgaW4gdGhlIGZpbGUgdGhhdCBpbmNsdWRlcyBpdCAoSVZZLTc4MCkKLSBGSVg6IFNGVFBSZXBvc2l0b3J5Lmxpc3QoU3RyaW5nKSBoaWRlcyBleGNlcHRpb25zIChJVlktNzUxKQotIEZJWDogV3JvbmcgZXJyb3IgbWVzc2FnZSBmb3IgcmVwdWJsaXNoaW5nIGEgbW9kdWxlIChJVlktNzUyKQotIEZJWDogcmVzb2x2ZSBmYWlscyB0byBwdXQgbWV0YWRhdGEgaW4gY2FjaGUgKElWWS03NzkpCi0gRklYOiBtdWx0aXBsZSBjbGVhbmNhY2hlIGFuZCBpbmxpbmUgcmV0cmlldmUgZXJyb3IgKElWWS03NzgpCi0gRklYOiBidWlsZGxpc3QgZXZpY3RzIG1vZHVsZXMgd2l0aCB0aGUgc2FtZSBuYW1lLCBidXQgZGlmZmVyZW50IG9yZ2FuaXNhdGlvbiAoSVZZLTczMSkKLSBGSVg6IE91dCBvZiBtZW1vcnkvU3RhY2sgb3ZlcmZsb3cgZm9yIG5ldyBoaWdobHkgY291cGxlZCBwcm9qZWN0IChJVlktNTk1KQotIEZJWDogQ29tcGF0aWJpbGl0eSB3aXRoIG1hdmVuJ3MgZGVwZW5kZW5jeU1hbmdlbWVudCAoSVZZLTc1MykKLSBGSVg6IGl2eTpzZXR0aW5ncyBmYWlscyB3aGVuIG92ZXJyaWRlIGlzIG5vdCBzZXQgdG8gJ3RydWUnIChJVlktNzcxKQotIEZJWDogTlBFIHdoZW4gc3BlY2lmeWluZyBib3RoIHJlc29sdmVJZCBhbmQgaW5saW5lIGluIGFuIEl2eTpSZXNvbHZlIChJVlktNzc2KQotIEZJWDogcmVwcmVwb3J0IHRhc2sgbm90IHdvcmtpbmcgYWdhaW5zdCBhIHJlcG9zaXRvcnkgc3RydWN0dXJlZCBieSBicmFuY2hlcyAoSVZZLTcxNikKLSBGSVg6IEl2eSByZXBvcnRzIGEgY29uZmxpY3Qgd2hlbiB0aGUgc2FtZSBmaWxlIGlzIHN1cHBvc2VkIHRvIGJlIHJldHJpZXZlZCBhdCB0aGUgc2FtZSBsb2NhdGlvbiB0d2ljZSAob3IgbW9yZSkgKElWWS03NDMpCi0gRklYOiBTdGFja092ZXJmbG93RXJyb3Igd2hlbiBjb25maWd1cmF0aW9uIGV4dGVuZHMgaXRzZWxmIChJVlktNjk2KQotIEZJWDogWE1MIHNjaGVtYSBhbWJpZ3VpdHkgKElWWS03NTApCi0gRklYOiBpdnktcmVzb2x2ZSBmYWlscyB3aGVuIGEgcHJvamVjdCBoYXMgZGlmZmVyZW50IGRlcGVuZGVuY2llcyBpbiBkaWZmZXJlbnQgYnJhbmNoZXMgKElWWS03MTcpCi0gRklYOiBQdWJsaXNoRXZlbnRzVGVzdCBmYWlscyB3aGVuIEl2eSBzb3VyY2VzIGFyZSBsb2NhdGVkIGluIGEgZGlyZWN0b3J5IHdpdGggYSArIChJVlktNzU1KQotIEZJWDogWE1MIGVudGl0eSBwYXJzaW5nIGRvZXMgbm90IHdvcmsgcHJvcGVybHkgKElWWS03MzcpICh0aGFua3MgdG8gUGF0cmljayBXb29kd29ydGgpCi0gRklYOiBDYWNoZWZpbGVzZXQgdGFzayBzaWxlbnRseSBmYWlscyB3aXRoIHBhcmVudCBkaXIgIi4uIiBjb25zdHJ1Y3QgKElWWS02MzgpCi0gRklYOiBTRlRQIHNob3VsZCB2ZXJpZnkgaW5wdXQgcGFyYW1ldGVyIGZvciBob3N0bmFtZSAoSVZZLTczNCkKLSBGSVg6IENsYXNzcGF0aCBpc3N1ZXMgd2l0aCB2ZnMgZnRwIHdoaWxlIGJlaW5nIHVzZWQgYXMgYSBidW5kbGUgKElWWS03ODUpCi0gRklYOiBSZWxhdGl2ZSBpbmNsdWRlIGluIGEgc2V0dGluZ3MgbXVzdCBiZSBldmFsdWF0ZWQgcmVsYXRpdmVseSB0byB0aGUgc2V0dGluZ3MgZmlsZSAoSVZZLTM3MikKLSBGSVg6IFRoZSBCdW5kbGUtVmVyc2lvbiBpcyAwLjAuMCBpbiB0aGUgYnVpbGQgYXJ0aWZhY3RzIChJVlktODAyKQotIEZJWDogRml4IHRoZSBlbmNvZGluZyB1c2VkIGluIFhNTCByZXBvcnRzIChJVlktODE2KQotIEZJWDogUHJvcGVydGllcyB0YWcgaW4gaXZ5IGNvbmYgZG8gbm90IHN1cHBvcnQgcmVsYXRpdmUgcGF0aCAoSVZZLTg5KQotIEZJWDogSXZ5IGNhdXNlcyBJdmVERSB0byBmYWlsIHdoZXJlIGEgcHJvcGVydGllcyBmaWxlIGlzIHJlbGF0aXZlIHRvIGl2eWNvbmYueG1sIChJVlktNTczKQoKLSBET0NVTUVOVEFUSU9OOiBGaXhlZCBtb3JlIHRoYW4gYSBodW5kcmVkICgxMDArKSBvYnNvbGV0ZSAiY29uZmlndXJhdGlvbiIgcmVmZXJlbmNlczsgcmVwbGFjZWQgd2l0aCAic2V0dGluZ3MiIChJVlktODYzKSAodGhhbmtzIHRvIFNha2FyaSBNYWFyYW5lbikKLSBET0NVTUVOVEFUSU9OOiBFbGFib3JhdGVkIGRvY3VtZW50YXRpb24gb2YgaXZ5IGZpbGVzIGFuZCBkZWxpdmVyL3B1Ymxpc2ggdGFza3MgKElWWS04NDcpICh0aGFua3MgdG8gU2FrYXJpIE1hYXJhbmVuKQotIERPQ1VNRU5UQVRJT046IEl2eSB0ZXJtaW5vbG9neSBlbGFib3JhdGlvbiBhbmQgaWxsdXN0cmF0aW9uIChJVlktODUyKSAodGhhbmtzIHRvIFNha2FyaSBNYWFyYW5lbikKLSBET0NVTUVOVEFUSU9OOiBCcm9rZW4gbGluayBpbiBkb2N1bWVudGF0aW9uIGluIEl2eSBmaWxlcyBzZWN0aW9uLCBpbmZvIGVsZW1lbnQgcGFnZSAoSVZZLTc4OCkKLSBET0NVTUVOVEFUSU9OOiBBZGQgbmV3IGNhY2hlIGluZm9ybWF0aW9uIHRvIHJlc29sdmVyIGRvYyAoSVZZLTc3MikgKHRoYW5rcyB0byBDYXJsdG9uIEJyb3duKQoKICAgMi4wLjAtYmV0YTIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotIE5FVzogSW50cm9kdWNlIFJlcG9zaXRvcnlNYW5hZ2VtZW50RW5naW5lIChJVlktNjY1KQotIE5FVzogQWRkIHN1cHBvcnQgZm9yIGltcG9ydGluZyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgKElWWS02MDgpCi0gTkVXOiBBZGQgYWJpbGl0eSBmb3IgYnVpbGRsaXN0IHRhc2sgdG8gc3RhcnQgYnVpbGQgZnJvbSBzcGVjaWZpZWQgbW9kdWxlIGluIHRoZSBsaXN0IChJVlktNjk3KSAodGhhbmtzIHRvIE1pcmtvIEJ1bG92aWMpCi0gTkVXOiBDYWNoZSBkeW5hbWljIHJldmlzaW9uIHJlc29sdXRpb24gKElWWS02OTQpCi0gTkVXOiBNYWtlIHJlc29sdmUgY29uc29sZSBvdXRwdXQgY29uZmlndXJhYmxlIHBlciByZXNvbHZlIChJVlktNzE1KQoKLSBJTVBST1ZFTUVOVDogYnJhbmNoIGFuZCBleHRyYSBhdHRyaWJ1dGVzIG1pc3NpbmcgZnJvbSBpbmZvIEFudCB0YXNrIChJVlktNzIxKQotIElNUFJPVkVNRU5UOiBSZXZpZXcgc2V0dGluZ3MgbG9hZGluZyBpbiBBbnQgKElWWS03MDMpCi0gSU1QUk9WRU1FTlQ6IE1vdmUgdXNlT3JpZ2luIHRvIHJlcG9zaXRvcnkgY2FjaGUgbWFuYWdlciAoSVZZLTcwMCkKLSBJTVBST1ZFTUVOVDogTWFrZSBJQmlibGlvIHJlc29sdmVyIGNvbXBhdGlibGUgd2l0aCBtYXZlbiBwcm94eSAoSVZZLTQ2NikKLSBJTVBST1ZFTUVOVDogVXNlIG5hbWVzcGFjZSBhd2FyZSB2YWxpZGF0aW9uIChJVlktNTUzKQotIElNUFJPVkVNRU5UOiB1c2UgTW9kdWxlUmV2aXNpb25JZCBpbnN0ZWFkIG9mIE1vZHVsZUlkIGluIEl2eVNldHRpbmdzI2dldFJlc29sdmVyIChJVlktNjkxKQotIElNUFJPVkVNRU5UOiBGbGV4aWJsZSBjYWNoZSBtYW5hZ2VtZW50IChJVlktMzk5KSAoV2l0aCBjb250cmlidXRpb24gb2YgQWRyaWFuIFNhbmRvcikKLSBJTVBST1ZFTUVOVDogRGVjcmVhc2UgbWVtb3J5IGZvb3RwcmludCAoSVZZLTY2MikKLSBJTVBST1ZFTUVOVDogRG93bmdyYWRlIEFudCB2ZXJzaW9uIHJlcXVpcmVtZW50IHRvIDEuNiB0byBidWlsZCBJdnkgKElWWS02ODcpCi0gSU1QUk9WRU1FTlQ6IEluIHRoZSBSZXNvbHZlUmVwb3J0IGNsYXNzLCBhZGQgdGhlIHBvc3NpYmlsaXR5IHRvIGZpbHRlciB0aGUgZXZpY3RlZCBtb2R1bGUgd2hpbGUgZ2V0dGluZyB0aGUgbGlzdCBvZiBEb3dubG9hZEFydGlmYWN0IChJVlktNzA0KSAodGhhbmtzIHRvIE5pY29sYXMgTGFsZXbvv71lKQotIElNUFJPVkVNRU5UOiBSZWZhY3RvciB0aGUgUG9tTW9kdWxlRGVzY3JpcHRvclBhcnNlciBpbiBvcmRlciB0byBhbGxvdyBlYXNpZXIgaW50ZWdyYXRpb24gb2YgbWF2ZW4gcG9tCgotIEZJWDogaXZ5Omluc3RhbGwgdGFzayBub3QgdXNpbmcgdmFsaWRhdGUgYXR0cmlidXRlIChJVlktNzI4KQotIEZJWDogQmFkIGNvbmZsaWN0IHJlc29sdXRpb24gbGVhZHMgdG8gYmFkICJjb25maWd1cmF0aW9uKHMpIG5vdCBmb3VuZCIgZXJyb3IgKElWWS03MjkpCi0gRklYOiBSZXNvbHZpbmcgZm9yIG11eWx0aXBsZSBjb25maWd1cmF0aW9ucyB3aGVuIG9uZSBpcyBub3QgaW4gdGhlIGxpc3Qgb2YgYXZhaWxhYmxlIGNvbmZpZ3VyYXRpb25zIGRvZXMgbm90IGFib3J0IHRoZSBidWlsZCAoSVZZLTcyMCkKLSBGSVg6IEJyYW5jaCBhdHRyaWJ1dGUgY29uc2lkZXJlZCBhcyBib3RoIGEgc3RhbmRhcmQgYW5kIGV4dHJhIGF0dHJpYnV0ZSBvbiBtb2R1bGUgaW5mbyAoSVZZLTcyNikKLSBGSVg6IEJyYW5jaCBhdHRyaWJ1dGUgbm90IHNldCBvbiBkZWxpdmVyIHdoZW4gdXNpbmcgYSBub24gZGVmYXVsdCBicmFuY2ggKElWWS03MjQpCi0gRklYOiBOdWxsUG9pbnRlckV4Y2VwdGlvbiByZXBvcnRlZCBpbnN0ZWFkIG9mIGVycm9yIGluIGl2eTpjYWNoZXBhdGggKElWWS02OTApCi0gRklYOiBOUEUgd2hlbiBjYWxsaW5nIHJldHJpZXZlIGlmIHNvbWUgYXJ0aWZhY3RzIGFyZSBub3QgYXZhaWxhYmxlIGxvY2FsbHkgKElWWS03MTIpCi0gRklYOiBXaGVuIGluIHNzaCBwbHVnaW4gd2UgZG9lcyBub3Qgc2V0IHVzZXJuYW1lIGluIHNjaGVtZSwgSXZ5IGFsd2F5cyB0cnkgdG8gY29ubmVjdCB3aXRoIGd1ZXN0IHVzZXJuYW1lLCBldmVuIGlmIHdlIGNoYW5nZSBvbmUgaW4gcGFuZWwuIChJVlktNzEwKSAodGhhbmtzIHRvIFJ1c2xhbiBTaGV2Y2hlbmtvKQotIEZJWDogTlBFIGluIFNzaENhY2hlIGR1cmluZyBwdWJsaXNoIHdpdGggc3NoIHJlc29sdmVyIHdpdGhvdXQgcGFzc0ZpbGUgKElWWS03MDkpICh0aGFua3MgdG8gUnVzbGFuIFNoZXZjaGVua28pCi0gRklYOiBVcGRhdGUgaW5zdGFsbCBpdnkgYnVpbGQgZmlsZSBleGFtcGxlIChJVlktNzA1KSAodGhhbmtzIHRvIEJlbmphbWluIEZyYW5jaXNvdWQpCi0gRklYOiBJdnkgc3dhbGxvd3MgUGFyc2VFeGNlcHRpb24gd2hlbiB1c2luZyBhIGxhdGVzdCBzdHJhdGVneSByZXF1aXJpbmcgbW9kdWxlIGRlc2NyaXB0b3JzIChJVlktNzAyKSAodGhhbmtzIHRvIE5pY29sYXMgTGFsZXbvv71lKQotIEZJWDogUHJvYmxlbSB3aXRoIGNhY2hlZCBJdnkgZmlsZXMgd2hpY2ggaGF2ZSBleHRyYSBhdHRyaWJ1dGVzIChJVlktNjkzKQotIEZJWDogRGV0ZWN0aW9uIG9mIG5ld2VyIGFuZCBiZXR0ZXIgYXJ0aWZhY3RzIHNob3VsZCBub3QgaGFwcGVuIGlmICdjaGVja01vZGlmaWVkJyBpcyBzZXQgdG8gJ2ZhbHNlJyAoSVZZLTM4OSkgKHdpdGggY29udHJpYnV0aW9uIGZyb20gSm9oYW4gU3R1eXRzKQotIEZJWDogSXZ5IGRvZXNuJ3QgcmVzcGVjdCB0aGUgb3JkZXIgb2YgdGhlIGl2eSBwYXR0ZXJucyBhcyBkZWZpbmVkIGluIHRoZSBzZXR0aW5ncyAoSVZZLTY3NikKLSBGSVg6IFhtbE1vZHVsZURlc2NyaXB0b3JXcml0ZXIgZG9lc24ndCB3cml0ZSB0aGUgZGVwcmVjYXRlZCBhdHRyaWJ1dGUgb2YgdGhlICJpdnktbW9kdWxlL2NvbmZpZ3VyYXRpb25zL2NvbmYiIGVsZW1lbnQgKElWWS02NjQpCi0gRklYOiBYTUxNb2R1bGVEZXNjcmlwdG9yV3JpdGVyIGRvZXMgbm90IHdyaXRlIGV4dHJhIGF0dHJpYnV0ZXMgKElWWS00NzEpICh3aXRoIGNvbnRyaWJ1dGlvbiBmcm9tIE1pa2tlbCBCamVyZykKLSBGSVg6IGxhdGVzdCBjb21wYXRpYmxlIGNvbmZsaWN0IG1hbmFnZXIgZmFpbHMgd2l0aCBjaXJjdWxhciBkZXBlbmRlbmNpZXMgYW5kIGR5bmFtaWMgcmV2aXNpb24gKElWWS02NjMpCi0gRklYOiBTdHJpY3QgY29uZmxpY3RtYW5hZ2VyIHNlZW1zIHRvIG5vdCBzdXBwb3J0IGR5bmFtaWMgcmV2aXNpb25zIChJVlktNDc0KQotIEZJWDogTlBFIGluIG5hbWVzcGFjZSB0cmFuc2Zvcm1hdGlvbiBkdXJpbmcgdGhlIGl2eTpmaW5kcmV2aXNpb24gYW5kIGl2eTpyZXNvbHZlIHRhc2sgZXhlY3V0aW9uIChJVlktNjU5KSAodGhhbmtzIHRvIEFuZHJlYSBCZXJuYXJkbyBDaWRkaW8pCi0gRklYOiBNYXZlbiB0ZXN0IHNjb3BlIGluY2x1ZGVzIGFsbCBydW50aW1lIGRlcGVuZGVuY2llcyAoSVZZLTY4MikKLSBGSVg6IEluaGVyaXQgZGVwZWRlbmNpZXMgZGVmaW5lZCBpbiBwYXJlbnQgcG9tIChJVlktNjgzKQotIEZJWDogSW5jb3JyZWN0IGl2eSBmcm9tIG1hdmVuIHBvbSBnZW5lcmF0aW9uIHdoZW4gY2xhc3NpZmllciBhcmUgdXNlciAoSVZZLTcxNCkgKHRoYW5rcyB0byBSdXNsYW4gU2hldmNoZW5rbykKLSBGSVg6IG0yIGluY29tcGF0aWJpbGl0eSAtIElWWSBkb2VzIG5vdCByZWNvZ25pemUgcHJvcGVydHkgc2VjdGlvbihJVlktNjM3KQotIEZJWDogTWF2ZW4gdGVzdCBzY29wZSBub3QgbWFwcGVkIHRvIHRlc3QgY29uZiAoSVZZLTc0NCkgKHRoYW5rcyB0byBEYW5ubyBGZXJyaW4pCgotIFRBU0s6IFJlbW92ZSBjYWNoZSBhdHRyaWJ1dGUgb24gQW50IHRhc2tzIChJVlktNjg1KQoKLSBJbXByb3ZlbWVudCBpbiBjb2RpbmcgY29udmVudGlvbnMgKElWWS01MTEpICh3aXRoIGNvbnRyaWJ1dGlvbiBmcm9tIE1hcmt1cyBNLiBNYXkpCgogICAyLjAuMC1iZXRhMQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gTkVXOiBTaGFyZSBjYWNoZSB3aXRoIGxvY2tpbmcgKElWWS02NTQpCi0gTkVXOiBzdXBwb3J0IGF0b21pYyBwdWJsaXNoIG9wZXJhdGlvbiAoSVZZLTQ5MikgKHdpdGggY29udHJpYnV0aW9uIGZyb20gR2VvZmYgUmVlZHkpCi0gTkVXOiBsYXRlc3QgY29tcGF0aWJsZSBjb25mbGljdCBtYW5hZ2VyIChJVlktNjQ4KQotIE5FVzogQWRkIGEgdGFzay9jb2RlIHRvIGNyZWF0ZSBNMiBQT00gZmlsZXMgZnJvbSBJdnkgY29uZmlndXJhdGlvbnMgKElWWS00MTYpCi0gTkVXOiBbQnVpbGRdIFB1Ymxpc2ggdGhlIGl2eSBzb3VyY2VzIChJVlktNjQ2KSAodGhhbmtzIHRvIE5pY29sYXMgTGFsZXbvv71lKQoKLSBJTVBST1ZFTUVOVDogRWFzZSBwZXJmb3JtYW5jZSBhdWRpdGluZyAoSVZZLTY1NSkKLSBJTVBST1ZFTUVOVDogTWF2ZW4gRGVwZW5kZW5jeSBNYW5hZ2VtZW50IGlzIG5vdCB1c2VkIHRvIGRldGVybWluZSBhcnRpZmFjdCB2ZXJzaW9uIChJVlktNjE2KSAodGhhbmtzIHRvIEppbSBCb25hbm5vKQotIElNUFJPVkVNRU5UOiBzcGxpdCB0aGUgY2FjaGUgaW50byBhbiBkb3dubG9hZGVkIGFydGlmYWN0cyBjYWNoZSBhbmQgYSBtZXRhZGF0YSBjYWNoZSAoSVZZLTYyOCkKLSBJTVBST1ZFTUVOVDogYWRkIHB1Ymxpc2ggdHJpZ2dlcnMgdG8gZXZlbnQgc3lzdGVtIChJVlktNjUwKSAodGhhbmtzIHRvIEphc29uIFRydW1wKQotIElNUFJPVkVNRU5UOiBPbmx5IGRpc3BsYXkgdW5pcXVlIGNpcmN1bGFyIGRlcGVuZGVuY2llcyBkdXJpbmcgUmVzb2x2ZSAoSVZZLTY1MyBJVlktNTE0KSAod2l0aCBjb250cmlidXRpb24gZnJvbSBKb2huIFdpbGxpYW1zKQotIElNUFJPVkVNRU5UOiBBZGRpbmcgb3B0aW9uICdjcCcsIHdoaWNoIG1ha2VzIGl0IHBvc3NpYmxlIGZvciBtYWluIHRvIGJlIGxvYWRlZCBmcm9tIGZpbGUgKElWWS01NDMpICh0aGFua3MgdG8gVGplZXJkIFZlcmhhZ2VuKQotIElNUFJPVkVNRU5UOiBCYXNpY1VSTEhhbmRsZXIgc2hvdWxkIHVzZSBtZXRob2Q9aGVhZCBmb3IgZ2V0VVJMSW5mbyAoSVZZLTYxMSkgKHRoYW5rcyB0byBKaW0gQm9uYW5ubykKLSBJTVBST1ZFTUVOVDogYXJ0aWZhY3Rwcm9wZXJ0eSBzaG91bGQgbm90IG92ZXJ3cml0ZSB0aGUgZXhpc3RpbmcgcHJvcGVydGllcyAoSVZZLTU4NykKLSBJTVBST1ZFTUVOVDogU3VwcG9ydCAqKHByaXZhdGUpIGFuZCAqKHB1YmxpYykgaW4gdGhlIGNvbmZzIHBhcmFtZXRlciBvZiB0aGUgcmVzb2x2ZSAoSVZZLTU4OCkKLSBJTVBST1ZFTUVOVDogcmVwbGFjZSAqIGJ5ICoocHVibGljKSB3aGVuIHJlc29sdmluZyBpbmxpbmUgKElWWS01ODkpCi0gSU1QUk9WRU1FTlQ6IGl2eSBodG1sIHJlcG9ydHMgbm93IHJlZmVycyBodHRwOi8vYW50LmFwYWNoZS5vcmcgKHBhcnRpYWwgSVZZLTQxNCkKLSBJTVBST1ZFTUVOVDogSW1wcm92ZW1lbnRzIG9uIGhlbGxvIGl2eSBleGFtcGxlIChJVlktNjI2KSAod2l0aCBjb250cmlidXRpb24gZnJvbSBKYWNvYiBHcnlkaG9sdCBKZW5zZW4pCi0gSU1QUk9WRU1FTlQ6IE1ha2UgdGhlIHJvb3QgYXR0cmlidXRlIGluIHRoZSBpdnlyZXAgcmVzb2x2ZXIgbWFuZGF0b3J5IChJVlktNjI1KQotIElNUFJPVkVNRU5UOiBOZXcgdGV4dCByZXByZXNlbnRhdGlvbiBmb3IgbWFpbiBtb2R1bGUgbWV0YWRhdGEgY29uY2VwdHMgKElWWS02NDkpCgotIEZJWDogbTIgaW5jb21wYXRpYmlsaXR5IC0gSVZZIGRvZXMgbm90IHJlY29nbml6ZSBwcm9wZXJ0eSBzZWN0aW9uIChJVlktNjM3KQotIEZJWDogbTIgaW5jb21wYXRpYmlsaXR5IC0gSVZZIGRvZXMgbm90IHJlY29nbml6ZSBwYXJlbnQgcG9tIChJVlktNjM2KQotIEZJWDogQXR0ZW1wdCB0byBkb3dubG9hZCBhIGZpbGUgd2l0aCAmIGluIGl0cyBuYW1lIGNhdXNlcyBTQVhQYXJzZUV4Y2VwdGlvbiBpbiBJdnkgKElWWS02MzUpCi0gRklYOiBCYWQgSXZ5Q29udGV4dCBzY29wZSBjYXVzaW5nIG1lbW9yeSBsZWFrIGFuZCBiYWQgaGFuZGxpbmcgb2Ygc3VicHJvamVjdCBidWlsZHMgKElWWS02MzkpCi0gRklYOiBSZXNvbHV0aW9uIGZhaWx1cmUgd2hlbiBubyBpdnkueG1sIGZpbGUgcHJlc2VudCAoSVZZLTYzMCkKLSBGSVg6ICR7cGFyZW50LnZlcnNpb259IHByb3BlcnR5IGlzIG5vdCByZWNvZ25pemVkIGluIG1hdmVuMiBwb20gKElWWS02MjApCi0gRklYOiBIYW5kbGUgcmVsb2NhdGlvbiB0YWcgaW4gbWF2ZW4gMiBwb20gKElWWS01ODYpCi0gRklYOiBJdnkgZG9lc24ndCB3b3JrIHdpdGggQW50IDEuNi4yIChJVlktNjE0KQotIEZJWDogRW1wdHlTdGFja0V4Y2VwdGlvbiB3aGVuIHVwZ3JhZGluZyBmcm9tIDEuNCB0byAyLjAgKElWWS02MTApCi0gRklYOiBJdnk6cmV0cmlldmUgZmFpbHMgdGhyb3VnaCBwcm94eSBzZXJ2ZXIgKElWWS01MjkpCi0gRklYOiBqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uOiBJbnZhbGlkIHVyaSB3aGVuIHdvcmtpbmcgd2l0aCB2ZXJzaW9uIHJhbmdlcyAoSVZZLTM5MCkKLSBGSVg6IEl2eSBzZXR0aW5ncyBpbmNsdWRlIC10YWcgdXJsIGF0dHJpYnV0ZSBkb2VzIG5vdCB3b3JrIGNvcnJlY3RseSAoSVZZLTYwMSkKLSBGSVg6IFN0YXRpYyByZXZpc2lvbiByZXBsYWNlbWVudCBpcyBub3Qgd29ya2luZyB3aGVuIGEgZHluYW1pYyByZXZpc2lvbiBpcyBldmljdGVkIGJ5IGEgdHJhbnNpdGl2ZSBkZXBlbmRlbmN5IChJVlktNjAzKSAod2l0aCBjb250cmlidXRpb24gZnJvbSBNYXR0aGlhcyBLaWxpYW4pCi0gRklYOiBOdWxsUG9pbnRlckV4Y2VwdGlvbiB3aGlsc3QgcmVzb2x2aW5nIHRyYW5zaXRpdmUgZGVwZW5kZW5jaWVzIChJVlktNTkwKQotIEZJWDogY2FjaGVwYXRoIGJhc2VkIG9uIGEgcmVzb2x2ZSBkb25lIGluIGEgcHJldmlvdXMgYnVpbGQgYnJva2VuIChJVlktNTgzKQotIEZJWDogUmVzb2x2aW5nIGR5bmFtaWMgdmVyc2lvbiBmYWlscyB3aGVuIHVzaW5nIG11bHRpcGxlIHBhdHRlcm5zIGlmIG9ubHkgb25lIHBhdHRlcm4gZmluZCBhIHJldmlzaW9uIGFuZCBvdGhlcnMgZG9uJ3QgKElWWS02MDIpCi0gRklYOiBJbnZhbGlkIGNoYXJhY3RlciBpbiBJdnlSZXRyaWV2ZVRlc3QgY2F1c2luZyBtb3N0IHRlc3RzIHRvIGZhaWwgKElWWS02MDQpCi0gRklYOiBpdnk6c2V0dGluZ3MgYW5kIGl2eTpyZXRyaWV2ZSB3aXRoIGV4cGxpY2l0IGlkIGNhdXNlcyB1bndhcnJhbnRlZCBERVBSRUNBVEVEIHdhcm5pbmcgKHRoYW5rcyB0byBKYWNvYiBHcnlkaG9sdCBKZW5zZW4pCgotIFJFRkFDVE9SSU5HOiBFeHRyYWN0IGEgc2V0dGluZ3MgaW50ZXJmYWNlIGZvciB0aGUgZGlmZmVyZW50IGVuZ2luZXMKCi0gVEFTSzogUmV2aWV3IGFsbCB0dXRvcmlhbHMgdG8gbWFrZSBzdXJlIHRoZXkgYXJlIGluIHN5bmMgd2l0aCAyLjAgKElWWS01OTEpICh3aXRoIGNvbnRyaWJ1dGlvbiBmcm9tIEppbmcgWHVlKQotIFRBU0s6IFNhdGlzZnkgdGhlIFVTIGV4cG9ydCBjb250cm9sIGxhd3MgZm9yIHNvZnR3YXJlICJzcGVjaWFsbHkgZGVzaWduZWQiIHRvIHVzZSBjcnlwdG9ncmFwaHkuIChJVlktNTkzKQoKCiAgIDIuMC4wLWFscGhhMi1pbmN1YmF0aW5nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSBORVc6IEFkZCBjbGVhbmNhY2hlIHRhc2sgKElWWS01NjUpCi0gTkVXOiBBIGNoZWNrc3R5bGUgcmVwb3J0IGlzIGdlbmVyYXRlZCAoSVZZLTQ4MykgKHRoYW5rcyB0byBKYW4gTWF0ZXJuZSkKLSBORVc6IEhpZGUgcHJpdmF0ZSBvciBzcGVjaWZpYyBjb25mIHdoZW4gcHVibGlzaGluZyAoSVZZLTc3KQoKLSBJTVBST1ZFTUVOVDogRmlsZSBidWZmZXIgaW5jcmVhc2VkIHRvIDY0S0IgKElWWS01NTEpCi0gSU1QUk9WRU1FTlQ6IEV4cG9zZSBkZWZhdWx0IGNhY2hlIGxvY2F0aW9uIGFzIGFuIGFudCBwcm9wZXJ0eSAoSVZZLTU2MykKLSBJTVBST1ZFTUVOVDogRXhwb3NlIEl2eSB2YXJpYWJsZXMgYXMgQW50IFByb3BlcnRpZXMgKElWWS01NjQpCi0gSU1QUk9WRU1FTlQ6IENoYW5nZSBkZWZhdWx0IGNhY2hlIGxvY2F0aW9uIChJVlktNTMwKQotIElNUFJPVkVNRU5UOiBVcGdyYWRlZCBWRlMgZGVwZW5kZW5jeSB0byAxLjAgYW5kIHJlbW92ZWQgZGVwZW5kZW5jeSBvbiBWRlMtc2FuZGJveCAoSVZZLTQ5OCkKLSBJTVBST1ZFTUVOVDogVXNlIG1hdmVuMiByZXBvc2l0b3J5IHRvIGRvd25sb2FkIGRlcGVuZGVuY2llcwotIElNUFJPVkVNRU5UOiBBbGxvdyAibWFpbiIgcGFyYW1ldGVycyB0byBiZSBwYXNzZWQgZGlyZWN0bHkgKGluc3RlYWQgb2YgdXNpbmcgLWFyZ3MgZmxhZykgKElWWS00ODApICh0aGFua3MgdG8gQXJjaGllIENvYmJzKQotIElNUFJPVkVNRU5UOiBSZW1vdmUgQGF1dGhvciB0YWdzICh0aGFua3MgdG8gU3RlcGhhbmUgQmFpbGxpZXopCi0gSU1QUk9WRU1FTlQ6IFJlbW92ZSB1c2Ugb2YgZGVwcmVjYXRlZCBlbGVtZW50cyBpbiBpdnlzZXR0aW5ncy54bWwgKElWWS01MDUpICh3aXRoIGNvbnRyaWJ1dGlvbiBmcm9tIEphbiBNYXRlcm5lKQotIElNUFJPVkVNRU5UOiBCdWlsZGxpc3Qgb25seWRpcmVjdGRlcCBhdHRyaWJ1dGUgKElWWS00NzMgYW5kIElWWS01MDQpICh3aXRoIGNvbnRyaWJ1dGlvbiBmcm9tIE1pa2tlbCBCamVyZykKLSBJTVBST1ZFTUVOVDogQ29kZSAvIFhNTCBQb2xpc2hlZCAoSVZZLTU1NCkgKHdpdGggY29udHJpYnV0aW9uIGZyb20gVGplZXJkIFZlcmhhZ2VuKQotIElNUFJPVkVNRU5UOiBKYXZhZG9jIGltcHJvdmVtZW50cyAoSVZZLTU0NCkgKHdpdGggY29udHJpYnV0aW9uIGZyb20gVGplZXJkIFZlcmhhZ2VuKQotIElNUFJPVkVNRU5UOiBVbml0IHRlc3QgaW1wcm92ZW1lbnRzIChJVlktNTQ1KSAodGhhbmtzIHRvIFRqZWVyZCBWZXJoYWdlbikKLSBJTVBST1ZFTUVOVDogRGVwZW5kZW50IGphcnMgbWlzc2luZyBpbiBpdnkgYmluYXJpZXMgKElWWS00ODEpCgotIEZJWDogUmV0cmlldmFsIG5vdCBleHBhbmRpbmcgIltvcmlnaW5hbG5hbWVdIi4gKElWWS02MzEpCi0gRklYOiBBbnQgdGFyZ2V0ICJjbGVhbiIgb24gSXZ5IG11bHRpLXByb2plY3QgdHV0b3JpYWwgcG9pbnRzIHRvIHdyb25nIGNhY2hlIGRpcmVjdG9yeS4gKElWWS01NDgpCi0gRklYOiBWYXJpYWJsZXMgbm90IHJlcGxhY2VkIGR1cmluZyBkZWxpdmVyIChJVlktNTIwKSAodGhhbmtzIHRvIEpvaG4gV2lsbGlhbXMpCi0gRklYOiBYbWxNb2R1bGVEZXNjcmlwdG9yV3JpdGVyIGRvZXMgbm90IHByb2R1Y2UgbWF0Y2hlciBhdHRyaWJ1dGUgb24gaW5jbHVkZSBhbmQgZXhjbHVkZSBydWxlcyAoSVZZLTU1NikKLSBGSVg6IHBvbS5ncm91cElkIGlzIG5vdCByZWNvZ25pemVkIGluIG1hdmVuIDIgcG9tIHBhcnNlciAoSVZZLTU1MCkKLSBGSVg6IEV2aWN0ZWQgbW9kdWxlcyByZXBvcnQgZGVwZW5kcyBvbiB0aGUgb3JkZXIgb2YgdGhlIGRlcGVuZGVuY2llcyAoSVZZLTUyNikKLSBGSVg6IEl2eSBkb2VzIG5vdCB3b3JrIG9uIFR1cmtpc2ggbWFjaGluZXMgKElWWS02NSkKLSBGSVg6IEl2eSBkb2VzIG5vdCBoYW5kbGUgbXVsdGlwbGUgdmVyc2lvbiBkZXBlbmRlbmNpZXMgaW4gbWF2ZW4yIHBvbXMgY29ycmVjdGx5IChJVlktNDk0KQotIEZJWDogcG9tIHBhcnNlciBkb2Vzbid0IG5lY2Vzc2FyaWx5IHByb2Nlc3NlcyBhbGwgaW1wb3J0YW50IGluZm9ybWF0aW9uIChJVlktNTI0KQotIEZJWDogPGluZm8+IGVsZW1lbnQgb2YgSXZ5IGZpbGUgaW4gY2FjaGUgaXMgbm90IHVwZGF0ZWQgd2hlbiB1c2luZyBuYW1lc3BhY2VzIChJVlktNTE2KQotIEZJWDogUmV0cmlldmUgQW50IHRhc2sgaWdub3JlcyByZXNvbHZlSWQgYXR0cmlidXRlIChJVlktNTIyKSAodGhhbmtzIHRvIFNjb3R0IEdvbGRzdGVpbikKLSBGSVg6IFRoZSBkZXByZWNhdGVkICJrZWVwIiBhdHRyaWJ1dGUgb24gcG9zdCByZXNvbHZlIHRhc2tzIGNhdXNlcyBhbiBlcnJvciAoSVZZLTUxNykKLSBGSVg6IFNvbWUgY2lyY3VsYXIgZGVwZW5kZW5jaWVzIG5vdCByZXRyaWV2ZWQgKElWWS00MDApCi0gRklYOiAke3ZlcnNpb259IHByb3BlcnR5IG5vdCByZWNvZ25pemVkIGluIHBvbXMgKElWWS01MTIpCi0gRklYOiBCdWcgb24gaGFuZGxpbmcgZGVwZW5kZW5jeSBhcnRpZmFjdHMgd2hlbiBhIG1vZHVsZSBjb25maWd1cmF0aW9uIGlzIHNwZWNpZmllZCAoSVZZLTUwNykKLSBGSVg6IENvbmZpZ3VyZSBmYWlscyB3aGVuIGhhdmluZyBodHRwY2xpZW50IGluIGNsYXNzcGF0aCB3aXRob3V0IGNvbW1vbnMtbG9nZ2luZyAoSVZZLTUwMikKLSBGSVg6IHBhY2thZ2luZyBkYXRhIG5vdCBwYXJzZWQgaW4gbWF2ZW4gMiBwb20gKElWWS01MDApICh0aGFua3MgdG8gSmVmZnJleSBCbGF0dG1hbikKLSBGSVg6IGluc3RhbGwgYW50IHRhc2s6IHJlcXVpcmVzIGRlZmF1bHQgcmVzb2x2ZXIgaW4gaXZ5IHNldHRpbmdzIChJVlktNDc3KQotIEZJWDogQW50IHByb2plY3QgcmVmZXJlbmNlIGxvc3QgZnJvbSBjb250ZXh0IG9uIG11bHRpcGxlIGFudCBjYWxscyBpbiBzaW5nbGUgdGhyZWFkIChJVlktNDk3KSAodGhhbmtzIHRvIEphcm9zbGF3IFd5cHljaG93c2tpKQotIEZJWDogRU9MIGluIHRoZSBkb2MgcGFnZXMgKElWWS00NzApCi0gRklYOiBDYWNoZSBpcyBzdG9yaW5nIEFydGlmYWN0T3JpZ2luIHByb3BlcnRpZXMgd2l0aCBubyBndWFyYW50ZWUgb2YgdW5pY2l0eSBhbmQgdHlwZXMgdGVsZXNjb3BlIGR1cmluZyByZXNvbHZlLiAoSVZZLTQzMCkgKHRoYW5rcyB0byBTdGVwaGFuZSBCYWlsbGlleikKLSBGSVg6IGl2eTppbnN0YWxsIGFudCB0YXNrIGRvZXMgbm90IGZhaWwgb24gZXJyb3IgKElWWS00NzUpICh0aGFua3MgdG8gSmVmZnJleSBCbGF0dG1hbikKLSBGSVg6IENyZWRlbnRpYWxzIGFyZSBzaG93biBpbiBidWlsZCBsb2cgZXZlbiBpZiBkZWJ1ZyBpcyBub3QgZW5hYmxlZCAoSVZZLTQ4NikgKHRoYW5rcyB0byBHaWxsZXMgU2Nva2FydCkKLSBGSVg6IFBvc3QtUmVzb2x2ZSB0YXNrIHNob3VsZG4ndCBzZXQgdGhlICdyZXNvbHZlaWQnIChJVlktNDg5KQotIEZJWDogYnVpbGQgZmFpbHMgd2l0aG91dCBlbW1hIGNvZGUgY292ZXJhZ2UgSkFScyBwcmVzZW50IChJVlktNDc4KQotIEZJWDogYnVpbGRsaXN0IGJyb2tlbiAtIHJlZ3Jlc3Npb24gaW4gMi4wLjAtYWxwaGExLWluY3ViYXRpbmcgKElWWS00OTMpCi0gRklYOiBDaXJjdWxhciBkZXBlbmRlbmN5IHN0YXJ0ZWd5IGluIGJ1aWxkbGlzdCAoSVZZLTUwOSkKLSBGSVg6IGl2eSBzaG91bGQgc3RvcCB0ZWxsaW5nIG1lIG9mZiB0d2ljZSBmb3IgaXZ5Y29uZi54bWwgZmlsZXMgKElWWS01MTMpCi0gRklYOiBBbGxvdyByZWxhdGl2ZSBwYXRoIGluIGl2eS54bWwgZmlsZXMgKElWWS0zNDcpCgoKICAgMi4wLjAtYWxwaGExLWluY3ViYXRpbmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotIE5FVzogZGVmaW5lIGFydGlmYWN0cyBub3QgZGVjbGFyZWQgYnkgdGhlIGRlcGVuZGVuY3kgbW9kdWxlIGRlc2NyaXB0b3IgKElWWS00MTkpCi0gTkVXOiBNb2R1bGUgd2lkZSBleGNsdWRlIChJVlktNDMxKQotIE5FVzogVGhlIGRlZmF1bHQgcHVibGljIHJlc29sdmVyIHVzZWQgaXMgbm93IGliaWJsaW8gd2l0aCBtMiBjb21wYXRpYmxlIG1vZGUgKElWWS00NjMpCgotIElNUFJPVkU6IE9TR0lmeSBpdnkgYXJ0aWZhY3RzIChJVlktNDY0KSAodGhhbmtzIHRvIENvc3RpbiBMZWF1KQotIElNUFJPVkU6IExldCB1c2VyIHNwZWNpZnkgSXZ5IGZpbGUgd2hlbiB1c2luZyBhIHBvc3QtcmVzb2x2ZSB0YXNrIChJVlktNDU1KQotIElNUFJPVkU6IEl2eUFydGlmYWN0UHJvcGVydHkgYW5kIEl2eUFydGlmYWN0UmVwb3J0IHRhc2tzIHNob3VsZCBiZSBhIHBvc3QgcmVzb2x2ZSB0YXNrIChJVlktNDUyKQotIElNUFJPVkU6IFJlbmFtZSBpdnkgY29uZmlndXJhdGlvbiBpbiBzZXR0aW5ncyB0byByZW1vdmUgYW1iaWd1aXR5IG9uIGNvbmZpZ3VyYXRpb24gbWVhbmluZyAoSVZZLTQzOCkKLSBJTVBST1ZFOiBQbGVhc2UgdHlwZWRlZiBDYWNoZVJlc29sdmVyIGFzICJjYWNoZSIgZm9yIHVzIChJVlktMzU5KQotIElNUFJPVkU6IGl2eTpyZXRyaWV2ZSBzaG91bGQgYmUgYWJsZSB0byBjcmVhdGUgc3ltbGlua3MgKElWWS0zNTMpICh0aGFua3MgdG8gSm9obiBXaWxsaWFtcykKLSBJTVBST1ZFOiBBYmlsaXR5IHRvIGhhdmUgbXVsdGlwbGUgcm9vdHMgaW4gdGhlIDxpdnk6YnVpbGRmaWxlbGlzdD4gdGFzayAoSVZZLTM0MCkgKHRoYW5rcyB0byBNYXR0IEluZ2VyKQotIElNUFJPVkU6IFJlZmFjdG9yaW5nIC8gZG9jdW1lbnRhdGlvbiAvIHRlc3Qgb2YgbWF0Y2hlciBwYWNrYWdlIChJVlktMzc1KSAodGhhbmtzIHRvIFN0ZXBoYW5lIEJhaWxsaWV6KQotIElNUFJPVkU6IEFkZCBhIHVuaXQgdGVzdCB0byB2ZXJpZnkgdGhhdCBsYXRlc3QuaW50ZWdyYXRpb24gYWNjZXB0cyByZWxlYXNlZCBtb2R1bGVzIChJVlktMzk0KSAodGhhbmtzIHRvIEdpbGxlcyBTY29rYXJ0KQotIElNUFJPVkU6IE5ldyAibW9kdWxlcyBpbiB1c2UiIHNlY3Rpb24gaW4gY29uc29sZSByZXBvcnQgYXQgdGhlIGVuZCBvZiByZXNvbHZlIChJVlktMzczKSAodGhhbmtzIHRvIEpvaG4gV2lsaWFtcykKLSBJTVBST1ZFOiBHZW5lcmF0ZWQgWE1MIHJlcG9ydHMgbm93IGNvbnRhaW5zIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHJlc29sdmVkIG1vZHVsZSAoSVZZLTQ0NikKCi0gRklYOiBpdnktcmV0cmlldmUgZmFpbHVyZSB3aGVuIGV4cGxpY2l0IGFic29sdXRlICdpdnkuZGVwLmZpbGUnIHBhdGggc3BlY2lmaWVkIChJVlktMzk2KQotIEZJWDogSXZ5UG9zdFJlc29sdmUgVGFzayBkb2Vzbid0IHJldXNlIEl2eSBmaWxlIG9mIHByZXZpb3VzIHJlc29sdmUgKElWWS00NTgpCi0gRklYOiBJdnkgc3RhbmRhbG9uZSBpcyBwYXNzaW5nIG51bGwgYXJncyB0byBtYWluIG1ldGhvZCB3aGVuIGludm9raW5nIHdpdGggbm8gYXJncyAoSVZZLTQ1NykKLSBGSVg6IEludmFsaWQgZXJyb3IgcmVwb3J0IHdpdGggbTJjb21wYXRpYmxlIHJlc29sdmVyIChJVlktNDU2KQotIEZJWDogSXZ5UG9zdFJlc29sdmUgVGFzayBkb2Vzbid0IHVzZSBzcGVjaWZpZWQgY2FjaGUgZm9yIHRoZSByZXNvbHZlIChJVlktNDUzKQotIEZJWDogWG1sTW9kdWxlRGVzY3JpcHRvcldyaXRlclRlc3Qgbm90IHdvcmtpbmcgd2l0aCBKYXZhIDYgKElWWS0zNzQpCi0gRklYOiBDb25mbGljdCBtYW5hZ2VycyBpZ25vcmVkLCB3aGVuIGFzc2lnbmVkIHRvIG1vZHVsZXMgaW4gSXZ5IGNvbmZpZ3VyYXRpb24gKHNldHRpbmcsIGl2eWNvbmYueG1sKSAoSVZZLTQ0OCkKLSBGSVg6IEl2eSBzaG91bGQgZmFpbCBpZiAnOycgaGFzIGJlZW4gdXNlZCBpbiBwdWJsaWNhdGlvbnMvYXJ0aWZhY3QvQGNvbmYgb2YgaXZ5LnhtbCAoSVZZLTQ0MSkKLSBGSVg6IEl2eSBzaG91bGQgZmFpbCB3aGVyZSBkZXBlbmRlbmN5IHVzZXMgdW5kZWZpbmVkIGNvbmZpZ3VyYXRpb24gKElWWS00NDIpCi0gRklYOiBEeW5hbWljIHJldmlzaW9uIG5vdCBjYWxjdWxhdGVkIHByb3Blcmx5IHdoZW4gdXNpbmcgbXVsdGlwbGUgZGlyZWN0b3JpZXMgKElWWS00MjcpCi0gRklYOiBMYXRlc3RSZXZpc2lvblN0cmF0ZWd5LnNvcnQoKSBkb2Vzbid0IHNvcnQgYXMgc3BlY2lmaWVkIChJVlktNDM1KQotIEZJWDogc2V0dGluZyBtMmNvbXBhdGlibGUgb24gaWJpYmxpbyByZXNvbHZlciBvdmVyd3JpdGUgcm9vdCBhbmQgcGF0dGVybiBzZXR0aW5ncyAoSVZZLTQzNykKLSBGSVg6IGl2eS5yZXZpc2lvbiBwcm9wZXJ0eSBub3Qgc2V0IGNvcnJlY3RseSBmb3Igc2Vjb25kIHJlc29sdmUgKElWWS00MjkpCi0gRklYOiBOUEUgd2hlbiBubyBvcmdhbmlzYXRpb24gb3Igbm8gbmFtZSBpcyBwcm92aWRlZCBpbiBtb2R1bGUgZWxlbWVudCBvZiBpdnljb25mIChJVlktNDIyKQotIEZJWDogRmlsZVV0aWwjY29weShGaWxlIHNyYywgRmlsZSBkZXN0LCBDb3B5UHJvZ3Jlc3NMaXN0ZW5lciBsLCBib29sZWFuIG92ZXJ3cml0ZSkgKElWWS00MjApCi0gRklYOiBJbnZhbGlkIHBvbSBwYXJzaW5nIHdoZW4gdmVyc2lvbiBpcyBvbmx5IGRlY2xhcmVkIGluIHBhcmVudCAoSVZZLTQzNikKLSBGSVg6ICR7cHJvamVjdC5ncm91cElkfSBhbmQgJHtwcm9qZWN0LnZlcnNpb259IG5vdCBwcm9jZXNzZWQgY29ycmVjdGx5IGluIHBvbXMgKElWWS00MjUpCi0gRklYOiBJbmNvcnJlY3QgcG9tIHBhcnNpbmcgd2l0aCBwcm9maWxlIChJVlktNDIzKQotIEZJWDogSXZ5IGRvZXNuJ3QgcmVjb2duaXplIG1hdmVuMiBjbGFzc2lmaWVycyAoSVZZLTQxOCkKLSBGSVg6IFBvbU1vZHVsZURlc2NyaXB0b3JQYXJzZXIgZmFpbHMgd2l0aCBuZXN0ZWQgcHJvZmlsZSBkZXBlbmRlbmN5IChJVlktMzkyKSAodGhhbmtzIHRvIFdpbGxpYW0gTHl2ZXJzKQotIEZJWDogU3RhdGljIHJldmlzaW9uIHJlcGxhY2VtZW50IGlzIG5vdCB3b3JraW5nIHdoZW4gZGVsaXZlcmluZyBhbiBhcnRpZmFjdCB3aXRoIGEgZGVwZW5kZW5jeSBoYXZpbmcgZXh0cmEgYXR0cmlidXRlcyAoSVZZLTQxNSkKLSBGSVg6IFN0YXRpYyByZXZpc2lvbiByZXBsYWNlbWVudCBpcyBub3Qgd29ya2luZyB3aGVuIGRlbGl2ZXJpbmcgYW4gYXJ0aWZhY3Qgd2l0aCBhIGRlcGVuZGVuY3kgb24gYSBicmFuY2ggKElWWS00MDQpCi0gRklYOiBsYXRlc3QtdGltZSBjb25mbGljdCBtYW5hZ2VyIG5vdCB3b3JraW5nIHByb3Blcmx5IChJVlktNDA3KQotIEZJWDogTGF0ZXN0UmV2aXNpb25TdHJhdGVneSBkbyBub3QgY29uc2lkZXIgYWxsIGR5bmFtaWMgcmV2aXNpb25zIHByb3Blcmx5IChJVlktMzgzKSAodGhhbmtzIHRvIEpvaG4gV2lsbGlhbXMgZm9yIHRoZSB1bml0IHRlc3QpCi0gRklYOiBJT0V4Y2VwdGlvbiBkdXJpbmcgcHVibGlzaCBjYXVzZXMgTnVsbFBvaW50ZXJFeGNlcHRpb24gKElWWS0zNzEpCi0gRklYOiBDb21tZW50cyBpbiBpdnkueG1sIGR1cGxpY2F0ZWQgKElWWS0zMzYpICh0aGFua3MgdG8gR2lsbGVzIFNjb2thcnQpCi0gRklYOiBJdnkgZmFpbHVyZSB3aGVuIHRoZSBpdnkueG1sIGZpbGUgY29udGFpbnMgbm9uIFVTLUFTQ0lJIGNoYXJhY3RlcnMgKElWWS0zNDYpICh0aGFua3MgdG8gR2lsbGVzIFNjb2thcnQpCi0gRklYOiBVcmxyZXNvbHZlciBpcyBub3QgcG9zc2libGUgdG8gdXNlIGR5bmFtaWMgcmV2aXNpb25zIG9uIG5vbnN0YW5kYXJkIHJlcG9zaXRvcnkgc3RydWN0dXJlIChJVlktMzUwKSAodGhhbmtzIHRvIFBpZXJyZSBI5GduZXN0cmFuZCkKCgogICB2ZXJzaW9uIDEuNC4xIC0gMjAwNi0xMS0wOQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gSU1QUk9WRTogYWJpbGl0eSB0byByZWJ1aWxkIGFsbCBkZXBlbmRlbnQgcHJvamVjdHMgZnJvbSBhIGxlYWYgKElWWS0xMDEpCi0gSU1QUk9WRTogQXJ0aWZhY3QgcGF0dGVybiBsaXN0IGF0dHJpYnV0ZSBmb3IgdGhlIGl2eTpwdWJsaXNoIChJVlktMTEzKQotIElNUFJPVkU6IE1lYXN1cmUgY29kZSBjb3ZlcmFnZSAoSVZZLTMyMykKLSBJTVBST1ZFOiBhZGQgcmVsZWFzZSB0YXJnZXQgdG8gYnVpbGQgZmlsZSAoSVZZLTMzOSkKLSBJTVBST1ZFOiBBZGQgYSAnY29uZicgcGFyYW1ldGVyIHRvIHRoZSBpdnkgJ3B1Ymxpc2gnIGFudCB0YXNrIChJVlktMzIyKSAodGhhbmtzIHRvIEVtbWFudWVsIFBlbGxlcmVhdSkKCi0gRklYOiByZXRyaWV2ZSBmYWlscyB3aGVuIHJlc29sdmUgaXMgZG9uZSB3aXRoIHVzZU9yaWdpbiBzZXQgdG8gdHJ1ZSAoSVZZLTMwNCkKLSBGSVg6IElWWSBjb21wbGFpbnMgYWJvdXQgbm9uLWV4aXN0ZW50IHJlcG9ydHMgaW4gdGhlIGNhY2hlIGRpcmVjdG9yeSAoSVZZLTMxNSkKLSBGSVg6IFR5cG8gaW4gZmFpbHVyZXByb3BlcnR5IGF0dHJpYnV0ZSBvZiBBbnQgcmVzb2x2ZSB0YXNrIChJVlktMzI3KSAodGhhbmtzIHRvIEplYW4tQmFwdGlzdGUgUXVlbm90KQotIEZJWDogaXZ5OnJlc29sdmUgdXNlT3JpZ2luIGZhaWxzIHRvIGJlaGF2ZSBjb3JyZWN0bHkgKElWWS0zMzIpCi0gRklYOiBDaGFpblZlcnNpb25NYXRjaGVyIGRvZXNuJ3QgaGFuZGxlIEl2eUF3YXJlIGNoaWxkcmVuIHZlcnNpb24gbWF0Y2hlcnMgKElWWS0zMzEpCi0gRklYOiBsYXRlc3QuPHN0YXR1cz4gZG9lcyBub3Qgd29yayBwcm9wZXJseSB3aGVuIG5vIG1hdGNoaW5nIHJldmlzaW9uIGV4aXN0IChJVlktMzE4KQotIEZJWDogYXR0cmlidXRlIG5hbWUgaW4gbWFjcm9kZWYgaXMgbm90IGhhbmRsZWQgYXMgZXhwZWN0ZWQgKElWWS0zMTkpCi0gRklYOiBjb25mbWFwcGluZ292ZXJyaWRlIGRvZXNuJ3Qgd29yayBmb3IgY29uZmlndXJhdGlvbnMgZXh0ZW5kaW5nIGZyb20gIioocHVibGljKSIgKElWWS0zMjYpCgoKICAgdmVyc2lvbiAxLjQgLSAyMDA2LTEwLTA5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KVmVyc2lvbiAxLjQtUkMyIGhhcyBiZWVuIHByb21vdGVkIHRvIDEuNCBvbiAyMDA2LTEwLTA5LCB3aXRoIGRvY3VtZW50YXRpb24gdXBkYXRlLgoKS25vd24gYnVncyBhbmQgbGltaXRhdGlvbnM6Ci0gcmVmZXJlbmNlcyBpbiByZXNvbHZlcnMgYXJlIG5vdCByZXNvbHZlZCAnaW4tdGltZScgd2l0aCBtYWNyb2RlZiAoSVZZLTMxOSkKLSBsYXRlc3QuPHN0YXR1cz4gZG9lcyBub3Qgd29yayBwcm9wZXJseSB3aGVuIG5vIG1hdGNoaW5nIHJldmlzaW9uIGV4aXN0IChJVlktMzE4KQotIElWWSBjb21wbGFpbnMgYWJvdXQgbm9uLWV4aXN0ZW50IHJlcG9ydHMgaW4gdGhlIGNhY2hlIGRpcmVjdG9yeSAoSVZZLTMxNSkKLSByZXRyaWV2ZSBmYWlscyB3aGVuIHJlc29sdmUgaXMgZG9uZSB3aXRoIHVzZU9yaWdpbiBzZXQgdG8gdHJ1ZSAoSVZZLTMwNCkKCgogICB2ZXJzaW9uIDEuNC1SQzIgLSAyMDA2LTA5LTI3Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSBGSVg6IG0yY29tcGF0aWJsZSBmbGFnIGlzIGlnbm9yZWQgZm9yIGRpc3BsYXkgb2YgZmFpbGVkIGFydGlmYWN0IHNlYXJjaGVzIChJVlktMzAzKQotIEZJWDogQW50Q2FsbFRyaWdnZXJUZXN0IGFuZCBBbnRCdWlsZFRyaWdnZXJUZXN0IGZhaWwgd2hlbiBydW4gZnJvbSBpdnkgYnVpbGQueG1sIChJVlktMzEwKQotIEZJWDogQ2xhc3Nsb2FkZXIgcHJvYmxlbSB3aXRoIGFudCAoSVZZLTMxMSkKLSBGSVg6IE1ha2UgcmVzb2x2ZSBvdmVydmlldyBtb3JlIGNvbXBhY3QgKElWWS0yOTkpCi0gRklYOiBDb3VsZCBub3Qgd3JpdGUgdG8gInRtcDovLy93ZWJkYXZfdG1wLmMxIiBiZWNhdXNlIGl0IGlzIHJlYWQtb25seSAoSVZZLTMxMikKCiAgIHZlcnNpb24gMS40LVJDMSAtIDIwMDYtMDktMTcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkluY29tcGF0aWJpbGl0eSB3aXRoIHByZXZpb3VzIHZlcnNpb25zOgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKiB1c2FnZToKICAtIG5vIGtub3duIG1ham9yIGluY29tcGF0aWJsaXR5CiAgLSBidWlsZCBsaXN0IHRhc2sgbm93IHJlcXVpcmVzIGEgY29uZmlndXJlZCBpdnkgaW5zdGFuY2UgKGNvbmZpZ3VyZSB3aWxsIGF1dG9tYXRpY2FsbHkgYmUgY2FsbGVkIGlmIHlvdSBkb24ndCBjYWxsIGl0IGV4cGxpY2l0bHkpCiAgLSBwdWJsaXNoIG5vdyByZXF1aXJlcyB0aGUgcHVibGlzaGVkIGl2eSBmaWxlIHRvIGhhdmUgdGhlIHB1Ymxpc2hlZCByZXZpc2lvbiAoYXV0b21hdGljIGlmIHlvdSB1c2UgZGVsaXZlcikKICAKKiBBUEk6CiAgLSBOdW1lcm91cyBBUEkgY2hhbmdlcyBlc3BlY2lhbGx5IGluIHRoZSBCYXNpY1Jlc29sdmVyIGNsYXNzIGFuZCBzdWJjbGFzc2VzIGR1ZSB0byB0aGUgaW50cm9kdWN0aW9uIG9mIFZlcnNpb25NYXRjaGVyLCAKICAJdGhpcyBtYXkgYnJlYWsgc29tZSBjdXN0b20gZGVwZW5kZW5jeSByZXNvbHZlcnMgb3Igb3RoZXIgdG9vbHMgb3IgcGx1Z2lucyBkZXBlbmRpbmcgZGlyZWN0bHkgb24gSXZ5IEFQSQoKQ2hhbmdlczoKLS0tLS0tLS0KKiB0aGFua3MgdG8gSmF5YXNvZnQ6CiAgLSBORVc6IGl2eSByZXBvcnQgZ2VuZXJhdGUgZnVsbCBncmFwaCBmcm9tIGF1dG9tYXRlZCBidWlsZCAoSVZZLTE1NSkKICAtIE5FVzogc3VwcG9ydCBmb3IgYnVpbGQgbnVtYmVyIGNhbGN1bGF0aW9uIChJVlktMjc2KQogIC0gTkVXOiBmaW5kIG1vZHVsZXMgaW4gcmVwb3NpdG9yeSAoSVZZLTI3NSkKICAtIE5FVzogZXhwbGljaXRseSBzcGVjaWZ5IGFydGlmYWN0IGRvd25sb2FkIFVSTCAoSVZZLTI3MSkKICAtIE5FVzogaW50cm9kdWNlIGJyYW5jaCBtYW5hZ2VtZW50IChJVlktMjY5KQogIC0gTkVXOiByZXNvbHZlIGRlcGVuZGVuY2llcyBkaXJlY3RseSB3aXRob3V0IHVzaW5nIGFuIGl2eSBmaWxlIChJVlktMjY4KQogIC0gTkVXOiBhYmlsaXR5IHRvIGludm9rZSBhbnkgYnVpbGQgc2NyaXB0cyBmb3IgZGVwZW5kZW5jaWVzIChJVlktNjgpCiAgLSBORVc6IHN1cHBvcnQgc2Z0cCByZXBvc2l0b3J5IChJVlktMjY3KQogIC0gTkVXOiBwbHVnZ2FibGUgdmVyc2lvbiBtYXRjaGVyIChJVlktMjE5KQogIC0gTkVXOiBzdXBwb3J0IGZvciB2ZXJzaW9uIHJhbmdlcyAoSVZZLTI5NSkKICAtIE5FVzogZGVwZW5kZW5jeSBiYXNlZCBvbiBkZXBlbmRlbmN5IHN0YXR1cyAoSVZZLTQ3KQogIC0gTkVXOiBhZGQgcG9zc2liaWxpdHkgdG8gZGVmaW5lIGV4dHJhIGF0dHJpYnV0ZXMgaW4gaXZ5IGZpbGVzIChJVlktMjE3KQogIC0gTkVXOiBvcHRpb24gdG8gb21pdCBzcGVjaWZpYyBjb25mcyBhbmQgYWxsb3cgdGhlIHJlc3QgKElWWS02NikKICAtIE5FVzogdXNlIGN1c3RvbSBjbGFzc2xvYWRlciBmb3IgcGx1Z2lucyAoSVZZLTIyMCkKICAtIE5FVzogYWRkaW5nIHRvIFNQRUNJQUxfTUVBTklOR1MgaW4gTGF0ZXN0UmV2aXNpb25TdHJhdGVneSAoSVZZLTEyMSkKICAtIE5FVzogQWxsb3cgdXNlIG9mIHN5c3RlbSBwcm9wZXJ0aWVzIGluIGl2eWNvbmYueG1sIChJVlktMjI4KQoKICAtIElNUFJPVkU6IGFsbG93IHRvIHVzZSBmaWxlLXN5c3RlbSByZXBvc2l0b3J5IGRpcmVjdGx5IHdpdGhvdXQgY2FjaGUgKElWWS0yMTEpCiAgLSBJTVBST1ZFOiBkZWxpdmVyIHRhc2sgdXNlIGEgZGVmYXVsdCB2YWx1ZSBmb3IgcmV2aXNpb24gKElWWS0yNTIpCiAgLSBJTVBST1ZFOiBiZXR0ZXIgZG9jdW1lbnRhdGlvbiBkaXN0cmlidXRpb24gKElWWS0yNzQpIC0gaW4gcHJvZ3Jlc3MKICAtIElNUFJPVkU6IGRlZmluZSBjb25mbGljdCBtYW5hZ2VyIHBlciBvcmdhbmlzYXRpb24vbW9kdWxlIGluIGl2eWNvbmYgKElWWS0yNzApCiAgLSBJTVBST1ZFOiB0cmFuc2l0aXZlIHBhcmFtZXRlciBpbiByZXNvbHZlIChJVlktMjEpCiAgLSBJTVBST1ZFOiBhZGQgc3luY2luZyBmZWF0dXJlIGluIHJldHJpZXZlIChJVlktMzMpCiAgLSBJTVBST1ZFOiB1c2Ugb2YgbWQ1IGFuZC9vciBzaGExIGZpbGVzIHRvIGNoZWNrIGRvd25sb2FkcyAoSVZZLTI3KQogIC0gSU1QUk9WRTogcG9zc2libGUgdG8gdXNlIG0yY29tcGF0aWJsZSB3aXRob3V0IGF1dG9tYXRpY2FsbHkgdXNpbmcgUE9NcyBhcyB3ZWxsIChJVlktMjYzKQogIC0gSU1QUk9WRTogc3VwcG9ydCBmb3IgY2lyY3VsYXIgZGVwZW5kZW5jaWVzIChJVlktMjAyKQogIC0gSU1QUk9WRTogbWFrZSBzdGF0dXMgbGlzdCBjb25maWd1cmFibGUgKElWWS0yNDIpCiAgLSBJTVBST1ZFOiB1c2Ugb25seSBpdnkgcGF0dGVybnMgZm9yIGxpc3RpbmcgcmV2aXNpb25zIHdoZW4gbW9kdWxlIGRlc2NpcHRvciBpcyByZXF1aXJlZCAoYWxsb3dub21kID0gZmFsc2UpIChJVlktMTY2KQogIC0gSU1QUk9WRTogaW1wbGVtZW50IHN0cmljdCBoYWx0b25mYWlsdXJlIGlmIGl2eS54bWwgaXMgbm90IGZvdW5kIChJVlktMTEwKQogIC0gSU1QUk9WRTogYXJ0aWZhY3QncyAibmFtZSIgYXR0cmlidXRlIGNvdWxkIGJlIG9taXR0ZWQgKElWWS0yMzEpCiAgLSBJTVBST1ZFOiBpdnkgc3RhbmRhbG9uZSBub3cgcmV0dXJuIGVycm9yIHN0YXR1cyAoSVZZLTE1MikKICAtIElNUFJPVkU6IGxvZyBtZXNzYWdlcyBkbyBub3QgZGlzcGxheSBtb3N0IHNwZWNmaWMgcmVzb2x2ZXIgbmFtZSAoSVZZLTE3MCkKICAtIElNUFJPVkU6IHByaW50cyBVUkwgYmVmb3JlIGRvd25sb2FkaW5nIGluIHZlcmJvc2UgbW9kZSAoSVZZLTI1NykKICAtIElNUFJPVkU6IGluY29ycmVjdCB2YWx1ZSBpbiBzdGF0dXMgYXR0cmlidXRlIGNhdXNlcyBzaWxlbnQgZmFpbHVyZSAoSVZZLTI1OSkKICAtIElNUFJPVkU6IHN1cG9ydCBlbXB0eSBkZXBlbmRlbmNpZXMgdGFnIGluIGFuIGl2eSBmaWxlIChJVlktMjgxKQogIC0gSU1QUk9WRTogaXNvbGF0ZSBkZXBlbmRlbmN5IHJlc29sdXRpb24gZnJvbSBhcnRpZmFjdCBkb3dubG9hZGluZyAoSVZZLTI1NCkKICAtIElNUFJPVkU6IFBhc3MgYXJ0aWZhY3QgdG8gcmVwb3NpdG9yeSB3aGVuIGNhbGxpbmcgInB1dCIgKElWWS0xOTIpCiAgLSBJTVBST1ZFOiBEbyBub3QgcHVibGlzaCBpdnkgZmlsZSB3aXRoIGJhZCByZXZpc2lvbiwgYW5kIGFsbG93IHRvIGZvcmNlIHRoZSBkZWxpdmVyIHdoZW4gY2FsbGluZyBwdWJsaXNoIHRhc2sgKElWWS0yNDUpCgogIC0gRklYOiBQcm9ibGVtIHdpdGggbXVsdGlwbGUgYXJ0aWZhY3QgaW5jbHVkZXMgaW4gdHJhbnNpdGl2ZSBkZXBlbmRlbmNpZXMgKElWWS0yODMpCiAgLSBGSVg6IEVuZGxlc3MgcmVjdXJzaW9uIGluIHJlcG9ydCAoSVZZLTI4NCkKICAtIEZJWDogaHR0cCB1cmwgbGlzdGVyIGRvZXNuJ3Qgd29yayB3aGVuIGxpbmsgdGV4dCBoYXMgc3BhY2VzIChJVlktMjgyKQogIC0gRklYOiBJbmNvcnJlY3QgYW50IGxvZyBsZXZlbCAoSVZZLTI3OSkKICAtIEZJWDogV3JvbmcgcmVzb2x1dGlvbiBvZiBkZXBlbmRlbmNpZXMgaWYgYXJ0aWZhY3RzIHNwZWNpZmllZCBleHBsaWNpdGx5IChJVlktMjYxKQogIC0gRklYOiBNdWx0aXBsZSB2ZXJzaW9ucyBvZiBkZXBlbmRlbmNpZXMgYXBwZWFyaW5nIGluIHJldHJpZXZlIChJVlktMjY0KQogIC0gRklYOiBUb28gbWFueSBmYWxzZSBDaXJjdWxhckRlcGVuZGVuY3lFeGNlcHRpb24gZXJyb3JzIHRocm93biAoSVZZLTIzMCkKICAtIEZJWDogQ2lyY3VsYXJEZXBlbmRlbmN5RXhjZXB0aW9uIG5vdCBhbHdheXMgdGhyb3duIChJVlktMTg0KQogIC0gRklYOiBOdWxsUG9pbnRlciBpbiBCYXNpY1Jlc29sdmVyIChJVlktMjU4KQogIC0gRklYOiBCYWQgZGlhZ25vc3RpY3MgbWVzc2FnZSB3aGVuIG5vIHNwYWNlIGxlZnQgKElWWS0yNTApCiAgLSBGSVg6IE1hdmVuMiBQT00gc3VwcG9ydCBjYW4gZmluZCBncm91cElkIGZyb20gInBhcmVudCIgZWxlbWVudCAoSVZZLTI2MikKICAtIEZJWDogUGFyZW50IHZlcnNpb24gaXMgZXhwZWN0ZWQgdG8gYmUgZXF1YWwgdG8gdGhlIG1vZHVsZSB2ZXJzaW9uIGluIFBPTSAoSVZZLTI0MSkKICAtIEZJWDogcHJvYmxlbSB3aXRoIGNhY2hlIGFuZCByZXR1cm5GaXJzdCAoSVZZLTIwNykKICAtIEZJWDogbW9kdWxlcyBzcGxpdHRlZCBhY3Jvc3MgYSBjaGFpbiBhcmUgbm90IGhhbmRsZWQgY29ycmVjdGx5IChJVlktMjA2KQogIC0gRklYOiBwcm9ibGVtIHdpdGggY29uZiBleHRlbnNpb24gYW5kIGxhdGVzdCByZXZpc2lvbnMgKElWWS0yNDApCiAgLSBGSVg6IFRoZSBjbGVhbi1jYWNoZSB0YXJnZXQgaW4gL3NyYy9leGFtcGxlL2hlbGxvLWl2eS9idWlsZC54bWwgZmlsZSByZWZlcnMgdG8gJHt1c2VyLmhvbWV9Ly5pdnktY2FjaGUgaW5zdGVhZCBvZiAke3VzZXIuaG9tZX0vLml2eS9jYWNoZS8gKElWWS0yNjUpCgoqIHRoYW5rcyB0byBJdnkgQ29tbXVuaXR5OgogIC0gTkVXOiBTU0ggUmVzb2x2ZXIgYWRkZWQgYW5kIGFsaWduZWQgd2l0aCBTRlRQIHJlc29sdmVyIChJVlktMjczKSAodGhhbmtzIHRvIEFuZHJlYXMgU2FobGJhY2gpCiAgLSBORVc6IGFiaWxpdHkgdG8gdHVybiBvZmYgdHJhbnNpdGl2aXR5IGF0IGNvbmZpZ3VyYXRpb24gbGV2ZWwgKElWWS0xMDMpICh0aGFua3MgdG8gS2FybCBCYXVtIGFuZCBNYWFydGVuIENvZW5lKQogIC0gTkVXOiBhIGNvbmZsaWN0IG1hbmFnZXIgdGhhdCBpcyBhYmxlIHRvIGFsbG93IGltcGxlbWVudGF0aW9uIGNoYW5nZXMgYnV0IG5vdCBhcGkgY2hhbmdlcyAoMS4yLnggLSBPSyksICgxLngueCAtIE5vdCBPSykgKElWWS0yMjMpICh0aGFua3MgdG8gQW5kZXJzIEphbm15cikKICAtIE5FVzogZW5oYW5jZSBzdGFuZGFsb25lIG1vZGUgdG8gZXhlY3V0ZSBqYXZhIHByb2dyYW0gYnkgY3JlYXRpbmcgY2xhc3Nsb2FkZXIgb2YgZGVwZW5kYW50IGphcnMgZnJvbSBjYWNoZSAoSVZZLTIxMCkgKHRoYW5rcyB0byBQZXRlciBIYXllcykKICAtIE5FVzogYWRkaXRpb24gb2YgVmZzIFJlc29sdmVyIHdoaWNoIHVzZXMgQ29tbW9ucy1WZnMgdG8gcmVzb2x2ZSBmaWxlcyAoSVZZLTEyOCkgKHRoYW5rcyB0byBHbGVuIE1hcmNoZXNhbmksIE1hdHQgSW5nZXIgYW5kIFN0ZXBoZW4gTmVzYml0dCkKCiAgLSBJTVBST1ZFOiB1c2UgZ2xvYmFsIHByb3BlcnRpZXMgaW4gdGhlIHJlY3Vyc2l2ZSBkZWxpdmVyeSAoSVZZLTIyMikgKHdpdGggdGhlIGNvbnRyaWJ1dGlvbiBvZiBSb3NoYW4gUHVubm9vc2UpCiAgLSBJTVBST1ZFOiBiZXR0ZXIgaGFuZGxpbmcgb2YgYXV0aGVudGljYXRpb24gKHRoYW5rcyB0byBDaHJpc3RpYW4gUmllZ2UpCgogIC0gRklYOiBBbnQgbG9nIG1lc3NzYWdlcyBub3QgZW1iZWRkZWQgaW4gdGFzayBsb2cgKElWWS0yODApICh0aGFua3MgdG8gR2lsbGVzIFNjb2thcnQpCiAgLSBGSVg6IEl2eSBmYWlscyB3aGVuIGRvd25sb2FkaW5nIGZyb20gYSBzZXJ2ZXIgdGhhdCBzdXBwb3J0cyBOVExNIGF1dGhlbnRpY2F0aW9uIChJVlktMjEzKSAodGhhbmtzIHRvIERhbW9uIFJhbmQpCiAgLSBGSVg6IERlbGl2ZXJlZCBJdnkgZmlsZXMgd2l0aCBpbmNvbXBsZXRlIGxhc3QgbGluZS4gKElWWS0xMjUpICh0aGFua3MgdG8gTWF0dGhpYXMgS2lsaWFuKQogIC0gRklYOiB0aGUgdmZzIHJlc29sdmVyIHNob3VsZCBub3QgbG9nIHBhc3N3b3JkcyAoSVZZLTI5MikgKHRoYW5rcyB0byBBbnRvaW5lIExldnktTGFtYmVydCkKCiogdGhhbmtzIHRvIE1hYXJ0ZW4gQ29lbmU6CiAgLSBORVc6IGFkZCBmYWlsdXJlcHJvcGVydHkgcGFyYW1ldGVyIHRvIHRoZSByZXNvbHZlIHRhc2sgKElWWS0yODUpCiAgLSBORVc6IEFkZCB0eXBlIGZpbHRlcmluZyB0byByZXRyaWV2ZSB0YXNrIChJVlktMjYwKQogIC0gTkVXOiBBZGQgc2VsZWN0b3JzIHRvIHRoZSBjb25maWd1cmF0aW9uIG1hcHBpbmcgKElWWS0yNTMpCiAgLSBORVc6IEFkZCBBbnQgdGFzayB0byByZXRyaWV2ZSBpbmZvcm1hdGlvbiBmcm9tIGFuIEl2eSBmaWxlIHdpdGhvdXQgZG9pbmcgYSByZXNvbHZlIChJVlktMjU1KQogIC0gTkVXOiBhZGQgb3B0aW9uIHRvIGNhY2hlcGF0aCB0YXNrIHRvIGNyZWF0ZSBhIHBhdGggd2l0aCBsb2NhbCBhcnRpZmFjdCBwYXRocyAoSVZZLTIyMSkKICAtIE5FVzogYWxsb3cgZXh0ZW5kaW5nIGNvbmZpZ3VyYXRpb25zIHRvIG92ZXJyaWRlIHRoZSBtYXBwaW5nIG9mIHRoZWlyIHN1cGVyIGNvbmZpZ3VyYXRpb25zIChJVlktMjE4KQoKICAtIElNUFJPVkU6IFJldGFpbiBhcnRpZmFjdCBmaWxlbmFtZXMgYWxvbmcgdGhlIHB1Ymxpc2gvcmVzb2x2ZS9yZXRyaWV2ZSBwcm9jZXNzIChJVlktNTQpCiAgLSBJTVBST1ZFOiByZXBvcnQgQW50LXRhc2sgZG9lc24ndCBwcm9jZXNzIHRoZSByZXBvcnRzIGluIGJhdGNoIChJVlktMjQ3KQogIC0gSU1QUk9WRTogbWFrZSBSZXBvcnRPdXRwdXR0ZXIgcGx1Z2dhYmxlIGFuZCBjdXN0b21pemFibGUgKElWWS0yMDUpCiAgLSBJTVBST1ZFOiBhZGQgd2lsZGNhcmQgc3VwcG9ydCBmb3IgZXh0ZW5kaW5nIGNvbmZpZ3VyYXRpb25zIChJVlktMjM1KQogIC0gSU1QUk9WRTogYWRkIHN1cHBvcnQgZm9yIHhzbHQgcGFyYW1ldGVycyBpbiB0aGUgcmVwb3J0IHRhc2sgKElWWS0yMjcpCiAgLSBJTVBST1ZFOiBjb21tZW50cyBub3cgYXJlbid0IGxvc3Qgd2hlbiBkZWxpdmVyaW5nIGl2eSBmaWxlcyAoSVZZLTIyNikKICAtIElNUFJPVkU6IGFkZCBzb3J0IG9mICdmYWxsYmFjayctbWFwcGluZyB0byB0aGUgZGVmYXVsdGNvbmZtYXBwaW5nIGF0dHJpYnV0ZSAoSVZZLTIxNSkKICAtIElNUFJPVkU6IGFydGlmYWN0IG9yaWdpbiBpcyBub3QgaW5jbHVkZWQgaW4gdGhlIGRlZmF1bHQgcmVwb3J0IChJVlktMjUxKQoKICAtIEZJWDogVkZTIFJlc29sdmUgZmFpbHMgd2hlbiB0cnlpbmcgdG8gcmVzb2x2ZSBhICsgdmVyc2lvbiAoSVZZLTIzNykKICAtIEZJWDogcmVwb3J0IEFudC10YXNrIGRvZXNuJ3QgdXNlIG91dHB1dHBhdHRlcm4gZm9yIGdlbmVyYXRpbmcgZ3JhcGhtbCByZXBvcnRzIChJVlktMjQ2KQogIC0gRklYOiByZXBvcnQgQW50LXRhc2sgZG9lc24ndCBjYWxsIGluaXQoKSBvbiB0aGUgaW50ZXJuYWwgWFNMVFByb2Nlc3MgKElWWS0yNDgpCiAgLSBGSVg6IHZhbHVlIG9mIGNvbmZtYXBwaW5nb3ZlcnJpZGUgZnJvbSBpbXBvcnRlZCBjb25maWd1cmF0aW9ucyBpcyBsb3N0IHdoZW4gd3JpdGluZyBJdnkgZmlsZSAoSVZZLTIzOSkKICAtIEZJWDogaW5jbHVkaW5nIGNvbmZpZ3VyYXRpb25zIGRvZXNuJ3QgaW1wb3J0IHRoZSBjb25mbWFwcGluZ292ZXJyaWRlIHNldHRpbmcgKElWWS0yMzgpCiAgLSBGSVg6IE51bGxQb2ludGVyRXhjZXB0aW9uIHdoZW4gdGhlIGNyZWF0aW9uIG9mIEl2eSBmaWxlIGluIGNhY2hlIGZhaWxzIChJVlktMjM0KQogIC0gRklYOiBJdnkgZmlsZSBjb250YWluaW5nIDIgZGlmZmVyZW50IHZlcnNpb25zIG9mIHRoZSBzYW1lIG1vZHVsZSBpcyBub3QgZGVsaXZlcmQgY29ycmVjdGx5IChJVlktMjI5KQogIC0gRklYOiBNb2R1bGVSZXZpc2lvbklkIGVuY29kZS9kZWNvZGUgZG9lc24ndCB3b3JrIGlmIHJldmlzaW9uIGlzIGVtcHR5IChJVlktMjMzKQogIC0gRklYOiBjYWNoZXBhdGggdGFzayBzaG91bGQgcHJlc2VydmUgdGhlIG9yZGVyIG9mIHRoZSBkZXBlbmRlbmNpZXMgKElWWS0yMjUpCiAgLSBGSVg6IHNwZWNpZnlpbmcgYSBkZWZhdWx0Y29uZm1hcHBpbmcgYWRkcyBkZXBlbmRlbmNpZXMgb2YgZWFjaCB1bmxpc3RlZCBjb25maWd1cmF0aW9uIChJVlktMjE0KQoKKiB0aGFua3MgdG8gSm9oYW4gU3R1eXRzOgogIC0gTkVXOiBhbHdheXMgdXBkYXRlIGFydGlmYWN0cyB3aGVuIHJldmlzaW9uIG1hdGNoZXMgYSByZWdleCBwYXR0ZXJuIChJVlktMTg5KQogIC0gTkVXOiBwcm92aWRlIEFudCB0YXNrIGZvciBnZW5lcmF0aW5nIHJlcG9ydCBhYm91dCBhcnRpZmFjdHMgZGVwZW5kZWQgdXBvbiAoSVZZLTE5NCkKCiAgLSBJTVBST1ZFOiBjaGFuZ2UgZGVmYXVsdCBjYWNoZSBhcnRpZmFjdCBwYXR0ZXJuIHRvIGhhbmRsZSBtaXNzaW5nIGV4dGVuc2lvbiAoSVZZLTE5NikKCiogdGhhbmtzIHRvIEthcmwgQmF1bToKICAtIE5FVzogInRoaXMiIHN5bWJvbCBmb3IgY29uZmlndXJhdGlvbiBtYXBwaW5ncyAoSVZZLTE4MykKCiAgLSBJTVBST1ZFOiBwZXJmb3JtYW5jZXMgaW1wcm92ZWQgKElWWS0xODcpCgogICB2ZXJzaW9uIDEuMy4xIC0gMjAwNi0wMy0zMAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gRklYOiByZXRyaWV2YWwgb2YgbXVsdGlwbGUgYXJ0aWZhY3RzIGluIGRpZmZlcmVudCBjb25maWd1cmF0aW9ucyBkb2VzIG5vdCB3b3JrIGFzIGV4cGVjdGVkIChJVlktMTg4KQotIEZJWDogY29uZmlndXJhdGlvbiBodHRwIHVybCBpbmNsdWRlIGRvZXNuJ3Qgd29yayB3aXRoIGNvbW1vbnMgaHR0cCBjbGllbnQgKElWWS0yMDMpCi0gRklYOiBwcm9ibGVtIHdpdGggY29uZmxpY3QgcmVzb2x1dGlvbiBpbiB0cmFuc2l0aXZlIGRlcGVuZGVuY2llcyAoSVZZLTE5OSkKLSBGSVg6IHBiIHdpdGggZm9yY2Ugd2hlbiBpdCBjb21lcyBhZnRlciBhIGNvbmZsaWN0IHdoaWNoIGhhcyBhbHJlYWR5IGJlZW4gc29sdmVkIChJVlktMTkzKQotIEZJWDogUE9NIGZpbGVzIHRoYXQgcmVmZXJlbmNlIHRvIHRoZSBwYXJlbnQgYXJ0aWZhY3QgZG93bmxvYWQgZmFpbHMgKElWWS0xOTUpICh0aGFua3MgdG8gVGF0IExldW5nKQotIEZJWDogTTIgY29tcGF0aWJpbGl0eSBkb2VzIG5vdCB0YWtlIGludG8gYWNjb3VudCB0aGUgLiByZXBsYWNlbWVudCBmb3IgcHVibGlzaGluZyBhcnRpZmFjdHMgKElWWS0xOTEpICh0aGFua3MgdG8gUGV0ZXIgSGF5ZXMpCi0gRklYOiBhcnRpZmFjdHByb3BlcnR5IGRvZXMgbm90IHNldCB0aGUgW2NvbmZdIHRva2VuIGluIHRoZSBwYXR0ZXJuIHRvIHRoZSBjb3JyZWN0IHZhbHVlLiBJdCBpcyBhbHdheXMgc2V0IHRvICdkZWZhdWx0Jy4gKElWWS0xMjMpICh0aGFua3MgdG8gUGV0ZXIgT3hlbmhhbSkKCiAgIHZlcnNpb24gMS4zIC0gMjAwNi0wMy0xNwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClRoaXMgdmVyc2lvbiBpcyB0aGUgc2FtZSBhcyAxLjMtUkMzIHByb21vdGVkIHRvIHJlbGVhc2Ugc3RhdHVzLgpGb3Iga25vd24gYnVncyBhbmQgbGltaXRhdGlvbnMsIHBsZWFzZSByZWZlciB0byBodHRwOi8vamlyYS5qYXlhc29mdC5vcmcvCgogICB2ZXJzaW9uIDEuMy1SQzMgLSAyMDA2LTAzLTA2Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSBJTVBST1ZFOiBSZXRyaWV2ZSB0YXNrIG5vdyBhbHNvIG9wdGlvbmFsbHkgZG8gaXZ5IGZpbGUgZG93bmxvYWRzIChJVlktMTY3KSAod2l0aCB0aGUgY29udHJpYnV0aW9uIG9mIENvc3RpbiBMZWF1KQoKLSBGSVg6IGl2eSB2YXJpYWJsZSBzdWJzdGl0dXRpb24gaW4gaXZ5IGZpbGVzIChJVlktMTg2KQotIEZJWDogZm9yY2UgYXR0cmlidXRlIGlzIG5vdCB0cmVhdGVkIGFzIGl0IHNob3VsZCBpbiBzb21lIGNhc2VzIChJVlktMTgyKQotIEZJWDogcHJvYmxlbSByZWFkaW5nICdpbnZhbGlkJyBQT01zIChJVlktMTUzKQotIEZJWDogY3J5cHRpYyBOUEUgZHVlIHRvIHNwZWxsaW5nIGVycm9yIGluIGl2eS54bWwgKElWWS0xNzcpCi0gRklYOiBjb25mbGljdHMgd2l0aCBkeW5hbWljIHJldmlzaW9ucyBub3QgcmVzb2x2ZWQgcHJvcGVybHkgKElWWS0xODEpCi0gRklYOiBpbmNvcnJlY3QgY29uZmlndXJhdGlvbiBkZWZpbml0aW9uIGdpdmVzIG1pc2xlYWRpbmcgTnVsbFBvaW50ZXJFeGNlcHRpb24gKElWWS0xNzUpCi0gRklYOiB0aHJvdyBhbiBlcnJvciB3aGVuIHVzaW5nIGEgbm9uLWV4aXN0aW5nIGNvbmZsaWN0IG1hbmFnZXIgYXMgZGVmYXVsdCAoSVZZLTE3OSkgKHRoYW5rcyB0byBNYWFydGVuIENvZW5lKQotIEZJWDogZXZpY3Rpb24gcHJvYmxlbSB3aXRoIGRpZmZlcmVudCBjb25mbGljdHMgaW4gbXVsdGlwbGUgY29uZnMgKElWWS0xNzMpCgogICB2ZXJzaW9uIDEuMy1SQzIgLSAyMDA2LTAyLTE1Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSBJTVBST1ZFOiBpdnkgbm93IHN1cHBvcnRzICR7cG9tLnZlcnNpb259IGluIHBvbXMgKElWWS0xNzQpCi0gSU1QUk9WRTogYWRkcyB0aGUgcG9zc2liaWxpdHkgdG8gZGlzYWJsZSBjb25jaXN0ZW5jeSBjaGVjayAoSVZZLTE2MykKLSBJTVBST1ZFOiBhZGQgcG9zc2liaWxpdHkgdG8gY2hvb3NlIG1hdGNoZXIgb24gaW5jbHVkZSBleGNsdWRlIGFuZCBjb25mbGljdCBtYW5hZ2VyIHJ1bGVzIGluIGl2eSBmaWxlcywgYW5kIG9uIHJlc29sdmVyIHBlciBtb2R1bGUgaW4gaXZ5Y29uZiAoSVZZLTE2MSkKLSBJTVBST1ZFOiBhZGQgcmVnZXhwIG1hbmFnZW1lbnQgaW4gdGhlIGluc3RhbGwgYW50IHRhc2sgKElWWS0xNTQpCgotIEZJWDogaHR0Y2xpZW50IGlzIG5vdCByZWdpc3RlcmVkIGZvciBodHRwcyB1cmxzIChJVlktMTcxKQotIEZJWDogcG9zdCByZXNvbHZlIHRhc2tzIGxpa2UgcmV0cmlldmUgb3IgY2FjaGVwYXRoIHNob3VsZCBiZSBhYmxlIHRvIHJ1biBmcm9tIGNhY2hlIGluZm9ybWF0aW9uIChJVlktMTY5KQotIEZJWDogcmVzb2x2ZSBmYWlscyB3aXRob3V0IGFwcHJvcHJpYXRlIG1lc3NhZ2Ugd2hlbiBjYWNoZSBpcyBlbXB0eSBhbmQgYSBtb2R1bGUgaW4gdGhlIHJlcG9zaXRvcnkgaGFzIG5vIHJldmlzaW9uIChJVlktMTY1KQotIEZJWDogcmVzb2x2ZSBwcm9ibGVtIHdpdGggY29uZmlndXJhdGlvbiBpbmhlcml0YW5jZSAoSVZZLTE2NCkKLSBGSVg6IHNvbWUgZmlsZXMgaW4gY2FjaGUgZGV0ZWN0ZWQgYnkgbm90IHVzZWQgYnkgSXZ5IGZvciBzdWJzZXF1ZW50IHJldHJpZXZlcyAoSVZZLTE1OSkKLSBGSVg6IEhUTUwgcmVwb3J0IHNob3VsZG4ndCBkaXNwbGF5IHRoZSBkZXBlbmRlbmNpZXMgb2YgZXZpY3RlZCBtb2R1bGVzIChJVlktMTU4KSAodGhhbmtzIHRvIE1hYXJ0ZW4gQ29lbmUpCi0gRklYOiBidWcgd2hlbiBhbiBvcmdhbmlzYXRpb24gb3IgbW9kdWxlIG9yIHJldmlzaW9uIGNvbnRhaW5zIGEgc3BhY2UgKElWWS0xNTcpCi0gRklYOiBjb3Mtbm9uYW1iaWcgd2FybmluZ3MgKElWWS0xNTYpCgogICB2ZXJzaW9uIDEuMy1SQzEgLSAyMDA2LTAxLTI1Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0+IGNvbXBhdGlibGl0eSB3aXRoIHByZXZpb3VzIHZlcnNpb246Ci0gdGhlIGRlZmF1bHQgcGxhY2UgZm9yIHRoZSBjYWNoZSBoYXMgY2hhbmdlZCwgaXQgaXMgbm93IGluIHtVU0VSX0hPTUV9Ly5pdnkvY2FjaGUsIGluc3RlYWQgb2Yge1VTRVJfSE9NRX0vLml2eS1jYWNoZQogIHBsZWFzZSBtb3ZlIHRoaXMgZGlyZWN0b3J5IGlmIHlvdSB3YW50IHRvIGF2b2lkIHVubmVjZXNzYXJ5IGRvd25sb2FkcwotIG1vZHVsZXMgYXJlIG5vdyBsb2dnZWQgYXMgdGhleSBhcmUgZm91bmQsIHNldCBpdnkubG9nLm1vZHVsZS53aGVuLmZvdW5kIHZhcmlhYmxlIHRvIGZhbHNlIHRvIGF2b2lkIHRoaXMKCi0gTkVXOiBuYW1lc3BhY2Ugc3lzdGVtOiBhIHJlc29sdmVyIGNhbiBiZSBkZWNsYXJlZCB0byBiZWxvbmcgdG8gYSBuYW1lc3BhY2UsIHdoaWNoIGl0c2VsZgogICAgICAgc3BlY2lmeSB0aGUgdHJhbnNmb3JtYXRpb24gdG8gYXBwbHkgdG8gY29udmVydCBpdCBmcm9tIGFuZCB0byBzeXN0ZW0gbmFtZXNwYWNlIChJVlktMTQ3KQotIE5FVzogcGx1Z2dhYmxlIG1vZHVsZSBkZXNjcmlwdG9yIHBhcnNlcnMgbGV0IGRlZmluZSBuZXcga2luZCBvZiBtb2R1bGUgZGVzY3JpcHRvciAoSVZZLTE0NikgKHRoYW5rcyB0byBNYWFydGVuIENvZW5lKQotIE5FVzogYSBuZXcgaW5zdGFsbCB0YXNrIGxldCBhZGQgbW9kdWxlcyBmb3VuZCBpbiBhIHJlcG9zaXRvcnkgaW4gYW5vdGhlciBvbmUsIGV2ZW4gdHJhbnNpdGl2ZWx5IChJVlktMTQxKQotIE5FVzogbWF2ZW4yIHBvbSBjb21wYXRpYmlsaXR5OiBtb3N0IHJlc29sdmVycyBhcmUgbm93IGFibGUgdG8gaGFuZGxlIG0yIHBvbSBhcyBwcm9qZWN0IG1ldGFkYXRhCiAgICAgICBhbmQgdGhlcmUgaXMgYSBuZXcgY29udmVydHBvbSB0YXNrIGFibGUgdG8gY29udmVydCBhIHBvbSBmaWxlIHRvIGFuIGl2eSBmaWxlIChJVlktMTQwKQotIE5FVzogaW5jbHVkZSBjb25maWd1cmF0aW9ucyBmcm9tIGV4dGVybmFsIGZpbGUgKElWWS04OCkKLSBORVc6IGEgbmV3IGRlZmF1bHQgcmVzb2x2ZXIgd2hpY2ggbGV0IG92ZXJyaWRlIGl2eSBmaWxlcyBhbmQgYXJ0aWZhY3RzIGZvdW5kIG9uIHB1YmxpYyByZXBvc2l0b3J5CiAgICAgICAoaXZ5cmVwIC8gaWJpYmxpbykgYW5kIGxldCBwdWJsaXNoIG1vZHVsZXMgaW4gYSBsb2NhbCByZXBvc2l0b3J5IChJVlktMTMyKQotIE5FVzogaXZ5Y29uZiBmaWxlIGluY2x1c2lvbiBpbiBpdnljb25mIGZpbGVzIChJVlktOTkpCi0gTkVXOiBtYWNyb2RlZiBmZWF0dXJlIGluIGl2eWNvbmYgZm9yIGRlZmluaW5nIG1hY3JvIHJlc29sdmVycyB3aXRoIHBhcmFtZXRlcnMgKElWWS05OCkKLSBORVc6IGNvbmYgZmFsbGJhY2sgbWVjaGFuaXNtIChJVlktMTQ1KQotIE5FVzogZXhjbHVzaW9uIG5vdyBsZXQgZXhjbHVkZSB3aG9sZSBtb2R1bGVzIChJVlktMTQ0KQotIE5FVzogYWJpbGl0eSB0byB1c2UgYSBkZXBlbmRlbmN5IGluc3RlYWQgb2YgYW4gaXZ5IGZpbGUgaW4gc3RhbmRhbG9uZSBtb2RlIChJVlktOTYpCi0gTkVXOiBhYmlsaXR5IHRvIG91dHB1dCBhIHBhdGggb2YgZGVwZW5kZW5jaWVzIGluIGNhY2hlIGZyb20gdGhlIHN0YW5kYWxvbmUgbW9kZSAoSVZZLTkyKQotIE5FVzogaXQgaXMgbm93IHBvc3NpYmxlIHRvIHJlZmVyZW5jZSBleGlzdGluZyByZXNvbHZlciBpbiByZXNvbHZlciBjb250YWluZXJzIChJVlktMzUpCi0gTkVXOiBvdmVyd3JpdGUgYXR0cmlidXRlIGluIHRoZSBwdWJsaXNoIHRhc2sgbm93IGxldCBmb3JjZSBvdmVyd3JpdGUgb2YgcmVhZCBvbmx5IGZpbGVzIChJVlktODMpIAotIE5FVzogYWRkIGEgY29uZmxpY3QgbWFuYWdlciAoInN0cmljdCIpIG1ha2luZyBidWlsZCBmYWlsIHdoZW4gYSBkaWFtb25kIGNvbmZsaWN0IGlzIGZvdW5kICh0aGFua3MgdG8gQ2hyaXN0ZXIgSm9uc3NvbikgKElWWS0xMTgpIAoKLSBJTVBST1ZFOiBnZW5lcmF0ZSB4bWwgcmVwb3J0IHVzaW5nIGl2eTpyZXBvcnQgdGFzayAoSVZZLTE0MykKLSBJTVBST1ZFOiBwb3NzaWJpbGl0eSB0byBjb25maWd1cmUgaXZ5IHNvIHRoYXQgc3BlY2lhbCByZXZpc2lvbnMgYXJlIG5vdCBxdWVyaWVkIGFzIGZpeGVkIG9uZSBhdCBhbGwgKElWWS0xMzkpCi0gSU1QUk9WRTogYmV0dGVyIHVybCBxdWVyeWluZyBtYW5hZ2VtZW50IChJVlktMTM4KSAodGhhbmtzIHRvIEJlcm5hcmQgTmlzZXQpCi0gSU1QUk9WRTogZG8gbm90IGFkZCByZXNvbHZlciBpbmZvIGluIGl2eSBmaWxlcyBpbiBjYWNoZSBzbyB0aGF0IHRoZXkgY2FuIGJlIHNhZmVseSB1c2VkIGFzIHVzdWFsIGl2eSBmaWxlcyBpbiBhIHJlcG9zaXRvcnkgKElWWS0xMzcpCi0gSU1QUk9WRTogcmV2aWV3IGRlZmF1bHQgY29uZiBtYXBwaW5nIG1hbmFnZW1lbnQgKElWWS0xMzQpCi0gSU1QUk9WRTogYWRkIHBvc3NpYmlsaXR5IGZvciBhIGNoYWluIHRvIGJlaGF2ZSBsaWtlIGEgZHVhbCBjaGFpbiAoSVZZLTEzMSkKLSBJTVBST1ZFOiBhZGQgcG9zc2liaWxpdHkgdG8gYXZvaWQgb3ZlcndyaXRlIG9mIGFuIGl2eSB2YXJpYWJsZSB3aGVuIHNldHRpbmcgdGhlbSBpbiBpdnljb25mLnhtbCAoSVZZLTEyNykKLSBJTVBST1ZFOiBhYmlsaXR5IHRvIGV4Y2x1ZGUgdGhlIHJvb3QgcHJvamVjdCBmcm9tIHRoZSBidWlsZGxpc3QgKHRoYW5rcyB0byBDb25zdGFudGluZSBWZXRvc2hldikgKElWWS0xMjQpCi0gSU1QUk9WRTogZXhjbHVzaW9uIG9mIGFydGlmYWN0cyBub3cgd29ya3Mgb24gdHJhbnNpdGl2ZSBhcnRpZmFjdHMsIGFuZCBleGNsdXNpb24gY2FuIHNwZWNpZnkgb3JnYW5pc2F0aW9uIGFuZC9vciBtb2R1bGUgKElWWS0xMTYpCi0gSU1QUk9WRTogbm93IGR5bmFtaWMgcmV2aXNpb25zIHJlcGxhY2VtZW50IGJ5IGRlbGl2ZXIgdGFzayBjYW4gYmUgdHVybmVkIG9mZiAoSVZZLTEyMCkKLSBJTVBST1ZFOiBiZXR0ZXIgcGVyZm9ybWFuY2Ugd2l0aCBkZWVwIHRyYW5zaXRpdmUgZGVwZW5kZW5jaWVzCi0gSU1QUk9WRTogYWxsb3cgb3B0aW9uYWwgcGFydHMgaW4gdGhlIHBhdHRlcm5zIChJVlktMTAyKSAodGhhbmtzIHRvIE1hYXJ0ZW4gQ29lbmUpCi0gSU1QUk9WRTogYWJpbGl0eSB0byBkZWZpbmUgdmFyaWFibGUgZGlyZWN0bHkgaW4gaXZ5Y29uZi54bWwgKElWWS0xMDApCi0gSU1QUk9WRTogYWJpbGl0eSB0byB1c2Ugbm8gcmV2aXNpb24gaW4gcGF0dGVybiB3aXRoIGxhdGVzdC5pbnRlZ3JhdGlvbiBkZXBlbmRlbmN5LCBhcnRpZmFjdHMgYmVpbmcgdXBkYXRlZCBhY2NvcmRpbmcgdG8gcmV2aXNpb24gY2hhbmdlIGluIGl2eSBmaWxlIChpZiBjaGVja21vZGlmaWVkIGlzIHNldCB0byB0cnVlKSAoSVZZLTk1KQotIElNUFJPVkU6IGFiaWxpdHkgdG8gc3BlY2lmeSBhIHJvb3QgbW9kdWxlIGluIGJ1aWxkbGlzdCB0byBmaWx0ZXIgb3V0IHVubmVjZXNzYXJ5IGJ1aWxkIGZpbGVzIChJVlktOTMpICh0aGFua3MgdG8gS3Jpc3RpYW4gQ2lidWxza2lzKQotIElNUFJPVkU6IGltcG9ydCBzeXN0ZW0gcHJvcGVydGllcyBhcyBpdnkgdmFyaWFibGVzIGluIHN0YW5kYWxvbmUgbW9kZQotIElNUFJPVkU6IHN0cmluZyBpZGVudGlmeWluZyBhIG1vZHVsZSBpcyBub3cgY2xlYXJseSBkaWZmZXJlbnQgZnJvbSBhIHBhdGgKLSBJTVBST1ZFOiBiZXR0ZXIgZXJyb3IgbWVzc2FnZSB3aGVuIHB1Ymxpc2ggZmFpbHMgZHVlIHRvIHJlYWRvbmx5IGRlc3RpbmF0aW9uIChJVlktODMpCi0gSU1QUk9WRTogc29tZSBqYXZhZG9jIGltcHJvdmVtZW50cyAoSVZZLTEzNiBJVlktMTI5KSAodGhhbmtzIHRvIFN0ZXBoZW4gTmVzYml0dCkKCi0gRklYOiBwcm9ibGVtIHJlc29sdmluZyBkZXBlbmRlbmNpZXMgd2hlbiAyIG1vZHVsZSB2ZXJzaW9ucyBoYXZlIGRpZmZlcmVudCBjb25maWd1cmF0aW9ucyAoSVZZLTE1MSkKLSBGSVg6IHByb2JsZW0gd2l0aCBpbmhlcml0YW5jZSBiZXR3ZWVuIHB1YmxpYyBhbmQgcHJpdmF0ZSBjb25mIChJVlktMTQ5KQotIEZJWDogbm8gdmFyaWFibGUgcmVwbGFjZW1lbnQgZHVyaW5nIHRoZSBkZWxpdmVyIHN0ZXAgKElWWS0xMzMpCi0gRklYOiBjb25mbGljdCBiYWRseSBzb2x2ZWQgaW4gc29tZSBjb21wbGV4IGNhc2VzIChJVlktMTMwKQotIEZJWDogbWFwcGluZyBvbiBjb25mICogbm93IG9ubHkgdGFrZXMgcHVibGljIGNvbmZpZ3VyYXRpb25zIChJVlktMTI2KQotIEZJWDogYmFkIGRlcGVuZGVuY3kgaXZ5IGZpbGVzIG5vdyBjYXVzZXMgZmFpbHVyZSAoSVZZLTExMikKLSBGSVg6IHN0YWNrIG92ZXJmbG93IGVycm9yIGluIGNvbnRyYWRpY3RvcnkgY29uZmxpY3QgY2FzZXMgKElWWS0xMTcpCi0gRklYOiBwdWJsaXNoIG5vdyBkb2Vzbid0IGNhbGwgZGVsaXZlciB3aGVuIG5vdCBuZWNlc3NhcnkgKElWWS0xMTkpCi0gRklYOiBjYWNoZWZpbGVzZXQgd2FzIHJldHVybmluZyBhbGwgYXJ0aWZhY3RzIGZvciBlbXB0eSBjb25maWd1cmF0aW9uIChJVlktMTA4KQotIEZJWDogdHJhbnNpdGl2ZSBhbmQgY2hhbmdpbmcgYXR0cmlidXRlIHdlcmUgbm90IGNvcGllZCBpbiBpdnkgZmlsZXMgaW4gY2FjaGUgKElWWS05NCkKLSBGSVg6IGNoYWluIHJlc29sdmVyIG5vdyBzdXBwb3J0IGxhdGVzdCBzdHJhdGVneSBjb25maWd1cmF0aW9uIChJVlktOTApCi0gRklYOiByYWlzZSBhIGNsZWFuIGVycm9yIHdoZW4gYSBjeWNsaWMgdmFyaWFibGUgZGVmaW5pdGlvbiBpcyBmb3VuZCAoSVZZLTc1KQotIEZJWDogY2xlYW4gYW50IHByb2plY3QgcmVmZXJlbmNlIGF0IHRoZSBlbmQgb2YgdGhlIGJ1aWxkIHRvIGltcHJvdmUgdXNhYmlsaXR5IGluIGlkZSBsYXVuY2hpbmcgbXVsdGlwbGUgYnVpbGRzIGluIHRoZSBzYW1lIHZtIChsaWtlIG5ldGJlYW5zKSAoSVZZLTg3IC0gSVZZLTExNSkKLSBGSVg6IGl2eSBpcyBub3cgYWJsZSB0byB1c2Ugc2ltcGxlIGl2eSBmaWxlcyBpbiBjYWNoZSAoZG9lc24ndCBuZWVkIHJlc29sdmVyIGluZm8sIHVzZSBkZWZhdWx0IG9uZSBpZiBubyByZXNvbHZlciBpcyBnaXZlbikgKElWWS04NikKLSBGSVg6IHByaXZhdGUgY29uZiBub3QgYWNjZXNzaWJsZSBmcm9tIG90aGVyIG1vZHVsZXMgKElWWS03NikKLSBGSVg6IHJvb3QgbW9kdWxlIGNvbmZpZ3VyYXRpb25zIGlzb2xhdGlvbiBidWcgZml4ZWQgKElWWS04NCkKLSBGSVg6IGNoYW5nZWQgdGhlIHBsYWNlIHdoZXJlIGl2eSBzdG9yZXMgbWFzdGVyIGl2eSBmaWxlcyBpbiBjYWNoZSB0byBub3Qgb3ZlcmxhcAogICAgICAgd2l0aCBkZXBlbmRlbmNpZXMgb25lIChJVlktODUpCi0gRklYOiBidWcgaW4gUmVzb3VyY2VIZWxwZXIgZGlkbid0IGxldCBvdmVycmlkZSByZXNvdXJjZSBlYXNpbHkgKElWWS04MCkKLSBGSVg6IHRocm93cyBhIGNpcmN1bGFyIGRlcGVuZGVuY3kgZXhjZXB0aW9uIHdoZW4gYSBjaXJjdWxhciBkZXBlbmRlbmN5IGlzIGZvdW5kIAogICAgICAgaW5zdGVhZCBvZiBmYWlsaW5nIHNpbGVudGx5IChJVlktNzkpCgogICB2ZXJzaW9uIDEuMmEgLSAyMDA1LTA5LTE0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KTm90ZSA6IHZlcnNpb24gMS4yIHByZXZpb3VzbHkgcHVibGlzaGVkIG9uIGl2eSBzaXRlIHdhcyBub3QgdGhlIHJlYWwgMS4yIGR1ZSB0byBhIGJhZCByZWxlYXNlIG9wZXJhdGlvbgogICAgICAgdmVyc2lvbiAxLjJhIHNob3VsZCB0aGVuIGJlIHVzZWQgaW5zdGVhZAogICAgICAgCi0gbmV3IGl2eS5kZXBzLmNoYW5nZWQgcHJvcGVydHkgc2V0IGlmIHRoZXJlIGFyZSBjaGFuZ2VzIHNpbmNlIGxhc3QgcmVzb2x2ZSAoSVZZLTcxKQotIG5ldyBidWlsZGxpc3QgdGFzazogY2FsY3VsYXRlIG9yZGVyIG9mIGRlcGVuZGVuY2llcyBvZiBzdWJwcm9qZWN0cyBmb3IgZWFzeSBtdWx0aS1wcm9qZWN0cyBidWlsZHMgKElWWS02OSkKLSBhY2NlcHQgb3JnYW5pemF0aW9uIGFzIHRva2VuIChJVlktNTUpCi0gYWRkZWQgdHlwZSBmaWx0ZXJpbmcgbWVjaGFuaXNtIG9uIHJlc29sdmUgdGFzayAoSVZZLTQ1KQotIGRldGVjdCBhbmQgd2FybiBhYm91dCByZXNvbHZlciB1c2luZyBpdnkgY2FjaGUgYXMgcmVwb3NpdG9yeSAoSVZZLTUzKQotIG5ldyB0cmFuc2l0aXZlIGF0dHJpYnV0ZSBvbiBkZXBlbmRlbmN5LCB3aGljaCBlbmFibGUgdG8gZGlzYWJsZSB0cmFuc2l0aXZlIGRlcGVuZGVuY3kKICBtYW5hZ2VtZW50IG9uIGEgcGFydGljdWxhciBkZXBlbmRlbmN5ICh0aGFua3MgdG8gSW5nbyBBZGxlcikgKElWWS0yMCkKLSBuZXcgJ0AnIGluIGRlcGVuZGVuY3kgY29uZmlndXJhdGlvbiBtYXBwaW5nIGRlY2xhcmF0aW9uLCB1c2VkIHRvIGluZGljYXRlIHRoYXQgYSBjb25maWd1cmF0aW9uIG1hcHMgdG8gaXRzZWxmCiAgdXNlZnVsIHdpdGggKiwgJyotPkAnIG1lYW5pbmcgdGhhdCBhbGwgY29uZmlndXJhdGlvbnMgb2YgdGhlIG1vZHVsZSBtYXBzIHRvIHRoZWlyIGVxdWl2YWxlbnQgKHNhbWUgbmFtZSkKICBpbiB0aGUgZGVwZW5kZW5jeSAoSVZZLTUyKQotIG5ldyBjaGFuZ2luZyBhdHRyaWJ1dGUgb24gZGVwZW5kZW5jaWVzIGluZGljYXRlIHRoYXQgdGhlIGRlcGVuZGVuY3kgYXJ0aWZhY3RzCiAgbWF5IGNoYW5nZSBldmVuIHdpdGhvdXQgcmV2aXNpb24gY2hhbmdlLCBidXQgd2l0aCBvbmx5IGEgbmV3IGl2eSBmaWxlIHdpdGggbmV3IAogIHB1YmxpY2F0aW9uIGRhdGUKLSBuZXcgdXNlUmVtb3RlQ29uZmlnIG9uIGNvbmYgdGFnIGluIGl2eWNvbmYueG1sLCB0ZWxscyB0byB1c2UgcmVtb3RlIGNvbmZpZ3VyYXRpb24gZmlsZQogIGZvciByZXBvc2l0b3J5IGNvbmZpZwotIG5ldyB0eXBlIGZpbHRlcmluZyBpbiBjYWNoZXBhdGggdGFzawotIG5ldyBjYWNoZWZpbGVzZXQgdGFzazogYnVpbGRzIGFuIGFudCBmaWxlc2V0IG9mIGFydGlmYWN0cyBpbiBjYWNoZQotIHB1Ymxpc2ggdGFzayBub3cgdXNlcyBzcmNpdnlwYXR0ZXJuIGZvciBpdnkgZmlsZXMgZmluZGluZyBhbmQgZm9yIGRlbGl2ZXJ5Ci0gYmV0dGVyIGRlYnVnIGFuZCBlcnJvciBtZXNzYWdlcyAoSVZZLTYwIElWWS02MSkKLSBhZGRlZCBhIGphdmFkb2MgdGFyZ2V0IGluIGFudCBidWlsZCAodGhhbmtzIHRvIGpvc2h1YSBuaWNob2xzKQotIEZJWDogbW9kdWxlIGRlc2NyaXB0b3JzIHNvcnQgd2FzIGZhaWxpbmcgaW4gc29tZSBjYXNlIGNhc2VzIChmaXggYnkgS2FybCBCYXVtKQotIEZJWDogSXZ5IGNvbXBsYWlucyBhYm91dCBzY2hlbWEgZGlyZWN0aXZlIChJVlktNjQpCi0gRklYOiAnbnVsbCcgc3RhdHVzIGF0dHJpYnV0ZSBpbiBtb2R1bGUgZGVzY3JpcHRvciAoSVZZLTYyKQotIEZJWDogcmVwb3J0IGhlYWRlciBjb250YWlucyBpbmNvcnJlY3QgbGluayBhZnRlciByZXNvbHZlIGZvciBtdWx0aXBsZSwgY29tbWEtc2VwYXJhdGVkIGNvbmZpZ3VyYXRpb25zIChJVlktNTcpCi0gRklYOiBlcnJvciByZXRyaWV2aW5nIGRlcGVuZGVuY2llcyB3aXRoIGEgJysnIGluIHRoZWlyIHJldmlzaW9uIGlmIHRoZSBpdnkgZmlsZSBkb2Vzbid0IGV4aXN0IC0gZml4ZWQgYnkgbWFhcnRlbiBjb2VuZSAoSVZZLTU5KQotIEZJWDogdHJ5aW5nIHRvIHJlc29sdmUgbGF0ZXN0IHdpdGggbm8gcmV2aXNpb24gaW4gcGF0dGVybiBjYXVzZWQgYSBTdGFja092ZXJmbG93RXJyb3IgKElWWS01NikKLSBGSVg6IG5vdyBoYW5kbGUgdHJhbnNpdGl2ZSBldmljdGlvbiAoSVZZLTUxKQotIEZJWDogcmVzb2x2ZSBub3cgc3RvcmUgcmVzb2x2ZWQgZmlsZSBpZCBpbiBpdnkgdmFyaWFibGVzLCBzbyB0aGF0IG11bHRpcGxlIHJlc29sdmUgY2FsbHMKICBjYW4gYmUgZm9sbG93ZWQgYnkgbXVsdGlwbGUgcmV0cmlldmUsIGVhY2ggcmV0cmlldmUgd2lsbCB1c2UgdGhlIGxhc3QgcmVzb2x2ZSBpbmZvIChJVlktNDkpCi0gRklYOiBJbGxlZ2FsU3RhdGVFeGNlcHRpb24gb24gcmV0cmlldmUgZG9uZSBmcm9tIGNvbW1hbmQgbGluZQotIEZJWDogY2hlY2tzIGl2eSBmaWxlcyBkYXRhIGNvbnNpc3RlbmN5IHdpdGggYXNrZWQgaW5mbyAob3JnLCBtb2R1bGUgbmFtZSBhbmQgcmV2aXNpb24pCi0gRklYOiB1c2UgQVVUSCBjb25maWd1cmF0aW9uIGZvciBjb25maWd1cmF0aW9uIGZpbGUKLSBJTVBST1ZFOiBhZGRlZCBwdWJsaXNoIGhhbmRsaW5nIGZyb20gY29tbWFuZCBsaW5lIChJVlktNDgpIAoKICAgdmVyc2lvbiAxLjEgLSAyMDA1LTA2LTEzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSByZW1vdGUgY29uZmlndXJhdGlvbiAoaWYgYXZhaWxhYmxlKSBvZiBpdnlyZXAgYW5kIGliaWJsaW8gcGF0dGVybnMgYW5kIHJvb3RzCi0gbmV3IGRldGFpbGVkIG1lc3NhZ2VzIHdoZW4gaXZ5IGZhaWxzIHRvIHJlYWNoIGFuIHVybCAodGhhbmtzIHRvIE5pY29sYXMpCi0gbmV3IGFydGlmYWN0cHJvcGVydHkgdGFzaywgd2hpY2ggZW5hYmxlcyB0byBzZXQgYSBwcm9wZXJ0eSBmb3IgZWFjaCBkZXBlbmRlbmN5IGFydGlmYWN0cwogIHJlc29sdmVkIGJ5IGl2eQotIG5ldyBkZWZhdWx0Y29uZiBhdHRyaWJ1dGUgaW4gaXZ5IGZpbGUgZGVwZW5kZW5jaWVzLCB0byBjaGFuZ2UgdGhlIGRlZmF1bHQgY29uZiB0byB1c2UgaW4gdGhlIGZpbGUKICB3aGVuIG5vIGNvbmYgaXMgc3BlY2lmaWVkIGZvciBhIGRlcGVuZGVuY3kKLSBhZGQgdGhlIGFiaWxpdHkgdG8gY2hhbmdlIHRoZSB4c2wgZmlsZSBhbmQgcmVwb3J0IG5hbWUgcGF0dGVybiB1c2VkIGJ5IHJlcG9ydCB0YXNrCi0gaHR0cCBsaXN0aW5nIG5vdyBjb21wYXRpYmxlIHdpdGggdG9tY2F0IGxpc3RpbmcgKHRlc3RlZCB3aXRoIDUuMC4yOCkKLSBwdWIgcmV2aXNpb24gaW4gZGVsaXZlciB0YXNrIG5vdyBkZWZhdWx0cyB0byB0aW1lc3RhbXAgaWYgbm90IHByb3ZpZGVkIGJ5IGFueSBvdGhlciB3YXkKLSBkZWJ1ZyBtZXNzYWdlcyBpbXByb3ZlbWVudHMsIHdpdGggY29uZmlndXJhdGlvbiBkdW1wIGFtb25nIG90aGVycwotIG5ldyB2YXIgdGFzaywgZW5hYmxlcyB0byBzZXQgaXZ5IHZhcmlhYmxlcyBmcm9tIGFudAotIG5vdyBkZWZhdWx0cyBmb3IgaXZ5cmVwIGFuZCBpYmlibGlvIHJlc29sdmVyIGFyZSBjb25maWd1cmFibGUgYnkgdmFyaWFibGVzCi0gcmVmYWN0b3Jpbmc6IGludHJvZHVjZSB0aGUgbm90aW9uIG9mIEJhc2ljUmVzb2x2ZXIsIFJlcG9zaXRvcnksIFJlc291cmNlLCBSZXBvc2l0b3J5UmVzb2x2ZXIsCiAgbWFraW5nIG11Y2ggZWFzaWVyIHRoZSB0YXNrIG9mIHdyaXRpbmcgYmFzaWMgcmVzb2x2ZXJzCi0gYWRkZWQgY2hlY2ttb2RpZmllZCBhdHRyaWJ1dGUgb24gYWxsIGJhc2ljIHJlc29sdmVycywgd2hpY2ggZGVmYXVsdHMgdG8gJHtpdnkucmVzb2x2ZXIuZGVmYXVsdC5jaGVjay5tb2RpZmllZH0KICBUaGlzIG1ha2VzIGl2eSBjaGVjayBsYXN0IG1vZGlmaWVkIGRhdGUgb2YgaXZ5IGZpbGVzIHRvIHNlZSBpdCBpdHMgY2FjaGUgaXMgdXAgdG8gZGF0ZQotIGFydGlmYWN0cyBkb3dubG9hZCBhcmUgbm93IGZpcnN0IG1hZGUgdG8gYSB0ZW1wIGZpbGUsIHdoaWNoIGlzIHJlbmFtZWQKICBvbmx5IGF0IHRoZSBlbmQgb2YgdGhlIGRvd25sb2FkLiBUaGlzIHByZXZlbnQgaW50ZXJydXB0ZWQgZG93bmxvYWRzIHRvIGJlCiAgY29uc2lkZXJlZCBhcyBmaW5pc2hlZAotIEZJWDogaGFuZGxlIHByb3h5IGNvbmZpZ3VyYXRpb24gd2l0aCBodHRwLWNsaWVudCAodGhhbmtzIHRvIE5pY29sYXMpCi0gRklYOiByZW1vdmUgZGVwZW5kZW5jeSBvbiBhbnQgb3V0c2lkZSBvZiBhbnQgaW50ZWdyYXRpb24gY2xhc3NlcwotIEZJWDogcmVzb2x2ZSBwcm9ibGVtIHdoZW4gY29uZmxpY3RzIG9uIGxhdGVzdCByZXZpc2lvbnMgCi0gRklYOiBhbGxvdyB1c2Ugb2YgYW55IGtpbmQgb2YgVVJMIGluIEl2eVJlcFJlc29sdmVyIChib3RoIGl2eXJvb3QgYW5kIGFydHJvb3QpIGFuZCBJQmliaWJsaW9SZXNvbHZlcgotIEZJWDogY2hhaW4gcmVzb2x2ZXIgY2FuIG5vdyBiZSB1c2VkIGZvciBhcnRpZmFjdHMgcGFydCBvZiBkdWFsIHJlc29sdmVyCi0gRklYOiBub3cgZGV0ZWN0cyBhbmQgd2FybiBhYm91dCBjaXJjdWxhciBkZXBlbmRlbmNpZXMKLSBGSVg6IGNhY2hlcGF0aCB0YXNrIG5vdyB0YWtlcyBwYXRoaWQgYXMgcGFyYW1ldGVyIGluc3RlYWQgb2YgaWQsIHRvIHByZXZlbnQKICBzcGVjaWFsIGhhbmRsaW5nIGZyb20gYW50Ci0gRklYOiBpdnkueHNkOiBzZXQgYXJ0aWZhY3QgbWluT2NjdXJzIHRvIDAgaW4gcHVibGljYXRpb25zCgpUaGFua3MgdG8gSm9obiBTaGllbGRzIGZyb20gUm9iZXJ0IEhhbGYgSW50ZXJuYXRpb25hbCwgSW5jLjoKLSBGSVg6IG5vIG1vcmUgaW5maW5pdGUgbG9vcCB3aGVuIGEgY29uZmxpY3Qgb2NjdXJzIGJldHdlZW4gYSBsYXRlc3Qgc3VidmVyc2lvbiBhbmQgYSBmdWxseSByZXNvbHZlZCByZXZpc2lvbgotIEZJWDogQmFzaWNVUkxIYW5kbGVyIG5vdyBjbG9zZXMgaXRzIGNvbm5lY3Rpb25zCi0gRklYOiBBcGFjaGVVUkxMaXN0ZXIgbm93IHdvcmtzIHdpdGggY2FwaXRhbCBsZXR0ZXIgaW4gcmV2aXNpb25zIGFuZCB0cnVuY2F0ZWQgbmFtZXMKLSBub3cgdXNlIG9mIGl2eSB2YXJpYWJsZXMgaXMgYWxsb3dlZCBpbiBpdnkgZmlsZXMKLSBhZGRlZCBhIG51bGwgY2hlY2sgaW4gcGF0dGVybiBoZWxwZXIgc3Vic3RpdHV0ZQoKICAgdmVyc2lvbiAxLjAgLSAyMDA1LTA0LTI2Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMS4wLXJjMyBoYXMgYmVlbiBwcm9tb3RlZCB0byAxLjAgb24gMjAwNS0wNC0yNgoKS25vd24gYnVncyBhbmQgbGltaXRhdGlvbnM6Ci0gY3ljbGljIGRlcGVuZGVuY2llcyByZXN1bHQgaW4gU3RhY2tPdmVyZmxvd0Vycm9yCi0gaW5maW5pdGUgbG9vcCBpbiByYXJlIGNhc2VzIHdoZW4gYSBjb25mbGljdCBvY2N1ciBiZXR3ZWVuIGEgbGF0ZXN0IHN1YnZlcnNpb24gYW5kIGEgZnVsbHkgcmVzb2x2ZWQgcmV2aXNpb24KLSB1cmwgY29ubmVjdGlvbnMgbm90IGNsb3NlZCBwcm9wZXJseSB3aGVuIG5vdCB1c2luZyBjb21tb25zLWh0dHBjbGllbnQKLSBsYXRlc3QgZG9lcyBub3Qgd29yayB3aXRoIGh0dHAgdXJscyBpbiBzb21lIGNhc2VzLCB3aGVuIHRoZSBuYW1lIG9mIHRoZSBsaW5rIGlzIHRydW5jYXRlZCBpbiB0aGUgd2ViIHBhZ2UKCiAgIHZlcnNpb24gMS4wLXJjMyAtIDIwMDUtMDQtMjEKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotIElNUFJPVkU6IGFkZGVkIGRlYnVnIG1lc3NhZ2VzIG9uIHZhcmlhYmxlcyBzZXR0aW5nCi0gRklYOiBpdnljb25mIG5vdyBhYmxlIHRvIGxvYWQgYSBwcm9wZXJ0aWVzIGZpbGUgZ2l2ZW4gYXMgdXJsCi0gRklYOiBkZWxpdmVyIHB1YiBkYXRlIG5vdyBhY3R1YWxseSBkZWZhdWx0cyB0byAnbm93JwotIEZJWDogYWxsIHRhc2tzIGF0dHJpYnV0ZXMgbm93IHN1YnN0aXR1dGUgaXZ5IHZhcmlhYmxlcwoKICAgdmVyc2lvbiAxLjAtcmMyIC0gMjAwNS0wNC0xOAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gSU1QUk9WRTogaW1wcm92ZWQgbWVzc2FnZXM6IG1vcmUgZGVidWcsIG1vcmUgdmVyYm9zZSwgYW5kIG1vcmUgZGV0YWlscyBvbiBmYWlsdXJlcwotIEZJWDogYnVnIHdpdGggJ1wnIGluIHBhdGggcGF0dGVybnMKLSBGSVg6IGJ1ZyB3aXRoIHJlbGF0aXZlIHBhdGhzIHBhdHRlcm5zCi0gRklYOiBjb25maWd1cmUgdGFzayB0cmllcyBpdnkuY29uZi5maWxlIGFzIHJlbGF0aXZlIHRvIGJhc2UgZGlyIGFuZCB0byBjdXJyZW50IGRpcgotIEZJWDogZmlsZSBzeXN0ZW0gcmVzb2x2ZXIgcHVibGlzaGVzIGl2eSBmaWxlcyB3aXRoIGl2eSBwYXR0ZXJuCi0gRklYOiAwIGNvbnRlbnQgbGVuZ3RoIGNvbnNpZGVyZWQgYXMgbm9uIGV4aXN0aW5nIChiZWhhdmlvdXIgb2YganJlIDUuMCBvbiBsaW51eCkgCiAgICAgICA9PiBlbXB0eSByZXNzb3VyY2VzIGFyZSBub3cgY29uc2lkZXJlZCBhcyBub24gZXhpc3RpbmcKCiAgIHZlcnNpb24gMS4wLXJjMSAtIDIwMDUtMDQtMTIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotIGFkZCByZXBvcnQgdGFzaywgd2hpY2ggZW5hYmxlcyB0byBnZW5lcmF0ZXMgcmVwb3J0cyBvZiBkZXBlbmRlbmNpZXMsIGluY2x1ZGluZyBhIGdyYXBoCiAgcmVhZHkgdG8gYmUgbGF5ZWQgb3V0IGJ5IHlFZAotIGFkZCBleGNsdWRlIGZlYXR1cmUgaW4gZGVwZW5kZW5jeQotIGluY2x1ZGUgZXhjbHVkZSBmZWF0dXJlIG5vdyBoYW5kbGVzIHJlZ2V4cHMKLSBuZXcgbGF0ZXN0IHN0cmF0ZWd5OiBsYXRlc3QgcmV2aXNpb24gbm93IHVzZXMgYSAicGhwIHZlcnNpb25fY29tcGFyZSIgbGlrZSBhbGdvcml0aG0sIHdoZXJlYXMKICBsZXhpY29ncmFwaGljIGNvbXBhcmlzb24gaXMgbm93IGF2YWlsYWJsZSBpbiBsYXRlc3QgbGV4aWNvZ3JhcGhpYwotIGVuaGFuY2UgeG1sIHJlc29sdmUgcmVwb3J0IGRldGFpbHMKLSBGSVg6IGJldHRlciBzZXBhcmF0aW9uIGJldHdlZW4gcm9vdCBjb25maWd1cmF0aW9ucwotIEZJWDogWG1sTW9kdWxlRGVzY3JpcHRvclVwZGF0ZXIgbm93IHByZXNlcnZlcyB4bWwgaGVhZGVyCi0gRklYOiBtb2R1bGVzIG51bWJlciBpbiByZXBvcnQgKGRpc3BsYXllZCBhdCB0aGUgZW5kIG9mIHJlc29sdmUpCgogICB2ZXJzaW9uIDAuOSAtIDIwMDUtMDQtMDYKPT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gY2xlYXJseSBkaWZmZXJlbmNpYXRlIHBhdHRlcm4gdG9rZW5zIGZyb20gdmFyaWFibGVzLCBieSB1c2luZyBicmFja2V0cyBhcyBkZWxpbWl0ZXIgaW4gcGF0dGVybiB0b2tlbnMKICA9PiBXQVJOSU5HOiB0aGlzIGludHJvZHVjZSBjaGFuZ2VzIGluIGFsbCBwYXR0ZXJucyBzeW50YXgsIGFuZCB0aHVzIGRvZXMgbm90IHByb3ZpZGUgY29tcGF0aWJpbGl0eQogICAgICAgICAgICAgIHdpdGggcHJldmlvdXMgdmVyc2lvbnMKLSBDaGFpblJlc29sdmVyIGFyZSBub3cgYWJsZSB0byBwdWJsaXNoIChkZWxlZ2F0aW5nIHRoZSBjYWxsIHRvIHRoZSBmaXJzdCByZXNvbHZlciBpbiB0aGUgY2hhaW4pCi0gRHVhbFJlc29sdmVyIHN1YiByZXNvbHZlcnMgYXJlIG5vdyByZWdpc3RlcmVkIGluIEl2eQotIG1vcmUgcHJlY2lzZSBtZXNzYWdlIG9uIGV2aWN0aW9uCi0gYWRkIHZhbGlkYXRlIGF0dHJpYnV0ZSBvbiBtb3N0IHJlc29sdmVycwotIGl2eSBmaWxlcyB2YWxpZGF0aW9uIGhhbmRsaW5nIHJldmlldwotIHVzZSBpdnkgdmFyaWFibGVzIGluIGFudCB0YXNrcyB0byBnZXQgZGVmYXVsdCB2YWx1ZXMgZm9yIGF0dHJpYnV0ZXMKLSBkb2N1bWVudGF0aW9uIHVwZGF0ZSBmb3IgY29uZmlndXJpbmcgaXZ5Ci0gRklYOiBkZXBlbmRlbmNpZXMgb3JkZXIgbm90IHRha2VuIGludG8gYWNjb3VudCBkdXJpbmcgcmVzb2x2ZQotIEZJWDogZXZpY3RpbmcgbW9kdWxlcyBhbHNvIGV2aWN0IGNvbmZzCi0gRklYOiBOUEUgZHVyaW5nIHJlc29sdmUgd2hlbiBhIGRlcGVuZGVuY3kgaXZ5IGZpbGUgaGFzIG5vIHB1YmxpY2F0aW9uIGRhdGUKLSBGSVg6IGNoZWNrIG51bGxpdHkgb2YgYXJ0aWZhY3QgZG93bmxvYWQgcmVwb3J0cwoKICAgdmVyc2lvbiAwLjggLSAyMDA1LTAzLTMwCj09PT09PT09PT09PT09PT09PT09PT09PT09PQotIGFkZGVkIHZhbGlkYXRlIGF0dHJpYnV0ZSBvbiByZXNvbHZlLCByZXRyaWV2ZSBhbmQgcHVibGlzaCwgd2hpY2ggYWxsb3dzIHRvIGRpc2FibGUgaXZ5IGZpbGUgdmFsaWRhdGlvbgogIGFnYWluc3QgaXZ5LnhzZCAodXNlZnVsIHRvIHBhcnNlIGZ1dHVyZSBjb21wYXRpYmxlIGl2eSBmaWxlcykKLSBhbnQgcHJvcGVydGllcyBhcmUgbm93IGF2YWlsYWJsZSBpbiBpdnljb25mIGZpbGUKLSB1bmlmaWVkIGRlZmF1bHQgcHJvcGVydGllcyBpbiBpdnljb25mLCB3aXRoIGJldHRlciBpbmRlcGVuZGFuY2UgZnJvbSB1cmwgb3IgZmlsZQotIGFkZGVkIGV4dCBvbiBhcnRpZmFjdHM6IHRoaXMgZW5hYmxlIHRvIGRpc3Rpbmd1aXNoIGFydGlmYWN0IGV4dGVuc2lvbiBmcm9tIGFydGlmYWN0CiAgdHlwZSwgdXRpbCBpbiBjYXNlcyB3aGVyZSBpdCBkaWZmZXJzIChleGFtcGxlOiAnc3JjJyB0eXBlIHdpdGggJ3ppcCcgZXh0ZW5zaW9uLCAnaXZ5JyB0eXBlIHdpdGggJ3htbCcgZXh0ZW5zaW9uLCAuLi4pCi0gYWRkZWQgcHVibGlzaCBhcnRpZmFjdHMgZmVhdHVyZSwgd2hpY2ggZW5hYmxlIHRvIHB1Ymxpc2ggZGVjbGFyZWQgYXJ0aWZhY3RzIG9mIGEgbW9kdWxlIHRvIGEgcmVwb3NpdG9yeQogIGRlc2NyaWJlZCBieSBhIGRlcGVuZGVuY3kgcmVzb2x2ZXIuIEl0IGN1cnJlbnRseSB3b3JrcyBvbmx5IHdpdGggZmlsZXN5c3RlbSByZXNvbHZlci4KLSB1cmwgcmVzb2x2ZXIgbm93IGhhbmRsZXMgbGF0ZXN0IHdpdGggZmlsZSB1cmxzIGFuZCBodHRwIG9uZXMgKHRlc3RlZCBvbmx5IHdpdGggYXBhY2hlIHNlcnZlcikKLSBhZGRlZCBsYXRlc3Qgc3RyYXRlZ3kgY29uY2VwdDogdGhlIHdheSB0byBkZXRlcm1pbmUgd2hpY2ggYXJ0aWZhY3QgaXMgdGhlIGxhdGVzdAogIGlzIG5vdyBjb25maWd1cmFibGUgb24gcmVzb2x2ZXJzIGhhbmRsaW5nIGxhdGVzdC4gCi0gYWRkZWQgcGFyYW1ldGVyIG9uIGNoYWluIHJlc29sdmVyIHRvIHNheSBpZiBpdCBzaG91bGQgcmV0dXJuIGZpcnN0IGZvdW5kIG9yCiAgdHJ5IHRvIGZpbmQgdGhlIGxhdGVzdCBhbW9uZyBhbGwgaWYgYXNrZWQKLSBhIG1vZHVsZSBjYW4gbm93IHB1Ymxpc2ggbm8gYXJ0aWZhY3QsIHVzZWZ1bCBmb3IgdmlydHVhbCBtb2R1bGVzIGNvbnNpc3Rpbmcgb25seQogIG9mIGludGVncmF0aW9uIG9mIG90aGVyIG1vZHVsZXMKLSBhZGRlZCBjb25mbGljdCBtYW5hZ2VtZW50IGF0IHJlc29sdmUgdGltZTogZHVyaW5nIHJlc29sdmUsIG1vZHVsZXMgaW4gY29uZmxpY3QgY2FuIGJlIGV2aWN0ZWQKICBhbmQgdGh1cyBub3QgZG93bmxvYWRlZAotIGFkZGVkIGl2eXJlcCByZXNvbHZlciwgdXNpbmcgaXZ5cmVwIHRvIGZpbmQgaXZ5IGZpbGVzLCBhbmQgaWJpYmxpbyBmb3IgYXJ0aWZhY3RzCi0gdXNlIGl2eXJlcCBpbnN0ZWFkIG9mIGliaWJsaW8gYXMgZGVmYXVsdCByZXNvbHZlcgotIGFkZGVkIG1vcmUgaW5mbyBpbiBpdnkgZmlsZXMgKGRlc2NyaXB0aW9uLCBob21lcGFnZSwgaXZ5IGF1dGhvcnMsIGxpY2Vuc2UsIHB1YmxpYyByZXBvc2l0b3J5LCAuLi4pCi0gbm93IGNhY2hlIGxheW91dCBpcyBjb25maWd1cmFibGUsIHVzaW5nIGNhY2hlSXZ5UGF0dGVybiBhbmQgY2FjaGVBcnRpZmFjdFBhdHRlcm4KICBhdHRyaWJ1dGVzIG9uIGNvbmYgZWxlbWVudCBpbiBpdnljb25mLnhtbAotIGNoYW5nZWQgZGVmYXVsdCBjYWNoZSBsYXlvdXQ6IGFydGlmYWN0cyBhcmUgc2VwYXJhdGVkIGJ5IHR5cGUKLSBhZGRlZCBjYWNoZXBhdGggdGFzaywgd2hpY2ggZW5hYmxlcyB0byBidWlsZCBhbiBhbnQgcGF0aCBvZiBhcnRpZmFjdHMgaW4gY2FjaGUgcmVxdWlyZWQgZm9yIGEgY29uZgoKICAgdmVyc2lvbiAwLjcgLSAyMDA1LTAzLTExCj09PT09PT09PT09PT09PT09PT09PT09PT09PQotIGFkZGVkIGxhdGVzdCBzdWIgcmV2aXNpb24gZmVhdHVyZTogeW91IGNhbiBub3cgc2VsZWN0IHRoZSBsYXRlc3Qgc3ViIHJldmlzaW9uIG9mIGEgbW9kdWxlCiAgdXNpbmcgYSArLiBGb3IgaW5zdGFuY2UsICIxLjArIiBzZWxlY3RzIHRoZSBsYXRlc3QgcmV2aXNpb24gc3RhcnRpbmcgd2l0aCAxLjAuICh0aGFua3MgdG8gam9uYXMgZm9yIHRoZSBpZGVhKQotIGhhbHRvbmZhaWx1cmUgbm93IGRlZmF1bHRzIHRvIHRydWUgKGFzIHN1Z2dlc3RlZCBieSBKZXJvZW4pCi0gc2hvcnRlciBpbmZvIGxpbmVzIHRvIGJldHRlciB2aWV3IGltcG9ydGFudCBpbmZvIChhcyBzdWdnZXN0ZWQgYnkgSmVyb2VuKQotIHJldHJpZXZlIG5vdyBjaGVja3MgaWYgZmlsZXMgYXJlIHVwIHRvIGRhdGUgYmVmb3JlIGNvcHlpbmcgdGhlbSBmcm9tIGNhY2hlLiBUaGlzIGZlYXR1cmUKICBjYW4gYmUgZGlzYWJsZWQgdXNpbmcgdGhlIGNoZWNrVXBUb0RhdGUgYXR0cmlidXRlIGluIGl2eSBjb25maWd1cmF0aW9uIGZpbGUuCi0gZG8gbm90IGRvd25sb2FkIGRlcGVuZGVuY2llcyB3aGVuIG5vdCBuZWNlc3NhcnkgZHVyaW5nIHB1YmxpY2F0aW9uIChhcyBzdWdnZXN0ZWQgYnkgRGFuaWVsZSkKLSBidWcgZml4OiBiZXR0ZXIgaGFuZGxpbmcgb2YgcHVibGlzaCB3aXRob3V0IHJlY3Vyc2l2ZSBkZWxpdmVyeQoKICAgdmVyc2lvbiAwLjYuMSAtIDIwMDUtMDItMTEKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSBidWcgZml4OiBjb25mIGV4dGVuZHMgcHJvYmxlbSB3aXRoIHB1YmxpY2F0aW9ucwotIGJ1ZyBmaXg6IHR5cGVkZWYgYmFkbHkgaGFuZGxlZCBpbiBpdnljb25mLnhtbAotIGJ1ZyBmaXg6IGRlZmF1bHQgcHJvcGVydGllcyBsb2FkaW5nIGluIGl2eSBjb25maWd1cmUgbG9hZGVkIHVzaW5nIHRhc2sgY2xhc3Nsb2FkZXIKCiAgIHZlcnNpb24gMC42IC0gMjAwNS0wMi0wMwo9PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyBmdW5jdGlvbmFsCi0gYWRkZWQgaGFsdG9uZmFpbHVyZSBhdHRyaWJ1dGUgb24gcmVzb2x2ZSBhbmQgcmV0cmlldmUgdGFzaywgc28gdGhhdCBidWlsZCBjYW4gYmUgaGFsdCB3aGVuIAogIHJlc29sdmUgb3IgcmV0cmlldmUgZmFpbHMKLSBhZGRlZCBkZXBlbmRlbmN5IGFydGlmYWN0cyBmaWx0ZXJpbmcgZmVhdHVyZSwgZW5hYmxpbmcgdG8gd29yayBiZXR0ZXIgd2l0aCBpYmlibGlvCi0gaWJpYmxpbyByZXNvbHZlciBjYW4gbm93IGJlIGNvbmZpZ3VyZWQgdG8gdXNlIGFueSBtYXZlbiBsaWtlIHJlcG9zaXRvcnksIHdpdGggcm9vdCBhbmQgcGF0dGVybiBhdHRyaWJ1dGVzCi0gYWRkZWQgZG93bmxvYWQgcHJvZ3Jlc3Npb24gaW5mbyBvbiByZXNvbHZlCi0gZGVmYXVsdCBjYWNoZSBpcyBub3cgaW4gdXNlciBob21lICguaXZ5LWNhY2hlIGluIHVzZXIgaG9tZSksIHNvIHRoYXQgY2FjaGUgaXMgc2hhcmVkCiAgYnkgZGVmYXVsdCBmb3IgYWxsIHByb2plY3RzIG9mIHRoZSBzYW1lIHVzZXIKLSBhZGRlZCBwdWJsaWMgYWNjZXNzIHRvIG1ldGhvZCBnZXREZXBlbmRlbmNpZXMoLi4uKSBpbiBJdnksIHdoaWNoIHJlc29sdmUgZGVwZW5kZW5jaWVzIHdpdGhvdXQKICBkb3dubG9hZGluZyBhcnRpZmFjdHMKLSBhZGRlZCBEdWFsUmVzb2x2ZXIsIHdoaWNoIGFsbG93cyB0byBoYXZlIGl2eSBmaWxlcyBpbiBvbmUgcGxhY2UgYW5kIGFydGlmYWN0cyBpbiBhbm90aGVyIG9uZQoKKyBub24gZnVuY3Rpb25hbAotIGFkZGVkIHNvbWUgdW5pdCB0ZXN0cwotIGRlZXAgcmV2aWV3IG9mIGl2eSBmaWxlIHJlZmVyZW5jZSBkb2N1bWVudGF0aW9uCgorIGJ1Z3MgYW5kIHJlZmFjdG9yaW5nCi0gYnVnIGZpeDogU2ltcGxlVVJMUmVzb2x2ZXIgbm90IGhhbmRsaW5nIHRoZSBjYXNlIHdoZW4gdGhlcmUgaXMgbm8gaXZ5IGZpbGUKLSByZWZhY3RvcmluZzogVVJMUmVzb2x2ZXIgcmVuYW1lZCB0byBBYnN0cmFjdFVSTFJlc29sdmVyCi0gcmVmYWN0b3Jpbmc6IFNpbXBsZVVSTFJlc29sdmVyIHJlbmFtZWQgdG8gVVJMUmVzb2x2ZXIKCiAgIHZlcnNpb24gMC41LjEgLSAyMDA1LTAxLTE2Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gQnVnIEZpeDogTlBFIGluIHB1Ymxpc2ggdGFzayB3aGVuIG5vIGRlbGl2ZXJ5Lmxpc3QuZmlsZSBpcyBwcm92aWRlZAotIGRvY3VtZW50YXRpb24gdXBkYXRlCgogICB2ZXJzaW9uIDAuNSAtIDIwMDUtMDEtMTIKPT09PT09PT09PT09PT09PT09PT09PT09PT09CmluaXRpYWwgcHVibGljIHZlcnNpb24K