<?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>160706</bug_id>
          
          <creation_ts>2016-08-09 13:16:41 -0700</creation_ts>
          <short_desc>Use unsigned for locations in URL</short_desc>
          <delta_ts>2016-08-10 10:07:21 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1218813</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-08-09 13:16:41 -0700</bug_when>
    <thetext>Use unsigned for locations in URL</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218819</commentid>
    <comment_count>1</comment_count>
      <attachid>285668</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-08-09 13:33:03 -0700</bug_when>
    <thetext>Created attachment 285668
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218962</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2016-08-09 20:45:03 -0700</bug_when>
    <thetext>Looks like this breaks 32-bit builds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218970</commentid>
    <comment_count>3</comment_count>
      <attachid>285668</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2016-08-09 21:54:22 -0700</bug_when>
    <thetext>Comment on attachment 285668
Patch

r- for build breakage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218974</commentid>
    <comment_count>4</comment_count>
      <attachid>285714</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-08-09 22:39:36 -0700</bug_when>
    <thetext>Created attachment 285714
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219040</commentid>
    <comment_count>5</comment_count>
      <attachid>285714</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-10 10:07:17 -0700</bug_when>
    <thetext>Comment on attachment 285714
Patch

Clearing flags on attachment: 285714

Committed r204334: &lt;http://trac.webkit.org/changeset/204334&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219042</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-10 10:07:21 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285668</attachid>
            <date>2016-08-09 13:33:03 -0700</date>
            <delta_ts>2016-08-09 22:39:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160706-20160809133129.patch</filename>
            <type>text/plain</type>
            <size>19860</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNDI5MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBACisyMDE2LTA4LTA5ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVXNlIHVuc2ln
