<?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>135415</bug_id>
          
          <creation_ts>2014-07-30 02:53:49 -0700</creation_ts>
          <short_desc>Rename &apos;result&apos; character-position pointers to &apos;current&apos; in CSSParser</short_desc>
          <delta_ts>2015-05-11 03:38:37 -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>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</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="Martin Hodovan">mhodovan.u-szeged</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>darin</cc>
    
    <cc>ossy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1025694</commentid>
    <comment_count>0</comment_count>
    <who name="Martin Hodovan">mhodovan.u-szeged</who>
    <bug_when>2014-07-30 02:53:49 -0700</bug_when>
    <thetext>Using the names &apos;result&apos; and &apos;dest&apos; for a pointer to the next character to be parsed
is confusing in this context. This should be replaced with the name &apos;current&apos;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1025696</commentid>
    <comment_count>1</comment_count>
      <attachid>235739</attachid>
    <who name="Martin Hodovan">mhodovan.u-szeged</who>
    <bug_when>2014-07-30 03:00:49 -0700</bug_when>
    <thetext>Created attachment 235739
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1025734</commentid>
    <comment_count>2</comment_count>
      <attachid>235739</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-07-30 10:43:41 -0700</bug_when>
    <thetext>Comment on attachment 235739
Proposed patch

I don’t think this is an improvement. In a function that both reads and writes, it’s confusing to have a variable named “current” that is the pointer to the next place to write. Sounds like it could be the next byte to read too. So result may be bad, but I don’t think current is better, at least in some of these functions.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>235739</attachid>
            <date>2014-07-30 03:00:49 -0700</date>
            <delta_ts>2015-05-11 03:38:37 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>0001-rename-result-pointers-to-current.patch</filename>
            <type>text/plain</type>
            <size>20320</size>
            <attacher name="Martin Hodovan">mhodovan.u-szeged</attacher>
            
              <data encoding="base64">RnJvbSA1MjIyMzAwOTBlMjZmYTQzNzI0OGFiMGFhMDQ3ODkxMjEzYmQ1MTYxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBtYXJ0aW4gPG1ob2RvdmFuLnUtc3plZ2VkQHBhcnRuZXIuc2Ft
