<?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>83514</bug_id>
          
          <creation_ts>2012-04-09 15:25:22 -0700</creation_ts>
          <short_desc>[chromium] Defer texture id allocation for copies until the actual copy executes</short_desc>
          <delta_ts>2012-04-10 11:18:03 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>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>83530</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="James Robinson">jamesr</reporter>
          <assigned_to name="James Robinson">jamesr</assigned_to>
          <cc>cc-bugs</cc>
    
    <cc>enne</cc>
    
    <cc>nduca</cc>
    
    <cc>reveman</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>598667</commentid>
    <comment_count>0</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-04-09 15:25:22 -0700</bug_when>
    <thetext>[chromium] Defer texture id allocation for copies until the actual copy executes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>598669</commentid>
    <comment_count>1</comment_count>
      <attachid>136316</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-04-09 15:26:35 -0700</bug_when>
    <thetext>Created attachment 136316
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>598670</commentid>
    <comment_count>2</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-04-09 15:27:22 -0700</bug_when>
    <thetext>This is a prereq for removing LayerChromium::updateCompositorResources(), which I&apos;ll do in a separate patch (since it&apos;s biggish).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>599355</commentid>
    <comment_count>3</comment_count>
      <attachid>136316</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-04-10 09:57:01 -0700</bug_when>
    <thetext>Comment on attachment 136316
Patch

Nice.  R=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>599436</commentid>
    <comment_count>4</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-04-10 11:18:03 -0700</bug_when>
    <thetext>Committed r113740: &lt;http://trac.webkit.org/changeset/113740&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>136316</attachid>
            <date>2012-04-09 15:26:35 -0700</date>
            <delta_ts>2012-04-10 09:57:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-83514-20120409152634.patch</filename>
            <type>text/plain</type>
            <size>26795</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEzNjE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmQxZTQ0Yzc5YjcxMzE2
