<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>17881</bug_id>
          
          <creation_ts>2008-03-16 12:39:42 -0700</creation_ts>
          <short_desc>a little cleanup for HTMLTextAreaElement</short_desc>
          <delta_ts>2008-03-16 15:21:48 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P4</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>73947</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-03-16 12:39:42 -0700</bug_when>
    <thetext>While working on a bug fix, I did some cleanup of  this class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>73957</commentid>
    <comment_count>1</comment_count>
      <attachid>19806</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-03-16 13:14:58 -0700</bug_when>
    <thetext>Created attachment 19806
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>73962</commentid>
    <comment_count>2</comment_count>
      <attachid>19806</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2008-03-16 13:24:30 -0700</bug_when>
    <thetext>Comment on attachment 19806
patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>73990</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-03-16 15:21:48 -0700</bug_when>
    <thetext>Committed revision 31086.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>19806</attachid>
            <date>2008-03-16 13:14:58 -0700</date>
            <delta_ts>2008-03-16 13:24:30 -0700</delta_ts>
            <desc>patch</desc>
            <filename>TextAreaPatch.txt</filename>
            <type>text/plain</type>
            <size>32854</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzMTA3OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTUgQEAKKzIwMDgtMDMtMTYgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0gaHR0
cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4ODEKKyAgICAgICAgICBhIGxp
dHRsZSBjbGVhbnVwIGZvciBIVE1MVGV4dEFyZWFFbGVtZW50CisKKyAgICAgICAgVGVzdHM6IGZh
c3QvZm9ybXMvdGV4dGFyZWEtZGVmYXVsdC12YWx1ZS1sZWFkaW5nLW5ld2xpbmUuaHRtbAorICAg
ICAgICAgICAgICAgZmFzdC9mb3Jtcy90ZXh0YXJlYS1saW5ld3JhcC1keW5hbWljLmh0bWwKKwor
ICAgICAgICAqIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MVGV4dEFyZWFFbGVtZW50OjpIVE1MVGV4dEFyZWFFbGVtZW50KTogVHdlYWtlZCBuYW1l
cy8KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0QXJlYUVsZW1lbnQ6OnNlbGVjdGlvblN0YXJ0
KTogRGl0dG8sIGFsc28gdXNlIGVhcmx5IHJldHVybgorICAgICAgICBhbmQgY2hlY2sgZm9yIDwg
MCByYXRoZXIgdGhhbiAtMSBzcGVjaWZpY2FsbHkuCisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4
dEFyZWFFbGVtZW50OjpzZWxlY3Rpb25FbmQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxUZXh0QXJlYUVsZW1lbnQ6OnNldFNlbGVjdGlvblN0YXJ0KTogRWFybHkgcmV0dXJuLgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTFRleHRBcmVhRWxlbWVudDo6c2V0U2VsZWN0aW9uRW5kKTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50OjpzZWxlY3QpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0QXJlYUVsZW1lbnQ6OnNldFNlbGVjdGlvblJh
bmdlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50OjpwYXJz
ZU1hcHBlZEF0dHJpYnV0ZSk6IENoYW5nZWQgdmFsdWUgcGFyc2luZworICAgICAgICB0byB0cmVh
dCB1bmtub3duIHZhbHVlcyBhcyBtZWFuaW5nICJkZWZhdWx0IiByYXRoZXIgdGhhbiAibGVhdmUg
dmFsdWUgYXMtaXMiLgorICAgICAgICBPbmx5IGNhbGwgc2V0TmVlZHNMYXlvdXRBbmRQcmVmV2lk
dGhzUmVjYWxjIHdoZW4gbW9kZSBjaGFuZ2VkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRB
cmVhRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIpOiBSZW1vdmVkIG5hbWUgb2YgdW51c2VkIGFyZ3Vt
ZW50LgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRBcmVhRWxlbWVudDo6YXBwZW5kRm9ybURh
dGEpOiBVcGRhdGVkIGZvciBuYW1lIGNoYW5nZXMuCisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4
dEFyZWFFbGVtZW50Ojppc0tleWJvYXJkRm9jdXNhYmxlKTogR290IHJpZCBvZiB1bm5uZWVkZWQg
ZXhwbGljaXQKKyAgICAgICAgY2xhc3MgbmFtZSBpbiBpc0ZvY3VzYWJsZSBjYWxsLgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTFRleHRBcmVhRWxlbWVudDo6aXNNb3VzZUZvY3VzYWJsZSk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRBcmVhRWxlbWVudDo6dXBkYXRlRm9jdXNBcHBl
YXJhbmNlKTogVHdlYWtlZCBmb3JtYXR0aW5nLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRB
cmVhRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcik6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTFRleHRBcmVhRWxlbWVudDo6dXBkYXRlVmFsdWUpOiBFYXJseSByZXR1cm4uCisgICAg
ICAgIChXZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50OjpzZXRWYWx1ZSk6IEdvdCByaWQgb2Yg
aW50ZXJtZWRpYXRlIHZhbHVlIHRvCisgICAgICAgIGVsaW1pbmF0ZSBvbiBzbWFsbCByZWZjb3Vu
dCBjaHVybi4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0QXJlYUVsZW1lbnQ6OmRlZmF1bHRW
YWx1ZSk6IEdvdCByaWQgb2YgdW5uZWVkZWQgcmVkdW5kYW50CisgICAgICAgIHN0cmluZyBsZW5n
dGggY2hlY2tzLCBzaW5jZSBTdHJpbmcgYWxyZWFkeSBjaGVja3MgYWxsIGluZGV4aW5nIGFuZCBy
ZXR1cm5zIDAuCisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50OjpzZXREZWZh
dWx0VmFsdWUpOiBBZGRlZCBjb2RlIHRvIG5vcm1hbGl6ZQorICAgICAgICBsaW5lIGVuZGluZ3Mg
YW5kIGFkZCBhIGxlYWRpbmcgbGluZSBlbmRpbmcgdG8gZml4IGNhc2VzIHdoZXJlIHRoZSBmaXJz
dAorICAgICAgICBjaGFyYWN0ZXIgaXMgYSBuZXdsaW5lLgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFRleHRBcmVhRWxlbWVudDo6YWNjZXNzS2V5QWN0aW9uKTogUmVtb3ZlZCBuYW1lIG9mIHVudXNl
ZCBhcmcuCisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50OjphY2Nlc3NLZXkp
OiBDaGFuZ2VkIHJldHVybiB2YWx1ZSB0byBhdm9pZAorICAgICAgICByZWZjb3VudCBjaHVybi4K
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0QXJlYUVsZW1lbnQ6OnNlbGVjdGlvbik6IFVwZGF0
ZWQgbmFtZXMgYW5kIHVzZSA8IDAgaW5zdGVhZAorICAgICAgICBvZiAtMSBzcGVjaWZpY2FsbHku
CisKKyAgICAgICAgKiBodG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaDogUmVwbGFjZWQgd3JhcCBm
dW5jdGlvbiB3aXRoIG1vcmUtc3BlY2lmaWMKKyAgICAgICAgc2hvdWxkV3JhcFRleHQgb25lLiBD
aGFuZ2VkIHJldHVybiB2YWx1ZSBvZiBhY2Nlc3NLZXkuIE1hZGUgV3JhcE1ldGhvZCBlbnVtCisg
ICAgICAgIHByb3ZhdGUgYW5kIHJlbmFtZWQgdGhlIHZhbHVlcy4gUmVuYW1lZCBjYWNoZWRTZWxT
dGFydCBhbmQgY2FjaGVkU2VsRW5kIHRvCisgICAgICAgIG1fY2FjaGVkU2VsZWN0aW9uU3RhcnQg
YW5kIG1fY2FjaGVkU2VsZWN0aW9uRW5kLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRl
eHRDb250cm9sLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sOjpjcmVh
dGVJbm5lclRleHRTdHlsZSk6IFVwZGF0ZWQgZm9yIGNoYW5nZSB0bworICAgICAgICBIVE1MVGV4
dEFyZWFFbGVtZW50IHdyYXAgZnVuY3Rpb24uCisKIDIwMDgtMDMtMTUgIFRpbW90aHkgSGF0Y2hl
ciAgPHRpbW90aHlAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gUm9iZW4u
CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCShyZXZpc2lvbiAzMTA3OCkK
KysrIFdlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMiw3ICsyLDcgQEAKICAqIENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBr
ZGUub3JnKQogICogICAgICAgICAgIChDKSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0Br
ZGUub3JnKQogICogICAgICAgICAgIChDKSAyMDAxIERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUu
b3JnKQotICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwg
MjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiAgICAgICAgICAg
KEMpIDIwMDYgQWxleGV5IFByb3NrdXJ5YWtvdiAoYXBAbnlwb3AuY29tKQogICogQ29weXJpZ2h0
IChDKSAyMDA3IFNhbXVlbCBXZWluaWcgKHNhbUB3ZWJraXQub3JnKQogICoKQEAgLTQ3LDEzICs0
NywxMyBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogc3RhdGljIGNvbnN0IGludCBkZWZh
dWx0Um93cyA9IDI7CiBzdGF0aWMgY29uc3QgaW50IGRlZmF1bHRDb2xzID0gMjA7CiAKLUhUTUxU
ZXh0QXJlYUVsZW1lbnQ6OkhUTUxUZXh0QXJlYUVsZW1lbnQoRG9jdW1lbnQqIGRvYywgSFRNTEZv
cm1FbGVtZW50KiBmKQotICAgIDogSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZSh0ZXh0
YXJlYVRhZywgZG9jLCBmKQorSFRNTFRleHRBcmVhRWxlbWVudDo6SFRNTFRleHRBcmVhRWxlbWVu
dChEb2N1bWVudCogZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVudCogZm9ybSkKKyAgICA6IEhUTUxG
b3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGUodGV4dGFyZWFUYWcsIGRvY3VtZW50LCBmb3JtKQog
ICAgICwgbV9yb3dzKGRlZmF1bHRSb3dzKQogICAgICwgbV9jb2xzKGRlZmF1bHRDb2xzKQotICAg
ICwgbV93cmFwKHRhX1ZpcnR1YWwpCi0gICAgLCBjYWNoZWRTZWxTdGFydCgtMSkKLSAgICAsIGNh
Y2hlZFNlbEVuZCgtMSkKKyAgICAsIG1fd3JhcChTb2Z0V3JhcCkKKyAgICAsIG1fY2FjaGVkU2Vs
ZWN0aW9uU3RhcnQoLTEpCisgICAgLCBtX2NhY2hlZFNlbGVjdGlvbkVuZCgtMSkKIHsKICAgICBz
ZXRWYWx1ZU1hdGNoZXNSZW5kZXJlcigpOwogfQpAQCAtNzcsNDYgKzc3LDQ4IEBAIHZvaWQgSFRN
TFRleHRBcmVhRWxlbWVudDo6cmVzdG9yZVN0YXRlKGMKIAogaW50IEhUTUxUZXh0QXJlYUVsZW1l
bnQ6OnNlbGVjdGlvblN0YXJ0KCkKIHsKLSAgICBpZiAocmVuZGVyZXIoKSkgewotICAgICAgICBp
ZiAoZG9jdW1lbnQoKS0+Zm9jdXNlZE5vZGUoKSAhPSB0aGlzICYmIGNhY2hlZFNlbFN0YXJ0ICE9
IC0xKQotICAgICAgICAgICAgcmV0dXJuIGNhY2hlZFNlbFN0YXJ0OwotICAgICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8UmVuZGVyVGV4dENvbnRyb2wgKj4ocmVuZGVyZXIoKSktPnNlbGVjdGlvblN0
YXJ0KCk7Ci0gICAgfQotICAgIHJldHVybiAwOworICAgIGlmICghcmVuZGVyZXIoKSkKKyAgICAg
ICAgcmV0dXJuIDA7CisgICAgaWYgKGRvY3VtZW50KCktPmZvY3VzZWROb2RlKCkgIT0gdGhpcyAm
JiBtX2NhY2hlZFNlbGVjdGlvblN0YXJ0ID49IDApCisgICAgICAgIHJldHVybiBtX2NhY2hlZFNl
bGVjdGlvblN0YXJ0OworICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJUZXh0Q29udHJvbCo+
KHJlbmRlcmVyKCkpLT5zZWxlY3Rpb25TdGFydCgpOwogfQogCiBpbnQgSFRNTFRleHRBcmVhRWxl
bWVudDo6c2VsZWN0aW9uRW5kKCkKIHsKLSAgICBpZiAocmVuZGVyZXIoKSkgewotICAgICAgICBp
ZiAoZG9jdW1lbnQoKS0+Zm9jdXNlZE5vZGUoKSAhPSB0aGlzICYmIGNhY2hlZFNlbEVuZCAhPSAt
MSkKLSAgICAgICAgICAgIHJldHVybiBjYWNoZWRTZWxFbmQ7Ci0gICAgICAgIHJldHVybiBzdGF0
aWNfY2FzdDxSZW5kZXJUZXh0Q29udHJvbCAqPihyZW5kZXJlcigpKS0+c2VsZWN0aW9uRW5kKCk7
Ci0gICAgfQotICAgIHJldHVybiAwOworICAgIGlmICghcmVuZGVyZXIoKSkKKyAgICAgICAgcmV0
dXJuIDA7CisgICAgaWYgKGRvY3VtZW50KCktPmZvY3VzZWROb2RlKCkgIT0gdGhpcyAmJiBtX2Nh
Y2hlZFNlbGVjdGlvbkVuZCA+PSAwKQorICAgICAgICByZXR1cm4gbV9jYWNoZWRTZWxlY3Rpb25F
bmQ7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlclRleHRDb250cm9sKj4ocmVuZGVyZXIo
KSktPnNlbGVjdGlvbkVuZCgpOwogfQogCiB2b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OnNldFNl
bGVjdGlvblN0YXJ0KGludCBzdGFydCkKIHsKLSAgICBpZiAocmVuZGVyZXIoKSkKLSAgICAgICAg
c3RhdGljX2Nhc3Q8UmVuZGVyVGV4dENvbnRyb2wqPihyZW5kZXJlcigpKS0+c2V0U2VsZWN0aW9u
U3RhcnQoc3RhcnQpOworICAgIGlmICghcmVuZGVyZXIoKSkKKyAgICAgICAgcmV0dXJuOworICAg
IHN0YXRpY19jYXN0PFJlbmRlclRleHRDb250cm9sKj4ocmVuZGVyZXIoKSktPnNldFNlbGVjdGlv
blN0YXJ0KHN0YXJ0KTsKIH0KIAogdm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50OjpzZXRTZWxlY3Rp
b25FbmQoaW50IGVuZCkKIHsKLSAgICBpZiAocmVuZGVyZXIoKSkKLSAgICAgICAgc3RhdGljX2Nh
c3Q8UmVuZGVyVGV4dENvbnRyb2wqPihyZW5kZXJlcigpKS0+c2V0U2VsZWN0aW9uRW5kKGVuZCk7
CisgICAgaWYgKCFyZW5kZXJlcigpKQorICAgICAgICByZXR1cm47CisgICAgc3RhdGljX2Nhc3Q8
UmVuZGVyVGV4dENvbnRyb2wqPihyZW5kZXJlcigpKS0+c2V0U2VsZWN0aW9uRW5kKGVuZCk7CiB9
CiAKIHZvaWQgSFRNTFRleHRBcmVhRWxlbWVudDo6c2VsZWN0KCkKIHsKLSAgICBpZiAocmVuZGVy
ZXIoKSkKLSAgICAgICAgc3RhdGljX2Nhc3Q8UmVuZGVyVGV4dENvbnRyb2wgKj4ocmVuZGVyZXIo
KSktPnNlbGVjdCgpOworICAgIGlmICghcmVuZGVyZXIoKSkKKyAgICAgICAgcmV0dXJuOworICAg
IHN0YXRpY19jYXN0PFJlbmRlclRleHRDb250cm9sKj4ocmVuZGVyZXIoKSktPnNlbGVjdCgpOwog
fQogCiB2b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OnNldFNlbGVjdGlvblJhbmdlKGludCBzdGFy
dCwgaW50IGVuZCkKIHsKLSAgICBpZiAocmVuZGVyZXIoKSkKLSAgICAgICAgc3RhdGljX2Nhc3Q8
UmVuZGVyVGV4dENvbnRyb2wqPihyZW5kZXJlcigpKS0+c2V0U2VsZWN0aW9uUmFuZ2Uoc3RhcnQs
IGVuZCk7CisgICAgaWYgKCFyZW5kZXJlcigpKQorICAgICAgICByZXR1cm47CisgICAgc3RhdGlj
X2Nhc3Q8UmVuZGVyVGV4dENvbnRyb2wqPihyZW5kZXJlcigpKS0+c2V0U2VsZWN0aW9uUmFuZ2Uo
c3RhcnQsIGVuZCk7CiB9CiAKIHZvaWQgSFRNTFRleHRBcmVhRWxlbWVudDo6Y2hpbGRyZW5DaGFu
Z2VkKGJvb2wgY2hhbmdlZEJ5UGFyc2VyLCBOb2RlKiBiZWZvcmVDaGFuZ2UsIE5vZGUqIGFmdGVy
Q2hhbmdlLCBpbnQgY2hpbGRDb3VudERlbHRhKQpAQCAtMTI1LDcgKzEyNyw3IEBAIHZvaWQgSFRN
TFRleHRBcmVhRWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2UKICAgICBIVE1MRWxlbWVudDo6Y2hpbGRy
ZW5DaGFuZ2VkKGNoYW5nZWRCeVBhcnNlciwgYmVmb3JlQ2hhbmdlLCBhZnRlckNoYW5nZSwgY2hp
bGRDb3VudERlbHRhKTsKIH0KICAgICAKLXZvaWQgSFRNTFRleHRBcmVhRWxlbWVudDo6cGFyc2VN
YXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlICphdHRyKQordm9pZCBIVE1MVGV4dEFyZWFF
bGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShNYXBwZWRBdHRyaWJ1dGUqIGF0dHIpCiB7CiAg
ICAgaWYgKGF0dHItPm5hbWUoKSA9PSByb3dzQXR0cikgewogICAgICAgICBpbnQgcm93cyA9IGF0
dHItPnZhbHVlKCkudG9JbnQoKTsKQEAgLTE0NiwxOCArMTQ4LDIwIEBAIHZvaWQgSFRNTFRleHRB
cmVhRWxlbWVudDo6cGFyc2VNYXBwZWRBdHQKICAgICAgICAgICAgICAgICByZW5kZXJlcigpLT5z
ZXROZWVkc0xheW91dEFuZFByZWZXaWR0aHNSZWNhbGMoKTsKICAgICAgICAgfQogICAgIH0gZWxz
ZSBpZiAoYXR0ci0+bmFtZSgpID09IHdyYXBBdHRyKSB7Ci0gICAgICAgIC8vIHZpcnR1YWwgLyBw
aHlzaWNhbCBpcyBOZXRzY2FwZSBleHRlbnNpb24gb2YgSFRNTCAzLjAsIG5vdyBkZXByZWNhdGVk
Ci0gICAgICAgIC8vIHNvZnQvIGhhcmQgLyBvZmYgaXMgcmVjb21tZW5kYXRpb24gZm9yIEhUTUwg
NCBleHRlbnNpb24gYnkgSUUgYW5kIE5TIDQKLSAgICAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNl
KGF0dHItPnZhbHVlKCksICJ2aXJ0dWFsIikgfHwgZXF1YWxJZ25vcmluZ0Nhc2UoYXR0ci0+dmFs
dWUoKSwgInNvZnQiKSkKLSAgICAgICAgICAgIG1fd3JhcCA9IHRhX1ZpcnR1YWw7Ci0gICAgICAg
IGVsc2UgaWYgKGVxdWFsSWdub3JpbmdDYXNlKGF0dHItPnZhbHVlKCksICJwaHlzaWNhbCIpIHx8
IGVxdWFsSWdub3JpbmdDYXNlKGF0dHItPnZhbHVlKCksICJoYXJkIikpCi0gICAgICAgICAgICBt
X3dyYXAgPSB0YV9QaHlzaWNhbDsKLSAgICAgICAgZWxzZSBpZiAoZXF1YWxJZ25vcmluZ0Nhc2Uo
YXR0ci0+dmFsdWUoKSwgIm9uIiApKQotICAgICAgICAgICAgbV93cmFwID0gdGFfUGh5c2ljYWw7
CisgICAgICAgIC8vIFRoZSB2aXJ0dWFsL3BoeXNpY2FsIHZhbHVlcyB3ZXJlIGEgTmV0c2NhcGUg
ZXh0ZW5zaW9uIG9mIEhUTUwgMy4wLCBub3cgZGVwcmVjYXRlZC4KKyAgICAgICAgLy8gVGhlIHNv
ZnQvaGFyZCAvb2ZmIHZhbHVlcyBhcmUgYSByZWNvbW1lbmRhdGlvbiBmb3IgSFRNTCA0IGV4dGVu
c2lvbiBieSBJRSBhbmQgTlMgNC4KKyAgICAgICAgV3JhcE1ldGhvZCB3cmFwOworICAgICAgICBp
ZiAoZXF1YWxJZ25vcmluZ0Nhc2UoYXR0ci0+dmFsdWUoKSwgInBoeXNpY2FsIikgfHwgZXF1YWxJ
Z25vcmluZ0Nhc2UoYXR0ci0+dmFsdWUoKSwgImhhcmQiKSB8fCBlcXVhbElnbm9yaW5nQ2FzZShh
dHRyLT52YWx1ZSgpLCAib24iKSkKKyAgICAgICAgICAgIHdyYXAgPSBIYXJkV3JhcDsKICAgICAg
ICAgZWxzZSBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UoYXR0ci0+dmFsdWUoKSwgIm9mZiIpKQotICAg
ICAgICAgICAgbV93cmFwID0gdGFfTm9XcmFwOwotICAgICAgICBpZiAocmVuZGVyZXIoKSkKLSAg
ICAgICAgICAgIHJlbmRlcmVyKCktPnNldE5lZWRzTGF5b3V0QW5kUHJlZldpZHRoc1JlY2FsYygp
OworICAgICAgICAgICAgd3JhcCA9IE5vV3JhcDsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
d3JhcCA9IFNvZnRXcmFwOworICAgICAgICBpZiAod3JhcCAhPSBtX3dyYXApIHsKKyAgICAgICAg
ICAgIG1fd3JhcCA9IHdyYXA7CisgICAgICAgICAgICBpZiAocmVuZGVyZXIoKSkKKyAgICAgICAg
ICAgICAgICByZW5kZXJlcigpLT5zZXROZWVkc0xheW91dEFuZFByZWZXaWR0aHNSZWNhbGMoKTsK
KyAgICAgICAgfQogICAgIH0gZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IGFjY2Vzc2tleUF0dHIp
IHsKICAgICAgICAgLy8gaWdub3JlIGZvciB0aGUgbW9tZW50CiAgICAgfSBlbHNlIGlmIChhdHRy
LT5uYW1lKCkgPT0gYWxpZ25BdHRyKSB7CkBAIC0xNzUsNyArMTc5LDcgQEAgdm9pZCBIVE1MVGV4
dEFyZWFFbGVtZW50OjpwYXJzZU1hcHBlZEF0dAogICAgICAgICBIVE1MRm9ybUNvbnRyb2xFbGVt
ZW50V2l0aFN0YXRlOjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKTsKIH0KIAotUmVuZGVyT2Jq
ZWN0KiBIVE1MVGV4dEFyZWFFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJl
bmEsIFJlbmRlclN0eWxlKiBzdHlsZSkKK1JlbmRlck9iamVjdCogSFRNTFRleHRBcmVhRWxlbWVu
dDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJTdHlsZSopCiB7CiAg
ICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlclRleHRDb250cm9sKHRoaXMsIHRydWUpOwogfQpA
QCAtMTg0LDggKzE4OCw4IEBAIGJvb2wgSFRNTFRleHRBcmVhRWxlbWVudDo6YXBwZW5kRm9ybURh
dGEKIHsKICAgICBpZiAobmFtZSgpLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgICAgICAKLSAgICBib29sIGhhcmRXcmFwID0gcmVuZGVyZXIoKSAmJiB3cmFwKCkgPT0gdGFf
UGh5c2ljYWw7CisKKyAgICBib29sIGhhcmRXcmFwID0gcmVuZGVyZXIoKSAmJiBtX3dyYXAgPT0g
SGFyZFdyYXA7CiAgICAgU3RyaW5nIHYgPSBoYXJkV3JhcCA/IHN0YXRpY19jYXN0PFJlbmRlclRl
eHRDb250cm9sKj4ocmVuZGVyZXIoKSktPnRleHRXaXRoSGFyZExpbmVCcmVha3MoKSA6IHZhbHVl
KCk7CiAgICAgZW5jb2RpbmcuYXBwZW5kRGF0YShuYW1lKCksIHYpOwogICAgIHJldHVybiB0cnVl
OwpAQCAtMTk4LDMzICsyMDIsMzQgQEAgdm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50OjpyZXNldCgp
CiAKIGJvb2wgSFRNTFRleHRBcmVhRWxlbWVudDo6aXNLZXlib2FyZEZvY3VzYWJsZShLZXlib2Fy
ZEV2ZW50KikgY29uc3QKIHsKLSAgICAvLyBJZiB0ZXh0IGFyZWFzIGNhbiBiZSBmb2N1c2VkLCB0
aGVuIHRoZXkgc2hvdWxkIGFsd2F5cyBiZSBrZXlib2FyZCBmb2N1c2FibGUKLSAgICByZXR1cm4g
SFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZTo6aXNGb2N1c2FibGUoKTsKKyAgICAvLyBJ
ZiBhIGdpdmVuIHRleHQgYXJlYSBjYW4gYmUgZm9jdXNlZCBhdCBhbGwsIHRoZW4gaXQgd2lsbCBh
bHdheXMgYmUga2V5Ym9hcmQgZm9jdXNhYmxlLgorICAgIHJldHVybiBpc0ZvY3VzYWJsZSgpOwog
fQogCiBib29sIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OmlzTW91c2VGb2N1c2FibGUoKSBjb25zdAog
ewotICAgIHJldHVybiBIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlOjppc0ZvY3VzYWJs
ZSgpOworICAgIHJldHVybiBpc0ZvY3VzYWJsZSgpOwogfQogCiB2b2lkIEhUTUxUZXh0QXJlYUVs
ZW1lbnQ6OnVwZGF0ZUZvY3VzQXBwZWFyYW5jZShib29sIHJlc3RvcmVQcmV2aW91c1NlbGVjdGlv
bikKIHsKICAgICBBU1NFUlQocmVuZGVyZXIoKSk7CiAgICAgCi0gICAgaWYgKCFyZXN0b3JlUHJl
dmlvdXNTZWxlY3Rpb24gfHwgY2FjaGVkU2VsU3RhcnQgPT0gLTEpIHsKKyAgICBpZiAoIXJlc3Rv
cmVQcmV2aW91c1NlbGVjdGlvbiB8fCBtX2NhY2hlZFNlbGVjdGlvblN0YXJ0IDwgMCkgewogICAg
ICAgICAvLyBJZiB0aGlzIGlzIHRoZSBmaXJzdCBmb2N1cywgc2V0IGEgY2FyZXQgYXQgdGhlIGJl
Z2lubmluZyBvZiB0aGUgdGV4dC4gIAotICAgICAgICAvLyBUaGlzIG1hdGNoZXMgc29tZSBicm93
c2VycycgYmVoYXZpb3I7IHNlZSBCdWd6aWxsYSBCdWcgMTE3NDYgQ29tbWVudCAjMTUuCisgICAg
ICAgIC8vIFRoaXMgbWF0Y2hlcyBzb21lIGJyb3dzZXJzJyBiZWhhdmlvcjsgc2VlIGJ1ZyAxMTc0
NiBDb21tZW50ICMxNS4KICAgICAgICAgLy8gaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTE3NDYjYzE1CiAgICAgICAgIHNldFNlbGVjdGlvblJhbmdlKDAsIDApOwotICAg
IH0gZWxzZQorICAgIH0gZWxzZSB7CiAgICAgICAgIC8vIFJlc3RvcmUgdGhlIGNhY2hlZCBzZWxl
Y3Rpb24uICBUaGlzIG1hdGNoZXMgb3RoZXIgYnJvd3NlcnMnIGJlaGF2aW9yLgotICAgICAgICBz
ZXRTZWxlY3Rpb25SYW5nZShjYWNoZWRTZWxTdGFydCwgY2FjaGVkU2VsRW5kKTsgCisgICAgICAg
IHNldFNlbGVjdGlvblJhbmdlKG1fY2FjaGVkU2VsZWN0aW9uU3RhcnQsIG1fY2FjaGVkU2VsZWN0
aW9uRW5kKTsKKyAgICB9CiAKICAgICBpZiAoZG9jdW1lbnQoKS0+ZnJhbWUoKSkKICAgICAgICAg
ZG9jdW1lbnQoKS0+ZnJhbWUoKS0+cmV2ZWFsU2VsZWN0aW9uKCk7CiB9CiAKLXZvaWQgSFRNTFRl
eHRBcmVhRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCAqZXZ0KQordm9pZCBIVE1M
VGV4dEFyZWFFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldnQpCiB7CiAgICAg
aWYgKHJlbmRlcmVyKCkgJiYgKGV2dC0+aXNNb3VzZUV2ZW50KCkgfHwgZXZ0LT5pc0RyYWdFdmVu
dCgpIHx8IGV2dC0+aXNXaGVlbEV2ZW50KCkgfHwgZXZ0LT50eXBlKCkgPT0gYmx1ckV2ZW50KSkK
ICAgICAgICAgc3RhdGljX2Nhc3Q8UmVuZGVyVGV4dENvbnRyb2wqPihyZW5kZXJlcigpKS0+Zm9y
d2FyZEV2ZW50KGV2dCk7CkBAIC0yMzksMTEgKzI0NCwxMiBAQCB2b2lkIEhUTUxUZXh0QXJlYUVs
ZW1lbnQ6OnJlbmRlcmVyV2lsbEJlCiAKIHZvaWQgSFRNTFRleHRBcmVhRWxlbWVudDo6dXBkYXRl
VmFsdWUoKSBjb25zdAogewotICAgIGlmICghdmFsdWVNYXRjaGVzUmVuZGVyZXIoKSkgewotICAg
ICAgICBBU1NFUlQocmVuZGVyZXIoKSk7Ci0gICAgICAgIG1fdmFsdWUgPSBzdGF0aWNfY2FzdDxS
ZW5kZXJUZXh0Q29udHJvbCo+KHJlbmRlcmVyKCkpLT50ZXh0KCk7Ci0gICAgICAgIHNldFZhbHVl
TWF0Y2hlc1JlbmRlcmVyKCk7Ci0gICAgfQorICAgIGlmICh2YWx1ZU1hdGNoZXNSZW5kZXJlcigp
KQorICAgICAgICByZXR1cm47CisKKyAgICBBU1NFUlQocmVuZGVyZXIoKSk7CisgICAgbV92YWx1
ZSA9IHN0YXRpY19jYXN0PFJlbmRlclRleHRDb250cm9sKj4ocmVuZGVyZXIoKSktPnRleHQoKTsK
KyAgICBzZXRWYWx1ZU1hdGNoZXNSZW5kZXJlcigpOwogfQogCiBTdHJpbmcgSFRNTFRleHRBcmVh
RWxlbWVudDo6dmFsdWUoKSBjb25zdApAQCAtMjU2LDE3ICsyNjIsMTYgQEAgdm9pZCBIVE1MVGV4
dEFyZWFFbGVtZW50OjpzZXRWYWx1ZShjb25zdAogewogICAgIC8vIENvZGUgZWxzZXdoZXJlIG5v
cm1hbGl6ZXMgbGluZSBlbmRpbmdzIGFkZGVkIGJ5IHRoZSB1c2VyIHZpYSB0aGUga2V5Ym9hcmQg
b3IgcGFzdGluZy4KICAgICAvLyBXZSBtdXN0IG5vcm1hbGl6ZSBsaW5lIGVuZGluZ3MgY29taW5n
IGZyb20gSlMuCi0gICAgU3RyaW5nIHZhbHVlV2l0aE5vcm1hbGl6ZWRMaW5lRW5kaW5ncyA9IHZh
bHVlOwotICAgIHZhbHVlV2l0aE5vcm1hbGl6ZWRMaW5lRW5kaW5ncy5yZXBsYWNlKCJcclxuIiwg
IlxuIik7Ci0gICAgdmFsdWVXaXRoTm9ybWFsaXplZExpbmVFbmRpbmdzLnJlcGxhY2UoIlxyIiwg
IlxuIik7Ci0gICAgCi0gICAgbV92YWx1ZSA9IHZhbHVlV2l0aE5vcm1hbGl6ZWRMaW5lRW5kaW5n
czsKKyAgICBtX3ZhbHVlID0gdmFsdWU7CisgICAgbV92YWx1ZS5yZXBsYWNlKCJcclxuIiwgIlxu
Iik7CisgICAgbV92YWx1ZS5yZXBsYWNlKCdccicsICdcbicpOworCiAgICAgc2V0VmFsdWVNYXRj
aGVzUmVuZGVyZXIoKTsKICAgICBpZiAoaW5Eb2N1bWVudCgpKQogICAgICAgICBkb2N1bWVudCgp
LT51cGRhdGVSZW5kZXJpbmcoKTsKICAgICBpZiAocmVuZGVyZXIoKSkKICAgICAgICAgcmVuZGVy
ZXIoKS0+dXBkYXRlRnJvbUVsZW1lbnQoKTsKLSAgICAKKwogICAgIC8vIFNldCB0aGUgY2FyZXQg
dG8gdGhlIGVuZCBvZiB0aGUgdGV4dCB2YWx1ZS4KICAgICBpZiAoZG9jdW1lbnQoKS0+Zm9jdXNl
ZE5vZGUoKSA9PSB0aGlzKSB7CiAgICAgICAgIHVuc2lnbmVkIGVuZE9mU3RyaW5nID0gbV92YWx1
ZS5sZW5ndGgoKTsKQEAgLTI3OCw0NSArMjgzLDU3IEBAIHZvaWQgSFRNTFRleHRBcmVhRWxlbWVu
dDo6c2V0VmFsdWUoY29uc3QKIAogU3RyaW5nIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OmRlZmF1bHRW
YWx1ZSgpIGNvbnN0CiB7Ci0gICAgU3RyaW5nIHZhbCA9ICIiOworICAgIFN0cmluZyB2YWx1ZSA9
ICIiOwogCiAgICAgLy8gU2luY2UgdGhlcmUgbWF5IGJlIGNvbW1lbnRzLCBpZ25vcmUgbm9kZXMg
b3RoZXIgdGhhbiB0ZXh0IG5vZGVzLgotICAgIGZvciAoTm9kZSogbiA9IGZpcnN0Q2hpbGQoKTsg
bjsgbiA9IG4tPm5leHRTaWJsaW5nKCkpCisgICAgZm9yIChOb2RlKiBuID0gZmlyc3RDaGlsZCgp
OyBuOyBuID0gbi0+bmV4dFNpYmxpbmcoKSkgewogICAgICAgICBpZiAobi0+aXNUZXh0Tm9kZSgp
KQotICAgICAgICAgICAgdmFsICs9IHN0YXRpY19jYXN0PFRleHQqPihuKS0+ZGF0YSgpOworICAg
ICAgICAgICAgdmFsdWUgKz0gc3RhdGljX2Nhc3Q8VGV4dCo+KG4pLT5kYXRhKCk7CisgICAgfQog
Ci0gICAgLy8gRklYTUU6IFdlIHNob3VsZCBvbmx5IGRyb3AgdGhlIGZpcnN0IGNhcnJpYWdlIHJl
dHVybiBmb3IgdGhlIGRlZmF1bHQKLSAgICAvLyB2YWx1ZSBpbiB0aGUgb3JpZ2luYWwgc291cmNl
LCBub3QgZGVmYXVsdFZhbHVlcyBzZXQgZnJvbSBKUy4gVGhpcyBjb2RlCi0gICAgLy8gd2lsbCBk
byBib3RoLgotICAgIGlmICh2YWwubGVuZ3RoKCkgPj0gMiAmJiB2YWxbMF0gPT0gJ1xyJyAmJiB2
YWxbMV0gPT0gJ1xuJykKLSAgICAgICAgdmFsLnJlbW92ZSgwLCAyKTsKLSAgICBlbHNlIGlmICh2
YWwubGVuZ3RoKCkgPj0gMSAmJiAodmFsWzBdID09ICdccicgfHwgdmFsWzBdID09ICdcbicpKQot
ICAgICAgICB2YWwucmVtb3ZlKDAsIDEpOworICAgIFVDaGFyIGZpcnN0Q2hhcmFjdGVyID0gdmFs
dWVbMF07CisgICAgaWYgKGZpcnN0Q2hhcmFjdGVyID09ICdccicgJiYgdmFsdWVbMV0gPT0gJ1xu
JykKKyAgICAgICAgdmFsdWUucmVtb3ZlKDAsIDIpOworICAgIGVsc2UgaWYgKGZpcnN0Q2hhcmFj
dGVyID09ICdccicgfHwgZmlyc3RDaGFyYWN0ZXIgPT0gJ1xuJykKKyAgICAgICAgdmFsdWUucmVt
b3ZlKDAsIDEpOwogCi0gICAgcmV0dXJuIHZhbDsKKyAgICByZXR1cm4gdmFsdWU7CiB9CiAKIHZv
aWQgSFRNTFRleHRBcmVhRWxlbWVudDo6c2V0RGVmYXVsdFZhbHVlKGNvbnN0IFN0cmluZyYgZGVm
YXVsdFZhbHVlKQogewotICAgIC8vIFRvIHByZXNlcnZlIGNvbW1lbnRzLCByZW1vdmUgYWxsIHRo
ZSB0ZXh0IG5vZGVzLCB0aGVuIGFkZCBhIHNpbmdsZSBvbmUuCisgICAgLy8gVG8gcHJlc2VydmUg
Y29tbWVudHMsIHJlbW92ZSBvbmx5IHRoZSB0ZXh0IG5vZGVzLCB0aGVuIGFkZCBhIHNpbmdsZSB0
ZXh0IG5vZGUuCisKICAgICBWZWN0b3I8UmVmUHRyPE5vZGU+ID4gdGV4dE5vZGVzOwotICAgIGZv
ciAoTm9kZSogbiA9IGZpcnN0Q2hpbGQoKTsgbjsgbiA9IG4tPm5leHRTaWJsaW5nKCkpCisgICAg
Zm9yIChOb2RlKiBuID0gZmlyc3RDaGlsZCgpOyBuOyBuID0gbi0+bmV4dFNpYmxpbmcoKSkgewog
ICAgICAgICBpZiAobi0+aXNUZXh0Tm9kZSgpKQogICAgICAgICAgICAgdGV4dE5vZGVzLmFwcGVu
ZChuKTsKLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICB9CisgICAgRXhjZXB0aW9uQ29k
ZSBlYzsKICAgICBzaXplX3Qgc2l6ZSA9IHRleHROb2Rlcy5zaXplKCk7CiAgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBzaXplOyArK2kpCiAgICAgICAgIHJlbW92ZUNoaWxkKHRleHROb2Rlc1tp
XS5nZXQoKSwgZWMpOwotICAgIGluc2VydEJlZm9yZShkb2N1bWVudCgpLT5jcmVhdGVUZXh0Tm9k
ZShkZWZhdWx0VmFsdWUpLCBmaXJzdENoaWxkKCksIGVjKTsKLSAgICBzZXRWYWx1ZShkZWZhdWx0
VmFsdWUpOworCisgICAgLy8gTm9ybWFsaXplIGxpbmUgZW5kaW5ncy4KKyAgICAvLyBBZGQgYW4g
ZXh0cmEgbGluZSBicmVhayBpZiB0aGUgc3RyaW5nIHN0YXJ0cyB3aXRoIG9uZSwgc2luY2UKKyAg
ICAvLyB0aGUgY29kZSB0byByZWFkIGRlZmF1bHQgdmFsdWVzIGZyb20gdGhlIERPTSBzdHJpcHMg
dGhlIGxlYWRpbmcgb25lLgorICAgIFN0cmluZyB2YWx1ZSA9IGRlZmF1bHRWYWx1ZTsKKyAgICB2
YWx1ZS5yZXBsYWNlKCJcclxuIiwgIlxuIik7CisgICAgdmFsdWUucmVwbGFjZSgnXHInLCAnXG4n
KTsKKyAgICBpZiAodmFsdWVbMF0gPT0gJ1xuJykKKyAgICAgICAgdmFsdWUgPSAiXG4iICsgdmFs
dWU7CisKKyAgICBpbnNlcnRCZWZvcmUoZG9jdW1lbnQoKS0+Y3JlYXRlVGV4dE5vZGUodmFsdWUp
LCBmaXJzdENoaWxkKCksIGVjKTsKKworICAgIHNldFZhbHVlKHZhbHVlKTsKIH0KIAotdm9pZCBI
VE1MVGV4dEFyZWFFbGVtZW50OjphY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kVG9BbnlFbGVtZW50
KQordm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50OjphY2Nlc3NLZXlBY3Rpb24oYm9vbCkKIHsKICAg
ICBmb2N1cygpOwogfQogCi1TdHJpbmcgSFRNTFRleHRBcmVhRWxlbWVudDo6YWNjZXNzS2V5KCkg
Y29uc3QKK2NvbnN0IEF0b21pY1N0cmluZyYgSFRNTFRleHRBcmVhRWxlbWVudDo6YWNjZXNzS2V5
KCkgY29uc3QKIHsKICAgICByZXR1cm4gZ2V0QXR0cmlidXRlKGFjY2Vzc2tleUF0dHIpOwogfQpA
QCAtMzM4LDkgKzM1NSw5IEBAIHZvaWQgSFRNTFRleHRBcmVhRWxlbWVudDo6c2V0Um93cyhpbnQg
cm8KIAogU2VsZWN0aW9uIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OnNlbGVjdGlvbigpIGNvbnN0CiB7
Ci0gICAgaWYgKCFyZW5kZXJlcigpIHx8IGNhY2hlZFNlbFN0YXJ0ID09IC0xIHx8IGNhY2hlZFNl
bEVuZCA9PSAtMSkKKyAgICBpZiAoIXJlbmRlcmVyKCkgfHwgbV9jYWNoZWRTZWxlY3Rpb25TdGFy
dCA8IDAgfHwgbV9jYWNoZWRTZWxlY3Rpb25FbmQgPCAwKQogICAgICAgICByZXR1cm4gU2VsZWN0
aW9uKCk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlclRleHRDb250cm9sKj4ocmVuZGVy
ZXIoKSktPnNlbGVjdGlvbihjYWNoZWRTZWxTdGFydCwgY2FjaGVkU2VsRW5kKTsKKyAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8UmVuZGVyVGV4dENvbnRyb2wqPihyZW5kZXJlcigpKS0+c2VsZWN0aW9u
KG1fY2FjaGVkU2VsZWN0aW9uU3RhcnQsIG1fY2FjaGVkU2VsZWN0aW9uRW5kKTsKIH0KIAogYm9v
bCBIVE1MVGV4dEFyZWFFbGVtZW50OjpzaG91bGRVc2VJbnB1dE1ldGhvZCgpIGNvbnN0CkluZGV4
OiBXZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmgJKHJldmlzaW9uIDMxMDc4KQorKysgV2ViQ29y
ZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsOCArMzIs
NiBAQCBjbGFzcyBTZWxlY3Rpb247CiAKIGNsYXNzIEhUTUxUZXh0QXJlYUVsZW1lbnQgOiBwdWJs
aWMgSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZSB7CiBwdWJsaWM6Ci0gICAgZW51bSBX
cmFwTWV0aG9kIHsgdGFfTm9XcmFwLCB0YV9WaXJ0dWFsLCB0YV9QaHlzaWNhbCB9OwotCiAgICAg
SFRNTFRleHRBcmVhRWxlbWVudChEb2N1bWVudCosIEhUTUxGb3JtRWxlbWVudCogPSAwKTsKIAog
ICAgIHZpcnR1YWwgYm9vbCBjaGVja0RURChjb25zdCBOb2RlKiBuZXdDaGlsZCkgeyByZXR1cm4g
bmV3Q2hpbGQtPmlzVGV4dE5vZGUoKTsgfQpAQCAtNDEsNyArMzksNyBAQCBwdWJsaWM6CiAgICAg
aW50IGNvbHMoKSBjb25zdCB7IHJldHVybiBtX2NvbHM7IH0KICAgICBpbnQgcm93cygpIGNvbnN0
IHsgcmV0dXJuIG1fcm93czsgfQogCi0gICAgV3JhcE1ldGhvZCB3cmFwKCkgY29uc3QgeyByZXR1
cm4gbV93cmFwOyB9CisgICAgYm9vbCBzaG91bGRXcmFwVGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1f
d3JhcCAhPSBOb1dyYXA7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBpc0VudW1lcmF0YWJsZSgpIGNv
bnN0IHsgcmV0dXJuIHRydWU7IH0KIApAQCAtODAsMjUgKzc4LDI4IEBAIHB1YmxpYzoKICAgICAK
ICAgICB2aXJ0dWFsIHZvaWQgYWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZFRvQW55RWxlbWVudCk7
CiAgICAgCi0gICAgU3RyaW5nIGFjY2Vzc0tleSgpIGNvbnN0OworICAgIGNvbnN0IEF0b21pY1N0
cmluZyYgYWNjZXNzS2V5KCkgY29uc3Q7CiAgICAgdm9pZCBzZXRBY2Nlc3NLZXkoY29uc3QgU3Ry
aW5nJik7CiAKICAgICB2b2lkIHNldENvbHMoaW50KTsKICAgICB2b2lkIHNldFJvd3MoaW50KTsK
ICAgICAKLSAgICB2b2lkIGNhY2hlU2VsZWN0aW9uKGludCBzLCBpbnQgZSkgeyBjYWNoZWRTZWxT
dGFydCA9IHM7IGNhY2hlZFNlbEVuZCA9IGU7IH07CisgICAgdm9pZCBjYWNoZVNlbGVjdGlvbihp
bnQgcywgaW50IGUpIHsgbV9jYWNoZWRTZWxlY3Rpb25TdGFydCA9IHM7IG1fY2FjaGVkU2VsZWN0
aW9uRW5kID0gZTsgfTsKICAgICBTZWxlY3Rpb24gc2VsZWN0aW9uKCkgY29uc3Q7CiAKICAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkVXNlSW5wdXRNZXRob2QoKSBjb25zdDsKKwogcHJpdmF0ZToKKyAg
ICBlbnVtIFdyYXBNZXRob2QgeyBOb1dyYXAsIFNvZnRXcmFwLCBIYXJkV3JhcCB9OworCiAgICAg
dm9pZCB1cGRhdGVWYWx1ZSgpIGNvbnN0OwogCiAgICAgaW50IG1fcm93czsKICAgICBpbnQgbV9j
b2xzOwogICAgIFdyYXBNZXRob2QgbV93cmFwOwogICAgIG11dGFibGUgU3RyaW5nIG1fdmFsdWU7
Ci0gICAgaW50IGNhY2hlZFNlbFN0YXJ0OwotICAgIGludCBjYWNoZWRTZWxFbmQ7CisgICAgaW50
IG1fY2FjaGVkU2VsZWN0aW9uU3RhcnQ7CisgICAgaW50IG1fY2FjaGVkU2VsZWN0aW9uRW5kOwog
fTsKIAogfSAvL25hbWVzcGFjZQpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENv
bnRyb2wuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250
cm9sLmNwcAkocmV2aXNpb24gMzEwNzgpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0
Q29udHJvbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3NSw4ICsxNzUsOCBAQCBSZW5kZXJTdHls
ZSogUmVuZGVyVGV4dENvbnRyb2w6OmNyZWF0ZUluCiAgICAgICAgIHRleHRCbG9ja1N0eWxlLT5z
ZXRPdmVyZmxvd1goc3RhcnRTdHlsZS0+b3ZlcmZsb3dYKCkgPT0gT1ZJU0lCTEUgPyBPQVVUTyA6
IHN0YXJ0U3R5bGUtPm92ZXJmbG93WCgpKTsKICAgICAgICAgdGV4dEJsb2NrU3R5bGUtPnNldE92
ZXJmbG93WShzdGFydFN0eWxlLT5vdmVyZmxvd1koKSA9PSBPVklTSUJMRSA/IE9BVVRPIDogc3Rh
cnRTdHlsZS0+b3ZlcmZsb3dZKCkpOwogCi0gICAgICAgIC8vIFNldCB3b3JkIHdyYXAgcHJvcGVy
dHkgYmFzZWQgb24gd3JhcCBhdHRyaWJ1dGUKLSAgICAgICAgaWYgKHN0YXRpY19jYXN0PEhUTUxU
ZXh0QXJlYUVsZW1lbnQqPihlbGVtZW50KS0+d3JhcCgpID09IEhUTUxUZXh0QXJlYUVsZW1lbnQ6
OnRhX05vV3JhcCkgeworICAgICAgICAvLyBTZXQgd29yZCB3cmFwIHByb3BlcnR5IGJhc2VkIG9u
IHdyYXAgYXR0cmlidXRlLgorICAgICAgICBpZiAoIXN0YXRpY19jYXN0PEhUTUxUZXh0QXJlYUVs
ZW1lbnQqPihlbGVtZW50KS0+c2hvdWxkV3JhcFRleHQoKSkgewogICAgICAgICAgICAgdGV4dEJs
b2NrU3R5bGUtPnNldFdoaXRlU3BhY2UoUFJFKTsKICAgICAgICAgICAgIHRleHRCbG9ja1N0eWxl
LT5zZXRXb3JkV3JhcChOb3JtYWxXb3JkV3JhcCk7CiAgICAgICAgIH0gZWxzZSB7CkluZGV4OiBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzMTA3OSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDE5IEBACisyMDA4LTAzLTE2ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxl
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAt
IHRlc3QgZm9yIGJ1ZyBmaXhlcyBpbiBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNzg4MQorICAgICAgICAgIGEgbGl0dGxlIGNsZWFudXAgZm9yIEhUTUxUZXh0QXJlYUVs
ZW1lbnQKKworICAgICAgICAqIGZhc3QvZm9ybXMvdGV4dGFyZWEtZGVmYXVsdC12YWx1ZS1sZWFk
aW5nLW5ld2xpbmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3Rl
eHRhcmVhLWRlZmF1bHQtdmFsdWUtbGVhZGluZy1uZXdsaW5lLmh0bWw6IENvcGllZCBmcm9tIGZh
c3QvZm9ybXMvdGV4dGFyZWEtY3JsZi5odG1sLgorCisgICAgICAgICogZmFzdC9mb3Jtcy90ZXh0
YXJlYS1oYXJkLWxpbmV3cmFwLWV4cGVjdGVkLnR4dDogVXBkYXRlZC4KKyAgICAgICAgKiBmYXN0
L2Zvcm1zL3RleHRhcmVhLWhhcmQtbGluZXdyYXAuaHRtbDogQ2xlYW5lZCB1cCBhIGJpdC4KKwor
ICAgICAgICAqIGZhc3QvZm9ybXMvdGV4dGFyZWEtbGluZXdyYXAtZHluYW1pYy1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvdGV4dGFyZWEtbGluZXdyYXAtZHluYW1p
Yy5odG1sOiBDb3BpZWQgZnJvbSBmYXN0L2Zvcm1zL3RleHRhcmVhLWhhcmQtbGluZXdyYXAuaHRt
bC4KKwogMjAwOC0wMy0xNSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgU2FtLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90ZXh0YXJl
YS1kZWZhdWx0LXZhbHVlLWxlYWRpbmctbmV3bGluZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90ZXh0YXJlYS1kZWZhdWx0LXZhbHVlLWxlYWRpbmct
bmV3bGluZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL3RleHRhcmVhLWRlZmF1bHQtdmFsdWUtbGVhZGluZy1uZXdsaW5lLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSw5IEBACitUaGlzIHRlc3QgYXR0ZW1wdHMgdG8gc2V0IGEg
bGVhZGluZyBuZXdsaW5lIGluIGEgdGV4dCBhcmVhJ3MgZGVmYXVsdCB2YWx1ZS4KKworSWYgdGhl
IHRlc3QgcGFzc2VzLCB5b3Ugc2hvdWxkIHNlZSBhIDMgbGluZXMgc2F5aW5nICJQYXNzZWQiIGJl
bG93LgorCisKK1Bhc3NlZAorUGFzc2VkCitQYXNzZWQKKwoKUHJvcGVydHkgY2hhbmdlcyBvbjog
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90ZXh0YXJlYS1kZWZhdWx0LXZhbHVlLWxlYWRpbmctbmV3
bGluZS1leHBlY3RlZC50eHQKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46ZW9sLXN0eWxlCiAgICsgbmF0
aXZlCgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90ZXh0YXJlYS1kZWZhdWx0LXZhbHVl
LWxlYWRpbmctbmV3bGluZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZm9y
bXMvdGV4dGFyZWEtZGVmYXVsdC12YWx1ZS1sZWFkaW5nLW5ld2xpbmUuaHRtbAkocmV2aXNpb24g
MzEwNzgpCShmcm9tIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGV4dGFyZWEtY3JsZi5odG1sOjMx
MDc4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90ZXh0YXJlYS1kZWZhdWx0LXZhbHVlLWxl
YWRpbmctbmV3bGluZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDQgQEAKKzxodG1s
PgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Cisg
ICAgICAgICAgICBmdW5jdGlvbiBwcmludChtZXNzYWdlKQorICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgIHZhciBwYXJhZ3JhcGggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaSIpOwor
ICAgICAgICAgICAgICAgIHBhcmFncmFwaC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0
Tm9kZShtZXNzYWdlKSk7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImNvbnNvbGUiKS5hcHBlbmRDaGlsZChwYXJhZ3JhcGgpOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgZnVuY3Rpb24gdGVzdCgpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICAgICAgICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIHZhciBlbHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dCIpOworICAg
ICAgICAgICAgICAgIGVsdC52YWx1ZSA9ICJUaGlzXHJpc1xyYVxydGVzdCI7CisgICAgICAgICAg
ICAgICAgY29tcGFyZShlbHQudmFsdWUsICJUaGlzXG5pc1xuYVxudGVzdCIpOworICAgICAgICAg
ICAgICAgIGVsdC52YWx1ZSA9ICJBbmRcclxuaGVyZVxyXG5pc1xyXG50ZXN0XHJcbnR3byI7Cisg
ICAgICAgICAgICAgICAgY29tcGFyZShlbHQudmFsdWUsICJBbmRcbmhlcmVcbmlzXG50ZXN0XG50
d28iKTsKKyAgICAgICAgICAgICAgICBlbHQudmFsdWUgPSAiQW5kXG5sYXN0bHksXG50ZXN0XG50
aHJlZSI7CisgICAgICAgICAgICAgICAgY29tcGFyZShlbHQudmFsdWUsICJBbmRcbmxhc3RseSxc
bnRlc3RcbnRocmVlIik7CisgICAgICAgICAgICAgICAgZWx0LnZhbHVlID0gIiI7CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICBmdW5jdGlvbiBjb21wYXJlKHZhbCwgZXhwKQorICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgIGlmICh2YWwgPT0gZXhwKSB7CisgICAgICAgICAgICAgICAg
ICAgIHByaW50KCJQYXNzZWQiKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgICAgICAgICBwcmludCgiRmFpbGVkIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHkgb25sb2FkPSJ0
ZXN0KCk7Ij4KKyAgICAgICAgPHA+VGhpcyB0ZXN0IGF0dGVtcHRzIHRvIHNldCBub24tc3RhbmRh
cmQgbGluZSBlbmRpbmdzIGluIGEgdGV4dCBhcmVhIGFuZCByZWFkcyB0aGVtIGJhY2suIFRoZSBs
aW5lIGVuZGluZ3Mgc2hvdWxkIGFsbCBjb21lIGJhY2sgYXMgbGluZWZlZWRzLjwvcD4KKyAgICAg
ICAgPHA+SWYgdGhlIHRlc3QgcGFzc2VzLCB5b3Ugc2hvdWxkIHNlZSB0aHJlZSBsaW5lcyBzYXlp
bmcgIlBhc3NlZCIgYmVsb3cuPC9wPgorICAgICAgICA8aHIgLz4KKyAgICAgICAgPGZvcm0+Cisg
ICAgICAgICAgICA8dGV4dGFyZWEgaWQ9InRleHQiPjwvdGV4dGFyZWE+CisgICAgICAgIDwvZm9y
bT4KKyAgICAgICAgPGhyIC8+CisgICAgICAgIDxwPjxvbCBpZD0iY29uc29sZSI+PC9vbD48L3A+
CisgICAgPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90ZXh0
YXJlYS1kZWZhdWx0LXZhbHVlLWxlYWRpbmctbmV3bGluZS5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvdGV4dGFyZWEtZGVmYXVsdC12YWx1ZS1sZWFkaW5nLW5ld2xp
bmUuaHRtbAkocmV2aXNpb24gMzEwNzgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RleHRh
cmVhLWRlZmF1bHQtdmFsdWUtbGVhZGluZy1uZXdsaW5lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTEzLDEzICsxMywxMyBAQAogICAgICAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIHZhciBl
bHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dCIpOwotICAgICAgICAgICAgICAgIGVs
dC52YWx1ZSA9ICJUaGlzXHJpc1xyYVxydGVzdCI7Ci0gICAgICAgICAgICAgICAgY29tcGFyZShl
bHQudmFsdWUsICJUaGlzXG5pc1xuYVxudGVzdCIpOwotICAgICAgICAgICAgICAgIGVsdC52YWx1
ZSA9ICJBbmRcclxuaGVyZVxyXG5pc1xyXG50ZXN0XHJcbnR3byI7Ci0gICAgICAgICAgICAgICAg
Y29tcGFyZShlbHQudmFsdWUsICJBbmRcbmhlcmVcbmlzXG50ZXN0XG50d28iKTsKLSAgICAgICAg
ICAgICAgICBlbHQudmFsdWUgPSAiQW5kXG5sYXN0bHksXG50ZXN0XG50aHJlZSI7Ci0gICAgICAg
ICAgICAgICAgY29tcGFyZShlbHQudmFsdWUsICJBbmRcbmxhc3RseSxcbnRlc3RcbnRocmVlIik7
Ci0gICAgICAgICAgICAgICAgZWx0LnZhbHVlID0gIiI7CisgICAgICAgICAgICAgICAgZWx0LmRl
ZmF1bHRWYWx1ZSA9ICJcbnRlc3RpbmciOworICAgICAgICAgICAgICAgIGNvbXBhcmUoZWx0LmRl
ZmF1bHRWYWx1ZSwgIlxudGVzdGluZyIpOworICAgICAgICAgICAgICAgIGVsdC5kZWZhdWx0VmFs
dWUgPSAiXG5cbnRlc3RpbmciOworICAgICAgICAgICAgICAgIGNvbXBhcmUoZWx0LmRlZmF1bHRW
YWx1ZSwgIlxuXG50ZXN0aW5nIik7CisgICAgICAgICAgICAgICAgZWx0LmRlZmF1bHRWYWx1ZSA9
ICJcblxuXG50ZXN0aW5nIjsKKyAgICAgICAgICAgICAgICBjb21wYXJlKGVsdC5kZWZhdWx0VmFs
dWUsICJcblxuXG50ZXN0aW5nIik7CisgICAgICAgICAgICAgICAgZWx0LmRlZmF1bHRWYWx1ZSA9
ICIiOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgZnVuY3Rpb24gY29tcGFyZSh2YWwsIGV4
cCkKICAgICAgICAgICAgIHsKQEAgLTMyLDEzICszMiwxMyBAQAogICAgICAgICA8L3NjcmlwdD4K
ICAgICA8L2hlYWQ+CiAgICAgPGJvZHkgb25sb2FkPSJ0ZXN0KCk7Ij4KLSAgICAgICAgPHA+VGhp
cyB0ZXN0IGF0dGVtcHRzIHRvIHNldCBub24tc3RhbmRhcmQgbGluZSBlbmRpbmdzIGluIGEgdGV4
dCBhcmVhIGFuZCByZWFkcyB0aGVtIGJhY2suIFRoZSBsaW5lIGVuZGluZ3Mgc2hvdWxkIGFsbCBj
b21lIGJhY2sgYXMgbGluZWZlZWRzLjwvcD4KLSAgICAgICAgPHA+SWYgdGhlIHRlc3QgcGFzc2Vz
LCB5b3Ugc2hvdWxkIHNlZSB0aHJlZSBsaW5lcyBzYXlpbmcgIlBhc3NlZCIgYmVsb3cuPC9wPgot
ICAgICAgICA8aHIgLz4KKyAgICAgICAgPHA+VGhpcyB0ZXN0IGF0dGVtcHRzIHRvIHNldCBhIGxl
YWRpbmcgbmV3bGluZSBpbiBhIHRleHQgYXJlYSdzIGRlZmF1bHQgdmFsdWUuPC9wPgorICAgICAg
ICA8cD5JZiB0aGUgdGVzdCBwYXNzZXMsIHlvdSBzaG91bGQgc2VlIGEgMyBsaW5lcyBzYXlpbmcg
IlBhc3NlZCIgYmVsb3cuPC9wPgorICAgICAgICA8aHI+CiAgICAgICAgIDxmb3JtPgogICAgICAg
ICAgICAgPHRleHRhcmVhIGlkPSJ0ZXh0Ij48L3RleHRhcmVhPgogICAgICAgICA8L2Zvcm0+Ci0g
ICAgICAgIDxociAvPgorICAgICAgICA8aHI+CiAgICAgICAgIDxwPjxvbCBpZD0iY29uc29sZSI+
PC9vbD48L3A+CiAgICAgPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy90ZXh0YXJlYS1oYXJkLWxpbmV3cmFwLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RleHRhcmVhLWhhcmQtbGluZXdyYXAtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAzMTA3OCkKKysrIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGV4dGFyZWEtaGFy
ZC1saW5ld3JhcC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw2IEBACiBU
aGlzIHRlc3RzIHRoYXQgYSB0ZXh0YXJlYSdzIGRlZmF1bHQgdmFsdWUgaXMgc3VibWl0dGVkIHdp
dGggaGFyZCBsaW5lIHdyYXBzIChjYXJyaWFnZSByZXR1cm5zIHdoZXJlIGxpbmUgd3JhcHMgYXBw
ZWFyIGluIHRoZSB0ZXh0YXJlYSkuCiAKLUR1ZSB0byBhIGJ1ZywgdGhlIHRleHRhcmVhIGlzIGFj
dHVhbGx5IGEgYml0IHdpZGVyIHRoYW4gd2Ugc3BlY2lmeSB2aWEgdGhlIGNvbHMgYXR0cmlidXRl
LCBzbywgdGhlIG51bWJlciBhbmQgcG9zaXRpb24gb2YgdGhlIGNhcnJpYWdlIHJldHVybnMgaW4g
dGhlIHN1Ym1pdHRlZCBkYXRhIGlzIG5vdCB3aGF0IHlvdSdkIGV4cGVjdC4gVGhlIGV4cGVjdGVk
IHJlc3VsdHMgZm9yIHRoaXMgdGVzdGNhc2Ugc2hvdWxkIGJlIHVwZGF0ZWQgd2hlbiBodHRwOi8v
YnVnemlsbGEub3BlbmRhcndpbi5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDUgaXMgZml4ZWQuCitE
dWUgdG8gYSBidWcsIHRoZSB0ZXh0YXJlYSBpcyBhY3R1YWxseSBhIGJpdCB3aWRlciB0aGFuIHdl
IHNwZWNpZnkgdmlhIHRoZSBjb2xzIGF0dHJpYnV0ZSwgc28sIHRoZSBudW1iZXIgYW5kIHBvc2l0
aW9uIG9mIHRoZSBjYXJyaWFnZSByZXR1cm5zIGluIHRoZSBzdWJtaXR0ZWQgZGF0YSBpcyBub3Qg
d2hhdCB5b3UnZCBleHBlY3QuIFRoZSBleHBlY3RlZCByZXN1bHRzIGZvciB0aGlzIHRlc3RjYXNl
IHNob3VsZCBiZSB1cGRhdGVkIHdoZW4gYnVnIDc1MDUgaXMgZml4ZWQuCiAKICAKIFN1Y2Nlc3MK
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGV4dGFyZWEtaGFyZC1saW5ld3JhcC5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGV4dGFyZWEtaGFyZC1saW5l
d3JhcC5odG1sCShyZXZpc2lvbiAzMTA3OCkKKysrIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGV4
dGFyZWEtaGFyZC1saW5ld3JhcC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDM2ICsxLDI4IEBA
CiA8aHRtbD4KLTxoZWFkPgotPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50
PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9aXNvLTg4NTktMSI+Ci08dGl0bGU+Q2hhcnNldHMgYW5kIHN1
Ym1pdHRpbmcgZm9ybXM8L3RpdGxlPgotPC9oZWFkPgogPGJvZHk+CiA8cD5UaGlzIHRlc3RzIHRo
YXQgYSB0ZXh0YXJlYSdzIGRlZmF1bHQgdmFsdWUgaXMgc3VibWl0dGVkIHdpdGggaGFyZCBsaW5l
IHdyYXBzIChjYXJyaWFnZSByZXR1cm5zIHdoZXJlIGxpbmUgd3JhcHMgYXBwZWFyIGluIHRoZSB0
ZXh0YXJlYSkuPC9wPgotPHA+RHVlIHRvIGEgYnVnLCB0aGUgdGV4dGFyZWEgaXMgYWN0dWFsbHkg
YSBiaXQgd2lkZXIgdGhhbiB3ZSBzcGVjaWZ5IHZpYSB0aGUgY29scyBhdHRyaWJ1dGUsIHNvLCB0
aGUgbnVtYmVyIGFuZCBwb3NpdGlvbiBvZiB0aGUgY2FycmlhZ2UgcmV0dXJucyBpbiB0aGUgc3Vi
bWl0dGVkIGRhdGEgaXMgbm90IHdoYXQgeW91J2QgZXhwZWN0LiAgVGhlIGV4cGVjdGVkIHJlc3Vs
dHMgZm9yIHRoaXMgdGVzdGNhc2Ugc2hvdWxkIGJlIHVwZGF0ZWQgd2hlbiA8YSBocmVmPSJodHRw
Oi8vYnVnemlsbGEub3BlbmRhcndpbi5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDUiPmh0dHA6Ly9i
dWd6aWxsYS5vcGVuZGFyd2luLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwNTwvYT4gaXMgZml4ZWQu
PC9wPgorPHA+RHVlIHRvIGEgYnVnLCB0aGUgdGV4dGFyZWEgaXMgYWN0dWFsbHkgYSBiaXQgd2lk
ZXIgdGhhbiB3ZSBzcGVjaWZ5IHZpYSB0aGUgY29scyBhdHRyaWJ1dGUsIHNvLCB0aGUgbnVtYmVy
IGFuZCBwb3NpdGlvbiBvZiB0aGUgY2FycmlhZ2UgcmV0dXJucyBpbiB0aGUgc3VibWl0dGVkIGRh
dGEgaXMgbm90IHdoYXQgeW91J2QgZXhwZWN0LgorVGhlIGV4cGVjdGVkIHJlc3VsdHMgZm9yIHRo
aXMgdGVzdGNhc2Ugc2hvdWxkIGJlIHVwZGF0ZWQgd2hlbiA8YSBocmVmPSJodHRwOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NTA1Ij5idWcgNzUwNTwvYT4gaXMgZml4ZWQuPC9w
PgogPGZvcm0gbmFtZT0iZiIgbWV0aG9kPSI/IiBhY3Rpb249InRleHRhcmVhLWhhcmQtbGluZXdy
YXAuaHRtbCI+CiA8dGV4dGFyZWEgaWQ9InRleHRhcmVhIiBuYW1lPSJ0ZXh0YXJlYSIgd3JhcD0i
aGFyZCIgY29scz0iNSI+MTIzNDU2Nzg5PC90ZXh0YXJlYT4KIDxpbnB1dCB0eXBlPSJzdWJtaXQi
PgogPC9mb3JtPgogPHNjcmlwdD4KIGlmIChkb2N1bWVudC5VUkwuaW5kZXhPZignPycpID09IC0x
KSB7Ci0KICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CiAgICAgICAgIHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CiAgICAgICAgIHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAgICAgfQotICAgIAogICAgIGRv
Y3VtZW50LmYuc3VibWl0KCk7Ci0gICAgICAgIAogfSBlbHNlIHsKICAgICB2YXIgZm9ybURhdGEg
PSBkb2N1bWVudC5VUkwuc3Vic3RyaW5nKGRvY3VtZW50LlVSTC5pbmRleE9mKCc/JykgKyAxLCBk
b2N1bWVudC5VUkwubGVuZ3RoKTsKICAgICBpZiAoZm9ybURhdGEgPT0gInRleHRhcmVhPTEyMzQ1
NjclMEQlMEE4OSIpCiAgICAgICAgIGRvY3VtZW50LndyaXRlKCJTdWNjZXNzIik7CiAgICAgZWxz
ZQotICAgICAgICBkb2N1bWVudC53cml0ZSgiRmFpbHVyZS4gIFRoZSBmb3JtIGRhdGEgdGhhdCBz
aG91bGQgaGF2ZSBiZWVuIHN1Ym1pdHRlZDogdGV4dGFyZWE9MTIzNDU2NyUwRCUwQTg5PGJyPlRo
aXMgaXMgd2hhdCB3YXMgYWN0dWFsbHkgc3VibWl0dGVkOiAiICsgZm9ybURhdGEpOwotICAgIAor
ICAgICAgICBkb2N1bWVudC53cml0ZSgiRmFpbHVyZS4gIFRoZSBmb3JtIGRhdGEgdGhhdCBzaG91
bGQgaGF2ZSBiZWVuIHN1Ym1pdHRlZDogdGV4dGFyZWE9MTIzNDU2NyUwRCUwQTg5PGJyPlRoaXMg
aXMgd2hhdCB3YXMgYWN0dWFsbHkgc3VibWl0dGVkOiAiICsgZm9ybURhdGEpOyAgICAKICAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgICAgICB3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwogfQotCiA8L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRt
bD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGV4dGFyZWEtbGluZXdyYXAtZHluYW1p
Yy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90ZXh0
YXJlYS1saW5ld3JhcC1keW5hbWljLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL2Zhc3QvZm9ybXMvdGV4dGFyZWEtbGluZXdyYXAtZHluYW1pYy1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0cyB0aGF0IGEgdGV4dGFyZWEg
d2hlcmUgdGhlIHdyYXAgYXR0cmlidXRlIGlzIHJlbW92ZWQgcmV2ZXJ0cyB0byBub3JtYWwgd3Jh
cHBpbmcgYmVoYXZpb3IuCisKKyAKK1N1Y2Nlc3MKClByb3BlcnR5IGNoYW5nZXMgb246IExheW91
dFRlc3RzL2Zhc3QvZm9ybXMvdGV4dGFyZWEtbGluZXdyYXAtZHluYW1pYy1leHBlY3RlZC50eHQK
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fXwpOYW1lOiBzdm46ZW9sLXN0eWxlCiAgICsgbmF0aXZlCgpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy90ZXh0YXJlYS1saW5ld3JhcC1keW5hbWljLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90ZXh0YXJlYS1saW5ld3JhcC1keW5hbWljLmh0
bWwJKHJldmlzaW9uIDMxMDc4KQkoZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RleHRhcmVh
LWhhcmQtbGluZXdyYXAuaHRtbDozMTA3OCkKKysrIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGV4
dGFyZWEtbGluZXdyYXAtZHluYW1pYy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzYg
QEAKKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJjb250ZW50LXR5cGUiIGNvbnRl
bnQ9InRleHQvaHRtbDsgY2hhcnNldD1pc28tODg1OS0xIj4KKzx0aXRsZT5DaGFyc2V0cyBhbmQg
c3VibWl0dGluZyBmb3JtczwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdHMg
dGhhdCBhIHRleHRhcmVhJ3MgZGVmYXVsdCB2YWx1ZSBpcyBzdWJtaXR0ZWQgd2l0aCBoYXJkIGxp
bmUgd3JhcHMgKGNhcnJpYWdlIHJldHVybnMgd2hlcmUgbGluZSB3cmFwcyBhcHBlYXIgaW4gdGhl
IHRleHRhcmVhKS48L3A+Cis8cD5EdWUgdG8gYSBidWcsIHRoZSB0ZXh0YXJlYSBpcyBhY3R1YWxs
eSBhIGJpdCB3aWRlciB0aGFuIHdlIHNwZWNpZnkgdmlhIHRoZSBjb2xzIGF0dHJpYnV0ZSwgc28s
IHRoZSBudW1iZXIgYW5kIHBvc2l0aW9uIG9mIHRoZSBjYXJyaWFnZSByZXR1cm5zIGluIHRoZSBz
dWJtaXR0ZWQgZGF0YSBpcyBub3Qgd2hhdCB5b3UnZCBleHBlY3QuICBUaGUgZXhwZWN0ZWQgcmVz
dWx0cyBmb3IgdGhpcyB0ZXN0Y2FzZSBzaG91bGQgYmUgdXBkYXRlZCB3aGVuIDxhIGhyZWY9Imh0
dHA6Ly9idWd6aWxsYS5vcGVuZGFyd2luLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwNSI+aHR0cDov
L2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD03NTA1PC9hPiBpcyBmaXhl
ZC48L3A+Cis8Zm9ybSBuYW1lPSJmIiBtZXRob2Q9Ij8iIGFjdGlvbj0idGV4dGFyZWEtaGFyZC1s
aW5ld3JhcC5odG1sIj4KKzx0ZXh0YXJlYSBpZD0idGV4dGFyZWEiIG5hbWU9InRleHRhcmVhIiB3
cmFwPSJoYXJkIiBjb2xzPSI1Ij4xMjM0NTY3ODk8L3RleHRhcmVhPgorPGlucHV0IHR5cGU9InN1
Ym1pdCI+Cis8L2Zvcm0+Cis8c2NyaXB0PgoraWYgKGRvY3VtZW50LlVSTC5pbmRleE9mKCc/Jykg
PT0gLTEpIHsKKworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAg
ICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgd2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisgICAgCisg
ICAgZG9jdW1lbnQuZi5zdWJtaXQoKTsKKyAgICAgICAgCit9IGVsc2UgeworICAgIHZhciBmb3Jt
RGF0YSA9IGRvY3VtZW50LlVSTC5zdWJzdHJpbmcoZG9jdW1lbnQuVVJMLmluZGV4T2YoJz8nKSAr
IDEsIGRvY3VtZW50LlVSTC5sZW5ndGgpOworICAgIGlmIChmb3JtRGF0YSA9PSAidGV4dGFyZWE9
MTIzNDU2NyUwRCUwQTg5IikKKyAgICAgICAgZG9jdW1lbnQud3JpdGUoIlN1Y2Nlc3MiKTsKKyAg
ICBlbHNlCisgICAgICAgIGRvY3VtZW50LndyaXRlKCJGYWlsdXJlLiAgVGhlIGZvcm0gZGF0YSB0
aGF0IHNob3VsZCBoYXZlIGJlZW4gc3VibWl0dGVkOiB0ZXh0YXJlYT0xMjM0NTY3JTBEJTBBODk8
YnI+VGhpcyBpcyB3aGF0IHdhcyBhY3R1YWxseSBzdWJtaXR0ZWQ6ICIgKyBmb3JtRGF0YSk7Cisg
ICAgCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgd2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KKworPC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RleHRhcmVhLWxpbmV3
cmFwLWR5bmFtaWMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Rl
eHRhcmVhLWxpbmV3cmFwLWR5bmFtaWMuaHRtbAkocmV2aXNpb24gMzEwNzgpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL3RleHRhcmVhLWxpbmV3cmFwLWR5bmFtaWMuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMSwzNiArMSwyNyBAQAogPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGh0dHAtZXF1aXY9
ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PWlzby04ODU5LTEiPgot
PHRpdGxlPkNoYXJzZXRzIGFuZCBzdWJtaXR0aW5nIGZvcm1zPC90aXRsZT4KLTwvaGVhZD4KIDxi
b2R5PgotPHA+VGhpcyB0ZXN0cyB0aGF0IGEgdGV4dGFyZWEncyBkZWZhdWx0IHZhbHVlIGlzIHN1
Ym1pdHRlZCB3aXRoIGhhcmQgbGluZSB3cmFwcyAoY2FycmlhZ2UgcmV0dXJucyB3aGVyZSBsaW5l
IHdyYXBzIGFwcGVhciBpbiB0aGUgdGV4dGFyZWEpLjwvcD4KLTxwPkR1ZSB0byBhIGJ1ZywgdGhl
IHRleHRhcmVhIGlzIGFjdHVhbGx5IGEgYml0IHdpZGVyIHRoYW4gd2Ugc3BlY2lmeSB2aWEgdGhl
IGNvbHMgYXR0cmlidXRlLCBzbywgdGhlIG51bWJlciBhbmQgcG9zaXRpb24gb2YgdGhlIGNhcnJp
YWdlIHJldHVybnMgaW4gdGhlIHN1Ym1pdHRlZCBkYXRhIGlzIG5vdCB3aGF0IHlvdSdkIGV4cGVj
dC4gIFRoZSBleHBlY3RlZCByZXN1bHRzIGZvciB0aGlzIHRlc3RjYXNlIHNob3VsZCBiZSB1cGRh
dGVkIHdoZW4gPGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVn
LmNnaT9pZD03NTA1Ij5odHRwOi8vYnVnemlsbGEub3BlbmRhcndpbi5vcmcvc2hvd19idWcuY2dp
P2lkPTc1MDU8L2E+IGlzIGZpeGVkLjwvcD4KLTxmb3JtIG5hbWU9ImYiIG1ldGhvZD0iPyIgYWN0
aW9uPSJ0ZXh0YXJlYS1oYXJkLWxpbmV3cmFwLmh0bWwiPgorPHA+VGhpcyB0ZXN0cyB0aGF0IGEg
dGV4dGFyZWEgd2hlcmUgdGhlIHdyYXAgYXR0cmlidXRlIGlzIHJlbW92ZWQgcmV2ZXJ0cyB0byBu
b3JtYWwgd3JhcHBpbmcgYmVoYXZpb3IuPC9wPgorPGZvcm0gbmFtZT0iZiIgbWV0aG9kPSI/IiBh
Y3Rpb249InRleHRhcmVhLWxpbmV3cmFwLWR5bmFtaWMuaHRtbCI+CiA8dGV4dGFyZWEgaWQ9InRl
eHRhcmVhIiBuYW1lPSJ0ZXh0YXJlYSIgd3JhcD0iaGFyZCIgY29scz0iNSI+MTIzNDU2Nzg5PC90
ZXh0YXJlYT4KIDxpbnB1dCB0eXBlPSJzdWJtaXQiPgogPC9mb3JtPgogPHNjcmlwdD4KIGlmIChk
b2N1bWVudC5VUkwuaW5kZXhPZignPycpID09IC0xKSB7Ci0KICAgICBpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKSB7CiAgICAgICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5k
dW1wQXNUZXh0KCk7CiAgICAgICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50
aWxEb25lKCk7CiAgICAgfQotICAgIAorICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXh0
YXJlYSIpLnJlbW92ZUF0dHJpYnV0ZSgid3JhcCIpOwogICAgIGRvY3VtZW50LmYuc3VibWl0KCk7
Ci0gICAgICAgIAogfSBlbHNlIHsKICAgICB2YXIgZm9ybURhdGEgPSBkb2N1bWVudC5VUkwuc3Vi
c3RyaW5nKGRvY3VtZW50LlVSTC5pbmRleE9mKCc/JykgKyAxLCBkb2N1bWVudC5VUkwubGVuZ3Ro
KTsKLSAgICBpZiAoZm9ybURhdGEgPT0gInRleHRhcmVhPTEyMzQ1NjclMEQlMEE4OSIpCisgICAg
aWYgKGZvcm1EYXRhID09ICJ0ZXh0YXJlYT0xMjM0NTY3ODkiKQogICAgICAgICBkb2N1bWVudC53
cml0ZSgiU3VjY2VzcyIpOwogICAgIGVsc2UKLSAgICAgICAgZG9jdW1lbnQud3JpdGUoIkZhaWx1
cmUuICBUaGUgZm9ybSBkYXRhIHRoYXQgc2hvdWxkIGhhdmUgYmVlbiBzdWJtaXR0ZWQ6IHRleHRh
cmVhPTEyMzQ1NjclMEQlMEE4OTxicj5UaGlzIGlzIHdoYXQgd2FzIGFjdHVhbGx5IHN1Ym1pdHRl
ZDogIiArIGZvcm1EYXRhKTsKLSAgICAKKyAgICAgICAgZG9jdW1lbnQud3JpdGUoIkZhaWx1cmUu
ICBUaGUgZm9ybSBkYXRhIHRoYXQgc2hvdWxkIGhhdmUgYmVlbiBzdWJtaXR0ZWQ6IHRleHRhcmVh
PTEyMzQ1Njc4OTxicj5UaGlzIGlzIHdoYXQgd2FzIGFjdHVhbGx5IHN1Ym1pdHRlZDogIiArIGZv
cm1EYXRhKTsgICAgCiAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICAg
ICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKIH0KLQogPC9zY3Jp
cHQ+CiA8L2JvZHk+CiA8L2h0bWw+Cg==
</data>
<flag name="review"
          id="8667"
          type_id="1"
          status="+"
          setter="mrowe"
    />
          </attachment>
      

    </bug>

</bugzilla>