MS4gSU5MRUROSU5HCgpXaW5lIORyIGV0dCBwcm9ncmFtIHNvbSBn9nIgZGV0IG32amxpZ3QgYXR0IGv2cmEgV2luZG93cy1wcm9ncmFtCihpbmtsdWRlcmF0IERPUywgV2luZG93cyAzLnggb2NoIFdpbjMyKSBpIFVuaXguIERldCBiZXN05XIgYXYgZW4KcHJvZ3JhbXN0YXJ0YXJlIHNvbSBzdGFydGFyIG9jaCBr9nIgV2luZG93cy1wcm9ncmFtZmlsZXIsIHNhbXQgZXR0CmJpYmxpb3RlayAoa2FsbGF0IFdpbmVsaWIpIHNvbSBpbXBsZW1lbnRlcmFyIFdpbmRvd3MgQVBJLWFucm9wIG1lZCBoauRscAphdiBkZXJhcyBVbml4LSBlbGxlciBYMTEtbW90c3ZhcmlnaGV0ZXIuIEJpYmxpb3Rla2V0IGthbiBvY2tz5SBhbnbkbmRhcwp0aWxsIGF0dCBwb3J0YSBXaW4zMi1rb2QgdGlsbCB2YW5saWdhIFVuaXgtcHJvZ3JhbS4KCldpbmUg5HIgZnJpIHByb2dyYW12YXJhLCB1dGdldHQgdW5kZXIgdmlsbGvlcmVuIGkgR05VIExHUEw7IHNlCmZpbGVuIExJQ0VOU0UgZvZyIGRldGFsamVyLgoKMi4gS09NIElHxU5HCgpO5HIgZHUgYnlnZ2VyIFdpbmUgZnLlbiBr5Gxsa29kIHPlIHJla29tbWVuZGVyYXMgZHUgYW525G5kYSBXaW5lcwppbnN0YWxsYXRpb25zcHJvZ3JhbS4gS/ZyIGb2bGphbmRlIGkgcm90a2F0YWxvZ2VuIGb2ciBXaW5lcyBr5Gxsa29kOgoKLi90b29scy93aW5laW5zdGFsbAoKS/ZyIHByb2dyYW0gbWVkICJ3aW5lIFt2YWxdIHByb2dyYW0iLiBTZSByZXN0ZW4gYXYgZGVubmEgZmlsLApXaW5lcyBtYW4tc2lkb3Igc2FtdCBzaXN0IG1lbiBpbnRlIG1pbnN0IGh0dHA6Ly93d3cud2luZWhxLm9yZy8gZvZyIG1lcgppbmZvcm1hdGlvbiBvY2ggdGlwcyBvbSBodXIgcHJvYmxlbSBrYW4gbPZzYXMuCgoKMy4gU1lTVEVNS1JBVgoKRvZyIGF0dCBrb21waWxlcmEgb2NoIGv2cmEgV2luZSBrcuR2cyBldHQgYXYgZvZsamFuZGU6CgogIExpbnV4IHZlcnNpb24gMi4wLjM2IGVsbGVyIHNlbmFyZQogIEZyZWVCU0QgNi4zIGVsbGVyIHNlbmFyZQogIFNvbGFyaXMgeDg2IDkgZWxsZXIgc2VuYXJlCiAgTmV0QlNELWN1cnJlbnQKICBNYWMgT1MgWCAxMC40IGVsbGVyIHNlbmFyZQoKV2luZSBrcuR2ZXIgc3T2ZCBm9nIgdHLlZGFyIHDlIGtlcm5lbG5pduUsIG9jaCBk5HJm9nIg5HIgZGV0IGJhcmEKb3BlcmF0aXZzeXN0ZW1lbiBvdmFuIHNvbSBzdPZkcy4gQW5kcmEgb3BlcmF0aXZzeXN0ZW0gc29tCnN09mRlciBrZXJuZWx0cuVkYXIga29tbWVyIGV2ZW50dWVsbHQgYXR0IHN09mRqYXMgaSBmcmFtdGlkZW4uCgpJbmZvcm1hdGlvbiBm9nIgTGludXgKICDEdmVuIG9tIExpbnV4IDIuMi54IGFudGFnbGlnZW4gZm9ydGZhcmFuZGUgZnVuZ2VyYXIsIG9jaCBMaW51eCAyLjAueCBrYW5za2UKICBmdW5nZXJhciAodGlkaWdhIDIuMC54LXZlcnNpb25lciB1cHB2aXNhZGUgdHLlZHJlbGF0ZXJhZGUgcHJvYmxlbSksIHPlIORyCiAgZGV0IGLkc3QgYXR0IGhhIGVuIG51dmFyYW5kZSBrZXJuZWwgc29tIDIuNC54IGVsbGVyIDIuNi54LgoKSW5mb3JtYXRpb24gZvZyIEZyZWVCU0QKICBXaW5lIGtvbW1lciBpIHJlZ2VsIGludGUgZnVuZ2VyYSBw5SBGcmVlQlNELXZlcnNpb25lciDkbGRyZSDkbiA2LjMgZWxsZXIgNy4wLgogIEZyZWVCU0QgNi4zIGthbiB1cHBkYXRlcmFzIGZvciBhdHQgc3T2ZGphIFdpbmUuIFNlCiAgPGh0dHA6Ly93aWtpLmZyZWVic2Qub3JnL1dpbmU+IGb2ciBtZXIgaW5mb3JtYXRpb24uCgpJbmZvcm1hdGlvbiBm9nIgU29sYXJpcwogIFdpbmUgbeVzdGUgYW50YWdsaWdlbiBieWdnYXMgbWVkIEdOVSB0b29sY2hhaW4gKGdjYywgZ2FzIGV0Yy4pLgogIFZhcm5pbmc6IOR2ZW4gb20gZ2FzIGluc3RhbGxlcmFzIHPlIORyIGRldCBpbnRlIHPka2VydCBhdHQgZGV0IGFuduRuZHMgYXYKICBnY2MuIERldCBz5GdzIGF0dCBkZXQg5HIgbvZkduRuZGlndCBhdHQgYW50aW5nZW4gYnlnZ2EgZ2NjIHDlIG55dHQsIGVsbGVyCiAgc2thcGEgc3ltYm9saXNrYSBs5G5rYXIgZnLlbiAiY2MiLCAiYXMiIG9jaCAibGQiIHRpbGwgR05VIHRvb2xjaGFpbi4KCkluZm9ybWF0aW9uIGb2ciBOZXRCU0QKICBVU0VSX0xEVCwgU1lTVlNITSwgU1lTVlNFTSBvY2ggU1lTVk1TRyBt5XN0ZSB2YXJhIGFrdGl2ZXJhZGUgaSBrZXJuZWxuLgoKSW5mb3JtYXRpb24gZvZyIE1hYyBPUyBYOgogIER1IGJlaPZ2ZXIgWGNvZGUgMi40IGVsbGVyIHNlbmFyZSBm9nIgYXR0IGtvcnJla3Qga3VubmEgYnlnZ2EgV2luZSBw5SB4ODYuCgoKU3T2ZGRhIGZpbHN5c3RlbQogIFdpbmUga2FuIGv2cmEgcOUgZGUgZmxlc3RhIGZpbHN5c3RlbSwgbWVuIGRldCBoYXIgcmFwcG9ydGVyYXRzIHByb2JsZW0gdmFkCiAgZ+RsbGVyIGtvbXBhdGliaWxpdGV0IGTlIHNhbWJhIGFuduRuZHMgZvZyIGF0dCBhbnNsdXRhIHRpbGwgZmlsZXIuIE5URlMKICB0aWxsaGFuZGFo5WxsZXIgaW50ZSBoZWxsZXIgYWxsYSBmaWxzeXN0ZW1zZnVua3Rpb25lciBzb20gYmVo9nZzIGF2IGFsbGEKICBwcm9ncmFtLiBEZXQgcmVrb21tZW5kZXJhcyBhdHQgYW525G5kYSBldHQgTGludXgtZmlsc3lzdGVtIHNvbSBleGVtcGVsdmlzCiAgZXh0My4KCkdydW5kbORnZ2FuZGUga3JhdjoKICBVdHZlY2tsaW5nc2ZpbGVybmEgZvZyIFgxMSBt5XN0ZSB2YXJhIGluc3RhbGxlcmFkZSAoZGUga2FsbGFzIHhsaWI2Zy1kZXYgaQogIERlYmlhbiBvY2ggWEZyZWU4Ni1kZXZlbCBpIFJlZCBIYXQpLgoKICBEdSBt5XN0ZSBnaXZldHZpcyBvY2tz5SBoYSAibWFrZSIgKG1lc3QgdHJvbGlndCAiR05VIG1ha2UiKS4KCiAgRGV0IORyIG9ja3PlIG72ZHbkbmRpZ3QgYXR0IGhhIGZsZXggMi41IGVsbGVyIHNlbmFyZSBzYW10IGJpc29uLgoKVmFsZnJpYSBzdPZkYmlibGlvdGVrOgogIGNvbmZpZ3VyZS1za3JpcHRldCB2aXNhciB2YXJuaW5nYXIgbuRyIHZhbGZyaWEgYmlibGlvdGVrIGludGUgaGl0dGF0cy4KICBTZSBodHRwOi8vd2lraS53aW5laHEub3JnL1JlY29tbWVuZGVkX1BhY2thZ2VzIGb2ciBpbmZvcm1hdGlvbiBvbQogIHZpbGthIHBha2V0IGR1IGL2ciBpbnN0YWxsZXJhLgoKICBQ5SA2NCBiaXQtc3lzdGVtIG3lc3RlIGR1IHPka2Vyc3TkbGxhIGF0dCAzMiBiaXQtdmVyc2lvbmVybmEgYXYKICBvdmFubuRtbmRhIGJpYmxpb3RlayBpbnN0YWxsZXJhdHM7IHNlCiAgaHR0cDovL3dpa2kud2luZWhxLm9yZy9XaW5lT242NGJpdCBm9nIgbuRybWFyZSBkZXRhbGplci4KCjQuIEtPTVBJTEVSSU5HCgpL9nIgZvZsamFuZGUga29tbWFuZG9uIGb2ciBhdHQgYnlnZ2EgV2luZSBvbSBkdSBpbnRlIGFuduRuZGVyIHdpbmVpbnN0YWxsOgoKLi9jb25maWd1cmUKbWFrZSBkZXBlbmQKbWFrZQoKRGV0dGEgYnlnZ2VyIHByb2dyYW1tZXQgIndpbmUiIG9jaCBkaXZlcnNlIHN09mRiaWJsaW90ZWsvcHJvZ3JhbWZpbGVyLgpQcm9ncmFtZmlsZW4gIndpbmUiIGxhZGRhciBvY2gga/ZyIFdpbmRvd3MtcHJvZ3JhbS4KQmlibGlvdGVrZXQgImxpYndpbmUiICgiV2luZWxpYiIpIGthbiBhbnbkbmRhcyB0aWxsIGF0dCBieWdnYSBvY2ggbORua2EKV2luZG93cy1r5Gxsa29kIGkgVW5peC4KCkv2ciAnLi9jb25maWd1cmUgLS1oZWxwJyBm9nIgYXR0IHNlIGluc3TkbGxuaW5nYXIgb2NoIHZhbCB2aWQga29tcGlsZXJpbmcuCgpH9nIgZvZsamFuZGUgZvZyIGF0dCB1cHBncmFkZXJhIHRpbGwgZW4gbnkgdXRn5XZhIG1lZCBoauRscCBhdiBlbgp1cHBkYXRlcmluZ3NmaWw6CkflIGluIGkgdXRn5XZhbnMgcm90a2F0YWxvZyBvY2gga/ZyIGtvbW1hbmRvdCAibWFrZSBjbGVhbiIuCkTkcmVmdGVyIHVwcGRhdGVyYXIgZHUgdXRn5XZhbiBtZWQKCiAgICBidW56aXAgLWMgdXBwZGF0ZXJpbmdzZmlsIHwgcGF0Y2ggLXAxCgpk5HIgInVwcGRhdGVyaW5nc2ZpbCIg5HIgbmFtbmV0IHDlIHVwcGRhdGVyaW5nc2ZpbGVuIChu5WdvdCBpIHN0aWwgbWVkCndpbmUtMS4wLnguZGlmZi5iejIpLiBE5HJlZnRlciBrYW4gZHUga/ZyYSAiLi9jb25maWd1cmUiIG9jaAoibWFrZSBkZXBlbmQgJiYgbWFrZSIuCgoKNS4gSU5TVEFMTEFUSU9OCgpO5HIgV2luZSDkciBieWdndCBrYW4gZHUga/ZyYSAibWFrZSBpbnN0YWxsIiBm9nIgYXR0IGluc3RhbGxlcmEgZGV0OwpkZXR0YSBpbnN0YWxsZXJhciBvY2tz5SBtYW4tc2lkb3JuYSBvY2ggbuVncmEgZmxlciBu9mR25G5kaWdhIGZpbGVyLgoKR2z2bSBpbnRlIGF0dCBm9nJzdCBhdmluc3RhbGxlcmEgZ2FtbGEgV2luZS12ZXJzaW9uZXIuIFBy9nZhIGFudGluZ2VuCiJkcGtnIC1yIHdpbmUiLCAicnBtIC1lIHdpbmUiIGVsbGVyICJtYWtlIHVuaW5zdGFsbCIgZvZyZSBpbnN0YWxsYXRpb25lbi4KCk7kciBXaW5lIORyIGluc3RhbGxlcmF0IGthbiBkdSBhbnbkbmRhIGluc3TkbGxuaW5nc3Byb2dyYW1tZXQgIndpbmVjZmciLgpTZSBoauRscGF2ZGVsbmluZ2VuIHDlIGh0dHA6Ly93d3cud2luZWhxLm9yZy8gZvZyIHRpcHMgb20gaW5zdORsbG5pbmdhci4KCgo2LiBL1lJOSU5HIEFWIFBST0dSQU0KCk7kciBkdSBhbnbkbmRlciBXaW5lIGthbiBkdSB1cHBnZSBoZWxhIHP2a3bkZ2VuIHRpbGwgcHJvZ3JhbWZpbGVuLCBlbGxlcgplbmJhcnQgZXR0IGZpbG5hbW4uCgpFeGVtcGVsOiBm9nIgYXR0IGv2cmEgTm90ZXBhZDoKCiAgICAgICAgd2luZSBub3RlcGFkICAgICAgICAgICAgICAgKGFuduRuZGVyIHP2a3bkZ2VuIGFuZ2l2ZW4gaSBXaW5lcwogICAgICAgIHdpbmUgbm90ZXBhZC5leGUgICAgICAgICAgICBrb25maWd1cmF0aW9uc2ZpbCBm9nIgYXR0IGZpbm5hIGZpbGVuKQoKICAgICAgICB3aW5lIGM6XFx3aW5kb3dzXFxub3RlcGFkLmV4ZSAgKGFuduRuZG5pbmcgYXYgRE9TLWZpbG5hbW5zc3ludGF4KQoKICAgICAgICB3aW5lIH4vLndpbmUvZHJpdmVfYy93aW5kb3dzL25vdGVwYWQuZXhlICAoYW525G5kbmluZyBhdiBVbml4LWZpbHbkZ2FyKQoKICAgICAgICB3aW5lIG5vdGVwYWQuZXhlIC9wYXJhbWV0ZXIxIC1wYXJhbWV0ZXIyIHBhcmFtZXRlcjMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoa/ZyYSBwcm9ncmFtIG1lZCBwYXJhbWV0cmFyKQoKV2luZSDkciBpbnRlIORubnUgZuRyZGlndXR2ZWNrbGF0LCBz5SBkZXQg5HIgbfZqbGlndCBhdHQg5XRza2lsbGlnYSBwcm9ncmFtCmtyYXNjaGFyLiBJIHPlIGZhbGwg9nBwbmFzIFdpbmVzIGZlbHP2a2FyZSwgZORyIGR1IGthbiB1bmRlcnP2a2Egb2NoIGZpeGEKcHJvYmxlbWV0LiBM5HMgZGVsZW4gImRlYnVnZ2luZyIgaSBXaW5lcyB1dHZlY2tsYXJtYW51YWwgZvZyIG1lciBpbmZvcm1hdGlvbgpvbSBodXIgZGV0dGEga2FuIGf2cmFzLgoKCjcuIE1FUiBJTkZPUk1BVElPTgoKSW50ZXJuZXQ6ICBNeWNrZXQgaW5mb3JtYXRpb24gb20gV2luZSBmaW5ucyBzYW1sYXQgcOUgV2luZUhRIHDlCiAgICAgICAgICAgaHR0cDovL3d3dy53aW5laHEub3JnLyA6IGRpdmVyc2UgZ3VpZGVyLCBlbiBwcm9ncmFtZGF0YWJhcyBzYW10CiAgICAgICAgICAgZmVsc3Dlcm5pbmcuIERldHRhIORyIGFudGFnbGlnZW4gZGV0IGLkc3RhIHN05GxsZXQgYXR0IGL2cmphLgoKRnLlZ29yOiAgICBGcuVnb3Igb2NoIHN2YXIgb20gV2luZSBmaW5ucyBzYW1sYWRlIHDlIGh0dHA6Ly93d3cud2luZWhxLm9yZy9GQVEKClVzZW5ldDogICAgRHUga2FuIGRpc2t1dGVyYSBwcm9ibGVtIG1lZCBXaW5lIG9jaCBm5SBoauRscCBw5QogICAgICAgICAgIGNvbXAuZW11bGF0b3JzLm1zLXdpbmRvd3Mud2luZS4KCkZlbDogICAgICAgUmFwcG9ydGVyYSBmZWwgdGlsbCBXaW5lcyBCdWd6aWxsYSBw5SBodHRwOi8vYnVncy53aW5laHEub3JnCiAgICAgICAgICAgU/ZrIGkgQnVnemlsbGEtZGF0YWJhc2VuIGb2ciBhdHQgc2Ugb20gcHJvYmxlbWV0IHJlZGFuIGZpbm5zCiAgICAgICAgICAgcmFwcG9ydGVyYXQgaW5uYW4gZHUgc+RuZGVyIGVuIGZlbHJhcHBvcnQuIER1IGthbiBvY2tz5SByYXBwb3J0ZXJhCiAgICAgICAgICAgZmVsIHRpbGwgY29tcC5lbXVsYXRvcnMubXMtd2luZG93cy53aW5lLgoKSVJDOiAgICAgICBIauRscCBmaW5ucyB0aWxsZ+RuZ2xpZyBvbmxpbmUgcOUga2FuYWxlbiAjV2luZUhRIHDlCiAgICAgICAgICAgaXJjLmZyZWVub2RlLm5ldC4KCkdJVDogICAgICAgV2luZXMgbnV2YXJhbmRlIHV0dmVja2xpbmdzdmVyc2lvbiBmaW5ucyB0aWxsZ+RuZ2xpZyBnZW5vbSBHSVQuCiAgICAgICAgICAgR+UgdGlsbCBodHRwOi8vd3d3LndpbmVocS5vcmcvZ2l0IGb2ciBtZXIgaW5mb3JtYXRpb24uCgpFLXBvc3RsaXN0b3I6CiAgICAgICAgRGV0IGZpbm5zIGZsZXJhIGUtcG9zdGxpc3RvciBm9nIgV2luZS11dHZlY2tsYXJlOyBzZQogICAgICAgIGh0dHA6Ly93d3cud2luZWhxLm9yZy9mb3J1bXMgZvZyIG1lciBpbmZvcm1hdGlvbi4KCldpa2k6ICAgV2luZXMgV2lraSBmaW5ucyBw5SBodHRwOi8vd2lraS53aW5laHEub3JnCgpPbSBkdSBs5GdnZXIgdGlsbCBu5WdvdCBlbGxlciBmaXhhciBldHQgZmVsLCDkciBkZXQgYnJhIG9tIGR1IHPkbmRlcgplbiBwYXRjaCAoaSAnZGlmZiAtdSctZm9ybWF0KSB0aWxsIGxpc3RhbiB3aW5lLXBhdGNoZXNAd2luZWhxLm9yZyBm9nIKaW5rbHVkZXJpbmcgaSBu5HN0YSB1dGfldmEgYXYgV2luZS4KCi0tCk9yaWdpbmFsZXQgdGlsbCBkZW5uYSBmaWwgc2tyZXZzIGF2CkFsZXhhbmRyZSBKdWxsaWFyZApqdWxsaWFyZEB3aW5laHEub3JnCgrWdmVyc2F0dCB0aWxsIHN2ZW5za2EgYXYKQW5kZXJzIEpvbnNzb24KYW5kZXJzLmpvbnNzb25Abm9yc2pvbmV0LnNlCg==