<?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>157224</bug_id>
          
          <creation_ts>2016-04-29 19:58:07 -0700</creation_ts>
          <short_desc>Get rid of unnecessary null check in wrap(JSDOMGlobalObject*, DOMClass*)</short_desc>
          <delta_ts>2016-04-29 21:51:04 -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>Bindings</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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1188967</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-29 19:58:07 -0700</bug_when>
    <thetext>Get rid of unnecessary null check in wrap(JSDOMGlobalObject*, DOMClass*)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1188969</commentid>
    <comment_count>1</comment_count>
      <attachid>277785</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-29 20:00:14 -0700</bug_when>
    <thetext>Created attachment 277785
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1188977</commentid>
    <comment_count>2</comment_count>
      <attachid>277785</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-04-29 20:29:31 -0700</bug_when>
    <thetext>Comment on attachment 277785
Patch

r=me provided you fix builds on gtk-wk2 and mac-debug and/or they&apos;re unrelated to your change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1188991</commentid>
    <comment_count>3</comment_count>
      <attachid>277792</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-29 21:06:03 -0700</bug_when>
    <thetext>Created attachment 277792
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1188999</commentid>
    <comment_count>4</comment_count>
      <attachid>277793</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-29 21:16:53 -0700</bug_when>
    <thetext>Created attachment 277793
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1189016</commentid>
    <comment_count>5</comment_count>
      <attachid>277793</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-29 21:50:59 -0700</bug_when>
    <thetext>Comment on attachment 277793
Patch

Clearing flags on attachment: 277793

Committed r200287: &lt;http://trac.webkit.org/changeset/200287&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1189017</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-29 21:51:04 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277785</attachid>
            <date>2016-04-29 20:00:14 -0700</date>
            <delta_ts>2016-04-29 21:05:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157224-20160429200048.patch</filename>
            <type>text/plain</type>
            <size>17048</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAwMjc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWExZjVlNjUxNjBiOWU1
ZTg0MDBjY2U5ZjMzZGZkZGNmZjY0NDBlMi4uMDcwZmM5YTcxNDhiYmEwYjQzMGYyOTUxNzM5Nzgw
NmRiM2Y1OGRjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDE2LTA0LTI5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgR2V0IHJpZCBvZiB1bm5lY2Vz
c2FyeSBudWxsIGNoZWNrIGluIHdyYXAoSlNET01HbG9iYWxPYmplY3QqLCBET01DbGFzcyopCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTcyMjQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBHZXQgcmlkIG9m
IHVubmVjZXNzYXJ5IG51bGwgY2hlY2sgaW4gd3JhcChKU0RPTUdsb2JhbE9iamVjdCosIERPTUNs
YXNzKikKKyAgICAgICAgc2luY2UgYWxsIHRoZSBjYWxsIHNpdGVzIGFscmVhZHkgZG8gYSBudWxs
IGNoZWNrLiBBbHNvIHVwZGF0ZSB0aGUgZnVuY3Rpb24KKyAgICAgICAgdG8gdGFrZSB0aGUgaW1w
bGVtZW50YXRpb24gb2JqZWN0IGJ5IHJlZmVyZW5jZSBpbnN0ZWFkIG9mIHBvaW50ZXIuIEZpbmFs
bHksCisgICAgICAgIHVzZSBpczw+KCkgLyBkb3duY2FzdDw+KCkgbW9yZSBhdCB0aGUgY2FsbCBz
aXRlcy4KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJREJDdXJzb3I6OnVwZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJD
dXJzb3I6OmRlbGV0ZUZ1bmN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvcjo6c2V0
R2V0UmVzdWx0KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OklEQkN1cnNvcjo6aXNLZXlDdXJzb3JXaXRoVmFsdWUpOgorICAgICAg
ICAoV2ViQ29yZTo6SURCQ3Vyc29yOjppc0tleUN1cnNvcik6IERlbGV0ZWQuCisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yV2l0aFZhbHVlLmg6CisgICAgICAgIChpc1R5cGUp
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQmxvYkN1c3RvbS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjp0b0pTKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0NhbnZhc1JlbmRlcmluZ0NvbnRl
eHRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6CisgICAgICAgICogYmluZGlu
Z3MvanMvSlNET01CaW5kaW5nLmg6CisgICAgICAgIChXZWJDb3JlOjp3cmFwKToKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0lEQkN1cnNvckN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0
b0pTKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU01lZGlhU3RyZWFtQ2FwYWJpbGl0aWVzQ3Vz
dG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTUGVyZm9ybWFuY2VFbnRyeUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b0pTKToK
KyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0Lmg6CisgICAgICAg
ICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0Lmg6CisgICAgICAgICogcGFnZS9Q
ZXJmb3JtYW5jZU1hcmsuaDoKKyAgICAgICAgKGlzVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpQ
ZXJmb3JtYW5jZU1hcms6OmlzTWFyayk6IERlbGV0ZWQuCisgICAgICAgICogcGFnZS9QZXJmb3Jt
YW5jZU1lYXN1cmUuaDoKKyAgICAgICAgKGlzVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpQZXJm
b3JtYW5jZU1lYXN1cmU6OmlzTWVhc3VyZSk6IERlbGV0ZWQuCisgICAgICAgICogcGFnZS9QZXJm
b3JtYW5jZVJlc291cmNlVGltaW5nLmg6CisgICAgICAgIChpc1R5cGUpOgorICAgICAgICAoV2Vi
Q29yZTo6UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6aXNSZXNvdXJjZSk6IERlbGV0ZWQuCisK
IDIwMTYtMDQtMjkgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAg
ICAgICBXZWIgSW5zcGVjdG9yOiBJc3N1ZXMgaW5zcGVjdGluZyB0aGUgaW5zcGVjdG9yLCBwYXVz
aW5nIG9uIGJyZWFrcG9pbnRzIGNhdXNlcyBjb250ZW50IHRvIG5vdCBsb2FkCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcAppbmRleCBkZmYxYzdjZjZl
ZGE0MDE2NThlMzc3NjM4YTg0ZTAzNTA4OWFkY2MxLi4wMTNjN2Y3ODFjYmEyNTY1MmJjNDc3M2U0
N2ZiNTBjOWNiMTZlOWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJDdXJzb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkN1cnNvci5jcHAKQEAgLTE4Nyw3ICsxODcsNyBAQCBSZWZQdHI8V2ViQ29yZTo6SURCUmVx
dWVzdD4gSURCQ3Vyc29yOjp1cGRhdGUoRXhlY1N0YXRlJiBleGVjLCBKU1ZhbHVlIHZhbHVlLCBF
eAogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAgICBpZiAoaXNLZXlDdXJzb3Io
KSkgeworICAgIGlmICghaXNLZXlDdXJzb3JXaXRoVmFsdWUoKSkgewogICAgICAgICBlYy5jb2Rl
ID0gSURCRGF0YWJhc2VFeGNlcHRpb246OkludmFsaWRTdGF0ZUVycm9yOwogICAgICAgICBlYy5t
ZXNzYWdlID0gQVNDSUlMaXRlcmFsKCJGYWlsZWQgdG8gZXhlY3V0ZSAndXBkYXRlJyBvbiAnSURC
Q3Vyc29yJzogVGhlIGN1cnNvciBpcyBhIGtleSBjdXJzb3IuIik7CiAgICAgICAgIHJldHVybiBu
dWxscHRyOwpAQCAtMzUwLDcgKzM1MCw3IEBAIFJlZlB0cjxXZWJDb3JlOjpJREJSZXF1ZXN0PiBJ
REJDdXJzb3I6OmRlbGV0ZUZ1bmN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAotICAgIGlmIChpc0tleUN1cnNvcigpKSB7Cisg
ICAgaWYgKCFpc0tleUN1cnNvcldpdGhWYWx1ZSgpKSB7CiAgICAgICAgIGVjLmNvZGUgPSBJREJE
YXRhYmFzZUV4Y2VwdGlvbjo6SW52YWxpZFN0YXRlRXJyb3I7CiAgICAgICAgIGVjLm1lc3NhZ2Ug
PSBBU0NJSUxpdGVyYWwoIkZhaWxlZCB0byBleGVjdXRlICdkZWxldGUnIG9uICdJREJDdXJzb3In
OiBUaGUgY3Vyc29yIGlzIGEga2V5IGN1cnNvci4iKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CkBAIC0zOTMsMTAgKzM5MywxMCBAQCB2b2lkIElEQkN1cnNvcjo6c2V0R2V0UmVzdWx0KElEQlJl
cXVlc3QmIHJlcXVlc3QsIGNvbnN0IElEQkdldFJlc3VsdCYgZ2V0UmVzdWx0KQogICAgIG1fY3Vy
cmVudFByaW1hcnlLZXkgPSB7IHZtLCBpZGJLZXlEYXRhVG9TY3JpcHRWYWx1ZSgqY29udGV4dCwg
Z2V0UmVzdWx0LnByaW1hcnlLZXlEYXRhKCkpIH07CiAgICAgbV9jdXJyZW50UHJpbWFyeUtleURh
dGEgPSBnZXRSZXN1bHQucHJpbWFyeUtleURhdGEoKTsKIAotICAgIGlmIChpc0tleUN1cnNvcigp
KQotICAgICAgICBtX2N1cnJlbnRWYWx1ZSA9IHsgfTsKLSAgICBlbHNlCisgICAgaWYgKGlzS2V5
Q3Vyc29yV2l0aFZhbHVlKCkpCiAgICAgICAgIG1fY3VycmVudFZhbHVlID0geyB2bSwgZGVzZXJp
YWxpemVJREJWYWx1ZVRvSlNWYWx1ZSgqY29udGV4dCwgZ2V0UmVzdWx0LnZhbHVlKCkpIH07Cisg
ICAgZWxzZQorICAgICAgICBtX2N1cnJlbnRWYWx1ZSA9IHsgfTsKIAogICAgIG1fZ290VmFsdWUg
PSB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCQ3Vyc29yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3Iu
aAppbmRleCAyNGI3MDlhMzA0NWFhYzU5MTBjMmI4NDQ2YzVmMTE3ZTA0Njc0YzJjLi43NzVkYWZi
ODY0ODcxYmY5MThlNDg5YWRjNWYyZjA5ZGEyY2FmMGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuaApAQCAtNzcsNyArNzcsNyBAQCBwdWJsaWM6CiAK
ICAgICB2b2lkIHNldEdldFJlc3VsdChJREJSZXF1ZXN0JiwgY29uc3QgSURCR2V0UmVzdWx0Jik7
CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNLZXlDdXJzb3IoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9
CisgICAgdmlydHVhbCBib29sIGlzS2V5Q3Vyc29yV2l0aFZhbHVlKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KIAogICAgIHZvaWQgZGVjcmVtZW50T3V0c3RhbmRpbmdSZXF1ZXN0Q291bnQoKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29y
V2l0aFZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JX
aXRoVmFsdWUuaAppbmRleCAxZWU1ZGQ1ZmNjNzcwMzlkMjc4NmVmMDUzMTI4OTViZDNmZjY0ZDE2
Li5mNzg4OTFiN2Q4NDYyZjJlOGM2Y2JmMTFkZTZhYjkxNWY2MzUwOGJmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JXaXRoVmFsdWUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JXaXRoVmFsdWUuaApA
QCAtMjgsNiArMjgsNyBAQAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogCiAjaW5jbHVk
ZSAiSURCQ3Vyc29yLmgiCisjaW5jbHVkZSA8d3RmL1R5cGVDYXN0cy5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKQEAgLTM4LDcgKzM5LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+SURC
Q3Vyc29yV2l0aFZhbHVlKCk7CiAKLSAgICBib29sIGlzS2V5Q3Vyc29yKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gZmFsc2U7IH0KKyAgICBib29sIGlzS2V5Q3Vyc29yV2l0aFZhbHVlKCkgY29uc3Qg
IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAogcHJpdmF0ZToKICAgICBJREJDdXJzb3JXaXRo
VmFsdWUoSURCVHJhbnNhY3Rpb24mLCBJREJPYmplY3RTdG9yZSYsIGNvbnN0IElEQkN1cnNvcklu
Zm8mKTsKQEAgLTQ3LDQgKzQ4LDggQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lOKFdlYkNvcmU6OklEQkN1cnNvcldpdGhW
YWx1ZSkKKyAgICBzdGF0aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6SURCQ3Vyc29yJiBj
dXJzb3IpIHsgcmV0dXJuIGN1cnNvci5pc0tleUN1cnNvcldpdGhWYWx1ZSgpOyB9CitTUEVDSUFM
SVpFX1RZUEVfVFJBSVRTX0VORCgpCisKICNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFT
RSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmxvYkN1c3RvbS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Jsb2JDdXN0b20uY3BwCmluZGV4IGFk
ZTVhMGE5MzZjZWNiMTg4MzVlYTA0ZDFlMGM4MGFjOWZhMjBhNWEuLmRkOWI0MWU4ZWRkMjgyZWM5
MjFjYTFjYmMzZmEzMWQ2MmU4MzNhNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTQmxvYkN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNCbG9iQ3VzdG9tLmNwcApAQCAtNTMsMTAgKzUzLDEwIEBAIEpTVmFsdWUgdG9KUyhFeGVjU3Rh
dGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBCbG9iKiBibG9iKQogICAgIGlm
ICghYmxvYikKICAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwogCi0gICAgaWYgKGJsb2ItPmlzRmls
ZSgpKQotICAgICAgICByZXR1cm4gd3JhcDxKU0ZpbGU+KGdsb2JhbE9iamVjdCwgc3RhdGljX2Nh
c3Q8RmlsZSo+KGJsb2IpKTsKKyAgICBpZiAoaXM8RmlsZT4oKmJsb2IpKQorICAgICAgICByZXR1
cm4gd3JhcDxKU0ZpbGU+KGdsb2JhbE9iamVjdCwgZG93bmNhc3Q8RmlsZT4oKmJsb2IpKTsKIAot
ICAgIHJldHVybiB3cmFwPEpTQmxvYj4oZ2xvYmFsT2JqZWN0LCBibG9iKTsKKyAgICByZXR1cm4g
d3JhcDxKU0Jsb2I+KGdsb2JhbE9iamVjdCwgKmJsb2IpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGNvbnN0cnVjdEpTQmxvYihFeGVjU3RhdGUqIGV4ZWMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NhbnZhc1JlbmRlcmluZ0NvbnRleHRDdXN0
b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYW52YXNSZW5kZXJpbmdDb250
ZXh0Q3VzdG9tLmNwcAppbmRleCA3ZjUwNDM1ZjVhNjNkMjU4ZDJjMDNmY2NhMGYzNzg1ZDZiOWY0
YjAwLi42M2ZmNTg4Y2M5ZjA2NGIxZmNmMjViYTRhOGJlYWJmNWExN2IwNzBlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NhbnZhc1JlbmRlcmluZ0NvbnRleHRDdXN0
b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ2FudmFzUmVuZGVyaW5n
Q29udGV4dEN1c3RvbS5jcHAKQEAgLTUzLDE1ICs1MywxNCBAQCBKU0M6OkpTVmFsdWUgdG9KUyhK
U0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbnZhc1Jl
bmRlcgogICAgICAgICByZXR1cm4ganNOdWxsKCk7CiAKICNpZiBFTkFCTEUoV0VCR0wpCi0gICAg
aWYgKG9iamVjdC0+aXNXZWJHTDEoKSkKLSAgICAgICAgcmV0dXJuIHdyYXA8SlNXZWJHTFJlbmRl
cmluZ0NvbnRleHQ+KGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xSZW5kZXJpbmdDb250
ZXh0Kj4ob2JqZWN0KSk7CisgICAgaWYgKGlzPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4oKm9iamVj
dCkpCisgICAgICAgIHJldHVybiB3cmFwPEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0PihnbG9iYWxP
YmplY3QsIGRvd25jYXN0PFdlYkdMUmVuZGVyaW5nQ29udGV4dD4oKm9iamVjdCkpOwogI2lmIEVO
QUJMRShXRUJHTDIpCi0gICAgaWYgKG9iamVjdC0+aXNXZWJHTDIoKSkKLSAgICAgICAgcmV0dXJu
IHdyYXA8SlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0PihnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0
PFdlYkdMMlJlbmRlcmluZ0NvbnRleHQqPihvYmplY3QpKTsKKyAgICBpZiAoaXM8V2ViR0wyUmVu
ZGVyaW5nQ29udGV4dD4oKm9iamVjdCkpCisgICAgICAgIHJldHVybiB3cmFwPEpTV2ViR0wyUmVu
ZGVyaW5nQ29udGV4dD4oZ2xvYmFsT2JqZWN0LCBkb3duY2FzdDxXZWJHTDJSZW5kZXJpbmdDb250
ZXh0Pigqb2JqZWN0KSk7CiAjZW5kaWYKICNlbmRpZgotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZ
X0lNUExJQ0FUSU9OKG9iamVjdC0+aXMyZCgpKTsKLSAgICByZXR1cm4gd3JhcDxKU0NhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRD4oZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxDYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQqPihvYmplY3QpKTsKKyAgICByZXR1cm4gd3JhcDxKU0NhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRD4oZ2xvYmFsT2JqZWN0LCBkb3duY2FzdDxDYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQ+KCpvYmplY3QpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAppbmRleCA2Y2NkM2E1MTdkZmFkMzdkY2FjNThj
MWJhYWFiN2Q4YWU0NjE5NGYzLi41N2U2OTQxM2UwYTVjNzgyMDYyZDZmYmZmOTk3M2FmOWY5ODY0
ZWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaApAQCAtMjY3
LDEzICsyNjcsMTEgQEAgdGVtcGxhdGU8dHlwZW5hbWUgV3JhcHBlckNsYXNzLCB0eXBlbmFtZSBE
T01DbGFzcz4gaW5saW5lIEpTRE9NT2JqZWN0KiBjcmVhdGVXcmEKICAgICByZXR1cm4gd3JhcHBl
cjsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgV3JhcHBlckNsYXNzLCB0eXBlbmFtZSBET01DbGFz
cz4gaW5saW5lIEpTQzo6SlNWYWx1ZSB3cmFwKEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIERPTUNsYXNzKiBkb21PYmplY3QpCit0ZW1wbGF0ZTx0eXBlbmFtZSBXcmFwcGVyQ2xhc3Ms
IHR5cGVuYW1lIERPTUNsYXNzPiBpbmxpbmUgSlNDOjpKU1ZhbHVlIHdyYXAoSlNET01HbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgRE9NQ2xhc3MmIGRvbU9iamVjdCkKIHsKLSAgICBpZiAoIWRv
bU9iamVjdCkKLSAgICAgICAgcmV0dXJuIEpTQzo6anNOdWxsKCk7Ci0gICAgaWYgKEpTQzo6SlNP
YmplY3QqIHdyYXBwZXIgPSBnZXRDYWNoZWRXcmFwcGVyKGdsb2JhbE9iamVjdC0+d29ybGQoKSwg
ZG9tT2JqZWN0KSkKKyAgICBpZiAoSlNDOjpKU09iamVjdCogd3JhcHBlciA9IGdldENhY2hlZFdy
YXBwZXIoZ2xvYmFsT2JqZWN0LT53b3JsZCgpLCAmZG9tT2JqZWN0KSkKICAgICAgICAgcmV0dXJu
IHdyYXBwZXI7Ci0gICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXI8V3JhcHBlckNsYXNzPihnbG9iYWxP
YmplY3QsIGRvbU9iamVjdCk7CisgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXI8V3JhcHBlckNsYXNz
PihnbG9iYWxPYmplY3QsICZkb21PYmplY3QpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBXcmFw
cGVyQ2xhc3MsIHR5cGVuYW1lIERPTUNsYXNzPiBpbmxpbmUgSlNDOjpKU1ZhbHVlIGdldEV4aXN0
aW5nV3JhcHBlcihKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBET01DbGFzcyogZG9t
T2JqZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJREJDdXJz
b3JDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJREJDdXJzb3JDdXN0
b20uY3BwCmluZGV4IDI4NTk1NGUyZDIyNDU2ODI0NjQ4ZmE2NmQ2ODJhM2Y2OTg0Njc5YWMuLjE3
Yjk4NzE1ZjRjNTY5YjA4MmNiOWJkYTliODhkN2UyNDIzM2FmNjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSURCQ3Vyc29yQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0lEQkN1cnNvckN1c3RvbS5jcHAKQEAgLTU0LDkgKzU0LDEz
IEBAIEpTVmFsdWUgSlNJREJDdXJzb3I6OnNvdXJjZShFeGVjU3RhdGUmIHN0YXRlKSBjb25zdAog
CiBKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBJREJDdXJzb3IqIGN1cnNvcikKIHsKLSAgICBpZiAoY3Vyc29yLT5pc0tleUN1cnNv
cigpKQotICAgICAgICByZXR1cm4gd3JhcDxKU0lEQkN1cnNvcj4oZ2xvYmFsT2JqZWN0LCBjdXJz
b3IpOwotICAgIHJldHVybiB3cmFwPEpTSURCQ3Vyc29yV2l0aFZhbHVlPihnbG9iYWxPYmplY3Qs
IHN0YXRpY19jYXN0PElEQkN1cnNvcldpdGhWYWx1ZSo+KGN1cnNvcikpOworICAgIGlmICghY3Vy
c29yKQorICAgICAgICByZXR1cm4gSlNDOjpqc051bGwoKTsKKworICAgIGlmIChpczxJREJDdXJz
b3JXaXRoVmFsdWU+KCpjdXJzb3IpKQorICAgICAgICByZXR1cm4gd3JhcDxKU0lEQkN1cnNvcldp
dGhWYWx1ZT4oZ2xvYmFsT2JqZWN0LCBkb3duY2FzdDxJREJDdXJzb3JXaXRoVmFsdWUmPigqY3Vy
c29yKSk7CisKKyAgICByZXR1cm4gd3JhcDxKU0lEQkN1cnNvcj4oZ2xvYmFsT2JqZWN0LCAqY3Vy
c29yKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNNZWRpYVN0cmVhbUNhcGFiaWxpdGllc0N1c3RvbS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lZGlhU3RyZWFtQ2FwYWJpbGl0aWVzQ3VzdG9t
LmNwcAppbmRleCAzYmEwY2UyNDQxY2QzZTYxZDY4NGNkYWU4NGU5NTJhNGNiOWVjNWVhLi41NTY5
ZWQ2NmY4YTAyZDZhYWRjOGFmOWM5Yzc4NDMwZjY5ZjMxZWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lZGlhU3RyZWFtQ2FwYWJpbGl0aWVzQ3VzdG9tLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lZGlhU3RyZWFtQ2FwYWJpbGl0aWVz
Q3VzdG9tLmNwcApAQCAtNDMsOSArNDMsOSBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNT
dGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIE1lZGlhU3RyZWFtQwogICAg
ICAgICByZXR1cm4ganNOdWxsKCk7CiAKICAgICBpZiAob2JqZWN0LT5oYXNWaWRlb1NvdXJjZSgp
KQotICAgICAgICByZXR1cm4gd3JhcDxKU0FsbFZpZGVvQ2FwYWJpbGl0aWVzPihnbG9iYWxPYmpl
Y3QsIHN0YXRpY19jYXN0PEFsbFZpZGVvQ2FwYWJpbGl0aWVzKj4ob2JqZWN0KSk7CisgICAgICAg
IHJldHVybiB3cmFwPEpTQWxsVmlkZW9DYXBhYmlsaXRpZXM+KGdsb2JhbE9iamVjdCwgc3RhdGlj
X2Nhc3Q8QWxsVmlkZW9DYXBhYmlsaXRpZXM+KCpvYmplY3QpKTsKIAotICAgIHJldHVybiB3cmFw
PEpTQWxsQXVkaW9DYXBhYmlsaXRpZXM+KGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8QWxsQXVk
aW9DYXBhYmlsaXRpZXMqPihvYmplY3QpKTsKKyAgICByZXR1cm4gd3JhcDxKU0FsbEF1ZGlvQ2Fw
YWJpbGl0aWVzPihnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PEFsbEF1ZGlvQ2FwYWJpbGl0aWVz
Pigqb2JqZWN0KSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGVyZm9ybWFuY2VFbnRyeUN1c3RvbS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BlcmZvcm1hbmNlRW50cnlDdXN0b20uY3BwCmlu
ZGV4IGViZGQzN2Y4YzRjMjE3YjM5OTFmZWQzMGM4NTc0Nzk3NjFlZDIzMDMuLjc0ZGU1ZDJiZDkx
ZGFhNTU4MDViM2ExM2Q1ODU2ZTY1NzQ2NzE0N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTUGVyZm9ybWFuY2VFbnRyeUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNQZXJmb3JtYW5jZUVudHJ5Q3VzdG9tLmNwcApAQCAtNTIsMTkg
KzUyLDE5IEBAIEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBQZXJmb3JtYW5jZUVudHJ5KiBlbnRyCiAgICAgICAgIHJldHVybiBqc051bGwo
KTsKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9USU1JTkcpCi0gICAgaWYgKGVudHJ5LT5pc1Jlc291
cmNlKCkpCi0gICAgICAgIHJldHVybiB3cmFwPEpTUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZz4o
Z2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nKj4oZW50
cnkpKTsKKyAgICBpZiAoaXM8UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZz4oKmVudHJ5KSkKKyAg
ICAgICAgcmV0dXJuIHdyYXA8SlNQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nPihnbG9iYWxPYmpl
Y3QsIGRvd25jYXN0PFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc+KCplbnRyeSkpOwogI2VuZGlm
CiAKICNpZiBFTkFCTEUoVVNFUl9USU1JTkcpCi0gICAgaWYgKGVudHJ5LT5pc01hcmsoKSkKLSAg
ICAgICAgcmV0dXJuIHdyYXA8SlNQZXJmb3JtYW5jZU1hcms+KGdsb2JhbE9iamVjdCwgc3RhdGlj
X2Nhc3Q8UGVyZm9ybWFuY2VNYXJrKj4oZW50cnkpKTsKKyAgICBpZiAoaXM8UGVyZm9ybWFuY2VN
YXJrPigqZW50cnkpKQorICAgICAgICByZXR1cm4gd3JhcDxKU1BlcmZvcm1hbmNlTWFyaz4oZ2xv
YmFsT2JqZWN0LCBkb3duY2FzdDxQZXJmb3JtYW5jZU1hcms+KCplbnRyeSkpOwogCi0gICAgaWYg
KGVudHJ5LT5pc01lYXN1cmUoKSkKLSAgICAgICAgcmV0dXJuIHdyYXA8SlNQZXJmb3JtYW5jZU1l
YXN1cmU+KGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8UGVyZm9ybWFuY2VNZWFzdXJlKj4oZW50
cnkpKTsKKyAgICBpZiAoaXM8UGVyZm9ybWFuY2VNZWFzdXJlPigqZW50cnkpKQorICAgICAgICBy
ZXR1cm4gd3JhcDxKU1BlcmZvcm1hbmNlTWVhc3VyZT4oZ2xvYmFsT2JqZWN0LCBkb3duY2FzdDxQ
ZXJmb3JtYW5jZU1lYXN1cmU+KCplbnRyeSkpOwogI2VuZGlmCiAKLSAgICByZXR1cm4gd3JhcDxK
U1BlcmZvcm1hbmNlRW50cnk+KGdsb2JhbE9iamVjdCwgZW50cnkpOworICAgIHJldHVybiB3cmFw
PEpTUGVyZm9ybWFuY2VFbnRyeT4oZ2xvYmFsT2JqZWN0LCAqZW50cnkpOwogfQogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTDJSZW5kZXJpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TDJSZW5kZXJpbmdDb250ZXh0LmgKaW5kZXggY2VmNzQ3NGUyNDI5NzU4YmQwNmNiNDQxZTU0YmUz
ZGFiZDc5OTk2ZS4uNzM1ZmJkNDhiNzY5MjI2NTg5NTBlNzI1YTQ3NzFkMGQ4YmZmNDIzYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRl
eHQuaApAQCAtMjIwLDYgKzIyMCw4IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19DQU5WQVNSRU5ERVJJTkdDT05URVhUKFdlYkNv
cmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQsIGlzV2ViR0wyKCkpCisKICNlbmRpZiAvLyBXRUJH
TDIKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TFJlbmRlcmluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVu
ZGVyaW5nQ29udGV4dC5oCmluZGV4IGEyN2M2MDNjOWM0MDZjYjUwMWY0MTY2NzU1ODlkM2JhZmVk
OGFkODQuLjY0NDhmZDA1OTgyOTdiZmY4MzMxZWQ2OTk3OWExM2MyMmMzMjAyNmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oCkBA
IC04NSw0ICs4NSw2IEBAIHByb3RlY3RlZDoKICAgICAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19DQU5WQVNSRU5ERVJJTkdDT05URVhUKFdlYkNvcmU6
OldlYkdMUmVuZGVyaW5nQ29udGV4dCwgaXNXZWJHTDEoKSkKKwogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTWFyay5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9QZXJmb3JtYW5jZU1hcmsuaAppbmRleCBjZDcxYTAyNmZmMzFkNzFmMTRlYWNmODdkYTUw
NzBlMzZiMDdjYTg4Li42NTEwZTNmNmNkNTY4YWYzYTI4OWNiNmJiZDk4ODBkMTJkYzk1NDIyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTWFyay5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VNYXJrLmgKQEAgLTM0LDExICszNCwxMSBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFBlcmZvcm1hbmNlTWFyayA6IHB1YmxpYyBQ
ZXJmb3JtYW5jZUVudHJ5IHsKK2NsYXNzIFBlcmZvcm1hbmNlTWFyayBmaW5hbCA6IHB1YmxpYyBQ
ZXJmb3JtYW5jZUVudHJ5IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFBlcmZvcm1hbmNlTWFy
az4gY3JlYXRlKGNvbnN0IFN0cmluZyYgbmFtZSwgZG91YmxlIHN0YXJ0VGltZSkgeyByZXR1cm4g
YWRvcHRSZWYoKm5ldyBQZXJmb3JtYW5jZU1hcmsobmFtZSwgc3RhcnRUaW1lKSk7IH0KIAotICAg
IHZpcnR1YWwgYm9vbCBpc01hcmsoKSB7IHJldHVybiB0cnVlOyB9CisgICAgYm9vbCBpc01hcmso
KSBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAgICAgCiBwcml2YXRlOgogICAgIFBlcmZvcm1h
bmNlTWFyayhjb25zdCBTdHJpbmcmIG5hbWUsIGRvdWJsZSBzdGFydFRpbWUpIDogUGVyZm9ybWFu
Y2VFbnRyeShuYW1lLCAibWFyayIsIHN0YXJ0VGltZSwgc3RhcnRUaW1lKSB7IH0KQEAgLTQ3LDYg
KzQ3LDEwIEBAIHByaXZhdGU6CiAKIH0KIAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19CRUdJTihX
ZWJDb3JlOjpQZXJmb3JtYW5jZU1hcmspCisgICAgc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdl
YkNvcmU6OlBlcmZvcm1hbmNlRW50cnkmIGVudHJ5KSB7IHJldHVybiBlbnRyeS5pc01hcmsoKTsg
fQorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQorCiAjZW5kaWYgLy8gRU5BQkxFKFVTRVJf
VElNSU5HKQogCiAjZW5kaWYgLy8gIWRlZmluZWQoUGVyZm9ybWFuY2VNYXJrX2gpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTWVhc3VyZS5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QZXJmb3JtYW5jZU1lYXN1cmUuaAppbmRleCBhZjNlMzZlNTA2MTk0Y2YzMzk4
YjhmYWZlZjZiNjI4MzIzYWFmZDM0Li4xZDFmZDEwMjcwNWEyZDkyNjE2OTY2YjhlZTFlZDA0ZWI2
OGQzYmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTWVhc3Vy
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VNZWFzdXJlLmgKQEAgLTM0
LDExICszNCwxMSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFBlcmZvcm1hbmNl
TWVhc3VyZSA6IHB1YmxpYyBQZXJmb3JtYW5jZUVudHJ5IHsKK2NsYXNzIFBlcmZvcm1hbmNlTWVh
c3VyZSBmaW5hbCA6IHB1YmxpYyBQZXJmb3JtYW5jZUVudHJ5IHsKIHB1YmxpYzoKICAgICBzdGF0
aWMgUmVmPFBlcmZvcm1hbmNlTWVhc3VyZT4gY3JlYXRlKGNvbnN0IFN0cmluZyYgbmFtZSwgZG91
YmxlIHN0YXJ0VGltZSwgZG91YmxlIGR1cmF0aW9uKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFBl
cmZvcm1hbmNlTWVhc3VyZShuYW1lLCBzdGFydFRpbWUsIGR1cmF0aW9uKSk7IH0KIAotICAgIHZp
cnR1YWwgYm9vbCBpc01lYXN1cmUoKSB7IHJldHVybiB0cnVlOyB9CisgICAgYm9vbCBpc01lYXN1
cmUoKSBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKIHByaXZhdGU6CiAgICAgUGVyZm9ybWFu
Y2VNZWFzdXJlKGNvbnN0IFN0cmluZyYgbmFtZSwgZG91YmxlIHN0YXJ0VGltZSwgZG91YmxlIGR1
cmF0aW9uKSA6IFBlcmZvcm1hbmNlRW50cnkobmFtZSwgIm1lYXN1cmUiLCBzdGFydFRpbWUsIGR1
cmF0aW9uKSB7IH0KQEAgLTQ3LDYgKzQ3LDEwIEBAIHByaXZhdGU6CiAKIH0KIAorU1BFQ0lBTEla
RV9UWVBFX1RSQUlUU19CRUdJTihXZWJDb3JlOjpQZXJmb3JtYW5jZU1lYXN1cmUpCisgICAgc3Rh
dGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OlBlcmZvcm1hbmNlRW50cnkmIGVudHJ5KSB7
IHJldHVybiBlbnRyeS5pc01lYXN1cmUoKTsgfQorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQo
KQorCiAjZW5kaWYgLy8gRU5BQkxFKFVTRVJfVElNSU5HKQogCiAjZW5kaWYgLy8gIWRlZmluZWQo
UGVyZm9ybWFuY2VNZWFzdXJlX2gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bl
cmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFu
Y2VSZXNvdXJjZVRpbWluZy5oCmluZGV4IDk5ZGZjNWJjZGNkYzc5ZTM1M2U5NDkzNmM0ODI4NTM2
MTdjNWY1M2YuLmNiZDg5MTI3NjVlN2MwMzk0YTJiZmMwMWRjZDEzOGFhYWM3M2I1ZmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5oCkBAIC00
OCw3ICs0OCw3IEBAIGNsYXNzIFJlc291cmNlTG9hZFRpbWluZzsKIGNsYXNzIFJlc291cmNlUmVx
dWVzdDsKIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CiAKLWNsYXNzIFBlcmZvcm1hbmNlUmVzb3Vy
Y2VUaW1pbmcgOiBwdWJsaWMgUGVyZm9ybWFuY2VFbnRyeSB7CitjbGFzcyBQZXJmb3JtYW5jZVJl
c291cmNlVGltaW5nIGZpbmFsIDogcHVibGljIFBlcmZvcm1hbmNlRW50cnkgewogcHVibGljOgog
ICAgIHN0YXRpYyBSZWY8UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZz4gY3JlYXRlKGNvbnN0IEF0
b21pY1N0cmluZyYgaW5pdGlhdG9yVHlwZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgZG91YmxlIGluaXRpYXRpb25UaW1l
LCBkb3VibGUgZmluaXNoVGltZSwgRG9jdW1lbnQqIHJlcXVlc3RpbmdEb2N1bWVudCkKICAgICB7
CkBAIC02OCw3ICs2OCw3IEBAIHB1YmxpYzoKICAgICBkb3VibGUgcmVxdWVzdFN0YXJ0KCkgY29u
c3Q7CiAgICAgZG91YmxlIHJlc3BvbnNlRW5kKCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIGJvb2wg
aXNSZXNvdXJjZSgpIHsgcmV0dXJuIHRydWU7IH0KKyAgICBib29sIGlzUmVzb3VyY2UoKSBvdmVy
cmlkZSB7IHJldHVybiB0cnVlOyB9CiAKIHByaXZhdGU6CiAgICAgUGVyZm9ybWFuY2VSZXNvdXJj
ZVRpbWluZyhjb25zdCBBdG9taWNTdHJpbmcmIGluaXRhdG9yVHlwZSwgY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGRvdWJsZSBpbml0aWF0aW9uVGltZSwg
ZG91YmxlIGZpbmlzaFRpbWUsIERvY3VtZW50Kik7CkBAIC04NSw2ICs4NSwxMSBAQCBwcml2YXRl
OgogCiB9CiAKKworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19CRUdJTihXZWJDb3JlOjpQZXJmb3Jt
YW5jZVJlc291cmNlVGltaW5nKQorICAgIHN0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3Jl
OjpQZXJmb3JtYW5jZUVudHJ5JiBlbnRyeSkgeyByZXR1cm4gZW50cnkuaXNSZXNvdXJjZSgpOyB9
CitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCisKICNlbmRpZiAvLyBFTkFCTEUoUkVTT1VS
Q0VfVElNSU5HKQogCiAjZW5kaWYgLy8gIWRlZmluZWQoUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWlu
Z19oKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277792</attachid>
            <date>2016-04-29 21:06:03 -0700</date>
            <delta_ts>2016-04-29 21:16:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157224-20160429210636.patch</filename>
            <type>text/plain</type>
            <size>17479</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAwMjgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDk1ZjI3YzUwYzE5ODIz
