<?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>162501</bug_id>
          
          <creation_ts>2016-09-23 12:04:08 -0700</creation_ts>
          <short_desc>Remove URLParser serialized template</short_desc>
          <delta_ts>2016-09-23 13:00:23 -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>1232933</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-09-23 12:04:08 -0700</bug_when>
    <thetext>Remove URLParser serialized template</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1232937</commentid>
    <comment_count>1</comment_count>
      <attachid>289694</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-09-23 12:07:27 -0700</bug_when>
    <thetext>Created attachment 289694
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1232939</commentid>
    <comment_count>2</comment_count>
      <attachid>289694</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-09-23 12:26:36 -0700</bug_when>
    <thetext>Comment on attachment 289694
Patch

r+ once the massssssssive amount of orange is fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1232948</commentid>
    <comment_count>3</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-09-23 13:00:23 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/206323</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>289694</attachid>
            <date>2016-09-23 12:07:27 -0700</date>
            <delta_ts>2016-09-23 12:26:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162501-20160923120435.patch</filename>
            <type>text/plain</type>
            <size>26643</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNjMxOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDE2LTA5LTIzICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3ZlIFVS
TFBhcnNlciBzZXJpYWxpemVkIHRlbXBsYXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI1MDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBObyBjaGFuZ2UgaW4gYmVoYXZpb3IuICAKKyAgICAgICAgVGhp
cyBvcHRpbWl6YXRpb24gY29uZmxpY3RzIHdpdGggYW5vdGhlciBvcHRpbWl6YXRpb24gSSdtIGRv
aW5nLgorICAgICAgICBXZSBjdXJyZW50bHkgaGF2ZSB0aGUgUGFyc2VkVVJMU3RyaW5nIHRhZywg
d2hlcmUgd2UgdGVsbCB0aGUgcGFyc2VyIHRvIGFzc3VtZSB0aGlzIFVSTCBpcyB2YWxpZCBhbmQg
Y2Fub25pY2FsaXplZC4KKyAgICAgICAgSSdtIGdvaW5nIHRvIGluc3RlYWQgbWFrZSBVUkxQYXJz
ZXIgYXNzdW1lIGFsbCBVUkxzIGFyZSB2YWxpZCBhbmQgY2Fub25pY2FsaXplZCB1bnRpbCBpdCBm
aW5kcyB0aGF0IGl0IGlzIG5vdCwgCisgICAgICAgIGluIHdoaWNoIGNhc2UgaXQgd2lsbCBjYW5v
bmljYWxpemUgaXQgaWYgcG9zc2libGUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9VUkwuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6VVJMOjpVUkwpOgorICAgICAgICAqIHBsYXRmb3JtL1VSTFBhcnNl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjppbmNyZW1lbnRJdGVyYXRvclNraXBwaW5nVGFiQW5k
TmV3TGluZSk6CisgICAgICAgIChXZWJDb3JlOjppc1dpbmRvd3NEcml2ZUxldHRlcik6CisgICAg
ICAgIChXZWJDb3JlOjpjaGVja1dpbmRvd3NEcml2ZUxldHRlcik6CisgICAgICAgIChXZWJDb3Jl
OjpzaG91bGRDb3B5RmlsZVVSTCk6CisgICAgICAgIChXZWJDb3JlOjp1dGY4UGVyY2VudEVuY29k
ZSk6CisgICAgICAgIChXZWJDb3JlOjp1dGY4UXVlcnlFbmNvZGUpOgorICAgICAgICAoV2ViQ29y
ZTo6VVJMUGFyc2VyOjpwYXJzZSk6CisgICAgICAgIChXZWJDb3JlOjpVUkxQYXJzZXI6OnBhcnNl
QXV0aG9yaXR5KToKKyAgICAgICAgKFdlYkNvcmU6OlVSTFBhcnNlcjo6cGFyc2VQb3J0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlVSTFBhcnNlcjo6cGFyc2VIb3N0QW5kUG9ydCk6CisgICAgICAgIChX
ZWJDb3JlOjpVUkxQYXJzZXI6OnBhcnNlU2VyaWFsaXplZFVSTCk6IERlbGV0ZWQuCisgICAgICAg
ICogcGxhdGZvcm0vVVJMUGFyc2VyLmg6CisgICAgICAgIChXZWJDb3JlOjpVUkxQYXJzZXI6OnBh
cnNlKToKKwogMjAxNi0wOS0yMyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNv
bT4KIAogICAgICAgICBNZWRpYVNlc3Npb25NYW5hZ2VyTWFjOjpub3dQbGF5aW5nRWxpZ2libGVT
ZXNzaW9uKCkgbmVlZHMgdG8gaG9ub3IgdGhlIG1haW4gY29udGVudCBoZXVyaXN0aWMKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vVVJMLmNwcAkocmV2aXNpb24gMjA2MTk2KQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vVVJMLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQyLDcgKzQ0Miw3IEBAIFVS
TDo6VVJMKFBhcnNlZFVSTFN0cmluZ1RhZywgY29uc3QgU3RyaW4KIHsKICAgICBpZiAoVVJMUGFy
c2VyOjplbmFibGVkKCkpIHsKICAgICAgICAgVVJMUGFyc2VyIHBhcnNlcjsKLSAgICAgICAgKnRo
aXMgPSBwYXJzZXIucGFyc2VTZXJpYWxpemVkVVJMKHVybCk7CisgICAgICAgICp0aGlzID0gcGFy
c2VyLnBhcnNlKHVybCk7CiAgICAgfSBlbHNlCiAgICAgICAgIHBhcnNlKHVybCk7CiAjaWYgT1Mo
V0lORE9XUykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTFBhcnNlci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMUGFyc2VyLmNwcAkocmV2aXNp
b24gMjA2MjM1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMUGFyc2VyLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNDAzLDIwICs0MDMsMjAgQEAgdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFj
dGVyVHlwZT4gaW5saW5lIAogdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4gaW5saW5l
IHN0YXRpYyBib29sIGlzVmFsaWRTY2hlbWVDaGFyYWN0ZXIoQ2hhcmFjdGVyVHlwZSBjaGFyYWN0
ZXIpIHsgcmV0dXJuIGNoYXJhY3RlciA8PSAneicgJiYgY2hhcmFjdGVyQ2xhc3NUYWJsZVtjaGFy
YWN0ZXJdICYgU2NoZW1lOyB9CiBzdGF0aWMgYm9vbCBzaG91bGRQZXJjZW50RW5jb2RlUXVlcnlC
eXRlKHVpbnQ4X3QgYnl0ZSkgeyByZXR1cm4gY2hhcmFjdGVyQ2xhc3NUYWJsZVtieXRlXSAmIFF1
ZXJ5UGVyY2VudDsgfQogCi10ZW1wbGF0ZTxib29sIHNlcmlhbGl6ZWQsIHR5cGVuYW1lIENoYXJh
Y3RlclR5cGU+Cit0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPgogdm9pZCBpbmNyZW1l
bnRJdGVyYXRvclNraXBwaW5nVGFiQW5kTmV3TGluZShDb2RlUG9pbnRJdGVyYXRvcjxDaGFyYWN0
ZXJUeXBlPiYgaXRlcmF0b3IpCiB7CiAgICAgKytpdGVyYXRvcjsKLSAgICB3aGlsZSAoIXNlcmlh
bGl6ZWQgJiYgIWl0ZXJhdG9yLmF0RW5kKCkgJiYgaXNUYWJPck5ld2xpbmUoKml0ZXJhdG9yKSkK
KyAgICB3aGlsZSAoIWl0ZXJhdG9yLmF0RW5kKCkgJiYgaXNUYWJPck5ld2xpbmUoKml0ZXJhdG9y
KSkKICAgICAgICAgKytpdGVyYXRvcjsKIH0KIAotdGVtcGxhdGU8Ym9vbCBzZXJpYWxpemVkLCB0
eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPgordGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4K
IGlubGluZSBzdGF0aWMgYm9vbCBpc1dpbmRvd3NEcml2ZUxldHRlcihDb2RlUG9pbnRJdGVyYXRv
cjxDaGFyYWN0ZXJUeXBlPiBpdGVyYXRvcikKIHsKICAgICBpZiAoaXRlcmF0b3IuYXRFbmQoKSB8
fCAhaXNBU0NJSUFscGhhKCppdGVyYXRvcikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBp
bmNyZW1lbnRJdGVyYXRvclNraXBwaW5nVGFiQW5kTmV3TGluZTxzZXJpYWxpemVkPihpdGVyYXRv
cik7CisgICAgaW5jcmVtZW50SXRlcmF0b3JTa2lwcGluZ1RhYkFuZE5ld0xpbmUoaXRlcmF0b3Ip
OwogICAgIGlmIChpdGVyYXRvci5hdEVuZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
cmV0dXJuICppdGVyYXRvciA9PSAnOicgfHwgKml0ZXJhdG9yID09ICd8JzsKQEAgLTQyOSwzMSAr
NDI5LDMxIEBAIGlubGluZSBzdGF0aWMgYm9vbCBpc1dpbmRvd3NEcml2ZUxldHRlcigKICAgICBy
ZXR1cm4gaXNBU0NJSUFscGhhKGJ1ZmZlcltpbmRleF0pICYmIChidWZmZXJbaW5kZXggKyAxXSA9
PSAnOicgfHwgYnVmZmVyW2luZGV4ICsgMV0gPT0gJ3wnKTsKIH0KIAotdGVtcGxhdGU8Ym9vbCBz
ZXJpYWxpemVkLCB0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPgordGVtcGxhdGU8dHlwZW5hbWUgQ2hh
cmFjdGVyVHlwZT4KIGlubGluZSBzdGF0aWMgdm9pZCBjaGVja1dpbmRvd3NEcml2ZUxldHRlcihD
b2RlUG9pbnRJdGVyYXRvcjxDaGFyYWN0ZXJUeXBlPiYgaXRlcmF0b3IsIFZlY3RvcjxMQ2hhcj4m
IGFzY2lpQnVmZmVyKQogewotICAgIGlmIChpc1dpbmRvd3NEcml2ZUxldHRlcjxzZXJpYWxpemVk
PihpdGVyYXRvcikpIHsKKyAgICBpZiAoaXNXaW5kb3dzRHJpdmVMZXR0ZXIoaXRlcmF0b3IpKSB7
CiAgICAgICAgIGFzY2lpQnVmZmVyLnJlc2VydmVDYXBhY2l0eShhc2NpaUJ1ZmZlci5zaXplKCkg
KyAyKTsKICAgICAgICAgYXNjaWlCdWZmZXIudW5jaGVja2VkQXBwZW5kKCppdGVyYXRvcik7Ci0g
ICAgICAgIGluY3JlbWVudEl0ZXJhdG9yU2tpcHBpbmdUYWJBbmROZXdMaW5lPHNlcmlhbGl6ZWQ+
KGl0ZXJhdG9yKTsKKyAgICAgICAgaW5jcmVtZW50SXRlcmF0b3JTa2lwcGluZ1RhYkFuZE5ld0xp
bmUoaXRlcmF0b3IpOwogICAgICAgICBBU1NFUlQoIWl0ZXJhdG9yLmF0RW5kKCkpOwogICAgICAg
ICBBU1NFUlQoKml0ZXJhdG9yID09ICc6JyB8fCAqaXRlcmF0b3IgPT0gJ3wnKTsKICAgICAgICAg
YXNjaWlCdWZmZXIudW5jaGVja2VkQXBwZW5kKCc6Jyk7Ci0gICAgICAgIGluY3JlbWVudEl0ZXJh
dG9yU2tpcHBpbmdUYWJBbmROZXdMaW5lPHNlcmlhbGl6ZWQ+KGl0ZXJhdG9yKTsKKyAgICAgICAg
aW5jcmVtZW50SXRlcmF0b3JTa2lwcGluZ1RhYkFuZE5ld0xpbmUoaXRlcmF0b3IpOwogICAgIH0K
IH0KIAotdGVtcGxhdGU8Ym9vbCBzZXJpYWxpemVkLCB0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPgor
dGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4KIGlubGluZSBzdGF0aWMgYm9vbCBzaG91
bGRDb3B5RmlsZVVSTChDb2RlUG9pbnRJdGVyYXRvcjxDaGFyYWN0ZXJUeXBlPiBpdGVyYXRvcikK
IHsKLSAgICBpZiAoIWlzV2luZG93c0RyaXZlTGV0dGVyPHNlcmlhbGl6ZWQ+KGl0ZXJhdG9yKSkK
KyAgICBpZiAoIWlzV2luZG93c0RyaXZlTGV0dGVyKGl0ZXJhdG9yKSkKICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgaWYgKGl0ZXJhdG9yLmF0RW5kKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICBpbmNyZW1lbnRJdGVyYXRvclNraXBwaW5nVGFiQW5kTmV3TGluZTxzZXJpYWxpemVkPihp
dGVyYXRvcik7CisgICAgaW5jcmVtZW50SXRlcmF0b3JTa2lwcGluZ1RhYkFuZE5ld0xpbmUoaXRl
cmF0b3IpOwogICAgIGlmIChpdGVyYXRvci5hdEVuZCgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsK
LSAgICBpbmNyZW1lbnRJdGVyYXRvclNraXBwaW5nVGFiQW5kTmV3TGluZTxzZXJpYWxpemVkPihp
dGVyYXRvcik7CisgICAgaW5jcmVtZW50SXRlcmF0b3JTa2lwcGluZ1RhYkFuZE5ld0xpbmUoaXRl
cmF0b3IpOwogICAgIGlmIChpdGVyYXRvci5hdEVuZCgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICByZXR1cm4gIWlzU2xhc2hRdWVzdGlvbk9ySGFzaCgqaXRlcmF0b3IpOwpAQCAtNDY5LDY3
ICs0NjksNTMgQEAgaW5saW5lIHN0YXRpYyB2b2lkIHBlcmNlbnRFbmNvZGVCeXRlKHVpbgogY29u
c3QgY2hhciogcmVwbGFjZW1lbnRDaGFyYWN0ZXJVVEY4UGVyY2VudEVuY29kZWQgPSAiJUVGJUJG
JUJEIjsKIGNvbnN0IHNpemVfdCByZXBsYWNlbWVudENoYXJhY3RlclVURjhQZXJjZW50RW5jb2Rl
ZExlbmd0aCA9IDk7CiAKLXRlbXBsYXRlPGJvb2wgc2VyaWFsaXplZD4KIGlubGluZSBzdGF0aWMg
dm9pZCB1dGY4UGVyY2VudEVuY29kZShVQ2hhcjMyIGNvZGVQb2ludCwgVmVjdG9yPExDaGFyPiYg
ZGVzdGluYXRpb24sIGJvb2woKmlzSW5Db2RlU2V0KShVQ2hhcjMyKSkKIHsKLSAgICBpZiAoc2Vy
aWFsaXplZCkgewotICAgICAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihpc0FT
Q0lJKGNvZGVQb2ludCkpOwotICAgICAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElP
TighaXNJbkNvZGVTZXQoY29kZVBvaW50KSk7Ci0gICAgICAgIGRlc3RpbmF0aW9uLmFwcGVuZChj
b2RlUG9pbnQpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGlmIChpc0FTQ0lJKGNvZGVQb2ludCkp
IHsKLSAgICAgICAgICAgIGlmIChpc0luQ29kZVNldChjb2RlUG9pbnQpKQotICAgICAgICAgICAg
ICAgIHBlcmNlbnRFbmNvZGVCeXRlKGNvZGVQb2ludCwgZGVzdGluYXRpb24pOwotICAgICAgICAg
ICAgZWxzZQotICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uLmFwcGVuZChjb2RlUG9pbnQpOwot
ICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIEFTU0VSVF9XSVRIX01FU1NB
R0UoaXNJbkNvZGVTZXQoY29kZVBvaW50KSwgImlzSW5Db2RlU2V0IHNob3VsZCBhbHdheXMgcmV0
dXJuIHRydWUgZm9yIG5vbi1BU0NJSSBjaGFyYWN0ZXJzIik7Ci0gICAgICAgIAotICAgICAgICBp
ZiAoIVVfSVNfVU5JQ09ERV9DSEFSKGNvZGVQb2ludCkpIHsKLSAgICAgICAgICAgIGRlc3RpbmF0
aW9uLmFwcGVuZChyZXBsYWNlbWVudENoYXJhY3RlclVURjhQZXJjZW50RW5jb2RlZCwgcmVwbGFj
ZW1lbnRDaGFyYWN0ZXJVVEY4UGVyY2VudEVuY29kZWRMZW5ndGgpOwotICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICB1aW50OF90IGJ1ZmZlcltVOF9NQVhf
TEVOR1RIXTsKLSAgICAgICAgaW50MzJfdCBvZmZzZXQgPSAwOwotICAgICAgICBVOF9BUFBFTkRf
VU5TQUZFKGJ1ZmZlciwgb2Zmc2V0LCBjb2RlUG9pbnQpOwotICAgICAgICBmb3IgKGludDMyX3Qg
aSA9IDA7IGkgPCBvZmZzZXQ7ICsraSkKLSAgICAgICAgICAgIHBlcmNlbnRFbmNvZGVCeXRlKGJ1
ZmZlcltpXSwgZGVzdGluYXRpb24pOworICAgIGlmIChpc0FTQ0lJKGNvZGVQb2ludCkpIHsKKyAg
ICAgICAgaWYgKGlzSW5Db2RlU2V0KGNvZGVQb2ludCkpCisgICAgICAgICAgICBwZXJjZW50RW5j
b2RlQnl0ZShjb2RlUG9pbnQsIGRlc3RpbmF0aW9uKTsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgZGVzdGluYXRpb24uYXBwZW5kKGNvZGVQb2ludCk7CisgICAgICAgIHJldHVybjsKICAgICB9
CisgICAgQVNTRVJUX1dJVEhfTUVTU0FHRShpc0luQ29kZVNldChjb2RlUG9pbnQpLCAiaXNJbkNv
ZGVTZXQgc2hvdWxkIGFsd2F5cyByZXR1cm4gdHJ1ZSBmb3Igbm9uLUFTQ0lJIGNoYXJhY3RlcnMi
KTsKKyAgICAKKyAgICBpZiAoIVVfSVNfVU5JQ09ERV9DSEFSKGNvZGVQb2ludCkpIHsKKyAgICAg
ICAgZGVzdGluYXRpb24uYXBwZW5kKHJlcGxhY2VtZW50Q2hhcmFjdGVyVVRGOFBlcmNlbnRFbmNv
ZGVkLCByZXBsYWNlbWVudENoYXJhY3RlclVURjhQZXJjZW50RW5jb2RlZExlbmd0aCk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgdWludDhfdCBidWZmZXJbVThfTUFYX0xFTkdU
SF07CisgICAgaW50MzJfdCBvZmZzZXQgPSAwOworICAgIFU4X0FQUEVORF9VTlNBRkUoYnVmZmVy
LCBvZmZzZXQsIGNvZGVQb2ludCk7CisgICAgZm9yIChpbnQzMl90IGkgPSAwOyBpIDwgb2Zmc2V0
OyArK2kpCisgICAgICAgIHBlcmNlbnRFbmNvZGVCeXRlKGJ1ZmZlcltpXSwgZGVzdGluYXRpb24p
OwogfQogCi10ZW1wbGF0ZTxib29sIHNlcmlhbGl6ZWQ+CiBpbmxpbmUgc3RhdGljIHZvaWQgdXRm
OFF1ZXJ5RW5jb2RlKFVDaGFyMzIgY29kZVBvaW50LCBWZWN0b3I8TENoYXI+JiBkZXN0aW5hdGlv
bikKIHsKLSAgICBpZiAoc2VyaWFsaXplZCkgewotICAgICAgICBBU1NFUlRfV0lUSF9TRUNVUklU
WV9JTVBMSUNBVElPTihpc0FTQ0lJKGNvZGVQb2ludCkpOwotICAgICAgICBBU1NFUlRfV0lUSF9T
RUNVUklUWV9JTVBMSUNBVElPTighc2hvdWxkUGVyY2VudEVuY29kZVF1ZXJ5Qnl0ZShjb2RlUG9p
bnQpKTsKLSAgICAgICAgZGVzdGluYXRpb24uYXBwZW5kKGNvZGVQb2ludCk7Ci0gICAgfSBlbHNl
IHsKLSAgICAgICAgaWYgKGlzQVNDSUkoY29kZVBvaW50KSkgewotICAgICAgICAgICAgaWYgKHNo
b3VsZFBlcmNlbnRFbmNvZGVRdWVyeUJ5dGUoY29kZVBvaW50KSkKLSAgICAgICAgICAgICAgICBw
ZXJjZW50RW5jb2RlQnl0ZShjb2RlUG9pbnQsIGRlc3RpbmF0aW9uKTsKLSAgICAgICAgICAgIGVs
c2UKLSAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbi5hcHBlbmQoY29kZVBvaW50KTsKLSAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgaWYgKCFVX0lTX1VO
SUNPREVfQ0hBUihjb2RlUG9pbnQpKSB7Ci0gICAgICAgICAgICBkZXN0aW5hdGlvbi5hcHBlbmQo
cmVwbGFjZW1lbnRDaGFyYWN0ZXJVVEY4UGVyY2VudEVuY29kZWQsIHJlcGxhY2VtZW50Q2hhcmFj
dGVyVVRGOFBlcmNlbnRFbmNvZGVkTGVuZ3RoKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgfQorICAgIGlmIChpc0FTQ0lJKGNvZGVQb2ludCkpIHsKKyAgICAgICAgaWYgKHNob3VsZFBl
cmNlbnRFbmNvZGVRdWVyeUJ5dGUoY29kZVBvaW50KSkKKyAgICAgICAgICAgIHBlcmNlbnRFbmNv
ZGVCeXRlKGNvZGVQb2ludCwgZGVzdGluYXRpb24pOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICBkZXN0aW5hdGlvbi5hcHBlbmQoY29kZVBvaW50KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyAgICAKKyAgICBpZiAoIVVfSVNfVU5JQ09ERV9DSEFSKGNvZGVQb2ludCkpIHsKKyAgICAgICAg
ZGVzdGluYXRpb24uYXBwZW5kKHJlcGxhY2VtZW50Q2hhcmFjdGVyVVRGOFBlcmNlbnRFbmNvZGVk
LCByZXBsYWNlbWVudENoYXJhY3RlclVURjhQZXJjZW50RW5jb2RlZExlbmd0aCk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CiAKLSAgICAgICAgdWludDhfdCBidWZmZXJbVThfTUFYX0xFTkdUSF07
Ci0gICAgICAgIGludDMyX3Qgb2Zmc2V0ID0gMDsKLSAgICAgICAgVThfQVBQRU5EX1VOU0FGRShi
dWZmZXIsIG9mZnNldCwgY29kZVBvaW50KTsKLSAgICAgICAgZm9yIChpbnQzMl90IGkgPSAwOyBp
IDwgb2Zmc2V0OyArK2kpIHsKLSAgICAgICAgICAgIGF1dG8gYnl0ZSA9IGJ1ZmZlcltpXTsKLSAg
ICAgICAgICAgIGlmIChzaG91bGRQZXJjZW50RW5jb2RlUXVlcnlCeXRlKGJ5dGUpKQotICAgICAg
ICAgICAgICAgIHBlcmNlbnRFbmNvZGVCeXRlKGJ5dGUsIGRlc3RpbmF0aW9uKTsKLSAgICAgICAg
ICAgIGVsc2UKLSAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbi5hcHBlbmQoYnl0ZSk7Ci0gICAg
ICAgIH0KKyAgICB1aW50OF90IGJ1ZmZlcltVOF9NQVhfTEVOR1RIXTsKKyAgICBpbnQzMl90IG9m
ZnNldCA9IDA7CisgICAgVThfQVBQRU5EX1VOU0FGRShidWZmZXIsIG9mZnNldCwgY29kZVBvaW50
KTsKKyAgICBmb3IgKGludDMyX3QgaSA9IDA7IGkgPCBvZmZzZXQ7ICsraSkgeworICAgICAgICBh
dXRvIGJ5dGUgPSBidWZmZXJbaV07CisgICAgICAgIGlmIChzaG91bGRQZXJjZW50RW5jb2RlUXVl
cnlCeXRlKGJ5dGUpKQorICAgICAgICAgICAgcGVyY2VudEVuY29kZUJ5dGUoYnl0ZSwgZGVzdGlu
YXRpb24pOworICAgICAgICBlbHNlCisgICAgICAgICAgICBkZXN0aW5hdGlvbi5hcHBlbmQoYnl0
ZSk7CiAgICAgfQogfQogICAgIApAQCAtOTMzLDIxICs5MTksMTIgQEAgVVJMIFVSTFBhcnNlcjo6
ZmFpbHVyZShjb25zdCBDaGFyYWN0ZXJUeQogCiBVUkwgVVJMUGFyc2VyOjpwYXJzZShjb25zdCBT
dHJpbmcmIGlucHV0LCBjb25zdCBVUkwmIGJhc2UsIGNvbnN0IFRleHRFbmNvZGluZyYgZW5jb2Rp
bmcpCiB7Ci0gICAgY29uc3QgYm9vbCBzZXJpYWxpemVkID0gZmFsc2U7Ci0gICAgaWYgKGlucHV0
LmlzOEJpdCgpKQotICAgICAgICByZXR1cm4gcGFyc2U8c2VyaWFsaXplZD4oaW5wdXQuY2hhcmFj
dGVyczgoKSwgaW5wdXQubGVuZ3RoKCksIGJhc2UsIGVuY29kaW5nKTsKLSAgICByZXR1cm4gcGFy
c2U8c2VyaWFsaXplZD4oaW5wdXQuY2hhcmFjdGVyczE2KCksIGlucHV0Lmxlbmd0aCgpLCBiYXNl
LCBlbmNvZGluZyk7Ci19Ci0KLVVSTCBVUkxQYXJzZXI6OnBhcnNlU2VyaWFsaXplZFVSTChjb25z
dCBTdHJpbmcmIGlucHV0KQotewotICAgIGNvbnN0IGJvb2wgc2VyaWFsaXplZCA9IHRydWU7CiAg
ICAgaWYgKGlucHV0LmlzOEJpdCgpKQotICAgICAgICByZXR1cm4gcGFyc2U8c2VyaWFsaXplZD4o
aW5wdXQuY2hhcmFjdGVyczgoKSwgaW5wdXQubGVuZ3RoKCksIHsgfSwgVVRGOEVuY29kaW5nKCkp
OwotICAgIHJldHVybiBwYXJzZTxzZXJpYWxpemVkPihpbnB1dC5jaGFyYWN0ZXJzMTYoKSwgaW5w
dXQubGVuZ3RoKCksIHsgfSwgVVRGOEVuY29kaW5nKCkpOworICAgICAgICByZXR1cm4gcGFyc2Uo
aW5wdXQuY2hhcmFjdGVyczgoKSwgaW5wdXQubGVuZ3RoKCksIGJhc2UsIGVuY29kaW5nKTsKKyAg
ICByZXR1cm4gcGFyc2UoaW5wdXQuY2hhcmFjdGVyczE2KCksIGlucHV0Lmxlbmd0aCgpLCBiYXNl
LCBlbmNvZGluZyk7CiB9CiAKLXRlbXBsYXRlPGJvb2wgc2VyaWFsaXplZCwgdHlwZW5hbWUgQ2hh
cmFjdGVyVHlwZT4KK3RlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+CiBVUkwgVVJMUGFy
c2VyOjpwYXJzZShjb25zdCBDaGFyYWN0ZXJUeXBlKiBpbnB1dCwgY29uc3QgdW5zaWduZWQgbGVu
Z3RoLCBjb25zdCBVUkwmIGJhc2UsIGNvbnN0IFRleHRFbmNvZGluZyYgZW5jb2RpbmcpCiB7CiAg
ICAgTE9HKFVSTFBhcnNlciwgIlBhcnNpbmcgVVJMIDwlcz4gYmFzZSA8JXM+IiwgU3RyaW5nKGlu
cHV0LCBsZW5ndGgpLnV0ZjgoKS5kYXRhKCksIGJhc2Uuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7
CkBAIC05OTUsNyArOTcyLDcgQEAgVVJMIFVSTFBhcnNlcjo6cGFyc2UoY29uc3QgQ2hhcmFjdGVy
VHlwZQogCiAgICAgU3RhdGUgc3RhdGUgPSBTdGF0ZTo6U2NoZW1lU3RhcnQ7CiAgICAgd2hpbGUg
KCFjLmF0RW5kKCkpIHsKLSAgICAgICAgaWYgKCFzZXJpYWxpemVkICYmIGlzVGFiT3JOZXdsaW5l
KCpjKSkgeworICAgICAgICBpZiAoaXNUYWJPck5ld2xpbmUoKmMpKSB7CiAgICAgICAgICAgICAr
K2M7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQpAQCAtMTAwNSw3ICs5ODIsNyBA
QCBVUkwgVVJMUGFyc2VyOjpwYXJzZShjb25zdCBDaGFyYWN0ZXJUeXBlCiAgICAgICAgICAgICBM
T0dfU1RBVEUoIlNjaGVtZVN0YXJ0Iik7CiAgICAgICAgICAgICBpZiAoaXNBU0NJSUFscGhhKCpj
KSkgewogICAgICAgICAgICAgICAgIG1fYXNjaWlCdWZmZXIudW5jaGVja2VkQXBwZW5kKHRvQVND
SUlMb3dlcigqYykpOwotICAgICAgICAgICAgICAgIGluY3JlbWVudEl0ZXJhdG9yU2tpcHBpbmdU
YWJBbmROZXdMaW5lPHNlcmlhbGl6ZWQ+KGMpOworICAgICAgICAgICAgICAgIGluY3JlbWVudEl0
ZXJhdG9yU2tpcHBpbmdUYWJBbmROZXdMaW5lKGMpOwogICAgICAgICAgICAgICAgIGlmIChjLmF0
RW5kKCkpIHsKICAgICAgICAgICAgICAgICAgICAgbV9hc2NpaUJ1ZmZlci5jbGVhcigpOwogICAg
ICAgICAgICAgICAgICAgICBzdGF0ZSA9IFN0YXRlOjpOb1NjaGVtZTsKQEAgLTEwMzksNyArMTAx
Niw3IEBAIFVSTCBVUkxQYXJzZXI6OnBhcnNlKGNvbnN0IENoYXJhY3RlclR5cGUKICAgICAgICAg
ICAgICAgICAgICAgICAgIHN0YXRlID0gU3RhdGU6OlNwZWNpYWxBdXRob3JpdHlTbGFzaGVzOwog
ICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgIGF1dG8gbWF5YmVT
bGFzaCA9IGM7Ci0gICAgICAgICAgICAgICAgICAgIGluY3JlbWVudEl0ZXJhdG9yU2tpcHBpbmdU
YWJBbmROZXdMaW5lPHNlcmlhbGl6ZWQ+KG1heWJlU2xhc2gpOworICAgICAgICAgICAgICAgICAg
ICBpbmNyZW1lbnRJdGVyYXRvclNraXBwaW5nVGFiQW5kTmV3TGluZShtYXliZVNsYXNoKTsKICAg
ICAgICAgICAgICAgICAgICAgaWYgKCFtYXliZVNsYXNoLmF0RW5kKCkgJiYgKm1heWJlU2xhc2gg
PT0gJy8nKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBtX2FzY2lpQnVmZmVyLmFwcGVuZCgn
LycpOwogICAgICAgICAgICAgICAgICAgICAgICAgbV91cmwubV91c2VyU3RhcnQgPSBtX2FzY2lp
QnVmZmVyLnNpemUoKTsKQEAgLTEwNjUsNyArMTA0Miw3IEBAIFVSTCBVUkxQYXJzZXI6OnBhcnNl
KGNvbnN0IENoYXJhY3RlclR5cGUKICAgICAgICAgICAgICAgICBjID0gYmVnaW5BZnRlckNvbnRy
b2xBbmRTcGFjZTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIGluY3JlbWVudEl0ZXJhdG9yU2tpcHBpbmdUYWJBbmROZXdMaW5lPHNlcmlhbGl6ZWQ+
KGMpOworICAgICAgICAgICAgaW5jcmVtZW50SXRlcmF0b3JTa2lwcGluZ1RhYkFuZE5ld0xpbmUo
Yyk7CiAgICAgICAgICAgICBpZiAoYy5hdEVuZCgpKSB7CiAgICAgICAgICAgICAgICAgbV9hc2Np
aUJ1ZmZlci5jbGVhcigpOwogICAgICAgICAgICAgICAgIHN0YXRlID0gU3RhdGU6Ok5vU2NoZW1l
OwpAQCAtMTA5NSw3ICsxMDcyLDcgQEAgVVJMIFVSTFBhcnNlcjo6cGFyc2UoY29uc3QgQ2hhcmFj
dGVyVHlwZQogICAgICAgICAgICAgTE9HX1NUQVRFKCJTcGVjaWFsUmVsYXRpdmVPckF1dGhvcml0
eSIpOwogICAgICAgICAgICAgaWYgKCpjID09ICcvJykgewogICAgICAgICAgICAgICAgIG1fYXNj
aWlCdWZmZXIuYXBwZW5kKCcvJyk7Ci0gICAgICAgICAgICAgICAgaW5jcmVtZW50SXRlcmF0b3JT
a2lwcGluZ1RhYkFuZE5ld0xpbmU8c2VyaWFsaXplZD4oYyk7CisgICAgICAgICAgICAgICAgaW5j
cmVtZW50SXRlcmF0b3JTa2lwcGluZ1RhYkFuZE5ld0xpbmUoYyk7CiAgICAgICAgICAgICAgICAg
aWYgKGMuYXRFbmQoKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhaWx1cmUoaW5wdXQs
IGxlbmd0aCk7CiAgICAgICAgICAgICAgICAgaWYgKCpjID09ICcvJykgewpAQCAtMTE3MCw3ICsx
MTQ3LDcgQEAgVVJMIFVSTFBhcnNlcjo6cGFyc2UoY29uc3QgQ2hhcmFjdGVyVHlwZQogICAgICAg
ICAgICAgTE9HX1NUQVRFKCJTcGVjaWFsQXV0aG9yaXR5U2xhc2hlcyIpOwogICAgICAgICAgICAg
bV9hc2NpaUJ1ZmZlci5hcHBlbmQoIi8vIiwgMik7CiAgICAgICAgICAgICBpZiAoKmMgPT0gJy8n
IHx8ICpjID09ICdcXCcpIHsKLSAgICAgICAgICAgICAgICBpbmNyZW1lbnRJdGVyYXRvclNraXBw
aW5nVGFiQW5kTmV3TGluZTxzZXJpYWxpemVkPihjKTsKKyAgICAgICAgICAgICAgICBpbmNyZW1l
bnRJdGVyYXRvclNraXBwaW5nVGFiQW5kTmV3TGluZShjKTsKICAgICAgICAgICAgICAgICBpZiAo
IWMuYXRFbmQoKSAmJiAoKmMgPT0gJy8nIHx8ICpjID09ICdcXCcpKQogICAgICAgICAgICAgICAg
ICAgICArK2M7CiAgICAgICAgICAgICB9CkBAIC0xMTk3LDkgKzExNzQsOSBAQCBVUkwgVVJMUGFy
c2VyOjpwYXJzZShjb25zdCBDaGFyYWN0ZXJUeXBlCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbGFzdEF0ID0gZmluZExhc3RBdDsKICAgICAgICAgICAgICAgICAgICAgICAgICsrZmluZExh
c3RBdDsKICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBwYXJzZUF1
dGhvcml0eTxzZXJpYWxpemVkPihDb2RlUG9pbnRJdGVyYXRvcjxDaGFyYWN0ZXJUeXBlPihhdXRo
b3JpdHlPckhvc3RCZWdpbiwgbGFzdEF0KSk7CisgICAgICAgICAgICAgICAgICAgIHBhcnNlQXV0
aG9yaXR5KENvZGVQb2ludEl0ZXJhdG9yPENoYXJhY3RlclR5cGU+KGF1dGhvcml0eU9ySG9zdEJl
Z2luLCBsYXN0QXQpKTsKICAgICAgICAgICAgICAgICAgICAgYyA9IGxhc3RBdDsKLSAgICAgICAg
ICAgICAgICAgICAgaW5jcmVtZW50SXRlcmF0b3JTa2lwcGluZ1RhYkFuZE5ld0xpbmU8c2VyaWFs
aXplZD4oYyk7CisgICAgICAgICAgICAgICAgICAgIGluY3JlbWVudEl0ZXJhdG9yU2tpcHBpbmdU
YWJBbmROZXdMaW5lKGMpOwogICAgICAgICAgICAgICAgICAgICBhdXRob3JpdHlPckhvc3RCZWdp
biA9IGM7CiAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gU3RhdGU6Okhvc3Q7CiAgICAgICAg
ICAgICAgICAgICAgIG1faG9zdEhhc1BlcmNlbnRPck5vbkFTQ0lJID0gZmFsc2U7CkBAIC0xMjA5
LDcgKzExODYsNyBAQCBVUkwgVVJMUGFyc2VyOjpwYXJzZShjb25zdCBDaGFyYWN0ZXJUeXBlCiAg
ICAgICAgICAgICAgICAgaWYgKGlzU2xhc2ggfHwgKmMgPT0gJz8nIHx8ICpjID09ICcjJykgewog
ICAgICAgICAgICAgICAgICAgICBtX3VybC5tX3VzZXJFbmQgPSBtX2FzY2lpQnVmZmVyLnNpemUo
KTsKICAgICAgICAgICAgICAgICAgICAgbV91cmwubV9wYXNzd29yZEVuZCA9IG1fdXJsLm1fdXNl
ckVuZDsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCFwYXJzZUhvc3RBbmRQb3J0PHNlcmlhbGl6
ZWQ+KENvZGVQb2ludEl0ZXJhdG9yPENoYXJhY3RlclR5cGU+KGF1dGhvcml0eU9ySG9zdEJlZ2lu
LCBjKSkpCisgICAgICAgICAgICAgICAgICAgIGlmICghcGFyc2VIb3N0QW5kUG9ydChDb2RlUG9p
bnRJdGVyYXRvcjxDaGFyYWN0ZXJUeXBlPihhdXRob3JpdHlPckhvc3RCZWdpbiwgYykpKQogICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhaWx1cmUoaW5wdXQsIGxlbmd0aCk7CiAgICAg
ICAgICAgICAgICAgICAgIGlmICghaXNTbGFzaCkgewogICAgICAgICAgICAgICAgICAgICAgICAg
bV9hc2NpaUJ1ZmZlci5hcHBlbmQoJy8nKTsKQEAgLTEyMjYsNyArMTIwMyw3IEBAIFVSTCBVUkxQ
YXJzZXI6OnBhcnNlKGNvbnN0IENoYXJhY3RlclR5cGUKICAgICAgICAgY2FzZSBTdGF0ZTo6SG9z
dDoKICAgICAgICAgICAgIExPR19TVEFURSgiSG9zdCIpOwogICAgICAgICAgICAgaWYgKCpjID09
ICcvJyB8fCAqYyA9PSAnPycgfHwgKmMgPT0gJyMnKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCFw
YXJzZUhvc3RBbmRQb3J0PHNlcmlhbGl6ZWQ+KENvZGVQb2ludEl0ZXJhdG9yPENoYXJhY3RlclR5
cGU+KGF1dGhvcml0eU9ySG9zdEJlZ2luLCBjKSkpCisgICAgICAgICAgICAgICAgaWYgKCFwYXJz
ZUhvc3RBbmRQb3J0KENvZGVQb2ludEl0ZXJhdG9yPENoYXJhY3RlclR5cGU+KGF1dGhvcml0eU9y
SG9zdEJlZ2luLCBjKSkpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWlsdXJlKGlucHV0
LCBsZW5ndGgpOwogICAgICAgICAgICAgICAgIHN0YXRlID0gU3RhdGU6OlBhdGg7CiAgICAgICAg
ICAgICAgICAgYnJlYWs7CkBAIC0xMjc0LDcgKzEyNTEsNyBAQCBVUkwgVVJMUGFyc2VyOjpwYXJz
ZShjb25zdCBDaGFyYWN0ZXJUeXBlCiAgICAgICAgICAgICAgICAgKytjOwogICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICBpZiAoYmFz
ZS5pc1ZhbGlkKCkgJiYgYmFzZS5wcm90b2NvbElzKCJmaWxlIikgJiYgc2hvdWxkQ29weUZpbGVV
Ukw8c2VyaWFsaXplZD4oYykpCisgICAgICAgICAgICAgICAgaWYgKGJhc2UuaXNWYWxpZCgpICYm
IGJhc2UucHJvdG9jb2xJcygiZmlsZSIpICYmIHNob3VsZENvcHlGaWxlVVJMKGMpKQogICAgICAg
ICAgICAgICAgICAgICBjb3B5VVJMUGFydHNVbnRpbChiYXNlLCBVUkxQYXJ0OjpQYXRoQWZ0ZXJM
YXN0U2xhc2gpOwogICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICBt
X2FzY2lpQnVmZmVyLmFwcGVuZCgiLy8vIiwgMyk7CkBAIC0xMjg0LDcgKzEyNjEsNyBAQCBVUkwg
VVJMUGFyc2VyOjpwYXJzZShjb25zdCBDaGFyYWN0ZXJUeXBlCiAgICAgICAgICAgICAgICAgICAg
IG1fdXJsLm1faG9zdEVuZCA9IG1fdXJsLm1fdXNlclN0YXJ0OwogICAgICAgICAgICAgICAgICAg
ICBtX3VybC5tX3BvcnRFbmQgPSBtX3VybC5tX3VzZXJTdGFydDsKICAgICAgICAgICAgICAgICAg
ICAgbV91cmwubV9wYXRoQWZ0ZXJMYXN0U2xhc2ggPSBtX3VybC5tX3VzZXJTdGFydCArIDE7Ci0g
ICAgICAgICAgICAgICAgICAgIGNoZWNrV2luZG93c0RyaXZlTGV0dGVyPHNlcmlhbGl6ZWQ+KGMs
IG1fYXNjaWlCdWZmZXIpOworICAgICAgICAgICAgICAgICAgICBjaGVja1dpbmRvd3NEcml2ZUxl
dHRlcihjLCBtX2FzY2lpQnVmZmVyKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgc3RhdGUgPSBTdGF0ZTo6UGF0aDsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTEzMDks
OCArMTI4Niw4IEBAIFVSTCBVUkxQYXJzZXI6OnBhcnNlKGNvbnN0IENoYXJhY3RlclR5cGUKICAg
ICAgICAgICAgICAgICBTdHJpbmcgYmFzZVBhdGggPSBiYXNlLnBhdGgoKTsKICAgICAgICAgICAg
ICAgICBpZiAoYmFzZVBhdGgubGVuZ3RoKCkgPj0gMikgewogICAgICAgICAgICAgICAgICAgICBi
b29sIHdpbmRvd3NRdWlyayA9IGJhc2VQYXRoLmlzOEJpdCgpCi0gICAgICAgICAgICAgICAgICAg
ICAgICA/IGlzV2luZG93c0RyaXZlTGV0dGVyPHNlcmlhbGl6ZWQ+KENvZGVQb2ludEl0ZXJhdG9y
PExDaGFyPihiYXNlUGF0aC5jaGFyYWN0ZXJzOCgpLCBiYXNlUGF0aC5jaGFyYWN0ZXJzOCgpICsg
YmFzZVBhdGgubGVuZ3RoKCkpKQotICAgICAgICAgICAgICAgICAgICAgICAgOiBpc1dpbmRvd3NE
cml2ZUxldHRlcjxzZXJpYWxpemVkPihDb2RlUG9pbnRJdGVyYXRvcjxVQ2hhcj4oYmFzZVBhdGgu
Y2hhcmFjdGVyczE2KCksIGJhc2VQYXRoLmNoYXJhY3RlcnMxNigpICsgYmFzZVBhdGgubGVuZ3Ro
KCkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgID8gaXNXaW5kb3dzRHJpdmVMZXR0ZXIoQ29k
ZVBvaW50SXRlcmF0b3I8TENoYXI+KGJhc2VQYXRoLmNoYXJhY3RlcnM4KCksIGJhc2VQYXRoLmNo
YXJhY3RlcnM4KCkgKyBiYXNlUGF0aC5sZW5ndGgoKSkpCisgICAgICAgICAgICAgICAgICAgICAg
ICA6IGlzV2luZG93c0RyaXZlTGV0dGVyKENvZGVQb2ludEl0ZXJhdG9yPFVDaGFyPihiYXNlUGF0
aC5jaGFyYWN0ZXJzMTYoKSwgYmFzZVBhdGguY2hhcmFjdGVyczE2KCkgKyBiYXNlUGF0aC5sZW5n
dGgoKSkpOwogICAgICAgICAgICAgICAgICAgICBpZiAod2luZG93c1F1aXJrKSB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICBtX2FzY2lpQnVmZmVyLmFwcGVuZChiYXNlUGF0aFswXSk7CiAgICAg
ICAgICAgICAgICAgICAgICAgICBtX2FzY2lpQnVmZmVyLmFwcGVuZChiYXNlUGF0aFsxXSk7CkBA
IC0xMzI0LDcgKzEzMDEsNyBAQCBVUkwgVVJMUGFyc2VyOjpwYXJzZShjb25zdCBDaGFyYWN0ZXJU
eXBlCiAgICAgICAgICAgICBtX3VybC5tX2hvc3RFbmQgPSBtX3VybC5tX3VzZXJTdGFydDsKICAg
ICAgICAgICAgIG1fdXJsLm1fcG9ydEVuZCA9IG1fdXJsLm1fdXNlclN0YXJ0OwogICAgICAgICAg
ICAgbV91cmwubV9wYXRoQWZ0ZXJMYXN0U2xhc2ggPSBtX3VybC5tX3VzZXJTdGFydCArIDE7Ci0g
ICAgICAgICAgICBjaGVja1dpbmRvd3NEcml2ZUxldHRlcjxzZXJpYWxpemVkPihjLCBtX2FzY2lp
QnVmZmVyKTsKKyAgICAgICAgICAgIGNoZWNrV2luZG93c0RyaXZlTGV0dGVyKGMsIG1fYXNjaWlC
dWZmZXIpOwogICAgICAgICAgICAgc3RhdGUgPSBTdGF0ZTo6UGF0aDsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICBjYXNlIFN0YXRlOjpGaWxlSG9zdDoKQEAgLTEzNTYsNyArMTMzMyw3IEBA
IFVSTCBVUkxQYXJzZXI6OnBhcnNlKGNvbnN0IENoYXJhY3RlclR5cGUKICAgICAgICAgICAgICAg
ICAgICAgc3RhdGUgPSBTdGF0ZTo6UGF0aDsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmICghcGFyc2VIb3N0QW5kUG9ydDxz
ZXJpYWxpemVkPihDb2RlUG9pbnRJdGVyYXRvcjxDaGFyYWN0ZXJUeXBlPihhdXRob3JpdHlPckhv
c3RCZWdpbiwgYykpKQorICAgICAgICAgICAgICAgIGlmICghcGFyc2VIb3N0QW5kUG9ydChDb2Rl
UG9pbnRJdGVyYXRvcjxDaGFyYWN0ZXJUeXBlPihhdXRob3JpdHlPckhvc3RCZWdpbiwgYykpKQog
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFpbHVyZShpbnB1dCwgbGVuZ3RoKTsKICAgICAg
ICAgICAgICAgICAKICAgICAgICAgICAgICAgICBpZiAoU3RyaW5nVmlldyhtX2FzY2lpQnVmZmVy
LmRhdGEoKSArIG1fdXJsLm1fcGFzc3dvcmRFbmQsIG1fYXNjaWlCdWZmZXIuc2l6ZSgpIC0gbV91
cmwubV9wYXNzd29yZEVuZCkgPT0gImxvY2FsaG9zdCIpICB7CkBAIC0xNDE4LDcgKzEzOTUsNyBA
QCBVUkwgVVJMUGFyc2VyOjpwYXJzZShjb25zdCBDaGFyYWN0ZXJUeXBlCiAgICAgICAgICAgICAg
ICAgKytjOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQotICAgICAgICAg
ICAgdXRmOFBlcmNlbnRFbmNvZGU8c2VyaWFsaXplZD4oKmMsIG1fYXNjaWlCdWZmZXIsIGlzSW5E
ZWZhdWx0RW5jb2RlU2V0KTsKKyAgICAgICAgICAgIHV0ZjhQZXJjZW50RW5jb2RlKCpjLCBtX2Fz
Y2lpQnVmZmVyLCBpc0luRGVmYXVsdEVuY29kZVNldCk7CiAgICAgICAgICAgICArK2M7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBTdGF0ZTo6Q2Fubm90QmVBQmFzZVVSTFBhdGg6
CkBAIC0xNDM1LDcgKzE0MTIsNyBAQCBVUkwgVVJMUGFyc2VyOjpwYXJzZShjb25zdCBDaGFyYWN0
ZXJUeXBlCiAgICAgICAgICAgICAgICAgbV91cmwubV9wYXRoQWZ0ZXJMYXN0U2xhc2ggPSBtX2Fz
Y2lpQnVmZmVyLnNpemUoKTsKICAgICAgICAgICAgICAgICArK2M7CiAgICAgICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgICAgIHV0ZjhQZXJjZW50RW5jb2RlPHNlcmlhbGl6ZWQ+KCpjLCBt
X2FzY2lpQnVmZmVyLCBpc0luU2ltcGxlRW5jb2RlU2V0KTsKKyAgICAgICAgICAgICAgICB1dGY4
UGVyY2VudEVuY29kZSgqYywgbV9hc2NpaUJ1ZmZlciwgaXNJblNpbXBsZUVuY29kZVNldCk7CiAg
ICAgICAgICAgICAgICAgKytjOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CkBA
IC0xNDQ5LDcgKzE0MjYsNyBAQCBVUkwgVVJMUGFyc2VyOjpwYXJzZShjb25zdCBDaGFyYWN0ZXJU
eXBlCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBp
ZiAoaXNVVEY4RW5jb2RpbmcpCi0gICAgICAgICAgICAgICAgdXRmOFF1ZXJ5RW5jb2RlPHNlcmlh
bGl6ZWQ+KCpjLCBtX2FzY2lpQnVmZmVyKTsKKyAgICAgICAgICAgICAgICB1dGY4UXVlcnlFbmNv
ZGUoKmMsIG1fYXNjaWlCdWZmZXIpOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAg
IGFwcGVuZENvZGVQb2ludChxdWVyeUJ1ZmZlciwgKmMpOwogICAgICAgICAgICAgKytjOwpAQCAt
MTUzMyw3ICsxNTEwLDcgQEAgVVJMIFVSTFBhcnNlcjo6cGFyc2UoY29uc3QgQ2hhcmFjdGVyVHlw
ZQogICAgICAgICBpZiAoYXV0aG9yaXR5T3JIb3N0QmVnaW4uYXRFbmQoKSkgewogICAgICAgICAg
ICAgbV91cmwubV9ob3N0RW5kID0gbV91cmwubV91c2VyRW5kOwogICAgICAgICAgICAgbV91cmwu
bV9wb3J0RW5kID0gbV91cmwubV91c2VyRW5kOwotICAgICAgICB9IGVsc2UgaWYgKCFwYXJzZUhv
c3RBbmRQb3J0PHNlcmlhbGl6ZWQ+KGF1dGhvcml0eU9ySG9zdEJlZ2luKSkKKyAgICAgICAgfSBl
bHNlIGlmICghcGFyc2VIb3N0QW5kUG9ydChhdXRob3JpdHlPckhvc3RCZWdpbikpCiAgICAgICAg
ICAgICByZXR1cm4gZmFpbHVyZShpbnB1dCwgbGVuZ3RoKTsKICAgICAgICAgbV9hc2NpaUJ1ZmZl
ci5hcHBlbmQoJy8nKTsKICAgICAgICAgbV91cmwubV9wYXRoRW5kID0gbV91cmwubV9wb3J0RW5k
ICsgMTsKQEAgLTE1NDMsNyArMTUyMCw3IEBAIFVSTCBVUkxQYXJzZXI6OnBhcnNlKGNvbnN0IENo
YXJhY3RlclR5cGUKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBTdGF0ZTo6SG9zdDoKICAgICAg
ICAgTE9HX0ZJTkFMX1NUQVRFKCJIb3N0Iik7Ci0gICAgICAgIGlmICghcGFyc2VIb3N0QW5kUG9y
dDxzZXJpYWxpemVkPihhdXRob3JpdHlPckhvc3RCZWdpbikpCisgICAgICAgIGlmICghcGFyc2VI
b3N0QW5kUG9ydChhdXRob3JpdHlPckhvc3RCZWdpbikpCiAgICAgICAgICAgICByZXR1cm4gZmFp
bHVyZShpbnB1dCwgbGVuZ3RoKTsKICAgICAgICAgbV9hc2NpaUJ1ZmZlci5hcHBlbmQoJy8nKTsK
ICAgICAgICAgbV91cmwubV9wYXRoRW5kID0gbV91cmwubV9wb3J0RW5kICsgMTsKQEAgLTE1OTcs
NyArMTU3NCw3IEBAIFVSTCBVUkxQYXJzZXI6OnBhcnNlKGNvbnN0IENoYXJhY3RlclR5cGUKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKCFwYXJzZUhvc3RBbmRQ
b3J0PHNlcmlhbGl6ZWQ+KENvZGVQb2ludEl0ZXJhdG9yPENoYXJhY3RlclR5cGU+KGF1dGhvcml0
eU9ySG9zdEJlZ2luLCBjKSkpCisgICAgICAgIGlmICghcGFyc2VIb3N0QW5kUG9ydChDb2RlUG9p
bnRJdGVyYXRvcjxDaGFyYWN0ZXJUeXBlPihhdXRob3JpdHlPckhvc3RCZWdpbiwgYykpKQogICAg
ICAgICAgICAgcmV0dXJuIGZhaWx1cmUoaW5wdXQsIGxlbmd0aCk7CiAKICAgICAgICAgaWYgKFN0
cmluZ1ZpZXcobV9hc2NpaUJ1ZmZlci5kYXRhKCkgKyBtX3VybC5tX3Bhc3N3b3JkRW5kLCBtX2Fz
Y2lpQnVmZmVyLnNpemUoKSAtIG1fdXJsLm1fcGFzc3dvcmRFbmQpID09ICJsb2NhbGhvc3QiKSAg
ewpAQCAtMTY1NCw3ICsxNjMxLDcgQEAgVVJMIFVSTFBhcnNlcjo6cGFyc2UoY29uc3QgQ2hhcmFj
dGVyVHlwZQogICAgIHJldHVybiBtX3VybDsKIH0KIAotdGVtcGxhdGU8Ym9vbCBzZXJpYWxpemVk
LCB0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPgordGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlw
ZT4KIHZvaWQgVVJMUGFyc2VyOjpwYXJzZUF1dGhvcml0eShDb2RlUG9pbnRJdGVyYXRvcjxDaGFy
YWN0ZXJUeXBlPiBpdGVyYXRvcikKIHsKICAgICBpZiAoaXRlcmF0b3IuYXRFbmQoKSkgewpAQCAt
MTY3NSwxMCArMTY1MiwxMCBAQCB2b2lkIFVSTFBhcnNlcjo6cGFyc2VBdXRob3JpdHkoQ29kZVBv
aW50CiAgICAgICAgICAgICBtX2FzY2lpQnVmZmVyLmFwcGVuZCgnOicpOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgdXRmOFBlcmNlbnRFbmNvZGU8c2VyaWFsaXplZD4o
Kml0ZXJhdG9yLCBtX2FzY2lpQnVmZmVyLCBpc0luVXNlckluZm9FbmNvZGVTZXQpOworICAgICAg
ICB1dGY4UGVyY2VudEVuY29kZSgqaXRlcmF0b3IsIG1fYXNjaWlCdWZmZXIsIGlzSW5Vc2VySW5m
b0VuY29kZVNldCk7CiAgICAgfQogICAgIGZvciAoOyAhaXRlcmF0b3IuYXRFbmQoKTsgKytpdGVy
YXRvcikKLSAgICAgICAgdXRmOFBlcmNlbnRFbmNvZGU8c2VyaWFsaXplZD4oKml0ZXJhdG9yLCBt
X2FzY2lpQnVmZmVyLCBpc0luVXNlckluZm9FbmNvZGVTZXQpOworICAgICAgICB1dGY4UGVyY2Vu
dEVuY29kZSgqaXRlcmF0b3IsIG1fYXNjaWlCdWZmZXIsIGlzSW5Vc2VySW5mb0VuY29kZVNldCk7
CiAgICAgbV91cmwubV9wYXNzd29yZEVuZCA9IG1fYXNjaWlCdWZmZXIuc2l6ZSgpOwogICAgIGlm
ICghbV91cmwubV91c2VyRW5kKQogICAgICAgICBtX3VybC5tX3VzZXJFbmQgPSBtX3VybC5tX3Bh
c3N3b3JkRW5kOwpAQCAtMjA1Niw3ICsyMDMzLDcgQEAgaW5saW5lIHN0YXRpYyBib29sIGhhc0lu
dmFsaWREb21haW5DaGFyYQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdGVtcGxhdGU8Ym9vbCBz
ZXJpYWxpemVkLCB0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPgordGVtcGxhdGU8dHlwZW5hbWUgQ2hh
cmFjdGVyVHlwZT4KIGJvb2wgVVJMUGFyc2VyOjpwYXJzZVBvcnQoQ29kZVBvaW50SXRlcmF0b3I8
Q2hhcmFjdGVyVHlwZT4mIGl0ZXJhdG9yKQogewogICAgIHVpbnQzMl90IHBvcnQgPSAwOwpAQCAt
MjA2Niw3ICsyMDQzLDcgQEAgYm9vbCBVUkxQYXJzZXI6OnBhcnNlUG9ydChDb2RlUG9pbnRJdGVy
YQogICAgIH0KICAgICBtX2FzY2lpQnVmZmVyLmFwcGVuZCgnOicpOwogICAgIGZvciAoOyAhaXRl
cmF0b3IuYXRFbmQoKTsgKytpdGVyYXRvcikgewotICAgICAgICBpZiAoIXNlcmlhbGl6ZWQgJiYg
aXNUYWJPck5ld2xpbmUoKml0ZXJhdG9yKSkKKyAgICAgICAgaWYgKGlzVGFiT3JOZXdsaW5lKCpp
dGVyYXRvcikpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgaWYgKGlzQVNDSUlEaWdp
dCgqaXRlcmF0b3IpKSB7CiAgICAgICAgICAgICBwb3J0ID0gcG9ydCAqIDEwICsgKml0ZXJhdG9y
IC0gJzAnOwpAQCAtMjA4Niw3ICsyMDYzLDcgQEAgYm9vbCBVUkxQYXJzZXI6OnBhcnNlUG9ydChD
b2RlUG9pbnRJdGVyYQogICAgIHJldHVybiB0cnVlOwogfQogCi10ZW1wbGF0ZTxib29sIHNlcmlh
bGl6ZWQsIHR5cGVuYW1lIENoYXJhY3RlclR5cGU+Cit0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0
ZXJUeXBlPgogYm9vbCBVUkxQYXJzZXI6OnBhcnNlSG9zdEFuZFBvcnQoQ29kZVBvaW50SXRlcmF0
b3I8Q2hhcmFjdGVyVHlwZT4gaXRlcmF0b3IpCiB7CiAgICAgaWYgKGl0ZXJhdG9yLmF0RW5kKCkp
CkBAIC0yMTAzLDcgKzIwODAsNyBAQCBib29sIFVSTFBhcnNlcjo6cGFyc2VIb3N0QW5kUG9ydChD
b2RlUG9pCiAgICAgICAgICAgICAgICAgKytpcHY2RW5kOwogICAgICAgICAgICAgICAgIGlmICgh
aXB2NkVuZC5hdEVuZCgpICYmICppcHY2RW5kID09ICc6JykgewogICAgICAgICAgICAgICAgICAg
ICArK2lwdjZFbmQ7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZVBvcnQ8c2VyaWFs
aXplZD4oaXB2NkVuZCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZVBvcnQoaXB2
NkVuZCk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIG1fdXJsLm1fcG9ydEVu
ZCA9IG1fYXNjaWlCdWZmZXIuc2l6ZSgpOwogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwpA
QCAtMjExMiwxMSArMjA4OSwxMCBAQCBib29sIFVSTFBhcnNlcjo6cGFyc2VIb3N0QW5kUG9ydChD
b2RlUG9pCiAgICAgICAgIH0KICAgICB9CiAgICAgCi0gICAgQVNTRVJUKCFzZXJpYWxpemVkIHx8
ICFtX2hvc3RIYXNQZXJjZW50T3JOb25BU0NJSSk7CiAgICAgaWYgKCFtX2hvc3RIYXNQZXJjZW50
T3JOb25BU0NJSSkgewogICAgICAgICBhdXRvIGhvc3RJdGVyYXRvciA9IGl0ZXJhdG9yOwogICAg
ICAgICBmb3IgKDsgIWl0ZXJhdG9yLmF0RW5kKCk7ICsraXRlcmF0b3IpIHsKLSAgICAgICAgICAg
IGlmICghc2VyaWFsaXplZCAmJiBpc1RhYk9yTmV3bGluZSgqaXRlcmF0b3IpKQorICAgICAgICAg
ICAgaWYgKGlzVGFiT3JOZXdsaW5lKCppdGVyYXRvcikpCiAgICAgICAgICAgICAgICAgY29udGlu
dWU7CiAgICAgICAgICAgICBpZiAoKml0ZXJhdG9yID09ICc6JykKICAgICAgICAgICAgICAgICBi
cmVhazsKQEAgLTIxMzEsMjAgKzIxMDcsMTcgQEAgYm9vbCBVUkxQYXJzZXI6OnBhcnNlSG9zdEFu
ZFBvcnQoQ29kZVBvaQogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAg
fQogICAgICAgICAgICAgKytpdGVyYXRvcjsKLSAgICAgICAgICAgIHJldHVybiBwYXJzZVBvcnQ8
c2VyaWFsaXplZD4oaXRlcmF0b3IpOworICAgICAgICAgICAgcmV0dXJuIHBhcnNlUG9ydChpdGVy
YXRvcik7CiAgICAgICAgIH0KICAgICAgICAgZm9yICg7IGhvc3RJdGVyYXRvciAhPSBpdGVyYXRv
cjsgKytob3N0SXRlcmF0b3IpIHsKLSAgICAgICAgICAgIGlmIChzZXJpYWxpemVkKSB7Ci0gICAg
ICAgICAgICAgICAgQVNTRVJUKCFpc0FTQ0lJVXBwZXIoKmhvc3RJdGVyYXRvcikpOwotICAgICAg
ICAgICAgICAgIG1fYXNjaWlCdWZmZXIuYXBwZW5kKCpob3N0SXRlcmF0b3IpOwotICAgICAgICAg
ICAgfSBlbHNlIGlmICghaXNUYWJPck5ld2xpbmUoKmhvc3RJdGVyYXRvcikpCisgICAgICAgICAg
ICBpZiAoIWlzVGFiT3JOZXdsaW5lKCpob3N0SXRlcmF0b3IpKQogICAgICAgICAgICAgICAgIG1f
YXNjaWlCdWZmZXIuYXBwZW5kKHRvQVNDSUlMb3dlcigqaG9zdEl0ZXJhdG9yKSk7CiAgICAgICAg
IH0KICAgICAgICAgbV91cmwubV9ob3N0RW5kID0gbV9hc2NpaUJ1ZmZlci5zaXplKCk7CiAgICAg
ICAgIGlmICghaG9zdEl0ZXJhdG9yLmF0RW5kKCkpIHsKICAgICAgICAgICAgIEFTU0VSVCgqaG9z
dEl0ZXJhdG9yID09ICc6Jyk7Ci0gICAgICAgICAgICBpbmNyZW1lbnRJdGVyYXRvclNraXBwaW5n
VGFiQW5kTmV3TGluZTxzZXJpYWxpemVkPihob3N0SXRlcmF0b3IpOwotICAgICAgICAgICAgcmV0
dXJuIHBhcnNlUG9ydDxzZXJpYWxpemVkPihob3N0SXRlcmF0b3IpOworICAgICAgICAgICAgaW5j
cmVtZW50SXRlcmF0b3JTa2lwcGluZ1RhYkFuZE5ld0xpbmUoaG9zdEl0ZXJhdG9yKTsKKyAgICAg
ICAgICAgIHJldHVybiBwYXJzZVBvcnQoaG9zdEl0ZXJhdG9yKTsKICAgICAgICAgfQogICAgICAg
ICBtX3VybC5tX3BvcnRFbmQgPSBtX2FzY2lpQnVmZmVyLnNpemUoKTsKICAgICAgICAgcmV0dXJu
IHRydWU7CkBAIC0yMTUyLDcgKzIxMjUsNyBAQCBib29sIFVSTFBhcnNlcjo6cGFyc2VIb3N0QW5k
UG9ydChDb2RlUG9pCiAgICAgCiAgICAgVmVjdG9yPExDaGFyLCBkZWZhdWx0SW5saW5lQnVmZmVy
U2l6ZT4gdXRmOEVuY29kZWQ7CiAgICAgZm9yICg7ICFpdGVyYXRvci5hdEVuZCgpOyArK2l0ZXJh
dG9yKSB7Ci0gICAgICAgIGlmICghc2VyaWFsaXplZCAmJiBpc1RhYk9yTmV3bGluZSgqaXRlcmF0
b3IpKQorICAgICAgICBpZiAoaXNUYWJPck5ld2xpbmUoKml0ZXJhdG9yKSkKICAgICAgICAgICAg
IGNvbnRpbnVlOwogICAgICAgICBpZiAoKml0ZXJhdG9yID09ICc6JykKICAgICAgICAgICAgIGJy
ZWFrOwpAQCAtMjE4MCwxNSArMjE1MywxNSBAQCBib29sIFVSTFBhcnNlcjo6cGFyc2VIb3N0QW5k
UG9ydChDb2RlUG9pCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgICAg
ICArK2l0ZXJhdG9yOwotICAgICAgICByZXR1cm4gcGFyc2VQb3J0PHNlcmlhbGl6ZWQ+KGl0ZXJh
dG9yKTsKKyAgICAgICAgcmV0dXJuIHBhcnNlUG9ydChpdGVyYXRvcik7CiAgICAgfQogCiAgICAg
bV9hc2NpaUJ1ZmZlci5hcHBlbmQoYXNjaWlEb21haW5DaGFyYWN0ZXJzLCBhc2NpaURvbWFpblZh
bHVlLnNpemUoKSk7CiAgICAgbV91cmwubV9ob3N0RW5kID0gbV9hc2NpaUJ1ZmZlci5zaXplKCk7
CiAgICAgaWYgKCFpdGVyYXRvci5hdEVuZCgpKSB7CiAgICAgICAgIEFTU0VSVCgqaXRlcmF0b3Ig
PT0gJzonKTsKLSAgICAgICAgaW5jcmVtZW50SXRlcmF0b3JTa2lwcGluZ1RhYkFuZE5ld0xpbmU8
c2VyaWFsaXplZD4oaXRlcmF0b3IpOwotICAgICAgICByZXR1cm4gcGFyc2VQb3J0PHNlcmlhbGl6
ZWQ+KGl0ZXJhdG9yKTsKKyAgICAgICAgaW5jcmVtZW50SXRlcmF0b3JTa2lwcGluZ1RhYkFuZE5l
d0xpbmUoaXRlcmF0b3IpOworICAgICAgICByZXR1cm4gcGFyc2VQb3J0KGl0ZXJhdG9yKTsKICAg
ICB9CiAgICAgbV91cmwubV9wb3J0RW5kID0gbV9hc2NpaUJ1ZmZlci5zaXplKCk7CiAgICAgcmV0
dXJuIHRydWU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkxQYXJzZXIuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkxQYXJzZXIuaAkocmV2aXNpb24g
MjA2MTk2KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMUGFyc2VyLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTM3LDcgKzM3LDYgQEAgdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4g
Y2xhc3MgQwogY2xhc3MgVVJMUGFyc2VyIHsKIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBV
UkwgcGFyc2UoY29uc3QgU3RyaW5nJiwgY29uc3QgVVJMJiA9IHsgfSwgY29uc3QgVGV4dEVuY29k
aW5nJiA9IFVURjhFbmNvZGluZygpKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBVUkwgcGFyc2VTZXJp
YWxpemVkVVJMKGNvbnN0IFN0cmluZyYpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJv
b2wgYWxsVmFsdWVzRXF1YWwoY29uc3QgVVJMJiwgY29uc3QgVVJMJik7CiAgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIGJvb2wgaW50ZXJuYWxWYWx1ZXNDb25zaXN0ZW50KGNvbnN0IFVSTCYpOwpA
QCAtNTYsMTAgKzU1LDEwIEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3VybElzU3BlY2lhbCB7IGZh
bHNlIH07CiAgICAgYm9vbCBtX2hvc3RIYXNQZXJjZW50T3JOb25BU0NJSSB7IGZhbHNlIH07CiAK
LSAgICB0ZW1wbGF0ZTxib29sIHNlcmlhbGl6ZWQsIHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IFVS
TCBwYXJzZShjb25zdCBDaGFyYWN0ZXJUeXBlKiwgY29uc3QgdW5zaWduZWQgbGVuZ3RoLCBjb25z
dCBVUkwmLCBjb25zdCBUZXh0RW5jb2RpbmcmKTsKLSAgICB0ZW1wbGF0ZTxib29sIHNlcmlhbGl6
ZWQsIHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IHZvaWQgcGFyc2VBdXRob3JpdHkoQ29kZVBvaW50
SXRlcmF0b3I8Q2hhcmFjdGVyVHlwZT4pOwotICAgIHRlbXBsYXRlPGJvb2wgc2VyaWFsaXplZCwg
dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4gYm9vbCBwYXJzZUhvc3RBbmRQb3J0KENvZGVQb2ludEl0
ZXJhdG9yPENoYXJhY3RlclR5cGU+KTsKLSAgICB0ZW1wbGF0ZTxib29sIHNlcmlhbGl6ZWQsIHR5
cGVuYW1lIENoYXJhY3RlclR5cGU+IGJvb2wgcGFyc2VQb3J0KENvZGVQb2ludEl0ZXJhdG9yPENo
YXJhY3RlclR5cGU+Jik7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4gVVJM
IHBhcnNlKGNvbnN0IENoYXJhY3RlclR5cGUqLCBjb25zdCB1bnNpZ25lZCBsZW5ndGgsIGNvbnN0
IFVSTCYsIGNvbnN0IFRleHRFbmNvZGluZyYpOworICAgIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJh
Y3RlclR5cGU+IHZvaWQgcGFyc2VBdXRob3JpdHkoQ29kZVBvaW50SXRlcmF0b3I8Q2hhcmFjdGVy
VHlwZT4pOworICAgIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IGJvb2wgcGFyc2VI
b3N0QW5kUG9ydChDb2RlUG9pbnRJdGVyYXRvcjxDaGFyYWN0ZXJUeXBlPik7CisgICAgdGVtcGxh
dGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4gYm9vbCBwYXJzZVBvcnQoQ29kZVBvaW50SXRlcmF0
b3I8Q2hhcmFjdGVyVHlwZT4mKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBl
PiBVUkwgZmFpbHVyZShjb25zdCBDaGFyYWN0ZXJUeXBlKiwgdW5zaWduZWQgbGVuZ3RoKTsKIAog
ICAgIGVudW0gY2xhc3MgVVJMUGFydDsK
</data>
<flag name="review"
          id="312893"
          type_id="1"
          status="+"
          setter="beidson"
    />
    <flag name="commit-queue"
          id="312894"
          type_id="3"
          status="-"
          setter="beidson"
    />
          </attachment>
      

    </bug>

</bugzilla>