bmVkIGZvciBsb2NhdGlvbnMgaW4gVVJMCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjA3MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBObyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9VUkwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNTY2hlbWVGaXJzdENoYXIpOgorICAg
ICAgICAoV2ViQ29yZTo6ZmluZEZpcnN0T2YpOgorICAgICAgICAoV2ViQ29yZTo6Y2hlY2tFbmNv
ZGVkU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlVSTDo6aG9zdCk6CisgICAgICAgIChXZWJD
b3JlOjpVUkw6OnByb3RvY29sSXMpOgorICAgICAgICAoV2ViQ29yZTo6VVJMOjpzZXRQb3J0KToK
KyAgICAgICAgKFdlYkNvcmU6OlVSTDo6c2V0VXNlcik6CisgICAgICAgIChXZWJDb3JlOjpVUkw6
OnNldFBhc3MpOgorICAgICAgICAoV2ViQ29yZTo6ZXNjYXBlQW5kQXBwZW5kTm9uSGllcmFyY2hp
Y2FsUGFydCk6CisgICAgICAgIChXZWJDb3JlOjpjb3B5UGF0aFJlbW92aW5nRG90cyk6CisgICAg
ICAgIChXZWJDb3JlOjpVUkw6OnNlcmlhbGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjppc0RlZmF1
bHRQb3J0Rm9yU2NoZW1lKToKKyAgICAgICAgKFdlYkNvcmU6Omhvc3RQb3J0SXNFbXB0eUJ1dENy
ZWRlbnRpYWxzQXJlUHJlc2VudCk6CisgICAgICAgIChXZWJDb3JlOjpVUkw6OnBhcnNlKToKKyAg
ICAgICAgKFdlYkNvcmU6OnByb3RvY29sSG9zdEFuZFBvcnRBcmVFcXVhbCk6CisgICAgICAgIChX
ZWJDb3JlOjpob3N0c0FyZUVxdWFsKToKKyAgICAgICAgKFdlYkNvcmU6OnByb3RvY29sSXMpOgor
ICAgICAgICAoV2ViQ29yZTo6ZmluZEhvc3RuYW1lc0luTWFpbFRvVVJMKToKKyAgICAgICAgKFdl
YkNvcmU6OmZpbmRIb3N0bmFtZUluSGllcmFyY2hpY2FsVVJMKToKKyAgICAgICAgKFdlYkNvcmU6
OmVuY29kZUhvc3RuYW1lcyk6CisgICAgICAgIChXZWJDb3JlOjplbmNvZGVSZWxhdGl2ZVN0cmlu
Zyk6CisgICAgICAgICogcGxhdGZvcm0vVVJMLmg6CisKIDIwMTYtMDgtMDkgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBJdCBzaG91bGQgYmUgcG9zc2libGUgdG8g
cmUtaW5pdGlhbGl6ZSBhIEN1c3RvbUV2ZW50IGFmdGVyIGl0J3MgYmVlbiBkaXNwYXRjaGVkCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkwuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1VSTC5jcHAJKHJldmlzaW9uIDIwNDI3NSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1VSTC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0MCw3ICszNDAsNyBA
QCBzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBwZXJjZW50RW5jb2RlCiAgICAgLyogMjUyICov
IFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDI1MyAqLyBQZXJjZW50RW5jb2RlU2ltcGxlLCAvKiAy
NTQgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwgLyogMjU1ICovIFBlcmNlbnRFbmNvZGVTaW1wbGUK
IH07CiAKLXN0YXRpYyBpbnQgY29weVBhdGhSZW1vdmluZ0RvdHMoY2hhciogZHN0LCBjb25zdCBj
aGFyKiBzcmMsIGludCBzcmNTdGFydCwgaW50IHNyY0VuZCk7CitzdGF0aWMgdW5zaWduZWQgY29w
eVBhdGhSZW1vdmluZ0RvdHMoY2hhciogZHN0LCBjb25zdCBjaGFyKiBzcmMsIHVuc2lnbmVkIHNy
Y1N0YXJ0LCB1bnNpZ25lZCBzcmNFbmQpOwogc3RhdGljIGJvb2wgZW5jb2RlUmVsYXRpdmVTdHJp
bmcoY29uc3QgU3RyaW5nJiByZWwsIGNvbnN0IFRleHRFbmNvZGluZyYsIENoYXJCdWZmZXImIG91
cHV0KTsKIHN0YXRpYyBTdHJpbmcgc3Vic3RpdHV0ZUJhY2tzbGFzaGVzKGNvbnN0IFN0cmluZyYp
OwogCkBAIC0zOTYsNyArMzk2LDggQEAgc3RhdGljIHZvaWQgYXBwZW5kQVNDSUkoY29uc3QgU3Ry
aW5nJiBiYQogLy8gUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGluZGV4IGluIHN0cmlu
ZyB8c3wgb2YgYW55IG9mIHRoZSBjaGFyYWN0ZXJzCiAvLyBpbiB8dG9GaW5kfC4gfHRvRmluZHwg
c2hvdWxkIGJlIGEgbnVsbC10ZXJtaW5hdGVkIHN0cmluZywgYWxsIGNoYXJhY3RlcnMgdXAKIC8v
IHRvIHRoZSBudWxsIHdpbGwgYmUgc2VhcmNoZWQuIFJldHVybnMgaW50IGlmIG5vdCBmb3VuZC4K
LXN0YXRpYyBpbnQgZmluZEZpcnN0T2YoU3RyaW5nVmlldyBzdHJpbmcsIHVuc2lnbmVkIHN0YXJ0
UG9zaXRpb24sIGNvbnN0IGNoYXIqIHRhcmdldCkKK2NvbnN0IHVuc2lnbmVkIG5vdEZvdW5kVW5z
aWduZWQgPSAtMTsKK3N0YXRpYyB1bnNpZ25lZCBmaW5kRmlyc3RPZihTdHJpbmdWaWV3IHN0cmlu
ZywgdW5zaWduZWQgc3RhcnRQb3NpdGlvbiwgY29uc3QgY2hhciogdGFyZ2V0KQogewogICAgIHVu
c2lnbmVkIGxlbmd0aCA9IHN0cmluZy5sZW5ndGgoKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSBz
dGFydFBvc2l0aW9uOyBpIDwgbGVuZ3RoOyArK2kpIHsKQEAgLTQwNSw3ICs0MDYsNyBAQCBzdGF0
aWMgaW50IGZpbmRGaXJzdE9mKFN0cmluZ1ZpZXcgc3RyaW5nCiAgICAgICAgICAgICAgICAgcmV0
dXJuIGk7CiAgICAgICAgIH0KICAgICB9Ci0gICAgcmV0dXJuIC0xOworICAgIHJldHVybiBub3RG
b3VuZFVuc2lnbmVkOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgY2hlY2tFbmNvZGVkU3RyaW5n
KGNvbnN0IFN0cmluZyYgdXJsKQpAQCAtNjkwLDcgKzY5MSw3IEBAIFN0cmluZyBVUkw6OnByb3Rv
Y29sKCkgY29uc3QKIAogU3RyaW5nIFVSTDo6aG9zdCgpIGNvbnN0CiB7Ci0gICAgaW50IHN0YXJ0
ID0gaG9zdFN0YXJ0KCk7CisgICAgdW5zaWduZWQgc3RhcnQgPSBob3N0U3RhcnQoKTsKICAgICBy
ZXR1cm4gbV9zdHJpbmcuc3Vic3RyaW5nKHN0YXJ0LCBtX2hvc3RFbmQgLSBzdGFydCk7CiB9CiAK
QEAgLTc5OCw3ICs3OTksNyBAQCBib29sIFVSTDo6cHJvdG9jb2xJcyhjb25zdCBjaGFyKiBwcm90
b2NvCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vIERvIHRoZSBjb21wYXJpc29uIHdp
dGhvdXQgbWFraW5nIGEgbmV3IHN0cmluZyBvYmplY3QuCi0gICAgZm9yIChpbnQgaSA9IDA7IGkg
PCBtX3NjaGVtZUVuZDsgKytpKSB7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fc2No
ZW1lRW5kOyArK2kpIHsKICAgICAgICAgaWYgKCFwcm90b2NvbFtpXSB8fCAhaXNTY2hlbWVDaGFy
YWN0ZXJNYXRjaElnbm9yaW5nQ2FzZShtX3N0cmluZ1tpXSwgcHJvdG9jb2xbaV0pKQogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTkxNSw3ICs5MTYsNyBAQCB2b2lkIFVSTDo6
c2V0UG9ydCh1bnNpZ25lZCBzaG9ydCBpKQogICAgICAgICByZXR1cm47CiAKICAgICBib29sIGNv
bG9uTmVlZGVkID0gbV9wb3J0RW5kID09IG1faG9zdEVuZDsKLSAgICBpbnQgcG9ydFN0YXJ0ID0g
KGNvbG9uTmVlZGVkID8gbV9ob3N0RW5kIDogbV9ob3N0RW5kICsgMSk7CisgICAgdW5zaWduZWQg
cG9ydFN0YXJ0ID0gKGNvbG9uTmVlZGVkID8gbV9ob3N0RW5kIDogbV9ob3N0RW5kICsgMSk7CiAK
ICAgICBwYXJzZShtX3N0cmluZy5sZWZ0KHBvcnRTdGFydCkgKyAoY29sb25OZWVkZWQgPyAiOiIg
OiAiIikgKyBTdHJpbmc6Om51bWJlcihpKSArIG1fc3RyaW5nLnN1YnN0cmluZyhtX3BvcnRFbmQp
KTsKIH0KQEAgLTk2OSw3ICs5NzAsNyBAQCB2b2lkIFVSTDo6c2V0VXNlcihjb25zdCBTdHJpbmcm
IHVzZXIpCiAgICAgLy8gRklYTUU6IE5vbi1BU0NJSSBjaGFyYWN0ZXJzIG11c3QgYmUgZW5jb2Rl
ZCBhbmQgZXNjYXBlZCB0byBtYXRjaCBwYXJzZSgpIGV4cGVjdGF0aW9ucywKICAgICAvLyBhbmQg
dG8gYXZvaWQgY2hhbmdpbmcgbW9yZSB0aGFuIGp1c3QgdGhlIHVzZXIgbG9naW4uCiAKLSAgICBp
bnQgZW5kID0gbV91c2VyRW5kOworICAgIHVuc2lnbmVkIGVuZCA9IG1fdXNlckVuZDsKICAgICBp
ZiAoIXVzZXIuaXNFbXB0eSgpKSB7CiAgICAgICAgIFN0cmluZyB1ID0gZW5jb2RlV2l0aFVSTEVz
Y2FwZVNlcXVlbmNlcyh1c2VyLCBQZXJjZW50RW5jb2RlVXNlcm5hbWUpOwogICAgICAgICBpZiAo
bV91c2VyU3RhcnQgPT0gbV9zY2hlbWVFbmQgKyAxKQpAQCAtOTkzLDcgKzk5NCw3IEBAIHZvaWQg
VVJMOjpzZXRQYXNzKGNvbnN0IFN0cmluZyYgcGFzc3dvcmQKICAgICBpZiAoIW1faXNWYWxpZCkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgaW50IGVuZCA9IG1fcGFzc3dvcmRFbmQ7CisgICAgdW5z
aWduZWQgZW5kID0gbV9wYXNzd29yZEVuZDsKICAgICBpZiAoIXBhc3N3b3JkLmlzRW1wdHkoKSkg
ewogICAgICAgICBTdHJpbmcgcCA9ICI6IiArIGVuY29kZVdpdGhVUkxFc2NhcGVTZXF1ZW5jZXMo
cGFzc3dvcmQsIFBlcmNlbnRFbmNvZGVQYXNzd29yZCkgKyAiQCI7CiAgICAgICAgIGlmIChtX3Vz
ZXJFbmQgPT0gbV9zY2hlbWVFbmQgKyAxKQpAQCAtMTEyMCw3ICsxMTIxLDcgQEAgc3RhdGljIHZv
aWQgZXNjYXBlQW5kQXBwZW5kTm9uSGllcmFyY2hpYwogfQogCiAvLyBjb3B5IGEgcGF0aCwgYWNj
b3VudGluZyBmb3IgIi4iIGFuZCAiLi4iIHNlZ21lbnRzCi1zdGF0aWMgaW50IGNvcHlQYXRoUmVt
b3ZpbmdEb3RzKGNoYXIqIGRzdCwgY29uc3QgY2hhciogc3JjLCBpbnQgc3JjU3RhcnQsIGludCBz
cmNFbmQpCitzdGF0aWMgdW5zaWduZWQgY29weVBhdGhSZW1vdmluZ0RvdHMoY2hhciogZHN0LCBj
b25zdCBjaGFyKiBzcmMsIHVuc2lnbmVkIHNyY1N0YXJ0LCB1bnNpZ25lZCBzcmNFbmQpCiB7CiAg
ICAgY2hhciogYnVmZmVyUGF0aFN0YXJ0ID0gZHN0OwogCkBAIC0xMjEyLDEyICsxMjEzLDEyIEBA
IFN0cmluZyBVUkw6OnNlcmlhbGl6ZShib29sIG9taXRGcmFnbWVudCkKICAgICBTdHJpbmdCdWls
ZGVyIHVybEJ1aWxkZXI7CiAgICAgdXJsQnVpbGRlci5hcHBlbmQobV9zdHJpbmcsIDAsIG1fc2No
ZW1lRW5kKTsKICAgICB1cmxCdWlsZGVyLmFwcGVuZCgiOiIpOwotICAgIGludCBzdGFydCA9IGhv
c3RTdGFydCgpOworICAgIHVuc2lnbmVkIHN0YXJ0ID0gaG9zdFN0YXJ0KCk7CiAgICAgaWYgKHN0
YXJ0IDwgbV9ob3N0RW5kKSB7CiAgICAgICAgIHVybEJ1aWxkZXIuYXBwZW5kKCIvLyIpOwogICAg
ICAgICBpZiAoaGFzVXNlcm5hbWUoKSkgewogICAgICAgICAgICAgdXJsQnVpbGRlci5hcHBlbmQo
bV9zdHJpbmcsIG1fdXNlclN0YXJ0LCBtX3VzZXJFbmQgLSBtX3VzZXJTdGFydCk7Ci0gICAgICAg
ICAgICBpbnQgcGFzc3dvcmRTdGFydCA9IG1fdXNlckVuZCArIDE7CisgICAgICAgICAgICB1bnNp
Z25lZCBwYXNzd29yZFN0YXJ0ID0gbV91c2VyRW5kICsgMTsKICAgICAgICAgICAgIGlmIChoYXNQ
YXNzd29yZCgpKSB7CiAgICAgICAgICAgICAgICAgdXJsQnVpbGRlci5hcHBlbmQoIjoiKTsKICAg
ICAgICAgICAgICAgICB1cmxCdWlsZGVyLmFwcGVuZChtX3N0cmluZywgcGFzc3dvcmRTdGFydCwg
bV9wYXNzd29yZEVuZCAtIHBhc3N3b3JkU3RhcnQpOwpAQCAtMTIzNyw3ICsxMjM4LDcgQEAgU3Ry
aW5nIFVSTDo6c2VyaWFsaXplKGJvb2wgb21pdEZyYWdtZW50KQogICAgIGVsc2UgewogICAgICAg
ICB1cmxCdWlsZGVyLmFwcGVuZCgiLyIpOwogICAgICAgICBpZiAobV9wYXRoRW5kID4gbV9wb3J0
RW5kKSB7Ci0gICAgICAgICAgICBpbnQgcGF0aFN0YXJ0ID0gbV9wb3J0RW5kICsgMTsKKyAgICAg
ICAgICAgIHVuc2lnbmVkIHBhdGhTdGFydCA9IG1fcG9ydEVuZCArIDE7CiAgICAgICAgICAgICB1
cmxCdWlsZGVyLmFwcGVuZChtX3N0cmluZywgcGF0aFN0YXJ0LCBtX3BhdGhFbmQgLSBwYXRoU3Rh
cnQpOwogICAgICAgICB9CiAgICAgfQpAQCAtMTMxMSw3ICsxMzEyLDcgQEAgc3RhdGljIGlubGlu
ZSBib29sIGlzRGVmYXVsdFBvcnRGb3JTY2hlbQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotc3Rh
dGljIGlubGluZSBib29sIGhvc3RQb3J0SXNFbXB0eUJ1dENyZWRlbnRpYWxzQXJlUHJlc2VudChp
bnQgaG9zdFN0YXJ0LCBpbnQgcG9ydEVuZCwgY2hhciB1c2VyaW5mb0VuZENoYXIpCitzdGF0aWMg
aW5saW5lIGJvb2wgaG9zdFBvcnRJc0VtcHR5QnV0Q3JlZGVudGlhbHNBcmVQcmVzZW50KHVuc2ln
bmVkIGhvc3RTdGFydCwgdW5zaWduZWQgcG9ydEVuZCwgY2hhciB1c2VyaW5mb0VuZENoYXIpCiB7
CiAgICAgcmV0dXJuIHVzZXJpbmZvRW5kQ2hhciA9PSAnQCcgJiYgaG9zdFN0YXJ0ID09IHBvcnRF
bmQ7CiB9CkBAIC0xMzY2LDcgKzEzNjcsNyBAQCB2b2lkIFVSTDo6cGFyc2UoY29uc3QgY2hhciog
dXJsLCBjb25zdCBTCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpbnQgc2NoZW1lRW5k
ID0gMDsKKyAgICB1bnNpZ25lZCBzY2hlbWVFbmQgPSAwOwogICAgIHdoaWxlIChpc1NjaGVtZUNo
YXIodXJsW3NjaGVtZUVuZF0pKQogICAgICAgICBzY2hlbWVFbmQrKzsKIApAQCAtMTM3NiwxNCAr
MTM3NywxNCBAQCB2b2lkIFVSTDo6cGFyc2UoY29uc3QgY2hhciogdXJsLCBjb25zdCBTCiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpbnQgdXNlclN0YXJ0ID0gc2NoZW1lRW5kICsgMTsK
LSAgICBpbnQgdXNlckVuZDsKLSAgICBpbnQgcGFzc3dvcmRTdGFydDsKLSAgICBpbnQgcGFzc3dv
cmRFbmQ7Ci0gICAgaW50IGhvc3RTdGFydDsKLSAgICBpbnQgaG9zdEVuZDsKLSAgICBpbnQgcG9y
dFN0YXJ0OwotICAgIGludCBwb3J0RW5kOworICAgIHVuc2lnbmVkIHVzZXJTdGFydCA9IHNjaGVt
ZUVuZCArIDE7CisgICAgdW5zaWduZWQgdXNlckVuZDsKKyAgICB1bnNpZ25lZCBwYXNzd29yZFN0
YXJ0OworICAgIHVuc2lnbmVkIHBhc3N3b3JkRW5kOworICAgIHVuc2lnbmVkIGhvc3RTdGFydDsK
KyAgICB1bnNpZ25lZCBob3N0RW5kOworICAgIHVuc2lnbmVkIHBvcnRTdGFydDsKKyAgICB1bnNp
Z25lZCBwb3J0RW5kOwogCiAgICAgYm9vbCBoaWVyYXJjaGljYWwgPSB1cmxbc2NoZW1lRW5kICsg
MV0gPT0gJy8nOwogICAgIGJvb2wgaGFzU2Vjb25kU2xhc2ggPSBoaWVyYXJjaGljYWwgJiYgdXJs
W3NjaGVtZUVuZCArIDJdID09ICcvJzsKQEAgLTE0MTgsNyArMTQxOSw3IEBAIHZvaWQgVVJMOjpw
YXJzZShjb25zdCBjaGFyKiB1cmwsIGNvbnN0IFMKIAogICAgICAgICB1c2VyRW5kID0gdXNlclN0
YXJ0OwogCi0gICAgICAgIGludCBjb2xvblBvcyA9IDA7CisgICAgICAgIHVuc2lnbmVkIGNvbG9u
UG9zID0gMDsKICAgICAgICAgd2hpbGUgKGlzVXNlckluZm9DaGFyKHVybFt1c2VyRW5kXSkpIHsK
ICAgICAgICAgICAgIGlmICh1cmxbdXNlckVuZF0gPT0gJzonICYmIGNvbG9uUG9zID09IDApCiAg
ICAgICAgICAgICAgICAgY29sb25Qb3MgPSB1c2VyRW5kOwpAQCAtMTUxMiwyMCArMTUxMywyMCBA
QCB2b2lkIFVSTDo6cGFyc2UoY29uc3QgY2hhciogdXJsLCBjb25zdCBTCiAgICAgICAgIHBvcnRT
dGFydCA9IHBvcnRFbmQgPSBob3N0RW5kOwogICAgIH0KIAotICAgIGludCBwYXRoU3RhcnQgPSBw
b3J0RW5kOwotICAgIGludCBwYXRoRW5kID0gcGF0aFN0YXJ0OworICAgIHVuc2lnbmVkIHBhdGhT
dGFydCA9IHBvcnRFbmQ7CisgICAgdW5zaWduZWQgcGF0aEVuZCA9IHBhdGhTdGFydDsKICAgICB3
aGlsZSAodXJsW3BhdGhFbmRdICYmIHVybFtwYXRoRW5kXSAhPSAnPycgJiYgdXJsW3BhdGhFbmRd
ICE9ICcjJykKICAgICAgICAgcGF0aEVuZCsrOwogCi0gICAgaW50IHF1ZXJ5U3RhcnQgPSBwYXRo
RW5kOwotICAgIGludCBxdWVyeUVuZCA9IHF1ZXJ5U3RhcnQ7CisgICAgdW5zaWduZWQgcXVlcnlT
dGFydCA9IHBhdGhFbmQ7CisgICAgdW5zaWduZWQgcXVlcnlFbmQgPSBxdWVyeVN0YXJ0OwogICAg
IGlmICh1cmxbcXVlcnlTdGFydF0gPT0gJz8nKSB7CiAgICAgICAgIHdoaWxlICh1cmxbcXVlcnlF
bmRdICYmIHVybFtxdWVyeUVuZF0gIT0gJyMnKQogICAgICAgICAgICAgcXVlcnlFbmQrKzsKICAg
ICB9CiAKLSAgICBpbnQgZnJhZ21lbnRTdGFydCA9IHF1ZXJ5RW5kOwotICAgIGludCBmcmFnbWVu
dEVuZCA9IGZyYWdtZW50U3RhcnQ7CisgICAgdW5zaWduZWQgZnJhZ21lbnRTdGFydCA9IHF1ZXJ5
RW5kOworICAgIHVuc2lnbmVkIGZyYWdtZW50RW5kID0gZnJhZ21lbnRTdGFydDsKICAgICBpZiAo
dXJsW2ZyYWdtZW50U3RhcnRdID09ICcjJykgewogICAgICAgICBmcmFnbWVudFN0YXJ0Kys7CiAg
ICAgICAgIGZyYWdtZW50RW5kID0gZnJhZ21lbnRTdGFydDsKQEAgLTE1MzcsMTEgKzE1MzgsMTEg
QEAgdm9pZCBVUkw6OnBhcnNlKGNvbnN0IGNoYXIqIHVybCwgY29uc3QgUwogCiAgICAgVmVjdG9y
PGNoYXIsIDQwOTY+IGJ1ZmZlcihmcmFnbWVudEVuZCAqIDMgKyAxKTsKIAotICAgIGNoYXIgKnAg
PSBidWZmZXIuZGF0YSgpOwotICAgIGNvbnN0IGNoYXIgKnN0clB0ciA9IHVybDsKKyAgICBjaGFy
KiBwID0gYnVmZmVyLmRhdGEoKTsKKyAgICBjb25zdCBjaGFyKiBzdHJQdHIgPSB1cmw7CiAKICAg
ICAvLyBjb3B5IGluIHRoZSBzY2hlbWUKLSAgICBjb25zdCBjaGFyICpzY2hlbWVFbmRQdHIgPSB1
cmwgKyBzY2hlbWVFbmQ7CisgICAgY29uc3QgY2hhciogc2NoZW1lRW5kUHRyID0gdXJsICsgc2No
ZW1lRW5kOwogI2lmIFBMQVRGT1JNKElPUykKICAgICBpZiAoc2hvdWxkQ2Fub25pY2FsaXplU2No
ZW1lIHx8IG1fcHJvdG9jb2xJc0luSFRUUEZhbWlseSkgewogICAgICAgICB3aGlsZSAoc3RyUHRy
IDwgc2NoZW1lRW5kUHRyKQpAQCAtMTY2NSw3ICsxNjY2LDcgQEAgdm9pZCBVUkw6OnBhcnNlKGNv
bnN0IGNoYXIqIHVybCwgY29uc3QgUwogICAgICAgICBhcHBlbmRFc2NhcGluZ0JhZENoYXJzKHAs
IHVybCArIHBhdGhTdGFydCwgcGF0aEVuZCAtIHBhdGhTdGFydCk7CiAgICAgZWxzZSB7CiAgICAg
ICAgIENoYXJCdWZmZXIgcGF0aEJ1ZmZlcihwYXRoRW5kIC0gcGF0aFN0YXJ0ICsgMSk7Ci0gICAg
ICAgIHNpemVfdCBsZW5ndGggPSBjb3B5UGF0aFJlbW92aW5nRG90cyhwYXRoQnVmZmVyLmRhdGEo
KSwgdXJsLCBwYXRoU3RhcnQsIHBhdGhFbmQpOworICAgICAgICB1bnNpZ25lZCBsZW5ndGggPSBj
b3B5UGF0aFJlbW92aW5nRG90cyhwYXRoQnVmZmVyLmRhdGEoKSwgdXJsLCBwYXRoU3RhcnQsIHBh
dGhFbmQpOwogICAgICAgICBhcHBlbmRFc2NhcGluZ0JhZENoYXJzKHAsIHBhdGhCdWZmZXIuZGF0
YSgpLCBsZW5ndGgpOwogICAgIH0KIApAQCAtMTY3Myw3ICsxNjc0LDcgQEAgdm9pZCBVUkw6OnBh
cnNlKGNvbnN0IGNoYXIqIHVybCwgY29uc3QgUwogCiAgICAgLy8gRmluZCB0aGUgcG9zaXRpb24g
YWZ0ZXIgdGhlIGxhc3Qgc2xhc2ggaW4gdGhlIHBhdGgsIG9yCiAgICAgLy8gdGhlIHBvc2l0aW9u
IGJlZm9yZSB0aGUgcGF0aCBpZiB0aGVyZSBhcmUgbm8gc2xhc2hlcyBpbiBpdC4KLSAgICBpbnQg
aTsKKyAgICB1bnNpZ25lZCBpOwogICAgIGZvciAoaSA9IG1fcGF0aEVuZDsgaSA+IG1fcG9ydEVu
ZDsgLS1pKSB7CiAgICAgICAgIGlmIChidWZmZXJbaSAtIDFdID09ICcvJykKICAgICAgICAgICAg
IGJyZWFrOwpAQCAtMTcyMCwyMiArMTcyMSwyNCBAQCBib29sIHByb3RvY29sSG9zdEFuZFBvcnRB
cmVFcXVhbChjb25zdCBVCiAgICAgaWYgKGEubV9zY2hlbWVFbmQgIT0gYi5tX3NjaGVtZUVuZCkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaW50IGhvc3RTdGFydEEgPSBhLmhvc3RTdGFy
dCgpOwotICAgIGludCBob3N0TGVuZ3RoQSA9IGEuaG9zdEVuZCgpIC0gaG9zdFN0YXJ0QTsKLSAg
ICBpbnQgaG9zdFN0YXJ0QiA9IGIuaG9zdFN0YXJ0KCk7Ci0gICAgaW50IGhvc3RMZW5ndGhCID0g
Yi5ob3N0RW5kKCkgLSBiLmhvc3RTdGFydCgpOworICAgIHVuc2lnbmVkIGhvc3RTdGFydEEgPSBh
Lmhvc3RTdGFydCgpOworICAgIHVuc2lnbmVkIGhvc3RMZW5ndGhBID0gYS5ob3N0RW5kKCkgLSBo
b3N0U3RhcnRBOworICAgIHVuc2lnbmVkIGhvc3RTdGFydEIgPSBiLmhvc3RTdGFydCgpOworICAg
IHVuc2lnbmVkIGhvc3RMZW5ndGhCID0gYi5ob3N0RW5kKCkgLSBiLmhvc3RTdGFydCgpOwogICAg
IGlmIChob3N0TGVuZ3RoQSAhPSBob3N0TGVuZ3RoQikKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CiAgICAgLy8gQ2hlY2sgdGhlIHNjaGVtZQotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYS5tX3Nj
aGVtZUVuZDsgKytpKQorICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBhLm1fc2NoZW1lRW5k
OyArK2kpIHsKICAgICAgICAgaWYgKGEuc3RyaW5nKClbaV0gIT0gYi5zdHJpbmcoKVtpXSkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAKICAgICAvLyBBbmQgdGhlIGhvc3QKLSAg
ICBmb3IgKGludCBpID0gMDsgaSA8IGhvc3RMZW5ndGhBOyArK2kpCisgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IGhvc3RMZW5ndGhBOyArK2kpIHsKICAgICAgICAgaWYgKGEuc3RyaW5nKClb
aG9zdFN0YXJ0QSArIGldICE9IGIuc3RyaW5nKClbaG9zdFN0YXJ0QiArIGldKQogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIH0KIAogICAgIGlmIChhLnBvcnQoKSAhPSBiLnBvcnQoKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTc0NSwxNCArMTc0OCwxNCBAQCBib29sIHByb3Rv
Y29sSG9zdEFuZFBvcnRBcmVFcXVhbChjb25zdCBVCiAKIGJvb2wgaG9zdHNBcmVFcXVhbChjb25z
dCBVUkwmIGEsIGNvbnN0IFVSTCYgYikKIHsKLSAgICBpbnQgaG9zdFN0YXJ0QSA9IGEuaG9zdFN0
YXJ0KCk7Ci0gICAgaW50IGhvc3RMZW5ndGhBID0gYS5ob3N0RW5kKCkgLSBob3N0U3RhcnRBOwot
ICAgIGludCBob3N0U3RhcnRCID0gYi5ob3N0U3RhcnQoKTsKLSAgICBpbnQgaG9zdExlbmd0aEIg
PSBiLmhvc3RFbmQoKSAtIGhvc3RTdGFydEI7CisgICAgdW5zaWduZWQgaG9zdFN0YXJ0QSA9IGEu
aG9zdFN0YXJ0KCk7CisgICAgdW5zaWduZWQgaG9zdExlbmd0aEEgPSBhLmhvc3RFbmQoKSAtIGhv
c3RTdGFydEE7CisgICAgdW5zaWduZWQgaG9zdFN0YXJ0QiA9IGIuaG9zdFN0YXJ0KCk7CisgICAg
dW5zaWduZWQgaG9zdExlbmd0aEIgPSBiLmhvc3RFbmQoKSAtIGhvc3RTdGFydEI7CiAgICAgaWYg
KGhvc3RMZW5ndGhBICE9IGhvc3RMZW5ndGhCKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAg
ICBmb3IgKGludCBpID0gMDsgaSA8IGhvc3RMZW5ndGhBOyArK2kpIHsKKyAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgaG9zdExlbmd0aEE7ICsraSkgewogICAgICAgICBpZiAoYS5zdHJpbmco
KVtob3N0U3RhcnRBICsgaV0gIT0gYi5zdHJpbmcoKVtob3N0U3RhcnRCICsgaV0pCiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtMTgxNyw3ICsxODIwLDcgQEAgc3RhdGljIGJv
b2wgcHJvdG9jb2xJcyhTdHJpbmdWaWV3IHN0cmluZwogICAgIHJldHVybiBmYWxzZTsKIH0KIAot
c3RhdGljIHZvaWQgZmluZEhvc3RuYW1lc0luTWFpbFRvVVJMKFN0cmluZ1ZpZXcgc3RyaW5nLCBW
ZWN0b3I8c3RkOjpwYWlyPGludCwgaW50Pj4mIG5hbWVSYW5nZXMpCitzdGF0aWMgdm9pZCBmaW5k
SG9zdG5hbWVzSW5NYWlsVG9VUkwoU3RyaW5nVmlldyBzdHJpbmcsIFZlY3RvcjxzdGQ6OnBhaXI8
dW5zaWduZWQsIHVuc2lnbmVkPj4mIG5hbWVSYW5nZXMpCiB7CiAgICAgLy8gSW4gYSBtYWlsdG86
IFVSTCwgaG9zdCBuYW1lcyBjb21lIGFmdGVyIGEgJ0AnIGNoYXJhY3RlciBhbmQgZW5kIHdpdGgg
YSAnPicgb3IgJywnIG9yICc/JyBvciBlbmQgb2Ygc3RyaW5nIGNoYXJhY3Rlci4KICAgICAvLyBT
a2lwIHF1b3RlZCBzdHJpbmdzIHNvIHRoYXQgY2hhcmFjdGVycyBpbiB0aGVtIGRvbid0IGNvbmZ1
c2UgdXMuCkBAIC0xODI1LDExICsxODI4LDExIEBAIHN0YXRpYyB2b2lkIGZpbmRIb3N0bmFtZXNJ
bk1haWxUb1VSTChTdHIKIAogICAgIG5hbWVSYW5nZXMuY2xlYXIoKTsKIAotICAgIGludCBwID0g
MDsKKyAgICB1bnNpZ25lZCBwID0gMDsKICAgICB3aGlsZSAoMSkgewogICAgICAgICAvLyBGaW5k
IHN0YXJ0IG9mIGhvc3QgbmFtZSBvciBvZiBxdW90ZWQgc3RyaW5nLgotICAgICAgICBpbnQgaG9z
dG5hbWVPclN0cmluZ1N0YXJ0ID0gZmluZEZpcnN0T2Yoc3RyaW5nLCBwLCAiXCJAPyIpOwotICAg
ICAgICBpZiAoaG9zdG5hbWVPclN0cmluZ1N0YXJ0ID09IC0xKQorICAgICAgICB1bnNpZ25lZCBo
b3N0bmFtZU9yU3RyaW5nU3RhcnQgPSBmaW5kRmlyc3RPZihzdHJpbmcsIHAsICJcIkA/Iik7Cisg
ICAgICAgIGlmIChob3N0bmFtZU9yU3RyaW5nU3RhcnQgPT0gbm90Rm91bmRVbnNpZ25lZCkKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgVUNoYXIgYyA9IHN0cmluZ1tob3N0bmFtZU9yU3Ry
aW5nU3RhcnRdOwogICAgICAgICBwID0gaG9zdG5hbWVPclN0cmluZ1N0YXJ0ICsgMTsKQEAgLTE4
MzksMTAgKzE4NDIsMTAgQEAgc3RhdGljIHZvaWQgZmluZEhvc3RuYW1lc0luTWFpbFRvVVJMKFN0
cgogCiAgICAgICAgIGlmIChjID09ICdAJykgewogICAgICAgICAgICAgLy8gRmluZCBlbmQgb2Yg
aG9zdCBuYW1lLgotICAgICAgICAgICAgaW50IGhvc3RuYW1lU3RhcnQgPSBwOwotICAgICAgICAg
ICAgaW50IGhvc3RuYW1lRW5kID0gZmluZEZpcnN0T2Yoc3RyaW5nLCBwLCAiPiw/Iik7CisgICAg
ICAgICAgICB1bnNpZ25lZCBob3N0bmFtZVN0YXJ0ID0gcDsKKyAgICAgICAgICAgIHVuc2lnbmVk
IGhvc3RuYW1lRW5kID0gZmluZEZpcnN0T2Yoc3RyaW5nLCBwLCAiPiw/Iik7CiAgICAgICAgICAg
ICBib29sIGRvbmU7Ci0gICAgICAgICAgICBpZiAoaG9zdG5hbWVFbmQgPT0gLTEpIHsKKyAgICAg
ICAgICAgIGlmIChob3N0bmFtZUVuZCA9PSBub3RGb3VuZFVuc2lnbmVkKSB7CiAgICAgICAgICAg
ICAgICAgaG9zdG5hbWVFbmQgPSBzdHJpbmcubGVuZ3RoKCk7CiAgICAgICAgICAgICAgICAgZG9u
ZSA9IHRydWU7CiAgICAgICAgICAgICB9IGVsc2UgewpAQCAtMTg1OCw4ICsxODYxLDggQEAgc3Rh
dGljIHZvaWQgZmluZEhvc3RuYW1lc0luTWFpbFRvVVJMKFN0cgogICAgICAgICAgICAgLy8gU2tp
cCBxdW90ZWQgc3RyaW5nLgogICAgICAgICAgICAgQVNTRVJUKGMgPT0gJyInKTsKICAgICAgICAg
ICAgIHdoaWxlICgxKSB7Ci0gICAgICAgICAgICAgICAgaW50IGVzY2FwZWRDaGFyYWN0ZXJPclN0
cmluZ0VuZCA9IGZpbmRGaXJzdE9mKHN0cmluZywgcCwgIlwiXFwiKTsKLSAgICAgICAgICAgICAg
ICBpZiAoZXNjYXBlZENoYXJhY3Rlck9yU3RyaW5nRW5kID09IC0xKQorICAgICAgICAgICAgICAg
IHVuc2lnbmVkIGVzY2FwZWRDaGFyYWN0ZXJPclN0cmluZ0VuZCA9IGZpbmRGaXJzdE9mKHN0cmlu
ZywgcCwgIlwiXFwiKTsKKyAgICAgICAgICAgICAgICBpZiAoZXNjYXBlZENoYXJhY3Rlck9yU3Ry
aW5nRW5kID09IG5vdEZvdW5kVW5zaWduZWQpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsK
IAogICAgICAgICAgICAgICAgIGMgPSBzdHJpbmdbZXNjYXBlZENoYXJhY3Rlck9yU3RyaW5nRW5k
XTsKQEAgLTE4NzEsNyArMTg3NCw3IEBAIHN0YXRpYyB2b2lkIGZpbmRIb3N0bmFtZXNJbk1haWxU
b1VSTChTdHIKIAogICAgICAgICAgICAgICAgIC8vIFNraXAgZXNjYXBlZCBjaGFyYWN0ZXIuCiAg
ICAgICAgICAgICAgICAgQVNTRVJUKGMgPT0gJ1xcJyk7Ci0gICAgICAgICAgICAgICAgaWYgKHAg
PT0gc3RhdGljX2Nhc3Q8aW50PihzdHJpbmcubGVuZ3RoKCkpKQorICAgICAgICAgICAgICAgIGlm
IChwID09IHN0cmluZy5sZW5ndGgoKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogCiAg
ICAgICAgICAgICAgICAgKytwOwpAQCAtMTg4MCwzMSArMTg4MywzMSBAQCBzdGF0aWMgdm9pZCBm
aW5kSG9zdG5hbWVzSW5NYWlsVG9VUkwoU3RyCiAgICAgfQogfQogCi1zdGF0aWMgYm9vbCBmaW5k
SG9zdG5hbWVJbkhpZXJhcmNoaWNhbFVSTChTdHJpbmdWaWV3IHN0cmluZywgaW50JiBzdGFydE9m
ZnNldCwgaW50JiBlbmRPZmZzZXQpCitzdGF0aWMgYm9vbCBmaW5kSG9zdG5hbWVJbkhpZXJhcmNo
aWNhbFVSTChTdHJpbmdWaWV3IHN0cmluZywgdW5zaWduZWQmIHN0YXJ0T2Zmc2V0LCB1bnNpZ25l
ZCYgZW5kT2Zmc2V0KQogewogICAgIC8vIEZpbmQgdGhlIGhvc3QgbmFtZSBpbiBhIGhpZXJhcmNo
aWNhbCBVUkwuCiAgICAgLy8gSXQgY29tZXMgYWZ0ZXIgYSAiOi8vIiBzZXF1ZW5jZSwgd2l0aCBz
Y2hlbWUgY2hhcmFjdGVycyBwcmVjZWRpbmcsIGFuZAogICAgIC8vIHRoaXMgc2hvdWxkIGJlIHRo
ZSBmaXJzdCBjb2xvbiBpbiB0aGUgc3RyaW5nLgogICAgIC8vIEl0IGVuZHMgd2l0aCB0aGUgZW5k
IG9mIHRoZSBzdHJpbmcgb3IgYSAiOiIgb3IgYSBwYXRoIHNlZ21lbnQgZW5kaW5nIGNoYXJhY3Rl
ci4KICAgICAvLyBJZiB0aGVyZSBpcyBhICJAIiBjaGFyYWN0ZXIsIHRoZSBob3N0IHBhcnQgaXMg
anVzdCB0aGUgcGFydCBhZnRlciB0aGUgIkAiLgotICAgIGludCBzZXBhcmF0b3IgPSBmaW5kRmly
c3RPZihzdHJpbmcsIDAsICI6Iik7Ci0gICAgaWYgKHNlcGFyYXRvciA9PSAtMSB8fCBzZXBhcmF0
b3IgKyAyID49IHN0YXRpY19jYXN0PGludD4oc3RyaW5nLmxlbmd0aCgpKSB8fCBzdHJpbmdbc2Vw
YXJhdG9yICsgMV0gIT0gJy8nIHx8IHN0cmluZ1tzZXBhcmF0b3IgKyAyXSAhPSAnLycpCisgICAg
dW5zaWduZWQgc2VwYXJhdG9yID0gZmluZEZpcnN0T2Yoc3RyaW5nLCAwLCAiOiIpOworICAgIGlm
IChzZXBhcmF0b3IgPT0gbm90Rm91bmRVbnNpZ25lZCB8fCBzZXBhcmF0b3IgKyAyID49IHN0cmlu
Zy5sZW5ndGgoKSB8fCBzdHJpbmdbc2VwYXJhdG9yICsgMV0gIT0gJy8nIHx8IHN0cmluZ1tzZXBh
cmF0b3IgKyAyXSAhPSAnLycpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vIENoZWNr
IHRoYXQgYWxsIGNoYXJhY3RlcnMgYmVmb3JlIHRoZSA6Ly8gYXJlIHZhbGlkIHNjaGVtZSBjaGFy
YWN0ZXJzLgogICAgIGlmICghaXNTY2hlbWVGaXJzdENoYXIoc3RyaW5nWzBdKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIGZvciAoaW50IGkgPSAxOyBpIDwgc2VwYXJhdG9yOyArK2kpIHsK
KyAgICBmb3IgKHVuc2lnbmVkIGkgPSAxOyBpIDwgc2VwYXJhdG9yOyArK2kpIHsKICAgICAgICAg
aWYgKCFpc1NjaGVtZUNoYXIoc3RyaW5nW2ldKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICB9CiAKICAgICAvLyBTdGFydCBhZnRlciB0aGUgc2VwYXJhdG9yLgotICAgIGludCBhdXRo
b3JpdHlTdGFydCA9IHNlcGFyYXRvciArIDM7CisgICAgdW5zaWduZWQgYXV0aG9yaXR5U3RhcnQg
PSBzZXBhcmF0b3IgKyAzOwogCiAgICAgLy8gRmluZCB0ZXJtaW5hdGluZyBjaGFyYWN0ZXIuCi0g
ICAgaW50IGhvc3RuYW1lRW5kID0gc3RyaW5nLmxlbmd0aCgpOwotICAgIGZvciAoaW50IGkgPSBh
dXRob3JpdHlTdGFydDsgaSA8IGhvc3RuYW1lRW5kOyArK2kpIHsKKyAgICB1bnNpZ25lZCBob3N0
bmFtZUVuZCA9IHN0cmluZy5sZW5ndGgoKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSBhdXRob3Jp
dHlTdGFydDsgaSA8IGhvc3RuYW1lRW5kOyArK2kpIHsKICAgICAgICAgVUNoYXIgYyA9IHN0cmlu
Z1tpXTsKICAgICAgICAgaWYgKGMgPT0gJzonIHx8IChpc1BhdGhTZWdtZW50RW5kQ2hhcihjKSAm
JiBjICE9IDApKSB7CiAgICAgICAgICAgICBob3N0bmFtZUVuZCA9IGk7CkBAIC0xOTEzLDkgKzE5
MTYsOSBAQCBzdGF0aWMgYm9vbCBmaW5kSG9zdG5hbWVJbkhpZXJhcmNoaWNhbFVSCiAgICAgfQog
CiAgICAgLy8gRmluZCAiQCIgZm9yIHRoZSBzdGFydCBvZiB0aGUgaG9zdCBuYW1lLgotICAgIGlu
dCB1c2VySW5mb1Rlcm1pbmF0b3IgPSBmaW5kRmlyc3RPZihzdHJpbmcsIGF1dGhvcml0eVN0YXJ0
LCAiQCIpOwotICAgIGludCBob3N0bmFtZVN0YXJ0OwotICAgIGlmICh1c2VySW5mb1Rlcm1pbmF0
b3IgPT0gLTEgfHwgdXNlckluZm9UZXJtaW5hdG9yID4gaG9zdG5hbWVFbmQpCisgICAgdW5zaWdu
ZWQgdXNlckluZm9UZXJtaW5hdG9yID0gZmluZEZpcnN0T2Yoc3RyaW5nLCBhdXRob3JpdHlTdGFy
dCwgIkAiKTsKKyAgICB1bnNpZ25lZCBob3N0bmFtZVN0YXJ0OworICAgIGlmICh1c2VySW5mb1Rl
cm1pbmF0b3IgPT0gbm90Rm91bmRVbnNpZ25lZCB8fCB1c2VySW5mb1Rlcm1pbmF0b3IgPiBob3N0
bmFtZUVuZCkKICAgICAgICAgaG9zdG5hbWVTdGFydCA9IGF1dGhvcml0eVN0YXJ0OwogICAgIGVs
c2UKICAgICAgICAgaG9zdG5hbWVTdGFydCA9IHVzZXJJbmZvVGVybWluYXRvciArIDE7CkBAIC0x
OTMzLDEyICsxOTM2LDEyIEBAIHN0YXRpYyBib29sIGVuY29kZUhvc3RuYW1lcyhTdHJpbmdWaWV3
IHMKICAgICBidWZmZXIuY2xlYXIoKTsKIAogICAgIGlmIChwcm90b2NvbElzKHN0cmluZywgIm1h
aWx0byIpKSB7Ci0gICAgICAgIFZlY3RvcjxzdGQ6OnBhaXI8aW50LCBpbnQ+PiBob3N0bmFtZVJh
bmdlczsKKyAgICAgICAgVmVjdG9yPHN0ZDo6cGFpcjx1bnNpZ25lZCwgdW5zaWduZWQ+PiBob3N0
bmFtZVJhbmdlczsKICAgICAgICAgZmluZEhvc3RuYW1lc0luTWFpbFRvVVJMKHN0cmluZywgaG9z
dG5hbWVSYW5nZXMpOwotICAgICAgICBpbnQgbiA9IGhvc3RuYW1lUmFuZ2VzLnNpemUoKTsKLSAg
ICAgICAgaW50IHAgPSAwOwotICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG47ICsraSkgewot
ICAgICAgICAgICAgY29uc3Qgc3RkOjpwYWlyPGludCwgaW50PiYgciA9IGhvc3RuYW1lUmFuZ2Vz
W2ldOworICAgICAgICB1bnNpZ25lZCBuID0gaG9zdG5hbWVSYW5nZXMuc2l6ZSgpOworICAgICAg
ICB1bnNpZ25lZCBwID0gMDsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG47ICsr
aSkgeworICAgICAgICAgICAgY29uc3Qgc3RkOjpwYWlyPHVuc2lnbmVkLCB1bnNpZ25lZD4mIHIg
PSBob3N0bmFtZVJhbmdlc1tpXTsKICAgICAgICAgICAgIGFwcGVuZChidWZmZXIsIHN0cmluZy5z
dWJzdHJpbmcocCwgci5maXJzdCAtIHApKTsKICAgICAgICAgICAgIGlmICghYXBwZW5kRW5jb2Rl
ZEhvc3RuYW1lKGJ1ZmZlciwgc3RyaW5nLnN1YnN0cmluZyhyLmZpcnN0LCByLnNlY29uZCAtIHIu
Zmlyc3QpKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xOTQ4LDcgKzE5NTEs
NyBAQCBzdGF0aWMgYm9vbCBlbmNvZGVIb3N0bmFtZXMoU3RyaW5nVmlldyBzCiAgICAgICAgIC8v
IHdob2xlIHRoaW5nIGlmIHRoZXJlIGlzIG5vIGhvc3RuYW1lLgogICAgICAgICBhcHBlbmQoYnVm
ZmVyLCBzdHJpbmcuc3Vic3RyaW5nKHApKTsKICAgICB9IGVsc2UgewotICAgICAgICBpbnQgaG9z
dFN0YXJ0LCBob3N0RW5kOworICAgICAgICB1bnNpZ25lZCBob3N0U3RhcnQsIGhvc3RFbmQ7CiAg
ICAgICAgIGlmIChmaW5kSG9zdG5hbWVJbkhpZXJhcmNoaWNhbFVSTChzdHJpbmcsIGhvc3RTdGFy
dCwgaG9zdEVuZCkpIHsKICAgICAgICAgICAgIGFwcGVuZChidWZmZXIsIHN0cmluZy5zdWJzdHJp
bmcoMCwgaG9zdFN0YXJ0KSk7IC8vIEJlZm9yZSBob3N0bmFtZS4KICAgICAgICAgICAgIGlmICgh
YXBwZW5kRW5jb2RlZEhvc3RuYW1lKGJ1ZmZlciwgc3RyaW5nLnN1YnN0cmluZyhob3N0U3RhcnQs
IGhvc3RFbmQgLSBob3N0U3RhcnQpKSkKQEAgLTE5NzIsMTMgKzE5NzUsMTMgQEAgc3RhdGljIGJv
b2wgZW5jb2RlUmVsYXRpdmVTdHJpbmcoY29uc3QgUwogCiAgICAgVGV4dEVuY29kaW5nIHBhdGhF
bmNvZGluZyhVVEY4RW5jb2RpbmcoKSk7IC8vIFBhdGggaXMgYWx3YXlzIGVuY29kZWQgYXMgVVRG
LTg7IG90aGVyIHBhcnRzIG1heSBkZXBlbmQgb24gdGhlIHNjaGVtZS4KIAotICAgIGludCBwYXRo
RW5kID0gLTE7CisgICAgdW5zaWduZWQgcGF0aEVuZCA9IG5vdEZvdW5kVW5zaWduZWQ7CiAgICAg
aWYgKGVuY29kaW5nICE9IHBhdGhFbmNvZGluZyAmJiBlbmNvZGluZy5pc1ZhbGlkKCkgJiYgIXBy
b3RvY29sSXMocmVsLCAibWFpbHRvIikgJiYgIXByb3RvY29sSXMocmVsLCAiZGF0YSIpICYmICFw
cm90b2NvbElzSmF2YVNjcmlwdChyZWwpKSB7CiAgICAgICAgIC8vIEZpbmQgdGhlIGZpcnN0IGlu
c3RhbmNlIG9mIGVpdGhlciAjIG9yID8sIGtlZXAgcGF0aEVuZCBhdCAtMSBvdGhlcndpc2UuCiAg
ICAgICAgIHBhdGhFbmQgPSBmaW5kRmlyc3RPZihTdHJpbmdWaWV3KHMuZGF0YSgpLCBzLnNpemUo
KSksIDAsICIjPyIpOwogICAgIH0KIAotICAgIGlmIChwYXRoRW5kID09IC0xKSB7CisgICAgaWYg
KHBhdGhFbmQgPT0gbm90Rm91bmRVbnNpZ25lZCkgewogICAgICAgICBDU3RyaW5nIGRlY29kZWQg
PSBwYXRoRW5jb2RpbmcuZW5jb2RlKFN0cmluZ1ZpZXcocy5kYXRhKCksIHMuc2l6ZSgpKSwgVVJM
RW5jb2RlZEVudGl0aWVzRm9yVW5lbmNvZGFibGVzKTsKICAgICAgICAgb3V0cHV0LnJlc2l6ZShk
ZWNvZGVkLmxlbmd0aCgpKTsKICAgICAgICAgbWVtY3B5KG91dHB1dC5kYXRhKCksIGRlY29kZWQu
ZGF0YSgpLCBkZWNvZGVkLmxlbmd0aCgpKTsKQEAgLTIwMzQsNyArMjAzNyw3IEBAIGJvb2wgcHJv
dG9jb2xJcyhjb25zdCBTdHJpbmcmIHVybCwgY29uc3QKICAgICAvLyBEbyB0aGUgY29tcGFyaXNv
biB3aXRob3V0IG1ha2luZyBhIG5ldyBzdHJpbmcgb2JqZWN0LgogICAgIGFzc2VydFByb3RvY29s
SXNHb29kKHByb3RvY29sKTsKICAgICBib29sIGlzTGVhZGluZyA9IHRydWU7Ci0gICAgZm9yIChp
bnQgaSA9IDAsIGogPSAwOyB1cmxbaV07ICsraSkgeworICAgIGZvciAodW5zaWduZWQgaSA9IDAs
IGogPSAwOyB1cmxbaV07ICsraSkgewogICAgICAgICAvLyBza2lwIGxlYWRpbmcgd2hpdGVzcGFj
ZSBhbmQgY29udHJvbCBjaGFyYWN0ZXJzLgogICAgICAgICBpZiAoaXNMZWFkaW5nICYmIHNob3Vs
ZFRyaW1Gcm9tVVJMKHVybFtpXSkpCiAgICAgICAgICAgICBjb250aW51ZTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1VSTC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1VSTC5oCShyZXZpc2lvbiAyMDQyNzUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9VUkwuaAkod29ya2luZyBjb3B5KQpAQCAtMjE5LDE2ICsyMTksMTYgQEAgcHJpdmF0ZToKICAg
ICBib29sIG1faXNWYWxpZCA6IDE7CiAgICAgYm9vbCBtX3Byb3RvY29sSXNJbkhUVFBGYW1pbHkg
OiAxOwogCi0gICAgaW50IG1fc2NoZW1lRW5kOwotICAgIGludCBtX3VzZXJTdGFydDsKLSAgICBp
bnQgbV91c2VyRW5kOwotICAgIGludCBtX3Bhc3N3b3JkRW5kOwotICAgIGludCBtX2hvc3RFbmQ7
Ci0gICAgaW50IG1fcG9ydEVuZDsKLSAgICBpbnQgbV9wYXRoQWZ0ZXJMYXN0U2xhc2g7Ci0gICAg
aW50IG1fcGF0aEVuZDsKLSAgICBpbnQgbV9xdWVyeUVuZDsKLSAgICBpbnQgbV9mcmFnbWVudEVu
ZDsKKyAgICB1bnNpZ25lZCBtX3NjaGVtZUVuZDsKKyAgICB1bnNpZ25lZCBtX3VzZXJTdGFydDsK
KyAgICB1bnNpZ25lZCBtX3VzZXJFbmQ7CisgICAgdW5zaWduZWQgbV9wYXNzd29yZEVuZDsKKyAg
ICB1bnNpZ25lZCBtX2hvc3RFbmQ7CisgICAgdW5zaWduZWQgbV9wb3J0RW5kOworICAgIHVuc2ln
bmVkIG1fcGF0aEFmdGVyTGFzdFNsYXNoOworICAgIHVuc2lnbmVkIG1fcGF0aEVuZDsKKyAgICB1
bnNpZ25lZCBtX3F1ZXJ5RW5kOworICAgIHVuc2lnbmVkIG1fZnJhZ21lbnRFbmQ7CiB9OwogCiB0
ZW1wbGF0ZSA8Y2xhc3MgRW5jb2Rlcj4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285714</attachid>
            <date>2016-08-09 22:39:36 -0700</date>
            <delta_ts>2016-08-10 10:07:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160706-20160809223801.patch</filename>
            <type>text/plain</type>
            <size>20226</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNDMyNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBACisyMDE2LTA4LTA5ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVXNlIHVuc2ln