OTNjYmMwYmViOWFlYzYwYzU1NjcxNzRjNy4uODNkNmMyNjg0MGZkYzhkOTliNzg5YWE3OGYyNTA5
YmZkZDc2ZGNiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDE2LTA0LTI5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgR2V0IHJpZCBvZiB1bm5lY2Vz
c2FyeSBudWxsIGNoZWNrIGluIHdyYXAoSlNET01HbG9iYWxPYmplY3QqLCBET01DbGFzcyopCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTcyMjQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCisKKyAgICAgICAgR2V0IHJpZCBvZiB1
bm5lY2Vzc2FyeSBudWxsIGNoZWNrIGluIHdyYXAoSlNET01HbG9iYWxPYmplY3QqLCBET01DbGFz
cyopCisgICAgICAgIHNpbmNlIGFsbCB0aGUgY2FsbCBzaXRlcyBhbHJlYWR5IGRvIGEgbnVsbCBj
aGVjay4gQWxzbyB1cGRhdGUgdGhlIGZ1bmN0aW9uCisgICAgICAgIHRvIHRha2UgdGhlIGltcGxl
bWVudGF0aW9uIG9iamVjdCBieSByZWZlcmVuY2UgaW5zdGVhZCBvZiBwb2ludGVyLiBGaW5hbGx5
LAorICAgICAgICB1c2UgaXM8PigpIC8gZG93bmNhc3Q8PigpIG1vcmUgYXQgdGhlIGNhbGwgc2l0
ZXMuCisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SURCQ3Vyc29yOjp1cGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vy
c29yOjpkZWxldGVGdW5jdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3I6OnNldEdl
dFJlc3VsdCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmg6CisgICAg
ICAgIChXZWJDb3JlOjpJREJDdXJzb3I6OmlzS2V5Q3Vyc29yV2l0aFZhbHVlKToKKyAgICAgICAg
KFdlYkNvcmU6OklEQkN1cnNvcjo6aXNLZXlDdXJzb3IpOiBEZWxldGVkLgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvcldpdGhWYWx1ZS5oOgorICAgICAgICAoaXNUeXBlKToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0Jsb2JDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6dG9KUyk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0
Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTRE9NQmluZGluZy5oOgorICAgICAgICAoV2ViQ29yZTo6d3JhcCk6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNJREJDdXJzb3JDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9K
Uyk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNNZWRpYVN0cmVhbUNhcGFiaWxpdGllc0N1c3Rv
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b0pTKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9K
U1BlcmZvcm1hbmNlRW50cnlDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6Cisg
ICAgICAgICogaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5oOgorICAgICAgICAq
IGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oOgorICAgICAgICAqIHBhZ2UvUGVy
Zm9ybWFuY2VNYXJrLmg6CisgICAgICAgIChpc1R5cGUpOgorICAgICAgICAoV2ViQ29yZTo6UGVy
Zm9ybWFuY2VNYXJrOjppc01hcmspOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFu
Y2VNZWFzdXJlLmg6CisgICAgICAgIChpc1R5cGUpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9y
bWFuY2VNZWFzdXJlOjppc01lYXN1cmUpOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2UvUGVyZm9y
bWFuY2VSZXNvdXJjZVRpbWluZy5oOgorICAgICAgICAoaXNUeXBlKToKKyAgICAgICAgKFdlYkNv
cmU6OlBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OmlzUmVzb3VyY2UpOiBEZWxldGVkLgorCiAy
MDE2LTA0LTI5ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAg
ICAgIENsZWFuIHVwIEdyYXBoaWNzQ29udGV4dCB1c2UgaW4gUmVuZGVyTGF5ZXI6OnBhaW50TGF5
ZXJDb250ZW50cygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJDdXJzb3IuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vy
c29yLmNwcAppbmRleCBkZmYxYzdjZjZlZGE0MDE2NThlMzc3NjM4YTg0ZTAzNTA4OWFkY2MxLi4w
MTNjN2Y3ODFjYmEyNTY1MmJjNDc3M2U0N2ZiNTBjOWNiMTZlOWRhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHAKQEAgLTE4Nyw3ICsxODcsNyBA
QCBSZWZQdHI8V2ViQ29yZTo6SURCUmVxdWVzdD4gSURCQ3Vyc29yOjp1cGRhdGUoRXhlY1N0YXRl
JiBleGVjLCBKU1ZhbHVlIHZhbHVlLCBFeAogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9
CiAKLSAgICBpZiAoaXNLZXlDdXJzb3IoKSkgeworICAgIGlmICghaXNLZXlDdXJzb3JXaXRoVmFs
dWUoKSkgewogICAgICAgICBlYy5jb2RlID0gSURCRGF0YWJhc2VFeGNlcHRpb246OkludmFsaWRT
dGF0ZUVycm9yOwogICAgICAgICBlYy5tZXNzYWdlID0gQVNDSUlMaXRlcmFsKCJGYWlsZWQgdG8g
ZXhlY3V0ZSAndXBkYXRlJyBvbiAnSURCQ3Vyc29yJzogVGhlIGN1cnNvciBpcyBhIGtleSBjdXJz
b3IuIik7CiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtMzUwLDcgKzM1MCw3IEBAIFJlZlB0
cjxXZWJDb3JlOjpJREJSZXF1ZXN0PiBJREJDdXJzb3I6OmRlbGV0ZUZ1bmN0aW9uKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAotICAg
IGlmIChpc0tleUN1cnNvcigpKSB7CisgICAgaWYgKCFpc0tleUN1cnNvcldpdGhWYWx1ZSgpKSB7
CiAgICAgICAgIGVjLmNvZGUgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6SW52YWxpZFN0YXRlRXJy
b3I7CiAgICAgICAgIGVjLm1lc3NhZ2UgPSBBU0NJSUxpdGVyYWwoIkZhaWxlZCB0byBleGVjdXRl
ICdkZWxldGUnIG9uICdJREJDdXJzb3InOiBUaGUgY3Vyc29yIGlzIGEga2V5IGN1cnNvci4iKTsK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC0zOTMsMTAgKzM5MywxMCBAQCB2b2lkIElEQkN1
cnNvcjo6c2V0R2V0UmVzdWx0KElEQlJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IElEQkdldFJlc3Vs
dCYgZ2V0UmVzdWx0KQogICAgIG1fY3VycmVudFByaW1hcnlLZXkgPSB7IHZtLCBpZGJLZXlEYXRh
VG9TY3JpcHRWYWx1ZSgqY29udGV4dCwgZ2V0UmVzdWx0LnByaW1hcnlLZXlEYXRhKCkpIH07CiAg
ICAgbV9jdXJyZW50UHJpbWFyeUtleURhdGEgPSBnZXRSZXN1bHQucHJpbWFyeUtleURhdGEoKTsK
IAotICAgIGlmIChpc0tleUN1cnNvcigpKQotICAgICAgICBtX2N1cnJlbnRWYWx1ZSA9IHsgfTsK
LSAgICBlbHNlCisgICAgaWYgKGlzS2V5Q3Vyc29yV2l0aFZhbHVlKCkpCiAgICAgICAgIG1fY3Vy
cmVudFZhbHVlID0geyB2bSwgZGVzZXJpYWxpemVJREJWYWx1ZVRvSlNWYWx1ZSgqY29udGV4dCwg
Z2V0UmVzdWx0LnZhbHVlKCkpIH07CisgICAgZWxzZQorICAgICAgICBtX2N1cnJlbnRWYWx1ZSA9
IHsgfTsKIAogICAgIG1fZ290VmFsdWUgPSB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuaAppbmRleCAyNGI3MDlhMzA0NWFhYzU5MTBjMmI4NDQ2
YzVmMTE3ZTA0Njc0YzJjLi43NzVkYWZiODY0ODcxYmY5MThlNDg5YWRjNWYyZjA5ZGEyY2FmMGFl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3Iu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuaApAQCAt
NzcsNyArNzcsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldEdldFJlc3VsdChJREJSZXF1ZXN0
JiwgY29uc3QgSURCR2V0UmVzdWx0Jik7CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNLZXlDdXJzb3Io
KSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIGlzS2V5Q3Vyc29yV2l0
aFZhbHVlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZvaWQgZGVjcmVtZW50T3V0
c3RhbmRpbmdSZXF1ZXN0Q291bnQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yV2l0aFZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JXaXRoVmFsdWUuaAppbmRleCAxZWU1ZGQ1ZmNjNzcwMzlk
Mjc4NmVmMDUzMTI4OTViZDNmZjY0ZDE2Li5mNzg4OTFiN2Q4NDYyZjJlOGM2Y2JmMTFkZTZhYjkx
NWY2MzUwOGJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJDdXJzb3JXaXRoVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJDdXJzb3JXaXRoVmFsdWUuaApAQCAtMjgsNiArMjgsNyBAQAogI2lmIEVOQUJMRShJTkRF
WEVEX0RBVEFCQVNFKQogCiAjaW5jbHVkZSAiSURCQ3Vyc29yLmgiCisjaW5jbHVkZSA8d3RmL1R5
cGVDYXN0cy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM4LDcgKzM5LDcgQEAgcHVi
bGljOgogCiAgICAgdmlydHVhbCB+SURCQ3Vyc29yV2l0aFZhbHVlKCk7CiAKLSAgICBib29sIGlz
S2V5Q3Vyc29yKCkgY29uc3QgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBib29sIGlzS2V5
Q3Vyc29yV2l0aFZhbHVlKCkgY29uc3QgIG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAogcHJp
dmF0ZToKICAgICBJREJDdXJzb3JXaXRoVmFsdWUoSURCVHJhbnNhY3Rpb24mLCBJREJPYmplY3RT
dG9yZSYsIGNvbnN0IElEQkN1cnNvckluZm8mKTsKQEAgLTQ3LDQgKzQ4LDggQEAgcHJpdmF0ZToK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lO
KFdlYkNvcmU6OklEQkN1cnNvcldpdGhWYWx1ZSkKKyAgICBzdGF0aWMgYm9vbCBpc1R5cGUoY29u
c3QgV2ViQ29yZTo6SURCQ3Vyc29yJiBjdXJzb3IpIHsgcmV0dXJuIGN1cnNvci5pc0tleUN1cnNv
cldpdGhWYWx1ZSgpOyB9CitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCisKICNlbmRpZiAv
LyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTQmxvYkN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0Jsb2JDdXN0b20uY3BwCmluZGV4IGFkZTVhMGE5MzZjZWNiMTg4MzVlYTA0ZDFlMGM4MGFjOWZh
MjBhNWEuLmRkOWI0MWU4ZWRkMjgyZWM5MjFjYTFjYmMzZmEzMWQ2MmU4MzNhNTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmxvYkN1c3RvbS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCbG9iQ3VzdG9tLmNwcApAQCAtNTMsMTAgKzUzLDEw
IEBAIEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBCbG9iKiBibG9iKQogICAgIGlmICghYmxvYikKICAgICAgICAgcmV0dXJuIGpzTnVsbCgp
OwogCi0gICAgaWYgKGJsb2ItPmlzRmlsZSgpKQotICAgICAgICByZXR1cm4gd3JhcDxKU0ZpbGU+
KGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8RmlsZSo+KGJsb2IpKTsKKyAgICBpZiAoaXM8Rmls
ZT4oKmJsb2IpKQorICAgICAgICByZXR1cm4gd3JhcDxKU0ZpbGU+KGdsb2JhbE9iamVjdCwgZG93
bmNhc3Q8RmlsZT4oKmJsb2IpKTsKIAotICAgIHJldHVybiB3cmFwPEpTQmxvYj4oZ2xvYmFsT2Jq
ZWN0LCBibG9iKTsKKyAgICByZXR1cm4gd3JhcDxKU0Jsb2I+KGdsb2JhbE9iamVjdCwgKmJsb2Ip
OwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEpTQmxvYihFeGVj
U3RhdGUqIGV4ZWMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAppbmRleCA3ZjUwNDM1ZjVhNjNk
MjU4ZDJjMDNmY2NhMGYzNzg1ZDZiOWY0YjAwLi42M2ZmNTg4Y2M5ZjA2NGIxZmNmMjViYTRhOGJl
YWJmNWExN2IwNzBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTQ2FudmFzUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKQEAgLTUzLDE1ICs1Mywx
NCBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbnZhc1JlbmRlcgogICAgICAgICByZXR1cm4ganNOdWxsKCk7CiAK
ICNpZiBFTkFCTEUoV0VCR0wpCi0gICAgaWYgKG9iamVjdC0+aXNXZWJHTDEoKSkKLSAgICAgICAg
cmV0dXJuIHdyYXA8SlNXZWJHTFJlbmRlcmluZ0NvbnRleHQ+KGdsb2JhbE9iamVjdCwgc3RhdGlj
X2Nhc3Q8V2ViR0xSZW5kZXJpbmdDb250ZXh0Kj4ob2JqZWN0KSk7CisgICAgaWYgKGlzPFdlYkdM
UmVuZGVyaW5nQ29udGV4dD4oKm9iamVjdCkpCisgICAgICAgIHJldHVybiB3cmFwPEpTV2ViR0xS
ZW5kZXJpbmdDb250ZXh0PihnbG9iYWxPYmplY3QsIGRvd25jYXN0PFdlYkdMUmVuZGVyaW5nQ29u
dGV4dD4oKm9iamVjdCkpOwogI2lmIEVOQUJMRShXRUJHTDIpCi0gICAgaWYgKG9iamVjdC0+aXNX
ZWJHTDIoKSkKLSAgICAgICAgcmV0dXJuIHdyYXA8SlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0Pihn
bG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdMMlJlbmRlcmluZ0NvbnRleHQqPihvYmplY3Qp
KTsKKyAgICBpZiAoaXM8V2ViR0wyUmVuZGVyaW5nQ29udGV4dD4oKm9iamVjdCkpCisgICAgICAg
IHJldHVybiB3cmFwPEpTV2ViR0wyUmVuZGVyaW5nQ29udGV4dD4oZ2xvYmFsT2JqZWN0LCBkb3du
Y2FzdDxXZWJHTDJSZW5kZXJpbmdDb250ZXh0Pigqb2JqZWN0KSk7CiAjZW5kaWYKICNlbmRpZgot
ICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKG9iamVjdC0+aXMyZCgpKTsKLSAg
ICByZXR1cm4gd3JhcDxKU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4oZ2xvYmFsT2JqZWN0LCBz
dGF0aWNfY2FzdDxDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQqPihvYmplY3QpKTsKKyAgICByZXR1
cm4gd3JhcDxKU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4oZ2xvYmFsT2JqZWN0LCBkb3duY2Fz
dDxDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+KCpvYmplY3QpKTsKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01C
aW5kaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAppbmRl
eCA2Y2NkM2E1MTdkZmFkMzdkY2FjNThjMWJhYWFiN2Q4YWU0NjE5NGYzLi41N2U2OTQxM2UwYTVj
NzgyMDYyZDZmYmZmOTk3M2FmOWY5ODY0ZWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTUJpbmRpbmcuaApAQCAtMjY3LDEzICsyNjcsMTEgQEAgdGVtcGxhdGU8dHlwZW5hbWUg
V3JhcHBlckNsYXNzLCB0eXBlbmFtZSBET01DbGFzcz4gaW5saW5lIEpTRE9NT2JqZWN0KiBjcmVh
dGVXcmEKICAgICByZXR1cm4gd3JhcHBlcjsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgV3JhcHBl
ckNsYXNzLCB0eXBlbmFtZSBET01DbGFzcz4gaW5saW5lIEpTQzo6SlNWYWx1ZSB3cmFwKEpTRE9N
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERPTUNsYXNzKiBkb21PYmplY3QpCit0ZW1wbGF0
ZTx0eXBlbmFtZSBXcmFwcGVyQ2xhc3MsIHR5cGVuYW1lIERPTUNsYXNzPiBpbmxpbmUgSlNDOjpK
U1ZhbHVlIHdyYXAoSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRE9NQ2xhc3MmIGRv
bU9iamVjdCkKIHsKLSAgICBpZiAoIWRvbU9iamVjdCkKLSAgICAgICAgcmV0dXJuIEpTQzo6anNO
dWxsKCk7Ci0gICAgaWYgKEpTQzo6SlNPYmplY3QqIHdyYXBwZXIgPSBnZXRDYWNoZWRXcmFwcGVy
KGdsb2JhbE9iamVjdC0+d29ybGQoKSwgZG9tT2JqZWN0KSkKKyAgICBpZiAoSlNDOjpKU09iamVj
dCogd3JhcHBlciA9IGdldENhY2hlZFdyYXBwZXIoZ2xvYmFsT2JqZWN0LT53b3JsZCgpLCAmZG9t
T2JqZWN0KSkKICAgICAgICAgcmV0dXJuIHdyYXBwZXI7Ci0gICAgcmV0dXJuIGNyZWF0ZVdyYXBw
ZXI8V3JhcHBlckNsYXNzPihnbG9iYWxPYmplY3QsIGRvbU9iamVjdCk7CisgICAgcmV0dXJuIGNy
ZWF0ZVdyYXBwZXI8V3JhcHBlckNsYXNzPihnbG9iYWxPYmplY3QsICZkb21PYmplY3QpOwogfQog
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBXcmFwcGVyQ2xhc3MsIHR5cGVuYW1lIERPTUNsYXNzPiBpbmxp
bmUgSlNDOjpKU1ZhbHVlIGdldEV4aXN0aW5nV3JhcHBlcihKU0RPTUdsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBET01DbGFzcyogZG9tT2JqZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNJREJDdXJzb3JDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNJREJDdXJzb3JDdXN0b20uY3BwCmluZGV4IDI4NTk1NGUyZDIyNDU2ODI0NjQ4
ZmE2NmQ2ODJhM2Y2OTg0Njc5YWMuLjI0MmI5ODVhOWU4ZDNiZjJiZDc4MGFkOTFmNTVlYmQ1Y2E4
NzdmNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSURCQ3Vyc29y
Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0lEQkN1cnNvckN1
c3RvbS5jcHAKQEAgLTU0LDkgKzU0LDEzIEBAIEpTVmFsdWUgSlNJREJDdXJzb3I6OnNvdXJjZShF
eGVjU3RhdGUmIHN0YXRlKSBjb25zdAogCiBKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBK
U0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBJREJDdXJzb3IqIGN1cnNvcikKIHsKLSAg
ICBpZiAoY3Vyc29yLT5pc0tleUN1cnNvcigpKQotICAgICAgICByZXR1cm4gd3JhcDxKU0lEQkN1
cnNvcj4oZ2xvYmFsT2JqZWN0LCBjdXJzb3IpOwotICAgIHJldHVybiB3cmFwPEpTSURCQ3Vyc29y
V2l0aFZhbHVlPihnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PElEQkN1cnNvcldpdGhWYWx1ZSo+
KGN1cnNvcikpOworICAgIGlmICghY3Vyc29yKQorICAgICAgICByZXR1cm4gSlNDOjpqc051bGwo
KTsKKworICAgIGlmIChpczxJREJDdXJzb3JXaXRoVmFsdWU+KCpjdXJzb3IpKQorICAgICAgICBy
ZXR1cm4gd3JhcDxKU0lEQkN1cnNvcldpdGhWYWx1ZT4oZ2xvYmFsT2JqZWN0LCBkb3duY2FzdDxJ
REJDdXJzb3JXaXRoVmFsdWU+KCpjdXJzb3IpKTsKKworICAgIHJldHVybiB3cmFwPEpTSURCQ3Vy
c29yPihnbG9iYWxPYmplY3QsICpjdXJzb3IpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lZGlhU3RyZWFtQ2Fw
YWJpbGl0aWVzQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVkaWFT
dHJlYW1DYXBhYmlsaXRpZXNDdXN0b20uY3BwCmluZGV4IDNiYTBjZTI0NDFjZDNlNjFkNjg0Y2Rh
ZTg0ZTk1MmE0Y2I5ZWM1ZWEuLjU1NjllZDY2ZjhhMDJkNmFhZGM4YWY5YzljNzg0MzBmNjlmMzFl
ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVkaWFTdHJlYW1D
YXBhYmlsaXRpZXNDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
TWVkaWFTdHJlYW1DYXBhYmlsaXRpZXNDdXN0b20uY3BwCkBAIC00Myw5ICs0Myw5IEBAIEpTQzo6
SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgTWVkaWFTdHJlYW1DCiAgICAgICAgIHJldHVybiBqc051bGwoKTsKIAogICAgIGlmIChv
YmplY3QtPmhhc1ZpZGVvU291cmNlKCkpCi0gICAgICAgIHJldHVybiB3cmFwPEpTQWxsVmlkZW9D
YXBhYmlsaXRpZXM+KGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8QWxsVmlkZW9DYXBhYmlsaXRp
ZXMqPihvYmplY3QpKTsKKyAgICAgICAgcmV0dXJuIHdyYXA8SlNBbGxWaWRlb0NhcGFiaWxpdGll
cz4oZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxBbGxWaWRlb0NhcGFiaWxpdGllcz4oKm9iamVj
dCkpOwogCi0gICAgcmV0dXJuIHdyYXA8SlNBbGxBdWRpb0NhcGFiaWxpdGllcz4oZ2xvYmFsT2Jq
ZWN0LCBzdGF0aWNfY2FzdDxBbGxBdWRpb0NhcGFiaWxpdGllcyo+KG9iamVjdCkpOworICAgIHJl
dHVybiB3cmFwPEpTQWxsQXVkaW9DYXBhYmlsaXRpZXM+KGdsb2JhbE9iamVjdCwgc3RhdGljX2Nh
c3Q8QWxsQXVkaW9DYXBhYmlsaXRpZXM+KCpvYmplY3QpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQZXJmb3Jt
YW5jZUVudHJ5Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGVyZm9y
bWFuY2VFbnRyeUN1c3RvbS5jcHAKaW5kZXggZWJkZDM3ZjhjNGMyMTdiMzk5MWZlZDMwYzg1NzQ3
OTc2MWVkMjMwMy4uNzRkZTVkMmJkOTFkYWE1NTgwNWIzYTEzZDU4NTZlNjU3NDY3MTQ3ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQZXJmb3JtYW5jZUVudHJ5Q3Vz
dG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BlcmZvcm1hbmNlRW50
cnlDdXN0b20uY3BwCkBAIC01MiwxOSArNTIsMTkgQEAgSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSos
IEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFBlcmZvcm1hbmNlRW50cnkqIGVudHIK
ICAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwogCiAjaWYgRU5BQkxFKFJFU09VUkNFX1RJTUlORykK
LSAgICBpZiAoZW50cnktPmlzUmVzb3VyY2UoKSkKLSAgICAgICAgcmV0dXJuIHdyYXA8SlNQZXJm
b3JtYW5jZVJlc291cmNlVGltaW5nPihnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFBlcmZvcm1h
bmNlUmVzb3VyY2VUaW1pbmcqPihlbnRyeSkpOworICAgIGlmIChpczxQZXJmb3JtYW5jZVJlc291
cmNlVGltaW5nPigqZW50cnkpKQorICAgICAgICByZXR1cm4gd3JhcDxKU1BlcmZvcm1hbmNlUmVz
b3VyY2VUaW1pbmc+KGdsb2JhbE9iamVjdCwgZG93bmNhc3Q8UGVyZm9ybWFuY2VSZXNvdXJjZVRp
bWluZz4oKmVudHJ5KSk7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShVU0VSX1RJTUlORykKLSAgICBp
ZiAoZW50cnktPmlzTWFyaygpKQotICAgICAgICByZXR1cm4gd3JhcDxKU1BlcmZvcm1hbmNlTWFy
az4oZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxQZXJmb3JtYW5jZU1hcmsqPihlbnRyeSkpOwor
ICAgIGlmIChpczxQZXJmb3JtYW5jZU1hcms+KCplbnRyeSkpCisgICAgICAgIHJldHVybiB3cmFw
PEpTUGVyZm9ybWFuY2VNYXJrPihnbG9iYWxPYmplY3QsIGRvd25jYXN0PFBlcmZvcm1hbmNlTWFy
az4oKmVudHJ5KSk7CiAKLSAgICBpZiAoZW50cnktPmlzTWVhc3VyZSgpKQotICAgICAgICByZXR1
cm4gd3JhcDxKU1BlcmZvcm1hbmNlTWVhc3VyZT4oZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxQ
ZXJmb3JtYW5jZU1lYXN1cmUqPihlbnRyeSkpOworICAgIGlmIChpczxQZXJmb3JtYW5jZU1lYXN1
cmU+KCplbnRyeSkpCisgICAgICAgIHJldHVybiB3cmFwPEpTUGVyZm9ybWFuY2VNZWFzdXJlPihn
bG9iYWxPYmplY3QsIGRvd25jYXN0PFBlcmZvcm1hbmNlTWVhc3VyZT4oKmVudHJ5KSk7CiAjZW5k
aWYKIAotICAgIHJldHVybiB3cmFwPEpTUGVyZm9ybWFuY2VFbnRyeT4oZ2xvYmFsT2JqZWN0LCBl
bnRyeSk7CisgICAgcmV0dXJuIHdyYXA8SlNQZXJmb3JtYW5jZUVudHJ5PihnbG9iYWxPYmplY3Qs
ICplbnRyeSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuaAppbmRleCBjZWY3NDc0
ZTI0Mjk3NThiZDA2Y2I0NDFlNTRiZTNkYWJkNzk5OTZlLi43MzVmYmQ0OGI3NjkyMjY1ODk1MGU3
MjVhNDc3MWQwZDhiZmY0MjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5oCkBAIC0yMjAsNiArMjIwLDggQEAgcHJpdmF0ZToK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0NBTlZB
U1JFTkRFUklOR0NPTlRFWFQoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dCwgaXNXZWJH
TDIoKSkKKwogI2VuZGlmIC8vIFdFQkdMMgogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgKaW5kZXggYTI3YzYwM2M5YzQw
NmNiNTAxZjQxNjY3NTU4OWQzYmFmZWQ4YWQ4NC4uNjQ0OGZkMDU5ODI5N2JmZjgzMzFlZDY5OTc5
YTEzYzIyYzMyMDI2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xSZW5kZXJpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xSZW5kZXJpbmdDb250ZXh0LmgKQEAgLTg1LDQgKzg1LDYgQEAgcHJvdGVjdGVkOgogICAgIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0NBTlZBU1JF
TkRFUklOR0NPTlRFWFQoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0LCBpc1dlYkdMMSgp
KQorCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VF
bnRyeS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUVudHJ5LmgKaW5kZXggMTI5
YTI0NjQwY2M0ZDJhMzVjYWVhYjZiYTJmMWFmYzgxODRmMzYyYi4uMjg2YjkzYTljMTViOTY0YmQ1
MzA5OWM4NWU3ZDFmOTFlMzg4ODdhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Q
ZXJmb3JtYW5jZUVudHJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUVu
dHJ5LmgKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJQZXJmb3JtYW5jZS5oIgogI2luY2x1
ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNs
dWRlIDx3dGYvVHlwZUNhc3RzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVy
Zm9ybWFuY2VNYXJrLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTWFyay5oCmlu
ZGV4IGNkNzFhMDI2ZmYzMWQ3MWYxNGVhY2Y4N2RhNTA3MGUzNmIwN2NhODguLjY1MTBlM2Y2Y2Q1
NjhhZjNhMjg5Y2I2YmJkOTg4MGQxMmRjOTU0MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGVyZm9ybWFuY2VNYXJrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3Jt
YW5jZU1hcmsuaApAQCAtMzQsMTEgKzM0LDExIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
Y2xhc3MgUGVyZm9ybWFuY2VNYXJrIDogcHVibGljIFBlcmZvcm1hbmNlRW50cnkgeworY2xhc3Mg
UGVyZm9ybWFuY2VNYXJrIGZpbmFsIDogcHVibGljIFBlcmZvcm1hbmNlRW50cnkgewogcHVibGlj
OgogICAgIHN0YXRpYyBSZWY8UGVyZm9ybWFuY2VNYXJrPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBu
YW1lLCBkb3VibGUgc3RhcnRUaW1lKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFBlcmZvcm1hbmNl
TWFyayhuYW1lLCBzdGFydFRpbWUpKTsgfQogCi0gICAgdmlydHVhbCBib29sIGlzTWFyaygpIHsg
cmV0dXJuIHRydWU7IH0KKyAgICBib29sIGlzTWFyaygpIG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7
IH0KICAgICAKIHByaXZhdGU6CiAgICAgUGVyZm9ybWFuY2VNYXJrKGNvbnN0IFN0cmluZyYgbmFt
ZSwgZG91YmxlIHN0YXJ0VGltZSkgOiBQZXJmb3JtYW5jZUVudHJ5KG5hbWUsICJtYXJrIiwgc3Rh
cnRUaW1lLCBzdGFydFRpbWUpIHsgfQpAQCAtNDcsNiArNDcsMTAgQEAgcHJpdmF0ZToKIAogfQog
CitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lOKFdlYkNvcmU6OlBlcmZvcm1hbmNlTWFyaykK
KyAgICBzdGF0aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6UGVyZm9ybWFuY2VFbnRyeSYg
ZW50cnkpIHsgcmV0dXJuIGVudHJ5LmlzTWFyaygpOyB9CitTUEVDSUFMSVpFX1RZUEVfVFJBSVRT
X0VORCgpCisKICNlbmRpZiAvLyBFTkFCTEUoVVNFUl9USU1JTkcpCiAKICNlbmRpZiAvLyAhZGVm
aW5lZChQZXJmb3JtYW5jZU1hcmtfaCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGVyZm9ybWFuY2VNZWFzdXJlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTWVh
c3VyZS5oCmluZGV4IGFmM2UzNmU1MDYxOTRjZjMzOThiOGZhZmVmNmI2MjgzMjNhYWZkMzQuLjFk
MWZkMTAyNzA1YTJkOTI2MTY5NjZiOGVlMWVkMDRlYjY4ZDNiY2IgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VNZWFzdXJlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9QZXJmb3JtYW5jZU1lYXN1cmUuaApAQCAtMzQsMTEgKzM0LDExIEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotY2xhc3MgUGVyZm9ybWFuY2VNZWFzdXJlIDogcHVibGljIFBlcmZvcm1h
bmNlRW50cnkgeworY2xhc3MgUGVyZm9ybWFuY2VNZWFzdXJlIGZpbmFsIDogcHVibGljIFBlcmZv
cm1hbmNlRW50cnkgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8UGVyZm9ybWFuY2VNZWFzdXJl
PiBjcmVhdGUoY29uc3QgU3RyaW5nJiBuYW1lLCBkb3VibGUgc3RhcnRUaW1lLCBkb3VibGUgZHVy
YXRpb24pIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGVyZm9ybWFuY2VNZWFzdXJlKG5hbWUsIHN0
YXJ0VGltZSwgZHVyYXRpb24pKTsgfQogCi0gICAgdmlydHVhbCBib29sIGlzTWVhc3VyZSgpIHsg
cmV0dXJuIHRydWU7IH0KKyAgICBib29sIGlzTWVhc3VyZSgpIG92ZXJyaWRlIHsgcmV0dXJuIHRy
dWU7IH0KIAogcHJpdmF0ZToKICAgICBQZXJmb3JtYW5jZU1lYXN1cmUoY29uc3QgU3RyaW5nJiBu
YW1lLCBkb3VibGUgc3RhcnRUaW1lLCBkb3VibGUgZHVyYXRpb24pIDogUGVyZm9ybWFuY2VFbnRy
eShuYW1lLCAibWVhc3VyZSIsIHN0YXJ0VGltZSwgZHVyYXRpb24pIHsgfQpAQCAtNDcsNiArNDcs
MTAgQEAgcHJpdmF0ZToKIAogfQogCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lOKFdlYkNv
cmU6OlBlcmZvcm1hbmNlTWVhc3VyZSkKKyAgICBzdGF0aWMgYm9vbCBpc1R5cGUoY29uc3QgV2Vi
Q29yZTo6UGVyZm9ybWFuY2VFbnRyeSYgZW50cnkpIHsgcmV0dXJuIGVudHJ5LmlzTWVhc3VyZSgp
OyB9CitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCisKICNlbmRpZiAvLyBFTkFCTEUoVVNF
Ul9USU1JTkcpCiAKICNlbmRpZiAvLyAhZGVmaW5lZChQZXJmb3JtYW5jZU1lYXN1cmVfaCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmgKaW5kZXgg
OTlkZmM1YmNkY2RjNzllMzUzZTk0OTM2YzQ4Mjg1MzYxN2M1ZjUzZi4uY2JkODkxMjc2NWU3YzAz
OTRhMmJmYzAxZGNkMTM4YWFhYzczYjVmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
ZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgY2xhc3MgUmVzb3Vy
Y2VMb2FkVGltaW5nOwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogY2xhc3MgUmVzb3VyY2VSZXNw
b25zZTsKIAotY2xhc3MgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyA6IHB1YmxpYyBQZXJmb3Jt
YW5jZUVudHJ5IHsKK2NsYXNzIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgZmluYWwgOiBwdWJs
aWMgUGVyZm9ybWFuY2VFbnRyeSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxQZXJmb3JtYW5j
ZVJlc291cmNlVGltaW5nPiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiBpbml0aWF0b3JUeXBl
LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
IHJlc3BvbnNlLCBkb3VibGUgaW5pdGlhdGlvblRpbWUsIGRvdWJsZSBmaW5pc2hUaW1lLCBEb2N1
bWVudCogcmVxdWVzdGluZ0RvY3VtZW50KQogICAgIHsKQEAgLTY4LDcgKzY4LDcgQEAgcHVibGlj
OgogICAgIGRvdWJsZSByZXF1ZXN0U3RhcnQoKSBjb25zdDsKICAgICBkb3VibGUgcmVzcG9uc2VF
bmQoKSBjb25zdDsKIAotICAgIHZpcnR1YWwgYm9vbCBpc1Jlc291cmNlKCkgeyByZXR1cm4gdHJ1
ZTsgfQorICAgIGJvb2wgaXNSZXNvdXJjZSgpIG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAog
cHJpdmF0ZToKICAgICBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nKGNvbnN0IEF0b21pY1N0cmlu
ZyYgaW5pdGF0b3JUeXBlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiwgZG91YmxlIGluaXRpYXRpb25UaW1lLCBkb3VibGUgZmluaXNoVGltZSwgRG9jdW1l
bnQqKTsKQEAgLTg1LDYgKzg1LDExIEBAIHByaXZhdGU6CiAKIH0KIAorCitTUEVDSUFMSVpFX1RZ
UEVfVFJBSVRTX0JFR0lOKFdlYkNvcmU6OlBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcpCisgICAg
c3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OlBlcmZvcm1hbmNlRW50cnkmIGVudHJ5
KSB7IHJldHVybiBlbnRyeS5pc1Jlc291cmNlKCk7IH0KK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNf
RU5EKCkKKwogI2VuZGlmIC8vIEVOQUJMRShSRVNPVVJDRV9USU1JTkcpCiAKICNlbmRpZiAvLyAh
ZGVmaW5lZChQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nX2gpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277793</attachid>
            <date>2016-04-29 21:16:53 -0700</date>
            <delta_ts>2016-04-29 21:50:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157224-20160429211727.patch</filename>
            <type>text/plain</type>
            <size>18003</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAwMjgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDk1ZjI3YzUwYzE5ODIz
