<?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>56283</bug_id>
          
          <creation_ts>2011-03-13 19:00:07 -0700</creation_ts>
          <short_desc>A few Heap-related renames (sans file moves, which should come next)</short_desc>
          <delta_ts>2011-03-13 21:57:26 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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="Geoffrey Garen">ggaren</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          <cc>buildbot</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>366787</commentid>
    <comment_count>0</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-03-13 19:00:07 -0700</bug_when>
    <thetext>A few Heap-related renames (sans file moves, which should come next)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366788</commentid>
    <comment_count>1</comment_count>
      <attachid>85633</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-03-13 19:07:29 -0700</bug_when>
    <thetext>Created attachment 85633
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366789</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-13 19:09:48 -0700</bug_when>
    <thetext>Attachment 85633 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/API/APIShims.h&apos;, u&apos;S...&quot; exit_code: 1

Source/JavaScriptCore/runtime/MachineStackMarker.h:22:  #ifndef header guard has wrong style, please use: WTF_MachineStackMarker_h  [build/header_guard] [5]
Source/JavaScriptCore/runtime/ConservativeSet.h:26:  #ifndef header guard has wrong style, please use: WTF_ConservativeSet_h  [build/header_guard] [5]
Total errors found: 2 in 10 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366808</commentid>
    <comment_count>3</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-03-13 20:36:30 -0700</bug_when>
    <thetext>Attachment 85633 did not build on win:
Build output: http://queues.webkit.org/results/8174155</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366809</commentid>
    <comment_count>4</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-03-13 20:37:03 -0700</bug_when>
    <thetext>Attachment 85633 did not build on win:
Build output: http://queues.webkit.org/results/8179101</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366810</commentid>
    <comment_count>5</comment_count>
      <attachid>85638</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-03-13 20:38:33 -0700</bug_when>
    <thetext>Created attachment 85638
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366812</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-13 20:41:12 -0700</bug_when>
    <thetext>Attachment 85638 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/API/APIShims.h&apos;, u&apos;S...&quot; exit_code: 1

Source/JavaScriptCore/runtime/MachineStackMarker.h:22:  #ifndef header guard has wrong style, please use: WTF_MachineStackMarker_h  [build/header_guard] [5]
Source/JavaScriptCore/runtime/ConservativeSet.h:26:  #ifndef header guard has wrong style, please use: WTF_ConservativeSet_h  [build/header_guard] [5]
Total errors found: 2 in 12 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366829</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-13 21:53:21 -0700</bug_when>
    <thetext>Attachment 85633 did not build on mac:
Build output: http://queues.webkit.org/results/8181074</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366830</commentid>
    <comment_count>8</comment_count>
      <attachid>85638</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-03-13 21:54:12 -0700</bug_when>
    <thetext>Comment on attachment 85638
Patch

Sam reviewed this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366833</commentid>
    <comment_count>9</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-03-13 21:57:26 -0700</bug_when>
    <thetext>Committed revision 80995.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85633</attachid>
            <date>2011-03-13 19:07:29 -0700</date>
            <delta_ts>2011-03-13 20:38:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56283-20110313190728.patch</filename>
            <type>text/plain</type>
            <size>21093</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gODA5ODcpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNjIgQEAK
KzIwMTEtMDMtMTMgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBIGZldyBIZWFwLXJlbGF0
ZWQgcmVuYW1lcyAoc2FucyBmaWxlIG1vdmVzLCB3aGljaCBzaG91bGQgY29tZSBuZXh0KQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTYyODMKKyAgICAg
ICAgCisgICAgICAgIENvbnNlcnZhdGl2ZVNldCA9PiBDb25zZXJ2YXRpdmVSb290cy4gIlNldCIg
d2FzIG1pc2xlYWRpbmcsIHNpbmNlIGl0ZW1zCisgICAgICAgIGFyZSBub3QgdW5pcXVlZC4gQWxz
bywgIlJvb3RzIiBpcyBtb3JlIHNwZWNpZmljIGFib3V0IHdoYXQncyBpbiB0aGUgc2V0LgorICAg
ICAgICAKKyAgICAgICAgTWFjaGluZVN0YWNrTWFya2VyID0+IE1hY2hpbmVUaHJlYWRzLiAiVGhy
ZWFkcyIgaXMgbW9yZSBkZXNjcmlwdGl2ZSBvZgorICAgICAgICB0aGUgZmFjdCB0aGF0IHRoaXMg
Y2xhc3MgbWFpbnRhaW5zIGEgc2V0IG9mIGFsbCB0aHJlYWRzIHVzaW5nIEpTQy4KKyAgICAgICAg
IlN0YWNrIiB3YXMgbWlzbGVhZGluZywgc2luY2UgdGhpcyBjbGFzcyB0cmF2ZXJzZXMgc3RhY2tz
IGFuZCByZWdpc3RlcnMuCisgICAgICAgICJNYXJrIiB3YXMgbWlzbGVhZGluZywgc2luY2UgdGhp
cyBjbGFzcyBkb2Vzbid0IG1hcmsgYW55dGhpbmcgYW55bW9yZS4KKyAgICAgICAgCisgICAgICAg
IHJlZ2lzdGVyVGhyZWFkID0+IGFkZEN1cnJlbnRUaHJlYWQuICJDdXJyZW50IiBpcyBtb3JlIHNw
ZWNpZmljLgorICAgICAgICB1bnJlZ2lzdGVyVGhyZWFkID0+IHJlbW92ZUN1cnJlbnRUaHJlYWQu
ICJDdXJyZW50IiBpcyBtb3JlIHNwZWNpZmljLgorICAgICAgICAKKyAgICAgICAgImN1cnJlbnRU
aHJlYWRSZWdpc3RyYXIiID0+IHRocmVhZFNwZWNpZmljLiBUaGUgb25seSBwb2ludCBvZiB0aGlz
IGRhdGEKKyAgICAgICAgc3RydWN0dXJlIGlzIHRvIHJlZ2lzdGVyIGEgdGhyZWFkLXNwZWNpZmlj
IGRlc3RydWN0b3Igd2l0aCBhIHBvaW50ZXIgdG8KKyAgICAgICAgdGhpcy4KKyAgICAgICAgCisg
ICAgICAgICJtYXJrLi4uQ29uc2VydmF0aXZlbHkiID0+ICJnYXRoZXIiLiAiTWFyayIgaXMgbm90
IHRydWUsIHNpbmNlIHRoZXNlCisgICAgICAgIGZ1bmN0aW9ucyBkb24ndCBtYXJrIGFueXRoaW5n
LiAiQ29uc2VydmF0aXZlbHkiIGlzIHJlZHVuZGFudCwgc2luY2UgdGhleQorICAgICAgICB0YWtl
ICJDb25zZXJ2YXRpdmVSb290cyIgYXMgYW4gYXJndW1lbnQuCisKKyAgICAgICAgKiBBUEkvQVBJ
U2hpbXMuaDoKKyAgICAgICAgKEpTQzo6QVBJRW50cnlTaGltV2l0aG91dExvY2s6OkFQSUVudHJ5
U2hpbVdpdGhvdXRMb2NrKToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5leHA6CisgICAgICAg
ICogcnVudGltZS9Db25zZXJ2YXRpdmVTZXQuY3BwOgorICAgICAgICAoSlNDOjpDb25zZXJ2YXRp
dmVSb290czo6Z3Jvdyk6CisgICAgICAgIChKU0M6OkNvbnNlcnZhdGl2ZVJvb3RzOjphZGQpOgor
ICAgICAgICAqIHJ1bnRpbWUvQ29uc2VydmF0aXZlU2V0Lmg6CisgICAgICAgIChKU0M6OkNvbnNl
cnZhdGl2ZVJvb3RzOjpDb25zZXJ2YXRpdmVSb290cyk6CisgICAgICAgIChKU0M6OkNvbnNlcnZh
dGl2ZVJvb3RzOjp+Q29uc2VydmF0aXZlUm9vdHMpOgorICAgICAgICAoSlNDOjpDb25zZXJ2YXRp
dmVSb290czo6c2l6ZSk6CisgICAgICAgIChKU0M6OkNvbnNlcnZhdGl2ZVJvb3RzOjpyb290cyk6
CisgICAgICAgICogcnVudGltZS9IZWFwLmNwcDoKKyAgICAgICAgKEpTQzo6SGVhcDo6SGVhcCk6
CisgICAgICAgIChKU0M6OkhlYXA6Om1hcmtSb290cyk6CisgICAgICAgICogcnVudGltZS9IZWFw
Lmg6CisgICAgICAgIChKU0M6OkhlYXA6Om1hY2hpbmVUaHJlYWRzKToKKyAgICAgICAgKiBydW50
aW1lL0pTR2xvYmFsRGF0YS5oOgorICAgICAgICAoSlNDOjpKU0dsb2JhbERhdGE6Om1ha2VVc2Fi
bGVGcm9tTXVsdGlwbGVUaHJlYWRzKToKKyAgICAgICAgKiBydW50aW1lL01hY2hpbmVTdGFja01h
cmtlci5jcHA6CisgICAgICAgIChKU0M6Ok1hY2hpbmVUaHJlYWRzOjpNYWNoaW5lVGhyZWFkcyk6
CisgICAgICAgIChKU0M6Ok1hY2hpbmVUaHJlYWRzOjp+TWFjaGluZVRocmVhZHMpOgorICAgICAg
ICAoSlNDOjpNYWNoaW5lVGhyZWFkczo6bWFrZVVzYWJsZUZyb21NdWx0aXBsZVRocmVhZHMpOgor
ICAgICAgICAoSlNDOjpNYWNoaW5lVGhyZWFkczo6YWRkQ3VycmVudFRocmVhZCk6CisgICAgICAg
IChKU0M6Ok1hY2hpbmVUaHJlYWRzOjpyZW1vdmVUaHJlYWQpOgorICAgICAgICAoSlNDOjpNYWNo
aW5lVGhyZWFkczo6cmVtb3ZlQ3VycmVudFRocmVhZCk6CisgICAgICAgIChKU0M6Ok1hY2hpbmVU
aHJlYWRzOjpnYXRoZXJGcm9tQ3VycmVudFRocmVhZEludGVybmFsKToKKyAgICAgICAgKEpTQzo6
TWFjaGluZVRocmVhZHM6OmdhdGhlckZyb21DdXJyZW50VGhyZWFkKToKKyAgICAgICAgKEpTQzo6
TWFjaGluZVRocmVhZHM6OmdhdGhlckZyb21PdGhlclRocmVhZCk6CisgICAgICAgIChKU0M6Ok1h
Y2hpbmVUaHJlYWRzOjpnYXRoZXJDb25zZXJ2YXRpdmVSb290cyk6CisgICAgICAgICogcnVudGlt
ZS9NYWNoaW5lU3RhY2tNYXJrZXIuaDoKKyAgICAgICAgKiBydW50aW1lL01hcmtTdGFjay5oOgor
ICAgICAgICAoSlNDOjpNYXJrU3RhY2s6OmFwcGVuZCk6CisKIDIwMTEtMDMtMTMgIEdlb2ZmcmV5
IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBOb3QgcmV2aWV3ZWQuCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAJKHJldmlzaW9uIDgwOTc0
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAkod29ya2luZyBj
b3B5KQpAQCAtMTg0LDcgKzE4NCw2IEBAIF9fWk4zSlNDMTdQcm9wZXJ0eU5hbWVBcnJheTNhZGRF
UE4zV1RGMTAKIF9fWk4zSlNDMTdjb25zdHJ1Y3RGdW5jdGlvbkVQTlNfOUV4ZWNTdGF0ZUVSS05T
XzdBcmdMaXN0RVJLTlNfMTBJZGVudGlmaWVyRVJLTlNfN1VTdHJpbmdFaQogX19aTjNKU0MxN2Ny
ZWF0ZVN5bnRheEVycm9yRVBOU185RXhlY1N0YXRlRVJLTlNfN1VTdHJpbmdFCiBfX1pOM0pTQzE4
RGVidWdnZXJBY3RpdmF0aW9uQzFFUk5TXzEySlNHbG9iYWxEYXRhRVBOU184SlNPYmplY3RFCi1f
X1pOM0pTQzE4TWFjaGluZVN0YWNrTWFya2VyMTRyZWdpc3RlclRocmVhZEV2CiBfX1pOM0pTQzE4
UHJvcGVydHlEZXNjcmlwdG9yMTFzZXRXcml0YWJsZUViCiBfX1pOM0pTQzE4UHJvcGVydHlEZXNj
cmlwdG9yMTJzZXRVbmRlZmluZWRFdgogX19aTjNKU0MxOFByb3BlcnR5RGVzY3JpcHRvcjEzc2V0
RGVzY3JpcHRvckVOU183SlNWYWx1ZUVqCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L0FQSVNoaW1zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9BUElT
aGltcy5oCShyZXZpc2lvbiA4MDk3NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvQVBJ
U2hpbXMuaAkod29ya2luZyBjb3B5KQpAQCAtNDIsNyArNDIsNyBAQCBwcm90ZWN0ZWQ6CiAgICAg
ICAgIFVOVVNFRF9QQVJBTShyZWdpc3RlclRocmVhZCk7CiAjaWYgRU5BQkxFKEpTQ19NVUxUSVBM
RV9USFJFQURTKQogICAgICAgICBpZiAocmVnaXN0ZXJUaHJlYWQpCi0gICAgICAgICAgICBnbG9i
YWxEYXRhLT5oZWFwLm1hY2hpbmVTdGFja01hcmtlcigpLnJlZ2lzdGVyVGhyZWFkKCk7CisgICAg
ICAgICAgICBnbG9iYWxEYXRhLT5oZWFwLm1hY2hpbmVUaHJlYWRzKCkuYWRkQ3VycmVudFRocmVh
ZCgpOwogI2VuZGlmCiAgICAgICAgIG1fZ2xvYmFsRGF0YS0+aGVhcC5hY3Rpdml0eUNhbGxiYWNr
KCktPnN5bmNocm9uaXplKCk7CiAgICAgICAgIG1fZ2xvYmFsRGF0YS0+dGltZW91dENoZWNrZXIu
c3RhcnQoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNlcnZhdGl2
ZVNldC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29u
c2VydmF0aXZlU2V0LmNwcAkocmV2aXNpb24gODA5ODUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Db25zZXJ2YXRpdmVTZXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSwxOCAr
MzUsMTggQEAgaW5saW5lIGJvb2wgaXNQb2ludGVyQWxpZ25lZCh2b2lkKiBwKQogICAgIHJldHVy
biAhKChpbnRwdHJfdCkocCkgJiAoc2l6ZW9mKGNoYXIqKSAtIDEpKTsKIH0KIAotdm9pZCBDb25z
ZXJ2YXRpdmVTZXQ6Omdyb3coKQordm9pZCBDb25zZXJ2YXRpdmVSb290czo6Z3JvdygpCiB7CiAg
ICAgc2l6ZV90IG5ld0NhcGFjaXR5ID0gbV9jYXBhY2l0eSA9PSBpbmxpbmVDYXBhY2l0eSA/IG5v
bklubGluZUNhcGFjaXR5IDogbV9jYXBhY2l0eSAqIDI7Ci0gICAgSlNDZWxsKiogbmV3U2V0ID0g
c3RhdGljX2Nhc3Q8SlNDZWxsKio+KE9TQWxsb2NhdG9yOjpyZXNlcnZlQW5kQ29tbWl0KG5ld0Nh
cGFjaXR5ICogc2l6ZW9mKEpTQ2VsbCopKSk7Ci0gICAgbWVtY3B5KG5ld1NldCwgbV9zZXQsIG1f
c2l6ZSAqIHNpemVvZihKU0NlbGwqKSk7Ci0gICAgaWYgKG1fc2V0ICE9IG1faW5saW5lU2V0KQot
ICAgICAgICBPU0FsbG9jYXRvcjo6ZGVjb21taXRBbmRSZWxlYXNlKG1fc2V0LCBtX2NhcGFjaXR5
ICogc2l6ZW9mKEpTQ2VsbCopKTsKKyAgICBKU0NlbGwqKiBuZXdSb290cyA9IHN0YXRpY19jYXN0
PEpTQ2VsbCoqPihPU0FsbG9jYXRvcjo6cmVzZXJ2ZUFuZENvbW1pdChuZXdDYXBhY2l0eSAqIHNp
emVvZihKU0NlbGwqKSkpOworICAgIG1lbWNweShuZXdSb290cywgbV9yb290cywgbV9zaXplICog
c2l6ZW9mKEpTQ2VsbCopKTsKKyAgICBpZiAobV9yb290cyAhPSBtX2lubGluZVJvb3RzKQorICAg
ICAgICBPU0FsbG9jYXRvcjo6ZGVjb21taXRBbmRSZWxlYXNlKG1fcm9vdHMsIG1fY2FwYWNpdHkg
KiBzaXplb2YoSlNDZWxsKikpOwogICAgIG1fY2FwYWNpdHkgPSBuZXdDYXBhY2l0eTsKLSAgICBt
X3NldCA9IG5ld1NldDsKKyAgICBtX3Jvb3RzID0gbmV3Um9vdHM7CiB9CiAKLXZvaWQgQ29uc2Vy
dmF0aXZlU2V0OjphZGQodm9pZCogYmVnaW4sIHZvaWQqIGVuZCkKK3ZvaWQgQ29uc2VydmF0aXZl
Um9vdHM6OmFkZCh2b2lkKiBiZWdpbiwgdm9pZCogZW5kKQogewogICAgIEFTU0VSVChiZWdpbiA8
PSBlbmQpOwogICAgIEFTU0VSVCgoc3RhdGljX2Nhc3Q8Y2hhcio+KGVuZCkgLSBzdGF0aWNfY2Fz
dDxjaGFyKj4oYmVnaW4pKSA8IDB4MTAwMDAwMCk7CkBAIC02MCw3ICs2MCw3IEBAIHZvaWQgQ29u
c2VydmF0aXZlU2V0OjphZGQodm9pZCogYmVnaW4sIHYKICAgICAgICAgaWYgKG1fc2l6ZSA9PSBt
X2NhcGFjaXR5KQogICAgICAgICAgICAgZ3JvdygpOwogCi0gICAgICAgIG1fc2V0W21fc2l6ZSsr
XSA9IHJlaW50ZXJwcmV0X2Nhc3Q8SlNDZWxsKj4oKml0KTsKKyAgICAgICAgbV9yb290c1ttX3Np
emUrK10gPSByZWludGVycHJldF9jYXN0PEpTQ2VsbCo+KCppdCk7CiAgICAgfQogfQogCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25zZXJ2YXRpdmVTZXQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25zZXJ2YXRpdmVTZXQuaAko
cmV2aXNpb24gODA5ODUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25zZXJ2
YXRpdmVTZXQuaAkod29ya2luZyBjb3B5KQpAQCAtMjMsOCArMjMsOCBAQAogICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCiAgKi8KIAotI2lmbmRlZiBDb25zZXJ2YXRpdmVTZXRfaAotI2RlZmluZSBDb25zZXJ2YXRp
dmVTZXRfaAorI2lmbmRlZiBDb25zZXJ2YXRpdmVSb290c19oCisjZGVmaW5lIENvbnNlcnZhdGl2
ZVJvb3RzX2gKIAogI2luY2x1ZGUgPHd0Zi9PU0FsbG9jYXRvci5oPgogI2luY2x1ZGUgPHd0Zi9W
ZWN0b3IuaD4KQEAgLTM2LDE1ICszNiwxNSBAQCBjbGFzcyBIZWFwOwogCiAvLyBNYXkgY29udGFp
biBkdXBsaWNhdGVzLgogCi1jbGFzcyBDb25zZXJ2YXRpdmVTZXQgeworY2xhc3MgQ29uc2VydmF0
aXZlUm9vdHMgewogcHVibGljOgotICAgIENvbnNlcnZhdGl2ZVNldChIZWFwKik7Ci0gICAgfkNv
bnNlcnZhdGl2ZVNldCgpOworICAgIENvbnNlcnZhdGl2ZVJvb3RzKEhlYXAqKTsKKyAgICB+Q29u
c2VydmF0aXZlUm9vdHMoKTsKIAogICAgIHZvaWQgYWRkKHZvaWQqIGJlZ2luLCB2b2lkKiBlbmQp
OwogICAgIAogICAgIHNpemVfdCBzaXplKCk7Ci0gICAgSlNDZWxsKiogc2V0KCk7CisgICAgSlND
ZWxsKiogcm9vdHMoKTsKIAogcHJpdmF0ZToKICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IGlubGlu
ZUNhcGFjaXR5ID0gMTI4OwpAQCAtNTMsMzYgKzUzLDM2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBn
cm93KCk7CiAKICAgICBIZWFwKiBtX2hlYXA7Ci0gICAgSlNDZWxsKiogbV9zZXQ7CisgICAgSlND
ZWxsKiogbV9yb290czsKICAgICBzaXplX3QgbV9zaXplOwogICAgIHNpemVfdCBtX2NhcGFjaXR5
OwotICAgIEpTQ2VsbCogbV9pbmxpbmVTZXRbaW5saW5lQ2FwYWNpdHldOworICAgIEpTQ2VsbCog
bV9pbmxpbmVSb290c1tpbmxpbmVDYXBhY2l0eV07CiB9OwogCi1pbmxpbmUgQ29uc2VydmF0aXZl
U2V0OjpDb25zZXJ2YXRpdmVTZXQoSGVhcCogaGVhcCkKK2lubGluZSBDb25zZXJ2YXRpdmVSb290
czo6Q29uc2VydmF0aXZlUm9vdHMoSGVhcCogaGVhcCkKICAgICA6IG1faGVhcChoZWFwKQotICAg
ICwgbV9zZXQobV9pbmxpbmVTZXQpCisgICAgLCBtX3Jvb3RzKG1faW5saW5lUm9vdHMpCiAgICAg
LCBtX3NpemUoMCkKICAgICAsIG1fY2FwYWNpdHkoaW5saW5lQ2FwYWNpdHkpCiB7CiB9CiAKLWlu
bGluZSBDb25zZXJ2YXRpdmVTZXQ6On5Db25zZXJ2YXRpdmVTZXQoKQoraW5saW5lIENvbnNlcnZh
dGl2ZVJvb3RzOjp+Q29uc2VydmF0aXZlUm9vdHMoKQogewotICAgIGlmIChtX3NldCAhPSBtX2lu
bGluZVNldCkKLSAgICAgICAgT1NBbGxvY2F0b3I6OmRlY29tbWl0QW5kUmVsZWFzZShtX3NldCwg
bV9jYXBhY2l0eSAqIHNpemVvZihKU0NlbGwqKSk7CisgICAgaWYgKG1fcm9vdHMgIT0gbV9pbmxp
bmVSb290cykKKyAgICAgICAgT1NBbGxvY2F0b3I6OmRlY29tbWl0QW5kUmVsZWFzZShtX3Jvb3Rz
LCBtX2NhcGFjaXR5ICogc2l6ZW9mKEpTQ2VsbCopKTsKIH0KIAotaW5saW5lIHNpemVfdCBDb25z
ZXJ2YXRpdmVTZXQ6OnNpemUoKQoraW5saW5lIHNpemVfdCBDb25zZXJ2YXRpdmVSb290czo6c2l6
ZSgpCiB7CiAgICAgcmV0dXJuIG1fc2l6ZTsKIH0KIAotaW5saW5lIEpTQ2VsbCoqIENvbnNlcnZh
dGl2ZVNldDo6c2V0KCkKK2lubGluZSBKU0NlbGwqKiBDb25zZXJ2YXRpdmVSb290czo6cm9vdHMo
KQogewotICAgIHJldHVybiBtX3NldDsKKyAgICByZXR1cm4gbV9yb290czsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgSlNDCiAKLSNlbmRpZiAvLyBDb25zZXJ2YXRpdmVTZXRfaAorI2VuZGlmIC8vIENv
bnNlcnZhdGl2ZVJvb3RzX2gKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0hl
YXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0hlYXAu
Y3BwCShyZXZpc2lvbiA4MDk4NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0hl
YXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Niw3ICs0Niw3IEBAIEhlYXA6OkhlYXAoSlNHbG9i
YWxEYXRhKiBnbG9iYWxEYXRhKQogICAgICwgbV9tYXJrTGlzdFNldCgwKQogICAgICwgbV9hY3Rp
dml0eUNhbGxiYWNrKERlZmF1bHRHQ0FjdGl2aXR5Q2FsbGJhY2s6OmNyZWF0ZSh0aGlzKSkKICAg
ICAsIG1fZ2xvYmFsRGF0YShnbG9iYWxEYXRhKQotICAgICwgbV9tYWNoaW5lU3RhY2tNYXJrZXIo
dGhpcykKKyAgICAsIG1fbWFjaGluZVRocmVhZHModGhpcykKICAgICAsIG1fbWFya1N0YWNrKGds
b2JhbERhdGEtPmpzQXJyYXlWUHRyKQogICAgICwgbV9oYW5kbGVIZWFwKGdsb2JhbERhdGEpCiAg
ICAgLCBtX2V4dHJhQ29zdCgwKQpAQCAtMjA4LDE0ICsyMDgsMTQgQEAgdm9pZCBIZWFwOjptYXJr
Um9vdHMoKQogICAgIC8vIFdlIGdhdGhlciB0aGUgY29uc2VydmF0aXZlIHNldCBiZWZvcmUgY2xl
YXJpbmcgbWFyayBiaXRzLCBiZWNhdXNlCiAgICAgLy8gY29uc2VydmF0aXZlIGdhdGhlcmluZyB1
c2VzIHRoZSBtYXJrIGJpdHMgZnJvbSBvdXIgbGFzdCBtYXJrIHBhc3MgdG8KICAgICAvLyBkZXRl
cm1pbmUgd2hldGhlciBhIHJlZmVyZW5jZSBpcyB2YWxpZC4KLSAgICBDb25zZXJ2YXRpdmVTZXQg
Y29uc2VydmF0aXZlU2V0KHRoaXMpOwotICAgIG1fbWFjaGluZVN0YWNrTWFya2VyLm1hcmtNYWNo
aW5lU3RhY2tDb25zZXJ2YXRpdmVseShjb25zZXJ2YXRpdmVTZXQpOwotICAgIGNvbnNlcnZhdGl2
ZVNldC5hZGQocmVnaXN0ZXJGaWxlKCkuc3RhcnQoKSwgcmVnaXN0ZXJGaWxlKCkuZW5kKCkpOwor
ICAgIENvbnNlcnZhdGl2ZVJvb3RzIGNvbnNlcnZhdGl2ZVJvb3RzKHRoaXMpOworICAgIG1fbWFj
aGluZVRocmVhZHMuZ2F0aGVyQ29uc2VydmF0aXZlUm9vdHMoY29uc2VydmF0aXZlUm9vdHMpOwor
ICAgIGNvbnNlcnZhdGl2ZVJvb3RzLmFkZChyZWdpc3RlckZpbGUoKS5zdGFydCgpLCByZWdpc3Rl
ckZpbGUoKS5lbmQoKSk7CiAKICAgICBtX21hcmtlZFNwYWNlLmNsZWFyTWFya3MoKTsKIAogICAg
IE1hcmtTdGFjayYgbWFya1N0YWNrID0gbV9tYXJrU3RhY2s7Ci0gICAgbWFya1N0YWNrLmFwcGVu
ZChjb25zZXJ2YXRpdmVTZXQpOworICAgIG1hcmtTdGFjay5hcHBlbmQoY29uc2VydmF0aXZlUm9v
dHMpOwogICAgIG1hcmtTdGFjay5kcmFpbigpOwogCiAgICAgLy8gTWFyayBleHBsaWNpdGx5IHJl
Z2lzdGVyZWQgcm9vdHMuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9IZWFw
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSGVhcC5oCShy
ZXZpc2lvbiA4MDk3NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0hlYXAuaAko
d29ya2luZyBjb3B5KQpAQCAtNjUsNyArNjUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAg
ICBKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEoKSBjb25zdCB7IHJldHVybiBtX2dsb2JhbERhdGE7
IH0KICAgICAgICAgTWFya2VkU3BhY2UmIG1hcmtlZFNwYWNlKCkgeyByZXR1cm4gbV9tYXJrZWRT
cGFjZTsgfQotICAgICAgICBNYWNoaW5lU3RhY2tNYXJrZXImIG1hY2hpbmVTdGFja01hcmtlcigp
IHsgcmV0dXJuIG1fbWFjaGluZVN0YWNrTWFya2VyOyB9CisgICAgICAgIE1hY2hpbmVUaHJlYWRz
JiBtYWNoaW5lVGhyZWFkcygpIHsgcmV0dXJuIG1fbWFjaGluZVRocmVhZHM7IH0KIAogICAgICAg
ICBHQ0FjdGl2aXR5Q2FsbGJhY2sqIGFjdGl2aXR5Q2FsbGJhY2soKTsKICAgICAgICAgdm9pZCBz
ZXRBY3Rpdml0eUNhbGxiYWNrKFBhc3NPd25QdHI8R0NBY3Rpdml0eUNhbGxiYWNrPik7CkBAIC0x
MjksNyArMTI5LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgSlNHbG9iYWxEYXRhKiBt
X2dsb2JhbERhdGE7CiAgICAgICAgIAotICAgICAgICBNYWNoaW5lU3RhY2tNYXJrZXIgbV9tYWNo
aW5lU3RhY2tNYXJrZXI7CisgICAgICAgIE1hY2hpbmVUaHJlYWRzIG1fbWFjaGluZVRocmVhZHM7
CiAgICAgICAgIE1hcmtTdGFjayBtX21hcmtTdGFjazsKICAgICAgICAgSGFuZGxlSGVhcCBtX2hh
bmRsZUhlYXA7CiAgICAgICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNHbG9iYWxEYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxEYXRhLmgJKHJldmlzaW9uIDgwOTc0KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTEyOCw3ICsxMjgs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogI2lmIEVOQUJMRShKU0NfTVVMVElQTEVfVEhSRUFEUykK
ICAgICAgICAgLy8gV2lsbCBzdGFydCB0cmFja2luZyB0aHJlYWRzIHRoYXQgdXNlIHRoZSBoZWFw
LCB3aGljaCBpcyByZXNvdXJjZS1oZWF2eS4KLSAgICAgICAgdm9pZCBtYWtlVXNhYmxlRnJvbU11
bHRpcGxlVGhyZWFkcygpIHsgaGVhcC5tYWNoaW5lU3RhY2tNYXJrZXIoKS5tYWtlVXNhYmxlRnJv
bU11bHRpcGxlVGhyZWFkcygpOyB9CisgICAgICAgIHZvaWQgbWFrZVVzYWJsZUZyb21NdWx0aXBs
ZVRocmVhZHMoKSB7IGhlYXAubWFjaGluZVRocmVhZHMoKS5tYWtlVXNhYmxlRnJvbU11bHRpcGxl
VGhyZWFkcygpOyB9CiAjZW5kaWYKIAogICAgICAgICBHbG9iYWxEYXRhVHlwZSBnbG9iYWxEYXRh
VHlwZTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hY2hpbmVTdGFja01h
cmtlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFj
aGluZVN0YWNrTWFya2VyLmNwcAkocmV2aXNpb24gODA5NzQpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9NYWNoaW5lU3RhY2tNYXJrZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03
OCw3ICs3OCw3IEBACiAjaWYgVVNFKFBUSFJFQURTKSAmJiAhT1MoV0lORE9XUykgJiYgIU9TKERB
UldJTikKICNpbmNsdWRlIDxzaWduYWwuaD4KICNpZm5kZWYgU0FfUkVTVEFSVAotI2Vycm9yIE1h
Y2hpbmVTdGFja01hcmtlciByZXF1aXJlcyBTQV9SRVNUQVJUCisjZXJyb3IgTWFjaGluZVRocmVh
ZHMgcmVxdWlyZXMgU0FfUkVTVEFSVAogI2VuZGlmCiAjZW5kaWYKIApAQCAtMTE3LDcgKzExNyw3
IEBAIHN0YXRpYyB2b2lkIHB0aHJlYWRTaWduYWxIYW5kbGVyU3VzcGVuZFIKIH0KICNlbmRpZgog
Ci1jbGFzcyBNYWNoaW5lU3RhY2tNYXJrZXI6OlRocmVhZCB7CitjbGFzcyBNYWNoaW5lVGhyZWFk
czo6VGhyZWFkIHsKIHB1YmxpYzoKICAgICBUaHJlYWQocHRocmVhZF90IHB0aHJlYWQsIGNvbnN0
IFBsYXRmb3JtVGhyZWFkJiBwbGF0VGhyZWFkLCB2b2lkKiBiYXNlKSAKICAgICAgICAgOiBwb3Np
eFRocmVhZChwdGhyZWFkKQpAQCAtMTQ2LDIwICsxNDYsMjAgQEAgcHVibGljOgogCiAjZW5kaWYK
IAotTWFjaGluZVN0YWNrTWFya2VyOjpNYWNoaW5lU3RhY2tNYXJrZXIoSGVhcCogaGVhcCkKK01h
Y2hpbmVUaHJlYWRzOjpNYWNoaW5lVGhyZWFkcyhIZWFwKiBoZWFwKQogICAgIDogbV9oZWFwKGhl
YXApCiAjaWYgRU5BQkxFKEpTQ19NVUxUSVBMRV9USFJFQURTKQogICAgICwgbV9yZWdpc3RlcmVk
VGhyZWFkcygwKQotICAgICwgbV9jdXJyZW50VGhyZWFkUmVnaXN0cmFyKDApCisgICAgLCBtX3Ro
cmVhZFNwZWNpZmljKDApCiAjZW5kaWYKIHsKIH0KIAotTWFjaGluZVN0YWNrTWFya2VyOjp+TWFj
aGluZVN0YWNrTWFya2VyKCkKK01hY2hpbmVUaHJlYWRzOjp+TWFjaGluZVRocmVhZHMoKQogewog
I2lmIEVOQUJMRShKU0NfTVVMVElQTEVfVEhSRUFEUykKLSAgICBpZiAobV9jdXJyZW50VGhyZWFk
UmVnaXN0cmFyKSB7Ci0gICAgICAgIGludCBlcnJvciA9IHB0aHJlYWRfa2V5X2RlbGV0ZShtX2N1
cnJlbnRUaHJlYWRSZWdpc3RyYXIpOworICAgIGlmIChtX3RocmVhZFNwZWNpZmljKSB7CisgICAg
ICAgIGludCBlcnJvciA9IHB0aHJlYWRfa2V5X2RlbGV0ZShtX3RocmVhZFNwZWNpZmljKTsKICAg
ICAgICAgQVNTRVJUX1VOVVNFRChlcnJvciwgIWVycm9yKTsKICAgICB9CiAKQEAgLTE4NSwyNCAr
MTg1LDI0IEBAIHN0YXRpYyBpbmxpbmUgUGxhdGZvcm1UaHJlYWQgZ2V0Q3VycmVudFAKICNlbmRp
ZgogfQogCi12b2lkIE1hY2hpbmVTdGFja01hcmtlcjo6bWFrZVVzYWJsZUZyb21NdWx0aXBsZVRo
cmVhZHMoKQordm9pZCBNYWNoaW5lVGhyZWFkczo6bWFrZVVzYWJsZUZyb21NdWx0aXBsZVRocmVh
ZHMoKQogewotICAgIGlmIChtX2N1cnJlbnRUaHJlYWRSZWdpc3RyYXIpCisgICAgaWYgKG1fdGhy
ZWFkU3BlY2lmaWMpCiAgICAgICAgIHJldHVybjsKIAotICAgIGludCBlcnJvciA9IHB0aHJlYWRf
a2V5X2NyZWF0ZSgmbV9jdXJyZW50VGhyZWFkUmVnaXN0cmFyLCB1bnJlZ2lzdGVyVGhyZWFkKTsK
KyAgICBpbnQgZXJyb3IgPSBwdGhyZWFkX2tleV9jcmVhdGUoJm1fdGhyZWFkU3BlY2lmaWMsIHJl
bW92ZVRocmVhZCk7CiAgICAgaWYgKGVycm9yKQogICAgICAgICBDUkFTSCgpOwogfQogCi12b2lk
IE1hY2hpbmVTdGFja01hcmtlcjo6cmVnaXN0ZXJUaHJlYWQoKQordm9pZCBNYWNoaW5lVGhyZWFk
czo6YWRkQ3VycmVudFRocmVhZCgpCiB7CiAgICAgQVNTRVJUKCFtX2hlYXAtPmdsb2JhbERhdGEo
KS0+ZXhjbHVzaXZlVGhyZWFkIHx8IG1faGVhcC0+Z2xvYmFsRGF0YSgpLT5leGNsdXNpdmVUaHJl
YWQgPT0gY3VycmVudFRocmVhZCgpKTsKIAotICAgIGlmICghbV9jdXJyZW50VGhyZWFkUmVnaXN0
cmFyIHx8IHB0aHJlYWRfZ2V0c3BlY2lmaWMobV9jdXJyZW50VGhyZWFkUmVnaXN0cmFyKSkKKyAg
ICBpZiAoIW1fdGhyZWFkU3BlY2lmaWMgfHwgcHRocmVhZF9nZXRzcGVjaWZpYyhtX3RocmVhZFNw
ZWNpZmljKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgcHRocmVhZF9zZXRzcGVjaWZpYyhtX2N1
cnJlbnRUaHJlYWRSZWdpc3RyYXIsIHRoaXMpOworICAgIHB0aHJlYWRfc2V0c3BlY2lmaWMobV90
aHJlYWRTcGVjaWZpYywgdGhpcyk7CiAgICAgVGhyZWFkKiB0aHJlYWQgPSBuZXcgVGhyZWFkKHB0
aHJlYWRfc2VsZigpLCBnZXRDdXJyZW50UGxhdGZvcm1UaHJlYWQoKSwgbV9oZWFwLT5nbG9iYWxE
YXRhKCktPnN0YWNrKCkub3JpZ2luKCkpOwogCiAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX3JlZ2lz
dGVyZWRUaHJlYWRzTXV0ZXgpOwpAQCAtMjExLDEzICsyMTEsMTMgQEAgdm9pZCBNYWNoaW5lU3Rh
Y2tNYXJrZXI6OnJlZ2lzdGVyVGhyZWFkKAogICAgIG1fcmVnaXN0ZXJlZFRocmVhZHMgPSB0aHJl
YWQ7CiB9CiAKLXZvaWQgTWFjaGluZVN0YWNrTWFya2VyOjp1bnJlZ2lzdGVyVGhyZWFkKHZvaWQq
IHApCit2b2lkIE1hY2hpbmVUaHJlYWRzOjpyZW1vdmVUaHJlYWQodm9pZCogcCkKIHsKICAgICBp
ZiAocCkKLSAgICAgICAgc3RhdGljX2Nhc3Q8TWFjaGluZVN0YWNrTWFya2VyKj4ocCktPnVucmVn
aXN0ZXJUaHJlYWQoKTsKKyAgICAgICAgc3RhdGljX2Nhc3Q8TWFjaGluZVRocmVhZHMqPihwKS0+
cmVtb3ZlQ3VycmVudFRocmVhZCgpOwogfQogCi12b2lkIE1hY2hpbmVTdGFja01hcmtlcjo6dW5y
ZWdpc3RlclRocmVhZCgpCit2b2lkIE1hY2hpbmVUaHJlYWRzOjpyZW1vdmVDdXJyZW50VGhyZWFk
KCkKIHsKICAgICBwdGhyZWFkX3QgY3VycmVudFBvc2l4VGhyZWFkID0gcHRocmVhZF9zZWxmKCk7
CiAKQEAgLTI0NCwxMiArMjQ0LDEyIEBAIHZvaWQgTWFjaGluZVN0YWNrTWFya2VyOjp1bnJlZ2lz
dGVyVGhyZWEKIAogI2VuZGlmCiAKLXZvaWQgTkVWRVJfSU5MSU5FIE1hY2hpbmVTdGFja01hcmtl
cjo6bWFya0N1cnJlbnRUaHJlYWRDb25zZXJ2YXRpdmVseUludGVybmFsKENvbnNlcnZhdGl2ZVNl
dCYgY29uc2VydmF0aXZlU2V0KQordm9pZCBORVZFUl9JTkxJTkUgTWFjaGluZVRocmVhZHM6Omdh
dGhlckZyb21DdXJyZW50VGhyZWFkSW50ZXJuYWwoQ29uc2VydmF0aXZlUm9vdHMmIGNvbnNlcnZh
dGl2ZVJvb3RzKQogewogICAgIHZvaWQqIGJlZ2luID0gbV9oZWFwLT5nbG9iYWxEYXRhKCktPnN0
YWNrKCkuY3VycmVudCgpOwogICAgIHZvaWQqIGVuZCA9IG1faGVhcC0+Z2xvYmFsRGF0YSgpLT5z
dGFjaygpLm9yaWdpbigpOwogICAgIHN3YXBJZkJhY2t3YXJkcyhiZWdpbiwgZW5kKTsKLSAgICBj
b25zZXJ2YXRpdmVTZXQuYWRkKGJlZ2luLCBlbmQpOworICAgIGNvbnNlcnZhdGl2ZVJvb3RzLmFk
ZChiZWdpbiwgZW5kKTsKIH0KIAogI2lmIENPTVBJTEVSKEdDQykKQEAgLTI1OCw3ICsyNTgsNyBA
QCB2b2lkIE5FVkVSX0lOTElORSBNYWNoaW5lU3RhY2tNYXJrZXI6Om1hCiAjZGVmaW5lIFJFR0lT
VEVSX0JVRkZFUl9BTElHTk1FTlQKICNlbmRpZgogCi12b2lkIE1hY2hpbmVTdGFja01hcmtlcjo6
bWFya0N1cnJlbnRUaHJlYWRDb25zZXJ2YXRpdmVseShDb25zZXJ2YXRpdmVTZXQmIGNvbnNlcnZh
dGl2ZVNldCkKK3ZvaWQgTWFjaGluZVRocmVhZHM6OmdhdGhlckZyb21DdXJyZW50VGhyZWFkKENv
bnNlcnZhdGl2ZVJvb3RzJiBjb25zZXJ2YXRpdmVSb290cykKIHsKICAgICAvLyBzZXRqbXAgZm9y
Y2VzIHZvbGF0aWxlIHJlZ2lzdGVycyBvbnRvIHRoZSBzdGFjawogICAgIGptcF9idWYgcmVnaXN0
ZXJzIFJFR0lTVEVSX0JVRkZFUl9BTElHTk1FTlQ7CkBAIC0yNzEsNyArMjcxLDcgQEAgdm9pZCBN
YWNoaW5lU3RhY2tNYXJrZXI6Om1hcmtDdXJyZW50VGhyZQogI3ByYWdtYSB3YXJuaW5nKHBvcCkK
ICNlbmRpZgogCi0gICAgbWFya0N1cnJlbnRUaHJlYWRDb25zZXJ2YXRpdmVseUludGVybmFsKGNv
bnNlcnZhdGl2ZVNldCk7CisgICAgZ2F0aGVyRnJvbUN1cnJlbnRUaHJlYWRJbnRlcm5hbChjb25z
ZXJ2YXRpdmVSb290cyk7CiB9CiAKICNpZiBFTkFCTEUoSlNDX01VTFRJUExFX1RIUkVBRFMpCkBA
IC00MzUsMjAgKzQzNSwxOSBAQCBzdGF0aWMgdm9pZCBmcmVlUGxhdGZvcm1UaHJlYWRSZWdpc3Rl
cnMoCiAjZW5kaWYKIH0KIAotdm9pZCBNYWNoaW5lU3RhY2tNYXJrZXI6Om1hcmtPdGhlclRocmVh
ZENvbnNlcnZhdGl2ZWx5KENvbnNlcnZhdGl2ZVNldCYgY29uc2VydmF0aXZlU2V0LCBUaHJlYWQq
IHRocmVhZCkKK3ZvaWQgTWFjaGluZVRocmVhZHM6OmdhdGhlckZyb21PdGhlclRocmVhZChDb25z
ZXJ2YXRpdmVSb290cyYgY29uc2VydmF0aXZlUm9vdHMsIFRocmVhZCogdGhyZWFkKQogewogICAg
IHN1c3BlbmRUaHJlYWQodGhyZWFkLT5wbGF0Zm9ybVRocmVhZCk7CiAKICAgICBQbGF0Zm9ybVRo
cmVhZFJlZ2lzdGVycyByZWdzOwogICAgIHNpemVfdCByZWdTaXplID0gZ2V0UGxhdGZvcm1UaHJl
YWRSZWdpc3RlcnModGhyZWFkLT5wbGF0Zm9ybVRocmVhZCwgcmVncyk7CiAKLSAgICAvLyBtYXJr
IHRoZSB0aHJlYWQncyByZWdpc3RlcnMKLSAgICBjb25zZXJ2YXRpdmVTZXQuYWRkKHN0YXRpY19j
YXN0PHZvaWQqPigmcmVncyksIHN0YXRpY19jYXN0PHZvaWQqPihyZWludGVycHJldF9jYXN0PGNo
YXIqPigmcmVncykgKyByZWdTaXplKSk7CisgICAgY29uc2VydmF0aXZlUm9vdHMuYWRkKHN0YXRp
Y19jYXN0PHZvaWQqPigmcmVncyksIHN0YXRpY19jYXN0PHZvaWQqPihyZWludGVycHJldF9jYXN0
PGNoYXIqPigmcmVncykgKyByZWdTaXplKSk7CiAKICAgICB2b2lkKiBzdGFja1BvaW50ZXIgPSBv
dGhlclRocmVhZFN0YWNrUG9pbnRlcihyZWdzKTsKICAgICB2b2lkKiBzdGFja0Jhc2UgPSB0aHJl
YWQtPnN0YWNrQmFzZTsKICAgICBzd2FwSWZCYWNrd2FyZHMoc3RhY2tQb2ludGVyLCBzdGFja0Jh
c2UpOwotICAgIGNvbnNlcnZhdGl2ZVNldC5hZGQoc3RhY2tQb2ludGVyLCBzdGFja0Jhc2UpOwor
ICAgIGNvbnNlcnZhdGl2ZVJvb3RzLmFkZChzdGFja1BvaW50ZXIsIHN0YWNrQmFzZSk7CiAKICAg
ICByZXN1bWVUaHJlYWQodGhyZWFkLT5wbGF0Zm9ybVRocmVhZCk7CiAKQEAgLTQ1NywyNyArNDU2
LDI3IEBAIHZvaWQgTWFjaGluZVN0YWNrTWFya2VyOjptYXJrT3RoZXJUaHJlYWQKIAogI2VuZGlm
CiAKLXZvaWQgTWFjaGluZVN0YWNrTWFya2VyOjptYXJrTWFjaGluZVN0YWNrQ29uc2VydmF0aXZl
bHkoQ29uc2VydmF0aXZlU2V0JiBjb25zZXJ2YXRpdmVTZXQpCit2b2lkIE1hY2hpbmVUaHJlYWRz
OjpnYXRoZXJDb25zZXJ2YXRpdmVSb290cyhDb25zZXJ2YXRpdmVSb290cyYgY29uc2VydmF0aXZl
Um9vdHMpCiB7Ci0gICAgbWFya0N1cnJlbnRUaHJlYWRDb25zZXJ2YXRpdmVseShjb25zZXJ2YXRp
dmVTZXQpOworICAgIGdhdGhlckZyb21DdXJyZW50VGhyZWFkKGNvbnNlcnZhdGl2ZVJvb3RzKTsK
IAogI2lmIEVOQUJMRShKU0NfTVVMVElQTEVfVEhSRUFEUykKIAotICAgIGlmIChtX2N1cnJlbnRU
aHJlYWRSZWdpc3RyYXIpIHsKKyAgICBpZiAobV90aHJlYWRTcGVjaWZpYykgewogCiAgICAgICAg
IE11dGV4TG9ja2VyIGxvY2sobV9yZWdpc3RlcmVkVGhyZWFkc011dGV4KTsKIAogI2lmbmRlZiBO
REVCVUcKLSAgICAgICAgLy8gRm9yYmlkIG1hbGxvYyBkdXJpbmcgdGhlIG1hcmsgcGhhc2UuIE1h
cmtpbmcgYSB0aHJlYWQgc3VzcGVuZHMgaXQsIHNvIAotICAgICAgICAvLyBhIG1hbGxvYyBpbnNp
ZGUgbWFya0NoaWxkcmVuKCkgd291bGQgcmlzayBhIGRlYWRsb2NrIHdpdGggYSB0aHJlYWQgdGhh
dCBoYWQgYmVlbiAKLSAgICAgICAgLy8gc3VzcGVuZGVkIHdoaWxlIGhvbGRpbmcgdGhlIG1hbGxv
YyBsb2NrLgorICAgICAgICAvLyBGb3JiaWQgbWFsbG9jIGR1cmluZyB0aGUgZ2F0aGVyIHBoYXNl
LiBUaGUgZ2F0aGVyIHBoYXNlIHN1c3BlbmRzCisgICAgICAgIC8vIHRocmVhZHMsIHNvIGEgbWFs
bG9jIGR1cmluZyBnYXRoZXIgd291bGQgcmlzayBhIGRlYWRsb2NrIHdpdGggYQorICAgICAgICAv
LyB0aHJlYWQgdGhhdCBoYWQgYmVlbiBzdXNwZW5kZWQgd2hpbGUgaG9sZGluZyB0aGUgbWFsbG9j
IGxvY2suCiAgICAgICAgIGZhc3RNYWxsb2NGb3JiaWQoKTsKICNlbmRpZgogICAgICAgICAvLyBJ
dCBpcyBzYWZlIHRvIGFjY2VzcyB0aGUgcmVnaXN0ZXJlZFRocmVhZHMgbGlzdCwgYmVjYXVzZSB3
ZSBlYXJsaWVyIGFzc2VydGVkIHRoYXQgbG9ja3MgYXJlIGJlaW5nIGhlbGQsCiAgICAgICAgIC8v
IGFuZCBzaW5jZSB0aGlzIGlzIGEgc2hhcmVkIGhlYXAsIHRoZXkgYXJlIHJlYWwgbG9ja3MuCiAg
ICAgICAgIGZvciAoVGhyZWFkKiB0aHJlYWQgPSBtX3JlZ2lzdGVyZWRUaHJlYWRzOyB0aHJlYWQ7
IHRocmVhZCA9IHRocmVhZC0+bmV4dCkgewogICAgICAgICAgICAgaWYgKCFwdGhyZWFkX2VxdWFs
KHRocmVhZC0+cG9zaXhUaHJlYWQsIHB0aHJlYWRfc2VsZigpKSkKLSAgICAgICAgICAgICAgICBt
YXJrT3RoZXJUaHJlYWRDb25zZXJ2YXRpdmVseShjb25zZXJ2YXRpdmVTZXQsIHRocmVhZCk7Cisg
ICAgICAgICAgICAgICAgZ2F0aGVyRnJvbU90aGVyVGhyZWFkKGNvbnNlcnZhdGl2ZVJvb3RzLCB0
aHJlYWQpOwogICAgICAgICB9CiAjaWZuZGVmIE5ERUJVRwogICAgICAgICBmYXN0TWFsbG9jQWxs
b3coKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hY2hpbmVTdGFja01h
cmtlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hY2hp
bmVTdGFja01hcmtlci5oCShyZXZpc2lvbiA4MDk3NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL01hY2hpbmVTdGFja01hcmtlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xOSw4ICsx
OSw4IEBACiAgKgogICovCiAKLSNpZm5kZWYgTWFjaGluZVN0YWNrTWFya2VyX2gKLSNkZWZpbmUg
TWFjaGluZVN0YWNrTWFya2VyX2gKKyNpZm5kZWYgTWFjaGluZVRocmVhZHNfaAorI2RlZmluZSBN
YWNoaW5lVGhyZWFkc19oCiAKICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRl
IDx3dGYvVGhyZWFkaW5nUHJpbWl0aXZlcy5oPgpAQCAtMzIsMzIgKzMyLDMyIEBACiBuYW1lc3Bh
Y2UgSlNDIHsKIAogICAgIGNsYXNzIEhlYXA7Ci0gICAgY2xhc3MgQ29uc2VydmF0aXZlU2V0Owor
ICAgIGNsYXNzIENvbnNlcnZhdGl2ZVJvb3RzOwogCi0gICAgY2xhc3MgTWFjaGluZVN0YWNrTWFy
a2VyIHsKLSAgICAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTWFjaGluZVN0YWNrTWFya2VyKTsK
KyAgICBjbGFzcyBNYWNoaW5lVGhyZWFkcyB7CisgICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxF
KE1hY2hpbmVUaHJlYWRzKTsKICAgICBwdWJsaWM6Ci0gICAgICAgIE1hY2hpbmVTdGFja01hcmtl
cihIZWFwKik7Ci0gICAgICAgIH5NYWNoaW5lU3RhY2tNYXJrZXIoKTsKKyAgICAgICAgTWFjaGlu
ZVRocmVhZHMoSGVhcCopOworICAgICAgICB+TWFjaGluZVRocmVhZHMoKTsKIAotICAgICAgICB2
b2lkIG1hcmtNYWNoaW5lU3RhY2tDb25zZXJ2YXRpdmVseShDb25zZXJ2YXRpdmVTZXQmKTsKKyAg
ICAgICAgdm9pZCBnYXRoZXJDb25zZXJ2YXRpdmVSb290cyhDb25zZXJ2YXRpdmVSb290cyYpOwog
CiAjaWYgRU5BQkxFKEpTQ19NVUxUSVBMRV9USFJFQURTKQogICAgICAgICB2b2lkIG1ha2VVc2Fi
bGVGcm9tTXVsdGlwbGVUaHJlYWRzKCk7Ci0gICAgICAgIHZvaWQgcmVnaXN0ZXJUaHJlYWQoKTsg
Ly8gT25seSBuZWVkcyB0byBiZSBjYWxsZWQgYnkgY2xpZW50cyB0aGF0IGNhbiB1c2UgdGhlIHNh
bWUgaGVhcCBmcm9tIG11bHRpcGxlIHRocmVhZHMuCisgICAgICAgIHZvaWQgYWRkQ3VycmVudFRo
cmVhZCgpOyAvLyBPbmx5IG5lZWRzIHRvIGJlIGNhbGxlZCBieSBjbGllbnRzIHRoYXQgY2FuIHVz
ZSB0aGUgc2FtZSBoZWFwIGZyb20gbXVsdGlwbGUgdGhyZWFkcy4KICNlbmRpZgogCiAgICAgcHJp
dmF0ZToKLSAgICAgICAgdm9pZCBtYXJrQ3VycmVudFRocmVhZENvbnNlcnZhdGl2ZWx5KENvbnNl
cnZhdGl2ZVNldCYpOwotICAgICAgICB2b2lkIG1hcmtDdXJyZW50VGhyZWFkQ29uc2VydmF0aXZl
bHlJbnRlcm5hbChDb25zZXJ2YXRpdmVTZXQmKTsKKyAgICAgICAgdm9pZCBnYXRoZXJGcm9tQ3Vy
cmVudFRocmVhZChDb25zZXJ2YXRpdmVSb290cyYpOworICAgICAgICB2b2lkIGdhdGhlckZyb21D
dXJyZW50VGhyZWFkSW50ZXJuYWwoQ29uc2VydmF0aXZlUm9vdHMmKTsKIAogI2lmIEVOQUJMRShK
U0NfTVVMVElQTEVfVEhSRUFEUykKICAgICAgICAgY2xhc3MgVGhyZWFkOwogCi0gICAgICAgIHN0
YXRpYyB2b2lkIHVucmVnaXN0ZXJUaHJlYWQodm9pZCopOworICAgICAgICBzdGF0aWMgdm9pZCBy
ZW1vdmVUaHJlYWQodm9pZCopOworICAgICAgICB2b2lkIHJlbW92ZUN1cnJlbnRUaHJlYWQoKTsK
IAotICAgICAgICB2b2lkIHVucmVnaXN0ZXJUaHJlYWQoKTsKLSAgICAgICAgdm9pZCBtYXJrT3Ro
ZXJUaHJlYWRDb25zZXJ2YXRpdmVseShDb25zZXJ2YXRpdmVTZXQmLCBUaHJlYWQqKTsKKyAgICAg
ICAgdm9pZCBnYXRoZXJGcm9tT3RoZXJUaHJlYWQoQ29uc2VydmF0aXZlUm9vdHMmLCBUaHJlYWQq
KTsKICNlbmRpZgogCiAgICAgICAgIEhlYXAqIG1faGVhcDsKQEAgLTY1LDEwICs2NSwxMCBAQCBu
YW1lc3BhY2UgSlNDIHsKICNpZiBFTkFCTEUoSlNDX01VTFRJUExFX1RIUkVBRFMpCiAgICAgICAg
IE11dGV4IG1fcmVnaXN0ZXJlZFRocmVhZHNNdXRleDsKICAgICAgICAgVGhyZWFkKiBtX3JlZ2lz
dGVyZWRUaHJlYWRzOwotICAgICAgICBwdGhyZWFkX2tleV90IG1fY3VycmVudFRocmVhZFJlZ2lz
dHJhcjsKKyAgICAgICAgcHRocmVhZF9rZXlfdCBtX3RocmVhZFNwZWNpZmljOwogI2VuZGlmCiAg
ICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCiAKLSNlbmRpZiAvLyBNYWNoaW5lU3RhY2tNYXJr
ZXJfaAorI2VuZGlmIC8vIE1hY2hpbmVUaHJlYWRzX2gKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL01hcmtTdGFjay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL01hcmtTdGFjay5oCShyZXZpc2lvbiA4MDk4NSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL01hcmtTdGFjay5oCSh3b3JraW5nIGNvcHkpCkBAIC03MiwxMiAr
NzIsMTIgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICAgICAgbV9tYXJrU2V0cy5hcHBl
bmQoTWFya1NldCh2YWx1ZXMsIHZhbHVlcyArIGNvdW50LCBwcm9wZXJ0aWVzKSk7CiAgICAgICAg
IH0KIAotICAgICAgICB2b2lkIGFwcGVuZChDb25zZXJ2YXRpdmVTZXQmIGNvbnNlcnZhdGl2ZVNl
dCkKKyAgICAgICAgdm9pZCBhcHBlbmQoQ29uc2VydmF0aXZlUm9vdHMmIGNvbnNlcnZhdGl2ZVJv
b3RzKQogICAgICAgICB7Ci0gICAgICAgICAgICBKU0NlbGwqKiBzZXQgPSBjb25zZXJ2YXRpdmVT
ZXQuc2V0KCk7Ci0gICAgICAgICAgICBzaXplX3Qgc2l6ZSA9IGNvbnNlcnZhdGl2ZVNldC5zaXpl
KCk7CisgICAgICAgICAgICBKU0NlbGwqKiByb290cyA9IGNvbnNlcnZhdGl2ZVJvb3RzLnJvb3Rz
KCk7CisgICAgICAgICAgICBzaXplX3Qgc2l6ZSA9IGNvbnNlcnZhdGl2ZVJvb3RzLnNpemUoKTsK
ICAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKQotICAgICAgICAg
ICAgICAgIGludGVybmFsQXBwZW5kKHNldFtpXSk7CisgICAgICAgICAgICAgICAgaW50ZXJuYWxB
cHBlbmQocm9vdHNbaV0pOwogICAgICAgICB9CiAKICAgICAgICAgaW5saW5lIHZvaWQgZHJhaW4o
KTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85638</attachid>
            <date>2011-03-13 20:38:33 -0700</date>
            <delta_ts>2011-03-13 21:54:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56283-20110313203831.patch</filename>
            <type>text/plain</type>
            <size>22223</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gODA5ODcpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNjIgQEAK
KzIwMTEtMDMtMTMgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBIGZldyBIZWFwLXJlbGF0
ZWQgcmVuYW1lcyAoc2FucyBmaWxlIG1vdmVzLCB3aGljaCBzaG91bGQgY29tZSBuZXh0KQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTYyODMKKyAgICAg
ICAgCisgICAgICAgIENvbnNlcnZhdGl2ZVNldCA9PiBDb25zZXJ2YXRpdmVSb290cy4gIlNldCIg
d2FzIG1pc2xlYWRpbmcsIHNpbmNlIGl0ZW1zCisgICAgICAgIGFyZSBub3QgdW5pcXVlZC4gQWxz
bywgIlJvb3RzIiBpcyBtb3JlIHNwZWNpZmljIGFib3V0IHdoYXQncyBpbiB0aGUgc2V0LgorICAg
ICAgICAKKyAgICAgICAgTWFjaGluZVN0YWNrTWFya2VyID0+IE1hY2hpbmVUaHJlYWRzLiAiVGhy
ZWFkcyIgaXMgbW9yZSBkZXNjcmlwdGl2ZSBvZgorICAgICAgICB0aGUgZmFjdCB0aGF0IHRoaXMg
Y2xhc3MgbWFpbnRhaW5zIGEgc2V0IG9mIGFsbCB0aHJlYWRzIHVzaW5nIEpTQy4KKyAgICAgICAg
IlN0YWNrIiB3YXMgbWlzbGVhZGluZywgc2luY2UgdGhpcyBjbGFzcyB0cmF2ZXJzZXMgc3RhY2tz
IGFuZCByZWdpc3RlcnMuCisgICAgICAgICJNYXJrIiB3YXMgbWlzbGVhZGluZywgc2luY2UgdGhp
cyBjbGFzcyBkb2Vzbid0IG1hcmsgYW55dGhpbmcgYW55bW9yZS4KKyAgICAgICAgCisgICAgICAg
IHJlZ2lzdGVyVGhyZWFkID0+IGFkZEN1cnJlbnRUaHJlYWQuICJDdXJyZW50IiBpcyBtb3JlIHNw
ZWNpZmljLgorICAgICAgICB1bnJlZ2lzdGVyVGhyZWFkID0+IHJlbW92ZUN1cnJlbnRUaHJlYWQu
ICJDdXJyZW50IiBpcyBtb3JlIHNwZWNpZmljLgorICAgICAgICAKKyAgICAgICAgImN1cnJlbnRU
aHJlYWRSZWdpc3RyYXIiID0+IHRocmVhZFNwZWNpZmljLiBUaGUgb25seSBwb2ludCBvZiB0aGlz
IGRhdGEKKyAgICAgICAgc3RydWN0dXJlIGlzIHRvIHJlZ2lzdGVyIGEgdGhyZWFkLXNwZWNpZmlj
IGRlc3RydWN0b3Igd2l0aCBhIHBvaW50ZXIgdG8KKyAgICAgICAgdGhpcy4KKyAgICAgICAgCisg
ICAgICAgICJtYXJrLi4uQ29uc2VydmF0aXZlbHkiID0+ICJnYXRoZXIiLiAiTWFyayIgaXMgbm90
IHRydWUsIHNpbmNlIHRoZXNlCisgICAgICAgIGZ1bmN0aW9ucyBkb24ndCBtYXJrIGFueXRoaW5n
LiAiQ29uc2VydmF0aXZlbHkiIGlzIHJlZHVuZGFudCwgc2luY2UgdGhleQorICAgICAgICB0YWtl
ICJDb25zZXJ2YXRpdmVSb290cyIgYXMgYW4gYXJndW1lbnQuCisKKyAgICAgICAgKiBBUEkvQVBJ
U2hpbXMuaDoKKyAgICAgICAgKEpTQzo6QVBJRW50cnlTaGltV2l0aG91dExvY2s6OkFQSUVudHJ5
U2hpbVdpdGhvdXRMb2NrKToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5leHA6CisgICAgICAg
ICogcnVudGltZS9Db25zZXJ2YXRpdmVTZXQuY3BwOgorICAgICAgICAoSlNDOjpDb25zZXJ2YXRp
dmVSb290czo6Z3Jvdyk6CisgICAgICAgIChKU0M6OkNvbnNlcnZhdGl2ZVJvb3RzOjphZGQpOgor
ICAgICAgICAqIHJ1bnRpbWUvQ29uc2VydmF0aXZlU2V0Lmg6CisgICAgICAgIChKU0M6OkNvbnNl
cnZhdGl2ZVJvb3RzOjpDb25zZXJ2YXRpdmVSb290cyk6CisgICAgICAgIChKU0M6OkNvbnNlcnZh
dGl2ZVJvb3RzOjp+Q29uc2VydmF0aXZlUm9vdHMpOgorICAgICAgICAoSlNDOjpDb25zZXJ2YXRp
dmVSb290czo6c2l6ZSk6CisgICAgICAgIChKU0M6OkNvbnNlcnZhdGl2ZVJvb3RzOjpyb290cyk6
CisgICAgICAgICogcnVudGltZS9IZWFwLmNwcDoKKyAgICAgICAgKEpTQzo6SGVhcDo6SGVhcCk6
CisgICAgICAgIChKU0M6OkhlYXA6Om1hcmtSb290cyk6CisgICAgICAgICogcnVudGltZS9IZWFw
Lmg6CisgICAgICAgIChKU0M6OkhlYXA6Om1hY2hpbmVUaHJlYWRzKToKKyAgICAgICAgKiBydW50
aW1lL0pTR2xvYmFsRGF0YS5oOgorICAgICAgICAoSlNDOjpKU0dsb2JhbERhdGE6Om1ha2VVc2Fi
bGVGcm9tTXVsdGlwbGVUaHJlYWRzKToKKyAgICAgICAgKiBydW50aW1lL01hY2hpbmVTdGFja01h
cmtlci5jcHA6CisgICAgICAgIChKU0M6Ok1hY2hpbmVUaHJlYWRzOjpNYWNoaW5lVGhyZWFkcyk6
CisgICAgICAgIChKU0M6Ok1hY2hpbmVUaHJlYWRzOjp+TWFjaGluZVRocmVhZHMpOgorICAgICAg
ICAoSlNDOjpNYWNoaW5lVGhyZWFkczo6bWFrZVVzYWJsZUZyb21NdWx0aXBsZVRocmVhZHMpOgor
ICAgICAgICAoSlNDOjpNYWNoaW5lVGhyZWFkczo6YWRkQ3VycmVudFRocmVhZCk6CisgICAgICAg
IChKU0M6Ok1hY2hpbmVUaHJlYWRzOjpyZW1vdmVUaHJlYWQpOgorICAgICAgICAoSlNDOjpNYWNo
aW5lVGhyZWFkczo6cmVtb3ZlQ3VycmVudFRocmVhZCk6CisgICAgICAgIChKU0M6Ok1hY2hpbmVU
aHJlYWRzOjpnYXRoZXJGcm9tQ3VycmVudFRocmVhZEludGVybmFsKToKKyAgICAgICAgKEpTQzo6
TWFjaGluZVRocmVhZHM6OmdhdGhlckZyb21DdXJyZW50VGhyZWFkKToKKyAgICAgICAgKEpTQzo6
TWFjaGluZVRocmVhZHM6OmdhdGhlckZyb21PdGhlclRocmVhZCk6CisgICAgICAgIChKU0M6Ok1h
Y2hpbmVUaHJlYWRzOjpnYXRoZXJDb25zZXJ2YXRpdmVSb290cyk6CisgICAgICAgICogcnVudGlt
ZS9NYWNoaW5lU3RhY2tNYXJrZXIuaDoKKyAgICAgICAgKiBydW50aW1lL01hcmtTdGFjay5oOgor
ICAgICAgICAoSlNDOjpNYXJrU3RhY2s6OmFwcGVuZCk6CisKIDIwMTEtMDMtMTMgIEdlb2ZmcmV5
IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBOb3QgcmV2aWV3ZWQuCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAJKHJldmlzaW9uIDgwOTc0
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAkod29ya2luZyBj
b3B5KQpAQCAtMTYzLDYgKzE2Myw3IEBAIF9fWk4zSlNDMTRKU0dsb2JhbE9iamVjdDNwdXRFUE5T
XzlFeGVjU3QKIF9fWk4zSlNDMTRKU0dsb2JhbE9iamVjdDRpbml0RVBOU184SlNPYmplY3RFCiBf
X1pOM0pTQzE0SlNHbG9iYWxPYmplY3REMkV2CiBfX1pOM0pTQzE0SlNHbG9iYWxPYmplY3Rud0Vt
UE5TXzEySlNHbG9iYWxEYXRhRQorX19aTjNKU0MxNE1hY2hpbmVUaHJlYWRzMTZhZGRDdXJyZW50
VGhyZWFkRXYKIF9fWk4zSlNDMTRTYW1wbGluZ1RocmVhZDRzdG9wRXYKIF9fWk4zSlNDMTRTYW1w
bGluZ1RocmVhZDVzdGFydEVqCiBfX1pOM0pTQzE0VGltZW91dENoZWNrZXIxMGRpZFRpbWVPdXRF
UE5TXzlFeGVjU3RhdGVFCkBAIC0xODQsNyArMTg1LDYgQEAgX19aTjNKU0MxN1Byb3BlcnR5TmFt
ZUFycmF5M2FkZEVQTjNXVEYxMAogX19aTjNKU0MxN2NvbnN0cnVjdEZ1bmN0aW9uRVBOU185RXhl
Y1N0YXRlRVJLTlNfN0FyZ0xpc3RFUktOU18xMElkZW50aWZpZXJFUktOU183VVN0cmluZ0VpCiBf
X1pOM0pTQzE3Y3JlYXRlU3ludGF4RXJyb3JFUE5TXzlFeGVjU3RhdGVFUktOU183VVN0cmluZ0UK
IF9fWk4zSlNDMThEZWJ1Z2dlckFjdGl2YXRpb25DMUVSTlNfMTJKU0dsb2JhbERhdGFFUE5TXzhK
U09iamVjdEUKLV9fWk4zSlNDMThNYWNoaW5lU3RhY2tNYXJrZXIxNHJlZ2lzdGVyVGhyZWFkRXYK
IF9fWk4zSlNDMThQcm9wZXJ0eURlc2NyaXB0b3IxMXNldFdyaXRhYmxlRWIKIF9fWk4zSlNDMThQ
cm9wZXJ0eURlc2NyaXB0b3IxMnNldFVuZGVmaW5lZEV2CiBfX1pOM0pTQzE4UHJvcGVydHlEZXNj
cmlwdG9yMTNzZXREZXNjcmlwdG9yRU5TXzdKU1ZhbHVlRWoKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9BUEkvQVBJU2hpbXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL0FQSVNoaW1zLmgJKHJldmlzaW9uIDgwOTc0KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9BUElTaGltcy5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw3ICs0Miw3IEBAIHByb3Rl
Y3RlZDoKICAgICAgICAgVU5VU0VEX1BBUkFNKHJlZ2lzdGVyVGhyZWFkKTsKICNpZiBFTkFCTEUo
SlNDX01VTFRJUExFX1RIUkVBRFMpCiAgICAgICAgIGlmIChyZWdpc3RlclRocmVhZCkKLSAgICAg
ICAgICAgIGdsb2JhbERhdGEtPmhlYXAubWFjaGluZVN0YWNrTWFya2VyKCkucmVnaXN0ZXJUaHJl
YWQoKTsKKyAgICAgICAgICAgIGdsb2JhbERhdGEtPmhlYXAubWFjaGluZVRocmVhZHMoKS5hZGRD
dXJyZW50VGhyZWFkKCk7CiAjZW5kaWYKICAgICAgICAgbV9nbG9iYWxEYXRhLT5oZWFwLmFjdGl2
aXR5Q2FsbGJhY2soKS0+c3luY2hyb25pemUoKTsKICAgICAgICAgbV9nbG9iYWxEYXRhLT50aW1l
b3V0Q2hlY2tlci5zdGFydCgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYJKHJldmlzaW9uIDgwOTc0KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS5kZWYJKHdvcmtpbmcgY29weSkKQEAgLTI3Nyw3ICsyNzcsNyBAQCBFWFBPUlRTCiAg
ICAgP3JhbmRvbU51bWJlckBXVEZAQFlBTlhaCiAgICAgP3JlY29tcGlsZUFsbEpTRnVuY3Rpb25z
QERlYnVnZ2VyQEpTQ0BAUUFFWFBBVkpTR2xvYmFsRGF0YUAyQEBaCiAgICAgP3JlZ0V4cEZsYWdz
QEpTQ0BAWUE/QVc0UmVnRXhwRmxhZ3NAMUBBQlZVU3RyaW5nQDFAQFoKLSAgICA/cmVnaXN0ZXJU
aHJlYWRATWFjaGluZVN0YWNrTWFya2VyQEpTQ0BAUUFFWFhaCisgICAgP2FkZEN1cnJlbnRUaHJl
YWRATWFjaGluZVRocmVhZHNASlNDQEBRQUVYWFoKICAgICA/cmVpZnlTdHJpbmdAU3RyaW5nQnVp
bGRlckBXVEZAQEFBRVhYWgogICAgID9yZWxlYXNlRGVjb21taXR0ZWRAT1NBbGxvY2F0b3JAV1RG
QEBTQVhQQVhJQFoKICAgICA/cmVsZWFzZVN0YWNrQE1hcmtTdGFja0BKU0NAQENBWFBBWElAWgpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc2VydmF0aXZlU2V0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25zZXJ2YXRpdmVT
ZXQuY3BwCShyZXZpc2lvbiA4MDk4NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NvbnNlcnZhdGl2ZVNldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDE4ICszNSwxOCBAQCBp
bmxpbmUgYm9vbCBpc1BvaW50ZXJBbGlnbmVkKHZvaWQqIHApCiAgICAgcmV0dXJuICEoKGludHB0
cl90KShwKSAmIChzaXplb2YoY2hhciopIC0gMSkpOwogfQogCi12b2lkIENvbnNlcnZhdGl2ZVNl
dDo6Z3JvdygpCit2b2lkIENvbnNlcnZhdGl2ZVJvb3RzOjpncm93KCkKIHsKICAgICBzaXplX3Qg
bmV3Q2FwYWNpdHkgPSBtX2NhcGFjaXR5ID09IGlubGluZUNhcGFjaXR5ID8gbm9uSW5saW5lQ2Fw
YWNpdHkgOiBtX2NhcGFjaXR5ICogMjsKLSAgICBKU0NlbGwqKiBuZXdTZXQgPSBzdGF0aWNfY2Fz
dDxKU0NlbGwqKj4oT1NBbGxvY2F0b3I6OnJlc2VydmVBbmRDb21taXQobmV3Q2FwYWNpdHkgKiBz
aXplb2YoSlNDZWxsKikpKTsKLSAgICBtZW1jcHkobmV3U2V0LCBtX3NldCwgbV9zaXplICogc2l6
ZW9mKEpTQ2VsbCopKTsKLSAgICBpZiAobV9zZXQgIT0gbV9pbmxpbmVTZXQpCi0gICAgICAgIE9T
QWxsb2NhdG9yOjpkZWNvbW1pdEFuZFJlbGVhc2UobV9zZXQsIG1fY2FwYWNpdHkgKiBzaXplb2Yo
SlNDZWxsKikpOworICAgIEpTQ2VsbCoqIG5ld1Jvb3RzID0gc3RhdGljX2Nhc3Q8SlNDZWxsKio+
KE9TQWxsb2NhdG9yOjpyZXNlcnZlQW5kQ29tbWl0KG5ld0NhcGFjaXR5ICogc2l6ZW9mKEpTQ2Vs
bCopKSk7CisgICAgbWVtY3B5KG5ld1Jvb3RzLCBtX3Jvb3RzLCBtX3NpemUgKiBzaXplb2YoSlND
ZWxsKikpOworICAgIGlmIChtX3Jvb3RzICE9IG1faW5saW5lUm9vdHMpCisgICAgICAgIE9TQWxs
b2NhdG9yOjpkZWNvbW1pdEFuZFJlbGVhc2UobV9yb290cywgbV9jYXBhY2l0eSAqIHNpemVvZihK
U0NlbGwqKSk7CiAgICAgbV9jYXBhY2l0eSA9IG5ld0NhcGFjaXR5OwotICAgIG1fc2V0ID0gbmV3
U2V0OworICAgIG1fcm9vdHMgPSBuZXdSb290czsKIH0KIAotdm9pZCBDb25zZXJ2YXRpdmVTZXQ6
OmFkZCh2b2lkKiBiZWdpbiwgdm9pZCogZW5kKQordm9pZCBDb25zZXJ2YXRpdmVSb290czo6YWRk
KHZvaWQqIGJlZ2luLCB2b2lkKiBlbmQpCiB7CiAgICAgQVNTRVJUKGJlZ2luIDw9IGVuZCk7CiAg
ICAgQVNTRVJUKChzdGF0aWNfY2FzdDxjaGFyKj4oZW5kKSAtIHN0YXRpY19jYXN0PGNoYXIqPihi
ZWdpbikpIDwgMHgxMDAwMDAwKTsKQEAgLTYwLDcgKzYwLDcgQEAgdm9pZCBDb25zZXJ2YXRpdmVT
ZXQ6OmFkZCh2b2lkKiBiZWdpbiwgdgogICAgICAgICBpZiAobV9zaXplID09IG1fY2FwYWNpdHkp
CiAgICAgICAgICAgICBncm93KCk7CiAKLSAgICAgICAgbV9zZXRbbV9zaXplKytdID0gcmVpbnRl
cnByZXRfY2FzdDxKU0NlbGwqPigqaXQpOworICAgICAgICBtX3Jvb3RzW21fc2l6ZSsrXSA9IHJl
aW50ZXJwcmV0X2Nhc3Q8SlNDZWxsKj4oKml0KTsKICAgICB9CiB9CiAKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNlcnZhdGl2ZVNldC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNlcnZhdGl2ZVNldC5oCShyZXZpc2lvbiA4
MDk4NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNlcnZhdGl2ZVNldC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yMyw4ICsyMyw4IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwog
Ci0jaWZuZGVmIENvbnNlcnZhdGl2ZVNldF9oCi0jZGVmaW5lIENvbnNlcnZhdGl2ZVNldF9oCisj
aWZuZGVmIENvbnNlcnZhdGl2ZVJvb3RzX2gKKyNkZWZpbmUgQ29uc2VydmF0aXZlUm9vdHNfaAog
CiAjaW5jbHVkZSA8d3RmL09TQWxsb2NhdG9yLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpA
QCAtMzYsMTUgKzM2LDE1IEBAIGNsYXNzIEhlYXA7CiAKIC8vIE1heSBjb250YWluIGR1cGxpY2F0
ZXMuCiAKLWNsYXNzIENvbnNlcnZhdGl2ZVNldCB7CitjbGFzcyBDb25zZXJ2YXRpdmVSb290cyB7
CiBwdWJsaWM6Ci0gICAgQ29uc2VydmF0aXZlU2V0KEhlYXAqKTsKLSAgICB+Q29uc2VydmF0aXZl
U2V0KCk7CisgICAgQ29uc2VydmF0aXZlUm9vdHMoSGVhcCopOworICAgIH5Db25zZXJ2YXRpdmVS
b290cygpOwogCiAgICAgdm9pZCBhZGQodm9pZCogYmVnaW4sIHZvaWQqIGVuZCk7CiAgICAgCiAg
ICAgc2l6ZV90IHNpemUoKTsKLSAgICBKU0NlbGwqKiBzZXQoKTsKKyAgICBKU0NlbGwqKiByb290
cygpOwogCiBwcml2YXRlOgogICAgIHN0YXRpYyBjb25zdCBzaXplX3QgaW5saW5lQ2FwYWNpdHkg
PSAxMjg7CkBAIC01MywzNiArNTMsMzYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGdyb3coKTsKIAog
ICAgIEhlYXAqIG1faGVhcDsKLSAgICBKU0NlbGwqKiBtX3NldDsKKyAgICBKU0NlbGwqKiBtX3Jv
b3RzOwogICAgIHNpemVfdCBtX3NpemU7CiAgICAgc2l6ZV90IG1fY2FwYWNpdHk7Ci0gICAgSlND
ZWxsKiBtX2lubGluZVNldFtpbmxpbmVDYXBhY2l0eV07CisgICAgSlNDZWxsKiBtX2lubGluZVJv
b3RzW2lubGluZUNhcGFjaXR5XTsKIH07CiAKLWlubGluZSBDb25zZXJ2YXRpdmVTZXQ6OkNvbnNl
cnZhdGl2ZVNldChIZWFwKiBoZWFwKQoraW5saW5lIENvbnNlcnZhdGl2ZVJvb3RzOjpDb25zZXJ2
YXRpdmVSb290cyhIZWFwKiBoZWFwKQogICAgIDogbV9oZWFwKGhlYXApCi0gICAgLCBtX3NldCht
X2lubGluZVNldCkKKyAgICAsIG1fcm9vdHMobV9pbmxpbmVSb290cykKICAgICAsIG1fc2l6ZSgw
KQogICAgICwgbV9jYXBhY2l0eShpbmxpbmVDYXBhY2l0eSkKIHsKIH0KIAotaW5saW5lIENvbnNl
cnZhdGl2ZVNldDo6fkNvbnNlcnZhdGl2ZVNldCgpCitpbmxpbmUgQ29uc2VydmF0aXZlUm9vdHM6
On5Db25zZXJ2YXRpdmVSb290cygpCiB7Ci0gICAgaWYgKG1fc2V0ICE9IG1faW5saW5lU2V0KQot
ICAgICAgICBPU0FsbG9jYXRvcjo6ZGVjb21taXRBbmRSZWxlYXNlKG1fc2V0LCBtX2NhcGFjaXR5
ICogc2l6ZW9mKEpTQ2VsbCopKTsKKyAgICBpZiAobV9yb290cyAhPSBtX2lubGluZVJvb3RzKQor
ICAgICAgICBPU0FsbG9jYXRvcjo6ZGVjb21taXRBbmRSZWxlYXNlKG1fcm9vdHMsIG1fY2FwYWNp
dHkgKiBzaXplb2YoSlNDZWxsKikpOwogfQogCi1pbmxpbmUgc2l6ZV90IENvbnNlcnZhdGl2ZVNl
dDo6c2l6ZSgpCitpbmxpbmUgc2l6ZV90IENvbnNlcnZhdGl2ZVJvb3RzOjpzaXplKCkKIHsKICAg
ICByZXR1cm4gbV9zaXplOwogfQogCi1pbmxpbmUgSlNDZWxsKiogQ29uc2VydmF0aXZlU2V0Ojpz
ZXQoKQoraW5saW5lIEpTQ2VsbCoqIENvbnNlcnZhdGl2ZVJvb3RzOjpyb290cygpCiB7Ci0gICAg
cmV0dXJuIG1fc2V0OworICAgIHJldHVybiBtX3Jvb3RzOwogfQogCiB9IC8vIG5hbWVzcGFjZSBK
U0MKIAotI2VuZGlmIC8vIENvbnNlcnZhdGl2ZVNldF9oCisjZW5kaWYgLy8gQ29uc2VydmF0aXZl
Um9vdHNfaApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSGVhcC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSGVhcC5jcHAJKHJldmlz
aW9uIDgwOTg1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSGVhcC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTQ2LDcgKzQ2LDcgQEAgSGVhcDo6SGVhcChKU0dsb2JhbERhdGEqIGds
b2JhbERhdGEpCiAgICAgLCBtX21hcmtMaXN0U2V0KDApCiAgICAgLCBtX2FjdGl2aXR5Q2FsbGJh
Y2soRGVmYXVsdEdDQWN0aXZpdHlDYWxsYmFjazo6Y3JlYXRlKHRoaXMpKQogICAgICwgbV9nbG9i
YWxEYXRhKGdsb2JhbERhdGEpCi0gICAgLCBtX21hY2hpbmVTdGFja01hcmtlcih0aGlzKQorICAg
ICwgbV9tYWNoaW5lVGhyZWFkcyh0aGlzKQogICAgICwgbV9tYXJrU3RhY2soZ2xvYmFsRGF0YS0+
anNBcnJheVZQdHIpCiAgICAgLCBtX2hhbmRsZUhlYXAoZ2xvYmFsRGF0YSkKICAgICAsIG1fZXh0
cmFDb3N0KDApCkBAIC0yMDgsMTQgKzIwOCwxNCBAQCB2b2lkIEhlYXA6Om1hcmtSb290cygpCiAg
ICAgLy8gV2UgZ2F0aGVyIHRoZSBjb25zZXJ2YXRpdmUgc2V0IGJlZm9yZSBjbGVhcmluZyBtYXJr
IGJpdHMsIGJlY2F1c2UKICAgICAvLyBjb25zZXJ2YXRpdmUgZ2F0aGVyaW5nIHVzZXMgdGhlIG1h
cmsgYml0cyBmcm9tIG91ciBsYXN0IG1hcmsgcGFzcyB0bwogICAgIC8vIGRldGVybWluZSB3aGV0
aGVyIGEgcmVmZXJlbmNlIGlzIHZhbGlkLgotICAgIENvbnNlcnZhdGl2ZVNldCBjb25zZXJ2YXRp
dmVTZXQodGhpcyk7Ci0gICAgbV9tYWNoaW5lU3RhY2tNYXJrZXIubWFya01hY2hpbmVTdGFja0Nv
bnNlcnZhdGl2ZWx5KGNvbnNlcnZhdGl2ZVNldCk7Ci0gICAgY29uc2VydmF0aXZlU2V0LmFkZChy
ZWdpc3RlckZpbGUoKS5zdGFydCgpLCByZWdpc3RlckZpbGUoKS5lbmQoKSk7CisgICAgQ29uc2Vy
dmF0aXZlUm9vdHMgY29uc2VydmF0aXZlUm9vdHModGhpcyk7CisgICAgbV9tYWNoaW5lVGhyZWFk
cy5nYXRoZXJDb25zZXJ2YXRpdmVSb290cyhjb25zZXJ2YXRpdmVSb290cyk7CisgICAgY29uc2Vy
dmF0aXZlUm9vdHMuYWRkKHJlZ2lzdGVyRmlsZSgpLnN0YXJ0KCksIHJlZ2lzdGVyRmlsZSgpLmVu
ZCgpKTsKIAogICAgIG1fbWFya2VkU3BhY2UuY2xlYXJNYXJrcygpOwogCiAgICAgTWFya1N0YWNr
JiBtYXJrU3RhY2sgPSBtX21hcmtTdGFjazsKLSAgICBtYXJrU3RhY2suYXBwZW5kKGNvbnNlcnZh
dGl2ZVNldCk7CisgICAgbWFya1N0YWNrLmFwcGVuZChjb25zZXJ2YXRpdmVSb290cyk7CiAgICAg
bWFya1N0YWNrLmRyYWluKCk7CiAKICAgICAvLyBNYXJrIGV4cGxpY2l0bHkgcmVnaXN0ZXJlZCBy
b290cy4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0hlYXAuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9IZWFwLmgJKHJldmlzaW9uIDgw
OTc0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSGVhcC5oCSh3b3JraW5nIGNv
cHkpCkBAIC02NSw3ICs2NSw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIEpTR2xvYmFs
RGF0YSogZ2xvYmFsRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fZ2xvYmFsRGF0YTsgfQogICAgICAg
ICBNYXJrZWRTcGFjZSYgbWFya2VkU3BhY2UoKSB7IHJldHVybiBtX21hcmtlZFNwYWNlOyB9Ci0g
ICAgICAgIE1hY2hpbmVTdGFja01hcmtlciYgbWFjaGluZVN0YWNrTWFya2VyKCkgeyByZXR1cm4g
bV9tYWNoaW5lU3RhY2tNYXJrZXI7IH0KKyAgICAgICAgTWFjaGluZVRocmVhZHMmIG1hY2hpbmVU
aHJlYWRzKCkgeyByZXR1cm4gbV9tYWNoaW5lVGhyZWFkczsgfQogCiAgICAgICAgIEdDQWN0aXZp
dHlDYWxsYmFjayogYWN0aXZpdHlDYWxsYmFjaygpOwogICAgICAgICB2b2lkIHNldEFjdGl2aXR5
Q2FsbGJhY2soUGFzc093blB0cjxHQ0FjdGl2aXR5Q2FsbGJhY2s+KTsKQEAgLTEyOSw3ICsxMjks
NyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBKU0dsb2JhbERhdGEqIG1fZ2xvYmFsRGF0
YTsKICAgICAgICAgCi0gICAgICAgIE1hY2hpbmVTdGFja01hcmtlciBtX21hY2hpbmVTdGFja01h
cmtlcjsKKyAgICAgICAgTWFjaGluZVRocmVhZHMgbV9tYWNoaW5lVGhyZWFkczsKICAgICAgICAg
TWFya1N0YWNrIG1fbWFya1N0YWNrOwogICAgICAgICBIYW5kbGVIZWFwIG1faGFuZGxlSGVhcDsK
ICAgICAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERh
dGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bERhdGEuaAkocmV2aXNpb24gODA5NzQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0dsb2JhbERhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMTI4LDcgKzEyOCw3IEBAIG5hbWVz
cGFjZSBKU0MgewogCiAjaWYgRU5BQkxFKEpTQ19NVUxUSVBMRV9USFJFQURTKQogICAgICAgICAv
LyBXaWxsIHN0YXJ0IHRyYWNraW5nIHRocmVhZHMgdGhhdCB1c2UgdGhlIGhlYXAsIHdoaWNoIGlz
IHJlc291cmNlLWhlYXZ5LgotICAgICAgICB2b2lkIG1ha2VVc2FibGVGcm9tTXVsdGlwbGVUaHJl
YWRzKCkgeyBoZWFwLm1hY2hpbmVTdGFja01hcmtlcigpLm1ha2VVc2FibGVGcm9tTXVsdGlwbGVU
aHJlYWRzKCk7IH0KKyAgICAgICAgdm9pZCBtYWtlVXNhYmxlRnJvbU11bHRpcGxlVGhyZWFkcygp
IHsgaGVhcC5tYWNoaW5lVGhyZWFkcygpLm1ha2VVc2FibGVGcm9tTXVsdGlwbGVUaHJlYWRzKCk7
IH0KICNlbmRpZgogCiAgICAgICAgIEdsb2JhbERhdGFUeXBlIGdsb2JhbERhdGFUeXBlOwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFjaGluZVN0YWNrTWFya2VyLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYWNoaW5lU3RhY2tN
YXJrZXIuY3BwCShyZXZpc2lvbiA4MDk3NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL01hY2hpbmVTdGFja01hcmtlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc4LDcgKzc4LDcg
QEAKICNpZiBVU0UoUFRIUkVBRFMpICYmICFPUyhXSU5ET1dTKSAmJiAhT1MoREFSV0lOKQogI2lu
Y2x1ZGUgPHNpZ25hbC5oPgogI2lmbmRlZiBTQV9SRVNUQVJUCi0jZXJyb3IgTWFjaGluZVN0YWNr
TWFya2VyIHJlcXVpcmVzIFNBX1JFU1RBUlQKKyNlcnJvciBNYWNoaW5lVGhyZWFkcyByZXF1aXJl
cyBTQV9SRVNUQVJUCiAjZW5kaWYKICNlbmRpZgogCkBAIC0xMTcsNyArMTE3LDcgQEAgc3RhdGlj
IHZvaWQgcHRocmVhZFNpZ25hbEhhbmRsZXJTdXNwZW5kUgogfQogI2VuZGlmCiAKLWNsYXNzIE1h
Y2hpbmVTdGFja01hcmtlcjo6VGhyZWFkIHsKK2NsYXNzIE1hY2hpbmVUaHJlYWRzOjpUaHJlYWQg
ewogcHVibGljOgogICAgIFRocmVhZChwdGhyZWFkX3QgcHRocmVhZCwgY29uc3QgUGxhdGZvcm1U
aHJlYWQmIHBsYXRUaHJlYWQsIHZvaWQqIGJhc2UpIAogICAgICAgICA6IHBvc2l4VGhyZWFkKHB0
aHJlYWQpCkBAIC0xNDYsMjAgKzE0NiwyMCBAQCBwdWJsaWM6CiAKICNlbmRpZgogCi1NYWNoaW5l
U3RhY2tNYXJrZXI6Ok1hY2hpbmVTdGFja01hcmtlcihIZWFwKiBoZWFwKQorTWFjaGluZVRocmVh
ZHM6Ok1hY2hpbmVUaHJlYWRzKEhlYXAqIGhlYXApCiAgICAgOiBtX2hlYXAoaGVhcCkKICNpZiBF
TkFCTEUoSlNDX01VTFRJUExFX1RIUkVBRFMpCiAgICAgLCBtX3JlZ2lzdGVyZWRUaHJlYWRzKDAp
Ci0gICAgLCBtX2N1cnJlbnRUaHJlYWRSZWdpc3RyYXIoMCkKKyAgICAsIG1fdGhyZWFkU3BlY2lm
aWMoMCkKICNlbmRpZgogewogfQogCi1NYWNoaW5lU3RhY2tNYXJrZXI6On5NYWNoaW5lU3RhY2tN
YXJrZXIoKQorTWFjaGluZVRocmVhZHM6On5NYWNoaW5lVGhyZWFkcygpCiB7CiAjaWYgRU5BQkxF
KEpTQ19NVUxUSVBMRV9USFJFQURTKQotICAgIGlmIChtX2N1cnJlbnRUaHJlYWRSZWdpc3RyYXIp
IHsKLSAgICAgICAgaW50IGVycm9yID0gcHRocmVhZF9rZXlfZGVsZXRlKG1fY3VycmVudFRocmVh
ZFJlZ2lzdHJhcik7CisgICAgaWYgKG1fdGhyZWFkU3BlY2lmaWMpIHsKKyAgICAgICAgaW50IGVy
cm9yID0gcHRocmVhZF9rZXlfZGVsZXRlKG1fdGhyZWFkU3BlY2lmaWMpOwogICAgICAgICBBU1NF
UlRfVU5VU0VEKGVycm9yLCAhZXJyb3IpOwogICAgIH0KIApAQCAtMTg1LDI0ICsxODUsMjQgQEAg
c3RhdGljIGlubGluZSBQbGF0Zm9ybVRocmVhZCBnZXRDdXJyZW50UAogI2VuZGlmCiB9CiAKLXZv
aWQgTWFjaGluZVN0YWNrTWFya2VyOjptYWtlVXNhYmxlRnJvbU11bHRpcGxlVGhyZWFkcygpCit2
b2lkIE1hY2hpbmVUaHJlYWRzOjptYWtlVXNhYmxlRnJvbU11bHRpcGxlVGhyZWFkcygpCiB7Ci0g
ICAgaWYgKG1fY3VycmVudFRocmVhZFJlZ2lzdHJhcikKKyAgICBpZiAobV90aHJlYWRTcGVjaWZp
YykKICAgICAgICAgcmV0dXJuOwogCi0gICAgaW50IGVycm9yID0gcHRocmVhZF9rZXlfY3JlYXRl
KCZtX2N1cnJlbnRUaHJlYWRSZWdpc3RyYXIsIHVucmVnaXN0ZXJUaHJlYWQpOworICAgIGludCBl
cnJvciA9IHB0aHJlYWRfa2V5X2NyZWF0ZSgmbV90aHJlYWRTcGVjaWZpYywgcmVtb3ZlVGhyZWFk
KTsKICAgICBpZiAoZXJyb3IpCiAgICAgICAgIENSQVNIKCk7CiB9CiAKLXZvaWQgTWFjaGluZVN0
YWNrTWFya2VyOjpyZWdpc3RlclRocmVhZCgpCit2b2lkIE1hY2hpbmVUaHJlYWRzOjphZGRDdXJy
ZW50VGhyZWFkKCkKIHsKICAgICBBU1NFUlQoIW1faGVhcC0+Z2xvYmFsRGF0YSgpLT5leGNsdXNp
dmVUaHJlYWQgfHwgbV9oZWFwLT5nbG9iYWxEYXRhKCktPmV4Y2x1c2l2ZVRocmVhZCA9PSBjdXJy
ZW50VGhyZWFkKCkpOwogCi0gICAgaWYgKCFtX2N1cnJlbnRUaHJlYWRSZWdpc3RyYXIgfHwgcHRo
cmVhZF9nZXRzcGVjaWZpYyhtX2N1cnJlbnRUaHJlYWRSZWdpc3RyYXIpKQorICAgIGlmICghbV90
aHJlYWRTcGVjaWZpYyB8fCBwdGhyZWFkX2dldHNwZWNpZmljKG1fdGhyZWFkU3BlY2lmaWMpKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBwdGhyZWFkX3NldHNwZWNpZmljKG1fY3VycmVudFRocmVh
ZFJlZ2lzdHJhciwgdGhpcyk7CisgICAgcHRocmVhZF9zZXRzcGVjaWZpYyhtX3RocmVhZFNwZWNp
ZmljLCB0aGlzKTsKICAgICBUaHJlYWQqIHRocmVhZCA9IG5ldyBUaHJlYWQocHRocmVhZF9zZWxm
KCksIGdldEN1cnJlbnRQbGF0Zm9ybVRocmVhZCgpLCBtX2hlYXAtPmdsb2JhbERhdGEoKS0+c3Rh
Y2soKS5vcmlnaW4oKSk7CiAKICAgICBNdXRleExvY2tlciBsb2NrKG1fcmVnaXN0ZXJlZFRocmVh
ZHNNdXRleCk7CkBAIC0yMTEsMTMgKzIxMSwxMyBAQCB2b2lkIE1hY2hpbmVTdGFja01hcmtlcjo6
cmVnaXN0ZXJUaHJlYWQoCiAgICAgbV9yZWdpc3RlcmVkVGhyZWFkcyA9IHRocmVhZDsKIH0KIAot
dm9pZCBNYWNoaW5lU3RhY2tNYXJrZXI6OnVucmVnaXN0ZXJUaHJlYWQodm9pZCogcCkKK3ZvaWQg
TWFjaGluZVRocmVhZHM6OnJlbW92ZVRocmVhZCh2b2lkKiBwKQogewogICAgIGlmIChwKQotICAg
ICAgICBzdGF0aWNfY2FzdDxNYWNoaW5lU3RhY2tNYXJrZXIqPihwKS0+dW5yZWdpc3RlclRocmVh
ZCgpOworICAgICAgICBzdGF0aWNfY2FzdDxNYWNoaW5lVGhyZWFkcyo+KHApLT5yZW1vdmVDdXJy
ZW50VGhyZWFkKCk7CiB9CiAKLXZvaWQgTWFjaGluZVN0YWNrTWFya2VyOjp1bnJlZ2lzdGVyVGhy
ZWFkKCkKK3ZvaWQgTWFjaGluZVRocmVhZHM6OnJlbW92ZUN1cnJlbnRUaHJlYWQoKQogewogICAg
IHB0aHJlYWRfdCBjdXJyZW50UG9zaXhUaHJlYWQgPSBwdGhyZWFkX3NlbGYoKTsKIApAQCAtMjQ0
LDEyICsyNDQsMTIgQEAgdm9pZCBNYWNoaW5lU3RhY2tNYXJrZXI6OnVucmVnaXN0ZXJUaHJlYQog
CiAjZW5kaWYKIAotdm9pZCBORVZFUl9JTkxJTkUgTWFjaGluZVN0YWNrTWFya2VyOjptYXJrQ3Vy
cmVudFRocmVhZENvbnNlcnZhdGl2ZWx5SW50ZXJuYWwoQ29uc2VydmF0aXZlU2V0JiBjb25zZXJ2
YXRpdmVTZXQpCit2b2lkIE5FVkVSX0lOTElORSBNYWNoaW5lVGhyZWFkczo6Z2F0aGVyRnJvbUN1
cnJlbnRUaHJlYWRJbnRlcm5hbChDb25zZXJ2YXRpdmVSb290cyYgY29uc2VydmF0aXZlUm9vdHMp
CiB7CiAgICAgdm9pZCogYmVnaW4gPSBtX2hlYXAtPmdsb2JhbERhdGEoKS0+c3RhY2soKS5jdXJy
ZW50KCk7CiAgICAgdm9pZCogZW5kID0gbV9oZWFwLT5nbG9iYWxEYXRhKCktPnN0YWNrKCkub3Jp
Z2luKCk7CiAgICAgc3dhcElmQmFja3dhcmRzKGJlZ2luLCBlbmQpOwotICAgIGNvbnNlcnZhdGl2
ZVNldC5hZGQoYmVnaW4sIGVuZCk7CisgICAgY29uc2VydmF0aXZlUm9vdHMuYWRkKGJlZ2luLCBl
bmQpOwogfQogCiAjaWYgQ09NUElMRVIoR0NDKQpAQCAtMjU4LDcgKzI1OCw3IEBAIHZvaWQgTkVW
RVJfSU5MSU5FIE1hY2hpbmVTdGFja01hcmtlcjo6bWEKICNkZWZpbmUgUkVHSVNURVJfQlVGRkVS
X0FMSUdOTUVOVAogI2VuZGlmCiAKLXZvaWQgTWFjaGluZVN0YWNrTWFya2VyOjptYXJrQ3VycmVu
dFRocmVhZENvbnNlcnZhdGl2ZWx5KENvbnNlcnZhdGl2ZVNldCYgY29uc2VydmF0aXZlU2V0KQor
dm9pZCBNYWNoaW5lVGhyZWFkczo6Z2F0aGVyRnJvbUN1cnJlbnRUaHJlYWQoQ29uc2VydmF0aXZl
Um9vdHMmIGNvbnNlcnZhdGl2ZVJvb3RzKQogewogICAgIC8vIHNldGptcCBmb3JjZXMgdm9sYXRp
bGUgcmVnaXN0ZXJzIG9udG8gdGhlIHN0YWNrCiAgICAgam1wX2J1ZiByZWdpc3RlcnMgUkVHSVNU
RVJfQlVGRkVSX0FMSUdOTUVOVDsKQEAgLTI3MSw3ICsyNzEsNyBAQCB2b2lkIE1hY2hpbmVTdGFj
a01hcmtlcjo6bWFya0N1cnJlbnRUaHJlCiAjcHJhZ21hIHdhcm5pbmcocG9wKQogI2VuZGlmCiAK
LSAgICBtYXJrQ3VycmVudFRocmVhZENvbnNlcnZhdGl2ZWx5SW50ZXJuYWwoY29uc2VydmF0aXZl
U2V0KTsKKyAgICBnYXRoZXJGcm9tQ3VycmVudFRocmVhZEludGVybmFsKGNvbnNlcnZhdGl2ZVJv
b3RzKTsKIH0KIAogI2lmIEVOQUJMRShKU0NfTVVMVElQTEVfVEhSRUFEUykKQEAgLTQzNSwyMCAr
NDM1LDE5IEBAIHN0YXRpYyB2b2lkIGZyZWVQbGF0Zm9ybVRocmVhZFJlZ2lzdGVycygKICNlbmRp
ZgogfQogCi12b2lkIE1hY2hpbmVTdGFja01hcmtlcjo6bWFya090aGVyVGhyZWFkQ29uc2VydmF0
aXZlbHkoQ29uc2VydmF0aXZlU2V0JiBjb25zZXJ2YXRpdmVTZXQsIFRocmVhZCogdGhyZWFkKQor
dm9pZCBNYWNoaW5lVGhyZWFkczo6Z2F0aGVyRnJvbU90aGVyVGhyZWFkKENvbnNlcnZhdGl2ZVJv
b3RzJiBjb25zZXJ2YXRpdmVSb290cywgVGhyZWFkKiB0aHJlYWQpCiB7CiAgICAgc3VzcGVuZFRo
cmVhZCh0aHJlYWQtPnBsYXRmb3JtVGhyZWFkKTsKIAogICAgIFBsYXRmb3JtVGhyZWFkUmVnaXN0
ZXJzIHJlZ3M7CiAgICAgc2l6ZV90IHJlZ1NpemUgPSBnZXRQbGF0Zm9ybVRocmVhZFJlZ2lzdGVy
cyh0aHJlYWQtPnBsYXRmb3JtVGhyZWFkLCByZWdzKTsKIAotICAgIC8vIG1hcmsgdGhlIHRocmVh
ZCdzIHJlZ2lzdGVycwotICAgIGNvbnNlcnZhdGl2ZVNldC5hZGQoc3RhdGljX2Nhc3Q8dm9pZCo+
KCZyZWdzKSwgc3RhdGljX2Nhc3Q8dm9pZCo+KHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KCZyZWdz
KSArIHJlZ1NpemUpKTsKKyAgICBjb25zZXJ2YXRpdmVSb290cy5hZGQoc3RhdGljX2Nhc3Q8dm9p
ZCo+KCZyZWdzKSwgc3RhdGljX2Nhc3Q8dm9pZCo+KHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KCZy
ZWdzKSArIHJlZ1NpemUpKTsKIAogICAgIHZvaWQqIHN0YWNrUG9pbnRlciA9IG90aGVyVGhyZWFk
U3RhY2tQb2ludGVyKHJlZ3MpOwogICAgIHZvaWQqIHN0YWNrQmFzZSA9IHRocmVhZC0+c3RhY2tC
YXNlOwogICAgIHN3YXBJZkJhY2t3YXJkcyhzdGFja1BvaW50ZXIsIHN0YWNrQmFzZSk7Ci0gICAg
Y29uc2VydmF0aXZlU2V0LmFkZChzdGFja1BvaW50ZXIsIHN0YWNrQmFzZSk7CisgICAgY29uc2Vy
dmF0aXZlUm9vdHMuYWRkKHN0YWNrUG9pbnRlciwgc3RhY2tCYXNlKTsKIAogICAgIHJlc3VtZVRo
cmVhZCh0aHJlYWQtPnBsYXRmb3JtVGhyZWFkKTsKIApAQCAtNDU3LDI3ICs0NTYsMjcgQEAgdm9p
ZCBNYWNoaW5lU3RhY2tNYXJrZXI6Om1hcmtPdGhlclRocmVhZAogCiAjZW5kaWYKIAotdm9pZCBN
YWNoaW5lU3RhY2tNYXJrZXI6Om1hcmtNYWNoaW5lU3RhY2tDb25zZXJ2YXRpdmVseShDb25zZXJ2
YXRpdmVTZXQmIGNvbnNlcnZhdGl2ZVNldCkKK3ZvaWQgTWFjaGluZVRocmVhZHM6OmdhdGhlckNv
bnNlcnZhdGl2ZVJvb3RzKENvbnNlcnZhdGl2ZVJvb3RzJiBjb25zZXJ2YXRpdmVSb290cykKIHsK
LSAgICBtYXJrQ3VycmVudFRocmVhZENvbnNlcnZhdGl2ZWx5KGNvbnNlcnZhdGl2ZVNldCk7Cisg
ICAgZ2F0aGVyRnJvbUN1cnJlbnRUaHJlYWQoY29uc2VydmF0aXZlUm9vdHMpOwogCiAjaWYgRU5B
QkxFKEpTQ19NVUxUSVBMRV9USFJFQURTKQogCi0gICAgaWYgKG1fY3VycmVudFRocmVhZFJlZ2lz
dHJhcikgeworICAgIGlmIChtX3RocmVhZFNwZWNpZmljKSB7CiAKICAgICAgICAgTXV0ZXhMb2Nr
ZXIgbG9jayhtX3JlZ2lzdGVyZWRUaHJlYWRzTXV0ZXgpOwogCiAjaWZuZGVmIE5ERUJVRwotICAg
ICAgICAvLyBGb3JiaWQgbWFsbG9jIGR1cmluZyB0aGUgbWFyayBwaGFzZS4gTWFya2luZyBhIHRo
cmVhZCBzdXNwZW5kcyBpdCwgc28gCi0gICAgICAgIC8vIGEgbWFsbG9jIGluc2lkZSBtYXJrQ2hp
bGRyZW4oKSB3b3VsZCByaXNrIGEgZGVhZGxvY2sgd2l0aCBhIHRocmVhZCB0aGF0IGhhZCBiZWVu
IAotICAgICAgICAvLyBzdXNwZW5kZWQgd2hpbGUgaG9sZGluZyB0aGUgbWFsbG9jIGxvY2suCisg
ICAgICAgIC8vIEZvcmJpZCBtYWxsb2MgZHVyaW5nIHRoZSBnYXRoZXIgcGhhc2UuIFRoZSBnYXRo
ZXIgcGhhc2Ugc3VzcGVuZHMKKyAgICAgICAgLy8gdGhyZWFkcywgc28gYSBtYWxsb2MgZHVyaW5n
IGdhdGhlciB3b3VsZCByaXNrIGEgZGVhZGxvY2sgd2l0aCBhCisgICAgICAgIC8vIHRocmVhZCB0
aGF0IGhhZCBiZWVuIHN1c3BlbmRlZCB3aGlsZSBob2xkaW5nIHRoZSBtYWxsb2MgbG9jay4KICAg
ICAgICAgZmFzdE1hbGxvY0ZvcmJpZCgpOwogI2VuZGlmCiAgICAgICAgIC8vIEl0IGlzIHNhZmUg
dG8gYWNjZXNzIHRoZSByZWdpc3RlcmVkVGhyZWFkcyBsaXN0LCBiZWNhdXNlIHdlIGVhcmxpZXIg
YXNzZXJ0ZWQgdGhhdCBsb2NrcyBhcmUgYmVpbmcgaGVsZCwKICAgICAgICAgLy8gYW5kIHNpbmNl
IHRoaXMgaXMgYSBzaGFyZWQgaGVhcCwgdGhleSBhcmUgcmVhbCBsb2Nrcy4KICAgICAgICAgZm9y
IChUaHJlYWQqIHRocmVhZCA9IG1fcmVnaXN0ZXJlZFRocmVhZHM7IHRocmVhZDsgdGhyZWFkID0g
dGhyZWFkLT5uZXh0KSB7CiAgICAgICAgICAgICBpZiAoIXB0aHJlYWRfZXF1YWwodGhyZWFkLT5w
b3NpeFRocmVhZCwgcHRocmVhZF9zZWxmKCkpKQotICAgICAgICAgICAgICAgIG1hcmtPdGhlclRo
cmVhZENvbnNlcnZhdGl2ZWx5KGNvbnNlcnZhdGl2ZVNldCwgdGhyZWFkKTsKKyAgICAgICAgICAg
ICAgICBnYXRoZXJGcm9tT3RoZXJUaHJlYWQoY29uc2VydmF0aXZlUm9vdHMsIHRocmVhZCk7CiAg
ICAgICAgIH0KICNpZm5kZWYgTkRFQlVHCiAgICAgICAgIGZhc3RNYWxsb2NBbGxvdygpOwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFjaGluZVN0YWNrTWFya2VyLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFjaGluZVN0YWNrTWFy
a2VyLmgJKHJldmlzaW9uIDgwOTc0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
TWFjaGluZVN0YWNrTWFya2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTE5LDggKzE5LDggQEAKICAq
CiAgKi8KIAotI2lmbmRlZiBNYWNoaW5lU3RhY2tNYXJrZXJfaAotI2RlZmluZSBNYWNoaW5lU3Rh
Y2tNYXJrZXJfaAorI2lmbmRlZiBNYWNoaW5lVGhyZWFkc19oCisjZGVmaW5lIE1hY2hpbmVUaHJl
YWRzX2gKIAogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9UaHJl
YWRpbmdQcmltaXRpdmVzLmg+CkBAIC0zMiwzMiArMzIsMzIgQEAKIG5hbWVzcGFjZSBKU0Mgewog
CiAgICAgY2xhc3MgSGVhcDsKLSAgICBjbGFzcyBDb25zZXJ2YXRpdmVTZXQ7CisgICAgY2xhc3Mg
Q29uc2VydmF0aXZlUm9vdHM7CiAKLSAgICBjbGFzcyBNYWNoaW5lU3RhY2tNYXJrZXIgewotICAg
ICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShNYWNoaW5lU3RhY2tNYXJrZXIpOworICAgIGNsYXNz
IE1hY2hpbmVUaHJlYWRzIHsKKyAgICAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTWFjaGluZVRo
cmVhZHMpOwogICAgIHB1YmxpYzoKLSAgICAgICAgTWFjaGluZVN0YWNrTWFya2VyKEhlYXAqKTsK
LSAgICAgICAgfk1hY2hpbmVTdGFja01hcmtlcigpOworICAgICAgICBNYWNoaW5lVGhyZWFkcyhI
ZWFwKik7CisgICAgICAgIH5NYWNoaW5lVGhyZWFkcygpOwogCi0gICAgICAgIHZvaWQgbWFya01h
Y2hpbmVTdGFja0NvbnNlcnZhdGl2ZWx5KENvbnNlcnZhdGl2ZVNldCYpOworICAgICAgICB2b2lk
IGdhdGhlckNvbnNlcnZhdGl2ZVJvb3RzKENvbnNlcnZhdGl2ZVJvb3RzJik7CiAKICNpZiBFTkFC
TEUoSlNDX01VTFRJUExFX1RIUkVBRFMpCiAgICAgICAgIHZvaWQgbWFrZVVzYWJsZUZyb21NdWx0
aXBsZVRocmVhZHMoKTsKLSAgICAgICAgdm9pZCByZWdpc3RlclRocmVhZCgpOyAvLyBPbmx5IG5l
ZWRzIHRvIGJlIGNhbGxlZCBieSBjbGllbnRzIHRoYXQgY2FuIHVzZSB0aGUgc2FtZSBoZWFwIGZy
b20gbXVsdGlwbGUgdGhyZWFkcy4KKyAgICAgICAgdm9pZCBhZGRDdXJyZW50VGhyZWFkKCk7IC8v
IE9ubHkgbmVlZHMgdG8gYmUgY2FsbGVkIGJ5IGNsaWVudHMgdGhhdCBjYW4gdXNlIHRoZSBzYW1l
IGhlYXAgZnJvbSBtdWx0aXBsZSB0aHJlYWRzLgogI2VuZGlmCiAKICAgICBwcml2YXRlOgotICAg
ICAgICB2b2lkIG1hcmtDdXJyZW50VGhyZWFkQ29uc2VydmF0aXZlbHkoQ29uc2VydmF0aXZlU2V0
Jik7Ci0gICAgICAgIHZvaWQgbWFya0N1cnJlbnRUaHJlYWRDb25zZXJ2YXRpdmVseUludGVybmFs
KENvbnNlcnZhdGl2ZVNldCYpOworICAgICAgICB2b2lkIGdhdGhlckZyb21DdXJyZW50VGhyZWFk
KENvbnNlcnZhdGl2ZVJvb3RzJik7CisgICAgICAgIHZvaWQgZ2F0aGVyRnJvbUN1cnJlbnRUaHJl
YWRJbnRlcm5hbChDb25zZXJ2YXRpdmVSb290cyYpOwogCiAjaWYgRU5BQkxFKEpTQ19NVUxUSVBM
RV9USFJFQURTKQogICAgICAgICBjbGFzcyBUaHJlYWQ7CiAKLSAgICAgICAgc3RhdGljIHZvaWQg
dW5yZWdpc3RlclRocmVhZCh2b2lkKik7CisgICAgICAgIHN0YXRpYyB2b2lkIHJlbW92ZVRocmVh
ZCh2b2lkKik7CisgICAgICAgIHZvaWQgcmVtb3ZlQ3VycmVudFRocmVhZCgpOwogCi0gICAgICAg
IHZvaWQgdW5yZWdpc3RlclRocmVhZCgpOwotICAgICAgICB2b2lkIG1hcmtPdGhlclRocmVhZENv
bnNlcnZhdGl2ZWx5KENvbnNlcnZhdGl2ZVNldCYsIFRocmVhZCopOworICAgICAgICB2b2lkIGdh
dGhlckZyb21PdGhlclRocmVhZChDb25zZXJ2YXRpdmVSb290cyYsIFRocmVhZCopOwogI2VuZGlm
CiAKICAgICAgICAgSGVhcCogbV9oZWFwOwpAQCAtNjUsMTAgKzY1LDEwIEBAIG5hbWVzcGFjZSBK
U0MgewogI2lmIEVOQUJMRShKU0NfTVVMVElQTEVfVEhSRUFEUykKICAgICAgICAgTXV0ZXggbV9y
ZWdpc3RlcmVkVGhyZWFkc011dGV4OwogICAgICAgICBUaHJlYWQqIG1fcmVnaXN0ZXJlZFRocmVh
ZHM7Ci0gICAgICAgIHB0aHJlYWRfa2V5X3QgbV9jdXJyZW50VGhyZWFkUmVnaXN0cmFyOworICAg
ICAgICBwdGhyZWFkX2tleV90IG1fdGhyZWFkU3BlY2lmaWM7CiAjZW5kaWYKICAgICB9OwogCiB9
IC8vIG5hbWVzcGFjZSBKU0MKIAotI2VuZGlmIC8vIE1hY2hpbmVTdGFja01hcmtlcl9oCisjZW5k
aWYgLy8gTWFjaGluZVRocmVhZHNfaApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvTWFya1N0YWNrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvTWFya1N0YWNrLmgJKHJldmlzaW9uIDgwOTg1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTWFya1N0YWNrLmgJKHdvcmtpbmcgY29weSkKQEAgLTcyLDEyICs3MiwxMiBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgICAgICBtX21hcmtTZXRzLmFwcGVuZChNYXJrU2V0
KHZhbHVlcywgdmFsdWVzICsgY291bnQsIHByb3BlcnRpZXMpKTsKICAgICAgICAgfQogCi0gICAg
ICAgIHZvaWQgYXBwZW5kKENvbnNlcnZhdGl2ZVNldCYgY29uc2VydmF0aXZlU2V0KQorICAgICAg
ICB2b2lkIGFwcGVuZChDb25zZXJ2YXRpdmVSb290cyYgY29uc2VydmF0aXZlUm9vdHMpCiAgICAg
ICAgIHsKLSAgICAgICAgICAgIEpTQ2VsbCoqIHNldCA9IGNvbnNlcnZhdGl2ZVNldC5zZXQoKTsK
LSAgICAgICAgICAgIHNpemVfdCBzaXplID0gY29uc2VydmF0aXZlU2V0LnNpemUoKTsKKyAgICAg
ICAgICAgIEpTQ2VsbCoqIHJvb3RzID0gY29uc2VydmF0aXZlUm9vdHMucm9vdHMoKTsKKyAgICAg
ICAgICAgIHNpemVfdCBzaXplID0gY29uc2VydmF0aXZlUm9vdHMuc2l6ZSgpOwogICAgICAgICAg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpCi0gICAgICAgICAgICAgICAgaW50
ZXJuYWxBcHBlbmQoc2V0W2ldKTsKKyAgICAgICAgICAgICAgICBpbnRlcm5hbEFwcGVuZChyb290
c1tpXSk7CiAgICAgICAgIH0KIAogICAgICAgICBpbmxpbmUgdm9pZCBkcmFpbigpOwo=
</data>
<flag name="review"
          id="77791"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>