PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo9ICAgICAgQiBlIG0gICBWIGkgbiBkIG8gICBhIG8gICBWIEkgTSAgIFQgdSB0IG8gciAgIC0gICBWZXJz428gMS43IHB0X0JSICAgICA9Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCiAgICAgVmltIOkgdW0gcG9kZXJvc28gZWRpdG9yIHF1ZSBwb3NzdWkgbXVpdG9zIGNvbWFuZG9zLCB0YW50b3MgcXVlIHNlcmlhCiAgICAgaW1wb3Nz7XZlbCBlbnNpbmFyIG51bSB0dXRvcmlhbCBjb21vIGVzdGUuIEVzdGUgdHV0b3JpYWwg6SBwbGFuZWphZG8gcGFyYQogICAgIGFwcmVzZW50YXIgb3MgY29tYW5kb3Mgc3VmaWNpZW50ZXMgcGFyYSB2b2PqIGZpY2FyIGhhYmlsaXRhZG8gYSB1c2FyCiAgICAgZmFjaWxtZW50ZSBvIFZpbSBjb21vIHVtIGVkaXRvciBkZSB0ZXh0b3MgZ2Vu6XJpY28uCgogICAgIE8gdGVtcG8gYXByb3hpbWFkbyByZXF1ZXJpZG8gcGFyYSBjb21wbGV0YXIgbyB0dXRvcmlhbCDpIGRlIDI1LTMwIG1pbnV0b3MsCiAgICAgZGVwZW5kZW5kbyBkZSBxdWFudG8gdGVtcG8g6SBnYXN0byBwcmF0aWNhbmRvIG9zIGNvbWFuZG9zLgoKICAgICBBVEVOx8NPOgogICAgIE9zIGNvbWFuZG9zIG5hcyBsaef1ZXMgduNvIG1vZGlmaWNhciBvIHRleHRvLiBVdGlsaXplIHVtYSBj83BpYSBkZXN0ZQogICAgIGFycXVpdm8gcGFyYSBwcmF0aWNhciBvcyBjb21hbmRvcyAoc2Ugdm9j6iBpbmljaW91IG8gInZpbXR1dG9yIiwgZXN0YSBq4QogICAgIOkgdW1hIGPzcGlhKS4KCiAgICAgySBpbXBvcnRhbnRlIGxlbWJyYXIgcXVlIGVzdGUgdHV0b3JpYWwg6SBwbGFuZWphZG8gcGFyYSBlbnNpbmFyIGF0cmF26XMgZGEKICAgICBwcuF0aWNhLiBJc3NvIHNpZ25pZmljYSBxdWUgdm9j6iBwcmVjaXNhIGV4ZWN1dGFyIG9zIGNvbWFuZG9zIHBhcmEgCiAgICAgYXByZW5k6i1sb3MgYWRlcXVhZGFtZW50ZS4gU2Ugdm9j6iBzb21lbnRlIGxlciBvIHRleHRvLCBlc3F1ZWNlcuEgb3MKICAgICBjb21hbmRvcyEKCiAgICAgQWdvcmEsIGNlcnRpZmlxdWUtc2UgZGUgcXVlIHN1YSB0ZWNsYSBTaGlmdC1Mb2NrIChvdSBDYXBzIExvY2spIG7jbyBlc3RlamEKICAgICBhdGl2YWRhIGUgcHJlc3Npb25lIGEgdGVjbGEgIGogIG8gYmFzdGFudGUgcGFyYSBtb3ZlciBvIGN1cnNvciBhdOkgcXVlIGEKICAgICBMaefjbyAxLjEgZXN0ZWphIGNvbXBsZXRhbWVudGUgbmEgdGVsYS4Kfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CgkJCSBMaefjbyAxLjE6ICBNT1ZFTkRPIE8gQ1VSU09SCgoKICAqKiBQYXJhIG1vdmVyIG8gY3Vyc29yLCBwcmVzc2lvbmUgYXMgdGVjbGFzIGgsaixrLGwgY29uZm9ybWUgaW5kaWNhZG8uICoqCiAgICAgICAgICAgICBeCiAgICAgICAgICAgICBrICAgICAgICAgIERpY2E6IEEgdGVjbGEgaCBlc3ThIOAgZXNxdWVyZGEgZSBtb3ZlIHBhcmEgYSBlc3F1ZXJkYS4KICAgICAgIDwgaCAgICAgICBsID4gICAgICAgICAgQSB0ZWNsYSBsIGVzdOEg4CBkaXJlaXRhIGUgbW92ZSBwYXJhIGEgZGlyZWl0YS4KICAgICAgICAgICAgIGogICAgICAgICAgICAgICAgQSB0ZWNsYSBqIHNlIHBhcmVjZSBjb20gdW1hIHNldGEgcGFyYSBiYWl4by4KICAgICAgICAgICAgIHYKICAxLiBNb3ZhIG8gY3Vyc29yIHBlbGEgdGVsYSBhdOkgcXVlIHZvY+ogc2Ugc2ludGEgY29uZm9ydOF2ZWwuCgogIDIuIFNlZ3VyZSBwcmVzc2lvbmFkYSBhIHRlY2xhIChqKSBhdOkgaGF2ZXIgcmVwZXRp5+NvLgogICAgIEFnb3JhIHZvY+ogauEgc2FiZSBjb21vIGlyIHBhcmEgYSBwcvN4aW1hIGxp5+NvLgoKICAzLiBVc2FuZG8gYSB0ZWNsYSBqLCBtb3ZhIGF06SBhIGxp5+NvIDEuMi4KCk5PVEE6IFNlIHZvY+ogZXN04SBpbnNlZ3VybyBzb2JyZSBvIHF1ZSBkaWdpdG91LCBwcmVzc2lvbmUgPEVTQz4gcGFyYSAKICAgICAgY29sb2PhLWxvIG5vIG1vZG8gTm9ybWFsLiBFbnTjbyByZWRpZ2l0ZSBvIGNvbWFuZG8gcXVlIHZvY+ogcXVlcmlhLgoKTk9UQTogQXMgdGVjbGFzIGRlIGN1cnNvciBkZXZlbSBmdW5jaW9uYXIgdGFtYultLiBNYXMgdXNhbmRvIGhqa2wsIHTjbyBsb2dvCiAgICAgIGVzdGVqYSBhY29zdHVtYWRvLCB2b2PqIHBvZGVy4SBzZSBtb3ZlciBtdWl0byBtYWlzIHJhcGlkYW1lbnRlLgoKfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CgkJCSAgIExp5+NvIDEuMjogU0FJTkRPIERPIFZJTQoKCiAhISBOT1RBOiBBbnRlcyBkZSBleGVjdXRhciBxdWFscXVlciBkb3MgcGFzc29zIGFiYWl4bywgbGVpYSBhIGxp5+NvIGludGVpcmEgISEKCiAgMS4gUHJlc3Npb25lIDxFU0M+IChwYXJhIHRlciBjZXJ0ZXphIGRlIHF1ZSBlc3ThIG5vIG1vZG8gTm9ybWFsKS4KCiAgMi4gRGlnaXRlICAgIDpxISA8RU5URVI+LgogICAgIElzc28gc2FpIGRvIGVkaXRvciBTRU0gc2FsdmFyIHF1YWxxdWVyIG11ZGFu52EgcXVlIHRlbmhhIHNpZG8gZmVpdGEuCiAgICAgU2UgcXVpc2VyIHNhbHZhciBhcyBhbHRlcmHn9WVzIGUgc2FpciwgZGlnaXRlICAgICA6d3EgPEVOVEVSPgoKICAzLiBSZXBpdGEgbyBwcm9jZWRpbWVudG8gcXVlIGxoZSB0cm91eGUgYSBlc3RlIHR1dG9yaWFsLiBPIHByb2NlZGltZW50byBwb2RlCiAgICAgdGVyIHNpZG8gYSBkaWdpdGHn428gZGU6ICB2aW10dXRvciA8RU5URVI+LgoKICA0LiBTZSB2b2PqIG1lbW9yaXpvdSBlc3RlcyBwYXNzb3MgZSBlc3ThIGNvbmZpYW50ZSwgZXhlY3V0ZSBvcyBwYXNzb3MgZGUKICAgICAxIGEgMyBwYXJhIHNhaXIgZSByZWVudHJhciBubyBlZGl0b3IuCgpOT1RBOiAgOnEhIDxFTlRFUj4gIGRlc2NhcnRhIHF1YWxxdWVyIG11ZGFu52EuIEVtIHVtYSBwcvN4aW1hIGxp5+NvIHNlcuEKICAgICAgIGVuc2luYWRvIGNvbW8gc2FsdmFyIGFzIG11ZGFu52FzIGZlaXRhcyBlbSB1bSBhcnF1aXZvLgoKICA1LiBEZXPnYSBvIGN1cnNvciBhdOkgYSBMaefjbyAxLjMuCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCQkgICAgIExp5+NvIDEuMzogRURJVEFORE8gVEVYVE9TIC0gREVMRcfDTwoKICAqKiBObyBtb2RvIE5vcm1hbCwgcHJlc3Npb25lICB4ICBwYXJhIGRlbGV0YXIgbyBjYXJhY3RlcmUgc29iIG8gY3Vyc29yLiAqKgoKCiAgMS4gTW92YSBvIGN1cnNvciBwYXJhIGEgbGluaGEgYWJhaXhvIG1hcmNhZGEgY29tIC0tLT4uCgogIDIuIFBhcmEgY29ycmlnaXIgb3MgZXJyb3MsIG1vdmEgbyBjdXJzb3IgYXTpIHF1ZSBlbGUgZXN0ZWphIHNvYnJlIG8gCiAgICAgY2FyYWN0ZXJlIGEgc2VyIGRlbGV0YWRvLgoKICAzLiBQcmVzc2lvbmUgYSB0ZWNsYSAgeCAgcGFyYSBkZWxldGFyIG8gY2FyYWN0ZXJlIGluZGVzZWphZG8uCgogIDQuIFJlcGl0YSBvcyBwYXNzb3MgMiBhdOkgNCBhdOkgcXVlIGEgc2VudGVu52EgZXN0ZWphIGNvcnJldGEuCgotLS0+IEEgdnZhY2EgcHVsbG91dSBwb3IgY2NpbWFhIGRkYSBsdXV1YS4KCiAgNS4gQWdvcmEgcXVlIGEgc2VudGVu52EgZXN04SBjb3JyZXRhLCB24SBwYXJhIGEgTGnn428gMS40LgoKTk9UQTogRW5xdWFudG8gc2VndWUgZXN0ZSB0dXRvcmlhbCwgbuNvIHRlbnRlIG1lbW9yaXphciwgYXByZW5kYSBwZWxvIHVzby4KCgoKfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CgkJICAgIExp5+NvIDEuNDogRURJVEFORE8gVEVYVE9TIC0gSU5TRVLHw08KCgkJICAgKiogUHJlc3Npb25lICBpICBwYXJhIGluc2VyaXIgdGV4dG8uICoqCgoKICAxLiBNb3ZhIG8gY3Vyc29yIGF06SBhIHByaW1laXJhIGxpbmhhIGFiYWl4byBtYXJjYWRhIGNvbSAtLS0+LgoKICAyLiBQYXJhIGZhemVyIGEgcHJpbWVpcmEgbGluaGEgZmljYXIgaWd1YWwg4CBzZWd1bmRhLCBtb3ZhIG8gY3Vyc29yIHBhcmEKICAgICBvIHByaW1laXJvIGNhcmFjdGVyZSBERVBPSVMgZGUgb25kZSBvIHRleHRvIGRldmVy4SBzZXIgaW5zZXJpZG8uCgogIDMuIFByZXNzaW9uZSAgaSAgZSBkaWdpdGUgYXMgYWRp5/VlcyBuZWNlc3Phcmlhcy4KCiAgNC4gQXNzaW0gcXVlIGNhZGEgZXJybyBmb3IgY29ycmlnaWRvIHByZXNzaW9uZSA8RVNDPiBwYXJhIHJldG9ybmFyIGFvIG1vZG8KICAgICBOb3JtYWwuIFJlcGl0YSBvcyBwYXNzb3MgMiBhdOkgNCBwYXJhIGNvcnJpZ2lyIGEgc2VudGVu52EuCgotLS0+IFRlbSB0ZXh0IGZhdGFkbyBkZXN0YSAuCi0tLT4gVGVtIGFsZ3VtIHRleHRvIGZhbHRhbmRvIGRlc3RhIGxpbmhhLgoKICA1LiBRdWFuZG8gc2Ugc2VudGlyIGNvbmZvcnThdmVsIGNvbSBhIGluc2Vy5+NvIGRlIHRleHRvLCBtb3ZhIG8gY3Vyc29yIHBhcmEKICAgICBhIGxp5+NvIDEuNS4KCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCQkgICBMaefjbyAxLjU6IEVESVRBTkRPIFRFWFRPIC0gQURJQ0lPTkFORE8KCgkJICAqKiBQcmVzc2lvbmUgIEEgIHBhcmEgYWRpY2lvbmFyIHRleHRvLiAqKgoKICAxLiBNb3ZhIG8gY3Vyc28gcGFyYSBhIHByaW1laXJhIGxpbmhhIGFiYWl4byBtYXJjYWRhIGNvbSAtLS0+LgogICAgIE7jbyBpbXBvcnRhIHNvYnJlIHF1YWwgY2FyYWN0ZXJlIG8gY3Vyc29yIGVzdGFy4SBuYSBsaW5oYS4KCiAgMi4gUHJlc3Npb25lICBBICBlIGRpZ2l0ZSBhcyBhZGnn9WVzIG5lY2Vzc+FyaWFzLgoKICAzLiBRdWFuZG8gYWRpY2lvbmFyIG8gdGV4dG8sIHByZXNzaW9uZSA8RVNDPiBwYXJhIHJldG9ybmFyIGFvIG1vZG8gTm9ybWFsLgoKICA0LiBNb3ZhIG8gY3Vyc29yIHBhcmEgYSBzZWd1bmRhIGxpbmhhIG1hcmNhZGEgLS0tPiBlIHJlcGl0YSBvcyBwYXNzb3MgMiBlIDMKICAgICBwYXJhIGNvcnJpZ2lyIG8gdGV4dG8uCgotLS0+IEjhIGFsZ3VtIHRleHRvIGZhbHRhbmRvIGRlcwogICAgIEjhIGFsZ3VtIHRleHRvIGZhbHRhbmRvIGRlc3RhIGxpbmhhLgogICAgIEjhIGFsZ3VtIHRleHRvIGZhbHRhbgotLS0+IEjhIGFsZ3VtIHRleHRvIGZhbHRhbmRvIGFxdWkuCgogIDUuIFF1YW5kbyBzZSBzZW50aXIgY29uZm9ydOF2ZWwgYWRpY2lvbmFuZG8gdGV4dG8sIG1vdmEgcGFyYSBhIGxp5+NvIDEuNi4KCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCQkJTGnn428gMS42OiBFRElUQU5ETyBVTSBBUlFVSVZPCgkJKiogVXNlICA6d3EgIHBhcmEgc2FsdmFyIHVtIGFycXVpdm8gZSBzYWlyLiAqKgoKCSAgISEgTk9UQTogQW50ZXMgZGUgZXhlY3V0YXIgcXVhbHF1ZXIgdW0gZG9zIHBhc3NvcyBhYmFpeG8sCgkJICAgICAgIGxlaWEgZXN0YSBsaefjbyBjb21wbGV0YW1lbnRlISEKCiAgMS4gU2FpYSBkZXN0ZSB0dXRvcmlhbCBjb21vIG8gZmV6IG5hIGxp5+NvIDEuMjogIDpxIQogICAgIE91LCBzZSB0aXZlciBhY2Vzc28gYSBvdXRybyB0ZXJtaW5hbCwgZmHnYSBvIHNlZ3VpbnRlIG5lbGUuCgogIDIuIE5vIHByb21wdCBkbyBzaGVsbCwgZGlnaXRlIGVzc2UgY29tYW5kbzogIHZpbSB0dXRvciA8RU5URVI+CiAgICAgJ3ZpbScgaXMg6SBjb21hbmRvIHBhcmEgaW5pY2lhciBvIGVkaXRvciBWaW0gZSAndHV0b3InIOkgbyBub21lIGRvCiAgICAgYXJxdWl2byBxdWUgdm9j6iBkZXNlamEgZWRpdGFyLiAgVXNlIHVtIGFycXVpdm8gcXVlIHBvc3NhIHNlciBtb2RpZmljYWRvLgoKICAzLiBJbnNpcmEgZSBkZWxldGUgdGV4dG8gdGFsIGNvbW8gYXByZW5kZXUgY29tIGFzIGxp5/VlcyBhbnRlcmlvcmVzLgoKICA0LiBTYWx2ZSBvIGFycXVpdm8gY29tIGFzIG11ZGFu52FzIGUgc2FpYSBkbyBWaW0gY29tOiAgOndxIDxFTlRFUj4KCiAgNS4gU2Ugdm9j6iB0aXZlciBzYe1kbyBkbyB2aW10dXRvciBubyBwYXNzbyAxLCByZWluaWNpZSBvIHZpbXR1dG9yIGUgduEgcGFyYQogICAgIG8gc3Vt4XJpbyBzZWd1aW50ZS4KCiAgNi4gQXDzcyBsZXIgb3MgcGFzc29zIGFjaW1hIGUgY29tcHJlZW5k6i1sb3MsIGV4ZWN1dGUtb3MuCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCQkJICAgICAgU1VNwVJJTyBEQSBMScfDTyAxCgogIDEuIE8gY3Vyc29yIOkgbW92aWRvIHVzYW5kbyB0YW50byBhcyB0ZWNsYXMgZGUgc2V0YSBxdWFudG8gYXMgdGVjbGFzIGhqa2wuCgloIChlc3F1ZXJkYSkJaiAocGFyYSBiYWl4bykJayAocGFyYSBjaW1hKQlsIChkaXJlaXRhKQoKICAyLiBQYXJhIGVudHJhciBubyBWaW0gYSBwYXJ0aXIgZGUgdW0gc2hlbGwgZGlnaXRlOiB2aW0gTk9NRURPQVJRVUlWTyA8RU5URVI+CgogIDMuIFBhcmEgc2FpciBkbyBWaW0gZGlnaXRlOiAgPEVTQz4gOnEhIDxFTlRFUj4gcGFyYSBkZXNjYXJ0YXIgYXMgYWx0ZXJh5/Vlcy4KICAgICAgICAgICAgICAgICAgIE9VIGRpZ2l0ZTogIDxFU0M+IDp3cSA8RU5URVI+IHBhcmEgc2FsdmFyIGFzIGFsdGVyYef1ZXMuCgogIDQuIFBhcmEgZGVsZXRhciB1bSBjYXJhY3RlcmUgc29iIG8gY3Vyc29yIG5vIG1vZG8gTm9ybWFsIGRpZ2l0ZTogIHgKCiAgNS4gUGFyYSBpbnNlcmlyIHRleHRvIG5hIHBvc2nn428gZG8gY3Vyc29yIGVucXVhbnRvIGVzdGl2ZXIgbm8gbW9kbyBOb3JtYWwKICAgICBkaWdpdGU6CiAgICAgICAgICAgICBpICAgICBkaWdpdGUgbyB0ZXh0byA8RVNDPiAgIGluc2VyaXIgZGVwb2lzIGRvIGN1cnNvcgoJICAgICBBICAgICBkaWdpdGUgbyB0ZXh0byA8RVNDPiAgIGFkaWNpb25hciBubyBmaW5hbCBkYSBsaW5oYQoKTk9UQTogUHJlc3Npb25hbmRvIDxFU0M+IHZvY+ogaXLhIHBhcmEgbyBtb2RvIE5vcm1hbCBvdSBjYW5jZWxhcuEgdW0gY29tYW5kbwogICAgICBhaW5kYSBpbmNvbXBsZXRvLgoKQWdvcmEgY29udGludWUgY29tIGEgTGnn428gMi4KCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoJCQlMaefjbyAyLjE6IENPTUFORE9TIERFIERFTEXHw08KCgkgICoqIERpZ2l0ZSAgZHcgIHBhcmEgZGVsZXRhciBhdOkgbyBmaW5hbCBkZSB1bWEgcGFsYXZyYS4gKioKCgogIDEuIFByZXNzaW9uZSAgPEVTQz4gIHBhcmEgdGVyIGNlcnRlemEgZGUgcXVlIGVzdOEgbm8gbW9kbyBOb3JtYWwuCgogIDIuIE1vdmEgbyBjdXJzb3IgYXTpIGEgbGluaGEgYWJhaXhvIG1hcmNhZGEgY29tIC0tLT4uCgogIDMuIE1vdmEgbyBjdXJzb3IgYXTpIG8gY29tZedvIGRhIHBhbGF2cmEgcXVlIHByZWNpc2Egc2VyIGRlbGV0YWRhLgoKICA0LiBEaWdpdGUgIGR3ICBwYXJhIGZhemVyIGEgcGFsYXZyYSBkZXNhcGFyZWNlci4KCiAgTk9UQTogQSBsZXRyYSAgZCAgdmFpIGFwYXJlY2UgbmEg+mx0aW1hIGxpbmhhIGRhIHRlbGEgZW5xdWFudG8gdm9j6iBhCglkaWdpdGEuIE8gVmltIGVzdOEgbGhlIGVzcGVyYW5kbyBkaWdpdGFyIHVtICB3IC4gU2Ugdm9j6iBkaWdpdG91CglhbGd1bWEgY29pc2EgZXJyYWRhLCBwcmVzc2lvbmUgPEVTQz4gZSBjb21lY2UgZGUgbm92by4KCi0tLT4gVGVtIGEgYWxndW1hcyBvaSBwYWxhdnJhcyBkaXZlcnPjbyBxdWUgbuNvIHBlcnRlbmNlbSBwYXBlbCBhIGVzdGEgc2VudGVu52EuCgogIDUuIFJlcGl0YSBvcyBwYXNzb3MgMyBhbyA0IGF06SBxdWUgYSBzZW50ZW7nYSBlc3RlamEgY29ycmV0YSBlIHbhIHBhcmEgYQogICAgIExp5+NvIDIuMi4KCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgogICAgICAgICAgICAgICAgICAgICBMaefjbyAyLjI6IE1BSVMgQ09NQU5ET1MgREUgREVMRcfDTwoKICAgICAgICAgICoqIERpZ2l0ZSAgZCQgIHBhcmEgZGVsZXRhciBhdOkgbyBmaW5hbCBkYSBsaW5oYS4gKioKCgoKICAxLiBQcmVzc2lvbmUgPEVTQz4gcGFyYSB0ZXIgY2VydGV6YSBkZSBlc3RhciBubyBtb2RvIE5vcm1hbC4KCiAgMi4gTW92YSBvIGN1cnNvciBhdOkgYSBsaW5oYSBhYmFpeG8gbWFyY2FkYSBjb20gLS0tPi4KCiAgMy4gTW92YSBvIGN1cnNvciBhdOkgbyBmaW0gZGEgbGluaGEgY29ycmV0YSAoREVQT0lTIGRvIHByaW1laXJvICAuKS4KCiAgNC4gRGlnaXRlICBkJCAgcGFyYSBkZWxldGFyIGF06SBvIGZpbmFsIGRhIGxpbmhhLgoKLS0tPiBBbGd16W0gZGlnaXRvdSBvIGZpbmFsIGRlc3RhIGxpbmhhIGR1YXMgdmV6ZXMuIGRlc3RhIGxpbmhhIGR1YXMgdmV6ZXMuCgogIDUuIFbhIHBhcmEgYSBsaefjbyAyLjMgcGFyYSBlbnRlbmRlciBvIHF1ZSBlc3ThIGFjb250ZWNlbmRvLgoKCgoKCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoJCSAgIExp5+NvIDIuMzogU09CUkUgT1BFUkFET1JFUyBFIE1PVklNRU5UT1MgCgogIE11aXRvcyBjb21hbmRvcyBxdWUgbXVkYW0gdGV4dG8gc+NvIGZlaXRvcyBkZSB1bSBvcGVyYWRvciBlIHVtIG1vdmltZW50by4KICBPIGZvcm1hdG8gcGFyYSB1bSBjb21hbmRvIGRlbGV0YXIgY29tIG8gb3BlcmFkb3IgZGUgZGVsZefjbyAgZCAgdGVtIGEKICBzZWd1aW50ZSBmb3JtYToKCiAgICAgICAgIGQgICBtb3ZpbWVudG8KICBPbmRlOgogICAgZCAtIOkgbyBvcGVyYWRvciBkZWxldGFyLgogICAgbW92aW1lbnRvIC0g6SBjb21vIG8gb3BlcmFkb3IgdmFpIG9wZXJhciAobGlzdGFkbyBhYmFpeG8pLgoKICBVbWEgcGVxdWVuYSBsaXN0YSBkZSB0ZWNsYXMgZGUgbW92aW1lbnRvOgogICAgdyAtIGRvIGN1cnNvciBhdOkgbyBmaW0gZGEgcGFsYXZyYSwgaW5jbHVpbmRvIG8gZXNwYedvLgogICAgZSAtIGRvIGN1cnNvciBhdOkgbyBmaW0gZGEgcGFsYXZyYSwgTsNPIGluY2x1aW5kbyBvIGVzcGHnby4KICAgICQgLSBkbyBjdXJzb3IgYXTpIG8gZmltIGRhIGxpbmhhLgoKICBQb3J0YW50bywgZGlnaXRhbmRvICBkZSAgaXLhIGRlbGV0YXIgZG8gY3Vyc29yIGFvIGZpbSBkYSBwYWxhdnJhLgoKTk9UQTogUHJlc3Npb25hbmRvIGFwZW5hcyBhIHRlY2xhIGRlIG1vdmltZW50byBlbnF1YW50byBlbSBtb2RvIE5vcm1hbCwgc2VtIG8Kb3BlcmFkb3IsIGly4SBtb3ZlciBvIGN1cnNvciBjb21vIGVzcGVjaWZpY2FkbyBuYSBsaXN0YSBkZSB0ZWNsYXMgZGUKbW92aW1lbnRvLgoKfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CgkgICAgICAgTGnn428gMi40OiBVU0FORE8gVU0gQ09OVEFET1IgUEFSQSBVTSBNT1ZJTUVOVE8KCiAgICAqKiBEaWdpdGFuZG8gdW0gbvptZXJvIGFudGVzIGRlIHVtIG1vdmltZW50byByZXBldGUtbyBtdWl0YXMgdmV6ZXMuICoqCgoKICAgMS4gTW92YSBvIGN1cnNvciBwYXJhIG8gY29tZedvIGRhIGxpbmhhIG1hcmNhZGEgY29tIC0tLT4gYWJhaXhvLgoKICAgMi4gRGlnaXRlICAydyAgcGFyYSBtb3ZlciBvIGN1cnNvciBkdWFzIHBhbGF2cmFzIGFkaWFudGUuCgogICAzLiBEaWdpdGUgIDNlICBwYXJhIG1vdmVyIG8gY3Vyc29yIHBhcmEgbyBmaW0gZGEgdGVyY2VpcmEgcGFsYXZyYSBhZGlhbnRlLgoKICAgNC4gRGlnaXRlICAwICAoemVybykgcGFyYSBtb3ZlciBwYXJhIG8gaW7tY2lvIGRhIGxpbmhhLgoKICAgNS4gUmVwaXRhIG9zIHBhc3NvcyAyIGUgMyBjb20gZGlmZXJlbnRlcyBu+m1lcm9zLgoKLS0tPiBFc3RhIOkgdW1hIGxpbmhhIGNvbSBhbGd1bWFzIHBhbGF2cmFzIHBhcmEgbGhlIHBlcm1pdGlyIGZhemVyIG1vdmltZW50b3MuCgogICA2LiBW4SBwYXJhIGEgTGnn428gMi41LgoKCgoKfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CgkgICAgICAgTGnn428gMi41OiBVU0FORE8gVU0gQ09OVEFET1IgUEFSQSBERUxFVEFSIE1BSVMKCiAgICoqIERpZ2l0YW5kbyB1bSBu+m1lcm8gY29tIHVtIG9wZXJhZG9yIHJlcGV0ZS1vIGVzc2UgbvptZXJvIGRlIHZlemVzLiAqKgoKCiAgIFZvY+ogZGV2ZSBpbnNlcmlyIHVtIGNvbnRhZG9yIGVudHJlIG8gb3BlcmFkb3IgZGUgZGVsZefjbyBlIG8gbW92aW1lbnRvCiAgIG1lbmNpb25hZG9zIGFjaW1hIHBhcmEgcGFyYSBkZWxldGFyIG1haXM6CiAgICAgICBkICAgbvptZXJvICAgbW92aW1lbnRvCgogICAxLiBNb3ZpbWVudGUgbyBjdXJzb3IgcGFyYSBhIHByaW1laXJhIHBhbGF2cmEgY29tIExFVFJBUyBNQUnaU0NVTEFTIG5hCiAgICAgIGxpbmhhIG1hcmNhZGEgY29tIC0tLT4uCgogICAyLiBEaWdpdGUgIGQydyAgcGFyYSBkZWxldGFyIGFzIGR1YXMgcGFsYXZyYXMgY29tIExFVFJBUyBNQUnaU0NVTEFTLgoKICAgMy4gUmVwaXRhIG9zIHBhc3NvcyAxIGUgMiBjb20gZGlmZXJlbnRlcyBjb250YWRvcmVzIHBhcmEgZGVsZXRhciBhcwogICAgICBwYWxhdnJhcyBkZSBMRVRSQVMgTUFJ2lNDVUxBUyBjb20gdW0gY29tYW5kby4KCi0tLT4gIGVzdGEgQUJDIERFIGxpbmhhIEZHSEkgSksgTE1OIE9QIGRlIHBhbGF2cmFzIGVzdOEgUSBSUyBUVVYgbGltcGEuCgoKCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCQkgICAgICAgTGnn428gMi42OiBPUEVSQU5ETyBTT0JSRSBMSU5IQVMKCgkgICAgICAqKiBEaWdpdGUgIGRkICBwYXJhIGRlbGV0YXIgdW1hIGxpbmhhIGludGVpcmEuICoqCgogIEVtIHZpcnR1ZGUgZGEgZnJlcXXqbmNpYSBlbSBkZWxldGFyIHVtYSBsaW5oYSBpbnRlaXJhLCBvcyBwcm9qZXRpc3RhcyBkbyBWaQogIGRlY2lkaXJhbSBxdWUgc2VyaWEgbWFpcyBzaW1wbGVzIGRpZ2l0YXIgZG9pcyBkJ3MgbnVtYSBsaW5oYSBwYXJhIGRlbGV04S1sYS4KCiAgMS4gTW92YSBvIGN1cnNvciBhdOkgYSBzZWd1bmRhIGxpbmhhIG5hIGxpc3RhIGEgYmFpeG8uCiAgMi4gRGlnaXRlICBkZCAgcGFyYSBkZWxldGFyIGEgbGluaGEuCiAgMy4gQWdvcmEgbW92YSBhdOkgYSBxdWFydGEgbGluaGEuCiAgNC4gRGlnaXRlICAyZGQgIHBhcmEgZGVsZXRhciBkdWFzIGxpbmhhcy4KCi0tLT4gIDEpICBSb3NhcyBz428gdmVybWVsaGFzLAotLS0+ICAyKSAgTGFtYSDpIGRpdmVydGlkYSwKLS0tPiAgMykgIFZpb2xldGFzIHPjbyBhenVpcywKLS0tPiAgNCkgIEV1IHRlbmhvIHVtIGNhcnJvLAotLS0+ICA1KSAgUmVs82dpb3MgZGl6ZW0gYXMgaG9yYXMsCi0tLT4gIDYpICBB5/pjYXIg6SBkb2NlLAotLS0+ICA3KSAgRSBhc3NpbSDpIHZvY+ouCgpOb3RhcyBkbyB0cmFkdXRvcjogTGFtYSAobXVkKSBlbSBpbmds6nMgcG9kZSBzaWduaWZpY2FyIGZvZm9jYSwgZGlmYW1h5+NvLgogICAgICAgICAgICAgICAgICAgSOEgcmltYSBubyB0ZXh0byBvcmlnaW5hbC4Kfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CgkJICAgICBMaefjbyAyLjc6IE8gQ09NQU5ETyBVTkRPIChERVNGQVpFUikKCioqIFByZXNzaW9uZSB1IHBhcmEgZGVzZmF6ZXIgb3Mg+mx0aW1vcyBjb21hbmRvcywgVSByZXN0YXVyYSBsaW5oYSBpbnRlaXJhLioqCgoKICAxLiBNb3ZhIG8gY3Vyc29yIHBhcmEgYSBsaW5oYSBhYmFpeG8gbWFyY2FkYSBjb20gLS0tPiBlIHBvc2ljaW9uZS1vIHNvYnJlIG8KICAgICBwcmltZWlybyBlcnJvLgogIDIuIERpZ2l0ZSAgeCAgcGFyYSBkZWxldGFyIG8gcHJpbWVpcm8gY2FyYWN0ZXJlIGluZGVzZWphZG8uCiAgMy4gQWdvcmEsIGRpZ2l0ZSAgdSAgcGFyYSBkZXNmYXplciBvIPpsdGltbyBjb21hbmRvIGV4ZWN1dGFkby4KICA0LiBEZXN0YSB2ZXosIGNvcnJpamEgdG9kb3Mgb3MgZXJyb3MgbmEgbGluaGEgdXNhbmRvIG8gY29tYW5kbyAgeCAuCiAgNS4gQWdvcmEsIGRpZ2l0ZSB1bSBVIG1hafpzY3VsbyBwYXJhIHJldG9ybmFyIGEgbGluaGEgYW8gc2V1IGVzdGFkbyBvcmlnaW5hbC4KICA2LiBEaWdpdGUgIHUgIGFsZ3VtYXMgdmV6ZXMgcGFyYSBkZXNmYXplciBvICBVICBlIG9zIGNvbWFuZG9zIGFudGVyaW9yZXMuCiAgNy4gRGlnaXRlIENUUkwtUiAoc2VndXJhbmRvIGEgdGVjbGEgQ1RSTCBlbnF1YW50byBkaWdpdGEgUikgYWxndW1hcyB2ZXplcwogICAgIHBhcmEgcmVmYXplciBvcyBjb21hbmRvcyAoZGVzZmF6ZXIgb3MgdW5kbydzKS4KCi0tLT4gQ29ycmlpamEgb3MgZXJyb3Mgbm5lc3RhIGxpbmhhIGUgcmVldG9ybmUtb3MgY29tIHVuZG8uCgogIDguIEVzc2VzIGNvbWFuZG9zIHPjbyBtdWl0byD6dGVpcy4gQWdvcmEgduEgcGFyYSBvIHN1beFyaW8gZGEgTGnn428gMi4KCgoKCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoJCQkgICAgICBTVU3BUklPIERBIExJx8NPIDIKCgogIDEuIFBhcmEgZGVsZXRhciBkbyBjdXJzb3IgYXTpIG8gZmltIGRlIHVtYSBwYWxhdnJhIGRpZ2l0ZTogICBkdwogIDIuIFBhcmEgZGVsZXRhciBkbyBjdXJzb3IgYXTpIG8gZmltIGRlIHVtYSBsaW5oYSBkaWdpdGU6ICAgZCQKICAzLiBQYXJhIGRlbGV0YXIgdW1hIGxpbmhhIGludGVpcmEgZGlnaXRlOiAgIGRkCiAgNC4gUGFyYSByZXBldGlyIHVtIG1vdmltZW50byBhZGljaW9uZSBhbnRlcyB1bSBu+m1lcm86ICAgMncKICA1LiBPIGZvcm1hdG8gcGFyYSB1bSBjb21hbmRvIG5vIG1vZG8gTm9ybWFsIOk6CiAgICAgICAgICAgb3BlcmFkb3IgICBbbvptZXJvXSAgIG1vdmltZW50bwogICBvbmRlOgogICAgICBvcGVyYWRvciAgLSDpIG8gcXVlIHNlcuEgZmVpdG8sIGNvbW8gIGQgIHBhcmEgZGVsZXRhcgogICAgICBu+m1lcm8gICAgLSDpIHF1YW50YXMgdmV6ZXMgbyBjb21hbmRvIHNlcuEgcmVwZXRpZG8KICAgICAgbW92aW1lbnRvIC0gbW92aW1lbnRvIHNvYnJlIG8gdGV4dG8gcXVlIHNvZnJlcuEgYSBvcGVyYefjbywgY29tbwogICAgICAgICAgICAgICAgICB3IChwYWxhdnJhKSwgJCAoYXTpIG8gZmluYWwgZGEgbGluaGEpLCBldGMuCgogIDUuIFBhcmEgZGVzZmF6ZXIgdW0gYefjbyBhbnRlcmlvciwgZGlnaXRlOiAgICAgICAgICAgICAgICAgIHUgIChtaW76c2N1bG8pCiAgICAgUGFyYSBkZXNmYXplciB0b2RhcyBhcyBtb2RpZmljYef1ZXMgZW0gdW1hIGxpbmhhIGRpZ2l0ZTogVSAobWFp+nNjdWxvKQogICAgIFBhcmEgZGVzZmF6ZXIgbyBxdWUgZm9pIGRlc2ZlaXRvIGRpZ2l0ZTogICAgICAgICAgICAgICAgIENUUkwtUgoKCgoKfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CgkJCUxp5+NvIDMuMTogTyBDT01BTkRPIFBVVCAoUNRSKQoKCSoqIERpZ2l0ZSAgcCAgcGFyYSBjb2xvY2FyIGEg+mx0aW1hIGRlbGXn428gYXDzcyBvIGN1cnNvci4gKioKCgogIDEuIE1vdmEgbyBjdXJzb3IgYXTpIGEgcHJpbWVpcmEgbGluaGEgbmEgbGlzdGEgYWJhaXhvLgoKICAyLiBEaWdpdGUgIGRkICBwYXJhIGRlbGV0YXIgYSBsaW5oYSBlIGd1YXJk4S1sYSBubyBidWZmZXIgZG8gVmltLgoKICAzLiBNb3ZhIG8gY3Vyc29yIGF06SBhIGxpbmhhIEFDSU1BIGRlIG9uZGUgYSBsaW5oYSBkZWxldGFkYSBkZXZlIGZpY2FyLgoKICA0LiBObyBtb2RvIE5vcm1hbCwgZGlnaXRlICBwICBwYXJhIGluc2VyaXIgYSBsaW5oYS4KCiAgNS4gUmVwaXRhIG9zIHBhc3NvcyAyIGFvIDQgcGFyYSBw9HIgdG9kYXMgYXMgbGluaGFzIG5hIG9yZGVtIGNvcnJldGEuCgogICAgIGQpIFZvY+ogcG9kZSBhcHJlbmRlciB0YW1i6W0/CiAgICAgYikgVmlvbGV0YXMgc+NvIGF6dWlzLAogICAgIGMpIEludGVsaWfqbmNpYSBzZSBhcHJlbmRlLAogICAgIGEpIFJvc2FzIHPjbyB2ZXJtZWxoYXMsCgpOb3RhIGRvIHRyYWR1dG9yOiBI4SByaW1hIG5vIG9yaWdpbmFsLgoKfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CgkJICBMaefjbyAzLjI6IE8gQ09NQU5ETyBSRVBMQUNFIChTVUJTVElUVUlSKQoKICAgICAqKiBEaWdpdGUgIHJ4ICBwYXJhIHN1YnN0aXR1aXIgbyBjYXJhY3RlcmUgc29iIG8gY3Vyc29yIHBvciAgeCAuICoqIAoKCiAgMS4gTW92YSBvIGN1cnNvciBhdOkgYSBwcmltZWlyYSBsaW5oYSBhYmFpeG8gbWFyY2FkYSBjb20gLS0tPi4KCiAgMi4gTW92YSBvIGN1cnNvciBhdOkgcXVlIGVsZSBlc3RlamEgc29icmUgbyBwcmltZWlybyBlcnJvLgoKICAzLiBEaWdpdGUgIHIgIGUgZW50428gbyBjYXJhY3RlcmUgcXVlIGRldmVyaWEgZXN0YXIgbOEuCgogIDQuIFJlcGl0YSBvcyBwYXNzb3MgMiBlIDMgYXTpIHF1ZSBhIHByaW1laXJhIGxpbmhhIGVzdGVqYSBjb3JyZXRhLgoKLS0tPiBRdWVuZG8gZXN0ZSBsaW1oYSBmb2kgZHVnaXRhZGEsIGFsZ3VlbSBwcmVzc2lvbml1IGFsZ3VtYXMgdGVjbGFzIGVycmFkenMhCi0tLT4gUXVhbmRvIGVzdGEgbGluaGEgZm9pIGRpZ2l0YWRhLCBhbGd16W0gcHJlc3Npb25vdSBhbGd1bWFzIHRlY2xhcyBlcnJhZGFzIQoKICA1LiBBZ29yYSB24SBwYXJhIGEgTGnn428gMy4zLgoKTk9UQTogTGVtYnJlLXNlIHF1ZSB2b2PqIGRldmUgYXByZW5kZXIgcGVsbyB1c28sIG7jbyBwZWxhIG1lbW9yaXph5+NvLgoKCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCQkgICAgIExp5+NvIDMuMzogTyBPUEVSQURPUiBDSEFOR0UgKE1VREFSKQoKCSoqIFBhcmEgbXVkYXIgdG9kYSB1bWEgcGFsYXZyYSBvdSBwYXJ0ZSBkZWxhLCBkaWdpdGUgIGN3IC4gKioKCgogIDEuIE1vdmEgbyBjdXJzb3IgYXTpIGEgcHJpbWVpcmEgbGluaGEgYWJhaXhvIG1hcmNhZGEgY29tIC0tLT4uCiAgCiAgMi4gUG9zaWNpb25lIG8gY3Vyc29yIHNvYnJlIG8gdSBlbSBsdW5iYS4KCiAgMy4gRGlnaXRlICBjdyAgZSBhIHBhbGF2cmEgY29ycmV0YSAobmVzc2UgY2FzbywgZGlnaXRlICdpbmhhJy4pCgogIDQuIFByZXNzaW9uZSA8RVNDPiBlIG1vdmEgcGFyYSBvIHBy83hpbW8gY2FyYWN0ZXJlIGEgc2VyIGFsdGVyYWRvLgoKICA1LiBSZXBpdGEgb3MgcGFzc29zIDMgZSA0IGF06SBxdWUgYSBwcmltZWlyYSBzZW50ZW7nYSBlc3RlamEgaWd1YWwg4CBzZWd1bmRhLgoKLS0tPiBFc3NhIGx1bmJhIHRlbSBwd2xlc21mciBxdWUgb2NyaW1tbSAgc29pIGFsdGVyYWRhcyBjdXAgbyBjb21hbmRvIGNoYW5nZS4KLS0tPiBFc3NhIGxpbmhhIHRlbSBwYWxhdnJhcyBxdWUgcHJlY2lzYW0gc2VyIGFsdGVyYWRhcyBjb20gbyBjb21hbmRvIGNoYW5nZS4gCgpOb3RlIHF1ZSAgY3cgIG7jbyBzb21lbnRlIHN1YnN0aXR1aSBhIHBhbGF2cmEsIG1hcyB0YW1i6W0gbGhlIGNvbG9jYSBubyBtb2RvCmRlIGluc2Vy5+NvLgoKCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoJCSAgICAgIExp5+NvIDMuNDogTUFJUyBNVURBTsdBUyBVU0FORE8gYwoKICAgICAgKiogTyBvcGVyYWRvciBjaGFuZ2Ug6SB1c2FkbyBjb20gb3MgbWVzbW9zIG9iamV0b3MgcXVlIGRlbGV0ZS4gKioKCiAgMS4gTyBvcGVyYWRvciBjaGFuZ2UgdHJhYmFsaGEgZGEgbWVzbWEgbWFuZWlyYSBxdWUgbyBkZWxldGUuIE8gZm9ybWF0byDpOgoKICAgICAgICAgIGMgICAgW276bWVyb10gICAgbW92aW1lbnRvCgogIDIuIE9zIG1vdmltZW50b3MgdGFtYultIHPjbyBvcyBtZXNtb3M6IHcgKHBhbGF2cmEpLCAkIChmaW0gZGEgbGluaGEpLCBldGMuCgogIDMuIE1vdmEgYXTpIGEgcHJpbWVpcmEgbGluaGEgYWJhaXhvIG1hcmNhZGEgY29tIC0tLT4uCgogIDQuIE1vdmEgbyBjdXJzb3IgYXTpIG8gcHJpbWVpcm8gZXJyby4KCiAgNS4gRGlnaXRlICBjJCAgcGFyYSBmYXplciBvIHJlc3RvIGRhIGxpbmhhIGZpY2FyIGlndWFsIOAgc2VndW5kYSBlIHByZXNzaW9uZQogICAgIDxFU0M+LgoKLS0tPiBPIGZpbSBkZXN0YSBsaW5oYSBwcmVjaXNhIGRlIGFqdWRhIHBhcmEgZmljYXIgaWd1YWwg4CBzZWd1bmRhLgotLS0+IE8gZmltIGRlc3RhIGxpbmhhIHByZWNpc2Egc2VyIGNvcnJpZ2lkbyB1c2FuZG8gbyBjb21hbmRvICBjJC4KCk5PVEE6IFZvY+ogcG9kZSB1c2FyIGEgdGVjbGEgQmFja3NwYWNlIHBhcmEgY29ycmlnaXIgZXJyb3MgZW5xdWFudG8gZGlnaXRhLgoKfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CgkJCSAgICAgIFNVTcFSSU8gREEgTEnHw08gMwoKCiAgMS4gUGFyYSBpbnNlcmlyIHVtIHRleHRvIHF1ZSBq4SBmb2kgZGVsZXRhZG8sIGRpZ2l0ZSAgcCAuIElzc28gY29sb2NhIG8gdGV4dG8KICAgICBkZWxldGFkbyBBUNNTIG8gY3Vyc29yIChzZSB1bWEgbGluaGEg6SBkZWxldGFkYSBlbGEgc2Vy4SBpbnNlcmlkYSBuYSBsaW5oYQogICAgIGFiYWl4byBkbyBjdXJzb3IpLgoKICAyLiBQYXJhIHN1YnN0aXR1aXIgbyBjYXJhY3RlcmUgc29iIG8gY3Vyc29yLCBkaWdpdGUgIHIgIGUgZW50428gbyBjYXJhY3RlcmUKICAgICBxdWUgaXLhIHN1YnN0aXR1aXIgbyBvcmlnaW5hbC4KCiAgMy4gTyBjb21hbmRvIGNoYW5nZSBwb3NzaWJpbGl0YSBtdWRhciBkbyBjdXJzb3IgYXTpIG9uZGUgbyBtb3ZpbWVudG8gZm9yLgogICAgIEV4OiBEaWdpdGUgIGN3ICBwYXJhIG11ZGFyIGRvIGN1cnNvciBhdOkgbyBmaW0gZGUgdW1hIHBhbGF2cmEsIGMkIHBhcmEKICAgICBtdWRhciBhdOkgbyBmaW0gZGEgbGluaGEuCgogIDQuIE8gZm9ybWF0byBwYXJhIHVtYSBvcGVyYefjbyBjaGFuZ2Ug6ToKCiAgICAgICAgIGMgICBbbvptZXJvXSAgIG1vdmltZW50bwoKQWdvcmEgduEgcGFyYSBhIHBy83hpbWEgbGnn428uCgoKCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoJICAgICBMaefjbyA0LjE6IExPQ0FMSVpBx8NPIERPIENVUlNPUiBFIFNUQVRVUyBETyBBUlFVSVZPCgogICAgKiogRGlnaXRlIENUUkwtRyBwYXJhIG1vc3RyYXIgc3VhIGxvY2FsaXph5+NvIG5vIGFycXVpdm8gZSBzZXUgc3RhdHVzLgogICAgICAgRGlnaXRlICBHICBwYXJhIG1vdmVyIHBhcmEgdW1hIGxpbmhhIGRvIGFycXVpdm8uICAqKgoKICBOb3RhOiBMZWlhIGVzdGEgbGnn428gaW50ZWlyYSBhbnRlcyBkZSBleGVjdXRhciBxdWFscXVlciB1bSBkb3MgcGFzc29zISEKCiAgMS4gU2VndXJlIHByZXNzaW9uYWRhIGEgdGVjbGEgQ3RybCBlIHByZXNzaW9uZSAgZyAuIE7zcyBjaGFtYW1vcyBpc3NvIGRlCiAgICAgQ1RSTC1HLiBVbWEgbWVuc2FnZW0gYXBhcmVjZXLhIG5vIHJvZGFw6SBkYSBw4WdpbmEgY29tIG8gbm9tZSBkbyBhcnF1aXZvCiAgICAgZSBhIHN1YSBwb3Np5+NvIG5vIGFycXVpdm8uIExlbWJyZS1zZSBkbyBu+m1lcm8gZGEgbGluaGEgcGFyYSBvIFBhc3NvIDMuCgpOT1RBOiAgQSBwb3Np5+NvIGRvIGN1cnNvciBwb2RlIGVzdGFyIHZpc+12ZWwgbm8gY2FudG8gZGlyZWl0byBpbmZlcmlvciBkYQogICAgICAgdGVsYS4gSXNzbyBhY29udGVjZSBxdWFuZG8gYSBvcOfjbyAncnVsZXInIGVzdOEgYXRpdmEKICAgICAgICh2ZWphICA6aGVscCAncnVsZXInICkuCgogIDIuIFByZXNzaW9uZSAgRyAgcGFyYSBtb3ZlciBwYXJhIG8gZmluYWwgZG8gYXJxdWl2by4KICAgICBEaWdpdGUgIGdnICBwYXJhIG1vdmVyIHBhcmEgbyBpbu1jaW8gZG8gYXJxdWl2by4KCiAgMy4gRGlnaXRlIG8gbvptZXJvIGRhIGxpbmhhIGVtIHF1ZSB2b2PqIGVzdGF2YSBlIGVudONvIEcgLiBJc3RvCiAgICAgcmV0b3JuYXLhIG8gY3Vyc29yIOAgbGluaGEgZW0gcXVlIHZvY+ogZXN0YXZhIHF1YW5kbyBwcmVzc2lvbm91IENUUkwtRy4KCiAgNC4gU2Ugdm9j6iBlc3RpdmVyIGNvbmZpYW50ZSBwYXJhIGZhemVyIGlzdG8sIGV4ZWN1dGUgb3MgcGFzc29zIDEgYW8gMy4Kfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAgICAgICAgICAgICAgICAgICAgICAgTGnn428gNC4yOiBPIENPTUFORE8gU0VBUkNIIChQUk9DVVJBKQoKICAgICAgKiogRGlnaXRlICAvICBzZWd1aWRvIHBvciB1bWEgc3RyaW5nIHBhcmEgcHJvY3VyYXIgcGVsYSBzdHJpbmcuICoqCgogIDEuIE5vIG1vZG8gTm9ybWFsIGRpZ2l0ZSBvIGNhcmFjdGVyZSAgLyAuIE5vdGUgcXVlIGVsZSBlIG8gY3Vyc29yIGFwYXJlY2VtCiAgICAgbm8gcm9kYXDpIGRhIHRlbGEsIGNvbW8gb2NvcnJlIGNvbSBvIGNvbWFuZG8gIDogLgoKICAyLiBBZ29yYSBkaWdpdGUgJ2VycnJvbycgPEVOVEVSPi4gRXN0YSDpIGEgcGFsYXZyYSBxdWUgdm9j6iBxdWVyIHByb2N1cmFyLgoKICAzLiBQYXJhIHByb2N1cmFyIHBlbGEgbWVzbWEgcGFsYXZyYSBkZSBub3ZvLCBzaW1wbGVzbWVudGUgdGVjbGUgIG4gLgogICAgIFBhcmEgcHJvY3VyYXIgcGVsYSBtZXNtYSBwYWxhdnJhIG5hIGRpcmXn428gb3Bvc3RhLCB0ZWNsZSAgTiAuCgogIDQuIFNlIHZvY+ogcXVlciBwcm9jdXJhciBwb3IgdW1hIHN0cmluZyBubyBzZW50aWRvIGRlIGZyZW50ZSBwYXJhIHRy4XMsIHVzZQogICAgID8gIGVtIHZleiBkZSAgLyAuCgogIDUuIFBhcmEgdm9sdGFyIHBhcmEgb25kZSBlc3RhdmEsIHByZXNzaW9uZSBDVFJMLU8gKG1hbnRlbmhhIGEgdGVjbGEgQ3RybAogICAgIHByZXNzaW9uYWRhIGUgcHJlc3Npb25lIGEgdGVjbGEgbykuIFJlcGl0YSBwYXJhIHZvbHRhciBvdXRyYXMgcG9zaef1ZXMuCiAgICAgQ1RSTC1JIHNlZ3VlIHBhcmEgcG9zaef1ZXMgbWFpcyByZWNlbnRlcy4KCi0tLT4gICJlcnJyb28iIG7jbyDpIHVtYSBtYW5laXJhIGRlIGVzY3JldmVyIGVycm87ICBlcnJyb28g6SB1bSBlcnJvLgpOT1RBOiBRdWFuZG8gYSBidXNjYSBhdGluZ2UgbyBmaW5hbCBkbyBhcnF1aXZvIGVsYSBjb250aW51YXLhIGRvIGNvbWXnbywgYQogICAgICBtZW5vcyBxdWUgYSBvcOfjbyAnd3JhcHNjYW4nIGVzdGVqYSBkZXNhdGl2YWRhLgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCQlMaefjbyA0LjM6IFBST0NVUkEgUE9SIENBU0FNRU5UTyBERSBQQVLKTlRFU0VTCgoJICAgKiogRGlnaXRlICAlICBwYXJhIGFjaGFyIHVtIGNhc2FtZW50byBkZSApLF0sIG91IH0gLiAqKgoKCiAgMS4gUG9zaWNpb25lIG8gY3Vyc29yIGVtIHF1YWxxdWVyICgsIFssIG91IHsgbmEgbGluaGEgYWJhaXhvIG1hcmNhZGEgY29tIC0tLT4uCiAgCiAgMi4gQWdvcmEgZGlnaXRlIG8gY2FyYWN0ZXJlICAlIC4KICAKICAzLiBPIGN1cnNvciBkZXZlIGVzdGFyIG5vIHBhcupudGVzZXMgb3UgY29sY2hldGVzIHF1ZSBjYXNhIGNvbSBvIHByaW1laXJvLgoKICA0LiBEaWdpdGUgICUgIHBhcmEgbW92ZXIgbyBjdXJzb3IgZGUgdm9sdGEgYW8gcHJpbWVpcm8gY29sY2hldGUgb3UgcGFy6m50ZXNlcwogICAgIChwb3IgY2FzYW1lbnRvKS4KCi0tLT4gSXN0byAoIOkgdW1hIGxpbmhhIGRlIHRlc3RlIGNvbnRlbmRvICgncywgWydzIF0gZSB7J3MgfS4gKSkKCk5vdGE6IElzc28g6SBtdWl0byD6dGlsIHBhcmEgY29ycmlnaXIgdW0gcHJvZ3JhbWEgY29tIHBhcupudGVzZXMgbuNvLWNhc2Fkb3MhCgoKCgoKfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CgkJICAgICAgIExp5+NvIDQuNDogTyBDT01BTkRPIFNVQlNUSVRVSVIKCiAgICAgICoqIERpZ2l0ZSAgOnMvdmVsaG8vbm92by9nICBwYXJhIHN1YnN0aXR1aXIgJ3ZlbGhvJyBwb3IgJ25vdm8nLiAqKgoKCiAgMS4gTW92YSBvIGN1cnNvciBwYXJhIGEgbGluaGEgYWJhaXhvIG1hcmNhZGEgY29tIC0tLT4uCgogIDIuIERpZ2l0ZSAgOnMvYWEvYSA8RU5URVI+IC4gTm90ZSBxdWUgZXN0ZSBjb21hbmRvIHNvbWVudGUgbXVkYSBhIAogICAgIHByaW1laXJhIG9jb3Jy6m5jaWEgbmEgbGluaGEuCgogIDMuIEFnb3JhIGRpZ2l0ZSAgOnMvYWEvYS9nICAgc2lnbmlmaWNhbmRvIHN1YnN0aXR1aXIgZ2xvYmFsbWVudGUgbmEgbGluaGEuCiAgICAgSXN0byBtdWRhIHRvZGFzIGFzIG9jb3Jy6m5jaWFzIG5hIGxpbmhhLgoKLS0tPiBhYSBtZWxob3Ig6XBvY2EgcGFyYSB2ZXIgYWFzIGZsb3JlcyDpIGFhIHByaW1hdmVyYS4gCgogIDQuIFBhcmEgbXVkYXIgdG9kYSBvY29ycupuY2lhIGRlIHVtYSBzdHJpbmcgZW50cmUgZHVhcyBsaW5oYXMsCiAgICAgZGlnaXRlICA6Iywjcy92ZWxoby9ub3ZvL2cgICBvbmRlICMsIyBz428gb3MgbvptZXJvcyBkYXMgZHVhcyBsaW5oYXMuCiAgICAgRGlnaXRlICA6JXMvdmVsaG8vbm92by9nICAgICBwYXJhIG11ZGFyIHRvZGFzIGFzIG9jb3Jy6m5jaWFzIG5vIGFycXVpdm8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludGVpcm8uCiAgICAgRGlnaXRlICA6JXMvdmVsaG8vbm92by9nYyAgICBwYXJhIG11ZGFyIHRvZGFzIGFzIG9jb3Jy6m5jaWEgbm8gYXJxdWl2bwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ZWlybywgY29tIGEgb3Dn428gZGUgY29uZmlybWFyIGNhZGEKCQkJCSAgc3Vic3RpdHVp5+NvLgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNVTcFSSU8gREEgTEnHw08gNAogIDEuICAgIENUUkwtRyAgbW9zdHJhIGEgc3VhIGxvY2FsaXph5+NvIG5vIGFycXVpdm8gZSBvIHN0YXR1cyBkbyBtZXNtby4KICAgICAgICAgICAgIEcgIG1vdmUgcGFyYSBvIGZpbmFsIGRvIGFycXVpdm8uCiAgICAgbvptZXJvICBHICBtb3ZlIHBhcmEgZXN0YSBsaW5oYSBjb20gZXNzZSBu+m1lcm8uCiAgICAgICAgICAgIGdnICBtb3ZlIHBhcmEgYSBwcmltZWlyYSBsaW5oYS4KCiAgMi4gRGlnaXRhbmRvICAvICBzZWd1aWRvIHBvciB1bWEgZXhwcmVzc+NvIHByb2N1cmEgwCBGUkVOVEUgcG9yIGVsYS4KICAgICBEaWdpdGFuZG8gID8gIHNlZ3VpZG8gcG9yIHVtYSBleHByZXNz428gcHJvY3VyYSBwZWxhIGV4cHJlc3PjbyBkZSBUUsFTCiAgICAgUEFSQSBGUkVOVEUuCiAgICAgQXDzcyB1bWEgYnVzY2EsIGRpZ2l0ZSBuIHBhcmEgYWNoYXIgYSBwcvN4aW1hIG9jb3Jy6m5jaWEgbmEgbWVzbWEgZGlyZefjbwogICAgIG91IE4gcGFyYSBwcm9jdXJhciBuYSBkaXJl5+NvIG9wb3N0YS4KICAgICBDVFJMLU8gbGV2YSBhIHBvc2nn9WVzIGFudGlnYXMgZSBDVFJMLUkgYSBwb3Np5/VlcyBtYWlzIHJlY2VudGVzLgoKICAzLiBEaWdpdGFuZG8gICUgIGVucXVhbnRvIG8gY3Vyc29yIGVzdOEgc29icmUgdW0gKCwpLFssXSx7LCBvdSB9IGxvY2FsaXphCiAgICAgbyBwYXIgcXVlIGNhc2EgY29tIGVsZS4KCiAgNC4gUGFyYSBzdWJzdGl0dWlyOgogICAgICAgbyBwcmltZWlybyAndmVsaG8nIGRlIHVtYSBsaW5oYSBwb3IgJ25vdm8nIGRpZ2l0ZSAgIDpzL3ZlbGhvL25vdm8KICAgICAgIHRvZG9zIG9zICd2ZWxobydzIGVtIHVtYSBsaW5oYSBwb3IgJ25vdm8nIGRpZ2l0ZSAgICA6cy92ZWxoby9ub3ZvL2cKICAgICAgIGV4cHJlc3P1ZXMgZW50cmUgZG9pcyBu+m1lcm9zICgjKSBkZSBsaW5oYXMgZGlnaXRlICA6Iywjcy92ZWxoby9ub3ZvCiAgICAgICB0b2RhcyBhcyBvY29ycupuY2lhcyBubyBhcnF1aXZvIGRpZ2l0ZSAgICAgICAgICAgICAgOiVzL3ZlbGhvL25vdm8vZwogICAgIFBhcmEgY29uZmlybWFyIGNhZGEgc3Vic3RpdHVp5+NvIGFkaWNpb25lICdjJyAgICAgICAgIDolcy92ZWxoby9ub3ZvL2djCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCQkgTGnn428gNS4xOiBDT01PIEVYRUNVVEFSIFVNIENPTUFORE8gRVhURVJOTwoKCiAqKiBEaWdpdGUgIDohICBzZWd1aWRvIHBvciB1bSBjb21hbmRvIGV4dGVybm8gcGFyYSBleGVjdXRhciBlc3NlIGNvbWFuZG8uICoqCgogIDEuIERpZ2l0ZSBvIGZhbWlsaWFyIGNvbWFuZG8gIDogIHBhcmEgbGV2YXIgbyBjdXJzb3IgYW8gcm9kYXDpIGRhIHRlbGEuIElzc28KICAgICBsaGUgcGVybWl0ZSBlbnRyYXIgdW0gY29tYW5kby4KCiAgMi4gQWdvcmEgZGlnaXRlIG8gY2FyYWN0ZXJlICAhICAocG9udG8gZGUgZXhjbGFtYefjbykuIElzc28gbGhlIHBlcm1pdGUKICAgICBleGVjdXRhciBxdWFscXVlciBjb21hbmRvIGRvIHNoZWxsLgoKICAzLiBDb21vIHVtIGV4ZW1wbG8gZGlnaXRlICBscyAgc2VndWluZG8gbyAgISAgZSBlbnTjbyB0ZWNsZSA8RU5URVI+LiBJc3RvCiAgICAgaXLhIG1vc3RyYXIgdW1hIGxpc3RhZ2VtIGRvIHNldSBkaXJldPNyaW8sIGNvbW8gc2Ugdm9j6iBlc3RpdmVzc2Ugbm8KICAgICBwcm9tcHQgZG8gc2hlbGwuIE91IHVzZSAgOiFkaXIgc2UgbHMgbuNvIGZ1bmNpb25hci4KCk5PVEE6ICDJIHBvc3PtdmVsIGV4ZWN1dGFyIHF1YWxxdWVyIGNvbWFuZG8gZXh0ZXJubyBkZXNzYSBtYW5laXJhLCBpbmNsdXNpdmUKICAgICAgIGNvbSBhcmd1bWVudG9zLgoKTk9UQTogIFRvZG9zIG9zIGNvbWFuZG9zICA6ICBkZXZlbSBzZXIgZmluYWxpemFkb3MgdGVjbGFuZG8tc2UgPEVOVEVSPgogICAgICAgRGFxdWkgZW0gZGlhbnRlIG7jbyBpcmVtb3MgbWVuY2lvbmFyIGlzc28gc2VtcHJlLgoKCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCQkgICAgTGnn428gNS4yOiBNQUlTIFNPQlJFIFNBTFZBUiBBUlFVSVZPUwoKICAgICAqKiBQYXJhIHNhbHZhciBhcyBhbHRlcmHn9WVzIG5vIHRleHRvLCBkaWdpdGUgIDp3IE5PTUVET0FSUVVJVk8uICoqCgoKICAxLiBEaWdpdGUgIDohZGlyICBvdSAgOiFscyBwYXJhIHRlciB1bWEgbGlzdGFnZW0gZGUgc2V1IGRpcmV083Jpby4KICAgICBWb2PqIGrhIGRldmUgc2FiZXIgcXVlIHByZWNpc2EgdGVjbGFyIDxFTlRFUj4gZGVwb2lzIGRpc3NvLgoKICAyLiBFc2NvbGhhIHVtIG5vbWUgZGUgYXJxdWl2byBxdWUgYWluZGEgbuNvIGV4aXN0YSwgY29tbyBURVNURS4KCiAgMy4gQWdvcmEgZGlnaXRlOiAgIDp3IFRFU1RFICAob25kZSBURVNURSDpIG8gbm9tZSBxdWUgdm9j6iBlc2NvbGhldS4pCgogIDQuIElzdG8gc2FsdmEgbyBhcnF1aXZvIGludGVpcm8gIChvIFZpbSBUdXRvcikgY29tIG8gbm9tZSBURVNURS4KICAgICBQYXJhIHZlcmlmaWNhciBpc3NvLCBkaWdpdGUgIDohbHMgZGUgbm92byBwYXJhIHZlciBzZXUgZGlyZXTzcmlvCgpOT1RBOiBTZSB2b2PqIHNhaXIgZG8gVmltIGUgZW50cmFyIGRlIG5vdm8gY29tIG8gbm9tZSBkbyBhcnF1aXZvIFRFU1RFLAogICAgICBvIGFycXVpdm8gZGV2ZSBzZXIgdW1hIGPzcGlhIGV4YXRhIGRvIHR1dG9yIHF1YW5kbyB2b2PqIG8gc2Fsdm91LgoKICA1LiBBZ29yYSByZW1vdmEgbyBhcnF1aXZvIGRpZ2l0YW5kbyAoTVMtRE9TKTogICAgIDohZGVsIFRFU1RFCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3UgKFVuaXgpOiAgICAgICA6IXJtIFRFU1RFCgoKfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CgkJIExp5+NvIDUuMzogU0VMRUNJT05BTkRPIE8gVEVYVE8gQSBTRVIgU0FMVk8KCiAgKiogUGFyYSBzYWx2YXIgcGFydGUgZGUgdW0gYXJxdWl2bywgZGlnaXRlICB2ICBtb3ZpbWVudG8gTk9NRURPQVJRVUlWTyAqKgoKICAxLiBNb3ZhIG8gY3Vyc29yIHBhcmEgZXN0YSBsaW5oYS4KCiAgMi4gUHJlc3Npb25lICB2ICBlIG1vdmEgbyBjdXJzb3IgcGFyYSBvIHF1aW50byBpdGVtIGFiYWl4by4gTm90ZSBxdWUgbyB0ZXh0bwogICAgIOkgcmVhbOdhZG8uCgogIDMuIFByZXNzaW9uZSBvIGNhcmFjdGVyZSAgOiAgZSBub3RlIHF1ZSBhcGFyZWNlcuEgIDonPCwnPiAgbm8gbGFkbyBpbmZlcmlvcgogICAgIGRhIHRlbGEuCgogIDQuIERpZ2l0ZSAgdyBURVNURSAsIHNlbmRvIFRFU1RFIHVtIG5vbWUgZGUgYXJxdWl2byBxdWUgbuNvIGV4aXN0ZSBhaW5kYS4KICAgICBWb2PqIGRldmVy4SB2ZXIgIDonPCwnPncgVEVTVEUgIGFudGVzIGRlIHByZXNzaW9uYXIgPEVOVEVSPi4KCiAgNS4gTyBWaW0gc2FsdmFy4SBhcyBsaW5oYXMgc2VsZWNpb25hZGFzIG5vIGFycXVpdm8gVEVTVEUuIFVzZSAgOiFkaXIgIG91CiAgICAgITpscyBwYXJhIHbqLWxvLiBO428gbyBhcGFndWUgYWdvcmEhIE7zcyBvIHVzYXJlbW9zIG5hIHBy83hpbWEgbGnn428uCgpOT1RBOiAgUHJlc3Npb25hbmRvICB2ICBpbmljaWEgbyBtb2RvIFZpc3VhbCBkZSBzZWxl5+NvLiAgVm9j6iBwb2RlIG1vdmVyIG8KY3Vyc29yIHBlbGEgdGVsYSBwYXJhIHRvcm5hciBhIHNlbGXn428gbWFpb3Igb3UgbWVub3IuIFBvZGUsIGVudONvLCB1c2FyIHVtCm9wZXJhZG9yIHBhcmEgZXhlY3V0YXIgYWxndW1hIGHn428uIFBvciBleGVtcGxvLCAgZCAgZGVsZXRhIG8gdGV4dG8uCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCQkgIExp5+NvIDUuNDogUkVDVVBFUkFORE8gRSBKVU5UQU5ETyBBUlFVSVZPUwoKICAgICoqIFBhcmEgaW5zZXJpciBvIGNvbnRl+mRvIGRlIHVtIGFycXVpdm8sIGRpZ2l0ZSAgOnIgTk9NRURPQVJRVUlWTyAqKgoKCiAgMS4gUG9zaWNpb25lIG8gY3Vyc29yIGxvZ28gYWNpbWEgZGVzdGEgbGluaGEuCgpOT1RBOiAgRGVwb2lzIGRlIGV4ZWN1dGFyIG8gUGFzc28gMiB2b2PqIHZlcuEgYSBsaefjbyA1LjMuIEVudONvIERFU8dBIG8KICAgICAgIGN1cnNvciBwYXJhIHZlciBlc3RhIGxp5+NvIG5vdmFtZW50ZS4KCiAgMi4gQWdvcmEgcmVjdXBlcmUgbyBhcnF1aXZvIFRFU1RFIHVzYW5kbyBvIGNvbWFuZG8gIDpyIFRFU1RFICBvbmRlIFRFU1RFIOkgbwogICAgIG5vbWUgZG8gYXJxdWl2by4KICAgICBPIGFycXVpdm8gcmVjdXBlcmFkbyDpIGNvbG9jYWRvIGFiYWl4byBkYSBsaW5oYSBhdHVhbCBkbyBjdXJzb3IuCgogIDMuIFBhcmEgdmVyaWZpY2FyIHF1ZSBvIGFycXVpdm8gZm9pIHJlY3VwZXJhZG8sIHZvbHRlIGNvbSBvIGN1cnNvciBlIHZlcmlmaXF1ZQogICAgIHF1ZSBhZ29yYSBleGlzdGVtIGR1YXMgY/NwaWFzIGRhIExp5+NvIDUuMywgYSBvcmlnaW5hbCBlIGEgdmVyc+NvIGRvIAogICAgIGFycXVpdm8uCgpOT1RBOiBWb2PqIHRhbWLpbSBwb2RlIGxlciBhIHNh7WRhIGRlIHVtIGNvbWFuZG8gZXh0ZXJuby4gUG9yIGV4ZW1wbG8sICA6ciAhbHMKICAgICAgbOogYSBzYe1kYSBkbyBjb21hbmRvIGxzIGUgY29sb2NhIG8gcmVzdWx0YWRvIGFiYWl4byBkbyBjdXJzb3IuCgoKfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CgkJCSAgICAgIFNVTcFSSU8gREEgTEnHw08gNSAKCgogIDEuICA6IWNvbWFuZG8gIGV4ZWN1dGEgdW0gY29tYW5kbyBleHRlcm5vLgoKICAgICAgQWxndW5zIGV4ZW1wbG9zIPp0ZWlzIHPjbzoKICAgICAgICAgKE1TLURPUykgICAgICAgICAoVU5JWCkKCSAgOiFkaXIgICAgICAgICAgICA6IWxzICAgICAgICAgIC0gIGxpc3RhIGNvbnRl+mRvIGRvIGRpcmV083Jpby4KICAgICAgICAgIDohZGVsIEFSUVVJVk8gICAgOiFybSBBUlFVSVZPICAtICByZW1vdmUgQVJRVUlWTy4KCiAgMi4gOncgQVJRVUlWTyAgc2FsdmEgbyBhdHVhbCBhcnF1aXZvIGRvIFZpbSBwYXJhIG8gZGlzY28gY29tIG8gbm9tZSBBUlFVSVZPLgoKICAzLiB2ICBtb3ZpbWVudG8gIDp3IEFSUVVJVk8gIHNhbHZhIGFzIGxpbmhhcyBWaXN1YWxtZW50ZSBzZWxlY2lvbmFkYXMgZW0KICAgICBBUlFVSVZPLgoKICA0LiA6ciBBUlFVSVZPICByZWN1cGVyYSBBUlFVSVZPIGRvIGRpc2NvIGUgbyBpbnNlcmUgZGVudHJvIGRvIGFycXVpdm8gYXR1YWwKICAgICBuYSBwb3Np5+NvIGRvIGN1cnNvci4KCiAgNS4gOnIgIWRpciAgbOogYSBzYe1kYSBkbyBjb21hbmRvIGRpciBlIGNvbG9jYSBvIHJlc3VsdGFkbyBhYmFpeG8gZGEgcG9zaefjbwogICAgIGF0dWFsIGRvIGN1cnNvci4KCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAgICAgICAgICAgICAgICAgICAgICAgIExp5+NvIDYuMTogTyBDT01BTkRPIE9QRU4gKEFCUklSKQoKICAgKiogRGlnaXRlICBvICBwYXJhIGFicmlyIHVtYSBsaW5oYSBlbWJhaXhvIGRvIGN1cnNvciBlIGlyIHBhcmEgbyBtb2RvIGRlCiAgICAgIEluc2Vy5+NvIChJTlNFUlQpLiAqKgoKICAxLiBNb3ZhIG8gY3Vyc29yIHBhcmEgYSBsaW5oYSBhYmFpeG8gbWFyY2FkYSBjb20gLS0tPi4KCiAgMi4gRGlnaXRlICBvIChtaW76c2N1bG8pIHBhcmEgYWJyaXIgdW1hIGxpbmhhIEFCQUlYTyBkbyBjdXJzb3IgZSBpciBwYXJhIG8KICAgICBtb2RvIGRlIEluc2Vy5+NvIChJTlNFUlQpLgoKICAzLiBBZ29yYSBkaWdpdGUgYWxndW0gdGV4dG8gZSBwcmVzc2lvbmUgPEVTQz4gcGFyYSBzYWlyIGRvIG1vZG8gZGUKICAgICBJbnNlcufjby4KCi0tLT4gQXDzcyB0ZWNsYXIgIG8gIG8gY3Vyc29yIOkgY29sb2NhZG8gbmEgbGluaGEgYWJlcnRhIG5vIG1vZG8gZGUgSW5zZXLn428uCgogIDQuIFBhcmEgYWJyaXIgdW1hIGxpbmhhIEFDSU1BIGRvIGN1cnNvciwgc2ltcGxlc21lbnRlIHRlY2xlIHVtICBPICBtYWn6c2N1bG8sCiAgICAgZW0gdmV6IGRlIHVtICBvICBtaW76c2N1bG8uIFRlbnRlIGlzc28gbmEgbGluaGEgYWJhaXhvLgoKLS0tPiBBYnJhIHVtYSBsaW5oYSBhY2ltYSBkZXN0YSB0ZWNsYW5kbyBPIGVucXVhbnRvIG8gY3Vyc29yIGVzdOEgbmVzdGEgbGluaGEuCgoKCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCQkJIExp5+NvIDYuMjogTyBDT01BTkRPIEFQUEVORAoKCSAgICAqKiBEaWdpdGUgIGEgIHBhcmEgaW5zZXJpciB0ZXh0byBERVBPSVMgZG8gY3Vyc29yLiAqKgoKICAxLiBNb3ZhIG8gY3Vyc29yIHBhcmEgbyBpbu1jaW8gZGEgbGluaGEgbWFyY2FkYSBjb20gLS0tPiAuCgogIDIuIFByZXNzaW9uZSAgZSAgYXTpIG8gY3Vyc29yIGZpY2FyIHNvYnJlIG8gZmluYWwgZGUgbGkgLgoKICAzLiBEaWdpdGUgdW0gIGEgIChtaW76c2N1bG8pIHBhcmEgYWRpY2lvbmFyIHRleHRvIERFUE9JUyBkbyBjYXJhY3RlcmUgc29iIG8KICAgICBjdXJzb3IuCgogIDQuIENvbXBsZXRlIGEgcGFsYXZyYSBjb25mb3JtZSBhIGxpbmhhIGFiYWl4by4gUHJlc3Npb25lIDxFU0M+IHBhcmEgc2FpciBkbwogICAgIG1vZG8gZGUgSW5zZXLn428uCgogIDUuIFVzZSAgZSAgcGFyYSBtb3ZlciBwYXJhIGEgcHLzeGltYSBwYWxhdnJhIGluY29tcGxldGEgIHJlcGl0YSBvcyBwYXNzb3MgMwogICAgIGUgNC4KCi0tLT4gRXN0YSBsaW4gbGhlIHBlcm1pdGUgcHJhdGljIGEgYWRp5yBkZSB0ZXh0byBhIHVtYSBsaW5oYS4KLS0tPiBFc3RhIGxpbmhhIGxoZSBwZXJtaXRlIHByYXRpY2FyIGEgYWRp5+NvIGRlIHRleHRvIGEgdW1hIGxpbmhhLgoKTk9UQTogYSwgaSBlIEEgbGV2YW0gYW8gbWVzbW8gbW9kbyBkZSBJbnNlcufjbywgYSD6bmljYSBkaWZlcmVu52Eg6SBvbmRlIG9zCiAgICAgIGNhcmFjdGVyZXMgc+NvIGluc2VyaWRvcy4Kfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoJICAgICBMaefjbyA2LjM6IFVNQSBPVVRSQSBWRVJTw08gRE8gUkVQTEFDRSAoU1VCU1RJVFVJUikKCiAgICAgICoqIERpZ2l0ZSB1bSBSIG1hafpzY3VsbyBwYXJhIHN1YnN0aXR1aXIgbWFpcyBkZSB1bSBjYXJhY3RlcmUuICoqCgoKICAxLiBNb3ZhIG8gY3Vyc29yIHBhcmEgYSBwcmltZWlyYSBsaW5oYSBhYmFpeG8gbWFyY2FkYSBjb20gLS0tPi4gTW92YSBvCiAgICAgY3Vyc29yIHBhcmEgbyBpbu1jaW8gZG8gcHJpbWVpcm8gIHh4eCAuCiAgCiAgMi4gQWdvcmEgcHJlc3Npb25lICBSICBlIGRpZ2l0ZSBvcyBu+m1lcm9zIHF1ZSBlc3TjbyBhYmFpeG8gZGVsZSwgbmEgc2VndW5kYQogICAgIGxpbmhhLCBwYXJhIHN1YnN0aXR1aXIgbyAgeHh4IC4KCiAgMy4gUHJlc3Npb25lIDxFU0M+IHBhcmEgc2FpciBkbyBtb2RvIGRlIFN1YnN0aXR1aefjby4gTm90ZSBxdWUgbyByZXN0byBkYQogICAgIGxpbmhhIHBlcm1hbmVjZSBpbmFsdGVyYWRhLgoKICA0LiBSZXBpdGEgb3MgcGFzc29zIHBhcmEgc3Vic3RpdHVpciBvcyAgeHh4ICByZXN0YW50ZXMuCgotLS0+ICBBZGljaW9uYW5kbyAxMjMgYSB4eHggcmVzdWx0YSBlbSB4eHguCi0tLT4gIEFkaWNpb25hbmRvIDEyMyBhIDQ1NiByZXN1bHRhIGVtIDU3OS4KCk5PVEE6ICBPIG1vZG8gZGUgU3Vic3RpdHVp5+NvIOkgY29tbyBvIG1vZG8gZGUgSW5zZXLn428sIG1hcyBjYWRhIGNhcmFjdGVyZQogICAgICAgZGlnaXRhZG8gZGVsZXRhIHVtIGNhcmFjdGVyZSBleGlzdGVudGUuCgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCQkgICAgICAgTGnn428gNi40OiBDT1BJQVIgRSBDT0xBUiBURVhUTwoKCSoqIFVzZSBvIG9wZXJhZG9yICB5ICBwYXJhIGNvcGlhciB0ZXh0byBlICBwICBwYXJhIGNvbOEtbG8uICoqCgogICAxLiBW4SBwYXJhIGEgbGluaGEgbWFyY2FkYSBjb20gLS0tPiBhYmFpeG8gZSBwb3NpY2lvbmUgbyBjdXJzb3IgYXDzcyAiYSkiLgoKICAgMi4gSW5pY2llIG8gbW9kbyBWaXN1YWwgY29tICB2ICBlIG1vdmEgbyBjdXJzb3IgcGFyYSBsb2dvIGFudGVzIGRlCiAgICAgICJwcmltZWlybyIuCgogICAzLiBEaWdpdGUgIHkgIHBhcmEgY29waWFyIG8gdGV4dG8gc2VsZWNpb25hZG8uCgogICA0LiBNb3ZhIG8gY3Vyc29yIHBhcmEgbyBmaW5hbCBkYSBwcvN4aW1hIGxpbmhhOiAgaiQKCiAgIDUuIERpZ2l0ZSAgcCAgcGFyIHD0ciAoY29sYXIpIG8gdGV4dG8uIEVudONvLCBkaWdpdGU6ICBvIHNlZ3VuZG8gPEVTQz4gLgoKICAgNi4gVXNlIG8gbW9kbyBWaXN1YWwgcGFyYSBzZWxlY2lvbmFyICAiIGl0ZW0uIiwgY29waWUtbyBjb20gIHkgLCBtb3ZhIHBhcmEKICAgICAgbyBmaW5hIGRhIHBy83hpbWEgbGluaGEgY29tICBqJCAgZSBwb25oYSAoY29sZSkgbyB0ZXh0byBjb20gIHAgLgoKLS0tPiAgYSkgZXNzZSDpIG8gcHJpbWVpcm8gaXRlbS4KICAgICAgYikKTk9UQTogIFZvY+ogdGFtYultIHBvZGUgdXNhciAgeSAgY29tbyB1bSBvcGVyYWRvcjsgcG9yIGV4ZW1wbG8sIHl3IGNvcGlhIHVtYQogICAgICAgcGFsYXZyYS4Kfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CgkJICAgICAgTGnn428gNi41OiBDT05GSUdVUkFSIFBSRUZFUspOQ0lBUwoKICAgICAgKiogQ29uZmlndXJhciB1bWEgcHJlZmVy6m5jaWEgZGUgbW9kbyBxdWUgdW0gc2VhcmNoIG91IHN1YnN0aXR1dGUKCSBpZ25vcmEgc2UgYXMgbGV0cmFzIGVzdONvIGVtIG1hafpzY3VsYXMgb3UgbWlu+nNjdWxhcy4gKioKCiAgMS4gUHJvY3VyZSBwb3IgJ2lnbm9yZScgZW50cmFuZG86ICAvaWdub3JlIDxFTlRFUj4KICAgICBSZXBpdGEgduFyaWFzIHZlemVzIHRlY2xhbmRvICBuIC4KICAyLiBDb25maWd1cmUgYSBvcOfjbyAnaWMnIChJZ25vcmUgY2FzZSkgZGlnaXRhbmRvOgogICAgIDpzZXQgaWMKICAzLiBBZ29yYSBwcm9jdXJlIHBvciAnaWdub3JlJyBkZSBub3ZvIHRlY2xhbmRvOiBuCiAgICAgUmVwaXRhIHbhcmlhcyB2ZXplcy4KICA0LiBDb25maWd1cmUgYXMgb3Dn9WVzICdobHNlYXJjaCcgZSAnaW5jc2VhcmNoJzoKICAgICA6c2V0IGhscyBpcwogIDUuIEFnb3JhIGVudHJlIGNvbSBvIGNvbWFuZG8gc2VhcmNoIGRlIG5vdm8sIGUgdmVqYSBvIHF1ZSBhY29udGVjZToKICAgICAvaWdub3JlCiAgNi4gUGFyYSBkZXNhYmlsaXRhciBhIGRlc2NvbnNpZGVyYefjbyBkZSBtYWn6c2N1bGFzIGUgbWlu+nNjdWxhczoKICAgICA6c2V0IG5vaWMKCk5PVEE6ICBQYXJhIHJlbW92ZXIgbyByZWFsY2UgZG9zIHRlcm1vcyBsb2NhbGl6YWRvcyBlbnRyZTogIDpub2hsc2VhcmNoCk5PVEE6ICBTZSBxdWlzZXIgaWdub3JhciBhIGRpZmVyZW7nYSBlbnRyZSBtYWn6c2N1bGFzIGUgbWlu+nNjdWxhcyBlbSBhcGVuYXMKICAgICAgIHVtYSBwZXNxdWlzYSwgdXNlICBcYyAgbm8gY29tYW5kbzogIC9pZ25vcmVcYyA8RU5URVI+Cgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCQkJICAgICAgU1VNwVJJTyBEQSBMScfDTyA2CgogIDEuIERpZ2l0ZSAgbyAgcGFyYSBhYnJpciB1bWEgbGluaGEgQUJBSVhPIGRvIGN1cnNvciBlIGluaWNpYXIgbyBtb2RvIGRlCiAgICAgSW5zZXLn428uCiAgICAgRGlnaXRlICBPICBwYXJhIGFicmlyIHVtYSBsaW5oYSBBQ0lNQSBkYSBsaW5oYSBvbmRlIG8gY3Vyc29yIGVzdOEuCgogIDIuIERpZ2l0ZSAgYSAgcGFyYSBhZGljaW9uYXIgdGV4dG8gREVQT0lTIGRvIGNhcmFjdGVyZSBvbmRlIGVzdOEgbyBjdXJzb3IuCiAgICAgRGlnaXRlICBBICBwYXJhIGFkaWNpb25hciB0ZXh0byBhbyBmaW5hbCBkYSBsaW5oYS4KCiAgMy4gTyBjb21hbmRvICBlICBtb3ZlIG8gY3Vyc29yIHBhcmEgbyBmaW5hbCBkZSB1bWEgcGFsYXZyYS4KCiAgNC4gTyBvcGVyYWRvciAgeSAgY29waWEgdGV4dG8sICBwICBw9WUgKGNvbGEpIG8gdGV4dG8gY29waWFkby4KCiAgNS4gRGlnaXRhbmRvICBSICBlbnRyYS1zZSBubyBtb2RvIGRlIFN1YnN0aXR1aefjbyBhdOkgcXVlIDxFU0M+IHNlamEKICAgICBwcmVzc2lvbmFkby4KCiAgNi4gRGlnaXRhbmRvICAiOnNldCB4eHgiIG1vZGlmaWNhLXNlIGEgb3Dn428gInh4eCIuIEFsZ3VtYXMgb3Dn9WVzIHPjbzoKICAgICAgICAgJ2ljJyAnaWdub3JlY2FzZScgICAgIGlnbm9yYSBkaWZlcmVu52EgZW50cmUgbWFp+nNjdWxhcy9taW76c2N1bGFzCgkgJ2lzJyAnaW5jc2VhcmNoJyAgICAgIHJlYWxpemEgYSBidXNjYSBlbnF1YW50byBzZSBkaWdpdGEKCSAnaGxzJyAnaGxzZWFyY2gnICAgICAgcmVhbOdhIHRvZG9zIG9zIHRyZWNob3MgbG9jYWxpemFkb3MKICAgICBWb2PqIHRhbnRvIHBvZGUgdXNhciBvIG5vbWUgY3VydG8gcXVhbnRvIG8gbm9tZSBsb25nbyBkYSBvcOfjby4KICA3LiBBZGljaW9uZSBvIHByZWZpeG8gIm5vIiBwYXJhIGRlc2FiaWxpdGFyIHVtYSBvcOfjbzogIDpzZXQgbm9pYwp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCQkJICAgTEnHw08gNy4xOiBPQlRFTkRPIEFKVURBCgoJCSAqKiBVc2FyIG8gc2lzdGVtYSBkZSBhanVkYSBkbyBwcvNwcmlvIFZpbSAqKgoKICBPIFZpbSBwb3NzdWkgc2lzdGVtYSBkZSBhanVkYSBhYnJhbmdlbnRlLiBQYXJhIGNvbWXnYXIsIHRlbnRlIGFsZ3VtCiAgZGVzc2VzIHRy6nM6CiAgICAgICAgLSBwcmVzc2lvbmUgYSB0ZWNsYSA8SEVMUD4gKHNlIHZvY+ogdGl2ZXIgdW1hKQogICAgICAgIC0gcHJlc3Npb25lIGEgdGVjbGEgPEYxPiAgIChzZSB2b2PqIHRpdmVyIHVtYSkKICAgICAgICAtIGRpZ2l0ZSAgICAgIDpoZWxwIDxFTlRFUj4KCiAgTGVpYSBvIHRleHRvIGRhIGFqdWRhIHBhcmEgYXByZW5kZXIgY29tbyBvIHNpc3RlbWEgZGUgYWp1ZGEgZnVuY2lvbmEuCiAgRGlnaXRlICBDVFJMLVcgQ1RSTC1XICBwYXJhIHB1bGFyIGRlIHVtYSBqYW5lbGEgcGFyYSBvdXRyYS4KICBEaWdpdGUgIDpxIDxFTlRFUj4gcGFyYSBmZWNoYXIgYSBqYW5lbGEgZGEgYWp1ZGEuCgogIFZvY+ogcG9kZSBhY2hhciBhanVkYSBzb2JyZSBxdWFscXVlciBhc3N1bnRvLCBmb3JuZWNlbmRvIHVtIGFyZ3VtZW50byBwYXJhCiAgbyBjb21hbmRvICI6aGVscCIuIFRlbnRlIGlzdG8gKG7jbyBlc3F1ZedhIGRlIHByZXNzaW9uYXIgPEVOVEVSPik6CgogICAgICAgOmhlbHAgdwogICAgICAgOmhlbHAgY19DVFJMLUQKICAgICAgIDpoZWxwIGluc2VydC1pbmRleAogICAgICAgOmhlbHAgdXNlci1tYW51YWwKCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoJCSBMaefjbyA3LjI6IENSSUFSIFVNIFNDUklQVCBERSBJTklDSUFMSVpBx8NPCgoJCSAgICAgICAqKiBIYWJpbGl0YXIgcmVjdXJzb3MgZG8gVmltICoqCgogIE8gVmltIHRlbSBtdWl0byBtYWlzIHJlY3Vyc29zIGRvIHF1ZSBvIFZpLCBtYXMgbmEgc3VhIG1haW9yaWEgZWxlcyBz428KICBkZXNhYmlsaXRhZG9zIHBvciBwYWRy428uICBQYXJhIHVzYXIgbWFpcyByZWN1cnNvcywgdm9j6iB0ZW0gcXVlIGNyaWFyIHVtCiAgYXJxdWl2byAidmltcmMiLgoKICAxLiBDb21lY2UgYSBlZGl0YXIgbyBhcnF1aXZvICJ2aW1yYyIuIElzc28gZGVwZW5kZSBkbyBzaXN0ZW1hOgogICAgICAgICA6ZSB+Ly52aW1yYyAgICAgICAgICAgICAgcGFyYSBVbml4CiAgICAgICAgIDplICRWSU0vX3ZpbXJjICAgICAgICAgICBwYXJhIE1TLVdpbmRvd3MKCiAgMi4gQWdvcmEsIGxlaWEgbyBjb250ZfpkbyBkbyBhcnF1aXZvICJ2aW1yYyIgZGUgZXhlbXBsbzoKICAgICAgICAgOnIgJFZJTS92aW1yY19leGFtcGxlLnZpbQoKICAzLiBTYWx2ZSBvIGFycXVpdm8gY29tOgogICAgICAgICA6dwoKICBEYSBwcvN4aW1hIHZleiBxdWUgbyBWaW0gZm9yIGluaWNpYWRvLCBlbGUgaXLhIHVzYXIgcmVhbGNlIGRlIHNpbnRheGUuIFZvY+oKICBwb2RlIGFkaWNpb25hciBzdWFzIGNvbmZpZ3VyYef1ZXMgcHJlZmVyaWRhcyBwYXJhIGVzc2UgYXJxdWl2byAidmltcmMiLiBQYXJhCiAgbWFpb3JlcyBpbmZvcm1h5/VlcywgZGlnaXRlOiAgOmhlbHAgdmltcmMtaW50cm8KCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoJCQkgICAgTGnn428gNy4zOiBDT01QTEVUQcfDTwoKCSAgICoqIENvbXBsZXRh5+NvIGRhIGxpbmhhIGRlIGNvbWFuZG8gY29tIENUUkwtRCBlIDxUQUI+ICoqCgogICAxLiBDZXJ0aWZpcXVlLXNlIGRlIHF1ZSBvIFZpbSBu428gZXN04SBubyBtb2RvIGNvbXBhdO12ZWw6ICA6c2V0IG5vY3AKCiAgIDIuIE9saGUgcXVhaXMgYXJxdWl2b3MgZXhpc3RlbSBubyBkaXJldPNyaW86ICA6IWxzICBvdSAgOiFkaXIKCiAgIDMuIERpZ2l0ZSBvIGlu7WNpbyBkZSB1bSBjb21hbmRvOiAgOmUKCiAgIDQuIFByZXNzaW9uZSAgQ1RSTC1EICBlIG8gVmltIGly4SBtb3N0cmFyIGEgbGlzdGEgZG9zIGNvbWFuZG9zIGluaWNpYWRvcwogICAgICBjb20gImUiLgoKICAgNS4gUHJlc3Npb25lICA8VEFCPiAgZSBvIFZpbSBpcuEgY29tcGxldGFyIG8gbm9tZSBkbyBjb21hbmRvIHBhcmEgIjplZGl0Ii4KCiAgIDYuIEFnb3JhLCBhZGljaW9uZSB1bSBlc3Bh528gZSBvIGlu7WNpbyBkbyBub21lIGRlIHVtIGFycXVpdm8gZXhpc3RlbnRlOgogICAgICA6ZWRpdCBBUlEKCiAgIDcuIFByZXNzaW9uZSA8VEFCPi4gIE8gVmltIGly4SBjb21wbGV0YXIgbyBub21lIChzZSBlbGUgZm9yIPpuaWNvKS4KCk5PVEE6ICBBIGNvbXBsZXRh5+NvIGZ1bmNpb25hIGNvbSBtdWl0b3MgY29tYW5kb3MuIEJhc3RhIHByZXNzaW9uYXIgQ1RSTC1EIGUKPFRBQj4uIElzc28g6SBlc3BlY2lhbG1lbnRlIPp0aWwgcGFyYSAgOmhlbHAgLgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KCQkJICAgICAgU1VNwVJJTyBEQSBMScfDTyA3CgoKICAxLiBEaWdpdGUgIDpoZWxwIG91IHByZXNzaW9uZSA8RjE+IG91IDxIZWxwPiAgcGFyYSBhYnJpciBhIGphbmVsYSBkZSBhanVkYS4KCiAgMi4gRGlnaXRlICA6aGVscCBjbWQgIHBhcmEgYWNoYXIgYSBhanVkYSBzb2JyZSAgY21kIC4KCiAgMy4gRGlnaXRlICBDVFJMLVcgQ1RSTC1XICBwYXJhIHB1bGFyIGRlIHVtYSBqYW5lbGEgcGFyYSBvdXRyYS4KCiAgNC4gRGlnaXRlICA6cSAgcGFyYSBmZWNoYXIgYSBqYW5lbGEgZGUgYWp1ZGEuCgogIDUuIENyaWUgdW0gc2NyaXB0IGRlIGluaWNpYWxpemHn428gdmltcmMgcGFyYSBhdGl2YXIgYXV0b21hdGljYW1lbnRlIGFzIHN1YXMKICAgICBjb25maWd1cmHn9WVzIHByZWZlcmlkYXMuCgogIDYuIFF1YW5kbyBwcmVzc2lvbmFuZG8gdW0gY29tYW5kbyAgOiAsIHByZXNzaW9uZSBDVFJMLUQgcGFyYSB2ZXIgYXMKICAgICBwb3NzaWJpbGlkYWRlIGRlIGNvbXBsZXRh5+NvLgoKCgogIAoKfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CgogIElzdG8gY29uY2x1aSBvIFZpbSB0dXRvci4gRWxlIHByZXRlbmRldSBkYXIgdW1hIGJyZXZlIGFwcmVzZW50YefjbyBkbyBlZGl0b3IKICBWaW0sIHNvbWVudGUgbyBiYXN0YW50ZSBwYXJhIHF1ZSB2b2PqIHBvc3NhIHVzYXIgbyBlZGl0b3IgY29tIGZhY2lsaWRhZGUuCiAgRWxlIGVzdOEgbG9uZ2UgZGUgc2VyIGNvbXBsZXRvLCB1bWEgdmV6IHF1ZSBvIFZpbSBwb3NzdWkgbXVpdG9zLCBtdWl0b3MgbWFpcwogIGNvbWFuZG9zLiBPIHBy83hpbW8gcGFzc28g6SBsZXIgbyBtYW51YWw6ICAiOmhlbHAgdXNlci1tYW51YWwiLgoKICBMaXZybyByZWNvbWVuZGFkbyBlbSBQb3J0dWd16nMgc29icmUgbyBWaW06CiAgICAgICBPIGVkaXRvciBkZSB0ZXh0byBWaW0gLSBkZSBT6XJnaW8gTHVpeiBBcmH6am8gZGEgU2lsdmEgZXQgYWwuCiAgICAgICBodHRwOi8vY29kZS5nb29nbGUuY29tL3AvdmltYm9vay8KCiAgUGFyYSBmdXR1cmEgbGVpdHVyYSBlIGVzdHVkbywgZXN0ZSBsaXZybyDpIHJlY29tZW5kYWRvOgogICAgICAgVmltIC0gVmkgSW1wcm92ZWQgLSBkZSBTdGV2ZSBPdWFsbGluZQogICAgICAgRWRpdG9yYTogTmV3IFJpZGVycwogIEVzdGUg6SBvIHByaW1laXJvIGxpdnJvIGNvbXBsZXRhbWVudGUgZGVkaWNhZG8gYW8gVmltLiBFc3BlY2lhbG1lbnRlIPp0aWwKICBwYXJhIGluaWNpYW50ZXMsIGNvbSBtdWl0b3MgZXhlbXBsb3MgZSBpbHVzdHJh5/Vlcy4KICBWZWphIGh0dHA6Ly9pY2NmLWhvbGxhbmQub3JnL2NsaWNrNS5odG1sCgogIEVzc2UgbGl2cm8g6SBtYWlzIGFudGlnbyBlIG1haXMgc29icmUgbyBWaSBkbyBxdWUgc29icmUgbyBWaW0sIG1hcyB0YW1i6W0g6QogIHJlY29tZW5kYWRvOgogICAgICAgTGVhcm5pbmcgdGhlIFZpIEVkaXRvciAtIGRlIExpbmRhIExhbWIKICAgICAgIEVkaXRvcmE6IE8nUmVpbGx5ICYgQXNzb2NpYXRlcyBJbmMuCiAgRXN0ZSDpIHVtIGJvbSBsaXZybyBwYXJhIGFwcmVuZGVyIHF1YXNlIHR1ZG8gbyBxdWUgdm9j6iBxdWVyIGZhemVyIGNvbSBvIFZpLgogIEEgc2V4dGEgZWRp5+NvIHRhbWLpbSBpbmNsdWkgaW5mb3JtYef1ZXMgc29icmUgbyBWaW0uCgogIEVzdGUgdHV0b3JpYWwgZm9pIGVzY3JpdG8gcG9yIE1pY2hhZWwgQy4gUGllcmNlIGUgUm9iZXJ0IEsuIFdhcmUsCiAgQ29sb3JhZG8gU2Nob29sIG9mIE1pbmVzLCB1c2FuZG8gaWTpaWFzIGZvcm5lY2lkYXMgcG9yIENoYXJsZXMgU21pdGgsCiAgQ29sb3JhZG8gU3RhdGUgVW5pdmVyc2l0eS4gIEUtbWFpbDogYndhcmVAbWluZXMuY29sb3JhZG8uZWR1LgoKICBNb2RpZmljYWRvIHBhcmEgbyBWaW0gcG9yIEJyYW0gTW9vbGVuYWFyLgoKICBWZXJz428gMS40IHRyYWR1emlkYSBwYXJhIG8gcG9ydHVndepzIHBvciBNYXJjZWxvIERydWRpIE1pcmFuZGEsIEVzY29sYQogIFBvbGl06WNuaWNhIGRhIFVuaXZlcnNpZGFkZSBkZSBT428gUGF1bG8uCgogIFJldmlz428gZSBhdHVhbGl6YefjbyBkYSB0cmFkdefjbyBwYXJhIGEgdmVyc+NvIDEuNyBwb3IgSmFrc29uIEFxdWlubywKICBVbml2ZXJzaWRhZGUgRmVkZXJhbCBkbyBDZWFy4TogRS1tYWlsOiBqYWx2ZXNhcUBnbWFpbC5jb20KCiAgTGFzdCBDaGFuZ2U6IDIwMTAgSnVsIDI3Cgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4K