c3VuZy5jb20+CkRhdGU6IFdlZCwgMzAgSnVsIDIwMTQgMTE6NTc6MzYgKzAyMDAKU3ViamVjdDog
W1BBVENIXSByZW5hbWUtcmVzdWx0LXBvaW50ZXJzLXRvLWN1cnJlbnQKCi0tLQogU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nICAgICAgICAgfCAgMjEgKysrKysrCiBTb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUGFyc2VyLmNwcCB8IDE1MSArKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0t
LS0KIDIgZmlsZXMgY2hhbmdlZCwgOTcgaW5zZXJ0aW9ucygrKSwgNzUgZGVsZXRpb25zKC0pCgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IGFhNWRjZGIuLmIyNDEwYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBA
QAorMjAxNC0wNy0yOSAgTWFydGluIEhvZG92YW4gIDxtaG9kb3Zhbi51LXN6ZWdlZEBwYXJ0bmVy
LnNhbXN1bmcuY29tPgorCisgICAgICAgIFJlbmFtZSAncmVzdWx0JyBhbmQgJ2Rlc3QnIGNoYXJh
Y3Rlci1wb3NpdGlvbiBwb2ludGVycyB0byAnY3VycmVudCcgaW4gQ1NTUGFyc2VyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzU0MTUKKworICAgICAg
ICBVc2luZyB0aGUgbmFtZXMgJ3Jlc3VsdCcgYW5kICdkZXN0JyBmb3IgYSBwb2ludGVyIHRvIHRo
ZSBuZXh0IGNoYXJhY3RlciB0byBiZSBwYXJzZWQKKyAgICAgICAgaXMgY29uZnVzaW5nIGluIHRo
aXMgY29udGV4dC4gVGhpcyBwYXRjaCByZXBsYWNlcyBhbGwgb2NjdXJlbmNlcyB3aXRoICJjdXJy
ZW50Ii4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBO
byBjaGFuZ2UgaW4gZnVuY3Rpb25hbGl0eSwgbm8gbmV3IHRlc3RzLgorCisgICAgICAgICogY3Nz
L0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OlVuaWNvZGVUb0No
YXJzPExDaGFyPik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OlVuaWNvZGVUb0NoYXJz
PFVDaGFyPik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlSWRlbnRpZmllcklu
dGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VJZGVudGlmaWVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VTdHJpbmdJbnRlcm5hbCk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1BhcnNlcjo6cmVhbExleCk6CisKIDIwMTQtMDctMjggIFJhZHUgU3RhdmlsYSAgPHN0YXZp
bGFAYWRvYmUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIxNjkxMDUpOiBDcmFzaCBpbiBz
ZWxlY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXggNzVjOWJmOC4uYjQ3MTRmNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTEwMjM0LDM0ICsxMDIzNCwzNCBAQCB1bnNp
Z25lZCBDU1NQYXJzZXI6OnBhcnNlRXNjYXBlKENoYXJhY3RlclR5cGUqJiBzcmMpCiB9CiAKIHRl
bXBsYXRlIDw+Ci1pbmxpbmUgdm9pZCBDU1NQYXJzZXI6OlVuaWNvZGVUb0NoYXJzPExDaGFyPihM
Q2hhciomIHJlc3VsdCwgdW5zaWduZWQgdW5pY29kZSkKK2lubGluZSB2b2lkIENTU1BhcnNlcjo6
VW5pY29kZVRvQ2hhcnM8TENoYXI+KExDaGFyKiYgY3VycmVudCwgdW5zaWduZWQgdW5pY29kZSkK
IHsKICAgICBBU1NFUlQodW5pY29kZSA8PSAweGZmKTsKLSAgICAqcmVzdWx0ID0gdW5pY29kZTsK
KyAgICAqY3VycmVudCA9IHVuaWNvZGU7CiAKLSAgICArK3Jlc3VsdDsKKyAgICArK2N1cnJlbnQ7
CiB9CiAKIHRlbXBsYXRlIDw+Ci1pbmxpbmUgdm9pZCBDU1NQYXJzZXI6OlVuaWNvZGVUb0NoYXJz
PFVDaGFyPihVQ2hhciomIHJlc3VsdCwgdW5zaWduZWQgdW5pY29kZSkKK2lubGluZSB2b2lkIENT
U1BhcnNlcjo6VW5pY29kZVRvQ2hhcnM8VUNoYXI+KFVDaGFyKiYgY3VycmVudCwgdW5zaWduZWQg
dW5pY29kZSkKIHsKICAgICAvLyBSZXBsYWNlIHVuaWNvZGUgd2l0aCBhIHN1cnJvZ2F0ZSBwYWly
cyB3aGVuIGl0IGlzIGJpZ2dlciB0aGFuIDB4ZmZmZgogICAgIGlmIChVMTZfTEVOR1RIKHVuaWNv
ZGUpID09IDIpIHsKLSAgICAgICAgKnJlc3VsdCsrID0gVTE2X0xFQUQodW5pY29kZSk7Ci0gICAg
ICAgICpyZXN1bHQgPSBVMTZfVFJBSUwodW5pY29kZSk7CisgICAgICAgICpjdXJyZW50KysgPSBV
MTZfTEVBRCh1bmljb2RlKTsKKyAgICAgICAgKmN1cnJlbnQgPSBVMTZfVFJBSUwodW5pY29kZSk7
CiAgICAgfSBlbHNlCi0gICAgICAgICpyZXN1bHQgPSB1bmljb2RlOworICAgICAgICAqY3VycmVu
dCA9IHVuaWNvZGU7CiAKLSAgICArK3Jlc3VsdDsKKyAgICArK2N1cnJlbnQ7CiB9CiAKIHRlbXBs
YXRlIDx0eXBlbmFtZSBTcmNDaGFyYWN0ZXJUeXBlLCB0eXBlbmFtZSBEZXN0Q2hhcmFjdGVyVHlw
ZT4KLWlubGluZSBib29sIENTU1BhcnNlcjo6cGFyc2VJZGVudGlmaWVySW50ZXJuYWwoU3JjQ2hh
cmFjdGVyVHlwZSomIHNyYywgRGVzdENoYXJhY3RlclR5cGUqJiByZXN1bHQsIGJvb2wmIGhhc0Vz
Y2FwZSkKK2lubGluZSBib29sIENTU1BhcnNlcjo6cGFyc2VJZGVudGlmaWVySW50ZXJuYWwoU3Jj
Q2hhcmFjdGVyVHlwZSomIHNyYywgRGVzdENoYXJhY3RlclR5cGUqJiBjdXJyZW50LCBib29sJiBo
YXNFc2NhcGUpCiB7CiAgICAgaGFzRXNjYXBlID0gZmFsc2U7CiAgICAgZG8gewogICAgICAgICBp
ZiAoTElLRUxZKCpzcmMgIT0gJ1xcJykpCi0gICAgICAgICAgICAqcmVzdWx0KysgPSAqc3JjKys7
CisgICAgICAgICAgICAqY3VycmVudCsrID0gKnNyYysrOwogICAgICAgICBlbHNlIHsKICAgICAg
ICAgICAgIGhhc0VzY2FwZSA9IHRydWU7CiAgICAgICAgICAgICBTcmNDaGFyYWN0ZXJUeXBlKiBz
YXZlZEVzY2FwZVN0YXJ0ID0gc3JjOwpAQCAtMTAyNzAsNyArMTAyNzAsNyBAQCBpbmxpbmUgYm9v
bCBDU1NQYXJzZXI6OnBhcnNlSWRlbnRpZmllckludGVybmFsKFNyY0NoYXJhY3RlclR5cGUqJiBz
cmMsIERlc3RDaGFyYQogICAgICAgICAgICAgICAgIHNyYyA9IHNhdmVkRXNjYXBlU3RhcnQ7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgfQotICAgICAgICAgICAg
VW5pY29kZVRvQ2hhcnMocmVzdWx0LCB1bmljb2RlKTsKKyAgICAgICAgICAgIFVuaWNvZGVUb0No
YXJzKGN1cnJlbnQsIHVuaWNvZGUpOwogICAgICAgICB9CiAgICAgfSB3aGlsZSAoaXNDU1NMZXR0
ZXIoc3JjWzBdKSB8fCAoc3JjWzBdID09ICdcXCcgJiYgaXNDU1NFc2NhcGUoc3JjWzFdKSkpOwog
CkBAIC0xMDI3OCwzNiArMTAyNzgsMzcgQEAgaW5saW5lIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZUlk
ZW50aWZpZXJJbnRlcm5hbChTcmNDaGFyYWN0ZXJUeXBlKiYgc3JjLCBEZXN0Q2hhcmEKIH0KIAog
dGVtcGxhdGUgPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+Ci1pbmxpbmUgdm9pZCBDU1NQYXJzZXI6
OnBhcnNlSWRlbnRpZmllcihDaGFyYWN0ZXJUeXBlKiYgcmVzdWx0LCBDU1NQYXJzZXJTdHJpbmcm
IHJlc3VsdFN0cmluZywgYm9vbCYgaGFzRXNjYXBlKQoraW5saW5lIHZvaWQgQ1NTUGFyc2VyOjpw
YXJzZUlkZW50aWZpZXIoQ2hhcmFjdGVyVHlwZSomIGN1cnJlbnQsIENTU1BhcnNlclN0cmluZyYg
cmVzdWx0U3RyaW5nLCBib29sJiBoYXNFc2NhcGUpCiB7CiAgICAgLy8gSWYgYSB2YWxpZCBpZGVu
dGlmaWVyIHN0YXJ0IGlzIGZvdW5kLCB3ZSBjYW4gc2FmZWx5CiAgICAgLy8gcGFyc2UgdGhlIGlk
ZW50aWZpZXIgdW50aWwgdGhlIG5leHQgaW52YWxpZCBjaGFyYWN0ZXIuCiAgICAgQVNTRVJUKGlz
SWRlbnRpZmllclN0YXJ0PENoYXJhY3RlclR5cGU+KCkpOwogCiAgICAgQ2hhcmFjdGVyVHlwZSog
c3RhcnQgPSBjdXJyZW50Q2hhcmFjdGVyPENoYXJhY3RlclR5cGU+KCk7Ci0gICAgaWYgKFVOTElL
RUxZKCFwYXJzZUlkZW50aWZpZXJJbnRlcm5hbChjdXJyZW50Q2hhcmFjdGVyPENoYXJhY3RlclR5
cGU+KCksIHJlc3VsdCwgaGFzRXNjYXBlKSkpIHsKKyAgICBpZiAoVU5MSUtFTFkoIXBhcnNlSWRl
bnRpZmllckludGVybmFsKGN1cnJlbnRDaGFyYWN0ZXI8Q2hhcmFjdGVyVHlwZT4oKSwgY3VycmVu
dCwgaGFzRXNjYXBlKSkpIHsKICAgICAgICAgLy8gRm91bmQgYW4gZXNjYXBlIHdlIGNvdWxkbid0
IGhhbmRsZSB3aXRoIDggYml0cywgY29weSB3aGF0IGhhcyBiZWVuIHJlY29nbml6ZWQgYW5kIGNv
bnRpbnVlCiAgICAgICAgIEFTU0VSVChpczhCaXRTb3VyY2UoKSk7Ci0gICAgICAgIFVDaGFyKiYg
cmVzdWx0MTYgPSBjdXJyZW50Q2hhcmFjdGVyMTYoKTsKLSAgICAgICAgVUNoYXIqIHN0YXJ0MTYg
PSByZXN1bHQxNjsKKyAgICAgICAgVUNoYXIqJiBjdXJyZW50MTYgPSBjdXJyZW50Q2hhcmFjdGVy
MTYoKTsKKyAgICAgICAgVUNoYXIqIHN0YXJ0MTYgPSBjdXJyZW50MTY7CiAgICAgICAgIGludCBp
ID0gMDsKLSAgICAgICAgZm9yICg7IGkgPCByZXN1bHQgLSBzdGFydDsgaSsrKQotICAgICAgICAg
ICAgcmVzdWx0MTZbaV0gPSBzdGFydFtpXTsKKyAgICAgICAgZm9yICg7IGkgPCBjdXJyZW50IC0g
c3RhcnQ7IGkrKykKKyAgICAgICAgICAgIGN1cnJlbnQxNltpXSA9IHN0YXJ0W2ldOwogCi0gICAg
ICAgIHJlc3VsdDE2ICs9IGk7CisgICAgICAgIGN1cnJlbnQxNiArPSBpOwogCi0gICAgICAgIHBh
cnNlSWRlbnRpZmllckludGVybmFsKGN1cnJlbnRDaGFyYWN0ZXI8Q2hhcmFjdGVyVHlwZT4oKSwg
cmVzdWx0MTYsIGhhc0VzY2FwZSk7Ci0KLSAgICAgICAgcmVzdWx0U3RyaW5nLmluaXQoc3RhcnQx
NiwgcmVzdWx0MTYgLSBzdGFydDE2KTsKKyAgICAgICAgcGFyc2VJZGVudGlmaWVySW50ZXJuYWwo
Y3VycmVudENoYXJhY3RlcjxDaGFyYWN0ZXJUeXBlPigpLCBjdXJyZW50MTYsIGhhc0VzY2FwZSk7
CisgICAgICAgIAorICAgICAgICBjdXJyZW50ICs9IGN1cnJlbnQxNiAtIHN0YXJ0MTY7CisgICAg
ICAgIHJlc3VsdFN0cmluZy5pbml0KHN0YXJ0MTYsIGN1cnJlbnQxNiAtIHN0YXJ0MTYpOwogCiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICByZXN1bHRTdHJpbmcuaW5pdChzdGFydCwgcmVz
dWx0IC0gc3RhcnQpOworICAgIHJlc3VsdFN0cmluZy5pbml0KHN0YXJ0LCBjdXJyZW50IC0gc3Rh
cnQpOwogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgU3JjQ2hhcmFjdGVyVHlwZSwgdHlwZW5hbWUg
RGVzdENoYXJhY3RlclR5cGU+Ci1pbmxpbmUgYm9vbCBDU1NQYXJzZXI6OnBhcnNlU3RyaW5nSW50
ZXJuYWwoU3JjQ2hhcmFjdGVyVHlwZSomIHNyYywgRGVzdENoYXJhY3RlclR5cGUqJiByZXN1bHQs
IFVDaGFyIHF1b3RlKQoraW5saW5lIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVN0cmluZ0ludGVybmFs
KFNyY0NoYXJhY3RlclR5cGUqJiBzcmMsIERlc3RDaGFyYWN0ZXJUeXBlKiYgY3VycmVudCwgVUNo
YXIgcXVvdGUpCiB7CiAgICAgd2hpbGUgKHRydWUpIHsKICAgICAgICAgaWYgKFVOTElLRUxZKCpz
cmMgPT0gcXVvdGUpKSB7CkBAIC0xMDMyMiw3ICsxMDMyMyw3IEBAIGlubGluZSBib29sIENTU1Bh
cnNlcjo6cGFyc2VTdHJpbmdJbnRlcm5hbChTcmNDaGFyYWN0ZXJUeXBlKiYgc3JjLCBEZXN0Q2hh
cmFjdGVyCiAgICAgICAgIEFTU0VSVCgqc3JjID4gJ1xyJyB8fCAoKnNyYyA8ICdcbicgJiYgKnNy
YykgfHwgKnNyYyA9PSAnXHYnKTsKIAogICAgICAgICBpZiAoTElLRUxZKHNyY1swXSAhPSAnXFwn
KSkKLSAgICAgICAgICAgICpyZXN1bHQrKyA9ICpzcmMrKzsKKyAgICAgICAgICAgICpjdXJyZW50
KysgPSAqc3JjKys7CiAgICAgICAgIGVsc2UgaWYgKHNyY1sxXSA9PSAnXG4nIHx8IHNyY1sxXSA9
PSAnXGYnKQogICAgICAgICAgICAgc3JjICs9IDI7CiAgICAgICAgIGVsc2UgaWYgKHNyY1sxXSA9
PSAnXHInKQpAQCAtMTAzMzQsNyArMTAzMzUsNyBAQCBpbmxpbmUgYm9vbCBDU1NQYXJzZXI6OnBh
cnNlU3RyaW5nSW50ZXJuYWwoU3JjQ2hhcmFjdGVyVHlwZSomIHNyYywgRGVzdENoYXJhY3Rlcgog
ICAgICAgICAgICAgICAgIHNyYyA9IHNhdmVkRXNjYXBlU3RhcnQ7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgVW5pY29kZVRvQ2hhcnMo
cmVzdWx0LCB1bmljb2RlKTsKKyAgICAgICAgICAgIFVuaWNvZGVUb0NoYXJzKGN1cnJlbnQsIHVu
aWNvZGUpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0xMDM0MiwyOCArMTAzNDMsMjggQEAgaW5s
aW5lIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVN0cmluZ0ludGVybmFsKFNyY0NoYXJhY3RlclR5cGUq
JiBzcmMsIERlc3RDaGFyYWN0ZXIKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1lIENoYXJhY3RlclR5
cGU+Ci1pbmxpbmUgdm9pZCBDU1NQYXJzZXI6OnBhcnNlU3RyaW5nKENoYXJhY3RlclR5cGUqJiBy
ZXN1bHQsIENTU1BhcnNlclN0cmluZyYgcmVzdWx0U3RyaW5nLCBVQ2hhciBxdW90ZSkKK2lubGlu
ZSB2b2lkIENTU1BhcnNlcjo6cGFyc2VTdHJpbmcoQ2hhcmFjdGVyVHlwZSomIGN1cnJlbnQsIENT
U1BhcnNlclN0cmluZyYgcmVzdWx0U3RyaW5nLCBVQ2hhciBxdW90ZSkKIHsKICAgICBDaGFyYWN0
ZXJUeXBlKiBzdGFydCA9IGN1cnJlbnRDaGFyYWN0ZXI8Q2hhcmFjdGVyVHlwZT4oKTsKIAotICAg
IGlmIChVTkxJS0VMWSghcGFyc2VTdHJpbmdJbnRlcm5hbChjdXJyZW50Q2hhcmFjdGVyPENoYXJh
Y3RlclR5cGU+KCksIHJlc3VsdCwgcXVvdGUpKSkgeworICAgIGlmIChVTkxJS0VMWSghcGFyc2VT
dHJpbmdJbnRlcm5hbChjdXJyZW50Q2hhcmFjdGVyPENoYXJhY3RlclR5cGU+KCksIGN1cnJlbnQs
IHF1b3RlKSkpIHsKICAgICAgICAgLy8gRm91bmQgYW4gZXNjYXBlIHdlIGNvdWxkbid0IGhhbmRs
ZSB3aXRoIDggYml0cywgY29weSB3aGF0IGhhcyBiZWVuIHJlY29nbml6ZWQgYW5kIGNvbnRpbnVl
CiAgICAgICAgIEFTU0VSVChpczhCaXRTb3VyY2UoKSk7Ci0gICAgICAgIFVDaGFyKiYgcmVzdWx0
MTYgPSBjdXJyZW50Q2hhcmFjdGVyMTYoKTsKLSAgICAgICAgVUNoYXIqIHN0YXJ0MTYgPSByZXN1
bHQxNjsKKyAgICAgICAgVUNoYXIqJiBjdXJyZW50MTYgPSBjdXJyZW50Q2hhcmFjdGVyMTYoKTsK
KyAgICAgICAgVUNoYXIqIHN0YXJ0MTYgPSBjdXJyZW50MTY7CiAgICAgICAgIGludCBpID0gMDsK
LSAgICAgICAgZm9yICg7IGkgPCByZXN1bHQgLSBzdGFydDsgaSsrKQotICAgICAgICAgICAgcmVz
dWx0MTZbaV0gPSBzdGFydFtpXTsKKyAgICAgICAgZm9yICg7IGkgPCBjdXJyZW50IC0gc3RhcnQ7
IGkrKykKKyAgICAgICAgICAgIGN1cnJlbnQxNltpXSA9IHN0YXJ0W2ldOwogCi0gICAgICAgIHJl
c3VsdDE2ICs9IGk7CisgICAgICAgIGN1cnJlbnQxNiArPSBpOwogCi0gICAgICAgIHBhcnNlU3Ry
aW5nSW50ZXJuYWwoY3VycmVudENoYXJhY3RlcjxDaGFyYWN0ZXJUeXBlPigpLCByZXN1bHQxNiwg
cXVvdGUpOworICAgICAgICBwYXJzZVN0cmluZ0ludGVybmFsKGN1cnJlbnRDaGFyYWN0ZXI8Q2hh
cmFjdGVyVHlwZT4oKSwgY3VycmVudDE2LCBxdW90ZSk7CiAKLSAgICAgICAgcmVzdWx0U3RyaW5n
LmluaXQoc3RhcnQxNiwgcmVzdWx0MTYgLSBzdGFydDE2KTsKKyAgICAgICAgcmVzdWx0U3RyaW5n
LmluaXQoc3RhcnQxNiwgY3VycmVudDE2IC0gc3RhcnQxNik7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICByZXN1bHRTdHJpbmcuaW5pdChzdGFydCwgcmVzdWx0IC0gc3RhcnQpOworICAg
IHJlc3VsdFN0cmluZy5pbml0KHN0YXJ0LCBjdXJyZW50IC0gc3RhcnQpOwogfQogCiB0ZW1wbGF0
ZSA8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4KQEAgLTEwMzk4LDIxICsxMDM5OSwyMSBAQCBpbmxp
bmUgYm9vbCBDU1NQYXJzZXI6OmZpbmRVUkkoQ2hhcmFjdGVyVHlwZSomIHN0YXJ0LCBDaGFyYWN0
ZXJUeXBlKiYgZW5kLCBVQ2hhcgogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgU3JjQ2hhcmFjdGVy
VHlwZSwgdHlwZW5hbWUgRGVzdENoYXJhY3RlclR5cGU+Ci1pbmxpbmUgYm9vbCBDU1NQYXJzZXI6
OnBhcnNlVVJJSW50ZXJuYWwoU3JjQ2hhcmFjdGVyVHlwZSomIHNyYywgRGVzdENoYXJhY3RlclR5
cGUqJiBkZXN0LCBVQ2hhciBxdW90ZSkKK2lubGluZSBib29sIENTU1BhcnNlcjo6cGFyc2VVUklJ
bnRlcm5hbChTcmNDaGFyYWN0ZXJUeXBlKiYgc3JjLCBEZXN0Q2hhcmFjdGVyVHlwZSomIGN1cnJl
bnQsIFVDaGFyIHF1b3RlKQogewogICAgIGlmIChxdW90ZSkgewogICAgICAgICBBU1NFUlQocXVv
dGUgPT0gJyInIHx8IHF1b3RlID09ICdcJycpOwotICAgICAgICByZXR1cm4gcGFyc2VTdHJpbmdJ
bnRlcm5hbChzcmMsIGRlc3QsIHF1b3RlKTsKKyAgICAgICAgcmV0dXJuIHBhcnNlU3RyaW5nSW50
ZXJuYWwoc3JjLCBjdXJyZW50LCBxdW90ZSk7CiAgICAgfQogICAgIAogICAgIHdoaWxlIChpc1VS
SUxldHRlcigqc3JjKSkgewogICAgICAgICBpZiAoTElLRUxZKCpzcmMgIT0gJ1xcJykpCi0gICAg
ICAgICAgICAqZGVzdCsrID0gKnNyYysrOworICAgICAgICAgICAgKmN1cnJlbnQrKyA9ICpzcmMr
KzsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICB1bnNpZ25lZCB1bmljb2RlID0gcGFyc2VF
c2NhcGU8U3JjQ2hhcmFjdGVyVHlwZT4oc3JjKTsKICAgICAgICAgICAgIGlmICh1bmljb2RlID4g
MHhmZiAmJiBzaXplb2YoU3JjQ2hhcmFjdGVyVHlwZSkgPT0gMSkKICAgICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICBVbmljb2RlVG9DaGFycyhkZXN0LCB1bmljb2RlKTsK
KyAgICAgICAgICAgIFVuaWNvZGVUb0NoYXJzKGN1cnJlbnQsIHVuaWNvZGUpOwogICAgICAgICB9
CiAgICAgfQogCkBAIC0xMDQyOCw5ICsxMDQyOSw5IEBAIGlubGluZSB2b2lkIENTU1BhcnNlcjo6
cGFyc2VVUkkoQ1NTUGFyc2VyU3RyaW5nJiBzdHJpbmcpCiAgICAgaWYgKCFmaW5kVVJJKHVyaVN0
YXJ0LCB1cmlFbmQsIHF1b3RlKSkKICAgICAgICAgcmV0dXJuOwogICAgIAotICAgIENoYXJhY3Rl
clR5cGUqIGRlc3QgPSBjdXJyZW50Q2hhcmFjdGVyPENoYXJhY3RlclR5cGU+KCkgPSB1cmlTdGFy
dDsKLSAgICBpZiAoTElLRUxZKHBhcnNlVVJJSW50ZXJuYWwoY3VycmVudENoYXJhY3RlcjxDaGFy
YWN0ZXJUeXBlPigpLCBkZXN0LCBxdW90ZSkpKQotICAgICAgICBzdHJpbmcuaW5pdCh1cmlTdGFy
dCwgZGVzdCAtIHVyaVN0YXJ0KTsKKyAgICBDaGFyYWN0ZXJUeXBlKiBjdXJyZW50ID0gY3VycmVu
dENoYXJhY3RlcjxDaGFyYWN0ZXJUeXBlPigpID0gdXJpU3RhcnQ7CisgICAgaWYgKExJS0VMWShw
YXJzZVVSSUludGVybmFsKGN1cnJlbnRDaGFyYWN0ZXI8Q2hhcmFjdGVyVHlwZT4oKSwgY3VycmVu
dCwgcXVvdGUpKSkKKyAgICAgICAgc3RyaW5nLmluaXQodXJpU3RhcnQsIGN1cnJlbnQgLSB1cmlT
dGFydCk7CiAgICAgZWxzZSB7CiAgICAgICAgIC8vIEFuIGVzY2FwZSBzZXF1ZW5jZSB3YXMgZW5j
b3VudGVyZWQgdGhhdCBjYW4ndCBiZSBzdG9yZWQgaW4gOCBiaXRzLgogICAgICAgICAvLyBSZXNl
dCB0aGUgY3VycmVudCBjaGFyYWN0ZXIgdG8gdGhlIHN0YXJ0IG9mIHRoZSBVUkkgYW5kIHJlLXBh
cnNlIHdpdGgKQEAgLTEwOTg3LDcgKzEwOTg4LDcgQEAgaW50IENTU1BhcnNlcjo6cmVhbExleCh2
b2lkKiB5eWx2YWxXaXRob3V0VHlwZSkKIHsKICAgICBZWVNUWVBFKiB5eWx2YWwgPSBzdGF0aWNf
Y2FzdDxZWVNUWVBFKj4oeXlsdmFsV2l0aG91dFR5cGUpOwogICAgIC8vIFdyaXRlIHBvaW50ZXIg
Zm9yIHRoZSBuZXh0IGNoYXJhY3Rlci4KLSAgICBTcmNDaGFyYWN0ZXJUeXBlKiByZXN1bHQ7Cisg
ICAgU3JjQ2hhcmFjdGVyVHlwZSogY3VycmVudDsKICAgICBDU1NQYXJzZXJTdHJpbmcgcmVzdWx0
U3RyaW5nOwogICAgIGJvb2wgaGFzRXNjYXBlOwogCkBAIC0xMDk5OSw4ICsxMTAwMCw4IEBAIGlu
dCBDU1NQYXJzZXI6OnJlYWxMZXgodm9pZCogeXlsdmFsV2l0aG91dFR5cGUpCiAjZW5kaWYKIAog
cmVzdGFydEFmdGVyQ29tbWVudDoKLSAgICByZXN1bHQgPSBjdXJyZW50Q2hhcmFjdGVyPFNyY0No
YXJhY3RlclR5cGU+KCk7Ci0gICAgc2V0VG9rZW5TdGFydChyZXN1bHQpOworICAgIGN1cnJlbnQg
PSBjdXJyZW50Q2hhcmFjdGVyPFNyY0NoYXJhY3RlclR5cGU+KCk7CisgICAgc2V0VG9rZW5TdGFy
dChjdXJyZW50KTsKICAgICBtX3Rva2VuU3RhcnRMaW5lTnVtYmVyID0gbV9saW5lTnVtYmVyOwog
ICAgIG1fdG9rZW4gPSAqY3VycmVudENoYXJhY3RlcjxTcmNDaGFyYWN0ZXJUeXBlPigpOwogICAg
ICsrY3VycmVudENoYXJhY3RlcjxTcmNDaGFyYWN0ZXJUeXBlPigpOwpAQCAtMTEwMTgsMTMgKzEx
MDE5LDEzIEBAIHJlc3RhcnRBZnRlckNvbW1lbnQ6CiAKICAgICBjYXNlIENoYXJhY3RlcklkZW50
aWZpZXJTdGFydDoKICAgICAgICAgLS1jdXJyZW50Q2hhcmFjdGVyPFNyY0NoYXJhY3RlclR5cGU+
KCk7Ci0gICAgICAgIHBhcnNlSWRlbnRpZmllcihyZXN1bHQsIHl5bHZhbC0+c3RyaW5nLCBoYXNF
c2NhcGUpOworICAgICAgICBwYXJzZUlkZW50aWZpZXIoY3VycmVudCwgeXlsdmFsLT5zdHJpbmcs
IGhhc0VzY2FwZSk7CiAgICAgICAgIG1fdG9rZW4gPSBJREVOVDsKIAogICAgICAgICBpZiAoVU5M
SUtFTFkoKmN1cnJlbnRDaGFyYWN0ZXI8U3JjQ2hhcmFjdGVyVHlwZT4oKSA9PSAnKCcpKSB7CiAj
aWYgRU5BQkxFKENTUzNfQ09ORElUSU9OQUxfUlVMRVMpCiAgICAgICAgICAgICBpZiAobV9wYXJz
aW5nTW9kZSA9PSBTdXBwb3J0c01vZGUgJiYgIWhhc0VzY2FwZSkgewotICAgICAgICAgICAgICAg
IGRldGVjdFN1cHBvcnRzVG9rZW48U3JjQ2hhcmFjdGVyVHlwZT4ocmVzdWx0IC0gdG9rZW5TdGFy
dDxTcmNDaGFyYWN0ZXJUeXBlPigpKTsKKyAgICAgICAgICAgICAgICBkZXRlY3RTdXBwb3J0c1Rv
a2VuPFNyY0NoYXJhY3RlclR5cGU+KGN1cnJlbnQgLSB0b2tlblN0YXJ0PFNyY0NoYXJhY3RlclR5
cGU+KCkpOwogICAgICAgICAgICAgICAgIGlmIChtX3Rva2VuICE9IElERU5UKQogICAgICAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KQEAgLTExMDMyLDE4ICsxMTAzMywxOCBA
QCByZXN0YXJ0QWZ0ZXJDb21tZW50OgogICAgICAgICAgICAgbV90b2tlbiA9IEZVTkNUSU9OOwog
ICAgICAgICAgICAgYm9vbCBzaG91bGRTa2lwUGFyZW50aGVzaXMgPSB0cnVlOwogICAgICAgICAg
ICAgaWYgKCFoYXNFc2NhcGUpIHsKLSAgICAgICAgICAgICAgICBib29sIGRldGVjdGVkID0gZGV0
ZWN0RnVuY3Rpb25UeXBlVG9rZW48U3JjQ2hhcmFjdGVyVHlwZT4ocmVzdWx0IC0gdG9rZW5TdGFy
dDxTcmNDaGFyYWN0ZXJUeXBlPigpKTsKKyAgICAgICAgICAgICAgICBib29sIGRldGVjdGVkID0g
ZGV0ZWN0RnVuY3Rpb25UeXBlVG9rZW48U3JjQ2hhcmFjdGVyVHlwZT4oY3VycmVudCAtIHRva2Vu
U3RhcnQ8U3JjQ2hhcmFjdGVyVHlwZT4oKSk7CiAgICAgICAgICAgICAgICAgaWYgKCFkZXRlY3Rl
ZCAmJiBtX3BhcnNpbmdNb2RlID09IE1lZGlhUXVlcnlNb2RlKSB7CiAgICAgICAgICAgICAgICAg
ICAgIC8vIC4uLiBhbmQobWF4LXdpZHRoOiA0ODBweCkgLi4uIGxvb2tzIGxpa2UgYSBmdW5jdGlv
biwgYnV0IGluIGZhY3QgaXQgaXMgbm90LAogICAgICAgICAgICAgICAgICAgICAvLyBzbyBydW4g
bW9yZSBkZXRlY3Rpb24gY29kZSBpbiB0aGUgTWVkaWFRdWVyeU1vZGUuCi0gICAgICAgICAgICAg
ICAgICAgIGRldGVjdE1lZGlhUXVlcnlUb2tlbjxTcmNDaGFyYWN0ZXJUeXBlPihyZXN1bHQgLSB0
b2tlblN0YXJ0PFNyY0NoYXJhY3RlclR5cGU+KCkpOworICAgICAgICAgICAgICAgICAgICBkZXRl
Y3RNZWRpYVF1ZXJ5VG9rZW48U3JjQ2hhcmFjdGVyVHlwZT4oY3VycmVudCAtIHRva2VuU3RhcnQ8
U3JjQ2hhcmFjdGVyVHlwZT4oKSk7CiAgICAgICAgICAgICAgICAgICAgIHNob3VsZFNraXBQYXJl
bnRoZXNpcyA9IGZhbHNlOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KIAogICAg
ICAgICAgICAgaWYgKExJS0VMWShzaG91bGRTa2lwUGFyZW50aGVzaXMpKSB7CiAgICAgICAgICAg
ICAgICAgKytjdXJyZW50Q2hhcmFjdGVyPFNyY0NoYXJhY3RlclR5cGU+KCk7Ci0gICAgICAgICAg
ICAgICAgKytyZXN1bHQ7CisgICAgICAgICAgICAgICAgKytjdXJyZW50OwogICAgICAgICAgICAg
ICAgICsreXlsdmFsLT5zdHJpbmcubV9sZW5ndGg7CiAgICAgICAgICAgICB9CiAKQEAgLTExMDU3
LDIyICsxMTA1OCwyMiBAQCByZXN0YXJ0QWZ0ZXJDb21tZW50OgogICAgICAgICAgICAgfQogICAg
ICAgICB9IGVsc2UgaWYgKFVOTElLRUxZKG1fcGFyc2luZ01vZGUgIT0gTm9ybWFsTW9kZSkgJiYg
IWhhc0VzY2FwZSkgewogICAgICAgICAgICAgaWYgKG1fcGFyc2luZ01vZGUgPT0gTWVkaWFRdWVy
eU1vZGUpCi0gICAgICAgICAgICAgICAgZGV0ZWN0TWVkaWFRdWVyeVRva2VuPFNyY0NoYXJhY3Rl
clR5cGU+KHJlc3VsdCAtIHRva2VuU3RhcnQ8U3JjQ2hhcmFjdGVyVHlwZT4oKSk7CisgICAgICAg
ICAgICAgICAgZGV0ZWN0TWVkaWFRdWVyeVRva2VuPFNyY0NoYXJhY3RlclR5cGU+KGN1cnJlbnQg
LSB0b2tlblN0YXJ0PFNyY0NoYXJhY3RlclR5cGU+KCkpOwogI2lmIEVOQUJMRShDU1MzX0NPTkRJ
VElPTkFMX1JVTEVTKQogICAgICAgICAgICAgZWxzZSBpZiAobV9wYXJzaW5nTW9kZSA9PSBTdXBw
b3J0c01vZGUpCi0gICAgICAgICAgICAgICAgZGV0ZWN0U3VwcG9ydHNUb2tlbjxTcmNDaGFyYWN0
ZXJUeXBlPihyZXN1bHQgLSB0b2tlblN0YXJ0PFNyY0NoYXJhY3RlclR5cGU+KCkpOworICAgICAg
ICAgICAgICAgIGRldGVjdFN1cHBvcnRzVG9rZW48U3JjQ2hhcmFjdGVyVHlwZT4oY3VycmVudCAt
IHRva2VuU3RhcnQ8U3JjQ2hhcmFjdGVyVHlwZT4oKSk7CiAjZW5kaWYKICAgICAgICAgICAgIGVs
c2UgaWYgKG1fcGFyc2luZ01vZGUgPT0gTnRoQ2hpbGRNb2RlICYmIGlzQVNDSUlBbHBoYUNhc2Vs
ZXNzRXF1YWwodG9rZW5TdGFydDxTcmNDaGFyYWN0ZXJUeXBlPigpWzBdLCAnbicpKSB7Ci0gICAg
ICAgICAgICAgICAgaWYgKHJlc3VsdCAtIHRva2VuU3RhcnQ8U3JjQ2hhcmFjdGVyVHlwZT4oKSA9
PSAxKSB7CisgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnQgLSB0b2tlblN0YXJ0PFNyY0NoYXJh
Y3RlclR5cGU+KCkgPT0gMSkgewogICAgICAgICAgICAgICAgICAgICAvLyBTdHJpbmcgIm4iIGlz
IElERU5UIGJ1dCAibisxIiBpcyBOVEguCiAgICAgICAgICAgICAgICAgICAgIGlmIChwYXJzZU50
aENoaWxkRXh0cmE8U3JjQ2hhcmFjdGVyVHlwZT4oKSkgewogICAgICAgICAgICAgICAgICAgICAg
ICAgbV90b2tlbiA9IE5USDsKICAgICAgICAgICAgICAgICAgICAgICAgIHl5bHZhbC0+c3RyaW5n
Lm1fbGVuZ3RoID0gY3VycmVudENoYXJhY3RlcjxTcmNDaGFyYWN0ZXJUeXBlPigpIC0gdG9rZW5T
dGFydDxTcmNDaGFyYWN0ZXJUeXBlPigpOwogICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQgLSB0b2tlblN0YXJ0PFNyY0NoYXJhY3RlclR5cGU+
KCkgPj0gMiAmJiB0b2tlblN0YXJ0PFNyY0NoYXJhY3RlclR5cGU+KClbMV0gPT0gJy0nKSB7Cisg
ICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50IC0gdG9rZW5TdGFydDxTcmNDaGFyYWN0
ZXJUeXBlPigpID49IDIgJiYgdG9rZW5TdGFydDxTcmNDaGFyYWN0ZXJUeXBlPigpWzFdID09ICct
JykgewogICAgICAgICAgICAgICAgICAgICAvLyBTdHJpbmcgIm4tIiBpcyBJREVOVCBidXQgIm4t
MSIgaXMgTlRILgogICAgICAgICAgICAgICAgICAgICAvLyBTZXQgY3VycmVudENoYXJhY3RlciB0
byAnLScgdG8gY29udGludWUgcGFyc2luZy4KLSAgICAgICAgICAgICAgICAgICAgU3JjQ2hhcmFj
dGVyVHlwZSogbmV4dENoYXJhY3RlciA9IHJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAgU3Jj
Q2hhcmFjdGVyVHlwZSogbmV4dENoYXJhY3RlciA9IGN1cnJlbnQ7CiAgICAgICAgICAgICAgICAg
ICAgIGN1cnJlbnRDaGFyYWN0ZXI8U3JjQ2hhcmFjdGVyVHlwZT4oKSA9IHRva2VuU3RhcnQ8U3Jj
Q2hhcmFjdGVyVHlwZT4oKSArIDE7CiAgICAgICAgICAgICAgICAgICAgIGlmIChwYXJzZU50aENo
aWxkRXh0cmE8U3JjQ2hhcmFjdGVyVHlwZT4oKSkgewogICAgICAgICAgICAgICAgICAgICAgICAg
bV90b2tlbiA9IE5USDsKQEAgLTExMTM4LDkgKzExMTM5LDkgQEAgcmVzdGFydEFmdGVyQ29tbWVu
dDoKICAgICAgICAgLy8gVHlwZSBvZiB0aGUgZnVuY3Rpb24uCiAgICAgICAgIGlmIChpc0lkZW50
aWZpZXJTdGFydDxTcmNDaGFyYWN0ZXJUeXBlPigpKSB7CiAgICAgICAgICAgICBTcmNDaGFyYWN0
ZXJUeXBlKiB0eXBlID0gY3VycmVudENoYXJhY3RlcjxTcmNDaGFyYWN0ZXJUeXBlPigpOwotICAg
ICAgICAgICAgcmVzdWx0ID0gY3VycmVudENoYXJhY3RlcjxTcmNDaGFyYWN0ZXJUeXBlPigpOwor
ICAgICAgICAgICAgY3VycmVudCA9IGN1cnJlbnRDaGFyYWN0ZXI8U3JjQ2hhcmFjdGVyVHlwZT4o
KTsKIAotICAgICAgICAgICAgcGFyc2VJZGVudGlmaWVyKHJlc3VsdCwgcmVzdWx0U3RyaW5nLCBo
YXNFc2NhcGUpOworICAgICAgICAgICAgcGFyc2VJZGVudGlmaWVyKGN1cnJlbnQsIHJlc3VsdFN0
cmluZywgaGFzRXNjYXBlKTsKIAogICAgICAgICAgICAgbV90b2tlbiA9IERJTUVOOwogICAgICAg
ICAgICAgaWYgKCFoYXNFc2NhcGUpCkBAIC0xMTE2NSwzNyArMTExNjYsMzcgQEAgcmVzdGFydEFm
dGVyQ29tbWVudDoKICAgICBjYXNlIENoYXJhY3RlckRhc2g6CiAgICAgICAgIGlmIChpc0lkZW50
aWZpZXJTdGFydEFmdGVyRGFzaChjdXJyZW50Q2hhcmFjdGVyPFNyY0NoYXJhY3RlclR5cGU+KCkp
KSB7CiAgICAgICAgICAgICAtLWN1cnJlbnRDaGFyYWN0ZXI8U3JjQ2hhcmFjdGVyVHlwZT4oKTsK
LSAgICAgICAgICAgIHBhcnNlSWRlbnRpZmllcihyZXN1bHQsIHJlc3VsdFN0cmluZywgaGFzRXNj
YXBlKTsKKyAgICAgICAgICAgIHBhcnNlSWRlbnRpZmllcihjdXJyZW50LCByZXN1bHRTdHJpbmcs
IGhhc0VzY2FwZSk7CiAgICAgICAgICAgICBtX3Rva2VuID0gSURFTlQ7CiAKICAgICAgICAgICAg
IGlmICgqY3VycmVudENoYXJhY3RlcjxTcmNDaGFyYWN0ZXJUeXBlPigpID09ICcoJykgewogICAg
ICAgICAgICAgICAgIG1fdG9rZW4gPSBGVU5DVElPTjsKICAgICAgICAgICAgICAgICBpZiAoIWhh
c0VzY2FwZSkKLSAgICAgICAgICAgICAgICAgICAgZGV0ZWN0RGFzaFRva2VuPFNyY0NoYXJhY3Rl
clR5cGU+KHJlc3VsdCAtIHRva2VuU3RhcnQ8U3JjQ2hhcmFjdGVyVHlwZT4oKSk7CisgICAgICAg
ICAgICAgICAgICAgIGRldGVjdERhc2hUb2tlbjxTcmNDaGFyYWN0ZXJUeXBlPihjdXJyZW50IC0g
dG9rZW5TdGFydDxTcmNDaGFyYWN0ZXJUeXBlPigpKTsKICAgICAgICAgICAgICAgICArK2N1cnJl
bnRDaGFyYWN0ZXI8U3JjQ2hhcmFjdGVyVHlwZT4oKTsKLSAgICAgICAgICAgICAgICArK3Jlc3Vs
dDsKKyAgICAgICAgICAgICAgICArK2N1cnJlbnQ7CiAgICAgICAgICAgICB9IGVsc2UgaWYgKFVO
TElLRUxZKG1fcGFyc2luZ01vZGUgPT0gTnRoQ2hpbGRNb2RlKSAmJiAhaGFzRXNjYXBlICYmIGlz
QVNDSUlBbHBoYUNhc2VsZXNzRXF1YWwodG9rZW5TdGFydDxTcmNDaGFyYWN0ZXJUeXBlPigpWzFd
LCAnbicpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCAtIHRva2VuU3RhcnQ8U3JjQ2hh
cmFjdGVyVHlwZT4oKSA9PSAyKSB7CisgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnQgLSB0b2tl
blN0YXJ0PFNyY0NoYXJhY3RlclR5cGU+KCkgPT0gMikgewogICAgICAgICAgICAgICAgICAgICAv
LyBTdHJpbmcgIi1uIiBpcyBJREVOVCBidXQgIi1uKzEiIGlzIE5USC4KICAgICAgICAgICAgICAg
ICAgICAgaWYgKHBhcnNlTnRoQ2hpbGRFeHRyYTxTcmNDaGFyYWN0ZXJUeXBlPigpKSB7CiAgICAg
ICAgICAgICAgICAgICAgICAgICBtX3Rva2VuID0gTlRIOwotICAgICAgICAgICAgICAgICAgICAg
ICAgcmVzdWx0ID0gY3VycmVudENoYXJhY3RlcjxTcmNDaGFyYWN0ZXJUeXBlPigpOworICAgICAg
ICAgICAgICAgICAgICAgICAgY3VycmVudCA9IGN1cnJlbnRDaGFyYWN0ZXI8U3JjQ2hhcmFjdGVy
VHlwZT4oKTsKICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0gZWxzZSBp
ZiAocmVzdWx0IC0gdG9rZW5TdGFydDxTcmNDaGFyYWN0ZXJUeXBlPigpID49IDMgJiYgdG9rZW5T
dGFydDxTcmNDaGFyYWN0ZXJUeXBlPigpWzJdID09ICctJykgeworICAgICAgICAgICAgICAgIH0g
ZWxzZSBpZiAoY3VycmVudCAtIHRva2VuU3RhcnQ8U3JjQ2hhcmFjdGVyVHlwZT4oKSA+PSAzICYm
IHRva2VuU3RhcnQ8U3JjQ2hhcmFjdGVyVHlwZT4oKVsyXSA9PSAnLScpIHsKICAgICAgICAgICAg
ICAgICAgICAgLy8gU3RyaW5nICItbi0iIGlzIElERU5UIGJ1dCAiLW4tMSIgaXMgTlRILgogICAg
ICAgICAgICAgICAgICAgICAvLyBTZXQgY3VycmVudENoYXJhY3RlciB0byBzZWNvbmQgJy0nIG9m
ICctbi0nIHRvIGNvbnRpbnVlIHBhcnNpbmcuCi0gICAgICAgICAgICAgICAgICAgIFNyY0NoYXJh
Y3RlclR5cGUqIG5leHRDaGFyYWN0ZXIgPSByZXN1bHQ7CisgICAgICAgICAgICAgICAgICAgIFNy
Y0NoYXJhY3RlclR5cGUqIG5leHRDaGFyYWN0ZXIgPSBjdXJyZW50OwogICAgICAgICAgICAgICAg
ICAgICBjdXJyZW50Q2hhcmFjdGVyPFNyY0NoYXJhY3RlclR5cGU+KCkgPSB0b2tlblN0YXJ0PFNy
Y0NoYXJhY3RlclR5cGU+KCkgKyAyOwogICAgICAgICAgICAgICAgICAgICBpZiAocGFyc2VOdGhD
aGlsZEV4dHJhPFNyY0NoYXJhY3RlclR5cGU+KCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAg
IG1fdG9rZW4gPSBOVEg7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBjdXJyZW50
Q2hhcmFjdGVyPFNyY0NoYXJhY3RlclR5cGU+KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBj
dXJyZW50ID0gY3VycmVudENoYXJhY3RlcjxTcmNDaGFyYWN0ZXJUeXBlPigpOwogICAgICAgICAg
ICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmV2ZXJ0IHRo
ZSBjaGFuZ2UgdG8gY3VycmVudENoYXJhY3RlciBpZiB1bnN1Y2Nlc3NmdWwuCiAgICAgICAgICAg
ICAgICAgICAgICAgICBjdXJyZW50Q2hhcmFjdGVyPFNyY0NoYXJhY3RlclR5cGU+KCkgPSBuZXh0
Q2hhcmFjdGVyOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgfQotICAgICAgICAgICAgcmVzdWx0U3RyaW5nLnNldExlbmd0aChyZXN1bHQgLSB0
b2tlblN0YXJ0PFNyY0NoYXJhY3RlclR5cGU+KCkpOworICAgICAgICAgICAgcmVzdWx0U3RyaW5n
LnNldExlbmd0aChjdXJyZW50IC0gdG9rZW5TdGFydDxTcmNDaGFyYWN0ZXJUeXBlPigpKTsKICAg
ICAgICAgICAgIHl5bHZhbC0+c3RyaW5nID0gcmVzdWx0U3RyaW5nOwogICAgICAgICB9IGVsc2Ug
aWYgKGN1cnJlbnRDaGFyYWN0ZXI8U3JjQ2hhcmFjdGVyVHlwZT4oKVswXSA9PSAnLScgJiYgY3Vy
cmVudENoYXJhY3RlcjxTcmNDaGFyYWN0ZXJUeXBlPigpWzFdID09ICc+JykgewogICAgICAgICAg
ICAgY3VycmVudENoYXJhY3RlcjxTcmNDaGFyYWN0ZXJUeXBlPigpICs9IDI7CkBAIC0xMTI0Miw4
ICsxMTI0Myw4IEBAIHJlc3RhcnRBZnRlckNvbW1lbnQ6CiAKICAgICBjYXNlIENoYXJhY3RlclF1
b3RlOgogICAgICAgICBpZiAoY2hlY2tBbmRTa2lwU3RyaW5nKGN1cnJlbnRDaGFyYWN0ZXI8U3Jj
Q2hhcmFjdGVyVHlwZT4oKSwgbV90b2tlbikpIHsKLSAgICAgICAgICAgICsrcmVzdWx0OwotICAg
ICAgICAgICAgcGFyc2VTdHJpbmc8U3JjQ2hhcmFjdGVyVHlwZT4ocmVzdWx0LCB5eWx2YWwtPnN0
cmluZywgbV90b2tlbik7CisgICAgICAgICAgICArK2N1cnJlbnQ7CisgICAgICAgICAgICBwYXJz
ZVN0cmluZzxTcmNDaGFyYWN0ZXJUeXBlPihjdXJyZW50LCB5eWx2YWwtPnN0cmluZywgbV90b2tl
bik7CiAgICAgICAgICAgICBtX3Rva2VuID0gU1RSSU5HOwogICAgICAgICB9CiAgICAgICAgIGJy
ZWFrOwpAQCAtMTEyNTksNyArMTEyNjAsNyBAQCByZXN0YXJ0QWZ0ZXJDb21tZW50OgogCiAgICAg
Y2FzZSBDaGFyYWN0ZXJIYXNobWFyazogewogICAgICAgICBTcmNDaGFyYWN0ZXJUeXBlKiBzdGFy
dCA9IGN1cnJlbnRDaGFyYWN0ZXI8U3JjQ2hhcmFjdGVyVHlwZT4oKTsKLSAgICAgICAgcmVzdWx0
ID0gY3VycmVudENoYXJhY3RlcjxTcmNDaGFyYWN0ZXJUeXBlPigpOworICAgICAgICBjdXJyZW50
ID0gY3VycmVudENoYXJhY3RlcjxTcmNDaGFyYWN0ZXJUeXBlPigpOwogCiAgICAgICAgIGlmIChp
c0FTQ0lJRGlnaXQoKmN1cnJlbnRDaGFyYWN0ZXI8U3JjQ2hhcmFjdGVyVHlwZT4oKSkpIHsKICAg
ICAgICAgICAgIC8vIFRoaXMgbXVzdCBiZSBhIHZhbGlkIGhleCBudW1iZXIgdG9rZW4uCkBAIC0x
MTI3MCw3ICsxMTI3MSw3IEBAIHJlc3RhcnRBZnRlckNvbW1lbnQ6CiAgICAgICAgICAgICB5eWx2
YWwtPnN0cmluZy5pbml0KHN0YXJ0LCBjdXJyZW50Q2hhcmFjdGVyPFNyY0NoYXJhY3RlclR5cGU+
KCkgLSBzdGFydCk7CiAgICAgICAgIH0gZWxzZSBpZiAoaXNJZGVudGlmaWVyU3RhcnQ8U3JjQ2hh
cmFjdGVyVHlwZT4oKSkgewogICAgICAgICAgICAgbV90b2tlbiA9IElEU0VMOwotICAgICAgICAg
ICAgcGFyc2VJZGVudGlmaWVyKHJlc3VsdCwgeXlsdmFsLT5zdHJpbmcsIGhhc0VzY2FwZSk7Cisg
ICAgICAgICAgICBwYXJzZUlkZW50aWZpZXIoY3VycmVudCwgeXlsdmFsLT5zdHJpbmcsIGhhc0Vz
Y2FwZSk7CiAgICAgICAgICAgICBpZiAoIWhhc0VzY2FwZSkgewogICAgICAgICAgICAgICAgIC8v
IENoZWNrIHdoZXRoZXIgdGhlIGlkZW50aWZpZXIgaXMgYWxzbyBhIHZhbGlkIGhleCBudW1iZXIu
CiAgICAgICAgICAgICAgICAgU3JjQ2hhcmFjdGVyVHlwZSogY3VycmVudCA9IHN0YXJ0OwpAQCAt
MTEyODEsNyArMTEyODIsNyBAQCByZXN0YXJ0QWZ0ZXJDb21tZW50OgogICAgICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg
ICAgKytjdXJyZW50OwotICAgICAgICAgICAgICAgIH0gd2hpbGUgKGN1cnJlbnQgPCByZXN1bHQp
OworICAgICAgICAgICAgICAgIH0gd2hpbGUgKGN1cnJlbnQgPCBjdXJyZW50KTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgfQogICAgICAgICBicmVhazsKQEAgLTExMzQxLDE2ICsxMTM0MiwxNiBA
QCByZXN0YXJ0QWZ0ZXJDb21tZW50OgogICAgIGNhc2UgQ2hhcmFjdGVyQXQ6CiAgICAgICAgIGlm
IChpc0lkZW50aWZpZXJTdGFydDxTcmNDaGFyYWN0ZXJUeXBlPigpKSB7CiAgICAgICAgICAgICBt
X3Rva2VuID0gQVRLRVlXT1JEOwotICAgICAgICAgICAgKytyZXN1bHQ7Ci0gICAgICAgICAgICBw
YXJzZUlkZW50aWZpZXIocmVzdWx0LCByZXN1bHRTdHJpbmcsIGhhc0VzY2FwZSk7Ci0gICAgICAg
ICAgICBkZXRlY3RBdFRva2VuPFNyY0NoYXJhY3RlclR5cGU+KHJlc3VsdCAtIHRva2VuU3RhcnQ8
U3JjQ2hhcmFjdGVyVHlwZT4oKSwgaGFzRXNjYXBlKTsKKyAgICAgICAgICAgICsrY3VycmVudDsK
KyAgICAgICAgICAgIHBhcnNlSWRlbnRpZmllcihjdXJyZW50LCByZXN1bHRTdHJpbmcsIGhhc0Vz
Y2FwZSk7CisgICAgICAgICAgICBkZXRlY3RBdFRva2VuPFNyY0NoYXJhY3RlclR5cGU+KGN1cnJl
bnQgLSB0b2tlblN0YXJ0PFNyY0NoYXJhY3RlclR5cGU+KCksIGhhc0VzY2FwZSk7CiAgICAgICAg
IH0KICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIENoYXJhY3RlckJhY2tTbGFzaDoKICAgICAg
ICAgaWYgKGlzQ1NTRXNjYXBlKCpjdXJyZW50Q2hhcmFjdGVyPFNyY0NoYXJhY3RlclR5cGU+KCkp
KSB7CiAgICAgICAgICAgICAtLWN1cnJlbnRDaGFyYWN0ZXI8U3JjQ2hhcmFjdGVyVHlwZT4oKTsK
LSAgICAgICAgICAgIHBhcnNlSWRlbnRpZmllcihyZXN1bHQsIHl5bHZhbC0+c3RyaW5nLCBoYXNF
c2NhcGUpOworICAgICAgICAgICAgcGFyc2VJZGVudGlmaWVyKGN1cnJlbnQsIHl5bHZhbC0+c3Ry
aW5nLCBoYXNFc2NhcGUpOwogICAgICAgICAgICAgbV90b2tlbiA9IElERU5UOwogICAgICAgICB9
CiAgICAgICAgIGJyZWFrOwotLSAKMS45LjEKCg==
</data>
<flag name="review"
          id="260318"
          type_id="1"
          status="-"
          setter="ossy"
    />
    <flag name="commit-queue"
          id="260319"
          type_id="3"
          status="-"
          setter="ossy"
    />
          </attachment>
      

    </bug>

</bugzilla>