bmVkIGZvciBsb2NhdGlvbnMgaW4gVVJMCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjA3MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBObyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9VUkwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNTY2hlbWVGaXJzdENoYXIpOgorICAg
ICAgICAoV2ViQ29yZTo6ZmluZEZpcnN0T2YpOgorICAgICAgICAoV2ViQ29yZTo6Y2hlY2tFbmNv
ZGVkU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlVSTDo6aG9zdCk6CisgICAgICAgIChXZWJD
b3JlOjpVUkw6OnByb3RvY29sSXMpOgorICAgICAgICAoV2ViQ29yZTo6VVJMOjpzZXRQb3J0KToK
KyAgICAgICAgKFdlYkNvcmU6OlVSTDo6c2V0VXNlcik6CisgICAgICAgIChXZWJDb3JlOjpVUkw6
OnNldFBhc3MpOgorICAgICAgICAoV2ViQ29yZTo6ZXNjYXBlQW5kQXBwZW5kTm9uSGllcmFyY2hp
Y2FsUGFydCk6CisgICAgICAgIChXZWJDb3JlOjpjb3B5UGF0aFJlbW92aW5nRG90cyk6CisgICAg
ICAgIChXZWJDb3JlOjpVUkw6OnNlcmlhbGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjppc0RlZmF1
bHRQb3J0Rm9yU2NoZW1lKToKKyAgICAgICAgKFdlYkNvcmU6Omhvc3RQb3J0SXNFbXB0eUJ1dENy
ZWRlbnRpYWxzQXJlUHJlc2VudCk6CisgICAgICAgIChXZWJDb3JlOjpVUkw6OnBhcnNlKToKKyAg
ICAgICAgKFdlYkNvcmU6OnByb3RvY29sSG9zdEFuZFBvcnRBcmVFcXVhbCk6CisgICAgICAgIChX
ZWJDb3JlOjpob3N0c0FyZUVxdWFsKToKKyAgICAgICAgKFdlYkNvcmU6OnByb3RvY29sSXMpOgor
ICAgICAgICAoV2ViQ29yZTo6ZmluZEhvc3RuYW1lc0luTWFpbFRvVVJMKToKKyAgICAgICAgKFdl
YkNvcmU6OmZpbmRIb3N0bmFtZUluSGllcmFyY2hpY2FsVVJMKToKKyAgICAgICAgKFdlYkNvcmU6
OmVuY29kZUhvc3RuYW1lcyk6CisgICAgICAgIChXZWJDb3JlOjplbmNvZGVSZWxhdGl2ZVN0cmlu
Zyk6CisgICAgICAgICogcGxhdGZvcm0vVVJMLmg6CisKIDIwMTYtMDgtMDkgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBPcHRpbWl6YXRpb24gaW4gTm9kZTo6YXBw
ZW5kQ2hpbGQoKSBpcyBub3Qgc3BlYy1jb21wbGlhbnQKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1VSTC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJM
LmNwcAkocmV2aXNpb24gMjA0MzI1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzQwLDcgKzM0MCw3IEBAIHN0YXRpYyBjb25zdCB1bnNpZ25l
ZCBjaGFyIHBlcmNlbnRFbmNvZGUKICAgICAvKiAyNTIgKi8gUGVyY2VudEVuY29kZVNpbXBsZSwg
LyogMjUzICovIFBlcmNlbnRFbmNvZGVTaW1wbGUsIC8qIDI1NCAqLyBQZXJjZW50RW5jb2RlU2lt
cGxlLCAvKiAyNTUgKi8gUGVyY2VudEVuY29kZVNpbXBsZQogfTsKIAotc3RhdGljIGludCBjb3B5
UGF0aFJlbW92aW5nRG90cyhjaGFyKiBkc3QsIGNvbnN0IGNoYXIqIHNyYywgaW50IHNyY1N0YXJ0
LCBpbnQgc3JjRW5kKTsKK3N0YXRpYyB1bnNpZ25lZCBjb3B5UGF0aFJlbW92aW5nRG90cyhjaGFy
KiBkc3QsIGNvbnN0IGNoYXIqIHNyYywgdW5zaWduZWQgc3JjU3RhcnQsIHVuc2lnbmVkIHNyY0Vu
ZCk7CiBzdGF0aWMgYm9vbCBlbmNvZGVSZWxhdGl2ZVN0cmluZyhjb25zdCBTdHJpbmcmIHJlbCwg
Y29uc3QgVGV4dEVuY29kaW5nJiwgQ2hhckJ1ZmZlciYgb3VwdXQpOwogc3RhdGljIFN0cmluZyBz
dWJzdGl0dXRlQmFja3NsYXNoZXMoY29uc3QgU3RyaW5nJik7CiAKQEAgLTM5Niw3ICszOTYsOCBA
QCBzdGF0aWMgdm9pZCBhcHBlbmRBU0NJSShjb25zdCBTdHJpbmcmIGJhCiAvLyBSZXR1cm5zIHRo
ZSBpbmRleCBvZiB0aGUgZmlyc3QgaW5kZXggaW4gc3RyaW5nIHxzfCBvZiBhbnkgb2YgdGhlIGNo
YXJhY3RlcnMKIC8vIGluIHx0b0ZpbmR8LiB8dG9GaW5kfCBzaG91bGQgYmUgYSBudWxsLXRlcm1p
bmF0ZWQgc3RyaW5nLCBhbGwgY2hhcmFjdGVycyB1cAogLy8gdG8gdGhlIG51bGwgd2lsbCBiZSBz
ZWFyY2hlZC4gUmV0dXJucyBpbnQgaWYgbm90IGZvdW5kLgotc3RhdGljIGludCBmaW5kRmlyc3RP
ZihTdHJpbmdWaWV3IHN0cmluZywgdW5zaWduZWQgc3RhcnRQb3NpdGlvbiwgY29uc3QgY2hhciog
dGFyZ2V0KQorY29uc3QgdW5zaWduZWQgbm90Rm91bmRVbnNpZ25lZCA9IC0xOworc3RhdGljIHVu
c2lnbmVkIGZpbmRGaXJzdE9mKFN0cmluZ1ZpZXcgc3RyaW5nLCB1bnNpZ25lZCBzdGFydFBvc2l0
aW9uLCBjb25zdCBjaGFyKiB0YXJnZXQpCiB7CiAgICAgdW5zaWduZWQgbGVuZ3RoID0gc3RyaW5n
Lmxlbmd0aCgpOwogICAgIGZvciAodW5zaWduZWQgaSA9IHN0YXJ0UG9zaXRpb247IGkgPCBsZW5n
dGg7ICsraSkgewpAQCAtNDA1LDcgKzQwNiw3IEBAIHN0YXRpYyBpbnQgZmluZEZpcnN0T2YoU3Ry
aW5nVmlldyBzdHJpbmcKICAgICAgICAgICAgICAgICByZXR1cm4gaTsKICAgICAgICAgfQogICAg
IH0KLSAgICByZXR1cm4gLTE7CisgICAgcmV0dXJuIG5vdEZvdW5kVW5zaWduZWQ7CiB9CiAKIHN0
YXRpYyBpbmxpbmUgdm9pZCBjaGVja0VuY29kZWRTdHJpbmcoY29uc3QgU3RyaW5nJiB1cmwpCkBA
IC02OTAsNyArNjkxLDcgQEAgU3RyaW5nIFVSTDo6cHJvdG9jb2woKSBjb25zdAogCiBTdHJpbmcg
VVJMOjpob3N0KCkgY29uc3QKIHsKLSAgICBpbnQgc3RhcnQgPSBob3N0U3RhcnQoKTsKKyAgICB1
bnNpZ25lZCBzdGFydCA9IGhvc3RTdGFydCgpOwogICAgIHJldHVybiBtX3N0cmluZy5zdWJzdHJp
bmcoc3RhcnQsIG1faG9zdEVuZCAtIHN0YXJ0KTsKIH0KIApAQCAtNzk4LDcgKzc5OSw3IEBAIGJv
b2wgVVJMOjpwcm90b2NvbElzKGNvbnN0IGNoYXIqIHByb3RvY28KICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgLy8gRG8gdGhlIGNvbXBhcmlzb24gd2l0aG91dCBtYWtpbmcgYSBuZXcgc3Ry
aW5nIG9iamVjdC4KLSAgICBmb3IgKGludCBpID0gMDsgaSA8IG1fc2NoZW1lRW5kOyArK2kpIHsK
KyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9zY2hlbWVFbmQ7ICsraSkgewogICAgICAg
ICBpZiAoIXByb3RvY29sW2ldIHx8ICFpc1NjaGVtZUNoYXJhY3Rlck1hdGNoSWdub3JpbmdDYXNl
KG1fc3RyaW5nW2ldLCBwcm90b2NvbFtpXSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfQpAQCAtOTE1LDcgKzkxNiw3IEBAIHZvaWQgVVJMOjpzZXRQb3J0KHVuc2lnbmVkIHNob3J0
IGkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGJvb2wgY29sb25OZWVkZWQgPSBtX3BvcnRFbmQg
PT0gbV9ob3N0RW5kOwotICAgIGludCBwb3J0U3RhcnQgPSAoY29sb25OZWVkZWQgPyBtX2hvc3RF
bmQgOiBtX2hvc3RFbmQgKyAxKTsKKyAgICB1bnNpZ25lZCBwb3J0U3RhcnQgPSAoY29sb25OZWVk
ZWQgPyBtX2hvc3RFbmQgOiBtX2hvc3RFbmQgKyAxKTsKIAogICAgIHBhcnNlKG1fc3RyaW5nLmxl
ZnQocG9ydFN0YXJ0KSArIChjb2xvbk5lZWRlZCA/ICI6IiA6ICIiKSArIFN0cmluZzo6bnVtYmVy
KGkpICsgbV9zdHJpbmcuc3Vic3RyaW5nKG1fcG9ydEVuZCkpOwogfQpAQCAtOTY5LDcgKzk3MCw3
IEBAIHZvaWQgVVJMOjpzZXRVc2VyKGNvbnN0IFN0cmluZyYgdXNlcikKICAgICAvLyBGSVhNRTog
Tm9uLUFTQ0lJIGNoYXJhY3RlcnMgbXVzdCBiZSBlbmNvZGVkIGFuZCBlc2NhcGVkIHRvIG1hdGNo
IHBhcnNlKCkgZXhwZWN0YXRpb25zLAogICAgIC8vIGFuZCB0byBhdm9pZCBjaGFuZ2luZyBtb3Jl
IHRoYW4ganVzdCB0aGUgdXNlciBsb2dpbi4KIAotICAgIGludCBlbmQgPSBtX3VzZXJFbmQ7Cisg
ICAgdW5zaWduZWQgZW5kID0gbV91c2VyRW5kOwogICAgIGlmICghdXNlci5pc0VtcHR5KCkpIHsK
ICAgICAgICAgU3RyaW5nIHUgPSBlbmNvZGVXaXRoVVJMRXNjYXBlU2VxdWVuY2VzKHVzZXIsIFBl
cmNlbnRFbmNvZGVVc2VybmFtZSk7CiAgICAgICAgIGlmIChtX3VzZXJTdGFydCA9PSBtX3NjaGVt
ZUVuZCArIDEpCkBAIC05OTMsNyArOTk0LDcgQEAgdm9pZCBVUkw6OnNldFBhc3MoY29uc3QgU3Ry
aW5nJiBwYXNzd29yZAogICAgIGlmICghbV9pc1ZhbGlkKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBpbnQgZW5kID0gbV9wYXNzd29yZEVuZDsKKyAgICB1bnNpZ25lZCBlbmQgPSBtX3Bhc3N3b3Jk
RW5kOwogICAgIGlmICghcGFzc3dvcmQuaXNFbXB0eSgpKSB7CiAgICAgICAgIFN0cmluZyBwID0g
IjoiICsgZW5jb2RlV2l0aFVSTEVzY2FwZVNlcXVlbmNlcyhwYXNzd29yZCwgUGVyY2VudEVuY29k
ZVBhc3N3b3JkKSArICJAIjsKICAgICAgICAgaWYgKG1fdXNlckVuZCA9PSBtX3NjaGVtZUVuZCAr
IDEpCkBAIC0xMTIwLDcgKzExMjEsNyBAQCBzdGF0aWMgdm9pZCBlc2NhcGVBbmRBcHBlbmROb25I
aWVyYXJjaGljCiB9CiAKIC8vIGNvcHkgYSBwYXRoLCBhY2NvdW50aW5nIGZvciAiLiIgYW5kICIu
LiIgc2VnbWVudHMKLXN0YXRpYyBpbnQgY29weVBhdGhSZW1vdmluZ0RvdHMoY2hhciogZHN0LCBj
b25zdCBjaGFyKiBzcmMsIGludCBzcmNTdGFydCwgaW50IHNyY0VuZCkKK3N0YXRpYyB1bnNpZ25l
ZCBjb3B5UGF0aFJlbW92aW5nRG90cyhjaGFyKiBkc3QsIGNvbnN0IGNoYXIqIHNyYywgdW5zaWdu
ZWQgc3JjU3RhcnQsIHVuc2lnbmVkIHNyY0VuZCkKIHsKICAgICBjaGFyKiBidWZmZXJQYXRoU3Rh
cnQgPSBkc3Q7CiAKQEAgLTEyMTIsMTIgKzEyMTMsMTIgQEAgU3RyaW5nIFVSTDo6c2VyaWFsaXpl
KGJvb2wgb21pdEZyYWdtZW50KQogICAgIFN0cmluZ0J1aWxkZXIgdXJsQnVpbGRlcjsKICAgICB1
cmxCdWlsZGVyLmFwcGVuZChtX3N0cmluZywgMCwgbV9zY2hlbWVFbmQpOwogICAgIHVybEJ1aWxk
ZXIuYXBwZW5kKCI6Iik7Ci0gICAgaW50IHN0YXJ0ID0gaG9zdFN0YXJ0KCk7CisgICAgdW5zaWdu
ZWQgc3RhcnQgPSBob3N0U3RhcnQoKTsKICAgICBpZiAoc3RhcnQgPCBtX2hvc3RFbmQpIHsKICAg
ICAgICAgdXJsQnVpbGRlci5hcHBlbmQoIi8vIik7CiAgICAgICAgIGlmIChoYXNVc2VybmFtZSgp
KSB7CiAgICAgICAgICAgICB1cmxCdWlsZGVyLmFwcGVuZChtX3N0cmluZywgbV91c2VyU3RhcnQs
IG1fdXNlckVuZCAtIG1fdXNlclN0YXJ0KTsKLSAgICAgICAgICAgIGludCBwYXNzd29yZFN0YXJ0
ID0gbV91c2VyRW5kICsgMTsKKyAgICAgICAgICAgIHVuc2lnbmVkIHBhc3N3b3JkU3RhcnQgPSBt
X3VzZXJFbmQgKyAxOwogICAgICAgICAgICAgaWYgKGhhc1Bhc3N3b3JkKCkpIHsKICAgICAgICAg
ICAgICAgICB1cmxCdWlsZGVyLmFwcGVuZCgiOiIpOwogICAgICAgICAgICAgICAgIHVybEJ1aWxk
ZXIuYXBwZW5kKG1fc3RyaW5nLCBwYXNzd29yZFN0YXJ0LCBtX3Bhc3N3b3JkRW5kIC0gcGFzc3dv
cmRTdGFydCk7CkBAIC0xMjM3LDcgKzEyMzgsNyBAQCBTdHJpbmcgVVJMOjpzZXJpYWxpemUoYm9v
bCBvbWl0RnJhZ21lbnQpCiAgICAgZWxzZSB7CiAgICAgICAgIHVybEJ1aWxkZXIuYXBwZW5kKCIv
Iik7CiAgICAgICAgIGlmIChtX3BhdGhFbmQgPiBtX3BvcnRFbmQpIHsKLSAgICAgICAgICAgIGlu
dCBwYXRoU3RhcnQgPSBtX3BvcnRFbmQgKyAxOworICAgICAgICAgICAgdW5zaWduZWQgcGF0aFN0
YXJ0ID0gbV9wb3J0RW5kICsgMTsKICAgICAgICAgICAgIHVybEJ1aWxkZXIuYXBwZW5kKG1fc3Ry
aW5nLCBwYXRoU3RhcnQsIG1fcGF0aEVuZCAtIHBhdGhTdGFydCk7CiAgICAgICAgIH0KICAgICB9
CkBAIC0xMzExLDcgKzEzMTIsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNEZWZhdWx0UG9ydEZv
clNjaGVtCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgaG9zdFBv
cnRJc0VtcHR5QnV0Q3JlZGVudGlhbHNBcmVQcmVzZW50KGludCBob3N0U3RhcnQsIGludCBwb3J0
RW5kLCBjaGFyIHVzZXJpbmZvRW5kQ2hhcikKK3N0YXRpYyBpbmxpbmUgYm9vbCBob3N0UG9ydElz
RW1wdHlCdXRDcmVkZW50aWFsc0FyZVByZXNlbnQodW5zaWduZWQgaG9zdFN0YXJ0LCB1bnNpZ25l
ZCBwb3J0RW5kLCBjaGFyIHVzZXJpbmZvRW5kQ2hhcikKIHsKICAgICByZXR1cm4gdXNlcmluZm9F
bmRDaGFyID09ICdAJyAmJiBob3N0U3RhcnQgPT0gcG9ydEVuZDsKIH0KQEAgLTEzNjYsNyArMTM2
Nyw3IEBAIHZvaWQgVVJMOjpwYXJzZShjb25zdCBjaGFyKiB1cmwsIGNvbnN0IFMKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIGludCBzY2hlbWVFbmQgPSAwOworICAgIHVuc2lnbmVkIHNj
aGVtZUVuZCA9IDA7CiAgICAgd2hpbGUgKGlzU2NoZW1lQ2hhcih1cmxbc2NoZW1lRW5kXSkpCiAg
ICAgICAgIHNjaGVtZUVuZCsrOwogCkBAIC0xMzc2LDE0ICsxMzc3LDE0IEBAIHZvaWQgVVJMOjpw
YXJzZShjb25zdCBjaGFyKiB1cmwsIGNvbnN0IFMKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIGludCB1c2VyU3RhcnQgPSBzY2hlbWVFbmQgKyAxOwotICAgIGludCB1c2VyRW5kOwotICAg
IGludCBwYXNzd29yZFN0YXJ0OwotICAgIGludCBwYXNzd29yZEVuZDsKLSAgICBpbnQgaG9zdFN0
YXJ0OwotICAgIGludCBob3N0RW5kOwotICAgIGludCBwb3J0U3RhcnQ7Ci0gICAgaW50IHBvcnRF
bmQ7CisgICAgdW5zaWduZWQgdXNlclN0YXJ0ID0gc2NoZW1lRW5kICsgMTsKKyAgICB1bnNpZ25l
ZCB1c2VyRW5kOworICAgIHVuc2lnbmVkIHBhc3N3b3JkU3RhcnQ7CisgICAgdW5zaWduZWQgcGFz
c3dvcmRFbmQ7CisgICAgdW5zaWduZWQgaG9zdFN0YXJ0OworICAgIHVuc2lnbmVkIGhvc3RFbmQ7
CisgICAgdW5zaWduZWQgcG9ydFN0YXJ0OworICAgIHVuc2lnbmVkIHBvcnRFbmQ7CiAKICAgICBi
b29sIGhpZXJhcmNoaWNhbCA9IHVybFtzY2hlbWVFbmQgKyAxXSA9PSAnLyc7CiAgICAgYm9vbCBo
YXNTZWNvbmRTbGFzaCA9IGhpZXJhcmNoaWNhbCAmJiB1cmxbc2NoZW1lRW5kICsgMl0gPT0gJy8n
OwpAQCAtMTQxOCw3ICsxNDE5LDcgQEAgdm9pZCBVUkw6OnBhcnNlKGNvbnN0IGNoYXIqIHVybCwg
Y29uc3QgUwogCiAgICAgICAgIHVzZXJFbmQgPSB1c2VyU3RhcnQ7CiAKLSAgICAgICAgaW50IGNv
bG9uUG9zID0gMDsKKyAgICAgICAgdW5zaWduZWQgY29sb25Qb3MgPSAwOwogICAgICAgICB3aGls
ZSAoaXNVc2VySW5mb0NoYXIodXJsW3VzZXJFbmRdKSkgewogICAgICAgICAgICAgaWYgKHVybFt1
c2VyRW5kXSA9PSAnOicgJiYgY29sb25Qb3MgPT0gMCkKICAgICAgICAgICAgICAgICBjb2xvblBv
cyA9IHVzZXJFbmQ7CkBAIC0xNTEyLDIwICsxNTEzLDIwIEBAIHZvaWQgVVJMOjpwYXJzZShjb25z
dCBjaGFyKiB1cmwsIGNvbnN0IFMKICAgICAgICAgcG9ydFN0YXJ0ID0gcG9ydEVuZCA9IGhvc3RF
bmQ7CiAgICAgfQogCi0gICAgaW50IHBhdGhTdGFydCA9IHBvcnRFbmQ7Ci0gICAgaW50IHBhdGhF
bmQgPSBwYXRoU3RhcnQ7CisgICAgdW5zaWduZWQgcGF0aFN0YXJ0ID0gcG9ydEVuZDsKKyAgICB1
bnNpZ25lZCBwYXRoRW5kID0gcGF0aFN0YXJ0OwogICAgIHdoaWxlICh1cmxbcGF0aEVuZF0gJiYg
dXJsW3BhdGhFbmRdICE9ICc/JyAmJiB1cmxbcGF0aEVuZF0gIT0gJyMnKQogICAgICAgICBwYXRo
RW5kKys7CiAKLSAgICBpbnQgcXVlcnlTdGFydCA9IHBhdGhFbmQ7Ci0gICAgaW50IHF1ZXJ5RW5k
ID0gcXVlcnlTdGFydDsKKyAgICB1bnNpZ25lZCBxdWVyeVN0YXJ0ID0gcGF0aEVuZDsKKyAgICB1
bnNpZ25lZCBxdWVyeUVuZCA9IHF1ZXJ5U3RhcnQ7CiAgICAgaWYgKHVybFtxdWVyeVN0YXJ0XSA9
PSAnPycpIHsKICAgICAgICAgd2hpbGUgKHVybFtxdWVyeUVuZF0gJiYgdXJsW3F1ZXJ5RW5kXSAh
PSAnIycpCiAgICAgICAgICAgICBxdWVyeUVuZCsrOwogICAgIH0KIAotICAgIGludCBmcmFnbWVu
dFN0YXJ0ID0gcXVlcnlFbmQ7Ci0gICAgaW50IGZyYWdtZW50RW5kID0gZnJhZ21lbnRTdGFydDsK
KyAgICB1bnNpZ25lZCBmcmFnbWVudFN0YXJ0ID0gcXVlcnlFbmQ7CisgICAgdW5zaWduZWQgZnJh
Z21lbnRFbmQgPSBmcmFnbWVudFN0YXJ0OwogICAgIGlmICh1cmxbZnJhZ21lbnRTdGFydF0gPT0g
JyMnKSB7CiAgICAgICAgIGZyYWdtZW50U3RhcnQrKzsKICAgICAgICAgZnJhZ21lbnRFbmQgPSBm
cmFnbWVudFN0YXJ0OwpAQCAtMTUzNywxMSArMTUzOCwxMSBAQCB2b2lkIFVSTDo6cGFyc2UoY29u
c3QgY2hhciogdXJsLCBjb25zdCBTCiAKICAgICBWZWN0b3I8Y2hhciwgNDA5Nj4gYnVmZmVyKGZy
YWdtZW50RW5kICogMyArIDEpOwogCi0gICAgY2hhciAqcCA9IGJ1ZmZlci5kYXRhKCk7Ci0gICAg
Y29uc3QgY2hhciAqc3RyUHRyID0gdXJsOworICAgIGNoYXIqIHAgPSBidWZmZXIuZGF0YSgpOwor
ICAgIGNvbnN0IGNoYXIqIHN0clB0ciA9IHVybDsKIAogICAgIC8vIGNvcHkgaW4gdGhlIHNjaGVt
ZQotICAgIGNvbnN0IGNoYXIgKnNjaGVtZUVuZFB0ciA9IHVybCArIHNjaGVtZUVuZDsKKyAgICBj
b25zdCBjaGFyKiBzY2hlbWVFbmRQdHIgPSB1cmwgKyBzY2hlbWVFbmQ7CiAjaWYgUExBVEZPUk0o
SU9TKQogICAgIGlmIChzaG91bGRDYW5vbmljYWxpemVTY2hlbWUgfHwgbV9wcm90b2NvbElzSW5I
VFRQRmFtaWx5KSB7CiAgICAgICAgIHdoaWxlIChzdHJQdHIgPCBzY2hlbWVFbmRQdHIpCkBAIC0x
NjA4LDcgKzE2MDksNyBAQCB2b2lkIFVSTDo6cGFyc2UoY29uc3QgY2hhciogdXJsLCBjb25zdCBT
CiAgICAgICAgIG1fcGFzc3dvcmRFbmQgPSBwIC0gYnVmZmVyLmRhdGEoKTsKIAogICAgICAgICAv
LyBJZiB3ZSBoYWQgYW55IHVzZXIgaW5mbywgYWRkICJAIgotICAgICAgICBpZiAocCAtIGJ1ZmZl
ci5kYXRhKCkgIT0gbV91c2VyU3RhcnQpCisgICAgICAgIGlmIChzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4ocCAtIGJ1ZmZlci5kYXRhKCkpICE9IG1fdXNlclN0YXJ0KQogICAgICAgICAgICAgKnArKyA9
ICdAJzsKIAogICAgICAgICAvLyBjb3B5IGluIHRoZSBob3N0LCBleGNlcHQgaW4gdGhlIGNhc2Ug
b2YgYSBmaWxlIFVSTCB3aXRoIGF1dGhvcml0eT0ibG9jYWxob3N0IgpAQCAtMTY2NSw3ICsxNjY2
LDcgQEAgdm9pZCBVUkw6OnBhcnNlKGNvbnN0IGNoYXIqIHVybCwgY29uc3QgUwogICAgICAgICBh
cHBlbmRFc2NhcGluZ0JhZENoYXJzKHAsIHVybCArIHBhdGhTdGFydCwgcGF0aEVuZCAtIHBhdGhT
dGFydCk7CiAgICAgZWxzZSB7CiAgICAgICAgIENoYXJCdWZmZXIgcGF0aEJ1ZmZlcihwYXRoRW5k
IC0gcGF0aFN0YXJ0ICsgMSk7Ci0gICAgICAgIHNpemVfdCBsZW5ndGggPSBjb3B5UGF0aFJlbW92
aW5nRG90cyhwYXRoQnVmZmVyLmRhdGEoKSwgdXJsLCBwYXRoU3RhcnQsIHBhdGhFbmQpOworICAg
ICAgICB1bnNpZ25lZCBsZW5ndGggPSBjb3B5UGF0aFJlbW92aW5nRG90cyhwYXRoQnVmZmVyLmRh
dGEoKSwgdXJsLCBwYXRoU3RhcnQsIHBhdGhFbmQpOwogICAgICAgICBhcHBlbmRFc2NhcGluZ0Jh
ZENoYXJzKHAsIHBhdGhCdWZmZXIuZGF0YSgpLCBsZW5ndGgpOwogICAgIH0KIApAQCAtMTY3Myw3
ICsxNjc0LDcgQEAgdm9pZCBVUkw6OnBhcnNlKGNvbnN0IGNoYXIqIHVybCwgY29uc3QgUwogCiAg
ICAgLy8gRmluZCB0aGUgcG9zaXRpb24gYWZ0ZXIgdGhlIGxhc3Qgc2xhc2ggaW4gdGhlIHBhdGgs
IG9yCiAgICAgLy8gdGhlIHBvc2l0aW9uIGJlZm9yZSB0aGUgcGF0aCBpZiB0aGVyZSBhcmUgbm8g
c2xhc2hlcyBpbiBpdC4KLSAgICBpbnQgaTsKKyAgICB1bnNpZ25lZCBpOwogICAgIGZvciAoaSA9
IG1fcGF0aEVuZDsgaSA+IG1fcG9ydEVuZDsgLS1pKSB7CiAgICAgICAgIGlmIChidWZmZXJbaSAt
IDFdID09ICcvJykKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTcyMCwyMiArMTcyMSwyNCBAQCBi
b29sIHByb3RvY29sSG9zdEFuZFBvcnRBcmVFcXVhbChjb25zdCBVCiAgICAgaWYgKGEubV9zY2hl
bWVFbmQgIT0gYi5tX3NjaGVtZUVuZCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaW50
IGhvc3RTdGFydEEgPSBhLmhvc3RTdGFydCgpOwotICAgIGludCBob3N0TGVuZ3RoQSA9IGEuaG9z
dEVuZCgpIC0gaG9zdFN0YXJ0QTsKLSAgICBpbnQgaG9zdFN0YXJ0QiA9IGIuaG9zdFN0YXJ0KCk7
Ci0gICAgaW50IGhvc3RMZW5ndGhCID0gYi5ob3N0RW5kKCkgLSBiLmhvc3RTdGFydCgpOworICAg
IHVuc2lnbmVkIGhvc3RTdGFydEEgPSBhLmhvc3RTdGFydCgpOworICAgIHVuc2lnbmVkIGhvc3RM
ZW5ndGhBID0gYS5ob3N0RW5kKCkgLSBob3N0U3RhcnRBOworICAgIHVuc2lnbmVkIGhvc3RTdGFy
dEIgPSBiLmhvc3RTdGFydCgpOworICAgIHVuc2lnbmVkIGhvc3RMZW5ndGhCID0gYi5ob3N0RW5k
KCkgLSBiLmhvc3RTdGFydCgpOwogICAgIGlmIChob3N0TGVuZ3RoQSAhPSBob3N0TGVuZ3RoQikK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgLy8gQ2hlY2sgdGhlIHNjaGVtZQotICAgIGZv
ciAoaW50IGkgPSAwOyBpIDwgYS5tX3NjaGVtZUVuZDsgKytpKQorICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBhLm1fc2NoZW1lRW5kOyArK2kpIHsKICAgICAgICAgaWYgKGEuc3RyaW5nKClb
aV0gIT0gYi5zdHJpbmcoKVtpXSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAK
ICAgICAvLyBBbmQgdGhlIGhvc3QKLSAgICBmb3IgKGludCBpID0gMDsgaSA8IGhvc3RMZW5ndGhB
OyArK2kpCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGhvc3RMZW5ndGhBOyArK2kpIHsK
ICAgICAgICAgaWYgKGEuc3RyaW5nKClbaG9zdFN0YXJ0QSArIGldICE9IGIuc3RyaW5nKClbaG9z
dFN0YXJ0QiArIGldKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KIAogICAgIGlm
IChhLnBvcnQoKSAhPSBiLnBvcnQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTc0NSwx
NCArMTc0OCwxNCBAQCBib29sIHByb3RvY29sSG9zdEFuZFBvcnRBcmVFcXVhbChjb25zdCBVCiAK
IGJvb2wgaG9zdHNBcmVFcXVhbChjb25zdCBVUkwmIGEsIGNvbnN0IFVSTCYgYikKIHsKLSAgICBp
bnQgaG9zdFN0YXJ0QSA9IGEuaG9zdFN0YXJ0KCk7Ci0gICAgaW50IGhvc3RMZW5ndGhBID0gYS5o
b3N0RW5kKCkgLSBob3N0U3RhcnRBOwotICAgIGludCBob3N0U3RhcnRCID0gYi5ob3N0U3RhcnQo
KTsKLSAgICBpbnQgaG9zdExlbmd0aEIgPSBiLmhvc3RFbmQoKSAtIGhvc3RTdGFydEI7CisgICAg
dW5zaWduZWQgaG9zdFN0YXJ0QSA9IGEuaG9zdFN0YXJ0KCk7CisgICAgdW5zaWduZWQgaG9zdExl
bmd0aEEgPSBhLmhvc3RFbmQoKSAtIGhvc3RTdGFydEE7CisgICAgdW5zaWduZWQgaG9zdFN0YXJ0
QiA9IGIuaG9zdFN0YXJ0KCk7CisgICAgdW5zaWduZWQgaG9zdExlbmd0aEIgPSBiLmhvc3RFbmQo
KSAtIGhvc3RTdGFydEI7CiAgICAgaWYgKGhvc3RMZW5ndGhBICE9IGhvc3RMZW5ndGhCKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBmb3IgKGludCBpID0gMDsgaSA8IGhvc3RMZW5ndGhB
OyArK2kpIHsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgaG9zdExlbmd0aEE7ICsraSkg
ewogICAgICAgICBpZiAoYS5zdHJpbmcoKVtob3N0U3RhcnRBICsgaV0gIT0gYi5zdHJpbmcoKVto
b3N0U3RhcnRCICsgaV0pCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtMTgx
Nyw3ICsxODIwLDcgQEAgc3RhdGljIGJvb2wgcHJvdG9jb2xJcyhTdHJpbmdWaWV3IHN0cmluZwog
ICAgIHJldHVybiBmYWxzZTsKIH0KIAotc3RhdGljIHZvaWQgZmluZEhvc3RuYW1lc0luTWFpbFRv
VVJMKFN0cmluZ1ZpZXcgc3RyaW5nLCBWZWN0b3I8c3RkOjpwYWlyPGludCwgaW50Pj4mIG5hbWVS
YW5nZXMpCitzdGF0aWMgdm9pZCBmaW5kSG9zdG5hbWVzSW5NYWlsVG9VUkwoU3RyaW5nVmlldyBz
dHJpbmcsIFZlY3RvcjxzdGQ6OnBhaXI8dW5zaWduZWQsIHVuc2lnbmVkPj4mIG5hbWVSYW5nZXMp
CiB7CiAgICAgLy8gSW4gYSBtYWlsdG86IFVSTCwgaG9zdCBuYW1lcyBjb21lIGFmdGVyIGEgJ0An
IGNoYXJhY3RlciBhbmQgZW5kIHdpdGggYSAnPicgb3IgJywnIG9yICc/JyBvciBlbmQgb2Ygc3Ry
aW5nIGNoYXJhY3Rlci4KICAgICAvLyBTa2lwIHF1b3RlZCBzdHJpbmdzIHNvIHRoYXQgY2hhcmFj
dGVycyBpbiB0aGVtIGRvbid0IGNvbmZ1c2UgdXMuCkBAIC0xODI1LDExICsxODI4LDExIEBAIHN0
YXRpYyB2b2lkIGZpbmRIb3N0bmFtZXNJbk1haWxUb1VSTChTdHIKIAogICAgIG5hbWVSYW5nZXMu
Y2xlYXIoKTsKIAotICAgIGludCBwID0gMDsKKyAgICB1bnNpZ25lZCBwID0gMDsKICAgICB3aGls
ZSAoMSkgewogICAgICAgICAvLyBGaW5kIHN0YXJ0IG9mIGhvc3QgbmFtZSBvciBvZiBxdW90ZWQg
c3RyaW5nLgotICAgICAgICBpbnQgaG9zdG5hbWVPclN0cmluZ1N0YXJ0ID0gZmluZEZpcnN0T2Yo
c3RyaW5nLCBwLCAiXCJAPyIpOwotICAgICAgICBpZiAoaG9zdG5hbWVPclN0cmluZ1N0YXJ0ID09
IC0xKQorICAgICAgICB1bnNpZ25lZCBob3N0bmFtZU9yU3RyaW5nU3RhcnQgPSBmaW5kRmlyc3RP
ZihzdHJpbmcsIHAsICJcIkA/Iik7CisgICAgICAgIGlmIChob3N0bmFtZU9yU3RyaW5nU3RhcnQg
PT0gbm90Rm91bmRVbnNpZ25lZCkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgVUNoYXIg
YyA9IHN0cmluZ1tob3N0bmFtZU9yU3RyaW5nU3RhcnRdOwogICAgICAgICBwID0gaG9zdG5hbWVP
clN0cmluZ1N0YXJ0ICsgMTsKQEAgLTE4MzksMTAgKzE4NDIsMTAgQEAgc3RhdGljIHZvaWQgZmlu
ZEhvc3RuYW1lc0luTWFpbFRvVVJMKFN0cgogCiAgICAgICAgIGlmIChjID09ICdAJykgewogICAg
ICAgICAgICAgLy8gRmluZCBlbmQgb2YgaG9zdCBuYW1lLgotICAgICAgICAgICAgaW50IGhvc3Ru
YW1lU3RhcnQgPSBwOwotICAgICAgICAgICAgaW50IGhvc3RuYW1lRW5kID0gZmluZEZpcnN0T2Yo
c3RyaW5nLCBwLCAiPiw/Iik7CisgICAgICAgICAgICB1bnNpZ25lZCBob3N0bmFtZVN0YXJ0ID0g
cDsKKyAgICAgICAgICAgIHVuc2lnbmVkIGhvc3RuYW1lRW5kID0gZmluZEZpcnN0T2Yoc3RyaW5n
LCBwLCAiPiw/Iik7CiAgICAgICAgICAgICBib29sIGRvbmU7Ci0gICAgICAgICAgICBpZiAoaG9z
dG5hbWVFbmQgPT0gLTEpIHsKKyAgICAgICAgICAgIGlmIChob3N0bmFtZUVuZCA9PSBub3RGb3Vu
ZFVuc2lnbmVkKSB7CiAgICAgICAgICAgICAgICAgaG9zdG5hbWVFbmQgPSBzdHJpbmcubGVuZ3Ro
KCk7CiAgICAgICAgICAgICAgICAgZG9uZSA9IHRydWU7CiAgICAgICAgICAgICB9IGVsc2UgewpA
QCAtMTg1OCw4ICsxODYxLDggQEAgc3RhdGljIHZvaWQgZmluZEhvc3RuYW1lc0luTWFpbFRvVVJM
KFN0cgogICAgICAgICAgICAgLy8gU2tpcCBxdW90ZWQgc3RyaW5nLgogICAgICAgICAgICAgQVNT
RVJUKGMgPT0gJyInKTsKICAgICAgICAgICAgIHdoaWxlICgxKSB7Ci0gICAgICAgICAgICAgICAg
aW50IGVzY2FwZWRDaGFyYWN0ZXJPclN0cmluZ0VuZCA9IGZpbmRGaXJzdE9mKHN0cmluZywgcCwg
IlwiXFwiKTsKLSAgICAgICAgICAgICAgICBpZiAoZXNjYXBlZENoYXJhY3Rlck9yU3RyaW5nRW5k
ID09IC0xKQorICAgICAgICAgICAgICAgIHVuc2lnbmVkIGVzY2FwZWRDaGFyYWN0ZXJPclN0cmlu
Z0VuZCA9IGZpbmRGaXJzdE9mKHN0cmluZywgcCwgIlwiXFwiKTsKKyAgICAgICAgICAgICAgICBp
ZiAoZXNjYXBlZENoYXJhY3Rlck9yU3RyaW5nRW5kID09IG5vdEZvdW5kVW5zaWduZWQpCiAgICAg
ICAgICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICAgICAgICAgIGMgPSBzdHJpbmdbZXNj
YXBlZENoYXJhY3Rlck9yU3RyaW5nRW5kXTsKQEAgLTE4NzEsNyArMTg3NCw3IEBAIHN0YXRpYyB2
b2lkIGZpbmRIb3N0bmFtZXNJbk1haWxUb1VSTChTdHIKIAogICAgICAgICAgICAgICAgIC8vIFNr
aXAgZXNjYXBlZCBjaGFyYWN0ZXIuCiAgICAgICAgICAgICAgICAgQVNTRVJUKGMgPT0gJ1xcJyk7
Ci0gICAgICAgICAgICAgICAgaWYgKHAgPT0gc3RhdGljX2Nhc3Q8aW50PihzdHJpbmcubGVuZ3Ro
KCkpKQorICAgICAgICAgICAgICAgIGlmIChwID09IHN0cmluZy5sZW5ndGgoKSkKICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgICAgICAgICAgKytwOwpAQCAtMTg4MCwzMSAr
MTg4MywzMSBAQCBzdGF0aWMgdm9pZCBmaW5kSG9zdG5hbWVzSW5NYWlsVG9VUkwoU3RyCiAgICAg
fQogfQogCi1zdGF0aWMgYm9vbCBmaW5kSG9zdG5hbWVJbkhpZXJhcmNoaWNhbFVSTChTdHJpbmdW
aWV3IHN0cmluZywgaW50JiBzdGFydE9mZnNldCwgaW50JiBlbmRPZmZzZXQpCitzdGF0aWMgYm9v
bCBmaW5kSG9zdG5hbWVJbkhpZXJhcmNoaWNhbFVSTChTdHJpbmdWaWV3IHN0cmluZywgdW5zaWdu
ZWQmIHN0YXJ0T2Zmc2V0LCB1bnNpZ25lZCYgZW5kT2Zmc2V0KQogewogICAgIC8vIEZpbmQgdGhl
IGhvc3QgbmFtZSBpbiBhIGhpZXJhcmNoaWNhbCBVUkwuCiAgICAgLy8gSXQgY29tZXMgYWZ0ZXIg
YSAiOi8vIiBzZXF1ZW5jZSwgd2l0aCBzY2hlbWUgY2hhcmFjdGVycyBwcmVjZWRpbmcsIGFuZAog
ICAgIC8vIHRoaXMgc2hvdWxkIGJlIHRoZSBmaXJzdCBjb2xvbiBpbiB0aGUgc3RyaW5nLgogICAg
IC8vIEl0IGVuZHMgd2l0aCB0aGUgZW5kIG9mIHRoZSBzdHJpbmcgb3IgYSAiOiIgb3IgYSBwYXRo
IHNlZ21lbnQgZW5kaW5nIGNoYXJhY3Rlci4KICAgICAvLyBJZiB0aGVyZSBpcyBhICJAIiBjaGFy
YWN0ZXIsIHRoZSBob3N0IHBhcnQgaXMganVzdCB0aGUgcGFydCBhZnRlciB0aGUgIkAiLgotICAg
IGludCBzZXBhcmF0b3IgPSBmaW5kRmlyc3RPZihzdHJpbmcsIDAsICI6Iik7Ci0gICAgaWYgKHNl
cGFyYXRvciA9PSAtMSB8fCBzZXBhcmF0b3IgKyAyID49IHN0YXRpY19jYXN0PGludD4oc3RyaW5n
Lmxlbmd0aCgpKSB8fCBzdHJpbmdbc2VwYXJhdG9yICsgMV0gIT0gJy8nIHx8IHN0cmluZ1tzZXBh
cmF0b3IgKyAyXSAhPSAnLycpCisgICAgdW5zaWduZWQgc2VwYXJhdG9yID0gZmluZEZpcnN0T2Yo
c3RyaW5nLCAwLCAiOiIpOworICAgIGlmIChzZXBhcmF0b3IgPT0gbm90Rm91bmRVbnNpZ25lZCB8
fCBzZXBhcmF0b3IgKyAyID49IHN0cmluZy5sZW5ndGgoKSB8fCBzdHJpbmdbc2VwYXJhdG9yICsg
MV0gIT0gJy8nIHx8IHN0cmluZ1tzZXBhcmF0b3IgKyAyXSAhPSAnLycpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgIC8vIENoZWNrIHRoYXQgYWxsIGNoYXJhY3RlcnMgYmVmb3JlIHRoZSA6
Ly8gYXJlIHZhbGlkIHNjaGVtZSBjaGFyYWN0ZXJzLgogICAgIGlmICghaXNTY2hlbWVGaXJzdENo
YXIoc3RyaW5nWzBdKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGZvciAoaW50IGkgPSAx
OyBpIDwgc2VwYXJhdG9yOyArK2kpIHsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAxOyBpIDwgc2Vw
YXJhdG9yOyArK2kpIHsKICAgICAgICAgaWYgKCFpc1NjaGVtZUNoYXIoc3RyaW5nW2ldKSkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKICAgICAvLyBTdGFydCBhZnRlciB0aGUg
c2VwYXJhdG9yLgotICAgIGludCBhdXRob3JpdHlTdGFydCA9IHNlcGFyYXRvciArIDM7CisgICAg
dW5zaWduZWQgYXV0aG9yaXR5U3RhcnQgPSBzZXBhcmF0b3IgKyAzOwogCiAgICAgLy8gRmluZCB0
ZXJtaW5hdGluZyBjaGFyYWN0ZXIuCi0gICAgaW50IGhvc3RuYW1lRW5kID0gc3RyaW5nLmxlbmd0
aCgpOwotICAgIGZvciAoaW50IGkgPSBhdXRob3JpdHlTdGFydDsgaSA8IGhvc3RuYW1lRW5kOyAr
K2kpIHsKKyAgICB1bnNpZ25lZCBob3N0bmFtZUVuZCA9IHN0cmluZy5sZW5ndGgoKTsKKyAgICBm
b3IgKHVuc2lnbmVkIGkgPSBhdXRob3JpdHlTdGFydDsgaSA8IGhvc3RuYW1lRW5kOyArK2kpIHsK
ICAgICAgICAgVUNoYXIgYyA9IHN0cmluZ1tpXTsKICAgICAgICAgaWYgKGMgPT0gJzonIHx8IChp
c1BhdGhTZWdtZW50RW5kQ2hhcihjKSAmJiBjICE9IDApKSB7CiAgICAgICAgICAgICBob3N0bmFt
ZUVuZCA9IGk7CkBAIC0xOTEzLDkgKzE5MTYsOSBAQCBzdGF0aWMgYm9vbCBmaW5kSG9zdG5hbWVJ
bkhpZXJhcmNoaWNhbFVSCiAgICAgfQogCiAgICAgLy8gRmluZCAiQCIgZm9yIHRoZSBzdGFydCBv
ZiB0aGUgaG9zdCBuYW1lLgotICAgIGludCB1c2VySW5mb1Rlcm1pbmF0b3IgPSBmaW5kRmlyc3RP
ZihzdHJpbmcsIGF1dGhvcml0eVN0YXJ0LCAiQCIpOwotICAgIGludCBob3N0bmFtZVN0YXJ0Owot
ICAgIGlmICh1c2VySW5mb1Rlcm1pbmF0b3IgPT0gLTEgfHwgdXNlckluZm9UZXJtaW5hdG9yID4g
aG9zdG5hbWVFbmQpCisgICAgdW5zaWduZWQgdXNlckluZm9UZXJtaW5hdG9yID0gZmluZEZpcnN0
T2Yoc3RyaW5nLCBhdXRob3JpdHlTdGFydCwgIkAiKTsKKyAgICB1bnNpZ25lZCBob3N0bmFtZVN0
YXJ0OworICAgIGlmICh1c2VySW5mb1Rlcm1pbmF0b3IgPT0gbm90Rm91bmRVbnNpZ25lZCB8fCB1
c2VySW5mb1Rlcm1pbmF0b3IgPiBob3N0bmFtZUVuZCkKICAgICAgICAgaG9zdG5hbWVTdGFydCA9
IGF1dGhvcml0eVN0YXJ0OwogICAgIGVsc2UKICAgICAgICAgaG9zdG5hbWVTdGFydCA9IHVzZXJJ
bmZvVGVybWluYXRvciArIDE7CkBAIC0xOTMzLDEyICsxOTM2LDEyIEBAIHN0YXRpYyBib29sIGVu
Y29kZUhvc3RuYW1lcyhTdHJpbmdWaWV3IHMKICAgICBidWZmZXIuY2xlYXIoKTsKIAogICAgIGlm
IChwcm90b2NvbElzKHN0cmluZywgIm1haWx0byIpKSB7Ci0gICAgICAgIFZlY3RvcjxzdGQ6OnBh
aXI8aW50LCBpbnQ+PiBob3N0bmFtZVJhbmdlczsKKyAgICAgICAgVmVjdG9yPHN0ZDo6cGFpcjx1
bnNpZ25lZCwgdW5zaWduZWQ+PiBob3N0bmFtZVJhbmdlczsKICAgICAgICAgZmluZEhvc3RuYW1l
c0luTWFpbFRvVVJMKHN0cmluZywgaG9zdG5hbWVSYW5nZXMpOwotICAgICAgICBpbnQgbiA9IGhv
c3RuYW1lUmFuZ2VzLnNpemUoKTsKLSAgICAgICAgaW50IHAgPSAwOwotICAgICAgICBmb3IgKGlu
dCBpID0gMDsgaSA8IG47ICsraSkgewotICAgICAgICAgICAgY29uc3Qgc3RkOjpwYWlyPGludCwg
aW50PiYgciA9IGhvc3RuYW1lUmFuZ2VzW2ldOworICAgICAgICB1bnNpZ25lZCBuID0gaG9zdG5h
bWVSYW5nZXMuc2l6ZSgpOworICAgICAgICB1bnNpZ25lZCBwID0gMDsKKyAgICAgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IG47ICsraSkgeworICAgICAgICAgICAgY29uc3Qgc3RkOjpwYWly
PHVuc2lnbmVkLCB1bnNpZ25lZD4mIHIgPSBob3N0bmFtZVJhbmdlc1tpXTsKICAgICAgICAgICAg
IGFwcGVuZChidWZmZXIsIHN0cmluZy5zdWJzdHJpbmcocCwgci5maXJzdCAtIHApKTsKICAgICAg
ICAgICAgIGlmICghYXBwZW5kRW5jb2RlZEhvc3RuYW1lKGJ1ZmZlciwgc3RyaW5nLnN1YnN0cmlu
ZyhyLmZpcnN0LCByLnNlY29uZCAtIHIuZmlyc3QpKSkKICAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CkBAIC0xOTQ4LDcgKzE5NTEsNyBAQCBzdGF0aWMgYm9vbCBlbmNvZGVIb3N0bmFtZXMo
U3RyaW5nVmlldyBzCiAgICAgICAgIC8vIHdob2xlIHRoaW5nIGlmIHRoZXJlIGlzIG5vIGhvc3Ru
YW1lLgogICAgICAgICBhcHBlbmQoYnVmZmVyLCBzdHJpbmcuc3Vic3RyaW5nKHApKTsKICAgICB9
IGVsc2UgewotICAgICAgICBpbnQgaG9zdFN0YXJ0LCBob3N0RW5kOworICAgICAgICB1bnNpZ25l
ZCBob3N0U3RhcnQsIGhvc3RFbmQ7CiAgICAgICAgIGlmIChmaW5kSG9zdG5hbWVJbkhpZXJhcmNo
aWNhbFVSTChzdHJpbmcsIGhvc3RTdGFydCwgaG9zdEVuZCkpIHsKICAgICAgICAgICAgIGFwcGVu
ZChidWZmZXIsIHN0cmluZy5zdWJzdHJpbmcoMCwgaG9zdFN0YXJ0KSk7IC8vIEJlZm9yZSBob3N0
bmFtZS4KICAgICAgICAgICAgIGlmICghYXBwZW5kRW5jb2RlZEhvc3RuYW1lKGJ1ZmZlciwgc3Ry
aW5nLnN1YnN0cmluZyhob3N0U3RhcnQsIGhvc3RFbmQgLSBob3N0U3RhcnQpKSkKQEAgLTE5NzIs
MTMgKzE5NzUsMTMgQEAgc3RhdGljIGJvb2wgZW5jb2RlUmVsYXRpdmVTdHJpbmcoY29uc3QgUwog
CiAgICAgVGV4dEVuY29kaW5nIHBhdGhFbmNvZGluZyhVVEY4RW5jb2RpbmcoKSk7IC8vIFBhdGgg
aXMgYWx3YXlzIGVuY29kZWQgYXMgVVRGLTg7IG90aGVyIHBhcnRzIG1heSBkZXBlbmQgb24gdGhl
IHNjaGVtZS4KIAotICAgIGludCBwYXRoRW5kID0gLTE7CisgICAgdW5zaWduZWQgcGF0aEVuZCA9
IG5vdEZvdW5kVW5zaWduZWQ7CiAgICAgaWYgKGVuY29kaW5nICE9IHBhdGhFbmNvZGluZyAmJiBl
bmNvZGluZy5pc1ZhbGlkKCkgJiYgIXByb3RvY29sSXMocmVsLCAibWFpbHRvIikgJiYgIXByb3Rv
Y29sSXMocmVsLCAiZGF0YSIpICYmICFwcm90b2NvbElzSmF2YVNjcmlwdChyZWwpKSB7CiAgICAg
ICAgIC8vIEZpbmQgdGhlIGZpcnN0IGluc3RhbmNlIG9mIGVpdGhlciAjIG9yID8sIGtlZXAgcGF0
aEVuZCBhdCAtMSBvdGhlcndpc2UuCiAgICAgICAgIHBhdGhFbmQgPSBmaW5kRmlyc3RPZihTdHJp
bmdWaWV3KHMuZGF0YSgpLCBzLnNpemUoKSksIDAsICIjPyIpOwogICAgIH0KIAotICAgIGlmIChw
YXRoRW5kID09IC0xKSB7CisgICAgaWYgKHBhdGhFbmQgPT0gbm90Rm91bmRVbnNpZ25lZCkgewog
ICAgICAgICBDU3RyaW5nIGRlY29kZWQgPSBwYXRoRW5jb2RpbmcuZW5jb2RlKFN0cmluZ1ZpZXco
cy5kYXRhKCksIHMuc2l6ZSgpKSwgVVJMRW5jb2RlZEVudGl0aWVzRm9yVW5lbmNvZGFibGVzKTsK
ICAgICAgICAgb3V0cHV0LnJlc2l6ZShkZWNvZGVkLmxlbmd0aCgpKTsKICAgICAgICAgbWVtY3B5
KG91dHB1dC5kYXRhKCksIGRlY29kZWQuZGF0YSgpLCBkZWNvZGVkLmxlbmd0aCgpKTsKQEAgLTIw
MzQsNyArMjAzNyw3IEBAIGJvb2wgcHJvdG9jb2xJcyhjb25zdCBTdHJpbmcmIHVybCwgY29uc3QK
ICAgICAvLyBEbyB0aGUgY29tcGFyaXNvbiB3aXRob3V0IG1ha2luZyBhIG5ldyBzdHJpbmcgb2Jq
ZWN0LgogICAgIGFzc2VydFByb3RvY29sSXNHb29kKHByb3RvY29sKTsKICAgICBib29sIGlzTGVh
ZGluZyA9IHRydWU7Ci0gICAgZm9yIChpbnQgaSA9IDAsIGogPSAwOyB1cmxbaV07ICsraSkgewor
ICAgIGZvciAodW5zaWduZWQgaSA9IDAsIGogPSAwOyB1cmxbaV07ICsraSkgewogICAgICAgICAv
LyBza2lwIGxlYWRpbmcgd2hpdGVzcGFjZSBhbmQgY29udHJvbCBjaGFyYWN0ZXJzLgogICAgICAg
ICBpZiAoaXNMZWFkaW5nICYmIHNob3VsZFRyaW1Gcm9tVVJMKHVybFtpXSkpCiAgICAgICAgICAg
ICBjb250aW51ZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTC5oCShyZXZpc2lvbiAyMDQzMjUpCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkwuaAkod29ya2luZyBjb3B5KQpAQCAtMjE5LDE2
ICsyMTksMTYgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNWYWxpZCA6IDE7CiAgICAgYm9vbCBt
X3Byb3RvY29sSXNJbkhUVFBGYW1pbHkgOiAxOwogCi0gICAgaW50IG1fc2NoZW1lRW5kOwotICAg
IGludCBtX3VzZXJTdGFydDsKLSAgICBpbnQgbV91c2VyRW5kOwotICAgIGludCBtX3Bhc3N3b3Jk
RW5kOwotICAgIGludCBtX2hvc3RFbmQ7Ci0gICAgaW50IG1fcG9ydEVuZDsKLSAgICBpbnQgbV9w
YXRoQWZ0ZXJMYXN0U2xhc2g7Ci0gICAgaW50IG1fcGF0aEVuZDsKLSAgICBpbnQgbV9xdWVyeUVu
ZDsKLSAgICBpbnQgbV9mcmFnbWVudEVuZDsKKyAgICB1bnNpZ25lZCBtX3NjaGVtZUVuZDsKKyAg
ICB1bnNpZ25lZCBtX3VzZXJTdGFydDsKKyAgICB1bnNpZ25lZCBtX3VzZXJFbmQ7CisgICAgdW5z
aWduZWQgbV9wYXNzd29yZEVuZDsKKyAgICB1bnNpZ25lZCBtX2hvc3RFbmQ7CisgICAgdW5zaWdu
ZWQgbV9wb3J0RW5kOworICAgIHVuc2lnbmVkIG1fcGF0aEFmdGVyTGFzdFNsYXNoOworICAgIHVu
c2lnbmVkIG1fcGF0aEVuZDsKKyAgICB1bnNpZ25lZCBtX3F1ZXJ5RW5kOworICAgIHVuc2lnbmVk
IG1fZnJhZ21lbnRFbmQ7CiB9OwogCiB0ZW1wbGF0ZSA8Y2xhc3MgRW5jb2Rlcj4K
</data>

          </attachment>
      

    </bug>

</bugzilla>