<?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>90291</bug_id>
          
          <creation_ts>2012-06-29 10:04:00 -0700</creation_ts>
          <short_desc>[BlackBerry] Backing store output flickers when using WebPageCompositor</short_desc>
          <delta_ts>2012-07-31 12:33:07 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit BlackBerry</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Arvid Nilsson">anilsson</reporter>
          <assigned_to name="Arvid Nilsson">anilsson</assigned_to>
          <cc>fspacek</cc>
    
    <cc>jpetsovits</cc>
    
    <cc>levin+threading</cc>
    
    <cc>mifenton</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>staikos</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yong.li.webkit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>660586</commentid>
    <comment_count>0</comment_count>
    <who name="Arvid Nilsson">anilsson</who>
    <bug_when>2012-06-29 10:04:00 -0700</bug_when>
    <thetext>The backing store doesn&apos;t know when the API client swaps the buffers, so it doesn&apos;t know when to signal the blit generation condvar. Instead, use EGL fence sync when available, so we don&apos;t have to know.

This is PR152132</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682869</commentid>
    <comment_count>1</comment_count>
      <attachid>155476</attachid>
    <who name="Arvid Nilsson">anilsson</who>
    <bug_when>2012-07-31 02:41:36 -0700</bug_when>
    <thetext>Created attachment 155476
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682991</commentid>
    <comment_count>2</comment_count>
      <attachid>155476</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-07-31 06:48:06 -0700</bug_when>
    <thetext>Comment on attachment 155476
Patch

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682992</commentid>
    <comment_count>3</comment_count>
      <attachid>155476</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-31 06:50:08 -0700</bug_when>
    <thetext>Comment on attachment 155476
Patch

Rejecting attachment 155476 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
ingStore_p.h
Hunk #1 succeeded at 369 (offset 1 line).
patching file Source/WebKit/blackberry/WebKitSupport/BackingStoreTile.cpp
patching file Source/WebKit/blackberry/WebKitSupport/BackingStoreTile.h
patching file Source/WebKit/blackberry/WebKitSupport/SurfacePool.cpp
patching file Source/WebKit/blackberry/WebKitSupport/SurfacePool.h

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--force&apos;, u&apos;--reviewer&apos;, u&apos;Rob Buis&apos;]&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue/

Full output: http://queues.webkit.org/results/13404035</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683001</commentid>
    <comment_count>4</comment_count>
      <attachid>155524</attachid>
    <who name="Arvid Nilsson">anilsson</who>
    <bug_when>2012-07-31 07:01:19 -0700</bug_when>
    <thetext>Created attachment 155524
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683003</commentid>
    <comment_count>5</comment_count>
      <attachid>155524</attachid>
    <who name="Arvid Nilsson">anilsson</who>
    <bug_when>2012-07-31 07:07:59 -0700</bug_when>
    <thetext>Comment on attachment 155524
Patch

New patch without merge conflicts this time...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683006</commentid>
    <comment_count>6</comment_count>
      <attachid>155524</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-07-31 07:14:07 -0700</bug_when>
    <thetext>Comment on attachment 155524
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=155524&amp;action=review

&gt; Source/WebKit/blackberry/Api/BackingStore.cpp:1133
&gt; +        // TODO: This code is only needed for EGLImage code path, but preferrably BackingStore

WebKit generally uses FIXME

&gt; Source/WebKit/blackberry/Api/BackingStore.cpp:1538
&gt; +    // TODO: This code is only needed for EGLImage code path, but preferrably BackingStore

ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683007</commentid>
    <comment_count>7</comment_count>
      <attachid>155524</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-07-31 07:16:17 -0700</bug_when>
    <thetext>Comment on attachment 155524
Patch

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683032</commentid>
    <comment_count>8</comment_count>
      <attachid>155524</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-31 07:35:40 -0700</bug_when>
    <thetext>Comment on attachment 155524
Patch

Clearing flags on attachment: 155524

Committed r124199: &lt;http://trac.webkit.org/changeset/124199&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683033</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-31 07:35:44 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683384</commentid>
    <comment_count>10</comment_count>
    <who name="Arvid Nilsson">anilsson</who>
    <bug_when>2012-07-31 12:33:07 -0700</bug_when>
    <thetext>I forgot to say in the changelog, this is PR 152132</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155476</attachid>
            <date>2012-07-31 02:41:36 -0700</date>
            <delta_ts>2012-07-31 07:01:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90291-20120731114118.patch</filename>
            <type>text/plain</type>
            <size>17854</size>
            <attacher name="Arvid Nilsson">anilsson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzOTM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpp
