<?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>101543</bug_id>
          
          <creation_ts>2012-11-07 22:05:24 -0800</creation_ts>
          <short_desc>HTMLContentElement should preserve parsed CSSSelectorList.</short_desc>
          <delta_ts>2012-11-08 18:41:04 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (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>
          
          <blocked>101180</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Shinya Kawanaka">shinyak</reporter>
          <assigned_to name="Shinya Kawanaka">shinyak</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>peter+ews</cc>
    
    <cc>webcomponents-bugzilla</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>761334</commentid>
    <comment_count>0</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-11-07 22:05:24 -0800</bug_when>
    <thetext>Currently we&apos;re always parsing select attribute when distribution happens.
We would like to cache it for performance reason.

This is also a preparation patch for Bug 101180.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761391</commentid>
    <comment_count>1</comment_count>
      <attachid>172939</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-11-07 23:41:08 -0800</bug_when>
    <thetext>Created attachment 172939
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761408</commentid>
    <comment_count>2</comment_count>
      <attachid>172939</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-11-08 00:03:00 -0800</bug_when>
    <thetext>Comment on attachment 172939
Patch

Attachment 172939 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/14759647</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761414</commentid>
    <comment_count>3</comment_count>
      <attachid>172939</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-08 00:08:45 -0800</bug_when>
    <thetext>Comment on attachment 172939
Patch

Attachment 172939 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14770066</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761446</commentid>
    <comment_count>4</comment_count>
      <attachid>172950</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-11-08 01:02:54 -0800</bug_when>
    <thetext>Created attachment 172950
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761451</commentid>
    <comment_count>5</comment_count>
      <attachid>172950</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-11-08 01:10:54 -0800</bug_when>
    <thetext>Comment on attachment 172950
Patch

Attachment 172950 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/14682402</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761460</commentid>
    <comment_count>6</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-11-08 01:27:52 -0800</bug_when>
    <thetext>efl bot seems insane... That&apos;s not from my patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761463</commentid>
    <comment_count>7</comment_count>
      <attachid>172950</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2012-11-08 01:34:23 -0800</bug_when>
    <thetext>Comment on attachment 172950
Patch

Attachment 172950 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/14760700</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761473</commentid>
    <comment_count>8</comment_count>
      <attachid>172959</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-11-08 01:39:57 -0800</bug_when>
    <thetext>Created attachment 172959
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761475</commentid>
    <comment_count>9</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-11-08 01:40:16 -0800</bug_when>
    <thetext>Try again :-(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761860</commentid>
    <comment_count>10</comment_count>
      <attachid>172959</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-11-08 09:07:04 -0800</bug_when>
    <thetext>Comment on attachment 172959
Patch

Ah, I see you were doing that thing I suggested already! Great minds think alike, amirite? :)

Make EWS bubbles happy before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762410</commentid>
    <comment_count>11</comment_count>
      <attachid>173168</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-11-08 18:31:42 -0800</bug_when>
    <thetext>Created attachment 173168
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762420</commentid>
    <comment_count>12</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-11-08 18:41:04 -0800</bug_when>
    <thetext>Committed r133992: &lt;http://trac.webkit.org/changeset/133992&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172939</attachid>
            <date>2012-11-07 23:41:08 -0800</date>
            <delta_ts>2012-11-08 01:02:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101543-20121108163918.patch</filename>
            <type>text/plain</type>
            <size>16595</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzODM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzhhY2IwY2FkOWY2ZmJm
MTk0NzJkMjdlNTlhNmIwOWIyOTRkNmVhNi4uNTgzODJkMTc5NTI0NDU2NzU1MTg1OTNjY2JiOTk0
ODkwZmJlMmY2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDEyLTExLTA3ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBIVE1MQ29udGVu
dEVsZW1lbnQgc2hvdWxkIHByZXNlcnZlIHBhcnNlZCBDU1NTZWxlY3Rvckxpc3QKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTU0MworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIHdvdWxkIGxpa2UgdG8g
cHJlc2VydmUgQ1NTU2VsZWN0b3JMaXN0IGZvciBzZWxlY3QgYXR0cmlidXRlIG9mIEhUTUxDb250
ZW50RWxlbWVudC4KKworICAgICAgICBCZWZvcmUsIHdlIHBhcnNlZCBhbmQgdmFsaWRhdGVkIHNl
bGVjdCBhdHRyaWJ1dGUgZXZlcnkgdGltZSBkaXN0cmlidXRpb24gaGFwcGVucy4gSWYgd2UgcHJl
c2VydmUgdGhlIHBhcnNlZAorICAgICAgICBDU1NTZWxlY3Rvckxpc3QsIHdlIGNhbiByZWR1Y2Ug
ZGlzdHJpYnV0aW9uIHRpbWUuCisKKyAgICAgICAgVGhpcyBpcyBhbHNvIGEgcHJlcHJhdGlvbiBw
YXRjaCBmb3IgQnVnIDEwMTE4MC4gSXQgYWxzbyBuZWVkcyB0aGUgcGFyc2VkIENTU1NlbGVjdG9y
TGlzdC4gV2UgZG9uJ3Qgd2FudCB0bworICAgICAgICBwYXJzZSBhbmQgdmFsaWRhdGUgaXQgYWdh
aW4uCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBjb3ZlcmVkIGJ5IGV4aXNpbmcgdGVzdHMuCisK
KyAgICAgICAgKiBodG1sL3NoYWRvdy9Db250ZW50U2VsZWN0b3JRdWVyeS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDb250ZW50U2VsZWN0b3JRdWVyeTo6Q29udGVudFNlbGVjdG9yUXVlcnkpOiBX
ZSBkb24ndCBwYXJzZSBzZWxlY3QgYXR0cmlidXRlIGhlcmUgYW55bW9yZS4KKyAgICAgICAgaWYg
aXQncyBhbHJlYWR5IHBhcnNlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRTZWxlY3RvclF1
ZXJ5OjptYXRjaGVzKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9Db250ZW50U2VsZWN0b3JRdWVy
eS5oOgorICAgICAgICAoQ29udGVudFNlbGVjdG9yUXVlcnkpOgorICAgICAgICAqIGh0bWwvc2hh
ZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29udGVu
dEVsZW1lbnQ6OkhUTUxDb250ZW50RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29u
dGVudEVsZW1lbnQ6OmlzU2VsZWN0VmFsaWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnRl
bnRFbGVtZW50OjplbnN1cmVTZWxlY3RQYXJzZWQpOiBJZiB3ZSBkb24ndCBoYXZlIHBhcnNlZCB0
aGUgY3VycmVudCBzZWxlY3QgYXR0cmlidXRlLAorICAgICAgICB3ZSBwYXJzZSBhbmQgdmFsaWRh
dGUgaXQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29udGVudEVsZW1lbnQ6OnBhcnNlQXR0cmli
dXRlKTogV2hlbiBzZWxlY3QgYXR0cmlidXRlIGlzIGNoYW5nZWQsIHdlIGhhdmUgdG8gaGF2ZSBh
IGZsYWcgZW5hYmxlZAorICAgICAgICB0byBwYXJzZSBzZWxlY3QgYXR0cml0ZSBhZ2Fpbi4KKyAg
ICAgICAgKFdlYkNvcmU6OnZhbGlkYXRlU3ViU2VsZWN0b3IpOiBNb3ZlZCBmcm9tIENvbnRlbnRT
ZWxlY3RvclF1ZXJ5LgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjp2YWxp
ZGF0ZVNlbGVjdG9yKTogTW92ZWQgZnJvbSBDb250ZW50U2VsZWN0b3JRdWVyeS4KKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxDb250ZW50RWxlbWVudDo6dmFsaWRhdGVTZWxlY3QpOgorICAgICAgICAq
IGh0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5oOgorICAgICAgICAoSFRNTENvbnRlbnRF
bGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb250ZW50RWxlbWVudDo6c2V0U2VsZWN0
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnRlbnRFbGVt
ZW50OjpzZWxlY3Rvckxpc3QpOgorICAgICAgICAqIGh0bWwvc2hhZG93L0hUTUxTaGFkb3dFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGh0bWwvc2hhZG93L0hUTUxT
aGFkb3dFbGVtZW50Lmg6CisgICAgICAgIChIVE1MU2hhZG93RWxlbWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MU2hhZG93RWxlbWVudDo6c2VsZWN0b3JMaXN0KToKKyAgICAgICAgKiBodG1s
L3NoYWRvdy9JbnNlcnRpb25Qb2ludC5oOgorICAgICAgICAoSW5zZXJ0aW9uUG9pbnQpOgorCiAy
MDEyLTExLTA3ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1Y4
XSBJbnRydXNpdmVET01XcmFwcGVyTWFwIHNob3VsZCBiZSB1c2FibGUgZm9yIG1vcmUgdGhhbiBq
dXN0IE5vZGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Db250ZW50
U2VsZWN0b3JRdWVyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Db250ZW50U2Vs
ZWN0b3JRdWVyeS5jcHAKaW5kZXggMGE2ZWMzMmVlZTVmZDAwYjhlOTViNDMzZWRkZjk0OTczNmIx
NGVlYS4uZGJlNWE4ZTk1NjJmNjhmYTZhMDdmM2MzMzk3MGZhODVmM2I4NmJiNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVudFNlbGVjdG9yUXVlcnkuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcApA
QCAtMjcsNyArMjcsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNvbnRlbnRT
ZWxlY3RvclF1ZXJ5LmgiCiAKLSNpbmNsdWRlICJDU1NQYXJzZXIuaCIKICNpbmNsdWRlICJDU1NT
ZWxlY3Rvckxpc3QuaCIKICNpbmNsdWRlICJJbnNlcnRpb25Qb2ludC5oIgogI2luY2x1ZGUgIlNl
bGVjdG9yQ2hlY2tlci5oIgpAQCAtNjUsMjYgKzY0LDEyIEBAIGJvb2wgQ29udGVudFNlbGVjdG9y
RGF0YUxpc3Q6Om1hdGNoZXMoY29uc3QgQ29udGVudFNlbGVjdG9yQ2hlY2tlciYgc2VsZWN0b3JD
aGVjCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1Db250ZW50U2VsZWN0b3JRdWVyeTo6Q29udGVu
dFNlbGVjdG9yUXVlcnkoY29uc3QgSW5zZXJ0aW9uUG9pbnQqIGluc2VydGlvblBvaW50KQorQ29u
dGVudFNlbGVjdG9yUXVlcnk6OkNvbnRlbnRTZWxlY3RvclF1ZXJ5KEluc2VydGlvblBvaW50KiBp
bnNlcnRpb25Qb2ludCkKICAgICA6IG1faW5zZXJ0aW9uUG9pbnQoaW5zZXJ0aW9uUG9pbnQpCiAg
ICAgLCBtX3NlbGVjdG9yQ2hlY2tlcihpbnNlcnRpb25Qb2ludC0+ZG9jdW1lbnQoKSwgIWluc2Vy
dGlvblBvaW50LT5kb2N1bWVudCgpLT5pblF1aXJrc01vZGUoKSkKIHsKLSAgICBpZiAoaW5zZXJ0
aW9uUG9pbnQtPnNlbGVjdCgpLmlzTnVsbCgpIHx8IGluc2VydGlvblBvaW50LT5zZWxlY3QoKS5p
c0VtcHR5KCkpIHsKLSAgICAgICAgbV9pc1ZhbGlkU2VsZWN0b3IgPSB0cnVlOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQotCi0gICAgQ1NTUGFyc2VyIHBhcnNlcihpbnNlcnRpb25Qb2ludC0+ZG9j
dW1lbnQoKSk7Ci0gICAgcGFyc2VyLnBhcnNlU2VsZWN0b3IoaW5zZXJ0aW9uUG9pbnQtPnNlbGVj
dCgpLCBtX3NlbGVjdG9yTGlzdCk7Ci0KLSAgICBtX2lzVmFsaWRTZWxlY3RvciA9IENvbnRlbnRT
ZWxlY3RvclF1ZXJ5Ojp2YWxpZGF0ZVNlbGVjdG9yTGlzdCgpOwotICAgIGlmIChtX2lzVmFsaWRT
ZWxlY3RvcikKLSAgICAgICAgbV9zZWxlY3RvcnMuaW5pdGlhbGl6ZShtX3NlbGVjdG9yTGlzdCk7
Ci19Ci0KLWJvb2wgQ29udGVudFNlbGVjdG9yUXVlcnk6OmlzVmFsaWRTZWxlY3RvcigpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuIG1faXNWYWxpZFNlbGVjdG9yOworICAgIGlmIChpbnNlcnRpb25Qb2lu
dC0+aXNTZWxlY3RWYWxpZCgpKQorICAgICAgICBtX3NlbGVjdG9ycy5pbml0aWFsaXplKGluc2Vy
dGlvblBvaW50LT5zZWxlY3Rvckxpc3QoKSk7CiB9CiAKIGJvb2wgQ29udGVudFNlbGVjdG9yUXVl
cnk6Om1hdGNoZXMoY29uc3QgVmVjdG9yPFJlZlB0cjxOb2RlPiA+JiBzaWJsaW5ncywgaW50IG50
aCkgY29uc3QKQEAgLTk1LDcgKzgwLDcgQEAgYm9vbCBDb250ZW50U2VsZWN0b3JRdWVyeTo6bWF0
Y2hlcyhjb25zdCBWZWN0b3I8UmVmUHRyPE5vZGU+ID4mIHNpYmxpbmdzLCBpbnQgbnQKICAgICBp
ZiAobV9pbnNlcnRpb25Qb2ludC0+c2VsZWN0KCkuaXNOdWxsKCkgfHwgbV9pbnNlcnRpb25Qb2lu
dC0+c2VsZWN0KCkuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIGlmICgh
bV9pc1ZhbGlkU2VsZWN0b3IpCisgICAgaWYgKCFtX2luc2VydGlvblBvaW50LT5pc1NlbGVjdFZh
bGlkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmICghbm9kZS0+aXNFbGVtZW50
Tm9kZSgpKQpAQCAtMTA0LDg1ICs4OSw0IEBAIGJvb2wgQ29udGVudFNlbGVjdG9yUXVlcnk6Om1h
dGNoZXMoY29uc3QgVmVjdG9yPFJlZlB0cjxOb2RlPiA+JiBzaWJsaW5ncywgaW50IG50CiAgICAg
cmV0dXJuIG1fc2VsZWN0b3JzLm1hdGNoZXMobV9zZWxlY3RvckNoZWNrZXIsIHNpYmxpbmdzLCBu
dGgpOwogfQogCi1zdGF0aWMgYm9vbCB2YWxpZGF0ZVN1YlNlbGVjdG9yKENTU1NlbGVjdG9yKiBz
ZWxlY3RvcikKLXsKLSAgICBzd2l0Y2ggKHNlbGVjdG9yLT5tX21hdGNoKSB7Ci0gICAgY2FzZSBD
U1NTZWxlY3Rvcjo6Tm9uZToKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpJZDoKLSAgICBjYXNlIENT
U1NlbGVjdG9yOjpDbGFzczoKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpFeGFjdDoKLSAgICBjYXNl
IENTU1NlbGVjdG9yOjpTZXQ6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6TGlzdDoKLSAgICBjYXNl
IENTU1NlbGVjdG9yOjpIeXBoZW46Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6Q29udGFpbjoKLSAg
ICBjYXNlIENTU1NlbGVjdG9yOjpCZWdpbjoKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpFbmQ6Ci0g
ICAgICAgIHJldHVybiB0cnVlOwotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1lbnQ6
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQYWdlUHNldWRv
Q2xhc3M6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3M6Ci0gICAgICAgIGJyZWFr
OwotICAgIH0KLQotICAgIHN3aXRjaCAoc2VsZWN0b3ItPnBzZXVkb1R5cGUoKSkgewotICAgIGNh
c2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0VtcHR5OgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVk
b0xpbms6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvVmlzaXRlZDoKLSAgICBjYXNlIENT
U1NlbGVjdG9yOjpQc2V1ZG9UYXJnZXQ6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRW5h
YmxlZDoKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9EaXNhYmxlZDoKLSAgICBjYXNlIENT
U1NlbGVjdG9yOjpQc2V1ZG9DaGVja2VkOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0lu
ZGV0ZXJtaW5hdGU6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTnRoQ2hpbGQ6Ci0gICAg
Y2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTnRoTGFzdENoaWxkOgotICAgIGNhc2UgQ1NTU2VsZWN0
b3I6OlBzZXVkb050aE9mVHlwZToKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9OdGhMYXN0
T2ZUeXBlOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0ZpcnN0Q2hpbGQ6Ci0gICAgY2Fz
ZSBDU1NTZWxlY3Rvcjo6UHNldWRvTGFzdENoaWxkOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBz
ZXVkb0ZpcnN0T2ZUeXBlOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0xhc3RPZlR5cGU6
Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvT25seU9mVHlwZToKLSAgICAgICAgcmV0dXJu
IHRydWU7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLX0KLQot
c3RhdGljIGJvb2wgdmFsaWRhdGVTZWxlY3RvcihDU1NTZWxlY3Rvciogc2VsZWN0b3IpCi17Ci0g
ICAgQVNTRVJUKHNlbGVjdG9yKTsKLQotICAgIGlmICghdmFsaWRhdGVTdWJTZWxlY3RvcihzZWxl
Y3RvcikpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIENTU1NlbGVjdG9yKiBwcmV2U3Vi
U2VsZWN0b3IgPSBzZWxlY3RvcjsKLSAgICBDU1NTZWxlY3Rvciogc3ViU2VsZWN0b3IgPSBzZWxl
Y3Rvci0+dGFnSGlzdG9yeSgpOwotCi0gICAgd2hpbGUgKHN1YlNlbGVjdG9yKSB7Ci0gICAgICAg
IGlmIChwcmV2U3ViU2VsZWN0b3ItPnJlbGF0aW9uKCkgIT0gQ1NTU2VsZWN0b3I6OlN1YlNlbGVj
dG9yKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBpZiAoIXZhbGlkYXRlU3Vi
U2VsZWN0b3Ioc3ViU2VsZWN0b3IpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAg
ICAgIHByZXZTdWJTZWxlY3RvciA9IHN1YlNlbGVjdG9yOwotICAgICAgICBzdWJTZWxlY3RvciA9
IHN1YlNlbGVjdG9yLT50YWdIaXN0b3J5KCk7Ci0gICAgfQotCi0gICAgcmV0dXJuIHRydWU7Ci19
Ci0KLWJvb2wgQ29udGVudFNlbGVjdG9yUXVlcnk6OnZhbGlkYXRlU2VsZWN0b3JMaXN0KCkKLXsK
LSAgICBpZiAoIW1fc2VsZWN0b3JMaXN0LmZpcnN0KCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsK
LQotICAgIGZvciAoQ1NTU2VsZWN0b3IqIHNlbGVjdG9yID0gbV9zZWxlY3Rvckxpc3QuZmlyc3Qo
KTsgc2VsZWN0b3I7IHNlbGVjdG9yID0gbV9zZWxlY3Rvckxpc3QubmV4dChzZWxlY3RvcikpIHsK
LSAgICAgICAgaWYgKCF2YWxpZGF0ZVNlbGVjdG9yKHNlbGVjdG9yKSkKLSAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVudFNlbGVjdG9yUXVlcnkuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmgKaW5kZXggMmM3
MTBhNTg1MmU5MmQ3Njg4MmM3YzIwNzUwYmZkMjZkYTJhYTAzYi4uNzhhMDgyNDU0YzlkMTJmMmIw
ZjNjNTUwNGE4YjkwYWJlOWUxZWJlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvQ29udGVudFNlbGVjdG9yUXVlcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9Db250ZW50U2VsZWN0b3JRdWVyeS5oCkBAIC02NCwxOCArNjQsMTQgQEAgcHJpdmF0ZToK
IGNsYXNzIENvbnRlbnRTZWxlY3RvclF1ZXJ5IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShD
b250ZW50U2VsZWN0b3JRdWVyeSk7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgQ29udGVudFNlbGVj
dG9yUXVlcnkoY29uc3QgSW5zZXJ0aW9uUG9pbnQqKTsKKyAgICBleHBsaWNpdCBDb250ZW50U2Vs
ZWN0b3JRdWVyeShJbnNlcnRpb25Qb2ludCopOwogCi0gICAgYm9vbCBpc1ZhbGlkU2VsZWN0b3Io
KSBjb25zdDsKICAgICBib29sIG1hdGNoZXMoY29uc3QgVmVjdG9yPFJlZlB0cjxOb2RlPiA+JiBz
aWJsaW5ncywgaW50IG50aE5vZGUpIGNvbnN0OwogcHJpdmF0ZToKLSAgICBib29sIHZhbGlkYXRl
U2VsZWN0b3JMaXN0KCk7CiAKLSAgICBjb25zdCBJbnNlcnRpb25Qb2ludCogbV9pbnNlcnRpb25Q
b2ludDsKKyAgICBJbnNlcnRpb25Qb2ludCogbV9pbnNlcnRpb25Qb2ludDsKICAgICBDb250ZW50
U2VsZWN0b3JEYXRhTGlzdCBtX3NlbGVjdG9yczsKLSAgICBDU1NTZWxlY3Rvckxpc3QgbV9zZWxl
Y3Rvckxpc3Q7CiAgICAgQ29udGVudFNlbGVjdG9yQ2hlY2tlciBtX3NlbGVjdG9yQ2hlY2tlcjsK
LSAgICBib29sIG1faXNWYWxpZFNlbGVjdG9yOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHAKaW5kZXggNTA0MGU5ZWI4ZDYw
NjI3NTZlZWFmOWJlNDQzNzRkNjZhNWUxMjVlMC4uMjdjYWI1YjFmNzk3MDIyMjU0NDA0NzRmNzI3
ZjBhZjk0NWVhZTRhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRN
TENvbnRlbnRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1M
Q29udGVudEVsZW1lbnQuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiSFRNTENvbnRlbnRFbGVtZW50LmgiCiAKKyNpbmNsdWRlICJDU1NQYXJzZXIu
aCIKICNpbmNsdWRlICJDb250ZW50RGlzdHJpYnV0b3IuaCIKICNpbmNsdWRlICJDb250ZW50U2Vs
ZWN0b3JRdWVyeS5oIgogI2luY2x1ZGUgIkNvbnRleHRGZWF0dXJlcy5oIgpAQCAtNjUsNiArNjYs
OCBAQCBQYXNzUmVmUHRyPEhUTUxDb250ZW50RWxlbWVudD4gSFRNTENvbnRlbnRFbGVtZW50Ojpj
cmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdAogSFRNTENvbnRlbnRFbGVtZW50OjpIVE1MQ29u
dGVudEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50
KQogICAgIDogSW5zZXJ0aW9uUG9pbnQobmFtZSwgZG9jdW1lbnQpCiAgICAgLCBtX3JlZ2lzdGVy
ZWRXaXRoU2hhZG93Um9vdChmYWxzZSkKKyAgICAsIG1fc2hvdWxkUGFyc2VTZWxlY3Rvckxpc3Qo
ZmFsc2UpCisgICAgLCBtX2lzVmFsaWRTZWxlY3Rvcih0cnVlKQogewogfQogCkBAIC03NywxNSAr
ODAsMjMgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBIVE1MQ29udGVudEVsZW1lbnQ6OnNlbGVjdCgp
IGNvbnN0CiAgICAgcmV0dXJuIGdldEF0dHJpYnV0ZShzZWxlY3RBdHRyKTsKIH0KIAotYm9vbCBI
VE1MQ29udGVudEVsZW1lbnQ6OmlzU2VsZWN0VmFsaWQoKSBjb25zdAorYm9vbCBIVE1MQ29udGVu
dEVsZW1lbnQ6OmlzU2VsZWN0VmFsaWQoKQogewotICAgIENvbnRlbnRTZWxlY3RvclF1ZXJ5IHF1
ZXJ5KHRoaXMpOwotICAgIHJldHVybiBxdWVyeS5pc1ZhbGlkU2VsZWN0b3IoKTsKKyAgICBlbnN1
cmVTZWxlY3RQYXJzZWQoKTsKKyAgICByZXR1cm4gbV9pc1ZhbGlkU2VsZWN0b3I7CiB9CiAKLXZv
aWQgSFRNTENvbnRlbnRFbGVtZW50OjpzZXRTZWxlY3QoY29uc3QgQXRvbWljU3RyaW5nJiBzZWxl
Y3RWYWx1ZSkKK2lubGluZSB2b2lkIEhUTUxDb250ZW50RWxlbWVudDo6ZW5zdXJlU2VsZWN0UGFy
c2VkKCkKIHsKLSAgICBzZXRBdHRyaWJ1dGUoc2VsZWN0QXR0ciwgc2VsZWN0VmFsdWUpOworICAg
IGlmICghbV9zaG91bGRQYXJzZVNlbGVjdG9yTGlzdCkKKyAgICAgICAgcmV0dXJuOworCisgICAg
Q1NTUGFyc2VyIHBhcnNlcihkb2N1bWVudCgpKTsKKyAgICBwYXJzZXIucGFyc2VTZWxlY3Rvcihz
ZWxlY3QoKSwgbV9zZWxlY3Rvckxpc3QpOworICAgIG1fc2hvdWxkUGFyc2VTZWxlY3Rvckxpc3Qg
PSBmYWxzZTsKKyAgICBtX2lzVmFsaWRTZWxlY3RvciA9IHZhbGlkYXRlU2VsZWN0KCk7CisgICAg
aWYgKCFtX2lzVmFsaWRTZWxlY3RvcikKKyAgICAgICAgbV9zZWxlY3Rvckxpc3QgPSBDU1NTZWxl
Y3Rvckxpc3QoKTsKIH0KIAogdm9pZCBIVE1MQ29udGVudEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRl
KGNvbnN0IEF0dHJpYnV0ZSYgYXR0cmlidXRlKQpAQCAtOTMsNiArMTA0LDcgQEAgdm9pZCBIVE1M
Q29udGVudEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYgYXR0cmlidXRl
KQogICAgIGlmIChhdHRyaWJ1dGUubmFtZSgpID09IHNlbGVjdEF0dHIpIHsKICAgICAgICAgaWYg
KFNoYWRvd1Jvb3QqIHJvb3QgPSBzaGFkb3dSb290KCkpCiAgICAgICAgICAgICByb290LT5vd25l
cigpLT5pbnZhbGlkYXRlRGlzdHJpYnV0aW9uKCk7CisgICAgICAgIG1fc2hvdWxkUGFyc2VTZWxl
Y3Rvckxpc3QgPSB0cnVlOwogICAgIH0gZWxzZQogICAgICAgICBJbnNlcnRpb25Qb2ludDo6cGFy
c2VBdHRyaWJ1dGUoYXR0cmlidXRlKTsKIH0KQEAgLTEyMiw0ICsxMzQsOTEgQEAgdm9pZCBIVE1M
Q29udGVudEVsZW1lbnQ6OnJlbW92ZWRGcm9tKENvbnRhaW5lck5vZGUqIGluc2VydGlvblBvaW50
KQogICAgIEluc2VydGlvblBvaW50OjpyZW1vdmVkRnJvbShpbnNlcnRpb25Qb2ludCk7CiB9CiAK
K3N0YXRpYyBib29sIHZhbGlkYXRlU3ViU2VsZWN0b3IoQ1NTU2VsZWN0b3IqIHNlbGVjdG9yKQor
eworICAgIHN3aXRjaCAoc2VsZWN0b3ItPm1fbWF0Y2gpIHsKKyAgICBjYXNlIENTU1NlbGVjdG9y
OjpOb25lOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OklkOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6
OkNsYXNzOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OkV4YWN0OgorICAgIGNhc2UgQ1NTU2VsZWN0
b3I6OlNldDoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpMaXN0OgorICAgIGNhc2UgQ1NTU2VsZWN0
b3I6Okh5cGhlbjoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpDb250YWluOgorICAgIGNhc2UgQ1NT
U2VsZWN0b3I6OkJlZ2luOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OkVuZDoKKyAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRWxlbWVudDoKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBhZ2VQc2V1ZG9DbGFzczoKKyAg
ICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzczoKKyAgICAgICAgYnJlYWs7CisgICAgfQor
CisgICAgc3dpdGNoIChzZWxlY3Rvci0+cHNldWRvVHlwZSgpKSB7CisgICAgY2FzZSBDU1NTZWxl
Y3Rvcjo6UHNldWRvRW1wdHk6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTGluazoKKyAg
ICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9WaXNpdGVkOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6
OlBzZXVkb1RhcmdldDoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9FbmFibGVkOgorICAg
IGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0Rpc2FibGVkOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6
OlBzZXVkb0NoZWNrZWQ6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvSW5kZXRlcm1pbmF0
ZToKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9OdGhDaGlsZDoKKyAgICBjYXNlIENTU1Nl
bGVjdG9yOjpQc2V1ZG9OdGhMYXN0Q2hpbGQ6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRv
TnRoT2ZUeXBlOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb050aExhc3RPZlR5cGU6Cisg
ICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRmlyc3RDaGlsZDoKKyAgICBjYXNlIENTU1NlbGVj
dG9yOjpQc2V1ZG9MYXN0Q2hpbGQ6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRmlyc3RP
ZlR5cGU6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTGFzdE9mVHlwZToKKyAgICBjYXNl
IENTU1NlbGVjdG9yOjpQc2V1ZG9Pbmx5T2ZUeXBlOgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorfQorCitzdGF0aWMgYm9v
bCB2YWxpZGF0ZVNlbGVjdG9yKENTU1NlbGVjdG9yKiBzZWxlY3RvcikKK3sKKyAgICBBU1NFUlQo
c2VsZWN0b3IpOworCisgICAgaWYgKCF2YWxpZGF0ZVN1YlNlbGVjdG9yKHNlbGVjdG9yKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgQ1NTU2VsZWN0b3IqIHByZXZTdWJTZWxlY3RvciA9
IHNlbGVjdG9yOworICAgIENTU1NlbGVjdG9yKiBzdWJTZWxlY3RvciA9IHNlbGVjdG9yLT50YWdI
aXN0b3J5KCk7CisKKyAgICB3aGlsZSAoc3ViU2VsZWN0b3IpIHsKKyAgICAgICAgaWYgKHByZXZT
dWJTZWxlY3Rvci0+cmVsYXRpb24oKSAhPSBDU1NTZWxlY3Rvcjo6U3ViU2VsZWN0b3IpCisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmICghdmFsaWRhdGVTdWJTZWxlY3Rvcihz
dWJTZWxlY3RvcikpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgcHJldlN1
YlNlbGVjdG9yID0gc3ViU2VsZWN0b3I7CisgICAgICAgIHN1YlNlbGVjdG9yID0gc3ViU2VsZWN0
b3ItPnRhZ0hpc3RvcnkoKTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBI
VE1MQ29udGVudEVsZW1lbnQ6OnZhbGlkYXRlU2VsZWN0KCkgY29uc3QKK3sKKyAgICBBU1NFUlQo
IW1fc2hvdWxkUGFyc2VTZWxlY3Rvckxpc3QpOworCisgICAgaWYgKHNlbGVjdCgpLmlzTnVsbCgp
IHx8IHNlbGVjdCgpLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBpZiAo
IW1fc2VsZWN0b3JMaXN0LmZpcnN0KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGZv
ciAoQ1NTU2VsZWN0b3IqIHNlbGVjdG9yID0gbV9zZWxlY3Rvckxpc3QuZmlyc3QoKTsgc2VsZWN0
b3I7IHNlbGVjdG9yID0gbV9zZWxlY3Rvckxpc3QubmV4dChzZWxlY3RvcikpIHsKKyAgICAgICAg
aWYgKCF2YWxpZGF0ZVNlbGVjdG9yKHNlbGVjdG9yKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5oCmluZGV4IDJhM2EzMmNlYTU1OTI5
ZTg3Y2U3MWJhYzczYjc4NjRjNzkwZjBmZjYuLjA0MjU0ZTEyYjIyM2JjMDM5MDNlZDM0MmNiYWVi
ZjE3ZGU5ZjIwMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxD
b250ZW50RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250
ZW50RWxlbWVudC5oCkBAIC0zMSw2ICszMSw3IEBACiAjaWZuZGVmIEhUTUxDb250ZW50RWxlbWVu
dF9oCiAjZGVmaW5lIEhUTUxDb250ZW50RWxlbWVudF9oCiAKKyNpbmNsdWRlICJDU1NTZWxlY3Rv
ckxpc3QuaCIKICNpbmNsdWRlICJJbnNlcnRpb25Qb2ludC5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CiAKQEAgLTQ0LDkgKzQ1LDEwIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgfkhUTUxD
b250ZW50RWxlbWVudCgpOwogCi0gICAgY29uc3QgQXRvbWljU3RyaW5nJiBzZWxlY3QoKSBjb25z
dDsKICAgICB2b2lkIHNldFNlbGVjdChjb25zdCBBdG9taWNTdHJpbmcmKTsKLSAgICB2aXJ0dWFs
IGJvb2wgaXNTZWxlY3RWYWxpZCgpIGNvbnN0OworICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3Ry
aW5nJiBzZWxlY3QoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNTZWxlY3RWYWxpZCgpOwor
ICAgIHZpcnR1YWwgY29uc3QgQ1NTU2VsZWN0b3JMaXN0JiBzZWxlY3Rvckxpc3QoKTsKIAogcHJv
dGVjdGVkOgogICAgIEhUTUxDb250ZW50RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9j
dW1lbnQqKTsKQEAgLTU2LDEwICs1OCwyOCBAQCBwcm90ZWN0ZWQ6CiAKIHByaXZhdGU6CiAgICAg
dmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYpIE9WRVJSSURFOwor
ICAgIHZvaWQgZW5zdXJlU2VsZWN0UGFyc2VkKCk7CisgICAgYm9vbCB2YWxpZGF0ZVNlbGVjdCgp
IGNvbnN0OwogCiAgICAgYm9vbCBtX3JlZ2lzdGVyZWRXaXRoU2hhZG93Um9vdDsKKworICAgIGJv
b2wgbV9zaG91bGRQYXJzZVNlbGVjdG9yTGlzdDsKKyAgICBib29sIG1faXNWYWxpZFNlbGVjdG9y
OworICAgIENTU1NlbGVjdG9yTGlzdCBtX3NlbGVjdG9yTGlzdDsKIH07CiAKK2lubGluZSB2b2lk
IEhUTUxDb250ZW50RWxlbWVudDo6c2V0U2VsZWN0KGNvbnN0IEF0b21pY1N0cmluZyYgc2VsZWN0
VmFsdWUpCit7CisgICAgc2V0QXR0cmlidXRlKEhUTUxOYW1lczo6c2VsZWN0QXR0ciwgc2VsZWN0
VmFsdWUpOworICAgIG1fc2hvdWxkUGFyc2VTZWxlY3Rvckxpc3QgPSB0cnVlOworfQorCitpbmxp
bmUgY29uc3QgQ1NTU2VsZWN0b3JMaXN0JiBIVE1MQ29udGVudEVsZW1lbnQ6OnNlbGVjdG9yTGlz
dCgpCit7CisgICAgZW5zdXJlU2VsZWN0UGFyc2VkKCk7CisgICAgcmV0dXJuIG1fc2VsZWN0b3JM
aXN0OworfQorCiBpbmxpbmUgYm9vbCBpc0hUTUxDb250ZW50RWxlbWVudChjb25zdCBOb2RlKiBu
b2RlKQogewogICAgIEFTU0VSVChub2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L0hUTUxTaGFkb3dFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L0hUTUxTaGFkb3dFbGVtZW50LmNwcAppbmRleCA3ZDdlNDE1MjlmYmRmMTZmMTMwNDA4ZWUy
MzJmMTk4YjgyODM1MjY0Li43MTM0ZjE3MGZjNDVjYWI4ZTg5MjNlNWViZTM2OGRiZDBjNGM5Yjhh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MU2hhZG93RWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTFNoYWRvd0VsZW1lbnQu
Y3BwCkBAIC0zOSw2ICszOSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRG9jdW1l
bnQ7CiAKK0NTU1NlbGVjdG9yTGlzdCBIVE1MU2hhZG93RWxlbWVudDo6ZW1wdHlTZWxlY3Rvckxp
c3QgPSBDU1NTZWxlY3Rvckxpc3QoKTsKKwogaW5saW5lIEhUTUxTaGFkb3dFbGVtZW50OjpIVE1M
U2hhZG93RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9j
dW1lbnQpCiAgICAgOiBJbnNlcnRpb25Qb2ludCh0YWdOYW1lLCBkb2N1bWVudCkKICAgICAsIG1f
cmVnaXN0ZXJlZFdpdGhTaGFkb3dSb290KGZhbHNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvSFRNTFNoYWRvd0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L0hUTUxTaGFkb3dFbGVtZW50LmgKaW5kZXggYmFjMmI5MmI1Nzk2MWIyM2RmY2MyZTMy
ZTFmNTViMmQ1N2UzMjY0NS4uNzFjOTRlYWVjZDNlNmQzMzc5MGVhZGY3NGJlOGJkYTNmOGUzMGFk
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTFNoYWRvd0VsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MU2hhZG93RWxlbWVudC5o
CkBAIC00Miw4ICs0Miw5IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgfkhUTUxTaGFkb3dFbGVt
ZW50KCk7CiAKLSAgICBjb25zdCBBdG9taWNTdHJpbmcmIHNlbGVjdCgpIGNvbnN0OwotICAgIGJv
b2wgaXNTZWxlY3RWYWxpZCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2
aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2VsZWN0KCkgY29uc3Q7CisgICAgdmlydHVhbCBi
b29sIGlzU2VsZWN0VmFsaWQoKSBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVh
bCBjb25zdCBDU1NTZWxlY3Rvckxpc3QmIHNlbGVjdG9yTGlzdCgpIHsgcmV0dXJuIGVtcHR5U2Vs
ZWN0b3JMaXN0OyB9CiAKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIEluc2VydGlvbk5vdGlmaWNh
dGlvblJlcXVlc3QgaW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUqKSBPVkVSUklERTsKQEAgLTUy
LDYgKzUzLDggQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICBIVE1MU2hhZG93RWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKIAorICAgIHN0YXRpYyBDU1NTZWxlY3Rv
ckxpc3QgZW1wdHlTZWxlY3Rvckxpc3Q7CisKICAgICBib29sIG1fcmVnaXN0ZXJlZFdpdGhTaGFk
b3dSb290OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSW5z
ZXJ0aW9uUG9pbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0luc2VydGlvblBvaW50
LmgKaW5kZXggMjQzYTA4YzE4YTM0NjEwMzAzOTVkOWE1YmE3ZDIwNTU5YjY3MTFhOS4uMjNkYWQ4
ZGNhNzA4MTIzMTgyMWY5N2Q4YmYzMDRkNzczMzMyNzZmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvSW5zZXJ0aW9uUG9pbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9JbnNlcnRpb25Qb2ludC5oCkBAIC0zMSw2ICszMSw3IEBACiAjaWZuZGVmIElu
c2VydGlvblBvaW50X2gKICNkZWZpbmUgSW5zZXJ0aW9uUG9pbnRfaAogCisjaW5jbHVkZSAiQ1NT
U2VsZWN0b3JMaXN0LmgiCiAjaW5jbHVkZSAiQ29udGVudERpc3RyaWJ1dG9yLmgiCiAjaW5jbHVk
ZSAiRWxlbWVudFNoYWRvdy5oIgogI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCkBAIC01Myw3ICs1
NCw4IEBAIHB1YmxpYzoKICAgICBQYXNzUmVmUHRyPE5vZGVMaXN0PiBnZXREaXN0cmlidXRlZE5v
ZGVzKCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2VsZWN0KCkg
Y29uc3QgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBpc1NlbGVjdFZhbGlkKCkgY29uc3QgPSAwOwor
ICAgIHZpcnR1YWwgYm9vbCBpc1NlbGVjdFZhbGlkKCkgPSAwOworICAgIHZpcnR1YWwgY29uc3Qg
Q1NTU2VsZWN0b3JMaXN0JiBzZWxlY3Rvckxpc3QoKSA9IDA7CiAKICAgICBib29sIHJlc2V0U3R5
bGVJbmhlcml0YW5jZSgpIGNvbnN0OwogICAgIHZvaWQgc2V0UmVzZXRTdHlsZUluaGVyaXRhbmNl
KGJvb2wpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172950</attachid>
            <date>2012-11-08 01:02:54 -0800</date>
            <delta_ts>2012-11-08 01:39:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101543-20121108180103.patch</filename>
            <type>text/plain</type>
            <size>16691</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzODM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzhhY2IwY2FkOWY2ZmJm
MTk0NzJkMjdlNTlhNmIwOWIyOTRkNmVhNi4uZmQ1MDc4Nzg3Y2I4MWE1NzFkMDk0NTI1OTA3NzZl
M2I3MTYyM2IxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEyLTExLTA3ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBIVE1MQ29udGVu
dEVsZW1lbnQgc2hvdWxkIHByZXNlcnZlIHBhcnNlZCBDU1NTZWxlY3Rvckxpc3QKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTU0MworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIHdvdWxkIGxpa2UgdG8g
cHJlc2VydmUgQ1NTU2VsZWN0b3JMaXN0IGZvciBzZWxlY3QgYXR0cmlidXRlIG9mIEhUTUxDb250
ZW50RWxlbWVudC4KKworICAgICAgICBCZWZvcmUsIHdlIHBhcnNlZCBhbmQgdmFsaWRhdGVkIHNl
bGVjdCBhdHRyaWJ1dGUgZXZlcnkgdGltZSBkaXN0cmlidXRpb24gaGFwcGVucy4gSWYgd2UgcHJl
c2VydmUgdGhlIHBhcnNlZAorICAgICAgICBDU1NTZWxlY3Rvckxpc3QsIHdlIGNhbiByZWR1Y2Ug
ZGlzdHJpYnV0aW9uIHRpbWUuCisKKyAgICAgICAgVGhpcyBpcyBhbHNvIGEgcHJlcHJhdGlvbiBw
YXRjaCBmb3IgQnVnIDEwMTE4MC4gSXQgYWxzbyBuZWVkcyB0aGUgcGFyc2VkIENTU1NlbGVjdG9y
TGlzdC4gV2UgZG9uJ3Qgd2FudCB0bworICAgICAgICBwYXJzZSBhbmQgdmFsaWRhdGUgaXQgYWdh
aW4uCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBjb3ZlcmVkIGJ5IGV4aXNpbmcgdGVzdHMuCisK
KyAgICAgICAgKiBodG1sL3NoYWRvdy9Db250ZW50U2VsZWN0b3JRdWVyeS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDb250ZW50U2VsZWN0b3JRdWVyeTo6Q29udGVudFNlbGVjdG9yUXVlcnkpOiBX
ZSBkb24ndCBwYXJzZSBzZWxlY3QgYXR0cmlidXRlIGhlcmUgYW55bW9yZS4KKyAgICAgICAgaWYg
aXQncyBhbHJlYWR5IHBhcnNlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRTZWxlY3RvclF1
ZXJ5OjptYXRjaGVzKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9Db250ZW50U2VsZWN0b3JRdWVy
eS5oOgorICAgICAgICAoQ29udGVudFNlbGVjdG9yUXVlcnkpOgorICAgICAgICAqIGh0bWwvc2hh
ZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29udGVu
dEVsZW1lbnQ6OkhUTUxDb250ZW50RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29u
dGVudEVsZW1lbnQ6OmlzU2VsZWN0VmFsaWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnRl
bnRFbGVtZW50OjplbnN1cmVTZWxlY3RQYXJzZWQpOiBJZiB3ZSBkb24ndCBoYXZlIHBhcnNlZCB0
aGUgY3VycmVudCBzZWxlY3QgYXR0cmlidXRlLAorICAgICAgICB3ZSBwYXJzZSBhbmQgdmFsaWRh
dGUgaXQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29udGVudEVsZW1lbnQ6OnBhcnNlQXR0cmli
dXRlKTogV2hlbiBzZWxlY3QgYXR0cmlidXRlIGlzIGNoYW5nZWQsIHdlIGhhdmUgdG8gaGF2ZSBh
IGZsYWcgZW5hYmxlZAorICAgICAgICB0byBwYXJzZSBzZWxlY3QgYXR0cml0ZSBhZ2Fpbi4KKyAg
ICAgICAgKFdlYkNvcmU6OnZhbGlkYXRlU3ViU2VsZWN0b3IpOiBNb3ZlZCBmcm9tIENvbnRlbnRT
ZWxlY3RvclF1ZXJ5LgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjp2YWxp
ZGF0ZVNlbGVjdG9yKTogTW92ZWQgZnJvbSBDb250ZW50U2VsZWN0b3JRdWVyeS4KKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxDb250ZW50RWxlbWVudDo6dmFsaWRhdGVTZWxlY3QpOgorICAgICAgICAq
IGh0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5oOgorICAgICAgICAoSFRNTENvbnRlbnRF
bGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb250ZW50RWxlbWVudDo6c2V0U2VsZWN0
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnRlbnRFbGVt
ZW50OjpzZWxlY3Rvckxpc3QpOgorICAgICAgICAqIGh0bWwvc2hhZG93L0hUTUxTaGFkb3dFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTaGFkb3dFbGVtZW50OjplbXB0eVNlbGVj
dG9yTGlzdCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9IVE1M
U2hhZG93RWxlbWVudC5oOgorICAgICAgICAoSFRNTFNoYWRvd0VsZW1lbnQpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTFNoYWRvd0VsZW1lbnQ6OnNlbGVjdG9yTGlzdCk6CisgICAgICAgICogaHRt
bC9zaGFkb3cvSW5zZXJ0aW9uUG9pbnQuaDoKKyAgICAgICAgKEluc2VydGlvblBvaW50KToKKwog
MjAxMi0xMS0wNyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFtW
OF0gSW50cnVzaXZlRE9NV3JhcHBlck1hcCBzaG91bGQgYmUgdXNhYmxlIGZvciBtb3JlIHRoYW4g
anVzdCBOb2RlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVu
dFNlbGVjdG9yUXVlcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVudFNl
bGVjdG9yUXVlcnkuY3BwCmluZGV4IDBhNmVjMzJlZWU1ZmQwMGI4ZTk1YjQzM2VkZGY5NDk3MzZi
MTRlZWEuLmRiZTVhOGU5NTYyZjY4ZmE2YTA3ZjNjMzM5NzBmYTg1ZjNiODZiYjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Db250ZW50U2VsZWN0b3JRdWVyeS5jcHAK
QEAgLTI3LDcgKzI3LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJDb250ZW50
U2VsZWN0b3JRdWVyeS5oIgogCi0jaW5jbHVkZSAiQ1NTUGFyc2VyLmgiCiAjaW5jbHVkZSAiQ1NT
U2VsZWN0b3JMaXN0LmgiCiAjaW5jbHVkZSAiSW5zZXJ0aW9uUG9pbnQuaCIKICNpbmNsdWRlICJT
ZWxlY3RvckNoZWNrZXIuaCIKQEAgLTY1LDI2ICs2NCwxMiBAQCBib29sIENvbnRlbnRTZWxlY3Rv
ckRhdGFMaXN0OjptYXRjaGVzKGNvbnN0IENvbnRlbnRTZWxlY3RvckNoZWNrZXImIHNlbGVjdG9y
Q2hlYwogICAgIHJldHVybiBmYWxzZTsKIH0KIAotQ29udGVudFNlbGVjdG9yUXVlcnk6OkNvbnRl
bnRTZWxlY3RvclF1ZXJ5KGNvbnN0IEluc2VydGlvblBvaW50KiBpbnNlcnRpb25Qb2ludCkKK0Nv
bnRlbnRTZWxlY3RvclF1ZXJ5OjpDb250ZW50U2VsZWN0b3JRdWVyeShJbnNlcnRpb25Qb2ludCog
aW5zZXJ0aW9uUG9pbnQpCiAgICAgOiBtX2luc2VydGlvblBvaW50KGluc2VydGlvblBvaW50KQog
ICAgICwgbV9zZWxlY3RvckNoZWNrZXIoaW5zZXJ0aW9uUG9pbnQtPmRvY3VtZW50KCksICFpbnNl
cnRpb25Qb2ludC0+ZG9jdW1lbnQoKS0+aW5RdWlya3NNb2RlKCkpCiB7Ci0gICAgaWYgKGluc2Vy
dGlvblBvaW50LT5zZWxlY3QoKS5pc051bGwoKSB8fCBpbnNlcnRpb25Qb2ludC0+c2VsZWN0KCku
aXNFbXB0eSgpKSB7Ci0gICAgICAgIG1faXNWYWxpZFNlbGVjdG9yID0gdHJ1ZTsKLSAgICAgICAg
cmV0dXJuOwotICAgIH0KLQotICAgIENTU1BhcnNlciBwYXJzZXIoaW5zZXJ0aW9uUG9pbnQtPmRv
Y3VtZW50KCkpOwotICAgIHBhcnNlci5wYXJzZVNlbGVjdG9yKGluc2VydGlvblBvaW50LT5zZWxl
Y3QoKSwgbV9zZWxlY3Rvckxpc3QpOwotCi0gICAgbV9pc1ZhbGlkU2VsZWN0b3IgPSBDb250ZW50
U2VsZWN0b3JRdWVyeTo6dmFsaWRhdGVTZWxlY3Rvckxpc3QoKTsKLSAgICBpZiAobV9pc1ZhbGlk
U2VsZWN0b3IpCi0gICAgICAgIG1fc2VsZWN0b3JzLmluaXRpYWxpemUobV9zZWxlY3Rvckxpc3Qp
OwotfQotCi1ib29sIENvbnRlbnRTZWxlY3RvclF1ZXJ5Ojppc1ZhbGlkU2VsZWN0b3IoKSBjb25z
dAotewotICAgIHJldHVybiBtX2lzVmFsaWRTZWxlY3RvcjsKKyAgICBpZiAoaW5zZXJ0aW9uUG9p
bnQtPmlzU2VsZWN0VmFsaWQoKSkKKyAgICAgICAgbV9zZWxlY3RvcnMuaW5pdGlhbGl6ZShpbnNl
cnRpb25Qb2ludC0+c2VsZWN0b3JMaXN0KCkpOwogfQogCiBib29sIENvbnRlbnRTZWxlY3RvclF1
ZXJ5OjptYXRjaGVzKGNvbnN0IFZlY3RvcjxSZWZQdHI8Tm9kZT4gPiYgc2libGluZ3MsIGludCBu
dGgpIGNvbnN0CkBAIC05NSw3ICs4MCw3IEBAIGJvb2wgQ29udGVudFNlbGVjdG9yUXVlcnk6Om1h
dGNoZXMoY29uc3QgVmVjdG9yPFJlZlB0cjxOb2RlPiA+JiBzaWJsaW5ncywgaW50IG50CiAgICAg
aWYgKG1faW5zZXJ0aW9uUG9pbnQtPnNlbGVjdCgpLmlzTnVsbCgpIHx8IG1faW5zZXJ0aW9uUG9p
bnQtPnNlbGVjdCgpLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBpZiAo
IW1faXNWYWxpZFNlbGVjdG9yKQorICAgIGlmICghbV9pbnNlcnRpb25Qb2ludC0+aXNTZWxlY3RW
YWxpZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoIW5vZGUtPmlzRWxlbWVu
dE5vZGUoKSkKQEAgLTEwNCw4NSArODksNCBAQCBib29sIENvbnRlbnRTZWxlY3RvclF1ZXJ5Ojpt
YXRjaGVzKGNvbnN0IFZlY3RvcjxSZWZQdHI8Tm9kZT4gPiYgc2libGluZ3MsIGludCBudAogICAg
IHJldHVybiBtX3NlbGVjdG9ycy5tYXRjaGVzKG1fc2VsZWN0b3JDaGVja2VyLCBzaWJsaW5ncywg
bnRoKTsKIH0KIAotc3RhdGljIGJvb2wgdmFsaWRhdGVTdWJTZWxlY3RvcihDU1NTZWxlY3Rvciog
c2VsZWN0b3IpCi17Ci0gICAgc3dpdGNoIChzZWxlY3Rvci0+bV9tYXRjaCkgewotICAgIGNhc2Ug
Q1NTU2VsZWN0b3I6Ok5vbmU6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6SWQ6Ci0gICAgY2FzZSBD
U1NTZWxlY3Rvcjo6Q2xhc3M6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6RXhhY3Q6Ci0gICAgY2Fz
ZSBDU1NTZWxlY3Rvcjo6U2V0OgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6Okxpc3Q6Ci0gICAgY2Fz
ZSBDU1NTZWxlY3Rvcjo6SHlwaGVuOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OkNvbnRhaW46Ci0g
ICAgY2FzZSBDU1NTZWxlY3Rvcjo6QmVnaW46Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6RW5kOgot
ICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50
OgotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UGFnZVBzZXVk
b0NsYXNzOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzOgotICAgICAgICBicmVh
azsKLSAgICB9Ci0KLSAgICBzd2l0Y2ggKHNlbGVjdG9yLT5wc2V1ZG9UeXBlKCkpIHsKLSAgICBj
YXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9FbXB0eToKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1
ZG9MaW5rOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1Zpc2l0ZWQ6Ci0gICAgY2FzZSBD
U1NTZWxlY3Rvcjo6UHNldWRvVGFyZ2V0OgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0Vu
YWJsZWQ6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRGlzYWJsZWQ6Ci0gICAgY2FzZSBD
U1NTZWxlY3Rvcjo6UHNldWRvQ2hlY2tlZDoKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9J
bmRldGVybWluYXRlOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb050aENoaWxkOgotICAg
IGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb050aExhc3RDaGlsZDoKLSAgICBjYXNlIENTU1NlbGVj
dG9yOjpQc2V1ZG9OdGhPZlR5cGU6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTnRoTGFz
dE9mVHlwZToKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9GaXJzdENoaWxkOgotICAgIGNh
c2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0xhc3RDaGlsZDoKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQ
c2V1ZG9GaXJzdE9mVHlwZToKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9MYXN0T2ZUeXBl
OgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb09ubHlPZlR5cGU6Ci0gICAgICAgIHJldHVy
biB0cnVlOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci19Ci0K
LXN0YXRpYyBib29sIHZhbGlkYXRlU2VsZWN0b3IoQ1NTU2VsZWN0b3IqIHNlbGVjdG9yKQotewot
ICAgIEFTU0VSVChzZWxlY3Rvcik7Ci0KLSAgICBpZiAoIXZhbGlkYXRlU3ViU2VsZWN0b3Ioc2Vs
ZWN0b3IpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBDU1NTZWxlY3RvciogcHJldlN1
YlNlbGVjdG9yID0gc2VsZWN0b3I7Ci0gICAgQ1NTU2VsZWN0b3IqIHN1YlNlbGVjdG9yID0gc2Vs
ZWN0b3ItPnRhZ0hpc3RvcnkoKTsKLQotICAgIHdoaWxlIChzdWJTZWxlY3RvcikgewotICAgICAg
ICBpZiAocHJldlN1YlNlbGVjdG9yLT5yZWxhdGlvbigpICE9IENTU1NlbGVjdG9yOjpTdWJTZWxl
Y3RvcikKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgaWYgKCF2YWxpZGF0ZVN1
YlNlbGVjdG9yKHN1YlNlbGVjdG9yKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAg
ICAgICBwcmV2U3ViU2VsZWN0b3IgPSBzdWJTZWxlY3RvcjsKLSAgICAgICAgc3ViU2VsZWN0b3Ig
PSBzdWJTZWxlY3Rvci0+dGFnSGlzdG9yeSgpOwotICAgIH0KLQotICAgIHJldHVybiB0cnVlOwot
fQotCi1ib29sIENvbnRlbnRTZWxlY3RvclF1ZXJ5Ojp2YWxpZGF0ZVNlbGVjdG9yTGlzdCgpCi17
Ci0gICAgaWYgKCFtX3NlbGVjdG9yTGlzdC5maXJzdCgpKQotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0KLSAgICBmb3IgKENTU1NlbGVjdG9yKiBzZWxlY3RvciA9IG1fc2VsZWN0b3JMaXN0LmZpcnN0
KCk7IHNlbGVjdG9yOyBzZWxlY3RvciA9IG1fc2VsZWN0b3JMaXN0Lm5leHQoc2VsZWN0b3IpKSB7
Ci0gICAgICAgIGlmICghdmFsaWRhdGVTZWxlY3RvcihzZWxlY3RvcikpCi0gICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Db250ZW50U2VsZWN0b3JRdWVyeS5oCmluZGV4IDJj
NzEwYTU4NTJlOTJkNzY4ODJjN2MyMDc1MGJmZDI2ZGEyYWEwM2IuLjc4YTA4MjQ1NGM5ZDEyZjJi
MGYzYzU1MDRhOGI5MGFiZTllMWViZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvQ29udGVudFNlbGVjdG9yUXVlcnkuaApAQCAtNjQsMTggKzY0LDE0IEBAIHByaXZhdGU6
CiBjbGFzcyBDb250ZW50U2VsZWN0b3JRdWVyeSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUo
Q29udGVudFNlbGVjdG9yUXVlcnkpOwogcHVibGljOgotICAgIGV4cGxpY2l0IENvbnRlbnRTZWxl
Y3RvclF1ZXJ5KGNvbnN0IEluc2VydGlvblBvaW50Kik7CisgICAgZXhwbGljaXQgQ29udGVudFNl
bGVjdG9yUXVlcnkoSW5zZXJ0aW9uUG9pbnQqKTsKIAotICAgIGJvb2wgaXNWYWxpZFNlbGVjdG9y
KCkgY29uc3Q7CiAgICAgYm9vbCBtYXRjaGVzKGNvbnN0IFZlY3RvcjxSZWZQdHI8Tm9kZT4gPiYg
c2libGluZ3MsIGludCBudGhOb2RlKSBjb25zdDsKIHByaXZhdGU6Ci0gICAgYm9vbCB2YWxpZGF0
ZVNlbGVjdG9yTGlzdCgpOwogCi0gICAgY29uc3QgSW5zZXJ0aW9uUG9pbnQqIG1faW5zZXJ0aW9u
UG9pbnQ7CisgICAgSW5zZXJ0aW9uUG9pbnQqIG1faW5zZXJ0aW9uUG9pbnQ7CiAgICAgQ29udGVu
dFNlbGVjdG9yRGF0YUxpc3QgbV9zZWxlY3RvcnM7Ci0gICAgQ1NTU2VsZWN0b3JMaXN0IG1fc2Vs
ZWN0b3JMaXN0OwogICAgIENvbnRlbnRTZWxlY3RvckNoZWNrZXIgbV9zZWxlY3RvckNoZWNrZXI7
Ci0gICAgYm9vbCBtX2lzVmFsaWRTZWxlY3RvcjsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuY3BwCmluZGV4IDUwNDBlOWViOGQ2
MDYyNzU2ZWVhZjliZTQ0Mzc0ZDY2YTVlMTI1ZTAuLjI3Y2FiNWIxZjc5NzAyMjI1NDQwNDc0Zjcy
N2YwYWY5NDVlYWU0YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hU
TUxDb250ZW50RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRN
TENvbnRlbnRFbGVtZW50LmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIkhUTUxDb250ZW50RWxlbWVudC5oIgogCisjaW5jbHVkZSAiQ1NTUGFyc2Vy
LmgiCiAjaW5jbHVkZSAiQ29udGVudERpc3RyaWJ1dG9yLmgiCiAjaW5jbHVkZSAiQ29udGVudFNl
bGVjdG9yUXVlcnkuaCIKICNpbmNsdWRlICJDb250ZXh0RmVhdHVyZXMuaCIKQEAgLTY1LDYgKzY2
LDggQEAgUGFzc1JlZlB0cjxIVE1MQ29udGVudEVsZW1lbnQ+IEhUTUxDb250ZW50RWxlbWVudDo6
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHQKIEhUTUxDb250ZW50RWxlbWVudDo6SFRNTENv
bnRlbnRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIERvY3VtZW50KiBkb2N1bWVu
dCkKICAgICA6IEluc2VydGlvblBvaW50KG5hbWUsIGRvY3VtZW50KQogICAgICwgbV9yZWdpc3Rl
cmVkV2l0aFNoYWRvd1Jvb3QoZmFsc2UpCisgICAgLCBtX3Nob3VsZFBhcnNlU2VsZWN0b3JMaXN0
KGZhbHNlKQorICAgICwgbV9pc1ZhbGlkU2VsZWN0b3IodHJ1ZSkKIHsKIH0KIApAQCAtNzcsMTUg
KzgwLDIzIEBAIGNvbnN0IEF0b21pY1N0cmluZyYgSFRNTENvbnRlbnRFbGVtZW50OjpzZWxlY3Qo
KSBjb25zdAogICAgIHJldHVybiBnZXRBdHRyaWJ1dGUoc2VsZWN0QXR0cik7CiB9CiAKLWJvb2wg
SFRNTENvbnRlbnRFbGVtZW50Ojppc1NlbGVjdFZhbGlkKCkgY29uc3QKK2Jvb2wgSFRNTENvbnRl
bnRFbGVtZW50Ojppc1NlbGVjdFZhbGlkKCkKIHsKLSAgICBDb250ZW50U2VsZWN0b3JRdWVyeSBx
dWVyeSh0aGlzKTsKLSAgICByZXR1cm4gcXVlcnkuaXNWYWxpZFNlbGVjdG9yKCk7CisgICAgZW5z
dXJlU2VsZWN0UGFyc2VkKCk7CisgICAgcmV0dXJuIG1faXNWYWxpZFNlbGVjdG9yOwogfQogCi12
b2lkIEhUTUxDb250ZW50RWxlbWVudDo6c2V0U2VsZWN0KGNvbnN0IEF0b21pY1N0cmluZyYgc2Vs
ZWN0VmFsdWUpCitpbmxpbmUgdm9pZCBIVE1MQ29udGVudEVsZW1lbnQ6OmVuc3VyZVNlbGVjdFBh
cnNlZCgpCiB7Ci0gICAgc2V0QXR0cmlidXRlKHNlbGVjdEF0dHIsIHNlbGVjdFZhbHVlKTsKKyAg
ICBpZiAoIW1fc2hvdWxkUGFyc2VTZWxlY3Rvckxpc3QpCisgICAgICAgIHJldHVybjsKKworICAg
IENTU1BhcnNlciBwYXJzZXIoZG9jdW1lbnQoKSk7CisgICAgcGFyc2VyLnBhcnNlU2VsZWN0b3Io
c2VsZWN0KCksIG1fc2VsZWN0b3JMaXN0KTsKKyAgICBtX3Nob3VsZFBhcnNlU2VsZWN0b3JMaXN0
ID0gZmFsc2U7CisgICAgbV9pc1ZhbGlkU2VsZWN0b3IgPSB2YWxpZGF0ZVNlbGVjdCgpOworICAg
IGlmICghbV9pc1ZhbGlkU2VsZWN0b3IpCisgICAgICAgIG1fc2VsZWN0b3JMaXN0ID0gQ1NTU2Vs
ZWN0b3JMaXN0KCk7CiB9CiAKIHZvaWQgSFRNTENvbnRlbnRFbGVtZW50OjpwYXJzZUF0dHJpYnV0
ZShjb25zdCBBdHRyaWJ1dGUmIGF0dHJpYnV0ZSkKQEAgLTkzLDYgKzEwNCw3IEBAIHZvaWQgSFRN
TENvbnRlbnRFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUmIGF0dHJpYnV0
ZSkKICAgICBpZiAoYXR0cmlidXRlLm5hbWUoKSA9PSBzZWxlY3RBdHRyKSB7CiAgICAgICAgIGlm
IChTaGFkb3dSb290KiByb290ID0gc2hhZG93Um9vdCgpKQogICAgICAgICAgICAgcm9vdC0+b3du
ZXIoKS0+aW52YWxpZGF0ZURpc3RyaWJ1dGlvbigpOworICAgICAgICBtX3Nob3VsZFBhcnNlU2Vs
ZWN0b3JMaXN0ID0gdHJ1ZTsKICAgICB9IGVsc2UKICAgICAgICAgSW5zZXJ0aW9uUG9pbnQ6OnBh
cnNlQXR0cmlidXRlKGF0dHJpYnV0ZSk7CiB9CkBAIC0xMjIsNCArMTM0LDkxIEBAIHZvaWQgSFRN
TENvbnRlbnRFbGVtZW50OjpyZW1vdmVkRnJvbShDb250YWluZXJOb2RlKiBpbnNlcnRpb25Qb2lu
dCkKICAgICBJbnNlcnRpb25Qb2ludDo6cmVtb3ZlZEZyb20oaW5zZXJ0aW9uUG9pbnQpOwogfQog
CitzdGF0aWMgYm9vbCB2YWxpZGF0ZVN1YlNlbGVjdG9yKENTU1NlbGVjdG9yKiBzZWxlY3RvcikK
K3sKKyAgICBzd2l0Y2ggKHNlbGVjdG9yLT5tX21hdGNoKSB7CisgICAgY2FzZSBDU1NTZWxlY3Rv
cjo6Tm9uZToKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpJZDoKKyAgICBjYXNlIENTU1NlbGVjdG9y
OjpDbGFzczoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpFeGFjdDoKKyAgICBjYXNlIENTU1NlbGVj
dG9yOjpTZXQ6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6TGlzdDoKKyAgICBjYXNlIENTU1NlbGVj
dG9yOjpIeXBoZW46CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6Q29udGFpbjoKKyAgICBjYXNlIENT
U1NlbGVjdG9yOjpCZWdpbjoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpFbmQ6CisgICAgICAgIHJl
dHVybiB0cnVlOworICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1lbnQ6CisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQYWdlUHNldWRvQ2xhc3M6Cisg
ICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3M6CisgICAgICAgIGJyZWFrOworICAgIH0K
KworICAgIHN3aXRjaCAoc2VsZWN0b3ItPnBzZXVkb1R5cGUoKSkgeworICAgIGNhc2UgQ1NTU2Vs
ZWN0b3I6OlBzZXVkb0VtcHR5OgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0xpbms6Cisg
ICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvVmlzaXRlZDoKKyAgICBjYXNlIENTU1NlbGVjdG9y
OjpQc2V1ZG9UYXJnZXQ6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRW5hYmxlZDoKKyAg
ICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9EaXNhYmxlZDoKKyAgICBjYXNlIENTU1NlbGVjdG9y
OjpQc2V1ZG9DaGVja2VkOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0luZGV0ZXJtaW5h
dGU6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTnRoQ2hpbGQ6CisgICAgY2FzZSBDU1NT
ZWxlY3Rvcjo6UHNldWRvTnRoTGFzdENoaWxkOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVk
b050aE9mVHlwZToKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9OdGhMYXN0T2ZUeXBlOgor
ICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0ZpcnN0Q2hpbGQ6CisgICAgY2FzZSBDU1NTZWxl
Y3Rvcjo6UHNldWRvTGFzdENoaWxkOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0ZpcnN0
T2ZUeXBlOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0xhc3RPZlR5cGU6CisgICAgY2Fz
ZSBDU1NTZWxlY3Rvcjo6UHNldWRvT25seU9mVHlwZToKKyAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK30KKworc3RhdGljIGJv
b2wgdmFsaWRhdGVTZWxlY3RvcihDU1NTZWxlY3Rvciogc2VsZWN0b3IpCit7CisgICAgQVNTRVJU
KHNlbGVjdG9yKTsKKworICAgIGlmICghdmFsaWRhdGVTdWJTZWxlY3RvcihzZWxlY3RvcikpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIENTU1NlbGVjdG9yKiBwcmV2U3ViU2VsZWN0b3Ig
PSBzZWxlY3RvcjsKKyAgICBDU1NTZWxlY3Rvciogc3ViU2VsZWN0b3IgPSBzZWxlY3Rvci0+dGFn
SGlzdG9yeSgpOworCisgICAgd2hpbGUgKHN1YlNlbGVjdG9yKSB7CisgICAgICAgIGlmIChwcmV2
U3ViU2VsZWN0b3ItPnJlbGF0aW9uKCkgIT0gQ1NTU2VsZWN0b3I6OlN1YlNlbGVjdG9yKQorICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoIXZhbGlkYXRlU3ViU2VsZWN0b3Io
c3ViU2VsZWN0b3IpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIHByZXZT
dWJTZWxlY3RvciA9IHN1YlNlbGVjdG9yOworICAgICAgICBzdWJTZWxlY3RvciA9IHN1YlNlbGVj
dG9yLT50YWdIaXN0b3J5KCk7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wg
SFRNTENvbnRlbnRFbGVtZW50Ojp2YWxpZGF0ZVNlbGVjdCgpIGNvbnN0Cit7CisgICAgQVNTRVJU
KCFtX3Nob3VsZFBhcnNlU2VsZWN0b3JMaXN0KTsKKworICAgIGlmIChzZWxlY3QoKS5pc051bGwo
KSB8fCBzZWxlY3QoKS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgaWYg
KCFtX3NlbGVjdG9yTGlzdC5maXJzdCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBm
b3IgKENTU1NlbGVjdG9yKiBzZWxlY3RvciA9IG1fc2VsZWN0b3JMaXN0LmZpcnN0KCk7IHNlbGVj
dG9yOyBzZWxlY3RvciA9IG1fc2VsZWN0b3JMaXN0Lm5leHQoc2VsZWN0b3IpKSB7CisgICAgICAg
IGlmICghdmFsaWRhdGVTZWxlY3RvcihzZWxlY3RvcikpCisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKKwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuaAppbmRleCAyYTNhMzJjZWE1NTky
OWU4N2NlNzFiYWM3M2I3ODY0Yzc5MGYwZmY2Li4wNDI1NGUxMmIyMjNiYzAzOTAzZWQzNDJjYmFl
YmYxN2RlOWYyMDE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1M
Q29udGVudEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29u
dGVudEVsZW1lbnQuaApAQCAtMzEsNiArMzEsNyBAQAogI2lmbmRlZiBIVE1MQ29udGVudEVsZW1l
bnRfaAogI2RlZmluZSBIVE1MQ29udGVudEVsZW1lbnRfaAogCisjaW5jbHVkZSAiQ1NTU2VsZWN0
b3JMaXN0LmgiCiAjaW5jbHVkZSAiSW5zZXJ0aW9uUG9pbnQuaCIKICNpbmNsdWRlIDx3dGYvRm9y
d2FyZC5oPgogCkBAIC00NCw5ICs0NSwxMCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIH5IVE1M
Q29udGVudEVsZW1lbnQoKTsKIAotICAgIGNvbnN0IEF0b21pY1N0cmluZyYgc2VsZWN0KCkgY29u
c3Q7CiAgICAgdm9pZCBzZXRTZWxlY3QoY29uc3QgQXRvbWljU3RyaW5nJik7Ci0gICAgdmlydHVh
bCBib29sIGlzU2VsZWN0VmFsaWQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0
cmluZyYgc2VsZWN0KCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIGlzU2VsZWN0VmFsaWQoKTsK
KyAgICB2aXJ0dWFsIGNvbnN0IENTU1NlbGVjdG9yTGlzdCYgc2VsZWN0b3JMaXN0KCk7CiAKIHBy
b3RlY3RlZDoKICAgICBIVE1MQ29udGVudEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50Kik7CkBAIC01NiwxMCArNTgsMjggQEAgcHJvdGVjdGVkOgogCiBwcml2YXRlOgogICAg
IHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUmKSBPVkVSUklERTsK
KyAgICB2b2lkIGVuc3VyZVNlbGVjdFBhcnNlZCgpOworICAgIGJvb2wgdmFsaWRhdGVTZWxlY3Qo
KSBjb25zdDsKIAogICAgIGJvb2wgbV9yZWdpc3RlcmVkV2l0aFNoYWRvd1Jvb3Q7CisKKyAgICBi
b29sIG1fc2hvdWxkUGFyc2VTZWxlY3Rvckxpc3Q7CisgICAgYm9vbCBtX2lzVmFsaWRTZWxlY3Rv
cjsKKyAgICBDU1NTZWxlY3Rvckxpc3QgbV9zZWxlY3Rvckxpc3Q7CiB9OwogCitpbmxpbmUgdm9p
ZCBIVE1MQ29udGVudEVsZW1lbnQ6OnNldFNlbGVjdChjb25zdCBBdG9taWNTdHJpbmcmIHNlbGVj
dFZhbHVlKQoreworICAgIHNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OnNlbGVjdEF0dHIsIHNlbGVj
dFZhbHVlKTsKKyAgICBtX3Nob3VsZFBhcnNlU2VsZWN0b3JMaXN0ID0gdHJ1ZTsKK30KKworaW5s
aW5lIGNvbnN0IENTU1NlbGVjdG9yTGlzdCYgSFRNTENvbnRlbnRFbGVtZW50OjpzZWxlY3Rvckxp
c3QoKQoreworICAgIGVuc3VyZVNlbGVjdFBhcnNlZCgpOworICAgIHJldHVybiBtX3NlbGVjdG9y
TGlzdDsKK30KKwogaW5saW5lIGJvb2wgaXNIVE1MQ29udGVudEVsZW1lbnQoY29uc3QgTm9kZSog
bm9kZSkKIHsKICAgICBBU1NFUlQobm9kZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9IVE1MU2hhZG93RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9IVE1MU2hhZG93RWxlbWVudC5jcHAKaW5kZXggN2Q3ZTQxNTI5ZmJkZjE2ZjEzMDQwOGVl
MjMyZjE5OGI4MjgzNTI2NC4uZGExOGJhOGVhZTVlNGIyNGZlNWFmYzY2NDk3OWU2YjJkNWE1OTY0
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTFNoYWRvd0VsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxTaGFkb3dFbGVtZW50
LmNwcApAQCAtODcsNCArODcsMTAgQEAgdm9pZCBIVE1MU2hhZG93RWxlbWVudDo6cmVtb3ZlZEZy
b20oQ29udGFpbmVyTm9kZSogaW5zZXJ0aW9uUG9pbnQpCiAgICAgSW5zZXJ0aW9uUG9pbnQ6OnJl
bW92ZWRGcm9tKGluc2VydGlvblBvaW50KTsKIH0KIAorY29uc3QgQ1NTU2VsZWN0b3JMaXN0JiBI
VE1MU2hhZG93RWxlbWVudDo6ZW1wdHlTZWxlY3Rvckxpc3QoKQoreworICAgIERFRklORV9TVEFU
SUNfTE9DQUwoQ1NTU2VsZWN0b3JMaXN0LCBzZWxlY3Rvckxpc3QsIChDU1NTZWxlY3Rvckxpc3Qo
KSkpOworICAgIHJldHVybiBzZWxlY3Rvckxpc3Q7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxTaGFkb3dFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MU2hhZG93RWxlbWVudC5oCmlu
ZGV4IGJhYzJiOTJiNTc5NjFiMjNkZmNjMmUzMmUxZjU1YjJkNTdlMzI2NDUuLjg3MDU5ODk2Zjc3
ZDIwMjNjMGYyYWYxYzY4ODQzNzMzZGYxNzEzZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L0hUTUxTaGFkb3dFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvSFRNTFNoYWRvd0VsZW1lbnQuaApAQCAtNDIsOCArNDIsOSBAQCBwdWJsaWM6CiAK
ICAgICB2aXJ0dWFsIH5IVE1MU2hhZG93RWxlbWVudCgpOwogCi0gICAgY29uc3QgQXRvbWljU3Ry
aW5nJiBzZWxlY3QoKSBjb25zdDsKLSAgICBib29sIGlzU2VsZWN0VmFsaWQoKSBjb25zdCBPVkVS
UklERSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNl
bGVjdCgpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBpc1NlbGVjdFZhbGlkKCkgT1ZFUlJJREUg
eyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgY29uc3QgQ1NTU2VsZWN0b3JMaXN0JiBzZWxl
Y3Rvckxpc3QoKSB7IHJldHVybiBlbXB0eVNlbGVjdG9yTGlzdCgpOyB9CiAKIHByb3RlY3RlZDoK
ICAgICB2aXJ0dWFsIEluc2VydGlvbk5vdGlmaWNhdGlvblJlcXVlc3QgaW5zZXJ0ZWRJbnRvKENv
bnRhaW5lck5vZGUqKSBPVkVSUklERTsKQEAgLTUyLDYgKzUzLDggQEAgcHJvdGVjdGVkOgogcHJp
dmF0ZToKICAgICBIVE1MU2hhZG93RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQqKTsKIAorICAgIHN0YXRpYyBjb25zdCBDU1NTZWxlY3Rvckxpc3QmIGVtcHR5U2VsZWN0b3JM
aXN0KCk7CisKICAgICBib29sIG1fcmVnaXN0ZXJlZFdpdGhTaGFkb3dSb290OwogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSW5zZXJ0aW9uUG9pbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0luc2VydGlvblBvaW50LmgKaW5kZXggMjQzYTA4YzE4
YTM0NjEwMzAzOTVkOWE1YmE3ZDIwNTU5YjY3MTFhOS4uMjNkYWQ4ZGNhNzA4MTIzMTgyMWY5N2Q4
YmYzMDRkNzczMzMyNzZmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
SW5zZXJ0aW9uUG9pbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9JbnNlcnRp
b25Qb2ludC5oCkBAIC0zMSw2ICszMSw3IEBACiAjaWZuZGVmIEluc2VydGlvblBvaW50X2gKICNk
ZWZpbmUgSW5zZXJ0aW9uUG9pbnRfaAogCisjaW5jbHVkZSAiQ1NTU2VsZWN0b3JMaXN0LmgiCiAj
aW5jbHVkZSAiQ29udGVudERpc3RyaWJ1dG9yLmgiCiAjaW5jbHVkZSAiRWxlbWVudFNoYWRvdy5o
IgogI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCkBAIC01Myw3ICs1NCw4IEBAIHB1YmxpYzoKICAg
ICBQYXNzUmVmUHRyPE5vZGVMaXN0PiBnZXREaXN0cmlidXRlZE5vZGVzKCkgY29uc3Q7CiAKICAg
ICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2VsZWN0KCkgY29uc3QgPSAwOwotICAgIHZp
cnR1YWwgYm9vbCBpc1NlbGVjdFZhbGlkKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgYm9vbCBp
c1NlbGVjdFZhbGlkKCkgPSAwOworICAgIHZpcnR1YWwgY29uc3QgQ1NTU2VsZWN0b3JMaXN0JiBz
ZWxlY3Rvckxpc3QoKSA9IDA7CiAKICAgICBib29sIHJlc2V0U3R5bGVJbmhlcml0YW5jZSgpIGNv
bnN0OwogICAgIHZvaWQgc2V0UmVzZXRTdHlsZUluaGVyaXRhbmNlKGJvb2wpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172959</attachid>
            <date>2012-11-08 01:39:57 -0800</date>
            <delta_ts>2012-11-08 18:31:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101543-20121108183807.patch</filename>
            <type>text/plain</type>
            <size>16684</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzODM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzhhY2IwY2FkOWY2ZmJm
MTk0NzJkMjdlNTlhNmIwOWIyOTRkNmVhNi4uZmQ1MDc4Nzg3Y2I4MWE1NzFkMDk0NTI1OTA3NzZl
M2I3MTYyM2IxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEyLTExLTA3ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBIVE1MQ29udGVu
dEVsZW1lbnQgc2hvdWxkIHByZXNlcnZlIHBhcnNlZCBDU1NTZWxlY3Rvckxpc3QKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTU0MworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIHdvdWxkIGxpa2UgdG8g
cHJlc2VydmUgQ1NTU2VsZWN0b3JMaXN0IGZvciBzZWxlY3QgYXR0cmlidXRlIG9mIEhUTUxDb250
ZW50RWxlbWVudC4KKworICAgICAgICBCZWZvcmUsIHdlIHBhcnNlZCBhbmQgdmFsaWRhdGVkIHNl
bGVjdCBhdHRyaWJ1dGUgZXZlcnkgdGltZSBkaXN0cmlidXRpb24gaGFwcGVucy4gSWYgd2UgcHJl
c2VydmUgdGhlIHBhcnNlZAorICAgICAgICBDU1NTZWxlY3Rvckxpc3QsIHdlIGNhbiByZWR1Y2Ug
ZGlzdHJpYnV0aW9uIHRpbWUuCisKKyAgICAgICAgVGhpcyBpcyBhbHNvIGEgcHJlcHJhdGlvbiBw
YXRjaCBmb3IgQnVnIDEwMTE4MC4gSXQgYWxzbyBuZWVkcyB0aGUgcGFyc2VkIENTU1NlbGVjdG9y
TGlzdC4gV2UgZG9uJ3Qgd2FudCB0bworICAgICAgICBwYXJzZSBhbmQgdmFsaWRhdGUgaXQgYWdh
aW4uCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBjb3ZlcmVkIGJ5IGV4aXNpbmcgdGVzdHMuCisK
KyAgICAgICAgKiBodG1sL3NoYWRvdy9Db250ZW50U2VsZWN0b3JRdWVyeS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDb250ZW50U2VsZWN0b3JRdWVyeTo6Q29udGVudFNlbGVjdG9yUXVlcnkpOiBX
ZSBkb24ndCBwYXJzZSBzZWxlY3QgYXR0cmlidXRlIGhlcmUgYW55bW9yZS4KKyAgICAgICAgaWYg
aXQncyBhbHJlYWR5IHBhcnNlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRTZWxlY3RvclF1
ZXJ5OjptYXRjaGVzKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9Db250ZW50U2VsZWN0b3JRdWVy
eS5oOgorICAgICAgICAoQ29udGVudFNlbGVjdG9yUXVlcnkpOgorICAgICAgICAqIGh0bWwvc2hh
ZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29udGVu
dEVsZW1lbnQ6OkhUTUxDb250ZW50RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29u
dGVudEVsZW1lbnQ6OmlzU2VsZWN0VmFsaWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnRl
bnRFbGVtZW50OjplbnN1cmVTZWxlY3RQYXJzZWQpOiBJZiB3ZSBkb24ndCBoYXZlIHBhcnNlZCB0
aGUgY3VycmVudCBzZWxlY3QgYXR0cmlidXRlLAorICAgICAgICB3ZSBwYXJzZSBhbmQgdmFsaWRh
dGUgaXQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29udGVudEVsZW1lbnQ6OnBhcnNlQXR0cmli
dXRlKTogV2hlbiBzZWxlY3QgYXR0cmlidXRlIGlzIGNoYW5nZWQsIHdlIGhhdmUgdG8gaGF2ZSBh
IGZsYWcgZW5hYmxlZAorICAgICAgICB0byBwYXJzZSBzZWxlY3QgYXR0cml0ZSBhZ2Fpbi4KKyAg
ICAgICAgKFdlYkNvcmU6OnZhbGlkYXRlU3ViU2VsZWN0b3IpOiBNb3ZlZCBmcm9tIENvbnRlbnRT
ZWxlY3RvclF1ZXJ5LgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjp2YWxp
ZGF0ZVNlbGVjdG9yKTogTW92ZWQgZnJvbSBDb250ZW50U2VsZWN0b3JRdWVyeS4KKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxDb250ZW50RWxlbWVudDo6dmFsaWRhdGVTZWxlY3QpOgorICAgICAgICAq
IGh0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5oOgorICAgICAgICAoSFRNTENvbnRlbnRF
bGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb250ZW50RWxlbWVudDo6c2V0U2VsZWN0
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnRlbnRFbGVt
ZW50OjpzZWxlY3Rvckxpc3QpOgorICAgICAgICAqIGh0bWwvc2hhZG93L0hUTUxTaGFkb3dFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTaGFkb3dFbGVtZW50OjplbXB0eVNlbGVj
dG9yTGlzdCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9IVE1M
U2hhZG93RWxlbWVudC5oOgorICAgICAgICAoSFRNTFNoYWRvd0VsZW1lbnQpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTFNoYWRvd0VsZW1lbnQ6OnNlbGVjdG9yTGlzdCk6CisgICAgICAgICogaHRt
bC9zaGFkb3cvSW5zZXJ0aW9uUG9pbnQuaDoKKyAgICAgICAgKEluc2VydGlvblBvaW50KToKKwog
MjAxMi0xMS0wNyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFtW
OF0gSW50cnVzaXZlRE9NV3JhcHBlck1hcCBzaG91bGQgYmUgdXNhYmxlIGZvciBtb3JlIHRoYW4g
anVzdCBOb2RlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVu
dFNlbGVjdG9yUXVlcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVudFNl
bGVjdG9yUXVlcnkuY3BwCmluZGV4IDBhNmVjMzJlZWU1ZmQwMGI4ZTk1YjQzM2VkZGY5NDk3MzZi
MTRlZWEuLmRiZTVhOGU5NTYyZjY4ZmE2YTA3ZjNjMzM5NzBmYTg1ZjNiODZiYjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Db250ZW50U2VsZWN0b3JRdWVyeS5jcHAK
QEAgLTI3LDcgKzI3LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJDb250ZW50
U2VsZWN0b3JRdWVyeS5oIgogCi0jaW5jbHVkZSAiQ1NTUGFyc2VyLmgiCiAjaW5jbHVkZSAiQ1NT
U2VsZWN0b3JMaXN0LmgiCiAjaW5jbHVkZSAiSW5zZXJ0aW9uUG9pbnQuaCIKICNpbmNsdWRlICJT
ZWxlY3RvckNoZWNrZXIuaCIKQEAgLTY1LDI2ICs2NCwxMiBAQCBib29sIENvbnRlbnRTZWxlY3Rv
ckRhdGFMaXN0OjptYXRjaGVzKGNvbnN0IENvbnRlbnRTZWxlY3RvckNoZWNrZXImIHNlbGVjdG9y
Q2hlYwogICAgIHJldHVybiBmYWxzZTsKIH0KIAotQ29udGVudFNlbGVjdG9yUXVlcnk6OkNvbnRl
bnRTZWxlY3RvclF1ZXJ5KGNvbnN0IEluc2VydGlvblBvaW50KiBpbnNlcnRpb25Qb2ludCkKK0Nv
bnRlbnRTZWxlY3RvclF1ZXJ5OjpDb250ZW50U2VsZWN0b3JRdWVyeShJbnNlcnRpb25Qb2ludCog
aW5zZXJ0aW9uUG9pbnQpCiAgICAgOiBtX2luc2VydGlvblBvaW50KGluc2VydGlvblBvaW50KQog
ICAgICwgbV9zZWxlY3RvckNoZWNrZXIoaW5zZXJ0aW9uUG9pbnQtPmRvY3VtZW50KCksICFpbnNl
cnRpb25Qb2ludC0+ZG9jdW1lbnQoKS0+aW5RdWlya3NNb2RlKCkpCiB7Ci0gICAgaWYgKGluc2Vy
dGlvblBvaW50LT5zZWxlY3QoKS5pc051bGwoKSB8fCBpbnNlcnRpb25Qb2ludC0+c2VsZWN0KCku
aXNFbXB0eSgpKSB7Ci0gICAgICAgIG1faXNWYWxpZFNlbGVjdG9yID0gdHJ1ZTsKLSAgICAgICAg
cmV0dXJuOwotICAgIH0KLQotICAgIENTU1BhcnNlciBwYXJzZXIoaW5zZXJ0aW9uUG9pbnQtPmRv
Y3VtZW50KCkpOwotICAgIHBhcnNlci5wYXJzZVNlbGVjdG9yKGluc2VydGlvblBvaW50LT5zZWxl
Y3QoKSwgbV9zZWxlY3Rvckxpc3QpOwotCi0gICAgbV9pc1ZhbGlkU2VsZWN0b3IgPSBDb250ZW50
U2VsZWN0b3JRdWVyeTo6dmFsaWRhdGVTZWxlY3Rvckxpc3QoKTsKLSAgICBpZiAobV9pc1ZhbGlk
U2VsZWN0b3IpCi0gICAgICAgIG1fc2VsZWN0b3JzLmluaXRpYWxpemUobV9zZWxlY3Rvckxpc3Qp
OwotfQotCi1ib29sIENvbnRlbnRTZWxlY3RvclF1ZXJ5Ojppc1ZhbGlkU2VsZWN0b3IoKSBjb25z
dAotewotICAgIHJldHVybiBtX2lzVmFsaWRTZWxlY3RvcjsKKyAgICBpZiAoaW5zZXJ0aW9uUG9p
bnQtPmlzU2VsZWN0VmFsaWQoKSkKKyAgICAgICAgbV9zZWxlY3RvcnMuaW5pdGlhbGl6ZShpbnNl
cnRpb25Qb2ludC0+c2VsZWN0b3JMaXN0KCkpOwogfQogCiBib29sIENvbnRlbnRTZWxlY3RvclF1
ZXJ5OjptYXRjaGVzKGNvbnN0IFZlY3RvcjxSZWZQdHI8Tm9kZT4gPiYgc2libGluZ3MsIGludCBu
dGgpIGNvbnN0CkBAIC05NSw3ICs4MCw3IEBAIGJvb2wgQ29udGVudFNlbGVjdG9yUXVlcnk6Om1h
dGNoZXMoY29uc3QgVmVjdG9yPFJlZlB0cjxOb2RlPiA+JiBzaWJsaW5ncywgaW50IG50CiAgICAg
aWYgKG1faW5zZXJ0aW9uUG9pbnQtPnNlbGVjdCgpLmlzTnVsbCgpIHx8IG1faW5zZXJ0aW9uUG9p
bnQtPnNlbGVjdCgpLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBpZiAo
IW1faXNWYWxpZFNlbGVjdG9yKQorICAgIGlmICghbV9pbnNlcnRpb25Qb2ludC0+aXNTZWxlY3RW
YWxpZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoIW5vZGUtPmlzRWxlbWVu
dE5vZGUoKSkKQEAgLTEwNCw4NSArODksNCBAQCBib29sIENvbnRlbnRTZWxlY3RvclF1ZXJ5Ojpt
YXRjaGVzKGNvbnN0IFZlY3RvcjxSZWZQdHI8Tm9kZT4gPiYgc2libGluZ3MsIGludCBudAogICAg
IHJldHVybiBtX3NlbGVjdG9ycy5tYXRjaGVzKG1fc2VsZWN0b3JDaGVja2VyLCBzaWJsaW5ncywg
bnRoKTsKIH0KIAotc3RhdGljIGJvb2wgdmFsaWRhdGVTdWJTZWxlY3RvcihDU1NTZWxlY3Rvciog
c2VsZWN0b3IpCi17Ci0gICAgc3dpdGNoIChzZWxlY3Rvci0+bV9tYXRjaCkgewotICAgIGNhc2Ug
Q1NTU2VsZWN0b3I6Ok5vbmU6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6SWQ6Ci0gICAgY2FzZSBD
U1NTZWxlY3Rvcjo6Q2xhc3M6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6RXhhY3Q6Ci0gICAgY2Fz
ZSBDU1NTZWxlY3Rvcjo6U2V0OgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6Okxpc3Q6Ci0gICAgY2Fz
ZSBDU1NTZWxlY3Rvcjo6SHlwaGVuOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OkNvbnRhaW46Ci0g
ICAgY2FzZSBDU1NTZWxlY3Rvcjo6QmVnaW46Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6RW5kOgot
ICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50
OgotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UGFnZVBzZXVk
b0NsYXNzOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzOgotICAgICAgICBicmVh
azsKLSAgICB9Ci0KLSAgICBzd2l0Y2ggKHNlbGVjdG9yLT5wc2V1ZG9UeXBlKCkpIHsKLSAgICBj
YXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9FbXB0eToKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1
ZG9MaW5rOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1Zpc2l0ZWQ6Ci0gICAgY2FzZSBD
U1NTZWxlY3Rvcjo6UHNldWRvVGFyZ2V0OgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0Vu
YWJsZWQ6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRGlzYWJsZWQ6Ci0gICAgY2FzZSBD
U1NTZWxlY3Rvcjo6UHNldWRvQ2hlY2tlZDoKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9J
bmRldGVybWluYXRlOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb050aENoaWxkOgotICAg
IGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb050aExhc3RDaGlsZDoKLSAgICBjYXNlIENTU1NlbGVj
dG9yOjpQc2V1ZG9OdGhPZlR5cGU6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTnRoTGFz
dE9mVHlwZToKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9GaXJzdENoaWxkOgotICAgIGNh
c2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0xhc3RDaGlsZDoKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQ
c2V1ZG9GaXJzdE9mVHlwZToKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9MYXN0T2ZUeXBl
OgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb09ubHlPZlR5cGU6Ci0gICAgICAgIHJldHVy
biB0cnVlOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci19Ci0K
LXN0YXRpYyBib29sIHZhbGlkYXRlU2VsZWN0b3IoQ1NTU2VsZWN0b3IqIHNlbGVjdG9yKQotewot
ICAgIEFTU0VSVChzZWxlY3Rvcik7Ci0KLSAgICBpZiAoIXZhbGlkYXRlU3ViU2VsZWN0b3Ioc2Vs
ZWN0b3IpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBDU1NTZWxlY3RvciogcHJldlN1
YlNlbGVjdG9yID0gc2VsZWN0b3I7Ci0gICAgQ1NTU2VsZWN0b3IqIHN1YlNlbGVjdG9yID0gc2Vs
ZWN0b3ItPnRhZ0hpc3RvcnkoKTsKLQotICAgIHdoaWxlIChzdWJTZWxlY3RvcikgewotICAgICAg
ICBpZiAocHJldlN1YlNlbGVjdG9yLT5yZWxhdGlvbigpICE9IENTU1NlbGVjdG9yOjpTdWJTZWxl
Y3RvcikKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgaWYgKCF2YWxpZGF0ZVN1
YlNlbGVjdG9yKHN1YlNlbGVjdG9yKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAg
ICAgICBwcmV2U3ViU2VsZWN0b3IgPSBzdWJTZWxlY3RvcjsKLSAgICAgICAgc3ViU2VsZWN0b3Ig
PSBzdWJTZWxlY3Rvci0+dGFnSGlzdG9yeSgpOwotICAgIH0KLQotICAgIHJldHVybiB0cnVlOwot
fQotCi1ib29sIENvbnRlbnRTZWxlY3RvclF1ZXJ5Ojp2YWxpZGF0ZVNlbGVjdG9yTGlzdCgpCi17
Ci0gICAgaWYgKCFtX3NlbGVjdG9yTGlzdC5maXJzdCgpKQotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0KLSAgICBmb3IgKENTU1NlbGVjdG9yKiBzZWxlY3RvciA9IG1fc2VsZWN0b3JMaXN0LmZpcnN0
KCk7IHNlbGVjdG9yOyBzZWxlY3RvciA9IG1fc2VsZWN0b3JMaXN0Lm5leHQoc2VsZWN0b3IpKSB7
Ci0gICAgICAgIGlmICghdmFsaWRhdGVTZWxlY3RvcihzZWxlY3RvcikpCi0gICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Db250ZW50U2VsZWN0b3JRdWVyeS5oCmluZGV4IDJj
NzEwYTU4NTJlOTJkNzY4ODJjN2MyMDc1MGJmZDI2ZGEyYWEwM2IuLjc4YTA4MjQ1NGM5ZDEyZjJi
MGYzYzU1MDRhOGI5MGFiZTllMWViZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvQ29udGVudFNlbGVjdG9yUXVlcnkuaApAQCAtNjQsMTggKzY0LDE0IEBAIHByaXZhdGU6
CiBjbGFzcyBDb250ZW50U2VsZWN0b3JRdWVyeSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUo
Q29udGVudFNlbGVjdG9yUXVlcnkpOwogcHVibGljOgotICAgIGV4cGxpY2l0IENvbnRlbnRTZWxl
Y3RvclF1ZXJ5KGNvbnN0IEluc2VydGlvblBvaW50Kik7CisgICAgZXhwbGljaXQgQ29udGVudFNl
bGVjdG9yUXVlcnkoSW5zZXJ0aW9uUG9pbnQqKTsKIAotICAgIGJvb2wgaXNWYWxpZFNlbGVjdG9y
KCkgY29uc3Q7CiAgICAgYm9vbCBtYXRjaGVzKGNvbnN0IFZlY3RvcjxSZWZQdHI8Tm9kZT4gPiYg
c2libGluZ3MsIGludCBudGhOb2RlKSBjb25zdDsKIHByaXZhdGU6Ci0gICAgYm9vbCB2YWxpZGF0
ZVNlbGVjdG9yTGlzdCgpOwogCi0gICAgY29uc3QgSW5zZXJ0aW9uUG9pbnQqIG1faW5zZXJ0aW9u
UG9pbnQ7CisgICAgSW5zZXJ0aW9uUG9pbnQqIG1faW5zZXJ0aW9uUG9pbnQ7CiAgICAgQ29udGVu
dFNlbGVjdG9yRGF0YUxpc3QgbV9zZWxlY3RvcnM7Ci0gICAgQ1NTU2VsZWN0b3JMaXN0IG1fc2Vs
ZWN0b3JMaXN0OwogICAgIENvbnRlbnRTZWxlY3RvckNoZWNrZXIgbV9zZWxlY3RvckNoZWNrZXI7
Ci0gICAgYm9vbCBtX2lzVmFsaWRTZWxlY3RvcjsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuY3BwCmluZGV4IDUwNDBlOWViOGQ2
MDYyNzU2ZWVhZjliZTQ0Mzc0ZDY2YTVlMTI1ZTAuLjMxNTM3OWIxZjRmYWI2NjAyY2YyMjFkMTFk
NWNiODRmM2UxMmNlMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hU
TUxDb250ZW50RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRN
TENvbnRlbnRFbGVtZW50LmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIkhUTUxDb250ZW50RWxlbWVudC5oIgogCisjaW5jbHVkZSAiQ1NTUGFyc2Vy
LmgiCiAjaW5jbHVkZSAiQ29udGVudERpc3RyaWJ1dG9yLmgiCiAjaW5jbHVkZSAiQ29udGVudFNl
bGVjdG9yUXVlcnkuaCIKICNpbmNsdWRlICJDb250ZXh0RmVhdHVyZXMuaCIKQEAgLTY1LDYgKzY2
LDggQEAgUGFzc1JlZlB0cjxIVE1MQ29udGVudEVsZW1lbnQ+IEhUTUxDb250ZW50RWxlbWVudDo6
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHQKIEhUTUxDb250ZW50RWxlbWVudDo6SFRNTENv
bnRlbnRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIERvY3VtZW50KiBkb2N1bWVu
dCkKICAgICA6IEluc2VydGlvblBvaW50KG5hbWUsIGRvY3VtZW50KQogICAgICwgbV9yZWdpc3Rl
cmVkV2l0aFNoYWRvd1Jvb3QoZmFsc2UpCisgICAgLCBtX3Nob3VsZFBhcnNlU2VsZWN0b3JMaXN0
KGZhbHNlKQorICAgICwgbV9pc1ZhbGlkU2VsZWN0b3IodHJ1ZSkKIHsKIH0KIApAQCAtNzcsMTUg
KzgwLDIzIEBAIGNvbnN0IEF0b21pY1N0cmluZyYgSFRNTENvbnRlbnRFbGVtZW50OjpzZWxlY3Qo
KSBjb25zdAogICAgIHJldHVybiBnZXRBdHRyaWJ1dGUoc2VsZWN0QXR0cik7CiB9CiAKLWJvb2wg
SFRNTENvbnRlbnRFbGVtZW50Ojppc1NlbGVjdFZhbGlkKCkgY29uc3QKK2Jvb2wgSFRNTENvbnRl
bnRFbGVtZW50Ojppc1NlbGVjdFZhbGlkKCkKIHsKLSAgICBDb250ZW50U2VsZWN0b3JRdWVyeSBx
dWVyeSh0aGlzKTsKLSAgICByZXR1cm4gcXVlcnkuaXNWYWxpZFNlbGVjdG9yKCk7CisgICAgZW5z
dXJlU2VsZWN0UGFyc2VkKCk7CisgICAgcmV0dXJuIG1faXNWYWxpZFNlbGVjdG9yOwogfQogCi12
b2lkIEhUTUxDb250ZW50RWxlbWVudDo6c2V0U2VsZWN0KGNvbnN0IEF0b21pY1N0cmluZyYgc2Vs
ZWN0VmFsdWUpCit2b2lkIEhUTUxDb250ZW50RWxlbWVudDo6ZW5zdXJlU2VsZWN0UGFyc2VkKCkK
IHsKLSAgICBzZXRBdHRyaWJ1dGUoc2VsZWN0QXR0ciwgc2VsZWN0VmFsdWUpOworICAgIGlmICgh
bV9zaG91bGRQYXJzZVNlbGVjdG9yTGlzdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgQ1NTUGFy
c2VyIHBhcnNlcihkb2N1bWVudCgpKTsKKyAgICBwYXJzZXIucGFyc2VTZWxlY3RvcihzZWxlY3Qo
KSwgbV9zZWxlY3Rvckxpc3QpOworICAgIG1fc2hvdWxkUGFyc2VTZWxlY3Rvckxpc3QgPSBmYWxz
ZTsKKyAgICBtX2lzVmFsaWRTZWxlY3RvciA9IHZhbGlkYXRlU2VsZWN0KCk7CisgICAgaWYgKCFt
X2lzVmFsaWRTZWxlY3RvcikKKyAgICAgICAgbV9zZWxlY3Rvckxpc3QgPSBDU1NTZWxlY3Rvckxp
c3QoKTsKIH0KIAogdm9pZCBIVE1MQ29udGVudEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0
IEF0dHJpYnV0ZSYgYXR0cmlidXRlKQpAQCAtOTMsNiArMTA0LDcgQEAgdm9pZCBIVE1MQ29udGVu
dEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYgYXR0cmlidXRlKQogICAg
IGlmIChhdHRyaWJ1dGUubmFtZSgpID09IHNlbGVjdEF0dHIpIHsKICAgICAgICAgaWYgKFNoYWRv
d1Jvb3QqIHJvb3QgPSBzaGFkb3dSb290KCkpCiAgICAgICAgICAgICByb290LT5vd25lcigpLT5p
bnZhbGlkYXRlRGlzdHJpYnV0aW9uKCk7CisgICAgICAgIG1fc2hvdWxkUGFyc2VTZWxlY3Rvckxp
c3QgPSB0cnVlOwogICAgIH0gZWxzZQogICAgICAgICBJbnNlcnRpb25Qb2ludDo6cGFyc2VBdHRy
aWJ1dGUoYXR0cmlidXRlKTsKIH0KQEAgLTEyMiw0ICsxMzQsOTEgQEAgdm9pZCBIVE1MQ29udGVu
dEVsZW1lbnQ6OnJlbW92ZWRGcm9tKENvbnRhaW5lck5vZGUqIGluc2VydGlvblBvaW50KQogICAg
IEluc2VydGlvblBvaW50OjpyZW1vdmVkRnJvbShpbnNlcnRpb25Qb2ludCk7CiB9CiAKK3N0YXRp
YyBib29sIHZhbGlkYXRlU3ViU2VsZWN0b3IoQ1NTU2VsZWN0b3IqIHNlbGVjdG9yKQoreworICAg
IHN3aXRjaCAoc2VsZWN0b3ItPm1fbWF0Y2gpIHsKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpOb25l
OgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OklkOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OkNsYXNz
OgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OkV4YWN0OgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlNl
dDoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpMaXN0OgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6Okh5
cGhlbjoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpDb250YWluOgorICAgIGNhc2UgQ1NTU2VsZWN0
b3I6OkJlZ2luOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OkVuZDoKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRWxlbWVudDoKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBhZ2VQc2V1ZG9DbGFzczoKKyAgICBjYXNl
IENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzczoKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAg
c3dpdGNoIChzZWxlY3Rvci0+cHNldWRvVHlwZSgpKSB7CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6
UHNldWRvRW1wdHk6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTGluazoKKyAgICBjYXNl
IENTU1NlbGVjdG9yOjpQc2V1ZG9WaXNpdGVkOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVk
b1RhcmdldDoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9FbmFibGVkOgorICAgIGNhc2Ug
Q1NTU2VsZWN0b3I6OlBzZXVkb0Rpc2FibGVkOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVk
b0NoZWNrZWQ6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvSW5kZXRlcm1pbmF0ZToKKyAg
ICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9OdGhDaGlsZDoKKyAgICBjYXNlIENTU1NlbGVjdG9y
OjpQc2V1ZG9OdGhMYXN0Q2hpbGQ6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTnRoT2ZU
eXBlOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb050aExhc3RPZlR5cGU6CisgICAgY2Fz
ZSBDU1NTZWxlY3Rvcjo6UHNldWRvRmlyc3RDaGlsZDoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQ
c2V1ZG9MYXN0Q2hpbGQ6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRmlyc3RPZlR5cGU6
CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTGFzdE9mVHlwZToKKyAgICBjYXNlIENTU1Nl
bGVjdG9yOjpQc2V1ZG9Pbmx5T2ZUeXBlOgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBkZWZh
dWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorfQorCitzdGF0aWMgYm9vbCB2YWxp
ZGF0ZVNlbGVjdG9yKENTU1NlbGVjdG9yKiBzZWxlY3RvcikKK3sKKyAgICBBU1NFUlQoc2VsZWN0
b3IpOworCisgICAgaWYgKCF2YWxpZGF0ZVN1YlNlbGVjdG9yKHNlbGVjdG9yKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgQ1NTU2VsZWN0b3IqIHByZXZTdWJTZWxlY3RvciA9IHNlbGVj
dG9yOworICAgIENTU1NlbGVjdG9yKiBzdWJTZWxlY3RvciA9IHNlbGVjdG9yLT50YWdIaXN0b3J5
KCk7CisKKyAgICB3aGlsZSAoc3ViU2VsZWN0b3IpIHsKKyAgICAgICAgaWYgKHByZXZTdWJTZWxl
Y3Rvci0+cmVsYXRpb24oKSAhPSBDU1NTZWxlY3Rvcjo6U3ViU2VsZWN0b3IpCisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmICghdmFsaWRhdGVTdWJTZWxlY3RvcihzdWJTZWxl
Y3RvcikpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgcHJldlN1YlNlbGVj
dG9yID0gc3ViU2VsZWN0b3I7CisgICAgICAgIHN1YlNlbGVjdG9yID0gc3ViU2VsZWN0b3ItPnRh
Z0hpc3RvcnkoKTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBIVE1MQ29u
dGVudEVsZW1lbnQ6OnZhbGlkYXRlU2VsZWN0KCkgY29uc3QKK3sKKyAgICBBU1NFUlQoIW1fc2hv
dWxkUGFyc2VTZWxlY3Rvckxpc3QpOworCisgICAgaWYgKHNlbGVjdCgpLmlzTnVsbCgpIHx8IHNl
bGVjdCgpLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBpZiAoIW1fc2Vs
ZWN0b3JMaXN0LmZpcnN0KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGZvciAoQ1NT
U2VsZWN0b3IqIHNlbGVjdG9yID0gbV9zZWxlY3Rvckxpc3QuZmlyc3QoKTsgc2VsZWN0b3I7IHNl
bGVjdG9yID0gbV9zZWxlY3Rvckxpc3QubmV4dChzZWxlY3RvcikpIHsKKyAgICAgICAgaWYgKCF2
YWxpZGF0ZVNlbGVjdG9yKHNlbGVjdG9yKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5oCmluZGV4IDJhM2EzMmNlYTU1OTI5ZTg3Y2U3
MWJhYzczYjc4NjRjNzkwZjBmZjYuLjA0MjU0ZTEyYjIyM2JjMDM5MDNlZDM0MmNiYWViZjE3ZGU5
ZjIwMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxl
bWVudC5oCkBAIC0zMSw2ICszMSw3IEBACiAjaWZuZGVmIEhUTUxDb250ZW50RWxlbWVudF9oCiAj
ZGVmaW5lIEhUTUxDb250ZW50RWxlbWVudF9oCiAKKyNpbmNsdWRlICJDU1NTZWxlY3Rvckxpc3Qu
aCIKICNpbmNsdWRlICJJbnNlcnRpb25Qb2ludC5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
CiAKQEAgLTQ0LDkgKzQ1LDEwIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgfkhUTUxDb250ZW50
RWxlbWVudCgpOwogCi0gICAgY29uc3QgQXRvbWljU3RyaW5nJiBzZWxlY3QoKSBjb25zdDsKICAg
ICB2b2lkIHNldFNlbGVjdChjb25zdCBBdG9taWNTdHJpbmcmKTsKLSAgICB2aXJ0dWFsIGJvb2wg
aXNTZWxlY3RWYWxpZCgpIGNvbnN0OworICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBz
ZWxlY3QoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNTZWxlY3RWYWxpZCgpOworICAgIHZp
cnR1YWwgY29uc3QgQ1NTU2VsZWN0b3JMaXN0JiBzZWxlY3Rvckxpc3QoKTsKIAogcHJvdGVjdGVk
OgogICAgIEhUTUxDb250ZW50RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQq
KTsKQEAgLTU2LDEwICs1OCwyOCBAQCBwcm90ZWN0ZWQ6CiAKIHByaXZhdGU6CiAgICAgdmlydHVh
bCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYpIE9WRVJSSURFOworICAgIHZv
aWQgZW5zdXJlU2VsZWN0UGFyc2VkKCk7CisgICAgYm9vbCB2YWxpZGF0ZVNlbGVjdCgpIGNvbnN0
OwogCiAgICAgYm9vbCBtX3JlZ2lzdGVyZWRXaXRoU2hhZG93Um9vdDsKKworICAgIGJvb2wgbV9z
aG91bGRQYXJzZVNlbGVjdG9yTGlzdDsKKyAgICBib29sIG1faXNWYWxpZFNlbGVjdG9yOworICAg
IENTU1NlbGVjdG9yTGlzdCBtX3NlbGVjdG9yTGlzdDsKIH07CiAKK2lubGluZSB2b2lkIEhUTUxD
b250ZW50RWxlbWVudDo6c2V0U2VsZWN0KGNvbnN0IEF0b21pY1N0cmluZyYgc2VsZWN0VmFsdWUp
Cit7CisgICAgc2V0QXR0cmlidXRlKEhUTUxOYW1lczo6c2VsZWN0QXR0ciwgc2VsZWN0VmFsdWUp
OworICAgIG1fc2hvdWxkUGFyc2VTZWxlY3Rvckxpc3QgPSB0cnVlOworfQorCitpbmxpbmUgY29u
c3QgQ1NTU2VsZWN0b3JMaXN0JiBIVE1MQ29udGVudEVsZW1lbnQ6OnNlbGVjdG9yTGlzdCgpCit7
CisgICAgZW5zdXJlU2VsZWN0UGFyc2VkKCk7CisgICAgcmV0dXJuIG1fc2VsZWN0b3JMaXN0Owor
fQorCiBpbmxpbmUgYm9vbCBpc0hUTUxDb250ZW50RWxlbWVudChjb25zdCBOb2RlKiBub2RlKQog
ewogICAgIEFTU0VSVChub2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L0hUTUxTaGFkb3dFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hU
TUxTaGFkb3dFbGVtZW50LmNwcAppbmRleCA3ZDdlNDE1MjlmYmRmMTZmMTMwNDA4ZWUyMzJmMTk4
YjgyODM1MjY0Li5kYTE4YmE4ZWFlNWU0YjI0ZmU1YWZjNjY0OTc5ZTZiMmQ1YTU5NjRkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MU2hhZG93RWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTFNoYWRvd0VsZW1lbnQuY3BwCkBA
IC04Nyw0ICs4NywxMCBAQCB2b2lkIEhUTUxTaGFkb3dFbGVtZW50OjpyZW1vdmVkRnJvbShDb250
YWluZXJOb2RlKiBpbnNlcnRpb25Qb2ludCkKICAgICBJbnNlcnRpb25Qb2ludDo6cmVtb3ZlZEZy
b20oaW5zZXJ0aW9uUG9pbnQpOwogfQogCitjb25zdCBDU1NTZWxlY3Rvckxpc3QmIEhUTUxTaGFk
b3dFbGVtZW50OjplbXB0eVNlbGVjdG9yTGlzdCgpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChDU1NTZWxlY3Rvckxpc3QsIHNlbGVjdG9yTGlzdCwgKENTU1NlbGVjdG9yTGlzdCgpKSk7Cisg
ICAgcmV0dXJuIHNlbGVjdG9yTGlzdDsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTFNoYWRvd0VsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxTaGFkb3dFbGVtZW50LmgKaW5kZXggYmFj
MmI5MmI1Nzk2MWIyM2RmY2MyZTMyZTFmNTViMmQ1N2UzMjY0NS4uODcwNTk4OTZmNzdkMjAyM2Mw
ZjJhZjFjNjg4NDM3MzNkZjE3MTNmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvSFRNTFNoYWRvd0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9IVE1MU2hhZG93RWxlbWVudC5oCkBAIC00Miw4ICs0Miw5IEBAIHB1YmxpYzoKIAogICAgIHZp
cnR1YWwgfkhUTUxTaGFkb3dFbGVtZW50KCk7CiAKLSAgICBjb25zdCBBdG9taWNTdHJpbmcmIHNl
bGVjdCgpIGNvbnN0OwotICAgIGJvb2wgaXNTZWxlY3RWYWxpZCgpIGNvbnN0IE9WRVJSSURFIHsg
cmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2VsZWN0KCkg
Y29uc3Q7CisgICAgdmlydHVhbCBib29sIGlzU2VsZWN0VmFsaWQoKSBPVkVSUklERSB7IHJldHVy
biB0cnVlOyB9CisgICAgdmlydHVhbCBjb25zdCBDU1NTZWxlY3Rvckxpc3QmIHNlbGVjdG9yTGlz
dCgpIHsgcmV0dXJuIGVtcHR5U2VsZWN0b3JMaXN0KCk7IH0KIAogcHJvdGVjdGVkOgogICAgIHZp
cnR1YWwgSW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBpbnNlcnRlZEludG8oQ29udGFpbmVy
Tm9kZSopIE9WRVJSSURFOwpAQCAtNTIsNiArNTMsOCBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgog
ICAgIEhUTUxTaGFkb3dFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwog
CisgICAgc3RhdGljIGNvbnN0IENTU1NlbGVjdG9yTGlzdCYgZW1wdHlTZWxlY3Rvckxpc3QoKTsK
KwogICAgIGJvb2wgbV9yZWdpc3RlcmVkV2l0aFNoYWRvd1Jvb3Q7CiB9OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9JbnNlcnRpb25Qb2ludC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvSW5zZXJ0aW9uUG9pbnQuaAppbmRleCAyNDNhMDhjMThhMzQ2MTAz
MDM5NWQ5YTViYTdkMjA1NTliNjcxMWE5Li4yM2RhZDhkY2E3MDgxMjMxODIxZjk3ZDhiZjMwNGQ3
NzMzMzI3NmY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9JbnNlcnRp
b25Qb2ludC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0luc2VydGlvblBvaW50
LmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpZm5kZWYgSW5zZXJ0aW9uUG9pbnRfaAogI2RlZmluZSBJ
bnNlcnRpb25Qb2ludF9oCiAKKyNpbmNsdWRlICJDU1NTZWxlY3Rvckxpc3QuaCIKICNpbmNsdWRl
ICJDb250ZW50RGlzdHJpYnV0b3IuaCIKICNpbmNsdWRlICJFbGVtZW50U2hhZG93LmgiCiAjaW5j
bHVkZSAiSFRNTEVsZW1lbnQuaCIKQEAgLTUzLDcgKzU0LDggQEAgcHVibGljOgogICAgIFBhc3NS
ZWZQdHI8Tm9kZUxpc3Q+IGdldERpc3RyaWJ1dGVkTm9kZXMoKSBjb25zdDsKIAogICAgIHZpcnR1
YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzZWxlY3QoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBi
b29sIGlzU2VsZWN0VmFsaWQoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBib29sIGlzU2VsZWN0
VmFsaWQoKSA9IDA7CisgICAgdmlydHVhbCBjb25zdCBDU1NTZWxlY3Rvckxpc3QmIHNlbGVjdG9y
TGlzdCgpID0gMDsKIAogICAgIGJvb2wgcmVzZXRTdHlsZUluaGVyaXRhbmNlKCkgY29uc3Q7CiAg
ICAgdm9pZCBzZXRSZXNldFN0eWxlSW5oZXJpdGFuY2UoYm9vbCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173168</attachid>
            <date>2012-11-08 18:31:42 -0800</date>
            <delta_ts>2012-11-08 18:39:43 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-101543-20121109112950.patch</filename>
            <type>text/plain</type>
            <size>16677</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzOTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2ExMTM4NmJmMDllMmFi
MDVkMjQxMmQ2MzIxNjE4N2MzYjI5YTk2OC4uMDAzYWZkMGJjM2M1N2Y0NjFlZGE4YTdkMTg0Zjk4
ZmUzYjI5N2ZhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEyLTExLTA3ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBIVE1MQ29udGVu
dEVsZW1lbnQgc2hvdWxkIHByZXNlcnZlIHBhcnNlZCBDU1NTZWxlY3Rvckxpc3QKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTU0MworCisgICAgICAg
IFJldmlld2VkIGJ5IERpbWl0cmkgR2xhemtvdi4KKworICAgICAgICBXZSB3b3VsZCBsaWtlIHRv
IHByZXNlcnZlIENTU1NlbGVjdG9yTGlzdCBmb3Igc2VsZWN0IGF0dHJpYnV0ZSBvZiBIVE1MQ29u
dGVudEVsZW1lbnQuCisKKyAgICAgICAgQmVmb3JlLCB3ZSBwYXJzZWQgYW5kIHZhbGlkYXRlZCBz
ZWxlY3QgYXR0cmlidXRlIGV2ZXJ5IHRpbWUgZGlzdHJpYnV0aW9uIGhhcHBlbnMuIElmIHdlIHBy
ZXNlcnZlIHRoZSBwYXJzZWQKKyAgICAgICAgQ1NTU2VsZWN0b3JMaXN0LCB3ZSBjYW4gcmVkdWNl
IGRpc3RyaWJ1dGlvbiB0aW1lLgorCisgICAgICAgIFRoaXMgaXMgYWxzbyBhIHByZXByYXRpb24g
cGF0Y2ggZm9yIEJ1ZyAxMDExODAuIEl0IGFsc28gbmVlZHMgdGhlIHBhcnNlZCBDU1NTZWxlY3Rv
ckxpc3QuIFdlIGRvbid0IHdhbnQgdG8KKyAgICAgICAgcGFyc2UgYW5kIHZhbGlkYXRlIGl0IGFn
YWluLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgY292ZXJlZCBieSBleGlzaW5nIHRlc3RzLgor
CisgICAgICAgICogaHRtbC9zaGFkb3cvQ29udGVudFNlbGVjdG9yUXVlcnkuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q29udGVudFNlbGVjdG9yUXVlcnk6OkNvbnRlbnRTZWxlY3RvclF1ZXJ5KTog
V2UgZG9uJ3QgcGFyc2Ugc2VsZWN0IGF0dHJpYnV0ZSBoZXJlIGFueW1vcmUuCisgICAgICAgIGlm
IGl0J3MgYWxyZWFkeSBwYXJzZWQuCisgICAgICAgIChXZWJDb3JlOjpDb250ZW50U2VsZWN0b3JR
dWVyeTo6bWF0Y2hlcyk6CisgICAgICAgICogaHRtbC9zaGFkb3cvQ29udGVudFNlbGVjdG9yUXVl
cnkuaDoKKyAgICAgICAgKENvbnRlbnRTZWxlY3RvclF1ZXJ5KToKKyAgICAgICAgKiBodG1sL3No
YWRvdy9IVE1MQ29udGVudEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnRl
bnRFbGVtZW50OjpIVE1MQ29udGVudEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENv
bnRlbnRFbGVtZW50Ojppc1NlbGVjdFZhbGlkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb250
ZW50RWxlbWVudDo6ZW5zdXJlU2VsZWN0UGFyc2VkKTogSWYgd2UgZG9uJ3QgaGF2ZSBwYXJzZWQg
dGhlIGN1cnJlbnQgc2VsZWN0IGF0dHJpYnV0ZSwKKyAgICAgICAgd2UgcGFyc2UgYW5kIHZhbGlk
YXRlIGl0LgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnRlbnRFbGVtZW50OjpwYXJzZUF0dHJp
YnV0ZSk6IFdoZW4gc2VsZWN0IGF0dHJpYnV0ZSBpcyBjaGFuZ2VkLCB3ZSBoYXZlIHRvIGhhdmUg
YSBmbGFnIGVuYWJsZWQKKyAgICAgICAgdG8gcGFyc2Ugc2VsZWN0IGF0dHJpdGUgYWdhaW4uCisg
ICAgICAgIChXZWJDb3JlOjp2YWxpZGF0ZVN1YlNlbGVjdG9yKTogTW92ZWQgZnJvbSBDb250ZW50
U2VsZWN0b3JRdWVyeS4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6dmFs
aWRhdGVTZWxlY3Rvcik6IE1vdmVkIGZyb20gQ29udGVudFNlbGVjdG9yUXVlcnkuCisgICAgICAg
IChXZWJDb3JlOjpIVE1MQ29udGVudEVsZW1lbnQ6OnZhbGlkYXRlU2VsZWN0KToKKyAgICAgICAg
KiBodG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuaDoKKyAgICAgICAgKEhUTUxDb250ZW50
RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29udGVudEVsZW1lbnQ6OnNldFNlbGVj
dCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb250ZW50RWxl
bWVudDo6c2VsZWN0b3JMaXN0KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9IVE1MU2hhZG93RWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU2hhZG93RWxlbWVudDo6ZW1wdHlTZWxl
Y3Rvckxpc3QpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogaHRtbC9zaGFkb3cvSFRN
TFNoYWRvd0VsZW1lbnQuaDoKKyAgICAgICAgKEhUTUxTaGFkb3dFbGVtZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxTaGFkb3dFbGVtZW50OjpzZWxlY3Rvckxpc3QpOgorICAgICAgICAqIGh0
bWwvc2hhZG93L0luc2VydGlvblBvaW50Lmg6CisgICAgICAgIChJbnNlcnRpb25Qb2ludCk6CisK
IDIwMTItMTEtMDggIEFsZWMgRmxldHQgIDxhbGVjZmxldHRAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIEluZGV4ZWREQjogc3dpdGNoIGZyb250ZW5kIHRvIHVzZSBpbnQ2NF90LWJhc2VkIHJlZmVy
ZW5jZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NvbnRlbnRTZWxl
Y3RvclF1ZXJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NvbnRlbnRTZWxlY3Rv
clF1ZXJ5LmNwcAppbmRleCAwYTZlYzMyZWVlNWZkMDBiOGU5NWI0MzNlZGRmOTQ5NzM2YjE0ZWVh
Li5kYmU1YThlOTU2MmY2OGZhNmEwN2YzYzMzOTcwZmE4NWYzYjg2YmI0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Db250ZW50U2VsZWN0b3JRdWVyeS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVudFNlbGVjdG9yUXVlcnkuY3BwCkBAIC0y
Nyw3ICsyNyw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQ29udGVudFNlbGVj
dG9yUXVlcnkuaCIKIAotI2luY2x1ZGUgIkNTU1BhcnNlci5oIgogI2luY2x1ZGUgIkNTU1NlbGVj
dG9yTGlzdC5oIgogI2luY2x1ZGUgIkluc2VydGlvblBvaW50LmgiCiAjaW5jbHVkZSAiU2VsZWN0
b3JDaGVja2VyLmgiCkBAIC02NSwyNiArNjQsMTIgQEAgYm9vbCBDb250ZW50U2VsZWN0b3JEYXRh
TGlzdDo6bWF0Y2hlcyhjb25zdCBDb250ZW50U2VsZWN0b3JDaGVja2VyJiBzZWxlY3RvckNoZWMK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLUNvbnRlbnRTZWxlY3RvclF1ZXJ5OjpDb250ZW50U2Vs
ZWN0b3JRdWVyeShjb25zdCBJbnNlcnRpb25Qb2ludCogaW5zZXJ0aW9uUG9pbnQpCitDb250ZW50
U2VsZWN0b3JRdWVyeTo6Q29udGVudFNlbGVjdG9yUXVlcnkoSW5zZXJ0aW9uUG9pbnQqIGluc2Vy
dGlvblBvaW50KQogICAgIDogbV9pbnNlcnRpb25Qb2ludChpbnNlcnRpb25Qb2ludCkKICAgICAs
IG1fc2VsZWN0b3JDaGVja2VyKGluc2VydGlvblBvaW50LT5kb2N1bWVudCgpLCAhaW5zZXJ0aW9u
UG9pbnQtPmRvY3VtZW50KCktPmluUXVpcmtzTW9kZSgpKQogewotICAgIGlmIChpbnNlcnRpb25Q
b2ludC0+c2VsZWN0KCkuaXNOdWxsKCkgfHwgaW5zZXJ0aW9uUG9pbnQtPnNlbGVjdCgpLmlzRW1w
dHkoKSkgewotICAgICAgICBtX2lzVmFsaWRTZWxlY3RvciA9IHRydWU7Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9Ci0KLSAgICBDU1NQYXJzZXIgcGFyc2VyKGluc2VydGlvblBvaW50LT5kb2N1bWVu
dCgpKTsKLSAgICBwYXJzZXIucGFyc2VTZWxlY3RvcihpbnNlcnRpb25Qb2ludC0+c2VsZWN0KCks
IG1fc2VsZWN0b3JMaXN0KTsKLQotICAgIG1faXNWYWxpZFNlbGVjdG9yID0gQ29udGVudFNlbGVj
dG9yUXVlcnk6OnZhbGlkYXRlU2VsZWN0b3JMaXN0KCk7Ci0gICAgaWYgKG1faXNWYWxpZFNlbGVj
dG9yKQotICAgICAgICBtX3NlbGVjdG9ycy5pbml0aWFsaXplKG1fc2VsZWN0b3JMaXN0KTsKLX0K
LQotYm9vbCBDb250ZW50U2VsZWN0b3JRdWVyeTo6aXNWYWxpZFNlbGVjdG9yKCkgY29uc3QKLXsK
LSAgICByZXR1cm4gbV9pc1ZhbGlkU2VsZWN0b3I7CisgICAgaWYgKGluc2VydGlvblBvaW50LT5p
c1NlbGVjdFZhbGlkKCkpCisgICAgICAgIG1fc2VsZWN0b3JzLmluaXRpYWxpemUoaW5zZXJ0aW9u
UG9pbnQtPnNlbGVjdG9yTGlzdCgpKTsKIH0KIAogYm9vbCBDb250ZW50U2VsZWN0b3JRdWVyeTo6
bWF0Y2hlcyhjb25zdCBWZWN0b3I8UmVmUHRyPE5vZGU+ID4mIHNpYmxpbmdzLCBpbnQgbnRoKSBj
b25zdApAQCAtOTUsNyArODAsNyBAQCBib29sIENvbnRlbnRTZWxlY3RvclF1ZXJ5OjptYXRjaGVz
KGNvbnN0IFZlY3RvcjxSZWZQdHI8Tm9kZT4gPiYgc2libGluZ3MsIGludCBudAogICAgIGlmICht
X2luc2VydGlvblBvaW50LT5zZWxlY3QoKS5pc051bGwoKSB8fCBtX2luc2VydGlvblBvaW50LT5z
ZWxlY3QoKS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgaWYgKCFtX2lz
VmFsaWRTZWxlY3RvcikKKyAgICBpZiAoIW1faW5zZXJ0aW9uUG9pbnQtPmlzU2VsZWN0VmFsaWQo
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKCFub2RlLT5pc0VsZW1lbnROb2Rl
KCkpCkBAIC0xMDQsODUgKzg5LDQgQEAgYm9vbCBDb250ZW50U2VsZWN0b3JRdWVyeTo6bWF0Y2hl
cyhjb25zdCBWZWN0b3I8UmVmUHRyPE5vZGU+ID4mIHNpYmxpbmdzLCBpbnQgbnQKICAgICByZXR1
cm4gbV9zZWxlY3RvcnMubWF0Y2hlcyhtX3NlbGVjdG9yQ2hlY2tlciwgc2libGluZ3MsIG50aCk7
CiB9CiAKLXN0YXRpYyBib29sIHZhbGlkYXRlU3ViU2VsZWN0b3IoQ1NTU2VsZWN0b3IqIHNlbGVj
dG9yKQotewotICAgIHN3aXRjaCAoc2VsZWN0b3ItPm1fbWF0Y2gpIHsKLSAgICBjYXNlIENTU1Nl
bGVjdG9yOjpOb25lOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OklkOgotICAgIGNhc2UgQ1NTU2Vs
ZWN0b3I6OkNsYXNzOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OkV4YWN0OgotICAgIGNhc2UgQ1NT
U2VsZWN0b3I6OlNldDoKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpMaXN0OgotICAgIGNhc2UgQ1NT
U2VsZWN0b3I6Okh5cGhlbjoKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpDb250YWluOgotICAgIGNh
c2UgQ1NTU2VsZWN0b3I6OkJlZ2luOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OkVuZDoKLSAgICAg
ICAgcmV0dXJuIHRydWU7Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRWxlbWVudDoKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBhZ2VQc2V1ZG9DbGFz
czoKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzczoKLSAgICAgICAgYnJlYWs7Ci0g
ICAgfQotCi0gICAgc3dpdGNoIChzZWxlY3Rvci0+cHNldWRvVHlwZSgpKSB7Ci0gICAgY2FzZSBD
U1NTZWxlY3Rvcjo6UHNldWRvRW1wdHk6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTGlu
azoKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9WaXNpdGVkOgotICAgIGNhc2UgQ1NTU2Vs
ZWN0b3I6OlBzZXVkb1RhcmdldDoKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9FbmFibGVk
OgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0Rpc2FibGVkOgotICAgIGNhc2UgQ1NTU2Vs
ZWN0b3I6OlBzZXVkb0NoZWNrZWQ6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvSW5kZXRl
cm1pbmF0ZToKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9OdGhDaGlsZDoKLSAgICBjYXNl
IENTU1NlbGVjdG9yOjpQc2V1ZG9OdGhMYXN0Q2hpbGQ6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6
UHNldWRvTnRoT2ZUeXBlOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb050aExhc3RPZlR5
cGU6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRmlyc3RDaGlsZDoKLSAgICBjYXNlIENT
U1NlbGVjdG9yOjpQc2V1ZG9MYXN0Q2hpbGQ6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRv
Rmlyc3RPZlR5cGU6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTGFzdE9mVHlwZToKLSAg
ICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9Pbmx5T2ZUeXBlOgotICAgICAgICByZXR1cm4gdHJ1
ZTsKLSAgICBkZWZhdWx0OgotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotfQotCi1zdGF0
aWMgYm9vbCB2YWxpZGF0ZVNlbGVjdG9yKENTU1NlbGVjdG9yKiBzZWxlY3RvcikKLXsKLSAgICBB
U1NFUlQoc2VsZWN0b3IpOwotCi0gICAgaWYgKCF2YWxpZGF0ZVN1YlNlbGVjdG9yKHNlbGVjdG9y
KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgQ1NTU2VsZWN0b3IqIHByZXZTdWJTZWxl
Y3RvciA9IHNlbGVjdG9yOwotICAgIENTU1NlbGVjdG9yKiBzdWJTZWxlY3RvciA9IHNlbGVjdG9y
LT50YWdIaXN0b3J5KCk7Ci0KLSAgICB3aGlsZSAoc3ViU2VsZWN0b3IpIHsKLSAgICAgICAgaWYg
KHByZXZTdWJTZWxlY3Rvci0+cmVsYXRpb24oKSAhPSBDU1NTZWxlY3Rvcjo6U3ViU2VsZWN0b3Ip
Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGlmICghdmFsaWRhdGVTdWJTZWxl
Y3RvcihzdWJTZWxlY3RvcikpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgICAg
cHJldlN1YlNlbGVjdG9yID0gc3ViU2VsZWN0b3I7Ci0gICAgICAgIHN1YlNlbGVjdG9yID0gc3Vi
U2VsZWN0b3ItPnRhZ0hpc3RvcnkoKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQot
Ym9vbCBDb250ZW50U2VsZWN0b3JRdWVyeTo6dmFsaWRhdGVTZWxlY3Rvckxpc3QoKQotewotICAg
IGlmICghbV9zZWxlY3Rvckxpc3QuZmlyc3QoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0g
ICAgZm9yIChDU1NTZWxlY3Rvciogc2VsZWN0b3IgPSBtX3NlbGVjdG9yTGlzdC5maXJzdCgpOyBz
ZWxlY3Rvcjsgc2VsZWN0b3IgPSBtX3NlbGVjdG9yTGlzdC5uZXh0KHNlbGVjdG9yKSkgewotICAg
ICAgICBpZiAoIXZhbGlkYXRlU2VsZWN0b3Ioc2VsZWN0b3IpKQotICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgIH0KLQotICAgIHJldHVybiB0cnVlOwotfQotCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Db250ZW50U2VsZWN0b3JRdWVyeS5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVudFNlbGVjdG9yUXVlcnkuaAppbmRleCAyYzcxMGE1
ODUyZTkyZDc2ODgyYzdjMjA3NTBiZmQyNmRhMmFhMDNiLi43OGEwODI0NTRjOWQxMmYyYjBmM2M1
NTA0YThiOTBhYmU5ZTFlYmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9Db250ZW50U2VsZWN0b3JRdWVyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmgKQEAgLTY0LDE4ICs2NCwxNCBAQCBwcml2YXRlOgogY2xh
c3MgQ29udGVudFNlbGVjdG9yUXVlcnkgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENvbnRl
bnRTZWxlY3RvclF1ZXJ5KTsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBDb250ZW50U2VsZWN0b3JR
dWVyeShjb25zdCBJbnNlcnRpb25Qb2ludCopOworICAgIGV4cGxpY2l0IENvbnRlbnRTZWxlY3Rv
clF1ZXJ5KEluc2VydGlvblBvaW50Kik7CiAKLSAgICBib29sIGlzVmFsaWRTZWxlY3RvcigpIGNv
bnN0OwogICAgIGJvb2wgbWF0Y2hlcyhjb25zdCBWZWN0b3I8UmVmUHRyPE5vZGU+ID4mIHNpYmxp
bmdzLCBpbnQgbnRoTm9kZSkgY29uc3Q7CiBwcml2YXRlOgotICAgIGJvb2wgdmFsaWRhdGVTZWxl
Y3Rvckxpc3QoKTsKIAotICAgIGNvbnN0IEluc2VydGlvblBvaW50KiBtX2luc2VydGlvblBvaW50
OworICAgIEluc2VydGlvblBvaW50KiBtX2luc2VydGlvblBvaW50OwogICAgIENvbnRlbnRTZWxl
Y3RvckRhdGFMaXN0IG1fc2VsZWN0b3JzOwotICAgIENTU1NlbGVjdG9yTGlzdCBtX3NlbGVjdG9y
TGlzdDsKICAgICBDb250ZW50U2VsZWN0b3JDaGVja2VyIG1fc2VsZWN0b3JDaGVja2VyOwotICAg
IGJvb2wgbV9pc1ZhbGlkU2VsZWN0b3I7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcAppbmRleCBjMGI5YmJhODA1YWQyNWNj
ZTU4MjdmMWQ0MDA3NDMyM2NiMGM1NDcxLi43MTQ4OWY5ZjM4ZDM3MTlkMjM4ZTBkNzdiMmEzZDAz
MzBlNDUwMjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29u
dGVudEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250
ZW50RWxlbWVudC5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJIVE1MQ29udGVudEVsZW1lbnQuaCIKIAorI2luY2x1ZGUgIkNTU1BhcnNlci5oIgog
I2luY2x1ZGUgIkNvbnRlbnREaXN0cmlidXRvci5oIgogI2luY2x1ZGUgIkNvbnRlbnRTZWxlY3Rv
clF1ZXJ5LmgiCiAjaW5jbHVkZSAiRWxlbWVudFNoYWRvdy5oIgpAQCAtNjQsNiArNjUsOCBAQCBQ
YXNzUmVmUHRyPEhUTUxDb250ZW50RWxlbWVudD4gSFRNTENvbnRlbnRFbGVtZW50OjpjcmVhdGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdAogSFRNTENvbnRlbnRFbGVtZW50OjpIVE1MQ29udGVudEVs
ZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQogICAg
IDogSW5zZXJ0aW9uUG9pbnQobmFtZSwgZG9jdW1lbnQpCiAgICAgLCBtX3JlZ2lzdGVyZWRXaXRo
U2hhZG93Um9vdChmYWxzZSkKKyAgICAsIG1fc2hvdWxkUGFyc2VTZWxlY3Rvckxpc3QoZmFsc2Up
CisgICAgLCBtX2lzVmFsaWRTZWxlY3Rvcih0cnVlKQogewogfQogCkBAIC03NiwxNSArNzksMjMg
QEAgY29uc3QgQXRvbWljU3RyaW5nJiBIVE1MQ29udGVudEVsZW1lbnQ6OnNlbGVjdCgpIGNvbnN0
CiAgICAgcmV0dXJuIGdldEF0dHJpYnV0ZShzZWxlY3RBdHRyKTsKIH0KIAotYm9vbCBIVE1MQ29u
dGVudEVsZW1lbnQ6OmlzU2VsZWN0VmFsaWQoKSBjb25zdAorYm9vbCBIVE1MQ29udGVudEVsZW1l
bnQ6OmlzU2VsZWN0VmFsaWQoKQogewotICAgIENvbnRlbnRTZWxlY3RvclF1ZXJ5IHF1ZXJ5KHRo
aXMpOwotICAgIHJldHVybiBxdWVyeS5pc1ZhbGlkU2VsZWN0b3IoKTsKKyAgICBlbnN1cmVTZWxl
Y3RQYXJzZWQoKTsKKyAgICByZXR1cm4gbV9pc1ZhbGlkU2VsZWN0b3I7CiB9CiAKLXZvaWQgSFRN
TENvbnRlbnRFbGVtZW50OjpzZXRTZWxlY3QoY29uc3QgQXRvbWljU3RyaW5nJiBzZWxlY3RWYWx1
ZSkKK3ZvaWQgSFRNTENvbnRlbnRFbGVtZW50OjplbnN1cmVTZWxlY3RQYXJzZWQoKQogewotICAg
IHNldEF0dHJpYnV0ZShzZWxlY3RBdHRyLCBzZWxlY3RWYWx1ZSk7CisgICAgaWYgKCFtX3Nob3Vs
ZFBhcnNlU2VsZWN0b3JMaXN0KQorICAgICAgICByZXR1cm47CisKKyAgICBDU1NQYXJzZXIgcGFy
c2VyKGRvY3VtZW50KCkpOworICAgIHBhcnNlci5wYXJzZVNlbGVjdG9yKHNlbGVjdCgpLCBtX3Nl
bGVjdG9yTGlzdCk7CisgICAgbV9zaG91bGRQYXJzZVNlbGVjdG9yTGlzdCA9IGZhbHNlOworICAg
IG1faXNWYWxpZFNlbGVjdG9yID0gdmFsaWRhdGVTZWxlY3QoKTsKKyAgICBpZiAoIW1faXNWYWxp
ZFNlbGVjdG9yKQorICAgICAgICBtX3NlbGVjdG9yTGlzdCA9IENTU1NlbGVjdG9yTGlzdCgpOwog
fQogCiB2b2lkIEhUTUxDb250ZW50RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgQXR0cmli
dXRlJiBhdHRyaWJ1dGUpCkBAIC05Miw2ICsxMDMsNyBAQCB2b2lkIEhUTUxDb250ZW50RWxlbWVu
dDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJiBhdHRyaWJ1dGUpCiAgICAgaWYgKGF0
dHJpYnV0ZS5uYW1lKCkgPT0gc2VsZWN0QXR0cikgewogICAgICAgICBpZiAoU2hhZG93Um9vdCog
cm9vdCA9IHNoYWRvd1Jvb3QoKSkKICAgICAgICAgICAgIHJvb3QtPm93bmVyKCktPmludmFsaWRh
dGVEaXN0cmlidXRpb24oKTsKKyAgICAgICAgbV9zaG91bGRQYXJzZVNlbGVjdG9yTGlzdCA9IHRy
dWU7CiAgICAgfSBlbHNlCiAgICAgICAgIEluc2VydGlvblBvaW50OjpwYXJzZUF0dHJpYnV0ZShh
dHRyaWJ1dGUpOwogfQpAQCAtMTIxLDQgKzEzMyw5MSBAQCB2b2lkIEhUTUxDb250ZW50RWxlbWVu
dDo6cmVtb3ZlZEZyb20oQ29udGFpbmVyTm9kZSogaW5zZXJ0aW9uUG9pbnQpCiAgICAgSW5zZXJ0
aW9uUG9pbnQ6OnJlbW92ZWRGcm9tKGluc2VydGlvblBvaW50KTsKIH0KIAorc3RhdGljIGJvb2wg
dmFsaWRhdGVTdWJTZWxlY3RvcihDU1NTZWxlY3Rvciogc2VsZWN0b3IpCit7CisgICAgc3dpdGNo
IChzZWxlY3Rvci0+bV9tYXRjaCkgeworICAgIGNhc2UgQ1NTU2VsZWN0b3I6Ok5vbmU6CisgICAg
Y2FzZSBDU1NTZWxlY3Rvcjo6SWQ6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6Q2xhc3M6CisgICAg
Y2FzZSBDU1NTZWxlY3Rvcjo6RXhhY3Q6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6U2V0OgorICAg
IGNhc2UgQ1NTU2VsZWN0b3I6Okxpc3Q6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6SHlwaGVuOgor
ICAgIGNhc2UgQ1NTU2VsZWN0b3I6OkNvbnRhaW46CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6QmVn
aW46CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6RW5kOgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50OgorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UGFnZVBzZXVkb0NsYXNzOgorICAgIGNhc2UgQ1NTU2Vs
ZWN0b3I6OlBzZXVkb0NsYXNzOgorICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBzd2l0Y2gg
KHNlbGVjdG9yLT5wc2V1ZG9UeXBlKCkpIHsKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9F
bXB0eToKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9MaW5rOgorICAgIGNhc2UgQ1NTU2Vs
ZWN0b3I6OlBzZXVkb1Zpc2l0ZWQ6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvVGFyZ2V0
OgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0VuYWJsZWQ6CisgICAgY2FzZSBDU1NTZWxl
Y3Rvcjo6UHNldWRvRGlzYWJsZWQ6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2hlY2tl
ZDoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9JbmRldGVybWluYXRlOgorICAgIGNhc2Ug
Q1NTU2VsZWN0b3I6OlBzZXVkb050aENoaWxkOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVk
b050aExhc3RDaGlsZDoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9OdGhPZlR5cGU6Cisg
ICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTnRoTGFzdE9mVHlwZToKKyAgICBjYXNlIENTU1Nl
bGVjdG9yOjpQc2V1ZG9GaXJzdENoaWxkOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0xh
c3RDaGlsZDoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9GaXJzdE9mVHlwZToKKyAgICBj
YXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9MYXN0T2ZUeXBlOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6
OlBzZXVkb09ubHlPZlR5cGU6CisgICAgICAgIHJldHVybiB0cnVlOworICAgIGRlZmF1bHQ6Cisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9CisKK3N0YXRpYyBib29sIHZhbGlkYXRlU2Vs
ZWN0b3IoQ1NTU2VsZWN0b3IqIHNlbGVjdG9yKQoreworICAgIEFTU0VSVChzZWxlY3Rvcik7CisK
KyAgICBpZiAoIXZhbGlkYXRlU3ViU2VsZWN0b3Ioc2VsZWN0b3IpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBDU1NTZWxlY3RvciogcHJldlN1YlNlbGVjdG9yID0gc2VsZWN0b3I7Cisg
ICAgQ1NTU2VsZWN0b3IqIHN1YlNlbGVjdG9yID0gc2VsZWN0b3ItPnRhZ0hpc3RvcnkoKTsKKwor
ICAgIHdoaWxlIChzdWJTZWxlY3RvcikgeworICAgICAgICBpZiAocHJldlN1YlNlbGVjdG9yLT5y
ZWxhdGlvbigpICE9IENTU1NlbGVjdG9yOjpTdWJTZWxlY3RvcikKKyAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAgICAgaWYgKCF2YWxpZGF0ZVN1YlNlbGVjdG9yKHN1YlNlbGVjdG9yKSkK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBwcmV2U3ViU2VsZWN0b3IgPSBz
dWJTZWxlY3RvcjsKKyAgICAgICAgc3ViU2VsZWN0b3IgPSBzdWJTZWxlY3Rvci0+dGFnSGlzdG9y
eSgpOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCitib29sIEhUTUxDb250ZW50RWxl
bWVudDo6dmFsaWRhdGVTZWxlY3QoKSBjb25zdAoreworICAgIEFTU0VSVCghbV9zaG91bGRQYXJz
ZVNlbGVjdG9yTGlzdCk7CisKKyAgICBpZiAoc2VsZWN0KCkuaXNOdWxsKCkgfHwgc2VsZWN0KCku
aXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGlmICghbV9zZWxlY3Rvckxp
c3QuZmlyc3QoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgZm9yIChDU1NTZWxlY3Rv
ciogc2VsZWN0b3IgPSBtX3NlbGVjdG9yTGlzdC5maXJzdCgpOyBzZWxlY3Rvcjsgc2VsZWN0b3Ig
PSBtX3NlbGVjdG9yTGlzdC5uZXh0KHNlbGVjdG9yKSkgeworICAgICAgICBpZiAoIXZhbGlkYXRl
U2VsZWN0b3Ioc2VsZWN0b3IpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKwor
ICAgIHJldHVybiB0cnVlOworfQorCisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvSFRNTENvbnRlbnRFbGVtZW50LmgKaW5kZXggMmEzYTMyY2VhNTU5MjllODdjZTcxYmFjNzNi
Nzg2NGM3OTBmMGZmNi4uMDQyNTRlMTJiMjIzYmMwMzkwM2VkMzQyY2JhZWJmMTdkZTlmMjAxNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmgK
QEAgLTMxLDYgKzMxLDcgQEAKICNpZm5kZWYgSFRNTENvbnRlbnRFbGVtZW50X2gKICNkZWZpbmUg
SFRNTENvbnRlbnRFbGVtZW50X2gKIAorI2luY2x1ZGUgIkNTU1NlbGVjdG9yTGlzdC5oIgogI2lu
Y2x1ZGUgIkluc2VydGlvblBvaW50LmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIApAQCAt
NDQsOSArNDUsMTAgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+SFRNTENvbnRlbnRFbGVtZW50
KCk7CiAKLSAgICBjb25zdCBBdG9taWNTdHJpbmcmIHNlbGVjdCgpIGNvbnN0OwogICAgIHZvaWQg
c2V0U2VsZWN0KGNvbnN0IEF0b21pY1N0cmluZyYpOwotICAgIHZpcnR1YWwgYm9vbCBpc1NlbGVj
dFZhbGlkKCkgY29uc3Q7CisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNlbGVjdCgp
IGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBpc1NlbGVjdFZhbGlkKCk7CisgICAgdmlydHVhbCBj
b25zdCBDU1NTZWxlY3Rvckxpc3QmIHNlbGVjdG9yTGlzdCgpOwogCiBwcm90ZWN0ZWQ6CiAgICAg
SFRNTENvbnRlbnRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwpAQCAt
NTYsMTAgKzU4LDI4IEBAIHByb3RlY3RlZDoKIAogcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQg
cGFyc2VBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJikgT1ZFUlJJREU7CisgICAgdm9pZCBlbnN1
cmVTZWxlY3RQYXJzZWQoKTsKKyAgICBib29sIHZhbGlkYXRlU2VsZWN0KCkgY29uc3Q7CiAKICAg
ICBib29sIG1fcmVnaXN0ZXJlZFdpdGhTaGFkb3dSb290OworCisgICAgYm9vbCBtX3Nob3VsZFBh
cnNlU2VsZWN0b3JMaXN0OworICAgIGJvb2wgbV9pc1ZhbGlkU2VsZWN0b3I7CisgICAgQ1NTU2Vs
ZWN0b3JMaXN0IG1fc2VsZWN0b3JMaXN0OwogfTsKIAoraW5saW5lIHZvaWQgSFRNTENvbnRlbnRF
bGVtZW50OjpzZXRTZWxlY3QoY29uc3QgQXRvbWljU3RyaW5nJiBzZWxlY3RWYWx1ZSkKK3sKKyAg
ICBzZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpzZWxlY3RBdHRyLCBzZWxlY3RWYWx1ZSk7CisgICAg
bV9zaG91bGRQYXJzZVNlbGVjdG9yTGlzdCA9IHRydWU7Cit9CisKK2lubGluZSBjb25zdCBDU1NT
ZWxlY3Rvckxpc3QmIEhUTUxDb250ZW50RWxlbWVudDo6c2VsZWN0b3JMaXN0KCkKK3sKKyAgICBl
bnN1cmVTZWxlY3RQYXJzZWQoKTsKKyAgICByZXR1cm4gbV9zZWxlY3Rvckxpc3Q7Cit9CisKIGlu
bGluZSBib29sIGlzSFRNTENvbnRlbnRFbGVtZW50KGNvbnN0IE5vZGUqIG5vZGUpCiB7CiAgICAg
QVNTRVJUKG5vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRN
TFNoYWRvd0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTFNoYWRv
d0VsZW1lbnQuY3BwCmluZGV4IDdkN2U0MTUyOWZiZGYxNmYxMzA0MDhlZTIzMmYxOThiODI4MzUy
NjQuLmRhMThiYThlYWU1ZTRiMjRmZTVhZmM2NjQ5NzllNmIyZDVhNTk2NGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxTaGFkb3dFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MU2hhZG93RWxlbWVudC5jcHAKQEAgLTg3LDQg
Kzg3LDEwIEBAIHZvaWQgSFRNTFNoYWRvd0VsZW1lbnQ6OnJlbW92ZWRGcm9tKENvbnRhaW5lck5v
ZGUqIGluc2VydGlvblBvaW50KQogICAgIEluc2VydGlvblBvaW50OjpyZW1vdmVkRnJvbShpbnNl
cnRpb25Qb2ludCk7CiB9CiAKK2NvbnN0IENTU1NlbGVjdG9yTGlzdCYgSFRNTFNoYWRvd0VsZW1l
bnQ6OmVtcHR5U2VsZWN0b3JMaXN0KCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKENTU1Nl
bGVjdG9yTGlzdCwgc2VsZWN0b3JMaXN0LCAoQ1NTU2VsZWN0b3JMaXN0KCkpKTsKKyAgICByZXR1
cm4gc2VsZWN0b3JMaXN0OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MU2hhZG93RWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTFNoYWRvd0VsZW1lbnQuaAppbmRleCBiYWMyYjkyYjU3
OTYxYjIzZGZjYzJlMzJlMWY1NWIyZDU3ZTMyNjQ1Li44NzA1OTg5NmY3N2QyMDIzYzBmMmFmMWM2
ODg0MzczM2RmMTcxM2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9I
VE1MU2hhZG93RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxT
aGFkb3dFbGVtZW50LmgKQEAgLTQyLDggKzQyLDkgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+
SFRNTFNoYWRvd0VsZW1lbnQoKTsKIAotICAgIGNvbnN0IEF0b21pY1N0cmluZyYgc2VsZWN0KCkg
Y29uc3Q7Ci0gICAgYm9vbCBpc1NlbGVjdFZhbGlkKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4g
dHJ1ZTsgfQorICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzZWxlY3QoKSBjb25zdDsK
KyAgICB2aXJ0dWFsIGJvb2wgaXNTZWxlY3RWYWxpZCgpIE9WRVJSSURFIHsgcmV0dXJuIHRydWU7
IH0KKyAgICB2aXJ0dWFsIGNvbnN0IENTU1NlbGVjdG9yTGlzdCYgc2VsZWN0b3JMaXN0KCkgeyBy
ZXR1cm4gZW1wdHlTZWxlY3Rvckxpc3QoKTsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBJ
bnNlcnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0IGluc2VydGVkSW50byhDb250YWluZXJOb2RlKikg
T1ZFUlJJREU7CkBAIC01Miw2ICs1Myw4IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgSFRN
TFNoYWRvd0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAKKyAgICBz
dGF0aWMgY29uc3QgQ1NTU2VsZWN0b3JMaXN0JiBlbXB0eVNlbGVjdG9yTGlzdCgpOworCiAgICAg
Ym9vbCBtX3JlZ2lzdGVyZWRXaXRoU2hhZG93Um9vdDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L0luc2VydGlvblBvaW50LmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9JbnNlcnRpb25Qb2ludC5oCmluZGV4IDI0M2EwOGMxOGEzNDYxMDMwMzk1ZDlh
NWJhN2QyMDU1OWI2NzExYTkuLjIzZGFkOGRjYTcwODEyMzE4MjFmOTdkOGJmMzA0ZDc3MzMzMjc2
ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0luc2VydGlvblBvaW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSW5zZXJ0aW9uUG9pbnQuaApAQCAt
MzEsNiArMzEsNyBAQAogI2lmbmRlZiBJbnNlcnRpb25Qb2ludF9oCiAjZGVmaW5lIEluc2VydGlv
blBvaW50X2gKIAorI2luY2x1ZGUgIkNTU1NlbGVjdG9yTGlzdC5oIgogI2luY2x1ZGUgIkNvbnRl
bnREaXN0cmlidXRvci5oIgogI2luY2x1ZGUgIkVsZW1lbnRTaGFkb3cuaCIKICNpbmNsdWRlICJI
VE1MRWxlbWVudC5oIgpAQCAtNTMsNyArNTQsOCBAQCBwdWJsaWM6CiAgICAgUGFzc1JlZlB0cjxO
b2RlTGlzdD4gZ2V0RGlzdHJpYnV0ZWROb2RlcygpIGNvbnN0OwogCiAgICAgdmlydHVhbCBjb25z
dCBBdG9taWNTdHJpbmcmIHNlbGVjdCgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIGJvb2wgaXNT
ZWxlY3RWYWxpZCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNTZWxlY3RWYWxpZCgp
ID0gMDsKKyAgICB2aXJ0dWFsIGNvbnN0IENTU1NlbGVjdG9yTGlzdCYgc2VsZWN0b3JMaXN0KCkg
PSAwOwogCiAgICAgYm9vbCByZXNldFN0eWxlSW5oZXJpdGFuY2UoKSBjb25zdDsKICAgICB2b2lk
IHNldFJlc2V0U3R5bGVJbmhlcml0YW5jZShib29sKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>