Yzg5ZWM0M2IyMjljNmYwMWZiMjg4ZTkwZS4uYzc0NjViYjlmNjBlOTI2NDQzNmEzNzQxZTI3Yjgx
MjEwZDBiOTk4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTA0LTA5ICBKYW1l
cyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBE
ZWZlciB0ZXh0dXJlIGlkIGFsbG9jYXRpb24gZm9yIGNvcGllcyB1bnRpbCB0aGUgYWN0dWFsIGNv
cHkgZXhlY3V0ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTgzNTE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhpcyBhbGxvd3MgZm9yIHF1ZXVpbmcgYSB0ZXh0dXJlIGNvcHkgb3BlcmF0aW9uIGludG8g
YSBNYW5hZ2VkVGV4dHVyZSB3aG9zZSB0ZXh0dXJlIElEIGhhcyBub3QgeWV0IGJlZW4KKyAgICAg
ICAgYWxsb2NhdGVkLiBUaGUgTWFuYWdlZFRleHR1cmUqIHNlcnZlcyBhcyBhIHByb21pc2UgdGhh
dCBhbiBJRCB3aWxsIGJlIGF2YWlsYWJsZSB3aGVuIHRoZSBjb3B5IGlzIGV4ZWN1dGVkLgorCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckNocm9taXVt
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhczJETGF5ZXJDaHJvbWl1bTo6dXBkYXRlQ29t
cG9zaXRvclJlc291cmNlcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ1NpbmdsZVRo
cmVhZFByb3h5Ojpkb0NvbW1pdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NUZXh0dXJlVXBkYXRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ1RleHR1cmVV
cGRhdGVyOjpDQ1RleHR1cmVVcGRhdGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNDVGV4dHVyZVVw
ZGF0ZXI6OmFwcGVuZE1hbmFnZWRDb3B5KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6Q0NUZXh0dXJlVXBkYXRlcjo6aGFzTW9yZVVwZGF0ZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6Q0NUZXh0dXJlVXBkYXRlcjo6dXBkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNDVGV4
dHVyZVVwZGF0ZXI6OmNsZWFyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ1RleHR1cmVVcGRhdGVyLmg6CisgICAgICAgIChDQ1RleHR1cmVVcGRhdGVyKToKKyAg
ICAgICAgKE1hbmFnZWRDb3B5RW50cnkpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NUaHJlYWRQ
cm94eTo6YmVnaW5GcmFtZUNvbXBsZXRlT25JbXBsVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6
OkNDVGhyZWFkUHJveHk6OnNjaGVkdWxlZEFjdGlvblVwZGF0ZU1vcmVSZXNvdXJjZXMpOgorCiAy
MDEyLTA0LTA2ICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgW2Nocm9taXVtXSBUZXh0dXJlIGNvcGllcyBzaG91bGQgaGFwcGVuIGFmdGVyIGluY3JlbWVu
dGFsIHVwZGF0ZXMgdG8gcHJlc2VydmUgY29tbWl0IGF0b21pY2l0eQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwppbmRleCA2YmI2YTg1NmJhMGM4YjJjZTkzYmUyY2EwYWY2NWFlYTYwNWNiMjgxLi44
OTcwYjE3M2RkYTIzMGQwOTUyZjhjZTMxZTAyYjkxZjI4ODkwZTdhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTA0LTA5ICBKYW1lcyBSb2JpbnNvbiAg
PGphbWVzckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBEZWZlciB0ZXh0dXJl
IGlkIGFsbG9jYXRpb24gZm9yIGNvcGllcyB1bnRpbCB0aGUgYWN0dWFsIGNvcHkgZXhlY3V0ZXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgzNTE0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB0ZXN0cy9D
Q1RpbGVkTGF5ZXJUZXN0Q29tbW9uLmNwcDoKKyAgICAgICAgKiB0ZXN0cy9DQ1RpbGVkTGF5ZXJU
ZXN0Q29tbW9uLmg6CisgICAgICAgICogdGVzdHMvQ2FudmFzMkRMYXllckNocm9taXVtVGVzdC5j
cHA6CisgICAgICAgICogdGVzdHMvVGlsZWRMYXllckNocm9taXVtVGVzdC5jcHA6CisgICAgICAg
IChXVEY6OlRFU1QpOgorCiAyMDEyLTA0LTA2ICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBUZXh0dXJlIGNvcGllcyBzaG91bGQgaGFw
cGVuIGFmdGVyIGluY3JlbWVudGFsIHVwZGF0ZXMgdG8gcHJlc2VydmUgY29tbWl0IGF0b21pY2l0
eQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Q2FudmFzMkRMYXllckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0NhbnZhczJETGF5ZXJDaHJvbWl1bS5jcHAKaW5kZXggY2E1NTVmY2ZmN2Iy
MDJiOWI3MjJhNmUxZDgyZjU0YzUwZWJjMWZhZi4uYmZhODM0ZTI2MmYzMTZlY2FkNDczNTY5MmUw
YWNjNDBkYWFmY2FiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExheWVyQ2hyb21pdW0uY3BwCkBA
IC0xMzQsOCArMTM0LDcgQEAgdm9pZCBDYW52YXMyRExheWVyQ2hyb21pdW06OnVwZGF0ZUNvbXBv
c2l0b3JSZXNvdXJjZXMoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQKICAgICBpZiAoIW1fYmFj
a1RleHR1cmVJZCB8fCAhbV9mcm9udFRleHR1cmUgfHwgIW1fZnJvbnRUZXh0dXJlLT5pc1ZhbGlk
KG1fc2l6ZSwgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEpKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBtX2Zyb250VGV4dHVyZS0+YWxsb2NhdGUodXBkYXRlci5hbGxvY2F0b3IoKSk7Ci0gICAgdXBk
YXRlci5hcHBlbmRDb3B5KG1fYmFja1RleHR1cmVJZCwgbV9mcm9udFRleHR1cmUtPnRleHR1cmVJ
ZCgpLCBtX3NpemUpOworICAgIHVwZGF0ZXIuYXBwZW5kTWFuYWdlZENvcHkobV9iYWNrVGV4dHVy
ZUlkLCBtX2Zyb250VGV4dHVyZS5nZXQoKSwgbV9zaXplKTsKIH0KIAogdm9pZCBDYW52YXMyRExh
eWVyQ2hyb21pdW06OnB1c2hQcm9wZXJ0aWVzVG8oQ0NMYXllckltcGwqIGxheWVyKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5n
bGVUaHJlYWRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmNwcAppbmRleCBlYzg0MjhkNjUwNWZhMTk5NzFm
OGFhMzIwMTY2NTAzMTMyN2MyMmI2Li41N2YwYzIwNjM2YjY5NDBkZDNjMDgzNmUxYWQyOTBlNmVi
ZmEyMzQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmNwcApAQCAtMjAw
LDkgKzIwMCw5IEBAIHZvaWQgQ0NTaW5nbGVUaHJlYWRQcm94eTo6ZG9Db21taXQoKQogICAgICAg
ICBtX2xheWVyVHJlZUhvc3RJbXBsLT5iZWdpbkNvbW1pdCgpOwogCiAgICAgICAgIG1fbGF5ZXJU
cmVlSG9zdC0+YmVnaW5Db21taXRPbkltcGxUaHJlYWQobV9sYXllclRyZWVIb3N0SW1wbC5nZXQo
KSk7Ci0gICAgICAgIENDVGV4dHVyZVVwZGF0ZXIgdXBkYXRlcihtX2xheWVyVHJlZUhvc3RJbXBs
LT5jb250ZW50c1RleHR1cmVBbGxvY2F0b3IoKSwgbV9sYXllclRyZWVIb3N0SW1wbC0+bGF5ZXJS
ZW5kZXJlcigpLT50ZXh0dXJlQ29waWVyKCkpOworICAgICAgICBDQ1RleHR1cmVVcGRhdGVyIHVw
ZGF0ZXI7CiAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+dXBkYXRlQ29tcG9zaXRvclJlc291cmNl
cyhtX2xheWVyVHJlZUhvc3RJbXBsLT5jb250ZXh0KCksIHVwZGF0ZXIpOwotICAgICAgICB1cGRh
dGVyLnVwZGF0ZShtX2xheWVyVHJlZUhvc3RJbXBsLT5jb250ZXh0KCksIG51bWVyaWNfbGltaXRz
PHNpemVfdD46Om1heCgpKTsKKyAgICAgICAgdXBkYXRlci51cGRhdGUobV9sYXllclRyZWVIb3N0
SW1wbC0+Y29udGV4dCgpLCBtX2xheWVyVHJlZUhvc3RJbXBsLT5jb250ZW50c1RleHR1cmVBbGxv
Y2F0b3IoKSwgbV9sYXllclRyZWVIb3N0SW1wbC0+bGF5ZXJSZW5kZXJlcigpLT50ZXh0dXJlQ29w
aWVyKCksIG51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpKTsKICAgICAgICAgQVNTRVJUKCF1
cGRhdGVyLmhhc01vcmVVcGRhdGVzKCkpOwogICAgICAgICBtX2xheWVyVHJlZUhvc3RJbXBsLT5z
ZXRWaXNpYmxlKG1fbGF5ZXJUcmVlSG9zdC0+dmlzaWJsZSgpKTsKICAgICAgICAgbV9sYXllclRy
ZWVIb3N0LT5maW5pc2hDb21taXRPbkltcGxUaHJlYWQobV9sYXllclRyZWVIb3N0SW1wbC5nZXQo
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ1RleHR1cmVVcGRhdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZVVwZGF0ZXIuY3BwCmluZGV4IDQwMTJkYTQ1MWYyMTRl
ZWNlNDkxYWE2MDgwMGIyYjAxYzViNTBkMjQuLmE3MzA0ZDcxN2JiZjAzM2IwYzdkMzAxN2I0MGY4
OWRiYWFiMjNjY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDVGV4dHVyZVVwZGF0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZVVwZGF0ZXIuY3BwCkBAIC0zOCwx
MiArMzgsOSBAQCB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LUNDVGV4dHVyZVVwZGF0ZXI6OkNDVGV4dHVyZVVwZGF0ZXIoVGV4dHVyZUFsbG9jYXRvciogYWxs
b2NhdG9yLCBUZXh0dXJlQ29waWVyKiBjb3BpZXIpCi0gICAgOiBtX2FsbG9jYXRvcihhbGxvY2F0
b3IpCi0gICAgLCBtX2NvcGllcihjb3BpZXIpCi0gICAgLCBtX2VudHJ5SW5kZXgoMCkKK0NDVGV4
dHVyZVVwZGF0ZXI6OkNDVGV4dHVyZVVwZGF0ZXIoKQorICAgIDogbV9lbnRyeUluZGV4KDApCiB7
Ci0gICAgQVNTRVJUKG1fYWxsb2NhdG9yKTsKIH0KIAogQ0NUZXh0dXJlVXBkYXRlcjo6fkNDVGV4
dHVyZVVwZGF0ZXIoKQpAQCAtODAsMTggKzc3LDI3IEBAIHZvaWQgQ0NUZXh0dXJlVXBkYXRlcjo6
YXBwZW5kQ29weSh1bnNpZ25lZCBzb3VyY2VUZXh0dXJlLCB1bnNpZ25lZCBkZXN0VGV4dHVyZSwK
ICAgICBtX2NvcHlFbnRyaWVzLmFwcGVuZChjb3B5KTsKIH0KIAordm9pZCBDQ1RleHR1cmVVcGRh
dGVyOjphcHBlbmRNYW5hZ2VkQ29weSh1bnNpZ25lZCBzb3VyY2VUZXh0dXJlLCBNYW5hZ2VkVGV4
dHVyZSogZGVzdFRleHR1cmUsIGNvbnN0IEludFNpemUmIHNpemUpCit7CisgICAgTWFuYWdlZENv
cHlFbnRyeSBjb3B5OworICAgIGNvcHkuc291cmNlVGV4dHVyZSA9IHNvdXJjZVRleHR1cmU7Cisg
ICAgY29weS5kZXN0VGV4dHVyZSA9IGRlc3RUZXh0dXJlOworICAgIGNvcHkuc2l6ZSA9IHNpemU7
CisgICAgbV9tYW5hZ2VkQ29weUVudHJpZXMuYXBwZW5kKGNvcHkpOworfQorCiBib29sIENDVGV4
dHVyZVVwZGF0ZXI6Omhhc01vcmVVcGRhdGVzKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9lbnRy
aWVzLnNpemUoKSB8fCBtX3BhcnRpYWxFbnRyaWVzLnNpemUoKSB8fCBtX2NvcHlFbnRyaWVzLnNp
emUoKTsKKyAgICByZXR1cm4gbV9lbnRyaWVzLnNpemUoKSB8fCBtX3BhcnRpYWxFbnRyaWVzLnNp
emUoKSB8fCBtX2NvcHlFbnRyaWVzLnNpemUoKSB8fCBtX21hbmFnZWRDb3B5RW50cmllcy5zaXpl
KCk7CiB9CiAKLWJvb2wgQ0NUZXh0dXJlVXBkYXRlcjo6dXBkYXRlKEdyYXBoaWNzQ29udGV4dDNE
KiBjb250ZXh0LCBzaXplX3QgY291bnQpCitib29sIENDVGV4dHVyZVVwZGF0ZXI6OnVwZGF0ZShH
cmFwaGljc0NvbnRleHQzRCogY29udGV4dCwgVGV4dHVyZUFsbG9jYXRvciogYWxsb2NhdG9yLCBU
ZXh0dXJlQ29waWVyKiBjb3BpZXIsIHNpemVfdCBjb3VudCkKIHsKICAgICBzaXplX3QgaW5kZXg7
CiAgICAgc2l6ZV90IG1heEluZGV4ID0gbWluKG1fZW50cnlJbmRleCArIGNvdW50LCBtX2VudHJp
ZXMuc2l6ZSgpKTsKICAgICBmb3IgKGluZGV4ID0gbV9lbnRyeUluZGV4OyBpbmRleCA8IG1heElu
ZGV4OyArK2luZGV4KSB7CiAgICAgICAgIFVwZGF0ZUVudHJ5JiBlbnRyeSA9IG1fZW50cmllc1tp
bmRleF07Ci0gICAgICAgIGVudHJ5LnRleHR1cmUtPnVwZGF0ZVJlY3QoY29udGV4dCwgbV9hbGxv
Y2F0b3IsIGVudHJ5LnNvdXJjZVJlY3QsIGVudHJ5LmRlc3RSZWN0KTsKKyAgICAgICAgZW50cnku
dGV4dHVyZS0+dXBkYXRlUmVjdChjb250ZXh0LCBhbGxvY2F0b3IsIGVudHJ5LnNvdXJjZVJlY3Qs
IGVudHJ5LmRlc3RSZWN0KTsKICAgICB9CiAKICAgICBib29sIG1vcmVVcGRhdGVzID0gbWF4SW5k
ZXggPCBtX2VudHJpZXMuc2l6ZSgpOwpAQCAtMTA5LDE3ICsxMTUsMjIgQEAgYm9vbCBDQ1RleHR1
cmVVcGRhdGVyOjp1cGRhdGUoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQsIHNpemVfdCBjb3Vu
dCkKIAogICAgIGZvciAoaW5kZXggPSAwOyBpbmRleCA8IG1fcGFydGlhbEVudHJpZXMuc2l6ZSgp
OyArK2luZGV4KSB7CiAgICAgICAgIFVwZGF0ZUVudHJ5JiBlbnRyeSA9IG1fcGFydGlhbEVudHJp
ZXNbaW5kZXhdOwotICAgICAgICBlbnRyeS50ZXh0dXJlLT51cGRhdGVSZWN0KGNvbnRleHQsIG1f
YWxsb2NhdG9yLCBlbnRyeS5zb3VyY2VSZWN0LCBlbnRyeS5kZXN0UmVjdCk7CisgICAgICAgIGVu
dHJ5LnRleHR1cmUtPnVwZGF0ZVJlY3QoY29udGV4dCwgYWxsb2NhdG9yLCBlbnRyeS5zb3VyY2VS
ZWN0LCBlbnRyeS5kZXN0UmVjdCk7CiAgICAgfQogCiAgICAgZm9yIChpbmRleCA9IDA7IGluZGV4
IDwgbV9jb3B5RW50cmllcy5zaXplKCk7ICsraW5kZXgpIHsKICAgICAgICAgQ29weUVudHJ5JiBj
b3B5RW50cnkgPSBtX2NvcHlFbnRyaWVzW2luZGV4XTsKLSAgICAgICAgbV9jb3BpZXItPmNvcHlU
ZXh0dXJlKGNvbnRleHQsIGNvcHlFbnRyeS5zb3VyY2VUZXh0dXJlLCBjb3B5RW50cnkuZGVzdFRl
eHR1cmUsIGNvcHlFbnRyeS5zaXplKTsKKyAgICAgICAgY29waWVyLT5jb3B5VGV4dHVyZShjb250
ZXh0LCBjb3B5RW50cnkuc291cmNlVGV4dHVyZSwgY29weUVudHJ5LmRlc3RUZXh0dXJlLCBjb3B5
RW50cnkuc2l6ZSk7CisgICAgfQorICAgIGZvciAoaW5kZXggPSAwOyBpbmRleCA8IG1fbWFuYWdl
ZENvcHlFbnRyaWVzLnNpemUoKTsgKytpbmRleCkgeworICAgICAgICBNYW5hZ2VkQ29weUVudHJ5
JiBtYW5hZ2VkQ29weUVudHJ5ID0gbV9tYW5hZ2VkQ29weUVudHJpZXNbaW5kZXhdOworICAgICAg
ICBtYW5hZ2VkQ29weUVudHJ5LmRlc3RUZXh0dXJlLT5hbGxvY2F0ZShhbGxvY2F0b3IpOworICAg
ICAgICBjb3BpZXItPmNvcHlUZXh0dXJlKGNvbnRleHQsIG1hbmFnZWRDb3B5RW50cnkuc291cmNl
VGV4dHVyZSwgbWFuYWdlZENvcHlFbnRyeS5kZXN0VGV4dHVyZS0+dGV4dHVyZUlkKCksIG1hbmFn
ZWRDb3B5RW50cnkuc2l6ZSk7CiAgICAgfQogICAgIC8vIElmIHdlJ3ZlIHBlcmZvcm1lZCBhbnkg
dGV4dHVyZSBjb3BpZXMsIHdlIG5lZWQgdG8gaW5zZXJ0IGEgZmx1c2ggaGVyZSBpbnRvIHRoZSBj
b21wb3NpdG9yIGNvbnRleHQKICAgICAvLyBiZWZvcmUgbGV0dGluZyB0aGUgbWFpbiB0aHJlYWQg
cHJvY2VlZCBhcyBpdCBtYXkgbWFrZSBkcmF3IGNhbGxzIHRvIHRoZSBzb3VyY2UgdGV4dHVyZSBv
ZiBvbmUgb2YKICAgICAvLyBvdXIgY29weSBvcGVyYXRpb25zLgotICAgIGlmIChtX2NvcHlFbnRy
aWVzLnNpemUoKSkKKyAgICBpZiAobV9jb3B5RW50cmllcy5zaXplKCkgfHwgbV9tYW5hZ2VkQ29w
eUVudHJpZXMuc2l6ZSgpKQogICAgICAgICBjb250ZXh0LT5mbHVzaCgpOwogCiAgICAgLy8gSWYg
bm8gZW50cmllcyBsZWZ0IHRvIHByb2Nlc3MsIGF1dG8tY2xlYXIuCkBAIC0xMzMsNiArMTQ0LDcg
QEAgdm9pZCBDQ1RleHR1cmVVcGRhdGVyOjpjbGVhcigpCiAgICAgbV9lbnRyaWVzLmNsZWFyKCk7
CiAgICAgbV9wYXJ0aWFsRW50cmllcy5jbGVhcigpOwogICAgIG1fY29weUVudHJpZXMuY2xlYXIo
KTsKKyAgICBtX21hbmFnZWRDb3B5RW50cmllcy5jbGVhcigpOwogfQogCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVV
cGRhdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q1RleHR1cmVVcGRhdGVyLmgKaW5kZXggYTA4NmJhYmNkNTY3NGI5NThkMTQ4OTBkYWE4MmY3ZmYw
NzlkYWJjOS4uYjZmYzFhMjRiNjk4ODE0NmQ2NGI1YjdkNmUxNTc0M2ViY2NmNDQ2MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUZXh0
dXJlVXBkYXRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDVGV4dHVyZVVwZGF0ZXIuaApAQCAtMzgsMjIgKzM4LDIxIEBAIGNsYXNzIFRleHR1
cmVDb3BpZXI7CiAKIGNsYXNzIENDVGV4dHVyZVVwZGF0ZXIgewogcHVibGljOgotICAgIENDVGV4
dHVyZVVwZGF0ZXIoVGV4dHVyZUFsbG9jYXRvciosIFRleHR1cmVDb3BpZXIqKTsKKyAgICBDQ1Rl
eHR1cmVVcGRhdGVyKCk7CiAgICAgfkNDVGV4dHVyZVVwZGF0ZXIoKTsKIAogICAgIHZvaWQgYXBw
ZW5kVXBkYXRlKExheWVyVGV4dHVyZVVwZGF0ZXI6OlRleHR1cmUqLCBjb25zdCBJbnRSZWN0JiBz
b3VyY2VSZWN0LCBjb25zdCBJbnRSZWN0JiBkZXN0UmVjdCk7CiAgICAgdm9pZCBhcHBlbmRQYXJ0
aWFsVXBkYXRlKExheWVyVGV4dHVyZVVwZGF0ZXI6OlRleHR1cmUqLCBjb25zdCBJbnRSZWN0JiBz
b3VyY2VSZWN0LCBjb25zdCBJbnRSZWN0JiBkZXN0UmVjdCk7CiAgICAgdm9pZCBhcHBlbmRDb3B5
KHVuc2lnbmVkIHNvdXJjZVRleHR1cmUsIHVuc2lnbmVkIGRlc3RUZXh0dXJlLCBjb25zdCBJbnRT
aXplJik7CisgICAgdm9pZCBhcHBlbmRNYW5hZ2VkQ29weSh1bnNpZ25lZCBzb3VyY2VUZXh0dXJl
LCBNYW5hZ2VkVGV4dHVyZSogZGVzdFRleHR1cmUsIGNvbnN0IEludFNpemUmKTsKIAogICAgIGJv
b2wgaGFzTW9yZVVwZGF0ZXMoKSBjb25zdDsKIAogICAgIC8vIFVwZGF0ZSBzb21lIHRleHR1cmVz
LiBSZXR1cm5zIHRydWUgaWYgbW9yZSB0ZXh0dXJlcyBsZWZ0IHRvIHByb2Nlc3MuCi0gICAgYm9v
bCB1cGRhdGUoR3JhcGhpY3NDb250ZXh0M0QqLCBzaXplX3QgY291bnQpOworICAgIGJvb2wgdXBk
YXRlKEdyYXBoaWNzQ29udGV4dDNEKiwgVGV4dHVyZUFsbG9jYXRvciosIFRleHR1cmVDb3BpZXIq
LCBzaXplX3QgY291bnQpOwogCiAgICAgdm9pZCBjbGVhcigpOwogCi0gICAgVGV4dHVyZUFsbG9j
YXRvciogYWxsb2NhdG9yKCkgeyByZXR1cm4gbV9hbGxvY2F0b3I7IH0KLQogcHJpdmF0ZToKICAg
ICBzdHJ1Y3QgVXBkYXRlRW50cnkgewogICAgICAgICBMYXllclRleHR1cmVVcGRhdGVyOjpUZXh0
dXJlKiB0ZXh0dXJlOwpAQCAtNjcsMTQgKzY2LDE5IEBAIHByaXZhdGU6CiAgICAgICAgIHVuc2ln
bmVkIGRlc3RUZXh0dXJlOwogICAgIH07CiAKKyAgICBzdHJ1Y3QgTWFuYWdlZENvcHlFbnRyeSB7
CisgICAgICAgIEludFNpemUgc2l6ZTsKKyAgICAgICAgdW5zaWduZWQgc291cmNlVGV4dHVyZTsK
KyAgICAgICAgTWFuYWdlZFRleHR1cmUqIGRlc3RUZXh0dXJlOworICAgIH07CisKICAgICBzdGF0
aWMgdm9pZCBhcHBlbmRVcGRhdGUoTGF5ZXJUZXh0dXJlVXBkYXRlcjo6VGV4dHVyZSosIGNvbnN0
IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFJlY3QmIGRlc3RSZWN0LCBWZWN0b3I8VXBk
YXRlRW50cnk+Jik7CiAKLSAgICBUZXh0dXJlQWxsb2NhdG9yKiBtX2FsbG9jYXRvcjsKLSAgICBU
ZXh0dXJlQ29waWVyKiBtX2NvcGllcjsKICAgICBzaXplX3QgbV9lbnRyeUluZGV4OwogICAgIFZl
Y3RvcjxVcGRhdGVFbnRyeT4gbV9lbnRyaWVzOwogICAgIFZlY3RvcjxVcGRhdGVFbnRyeT4gbV9w
YXJ0aWFsRW50cmllczsKICAgICBWZWN0b3I8Q29weUVudHJ5PiBtX2NvcHlFbnRyaWVzOworICAg
IFZlY3RvcjxNYW5hZ2VkQ29weUVudHJ5PiBtX21hbmFnZWRDb3B5RW50cmllczsKIH07CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDVGhyZWFkUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAKaW5kZXggNDU4NGYxNWZiY2EyZTViZTQ4OTk2ZGFk
NWYwOWYzY2FjOGEzYTk3Ni4uZWJjZThiZjI5MWQ2YjRiNjE4YWU2MGI3NTdkZDJmNGFhYzgwOGVj
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NUaHJlYWRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAKQEAgLTUwMyw3ICs1MDMsNyBAQCB2b2lk
IENDVGhyZWFkUHJveHk6OmJlZ2luRnJhbWVDb21wbGV0ZU9uSW1wbFRocmVhZChDQ0NvbXBsZXRp
b25FdmVudCogY29tcGxldGlvbgogICAgIG1fY29tbWl0Q29tcGxldGlvbkV2ZW50T25JbXBsVGhy
ZWFkID0gY29tcGxldGlvbjsKIAogICAgIEFTU0VSVCghbV9jdXJyZW50VGV4dHVyZVVwZGF0ZXJP
bkltcGxUaHJlYWQpOwotICAgIG1fY3VycmVudFRleHR1cmVVcGRhdGVyT25JbXBsVGhyZWFkID0g
YWRvcHRQdHIobmV3IENDVGV4dHVyZVVwZGF0ZXIobV9sYXllclRyZWVIb3N0SW1wbC0+Y29udGVu
dHNUZXh0dXJlQWxsb2NhdG9yKCksIG1fbGF5ZXJUcmVlSG9zdEltcGwtPmxheWVyUmVuZGVyZXIo
KS0+dGV4dHVyZUNvcGllcigpKSk7CisgICAgbV9jdXJyZW50VGV4dHVyZVVwZGF0ZXJPbkltcGxU
aHJlYWQgPSBhZG9wdFB0cihuZXcgQ0NUZXh0dXJlVXBkYXRlcik7CiAgICAgbV9sYXllclRyZWVI
b3N0LT51cGRhdGVDb21wb3NpdG9yUmVzb3VyY2VzKG1fbGF5ZXJUcmVlSG9zdEltcGwtPmNvbnRl
eHQoKSwgKm1fY3VycmVudFRleHR1cmVVcGRhdGVyT25JbXBsVGhyZWFkKTsKIAogICAgIG1fc2No
ZWR1bGVyT25JbXBsVGhyZWFkLT5iZWdpbkZyYW1lQ29tcGxldGUoKTsKQEAgLTUyOCw3ICs1Mjgs
NyBAQCB2b2lkIENDVGhyZWFkUHJveHk6OnNjaGVkdWxlZEFjdGlvblVwZGF0ZU1vcmVSZXNvdXJj
ZXMoKQogewogICAgIFRSQUNFX0VWRU5UKCJDQ1RocmVhZFByb3h5OjpzY2hlZHVsZWRBY3Rpb25V
cGRhdGVNb3JlUmVzb3VyY2VzIiwgdGhpcywgMCk7CiAgICAgQVNTRVJUKG1fY3VycmVudFRleHR1
cmVVcGRhdGVyT25JbXBsVGhyZWFkKTsKLSAgICBtX2N1cnJlbnRUZXh0dXJlVXBkYXRlck9uSW1w
bFRocmVhZC0+dXBkYXRlKG1fbGF5ZXJUcmVlSG9zdEltcGwtPmNvbnRleHQoKSwgdGV4dHVyZVVw
ZGF0ZXNQZXJGcmFtZSk7CisgICAgbV9jdXJyZW50VGV4dHVyZVVwZGF0ZXJPbkltcGxUaHJlYWQt
PnVwZGF0ZShtX2xheWVyVHJlZUhvc3RJbXBsLT5jb250ZXh0KCksIG1fbGF5ZXJUcmVlSG9zdElt
cGwtPmNvbnRlbnRzVGV4dHVyZUFsbG9jYXRvcigpLCBtX2xheWVyVHJlZUhvc3RJbXBsLT5sYXll
clJlbmRlcmVyKCktPnRleHR1cmVDb3BpZXIoKSwgdGV4dHVyZVVwZGF0ZXNQZXJGcmFtZSk7CiB9
CiAKIHZvaWQgQ0NUaHJlYWRQcm94eTo6c2NoZWR1bGVkQWN0aW9uQ29tbWl0KCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NUaWxlZExheWVyVGVzdENvbW1vbi5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDVGlsZWRMYXllclRlc3RDb21tb24u
Y3BwCmluZGV4IDYwM2Q0MjE2MDAwNmNiY2MwYzBmZDY4NWRlNDhlNTk5ZTYzOGExNGMuLmY3ZDc4
OTRiNzA0NmY3ZjdlZjhlNGE4MmQxYjZiZmYwZDlhN2QzNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NUaWxlZExheWVyVGVzdENvbW1vbi5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1RpbGVkTGF5ZXJUZXN0Q29tbW9uLmNwcApAQCAt
MTI2LDkgKzEyNiw0IEBAIEZha2VUaWxlZExheWVyV2l0aFNjYWxlZEJvdW5kczo6RmFrZVRpbGVk
TGF5ZXJXaXRoU2NhbGVkQm91bmRzKFRleHR1cmVNYW5hZ2VyKiB0CiB7CiB9CiAKLUZha2VDQ1Rl
eHR1cmVVcGRhdGVyOjpGYWtlQ0NUZXh0dXJlVXBkYXRlcigpCi0gICAgOiBDQ1RleHR1cmVVcGRh
dGVyKCZtX3RleHR1cmVBbGxvY2F0b3IsICZtX3RleHR1cmVDb3BpZXIpCi17Ci19Ci0KIH0gLy8g
bmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDVGls
ZWRMYXllclRlc3RDb21tb24uaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NUaWxl
ZExheWVyVGVzdENvbW1vbi5oCmluZGV4IGVmYjhhZTg1Y2FjNmVlZTFkNTdiNWIwOGNmNGI5Y2M2
MGM0YjFkNmMuLjgxYmQxMTQxMDA4N2RjNGE2MmRiMmQzYjRlOWVmZmRhZmE0NmNjYjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NUaWxlZExheWVyVGVzdENvbW1v
bi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NUaWxlZExheWVyVGVzdENv
bW1vbi5oCkBAIC0xNTgsMTYgKzE1OCw1IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgY29w
eVRleHR1cmUoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0QqLCB1bnNpZ25lZCwgdW5zaWduZWQs
IGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSB7IH0KIH07CiAKLWNsYXNzIEZha2VDQ1RleHR1cmVV
cGRhdGVyIDogcHVibGljIFdlYkNvcmU6OkNDVGV4dHVyZVVwZGF0ZXIgewotcHVibGljOgotICAg
IGV4cGxpY2l0IEZha2VDQ1RleHR1cmVVcGRhdGVyKCk7Ci0KLSAgICBGYWtlVGV4dHVyZUFsbG9j
YXRvciYgdGV4dHVyZUFsbG9jYXRvcigpIHsgcmV0dXJuIG1fdGV4dHVyZUFsbG9jYXRvcjsgfQot
Ci1wcm90ZWN0ZWQ6Ci0gICAgRmFrZVRleHR1cmVBbGxvY2F0b3IgbV90ZXh0dXJlQWxsb2NhdG9y
OwotICAgIEZha2VUZXh0dXJlQ29waWVyIG1fdGV4dHVyZUNvcGllcjsKLX07Ci0KIH0KICNlbmRp
ZiAvLyBDQ1RpbGVkTGF5ZXJUZXN0Q29tbW9uX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vdGVzdHMvQ2FudmFzMkRMYXllckNocm9taXVtVGVzdC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL0NhbnZhczJETGF5ZXJDaHJvbWl1bVRlc3QuY3BwCmluZGV4IDEy
ZTM3Yzg2Y2RmMTI5MWUwMjdkOGNkNGY2ZTEzYjIwNGVkMTYxNjEuLmZjZmFhMTQwNjgwMDA0YjEx
OTM5OTZmYzUxZDZiMDVkMjI4NmQ4MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvQ2FudmFzMkRMYXllckNocm9taXVtVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS90ZXN0cy9DYW52YXMyRExheWVyQ2hyb21pdW1UZXN0LmNwcApAQCAtMTAyLDcg
KzEwMiw3IEBAIHByb3RlY3RlZDoKIAogICAgICAgICBNb2NrVGV4dHVyZUFsbG9jYXRvciBhbGxv
Y2F0b3JNb2NrOwogICAgICAgICBNb2NrVGV4dHVyZUNvcGllciBjb3BpZXJNb2NrOwotICAgICAg
ICBDQ1RleHR1cmVVcGRhdGVyIHVwZGF0ZXIoJmFsbG9jYXRvck1vY2ssICZjb3BpZXJNb2NrKTsK
KyAgICAgICAgQ0NUZXh0dXJlVXBkYXRlciB1cGRhdGVyOwogCiAgICAgICAgIGNvbnN0IEludFNp
emUgc2l6ZSgzMDAsIDE1MCk7CiAKQEAgLTE1NCwxMCArMTU0LDkgQEAgcHJvdGVjdGVkOgogICAg
ICAgICAgICAgRVhQRUNUX0VRKDB1LCBzdGF0aWNfY2FzdDxDQ1RleHR1cmVMYXllckltcGwqPihs
YXllckltcGwuZ2V0KCkpLT50ZXh0dXJlSWQoKSk7CiAKICAgICAgICAgICAgIGNhbnZhcy0+dXBk
YXRlQ29tcG9zaXRvclJlc291cmNlcyhpbXBsQ29udGV4dC5nZXQoKSwgdXBkYXRlcik7CisgICAg
ICAgICAgICB1cGRhdGVyLnVwZGF0ZShpbXBsQ29udGV4dC5nZXQoKSwgJmFsbG9jYXRvck1vY2ss
ICZjb3BpZXJNb2NrLCAxKTsKICAgICAgICAgICAgIGNhbnZhcy0+cHVzaFByb3BlcnRpZXNUbyhs
YXllckltcGwuZ2V0KCkpOwogCi0gICAgICAgICAgICB1cGRhdGVyLnVwZGF0ZShpbXBsQ29udGV4
dC5nZXQoKSwgMSk7Ci0KICAgICAgICAgICAgIGlmICh0aHJlYWRlZCkKICAgICAgICAgICAgICAg
ICBFWFBFQ1RfRVEoZnJvbnRUZXh0dXJlSWQsIHN0YXRpY19jYXN0PENDVGV4dHVyZUxheWVySW1w
bCo+KGxheWVySW1wbC5nZXQoKSktPnRleHR1cmVJZCgpKTsKICAgICAgICAgICAgIGVsc2UKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvVGlsZWRMYXllckNocm9taXVt
VGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1RpbGVkTGF5ZXJDaHJvbWl1
bVRlc3QuY3BwCmluZGV4IDc2MDRhMDQ1MTU1MGNiOThjZDhhNTgwOWQxOWQxNDNiYTQyMmY0ZDIu
LmE0OTkzZTZiYjZiZWU5ZDE2ODg5ZmQ0ZWVlNzA4MmY1YzZmN2NjMjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvVGlsZWRMYXllckNocm9taXVtVGVzdC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9UaWxlZExheWVyQ2hyb21pdW1UZXN0LmNw
cApAQCAtNzIsNyArNzIsNyBAQCBURVNUKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHB1c2hEaXJ0
eVRpbGVzKQogICAgIERlYnVnU2NvcGVkU2V0SW1wbFRocmVhZCBpbXBsVGhyZWFkOwogICAgIE93
blB0cjxGYWtlQ0NUaWxlZExheWVySW1wbD4gbGF5ZXJJbXBsKGFkb3B0UHRyKG5ldyBGYWtlQ0NU
aWxlZExheWVySW1wbCgwKSkpOwogCi0gICAgRmFrZUNDVGV4dHVyZVVwZGF0ZXIgdXBkYXRlcjsK
KyAgICBDQ1RleHR1cmVVcGRhdGVyIHVwZGF0ZXI7CiAKICAgICAvLyBUaGUgdGlsZSBzaXplIGlz
IDEwMHgxMDAsIHNvIHRoaXMgaW52YWxpZGF0ZXMgYW5kIHRoZW4gcGFpbnRzIHR3byB0aWxlcy4K
ICAgICBsYXllci0+c2V0Qm91bmRzKEludFNpemUoMTAwLCAyMDApKTsKQEAgLTEwNyw3ICsxMDcs
NyBAQCBURVNUKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHB1c2hPY2NsdWRlZERpcnR5VGlsZXMp
CiAgICAgT3duUHRyPEZha2VDQ1RpbGVkTGF5ZXJJbXBsPiBsYXllckltcGwoYWRvcHRQdHIobmV3
IEZha2VDQ1RpbGVkTGF5ZXJJbXBsKDApKSk7CiAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlciBv
Y2NsdWRlZDsKIAotICAgIEZha2VDQ1RleHR1cmVVcGRhdGVyIHVwZGF0ZXI7CisgICAgQ0NUZXh0
dXJlVXBkYXRlciB1cGRhdGVyOwogCiAgICAgLy8gVGhlIHRpbGUgc2l6ZSBpcyAxMDB4MTAwLCBz
byB0aGlzIGludmFsaWRhdGVzIGFuZCB0aGVuIHBhaW50cyB0d28gdGlsZXMuCiAgICAgbGF5ZXIt
PnNldEJvdW5kcyhJbnRTaXplKDEwMCwgMjAwKSk7CkBAIC0xNTIsNyArMTUyLDkgQEAgVEVTVChU
aWxlZExheWVyQ2hyb21pdW1UZXN0LCBwdXNoRGVsZXRlZFRpbGVzKQogICAgIERlYnVnU2NvcGVk
U2V0SW1wbFRocmVhZCBpbXBsVGhyZWFkOwogICAgIE93blB0cjxGYWtlQ0NUaWxlZExheWVySW1w
bD4gbGF5ZXJJbXBsKGFkb3B0UHRyKG5ldyBGYWtlQ0NUaWxlZExheWVySW1wbCgwKSkpOwogCi0g
ICAgRmFrZUNDVGV4dHVyZVVwZGF0ZXIgdXBkYXRlcjsKKyAgICBDQ1RleHR1cmVVcGRhdGVyIHVw
ZGF0ZXI7CisgICAgRmFrZVRleHR1cmVBbGxvY2F0b3IgYWxsb2NhdG9yOworICAgIEZha2VUZXh0
dXJlQ29waWVyIGNvcGllcjsKIAogICAgIC8vIFRoZSB0aWxlIHNpemUgaXMgMTAweDEwMCwgc28g
dGhpcyBpbnZhbGlkYXRlcyBhbmQgdGhlbiBwYWludHMgdHdvIHRpbGVzLgogICAgIGxheWVyLT5z
ZXRCb3VuZHMoSW50U2l6ZSgxMDAsIDIwMCkpOwpAQCAtMTY1LDcgKzE2Nyw3IEBAIFRFU1QoVGls
ZWRMYXllckNocm9taXVtVGVzdCwgcHVzaERlbGV0ZWRUaWxlcykKICAgICBFWFBFQ1RfVFJVRShs
YXllckltcGwtPmhhc1RpbGVBdCgwLCAwKSk7CiAgICAgRVhQRUNUX1RSVUUobGF5ZXJJbXBsLT5o
YXNUaWxlQXQoMCwgMSkpOwogCi0gICAgdGV4dHVyZU1hbmFnZXItPmV2aWN0QW5kRGVsZXRlQWxs
VGV4dHVyZXMoJnVwZGF0ZXIudGV4dHVyZUFsbG9jYXRvcigpKTsKKyAgICB0ZXh0dXJlTWFuYWdl
ci0+ZXZpY3RBbmREZWxldGVBbGxUZXh0dXJlcygmYWxsb2NhdG9yKTsKICAgICB0ZXh0dXJlTWFu
YWdlci0+c2V0TWF4TWVtb3J5TGltaXRCeXRlcyg0KjEwMjQqMTAyNCk7CiAgICAgdGV4dHVyZU1h
bmFnZXItPnNldFByZWZlcnJlZE1lbW9yeUxpbWl0Qnl0ZXMoNCoxMDI0KjEwMjQpOwogCkBAIC0x
OTMsNyArMTk1LDcgQEAgVEVTVChUaWxlZExheWVyQ2hyb21pdW1UZXN0LCBwdXNoSWRsZVBhaW50
VGlsZXMpCiAgICAgRGVidWdTY29wZWRTZXRJbXBsVGhyZWFkIGltcGxUaHJlYWQ7CiAgICAgT3du
UHRyPEZha2VDQ1RpbGVkTGF5ZXJJbXBsPiBsYXllckltcGwoYWRvcHRQdHIobmV3IEZha2VDQ1Rp
bGVkTGF5ZXJJbXBsKDApKSk7CiAKLSAgICBGYWtlQ0NUZXh0dXJlVXBkYXRlciB1cGRhdGVyOwor
ICAgIENDVGV4dHVyZVVwZGF0ZXIgdXBkYXRlcjsKIAogICAgIC8vIFRoZSB0aWxlIHNpemUgaXMg
MTAweDEwMC4gU2V0dXAgNXg1IHRpbGVzIHdpdGggb25lIHZpc2libGUgdGlsZSBpbiB0aGUgY2Vu
dGVyLgogICAgIEludFNpemUgY29udGVudEJvdW5kcyg1MDAsIDUwMCk7CkBAIC0yNTEsNyArMjUz
LDkgQEAgVEVTVChUaWxlZExheWVyQ2hyb21pdW1UZXN0LCBwdXNoVGlsZXNBZnRlcklkbGVQYWlu
dEZhaWxlZCkKICAgICBSZWZQdHI8RmFrZVRpbGVkTGF5ZXJDaHJvbWl1bT4gbGF5ZXIyID0gYWRv
cHRSZWYobmV3IEZha2VUaWxlZExheWVyQ2hyb21pdW0odGV4dHVyZU1hbmFnZXIuZ2V0KCkpKTsK
ICAgICBPd25QdHI8RmFrZUNDVGlsZWRMYXllckltcGw+IGxheWVySW1wbDIoYWRvcHRQdHIobmV3
IEZha2VDQ1RpbGVkTGF5ZXJJbXBsKDApKSk7CiAKLSAgICBGYWtlQ0NUZXh0dXJlVXBkYXRlciB1
cGRhdGVyOworICAgIENDVGV4dHVyZVVwZGF0ZXIgdXBkYXRlcjsKKyAgICBGYWtlVGV4dHVyZUFs
bG9jYXRvciBhbGxvY2F0b3I7CisgICAgRmFrZVRleHR1cmVDb3BpZXIgY29waWVyOwogCiAgICAg
Ly8gRm9yIHRoaXMgdGVzdCB3ZSBoYXZlIHR3byBsYXllcnMuIGxheWVyMSBleGhhdXN0cyBtb3N0
IHRleHR1cmUgbWVtb3J5LCBsZWF2aW5nIHJvb20gZm9yIDIgbW9yZSB0aWxlcyBmcm9tCiAgICAg
Ly8gbGF5ZXIyLCBidXQgbm90IGFsbCB0aHJlZSB0aWxlcy4gRmlyc3Qgd2UgcGFpbnQgbGF5ZXIx
LCBhbmQgb25lIHRpbGUgZnJvbSBsYXllcjIuIFRoZW4gd2hlbiB3ZSBpZGxlIHBhaW50CkBAIC0y
NzksNyArMjgzLDcgQEAgVEVTVChUaWxlZExheWVyQ2hyb21pdW1UZXN0LCBwdXNoVGlsZXNBZnRl
cklkbGVQYWludEZhaWxlZCkKICAgICAvLyBDb21taXQgdGhlIGZyYW1lIG92ZXIgdG8gaW1wbC4K
ICAgICBsYXllcjEtPnVwZGF0ZUNvbXBvc2l0b3JSZXNvdXJjZXMoMCwgdXBkYXRlcik7CiAgICAg
bGF5ZXIyLT51cGRhdGVDb21wb3NpdG9yUmVzb3VyY2VzKDAsIHVwZGF0ZXIpOwotICAgIHVwZGF0
ZXIudXBkYXRlKDAsIDUwMDApOworICAgIHVwZGF0ZXIudXBkYXRlKDAsICZhbGxvY2F0b3IsICZj
b3BpZXIsIDUwMDApOwogICAgIGxheWVyMS0+cHVzaFByb3BlcnRpZXNUbyhsYXllckltcGwxLmdl
dCgpKTsKICAgICBsYXllcjItPnB1c2hQcm9wZXJ0aWVzVG8obGF5ZXJJbXBsMi5nZXQoKSk7CiAK
QEAgLTI5MCw3ICsyOTQsNyBAQCBURVNUKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHB1c2hUaWxl
c0FmdGVySWRsZVBhaW50RmFpbGVkKQogICAgIC8vIE9oIHdlbGwsIGNvbW1pdCB0aGUgZnJhbWUg
YW5kIHB1c2guCiAgICAgbGF5ZXIxLT51cGRhdGVDb21wb3NpdG9yUmVzb3VyY2VzKDAsIHVwZGF0
ZXIpOwogICAgIGxheWVyMi0+dXBkYXRlQ29tcG9zaXRvclJlc291cmNlcygwLCB1cGRhdGVyKTsK
LSAgICB1cGRhdGVyLnVwZGF0ZSgwLCA1MDAwKTsKKyAgICB1cGRhdGVyLnVwZGF0ZSgwLCAmYWxs
b2NhdG9yLCAmY29waWVyLCA1MDAwKTsKICAgICBsYXllcjEtPnB1c2hQcm9wZXJ0aWVzVG8obGF5
ZXJJbXBsMS5nZXQoKSk7CiAgICAgbGF5ZXIyLT5wdXNoUHJvcGVydGllc1RvKGxheWVySW1wbDIu
Z2V0KCkpOwogCkBAIC0zMTEsNyArMzE1LDcgQEAgVEVTVChUaWxlZExheWVyQ2hyb21pdW1UZXN0
LCBwdXNoVGlsZXNBZnRlcklkbGVQYWludEZhaWxlZCkKIAogICAgIGxheWVyMS0+dXBkYXRlQ29t
cG9zaXRvclJlc291cmNlcygwLCB1cGRhdGVyKTsKICAgICBsYXllcjItPnVwZGF0ZUNvbXBvc2l0
b3JSZXNvdXJjZXMoMCwgdXBkYXRlcik7Ci0gICAgdXBkYXRlci51cGRhdGUoMCwgNTAwMCk7Cisg
ICAgdXBkYXRlci51cGRhdGUoMCwgJmFsbG9jYXRvciwgJmNvcGllciwgNTAwMCk7CiAgICAgbGF5
ZXIxLT5wdXNoUHJvcGVydGllc1RvKGxheWVySW1wbDEuZ2V0KCkpOwogICAgIGxheWVyMi0+cHVz
aFByb3BlcnRpZXNUbyhsYXllckltcGwyLmdldCgpKTsKIApAQCAtMzMxLDcgKzMzNSw3IEBAIFRF
U1QoVGlsZWRMYXllckNocm9taXVtVGVzdCwgcHVzaElkbGVQYWludGVkT2NjbHVkZWRUaWxlcykK
ICAgICBPd25QdHI8RmFrZUNDVGlsZWRMYXllckltcGw+IGxheWVySW1wbChhZG9wdFB0cihuZXcg
RmFrZUNDVGlsZWRMYXllckltcGwoMCkpKTsKICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyIG9j
Y2x1ZGVkOwogCi0gICAgRmFrZUNDVGV4dHVyZVVwZGF0ZXIgdXBkYXRlcjsKKyAgICBDQ1RleHR1
cmVVcGRhdGVyIHVwZGF0ZXI7CiAKICAgICAvLyBUaGUgdGlsZSBzaXplIGlzIDEwMHgxMDAsIHNv
IHRoaXMgaW52YWxpZGF0ZXMgb25lIG9jY2x1ZGVkIHRpbGUsIGN1bGxzIGl0IGR1cmluZyBwYWlu
dCwgYnV0IHByZXBhaW50cyBpdC4KICAgICBvY2NsdWRlZC5zZXRPY2NsdXNpb24oSW50UmVjdCgw
LCAwLCAxMDAsIDEwMCkpOwpAQCAtMzU2LDcgKzM2MCw3IEBAIFRFU1QoVGlsZWRMYXllckNocm9t
aXVtVGVzdCwgcHVzaFRpbGVzTWFya2VkRGlydHlEdXJpbmdQYWludCkKICAgICBEZWJ1Z1Njb3Bl
ZFNldEltcGxUaHJlYWQgaW1wbFRocmVhZDsKICAgICBPd25QdHI8RmFrZUNDVGlsZWRMYXllcklt
cGw+IGxheWVySW1wbChhZG9wdFB0cihuZXcgRmFrZUNDVGlsZWRMYXllckltcGwoMCkpKTsKIAot
ICAgIEZha2VDQ1RleHR1cmVVcGRhdGVyIHVwZGF0ZXI7CisgICAgQ0NUZXh0dXJlVXBkYXRlciB1
cGRhdGVyOwogCiAgICAgLy8gVGhlIHRpbGUgc2l6ZSBpcyAxMDB4MTAwLCBzbyB0aGlzIGludmFs
aWRhdGVzIGFuZCB0aGVuIHBhaW50cyB0d28gdGlsZXMuCiAgICAgLy8gSG93ZXZlciwgZHVyaW5n
IHRoZSBwYWludCwgd2UgaW52YWxpZGF0ZSBvbmUgb2YgdGhlIHRpbGVzLiBUaGlzIHNob3VsZApA
QCAtMzgyLDcgKzM4Niw3IEBAIFRFU1QoVGlsZWRMYXllckNocm9taXVtVGVzdCwgcHVzaFRpbGVz
TGF5ZXJNYXJrZWREaXJ0eUR1cmluZ1BhaW50T25OZXh0TGF5ZXIpCiAgICAgT3duUHRyPEZha2VD
Q1RpbGVkTGF5ZXJJbXBsPiBsYXllcjFJbXBsKGFkb3B0UHRyKG5ldyBGYWtlQ0NUaWxlZExheWVy
SW1wbCgwKSkpOwogICAgIE93blB0cjxGYWtlQ0NUaWxlZExheWVySW1wbD4gbGF5ZXIySW1wbChh
ZG9wdFB0cihuZXcgRmFrZUNDVGlsZWRMYXllckltcGwoMCkpKTsKIAotICAgIEZha2VDQ1RleHR1
cmVVcGRhdGVyIHVwZGF0ZXI7CisgICAgQ0NUZXh0dXJlVXBkYXRlciB1cGRhdGVyOwogCiAgICAg
bGF5ZXIxLT5zZXRCb3VuZHMoSW50U2l6ZSgxMDAsIDIwMCkpOwogICAgIGxheWVyMS0+aW52YWxp
ZGF0ZVJlY3QoSW50UmVjdCgwLCAwLCAxMDAsIDIwMCkpOwpAQCAtNDE3LDcgKzQyMSw3IEBAIFRF
U1QoVGlsZWRMYXllckNocm9taXVtVGVzdCwgcHVzaFRpbGVzTGF5ZXJNYXJrZWREaXJ0eUR1cmlu
Z1BhaW50T25QcmV2aW91c0xheWVyCiAgICAgT3duUHRyPEZha2VDQ1RpbGVkTGF5ZXJJbXBsPiBs
YXllcjFJbXBsKGFkb3B0UHRyKG5ldyBGYWtlQ0NUaWxlZExheWVySW1wbCgwKSkpOwogICAgIE93
blB0cjxGYWtlQ0NUaWxlZExheWVySW1wbD4gbGF5ZXIySW1wbChhZG9wdFB0cihuZXcgRmFrZUND
VGlsZWRMYXllckltcGwoMCkpKTsKIAotICAgIEZha2VDQ1RleHR1cmVVcGRhdGVyIHVwZGF0ZXI7
CisgICAgQ0NUZXh0dXJlVXBkYXRlciB1cGRhdGVyOwogCiAgICAgbGF5ZXIxLT5zZXRCb3VuZHMo
SW50U2l6ZSgxMDAsIDIwMCkpOwogICAgIGxheWVyMS0+aW52YWxpZGF0ZVJlY3QoSW50UmVjdCgw
LCAwLCAxMDAsIDIwMCkpOwpAQCAtNDU4LDcgKzQ2Miw3IEBAIFRFU1QoVGlsZWRMYXllckNocm9t
aXVtVGVzdCwgaWRsZVBhaW50T3V0T2ZNZW1vcnkpCiAgICAgRGVidWdTY29wZWRTZXRJbXBsVGhy
ZWFkIGltcGxUaHJlYWQ7CiAgICAgT3duUHRyPEZha2VDQ1RpbGVkTGF5ZXJJbXBsPiBsYXllcklt
cGwoYWRvcHRQdHIobmV3IEZha2VDQ1RpbGVkTGF5ZXJJbXBsKDApKSk7CiAKLSAgICBGYWtlQ0NU
ZXh0dXJlVXBkYXRlciB1cGRhdGVyOworICAgIENDVGV4dHVyZVVwZGF0ZXIgdXBkYXRlcjsKIAog
ICAgIC8vIFRoaXMgaW52YWxpZGF0ZXMgOSB0aWxlcyBhbmQgdGhlbiBwYWludHMgb25lIHZpc2li
bGUgdGlsZS4KICAgICBsYXllci0+c2V0Qm91bmRzKGNvbnRlbnRCb3VuZHMpOwpAQCAtNDkzLDcg
KzQ5Nyw3IEBAIFRFU1QoVGlsZWRMYXllckNocm9taXVtVGVzdCwgaWRsZVBhaW50WmVyb1NpemVk
TGF5ZXIpCiAgICAgRGVidWdTY29wZWRTZXRJbXBsVGhyZWFkIGltcGxUaHJlYWQ7CiAgICAgT3du
UHRyPEZha2VDQ1RpbGVkTGF5ZXJJbXBsPiBsYXllckltcGwoYWRvcHRQdHIobmV3IEZha2VDQ1Rp
bGVkTGF5ZXJJbXBsKDApKSk7CiAKLSAgICBGYWtlQ0NUZXh0dXJlVXBkYXRlciB1cGRhdGVyOwor
ICAgIENDVGV4dHVyZVVwZGF0ZXIgdXBkYXRlcjsKIAogICAgIC8vIFRoZSBsYXllcidzIGJvdW5k
cyBhcmUgZW1wdHkuCiAgICAgSW50UmVjdCBjb250ZW50UmVjdDsKQEAgLTUzNSw3ICs1MzksNyBA
QCBURVNUKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIGlkbGVQYWludFplcm9TaXplZEFuaW1hdGlu
Z0xheWVyKQogICAgIERlYnVnU2NvcGVkU2V0SW1wbFRocmVhZCBpbXBsVGhyZWFkOwogICAgIE93
blB0cjxGYWtlQ0NUaWxlZExheWVySW1wbD4gbGF5ZXJJbXBsKGFkb3B0UHRyKG5ldyBGYWtlQ0NU
aWxlZExheWVySW1wbCgwKSkpOwogCi0gICAgRmFrZUNDVGV4dHVyZVVwZGF0ZXIgdXBkYXRlcjsK
KyAgICBDQ1RleHR1cmVVcGRhdGVyIHVwZGF0ZXI7CiAKICAgICAvLyBQcmV0ZW5kIHRoZSBsYXll
ciBpcyBhbmltYXRpbmcuCiAgICAgbGF5ZXItPnNldERyYXdUcmFuc2Zvcm1Jc0FuaW1hdGluZyh0
cnVlKTsKQEAgLTU4Myw3ICs1ODcsNyBAQCBURVNUKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIGlk
bGVQYWludE5vblZpc2libGVMYXllcnMpCiAgICAgRGVidWdTY29wZWRTZXRJbXBsVGhyZWFkIGlt
cGxUaHJlYWQ7CiAgICAgT3duUHRyPEZha2VDQ1RpbGVkTGF5ZXJJbXBsPiBsYXllckltcGwoYWRv
cHRQdHIobmV3IEZha2VDQ1RpbGVkTGF5ZXJJbXBsKDApKSk7CiAKLSAgICBGYWtlQ0NUZXh0dXJl
VXBkYXRlciB1cGRhdGVyOworICAgIENDVGV4dHVyZVVwZGF0ZXIgdXBkYXRlcjsKIAogICAgIC8v
IEludmFsaWRhdGUgdGhlIGxheWVyIGJ1dCBtYWtlIG5vbmUgb2YgaXQgdmlzaWJsZSwgc28gbm90
aGluZyBwYWludHMuCiAgICAgSW50UmVjdCB2aXNpYmxlUmVjdDsKQEAgLTYzNyw3ICs2NDEsNyBA
QCBURVNUKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIGlkbGVQYWludE5vblZpc2libGVBbmltYXRp
bmdMYXllcnMpCiAgICAgT3duUHRyPFRleHR1cmVNYW5hZ2VyPiB0ZXh0dXJlTWFuYWdlciA9IFRl
eHR1cmVNYW5hZ2VyOjpjcmVhdGUoODAwMCo4MDAwKjgsIDgwMDAqODAwMCo0LCAxMDI0KTsKICAg
ICBEZWJ1Z1Njb3BlZFNldEltcGxUaHJlYWQgaW1wbFRocmVhZDsKIAotICAgIEZha2VDQ1RleHR1
cmVVcGRhdGVyIHVwZGF0ZXI7CisgICAgQ0NUZXh0dXJlVXBkYXRlciB1cGRhdGVyOwogCiAgICAg
aW50IHRpbGVXaWR0aCA9IEZha2VUaWxlZExheWVyQ2hyb21pdW06OnRpbGVTaXplKCkud2lkdGgo
KTsKICAgICBpbnQgdGlsZUhlaWdodCA9IEZha2VUaWxlZExheWVyQ2hyb21pdW06OnRpbGVTaXpl
KCkuaGVpZ2h0KCk7CkBAIC02OTQsNyArNjk4LDcgQEAgVEVTVChUaWxlZExheWVyQ2hyb21pdW1U
ZXN0LCBpbnZhbGlkYXRlRnJvbVByZXBhcmUpCiAgICAgRGVidWdTY29wZWRTZXRJbXBsVGhyZWFk
IGltcGxUaHJlYWQ7CiAgICAgT3duUHRyPEZha2VDQ1RpbGVkTGF5ZXJJbXBsPiBsYXllckltcGwo
YWRvcHRQdHIobmV3IEZha2VDQ1RpbGVkTGF5ZXJJbXBsKDApKSk7CiAKLSAgICBGYWtlQ0NUZXh0
dXJlVXBkYXRlciB1cGRhdGVyOworICAgIENDVGV4dHVyZVVwZGF0ZXIgdXBkYXRlcjsKIAogICAg
IC8vIFRoZSB0aWxlIHNpemUgaXMgMTAweDEwMCwgc28gdGhpcyBpbnZhbGlkYXRlcyBhbmQgdGhl
biBwYWludHMgdHdvIHRpbGVzLgogICAgIGxheWVyLT5zZXRCb3VuZHMoSW50U2l6ZSgxMDAsIDIw
MCkpOwpAQCAtNzM1LDcgKzczOSw3IEBAIFRFU1QoVGlsZWRMYXllckNocm9taXVtVGVzdCwgdmVy
aWZ5VXBkYXRlUmVjdFdoZW5Db250ZW50Qm91bmRzQXJlU2NhbGVkKQogICAgIE93blB0cjxUZXh0
dXJlTWFuYWdlcj4gdGV4dHVyZU1hbmFnZXIgPSBUZXh0dXJlTWFuYWdlcjo6Y3JlYXRlKDQqMTAy
NCoxMDI0LCAyKjEwMjQqMTAyNCwgMTAyNCk7CiAgICAgUmVmUHRyPEZha2VUaWxlZExheWVyV2l0
aFNjYWxlZEJvdW5kcz4gbGF5ZXIgPSBhZG9wdFJlZihuZXcgRmFrZVRpbGVkTGF5ZXJXaXRoU2Nh
bGVkQm91bmRzKHRleHR1cmVNYW5hZ2VyLmdldCgpKSk7CiAKLSAgICBGYWtlQ0NUZXh0dXJlVXBk
YXRlciB1cGRhdGVyOworICAgIENDVGV4dHVyZVVwZGF0ZXIgdXBkYXRlcjsKIAogICAgIEludFJl
Y3QgbGF5ZXJCb3VuZHMoMCwgMCwgMzAwLCAyMDApOwogICAgIEludFJlY3QgY29udGVudEJvdW5k
cygwLCAwLCAyMDAsIDI1MCk7CkBAIC03NzIsNyArNzc2LDcgQEAgVEVTVChUaWxlZExheWVyQ2hy
b21pdW1UZXN0LCB2ZXJpZnlJbnZhbGlkYXRpb25XaGVuQ29udGVudHNTY2FsZUNoYW5nZXMpCiAg
ICAgRGVidWdTY29wZWRTZXRJbXBsVGhyZWFkIGltcGxUaHJlYWQ7CiAgICAgT3duUHRyPEZha2VD
Q1RpbGVkTGF5ZXJJbXBsPiBsYXllckltcGwoYWRvcHRQdHIobmV3IEZha2VDQ1RpbGVkTGF5ZXJJ
bXBsKDApKSk7CiAKLSAgICBGYWtlQ0NUZXh0dXJlVXBkYXRlciB1cGRhdGVyOworICAgIENDVGV4
dHVyZVVwZGF0ZXIgdXBkYXRlcjsKIAogICAgIC8vIENyZWF0ZSBhIGxheWVyIHdpdGggb25lIHRp
bGUuCiAgICAgbGF5ZXItPnNldEJvdW5kcyhJbnRTaXplKDEwMCwgMTAwKSk7CkBAIC04NDIsNyAr
ODQ2LDcgQEAgVEVTVChUaWxlZExheWVyQ2hyb21pdW1UZXN0LCBza2lwc0RyYXdHZXRzUmVzZXQp
CiAgICAgcm9vdExheWVyLT5pbnZhbGlkYXRlUmVjdChjb250ZW50UmVjdCk7CiAgICAgY2hpbGRM
YXllci0+aW52YWxpZGF0ZVJlY3QoY29udGVudFJlY3QpOwogCi0gICAgRmFrZUNDVGV4dHVyZVVw
ZGF0ZXIgdXBkYXRlcjsKKyAgICBDQ1RleHR1cmVVcGRhdGVyIHVwZGF0ZXI7CiAKICAgICBjY0xh
eWVyVHJlZUhvc3QtPnNldFJvb3RMYXllcihyb290TGF5ZXIpOwogICAgIGNjTGF5ZXJUcmVlSG9z
dC0+c2V0Vmlld3BvcnRTaXplKEludFNpemUoMzAwLCAzMDApKTsKQEAgLTkxMyw3ICs5MTcsOSBA
QCBURVNUKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHBhcnRpYWxVcGRhdGVzKQogICAgIGxheWVy
LT5zZXRQb3NpdGlvbihGbG9hdFBvaW50KDE1MCwgMTUwKSk7CiAgICAgbGF5ZXItPmludmFsaWRh
dGVSZWN0KGNvbnRlbnRSZWN0KTsKIAotICAgIEZha2VDQ1RleHR1cmVVcGRhdGVyIHVwZGF0ZXI7
CisgICAgQ0NUZXh0dXJlVXBkYXRlciB1cGRhdGVyOworICAgIEZha2VUZXh0dXJlQWxsb2NhdG9y
IGFsbG9jYXRvcjsKKyAgICBGYWtlVGV4dHVyZUNvcGllciBjb3BpZXI7CiAKICAgICBjY0xheWVy
VHJlZUhvc3QtPnNldFJvb3RMYXllcihsYXllcik7CiAgICAgY2NMYXllclRyZWVIb3N0LT5zZXRW
aWV3cG9ydFNpemUoSW50U2l6ZSgzMDAsIDIwMCkpOwpAQCAtOTIxLDExICs5MjcsMTEgQEAgVEVT
VChUaWxlZExheWVyQ2hyb21pdW1UZXN0LCBwYXJ0aWFsVXBkYXRlcykKICAgICAvLyBGdWxsIHVw
ZGF0ZSBvZiBhbGwgNiB0aWxlcy4KICAgICBjY0xheWVyVHJlZUhvc3QtPnVwZGF0ZUxheWVycygp
OwogICAgIGNjTGF5ZXJUcmVlSG9zdC0+dXBkYXRlQ29tcG9zaXRvclJlc291cmNlcyhjY0xheWVy
VHJlZUhvc3QtPmNvbnRleHQoKSwgdXBkYXRlcik7Ci0gICAgdXBkYXRlci51cGRhdGUoMCwgNCk7
CisgICAgdXBkYXRlci51cGRhdGUoMCwgJmFsbG9jYXRvciwgJmNvcGllciwgNCk7CiAgICAgRVhQ
RUNUX0VRKDQsIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT51cGRhdGVDb3VudCgp
KTsKICAgICBFWFBFQ1RfVFJVRSh1cGRhdGVyLmhhc01vcmVVcGRhdGVzKCkpOwogICAgIGxheWVy
LT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5jbGVhclVwZGF0ZUNvdW50KCk7Ci0gICAgdXBk
YXRlci51cGRhdGUoMCwgNCk7CisgICAgdXBkYXRlci51cGRhdGUoMCwgJmFsbG9jYXRvciwgJmNv
cGllciwgNCk7CiAgICAgRVhQRUNUX0VRKDIsIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRl
cigpLT51cGRhdGVDb3VudCgpKTsKICAgICBFWFBFQ1RfRkFMU0UodXBkYXRlci5oYXNNb3JlVXBk
YXRlcygpKTsKICAgICBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+Y2xlYXJVcGRh
dGVDb3VudCgpOwpAQCAtOTM1LDExICs5NDEsMTEgQEAgVEVTVChUaWxlZExheWVyQ2hyb21pdW1U
ZXN0LCBwYXJ0aWFsVXBkYXRlcykKICAgICBsYXllci0+aW52YWxpZGF0ZVJlY3QoSW50UmVjdCgw
LCAwLCAzMDAsIDE1MCkpOwogICAgIGNjTGF5ZXJUcmVlSG9zdC0+dXBkYXRlTGF5ZXJzKCk7CiAg
ICAgY2NMYXllclRyZWVIb3N0LT51cGRhdGVDb21wb3NpdG9yUmVzb3VyY2VzKGNjTGF5ZXJUcmVl
SG9zdC0+Y29udGV4dCgpLCB1cGRhdGVyKTsKLSAgICB1cGRhdGVyLnVwZGF0ZSgwLCA0KTsKKyAg
ICB1cGRhdGVyLnVwZGF0ZSgwLCAmYWxsb2NhdG9yLCAmY29waWVyLCA0KTsKICAgICBFWFBFQ1Rf
RVEoMywgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPnVwZGF0ZUNvdW50KCkpOwog
ICAgIEVYUEVDVF9UUlVFKHVwZGF0ZXIuaGFzTW9yZVVwZGF0ZXMoKSk7CiAgICAgbGF5ZXItPmZh
a2VMYXllclRleHR1cmVVcGRhdGVyKCktPmNsZWFyVXBkYXRlQ291bnQoKTsKLSAgICB1cGRhdGVy
LnVwZGF0ZSgwLCA0KTsKKyAgICB1cGRhdGVyLnVwZGF0ZSgwLCAmYWxsb2NhdG9yLCAmY29waWVy
LCA0KTsKICAgICBFWFBFQ1RfRVEoMywgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCkt
PnVwZGF0ZUNvdW50KCkpOwogICAgIEVYUEVDVF9GQUxTRSh1cGRhdGVyLmhhc01vcmVVcGRhdGVz
KCkpOwogICAgIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5jbGVhclVwZGF0ZUNv
dW50KCk7CkBAIC05NDksMTEgKzk1NSwxMSBAQCBURVNUKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3Qs
IHBhcnRpYWxVcGRhdGVzKQogICAgIGxheWVyLT5pbnZhbGlkYXRlUmVjdChJbnRSZWN0KDUwLCA1
MCwgMjAwLCAxMDApKTsKICAgICBjY0xheWVyVHJlZUhvc3QtPnVwZGF0ZUxheWVycygpOwogICAg
IGNjTGF5ZXJUcmVlSG9zdC0+dXBkYXRlQ29tcG9zaXRvclJlc291cmNlcyhjY0xheWVyVHJlZUhv
c3QtPmNvbnRleHQoKSwgdXBkYXRlcik7Ci0gICAgdXBkYXRlci51cGRhdGUoMCwgNCk7CisgICAg
dXBkYXRlci51cGRhdGUoMCwgJmFsbG9jYXRvciwgJmNvcGllciwgNCk7CiAgICAgRVhQRUNUX0VR
KDIsIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT51cGRhdGVDb3VudCgpKTsKICAg
ICBFWFBFQ1RfVFJVRSh1cGRhdGVyLmhhc01vcmVVcGRhdGVzKCkpOwogICAgIGxheWVyLT5mYWtl
TGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5jbGVhclVwZGF0ZUNvdW50KCk7Ci0gICAgdXBkYXRlci51
cGRhdGUoMCwgNCk7CisgICAgdXBkYXRlci51cGRhdGUoMCwgJmFsbG9jYXRvciwgJmNvcGllciwg
NCk7CiAgICAgRVhQRUNUX0VRKDQsIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT51
cGRhdGVDb3VudCgpKTsKICAgICBFWFBFQ1RfRkFMU0UodXBkYXRlci5oYXNNb3JlVXBkYXRlcygp
KTsKICAgICBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+Y2xlYXJVcGRhdGVDb3Vu
dCgpOwo=
</data>
<flag name="review"
          id="141057"
          type_id="1"
          status="+"
          setter="enne"
    />
          </attachment>
      

    </bug>

</bugzilla>