bmRleCAxZGQ0NTU0MTA1NWYzZThkNjZkYWRmODNmZjc0NDAwNzNiNjUxZmE2Li45MTJmY2ViZjY3
MDY4ZDE4ZTI1ODIwZThjMzgzYTdkYTI1Yjk2Njg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw0MCBAQAorMjAxMi0wNy0zMCAgQXJ2aWQgTmlsc3NvbiAgPGFuaWxz
c29uQHJpbS5jb20+CisKKyAgICAgICAgW0JsYWNrQmVycnldIEJhY2tpbmcgc3RvcmUgb3V0cHV0
IGZsaWNrZXJzIHdoZW4gdXNpbmcgV2ViUGFnZUNvbXBvc2l0b3IKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwMjkxCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGJhY2tpbmcgc3RvcmUgZG9lc24ndCBr
bm93IHdoZW4gdGhlIEFQSSBjbGllbnQgc3dhcHMgdGhlIGJ1ZmZlcnMsCisgICAgICAgIHNvIGl0
IGRvZXNuJ3Qga25vdyB3aGVuIHRvIHNpZ25hbCB0aGUgYmxpdCBnZW5lcmF0aW9uIGNvbmRpdGlv
bgorICAgICAgICB2YXJpYWJsZS4gRml4ZWQgYnkgdXNpbmcgRUdMIGZlbmNlIHN5bmMgaW5zdGVh
ZCwgd2hlbiBhdmFpbGFibGUsIHNvIHdlCisgICAgICAgIGRvbid0IGhhdmUgdG8ga25vdy4KKwor
ICAgICAgICBSZXZpZXdlZCBpbnRlcm5hbGx5IGJ5IEZpbGlwIFNwYWNlay4KKworICAgICAgICAq
IEFwaS9CYWNraW5nU3RvcmUuY3BwOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpCYWNr
aW5nU3RvcmVQcml2YXRlOjpCYWNraW5nU3RvcmVQcml2YXRlKToKKyAgICAgICAgKEJsYWNrQmVy
cnk6OldlYktpdDo6QmFja2luZ1N0b3JlUHJpdmF0ZTo6fkJhY2tpbmdTdG9yZVByaXZhdGUpOgor
ICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpCYWNraW5nU3RvcmVQcml2YXRlOjpyZW5kZXIp
OgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpCYWNraW5nU3RvcmVQcml2YXRlOjpibGl0
Q29udGVudHMpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpCYWNraW5nU3RvcmVQcml2
YXRlOjpjb21wb3NpdGVDb250ZW50cyk6CisgICAgICAgICogQXBpL0JhY2tpbmdTdG9yZV9wLmg6
CisgICAgICAgIChCYWNraW5nU3RvcmVQcml2YXRlKToKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0
L0JhY2tpbmdTdG9yZVRpbGUuY3BwOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpUaWxl
QnVmZmVyOjpUaWxlQnVmZmVyKToKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0JhY2tpbmdTdG9y
ZVRpbGUuaDoKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6VGlsZUJ1ZmZlcjo6c3luY09i
amVjdCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OlRpbGVCdWZmZXI6OnNldFN5bmNP
YmplY3QpOgorICAgICAgICAoVGlsZUJ1ZmZlcik6CisgICAgICAgICogV2ViS2l0U3VwcG9ydC9T
dXJmYWNlUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoQmxhY2tCZXJyeTo6
V2ViS2l0OjpTdXJmYWNlUG9vbDo6U3VyZmFjZVBvb2wpOgorICAgICAgICAoQmxhY2tCZXJyeTo6
V2ViS2l0OjpTdXJmYWNlUG9vbDo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChCbGFja0JlcnJ5OjpX
ZWJLaXQ6OlN1cmZhY2VQb29sOjp3YWl0Rm9yQnVmZmVyKToKKyAgICAgICAgKEJsYWNrQmVycnk6
OldlYktpdDo6U3VyZmFjZVBvb2w6Om5vdGlmeUJ1ZmZlcnNDb21wb3NpdGVkKToKKyAgICAgICAg
KiBXZWJLaXRTdXBwb3J0L1N1cmZhY2VQb29sLmg6CisgICAgICAgIChTdXJmYWNlUG9vbCk6CisK
IDIwMTItMDctMjcgIE1pa2UgRmVudG9uICA8bWlmZW50b25AcmltLmNvbT4KIAogICAgICAgICBb
QmxhY2tCZXJyeV0gU3dpdGNoIElucHV0SGFuZGxlciBtYWxsb2MgdXNlIHRvIGZhc3RNYWxsb2Mg
Zm9yIGNhc2VzIHRoYXQgc2hvdWxkIG5ldmVyIGZhaWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9BcGkvQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9BcGkvQmFja2luZ1N0b3JlLmNwcAppbmRleCA3OTMwMGY0MTYzYWFhZDViNmU2NDBkYzYz
Yzc0ZjE0ZWViMDdkZDY4Li5iYzU0N2IwN2Y3NGU5M2Y1YzRhN2FjZGM5OTRiMjA3NmIwOGI3MDJh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL0JhY2tpbmdTdG9yZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9CYWNraW5nU3RvcmUuY3BwCkBA
IC0yMDksNyArMjA5LDYgQEAgQmFja2luZ1N0b3JlUHJpdmF0ZTo6QmFja2luZ1N0b3JlUHJpdmF0
ZSgpCiAgICAgLCBtX2hhc0JsaXRKb2JzKGZhbHNlKQogICAgICwgbV9jdXJyZW50V2luZG93QmFj
a0J1ZmZlcigwKQogICAgICwgbV9wcmVmZXJyZWRUaWxlTWF0cml4RGltZW5zaW9uKFZlcnRpY2Fs
KQotICAgICwgbV9ibGl0R2VuZXJhdGlvbigtMSkKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCiAgICAgLCBtX25lZWRzRHJhd0xheWVyc09uQ29tbWl0KGZhbHNlKQogICAgICwgbV9p
c0RpcmVjdFJlbmRlcmluZ0FuaW1hdGlvbk1lc3NhZ2VTY2hlZHVsZWQoZmFsc2UpCkBAIC0yMjYs
MTQgKzIyNSw2IEBAIEJhY2tpbmdTdG9yZVByaXZhdGU6OkJhY2tpbmdTdG9yZVByaXZhdGUoKQog
ICAgIHB0aHJlYWRfbXV0ZXhhdHRyX3NldHR5cGUoJmF0dHIsIFBUSFJFQURfTVVURVhfUkVDVVJT
SVZFKTsKICAgICBwdGhyZWFkX211dGV4X2luaXQoJm1fbXV0ZXgsICZhdHRyKTsKICAgICBwdGhy
ZWFkX211dGV4YXR0cl9kZXN0cm95KCZhdHRyKTsKLQotICAgIHB0aHJlYWRfbXV0ZXhfaW5pdCgm
bV9ibGl0R2VuZXJhdGlvbkxvY2ssIDApOwotCi0gICAgcHRocmVhZF9jb25kYXR0cl90IGNvbmRh
dHRyOwotICAgIHB0aHJlYWRfY29uZGF0dHJfaW5pdCgmY29uZGF0dHIpOwotICAgIHB0aHJlYWRf
Y29uZGF0dHJfc2V0Y2xvY2soJmNvbmRhdHRyLCBDTE9DS19NT05PVE9OSUMpOwotICAgIHB0aHJl
YWRfY29uZF9pbml0KCZtX2JsaXRHZW5lcmF0aW9uQ29uZCwgJmNvbmRhdHRyKTsKLSAgICBwdGhy
ZWFkX2NvbmRhdHRyX2Rlc3Ryb3koJmNvbmRhdHRyKTsKIH0KIAogQmFja2luZ1N0b3JlUHJpdmF0
ZTo6fkJhY2tpbmdTdG9yZVByaXZhdGUoKQpAQCAtMjQ2LDggKzIzNyw2IEBAIEJhY2tpbmdTdG9y
ZVByaXZhdGU6On5CYWNraW5nU3RvcmVQcml2YXRlKCkKICAgICBkZWxldGUgYmFjazsKICAgICBt
X2JhY2tTdGF0ZSA9IDA7CiAKLSAgICBwdGhyZWFkX2NvbmRfZGVzdHJveSgmbV9ibGl0R2VuZXJh
dGlvbkNvbmQpOwotICAgIHB0aHJlYWRfbXV0ZXhfZGVzdHJveSgmbV9ibGl0R2VuZXJhdGlvbkxv
Y2spOwogICAgIHB0aHJlYWRfbXV0ZXhfZGVzdHJveSgmbV9tdXRleCk7CiB9CiAKQEAgLTExMDYs
OCArMTA5NSw2IEBAIGJvb2wgQmFja2luZ1N0b3JlUHJpdmF0ZTo6cmVuZGVyKGNvbnN0IFBsYXRm
b3JtOjpJbnRSZWN0JiByZWN0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9zdXNwZW5k
QmFja2luZ1N0b3JlVXBkYXRlcyA/ICJ0cnVlIiA6ICJmYWxzZSIpOwogI2VuZGlmCiAKLSAgICBi
b29sIGJsaXR0aW5nRGlyZWN0bHlUb0NvbXBvc2l0aW5nV2luZG93ID0gaXNPcGVuR0xDb21wb3Np
dGluZygpOwotCiAgICAgQmFja2luZ1N0b3JlR2VvbWV0cnkqIGN1cnJlbnRTdGF0ZSA9IGZyb250
U3RhdGUoKTsKICAgICBUaWxlTWFwIGN1cnJlbnRNYXAgPSBjdXJyZW50U3RhdGUtPnRpbGVNYXAo
KTsKIApAQCAtMTE0MywyNSArMTEzMCwxMSBAQCBib29sIEJhY2tpbmdTdG9yZVByaXZhdGU6OnJl
bmRlcihjb25zdCBQbGF0Zm9ybTo6SW50UmVjdCYgcmVjdCkKICAgICAgICAgQmxhY2tCZXJyeTo6
UGxhdGZvcm06OkdyYXBoaWNzOjpCdWZmZXIqIG5hdGl2ZUJ1ZmZlcgogICAgICAgICAgICAgPSB0
aWxlLT5iYWNrQnVmZmVyKCktPm5hdGl2ZUJ1ZmZlcigpOwogCi0gICAgICAgIC8vIFRoaXMgY29k
ZSBpcyBvbmx5IG5lZWRlZCBmb3IgRUdMSW1hZ2UgY29kZSBwYXRoLCBhbmQgb25seSBlZmZlY3Rp
dmUgaWYgd2UgYXJlIHN3YXBwaW5nIHRoZSByZW5kZXIgdGFyZ2V0LgotICAgICAgICAvLyBUaGlz
IGNvbWJpbmF0aW9uIGlzIG9ubHkgdHJ1ZSBpZiB0aGVyZSdzIGEgR0xFUzJVc2FnZSB3aW5kb3cu
Ci0gICAgICAgIC8vIEZJWE1FOiBVc2UgYW4gRUdMIGZlbmNlIGluc3RlYWQsIFBSMTUyMTMyCi0g
ICAgICAgIGlmIChibGl0dGluZ0RpcmVjdGx5VG9Db21wb3NpdGluZ1dpbmRvdykgewotICAgICAg
ICAgICAgcHRocmVhZF9tdXRleF9sb2NrKCZtX2JsaXRHZW5lcmF0aW9uTG9jayk7Ci0gICAgICAg
ICAgICB3aGlsZSAobV9ibGl0R2VuZXJhdGlvbiA9PSB0aWxlLT5iYWNrQnVmZmVyKCktPmJsaXRH
ZW5lcmF0aW9uKCkpIHsKLSAgICAgICAgICAgICAgICBpbnQgZXJyID0gcHRocmVhZF9jb25kX3Rp
bWVkd2FpdCgmbV9ibGl0R2VuZXJhdGlvbkNvbmQsICZtX2JsaXRHZW5lcmF0aW9uTG9jaywgJm1f
Y3VycmVudEJsaXRFbmQpOwotICAgICAgICAgICAgICAgIGlmIChlcnIgPT0gRVRJTUVET1VUKSB7
Ci0gICAgICAgICAgICAgICAgICAgICsrbV9ibGl0R2VuZXJhdGlvbjsKLSAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChlcnIp
IHsKLSAgICAgICAgICAgICAgICAgICAgQmxhY2tCZXJyeTo6UGxhdGZvcm06OmxvZyhCbGFja0Jl
cnJ5OjpQbGF0Zm9ybTo6TG9nTGV2ZWxDcml0aWNhbCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiY29uZF90aW1lZHdhaXQgZmFpbGVkICglcykiLCBzdHJl
cnJvcihlcnIpKTsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgfQotICAgICAgICAgICAgcHRocmVhZF9tdXRleF91bmxvY2soJm1fYmxp
dEdlbmVyYXRpb25Mb2NrKTsKLSAgICAgICAgfQorICAgICAgICAvLyBUT0RPOiBUaGlzIGNvZGUg
aXMgb25seSBuZWVkZWQgZm9yIEVHTEltYWdlIGNvZGUgcGF0aCwgYnV0IHByZWZlcnJhYmx5IEJh
Y2tpbmdTdG9yZQorICAgICAgICAvLyBzaG91bGQgbm90IGtub3cgdGhhdCwgYW5kIHRoZSBzeW5j
aHJvbml6YXRpb24gc2hvdWxkIGJlIGluIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpHcmFwaGljcwor
ICAgICAgICAvLyBpZiBwb3NzaWJsZS4KKyAgICAgICAgaWYgKGlzT3BlbkdMQ29tcG9zaXRpbmco
KSkKKyAgICAgICAgICAgIFN1cmZhY2VQb29sOjpnbG9iYWxTdXJmYWNlUG9vbCgpLT53YWl0Rm9y
QnVmZmVyKHRpbGUtPmJhY2tCdWZmZXIoKSk7CiAKICAgICAgICAgLy8gTW9kaWZ5IHRoZSBidWZm
ZXIgb25seSBhZnRlciB3ZSd2ZSB3YWl0ZWQgZm9yIHRoZSBidWZmZXIgdG8gYmVjb21lIGF2YWls
YWJsZSBhYm92ZS4KIApAQCAtMTU2Miw3ICsxNTM1LDExIEBAIHZvaWQgQmFja2luZ1N0b3JlUHJp
dmF0ZTo6YmxpdENvbnRlbnRzKGNvbnN0IFBsYXRmb3JtOjpJbnRSZWN0JiBkc3RSZWN0LAogICAg
ICAgICB9CiAgICAgfQogCi0gICAgYm9vbCBibGl0dGluZ0RpcmVjdGx5VG9Db21wb3NpdGluZ1dp
bmRvdyA9IGlzT3BlbkdMQ29tcG9zaXRpbmcoKTsKKyAgICAvLyBUT0RPOiBUaGlzIGNvZGUgaXMg
b25seSBuZWVkZWQgZm9yIEVHTEltYWdlIGNvZGUgcGF0aCwgYnV0IHByZWZlcnJhYmx5IEJhY2tp
bmdTdG9yZQorICAgIC8vIHNob3VsZCBub3Qga25vdyB0aGF0LCBhbmQgdGhlIHN5bmNocm9uaXph
dGlvbiBzaG91bGQgYmUgaW4gQmxhY2tCZXJyeTo6UGxhdGZvcm06OkdyYXBoaWNzCisgICAgLy8g
aWYgcG9zc2libGUuCisgICAgaWYgKGlzT3BlbkdMQ29tcG9zaXRpbmcoKSkKKyAgICAgICAgU3Vy
ZmFjZVBvb2w6Omdsb2JhbFN1cmZhY2VQb29sKCktPm5vdGlmeUJ1ZmZlcnNDb21wb3NpdGVkKGJs
aXR0ZWRUaWxlcyk7CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYg
KFdlYlBhZ2VDb21wb3NpdG9yUHJpdmF0ZSogY29tcG9zaXRvciA9IG1fd2ViUGFnZS0+ZC0+Y29t
cG9zaXRvcigpKSB7CkBAIC0xNTcyLDcgKzE1NDksNyBAQCB2b2lkIEJhY2tpbmdTdG9yZVByaXZh
dGU6OmJsaXRDb250ZW50cyhjb25zdCBQbGF0Zm9ybTo6SW50UmVjdCYgZHN0UmVjdCwKICAgICAg
ICAgICAgIHBhaW50RGVmYXVsdEJhY2tncm91bmQoY29udGVudHMsIHRyYW5zZm9ybWF0aW9uLCBm
YWxzZSAvKmZsdXNoKi8pOwogICAgIH0KIAotICAgIGlmICghYmxpdHRpbmdEaXJlY3RseVRvQ29t
cG9zaXRpbmdXaW5kb3cpCisgICAgaWYgKCFpc09wZW5HTENvbXBvc2l0aW5nKCkpCiAgICAgICAg
IGJsZW5kQ29tcG9zaXRpbmdTdXJmYWNlKGRzdFJlY3QpOwogI2VuZGlmCiAKQEAgLTE2MzEsMjcg
KzE2MDgsNiBAQCB2b2lkIEJhY2tpbmdTdG9yZVByaXZhdGU6OmJsaXRDb250ZW50cyhjb25zdCBQ
bGF0Zm9ybTo6SW50UmVjdCYgZHN0UmVjdCwKICNlbmRpZgogCiAgICAgaW52YWxpZGF0ZVdpbmRv
dyhkc3RSZWN0KTsKLQotICAgIC8vIFRoaXMgY29kZSBpcyBvbmx5IG5lZWRlZCBmb3IgRUdMSW1h
Z2UgY29kZSBwYXRoLCBhbmQgb25seSBlZmZlY3RpdmUgaWYgd2UgYXJlIHN3YXBwaW5nIHRoZSBy
ZW5kZXIgdGFyZ2V0LgotICAgIC8vIFRoaXMgY29tYmluYXRpb24gaXMgb25seSB0cnVlIGlmIHRo
ZXJlJ3MgYSBHTEVTMlVzYWdlIHdpbmRvdy4KLSAgICAvLyBGSVhNRTogVXNlIGFuIEVHTCBmZW5j
ZSBpbnN0ZWFkCi0gICAgaWYgKGJsaXR0aW5nRGlyZWN0bHlUb0NvbXBvc2l0aW5nV2luZG93ICYm
ICFibGl0dGVkVGlsZXMuaXNFbXB0eSgpKSB7Ci0gICAgICAgIHB0aHJlYWRfbXV0ZXhfbG9jaygm
bV9ibGl0R2VuZXJhdGlvbkxvY2spOwotCi0gICAgICAgICsrbV9ibGl0R2VuZXJhdGlvbjsKLSAg
ICAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBibGl0dGVkVGlsZXMuc2l6ZSgpOyAr
K2kpCi0gICAgICAgICAgICBibGl0dGVkVGlsZXNbaV0tPnNldEJsaXRHZW5lcmF0aW9uKG1fYmxp
dEdlbmVyYXRpb24pOwotCi0gICAgICAgIGNsb2NrX2dldHRpbWUoQ0xPQ0tfTU9OT1RPTklDLCAm
bV9jdXJyZW50QmxpdEVuZCk7Ci0gICAgICAgIG1fY3VycmVudEJsaXRFbmQudHZfbnNlYyArPSAz
MCAqIDEwMDAgKiAxMDAwOwotICAgICAgICBpZiAobV9jdXJyZW50QmxpdEVuZC50dl9uc2VjID49
IDEwMDAwMDAwMDBMKSB7Ci0gICAgICAgICAgICBtX2N1cnJlbnRCbGl0RW5kLnR2X3NlYyAgKz0g
MTsKLSAgICAgICAgICAgIG1fY3VycmVudEJsaXRFbmQudHZfbnNlYyAtPSAxMDAwMDAwMDAwTDsK
LSAgICAgICAgfQotCi0gICAgICAgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZtX2JsaXRHZW5lcmF0
aW9uTG9jayk7Ci0gICAgICAgIHB0aHJlYWRfY29uZF9zaWduYWwoJm1fYmxpdEdlbmVyYXRpb25D
b25kKTsKLSAgICB9CiB9CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCkBAIC0x
NjcxLDYgKzE2MjcsNyBAQCB2b2lkIEJhY2tpbmdTdG9yZVByaXZhdGU6OmNvbXBvc2l0ZUNvbnRl
bnRzKFdlYkNvcmU6OkxheWVyUmVuZGVyZXIqIGxheWVyUmVuZGVyZQogCiAgICAgQmFja2luZ1N0
b3JlR2VvbWV0cnkqIGN1cnJlbnRTdGF0ZSA9IGZyb250U3RhdGUoKTsKICAgICBUaWxlTWFwIGN1
cnJlbnRNYXAgPSBjdXJyZW50U3RhdGUtPnRpbGVNYXAoKTsKKyAgICBWZWN0b3I8VGlsZUJ1ZmZl
cio+IGNvbXBvc2l0ZWRUaWxlczsKIAogICAgIFBsYXRmb3JtOjpJbnRSZWN0UmVnaW9uIHRyYW5z
Zm9ybWVkQ29udGVudHNSZWdpb24gPSB0cmFuc2Zvcm1lZENvbnRlbnRzOwogICAgIFBsYXRmb3Jt
OjpJbnRSZWN0UmVnaW9uIGJhY2tpbmdTdG9yZVJlZ2lvbiA9IGN1cnJlbnRTdGF0ZS0+YmFja2lu
Z1N0b3JlUmVjdCgpOwpAQCAtMTcxMCw3ICsxNjY3LDcgQEAgdm9pZCBCYWNraW5nU3RvcmVQcml2
YXRlOjpjb21wb3NpdGVDb250ZW50cyhXZWJDb3JlOjpMYXllclJlbmRlcmVyKiBsYXllclJlbmRl
cmUKICAgICAgICAgICAgIGxheWVyUmVuZGVyZXItPmRyYXdDaGVja2VyYm9hcmRQYXR0ZXJuKHRy
YW5zZm9ybSwgbV93ZWJQYWdlLT5kLT5tYXBGcm9tVHJhbnNmb3JtZWRGbG9hdFJlY3QoUGxhdGZv
cm06OkZsb2F0UmVjdChkaXJ0eVJlY3QpKSk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAg
bGF5ZXJSZW5kZXJlci0+Y29tcG9zaXRlQnVmZmVyKHRyYW5zZm9ybSwgbV93ZWJQYWdlLT5kLT5t
YXBGcm9tVHJhbnNmb3JtZWRGbG9hdFJlY3QoUGxhdGZvcm06OkZsb2F0UmVjdCh3aG9sZVJlY3Qp
KSwgdGlsZUJ1ZmZlci0+bmF0aXZlQnVmZmVyKCksIGNvbnRlbnRzT3BhcXVlLCAxLjBmKTsKLQor
ICAgICAgICAgICAgY29tcG9zaXRlZFRpbGVzLmFwcGVuZCh0aWxlQnVmZmVyKTsKICAgICAgICAg
ICAgIC8vIEludGVyc2VjdCB0aGUgcmVuZGVyZWQgcmVnaW9uLgogICAgICAgICAgICAgUGxhdGZv
cm06OkludFJlY3RSZWdpb24gbm90UmVuZGVyZWRSZWdpb24gPSBQbGF0Zm9ybTo6SW50UmVjdFJl
Z2lvbjo6c3VidHJhY3RSZWdpb25zKGRpcnR5VGlsZVJlY3QsIHRpbGVCdWZmZXItPnJlbmRlcmVk
UmVnaW9uKCkpOwogICAgICAgICAgICAgSW50UmVjdExpc3Qgbm90UmVuZGVyZWRSZWN0cyA9IG5v
dFJlbmRlcmVkUmVnaW9uLnJlY3RzKCk7CkBAIC0xNzE4LDYgKzE2NzUsOCBAQCB2b2lkIEJhY2tp
bmdTdG9yZVByaXZhdGU6OmNvbXBvc2l0ZUNvbnRlbnRzKFdlYkNvcmU6OkxheWVyUmVuZGVyZXIq
IGxheWVyUmVuZGVyZQogICAgICAgICAgICAgICAgIGxheWVyUmVuZGVyZXItPmRyYXdDaGVja2Vy
Ym9hcmRQYXR0ZXJuKHRyYW5zZm9ybSwgbV93ZWJQYWdlLT5kLT5tYXBGcm9tVHJhbnNmb3JtZWRG
bG9hdFJlY3QoUGxhdGZvcm06OkZsb2F0UmVjdChub3RSZW5kZXJlZFJlY3RzLmF0KGkpKSkpOwog
ICAgICAgICB9CiAgICAgfQorCisgICAgU3VyZmFjZVBvb2w6Omdsb2JhbFN1cmZhY2VQb29sKCkt
Pm5vdGlmeUJ1ZmZlcnNDb21wb3NpdGVkKGNvbXBvc2l0ZWRUaWxlcyk7CiB9CiAjZW5kaWYKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9CYWNraW5nU3RvcmVfcC5o
IGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9CYWNraW5nU3RvcmVfcC5oCmluZGV4IDMw
YzRiZDU5MjE5MzNkNDA3YmEzMDEzYjZjMGQ5NTc5YTRhZjc4YjkuLmRmYTg5ZDg2NDkzNmM3ZjIx
NTQ5NTE5MjI2MDIzYmNhNmYxYzIzM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9BcGkvQmFja2luZ1N0b3JlX3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
QXBpL0JhY2tpbmdTdG9yZV9wLmgKQEAgLTM2OCwxMSArMzY4LDYgQEAgcHVibGljOgogCiAgICAg
cHRocmVhZF9tdXRleF90IG1fbXV0ZXg7CiAKLSAgICBpbnQgbV9ibGl0R2VuZXJhdGlvbjsKLSAg
ICBwdGhyZWFkX211dGV4X3QgbV9ibGl0R2VuZXJhdGlvbkxvY2s7Ci0gICAgcHRocmVhZF9jb25k
X3QgbV9ibGl0R2VuZXJhdGlvbkNvbmQ7Ci0gICAgc3RydWN0IHRpbWVzcGVjIG1fY3VycmVudEJs
aXRFbmQ7Ci0KICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgbXV0YWJsZSBi
b29sIG1fbmVlZHNEcmF3TGF5ZXJzT25Db21taXQ7IC8vIE5vdCB0aHJlYWQgc2FmZSwgV2ViS2l0
IHRocmVhZCBvbmx5CiAgICAgYm9vbCBtX2lzRGlyZWN0UmVuZGVyaW5nQW5pbWF0aW9uTWVzc2Fn
ZVNjaGVkdWxlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRT
dXBwb3J0L0JhY2tpbmdTdG9yZVRpbGUuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dl
YktpdFN1cHBvcnQvQmFja2luZ1N0b3JlVGlsZS5jcHAKaW5kZXggYTAyZjkzYTFjZjdkODBmODJh
MDhhZDM3YTA0MDMxYzIxNzM3MWViZS4uMDg5N2RmNmY4MGE4MGQ3NDYwYTAwZmU2MzMyMDAwYTYx
OGM3MTkxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBv
cnQvQmFja2luZ1N0b3JlVGlsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dl
YktpdFN1cHBvcnQvQmFja2luZ1N0b3JlVGlsZS5jcHAKQEAgLTI5LDggKzI5LDggQEAgbmFtZXNw
YWNlIFdlYktpdCB7CiAKIFRpbGVCdWZmZXI6OlRpbGVCdWZmZXIoY29uc3QgUGxhdGZvcm06Oklu
dFNpemUmIHNpemUpCiAgICAgOiBtX3NpemUoc2l6ZSkKKyAgICAsIG1fc3luY09iamVjdCgwKQog
ICAgICwgbV9idWZmZXIoMCkKLSAgICAsIG1fYmxpdEdlbmVyYXRpb24oMCkKIHsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvQmFja2luZ1N0
b3JlVGlsZS5oIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvQmFja2lu
Z1N0b3JlVGlsZS5oCmluZGV4IDdhMGE0MmY1ZDFmZDIzYjI1MThmMzVjNGQ1Mjk3M2Q4ZjY2YTgx
OTAuLmViMTA4MDllYWJjMTdlNWY1MTJkNjg2ZjVhNGJjNmE1YjdhMzJiMGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0JhY2tpbmdTdG9yZVRpbGUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9CYWNraW5nU3Rv
cmVUaWxlLmgKQEAgLTQ3LDE0ICs0NywxNCBAQCBjbGFzcyBUaWxlQnVmZmVyIHsKIAogICAgICAg
ICBQbGF0Zm9ybTo6R3JhcGhpY3M6OkJ1ZmZlciogbmF0aXZlQnVmZmVyKCkgY29uc3Q7CiAKLSAg
ICAgICAgdm9pZCBzZXRCbGl0R2VuZXJhdGlvbihpbnQgZykgY29uc3QgeyBtX2JsaXRHZW5lcmF0
aW9uID0gZzsgfQotICAgICAgICBpbnQgYmxpdEdlbmVyYXRpb24oKSBjb25zdCB7IHJldHVybiBt
X2JsaXRHZW5lcmF0aW9uOyB9CisgICAgICAgIHZvaWQqIHN5bmNPYmplY3QoKSBjb25zdCB7IHJl
dHVybiBtX3N5bmNPYmplY3Q7IH0KKyAgICAgICAgdm9pZCBzZXRTeW5jT2JqZWN0KHZvaWQqIHN5
bmNPYmplY3QpIHsgbV9zeW5jT2JqZWN0ID0gc3luY09iamVjdDsgfQogCiAgICAgcHJpdmF0ZToK
ICAgICAgICAgUGxhdGZvcm06OkludFNpemUgbV9zaXplOwogICAgICAgICBQbGF0Zm9ybTo6SW50
UmVjdFJlZ2lvbiBtX3JlbmRlcmVkUmVnaW9uOworICAgICAgICB2b2lkKiBtX3N5bmNPYmplY3Q7
CiAgICAgICAgIG11dGFibGUgUGxhdGZvcm06OkdyYXBoaWNzOjpCdWZmZXIqIG1fYnVmZmVyOwot
ICAgICAgICBtdXRhYmxlIGludCBtX2JsaXRHZW5lcmF0aW9uOwogfTsKIAogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9TdXJmYWNlUG9vbC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9TdXJmYWNlUG9vbC5jcHAK
aW5kZXggZGU0ZmU1Y2FhNmI2MGQxMDNjMzFiZGI5ZmE4ZDhkYmNjM2U5MjBlOC4uZTRjOTllZDdi
MWE2NjM3MDU2NjkyMDEyNGE4Zjc5NmM5Njg0NjM0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvU3VyZmFjZVBvb2wuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1N1cmZhY2VQb29sLmNwcApAQCAtMjUsMTYg
KzI1LDI5IEBACiAjaW5jbHVkZSAiQmFja2luZ1N0b3JlQ29tcG9zaXRpbmdTdXJmYWNlLmgiCiAj
ZW5kaWYKIAorI2luY2x1ZGUgPEJsYWNrQmVycnlQbGF0Zm9ybUdyYXBoaWNzLmg+CiAjaW5jbHVk
ZSA8QmxhY2tCZXJyeVBsYXRmb3JtTG9nLmg+CiAjaW5jbHVkZSA8QmxhY2tCZXJyeVBsYXRmb3Jt
TWlzYy5oPgogI2luY2x1ZGUgPEJsYWNrQmVycnlQbGF0Zm9ybVNjcmVlbi5oPgogI2luY2x1ZGUg
PEJsYWNrQmVycnlQbGF0Zm9ybVNldHRpbmdzLmg+CisjaW5jbHVkZSA8QmxhY2tCZXJyeVBsYXRm
b3JtVGhyZWFkaW5nLmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KKworI2lmIEJMQUNLQkVSUllfUExB
VEZPUk1fR1JBUEhJQ1NfRUdMCisjaW5jbHVkZSA8RUdML2VnbGV4dC5oPgorI2VuZGlmCiAKICNk
ZWZpbmUgU0hBUkVEX1BJWE1BUF9HUk9VUCAid2Via2l0X2JhY2tpbmdzdG9yZV9ncm91cCIKIAog
bmFtZXNwYWNlIEJsYWNrQmVycnkgewogbmFtZXNwYWNlIFdlYktpdCB7CiAKKyNpZiBCTEFDS0JF
UlJZX1BMQVRGT1JNX0dSQVBISUNTX0VHTAorc3RhdGljIFBGTkVHTENSRUFURVNZTkNLSFJQUk9D
IGVnbENyZWF0ZVN5bmNLSFI7CitzdGF0aWMgUEZORUdMREVTVFJPWVNZTkNLSFJQUk9DIGVnbERl
c3Ryb3lTeW5jS0hSOworc3RhdGljIFBGTkVHTENMSUVOVFdBSVRTWU5DS0hSUFJPQyBlZ2xDbGll
bnRXYWl0U3luY0tIUjsKKyNlbmRpZgorCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KSAmJiBFTkFCTEVfQ09NUE9TSVRJTkdfU1VSRkFDRQogc3RhdGljIFBhc3NSZWZQdHI8QmFja2lu
Z1N0b3JlQ29tcG9zaXRpbmdTdXJmYWNlPiBjcmVhdGVDb21wb3NpdGluZ1N1cmZhY2UoKQogewpA
QCAtNjAsNiArNzMsNyBAQCBTdXJmYWNlUG9vbDo6U3VyZmFjZVBvb2woKQogICAgICwgbV9iYWNr
QnVmZmVyKDApCiAgICAgLCBtX2luaXRpYWxpemVkKGZhbHNlKQogICAgICwgbV9idWZmZXJzU3Vz
cGVuZGVkKGZhbHNlKQorICAgICwgbV9oYXNGZW5jZUV4dGVuc2lvbihmYWxzZSkKIHsKIH0KIApA
QCAtOTUsNiArMTA5LDIxIEBAIHZvaWQgU3VyZmFjZVBvb2w6OmluaXRpYWxpemUoY29uc3QgQmxh
Y2tCZXJyeTo6UGxhdGZvcm06OkludFNpemUmIHRpbGVTaXplKQogCiAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBudW1iZXJPZlRpbGVzOyArK2kpCiAgICAgICAgIG1fdGlsZVBvb2wuYXBwZW5k
KEJhY2tpbmdTdG9yZVRpbGU6OmNyZWF0ZSh0aWxlU2l6ZSwgQmFja2luZ1N0b3JlVGlsZTo6RG91
YmxlQnVmZmVyZWQpKTsKKworI2lmIEJMQUNLQkVSUllfUExBVEZPUk1fR1JBUEhJQ1NfRUdMCisg
ICAgY29uc3QgY2hhciogZXh0ZW5zaW9ucyA9IGVnbFF1ZXJ5U3RyaW5nKFBsYXRmb3JtOjpHcmFw
aGljczo6ZWdsRGlzcGxheSgpLCBFR0xfRVhURU5TSU9OUyk7CisgICAgaWYgKHN0cnN0cihleHRl
bnNpb25zLCAiRUdMX0tIUl9mZW5jZV9zeW5jIikpIHsKKyAgICAgICAgLy8gV2UgYXNzdW1lIEdM
X09FU19FR0xfc3luYyBpcyBwcmVzZW50LCBidXQgd2UgZG9uJ3QgY2hlY2sgZm9yIGl0IGJlY2F1
c2UKKyAgICAgICAgLy8gbm8gR0wgY29udGV4dCBpcyBjdXJyZW50IGF0IHRoaXMgcG9pbnQuCisg
ICAgICAgIC8vIFRPRE86IGNoZWNrIGZvciBpdAorICAgICAgICBlZ2xDcmVhdGVTeW5jS0hSID0g
KFBGTkVHTENSRUFURVNZTkNLSFJQUk9DKSBlZ2xHZXRQcm9jQWRkcmVzcygiZWdsQ3JlYXRlU3lu
Y0tIUiIpOworICAgICAgICBlZ2xEZXN0cm95U3luY0tIUiA9IChQRk5FR0xERVNUUk9ZU1lOQ0tI
UlBST0MpIGVnbEdldFByb2NBZGRyZXNzKCJlZ2xEZXN0cm95U3luY0tIUiIpOworICAgICAgICBl
Z2xDbGllbnRXYWl0U3luY0tIUiA9IChQRk5FR0xDTElFTlRXQUlUU1lOQ0tIUlBST0MpIGVnbEdl
dFByb2NBZGRyZXNzKCJlZ2xDbGllbnRXYWl0U3luY0tIUiIpOworICAgICAgICBtX2hhc0ZlbmNl
RXh0ZW5zaW9uID0gZWdsQ3JlYXRlU3luY0tIUiAmJiBlZ2xEZXN0cm95U3luY0tIUiAmJiBlZ2xD
bGllbnRXYWl0U3luY0tIUjsKKyAgICB9CisjZW5kaWYKKworICAgIHB0aHJlYWRfbXV0ZXhfaW5p
dCgmbV9tdXRleCwgMCk7CiB9CiAKIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0KiBTdXJmYWNlUG9v
bDo6Y3JlYXRlUGxhdGZvcm1HcmFwaGljc0NvbnRleHQoQmxhY2tCZXJyeTo6UGxhdGZvcm06Okdy
YXBoaWNzOjpEcmF3YWJsZSogZHJhd2FibGUpIGNvbnN0CkBAIC0xOTksNSArMjI4LDcxIEBAIHZv
aWQgU3VyZmFjZVBvb2w6OnJlbGVhc2VCdWZmZXJzKCkKICAgICB9CiB9CiAKK3ZvaWQgU3VyZmFj
ZVBvb2w6OndhaXRGb3JCdWZmZXIoVGlsZUJ1ZmZlciogdGlsZUJ1ZmZlcikKK3sKKyAgICBpZiAo
IW1faGFzRmVuY2VFeHRlbnNpb24pCisgICAgICAgIHJldHVybjsKKworI2lmIEJMQUNLQkVSUllf
UExBVEZPUk1fR1JBUEhJQ1NfRUdMCisgICAgRUdMU3luY0tIUiBzeW5jT2JqZWN0OworCisgICAg
eworICAgICAgICBQbGF0Zm9ybTo6TXV0ZXhMb2NrZXIgbG9ja2VyKCZtX211dGV4KTsKKyAgICAg
ICAgc3luY09iamVjdCA9IHRpbGVCdWZmZXItPnN5bmNPYmplY3QoKTsKKyAgICAgICAgaWYgKCFz
eW5jT2JqZWN0KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIC8vIFN0YWxlIHJlZmVy
ZW5jZXMgdG8gdGhpcyBzeW5jIG9iamVjdCBtYXkgcmVtYWluIHdpdGggb3RoZXIgdGlsZXMsIGRv
bid0IHdhaXQgZm9yIGl0IGFnYWluLgorICAgICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsg
aSA8IG1fdGlsZVBvb2wuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIFRpbGVCdWZmZXIqIHRp
bGVCdWZmZXIgPSBtX3RpbGVQb29sW2ldLT5mcm9udEJ1ZmZlcigpOworICAgICAgICAgICAgaWYg
KHRpbGVCdWZmZXItPnN5bmNPYmplY3QoKSA9PSBzeW5jT2JqZWN0KQorICAgICAgICAgICAgICAg
IHRpbGVCdWZmZXItPnNldFN5bmNPYmplY3QoMCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGJh
Y2tCdWZmZXIoKS0+c3luY09iamVjdCgpID09IHN5bmNPYmplY3QpCisgICAgICAgICAgICBiYWNr
QnVmZmVyKCktPnNldFN5bmNPYmplY3QoMCk7CisgICAgfQorCisgICAgZWdsQ2xpZW50V2FpdFN5
bmNLSFIoUGxhdGZvcm06OkdyYXBoaWNzOjplZ2xEaXNwbGF5KCksIHN5bmNPYmplY3QsIDAsIDEw
MDAwMDAwMExMKTsKKworICAgIC8vIEluc3RlYWQgb2YgYXNzdW1pbmcgZWdsRGVzdHJveVN5bmNL
SFIgaXMgdGhyZWFkIHNhZmUsIHdlIGFkZCBpdCB0bworICAgIC8vIGEgZ2FyYmFnZSBsaXN0IGZv
ciBsYXRlciBjb2xsZWN0aW9uIG9uIHRoZSB0aHJlYWQgdGhhdCBjcmVhdGVkIGl0LgorICAgIHsK
KyAgICAgICAgUGxhdGZvcm06Ok11dGV4TG9ja2VyIGxvY2tlcigmbV9tdXRleCk7CisgICAgICAg
IG1fc3luY09iamVjdHNUb0Rlc3Ryb3kuaW5zZXJ0KHN5bmNPYmplY3QpOworICAgIH0KKyNlbmRp
ZgorfQorCit2b2lkIFN1cmZhY2VQb29sOjpub3RpZnlCdWZmZXJzQ29tcG9zaXRlZChjb25zdCBW
ZWN0b3I8VGlsZUJ1ZmZlcio+JiB0aWxlQnVmZmVycykKK3sKKyAgICBpZiAoIW1faGFzRmVuY2VF
eHRlbnNpb24pCisgICAgICAgIHJldHVybjsKKworI2lmIEJMQUNLQkVSUllfUExBVEZPUk1fR1JB
UEhJQ1NfRUdMCisgICAgUGxhdGZvcm06Ok11dGV4TG9ja2VyIGxvY2tlcigmbV9tdXRleCk7CisK
KyAgICBFR0xEaXNwbGF5IGRpc3BsYXkgPSBQbGF0Zm9ybTo6R3JhcGhpY3M6OmVnbERpc3BsYXko
KTsKKworICAgIC8vIFRoZSBFR0xfS0hSX2ZlbmNlX3N5bmMgc3BlYyBpcyBuaWNlIGVub3VnaCB0
byBzcGVjaWZ5IHRoYXQgdGhlIHN5bmMgb2JqZWN0CisgICAgLy8gaXMgbm90IGFjdHVhbGx5IGRl
bGV0ZWQgdW50aWwgZXZlcnlvbmUgaGFzIHN0b3BwZWQgdXNpbmcgaXQuCisgICAgZm9yIChzdGQ6
OnNldDx2b2lkKj46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9zeW5jT2JqZWN0c1RvRGVzdHJveS5i
ZWdpbigpOyBpdCAhPSBtX3N5bmNPYmplY3RzVG9EZXN0cm95LmVuZCgpOyArK2l0KQorICAgICAg
ICBlZ2xEZXN0cm95U3luY0tIUihkaXNwbGF5LCAqaXQpOworICAgIG1fc3luY09iamVjdHNUb0Rl
c3Ryb3kuY2xlYXIoKTsKKworICAgIC8vIElmIHdlIGRpZG4ndCBibGl0IGFueXRoaW5nLCB3ZSBk
b24ndCBuZWVkIHRvIGNyZWF0ZSBhIG5ldyBzeW5jIG9iamVjdC4KKyAgICBpZiAodGlsZUJ1ZmZl
cnMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBFR0xTeW5jS0hSIHN5bmNPYmpl
Y3QgPSBlZ2xDcmVhdGVTeW5jS0hSKGRpc3BsYXksIEVHTF9TWU5DX0ZFTkNFX0tIUiwgMCk7CisK
KyAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHRpbGVCdWZmZXJzLnNpemUoKTsgKytp
KSB7CisgICAgICAgIGlmIChFR0xTeW5jS0hSIHByZXZpb3VzU3luY09iamVjdCA9IHRpbGVCdWZm
ZXJzW2ldLT5zeW5jT2JqZWN0KCkpCisgICAgICAgICAgICBtX3N5bmNPYmplY3RzVG9EZXN0cm95
Lmluc2VydChwcmV2aW91c1N5bmNPYmplY3QpOworCisgICAgICAgIHRpbGVCdWZmZXJzW2ldLT5z
ZXRTeW5jT2JqZWN0KHN5bmNPYmplY3QpOworICAgIH0KKyNlbmRpZgorfQorCiB9CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9TdXJmYWNlUG9v
bC5oIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvU3VyZmFjZVBvb2wu
aAppbmRleCBmYTg4YTVkNmE0NzY3ODA3MzZmMmI4YjA4YzMwZTA4OGE5NDczMzEwLi4xYzUwZGY4
MWI4M2E5N2Q1NTBlZTg1NzNmNTM1OTQxMmY1NmMwNWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9TdXJmYWNlUG9vbC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1N1cmZhY2VQb29sLmgKQEAgLTI1LDYgKzI1
LDggQEAKIAogI2luY2x1ZGUgPEJsYWNrQmVycnlQbGF0Zm9ybUdyYXBoaWNzLmg+CiAjaW5jbHVk
ZSA8QmxhY2tCZXJyeVBsYXRmb3JtUHJpbWl0aXZlcy5oPgorI2luY2x1ZGUgPHB0aHJlYWQuaD4K
KyNpbmNsdWRlIDxzZXQ+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiAjZGVmaW5lIEVOQUJM
RV9DT01QT1NJVElOR19TVVJGQUNFIDEKQEAgLTcxLDYgKzczLDE2IEBAIHB1YmxpYzoKICAgICB2
b2lkIHJlbGVhc2VCdWZmZXJzKCk7CiAgICAgdm9pZCBjcmVhdGVCdWZmZXJzKCk7CiAKKyAgICAv
LyBFR0xJbWFnZSBzeW5jaHJvbml6YXRpb24gYmV0d2VlbiBXZWJLaXQgYW5kIGNvbXBvc2l0aW5n
IHRocmVhZHMKKyAgICAvLyBUT0RPOiBGaWd1cmUgb3V0IGhvdyB0byBpbXByb3ZlIHRoZSBCbGFj
a0JlcnJ5OjpQbGF0Zm9ybTo6R3JhcGhpY3Mgd2l0aCBBUEkgdGhhdCBjYW4gZW5jYXBzdWxhdGUK
KyAgICAvLyB0aGlzIGtpbmQgb2Ygc3luY2hyb25pc2F0aW9uIG1lY2hhbmlzbS4KKworICAgIC8v
IFdlYktpdCB0aHJlYWQgbXVzdCB3YWl0Rm9yQnVmZmVyKCkgYmVmb3JlIHJlbmRlcmluZyB0byBF
R0xJbWFnZQorICAgIHZvaWQgd2FpdEZvckJ1ZmZlcihUaWxlQnVmZmVyKik7CisKKyAgICAvLyBD
b21wb3NpdGluZyB0aHJlYWQgbXVzdCBub3RpZnkgdGhlIFN1cmZhY2VQb29sIHdoZW4gRUdMSW1h
Z2VzIGFyZSBjb21wb3NpdGVkCisgICAgdm9pZCBub3RpZnlCdWZmZXJzQ29tcG9zaXRlZChjb25z
dCBWZWN0b3I8VGlsZUJ1ZmZlcio+JiBidWZmZXJzKTsKKwogcHJpdmF0ZToKICAgICAvLyBUaGlz
IGlzIG5lY2Vzc2FyeSBzbyBCYWNraW5nU3RvcmVUaWxlIGNhbiBhdG9taWNhbGx5IHN3YXAgYnVm
ZmVycyB3aXRoIG1fYmFja0J1ZmZlci4KICAgICBmcmllbmQgY2xhc3MgQmFja2luZ1N0b3JlVGls
ZTsKQEAgLTg2LDYgKzk4LDEwIEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9iYWNrQnVmZmVy
OwogICAgIGJvb2wgbV9pbml0aWFsaXplZDsgLy8gU3VyZmFjZVBvb2wgaGFzIGJlZW4gc2V0IHVw
LCB3aXRoIG9yIHdpdGhvdXQgYnVmZmVycy4KICAgICBib29sIG1fYnVmZmVyc1N1c3BlbmRlZDsg
Ly8gQnVmZmVyIG9iamVjdHMgZXhpc3QsIGJ1dCBwaXhlbCBtZW1vcnkgaGFzIGJlZW4gZnJlZWQu
CisKKyAgICBzdGQ6OnNldDx2b2lkKj4gbV9zeW5jT2JqZWN0c1RvRGVzdHJveTsKKyAgICBib29s
IG1faGFzRmVuY2VFeHRlbnNpb247CisgICAgbXV0YWJsZSBwdGhyZWFkX211dGV4X3QgbV9tdXRl
eDsKIH07CiB9CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155524</attachid>
            <date>2012-07-31 07:01:19 -0700</date>
            <delta_ts>2012-07-31 07:35:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90291-20120731160101.patch</filename>
            <type>text/plain</type>
            <size>17378</size>
            <attacher name="Arvid Nilsson">anilsson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0MTk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpp
bmRleCBlMWU2OGE3ZjcxODk3NmZmMzk4ZTI5OWEyMDlhYjI2YzBiZDE2ZTM2Li4yOTE0ODIwNzIw
YWM5OWQ2MWEyNDRkMTY5MjZiNDZmMDJjODE5ZDExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw0MCBAQAorMjAxMi0wNy0zMCAgQXJ2aWQgTmlsc3NvbiAgPGFuaWxz
c29uQHJpbS5jb20+CisKKyAgICAgICAgW0JsYWNrQmVycnldIEJhY2tpbmcgc3RvcmUgb3V0cHV0
IGZsaWNrZXJzIHdoZW4gdXNpbmcgV2ViUGFnZUNvbXBvc2l0b3IKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwMjkxCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGJhY2tpbmcgc3RvcmUgZG9lc24ndCBr
bm93IHdoZW4gdGhlIEFQSSBjbGllbnQgc3dhcHMgdGhlIGJ1ZmZlcnMsCisgICAgICAgIHNvIGl0
IGRvZXNuJ3Qga25vdyB3aGVuIHRvIHNpZ25hbCB0aGUgYmxpdCBnZW5lcmF0aW9uIGNvbmRpdGlv
bgorICAgICAgICB2YXJpYWJsZS4gRml4ZWQgYnkgdXNpbmcgRUdMIGZlbmNlIHN5bmMgaW5zdGVh
ZCwgd2hlbiBhdmFpbGFibGUsIHNvIHdlCisgICAgICAgIGRvbid0IGhhdmUgdG8ga25vdy4KKwor
ICAgICAgICBSZXZpZXdlZCBpbnRlcm5hbGx5IGJ5IEZpbGlwIFNwYWNlay4KKworICAgICAgICAq
IEFwaS9CYWNraW5nU3RvcmUuY3BwOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpCYWNr
aW5nU3RvcmVQcml2YXRlOjpCYWNraW5nU3RvcmVQcml2YXRlKToKKyAgICAgICAgKEJsYWNrQmVy
cnk6OldlYktpdDo6QmFja2luZ1N0b3JlUHJpdmF0ZTo6fkJhY2tpbmdTdG9yZVByaXZhdGUpOgor
ICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpCYWNraW5nU3RvcmVQcml2YXRlOjpyZW5kZXIp
OgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpCYWNraW5nU3RvcmVQcml2YXRlOjpibGl0
Q29udGVudHMpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpCYWNraW5nU3RvcmVQcml2
YXRlOjpjb21wb3NpdGVDb250ZW50cyk6CisgICAgICAgICogQXBpL0JhY2tpbmdTdG9yZV9wLmg6
CisgICAgICAgIChCYWNraW5nU3RvcmVQcml2YXRlKToKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0
L0JhY2tpbmdTdG9yZVRpbGUuY3BwOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpUaWxl
QnVmZmVyOjpUaWxlQnVmZmVyKToKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0JhY2tpbmdTdG9y
ZVRpbGUuaDoKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6VGlsZUJ1ZmZlcjo6c3luY09i
amVjdCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OlRpbGVCdWZmZXI6OnNldFN5bmNP
YmplY3QpOgorICAgICAgICAoVGlsZUJ1ZmZlcik6CisgICAgICAgICogV2ViS2l0U3VwcG9ydC9T
dXJmYWNlUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoQmxhY2tCZXJyeTo6
V2ViS2l0OjpTdXJmYWNlUG9vbDo6U3VyZmFjZVBvb2wpOgorICAgICAgICAoQmxhY2tCZXJyeTo6
V2ViS2l0OjpTdXJmYWNlUG9vbDo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChCbGFja0JlcnJ5OjpX
ZWJLaXQ6OlN1cmZhY2VQb29sOjp3YWl0Rm9yQnVmZmVyKToKKyAgICAgICAgKEJsYWNrQmVycnk6
OldlYktpdDo6U3VyZmFjZVBvb2w6Om5vdGlmeUJ1ZmZlcnNDb21wb3NpdGVkKToKKyAgICAgICAg
KiBXZWJLaXRTdXBwb3J0L1N1cmZhY2VQb29sLmg6CisgICAgICAgIChTdXJmYWNlUG9vbCk6CisK
IDIwMTItMDctMzAgIFlvc2hpZnVtaSBJbm91ZSAgPHlvc2luQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBbRm9ybXNdIEdldCByaWQgb2YgRWxlbWVudDo6aXNSZWFkT25seUZvcm1Db250cm9sIG90
aGVyIHRoYW4gQ1NTIHJlbGF0ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9BcGkvQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvQmFj
a2luZ1N0b3JlLmNwcAppbmRleCBhMGZhMjk1ZTMxNDA2OWNiNWZlM2U4YTQ5MzhiMjJmNzc5YWMw
MjFlLi5iYzU0N2IwN2Y3NGU5M2Y1YzRhN2FjZGM5OTRiMjA3NmIwOGI3MDJhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL0JhY2tpbmdTdG9yZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9CYWNraW5nU3RvcmUuY3BwCkBAIC0yMDksNyArMjA5
LDYgQEAgQmFja2luZ1N0b3JlUHJpdmF0ZTo6QmFja2luZ1N0b3JlUHJpdmF0ZSgpCiAgICAgLCBt
X2hhc0JsaXRKb2JzKGZhbHNlKQogICAgICwgbV9jdXJyZW50V2luZG93QmFja0J1ZmZlcigwKQog
ICAgICwgbV9wcmVmZXJyZWRUaWxlTWF0cml4RGltZW5zaW9uKFZlcnRpY2FsKQotICAgICwgbV9i
bGl0R2VuZXJhdGlvbigtMSkKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAg
LCBtX25lZWRzRHJhd0xheWVyc09uQ29tbWl0KGZhbHNlKQogICAgICwgbV9pc0RpcmVjdFJlbmRl
cmluZ0FuaW1hdGlvbk1lc3NhZ2VTY2hlZHVsZWQoZmFsc2UpCkBAIC0yMjYsMTQgKzIyNSw2IEBA
IEJhY2tpbmdTdG9yZVByaXZhdGU6OkJhY2tpbmdTdG9yZVByaXZhdGUoKQogICAgIHB0aHJlYWRf
bXV0ZXhhdHRyX3NldHR5cGUoJmF0dHIsIFBUSFJFQURfTVVURVhfUkVDVVJTSVZFKTsKICAgICBw
dGhyZWFkX211dGV4X2luaXQoJm1fbXV0ZXgsICZhdHRyKTsKICAgICBwdGhyZWFkX211dGV4YXR0
cl9kZXN0cm95KCZhdHRyKTsKLQotICAgIHB0aHJlYWRfbXV0ZXhfaW5pdCgmbV9ibGl0R2VuZXJh
dGlvbkxvY2ssIDApOwotCi0gICAgcHRocmVhZF9jb25kYXR0cl90IGNvbmRhdHRyOwotICAgIHB0
aHJlYWRfY29uZGF0dHJfaW5pdCgmY29uZGF0dHIpOwotICAgIHB0aHJlYWRfY29uZGF0dHJfc2V0
Y2xvY2soJmNvbmRhdHRyLCBDTE9DS19NT05PVE9OSUMpOwotICAgIHB0aHJlYWRfY29uZF9pbml0
KCZtX2JsaXRHZW5lcmF0aW9uQ29uZCwgJmNvbmRhdHRyKTsKLSAgICBwdGhyZWFkX2NvbmRhdHRy
X2Rlc3Ryb3koJmNvbmRhdHRyKTsKIH0KIAogQmFja2luZ1N0b3JlUHJpdmF0ZTo6fkJhY2tpbmdT
dG9yZVByaXZhdGUoKQpAQCAtMjQ2LDggKzIzNyw2IEBAIEJhY2tpbmdTdG9yZVByaXZhdGU6On5C
YWNraW5nU3RvcmVQcml2YXRlKCkKICAgICBkZWxldGUgYmFjazsKICAgICBtX2JhY2tTdGF0ZSA9
IDA7CiAKLSAgICBwdGhyZWFkX2NvbmRfZGVzdHJveSgmbV9ibGl0R2VuZXJhdGlvbkNvbmQpOwot
ICAgIHB0aHJlYWRfbXV0ZXhfZGVzdHJveSgmbV9ibGl0R2VuZXJhdGlvbkxvY2spOwogICAgIHB0
aHJlYWRfbXV0ZXhfZGVzdHJveSgmbV9tdXRleCk7CiB9CiAKQEAgLTExNDEsMjYgKzExMzAsMTEg
QEAgYm9vbCBCYWNraW5nU3RvcmVQcml2YXRlOjpyZW5kZXIoY29uc3QgUGxhdGZvcm06OkludFJl
Y3QmIHJlY3QpCiAgICAgICAgIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpHcmFwaGljczo6QnVmZmVy
KiBuYXRpdmVCdWZmZXIKICAgICAgICAgICAgID0gdGlsZS0+YmFja0J1ZmZlcigpLT5uYXRpdmVC
dWZmZXIoKTsKIAotICAgICAgICAvLyBUaGlzIGNvZGUgaXMgb25seSBuZWVkZWQgZm9yIEVHTElt
YWdlIGNvZGUgcGF0aCwgYW5kIG9ubHkgZWZmZWN0aXZlIGlmIHdlIGFyZSBzd2FwcGluZyB0aGUg
cmVuZGVyIHRhcmdldC4KLSAgICAgICAgLy8gVGhpcyBjb21iaW5hdGlvbiBpcyBvbmx5IHRydWUg
aWYgdGhlcmUncyBhIEdMRVMyVXNhZ2Ugd2luZG93LgotICAgICAgICAvLyBGSVhNRTogVXNlIGFu
IEVHTCBmZW5jZSBpbnN0ZWFkLCBQUjE1MjEzMgotICAgICAgICBXaW5kb3cqIHdpbmRvdyA9IG1f
d2ViUGFnZS0+Y2xpZW50KCktPndpbmRvdygpOwotICAgICAgICBpZiAod2luZG93ICYmIHdpbmRv
dy0+d2luZG93VXNhZ2UoKSA9PSBXaW5kb3c6OkdMRVMyVXNhZ2UpIHsKLSAgICAgICAgICAgIHB0
aHJlYWRfbXV0ZXhfbG9jaygmbV9ibGl0R2VuZXJhdGlvbkxvY2spOwotICAgICAgICAgICAgd2hp
bGUgKG1fYmxpdEdlbmVyYXRpb24gPT0gdGlsZS0+YmFja0J1ZmZlcigpLT5ibGl0R2VuZXJhdGlv
bigpKSB7Ci0gICAgICAgICAgICAgICAgaW50IGVyciA9IHB0aHJlYWRfY29uZF90aW1lZHdhaXQo
Jm1fYmxpdEdlbmVyYXRpb25Db25kLCAmbV9ibGl0R2VuZXJhdGlvbkxvY2ssICZtX2N1cnJlbnRC
bGl0RW5kKTsKLSAgICAgICAgICAgICAgICBpZiAoZXJyID09IEVUSU1FRE9VVCkgewotICAgICAg
ICAgICAgICAgICAgICArK21fYmxpdEdlbmVyYXRpb247Ci0gICAgICAgICAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAoZXJyKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpsb2coQmxhY2tCZXJyeTo6UGxh
dGZvcm06OkxvZ0xldmVsQ3JpdGljYWwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgImNvbmRfdGltZWR3YWl0IGZhaWxlZCAoJXMpIiwgc3RyZXJyb3IoZXJy
KSk7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZtX2JsaXRHZW5lcmF0
aW9uTG9jayk7Ci0gICAgICAgIH0KKyAgICAgICAgLy8gVE9ETzogVGhpcyBjb2RlIGlzIG9ubHkg
bmVlZGVkIGZvciBFR0xJbWFnZSBjb2RlIHBhdGgsIGJ1dCBwcmVmZXJyYWJseSBCYWNraW5nU3Rv
cmUKKyAgICAgICAgLy8gc2hvdWxkIG5vdCBrbm93IHRoYXQsIGFuZCB0aGUgc3luY2hyb25pemF0
aW9uIHNob3VsZCBiZSBpbiBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6R3JhcGhpY3MKKyAgICAgICAg
Ly8gaWYgcG9zc2libGUuCisgICAgICAgIGlmIChpc09wZW5HTENvbXBvc2l0aW5nKCkpCisgICAg
ICAgICAgICBTdXJmYWNlUG9vbDo6Z2xvYmFsU3VyZmFjZVBvb2woKS0+d2FpdEZvckJ1ZmZlcih0
aWxlLT5iYWNrQnVmZmVyKCkpOwogCiAgICAgICAgIC8vIE1vZGlmeSB0aGUgYnVmZmVyIG9ubHkg
YWZ0ZXIgd2UndmUgd2FpdGVkIGZvciB0aGUgYnVmZmVyIHRvIGJlY29tZSBhdmFpbGFibGUgYWJv
dmUuCiAKQEAgLTE1NjEsNiArMTUzNSwxMiBAQCB2b2lkIEJhY2tpbmdTdG9yZVByaXZhdGU6OmJs
aXRDb250ZW50cyhjb25zdCBQbGF0Zm9ybTo6SW50UmVjdCYgZHN0UmVjdCwKICAgICAgICAgfQog
ICAgIH0KIAorICAgIC8vIFRPRE86IFRoaXMgY29kZSBpcyBvbmx5IG5lZWRlZCBmb3IgRUdMSW1h
Z2UgY29kZSBwYXRoLCBidXQgcHJlZmVycmFibHkgQmFja2luZ1N0b3JlCisgICAgLy8gc2hvdWxk
IG5vdCBrbm93IHRoYXQsIGFuZCB0aGUgc3luY2hyb25pemF0aW9uIHNob3VsZCBiZSBpbiBCbGFj
a0JlcnJ5OjpQbGF0Zm9ybTo6R3JhcGhpY3MKKyAgICAvLyBpZiBwb3NzaWJsZS4KKyAgICBpZiAo
aXNPcGVuR0xDb21wb3NpdGluZygpKQorICAgICAgICBTdXJmYWNlUG9vbDo6Z2xvYmFsU3VyZmFj
ZVBvb2woKS0+bm90aWZ5QnVmZmVyc0NvbXBvc2l0ZWQoYmxpdHRlZFRpbGVzKTsKKwogI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBpZiAoV2ViUGFnZUNvbXBvc2l0b3JQcml2
YXRlKiBjb21wb3NpdG9yID0gbV93ZWJQYWdlLT5kLT5jb21wb3NpdG9yKCkpIHsKICAgICAgICAg
V2ViQ29yZTo6RmxvYXRSZWN0IGNvbnRlbnRzUmVjdCA9IG1fd2ViUGFnZS0+ZC0+bWFwRnJvbVRy
YW5zZm9ybWVkRmxvYXRSZWN0KFdlYkNvcmU6OkZsb2F0UmVjdChXZWJDb3JlOjpJbnRSZWN0KGNv
bnRlbnRzKSkpOwpAQCAtMTYyOCwyOCArMTYwOCw2IEBAIHZvaWQgQmFja2luZ1N0b3JlUHJpdmF0
ZTo6YmxpdENvbnRlbnRzKGNvbnN0IFBsYXRmb3JtOjpJbnRSZWN0JiBkc3RSZWN0LAogI2VuZGlm
CiAKICAgICBpbnZhbGlkYXRlV2luZG93KGRzdFJlY3QpOwotCi0gICAgLy8gVGhpcyBjb2RlIGlz
IG9ubHkgbmVlZGVkIGZvciBFR0xJbWFnZSBjb2RlIHBhdGgsIGFuZCBvbmx5IGVmZmVjdGl2ZSBp
ZiB3ZSBhcmUgc3dhcHBpbmcgdGhlIHJlbmRlciB0YXJnZXQuCi0gICAgLy8gVGhpcyBjb21iaW5h
dGlvbiBpcyBvbmx5IHRydWUgaWYgdGhlcmUncyBhIEdMRVMyVXNhZ2Ugd2luZG93LgotICAgIC8v
IEZJWE1FOiBVc2UgYW4gRUdMIGZlbmNlIGluc3RlYWQKLSAgICBXaW5kb3cqIHdpbmRvdyA9IG1f
d2ViUGFnZS0+Y2xpZW50KCktPndpbmRvdygpOwotICAgIGlmICh3aW5kb3cgJiYgd2luZG93LT53
aW5kb3dVc2FnZSgpID09IFdpbmRvdzo6R0xFUzJVc2FnZSAmJiAhYmxpdHRlZFRpbGVzLmlzRW1w
dHkoKSkgewotICAgICAgICBwdGhyZWFkX211dGV4X2xvY2soJm1fYmxpdEdlbmVyYXRpb25Mb2Nr
KTsKLQotICAgICAgICArK21fYmxpdEdlbmVyYXRpb247Ci0gICAgICAgIGZvciAodW5zaWduZWQg
aW50IGkgPSAwOyBpIDwgYmxpdHRlZFRpbGVzLnNpemUoKTsgKytpKQotICAgICAgICAgICAgYmxp
dHRlZFRpbGVzW2ldLT5zZXRCbGl0R2VuZXJhdGlvbihtX2JsaXRHZW5lcmF0aW9uKTsKLQotICAg
ICAgICBjbG9ja19nZXR0aW1lKENMT0NLX01PTk9UT05JQywgJm1fY3VycmVudEJsaXRFbmQpOwot
ICAgICAgICBtX2N1cnJlbnRCbGl0RW5kLnR2X25zZWMgKz0gMzAgKiAxMDAwICogMTAwMDsKLSAg
ICAgICAgaWYgKG1fY3VycmVudEJsaXRFbmQudHZfbnNlYyA+PSAxMDAwMDAwMDAwTCkgewotICAg
ICAgICAgICAgbV9jdXJyZW50QmxpdEVuZC50dl9zZWMgICs9IDE7Ci0gICAgICAgICAgICBtX2N1
cnJlbnRCbGl0RW5kLnR2X25zZWMgLT0gMTAwMDAwMDAwMEw7Ci0gICAgICAgIH0KLQotICAgICAg
ICBwdGhyZWFkX211dGV4X3VubG9jaygmbV9ibGl0R2VuZXJhdGlvbkxvY2spOwotICAgICAgICBw
dGhyZWFkX2NvbmRfc2lnbmFsKCZtX2JsaXRHZW5lcmF0aW9uQ29uZCk7Ci0gICAgfQogfQogCiAj
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpAQCAtMTY2OSw2ICsxNjI3LDcgQEAgdm9p
ZCBCYWNraW5nU3RvcmVQcml2YXRlOjpjb21wb3NpdGVDb250ZW50cyhXZWJDb3JlOjpMYXllclJl
bmRlcmVyKiBsYXllclJlbmRlcmUKIAogICAgIEJhY2tpbmdTdG9yZUdlb21ldHJ5KiBjdXJyZW50
U3RhdGUgPSBmcm9udFN0YXRlKCk7CiAgICAgVGlsZU1hcCBjdXJyZW50TWFwID0gY3VycmVudFN0
YXRlLT50aWxlTWFwKCk7CisgICAgVmVjdG9yPFRpbGVCdWZmZXIqPiBjb21wb3NpdGVkVGlsZXM7
CiAKICAgICBQbGF0Zm9ybTo6SW50UmVjdFJlZ2lvbiB0cmFuc2Zvcm1lZENvbnRlbnRzUmVnaW9u
ID0gdHJhbnNmb3JtZWRDb250ZW50czsKICAgICBQbGF0Zm9ybTo6SW50UmVjdFJlZ2lvbiBiYWNr
aW5nU3RvcmVSZWdpb24gPSBjdXJyZW50U3RhdGUtPmJhY2tpbmdTdG9yZVJlY3QoKTsKQEAgLTE3
MDgsNyArMTY2Nyw3IEBAIHZvaWQgQmFja2luZ1N0b3JlUHJpdmF0ZTo6Y29tcG9zaXRlQ29udGVu
dHMoV2ViQ29yZTo6TGF5ZXJSZW5kZXJlciogbGF5ZXJSZW5kZXJlCiAgICAgICAgICAgICBsYXll
clJlbmRlcmVyLT5kcmF3Q2hlY2tlcmJvYXJkUGF0dGVybih0cmFuc2Zvcm0sIG1fd2ViUGFnZS0+
ZC0+bWFwRnJvbVRyYW5zZm9ybWVkRmxvYXRSZWN0KFBsYXRmb3JtOjpGbG9hdFJlY3QoZGlydHlS
ZWN0KSkpOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIGxheWVyUmVuZGVyZXItPmNvbXBv
c2l0ZUJ1ZmZlcih0cmFuc2Zvcm0sIG1fd2ViUGFnZS0+ZC0+bWFwRnJvbVRyYW5zZm9ybWVkRmxv
YXRSZWN0KFBsYXRmb3JtOjpGbG9hdFJlY3Qod2hvbGVSZWN0KSksIHRpbGVCdWZmZXItPm5hdGl2
ZUJ1ZmZlcigpLCBjb250ZW50c09wYXF1ZSwgMS4wZik7Ci0KKyAgICAgICAgICAgIGNvbXBvc2l0
ZWRUaWxlcy5hcHBlbmQodGlsZUJ1ZmZlcik7CiAgICAgICAgICAgICAvLyBJbnRlcnNlY3QgdGhl
IHJlbmRlcmVkIHJlZ2lvbi4KICAgICAgICAgICAgIFBsYXRmb3JtOjpJbnRSZWN0UmVnaW9uIG5v
dFJlbmRlcmVkUmVnaW9uID0gUGxhdGZvcm06OkludFJlY3RSZWdpb246OnN1YnRyYWN0UmVnaW9u
cyhkaXJ0eVRpbGVSZWN0LCB0aWxlQnVmZmVyLT5yZW5kZXJlZFJlZ2lvbigpKTsKICAgICAgICAg
ICAgIEludFJlY3RMaXN0IG5vdFJlbmRlcmVkUmVjdHMgPSBub3RSZW5kZXJlZFJlZ2lvbi5yZWN0
cygpOwpAQCAtMTcxNiw2ICsxNjc1LDggQEAgdm9pZCBCYWNraW5nU3RvcmVQcml2YXRlOjpjb21w
b3NpdGVDb250ZW50cyhXZWJDb3JlOjpMYXllclJlbmRlcmVyKiBsYXllclJlbmRlcmUKICAgICAg
ICAgICAgICAgICBsYXllclJlbmRlcmVyLT5kcmF3Q2hlY2tlcmJvYXJkUGF0dGVybih0cmFuc2Zv
cm0sIG1fd2ViUGFnZS0+ZC0+bWFwRnJvbVRyYW5zZm9ybWVkRmxvYXRSZWN0KFBsYXRmb3JtOjpG
bG9hdFJlY3Qobm90UmVuZGVyZWRSZWN0cy5hdChpKSkpKTsKICAgICAgICAgfQogICAgIH0KKwor
ICAgIFN1cmZhY2VQb29sOjpnbG9iYWxTdXJmYWNlUG9vbCgpLT5ub3RpZnlCdWZmZXJzQ29tcG9z
aXRlZChjb21wb3NpdGVkVGlsZXMpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9BcGkvQmFja2luZ1N0b3JlX3AuaCBiL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9BcGkvQmFja2luZ1N0b3JlX3AuaAppbmRleCA2NzkxM2I5ODYxMmQ5NmYwNGFiYjg5
ODQ5ZGU2ZmRkMjM0M2UwZmU3Li5jMjk2ODQ3MTcyMGQzNDk2OWJhN2JiYjk1MGQ2MDlhYjhlMWZj
MjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL0JhY2tpbmdTdG9y
ZV9wLmgKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9CYWNraW5nU3RvcmVfcC5o
CkBAIC0zNjksMTEgKzM2OSw2IEBAIHB1YmxpYzoKIAogICAgIHB0aHJlYWRfbXV0ZXhfdCBtX211
dGV4OwogCi0gICAgaW50IG1fYmxpdEdlbmVyYXRpb247Ci0gICAgcHRocmVhZF9tdXRleF90IG1f
YmxpdEdlbmVyYXRpb25Mb2NrOwotICAgIHB0aHJlYWRfY29uZF90IG1fYmxpdEdlbmVyYXRpb25D
b25kOwotICAgIHN0cnVjdCB0aW1lc3BlYyBtX2N1cnJlbnRCbGl0RW5kOwotCiAjaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIG11dGFibGUgYm9vbCBtX25lZWRzRHJhd0xheWVy
c09uQ29tbWl0OyAvLyBOb3QgdGhyZWFkIHNhZmUsIFdlYktpdCB0aHJlYWQgb25seQogICAgIGJv
b2wgbV9pc0RpcmVjdFJlbmRlcmluZ0FuaW1hdGlvbk1lc3NhZ2VTY2hlZHVsZWQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9CYWNraW5nU3RvcmVU
aWxlLmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0JhY2tpbmdT
dG9yZVRpbGUuY3BwCmluZGV4IGEwMmY5M2ExY2Y3ZDgwZjgyYTA4YWQzN2EwNDAzMWMyMTczNzFl
YmUuLjA4OTdkZjZmODBhODBkNzQ2MGEwMGZlNjMzMjAwMGE2MThjNzE5MWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0JhY2tpbmdTdG9yZVRpbGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0JhY2tpbmdT
dG9yZVRpbGUuY3BwCkBAIC0yOSw4ICsyOSw4IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBUaWxl
QnVmZmVyOjpUaWxlQnVmZmVyKGNvbnN0IFBsYXRmb3JtOjpJbnRTaXplJiBzaXplKQogICAgIDog
bV9zaXplKHNpemUpCisgICAgLCBtX3N5bmNPYmplY3QoMCkKICAgICAsIG1fYnVmZmVyKDApCi0g
ICAgLCBtX2JsaXRHZW5lcmF0aW9uKDApCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0JhY2tpbmdTdG9yZVRpbGUuaCBiL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0JhY2tpbmdTdG9yZVRpbGUuaAppbmRleCA3
YTBhNDJmNWQxZmQyM2IyNTE4ZjM1YzRkNTI5NzNkOGY2NmE4MTkwLi5lYjEwODA5ZWFiYzE3ZTVm
NTEyZDY4NmY1YTRiYzZhNWI3YTMyYjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvV2ViS2l0U3VwcG9ydC9CYWNraW5nU3RvcmVUaWxlLmgKKysrIGIvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvQmFja2luZ1N0b3JlVGlsZS5oCkBAIC00NywxNCAr
NDcsMTQgQEAgY2xhc3MgVGlsZUJ1ZmZlciB7CiAKICAgICAgICAgUGxhdGZvcm06OkdyYXBoaWNz
OjpCdWZmZXIqIG5hdGl2ZUJ1ZmZlcigpIGNvbnN0OwogCi0gICAgICAgIHZvaWQgc2V0QmxpdEdl
bmVyYXRpb24oaW50IGcpIGNvbnN0IHsgbV9ibGl0R2VuZXJhdGlvbiA9IGc7IH0KLSAgICAgICAg
aW50IGJsaXRHZW5lcmF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9ibGl0R2VuZXJhdGlvbjsgfQor
ICAgICAgICB2b2lkKiBzeW5jT2JqZWN0KCkgY29uc3QgeyByZXR1cm4gbV9zeW5jT2JqZWN0OyB9
CisgICAgICAgIHZvaWQgc2V0U3luY09iamVjdCh2b2lkKiBzeW5jT2JqZWN0KSB7IG1fc3luY09i
amVjdCA9IHN5bmNPYmplY3Q7IH0KIAogICAgIHByaXZhdGU6CiAgICAgICAgIFBsYXRmb3JtOjpJ
bnRTaXplIG1fc2l6ZTsKICAgICAgICAgUGxhdGZvcm06OkludFJlY3RSZWdpb24gbV9yZW5kZXJl
ZFJlZ2lvbjsKKyAgICAgICAgdm9pZCogbV9zeW5jT2JqZWN0OwogICAgICAgICBtdXRhYmxlIFBs
YXRmb3JtOjpHcmFwaGljczo6QnVmZmVyKiBtX2J1ZmZlcjsKLSAgICAgICAgbXV0YWJsZSBpbnQg
bV9ibGl0R2VuZXJhdGlvbjsKIH07CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L1dlYktpdFN1cHBvcnQvU3VyZmFjZVBvb2wuY3BwIGIvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L1dlYktpdFN1cHBvcnQvU3VyZmFjZVBvb2wuY3BwCmluZGV4IGRlNGZlNWNhYTZiNjBk
MTAzYzMxYmRiOWZhOGQ4ZGJjYzNlOTIwZTguLmU0Yzk5ZWQ3YjFhNjYzNzA1NjY5MjAxMjRhOGY3
OTZjOTY4NDYzNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRT
dXBwb3J0L1N1cmZhY2VQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2Vi
S2l0U3VwcG9ydC9TdXJmYWNlUG9vbC5jcHAKQEAgLTI1LDE2ICsyNSwyOSBAQAogI2luY2x1ZGUg
IkJhY2tpbmdTdG9yZUNvbXBvc2l0aW5nU3VyZmFjZS5oIgogI2VuZGlmCiAKKyNpbmNsdWRlIDxC
bGFja0JlcnJ5UGxhdGZvcm1HcmFwaGljcy5oPgogI2luY2x1ZGUgPEJsYWNrQmVycnlQbGF0Zm9y
bUxvZy5oPgogI2luY2x1ZGUgPEJsYWNrQmVycnlQbGF0Zm9ybU1pc2MuaD4KICNpbmNsdWRlIDxC
bGFja0JlcnJ5UGxhdGZvcm1TY3JlZW4uaD4KICNpbmNsdWRlIDxCbGFja0JlcnJ5UGxhdGZvcm1T
ZXR0aW5ncy5oPgorI2luY2x1ZGUgPEJsYWNrQmVycnlQbGF0Zm9ybVRocmVhZGluZy5oPgorI2lu
Y2x1ZGUgPGVycm5vLmg+CisKKyNpZiBCTEFDS0JFUlJZX1BMQVRGT1JNX0dSQVBISUNTX0VHTAor
I2luY2x1ZGUgPEVHTC9lZ2xleHQuaD4KKyNlbmRpZgogCiAjZGVmaW5lIFNIQVJFRF9QSVhNQVBf
R1JPVVAgIndlYmtpdF9iYWNraW5nc3RvcmVfZ3JvdXAiCiAKIG5hbWVzcGFjZSBCbGFja0JlcnJ5
IHsKIG5hbWVzcGFjZSBXZWJLaXQgewogCisjaWYgQkxBQ0tCRVJSWV9QTEFURk9STV9HUkFQSElD
U19FR0wKK3N0YXRpYyBQRk5FR0xDUkVBVEVTWU5DS0hSUFJPQyBlZ2xDcmVhdGVTeW5jS0hSOwor
c3RhdGljIFBGTkVHTERFU1RST1lTWU5DS0hSUFJPQyBlZ2xEZXN0cm95U3luY0tIUjsKK3N0YXRp
YyBQRk5FR0xDTElFTlRXQUlUU1lOQ0tIUlBST0MgZWdsQ2xpZW50V2FpdFN5bmNLSFI7CisjZW5k
aWYKKwogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgRU5BQkxFX0NPTVBPU0lU
SU5HX1NVUkZBQ0UKIHN0YXRpYyBQYXNzUmVmUHRyPEJhY2tpbmdTdG9yZUNvbXBvc2l0aW5nU3Vy
ZmFjZT4gY3JlYXRlQ29tcG9zaXRpbmdTdXJmYWNlKCkKIHsKQEAgLTYwLDYgKzczLDcgQEAgU3Vy
ZmFjZVBvb2w6OlN1cmZhY2VQb29sKCkKICAgICAsIG1fYmFja0J1ZmZlcigwKQogICAgICwgbV9p
bml0aWFsaXplZChmYWxzZSkKICAgICAsIG1fYnVmZmVyc1N1c3BlbmRlZChmYWxzZSkKKyAgICAs
IG1faGFzRmVuY2VFeHRlbnNpb24oZmFsc2UpCiB7CiB9CiAKQEAgLTk1LDYgKzEwOSwyMSBAQCB2
b2lkIFN1cmZhY2VQb29sOjppbml0aWFsaXplKGNvbnN0IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpJ
bnRTaXplJiB0aWxlU2l6ZSkKIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtYmVyT2ZU
aWxlczsgKytpKQogICAgICAgICBtX3RpbGVQb29sLmFwcGVuZChCYWNraW5nU3RvcmVUaWxlOjpj
cmVhdGUodGlsZVNpemUsIEJhY2tpbmdTdG9yZVRpbGU6OkRvdWJsZUJ1ZmZlcmVkKSk7CisKKyNp
ZiBCTEFDS0JFUlJZX1BMQVRGT1JNX0dSQVBISUNTX0VHTAorICAgIGNvbnN0IGNoYXIqIGV4dGVu
c2lvbnMgPSBlZ2xRdWVyeVN0cmluZyhQbGF0Zm9ybTo6R3JhcGhpY3M6OmVnbERpc3BsYXkoKSwg
RUdMX0VYVEVOU0lPTlMpOworICAgIGlmIChzdHJzdHIoZXh0ZW5zaW9ucywgIkVHTF9LSFJfZmVu
Y2Vfc3luYyIpKSB7CisgICAgICAgIC8vIFdlIGFzc3VtZSBHTF9PRVNfRUdMX3N5bmMgaXMgcHJl
c2VudCwgYnV0IHdlIGRvbid0IGNoZWNrIGZvciBpdCBiZWNhdXNlCisgICAgICAgIC8vIG5vIEdM
IGNvbnRleHQgaXMgY3VycmVudCBhdCB0aGlzIHBvaW50LgorICAgICAgICAvLyBUT0RPOiBjaGVj
ayBmb3IgaXQKKyAgICAgICAgZWdsQ3JlYXRlU3luY0tIUiA9IChQRk5FR0xDUkVBVEVTWU5DS0hS
UFJPQykgZWdsR2V0UHJvY0FkZHJlc3MoImVnbENyZWF0ZVN5bmNLSFIiKTsKKyAgICAgICAgZWds
RGVzdHJveVN5bmNLSFIgPSAoUEZORUdMREVTVFJPWVNZTkNLSFJQUk9DKSBlZ2xHZXRQcm9jQWRk
cmVzcygiZWdsRGVzdHJveVN5bmNLSFIiKTsKKyAgICAgICAgZWdsQ2xpZW50V2FpdFN5bmNLSFIg
PSAoUEZORUdMQ0xJRU5UV0FJVFNZTkNLSFJQUk9DKSBlZ2xHZXRQcm9jQWRkcmVzcygiZWdsQ2xp
ZW50V2FpdFN5bmNLSFIiKTsKKyAgICAgICAgbV9oYXNGZW5jZUV4dGVuc2lvbiA9IGVnbENyZWF0
ZVN5bmNLSFIgJiYgZWdsRGVzdHJveVN5bmNLSFIgJiYgZWdsQ2xpZW50V2FpdFN5bmNLSFI7Cisg
ICAgfQorI2VuZGlmCisKKyAgICBwdGhyZWFkX211dGV4X2luaXQoJm1fbXV0ZXgsIDApOwogfQog
CiBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dCogU3VyZmFjZVBvb2w6OmNyZWF0ZVBsYXRmb3JtR3Jh
cGhpY3NDb250ZXh0KEJsYWNrQmVycnk6OlBsYXRmb3JtOjpHcmFwaGljczo6RHJhd2FibGUqIGRy
YXdhYmxlKSBjb25zdApAQCAtMTk5LDUgKzIyOCw3MSBAQCB2b2lkIFN1cmZhY2VQb29sOjpyZWxl
YXNlQnVmZmVycygpCiAgICAgfQogfQogCit2b2lkIFN1cmZhY2VQb29sOjp3YWl0Rm9yQnVmZmVy
KFRpbGVCdWZmZXIqIHRpbGVCdWZmZXIpCit7CisgICAgaWYgKCFtX2hhc0ZlbmNlRXh0ZW5zaW9u
KQorICAgICAgICByZXR1cm47CisKKyNpZiBCTEFDS0JFUlJZX1BMQVRGT1JNX0dSQVBISUNTX0VH
TAorICAgIEVHTFN5bmNLSFIgc3luY09iamVjdDsKKworICAgIHsKKyAgICAgICAgUGxhdGZvcm06
Ok11dGV4TG9ja2VyIGxvY2tlcigmbV9tdXRleCk7CisgICAgICAgIHN5bmNPYmplY3QgPSB0aWxl
QnVmZmVyLT5zeW5jT2JqZWN0KCk7CisgICAgICAgIGlmICghc3luY09iamVjdCkKKyAgICAgICAg
ICAgIHJldHVybjsKKworICAgICAgICAvLyBTdGFsZSByZWZlcmVuY2VzIHRvIHRoaXMgc3luYyBv
YmplY3QgbWF5IHJlbWFpbiB3aXRoIG90aGVyIHRpbGVzLCBkb24ndCB3YWl0IGZvciBpdCBhZ2Fp
bi4KKyAgICAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBtX3RpbGVQb29sLnNpemUo
KTsgKytpKSB7CisgICAgICAgICAgICBUaWxlQnVmZmVyKiB0aWxlQnVmZmVyID0gbV90aWxlUG9v
bFtpXS0+ZnJvbnRCdWZmZXIoKTsKKyAgICAgICAgICAgIGlmICh0aWxlQnVmZmVyLT5zeW5jT2Jq
ZWN0KCkgPT0gc3luY09iamVjdCkKKyAgICAgICAgICAgICAgICB0aWxlQnVmZmVyLT5zZXRTeW5j
T2JqZWN0KDApOworICAgICAgICB9CisgICAgICAgIGlmIChiYWNrQnVmZmVyKCktPnN5bmNPYmpl
Y3QoKSA9PSBzeW5jT2JqZWN0KQorICAgICAgICAgICAgYmFja0J1ZmZlcigpLT5zZXRTeW5jT2Jq
ZWN0KDApOworICAgIH0KKworICAgIGVnbENsaWVudFdhaXRTeW5jS0hSKFBsYXRmb3JtOjpHcmFw
aGljczo6ZWdsRGlzcGxheSgpLCBzeW5jT2JqZWN0LCAwLCAxMDAwMDAwMDBMTCk7CisKKyAgICAv
LyBJbnN0ZWFkIG9mIGFzc3VtaW5nIGVnbERlc3Ryb3lTeW5jS0hSIGlzIHRocmVhZCBzYWZlLCB3
ZSBhZGQgaXQgdG8KKyAgICAvLyBhIGdhcmJhZ2UgbGlzdCBmb3IgbGF0ZXIgY29sbGVjdGlvbiBv
biB0aGUgdGhyZWFkIHRoYXQgY3JlYXRlZCBpdC4KKyAgICB7CisgICAgICAgIFBsYXRmb3JtOjpN
dXRleExvY2tlciBsb2NrZXIoJm1fbXV0ZXgpOworICAgICAgICBtX3N5bmNPYmplY3RzVG9EZXN0
cm95Lmluc2VydChzeW5jT2JqZWN0KTsKKyAgICB9CisjZW5kaWYKK30KKwordm9pZCBTdXJmYWNl
UG9vbDo6bm90aWZ5QnVmZmVyc0NvbXBvc2l0ZWQoY29uc3QgVmVjdG9yPFRpbGVCdWZmZXIqPiYg
dGlsZUJ1ZmZlcnMpCit7CisgICAgaWYgKCFtX2hhc0ZlbmNlRXh0ZW5zaW9uKQorICAgICAgICBy
ZXR1cm47CisKKyNpZiBCTEFDS0JFUlJZX1BMQVRGT1JNX0dSQVBISUNTX0VHTAorICAgIFBsYXRm
b3JtOjpNdXRleExvY2tlciBsb2NrZXIoJm1fbXV0ZXgpOworCisgICAgRUdMRGlzcGxheSBkaXNw
bGF5ID0gUGxhdGZvcm06OkdyYXBoaWNzOjplZ2xEaXNwbGF5KCk7CisKKyAgICAvLyBUaGUgRUdM
X0tIUl9mZW5jZV9zeW5jIHNwZWMgaXMgbmljZSBlbm91Z2ggdG8gc3BlY2lmeSB0aGF0IHRoZSBz
eW5jIG9iamVjdAorICAgIC8vIGlzIG5vdCBhY3R1YWxseSBkZWxldGVkIHVudGlsIGV2ZXJ5b25l
IGhhcyBzdG9wcGVkIHVzaW5nIGl0LgorICAgIGZvciAoc3RkOjpzZXQ8dm9pZCo+Ojpjb25zdF9p
dGVyYXRvciBpdCA9IG1fc3luY09iamVjdHNUb0Rlc3Ryb3kuYmVnaW4oKTsgaXQgIT0gbV9zeW5j
T2JqZWN0c1RvRGVzdHJveS5lbmQoKTsgKytpdCkKKyAgICAgICAgZWdsRGVzdHJveVN5bmNLSFIo
ZGlzcGxheSwgKml0KTsKKyAgICBtX3N5bmNPYmplY3RzVG9EZXN0cm95LmNsZWFyKCk7CisKKyAg
ICAvLyBJZiB3ZSBkaWRuJ3QgYmxpdCBhbnl0aGluZywgd2UgZG9uJ3QgbmVlZCB0byBjcmVhdGUg
YSBuZXcgc3luYyBvYmplY3QuCisgICAgaWYgKHRpbGVCdWZmZXJzLmlzRW1wdHkoKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgRUdMU3luY0tIUiBzeW5jT2JqZWN0ID0gZWdsQ3JlYXRlU3luY0tI
UihkaXNwbGF5LCBFR0xfU1lOQ19GRU5DRV9LSFIsIDApOworCisgICAgZm9yICh1bnNpZ25lZCBp
bnQgaSA9IDA7IGkgPCB0aWxlQnVmZmVycy5zaXplKCk7ICsraSkgeworICAgICAgICBpZiAoRUdM
U3luY0tIUiBwcmV2aW91c1N5bmNPYmplY3QgPSB0aWxlQnVmZmVyc1tpXS0+c3luY09iamVjdCgp
KQorICAgICAgICAgICAgbV9zeW5jT2JqZWN0c1RvRGVzdHJveS5pbnNlcnQocHJldmlvdXNTeW5j
T2JqZWN0KTsKKworICAgICAgICB0aWxlQnVmZmVyc1tpXS0+c2V0U3luY09iamVjdChzeW5jT2Jq
ZWN0KTsKKyAgICB9CisjZW5kaWYKK30KKwogfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvU3VyZmFjZVBvb2wuaCBiL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1N1cmZhY2VQb29sLmgKaW5kZXggZmE4OGE1ZDZhNDc2
NzgwNzM2ZjJiOGIwOGMzMGUwODhhOTQ3MzMxMC4uMWM1MGRmODFiODNhOTdkNTUwZWU4NTczZjUz
NTk0MTJmNTZjMDViYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktp
dFN1cHBvcnQvU3VyZmFjZVBvb2wuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2Vi
S2l0U3VwcG9ydC9TdXJmYWNlUG9vbC5oCkBAIC0yNSw2ICsyNSw4IEBACiAKICNpbmNsdWRlIDxC
bGFja0JlcnJ5UGxhdGZvcm1HcmFwaGljcy5oPgogI2luY2x1ZGUgPEJsYWNrQmVycnlQbGF0Zm9y
bVByaW1pdGl2ZXMuaD4KKyNpbmNsdWRlIDxwdGhyZWFkLmg+CisjaW5jbHVkZSA8c2V0PgogI2lu
Y2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogI2RlZmluZSBFTkFCTEVfQ09NUE9TSVRJTkdfU1VSRkFD
RSAxCkBAIC03MSw2ICs3MywxNiBAQCBwdWJsaWM6CiAgICAgdm9pZCByZWxlYXNlQnVmZmVycygp
OwogICAgIHZvaWQgY3JlYXRlQnVmZmVycygpOwogCisgICAgLy8gRUdMSW1hZ2Ugc3luY2hyb25p
emF0aW9uIGJldHdlZW4gV2ViS2l0IGFuZCBjb21wb3NpdGluZyB0aHJlYWRzCisgICAgLy8gVE9E
TzogRmlndXJlIG91dCBob3cgdG8gaW1wcm92ZSB0aGUgQmxhY2tCZXJyeTo6UGxhdGZvcm06Okdy
YXBoaWNzIHdpdGggQVBJIHRoYXQgY2FuIGVuY2Fwc3VsYXRlCisgICAgLy8gdGhpcyBraW5kIG9m
IHN5bmNocm9uaXNhdGlvbiBtZWNoYW5pc20uCisKKyAgICAvLyBXZWJLaXQgdGhyZWFkIG11c3Qg
d2FpdEZvckJ1ZmZlcigpIGJlZm9yZSByZW5kZXJpbmcgdG8gRUdMSW1hZ2UKKyAgICB2b2lkIHdh
aXRGb3JCdWZmZXIoVGlsZUJ1ZmZlciopOworCisgICAgLy8gQ29tcG9zaXRpbmcgdGhyZWFkIG11
c3Qgbm90aWZ5IHRoZSBTdXJmYWNlUG9vbCB3aGVuIEVHTEltYWdlcyBhcmUgY29tcG9zaXRlZAor
ICAgIHZvaWQgbm90aWZ5QnVmZmVyc0NvbXBvc2l0ZWQoY29uc3QgVmVjdG9yPFRpbGVCdWZmZXIq
PiYgYnVmZmVycyk7CisKIHByaXZhdGU6CiAgICAgLy8gVGhpcyBpcyBuZWNlc3Nhcnkgc28gQmFj
a2luZ1N0b3JlVGlsZSBjYW4gYXRvbWljYWxseSBzd2FwIGJ1ZmZlcnMgd2l0aCBtX2JhY2tCdWZm
ZXIuCiAgICAgZnJpZW5kIGNsYXNzIEJhY2tpbmdTdG9yZVRpbGU7CkBAIC04Niw2ICs5OCwxMCBA
QCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fYmFja0J1ZmZlcjsKICAgICBib29sIG1faW5pdGlh
bGl6ZWQ7IC8vIFN1cmZhY2VQb29sIGhhcyBiZWVuIHNldCB1cCwgd2l0aCBvciB3aXRob3V0IGJ1
ZmZlcnMuCiAgICAgYm9vbCBtX2J1ZmZlcnNTdXNwZW5kZWQ7IC8vIEJ1ZmZlciBvYmplY3RzIGV4
aXN0LCBidXQgcGl4ZWwgbWVtb3J5IGhhcyBiZWVuIGZyZWVkLgorCisgICAgc3RkOjpzZXQ8dm9p
ZCo+IG1fc3luY09iamVjdHNUb0Rlc3Ryb3k7CisgICAgYm9vbCBtX2hhc0ZlbmNlRXh0ZW5zaW9u
OworICAgIG11dGFibGUgcHRocmVhZF9tdXRleF90IG1fbXV0ZXg7CiB9OwogfQogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>