OTNjYmMwYmViOWFlYzYwYzU1NjcxNzRjNy4uODNkNmMyNjg0MGZkYzhkOTliNzg5YWE3OGYyNTA5
YmZkZDc2ZGNiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDE2LTA0LTI5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgR2V0IHJpZCBvZiB1bm5lY2Vz
c2FyeSBudWxsIGNoZWNrIGluIHdyYXAoSlNET01HbG9iYWxPYmplY3QqLCBET01DbGFzcyopCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTcyMjQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCisKKyAgICAgICAgR2V0IHJpZCBvZiB1
bm5lY2Vzc2FyeSBudWxsIGNoZWNrIGluIHdyYXAoSlNET01HbG9iYWxPYmplY3QqLCBET01DbGFz
cyopCisgICAgICAgIHNpbmNlIGFsbCB0aGUgY2FsbCBzaXRlcyBhbHJlYWR5IGRvIGEgbnVsbCBj
aGVjay4gQWxzbyB1cGRhdGUgdGhlIGZ1bmN0aW9uCisgICAgICAgIHRvIHRha2UgdGhlIGltcGxl
bWVudGF0aW9uIG9iamVjdCBieSByZWZlcmVuY2UgaW5zdGVhZCBvZiBwb2ludGVyLiBGaW5hbGx5
LAorICAgICAgICB1c2UgaXM8PigpIC8gZG93bmNhc3Q8PigpIG1vcmUgYXQgdGhlIGNhbGwgc2l0
ZXMuCisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SURCQ3Vyc29yOjp1cGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vy
c29yOjpkZWxldGVGdW5jdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3I6OnNldEdl
dFJlc3VsdCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmg6CisgICAg
ICAgIChXZWJDb3JlOjpJREJDdXJzb3I6OmlzS2V5Q3Vyc29yV2l0aFZhbHVlKToKKyAgICAgICAg
KFdlYkNvcmU6OklEQkN1cnNvcjo6aXNLZXlDdXJzb3IpOiBEZWxldGVkLgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvcldpdGhWYWx1ZS5oOgorICAgICAgICAoaXNUeXBlKToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0Jsb2JDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6dG9KUyk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0
Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTRE9NQmluZGluZy5oOgorICAgICAgICAoV2ViQ29yZTo6d3JhcCk6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNJREJDdXJzb3JDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9K
Uyk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNNZWRpYVN0cmVhbUNhcGFiaWxpdGllc0N1c3Rv
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b0pTKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9K
U1BlcmZvcm1hbmNlRW50cnlDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6Cisg
ICAgICAgICogaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5oOgorICAgICAgICAq
IGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oOgorICAgICAgICAqIHBhZ2UvUGVy
Zm9ybWFuY2VNYXJrLmg6CisgICAgICAgIChpc1R5cGUpOgorICAgICAgICAoV2ViQ29yZTo6UGVy
Zm9ybWFuY2VNYXJrOjppc01hcmspOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFu
Y2VNZWFzdXJlLmg6CisgICAgICAgIChpc1R5cGUpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9y
bWFuY2VNZWFzdXJlOjppc01lYXN1cmUpOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2UvUGVyZm9y
bWFuY2VSZXNvdXJjZVRpbWluZy5oOgorICAgICAgICAoaXNUeXBlKToKKyAgICAgICAgKFdlYkNv
cmU6OlBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OmlzUmVzb3VyY2UpOiBEZWxldGVkLgorCiAy
MDE2LTA0LTI5ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAg
ICAgIENsZWFuIHVwIEdyYXBoaWNzQ29udGV4dCB1c2UgaW4gUmVuZGVyTGF5ZXI6OnBhaW50TGF5
ZXJDb250ZW50cygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJDdXJzb3IuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vy
c29yLmNwcAppbmRleCBkZmYxYzdjZjZlZGE0MDE2NThlMzc3NjM4YTg0ZTAzNTA4OWFkY2MxLi4w
MTNjN2Y3ODFjYmEyNTY1MmJjNDc3M2U0N2ZiNTBjOWNiMTZlOWRhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHAKQEAgLTE4Nyw3ICsxODcsNyBA
QCBSZWZQdHI8V2ViQ29yZTo6SURCUmVxdWVzdD4gSURCQ3Vyc29yOjp1cGRhdGUoRXhlY1N0YXRl
JiBleGVjLCBKU1ZhbHVlIHZhbHVlLCBFeAogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9
CiAKLSAgICBpZiAoaXNLZXlDdXJzb3IoKSkgeworICAgIGlmICghaXNLZXlDdXJzb3JXaXRoVmFs
dWUoKSkgewogICAgICAgICBlYy5jb2RlID0gSURCRGF0YWJhc2VFeGNlcHRpb246OkludmFsaWRT
dGF0ZUVycm9yOwogICAgICAgICBlYy5tZXNzYWdlID0gQVNDSUlMaXRlcmFsKCJGYWlsZWQgdG8g
ZXhlY3V0ZSAndXBkYXRlJyBvbiAnSURCQ3Vyc29yJzogVGhlIGN1cnNvciBpcyBhIGtleSBjdXJz
b3IuIik7CiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtMzUwLDcgKzM1MCw3IEBAIFJlZlB0
cjxXZWJDb3JlOjpJREJSZXF1ZXN0PiBJREJDdXJzb3I6OmRlbGV0ZUZ1bmN0aW9uKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAotICAg
IGlmIChpc0tleUN1cnNvcigpKSB7CisgICAgaWYgKCFpc0tleUN1cnNvcldpdGhWYWx1ZSgpKSB7
CiAgICAgICAgIGVjLmNvZGUgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6SW52YWxpZFN0YXRlRXJy
b3I7CiAgICAgICAgIGVjLm1lc3NhZ2UgPSBBU0NJSUxpdGVyYWwoIkZhaWxlZCB0byBleGVjdXRl
ICdkZWxldGUnIG9uICdJREJDdXJzb3InOiBUaGUgY3Vyc29yIGlzIGEga2V5IGN1cnNvci4iKTsK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC0zOTMsMTAgKzM5MywxMCBAQCB2b2lkIElEQkN1
cnNvcjo6c2V0R2V0UmVzdWx0KElEQlJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IElEQkdldFJlc3Vs
dCYgZ2V0UmVzdWx0KQogICAgIG1fY3VycmVudFByaW1hcnlLZXkgPSB7IHZtLCBpZGJLZXlEYXRh
VG9TY3JpcHRWYWx1ZSgqY29udGV4dCwgZ2V0UmVzdWx0LnByaW1hcnlLZXlEYXRhKCkpIH07CiAg
ICAgbV9jdXJyZW50UHJpbWFyeUtleURhdGEgPSBnZXRSZXN1bHQucHJpbWFyeUtleURhdGEoKTsK
IAotICAgIGlmIChpc0tleUN1cnNvcigpKQotICAgICAgICBtX2N1cnJlbnRWYWx1ZSA9IHsgfTsK
LSAgICBlbHNlCisgICAgaWYgKGlzS2V5Q3Vyc29yV2l0aFZhbHVlKCkpCiAgICAgICAgIG1fY3Vy
cmVudFZhbHVlID0geyB2bSwgZGVzZXJpYWxpemVJREJWYWx1ZVRvSlNWYWx1ZSgqY29udGV4dCwg
Z2V0UmVzdWx0LnZhbHVlKCkpIH07CisgICAgZWxzZQorICAgICAgICBtX2N1cnJlbnRWYWx1ZSA9
IHsgfTsKIAogICAgIG1fZ290VmFsdWUgPSB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuaAppbmRleCAyNGI3MDlhMzA0NWFhYzU5MTBjMmI4NDQ2
YzVmMTE3ZTA0Njc0YzJjLi43NzVkYWZiODY0ODcxYmY5MThlNDg5YWRjNWYyZjA5ZGEyY2FmMGFl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3Iu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuaApAQCAt
NzcsNyArNzcsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldEdldFJlc3VsdChJREJSZXF1ZXN0
JiwgY29uc3QgSURCR2V0UmVzdWx0Jik7CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNLZXlDdXJzb3Io
KSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIGlzS2V5Q3Vyc29yV2l0
aFZhbHVlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZvaWQgZGVjcmVtZW50T3V0
c3RhbmRpbmdSZXF1ZXN0Q291bnQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yV2l0aFZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JXaXRoVmFsdWUuaAppbmRleCAxZWU1ZGQ1ZmNjNzcwMzlk
Mjc4NmVmMDUzMTI4OTViZDNmZjY0ZDE2Li5mNzg4OTFiN2Q4NDYyZjJlOGM2Y2JmMTFkZTZhYjkx
NWY2MzUwOGJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJDdXJzb3JXaXRoVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJDdXJzb3JXaXRoVmFsdWUuaApAQCAtMjgsNiArMjgsNyBAQAogI2lmIEVOQUJMRShJTkRF
WEVEX0RBVEFCQVNFKQogCiAjaW5jbHVkZSAiSURCQ3Vyc29yLmgiCisjaW5jbHVkZSA8d3RmL1R5
cGVDYXN0cy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM4LDcgKzM5LDcgQEAgcHVi
bGljOgogCiAgICAgdmlydHVhbCB+SURCQ3Vyc29yV2l0aFZhbHVlKCk7CiAKLSAgICBib29sIGlz
S2V5Q3Vyc29yKCkgY29uc3QgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBib29sIGlzS2V5
Q3Vyc29yV2l0aFZhbHVlKCkgY29uc3QgIG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAogcHJp
dmF0ZToKICAgICBJREJDdXJzb3JXaXRoVmFsdWUoSURCVHJhbnNhY3Rpb24mLCBJREJPYmplY3RT
dG9yZSYsIGNvbnN0IElEQkN1cnNvckluZm8mKTsKQEAgLTQ3LDQgKzQ4LDggQEAgcHJpdmF0ZToK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lO
KFdlYkNvcmU6OklEQkN1cnNvcldpdGhWYWx1ZSkKKyAgICBzdGF0aWMgYm9vbCBpc1R5cGUoY29u
c3QgV2ViQ29yZTo6SURCQ3Vyc29yJiBjdXJzb3IpIHsgcmV0dXJuIGN1cnNvci5pc0tleUN1cnNv
cldpdGhWYWx1ZSgpOyB9CitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCisKICNlbmRpZiAv
LyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTQmxvYkN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0Jsb2JDdXN0b20uY3BwCmluZGV4IGFkZTVhMGE5MzZjZWNiMTg4MzVlYTA0ZDFlMGM4MGFjOWZh
MjBhNWEuLmRkOWI0MWU4ZWRkMjgyZWM5MjFjYTFjYmMzZmEzMWQ2MmU4MzNhNTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmxvYkN1c3RvbS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCbG9iQ3VzdG9tLmNwcApAQCAtNTMsMTAgKzUzLDEw
IEBAIEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBCbG9iKiBibG9iKQogICAgIGlmICghYmxvYikKICAgICAgICAgcmV0dXJuIGpzTnVsbCgp
OwogCi0gICAgaWYgKGJsb2ItPmlzRmlsZSgpKQotICAgICAgICByZXR1cm4gd3JhcDxKU0ZpbGU+
KGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8RmlsZSo+KGJsb2IpKTsKKyAgICBpZiAoaXM8Rmls
ZT4oKmJsb2IpKQorICAgICAgICByZXR1cm4gd3JhcDxKU0ZpbGU+KGdsb2JhbE9iamVjdCwgZG93
bmNhc3Q8RmlsZT4oKmJsb2IpKTsKIAotICAgIHJldHVybiB3cmFwPEpTQmxvYj4oZ2xvYmFsT2Jq
ZWN0LCBibG9iKTsKKyAgICByZXR1cm4gd3JhcDxKU0Jsb2I+KGdsb2JhbE9iamVjdCwgKmJsb2Ip
OwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEpTQmxvYihFeGVj
U3RhdGUqIGV4ZWMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAppbmRleCA3ZjUwNDM1ZjVhNjNk
MjU4ZDJjMDNmY2NhMGYzNzg1ZDZiOWY0YjAwLi42M2ZmNTg4Y2M5ZjA2NGIxZmNmMjViYTRhOGJl
YWJmNWExN2IwNzBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTQ2FudmFzUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKQEAgLTUzLDE1ICs1Mywx
NCBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbnZhc1JlbmRlcgogICAgICAgICByZXR1cm4ganNOdWxsKCk7CiAK
ICNpZiBFTkFCTEUoV0VCR0wpCi0gICAgaWYgKG9iamVjdC0+aXNXZWJHTDEoKSkKLSAgICAgICAg
cmV0dXJuIHdyYXA8SlNXZWJHTFJlbmRlcmluZ0NvbnRleHQ+KGdsb2JhbE9iamVjdCwgc3RhdGlj
X2Nhc3Q8V2ViR0xSZW5kZXJpbmdDb250ZXh0Kj4ob2JqZWN0KSk7CisgICAgaWYgKGlzPFdlYkdM
UmVuZGVyaW5nQ29udGV4dD4oKm9iamVjdCkpCisgICAgICAgIHJldHVybiB3cmFwPEpTV2ViR0xS
ZW5kZXJpbmdDb250ZXh0PihnbG9iYWxPYmplY3QsIGRvd25jYXN0PFdlYkdMUmVuZGVyaW5nQ29u
dGV4dD4oKm9iamVjdCkpOwogI2lmIEVOQUJMRShXRUJHTDIpCi0gICAgaWYgKG9iamVjdC0+aXNX
ZWJHTDIoKSkKLSAgICAgICAgcmV0dXJuIHdyYXA8SlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0Pihn
bG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdMMlJlbmRlcmluZ0NvbnRleHQqPihvYmplY3Qp
KTsKKyAgICBpZiAoaXM8V2ViR0wyUmVuZGVyaW5nQ29udGV4dD4oKm9iamVjdCkpCisgICAgICAg
IHJldHVybiB3cmFwPEpTV2ViR0wyUmVuZGVyaW5nQ29udGV4dD4oZ2xvYmFsT2JqZWN0LCBkb3du
Y2FzdDxXZWJHTDJSZW5kZXJpbmdDb250ZXh0Pigqb2JqZWN0KSk7CiAjZW5kaWYKICNlbmRpZgot
ICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKG9iamVjdC0+aXMyZCgpKTsKLSAg
ICByZXR1cm4gd3JhcDxKU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4oZ2xvYmFsT2JqZWN0LCBz
dGF0aWNfY2FzdDxDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQqPihvYmplY3QpKTsKKyAgICByZXR1
cm4gd3JhcDxKU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4oZ2xvYmFsT2JqZWN0LCBkb3duY2Fz
dDxDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+KCpvYmplY3QpKTsKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01C
aW5kaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAppbmRl
eCA2Y2NkM2E1MTdkZmFkMzdkY2FjNThjMWJhYWFiN2Q4YWU0NjE5NGYzLi41N2U2OTQxM2UwYTVj
NzgyMDYyZDZmYmZmOTk3M2FmOWY5ODY0ZWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTUJpbmRpbmcuaApAQCAtMjY3LDEzICsyNjcsMTEgQEAgdGVtcGxhdGU8dHlwZW5hbWUg
V3JhcHBlckNsYXNzLCB0eXBlbmFtZSBET01DbGFzcz4gaW5saW5lIEpTRE9NT2JqZWN0KiBjcmVh
dGVXcmEKICAgICByZXR1cm4gd3JhcHBlcjsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgV3JhcHBl
ckNsYXNzLCB0eXBlbmFtZSBET01DbGFzcz4gaW5saW5lIEpTQzo6SlNWYWx1ZSB3cmFwKEpTRE9N
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERPTUNsYXNzKiBkb21PYmplY3QpCit0ZW1wbGF0
ZTx0eXBlbmFtZSBXcmFwcGVyQ2xhc3MsIHR5cGVuYW1lIERPTUNsYXNzPiBpbmxpbmUgSlNDOjpK
U1ZhbHVlIHdyYXAoSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRE9NQ2xhc3MmIGRv
bU9iamVjdCkKIHsKLSAgICBpZiAoIWRvbU9iamVjdCkKLSAgICAgICAgcmV0dXJuIEpTQzo6anNO
dWxsKCk7Ci0gICAgaWYgKEpTQzo6SlNPYmplY3QqIHdyYXBwZXIgPSBnZXRDYWNoZWRXcmFwcGVy
KGdsb2JhbE9iamVjdC0+d29ybGQoKSwgZG9tT2JqZWN0KSkKKyAgICBpZiAoSlNDOjpKU09iamVj
dCogd3JhcHBlciA9IGdldENhY2hlZFdyYXBwZXIoZ2xvYmFsT2JqZWN0LT53b3JsZCgpLCAmZG9t
T2JqZWN0KSkKICAgICAgICAgcmV0dXJuIHdyYXBwZXI7Ci0gICAgcmV0dXJuIGNyZWF0ZVdyYXBw
ZXI8V3JhcHBlckNsYXNzPihnbG9iYWxPYmplY3QsIGRvbU9iamVjdCk7CisgICAgcmV0dXJuIGNy
ZWF0ZVdyYXBwZXI8V3JhcHBlckNsYXNzPihnbG9iYWxPYmplY3QsICZkb21PYmplY3QpOwogfQog
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBXcmFwcGVyQ2xhc3MsIHR5cGVuYW1lIERPTUNsYXNzPiBpbmxp
bmUgSlNDOjpKU1ZhbHVlIGdldEV4aXN0aW5nV3JhcHBlcihKU0RPTUdsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBET01DbGFzcyogZG9tT2JqZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNJREJDdXJzb3JDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNJREJDdXJzb3JDdXN0b20uY3BwCmluZGV4IDI4NTk1NGUyZDIyNDU2ODI0NjQ4
ZmE2NmQ2ODJhM2Y2OTg0Njc5YWMuLjI0MmI5ODVhOWU4ZDNiZjJiZDc4MGFkOTFmNTVlYmQ1Y2E4
NzdmNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSURCQ3Vyc29y
Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0lEQkN1cnNvckN1
c3RvbS5jcHAKQEAgLTU0LDkgKzU0LDEzIEBAIEpTVmFsdWUgSlNJREJDdXJzb3I6OnNvdXJjZShF
eGVjU3RhdGUmIHN0YXRlKSBjb25zdAogCiBKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBK
U0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBJREJDdXJzb3IqIGN1cnNvcikKIHsKLSAg
ICBpZiAoY3Vyc29yLT5pc0tleUN1cnNvcigpKQotICAgICAgICByZXR1cm4gd3JhcDxKU0lEQkN1
cnNvcj4oZ2xvYmFsT2JqZWN0LCBjdXJzb3IpOwotICAgIHJldHVybiB3cmFwPEpTSURCQ3Vyc29y
V2l0aFZhbHVlPihnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PElEQkN1cnNvcldpdGhWYWx1ZSo+
KGN1cnNvcikpOworICAgIGlmICghY3Vyc29yKQorICAgICAgICByZXR1cm4gSlNDOjpqc051bGwo
KTsKKworICAgIGlmIChpczxJREJDdXJzb3JXaXRoVmFsdWU+KCpjdXJzb3IpKQorICAgICAgICBy
ZXR1cm4gd3JhcDxKU0lEQkN1cnNvcldpdGhWYWx1ZT4oZ2xvYmFsT2JqZWN0LCBkb3duY2FzdDxJ
REJDdXJzb3JXaXRoVmFsdWU+KCpjdXJzb3IpKTsKKworICAgIHJldHVybiB3cmFwPEpTSURCQ3Vy
c29yPihnbG9iYWxPYmplY3QsICpjdXJzb3IpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lZGlhU3RyZWFtQ2Fw
YWJpbGl0aWVzQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVkaWFT
dHJlYW1DYXBhYmlsaXRpZXNDdXN0b20uY3BwCmluZGV4IDNiYTBjZTI0NDFjZDNlNjFkNjg0Y2Rh
ZTg0ZTk1MmE0Y2I5ZWM1ZWEuLjU1NjllZDY2ZjhhMDJkNmFhZGM4YWY5YzljNzg0MzBmNjlmMzFl
ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVkaWFTdHJlYW1D
YXBhYmlsaXRpZXNDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
TWVkaWFTdHJlYW1DYXBhYmlsaXRpZXNDdXN0b20uY3BwCkBAIC00Myw5ICs0Myw5IEBAIEpTQzo6
SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgTWVkaWFTdHJlYW1DCiAgICAgICAgIHJldHVybiBqc051bGwoKTsKIAogICAgIGlmIChv
YmplY3QtPmhhc1ZpZGVvU291cmNlKCkpCi0gICAgICAgIHJldHVybiB3cmFwPEpTQWxsVmlkZW9D
YXBhYmlsaXRpZXM+KGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8QWxsVmlkZW9DYXBhYmlsaXRp
ZXMqPihvYmplY3QpKTsKKyAgICAgICAgcmV0dXJuIHdyYXA8SlNBbGxWaWRlb0NhcGFiaWxpdGll
cz4oZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxBbGxWaWRlb0NhcGFiaWxpdGllcz4oKm9iamVj
dCkpOwogCi0gICAgcmV0dXJuIHdyYXA8SlNBbGxBdWRpb0NhcGFiaWxpdGllcz4oZ2xvYmFsT2Jq
ZWN0LCBzdGF0aWNfY2FzdDxBbGxBdWRpb0NhcGFiaWxpdGllcyo+KG9iamVjdCkpOworICAgIHJl
dHVybiB3cmFwPEpTQWxsQXVkaW9DYXBhYmlsaXRpZXM+KGdsb2JhbE9iamVjdCwgc3RhdGljX2Nh
c3Q8QWxsQXVkaW9DYXBhYmlsaXRpZXM+KCpvYmplY3QpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQZXJmb3Jt
YW5jZUVudHJ5Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGVyZm9y
bWFuY2VFbnRyeUN1c3RvbS5jcHAKaW5kZXggZWJkZDM3ZjhjNGMyMTdiMzk5MWZlZDMwYzg1NzQ3
OTc2MWVkMjMwMy4uNzRkZTVkMmJkOTFkYWE1NTgwNWIzYTEzZDU4NTZlNjU3NDY3MTQ3ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQZXJmb3JtYW5jZUVudHJ5Q3Vz
dG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BlcmZvcm1hbmNlRW50
cnlDdXN0b20uY3BwCkBAIC01MiwxOSArNTIsMTkgQEAgSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSos
IEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFBlcmZvcm1hbmNlRW50cnkqIGVudHIK
ICAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwogCiAjaWYgRU5BQkxFKFJFU09VUkNFX1RJTUlORykK
LSAgICBpZiAoZW50cnktPmlzUmVzb3VyY2UoKSkKLSAgICAgICAgcmV0dXJuIHdyYXA8SlNQZXJm
b3JtYW5jZVJlc291cmNlVGltaW5nPihnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFBlcmZvcm1h
bmNlUmVzb3VyY2VUaW1pbmcqPihlbnRyeSkpOworICAgIGlmIChpczxQZXJmb3JtYW5jZVJlc291
cmNlVGltaW5nPigqZW50cnkpKQorICAgICAgICByZXR1cm4gd3JhcDxKU1BlcmZvcm1hbmNlUmVz
b3VyY2VUaW1pbmc+KGdsb2JhbE9iamVjdCwgZG93bmNhc3Q8UGVyZm9ybWFuY2VSZXNvdXJjZVRp
bWluZz4oKmVudHJ5KSk7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShVU0VSX1RJTUlORykKLSAgICBp
ZiAoZW50cnktPmlzTWFyaygpKQotICAgICAgICByZXR1cm4gd3JhcDxKU1BlcmZvcm1hbmNlTWFy
az4oZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxQZXJmb3JtYW5jZU1hcmsqPihlbnRyeSkpOwor
ICAgIGlmIChpczxQZXJmb3JtYW5jZU1hcms+KCplbnRyeSkpCisgICAgICAgIHJldHVybiB3cmFw
PEpTUGVyZm9ybWFuY2VNYXJrPihnbG9iYWxPYmplY3QsIGRvd25jYXN0PFBlcmZvcm1hbmNlTWFy
az4oKmVudHJ5KSk7CiAKLSAgICBpZiAoZW50cnktPmlzTWVhc3VyZSgpKQotICAgICAgICByZXR1
cm4gd3JhcDxKU1BlcmZvcm1hbmNlTWVhc3VyZT4oZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxQ
ZXJmb3JtYW5jZU1lYXN1cmUqPihlbnRyeSkpOworICAgIGlmIChpczxQZXJmb3JtYW5jZU1lYXN1
cmU+KCplbnRyeSkpCisgICAgICAgIHJldHVybiB3cmFwPEpTUGVyZm9ybWFuY2VNZWFzdXJlPihn
bG9iYWxPYmplY3QsIGRvd25jYXN0PFBlcmZvcm1hbmNlTWVhc3VyZT4oKmVudHJ5KSk7CiAjZW5k
aWYKIAotICAgIHJldHVybiB3cmFwPEpTUGVyZm9ybWFuY2VFbnRyeT4oZ2xvYmFsT2JqZWN0LCBl
bnRyeSk7CisgICAgcmV0dXJuIHdyYXA8SlNQZXJmb3JtYW5jZUVudHJ5PihnbG9iYWxPYmplY3Qs
ICplbnRyeSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuaAppbmRleCBjZWY3NDc0
ZTI0Mjk3NThiZDA2Y2I0NDFlNTRiZTNkYWJkNzk5OTZlLi43MzVmYmQ0OGI3NjkyMjY1ODk1MGU3
MjVhNDc3MWQwZDhiZmY0MjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5oCkBAIC0yMjAsNiArMjIwLDggQEAgcHJpdmF0ZToK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0NBTlZB
U1JFTkRFUklOR0NPTlRFWFQoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dCwgaXNXZWJH
TDIoKSkKKwogI2VuZGlmIC8vIFdFQkdMMgogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgKaW5kZXggYTI3YzYwM2M5YzQw
NmNiNTAxZjQxNjY3NTU4OWQzYmFmZWQ4YWQ4NC4uNjQ0OGZkMDU5ODI5N2JmZjgzMzFlZDY5OTc5
YTEzYzIyYzMyMDI2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xSZW5kZXJpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xSZW5kZXJpbmdDb250ZXh0LmgKQEAgLTg1LDQgKzg1LDYgQEAgcHJvdGVjdGVkOgogICAgIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0NBTlZBU1JF
TkRFUklOR0NPTlRFWFQoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0LCBpc1dlYkdMMSgp
KQorCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VF
bnRyeS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUVudHJ5LmgKaW5kZXggMTI5
YTI0NjQwY2M0ZDJhMzVjYWVhYjZiYTJmMWFmYzgxODRmMzYyYi4uMDExMWIxZGUzOWZkZGU3M2Rj
ZDNiOThmZDczMTFlNGYxNGQxZDM5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Q
ZXJmb3JtYW5jZUVudHJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUVu
dHJ5LmgKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJQZXJmb3JtYW5jZS5oIgogI2luY2x1
ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNs
dWRlIDx3dGYvVHlwZUNhc3RzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTUwLDkgKzUxLDkgQEAgcHVibGljOgogICAgIGRvdWJs
ZSBzdGFydFRpbWUoKSBjb25zdDsKICAgICBkb3VibGUgZHVyYXRpb24oKSBjb25zdDsKIAotICAg
IHZpcnR1YWwgYm9vbCBpc1Jlc291cmNlKCkgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFs
IGJvb2wgaXNNYXJrKCkgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNNZWFz
dXJlKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNSZXNvdXJjZSgpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzTWFyaygpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzTWVhc3VyZSgpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CiAKICAgICBzdGF0aWMgYm9vbCBzdGFydFRpbWVDb21wYXJlTGVzc1RoYW4o
UGFzc1JlZlB0cjxQZXJmb3JtYW5jZUVudHJ5PiBhLCBQYXNzUmVmUHRyPFBlcmZvcm1hbmNlRW50
cnk+IGIpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5j
ZU1hcmsuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VNYXJrLmgKaW5kZXggY2Q3
MWEwMjZmZjMxZDcxZjE0ZWFjZjg3ZGE1MDcwZTM2YjA3Y2E4OC4uZjA1MjNlNGFhNjUzNDVkN2Zj
MGZlMjEyYjA5MWUxNmQ2M2ZmMjg2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Q
ZXJmb3JtYW5jZU1hcmsuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTWFy
ay5oCkBAIC0zNCwxMSArMzQsMTEgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBQ
ZXJmb3JtYW5jZU1hcmsgOiBwdWJsaWMgUGVyZm9ybWFuY2VFbnRyeSB7CitjbGFzcyBQZXJmb3Jt
YW5jZU1hcmsgZmluYWwgOiBwdWJsaWMgUGVyZm9ybWFuY2VFbnRyeSB7CiBwdWJsaWM6CiAgICAg
c3RhdGljIFJlZjxQZXJmb3JtYW5jZU1hcms+IGNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIGRv
dWJsZSBzdGFydFRpbWUpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGVyZm9ybWFuY2VNYXJrKG5h
bWUsIHN0YXJ0VGltZSkpOyB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNNYXJrKCkgeyByZXR1cm4g
dHJ1ZTsgfQorICAgIGJvb2wgaXNNYXJrKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsg
fQogICAgIAogcHJpdmF0ZToKICAgICBQZXJmb3JtYW5jZU1hcmsoY29uc3QgU3RyaW5nJiBuYW1l
LCBkb3VibGUgc3RhcnRUaW1lKSA6IFBlcmZvcm1hbmNlRW50cnkobmFtZSwgIm1hcmsiLCBzdGFy
dFRpbWUsIHN0YXJ0VGltZSkgeyB9CkBAIC00Nyw2ICs0NywxMCBAQCBwcml2YXRlOgogCiB9CiAK
K1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVHSU4oV2ViQ29yZTo6UGVyZm9ybWFuY2VNYXJrKQor
ICAgIHN0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpQZXJmb3JtYW5jZUVudHJ5JiBl
bnRyeSkgeyByZXR1cm4gZW50cnkuaXNNYXJrKCk7IH0KK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNf
RU5EKCkKKwogI2VuZGlmIC8vIEVOQUJMRShVU0VSX1RJTUlORykKIAogI2VuZGlmIC8vICFkZWZp
bmVkKFBlcmZvcm1hbmNlTWFya19oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Q
ZXJmb3JtYW5jZU1lYXN1cmUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VNZWFz
dXJlLmgKaW5kZXggYWYzZTM2ZTUwNjE5NGNmMzM5OGI4ZmFmZWY2YjYyODMyM2FhZmQzNC4uNGEy
ZWEwYzg3ZGRlNDViNmE5MDIyNTY0NTZkZGFmODNlZGM4NDk4ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZU1lYXN1cmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BlcmZvcm1hbmNlTWVhc3VyZS5oCkBAIC0zNCwxMSArMzQsMTEgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1jbGFzcyBQZXJmb3JtYW5jZU1lYXN1cmUgOiBwdWJsaWMgUGVyZm9ybWFu
Y2VFbnRyeSB7CitjbGFzcyBQZXJmb3JtYW5jZU1lYXN1cmUgZmluYWwgOiBwdWJsaWMgUGVyZm9y
bWFuY2VFbnRyeSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxQZXJmb3JtYW5jZU1lYXN1cmU+
IGNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIGRvdWJsZSBzdGFydFRpbWUsIGRvdWJsZSBkdXJh
dGlvbikgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBQZXJmb3JtYW5jZU1lYXN1cmUobmFtZSwgc3Rh
cnRUaW1lLCBkdXJhdGlvbikpOyB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNNZWFzdXJlKCkgeyBy
ZXR1cm4gdHJ1ZTsgfQorICAgIGJvb2wgaXNNZWFzdXJlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gdHJ1ZTsgfQogCiBwcml2YXRlOgogICAgIFBlcmZvcm1hbmNlTWVhc3VyZShjb25zdCBTdHJp
bmcmIG5hbWUsIGRvdWJsZSBzdGFydFRpbWUsIGRvdWJsZSBkdXJhdGlvbikgOiBQZXJmb3JtYW5j
ZUVudHJ5KG5hbWUsICJtZWFzdXJlIiwgc3RhcnRUaW1lLCBkdXJhdGlvbikgeyB9CkBAIC00Nyw2
ICs0NywxMCBAQCBwcml2YXRlOgogCiB9CiAKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVHSU4o
V2ViQ29yZTo6UGVyZm9ybWFuY2VNZWFzdXJlKQorICAgIHN0YXRpYyBib29sIGlzVHlwZShjb25z
dCBXZWJDb3JlOjpQZXJmb3JtYW5jZUVudHJ5JiBlbnRyeSkgeyByZXR1cm4gZW50cnkuaXNNZWFz
dXJlKCk7IH0KK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKKwogI2VuZGlmIC8vIEVOQUJM
RShVU0VSX1RJTUlORykKIAogI2VuZGlmIC8vICFkZWZpbmVkKFBlcmZvcm1hbmNlTWVhc3VyZV9o
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVJlc291cmNlVGlt
aW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaApp
bmRleCA5OWRmYzViY2RjZGM3OWUzNTNlOTQ5MzZjNDgyODUzNjE3YzVmNTNmLi4zYzM1ZDFhZmM5
ZDA0ZjdjN2YxYWRjZmQxNDViMzNlYWUzYTZmYzUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaApAQCAtNDgsNyArNDgsNyBAQCBjbGFzcyBS
ZXNvdXJjZUxvYWRUaW1pbmc7CiBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CiBjbGFzcyBSZXNvdXJj
ZVJlc3BvbnNlOwogCi1jbGFzcyBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nIDogcHVibGljIFBl
cmZvcm1hbmNlRW50cnkgeworY2xhc3MgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyBmaW5hbCA6
IHB1YmxpYyBQZXJmb3JtYW5jZUVudHJ5IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFBlcmZv
cm1hbmNlUmVzb3VyY2VUaW1pbmc+IGNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIGluaXRpYXRv
clR5cGUsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYgcmVzcG9uc2UsIGRvdWJsZSBpbml0aWF0aW9uVGltZSwgZG91YmxlIGZpbmlzaFRpbWUs
IERvY3VtZW50KiByZXF1ZXN0aW5nRG9jdW1lbnQpCiAgICAgewpAQCAtNjgsNyArNjgsNyBAQCBw
dWJsaWM6CiAgICAgZG91YmxlIHJlcXVlc3RTdGFydCgpIGNvbnN0OwogICAgIGRvdWJsZSByZXNw
b25zZUVuZCgpIGNvbnN0OwogCi0gICAgdmlydHVhbCBib29sIGlzUmVzb3VyY2UoKSB7IHJldHVy
biB0cnVlOyB9CisgICAgYm9vbCBpc1Jlc291cmNlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
dHJ1ZTsgfQogCiBwcml2YXRlOgogICAgIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcoY29uc3Qg
QXRvbWljU3RyaW5nJiBpbml0YXRvclR5cGUsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmLCBkb3VibGUgaW5pdGlhdGlvblRpbWUsIGRvdWJsZSBmaW5pc2hU
aW1lLCBEb2N1bWVudCopOwpAQCAtODUsNiArODUsMTEgQEAgcHJpdmF0ZToKIAogfQogCisKK1NQ
RUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVHSU4oV2ViQ29yZTo6UGVyZm9ybWFuY2VSZXNvdXJjZVRp
bWluZykKKyAgICBzdGF0aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6UGVyZm9ybWFuY2VF
bnRyeSYgZW50cnkpIHsgcmV0dXJuIGVudHJ5LmlzUmVzb3VyY2UoKTsgfQorU1BFQ0lBTElaRV9U
WVBFX1RSQUlUU19FTkQoKQorCiAjZW5kaWYgLy8gRU5BQkxFKFJFU09VUkNFX1RJTUlORykKIAog
I2VuZGlmIC8vICFkZWZpbmVkKFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmdfaCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>