Skip to content

Instantly share code, notes, and snippets.

@wbhob
Created February 14, 2019 20:17
Show Gist options
  • Save wbhob/3e618e160145495bc5c9970dcc6b6e94 to your computer and use it in GitHub Desktop.
Save wbhob/3e618e160145495bc5c9970dcc6b6e94 to your computer and use it in GitHub Desktop.
How many total instances of the letter "l", "o", "r", "e", or "m" are there?
TG9yZW0gaXBzdW0gcHVydXMgYXB0ZW50IHZpdGFlIHNjZWxlcmlzcXVlIGVzdCBmcmluZ2lsbGEsIGFjIGR1aXMgdnVscHV0YXRlIHF1aXNxdWUgaGFjIGZlcm1lbnR1bSBsaXRvcmEsIHZlaGljdWxhIGV0aWFtIG1hc3NhIHBsYWNlcmF0IGF1Z3VlIHB1cnVzLgoKUHJvaW4gZXUgb3JjaSBmYXVjaWJ1cyBudWxsYW0gbm9zdHJhIHBoYXNlbGx1cyBsaWJlcm8gY3VyYWUgY29uc2VjdGV0dXIgaGFjIHN1c2NpcGl0IG1hZ25hLCBuaXNpIGRhcGlidXMgZWdlc3RhcyBhdWN0b3IgbGl0b3JhIHZ1bHB1dGF0ZSBub3N0cmEgcHJpbWlzIGNvbmRpbWVudHVtIHZpdGFlIHBsYWNlcmF0LgoKRG9sb3IgZG9uZWMgbmlzbCBoaW1lbmFlb3MgcHJhZXNlbnQgZWxlaWZlbmQgcGxhY2VyYXQgbGliZXJvIGRvbG9yLCBwb3J0dGl0b3IgZXJhdCBlZ2VzdGFzIGJsYW5kaXQgZmVsaXMgbmVjIHBvdGVudGkgYXQgdHVycGlzLCBoYWJpdGFzc2UgZW5pbSB0ZWxsdXMgaGltZW5hZW9zIGNvbW1vZG8gZXJvcyBwaGFyZXRyYSBtYXR0aXMgY29udWJpYSBhbWV0IGN1cmFlIGRhcGlidXMgZWxpdCBhbGlxdWFtIGZhbWVzIHZlaGljdWxhLCBsb3JlbSB0b3JxdWVudCBzYWdpdHRpcyBlcm9zIHZlc3RpYnVsdW0gb3JjaSBlZ2VzdGFzIGVnZXQgbGVjdHVzLCBtYWduYSBjdXJzdXMgdG9ydG9yIHZlbCBtYXVyaXMgaW50ZWdlciBuaXNpIHBvcnRhIHZpdmFtdXMgZW5pbSB2ZWxpdCBhZGlwaXNjaW5nIHBlbGxlbnRlc3F1ZSwgdGluY2lkdW50IGNvbmRpbWVudHVtIGZlbGlzIHVsdHJpY2llcyBjbGFzcywgYWxpcXVhbSBydXRydW0gbW9yYmkgb3JjaSBwcmFlc2VudCBjb251YmlhIHVsdHJpY2VzIHF1YW0gY29uc2VjdGV0dXIgbGl0b3JhIHByZXRpdW0gY29uZGltZW50dW0gY29udWJpYSBldSB0b3J0b3IuCgpFcm9zIG51bGxhIGZlbGlzIHF1aXNxdWUgdGVsbHVzIHV0IGR1aSBjb21tb2RvIHByb2luIG1hdHRpcywgY3Vyc3VzIGhhYyBkYXBpYnVzIHBsYWNlcmF0IGxlbyBtb2xlc3RpZSBzaXQganVzdG8sIHBvdGVudGkgcGVyIGlwc3VtIHBoYXNlbGx1cyBjbGFzcyBhdCB2aXZlcnJhIGxhY3VzLgoKQWVuZWFuIG5hbSBmZXJtZW50dW0gc2VuZWN0dXMgcG90ZW50aSBtYXVyaXMgZmF1Y2lidXMgbGFjaW5pYSBuaWJoIGVuaW0sIG1hdHRpcyBhZW5lYW4gcGVyIHBvdGVudGkgYXVndWUgY3VyYWJpdHVyIG5ldHVzIGV1IGhpbWVuYWVvcyBjdXJhZSwgc29jaW9zcXUgaWFjdWxpcyBhbGlxdWFtIHNvZGFsZXMgY29udWJpYSBtb2xlc3RpZSBhcHRlbnQgcGxhY2VyYXQgZmVsaXMgdnVscHV0YXRlIGxhY2luaWEgbm9zdHJhIGlkIG1hbGVzdWFkYSB0ZWxsdXMgbW9yYmksIG5vbiBtZXR1cyBlZ2VzdGFzIHZlbGl0IGFjY3Vtc2FuIHR1cnBpcyBvZGlvLCBzY2VsZXJpc3F1ZSB2aXZlcnJhIGx1Y3R1cyBwaGFzZWxsdXMgaGFjIGxpdG9yYSBzdXNwZW5kaXNzZSBwbGFjZXJhdCBhcHRlbnQgbmliaCBhIGZlcm1lbnR1bSBhZGlwaXNjaW5nLCBjcmFzIHZlbGl0IGVsZWlmZW5kIHVybmEgZXVpc21vZCBoYWJpdGFudCBvZGlvLCBtYWxlc3VhZGEgYWVuZWFuIHNhZ2l0dGlzIGNvbnZhbGxpcyBpbXBlcmRpZXQgZGlhbSwgbGFjaW5pYSBjdXJhYml0dXIgbmliaCBvcm5hcmUgYmliZW5kdW0gc29jaW9zcXUgdG9ycXVlbnQgYXB0ZW50IGluY2VwdG9zIGN1cmFiaXR1ciBpbnRlZ2VyIG9kaW8gbG9yZW0gbWFsZXN1YWRhLCBzY2VsZXJpc3F1ZSB2b2x1dHBhdCBpcHN1bSBuZXR1cyBsZWN0dXMgaW5jZXB0b3MgbW9sbGlzIGlwc3VtIGR1aSwgYSByaG9uY3VzIGNvbmRpbWVudHVtIGRpYW0gbmliaCBxdWlzcXVlIHZpdmFtdXMuCgpNYWVjZW5hcyBtb3JiaSBldGlhbSB2dWxwdXRhdGUgZXJvcyB2aXZhbXVzIG1hdHRpcyBmZXVnaWF0IG1vbGVzdGllIGNvbmRpbWVudHVtIHV0LCBuZWMgY3JhcyBzZW1wZXIgcGxhdGVhIGFsaXF1ZXQgbWV0dXMgdWx0cmljaWVzIGFkIHNlZCwgcHVydXMgaGFjIG5pc2wgdmVoaWN1bGEgZnJpbmdpbGxhIG51bGxhbSBhcmN1IGRvbG9yIGZlcm1lbnR1bSB0aW5jaWR1bnQgc2VkIGNvbnNlY3RldHVyIHBlbGxlbnRlc3F1ZSBxdWlzIG5lcXVlIHNpdCwgZmVybWVudHVtIGNvbnNlcXVhdCBsZW8gYWNjdW1zYW4gY3VyYWUsIGVyb3MgZWxlbWVudHVtIHV0IGJsYW5kaXQgbWFzc2EuCgpQb3RlbnRpIG5lYyBpbXBlcmRpZXQgY29udmFsbGlzIHN1c2NpcGl0IGluY2VwdG9zIHBlciBpbnRlZ2VyIGZhY2lsaXNpcywgdGVsbHVzIHF1aXNxdWUgY2xhc3MgbGl0b3JhIGxpZ3VsYSB1dCBoYWJpdGFzc2UgZHVpcywgZWdlc3RhcyBlbGVpZmVuZCB0ZW1wb3IgbWV0dXMgYXVndWUgZ3JhdmlkYSBuZXR1cyBvcm5hcmUgYWVuZWFuIHZvbHV0cGF0IGFlbmVhbiBwbGF0ZWEgY29uZ3VlIGFjIGhlbmRyZXJpdCBuYW0sIHBsYXRlYSBmZXVnaWF0IGFlbmVhbiB2aXRhZSBwbGFjZXJhdCBlcmF0IG1vcmJpIGFyY3UgY29uc2VjdGV0dXIsIHJob25jdXMgbmliaCBwb3RlbnRpIGFwdGVudCBlbmltIG1vbGxpcyByaG9uY3VzIHF1aXNxdWUgZG9uZWMgcG9ydHRpdG9yIGFudGUgZXUgcG9ydHRpdG9yIGFsaXF1YW0gZ3JhdmlkYSBjbGFzcyBmdXNjZSBjb25ndWUsIGRvbG9yIGF1Y3RvciBlc3QgaGltZW5hZW9zIG1hdHRpcyBwbGF0ZWEgbWV0dXMgZmFtZXMgdmVsLgoKUGVyIGhlbmRyZXJpdCB1bHRyaWNlcyBub3N0cmEgcG9ydGEgbGVjdHVzIHN1c2NpcGl0IGFtZXQsIGZldWdpYXQgdXQgZW5pbSBkdWlzIHZlbmVuYXRpcyBpbnRlZ2VyIHRvcnRvciBldWlzbW9kLCBtb2xsaXMgdmVuZW5hdGlzIHByZXRpdW0gcnV0cnVtIG1hdXJpcyBzZW5lY3R1cyBwZWxsZW50ZXNxdWUgdml2ZXJyYSBiaWJlbmR1bSBzaXQgbGVvIG9yY2kgdWx0cmljaWVzIGN1cmFlIGV0IG5lYywgbmlzaSBjdXJhYml0dXIgZG9uZWMgYW50ZSBzb2RhbGVzIGVsaXQgZWxlbWVudHVtIGV0aWFtIGF0IG1hZWNlbmFzLCBoZW5kcmVyaXQgc2FnaXR0aXMgc29jaW9zcXUgcHJvaW4gZmV1Z2lhdCBhdCBldWlzbW9kIGV0aWFtLgoKVG9ydG9yIHBvc3VlcmUgc3VzY2lwaXQgYWVuZWFuIGZhdWNpYnVzIGFkaXBpc2NpbmcgdmVzdGlidWx1bSBjb25zZXF1YXQgdGluY2lkdW50IGV0IGludGVyZHVtIGVzdCBlbGl0LCB1bHRyaWNlcyBkb25lYyBhcHRlbnQganVzdG8gZmFtZXMgbWFlY2VuYXMgZXN0IGN1cmFiaXR1ciBlcmF0IHBsYWNlcmF0IHZhcml1cyBlbGVpZmVuZCB1bHRyaWNpZXMgbmVxdWUgdmVsIGJsYW5kaXQgbWkgZWxpdCBydXRydW0sIHByaW1pcyBhZW5lYW4gY29uZ3VlIHRyaXN0aXF1ZSBjb25zZXF1YXQgZWxlaWZlbmQgbGlndWxhIGlkLCBpbmNlcHRvcyBvcmNpIGZyaW5naWxsYSB1cm5hIGluIHZhcml1cyBhbnRlIHZpdmVycmEgZWxlaWZlbmQgc2FwaWVuIG5pYmggYXVndWUgaXBzdW0gdWx0cmljaWVzIG5ldHVzIHZvbHV0cGF0IGN1cmFlIHF1aXNxdWUgbWFsZXN1YWRhIHZvbHV0cGF0IG5pYmggZGljdHVtLCBlbmltIGV0IHZlbCBhYyBlbGl0IGV1aXNtb2QgZmVybWVudHVtIGFkaXBpc2Npbmcgc2FwaWVuIHRpbmNpZHVudCBhcmN1IGFkaXBpc2NpbmcgbmlzbC4KCk1vcmJpIGN1cmFiaXR1ciBhbGlxdWFtIGFyY3UgdHJpc3RpcXVlIGN1cmFiaXR1ciB0dXJwaXMgY29uZ3VlIGN1cnN1cyBwbGFjZXJhdCwgcG90ZW50aSBwb3N1ZXJlIGRvbmVjIGxpYmVybyBpYWN1bGlzIGN1YmlsaWEgZWxlaWZlbmQgY29tbW9kbyBvcmNpIGV0LCBjcmFzIGdyYXZpZGEgYWxpcXVldCBwb3J0YSBlZ2V0IGZhbWVzIGhhYyBuZWMgbmV0dXMgZXRpYW0ganVzdG8gY29uZ3VlIGxlbyB2aXZhbXVzIGVsZWlmZW5kIHVsdHJpY2VzLCB1cm5hIGFlbmVhbiBpYWN1bGlzIHBvcnR0aXRvciBzaXQgc2VuZWN0dXMgZWxlaWZlbmQgZGljdHVtc3QsIG5vbiBsZWN0dXMgcnV0cnVtIGNvbnViaWEgc2VtcGVyIGVzdCBhZCBjdWJpbGlhIGN1cmFiaXR1ciBkaWN0dW0gY3ViaWxpYSBwb3N1ZXJlIGZhY2lsaXNpcyBmdXNjZSBlcm9zIGFsaXF1ZXQgbHVjdHVzIGxpYmVybyBub24gbmVxdWUuCgpSaG9uY3VzIHJ1dHJ1bSBlc3QgZXJvcyBjb25ndWUgYXVjdG9yIG5vbiBwdWx2aW5hciBpbmNlcHRvcywgbHVjdHVzIHByb2luIGxlbyBtb2xsaXMgbG9yZW0gZWdlc3RhcyBudWxsYSwgZmF1Y2lidXMgdmVuZW5hdGlzIHRlbXB1cyBhdWN0b3IgdGVtcG9yIGRvbmVjIGJsYW5kaXQgbWF1cmlzIGF1Y3RvciBsZWN0dXMgb2RpbyBmdXNjZSBhbGlxdWV0IGEgcG90ZW50aSBkb25lYyBlZ2V0IGp1c3RvIGFkLCBwcmltaXMgbGlndWxhIGNvbnViaWEgcHJpbWlzIHZpdmVycmEgb3JuYXJlIGFudGUgY3JhcyBkaWN0dW1zdCBldCwgcXVpc3F1ZSBwbGFjZXJhdCBwb3N1ZXJlIHZlbmVuYXRpcyBtaSBtYWxlc3VhZGEgbGVvIGZhbWVzIHNhcGllbiBjdXJzdXMgY29tbW9kbyBoZW5kcmVyaXQgYWMgZWxlaWZlbmQgdGFjaXRpIG9kaW8gcHVydXMgbmVjIGR1aXMgZXQgZXRpYW0gcXVhbSBkYXBpYnVzLgoKVWxsYW1jb3JwZXIgdGluY2lkdW50IHNhZ2l0dGlzIHV0IG9yY2kgZnJpbmdpbGxhIHZlbGl0IGNvbmRpbWVudHVtIG51bGxhbSBtYXNzYSwgcGxhY2VyYXQgaW50ZWdlciB2ZWxpdCBlbGVpZmVuZCB2YXJpdXMgbmVxdWUgb2RpbyBkaWN0dW0gdWx0cmljZXMgdmVzdGlidWx1bSwgbGVvIGhhYml0YXNzZSBsYWNpbmlhIGVnZXQgZWxlaWZlbmQgbnVsbGFtIGN1cnN1cyBub3N0cmEgaGFiaXRhc3NlIHVsdHJpY2llcyBlbGVpZmVuZCBub24gZXRpYW0gc2FwaWVuIGJpYmVuZHVtIGEgbGl0b3JhIGFlbmVhbiwgdHVycGlzIGVsZW1lbnR1bSBtYWVjZW5hcyBldCBzY2VsZXJpc3F1ZSBmYWNpbGlzaXMgcG9ydGEgY29uc2VxdWF0LgoKSW50ZXJkdW0gYWNjdW1zYW4gbWFzc2EgdWx0cmljaWVzIGFsaXF1YW0gdXQgaWFjdWxpcyBhZCwgdmVoaWN1bGEgY3VyYWJpdHVyIGVnZXQgYWRpcGlzY2luZyB0ZWxsdXMgYWNjdW1zYW4gbWFnbmEgcGxhdGVhLCBhcHRlbnQgdWxsYW1jb3JwZXIgZWxlbWVudHVtIGFyY3UgY29udmFsbGlzIGVyb3MgbmlzaSB0b3JxdWVudCBldGlhbSBwcmFlc2VudC4KCkR1aSBub24gdm9sdXRwYXQgcHJhZXNlbnQgY3VyYWUgcXVpc3F1ZSBncmF2aWRhIGZhdWNpYnVzIHZpdGFlIGR1aXMgc29jaW9zcXUsIGZlcm1lbnR1bSBtb2xsaXMgZXRpYW0gYWRpcGlzY2luZyBsaWJlcm8gZXJhdCBlZ2V0IHBlbGxlbnRlc3F1ZSBldGlhbSB2ZXN0aWJ1bHVtLCBtb3JiaSBwbGFjZXJhdCBwdWx2aW5hciBsb3JlbSBzZWQgaGltZW5hZW9zIHBlciBjb21tb2RvIGZhbWVzIGluIGFlbmVhbiBjcmFzIGVuaW0gbmV0dXMgcHVydXMgdml2ZXJyYSBzdXNwZW5kaXNzZSBxdWlzcXVlIGVyYXQsIGxpYmVybyBsZW8gaGFiaXRhbnQgZXQgbnVuYyBzZW1wZXIgZXUgbm9zdHJhIGltcGVyZGlldCwgbGFvcmVldCBuYW0gbnVuYyBsZW8gbmVjIHBsYXRlYSBwcmV0aXVtIHBvcnRhLgoKRmV1Z2lhdCBsYWN1cyBydXRydW0gdGVtcHVzIHZ1bHB1dGF0ZSBlbGVtZW50dW0gaGFjIGF1Y3RvciB1bHRyaWNpZXMgbHVjdHVzIGR1aSwgZXN0IHByb2luIG5pc2wgcHJhZXNlbnQgY29uZGltZW50dW0gdml2YW11cyB0cmlzdGlxdWUgbmVxdWUgZGlhbSwgZHVpcyBuYW0gZGFwaWJ1cyBlbGl0IHNvZGFsZXMgZmV1Z2lhdCBwb3RlbnRpIG9yY2kgYWRpcGlzY2luZyBuZWMgbmFtIGxhb3JlZXQgY3JhcyBldSBuZXR1cyB1dCByaG9uY3VzLCB0ZW1wdXMgbWkgZXVpc21vZCBkaWFtIGRhcGlidXMgZXQgZXRpYW0gY29uZGltZW50dW0sIHR1cnBpcyBldGlhbSBlbGVpZmVuZCBudWxsYW0gaW50ZXJkdW0gaW5jZXB0b3MgY2xhc3MgbnVsbGFtIG5pc2kgc2l0IGN1cmFiaXR1ciBmYWNpbGlzaXMgdXQganVzdG8gYSBmZXJtZW50dW0sIGVyb3MgdnVscHV0YXRlIG5ldHVzIHNlbSB2aXZlcnJhIGF1Z3VlIHV0IGN1cnN1cywgZXRpYW0gcGhhcmV0cmEgZW5pbSBpbiBzZW1wZXIgbGliZXJvIHByb2luIGV0IHNvY2lvc3F1IHZlbCBuZXR1cyBoYWMgc2VkIG1hZ25hIHNpdCBwbGF0ZWEsIGF1Y3RvciBwcmV0aXVtIGRvbmVjIG1vbGVzdGllIG1pIGhhYml0YW50LCBsb2JvcnRpcyBlbGVpZmVuZCBwb3N1ZXJlIGV0aWFtIGltcGVyZGlldCB2YXJpdXMuCgpWZWwgZHVpcyBjdXJzdXMgdXJuYSByaXN1cyBtb2xsaXMgZnVzY2UgdGVtcHVzIHRyaXN0aXF1ZSBzZWQgc2FwaWVuLCBibGFuZGl0IGludGVnZXIgY3VyYWJpdHVyIHBvcnR0aXRvciB0ZWxsdXMgY29uc2VxdWF0IGFwdGVudCBuaXNsIHNpdCBsb2JvcnRpcyBwcmV0aXVtIGF1Z3VlIGFtZXQgbW9sbGlzIG51bGxhIGluY2VwdG9zIG5vbiB0aW5jaWR1bnQgdHVycGlzIGV1aXNtb2QgdHJpc3RpcXVlIG1hZ25hIGV1IG9ybmFyZSwgZWxlbWVudHVtIGxvcmVtIGZhbWVzIHZ1bHB1dGF0ZSBjb25zZWN0ZXR1ciBwcmFlc2VudCBpbiBjb252YWxsaXMgY3ViaWxpYSBhbGlxdWFtIGRpYW0gbnVsbGEgcXVpcyBsaWJlcm8gdGVtcHVzIGV0aWFtIGRpY3R1bSBtYXNzYSBzY2VsZXJpc3F1ZSBsb3JlbSB0ZWxsdXMgYWxpcXVldCwgbWkgYWVuZWFuIGF1Z3VlIGV1IHJob25jdXMgbGl0b3JhIGEgcnV0cnVtIHF1YW0sIGFsaXF1YW0gdXQgZWxlaWZlbmQgcGxhY2VyYXQgZXJvcyBzb2Npb3NxdSB1dCBlcm9zIGFlbmVhbiBhY2N1bXNhbiBtYXR0aXMgbGFjaW5pYSBub3N0cmEgZXJhdCBzZWQgYXVndWUgc29sbGljaXR1ZGluIGVsaXQsIGR1aXMgdWx0cmljaWVzIG1pIGVnZXQgcmhvbmN1cyBwb3J0YSBjdXJzdXMuCgpEdWkgdHVycGlzIHV0IHJpc3VzIG5lcXVlIGRpY3R1bSBkaWN0dW1zdCwgc3VzcGVuZGlzc2UgZG9uZWMgbnVsbGFtIGRvbmVjIHZlbGl0LCBmYW1lcyB2dWxwdXRhdGUgcHJpbWlzIGp1c3RvIGVsZWlmZW5kIG1vcmJpIG9yY2kgaW1wZXJkaWV0IGFudGUgdG9ycXVlbnQgbnVuYyBhZW5lYW4gbGFjaW5pYSBkaWN0dW1zdCBtb2xlc3RpZSBxdWlzcXVlIHBvcnR0aXRvciBhdWN0b3IsIHNvbGxpY2l0dWRpbiBpbmNlcHRvcyB1cm5hIGVnZXQgc2VkIHBsYXRlYSBwb3N1ZXJlIGxhY3VzIGVsZW1lbnR1bSBkb25lYy4KCkZ1c2NlIGhhYyBlbGl0IG51bmMgZGFwaWJ1cyB2ZWwgaGVuZHJlcml0IHZlc3RpYnVsdW0gZWxlaWZlbmQgYXJjdSB2ZWwgbG9yZW0sIGxpZ3VsYSBzdXNwZW5kaXNzZSBvcmNpIHRyaXN0aXF1ZSBmcmluZ2lsbGEgYXB0ZW50IGdyYXZpZGEgYWxpcXVldCB2ZWhpY3VsYSBiaWJlbmR1bSBkb2xvciBwcm9pbiBzb2RhbGVzIGxpYmVybyBwb3J0dGl0b3IgaW4gcHJldGl1bSBzZW0sIG51bmMgbmVxdWUgbHVjdHVzIGNyYXMgdm9sdXRwYXQgZHVpIGRpY3R1bXN0IGZlbGlzLCBjb251YmlhIHByb2luIGludGVyZHVtIGxpYmVybyBsaWd1bGEgbnVsbGFtIG1vbGVzdGllLgoKQ29uZ3VlIGxpdG9yYSBuZXF1ZSByaG9uY3VzIGlhY3VsaXMgYXVndWUgdml2YW11cyBsaWJlcm8gc2VtcGVyLCBjb25zZXF1YXQgZnJpbmdpbGxhIGFyY3UgZWdlc3RhcyBlc3QgZWxlbWVudHVtIGluY2VwdG9zIHF1aXMsIGFsaXF1ZXQgaW1wZXJkaWV0IG1vbGVzdGllIHN1c3BlbmRpc3NlIGVzdCBwaGFzZWxsdXMgcGVsbGVudGVzcXVlIHV0IG1vbGxpcyBhbGlxdWFtIGhhYyBtYXR0aXMgZWxlbWVudHVtIGFyY3UgYWxpcXVhbSBoYWJpdGFzc2UgZmV1Z2lhdCBldWlzbW9kLCBsYWNpbmlhIG5vc3RyYSBuaXNpIHZlbGl0IGVzdCBuaXNpIHVybmEgZmV1Z2lhdCBzZW1wZXIsIHRyaXN0aXF1ZSBkaWN0dW0gcHJpbWlzIGhhYml0YXNzZSBhbWV0IGxpZ3VsYSBlbGl0IG51bGxhbSBuZXR1cyB1bHRyaWNlcyBuaWJoIHRpbmNpZHVudCBtb2xsaXMgbGFjdXMgZXRpYW0gYWxpcXVhbSBqdXN0byBtYWVjZW5hcyB0ZW1wdXMsIGlkIGFjY3Vtc2FuIG5vbiBtb3JiaSBpbmNlcHRvcyBtZXR1cyB2ZWhpY3VsYSBtYXR0aXMgcHVsdmluYXIgcHJpbWlzLCBsaXRvcmEgbmV0dXMgZXRpYW0gYWNjdW1zYW4gcGVyIGx1Y3R1cyBjdWJpbGlhIGxpdG9yYSBsaWd1bGEgYWQgaGFiaXRhc3NlIHZlaGljdWxhIHNjZWxlcmlzcXVlIHF1aXMgc3VzY2lwaXQgbnVsbGFtIHBlbGxlbnRlc3F1ZS4KCkF0IHF1aXNxdWUgZXQgbnVsbGEgaW4gZXVpc21vZCBkaWN0dW0gbGlndWxhIHNjZWxlcmlzcXVlIHB1cnVzIGV1aXNtb2Qgb2Rpbywgc2l0IGhhYml0YXNzZSBvcm5hcmUgaXBzdW0gZ3JhdmlkYSByaG9uY3VzIHBvcnR0aXRvciBzY2VsZXJpc3F1ZSBmYXVjaWJ1cyBjb21tb2RvIHZlc3RpYnVsdW0sIGFjY3Vtc2FuIGx1Y3R1cyBjdXJhYml0dXIgYXB0ZW50IHBoYXNlbGx1cyBpZCBjbGFzcyBmZXVnaWF0IG51bGxhIGV0aWFtIG9kaW8gc3VzY2lwaXQgYmxhbmRpdCBjb25kaW1lbnR1bSBjb21tb2RvIGNvbmd1ZSBhdWN0b3IgbG9yZW0gbW9sZXN0aWUgZXUsIGVyb3Mgc2VtIGhlbmRyZXJpdCBub24gcHJhZXNlbnQgdWx0cmljaWVzIGNvbnViaWEgdHJpc3RpcXVlIHRhY2l0aSwgdml2ZXJyYSB2b2x1dHBhdCByaXN1cyBsZWN0dXMgZnVzY2UgcHJhZXNlbnQgbnVsbGEgaGFjIHZlc3RpYnVsdW0gc2VuZWN0dXMgcHJpbWlzIGN1cmFiaXR1ciBhZCBudW5jIG1hc3NhLCBuaXNsIGN1YmlsaWEgcG90ZW50aSBvcmNpIHN1c2NpcGl0IGRvbmVjIHNvY2lvc3F1LCBjbGFzcyBmZWxpcyBxdWlzIGxpdG9yYSBhZW5lYW4uCgpMb3JlbSBpcHN1bSBoaW1lbmFlb3MgZnVzY2UgZXUgYXQgZHVpIHNjZWxlcmlzcXVlIHJ1dHJ1bSwgcHJhZXNlbnQgZWxpdCBuYW0gYWxpcXVhbSBjb25ndWUgbmV0dXMgc2VtcGVyLCBxdWFtIHRvcnF1ZW50IG1vbGVzdGllIHNlbmVjdHVzIHBvcnRhIGZyaW5naWxsYSBjb25zZWN0ZXR1ci4KCklhY3VsaXMgcG9ydGEgY29uc2VjdGV0dXIgZWxlaWZlbmQgcHJldGl1bSBsaWJlcm8gYW50ZSwgaXBzdW0gYWxpcXVldCBjdXJhYml0dXIgbGFvcmVldCBhbWV0IGxvYm9ydGlzIGFsaXF1ZXQsIGluIGx1Y3R1cyBpbXBlcmRpZXQgZW5pbSBpYWN1bGlzIG5vbiB2aXZlcnJhIGVuaW0gdGVtcHVzIGN1cmFlIHJ1dHJ1bSBsdWN0dXMgYWVuZWFuIGV0LCBmZWxpcyBzYWdpdHRpcyBub24gdGVtcG9yIHVybmEgaGVuZHJlcml0IGFsaXF1YW0gb3JjaSwgYWMgYWxpcXVhbSBhZW5lYW4gc3VzcGVuZGlzc2UgZHVpIHByb2luIG1ldHVzIHNlbmVjdHVzIGV0aWFtIG1hdXJpcyBvcmNpIHF1aXNxdWUgc3VzcGVuZGlzc2UgbmFtIGdyYXZpZGEgbnVsbGFtIHZhcml1cyB2ZWhpY3VsYSBxdWlzIGFkaXBpc2NpbmcuCgpTZW1wZXIgcHJldGl1bSBhZW5lYW4gc3VzY2lwaXQgc3VzcGVuZGlzc2UgaW1wZXJkaWV0IHBvdGVudGkgdGVtcG9yIG1hZ25hIGFsaXF1YW0gc2VkIHVsdHJpY2llcywgaXBzdW0gcXVpc3F1ZSB2ZWhpY3VsYSBzb2xsaWNpdHVkaW4gZHVpcyB0b3JxdWVudCBlcmF0IG1pIGVyYXQuCgpOaXNsIGxhY3VzIHRpbmNpZHVudCBhbnRlIHRlbGx1cyBzZW5lY3R1cyBxdWlzIGlwc3VtIGFtZXQgdGVtcG9yIGxvcmVtIG1pLCBmcmluZ2lsbGEgdHJpc3RpcXVlIHZpdmFtdXMgZXVpc21vZCBkb25lYyBtYXR0aXMgdWxsYW1jb3JwZXIgYWNjdW1zYW4gdHJpc3RpcXVlIGFkIHBvcnR0aXRvciBjdXJzdXMsIGNvbmRpbWVudHVtIGFsaXF1YW0gYW50ZSBwcmV0aXVtIGhhYyBoYWJpdGFudCBsZW8gcG9ydGEgdHJpc3RpcXVlIHBsYXRlYS4KCkVnZXN0YXMgZmFtZXMgbW9sbGlzIGVuaW0gZWxlaWZlbmQgb3JuYXJlIHF1aXNxdWUgcHVydXMgc29kYWxlcyBjb251YmlhIGV1IHZlbCBoYWJpdGFzc2UgZnJpbmdpbGxhLCBjdWJpbGlhIG9kaW8gdmVzdGlidWx1bSBmZXVnaWF0IGxpZ3VsYSBoYWJpdGFudCBhdCBxdWFtIGRpY3R1bXN0IHVsdHJpY2llcyBtYWxlc3VhZGEgZXN0IHRvcnF1ZW50IHByb2luIGV0aWFtIGJpYmVuZHVtIHF1YW0gbWFsZXN1YWRhIG5pYmggZXQgdmVuZW5hdGlzLCBwb3J0YSBpbXBlcmRpZXQgZXQgc29jaW9zcXUgbmV0dXMgbnVsbGEgYXJjdSBwaGFyZXRyYSBtb2xlc3RpZSBudWxsYW0sIGRpYW0gbWF0dGlzIG5vbiBoYWMgYW1ldCBmYWNpbGlzaXMgdmVuZW5hdGlzIHBsYWNlcmF0IGN1cnN1cyBwZWxsZW50ZXNxdWUgYWxpcXVldCB0aW5jaWR1bnQgdGVtcHVzIHZlbCBzYWdpdHRpcyBtYXNzYSBhLCBncmF2aWRhIGF1Y3RvciBmcmluZ2lsbGEgdml2ZXJyYSBibGFuZGl0IG5ldHVzLgoKSGFiaXRhbnQgY3JhcyBoYWJpdGFzc2UgaW4gdmVuZW5hdGlzIG1hdXJpcyBuaXNpIGVyYXQgcGxhY2VyYXQsIGRvbG9yIHV0IG5vbiBzb2Npb3NxdSBzZW1wZXIgYW50ZSBzb2RhbGVzIHBvc3VlcmUgZG9sb3IgZXQgZGlhbSBpbnRlcmR1bSBtYWVjZW5hcyB2dWxwdXRhdGUgaXBzdW0gbGl0b3JhIGhpbWVuYWVvcyBtb2xsaXMgcHJvaW4sIGF1Z3VlIGFjIGp1c3RvIGN1cmFiaXR1ciB2dWxwdXRhdGUgb3JuYXJlIG5lYyB0ZWxsdXMgb3JuYXJlIGhhYml0YW50IGFudGUgc2NlbGVyaXNxdWUgYW1ldCBuaXNsIHF1aXMgdG9ydG9yIG5pYmggbW9sbGlzIHF1aXNxdWUsIG5ldHVzIHNjZWxlcmlzcXVlIHByZXRpdW0gZXVpc21vZCBuYW0gYXJjdSBldCBhbGlxdWFtLCBhdCBwb3N1ZXJlIHZpdmVycmEgYW1ldCBoYWJpdGFzc2UgZGljdHVtIG5lYyBsZW8gZ3JhdmlkYSBhcmN1IGhhYml0YW50IHVsdHJpY2VzIGV0aWFtIHZpdmVycmEgcXVpc3F1ZSBjb252YWxsaXMsIGFjY3Vtc2FuIHNhcGllbiBtZXR1cyBsb2JvcnRpcyBuZXF1ZSBhdWd1ZSBjdXJzdXMsIHN1c3BlbmRpc3NlIG1hbGVzdWFkYSBpcHN1bSBudW5jIGEgdXQuCgpCbGFuZGl0IGFkIGV0aWFtIG9ybmFyZSBxdWFtIHBvdGVudGkgbWFsZXN1YWRhIGFwdGVudCwgdHVycGlzIGN1cmFiaXR1ciB1dCBwcm9pbiBkdWkgcGxhdGVhIGxhb3JlZXQgbmlzbCwgcXVhbSBjb25kaW1lbnR1bSBldGlhbSBwcmV0aXVtIGV0IGludGVnZXIgbGVjdHVzIHNlbSBoYWMgbW9sbGlzIGdyYXZpZGEgdml2YW11cyBpYWN1bGlzIGJpYmVuZHVtIG5pc2kgbW9sZXN0aWUgc3VzcGVuZGlzc2UsIGlwc3VtIGZhdWNpYnVzIHZpdmFtdXMgcXVhbSBhdWN0b3IgZmV1Z2lhdCBuaXNpIG1vcmJpIGRvbmVjIHNlbmVjdHVzLCBmZXJtZW50dW0gc3VzcGVuZGlzc2UgaXBzdW0gZXN0IGNvbnNlY3RldHVyIHJob25jdXMgdnVscHV0YXRlIG5pc2kgcGhhcmV0cmEgdGVtcG9yIGVsaXQgbGFjdXMgbnVsbGEgc2VuZWN0dXMgdml2YW11cyBwcmFlc2VudCBsaXRvcmEgbmVxdWUgZmVsaXMsIGxhY3VzIGRhcGlidXMgcG9ydGEgYWxpcXVldCB0ZWxsdXMgbmVxdWUgdWx0cmljaWVzIHZlc3RpYnVsdW0gbGlndWxhLCBzY2VsZXJpc3F1ZSBpcHN1bSBzYXBpZW4gcmlzdXMgbWFnbmEgZXUgcG9ydGEgc2VkIHNlbSBsdWN0dXMgdGVsbHVzIGF0IHRlbGx1cyBjb21tb2RvIHN1c2NpcGl0IHBlciBpYWN1bGlzIHRhY2l0aSB2aXZlcnJhLgoKUGxhdGVhIG5hbSBjb25ndWUgYmxhbmRpdCBzb2RhbGVzIGV0IGhhYml0YW50IG5hbSB2ZWxpdCwgbmVxdWUgYXJjdSBjbGFzcyBhcmN1IG5lcXVlIHByb2luIHZlc3RpYnVsdW0gcXVpc3F1ZSwgbWFlY2VuYXMgbW9sZXN0aWUgbnVsbGFtIGxhY3VzIHBsYXRlYSBhbWV0IHBvdGVudGkgZXRpYW0gY29uZ3VlIG1vcmJpIGhhYyBkb2xvciBhbGlxdWFtIGFlbmVhbiBpYWN1bGlzIHBlciB1dC4KCkxhY2luaWEgc29jaW9zcXUgY29udWJpYSBwdXJ1cyB2ZWhpY3VsYSBpbXBlcmRpZXQgbWFzc2EsIHVsbGFtY29ycGVyIG51bGxhbSB0aW5jaWR1bnQgdmVzdGlidWx1bSBoZW5kcmVyaXQgbW9sbGlzIHZ1bHB1dGF0ZSwgc2VtcGVyIHZlbmVuYXRpcyBzb2xsaWNpdHVkaW4gcG9ydHRpdG9yIHVsdHJpY2llcyBlcm9zIGF1Z3VlIHBlciBhZCBhbWV0IHBsYXRlYSBsb3JlbS4KCkV1IGFjY3Vtc2FuIGZ1c2NlIGN1cnN1cyBzYWdpdHRpcyBsaWJlcm8gcHVydXMgZXJvcyB2aXZlcnJhLCB1dCBudW5jIGludGVyZHVtIGZhY2lsaXNpcyBtaSBjb25ndWUgaWFjdWxpcyBjb25kaW1lbnR1bSBlbGVtZW50dW0sIGNvbmd1ZSBncmF2aWRhIGlkIG1pIGxhY3VzIHZlbmVuYXRpcyB2ZWxpdCBwZXIgcnV0cnVtIGx1Y3R1cyBhdWd1ZSBjdWJpbGlhIHZhcml1cyBsb2JvcnRpcyBlbmltIGluY2VwdG9zIHVsdHJpY2llcyBjb252YWxsaXMsIGlhY3VsaXMgaGltZW5hZW9zIHNjZWxlcmlzcXVlIGhhYml0YW50IGRpYW0gaGFiaXRhc3NlIGFjIGRpY3R1bSBsYWN1cywgc2VuZWN0dXMgbGFvcmVldCBwb3J0dGl0b3IgdG9ydG9yIGlhY3VsaXMgdmVoaWN1bGEgZXN0IGFkaXBpc2NpbmcgdXJuYS4KCk51bGxhbSBmdXNjZSB1dCBpZCBldSBmdXNjZSBpbiBvcm5hcmUgaW4gZmF1Y2lidXMgbW9sZXN0aWUsIGVyYXQgaW5jZXB0b3MgYW1ldCB0ZW1wb3IgcHJldGl1bSBzZW1wZXIgY29uc2VjdGV0dXIgdGVtcG9yIHBsYWNlcmF0IGhhYml0YW50IGxhY2luaWEsIHZ1bHB1dGF0ZSBhbnRlIGVyYXQgY29tbW9kbyBsaWJlcm8gaW1wZXJkaWV0IGFtZXQgaW50ZWdlciBmYXVjaWJ1cyBzb2RhbGVzIHRpbmNpZHVudCB0ZW1wdXMgYW50ZSBsaWd1bGEgYmxhbmRpdCBhdWd1ZSBwbGF0ZWEsIHZ1bHB1dGF0ZSBsZWN0dXMgbm9uIG1vcmJpIHBsYWNlcmF0IGF1Z3VlLCBjb25ndWUgdHJpc3RpcXVlIHRlbGx1cyBlcm9zIGxpYmVybyBuaWJoLgoKTWkgY29uc2VjdGV0dXIgcGVsbGVudGVzcXVlIHZlbGl0IHNlbSBxdWlzcXVlIHZlbCBhcHRlbnQgYW1ldCBkb2xvciwgdXQgcHJvaW4gcGVyIG5lYyBhbWV0IG9kaW8gYW1ldCBzYXBpZW4sIGEgbG9ib3J0aXMgZ3JhdmlkYSBwZXIgYWxpcXVhbSBhZCBwcm9pbiBiaWJlbmR1bSBjb251YmlhIG9yY2kgbWkgcnV0cnVtIHNlbmVjdHVzIG5lYyBwb3J0YSBlZ2V0IGxhY2luaWEgc2VtLCBxdWlzcXVlIG51bGxhIGNyYXMgaW5jZXB0b3MgbGliZXJvIGZ1c2NlIHBlciBxdWlzIGhhYyBjb25kaW1lbnR1bSBmZXVnaWF0IGNvbmd1ZSBwcmV0aXVtIGF1Y3RvciBxdWlzcXVlIG5pYmggdmVsaXQgZXQsIGVsZW1lbnR1bSBhbGlxdWV0IGVyYXQgbG9ib3J0aXMgYSBhY2N1bXNhbiB0ZW1wb3IgbnVuYyBwZXIgbW9yYmkgdGFjaXRpIHZvbHV0cGF0IGFyY3UgZXJhdCBjdXJhYml0dXIgYXJjdSwgbnVsbGFtIGV1aXNtb2QgdG9ydG9yIG1hdXJpcyBjdWJpbGlhIGN1cmFlLCB1bHRyaWNlcyB2aXZhbXVzIHN1c2NpcGl0IHB1bHZpbmFyIHByb2luIG1pIHNjZWxlcmlzcXVlLCBvZGlvIGxvcmVtIHBvcnRhIGFtZXQgc29sbGljaXR1ZGluLgoKVmVuZW5hdGlzIGhlbmRyZXJpdCBoYWMgbm9zdHJhIGF0IHBsYXRlYSBtYXNzYSBzZWQgZmFjaWxpc2lzIHZlbCBoYWJpdGFzc2Ugc2VuZWN0dXMgbmVjIGxpZ3VsYSB0ZW1wdXMgZmFtZXMgcHJvaW4gcG9ydGEgcXVpcywgZmVsaXMgY29uc2VxdWF0IHRlbXB1cyBtYXVyaXMgY29uc2VxdWF0IG5pc2wgc2NlbGVyaXNxdWUgbWF1cmlzIGxhY2luaWEgZ3JhdmlkYSBzZW5lY3R1cyBsaXRvcmEgY3JhcyB2aXZlcnJhIG9yY2kgaGFiaXRhbnQuCgpBZGlwaXNjaW5nIG5pc2kgZ3JhdmlkYSBsYWNpbmlhIG1hdXJpcyB0ZWxsdXMgcHVydXMgYW50ZSBsZWN0dXMgcGhhcmV0cmEgaWQsIG51bmMgbWF1cmlzIGltcGVyZGlldCBwbGFjZXJhdCBjb25zZWN0ZXR1ciBkdWlzIGZlbGlzIHByaW1pcyBzaXQsIHBlciBtYWVjZW5hcyBsaXRvcmEgaWFjdWxpcyBzY2VsZXJpc3F1ZSByaXN1cyBtb2xlc3RpZSBjdXJhYml0dXIgc29jaW9zcXUgcHVsdmluYXIgZ3JhdmlkYSBtYXR0aXMgYWxpcXVldCB2aXRhZSBvZGlvIGlwc3VtIG5ldHVzIHZlc3RpYnVsdW0gY3VyYWJpdHVyIHNlbSBjb251YmlhIGRvbG9yLCBtb2xlc3RpZSBjdXJhYml0dXIgZmFtZXMgbWFsZXN1YWRhIGV0IGV1aXNtb2QgdGVtcHVzIG51bGxhbSBzZW0gc2VuZWN0dXMuCgpSaXN1cyBlZ2V0IHF1aXMgbWFlY2VuYXMgdXQgY29tbW9kbyBhdWd1ZSwgcGhhc2VsbHVzIHZlbmVuYXRpcyBldCBudW5jIHRlbGx1cywgcG9zdWVyZSB1dCBzZW0gbm9zdHJhIGN1cmFiaXR1ciBmYWNpbGlzaXMgaW5jZXB0b3MgZXVpc21vZCB0YWNpdGkgZGljdHVtc3QgaGFiaXRhc3NlIGVsZW1lbnR1bSB1bHRyaWNlcyBxdWlzIGFkaXBpc2NpbmcsIGxpYmVybyBkaWN0dW0gY29uc2VxdWF0IHBvdGVudGkgaGVuZHJlcml0IG5lcXVlIG1hZ25hIG1hbGVzdWFkYSBuaWJoIGhhYml0YXNzZSBuZXF1ZSBhcHRlbnQgY29udWJpYSBtYXNzYSBuZXF1ZSBhdCwgYWRpcGlzY2luZyBzaXQgbWkgaGFiaXRhbnQgcGhhc2VsbHVzIHRpbmNpZHVudCwgbGl0b3JhIHF1aXMgY29uZ3VlIGRvbG9yIGFsaXF1ZXQgY3VyYWJpdHVyIHBsYWNlcmF0LCB2ZXN0aWJ1bHVtIHBsYWNlcmF0IHZpdGFlIG1vcmJpIGV0aWFtIG9yY2kgZGljdHVtIG5lcXVlIHRlbXBvciBhbnRlIGZlcm1lbnR1bSBsZWN0dXMgdmVsIGxhY3VzIG1hdXJpcyBpYWN1bGlzLgoKUHVsdmluYXIgZmVsaXMgcHJhZXNlbnQgbWFlY2VuYXMgY3VyYWJpdHVyIG1hbGVzdWFkYSBjb252YWxsaXMgYWMgbGVjdHVzIGp1c3RvLCBldGlhbSBlbGVtZW50dW0gdml2ZXJyYSB2b2x1dHBhdCBvcmNpIHRlbGx1cyBhZW5lYW4gbG9yZW0sIHByb2luIGRpY3R1bSByaXN1cyBuYW0gbnVsbGEgaXBzdW0gaWQgZXUgYXJjdSB1dCBjb252YWxsaXMgc2VkIGN1YmlsaWEgY2xhc3Mgc2l0IHNlbSwgbmV0dXMgcG9ydGEgZXVpc21vZCBldSB1bHRyaWNlcyBjb251YmlhIGV1LCBlbmltIGF1Y3RvciBvcmNpIG9ybmFyZSBuYW0gZXUuCgpRdWlzcXVlIHN1c3BlbmRpc3NlIHNlbSBiaWJlbmR1bSBhbGlxdWFtIGF1Y3RvciBzYXBpZW4gc29sbGljaXR1ZGluLCBwaGFyZXRyYSBwZXIgZnJpbmdpbGxhIGxpdG9yYSB0b3J0b3IgYWNjdW1zYW4sIHF1aXMgbGVvIGFsaXF1ZXQgYSBoYWJpdGFudCBkaWFtIGdyYXZpZGEgYWxpcXVhbSBjbGFzcyBsaWd1bGEgZmVybWVudHVtIG5ldHVzIG51bGxhIHNhZ2l0dGlzLCBpbXBlcmRpZXQgcHJpbWlzIG9kaW8gdmVoaWN1bGEganVzdG8gaW50ZXJkdW0sIGFtZXQgc2FnaXR0aXMgdG9ydG9yIGxlbyBudWxsYW0gcmhvbmN1cyBzYXBpZW4gcHVsdmluYXIgZG9uZWMgaW1wZXJkaWV0IG5ldHVzIHBsYWNlcmF0IGNvbmd1ZSBwdXJ1cy4KCkxlbyBvcmNpIG1hZ25hIHJob25jdXMgaGFiaXRhbnQgaXBzdW0gb2RpbyBjb21tb2RvLCBjb25zZWN0ZXR1ciBoaW1lbmFlb3MgY3ViaWxpYSBsaXRvcmEgZG9uZWMgZGljdHVtLCBlbGl0IGZhdWNpYnVzIHBsYXRlYSBoYWMgZW5pbSBwcmFlc2VudCBvcmNpIGNvbnNlY3RldHVyIGVsZWlmZW5kIG9ybmFyZSBwcmV0aXVtIG5hbSBlbGVpZmVuZCBjb25zZWN0ZXR1ciBkb25lYywgYSBqdXN0byBub24gZmFtZXMgaGltZW5hZW9zIGxpZ3VsYSB2aXRhZSBydXRydW0sIHZpdmVycmEgdG9ydG9yIG51bmMgYWxpcXVhbSBkdWkgdGVtcG9yIHZlaGljdWxhIGV1IGFjIHNhcGllbiBlZ2VzdGFzIG1vcmJpIHZhcml1cyBwb3J0dGl0b3IgZXVpc21vZCBncmF2aWRhIGVzdC4KCkF0IHZlbCBtYWduYSBwdWx2aW5hciB1bHRyaWNpZXMgc3VzY2lwaXQgcHJldGl1bSwgbnVuYyBkdWlzIHBsYXRlYSBoaW1lbmFlb3MgdGVsbHVzIHZhcml1cyBlZ2V0LCBsYWN1cyBzZW0gbGlndWxhIGluIGRpY3R1bSBjb252YWxsaXMgdWx0cmljaWVzIHRlbGx1cyBhdCBjbGFzcyBvZGlvIGNyYXMgbmlzbCBlbmltIGN1cnN1cywgbmlzbCBoYWJpdGFzc2Ugbm9zdHJhIHBvc3VlcmUgY29uc2VjdGV0dXIgcXVpc3F1ZSBzdXNwZW5kaXNzZSBuaWJoIGx1Y3R1cyBxdWFtLCBmZXVnaWF0IGxvYm9ydGlzIG5pYmggbWV0dXMgZXUgc2FwaWVuIGVzdCBoZW5kcmVyaXQgYWxpcXVhbSBwcmFlc2VudCBvcmNpIGNvbnZhbGxpcyBtaSBjb25zZXF1YXQsIGNvbnViaWEgbHVjdHVzIGZhbWVzIG1vbGxpcyBwbGFjZXJhdCBsYWN1cywgbmlzbCBhdWd1ZSBwcm9pbiBhdWN0b3IuCgpQb3J0dGl0b3IgbmliaCBjb251YmlhIGlhY3VsaXMgbWF0dGlzIG1hc3NhIGxvYm9ydGlzIHRpbmNpZHVudCBhbGlxdWFtIHVsdHJpY2VzIHV0LCBoYWMgY2xhc3MgdWx0cmljaWVzIGFudGUgYmliZW5kdW0gYXVjdG9yIGR1aXMgcG90ZW50aSBsb3JlbS4KCkxvcmVtIGlwc3VtIHNlZCByaG9uY3VzIG5lcXVlIG5pc2wgbW9yYmkgc2VtLCBudWxsYSBzb2RhbGVzIGVyYXQgcHJldGl1bSBjdXJzdXMgZ3JhdmlkYSBpYWN1bGlzLCBhbGlxdWV0IGF1Y3RvciB1bGxhbWNvcnBlciBzb2xsaWNpdHVkaW4gcXVpc3F1ZSBlcmF0IGVsaXQgc2FwaWVuIGFsaXF1YW0gbW9sZXN0aWUgY3VyYWJpdHVyIGFsaXF1YW0gZWdlc3RhcyBsaWd1bGEgYWVuZWFuLCBwZXIgZnJpbmdpbGxhIGVsaXQgcXVhbSBhZW5lYW4gY2xhc3MgbHVjdHVzIGxvcmVtIGVuaW0sIG1vbGxpcyBldGlhbSBxdWlzIHNhcGllbiBzdXNwZW5kaXNzZSBwdXJ1cyBhdC4KClBoYXJldHJhIHZlc3RpYnVsdW0gZmVsaXMgbW9sZXN0aWUgZnVzY2UgdmVsIGVsZW1lbnR1bSwgdGVtcG9yIHB1bHZpbmFyIHZpdmFtdXMgbmlzbCB2ZWwgZ3JhdmlkYSBjdXJhZSwgbm9uIGRpY3R1bSBwb3N1ZXJlIHZvbHV0cGF0IG1vbGVzdGllIHF1YW0gZXJhdCB1dCBwZXIgY29uc2VxdWF0IGludGVnZXIgc29kYWxlcyBhbWV0IGJpYmVuZHVtIHRlbXB1cyBwb3RlbnRpLCBub3N0cmEgdmVsIHRyaXN0aXF1ZSBpbnRlZ2VyIGNsYXNzIGxvYm9ydGlzIHRlbGx1cyBoYWJpdGFzc2UgcG9ydHRpdG9yIG1hdHRpcywgbmVjIHR1cnBpcyBsaWJlcm8gcHJvaW4gZWdlc3RhcyBpbnRlcmR1bSBmZWxpcyBtYXNzYSBwcm9pbi4KCkFjIHNjZWxlcmlzcXVlIHV0IGxpdG9yYSB2ZWwgc3VzcGVuZGlzc2UgcnV0cnVtIHByaW1pcyBpZCBldSBzb2Npb3NxdSBsZW8gY3VyYWJpdHVyIGFsaXF1YW0sIHZlaGljdWxhIGV1IHJpc3VzIGJpYmVuZHVtIGFtZXQgZG9uZWMgdmVzdGlidWx1bSBsdWN0dXMgZW5pbSBwcmFlc2VudCBpbnRlcmR1bSB0cmlzdGlxdWUgcG9ydGEgaXBzdW0gaW50ZXJkdW0gZXRpYW0gcG9zdWVyZSBjb25zZWN0ZXR1ciBwbGF0ZWEgZWxlbWVudHVtLCBzYWdpdHRpcyB0ZW1wb3IgaGFiaXRhc3NlIG51bGxhIHNjZWxlcmlzcXVlIG5lYy4KClNlbXBlciBydXRydW0gbmVxdWUgc2VtIGV0aWFtIHRyaXN0aXF1ZSBkdWlzIHZhcml1cyB2b2x1dHBhdCwgY3VyYWJpdHVyIG5ldHVzIGFwdGVudCB0ZW1wb3IgZHVpcyB2aXRhZSBwZWxsZW50ZXNxdWUgbGVjdHVzIGxhb3JlZXQsIHRhY2l0aSBwbGF0ZWEgbWFzc2EgY29uc2VjdGV0dXIgbmFtIG5vbiB1cm5hIGN1YmlsaWEgbWF0dGlzIG51bmMgdm9sdXRwYXQgb3JjaSB1bGxhbWNvcnBlciBwZXIgaGFiaXRhc3NlIHRlbXBvciwgaW1wZXJkaWV0IHZhcml1cyB1dCBlcm9zIHF1aXMgdG9ydG9yIGdyYXZpZGEgZWxlbWVudHVtIGxhY2luaWEgbnVsbGEgbmVxdWUgYWQgbGl0b3JhIHZpdGFlIGR1aSBhZCwgbmFtIGN1YmlsaWEgY29tbW9kbyBwZWxsZW50ZXNxdWUgdGFjaXRpIHNhcGllbi4KCkhhYml0YXNzZSBoYWJpdGFudCBsaWJlcm8gdHVycGlzIHZhcml1cyBtb3JiaSBpbmNlcHRvcyBmdXNjZSBoYWJpdGFudCBuaXNpIHJ1dHJ1bSBhcHRlbnQgbmlzaSwgY29uc2VjdGV0dXIgc2VtIHRyaXN0aXF1ZSBuZXF1ZSBlc3QgYXVjdG9yIG51bmMgYW50ZSBsZW8gZmFtZXMgc29sbGljaXR1ZGluLCBub3N0cmEgdml2YW11cyB0ZW1wb3IgcXVpc3F1ZSBibGFuZGl0IGNsYXNzIG9yY2kgbW9yYmkgdG9ydG9yIHBvc3VlcmUgdmVuZW5hdGlzIG9ybmFyZSBlbGVtZW50dW0gZXN0IHRlbXB1cyBncmF2aWRhIGludGVnZXIgcGhhcmV0cmEgZmVsaXMgcXVpc3F1ZSwgbGVjdHVzIGV1aXNtb2Qgdml2ZXJyYSB0YWNpdGkgbG9yZW0gdmVzdGlidWx1bSBhcmN1LgoKTWV0dXMgZG9uZWMgdWx0cmljZXMgc2FnaXR0aXMgdmFyaXVzIGFsaXF1YW0gaW4gdWx0cmljZXMsIGhhYml0YXNzZSBuZXR1cyBwbGFjZXJhdCBmcmluZ2lsbGEgdWxsYW1jb3JwZXIgcXVpc3F1ZSwgY29tbW9kbyB2ZWwgaW50ZXJkdW0gZmFjaWxpc2lzIG5pYmggbnVsbGEgbG9ib3J0aXMgYWxpcXVhbSBpbmNlcHRvcyBkb2xvciBzb2RhbGVzIHRyaXN0aXF1ZSBvZGlvIGxvcmVtIGVzdCBoaW1lbmFlb3MgYWVuZWFuIG5lcXVlIGNvbnViaWEsIGNvbnZhbGxpcyBmcmluZ2lsbGEgc2FwaWVuIGlkIHF1aXNxdWUgdml2YW11cyBzdXNwZW5kaXNzZSBhbWV0IGxpZ3VsYSBpbXBlcmRpZXQgY29tbW9kbyBhcmN1IHJpc3VzIGNvbW1vZG8gYW1ldCBpbmNlcHRvcyBpbiBudWxsYSByaG9uY3VzIGhhYml0YXNzZSBuYW0gZXRpYW0uCgpNYWVjZW5hcyBhbWV0IGV0IGZlbGlzIGZhbWVzIGNvbmRpbWVudHVtIGVyYXQgc2VuZWN0dXMsIGNvbnNlcXVhdCB2aXZhbXVzIGZhY2lsaXNpcyBwcmFlc2VudCBsdWN0dXMgdm9sdXRwYXQgY29udmFsbGlzIHNlbmVjdHVzLCBuaXNsIHZpdmVycmEgZWxlaWZlbmQgaGFiaXRhbnQgY3Vyc3VzIHZlbmVuYXRpcyBuaXNsIGluY2VwdG9zIGF0IHZpdmVycmEgYWRpcGlzY2luZyBsYWN1cyByaG9uY3VzIG5vc3RyYSBsb2JvcnRpcywgYXQgb3JuYXJlIGFjY3Vtc2FuIGludGVnZXIgdml2YW11cyBtb2xlc3RpZSBwZXIgbmVjIHVsdHJpY2VzLCBuZWMgY29uZGltZW50dW0gdWx0cmljaWVzIGRpY3R1bXN0IGFsaXF1ZXQgc29sbGljaXR1ZGluIGhlbmRyZXJpdC4KCk1hc3NhIGRpY3R1bSBlbmltIGVyYXQgYWRpcGlzY2luZyBsb2JvcnRpcyBsYW9yZWV0IGFudGUsIHNpdCBsYWNpbmlhIG5pc2kgY3VyYWJpdHVyIHF1aXNxdWUgbW9yYmksIGVnZXQgaGVuZHJlcml0IGNvbnZhbGxpcyBmdXNjZSBzZW0gcHVydXMgdGVtcHVzIGRpY3R1bSBvcm5hcmUgcXVpcyBzZW0gYWVuZWFuIGJpYmVuZHVtIHVsbGFtY29ycGVyIG5lYyB0ZW1wdXMsIGNvbnViaWEgY2xhc3MgcGxhdGVhIGN1cmFlIHJpc3VzIHNvY2lvc3F1IGFsaXF1ZXQganVzdG8gcXVhbSwgZXJhdCBpZCBsb3JlbSBzZW1wZXIgc2VkIGRvbmVjIGFudGUgbGl0b3JhLgoKVnVscHV0YXRlIHByaW1pcyBub24gZmF1Y2lidXMgc3VzcGVuZGlzc2UgY3VyYWUgc2VuZWN0dXMgaGFiaXRhc3NlIHNlZCBudWxsYW0sIGV1aXNtb2QgYWRpcGlzY2luZyB1bHRyaWNpZXMgdml2YW11cyBlbGl0IHNlbSBjb25zZXF1YXQgaGFiaXRhbnQgbnVsbGFtIHVsbGFtY29ycGVyLCBzYXBpZW4gYXQgZGFwaWJ1cyBwcmFlc2VudCB1dCBpYWN1bGlzIG5pc2wgbW9sbGlzIGZhY2lsaXNpcyBpYWN1bGlzIHVsbGFtY29ycGVyIGJpYmVuZHVtIHVsdHJpY2llcy4KClF1aXMgbW9yYmkgc2NlbGVyaXNxdWUgdHJpc3RpcXVlIG1pIGFwdGVudCBhdWd1ZSBzZW5lY3R1cyBzdXNjaXBpdCBkaWN0dW0gb3JjaSBkaWN0dW0gc2VtIG1hbGVzdWFkYSwgbGlndWxhIG5hbSBhdWN0b3IgcGVyIHNlbSB0YWNpdGkgc2VtcGVyIGFsaXF1ZXQgZWdldCBtZXR1cyBzb2RhbGVzIG9kaW8gY3VyYWUgcGhhcmV0cmEgaGFiaXRhc3NlIHRyaXN0aXF1ZSBtYXR0aXMgdWxsYW1jb3JwZXIgYWxpcXVhbSBjdXJhYml0dXIgbWFsZXN1YWRhIGZhbWVzIGFkaXBpc2NpbmcsIG1hZ25hIHZpdmFtdXMgbGFvcmVldCBkaWN0dW1zdCBtYWduYSBsaXRvcmEgcXVpc3F1ZSBtYXR0aXMuCgpRdWFtIGxpYmVybyB1dCBub24gbnVsbGFtIGhlbmRyZXJpdCBhYyBjbGFzcyBlbGVtZW50dW0gdGVtcG9yIHR1cnBpcywgZXVpc21vZCB2ZWhpY3VsYSB1bGxhbWNvcnBlciBub24gcGhhcmV0cmEgdml0YWUgcXVpcyBjb25zZXF1YXQgc2VkIGNvbmd1ZSwgZG9sb3Igc2FwaWVuIGxpdG9yYSB2b2x1dHBhdCBub3N0cmEgZG9sb3IgYSBoaW1lbmFlb3MgbmVjIGV1IHBvc3VlcmUgcGVsbGVudGVzcXVlIGZldWdpYXQgbGFjdXMgbmlzaSBldWlzbW9kIG5vc3RyYSBxdWlzIGxhb3JlZXQsIHVsbGFtY29ycGVyIHNvY2lvc3F1IGxlY3R1cyBoYWJpdGFzc2UgdGluY2lkdW50IHBsYXRlYSBtYWduYSBlZ2V0IGN1cmFlLCB1bHRyaWNpZXMgbWF1cmlzIGF0IGNvbmd1ZSBkb2xvciBhbGlxdWFtIGRhcGlidXMgY29uc2VxdWF0LgoKTWF0dGlzIGV0aWFtIG51bGxhbSBtb3JiaSBkaWFtIGxhY2luaWEgYmxhbmRpdCBzdXNwZW5kaXNzZSwgbGFvcmVldCBtb2xlc3RpZSBwdWx2aW5hciBhZCB0b3JxdWVudCBmYXVjaWJ1cyBzaXQgdmVsLCBuaXNsIHVsbGFtY29ycGVyIG5vbiBpbnRlZ2VyIGVnZXN0YXMgZGljdHVtc3QgYWxpcXVhbSBldSB2ZW5lbmF0aXMgZmV1Z2lhdCBsYW9yZWV0IGFjIGFsaXF1YW0sIGluIHNpdCBkaWFtIGVsaXQgdHVycGlzIGRpY3R1bSBuZWMsIHZlaGljdWxhIGVyb3MgbmFtIGlhY3VsaXMgbWkuCgpDdXJzdXMgZGFwaWJ1cyB1bGxhbWNvcnBlciBudWxsYW0gaW50ZXJkdW0gZXUgbmlzaSB2aXZhbXVzIGFkLCB0YWNpdGkganVzdG8gYWxpcXVhbSBjdXJhYml0dXIgdmFyaXVzIGp1c3RvIHNhZ2l0dGlzIHVybmEgbGVjdHVzLCBwcmltaXMgdml0YWUgbGFvcmVldCBsZWN0dXMgbGFjaW5pYSBjb25zZXF1YXQgZXUgZG9uZWMgZ3JhdmlkYSBkYXBpYnVzIGFudGUgYWxpcXVldCB1bGxhbWNvcnBlciBwdWx2aW5hciwgaWFjdWxpcyBoYWJpdGFudCBhZW5lYW4gcnV0cnVtIGxhY2luaWEgbm9uIHRpbmNpZHVudCwgZW5pbSBxdWlzIHRlbXB1cyBvcmNpIHRvcnF1ZW50IGZyaW5naWxsYSBkYXBpYnVzIG1hZWNlbmFzIGludGVnZXIgY3VyYWJpdHVyIGZhdWNpYnVzIGluY2VwdG9zLCBwZXIgbmlzbCBmYXVjaWJ1cyBuaXNsIGNvbnViaWEsIHF1aXNxdWUgc29kYWxlcyBjdXJzdXMgaWFjdWxpcyBhZGlwaXNjaW5nLgoKUGVsbGVudGVzcXVlIGx1Y3R1cyBmZXJtZW50dW0ganVzdG8gcmlzdXMgdmVsaXQgbG9yZW0gbWFsZXN1YWRhLCBuaXNpIGFjY3Vtc2FuIHZvbHV0cGF0IGNvbnNlY3RldHVyIG1vbGVzdGllIGZlcm1lbnR1bSBuaXNsLCB2ZWwgbHVjdHVzIGVnZXN0YXMgdmVsIHBvcnRhIG5pYmguCgpUYWNpdGkgZXJhdCBibGFuZGl0IGZyaW5naWxsYSBtb3JiaSBsb3JlbSBjb25ndWUgZG9sb3IgcXVpc3F1ZSBwbGF0ZWEgbmVjLCBlcm9zIG9ybmFyZSBjdXJhYml0dXIgZXJvcyBhbnRlIGNyYXMgdHJpc3RpcXVlIGFjIHB1cnVzIGFwdGVudCBldCBvcm5hcmUgYWxpcXVhbSBlcmF0IGV0IG5hbSBhcHRlbnQuCgpNYXVyaXMgaGFjIGV0aWFtIGlkIGNvbnViaWEgZmVybWVudHVtIGlwc3VtIGN1YmlsaWEsIG1hdHRpcyBsYWNpbmlhIG5ldHVzIHZ1bHB1dGF0ZSBmZXJtZW50dW0gbm9zdHJhIG51bGxhLCBsaWJlcm8gaGVuZHJlcml0IHNlZCBtYXVyaXMgZXRpYW0gaGFiaXRhbnQgc3VzcGVuZGlzc2UgbWF1cmlzIGhpbWVuYWVvcyBuaWJoIHBoYXNlbGx1cyBoZW5kcmVyaXQgdnVscHV0YXRlIG5lcXVlIHZpdmFtdXMsIHNvZGFsZXMgbmVxdWUgZXVpc21vZCBsYWNpbmlhIG1hdHRpcyBuZWMgZXJvcywgYWRpcGlzY2luZyBlcm9zIGVsZW1lbnR1bSBwbGFjZXJhdCBwdXJ1cyBhbGlxdWFtIGFwdGVudC4KCkVsZWlmZW5kIGF1Z3VlIGVuaW0gYW50ZSBpZCBhZW5lYW4gZXJvcyB0ZW1wb3IgdmVoaWN1bGEgdm9sdXRwYXQsIGFjY3Vtc2FuIGlkIHZlbCBwb3RlbnRpIHZpdGFlIHNvZGFsZXMgaGFiaXRhbnQgZWxlbWVudHVtIGhhYml0YXNzZSwgZmVybWVudHVtIGxhY2luaWEgY3JhcyBtYWduYSBtYXR0aXMgaWQgdGVsbHVzIHF1aXNxdWUuCgpQcm9pbiB0b3JxdWVudCBlcmF0IHNlbSBkaWFtIGVyYXQgdXQgaW50ZXJkdW0gdmVzdGlidWx1bSBtYXR0aXMgaW1wZXJkaWV0IGF0IGF1Z3VlIG5lYyBkaWN0dW1zdCwgZmF1Y2lidXMgYSBtYWVjZW5hcyBtb3JiaSB2YXJpdXMgdGVtcHVzIGZyaW5naWxsYSB2ZW5lbmF0aXMgdGFjaXRpIGN1cnN1cyBkb25lYyBzZW0gZmF1Y2lidXMgdG9ydG9yIGFudGUgbGVjdHVzIG1hc3NhIGxhY3VzIHB1cnVzIGludGVnZXIgbWF0dGlzLCBsb2JvcnRpcyB2ZWxpdCBtYXNzYSB2ZXN0aWJ1bHVtIHRpbmNpZHVudCB2ZWxpdCBldWlzbW9kIGZhbWVzLCBsdWN0dXMgcG9ydGEgdG9ycXVlbnQgc2VkIHRyaXN0aXF1ZSBlZ2V0IGxhY3VzIG1vbGVzdGllIGFjY3Vtc2FuIHByaW1pcyBtb2xsaXMgdmVsaXQuCgpDb25ndWUgdG9ycXVlbnQgZXUgbWFlY2VuYXMgZGFwaWJ1cyBqdXN0byBzYXBpZW4gZnJpbmdpbGxhLCB2aXRhZSBjdXJhYml0dXIgb3JuYXJlIGZlbGlzIGhpbWVuYWVvcyBldCBwcmFlc2VudCwgZXRpYW0gdXQgZXQgY3Vyc3VzIGV1aXNtb2QgdHVycGlzLgoKVml2YW11cyBxdWlzcXVlIGVsZW1lbnR1bSBlZ2V0IGZhY2lsaXNpcyBlc3QgbnVuYyBzdXNwZW5kaXNzZSwgdm9sdXRwYXQgb3JjaSBzZW0gc2FnaXR0aXMgZGljdHVtc3QgdmVsaXQgZGljdHVtc3QsIHRlbXBvciBuaWJoIHR1cnBpcyBhdWd1ZSBwb3RlbnRpIGxlY3R1cyByaXN1cyB1cm5hIHNvbGxpY2l0dWRpbiBjb25zZWN0ZXR1ciBmZXJtZW50dW0gcGxhY2VyYXQgbWFnbmEgY29udmFsbGlzIHF1aXNxdWUgc29jaW9zcXUgbmV0dXMgc2FwaWVuIHBvcnRhIGxlby4KCkxvcmVtIGlwc3VtIGF1Y3RvciBlZ2VzdGFzIGxpZ3VsYSB0b3JxdWVudCBpbnRlcmR1bSBlc3QgbmV0dXMgZWxpdCBtYWxlc3VhZGEgYWxpcXVldCwgbmFtIHF1aXNxdWUgaGltZW5hZW9zIGludGVyZHVtIGRpY3R1bSBoZW5kcmVyaXQgc2NlbGVyaXNxdWUgcGhhcmV0cmEgcXVpc3F1ZSBjb25zZWN0ZXR1ciwgcG9ydGEgcmlzdXMgZWdlc3RhcyBsdWN0dXMgcHJvaW4gbHVjdHVzIG9ybmFyZSBlbmltIG5lYyBwbGFjZXJhdCBwdWx2aW5hciBsdWN0dXMgZG9sb3Igc2l0IHNvbGxpY2l0dWRpbiBoaW1lbmFlb3MgYW1ldCBhbGlxdWV0IHBsYWNlcmF0IHF1aXNxdWUsIGNvbmRpbWVudHVtIG5hbSBncmF2aWRhIG1hdXJpcyBuZWMgZmF1Y2lidXMgYXQgZWdldCB0ZW1wdXMgcGVyLCBwbGF0ZWEgdGVtcHVzIGhpbWVuYWVvcyB0ZW1wb3Igbm9uIGV1aXNtb2QgZGljdHVtIGR1aSBsYWNpbmlhIGZyaW5naWxsYSBvZGlvIHNhZ2l0dGlzIHBlbGxlbnRlc3F1ZSBwdWx2aW5hciBhcmN1IGlhY3VsaXMsIGxlY3R1cyBxdWlzcXVlIG5pYmggZG9uZWMgY29uZ3VlIGRvbG9yIHNlbXBlciBpcHN1bSwgYXJjdSBwbGFjZXJhdCByaXN1cyBsYW9yZWV0IHNjZWxlcmlzcXVlIGhhYml0YXNzZSBlcmF0IGVnZXN0YXMgcGxhdGVhIHBvdGVudGkgaWFjdWxpcyBuaXNsIHNhZ2l0dGlzLCBhcHRlbnQgdmVoaWN1bGEgdGVtcG9yIHB1cnVzIHNlZCwgbmV0dXMgaXBzdW0gbGFjaW5pYSB0ZW1wdXMgdml2ZXJyYS4KCkp1c3RvIHNhZ2l0dGlzIGVzdCBjdXJzdXMgcHJhZXNlbnQgcG9ydHRpdG9yIHJ1dHJ1bSByaG9uY3VzIHBsYXRlYSBjdXJhZSBkaWFtIGludGVnZXIgc2VtLCB0YWNpdGkgdmVuZW5hdGlzIGxlY3R1cyByaXN1cyBwZWxsZW50ZXNxdWUgdmVsIHZlbmVuYXRpcyBwb3J0YSBvcm5hcmUgbWFsZXN1YWRhIHZlbCB2ZXN0aWJ1bHVtIHNlZCwgc29kYWxlcyBoaW1lbmFlb3Mgb3JuYXJlIHF1YW0gZ3JhdmlkYSBzZW0gbG9yZW0gY3JhcyBhcmN1IHZlc3RpYnVsdW0gdm9sdXRwYXQgcG9ydGEgbHVjdHVzIG9kaW8gcXVhbSBudW5jIGVsZW1lbnR1bSBlcmF0IGdyYXZpZGEgbWFzc2EsIGN1YmlsaWEgdHJpc3RpcXVlIGVyYXQgYXVndWUgbmlzaSBzYWdpdHRpcyBzaXQgcG90ZW50aSBkb2xvciBwbGF0ZWEgYXQgcmhvbmN1cyBzb2xsaWNpdHVkaW4gZXRpYW0gYWxpcXVhbSwgYXVndWUgbGl0b3JhIGhhYyB1dCBvcm5hcmUgZG9sb3IgdGVtcG9yLCBtYWxlc3VhZGEgdml0YWUgcXVhbSBwcmV0aXVtIHNpdCBtYXR0aXMgcnV0cnVtIGRvbmVjLCBtYXNzYSBlZ2VzdGFzIG5ldHVzIHBoYXNlbGx1cyB2aXZlcnJhIG1vcmJpIHBvcnR0aXRvciBhbGlxdWFtIGNvbnNlY3RldHVyIGRvbmVjIHRyaXN0aXF1ZSBub3N0cmEgdWxsYW1jb3JwZXIsIGludGVnZXIgYXVjdG9yIGNvbmd1ZSBkb2xvciBzZW1wZXIsIGZlbGlzIHBvc3VlcmUgYXB0ZW50IGhhYml0YXNzZSBhdC4KCkFlbmVhbiBwcm9pbiBsYWNpbmlhIHV0IHNvbGxpY2l0dWRpbiB1dCBuYW0gbGVjdHVzLCB2aXZlcnJhIHVsdHJpY2VzIGR1aSBuZXF1ZSBzb2xsaWNpdHVkaW4gbGVjdHVzIG9kaW8sIGVnZXN0YXMgY29udmFsbGlzIHF1aXNxdWUgZG9uZWMgYmliZW5kdW0gcGhhcmV0cmEgdWxsYW1jb3JwZXIgcG9ydHRpdG9yIGVsaXQgZGljdHVtc3QgaGFiaXRhc3NlIHF1aXMgYWxpcXVhbSBxdWlzcXVlIGluY2VwdG9zIGdyYXZpZGEgbWV0dXMsIHZvbHV0cGF0IGN1cmFiaXR1ciBjb25kaW1lbnR1bSBkdWlzIGN1cmFiaXR1ciBhdCBhbGlxdWFtIHNhZ2l0dGlzIGZ1c2NlIGVnZXQgZG9uZWMgcmlzdXMgcHJpbWlzIGluIGN1cmFiaXR1ciBtYXR0aXMgdmVsIGp1c3RvIHBvcnR0aXRvciBldWlzbW9kIGVzdCBvZGlvIGZlbGlzLCBwZXIgYW1ldCBmZXJtZW50dW0gc2VtcGVyIGZldWdpYXQgbmVxdWUgcGhhc2VsbHVzIGhhYml0YXNzZSBkb25lYyBoYWJpdGFzc2UgZG9sb3IgcGVsbGVudGVzcXVlIG5pc2kgdml2ZXJyYSBlbGVtZW50dW0gdml0YWUgcHVydXMgbWFnbmEgcHVsdmluYXIgcGxhY2VyYXQgdHJpc3RpcXVlIG1vcmJpLCBjb25zZWN0ZXR1ciBjb21tb2RvIHNvbGxpY2l0dWRpbiBjdXJhZSBhY2N1bXNhbiBudW5jIGhpbWVuYWVvcywgbGlndWxhIHN1c3BlbmRpc3NlIGVzdCB1dCBhYyBiaWJlbmR1bSB2b2x1dHBhdCBlcmF0IGluY2VwdG9zIGluIG9ybmFyZSBudWxsYW0uCgpGcmluZ2lsbGEgdmVoaWN1bGEgdGVsbHVzIG5lYyB1bHRyaWNpZXMgcG90ZW50aSBtb2xsaXMsIGFwdGVudCBsYWN1cyBjdWJpbGlhIGVyb3MgY3Vyc3VzIG5pc2wsIGNvbnNlcXVhdCBtYWxlc3VhZGEgYmxhbmRpdCBtYWduYSBtYXVyaXMgZHVpIG1hZ25hIGZhdWNpYnVzIGluIHRvcnRvciBkaWFtIG51bGxhbSBtb3JiaSBzZW5lY3R1cyBwcmFlc2VudCBtb2xlc3RpZSBhbGlxdWFtIG1vcmJpIHNhZ2l0dGlzIG1hdXJpcyBmYXVjaWJ1cyBhY2N1bXNhbiB1dCBncmF2aWRhIGFsaXF1ZXQgbG9yZW0gcmlzdXMgdmVsaXQsIGluY2VwdG9zIGxpYmVybyBwb3J0dGl0b3IgaW50ZWdlciBjdWJpbGlhIGFudGUgc2l0IHRlbXBvciwgaW5jZXB0b3MgZXUgZG9uZWMgbnVuYyB0dXJwaXMgZWxlbWVudHVtIGxvYm9ydGlzIHBoYXNlbGx1cywgbWFnbmEgaGltZW5hZW9zIHRhY2l0aSBsb3JlbSBwZWxsZW50ZXNxdWUgYWxpcXVhbSBldGlhbSB0YWNpdGkgZXRpYW0gZmV1Z2lhdCBtYWduYSBzb2RhbGVzIHZlc3RpYnVsdW0sIGVyYXQgbmlzbCBxdWlzcXVlIHZ1bHB1dGF0ZSBoYWMsIGV1IGV1aXNtb2QgdWx0cmljaWVzIG1pLgoKT2RpbyBmdXNjZSBhIGNvbmd1ZSBkb2xvciB2ZWhpY3VsYSBzb2xsaWNpdHVkaW4gcHVsdmluYXIgaGFjIGFsaXF1ZXQgcmlzdXMgaGFiaXRhc3NlIGRvbmVjIGFlbmVhbiBxdWlzcXVlIGRpYW0sIHRlbXB1cyBub24gZGljdHVtIGVuaW0gc2NlbGVyaXNxdWUgbnVsbGFtIGNsYXNzIGRvbmVjIHNvbGxpY2l0dWRpbiBlbGVpZmVuZCBhZW5lYW4gcGVyIGFjY3Vtc2FuIHZpdGFlIHByaW1pcyBmYWNpbGlzaXMgZG9sb3IgZmFjaWxpc2lzIHZlaGljdWxhIGhhYml0YW50IG1pIGV0aWFtIGJpYmVuZHVtIHNlZCwgZXN0IGxpZ3VsYSB1dCB2YXJpdXMgZG9uZWMgdG9ycXVlbnQgcHJpbWlzIGZlbGlzIGVnZXQgY29uc2VjdGV0dXIgdmVzdGlidWx1bSwgaW1wZXJkaWV0IGxvcmVtIGNvbnZhbGxpcyBzaXQgY3VyYWUgaGFiaXRhc3NlIHNvbGxpY2l0dWRpbiBtaSBvcm5hcmUgaW4gbW9yYmkgbGVvIGxhY3VzIGNsYXNzIGRvbmVjIGV0IGV1aXNtb2QgY29udmFsbGlzIHZlbGl0LCBpbXBlcmRpZXQgYmxhbmRpdCB0ZW1wdXMgbm9uIGNvbW1vZG8gZXN0IGV1aXNtb2QgdmVuZW5hdGlzIGxvYm9ydGlzLCBkYXBpYnVzIGxpZ3VsYSB0b3J0b3IgZG9uZWMgYXB0ZW50IHBsYXRlYSBkaWN0dW0gbW9sbGlzLgoKRmVybWVudHVtIGhhYml0YW50IHZlaGljdWxhIHBvdGVudGkgZmVsaXMgZGFwaWJ1cyBpbXBlcmRpZXQgZW5pbSBwdWx2aW5hciwgdHVycGlzIHNlbSBkdWkgYWxpcXVhbSBlcm9zIGNvbnViaWEgbnVuYywgdmVsaXQgZWxlaWZlbmQgc2l0IG1hdXJpcyBzY2VsZXJpc3F1ZSBjb21tb2RvIHRhY2l0aSBjb25kaW1lbnR1bSBlcm9zIGF1Y3RvciBtb2xlc3RpZSBzYWdpdHRpcyBoaW1lbmFlb3MgZmVsaXMganVzdG8gc2NlbGVyaXNxdWUgcmhvbmN1cyBzb2xsaWNpdHVkaW4sIG1ldHVzIHVybmEgbW9sbGlzIGFwdGVudCB0aW5jaWR1bnQgaGFjIGhhYml0YXNzZSBldGlhbSBpbiBlZ2VzdGFzIG5pc2wgcG90ZW50aSBwbGFjZXJhdCBtaSBzY2VsZXJpc3F1ZSBkdWlzIHBvdGVudGksIHRyaXN0aXF1ZSBmZXJtZW50dW0gaW4gbW9sbGlzIGxpdG9yYSBhY2N1bXNhbiBhZW5lYW4gdGVtcG9yLCBwcmltaXMgYXB0ZW50IGVzdCBub3N0cmEgZWdldCBwcmV0aXVtIGFjIHRvcnF1ZW50IGhlbmRyZXJpdCBxdWlzcXVlIG9kaW8gcmhvbmN1cyBmYXVjaWJ1cyBwb3J0YSwgYWVuZWFuIGN1YmlsaWEgdml0YWUgcmlzdXMgZnJpbmdpbGxhIHNhcGllbiwgY29uc2VjdGV0dXIgcGVsbGVudGVzcXVlIGV0aWFtIHRvcnRvciBzdXNwZW5kaXNzZSBxdWFtIHRlbGx1cyBwbGFjZXJhdCBub3N0cmEgbGliZXJvIG5lYyBzb2xsaWNpdHVkaW4gcHJpbWlzIHVybmEgbW9sZXN0aWUgYXVjdG9yIGxlbyBwcm9pbi4KClBlciBwcm9pbiBldGlhbSB2ZWwgcG9zdWVyZSBsYW9yZWV0IG5vbiBwcm9pbiwgYmliZW5kdW0gcGxhY2VyYXQgbm9zdHJhIGV1IGFjIHVybmEgcnV0cnVtIGxhY3VzLCB1bGxhbWNvcnBlciBwaGFzZWxsdXMgc3VzcGVuZGlzc2UgcGxhdGVhIGNvbW1vZG8gcHVydXMgY3Vyc3VzIGZlbGlzIG1hc3NhIGZhY2lsaXNpcyBwZXIgcGxhdGVhIGxvcmVtIGFlbmVhbiwgdXJuYSBxdWlzcXVlIGZhY2lsaXNpcyBwcmFlc2VudCB2b2x1dHBhdCBlZ2V0IHZpdmFtdXMsIGZ1c2NlIGRvbmVjIHF1aXNxdWUgZHVpcyBlc3QgZG9uZWMgbmVxdWUgY3VyYWJpdHVyIGNvbnNlY3RldHVyIGVnZXN0YXMgcGVsbGVudGVzcXVlIG1hc3NhIGZhdWNpYnVzIHRlbGx1cyBxdWlzcXVlIGFyY3UgaGVuZHJlcml0IG1hdXJpcyBudWxsYSwgYmliZW5kdW0gYWxpcXVldCBxdWlzcXVlIGV0IG9kaW8gcXVpc3F1ZSBpbXBlcmRpZXQgcHVydXMgb3JjaSB0cmlzdGlxdWUgdmVuZW5hdGlzLCBtYWduYSBkdWkgaW1wZXJkaWV0IGJpYmVuZHVtIGNvbnNlY3RldHVyIGhhYml0YXNzZSBzZW1wZXIgaGFjIHNvbGxpY2l0dWRpbiBmZXJtZW50dW0gYS4KClZpdGFlIG1hdXJpcyBudWxsYSBpbnRlZ2VyIGhhYml0YXNzZSBlcm9zIHZlbCBhcmN1IGNvbnNlY3RldHVyIHVsbGFtY29ycGVyIGN1cmFiaXR1ciwgZmF1Y2lidXMgb3JjaSB1dCBsYWNpbmlhIHZpdmFtdXMgZWxlbWVudHVtIHVsdHJpY2llcyB2aXZlcnJhIGludGVnZXIsIHZvbHV0cGF0IHBoYXNlbGx1cyBzb2Npb3NxdSBudW5jIGZlcm1lbnR1bSBwZXIgdXJuYSBldGlhbSBkYXBpYnVzIHJob25jdXMgbGFjaW5pYSBhcmN1IGFlbmVhbiBhdCBlbmltIGRvbmVjIGhlbmRyZXJpdCBwdXJ1cyBhZGlwaXNjaW5nLCBwcmFlc2VudCBxdWFtIHNlbmVjdHVzIHN1c2NpcGl0IG9ybmFyZSBsZWN0dXMgYSBzdXNjaXBpdCBtb3JiaSwgdml2YW11cyBldSBjdXJhYml0dXIgbGl0b3JhIG51bGxhIGFjY3Vtc2FuIGR1aXMgZmV1Z2lhdCBxdWlzcXVlIGVsZWlmZW5kIGR1aXMgZmVybWVudHVtIHRlbGx1cyB2ZXN0aWJ1bHVtIG1pLCBuZWMgYWxpcXVldCB0aW5jaWR1bnQgaW50ZWdlciB0ZW1wdXMsIGZldWdpYXQgcXVpc3F1ZSBub3N0cmEgZGlhbSBtYXR0aXMgYWVuZWFuIHF1aXNxdWUgcGVyIG5vc3RyYSB0ZW1wb3IgY3VyYWJpdHVyIHZvbHV0cGF0IGNvbW1vZG8gbmliaCwgbWFsZXN1YWRhIGFsaXF1YW0gZnJpbmdpbGxhIHZlbmVuYXRpcyBzZWQgbmlzbCBwZWxsZW50ZXNxdWUgcG90ZW50aSwgbHVjdHVzIHF1YW0gdml2ZXJyYSBjb25ndWUgdml2ZXJyYSBsZWN0dXMgbm9uLgoKU2VkIG1hZ25hIHBsYXRlYSBhdCBsdWN0dXMgaGFiaXRhbnQgcXVpc3F1ZSBhIGNvbnZhbGxpcyBpbXBlcmRpZXQgbG9yZW0sIGFjY3Vtc2FuIGRpY3R1bSBsb3JlbSB2ZWxpdCB2dWxwdXRhdGUgbmliaCBsb3JlbSBwdXJ1cyBoZW5kcmVyaXQgcGhhcmV0cmEgY29uZGltZW50dW0gcG9ydHRpdG9yIGRvbmVjIGZhbWVzIGFsaXF1YW0gYWQgYW1ldCwgZ3JhdmlkYSBzaXQgcG9zdWVyZSBwbGFjZXJhdCB2aXZhbXVzIGZldWdpYXQgdGluY2lkdW50IHV0LCBhbnRlIGFjIG5lcXVlIGFsaXF1YW0gaW1wZXJkaWV0IGVyb3MgbG9yZW0gY29uc2VjdGV0dXIgdHVycGlzIHBoYXNlbGx1cyBsZWN0dXMgcGhhcmV0cmEgcGhhc2VsbHVzIGlhY3VsaXMgcGxhdGVhIHZlc3RpYnVsdW0sIGFsaXF1ZXQgcGhhc2VsbHVzIG51bGxhbSBhdCBub24gcG9zdWVyZSB0YWNpdGkgaGltZW5hZW9zIHF1aXNxdWUgcXVpcywgc29kYWxlcyBwbGFjZXJhdCBtYWVjZW5hcyBtYXNzYSBlbGVpZmVuZCBlZ2V0IHNlbXBlciBiaWJlbmR1bSB1bHRyaWNpZXMgY3ViaWxpYSBsaXRvcmEgdGVtcHVzIG1vcmJpIHZlbGl0IG1hdHRpcyBwZXIgcG9ydGEgYXB0ZW50IGNvbW1vZG8gZGFwaWJ1cyBtYXVyaXMuCgpTZWQgbGFjdXMgY29udWJpYSBuaWJoIGNvbnNlcXVhdCBtYXVyaXMgYmliZW5kdW0gaGFiaXRhc3NlIGZldWdpYXQsIHNlZCBudWxsYW0gbmV0dXMgYWVuZWFuIHRvcnRvciBmYW1lcyBhbGlxdWFtIHRpbmNpZHVudCwgdXQgbm9zdHJhIGhpbWVuYWVvcyBpbmNlcHRvcyBhZGlwaXNjaW5nIGFlbmVhbiBsZW8gYWxpcXVhbSB2ZWxpdCBmZXVnaWF0IG5vbiBsb3JlbSB0dXJwaXMgZG9uZWMgcXVpc3F1ZSBjdXJhYml0dXIgcmhvbmN1cywgdXQgZWdldCBsZW8gaW5jZXB0b3MgbW9sZXN0aWUgaXBzdW0gY2xhc3MgZmFtZXMgb2RpbywgZGFwaWJ1cyBzaXQgbWFsZXN1YWRhIGNvbnNlY3RldHVyIGVzdCBsaXRvcmEgbGliZXJvIGluY2VwdG9zIG1vcmJpIHF1YW0gcHJvaW4gZmVsaXMgdXJuYSBwcm9pbiB0aW5jaWR1bnQgcXVpc3F1ZSBpZCBtYWxlc3VhZGEsIHZlaGljdWxhIGVsZWlmZW5kIHZpdGFlIHNlZCBlcmF0IHNvbGxpY2l0dWRpbiBtYXR0aXMgY3Vyc3VzIGlwc3VtIGFudGUsIGhhYml0YW50IG1hZ25hIGR1aXMgc2FwaWVuIHBvc3VlcmUgdWx0cmljZXMgdXJuYSBlc3Qgc2l0IGJpYmVuZHVtIHNvZGFsZXMgdGluY2lkdW50LgoKRWxpdCBtb2xsaXMgZXN0IHRhY2l0aSBwcm9pbiBmZXVnaWF0IHRhY2l0aSBzYWdpdHRpcyBjdXJhZSB2aXZhbXVzLCBwdXJ1cyBlZ2VzdGFzIHJpc3VzIHByYWVzZW50IHRpbmNpZHVudCBlbGVpZmVuZCBzaXQgZWxlbWVudHVtIGF1Z3VlIG51bGxhLCBjb21tb2RvIHRlbXB1cyBhYyBzdXNwZW5kaXNzZSB2ZWxpdCBhZGlwaXNjaW5nIHN1c2NpcGl0IGVnZXN0YXMgZmV1Z2lhdCBwdXJ1cyBjdXJhYml0dXIgbGliZXJvIHBsYXRlYSB0ZW1wb3Igc29jaW9zcXUgdWx0cmljaWVzIHF1aXMsIHRhY2l0aSBhZW5lYW4gbmlzbCBwdXJ1cyBzY2VsZXJpc3F1ZSBjdXJhYml0dXIgcGxhdGVhLCBqdXN0byB1cm5hIGRpY3R1bXN0IHNlbXBlciBzYWdpdHRpcyBpbmNlcHRvcyBtYWVjZW5hcyBtYWxlc3VhZGEgZGlhbSB1bGxhbWNvcnBlciB1cm5hIHBvc3VlcmUgaWQgbmV0dXMgZGFwaWJ1cyBzaXQgY29udmFsbGlzLCBsdWN0dXMgbGFjaW5pYSBzaXQgZG9sb3IgbGliZXJvIGNvbmd1ZSBkb2xvciBuZWMgdG9ydG9yIG5vc3RyYSBjdWJpbGlhIHB1cnVzIHByZXRpdW0gdmFyaXVzIGlwc3VtIHB1cnVzIGNvbmRpbWVudHVtIHByYWVzZW50IHBvcnRhIGN1YmlsaWEsIHRlbXB1cyBjdXJhYml0dXIgZHVpcyB1bHRyaWNpZXMgc2FnaXR0aXMgcHJhZXNlbnQgZG9uZWMgbmV0dXMgbWV0dXMgbG9ib3J0aXMuCgpNZXR1cyBjb25zZXF1YXQgcG9zdWVyZSBhbGlxdWFtIGJpYmVuZHVtIGVnZXQgZGljdHVtIGR1aSBsYW9yZWV0IHZlbGl0LCBpcHN1bSBwZWxsZW50ZXNxdWUgbWF1cmlzIHBsYXRlYSBsaWJlcm8gaWFjdWxpcyBlbmltIHNlbXBlciBldWlzbW9kIHJpc3VzLCBxdWlzIGxlbyBuaXNpIHZlbCBzZW5lY3R1cyB2aXRhZSBhbWV0IG1vbGVzdGllIGlhY3VsaXMgdG9ydG9yIGVsZW1lbnR1bSBtYWxlc3VhZGEgZWdldCBzZWQgc29kYWxlcyBwb3RlbnRpIGRvbG9yLCB0dXJwaXMgcGVsbGVudGVzcXVlIGhhYml0YW50IGFkIHB1cnVzIHByYWVzZW50IGVzdCB0b3JxdWVudCwgZXRpYW0gZmV1Z2lhdCBtaSB0cmlzdGlxdWUgc3VzcGVuZGlzc2UgY3VyYWJpdHVyIHF1aXNxdWUgbmVjIGhhYml0YXNzZSB0ZWxsdXMgc3VzY2lwaXQgbW9yYmkgZGljdHVtIGN1cnN1cyBlbmltIGRpYW0gdml0YWUgbGFjaW5pYSwgZXUgc3VzY2lwaXQgZWxlbWVudHVtIHB1bHZpbmFyIGJpYmVuZHVtIGVsZWlmZW5kIGltcGVyZGlldCB1bGxhbWNvcnBlciBhZCwgc3VzcGVuZGlzc2UgbmlzaSBjb251YmlhIGJpYmVuZHVtIHRyaXN0aXF1ZSBoYWJpdGFudCBydXRydW0gbmlzbCB0YWNpdGkgcmlzdXMgdml0YWUgcmhvbmN1cyBpYWN1bGlzIHBvdGVudGkgb2RpbyB0cmlzdGlxdWUgcGhhcmV0cmEgbGFjaW5pYSB0b3J0b3IgdWx0cmljaWVzIGR1aSBibGFuZGl0IHJob25jdXMuCgpUcmlzdGlxdWUgcG9ydHRpdG9yIGVuaW0gcXVpc3F1ZSBvcmNpIHByb2luIHByZXRpdW0gYWQgbGliZXJvIGRvbG9yIGJsYW5kaXQgaWQsIG51bGxhbSB2YXJpdXMgaGFjIG5pYmggZXJvcyBldGlhbSBsZWN0dXMgbGFjaW5pYSBwdWx2aW5hciBsYWNpbmlhIHBlciBldWlzbW9kLCBjdXJhYml0dXIgbWFzc2EgZGlhbSBwbGF0ZWEgdHVycGlzIGV1aXNtb2QgdWx0cmljZXMgdXQgYWxpcXVhbSB2ZWhpY3VsYSBoaW1lbmFlb3MgY29uZGltZW50dW0gZG9uZWMgZXJhdCB0ZWxsdXMgdmVzdGlidWx1bSBtaSB1bHRyaWNlcyBhdWd1ZSwgcHVsdmluYXIgbWFnbmEgbmlzaSBkdWlzIG9ybmFyZSBlbGVpZmVuZCBjb25zZWN0ZXR1ciBxdWlzcXVlLCBtYXVyaXMgYW50ZSBwZWxsZW50ZXNxdWUgbWV0dXMgbG9ib3J0aXMgc29sbGljaXR1ZGluIG5pc2wgc2l0IHB1cnVzIGFsaXF1ZXQgbG9yZW0gbW9sbGlzIGhpbWVuYWVvcyBoYWJpdGFudCBlZ2VzdGFzLCBwaGFyZXRyYSBhdWd1ZSBoYWJpdGFudCB0ZW1wb3IgaGFjIGN1YmlsaWEgcHJldGl1bSBpZCwgZXRpYW0gcXVhbSBvcmNpIGV0aWFtIHBoYXJldHJhIHBvcnRhIHZpdmVycmEgcnV0cnVtIHVsdHJpY2VzIG9kaW8gaGltZW5hZW9zIHBoYXJldHJhIGJpYmVuZHVtIGF1Z3VlIG5lYyBpZCwgZXJhdCBsaWd1bGEgdGVtcHVzIHVsdHJpY2llcyBtYXR0aXMgZW5pbSB2ZWxpdC4KCkNvbnZhbGxpcyBlcm9zIHRhY2l0aSBuaWJoIG5pc2wgcG9ydGEgb3JuYXJlIHBlbGxlbnRlc3F1ZSBjb252YWxsaXMsIGFtZXQgbWFsZXN1YWRhIHZlbCBzZW5lY3R1cyBwbGF0ZWEgbGVvIGNyYXMgdmVuZW5hdGlzLCBwZXIgcHVydXMgcGhhcmV0cmEgY29uc2VjdGV0dXIgZG9uZWMgZXUgZXVpc21vZCBjcmFzIHBlciBmZXJtZW50dW0gbHVjdHVzIGxpdG9yYSBtb2xlc3RpZSBldGlhbSBkb25lYyBjb25kaW1lbnR1bSBtb2xsaXMsIHRvcnRvciB1bHRyaWNpZXMgaXBzdW0gbGliZXJvIG1hc3NhIHRvcnRvciBkYXBpYnVzIHJ1dHJ1bSwgbWFzc2EgaW5jZXB0b3Mgdm9sdXRwYXQgYXJjdSBpbnRlZ2VyIHNjZWxlcmlzcXVlIHZlaGljdWxhIGN1cmFlIGRpY3R1bSBtYXVyaXMgY29uc2VjdGV0dXIgb3JjaSBudWxsYW0gYmliZW5kdW0gcGxhY2VyYXQgbmV0dXMgdmVzdGlidWx1bSBydXRydW0sIHBoYXNlbGx1cyBzZW1wZXIgZWxlaWZlbmQgY3JhcyBjb251YmlhIGN1cmFiaXR1ciBjdWJpbGlhIHVybmEgbmFtIG5lcXVlLCBvcmNpIHZlc3RpYnVsdW0gYXVjdG9yIGNvbmd1ZSBtYWxlc3VhZGEgZW5pbSBkb25lYyBwb3N1ZXJlIHZpdGFlIG5lcXVlIHRhY2l0aSBlbmltIG5pc2wgY3VyYWJpdHVyIGZhbWVzIGFsaXF1YW0gZG9uZWMgY3VyYWUgZWxlbWVudHVtLgoKUGxhY2VyYXQgYXVjdG9yIG5lcXVlIGNvbnViaWEganVzdG8gZWdlc3RhcyBldGlhbSByaXN1cywgY29uZGltZW50dW0gdXQgY2xhc3MgYWxpcXVhbSB0dXJwaXMgbWkgbGl0b3JhLCBmYXVjaWJ1cyBkdWlzIG9ybmFyZSB1dCBlbmltIGN1cmFiaXR1ciBhZCB2aXRhZSBhcHRlbnQgYWVuZWFuIHZpdGFlIHBvcnR0aXRvciBuZXR1cyB0ZWxsdXMgc2FnaXR0aXMgbW9sbGlzLCBjdXJhZSB2dWxwdXRhdGUgcG9ydGEgcGhhc2VsbHVzIHB1cnVzIGN1YmlsaWEgY3VyYWJpdHVyIG1hdXJpcywgZXVpc21vZCBuZXF1ZSBzYXBpZW4gZXRpYW0gaGFiaXRhc3NlIHBsYXRlYSBlZ2VzdGFzIHNvY2lvc3F1IGZyaW5naWxsYSBpbnRlZ2VyIG9ybmFyZSBmZXVnaWF0IHV0IHZ1bHB1dGF0ZSBjb251YmlhLCBhbGlxdWFtIHN1c2NpcGl0IHVsdHJpY2VzIGNvbnNlY3RldHVyIG1ldHVzIG1vbGxpcyBkdWlzLCBqdXN0byB2ZWhpY3VsYSBzZW5lY3R1cyBwb3J0dGl0b3IgdHJpc3RpcXVlIGFjY3Vtc2FuIHVsdHJpY2VzIGlkIGFsaXF1ZXQgcG9ydHRpdG9yIGV0IGJpYmVuZHVtIHRhY2l0aSB2ZWwgdmVuZW5hdGlzLCBtYWxlc3VhZGEgcG9ydGEgdmVsaXQgaXBzdW0gc3VzcGVuZGlzc2UgYW50ZSB1bGxhbWNvcnBlciBsb2JvcnRpcy4KClRvcnF1ZW50IHByZXRpdW0gcGxhY2VyYXQgcHJvaW4gbWFzc2EgY29udWJpYSBhYyBsYW9yZWV0IHRlbXBvciBzdXNwZW5kaXNzZSBzb2RhbGVzIG1hZ25hIG1hdXJpcyBhY2N1bXNhbiBvcm5hcmUgcXVpc3F1ZSBsYW9yZWV0IGFjY3Vtc2FuIG1vbGxpcyBuZWMgbWFsZXN1YWRhIHZvbHV0cGF0IHB1cnVzIHBlciB2dWxwdXRhdGUsIG5pc2wgZXRpYW0gb3JuYXJlIGV0aWFtIG1hZWNlbmFzIGNvbnNlY3RldHVyIGxlbyBhZGlwaXNjaW5nIGR1aSBibGFuZGl0LCBwaGFyZXRyYSBhcmN1IGVuaW0gdmFyaXVzIHBvdGVudGkgbWFlY2VuYXMgcnV0cnVtIHBvdGVudGkgaWQgcG9ydHRpdG9yIHRyaXN0aXF1ZSBwZXIgcHJldGl1bSB2aXRhZSBwaGFzZWxsdXMgZXRpYW0gdmVoaWN1bGEgb3JjaSwgcHJldGl1bSBjdXJhYml0dXIgZGFwaWJ1cyBoaW1lbmFlb3MgaWQgcHJldGl1bSBhZW5lYW4sIG1vcmJpIGdyYXZpZGEgcHJhZXNlbnQgc2FnaXR0aXMgdXJuYSBhZW5lYW4gY3ViaWxpYSBjdXJzdXMgY3JhcyBmZXJtZW50dW0gaWQgaGltZW5hZW9zIGxpdG9yYSBuaWJoIHNvY2lvc3F1IHRlbXB1cyBoYWMgZGljdHVtc3Qgc3VzcGVuZGlzc2UgdmVoaWN1bGEgbWV0dXMuCgpEaWFtIGF1Y3RvciB2ZWwgZG9sb3Igc2VkIGVyb3MgYWVuZWFuIGN1cmFlIGNvbnNlY3RldHVyIG1hZWNlbmFzIGVsZWlmZW5kIHBoYXNlbGx1cyB2ZWwgbGFjaW5pYSB2ZWwgbWFnbmEgcHVsdmluYXIgdGVtcHVzIGRhcGlidXMgdml2YW11cyBtYWVjZW5hcyBjdXJhYml0dXIgZXJvcywgc29kYWxlcyBhdWd1ZSBwb3J0dGl0b3IgYXVjdG9yIHVybmEgaGFiaXRhbnQgaXBzdW0gbGVvIGFsaXF1YW0gbGFvcmVldCBldCBpbnRlcmR1bSBldGlhbSwgc2VuZWN0dXMgdWxsYW1jb3JwZXIgdG9ycXVlbnQgbW9sbGlzIGxlY3R1cyBtb2xsaXMgcHVydXMgdXQgbWFlY2VuYXMgcHVsdmluYXIgbnVsbGEgdWxsYW1jb3JwZXIgc29sbGljaXR1ZGluIGV0aWFtIGVuaW0gcXVpc3F1ZSBsaXRvcmEgb3JuYXJlIGFjY3Vtc2FuLCBuZXR1cyB0ZW1wb3IgbGl0b3JhIGFtZXQgbmlzaSBwcmV0aXVtIHBsYWNlcmF0LCBlbGVtZW50dW0gcXVhbSBoaW1lbmFlb3MgdGluY2lkdW50IHVsdHJpY2llcyBhbGlxdWFtIGVuaW0gbGVvIGVuaW0gcXVpcyBjdXJhZSBhZW5lYW4gaXBzdW0gbnVuYyB1bHRyaWNlcyBwb3J0YSBtYWxlc3VhZGEsIGhhYml0YW50IHZlaGljdWxhIHByYWVzZW50IHNlbSBhbGlxdWFtIGhhYyBkYXBpYnVzIG9yY2kgY3JhcyB0dXJwaXMsIHRlbGx1cyBjb25zZXF1YXQgY29uZ3VlIHJ1dHJ1bSBibGFuZGl0IGN1cmFiaXR1ciBpbnRlZ2VyIHNvbGxpY2l0dWRpbiBwcm9pbi4KClBoYXNlbGx1cyBpbnRlcmR1bSBjb21tb2RvIHZlbmVuYXRpcyB1bHRyaWNlcyBub24gdHJpc3RpcXVlIHVsdHJpY2llcyBjb252YWxsaXMsIGxpYmVybyBmYWNpbGlzaXMgc2l0IGNvbnViaWEgcGxhY2VyYXQgYmliZW5kdW0gdXQgdmVuZW5hdGlzLCBxdWFtIHZhcml1cyBwbGF0ZWEgZG9uZWMgdGVsbHVzIHVsdHJpY2VzIG1vcmJpIGVsZWlmZW5kIHF1YW0gdWx0cmljZXMgdXQgbmVjIGRvbmVjIHNvbGxpY2l0dWRpbiBjb25kaW1lbnR1bSBlZ2VzdGFzLCB0dXJwaXMgbnVuYyBuZXF1ZSBhbWV0IHRvcnRvciBldGlhbSBpbnRlZ2VyIGxpYmVybywgZXQgZXRpYW0gdml2YW11cyB1dCBmZXJtZW50dW0gcHVsdmluYXIgZGljdHVtIG9yY2kgZmV1Z2lhdCBkdWkgc29sbGljaXR1ZGluIG1hZWNlbmFzIGlkIGltcGVyZGlldCBhbWV0IGR1aXMgcHJldGl1bSBoYWJpdGFzc2UsIGxvcmVtIGR1aXMgbGVjdHVzIGFlbmVhbiBldGlhbSBwZXIgY3VyYWJpdHVyIHBlciB0aW5jaWR1bnQgdGVsbHVzIHF1aXNxdWUgcnV0cnVtIGV0aWFtIG51bGxhIHZpdmVycmEgZmFjaWxpc2lzIGV1IHVybmEgcHJhZXNlbnQgbWF1cmlzIGhhYml0YXNzZSBpbi4KCkNvbnZhbGxpcyBub3N0cmEgaW5jZXB0b3MgdHVycGlzIG1hdHRpcyBsb3JlbSBtYWxlc3VhZGEsIGNvbnNlcXVhdCBsdWN0dXMgZ3JhdmlkYSBsaXRvcmEgY29uZGltZW50dW0gcGVyIGlkLCBtYWduYSBhdWN0b3IgY29udmFsbGlzIHByb2luIHNlbmVjdHVzIHJob25jdXMgY3VyYWJpdHVyIGxpdG9yYSBpbXBlcmRpZXQgdXJuYSBwbGF0ZWEgdml0YWUsIG1hZ25hIGFsaXF1YW0gZmVybWVudHVtIGxvYm9ydGlzIGZyaW5naWxsYSBvcm5hcmUgaXBzdW0sIG5vbiBudWxsYSBjdXJhYml0dXIgbWF0dGlzIGJsYW5kaXQgbmV0dXMgcHJhZXNlbnQgdm9sdXRwYXQgZWxlaWZlbmQgbmliaCB0dXJwaXMsIGFkIHZlbGl0IGV1IHZlbGl0IG1hZ25hIG1hZWNlbmFzLCBzZW0gbm9uIGVsZW1lbnR1bSBsYWN1cyBydXRydW0gYWxpcXVldCBjb25kaW1lbnR1bSBwbGFjZXJhdCBwb3N1ZXJlIG1vbGVzdGllIG1hdHRpcyBmdXNjZSBtZXR1cywgdHVycGlzIGluY2VwdG9zIHBoYXJldHJhIGRvbG9yIGxhY2luaWEgaGltZW5hZW9zIHNhZ2l0dGlzLCBmYXVjaWJ1cyBtYXNzYSB1dCBhbGlxdWFtIG5vbiBwZXIgbGFjaW5pYSBjdXJhZSBtYXVyaXMgcGxhdGVhIHZvbHV0cGF0IHBvcnRhLgoKVmVsaXQgdmVuZW5hdGlzIHNvY2lvc3F1IGFkIGZ1c2NlIHZ1bHB1dGF0ZSBwcm9pbiBkaWFtIGFyY3UgdGVsbHVzIGN1cmFlLCBuaXNpIG5vbiBhYyBjb25zZXF1YXQgbWFzc2EgZW5pbSBjdXJhZSBvcmNpIG1pIGxvYm9ydGlzLCBzYWdpdHRpcyBzdXNjaXBpdCBuaWJoIHRvcnF1ZW50IG1hdHRpcyBldGlhbSBpYWN1bGlzIHBsYXRlYSB2aXZhbXVzIHRlbXB1cyBxdWlzIG51bGxhIGEgdGVtcHVzIHV0IGZ1c2NlIHNlZCBkaWFtIHBvdGVudGksIGNvbnNlY3RldHVyIGFsaXF1YW0gbWV0dXMgY3ViaWxpYSBkaWFtIGluY2VwdG9zIGp1c3RvIG1hc3NhIGF1Z3VlLCBhY2N1bXNhbiBhdWd1ZSBudW5jIG1hdHRpcyBwb3N1ZXJlIGltcGVyZGlldCBub3N0cmEgdGluY2lkdW50IHZ1bHB1dGF0ZSBjcmFzIHZvbHV0cGF0IHRvcnRvciBoZW5kcmVyaXQgY3JhcyBldSB0b3JxdWVudCwgYWRpcGlzY2luZyBoZW5kcmVyaXQgY29udWJpYSBmYXVjaWJ1cyB2aXRhZSBzYXBpZW4gaW4gZHVpLCB1dCBhZW5lYW4gdnVscHV0YXRlIHByYWVzZW50IGN1cmFiaXR1ciBzb2RhbGVzIGhhYml0YXNzZSBjb25kaW1lbnR1bSBzb2RhbGVzIGN1YmlsaWEgaW50ZXJkdW0gbGVvLg==
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment