<?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>162511</bug_id>
          
          <creation_ts>2016-09-23 13:41:06 -0700</creation_ts>
          <short_desc>Refactor URLParser</short_desc>
          <delta_ts>2016-09-23 14:00:31 -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>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1232975</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-09-23 13:41:06 -0700</bug_when>
    <thetext>Refactor URLParser</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1232977</commentid>
    <comment_count>1</comment_count>
      <attachid>289703</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-09-23 13:46:03 -0700</bug_when>
    <thetext>Created attachment 289703
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1232984</commentid>
    <comment_count>2</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-09-23 14:00:31 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/206329</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>289703</attachid>
            <date>2016-09-23 13:46:03 -0700</date>
            <delta_ts>2016-09-23 13:59:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162511-20160923134312.patch</filename>
            <type>text/plain</type>
            <size>26661</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNjMyMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUwIEBACisyMDE2LTA5LTIzICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVmYWN0b3Ig
VVJMUGFyc2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNjI1MTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBNYWtlIHRoZSBjb25zdHJ1Y3RvciB0YWtlIHRoZSBwYXJhbWV0ZXJzIGluc3RlYWQgb2YgVVJM
OjpwYXJzZS4KKyAgICAgICAgTm93IHdlIGRvbid0IG5lZWQgdG8gY29weSB0aGUgaW5wdXQgc3Ry
aW5nIG9uIGZhaWx1cmUuCisgICAgICAgIEFsc28sIHR1cm4gc29tZSBzdGF0aWMgZnVuY3Rpb25z
IGludG8gbWV0aG9kcyBzbyB0aGV5IHdpbGwgYmUgYWJsZSB0byBhY2Nlc3MgbWVtYmVyIHZhcmlh
Ymxlcy4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIGFuZCBuZXcgQVBJIHRlc3RzLgor
CisgICAgICAgICogcGxhdGZvcm0vVVJMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlVSTDo6VVJM
KToKKyAgICAgICAgKFdlYkNvcmU6OlVSTDo6c2V0UHJvdG9jb2wpOgorICAgICAgICAoV2ViQ29y
ZTo6VVJMOjpzZXRIb3N0KToKKyAgICAgICAgKFdlYkNvcmU6OlVSTDo6cmVtb3ZlUG9ydCk6Cisg
ICAgICAgIChXZWJDb3JlOjpVUkw6OnNldFBvcnQpOgorICAgICAgICAoV2ViQ29yZTo6VVJMOjpz
ZXRIb3N0QW5kUG9ydCk6CisgICAgICAgIChXZWJDb3JlOjpVUkw6OnNldFVzZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6VVJMOjpzZXRQYXNzKToKKyAgICAgICAgKFdlYkNvcmU6OlVSTDo6c2V0RnJh
Z21lbnRJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlVSTDo6cmVtb3ZlRnJhZ21lbnRJ
ZGVudGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlVSTDo6c2V0UXVlcnkpOgorICAgICAgICAo
V2ViQ29yZTo6VVJMOjpzZXRQYXRoKToKKyAgICAgICAgKiBwbGF0Zm9ybS9VUkxQYXJzZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VVJMUGFyc2VyOjppbmNyZW1lbnRJdGVyYXRvclNraXBwaW5n
VGFiQW5kTmV3TGluZSk6CisgICAgICAgIChXZWJDb3JlOjpVUkxQYXJzZXI6OmlzV2luZG93c0Ry
aXZlTGV0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlVSTFBhcnNlcjo6Y2hlY2tXaW5kb3dzRHJp
dmVMZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VVJMUGFyc2VyOjpzaG91bGRDb3B5RmlsZVVS
TCk6CisgICAgICAgIChXZWJDb3JlOjpVUkxQYXJzZXI6OmZhaWx1cmUpOgorICAgICAgICAoV2Vi
Q29yZTo6VVJMUGFyc2VyOjpVUkxQYXJzZXIpOgorICAgICAgICAoV2ViQ29yZTo6VVJMUGFyc2Vy
OjpwYXJzZSk6CisgICAgICAgIChXZWJDb3JlOjppbmNyZW1lbnRJdGVyYXRvclNraXBwaW5nVGFi
QW5kTmV3TGluZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjppc1dpbmRvd3NEcml2ZUxl
dHRlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpjaGVja1dpbmRvd3NEcml2ZUxldHRl
cik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpzaG91bGRDb3B5RmlsZVVSTCk6IERlbGV0
ZWQuCisgICAgICAgICogcGxhdGZvcm0vVVJMUGFyc2VyLmg6CisgICAgICAgIChXZWJDb3JlOjpV
UkxQYXJzZXI6OlVSTFBhcnNlcik6CisgICAgICAgIChXZWJDb3JlOjpVUkxQYXJzZXI6OnJlc3Vs
dCk6CisgICAgICAgIChXZWJDb3JlOjpVUkxQYXJzZXI6OnBhcnNlKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9jZi9VUkxDRi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpVUkw6OlVSTCk6
CisgICAgICAgICogcGxhdGZvcm0vbWFjL1VSTE1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlVS
TDo6VVJMKToKKwogMjAxNi0wOS0yMyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3
ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSBVUkxQYXJzZXIgc2VyaWFsaXplZCB0ZW1wbGF0
ZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkwuY3BwCShyZXZpc2lvbiAyMDYzMjMpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NDEsOCArNDQx
LDggQEAgdm9pZCBVUkw6OmludmFsaWRhdGUoKQogVVJMOjpVUkwoUGFyc2VkVVJMU3RyaW5nVGFn
LCBjb25zdCBTdHJpbmcmIHVybCkKIHsKICAgICBpZiAoVVJMUGFyc2VyOjplbmFibGVkKCkpIHsK
LSAgICAgICAgVVJMUGFyc2VyIHBhcnNlcjsKLSAgICAgICAgKnRoaXMgPSBwYXJzZXIucGFyc2Uo
dXJsKTsKKyAgICAgICAgVVJMUGFyc2VyIHBhcnNlcih1cmwpOworICAgICAgICAqdGhpcyA9IHBh
cnNlci5yZXN1bHQoKTsKICAgICB9IGVsc2UKICAgICAgICAgcGFyc2UodXJsKTsKICNpZiBPUyhX
SU5ET1dTKQpAQCAtNDU2LDggKzQ1Niw4IEBAIFVSTDo6VVJMKFBhcnNlZFVSTFN0cmluZ1RhZywg
Y29uc3QgU3RyaW4KIFVSTDo6VVJMKGNvbnN0IFVSTCYgYmFzZSwgY29uc3QgU3RyaW5nJiByZWxh
dGl2ZSkKIHsKICAgICBpZiAoVVJMUGFyc2VyOjplbmFibGVkKCkpIHsKLSAgICAgICAgVVJMUGFy
c2VyIHBhcnNlcjsKLSAgICAgICAgKnRoaXMgPSBwYXJzZXIucGFyc2UocmVsYXRpdmUsIGJhc2Up
OworICAgICAgICBVUkxQYXJzZXIgcGFyc2VyKHJlbGF0aXZlLCBiYXNlKTsKKyAgICAgICAgKnRo
aXMgPSBwYXJzZXIucmVzdWx0KCk7CiAgICAgfSBlbHNlCiAgICAgICAgIGluaXQoYmFzZSwgcmVs
YXRpdmUsIFVURjhFbmNvZGluZygpKTsKIH0KQEAgLTQ2NSw4ICs0NjUsOCBAQCBVUkw6OlVSTChj
b25zdCBVUkwmIGJhc2UsIGNvbnN0IFN0cmluZyYgCiBVUkw6OlVSTChjb25zdCBVUkwmIGJhc2Us
IGNvbnN0IFN0cmluZyYgcmVsYXRpdmUsIGNvbnN0IFRleHRFbmNvZGluZyYgZW5jb2RpbmcpCiB7
CiAgICAgaWYgKFVSTFBhcnNlcjo6ZW5hYmxlZCgpKSB7Ci0gICAgICAgIFVSTFBhcnNlciBwYXJz
ZXI7Ci0gICAgICAgICp0aGlzID0gcGFyc2VyLnBhcnNlKHJlbGF0aXZlLCBiYXNlLCBlbmNvZGlu
Zyk7CisgICAgICAgIFVSTFBhcnNlciBwYXJzZXIocmVsYXRpdmUsIGJhc2UsIGVuY29kaW5nKTsK
KyAgICAgICAgKnRoaXMgPSBwYXJzZXIucmVzdWx0KCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAg
Ly8gRm9yIFVURi17NywxNiwzMn0sIHdlIHdhbnQgdG8gdXNlIFVURi04IGZvciB0aGUgcXVlcnkg
cGFydCBhcwogICAgICAgICAvLyB3ZSBkbyB3aGVuIHN1Ym1pdHRpbmcgYSBmb3JtLiBBIGZvcm0g
d2l0aCBHRVQgbWV0aG9kCkBAIC04NjUsMTYgKzg2NSwxNiBAQCBib29sIFVSTDo6c2V0UHJvdG9j
b2woY29uc3QgU3RyaW5nJiBzKQogCiAgICAgaWYgKCFtX2lzVmFsaWQpIHsKICAgICAgICAgaWYg
KFVSTFBhcnNlcjo6ZW5hYmxlZCgpKSB7Ci0gICAgICAgICAgICBVUkxQYXJzZXIgcGFyc2VyOwot
ICAgICAgICAgICAgKnRoaXMgPSBwYXJzZXIucGFyc2UobWFrZVN0cmluZyhuZXdQcm90b2NvbCwg
IjoiLCBtX3N0cmluZykpOworICAgICAgICAgICAgVVJMUGFyc2VyIHBhcnNlcihtYWtlU3RyaW5n
KG5ld1Byb3RvY29sLCAiOiIsIG1fc3RyaW5nKSk7CisgICAgICAgICAgICAqdGhpcyA9IHBhcnNl
ci5yZXN1bHQoKTsKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBwYXJzZShuZXdQcm90b2Nv
bCArICc6JyArIG1fc3RyaW5nKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCiAgICAg
aWYgKFVSTFBhcnNlcjo6ZW5hYmxlZCgpKSB7Ci0gICAgICAgIFVSTFBhcnNlciBwYXJzZXI7Ci0g
ICAgICAgICp0aGlzID0gcGFyc2VyLnBhcnNlKG1ha2VTdHJpbmcobmV3UHJvdG9jb2wsIG1fc3Ry
aW5nLnN1YnN0cmluZyhtX3NjaGVtZUVuZCkpKTsKKyAgICAgICAgVVJMUGFyc2VyIHBhcnNlciht
YWtlU3RyaW5nKG5ld1Byb3RvY29sLCBtX3N0cmluZy5zdWJzdHJpbmcobV9zY2hlbWVFbmQpKSk7
CisgICAgICAgICp0aGlzID0gcGFyc2VyLnJlc3VsdCgpOwogICAgIH0gZWxzZQogICAgICAgICBw
YXJzZShuZXdQcm90b2NvbCArIG1fc3RyaW5nLnN1YnN0cmluZyhtX3NjaGVtZUVuZCkpOwogCkBA
IC05NDUsOCArOTQ1LDggQEAgdm9pZCBVUkw6OnNldEhvc3QoY29uc3QgU3RyaW5nJiBzKQogICAg
IGJ1aWxkZXIuYXBwZW5kKG1fc3RyaW5nLnN1YnN0cmluZyhtX2hvc3RFbmQpKTsKICAgICAKICAg
ICBpZiAoVVJMUGFyc2VyOjplbmFibGVkKCkpIHsKLSAgICAgICAgVVJMUGFyc2VyIHBhcnNlcjsK
LSAgICAgICAgKnRoaXMgPSBwYXJzZXIucGFyc2UoYnVpbGRlci50b1N0cmluZygpKTsKKyAgICAg
ICAgVVJMUGFyc2VyIHBhcnNlcihidWlsZGVyLnRvU3RyaW5nKCkpOworICAgICAgICAqdGhpcyA9
IHBhcnNlci5yZXN1bHQoKTsKICAgICB9IGVsc2UKICAgICAgICAgcGFyc2UoYnVpbGRlci50b1N0
cmluZygpKTsKIH0KQEAgLTk1Niw4ICs5NTYsOCBAQCB2b2lkIFVSTDo6cmVtb3ZlUG9ydCgpCiAg
ICAgaWYgKG1faG9zdEVuZCA9PSBtX3BvcnRFbmQpCiAgICAgICAgIHJldHVybjsKICAgICBpZiAo
VVJMUGFyc2VyOjplbmFibGVkKCkpIHsKLSAgICAgICAgVVJMUGFyc2VyIHBhcnNlcjsKLSAgICAg
ICAgKnRoaXMgPSBwYXJzZXIucGFyc2UobV9zdHJpbmcubGVmdChtX2hvc3RFbmQpICsgbV9zdHJp
bmcuc3Vic3RyaW5nKG1fcG9ydEVuZCkpOworICAgICAgICBVUkxQYXJzZXIgcGFyc2VyKG1fc3Ry
aW5nLmxlZnQobV9ob3N0RW5kKSArIG1fc3RyaW5nLnN1YnN0cmluZyhtX3BvcnRFbmQpKTsKKyAg
ICAgICAgKnRoaXMgPSBwYXJzZXIucmVzdWx0KCk7CiAgICAgfSBlbHNlCiAgICAgICAgIHBhcnNl
KG1fc3RyaW5nLmxlZnQobV9ob3N0RW5kKSArIG1fc3RyaW5nLnN1YnN0cmluZyhtX3BvcnRFbmQp
KTsKIH0KQEAgLTk3MSw4ICs5NzEsOCBAQCB2b2lkIFVSTDo6c2V0UG9ydCh1bnNpZ25lZCBzaG9y
dCBpKQogICAgIHVuc2lnbmVkIHBvcnRTdGFydCA9IChjb2xvbk5lZWRlZCA/IG1faG9zdEVuZCA6
IG1faG9zdEVuZCArIDEpOwogCiAgICAgaWYgKFVSTFBhcnNlcjo6ZW5hYmxlZCgpKSB7Ci0gICAg
ICAgIFVSTFBhcnNlciBwYXJzZXI7Ci0gICAgICAgICp0aGlzID0gcGFyc2VyLnBhcnNlKG1ha2VT
dHJpbmcobV9zdHJpbmcubGVmdChwb3J0U3RhcnQpLCAoY29sb25OZWVkZWQgPyAiOiIgOiAiIiks
IFN0cmluZzo6bnVtYmVyKGkpLCBtX3N0cmluZy5zdWJzdHJpbmcobV9wb3J0RW5kKSkpOworICAg
ICAgICBVUkxQYXJzZXIgcGFyc2VyKG1ha2VTdHJpbmcobV9zdHJpbmcubGVmdChwb3J0U3RhcnQp
LCAoY29sb25OZWVkZWQgPyAiOiIgOiAiIiksIFN0cmluZzo6bnVtYmVyKGkpLCBtX3N0cmluZy5z
dWJzdHJpbmcobV9wb3J0RW5kKSkpOworICAgICAgICAqdGhpcyA9IHBhcnNlci5yZXN1bHQoKTsK
ICAgICB9IGVsc2UKICAgICAgICAgcGFyc2UobV9zdHJpbmcubGVmdChwb3J0U3RhcnQpICsgKGNv
bG9uTmVlZGVkID8gIjoiIDogIiIpICsgU3RyaW5nOjpudW1iZXIoaSkgKyBtX3N0cmluZy5zdWJz
dHJpbmcobV9wb3J0RW5kKSk7CiB9CkBAIC0xMDE2LDggKzEwMTYsOCBAQCB2b2lkIFVSTDo6c2V0
SG9zdEFuZFBvcnQoY29uc3QgU3RyaW5nJiBoCiAgICAgYnVpbGRlci5hcHBlbmQobV9zdHJpbmcu
c3Vic3RyaW5nKG1fcG9ydEVuZCkpOwogCiAgICAgaWYgKFVSTFBhcnNlcjo6ZW5hYmxlZCgpKSB7
Ci0gICAgICAgIFVSTFBhcnNlciBwYXJzZXI7Ci0gICAgICAgICp0aGlzID0gcGFyc2VyLnBhcnNl
KGJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAgIFVSTFBhcnNlciBwYXJzZXIoYnVpbGRlci50
b1N0cmluZygpKTsKKyAgICAgICAgKnRoaXMgPSBwYXJzZXIucmVzdWx0KCk7CiAgICAgfSBlbHNl
CiAgICAgICAgIHBhcnNlKGJ1aWxkZXIudG9TdHJpbmcoKSk7CiB9CkBAIC0xMDM5LDggKzEwMzks
OCBAQCB2b2lkIFVSTDo6c2V0VXNlcihjb25zdCBTdHJpbmcmIHVzZXIpCiAgICAgICAgIGlmIChl
bmQgPT0gbV9ob3N0RW5kIHx8IChlbmQgPT0gbV9wYXNzd29yZEVuZCAmJiBtX3N0cmluZ1tlbmRd
ICE9ICdAJykpCiAgICAgICAgICAgICB1LmFwcGVuZCgnQCcpOwogICAgICAgICBpZiAoVVJMUGFy
c2VyOjplbmFibGVkKCkpIHsKLSAgICAgICAgICAgIFVSTFBhcnNlciBwYXJzZXI7Ci0gICAgICAg
ICAgICAqdGhpcyA9IHBhcnNlci5wYXJzZShtYWtlU3RyaW5nKG1fc3RyaW5nLmxlZnQobV91c2Vy
U3RhcnQpLCB1LCBtX3N0cmluZy5zdWJzdHJpbmcoZW5kKSkpOworICAgICAgICAgICAgVVJMUGFy
c2VyIHBhcnNlcihtYWtlU3RyaW5nKG1fc3RyaW5nLmxlZnQobV91c2VyU3RhcnQpLCB1LCBtX3N0
cmluZy5zdWJzdHJpbmcoZW5kKSkpOworICAgICAgICAgICAgKnRoaXMgPSBwYXJzZXIucmVzdWx0
KCk7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgcGFyc2UobV9zdHJpbmcubGVmdChtX3Vz
ZXJTdGFydCkgKyB1ICsgbV9zdHJpbmcuc3Vic3RyaW5nKGVuZCkpOwogICAgIH0gZWxzZSB7CkBA
IC0xMDUwLDggKzEwNTAsOCBAQCB2b2lkIFVSTDo6c2V0VXNlcihjb25zdCBTdHJpbmcmIHVzZXIp
CiAgICAgICAgIC8vIFdlIGRvbid0IHdhbnQgdG8gcGFyc2UgaW4gdGhlIGV4dHJlbWVseSBjb21t
b24gY2FzZSB3aGVyZSB3ZSBhcmUgbm90IGdvaW5nIHRvIG1ha2UgYSBjaGFuZ2UuCiAgICAgICAg
IGlmIChtX3VzZXJTdGFydCAhPSBlbmQpIHsKICAgICAgICAgICAgIGlmIChVUkxQYXJzZXI6OmVu
YWJsZWQoKSkgewotICAgICAgICAgICAgICAgIFVSTFBhcnNlciBwYXJzZXI7Ci0gICAgICAgICAg
ICAgICAgKnRoaXMgPSBwYXJzZXIucGFyc2UobWFrZVN0cmluZyhtX3N0cmluZy5sZWZ0KG1fdXNl
clN0YXJ0KSwgbV9zdHJpbmcuc3Vic3RyaW5nKGVuZCkpKTsKKyAgICAgICAgICAgICAgICBVUkxQ
YXJzZXIgcGFyc2VyKG1ha2VTdHJpbmcobV9zdHJpbmcubGVmdChtX3VzZXJTdGFydCksIG1fc3Ry
aW5nLnN1YnN0cmluZyhlbmQpKSk7CisgICAgICAgICAgICAgICAgKnRoaXMgPSBwYXJzZXIucmVz
dWx0KCk7CiAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICBwYXJzZShtX3N0cmlu
Zy5sZWZ0KG1fdXNlclN0YXJ0KSArIG1fc3RyaW5nLnN1YnN0cmluZyhlbmQpKTsKICAgICAgICAg
fQpAQCAtMTA3Miw4ICsxMDcyLDggQEAgdm9pZCBVUkw6OnNldFBhc3MoY29uc3QgU3RyaW5nJiBw
YXNzd29yZAogICAgICAgICBpZiAoZW5kICE9IG1faG9zdEVuZCAmJiBtX3N0cmluZ1tlbmRdID09
ICdAJykKICAgICAgICAgICAgIGVuZCArPSAxOwogICAgICAgICBpZiAoVVJMUGFyc2VyOjplbmFi
bGVkKCkpIHsKLSAgICAgICAgICAgIFVSTFBhcnNlciBwYXJzZXI7Ci0gICAgICAgICAgICAqdGhp
cyA9IHBhcnNlci5wYXJzZShtYWtlU3RyaW5nKG1fc3RyaW5nLmxlZnQobV91c2VyRW5kKSwgcCwg
bV9zdHJpbmcuc3Vic3RyaW5nKGVuZCkpKTsKKyAgICAgICAgICAgIFVSTFBhcnNlciBwYXJzZXIo
bWFrZVN0cmluZyhtX3N0cmluZy5sZWZ0KG1fdXNlckVuZCksIHAsIG1fc3RyaW5nLnN1YnN0cmlu
ZyhlbmQpKSk7CisgICAgICAgICAgICAqdGhpcyA9IHBhcnNlci5yZXN1bHQoKTsKICAgICAgICAg
fSBlbHNlCiAgICAgICAgICAgICBwYXJzZShtX3N0cmluZy5sZWZ0KG1fdXNlckVuZCkgKyBwICsg
bV9zdHJpbmcuc3Vic3RyaW5nKGVuZCkpOwogICAgIH0gZWxzZSB7CkBAIC0xMDgzLDggKzEwODMs
OCBAQCB2b2lkIFVSTDo6c2V0UGFzcyhjb25zdCBTdHJpbmcmIHBhc3N3b3JkCiAgICAgICAgIC8v
IFdlIGRvbid0IHdhbnQgdG8gcGFyc2UgaW4gdGhlIGV4dHJlbWVseSBjb21tb24gY2FzZSB3aGVy
ZSB3ZSBhcmUgbm90IGdvaW5nIHRvIG1ha2UgYSBjaGFuZ2UuCiAgICAgICAgIGlmIChtX3VzZXJF
bmQgIT0gZW5kKSB7CiAgICAgICAgICAgICBpZiAoVVJMUGFyc2VyOjplbmFibGVkKCkpIHsKLSAg
ICAgICAgICAgICAgICBVUkxQYXJzZXIgcGFyc2VyOwotICAgICAgICAgICAgICAgICp0aGlzID0g
cGFyc2VyLnBhcnNlKG1ha2VTdHJpbmcobV9zdHJpbmcubGVmdChtX3VzZXJFbmQpLCBtX3N0cmlu
Zy5zdWJzdHJpbmcoZW5kKSkpOworICAgICAgICAgICAgICAgIFVSTFBhcnNlciBwYXJzZXIobWFr
ZVN0cmluZyhtX3N0cmluZy5sZWZ0KG1fdXNlckVuZCksIG1fc3RyaW5nLnN1YnN0cmluZyhlbmQp
KSk7CisgICAgICAgICAgICAgICAgKnRoaXMgPSBwYXJzZXIucmVzdWx0KCk7CiAgICAgICAgICAg
ICB9IGVsc2UKICAgICAgICAgICAgICAgICBwYXJzZShtX3N0cmluZy5sZWZ0KG1fdXNlckVuZCkg
KyBtX3N0cmluZy5zdWJzdHJpbmcoZW5kKSk7CiAgICAgICAgIH0KQEAgLTEwOTgsOCArMTA5OCw4
IEBAIHZvaWQgVVJMOjpzZXRGcmFnbWVudElkZW50aWZpZXIoY29uc3QgU3QKIAogICAgIC8vIEZJ
WE1FOiBOb24tQVNDSUkgY2hhcmFjdGVycyBtdXN0IGJlIGVuY29kZWQgYW5kIGVzY2FwZWQgdG8g
bWF0Y2ggcGFyc2UoKSBleHBlY3RhdGlvbnMuCiAgICAgaWYgKFVSTFBhcnNlcjo6ZW5hYmxlZCgp
KSB7Ci0gICAgICAgIFVSTFBhcnNlciBwYXJzZXI7Ci0gICAgICAgICp0aGlzID0gcGFyc2VyLnBh
cnNlKG1ha2VTdHJpbmcobV9zdHJpbmcubGVmdChtX3F1ZXJ5RW5kKSwgIiMiLCBzKSk7CisgICAg
ICAgIFVSTFBhcnNlciBwYXJzZXIobWFrZVN0cmluZyhtX3N0cmluZy5sZWZ0KG1fcXVlcnlFbmQp
LCAiIyIsIHMpKTsKKyAgICAgICAgKnRoaXMgPSBwYXJzZXIucmVzdWx0KCk7CiAgICAgfSBlbHNl
CiAgICAgICAgIHBhcnNlKG1fc3RyaW5nLmxlZnQobV9xdWVyeUVuZCkgKyAiIyIgKyBzKTsKIH0K
QEAgLTExMTAsOCArMTExMCw4IEBAIHZvaWQgVVJMOjpyZW1vdmVGcmFnbWVudElkZW50aWZpZXIo
KQogICAgICAgICByZXR1cm47CiAgICAgaWYgKFVSTFBhcnNlcjo6ZW5hYmxlZCgpKSB7CiAgICAg
ICAgIC8vIEZJWE1FOiBXZSBzaG91bGRuJ3QgbmVlZCB0byBwYXJzZSBoZXJlLgotICAgICAgICBV
UkxQYXJzZXIgcGFyc2VyOwotICAgICAgICAqdGhpcyA9IHBhcnNlci5wYXJzZShtX3N0cmluZy5s
ZWZ0KG1fcXVlcnlFbmQpKTsKKyAgICAgICAgVVJMUGFyc2VyIHBhcnNlcihtX3N0cmluZy5sZWZ0
KG1fcXVlcnlFbmQpKTsKKyAgICAgICAgKnRoaXMgPSBwYXJzZXIucmVzdWx0KCk7CiAgICAgfSBl
bHNlCiAgICAgICAgIHBhcnNlKG1fc3RyaW5nLmxlZnQobV9xdWVyeUVuZCkpOwogfQpAQCAtMTEy
NywxNCArMTEyNywxNCBAQCB2b2lkIFVSTDo6c2V0UXVlcnkoY29uc3QgU3RyaW5nJiBxdWVyeSkK
ICAgICAvLyBodHRwczovL3dlYmtpdC5vcmcvYi8xNjExNzYKICAgICBpZiAoKHF1ZXJ5LmlzRW1w
dHkoKSB8fCBxdWVyeVswXSAhPSAnPycpICYmICFxdWVyeS5pc051bGwoKSkgewogICAgICAgICBp
ZiAoVVJMUGFyc2VyOjplbmFibGVkKCkpIHsKLSAgICAgICAgICAgIFVSTFBhcnNlciBwYXJzZXI7
Ci0gICAgICAgICAgICAqdGhpcyA9IHBhcnNlci5wYXJzZShtYWtlU3RyaW5nKG1fc3RyaW5nLmxl
ZnQobV9wYXRoRW5kKSwgIj8iLCBxdWVyeSwgbV9zdHJpbmcuc3Vic3RyaW5nKG1fcXVlcnlFbmQp
KSk7CisgICAgICAgICAgICBVUkxQYXJzZXIgcGFyc2VyKG1ha2VTdHJpbmcobV9zdHJpbmcubGVm
dChtX3BhdGhFbmQpLCAiPyIsIHF1ZXJ5LCBtX3N0cmluZy5zdWJzdHJpbmcobV9xdWVyeUVuZCkp
KTsKKyAgICAgICAgICAgICp0aGlzID0gcGFyc2VyLnJlc3VsdCgpOwogICAgICAgICB9IGVsc2UK
ICAgICAgICAgICAgIHBhcnNlKG1fc3RyaW5nLmxlZnQobV9wYXRoRW5kKSArICI/IiArIHF1ZXJ5
ICsgbV9zdHJpbmcuc3Vic3RyaW5nKG1fcXVlcnlFbmQpKTsKICAgICB9IGVsc2UgewogICAgICAg
ICBpZiAoVVJMUGFyc2VyOjplbmFibGVkKCkpIHsKLSAgICAgICAgICAgIFVSTFBhcnNlciBwYXJz
ZXI7Ci0gICAgICAgICAgICAqdGhpcyA9IHBhcnNlci5wYXJzZShtYWtlU3RyaW5nKG1fc3RyaW5n
LmxlZnQobV9wYXRoRW5kKSwgcXVlcnksIG1fc3RyaW5nLnN1YnN0cmluZyhtX3F1ZXJ5RW5kKSkp
OworICAgICAgICAgICAgVVJMUGFyc2VyIHBhcnNlcihtYWtlU3RyaW5nKG1fc3RyaW5nLmxlZnQo
bV9wYXRoRW5kKSwgcXVlcnksIG1fc3RyaW5nLnN1YnN0cmluZyhtX3F1ZXJ5RW5kKSkpOworICAg
ICAgICAgICAgKnRoaXMgPSBwYXJzZXIucmVzdWx0KCk7CiAgICAgICAgIH0gZWxzZQogICAgICAg
ICAgICAgcGFyc2UobV9zdHJpbmcubGVmdChtX3BhdGhFbmQpICsgcXVlcnkgKyBtX3N0cmluZy5z
dWJzdHJpbmcobV9xdWVyeUVuZCkpOwogICAgIH0KQEAgLTExNTMsOCArMTE1Myw4IEBAIHZvaWQg
VVJMOjpzZXRQYXRoKGNvbnN0IFN0cmluZyYgcykKICAgICAgICAgcGF0aCA9ICIvIiArIHBhdGg7
CiAKICAgICBpZiAoVVJMUGFyc2VyOjplbmFibGVkKCkpIHsKLSAgICAgICAgVVJMUGFyc2VyIHBh
cnNlcjsKLSAgICAgICAgKnRoaXMgPSBwYXJzZXIucGFyc2UobWFrZVN0cmluZyhtX3N0cmluZy5s
ZWZ0KG1fcG9ydEVuZCksIGVuY29kZVdpdGhVUkxFc2NhcGVTZXF1ZW5jZXMocGF0aCksIG1fc3Ry
aW5nLnN1YnN0cmluZyhtX3BhdGhFbmQpKSk7CisgICAgICAgIFVSTFBhcnNlciBwYXJzZXIobWFr
ZVN0cmluZyhtX3N0cmluZy5sZWZ0KG1fcG9ydEVuZCksIGVuY29kZVdpdGhVUkxFc2NhcGVTZXF1
ZW5jZXMocGF0aCksIG1fc3RyaW5nLnN1YnN0cmluZyhtX3BhdGhFbmQpKSk7CisgICAgICAgICp0
aGlzID0gcGFyc2VyLnJlc3VsdCgpOwogICAgIH0gZWxzZQogICAgICAgICBwYXJzZShtX3N0cmlu
Zy5sZWZ0KG1fcG9ydEVuZCkgKyBlbmNvZGVXaXRoVVJMRXNjYXBlU2VxdWVuY2VzKHBhdGgpICsg
bV9zdHJpbmcuc3Vic3RyaW5nKG1fcGF0aEVuZCkpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vVVJMUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9VUkxQYXJzZXIuY3BwCShyZXZpc2lvbiAyMDYzMjMpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9VUkxQYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MDQsNyArNDA0LDcgQEAg
dGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4gaW5saW5lIAogc3RhdGljIGJvb2wgc2hv
dWxkUGVyY2VudEVuY29kZVF1ZXJ5Qnl0ZSh1aW50OF90IGJ5dGUpIHsgcmV0dXJuIGNoYXJhY3Rl
ckNsYXNzVGFibGVbYnl0ZV0gJiBRdWVyeVBlcmNlbnQ7IH0KIAogdGVtcGxhdGU8dHlwZW5hbWUg
Q2hhcmFjdGVyVHlwZT4KLXZvaWQgaW5jcmVtZW50SXRlcmF0b3JTa2lwcGluZ1RhYkFuZE5ld0xp
bmUoQ29kZVBvaW50SXRlcmF0b3I8Q2hhcmFjdGVyVHlwZT4mIGl0ZXJhdG9yKQordm9pZCBVUkxQ
YXJzZXI6OmluY3JlbWVudEl0ZXJhdG9yU2tpcHBpbmdUYWJBbmROZXdMaW5lKENvZGVQb2ludEl0
ZXJhdG9yPENoYXJhY3RlclR5cGU+JiBpdGVyYXRvcikKIHsKICAgICArK2l0ZXJhdG9yOwogICAg
IHdoaWxlICghaXRlcmF0b3IuYXRFbmQoKSAmJiBpc1RhYk9yTmV3bGluZSgqaXRlcmF0b3IpKQpA
QCAtNDEyLDcgKzQxMiw3IEBAIHZvaWQgaW5jcmVtZW50SXRlcmF0b3JTa2lwcGluZ1RhYkFuZE5l
d0wKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4KLWlubGluZSBzdGF0aWMg
Ym9vbCBpc1dpbmRvd3NEcml2ZUxldHRlcihDb2RlUG9pbnRJdGVyYXRvcjxDaGFyYWN0ZXJUeXBl
PiBpdGVyYXRvcikKK2Jvb2wgVVJMUGFyc2VyOjppc1dpbmRvd3NEcml2ZUxldHRlcihDb2RlUG9p
bnRJdGVyYXRvcjxDaGFyYWN0ZXJUeXBlPiBpdGVyYXRvcikKIHsKICAgICBpZiAoaXRlcmF0b3Iu
YXRFbmQoKSB8fCAhaXNBU0NJSUFscGhhKCppdGVyYXRvcikpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKQEAgLTQzMCw3ICs0MzAsNyBAQCBpbmxpbmUgc3RhdGljIGJvb2wgaXNXaW5kb3dzRHJpdmVM
ZXR0ZXIoCiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+Ci1pbmxpbmUgc3Rh
dGljIHZvaWQgY2hlY2tXaW5kb3dzRHJpdmVMZXR0ZXIoQ29kZVBvaW50SXRlcmF0b3I8Q2hhcmFj
dGVyVHlwZT4mIGl0ZXJhdG9yLCBWZWN0b3I8TENoYXI+JiBhc2NpaUJ1ZmZlcikKK3ZvaWQgVVJM
UGFyc2VyOjpjaGVja1dpbmRvd3NEcml2ZUxldHRlcihDb2RlUG9pbnRJdGVyYXRvcjxDaGFyYWN0
ZXJUeXBlPiYgaXRlcmF0b3IsIFZlY3RvcjxMQ2hhcj4mIGFzY2lpQnVmZmVyKQogewogICAgIGlm
IChpc1dpbmRvd3NEcml2ZUxldHRlcihpdGVyYXRvcikpIHsKICAgICAgICAgYXNjaWlCdWZmZXIu
cmVzZXJ2ZUNhcGFjaXR5KGFzY2lpQnVmZmVyLnNpemUoKSArIDIpOwpAQCAtNDQ0LDcgKzQ0NCw3
IEBAIGlubGluZSBzdGF0aWMgdm9pZCBjaGVja1dpbmRvd3NEcml2ZUxldHQKIH0KIAogdGVtcGxh
dGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4KLWlubGluZSBzdGF0aWMgYm9vbCBzaG91bGRDb3B5
RmlsZVVSTChDb2RlUG9pbnRJdGVyYXRvcjxDaGFyYWN0ZXJUeXBlPiBpdGVyYXRvcikKK2Jvb2wg
VVJMUGFyc2VyOjpzaG91bGRDb3B5RmlsZVVSTChDb2RlUG9pbnRJdGVyYXRvcjxDaGFyYWN0ZXJU
eXBlPiBpdGVyYXRvcikKIHsKICAgICBpZiAoIWlzV2luZG93c0RyaXZlTGV0dGVyKGl0ZXJhdG9y
KSkKICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC04OTYsMzYgKzg5NiwyNSBAQCB2b2lkIFVSTFBh
cnNlcjo6cG9wUGF0aCgpCiAgICAgbV9hc2NpaUJ1ZmZlci5yZXNpemUobV91cmwubV9wYXRoQWZ0
ZXJMYXN0U2xhc2gpOwogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPgotVVJM
IFVSTFBhcnNlcjo6ZmFpbHVyZShjb25zdCBDaGFyYWN0ZXJUeXBlKiBpbnB1dCwgdW5zaWduZWQg
bGVuZ3RoKQordm9pZCBVUkxQYXJzZXI6OmZhaWx1cmUoKQogewotICAgIFVSTCB1cmw7Ci0gICAg
dXJsLm1faXNWYWxpZCA9IGZhbHNlOwotICAgIHVybC5tX3Byb3RvY29sSXNJbkhUVFBGYW1pbHkg
PSBmYWxzZTsKLSAgICB1cmwubV9jYW5ub3RCZUFCYXNlVVJMID0gZmFsc2U7Ci0gICAgdXJsLm1f
c2NoZW1lRW5kID0gMDsKLSAgICB1cmwubV91c2VyU3RhcnQgPSAwOwotICAgIHVybC5tX3VzZXJF
bmQgPSAwOwotICAgIHVybC5tX3Bhc3N3b3JkRW5kID0gMDsKLSAgICB1cmwubV9ob3N0RW5kID0g
MDsKLSAgICB1cmwubV9wb3J0RW5kID0gMDsKLSAgICB1cmwubV9wYXRoQWZ0ZXJMYXN0U2xhc2gg
PSAwOwotICAgIHVybC5tX3BhdGhFbmQgPSAwOwotICAgIHVybC5tX3F1ZXJ5RW5kID0gMDsKLSAg
ICB1cmwubV9mcmFnbWVudEVuZCA9IDA7Ci0gICAgdXJsLm1fc3RyaW5nID0gU3RyaW5nKGlucHV0
LCBsZW5ndGgpOwotICAgIHJldHVybiB1cmw7CisgICAgbV91cmwuaW52YWxpZGF0ZSgpOworICAg
IG1fdXJsLm1fc3RyaW5nID0gbV9pbnB1dFN0cmluZzsKIH0KIAotVVJMIFVSTFBhcnNlcjo6cGFy
c2UoY29uc3QgU3RyaW5nJiBpbnB1dCwgY29uc3QgVVJMJiBiYXNlLCBjb25zdCBUZXh0RW5jb2Rp
bmcmIGVuY29kaW5nKQorVVJMUGFyc2VyOjpVUkxQYXJzZXIoY29uc3QgU3RyaW5nJiBpbnB1dCwg
Y29uc3QgVVJMJiBiYXNlLCBjb25zdCBUZXh0RW5jb2RpbmcmIGVuY29kaW5nKQorICAgIDogbV9p
bnB1dFN0cmluZyhpbnB1dCkKIHsKKyAgICBpZiAoaW5wdXQuaXNOdWxsKCkpCisgICAgICAgIHJl
dHVybjsKICAgICBpZiAoaW5wdXQuaXM4Qml0KCkpCi0gICAgICAgIHJldHVybiBwYXJzZShpbnB1
dC5jaGFyYWN0ZXJzOCgpLCBpbnB1dC5sZW5ndGgoKSwgYmFzZSwgZW5jb2RpbmcpOwotICAgIHJl
dHVybiBwYXJzZShpbnB1dC5jaGFyYWN0ZXJzMTYoKSwgaW5wdXQubGVuZ3RoKCksIGJhc2UsIGVu
Y29kaW5nKTsKKyAgICAgICAgcGFyc2UoaW5wdXQuY2hhcmFjdGVyczgoKSwgaW5wdXQubGVuZ3Ro
KCksIGJhc2UsIGVuY29kaW5nKTsKKyAgICBlbHNlCisgICAgICAgIHBhcnNlKGlucHV0LmNoYXJh
Y3RlcnMxNigpLCBpbnB1dC5sZW5ndGgoKSwgYmFzZSwgZW5jb2RpbmcpOwogfQogCiB0ZW1wbGF0
ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPgotVVJMIFVSTFBhcnNlcjo6cGFyc2UoY29uc3QgQ2hh
cmFjdGVyVHlwZSogaW5wdXQsIGNvbnN0IHVuc2lnbmVkIGxlbmd0aCwgY29uc3QgVVJMJiBiYXNl
LCBjb25zdCBUZXh0RW5jb2RpbmcmIGVuY29kaW5nKQordm9pZCBVUkxQYXJzZXI6OnBhcnNlKGNv
bnN0IENoYXJhY3RlclR5cGUqIGlucHV0LCBjb25zdCB1bnNpZ25lZCBsZW5ndGgsIGNvbnN0IFVS
TCYgYmFzZSwgY29uc3QgVGV4dEVuY29kaW5nJiBlbmNvZGluZykKIHsKICAgICBMT0coVVJMUGFy
c2VyLCAiUGFyc2luZyBVUkwgPCVzPiBiYXNlIDwlcz4iLCBTdHJpbmcoaW5wdXQsIGxlbmd0aCku
dXRmOCgpLmRhdGEoKSwgYmFzZS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKICAgICBtX3VybCA9
IHsgfTsKQEAgLTEwNTEsOCArMTA0MCwxMCBAQCBVUkwgVVJMUGFyc2VyOjpwYXJzZShjb25zdCBD
aGFyYWN0ZXJUeXBlCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBTdGF0ZTo6Tm9T
Y2hlbWU6CiAgICAgICAgICAgICBMT0dfU1RBVEUoIk5vU2NoZW1lIik7Ci0gICAgICAgICAgICBp
ZiAoIWJhc2UuaXNWYWxpZCgpIHx8IChiYXNlLm1fY2Fubm90QmVBQmFzZVVSTCAmJiAqYyAhPSAn
IycpKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWlsdXJlKGlucHV0LCBsZW5ndGgpOworICAg
ICAgICAgICAgaWYgKCFiYXNlLmlzVmFsaWQoKSB8fCAoYmFzZS5tX2Nhbm5vdEJlQUJhc2VVUkwg
JiYgKmMgIT0gJyMnKSkgeworICAgICAgICAgICAgICAgIGZhaWx1cmUoKTsKKyAgICAgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAoYmFzZS5tX2Nhbm5v
dEJlQUJhc2VVUkwgJiYgKmMgPT0gJyMnKSB7CiAgICAgICAgICAgICAgICAgY29weVVSTFBhcnRz
VW50aWwoYmFzZSwgVVJMUGFydDo6UXVlcnlFbmQpOwogICAgICAgICAgICAgICAgIHN0YXRlID0g
U3RhdGU6OkZyYWdtZW50OwpAQCAtMTA3Myw4ICsxMDY0LDEwIEBAIFVSTCBVUkxQYXJzZXI6OnBh
cnNlKGNvbnN0IENoYXJhY3RlclR5cGUKICAgICAgICAgICAgIGlmICgqYyA9PSAnLycpIHsKICAg
ICAgICAgICAgICAgICBtX2FzY2lpQnVmZmVyLmFwcGVuZCgnLycpOwogICAgICAgICAgICAgICAg
IGluY3JlbWVudEl0ZXJhdG9yU2tpcHBpbmdUYWJBbmROZXdMaW5lKGMpOwotICAgICAgICAgICAg
ICAgIGlmIChjLmF0RW5kKCkpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWlsdXJlKGlu
cHV0LCBsZW5ndGgpOworICAgICAgICAgICAgICAgIGlmIChjLmF0RW5kKCkpIHsKKyAgICAgICAg
ICAgICAgICAgICAgZmFpbHVyZSgpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGlmICgqYyA9PSAnLycpIHsKICAgICAgICAg
ICAgICAgICAgICAgbV9hc2NpaUJ1ZmZlci5hcHBlbmQoJy8nKTsKICAgICAgICAgICAgICAgICAg
ICAgc3RhdGUgPSBTdGF0ZTo6U3BlY2lhbEF1dGhvcml0eUlnbm9yZVNsYXNoZXM7CkBAIC0xMTg2
LDggKzExNzksMTAgQEAgVVJMIFVSTFBhcnNlcjo6cGFyc2UoY29uc3QgQ2hhcmFjdGVyVHlwZQog
ICAgICAgICAgICAgICAgIGlmIChpc1NsYXNoIHx8ICpjID09ICc/JyB8fCAqYyA9PSAnIycpIHsK
ICAgICAgICAgICAgICAgICAgICAgbV91cmwubV91c2VyRW5kID0gbV9hc2NpaUJ1ZmZlci5zaXpl
KCk7CiAgICAgICAgICAgICAgICAgICAgIG1fdXJsLm1fcGFzc3dvcmRFbmQgPSBtX3VybC5tX3Vz
ZXJFbmQ7Ci0gICAgICAgICAgICAgICAgICAgIGlmICghcGFyc2VIb3N0QW5kUG9ydChDb2RlUG9p
bnRJdGVyYXRvcjxDaGFyYWN0ZXJUeXBlPihhdXRob3JpdHlPckhvc3RCZWdpbiwgYykpKQotICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhaWx1cmUoaW5wdXQsIGxlbmd0aCk7CisgICAg
ICAgICAgICAgICAgICAgIGlmICghcGFyc2VIb3N0QW5kUG9ydChDb2RlUG9pbnRJdGVyYXRvcjxD
aGFyYWN0ZXJUeXBlPihhdXRob3JpdHlPckhvc3RCZWdpbiwgYykpKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBmYWlsdXJlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgaWYgKCFpc1NsYXNoKSB7
CiAgICAgICAgICAgICAgICAgICAgICAgICBtX2FzY2lpQnVmZmVyLmFwcGVuZCgnLycpOwogICAg
ICAgICAgICAgICAgICAgICAgICAgbV91cmwubV9wYXRoQWZ0ZXJMYXN0U2xhc2ggPSBtX2FzY2lp
QnVmZmVyLnNpemUoKTsKQEAgLTEyMDMsOCArMTE5OCwxMCBAQCBVUkwgVVJMUGFyc2VyOjpwYXJz
ZShjb25zdCBDaGFyYWN0ZXJUeXBlCiAgICAgICAgIGNhc2UgU3RhdGU6Okhvc3Q6CiAgICAgICAg
ICAgICBMT0dfU1RBVEUoIkhvc3QiKTsKICAgICAgICAgICAgIGlmICgqYyA9PSAnLycgfHwgKmMg
PT0gJz8nIHx8ICpjID09ICcjJykgewotICAgICAgICAgICAgICAgIGlmICghcGFyc2VIb3N0QW5k
UG9ydChDb2RlUG9pbnRJdGVyYXRvcjxDaGFyYWN0ZXJUeXBlPihhdXRob3JpdHlPckhvc3RCZWdp
biwgYykpKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFpbHVyZShpbnB1dCwgbGVuZ3Ro
KTsKKyAgICAgICAgICAgICAgICBpZiAoIXBhcnNlSG9zdEFuZFBvcnQoQ29kZVBvaW50SXRlcmF0
b3I8Q2hhcmFjdGVyVHlwZT4oYXV0aG9yaXR5T3JIb3N0QmVnaW4sIGMpKSkgeworICAgICAgICAg
ICAgICAgICAgICBmYWlsdXJlKCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgc3RhdGUgPSBTdGF0ZTo6UGF0aDsKICAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KQEAgLTEzMDcsNyArMTMwNCw3IEBAIFVS
TCBVUkxQYXJzZXI6OnBhcnNlKGNvbnN0IENoYXJhY3RlclR5cGUKICAgICAgICAgY2FzZSBTdGF0
ZTo6RmlsZUhvc3Q6CiAgICAgICAgICAgICBMT0dfU1RBVEUoIkZpbGVIb3N0Iik7CiAgICAgICAg
ICAgICBpZiAoaXNTbGFzaFF1ZXN0aW9uT3JIYXNoKCpjKSkgewotICAgICAgICAgICAgICAgIGlm
IChpc1dpbmRvd3NEcml2ZUxldHRlcihtX2FzY2lpQnVmZmVyLCBtX3VybC5tX3BvcnRFbmQgKyAx
KSkgeworICAgICAgICAgICAgICAgIGlmIChXZWJDb3JlOjppc1dpbmRvd3NEcml2ZUxldHRlciht
X2FzY2lpQnVmZmVyLCBtX3VybC5tX3BvcnRFbmQgKyAxKSkgewogICAgICAgICAgICAgICAgICAg
ICBzdGF0ZSA9IFN0YXRlOjpQYXRoOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgICAgICAgICB9CkBAIC0xMzMzLDggKzEzMzAsMTAgQEAgVVJMIFVSTFBhcnNlcjo6cGFyc2Uo
Y29uc3QgQ2hhcmFjdGVyVHlwZQogICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IFN0YXRlOjpQ
YXRoOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgaWYgKCFwYXJzZUhvc3RBbmRQb3J0KENvZGVQb2ludEl0ZXJhdG9yPENoYXJh
Y3RlclR5cGU+KGF1dGhvcml0eU9ySG9zdEJlZ2luLCBjKSkpCi0gICAgICAgICAgICAgICAgICAg
IHJldHVybiBmYWlsdXJlKGlucHV0LCBsZW5ndGgpOworICAgICAgICAgICAgICAgIGlmICghcGFy
c2VIb3N0QW5kUG9ydChDb2RlUG9pbnRJdGVyYXRvcjxDaGFyYWN0ZXJUeXBlPihhdXRob3JpdHlP
ckhvc3RCZWdpbiwgYykpKSB7CisgICAgICAgICAgICAgICAgICAgIGZhaWx1cmUoKTsKKyAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICAKICAgICAgICAgICAgICAgICBpZiAoU3RyaW5nVmlldyhtX2FzY2lpQnVmZmVyLmRhdGEoKSAr
IG1fdXJsLm1fcGFzc3dvcmRFbmQsIG1fYXNjaWlCdWZmZXIuc2l6ZSgpIC0gbV91cmwubV9wYXNz
d29yZEVuZCkgPT0gImxvY2FsaG9zdCIpICB7CiAgICAgICAgICAgICAgICAgICAgIG1fYXNjaWlC
dWZmZXIuc2hyaW5rKG1fdXJsLm1fcGFzc3dvcmRFbmQpOwpAQCAtMTQ0NSwxMiArMTQ0NCwxNiBA
QCBVUkwgVVJMUGFyc2VyOjpwYXJzZShjb25zdCBDaGFyYWN0ZXJUeXBlCiAgICAgc3dpdGNoIChz
dGF0ZSkgewogICAgIGNhc2UgU3RhdGU6OlNjaGVtZVN0YXJ0OgogICAgICAgICBMT0dfRklOQUxf
U1RBVEUoIlNjaGVtZVN0YXJ0Iik7Ci0gICAgICAgIGlmICghbV9hc2NpaUJ1ZmZlci5zaXplKCkg
JiYgYmFzZS5pc1ZhbGlkKCkpCi0gICAgICAgICAgICByZXR1cm4gYmFzZTsKLSAgICAgICAgcmV0
dXJuIGZhaWx1cmUoaW5wdXQsIGxlbmd0aCk7CisgICAgICAgIGlmICghbV9hc2NpaUJ1ZmZlci5z
aXplKCkgJiYgYmFzZS5pc1ZhbGlkKCkpIHsKKyAgICAgICAgICAgIG1fdXJsID0gYmFzZTsKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBmYWlsdXJlKCk7CisgICAgICAg
IHJldHVybjsKICAgICBjYXNlIFN0YXRlOjpTY2hlbWU6CiAgICAgICAgIExPR19GSU5BTF9TVEFU
RSgiU2NoZW1lIik7Ci0gICAgICAgIHJldHVybiBmYWlsdXJlKGlucHV0LCBsZW5ndGgpOworICAg
ICAgICBmYWlsdXJlKCk7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIFN0YXRlOjpOb1NjaGVt
ZToKICAgICAgICAgTE9HX0ZJTkFMX1NUQVRFKCJOb1NjaGVtZSIpOwogICAgICAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMTUwMSw3ICsxNTA0LDggQEAgVVJMIFVSTFBhcnNl
cjo6cGFyc2UoY29uc3QgQ2hhcmFjdGVyVHlwZQogICAgICAgICBicmVhazsKICAgICBjYXNlIFN0
YXRlOjpTcGVjaWFsQXV0aG9yaXR5SWdub3JlU2xhc2hlczoKICAgICAgICAgTE9HX0ZJTkFMX1NU
QVRFKCJTcGVjaWFsQXV0aG9yaXR5SWdub3JlU2xhc2hlcyIpOwotICAgICAgICByZXR1cm4gZmFp
bHVyZShpbnB1dCwgbGVuZ3RoKTsKKyAgICAgICAgZmFpbHVyZSgpOworICAgICAgICByZXR1cm47
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU3RhdGU6OkF1dGhvcml0eU9ySG9zdDoKICAgICAg
ICAgTE9HX0ZJTkFMX1NUQVRFKCJBdXRob3JpdHlPckhvc3QiKTsKQEAgLTE1MTAsOCArMTUxNCwx
MCBAQCBVUkwgVVJMUGFyc2VyOjpwYXJzZShjb25zdCBDaGFyYWN0ZXJUeXBlCiAgICAgICAgIGlm
IChhdXRob3JpdHlPckhvc3RCZWdpbi5hdEVuZCgpKSB7CiAgICAgICAgICAgICBtX3VybC5tX2hv
c3RFbmQgPSBtX3VybC5tX3VzZXJFbmQ7CiAgICAgICAgICAgICBtX3VybC5tX3BvcnRFbmQgPSBt
X3VybC5tX3VzZXJFbmQ7Ci0gICAgICAgIH0gZWxzZSBpZiAoIXBhcnNlSG9zdEFuZFBvcnQoYXV0
aG9yaXR5T3JIb3N0QmVnaW4pKQotICAgICAgICAgICAgcmV0dXJuIGZhaWx1cmUoaW5wdXQsIGxl
bmd0aCk7CisgICAgICAgIH0gZWxzZSBpZiAoIXBhcnNlSG9zdEFuZFBvcnQoYXV0aG9yaXR5T3JI
b3N0QmVnaW4pKSB7CisgICAgICAgICAgICBmYWlsdXJlKCk7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KICAgICAgICAgbV9hc2NpaUJ1ZmZlci5hcHBlbmQoJy8nKTsKICAgICAgICAg
bV91cmwubV9wYXRoRW5kID0gbV91cmwubV9wb3J0RW5kICsgMTsKICAgICAgICAgbV91cmwubV9w
YXRoQWZ0ZXJMYXN0U2xhc2ggPSBtX3VybC5tX3BhdGhFbmQ7CkBAIC0xNTIwLDggKzE1MjYsMTAg
QEAgVVJMIFVSTFBhcnNlcjo6cGFyc2UoY29uc3QgQ2hhcmFjdGVyVHlwZQogICAgICAgICBicmVh
azsKICAgICBjYXNlIFN0YXRlOjpIb3N0OgogICAgICAgICBMT0dfRklOQUxfU1RBVEUoIkhvc3Qi
KTsKLSAgICAgICAgaWYgKCFwYXJzZUhvc3RBbmRQb3J0KGF1dGhvcml0eU9ySG9zdEJlZ2luKSkK
LSAgICAgICAgICAgIHJldHVybiBmYWlsdXJlKGlucHV0LCBsZW5ndGgpOworICAgICAgICBpZiAo
IXBhcnNlSG9zdEFuZFBvcnQoYXV0aG9yaXR5T3JIb3N0QmVnaW4pKSB7CisgICAgICAgICAgICBm
YWlsdXJlKCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KICAgICAgICAgbV9hc2Np
aUJ1ZmZlci5hcHBlbmQoJy8nKTsKICAgICAgICAgbV91cmwubV9wYXRoRW5kID0gbV91cmwubV9w
b3J0RW5kICsgMTsKICAgICAgICAgbV91cmwubV9wYXRoQWZ0ZXJMYXN0U2xhc2ggPSBtX3VybC5t
X3BhdGhFbmQ7CkBAIC0xNTc0LDggKzE1ODIsMTAgQEAgVVJMIFVSTFBhcnNlcjo6cGFyc2UoY29u
c3QgQ2hhcmFjdGVyVHlwZQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAotICAgICAg
ICBpZiAoIXBhcnNlSG9zdEFuZFBvcnQoQ29kZVBvaW50SXRlcmF0b3I8Q2hhcmFjdGVyVHlwZT4o
YXV0aG9yaXR5T3JIb3N0QmVnaW4sIGMpKSkKLSAgICAgICAgICAgIHJldHVybiBmYWlsdXJlKGlu
cHV0LCBsZW5ndGgpOworICAgICAgICBpZiAoIXBhcnNlSG9zdEFuZFBvcnQoQ29kZVBvaW50SXRl
cmF0b3I8Q2hhcmFjdGVyVHlwZT4oYXV0aG9yaXR5T3JIb3N0QmVnaW4sIGMpKSkgeworICAgICAg
ICAgICAgZmFpbHVyZSgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAKICAgICAg
ICAgaWYgKFN0cmluZ1ZpZXcobV9hc2NpaUJ1ZmZlci5kYXRhKCkgKyBtX3VybC5tX3Bhc3N3b3Jk
RW5kLCBtX2FzY2lpQnVmZmVyLnNpemUoKSAtIG1fdXJsLm1fcGFzc3dvcmRFbmQpID09ICJsb2Nh
bGhvc3QiKSAgewogICAgICAgICAgICAgbV9hc2NpaUJ1ZmZlci5zaHJpbmsobV91cmwubV9wYXNz
d29yZEVuZCk7CkBAIC0xNjI4LDcgKzE2MzgsNiBAQCBVUkwgVVJMUGFyc2VyOjpwYXJzZShjb25z
dCBDaGFyYWN0ZXJUeXBlCiAgICAgbV91cmwubV9pc1ZhbGlkID0gdHJ1ZTsKICAgICBMT0coVVJM
UGFyc2VyLCAiUGFyc2VkIFVSTCA8JXM+IiwgbV91cmwubV9zdHJpbmcudXRmOCgpLmRhdGEoKSk7
CiAgICAgQVNTRVJUKGludGVybmFsVmFsdWVzQ29uc2lzdGVudChtX3VybCkpOwotICAgIHJldHVy
biBtX3VybDsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTFBhcnNlci5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1VSTFBhcnNlci5oCShyZXZpc2lvbiAyMDYzMjMpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9VUkxQYXJzZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYs
OCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPiBjbGFzcyBDCiAKIGNsYXNzIFVS
TFBhcnNlciB7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBPUlQgVVJMIHBhcnNlKGNvbnN0IFN0
cmluZyYsIGNvbnN0IFVSTCYgPSB7IH0sIGNvbnN0IFRleHRFbmNvZGluZyYgPSBVVEY4RW5jb2Rp
bmcoKSk7CisgICAgV0VCQ09SRV9FWFBPUlQgVVJMUGFyc2VyKGNvbnN0IFN0cmluZyYsIGNvbnN0
IFVSTCYgPSB7IH0sIGNvbnN0IFRleHRFbmNvZGluZyYgPSBVVEY4RW5jb2RpbmcoKSk7CisgICAg
VVJMIHJlc3VsdCgpIHsgcmV0dXJuIG1fdXJsOyB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgYm9vbCBhbGxWYWx1ZXNFcXVhbChjb25zdCBVUkwmLCBjb25zdCBVUkwmKTsKICAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBpbnRlcm5hbFZhbHVlc0NvbnNpc3RlbnQoY29uc3QgVVJM
Jik7CkBAIC01NCwxMiArNTUsMTkgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8VUNoYXI+IG1fdW5p
Y29kZUZyYWdtZW50QnVmZmVyOwogICAgIGJvb2wgbV91cmxJc1NwZWNpYWwgeyBmYWxzZSB9Owog
ICAgIGJvb2wgbV9ob3N0SGFzUGVyY2VudE9yTm9uQVNDSUkgeyBmYWxzZSB9OworICAgIFN0cmlu
ZyBtX2lucHV0U3RyaW5nOwogCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4g
VVJMIHBhcnNlKGNvbnN0IENoYXJhY3RlclR5cGUqLCBjb25zdCB1bnNpZ25lZCBsZW5ndGgsIGNv
bnN0IFVSTCYsIGNvbnN0IFRleHRFbmNvZGluZyYpOworICAgIHRlbXBsYXRlPHR5cGVuYW1lIENo
YXJhY3RlclR5cGU+IHZvaWQgcGFyc2UoY29uc3QgQ2hhcmFjdGVyVHlwZSosIGNvbnN0IHVuc2ln
bmVkIGxlbmd0aCwgY29uc3QgVVJMJiwgY29uc3QgVGV4dEVuY29kaW5nJik7CiAgICAgdGVtcGxh
dGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4gdm9pZCBwYXJzZUF1dGhvcml0eShDb2RlUG9pbnRJ
dGVyYXRvcjxDaGFyYWN0ZXJUeXBlPik7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVy
VHlwZT4gYm9vbCBwYXJzZUhvc3RBbmRQb3J0KENvZGVQb2ludEl0ZXJhdG9yPENoYXJhY3RlclR5
cGU+KTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPiBib29sIHBhcnNlUG9y
dChDb2RlUG9pbnRJdGVyYXRvcjxDaGFyYWN0ZXJUeXBlPiYpOwotICAgIHRlbXBsYXRlPHR5cGVu
YW1lIENoYXJhY3RlclR5cGU+IFVSTCBmYWlsdXJlKGNvbnN0IENoYXJhY3RlclR5cGUqLCB1bnNp
Z25lZCBsZW5ndGgpOworCisgICAgdm9pZCBmYWlsdXJlKCk7CisgICAgdGVtcGxhdGU8dHlwZW5h
bWUgQ2hhcmFjdGVyVHlwZT4gdm9pZCBpbmNyZW1lbnRJdGVyYXRvclNraXBwaW5nVGFiQW5kTmV3
TGluZShDb2RlUG9pbnRJdGVyYXRvcjxDaGFyYWN0ZXJUeXBlPiYpOworICAgIHRlbXBsYXRlPHR5
cGVuYW1lIENoYXJhY3RlclR5cGU+IHZvaWQgc3ludGF4RXJyb3IoY29uc3QgQ29kZVBvaW50SXRl
cmF0b3I8Q2hhcmFjdGVyVHlwZT4mKTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJU
eXBlPiBib29sIGlzV2luZG93c0RyaXZlTGV0dGVyKENvZGVQb2ludEl0ZXJhdG9yPENoYXJhY3Rl
clR5cGU+KTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPiBib29sIHNob3Vs
ZENvcHlGaWxlVVJMKENvZGVQb2ludEl0ZXJhdG9yPENoYXJhY3RlclR5cGU+KTsKKyAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPiB2b2lkIGNoZWNrV2luZG93c0RyaXZlTGV0dGVy
KENvZGVQb2ludEl0ZXJhdG9yPENoYXJhY3RlclR5cGU+JiwgVmVjdG9yPExDaGFyPiYgYXNjaWlC
dWZmZXIpOwogCiAgICAgZW51bSBjbGFzcyBVUkxQYXJ0OwogICAgIHZvaWQgY29weVVSTFBhcnRz
VW50aWwoY29uc3QgVVJMJiBiYXNlLCBVUkxQYXJ0KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NmL1VSTENGLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jZi9VUkxDRi5jcHAJKHJldmlzaW9uIDIwNjE5NikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2NmL1VSTENGLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgsOCArNDgsOCBAQCBVUkw6OlVS
TChDRlVSTFJlZiB1cmwpCiAgICAgQ1N0cmluZyB1cmxCeXRlczsKICAgICBnZXRVUkxCeXRlcyh1
cmwsIHVybEJ5dGVzKTsKICAgICBpZiAoVVJMUGFyc2VyOjplbmFibGVkKCkpIHsKLSAgICAgICAg
VVJMUGFyc2VyIHBhcnNlcjsKLSAgICAgICAgcGFyc2VyLnBhcnNlKHVybEJ5dGVzLmRhdGEoKSk7
CisgICAgICAgIFVSTFBhcnNlciBwYXJzZXIodXJsQnl0ZXMuZGF0YSgpKTsKKyAgICAgICAgKnRo
aXMgPSBwYXJzZXIucmVzdWx0KCk7CiAgICAgfSBlbHNlCiAgICAgICAgIHBhcnNlKHVybEJ5dGVz
LmRhdGEoKSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVVJMTWFjLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9VUkxNYWMubW0JKHJl
dmlzaW9uIDIwNjE5NikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9VUkxNYWMubW0J
KHdvcmtpbmcgY29weSkKQEAgLTQ0LDggKzQ0LDggQEAgVVJMOjpVUkwoTlNVUkwgKnVybCkKICAg
ICBDU3RyaW5nIHVybEJ5dGVzOwogICAgIGdldFVSTEJ5dGVzKHJlaW50ZXJwcmV0X2Nhc3Q8Q0ZV
UkxSZWY+KHVybCksIHVybEJ5dGVzKTsKICAgICBpZiAoVVJMUGFyc2VyOjplbmFibGVkKCkpIHsK
LSAgICAgICAgVVJMUGFyc2VyIHBhcnNlcjsKLSAgICAgICAgKnRoaXMgPSBwYXJzZXIucGFyc2Uo
dXJsQnl0ZXMuZGF0YSgpKTsKKyAgICAgICAgVVJMUGFyc2VyIHBhcnNlcih1cmxCeXRlcy5kYXRh
KCkpOworICAgICAgICAqdGhpcyA9IHBhcnNlci5yZXN1bHQoKTsKICAgICB9IGVsc2UKICAgICAg
ICAgcGFyc2UodXJsQnl0ZXMuZGF0YSgpKTsKIH0KSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNjMyOCkKKysrIFRvb2xzL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDE2LTA5LTIzICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVmYWN0
b3IgVVJMUGFyc2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNjI1MTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkxQYXJzZXIuY3BwOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmNoZWNr
VVJMKToKKwogMjAxNi0wOS0yMyAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4K
IAogICAgICAgICBpT1MgcGxheWJhY2sgdXNlciBhY3Rpb24gdGVzdHMgZmFpbCBvbiBzb21lIG1h
Y2hpbmVzCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJMUGFyc2Vy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJM
UGFyc2VyLmNwcAkocmV2aXNpb24gMjA2MjM1KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL1VSTFBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY3MCw2ICs2NzAsOSBA
QCBURVNUX0YoVVJMUGFyc2VyVGVzdCwgRGVmYXVsdFBvcnQpCiAgICAgY2hlY2tVUkxEaWZmZXJl
bmNlcygiaHR0cDovL2hvc3QvYCIsCiAgICAgICAgIHsiaHR0cCIsICIiLCAiIiwgImhvc3QiLCAw
LCAiLyU2MCIsICIiLCAiIiwgImh0dHA6Ly9ob3N0LyU2MCJ9LAogICAgICAgICB7Imh0dHAiLCAi
IiwgIiIsICJob3N0IiwgMCwgIi9gIiwgIiIsICIiLCAiaHR0cDovL2hvc3QvYCJ9KTsKKyAgICBj
aGVja1VSTERpZmZlcmVuY2VzKHdpZGVTdHJpbmcoTCJodHRwOi8vaG9zdC9wYXRoI/CfkqlcdPCf
kqkiKSwKKyAgICAgICAgeyJodHRwIiwgIiIsICIiLCAiaG9zdCIsIDAsICIvcGF0aCIsICIiLCB3
aWRlU3RyaW5nKEwi8J+SqfCfkqkiKSwgd2lkZVN0cmluZyhMImh0dHA6Ly9ob3N0L3BhdGgj8J+S
qfCfkqkiKX0sCisgICAgICAgIHsiaHR0cCIsICIiLCAiIiwgImhvc3QiLCAwLCAiL3BhdGgiLCAi
IiwgIiVGMCU5RiU5MiVBOSVGMCU5RiU5MiVBOSIsICJodHRwOi8vaG9zdC9wYXRoIyVGMCU5RiU5
MiVBOSVGMCU5RiU5MiVBOSJ9KTsKIH0KICAgICAKIHN0YXRpYyB2b2lkIHNob3VsZEZhaWwoY29u
c3QgU3RyaW5nJiB1cmxTdHJpbmcpCkBAIC02ODcsNiArNjkwLDcgQEAgVEVTVF9GKFVSTFBhcnNl
clRlc3QsIFBhcnNlckZhaWx1cmVzKQogICAgIHNob3VsZEZhaWwoIiAgICAiKTsKICAgICBzaG91
bGRGYWlsKCIgIFxhICAiKTsKICAgICBzaG91bGRGYWlsKCIiKTsKKyAgICBzaG91bGRGYWlsKFN0
cmluZygpKTsKICAgICBzaG91bGRGYWlsKCJodHRwOi8vMTI3LjAuMC4xOmFiYyIpOwogICAgIHNo
b3VsZEZhaWwoImh0dHA6Ly9ob3N0OmFiYyIpOwogICAgIHNob3VsZEZhaWwoImh0dHA6Ly9hOkAi
LCAiYWJvdXQ6YmxhbmsiKTsKQEAgLTc1OCw4ICs3NjIsOCBAQCBURVNUX0YoVVJMUGFyc2VyVGVz
dCwgQWRkaXRpb25hbFRlc3RzKQogCiBzdGF0aWMgdm9pZCBjaGVja1VSTChjb25zdCBTdHJpbmcm
IHVybFN0cmluZywgY29uc3QgVGV4dEVuY29kaW5nJiBlbmNvZGluZywgY29uc3QgRXhwZWN0ZWRQ
YXJ0cyYgcGFydHMpCiB7Ci0gICAgVVJMUGFyc2VyIHBhcnNlcjsKLSAgICBhdXRvIHVybCA9IHBh
cnNlci5wYXJzZSh1cmxTdHJpbmcsIHsgfSwgZW5jb2RpbmcpOworICAgIFVSTFBhcnNlciBwYXJz
ZXIodXJsU3RyaW5nLCB7IH0sIGVuY29kaW5nKTsKKyAgICBhdXRvIHVybCA9IHBhcnNlci5yZXN1
bHQoKTsKICAgICBFWFBFQ1RfVFJVRShlcShwYXJ0cy5wcm90b2NvbCwgdXJsLnByb3RvY29sKCkp
KTsKICAgICBFWFBFQ1RfVFJVRShlcShwYXJ0cy51c2VyLCB1cmwudXNlcigpKSk7CiAgICAgRVhQ
RUNUX1RSVUUoZXEocGFydHMucGFzc3dvcmQsIHVybC5wYXNzKCkpKTsK
</data>
<flag name="review"
          id="312904"
          type_id="1"
          status="+"
          setter="beidson"
    />
          </attachment>
      

    </bug>

</bugzilla>