<?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>70085</bug_id>
          
          <creation_ts>2011-10-13 18:52:19 -0700</creation_ts>
          <short_desc>[Chromium] Disable blending when drawing opaque layers</short_desc>
          <delta_ts>2011-10-27 07:24:11 -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>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Antoine Labour">piman</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>danakj</cc>
    
    <cc>darin</cc>
    
    <cc>enne</cc>
    
    <cc>jamesr</cc>
    
    <cc>nduca</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>483724</commentid>
    <comment_count>0</comment_count>
    <who name="Antoine Labour">piman</who>
    <bug_when>2011-10-13 18:52:19 -0700</bug_when>
    <thetext>Disable blending when drawing opaque layers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>483725</commentid>
    <comment_count>1</comment_count>
      <attachid>110950</attachid>
    <who name="Antoine Labour">piman</who>
    <bug_when>2011-10-13 18:54:07 -0700</bug_when>
    <thetext>Created attachment 110950
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484131</commentid>
    <comment_count>2</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2011-10-14 11:46:08 -0700</bug_when>
    <thetext>It&apos;s unfortunate that there&apos;s no way to test this in WebKit, since nothing in WebKit sets the opaque flag yet (except for Safari on the noncomposited content).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487964</commentid>
    <comment_count>3</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-10-20 16:05:01 -0700</bug_when>
    <thetext>Once https://bugs.webkit.org/show_bug.cgi?id=70554 lands you should be able to construct a layout test for this (or see if we have layout tests already), right? This patch looks pretty correct by inspection but I&apos;d feel a lot better going forward if I knew we had test coverage for pixel correctness, in case a future factor accidentally messes this up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487965</commentid>
    <comment_count>4</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-10-20 16:07:35 -0700</bug_when>
    <thetext>Oh - what about setting the opaque flag for the root layer?  Right now we disable blending for this layer using the &apos;is non-composited content host&apos; bit:

http://google.com/codesearch#OAMlx_jo-ck/src/third_party/WebKit/Source/WebCore/platform/graphics/chromium/cc/CCTiledLayerImpl.cpp&amp;q=disable%20BLEND%20file:chromium&amp;exact_package=chromium&amp;l=145

The code would be much better if this used the &apos;is opaque&apos; bit instead, IMO.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487968</commentid>
    <comment_count>5</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2011-10-20 16:13:20 -0700</bug_when>
    <thetext>Is checking this==rootLayer() sufficient for what you are asking?

In a unified compositor, would the root layer be the desktop?  Presumably there is/would be some other flag to tell a tab contents root window. Is this something I shouldn&apos;t worry about?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487969</commentid>
    <comment_count>6</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-10-20 16:15:58 -0700</bug_when>
    <thetext>By &quot;root&quot; here I mean the non-composited content host layer. I don&apos;t know if there&apos;s an equivalent for users of the WebLayer API, but my point is you could clean up the webkit compositing logic by reusing this bit instead of what we currently do of special-casing this layer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491106</commentid>
    <comment_count>7</comment_count>
      <attachid>112579</attachid>
    <who name="Antoine Labour">piman</who>
    <bug_when>2011-10-26 12:47:37 -0700</bug_when>
    <thetext>Created attachment 112579
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491107</commentid>
    <comment_count>8</comment_count>
    <who name="Antoine Labour">piman</who>
    <bug_when>2011-10-26 12:49:11 -0700</bug_when>
    <thetext>This new patch added a unit test, please take a look (it also made MockWebGraphicsContext3D a bit more useful).
I&apos;ll try to see if I can also make a layout test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491111</commentid>
    <comment_count>9</comment_count>
      <attachid>112579</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-10-26 12:57:31 -0700</bug_when>
    <thetext>Comment on attachment 112579
Patch

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

Cool tests! R=me

&gt; Source/WebKit/chromium/tests/CCLayerTreeHostImplTest.cpp:204
&gt; +    BlendStateCheckLayer(int id)

nit: explicit preferred on one-arg c&apos;tors, although since this is private it&apos;s not a big deal</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491114</commentid>
    <comment_count>10</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-10-26 12:58:45 -0700</bug_when>
    <thetext>I think we won&apos;t be able to make useful layout tests until https://bugs.webkit.org/show_bug.cgi?id=70634 or https://bugs.webkit.org/show_bug.cgi?id=70564 are addressed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491124</commentid>
    <comment_count>11</comment_count>
      <attachid>112580</attachid>
    <who name="Antoine Labour">piman</who>
    <bug_when>2011-10-26 13:12:44 -0700</bug_when>
    <thetext>Created attachment 112580
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491126</commentid>
    <comment_count>12</comment_count>
    <who name="Antoine Labour">piman</who>
    <bug_when>2011-10-26 13:13:22 -0700</bug_when>
    <thetext>Same one, with explicit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491549</commentid>
    <comment_count>13</comment_count>
      <attachid>112580</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-27 07:24:04 -0700</bug_when>
    <thetext>Comment on attachment 112580
Patch

Clearing flags on attachment: 112580

Committed r98567: &lt;http://trac.webkit.org/changeset/98567&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491550</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-27 07:24:11 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110950</attachid>
            <date>2011-10-13 18:54:07 -0700</date>
            <delta_ts>2011-10-26 12:47:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70085-20111013185406.patch</filename>
            <type>text/plain</type>
            <size>4623</size>
            <attacher name="Antoine Labour">piman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTc0MzQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkYjUzNDBiMTZmMjU2MDJi
Y2JlYzA5MTYxYWIzZDc0Yjk0NDNiYzM1Li4zYjVkMDNjYjc3Nzk0ODFjYjlkODA2YTdiYTc2Mzlh
YWE5ZGMwYmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMTAtMTMgIEFudG9p
bmUgTGFib3VyICA8cGltYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIERpc2FibGUgYmxlbmRp
bmcgd2hlbiBkcmF3aW5nIG9wYXF1ZSBsYXllcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTcwMDg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQ292ZXJlZCBieSBjb21wb3NpdGluZy8gbGF5b3V0IHRlc3Rz
LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpMYXllckNocm9taXVtOjpMYXllckNocm9taXVtKToKKyAg
ICAgICAgKFdlYkNvcmU6OkxheWVyQ2hyb21pdW06OnB1c2hQcm9wZXJ0aWVzVG8pOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpMYXllclJlbmRlcmVyQ2hyb21pdW06OmRyYXdMYXllcik6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q0NMYXllckltcGw6OkNDTGF5ZXJJbXBsKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5oOgorICAgICAgICAoV2Vi
Q29yZTo6Q0NMYXllckltcGw6OnNldE9wYXF1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVy
SW1wbDo6b3BhcXVlKToKKwogMjAxMS0xMC0xMyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2Vy
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgI2luY2x1ZGUgb2YgPFF1YXJ0ekNvcmUvUXVh
cnR6Q29yZS5oPiBpbiBhIHdpZGVseS11c2VkIGhlYWRlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5jcHAK
aW5kZXggZmUyY2Q0ZWIxNWRmNGRkM2ZmNjE3MGI2YWFjZGRlMGU5MGQzMmEzOC4uNGRjZGEyNzY5
YjA4ZWY5M2VkOTk4ZjEzYTBjMTQ5NTU1NmM1OTQ2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5jcHAK
QEAgLTY2LDcgKzY2LDcgQEAgTGF5ZXJDaHJvbWl1bTo6TGF5ZXJDaHJvbWl1bShDQ0xheWVyRGVs
ZWdhdGUqIGRlbGVnYXRlKQogICAgICwgbV9vcGFjaXR5KDEuMCkKICAgICAsIG1fYW5jaG9yUG9p
bnRaKDApCiAgICAgLCBtX21hc2tzVG9Cb3VuZHMoZmFsc2UpCi0gICAgLCBtX29wYXF1ZSh0cnVl
KQorICAgICwgbV9vcGFxdWUoZmFsc2UpCiAgICAgLCBtX2RvdWJsZVNpZGVkKHRydWUpCiAgICAg
LCBtX3VzZXNMYXllclNjaXNzb3IoZmFsc2UpCiAgICAgLCBtX2lzTm9uQ29tcG9zaXRlZENvbnRl
bnQoZmFsc2UpCkBAIC0yOTAsNiArMjkwLDcgQEAgdm9pZCBMYXllckNocm9taXVtOjpwdXNoUHJv
cGVydGllc1RvKENDTGF5ZXJJbXBsKiBsYXllcikKICAgICBsYXllci0+c2V0TWFza3NUb0JvdW5k
cyhtX21hc2tzVG9Cb3VuZHMpOwogICAgIGxheWVyLT5zZXRNYXhTY3JvbGxQb3NpdGlvbihtX21h
eFNjcm9sbFBvc2l0aW9uKTsKICAgICBsYXllci0+c2V0TmFtZShtX25hbWUpOworICAgIGxheWVy
LT5zZXRPcGFxdWUobV9vcGFxdWUpOwogICAgIGxheWVyLT5zZXRPcGFjaXR5KG1fb3BhY2l0eSk7
CiAgICAgbGF5ZXItPnNldFBvc2l0aW9uKG1fcG9zaXRpb24pOwogICAgIGxheWVyLT5zZXRQcmVz
ZXJ2ZXMzRChwcmVzZXJ2ZXMzRCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0u
Y3BwCmluZGV4IGM1MjVjMWQyM2ViZjY0Nzg4NTMyODgyMjcyZDg4MjJhZjVjYTY3YzAuLmRiYWUw
ZTgwOTg5MjhmZTk0MDczMjM0NDI1ZWEyODU5YjhiMzQzNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJS
ZW5kZXJlckNocm9taXVtLmNwcApAQCAtNTUyLDggKzU1MiwxNSBAQCB2b2lkIExheWVyUmVuZGVy
ZXJDaHJvbWl1bTo6ZHJhd0xheWVyKENDTGF5ZXJJbXBsKiBsYXllciwgQ0NSZW5kZXJTdXJmYWNl
KiB0YXJnZQogICAgICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIGJvb2wgb3BhcXVlID0g
bGF5ZXItPm9wYXF1ZSgpICYmIGxheWVyLT5kcmF3T3BhY2l0eSgpID09IDE7CisgICAgaWYgKG9w
YXF1ZSkKKyAgICAgICAgR0xDKG1fY29udGV4dC5nZXQoKSwgbV9jb250ZXh0LT5kaXNhYmxlKEdy
YXBoaWNzQ29udGV4dDNEOjpCTEVORCkpOworCiAgICAgbGF5ZXItPmRyYXcodGhpcyk7CiAKKyAg
ICBpZiAob3BhcXVlKQorICAgICAgICBHTEMobV9jb250ZXh0LmdldCgpLCBtX2NvbnRleHQtPmVu
YWJsZShHcmFwaGljc0NvbnRleHQzRDo6QkxFTkQpKTsKKwogICAgIC8vIERyYXcgdGhlIGRlYnVn
IGJvcmRlciBpZiB0aGVyZSBpcyBvbmUuCiAgICAgbGF5ZXItPmRyYXdEZWJ1Z0JvcmRlcih0aGlz
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDTGF5ZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmNwcAppbmRleCAyYjA1ZDlmZjBkMTdlMDJiYjRlZTdk
ODNiYjBmM2IyNGZjYjc1Y2YzLi5lYmI5ZWIxOTgwODFlYmVlM2Y3N2RiYzY1ZTJmZmU4YjZmMjJk
YTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ0xheWVySW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuY3BwCkBAIC00NCw2ICs0NCw3IEBAIENDTGF5ZXJJ
bXBsOjpDQ0xheWVySW1wbChpbnQgaWQpCiAgICAgLCBtX2FuY2hvclBvaW50WigwKQogICAgICwg
bV9kb3VibGVTaWRlZCh0cnVlKQogICAgICwgbV9tYXNrc1RvQm91bmRzKGZhbHNlKQorICAgICwg
bV9vcGFxdWUoZmFsc2UpCiAgICAgLCBtX29wYWNpdHkoMS4wKQogICAgICwgbV9wcmVzZXJ2ZXMz
RChmYWxzZSkKICAgICAsIG1fdXNlc0xheWVyU2Npc3NvcihmYWxzZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1w
bC5oCmluZGV4IDE1YmU3NTE1NmM3NzgwMDE0NDk4ZGI2ZTQ3OGFkNjM2NzA4ZDhiNjAuLjNiYWJj
M2Y4NjZkNGYyMDMwYTBlNTU4NWVkMTQ2YzhlYzYyYzgwZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwu
aApAQCAtOTIsNiArOTIsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRNYXNrc1RvQm91bmRzKGJv
b2wgbWFza3NUb0JvdW5kcykgeyBtX21hc2tzVG9Cb3VuZHMgPSBtYXNrc1RvQm91bmRzOyB9CiAg
ICAgYm9vbCBtYXNrc1RvQm91bmRzKCkgY29uc3QgeyByZXR1cm4gbV9tYXNrc1RvQm91bmRzOyB9
CiAKKyAgICB2b2lkIHNldE9wYXF1ZShib29sIG9wYXF1ZSkgeyBtX29wYXF1ZSA9IG9wYXF1ZTsg
fQorICAgIGJvb2wgb3BhcXVlKCkgY29uc3QgeyByZXR1cm4gbV9vcGFxdWU7IH0KKwogICAgIHZv
aWQgc2V0T3BhY2l0eShmbG9hdCBvcGFjaXR5KSB7IG1fb3BhY2l0eSA9IG9wYWNpdHk7IH0KICAg
ICBmbG9hdCBvcGFjaXR5KCkgY29uc3QgeyByZXR1cm4gbV9vcGFjaXR5OyB9CiAKQEAgLTIwNyw2
ICsyMTAsNyBAQCBwcml2YXRlOgogCiAgICAgSW50UmVjdCBtX3Zpc2libGVMYXllclJlY3Q7CiAg
ICAgYm9vbCBtX21hc2tzVG9Cb3VuZHM7CisgICAgYm9vbCBtX29wYXF1ZTsKICAgICBmbG9hdCBt
X29wYWNpdHk7CiAgICAgRmxvYXRQb2ludCBtX3Bvc2l0aW9uOwogICAgIGJvb2wgbV9wcmVzZXJ2
ZXMzRDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112579</attachid>
            <date>2011-10-26 12:47:37 -0700</date>
            <delta_ts>2011-10-26 13:12:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70085-20111026124736.patch</filename>
            <type>text/plain</type>
            <size>13257</size>
            <attacher name="Antoine Labour">piman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTgzNTkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3NGNiMzI5ZjJjMWNiODk2
MDEyMjI2Y2YyNDljMjBhMWVhZTQyNjcwLi45ZWQyNzZjODhjYzg4ZTU3NjFmNDliODBmMGMzNWUw
ZWYxMzJkOGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTEtMTAtMTMgIEFudG9p
bmUgTGFib3VyICA8cGltYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIERpc2FibGUgYmxlbmRp
bmcgd2hlbiBkcmF3aW5nIG9wYXF1ZSBsYXllcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTcwMDg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQ292ZXJlZCBieSBjb21wb3NpdGluZy8gdGVzdHMsIGFzIHdl
bGwgYXMgYSBuZXcgdW5pdCB0ZXN0OgorICAgICAgICBDQ0xheWVyVHJlZUhvc3RJbXBsVGVzdC5i
bGVuZGluZ09mZldoZW5EcmF3aW5nT3BhcXVlTGF5ZXJzCisKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okxh
eWVyQ2hyb21pdW06OkxheWVyQ2hyb21pdW0pOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDaHJv
bWl1bTo6cHVzaFByb3BlcnRpZXNUbyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheWVy
UmVuZGVyZXJDaHJvbWl1bTo6ZHJhd0xheWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVy
SW1wbDo6Q0NMYXllckltcGwpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDTGF5ZXJJbXBsLmg6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVySW1wbDo6c2V0T3Bh
cXVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJJbXBsOjpvcGFxdWUpOgorCiAyMDExLTEw
LTI0ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIGNvbXBvc2l0
aW5nL3ZpZGVvIHRlc3RzIHRpbWUgb3V0IG9uIExpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5jcHAKaW5k
ZXggMmQxNThhYmY2NjZlOWM1NzExMDk4ZjFjNmI5OTZjZTViZTRkOWQ3MC4uNmE2YTBlNzdjNDc0
OTA5Y2EwMmI0NDgyZGZmNjAxNjBhYTExY2Y0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5jcHAKQEAg
LTI4OCw2ICsyODgsNyBAQCB2b2lkIExheWVyQ2hyb21pdW06OnB1c2hQcm9wZXJ0aWVzVG8oQ0NM
YXllckltcGwqIGxheWVyKQogICAgIGxheWVyLT5zZXRNYXNrc1RvQm91bmRzKG1fbWFza3NUb0Jv
dW5kcyk7CiAgICAgbGF5ZXItPnNldE1heFNjcm9sbFBvc2l0aW9uKG1fbWF4U2Nyb2xsUG9zaXRp
b24pOwogICAgIGxheWVyLT5zZXROYW1lKG1fbmFtZSk7CisgICAgbGF5ZXItPnNldE9wYXF1ZSht
X29wYXF1ZSk7CiAgICAgbGF5ZXItPnNldE9wYWNpdHkobV9vcGFjaXR5KTsKICAgICBsYXllci0+
c2V0UG9zaXRpb24obV9wb3NpdGlvbik7CiAgICAgbGF5ZXItPnNldFByZXNlcnZlczNEKHByZXNl
cnZlczNEKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAKaW5kZXggMDU3
NmFkOTIzODM5MjY4Yjg1MGMwOTQ4ZmU0NGIyMjA4NzM0YTZlZS4uYmVlMjZlNmM5MTFiNDkxNWRh
Y2MxNjZiN2UyMGM3OWM4MGQwMzZjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21p
dW0uY3BwCkBAIC01ODcsOCArNTg3LDE1IEBAIHZvaWQgTGF5ZXJSZW5kZXJlckNocm9taXVtOjpk
cmF3TGF5ZXIoQ0NMYXllckltcGwqIGxheWVyLCBDQ1JlbmRlclN1cmZhY2UqIHRhcmdlCiAgICAg
ZWxzZQogICAgICAgICBHTEMobV9jb250ZXh0LmdldCgpLCBtX2NvbnRleHQtPmRpc2FibGUoR3Jh
cGhpY3NDb250ZXh0M0Q6OlNDSVNTT1JfVEVTVCkpOwogCisgICAgYm9vbCBvcGFxdWUgPSBsYXll
ci0+b3BhcXVlKCkgJiYgbGF5ZXItPmRyYXdPcGFjaXR5KCkgPT0gMTsKKyAgICBpZiAob3BhcXVl
KQorICAgICAgICBHTEMobV9jb250ZXh0LmdldCgpLCBtX2NvbnRleHQtPmRpc2FibGUoR3JhcGhp
Y3NDb250ZXh0M0Q6OkJMRU5EKSk7CisKICAgICBsYXllci0+ZHJhdyh0aGlzKTsKIAorICAgIGlm
IChvcGFxdWUpCisgICAgICAgIEdMQyhtX2NvbnRleHQuZ2V0KCksIG1fY29udGV4dC0+ZW5hYmxl
KEdyYXBoaWNzQ29udGV4dDNEOjpCTEVORCkpOworCiAgICAgLy8gRHJhdyB0aGUgZGVidWcgYm9y
ZGVyIGlmIHRoZXJlIGlzIG9uZS4KICAgICBsYXllci0+ZHJhd0RlYnVnQm9yZGVyKHRoaXMpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NMYXllckltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NMYXllckltcGwuY3BwCmluZGV4IDJiMDVkOWZmMGQxN2UwMmJiNGVlN2Q4M2Ji
MGYzYjI0ZmNiNzVjZjMuLmViYjllYjE5ODA4MWViZWUzZjc3ZGJjNjVlMmZmZThiNmYyMmRhMDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDTGF5ZXJJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ0xheWVySW1wbC5jcHAKQEAgLTQ0LDYgKzQ0LDcgQEAgQ0NMYXllckltcGw6
OkNDTGF5ZXJJbXBsKGludCBpZCkKICAgICAsIG1fYW5jaG9yUG9pbnRaKDApCiAgICAgLCBtX2Rv
dWJsZVNpZGVkKHRydWUpCiAgICAgLCBtX21hc2tzVG9Cb3VuZHMoZmFsc2UpCisgICAgLCBtX29w
YXF1ZShmYWxzZSkKICAgICAsIG1fb3BhY2l0eSgxLjApCiAgICAgLCBtX3ByZXNlcnZlczNEKGZh
bHNlKQogICAgICwgbV91c2VzTGF5ZXJTY2lzc29yKGZhbHNlKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmgK
aW5kZXggMzljNmY4ZTEwYmEwZjg3N2I5MmFmYTEzMGY0MTE4NDM0ZmE1ZWNhNC4uMzY5ZWU5MWFi
ZWIyOTYyNzIzOTg5OTRhZTkxNDkyODFjZWZkN2I2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5oCkBA
IC05Miw2ICs5Miw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldE1hc2tzVG9Cb3VuZHMoYm9vbCBt
YXNrc1RvQm91bmRzKSB7IG1fbWFza3NUb0JvdW5kcyA9IG1hc2tzVG9Cb3VuZHM7IH0KICAgICBi
b29sIG1hc2tzVG9Cb3VuZHMoKSBjb25zdCB7IHJldHVybiBtX21hc2tzVG9Cb3VuZHM7IH0KIAor
ICAgIHZvaWQgc2V0T3BhcXVlKGJvb2wgb3BhcXVlKSB7IG1fb3BhcXVlID0gb3BhcXVlOyB9Cisg
ICAgYm9vbCBvcGFxdWUoKSBjb25zdCB7IHJldHVybiBtX29wYXF1ZTsgfQorCiAgICAgdm9pZCBz
ZXRPcGFjaXR5KGZsb2F0IG9wYWNpdHkpIHsgbV9vcGFjaXR5ID0gb3BhY2l0eTsgfQogICAgIGZs
b2F0IG9wYWNpdHkoKSBjb25zdCB7IHJldHVybiBtX29wYWNpdHk7IH0KIApAQCAtMjA5LDYgKzIx
Miw3IEBAIHByaXZhdGU6CiAKICAgICBJbnRSZWN0IG1fdmlzaWJsZUxheWVyUmVjdDsKICAgICBi
b29sIG1fbWFza3NUb0JvdW5kczsKKyAgICBib29sIG1fb3BhcXVlOwogICAgIGZsb2F0IG1fb3Bh
Y2l0eTsKICAgICBGbG9hdFBvaW50IG1fcG9zaXRpb247CiAgICAgYm9vbCBtX3ByZXNlcnZlczNE
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhv
c3RJbXBsVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVl
SG9zdEltcGxUZXN0LmNwcAppbmRleCAwZmQ3NjhkNWMyNTkzYmRlMmM5OTdiYmY0ZDAxZGNmMTU1
NWNkMDcyLi5kNzMyOTAxMzljMzNmMjM5YmE3MTkzOWViYjJmNjMzMTU3OThmNjZmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdEltcGxUZXN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdElt
cGxUZXN0LmNwcApAQCAtMjYsMTEgKzI2LDE1IEBACiAKICNpbmNsdWRlICJjYy9DQ0xheWVyVHJl
ZUhvc3RJbXBsLmgiCiAKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaCIKKyNp
bmNsdWRlICJMYXllclJlbmRlcmVyQ2hyb21pdW0uaCIKKyNpbmNsdWRlICJNb2NrV2ViR3JhcGhp
Y3NDb250ZXh0M0QuaCIKICNpbmNsdWRlICJjYy9DQ0xheWVySW1wbC5oIgogI2luY2x1ZGUgImNj
L0NDU2luZ2xlVGhyZWFkUHJveHkuaCIKICNpbmNsdWRlIDxndGVzdC9ndGVzdC5oPgogCiB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKIG5hbWVzcGFj
ZSB7CiAKQEAgLTE1MSw0ICsxNTUsMTM5IEBAIFRFU1RfRihDQ0xheWVyVHJlZUhvc3RJbXBsVGVz
dCwgc2Nyb2xsUm9vdENhbGxzQ29tbWl0QW5kUmVkcmF3KQogICAgIEFTU0VSVChtX2RpZFJlcXVl
c3RDb21taXQpOwogfQogCitjbGFzcyBCbGVuZFN0YXRlVHJhY2tlckNvbnRleHQ6IHB1YmxpYyBN
b2NrV2ViR3JhcGhpY3NDb250ZXh0M0QgeworcHVibGljOgorICAgIEJsZW5kU3RhdGVUcmFja2Vy
Q29udGV4dCgpIDogbV9ibGVuZChmYWxzZSkgeyB9CisKKyAgICB2aXJ0dWFsIGJvb2wgaW5pdGlh
bGl6ZShBdHRyaWJ1dGVzLCBXZWJWaWV3KiwgYm9vbCByZW5kZXJEaXJlY3RseVRvV2ViVmlldykg
eyByZXR1cm4gdHJ1ZTsgfQorCisgICAgdmlydHVhbCB2b2lkIGVuYWJsZShXR0MzRGVudW0gY2Fw
KQorICAgIHsKKyAgICAgICAgaWYgKGNhcCA9PSBHcmFwaGljc0NvbnRleHQzRDo6QkxFTkQpCisg
ICAgICAgICAgICBtX2JsZW5kID0gdHJ1ZTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlz
YWJsZShXR0MzRGVudW0gY2FwKQorICAgIHsKKyAgICAgICAgaWYgKGNhcCA9PSBHcmFwaGljc0Nv
bnRleHQzRDo6QkxFTkQpCisgICAgICAgICAgICBtX2JsZW5kID0gZmFsc2U7CisgICAgfQorCisg
ICAgYm9vbCBibGVuZCgpIGNvbnN0IHsgcmV0dXJuIG1fYmxlbmQ7IH0KKworcHJpdmF0ZToKKyAg
ICBib29sIG1fYmxlbmQ7Cit9OworCitjbGFzcyBCbGVuZFN0YXRlQ2hlY2tMYXllciA6IHB1Ymxp
YyBDQ0xheWVySW1wbCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8QmxlbmRTdGF0
ZUNoZWNrTGF5ZXI+IGNyZWF0ZShpbnQgaWQpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBCbGVuZFN0
YXRlQ2hlY2tMYXllcihpZCkpOyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgZHJhdyhMYXllclJlbmRl
cmVyQ2hyb21pdW0qIHJlbmRlcmVyKQorICAgIHsKKyAgICAgICAgbV9kcmF3biA9IHRydWU7Cisg
ICAgICAgIEJsZW5kU3RhdGVUcmFja2VyQ29udGV4dCogY29udGV4dCA9IHN0YXRpY19jYXN0PEJs
ZW5kU3RhdGVUcmFja2VyQ29udGV4dCo+KEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6ZXh0cmFj
dFdlYkdyYXBoaWNzQ29udGV4dDNEKHJlbmRlcmVyLT5jb250ZXh0KCkpKTsKKyAgICAgICAgRVhQ
RUNUX0VRKG1fYmxlbmQsIGNvbnRleHQtPmJsZW5kKCkpOworICAgICAgICBFWFBFQ1RfRVEobV9o
YXNSZW5kZXJTdXJmYWNlLCAhIXJlbmRlclN1cmZhY2UoKSk7CisgICAgfQorCisgICAgdm9pZCBz
ZXRFeHBlY3RhdGlvbihib29sIGJsZW5kLCBib29sIGhhc1JlbmRlclN1cmZhY2UpCisgICAgewor
ICAgICAgICBtX2JsZW5kID0gYmxlbmQ7CisgICAgICAgIG1faGFzUmVuZGVyU3VyZmFjZSA9IGhh
c1JlbmRlclN1cmZhY2U7CisgICAgICAgIG1fZHJhd24gPSBmYWxzZTsKKyAgICB9CisKKyAgICBi
b29sIGRyYXduKCkgY29uc3QgeyByZXR1cm4gbV9kcmF3bjsgfQorCitwcml2YXRlOgorICAgIEJs
ZW5kU3RhdGVDaGVja0xheWVyKGludCBpZCkKKyAgICAgICAgOiBDQ0xheWVySW1wbChpZCkKKyAg
ICAgICAgLCBtX2JsZW5kKGZhbHNlKQorICAgICAgICAsIG1faGFzUmVuZGVyU3VyZmFjZShmYWxz
ZSkKKyAgICAgICAgLCBtX2RyYXduKGZhbHNlKQorICAgIHsKKyAgICAgICAgc2V0QW5jaG9yUG9p
bnQoRmxvYXRQb2ludCgwLCAwKSk7CisgICAgICAgIHNldEJvdW5kcyhJbnRTaXplKDEwLCAxMCkp
OworICAgICAgICBzZXREcmF3c0NvbnRlbnQodHJ1ZSk7CisgICAgfQorCisgICAgYm9vbCBtX2Js
ZW5kOworICAgIGJvb2wgbV9oYXNSZW5kZXJTdXJmYWNlOworICAgIGJvb2wgbV9kcmF3bjsKK307
CisKK1RFU1RfRihDQ0xheWVyVHJlZUhvc3RJbXBsVGVzdCwgYmxlbmRpbmdPZmZXaGVuRHJhd2lu
Z09wYXF1ZUxheWVycykKK3sKKyAgICBHcmFwaGljc0NvbnRleHQzRDo6QXR0cmlidXRlcyBhdHRy
czsKKyAgICBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQgPSBHcmFwaGljc0NvbnRl
eHQzRFByaXZhdGU6OmNyZWF0ZUdyYXBoaWNzQ29udGV4dEZyb21XZWJDb250ZXh0KGFkb3B0UHRy
KG5ldyBCbGVuZFN0YXRlVHJhY2tlckNvbnRleHQoKSksIGF0dHJzLCAwLCBHcmFwaGljc0NvbnRl
eHQzRDo6UmVuZGVyRGlyZWN0bHlUb0hvc3RXaW5kb3csIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0
ZTo6Rm9yVXNlT25UaGlzVGhyZWFkKTsKKyAgICBtX2hvc3RJbXBsLT5pbml0aWFsaXplTGF5ZXJS
ZW5kZXJlcihjb250ZXh0KTsKKyAgICBtX2hvc3RJbXBsLT5zZXRWaWV3cG9ydChJbnRTaXplKDEw
LCAxMCkpOworCisgICAgUmVmUHRyPENDTGF5ZXJJbXBsPiByb290ID0gQ0NMYXllckltcGw6OmNy
ZWF0ZSgwKTsKKyAgICByb290LT5zZXRBbmNob3JQb2ludChGbG9hdFBvaW50KDAsIDApKTsKKyAg
ICByb290LT5zZXRCb3VuZHMoSW50U2l6ZSgxMCwgMTApKTsKKyAgICByb290LT5zZXREcmF3c0Nv
bnRlbnQoZmFsc2UpOworICAgIG1faG9zdEltcGwtPnNldFJvb3RMYXllcihyb290KTsKKworICAg
IFJlZlB0cjxCbGVuZFN0YXRlQ2hlY2tMYXllcj4gbGF5ZXIxID0gQmxlbmRTdGF0ZUNoZWNrTGF5
ZXI6OmNyZWF0ZSgxKTsKKyAgICByb290LT5hZGRDaGlsZChsYXllcjEpOworCisgICAgLy8gT3Bh
cXVlIGxheWVyLCBkcmF3biB3aXRob3V0IGJsZW5kaW5nLgorICAgIGxheWVyMS0+c2V0T3BhcXVl
KHRydWUpOworICAgIGxheWVyMS0+c2V0RXhwZWN0YXRpb24oZmFsc2UsIGZhbHNlKTsKKyAgICBt
X2hvc3RJbXBsLT5kcmF3TGF5ZXJzKCk7CisgICAgRVhQRUNUX1RSVUUobGF5ZXIxLT5kcmF3bigp
KTsKKworICAgIC8vIExheWVyIHdpdGggdHJhbnNsdWNlbnQgY29udGVudCwgZHJhd24gd2l0aCBi
bGVuZGluZy4KKyAgICBsYXllcjEtPnNldE9wYXF1ZShmYWxzZSk7CisgICAgbGF5ZXIxLT5zZXRF
eHBlY3RhdGlvbih0cnVlLCBmYWxzZSk7CisgICAgbV9ob3N0SW1wbC0+ZHJhd0xheWVycygpOwor
ICAgIEVYUEVDVF9UUlVFKGxheWVyMS0+ZHJhd24oKSk7CisKKyAgICAvLyBMYXllciB3aXRoIHRy
YW5zbHVjZW50IG9wYWNpdHksIGRyYXduIHdpdGggYmxlbmRpbmcuCisgICAgbGF5ZXIxLT5zZXRP
cGFxdWUodHJ1ZSk7CisgICAgbGF5ZXIxLT5zZXRPcGFjaXR5KDAuNSk7CisgICAgbGF5ZXIxLT5z
ZXRFeHBlY3RhdGlvbih0cnVlLCBmYWxzZSk7CisgICAgbV9ob3N0SW1wbC0+ZHJhd0xheWVycygp
OworICAgIEVYUEVDVF9UUlVFKGxheWVyMS0+ZHJhd24oKSk7CisKKyAgICBSZWZQdHI8QmxlbmRT
dGF0ZUNoZWNrTGF5ZXI+IGxheWVyMiA9IEJsZW5kU3RhdGVDaGVja0xheWVyOjpjcmVhdGUoMik7
CisgICAgbGF5ZXIxLT5hZGRDaGlsZChsYXllcjIpOworCisgICAgLy8gMiBvcGFxdWUgbGF5ZXJz
LCBkcmF3biB3aXRob3V0IGJsZW5kaW5nLgorICAgIGxheWVyMS0+c2V0T3BhcXVlKHRydWUpOwor
ICAgIGxheWVyMS0+c2V0T3BhY2l0eSgxKTsKKyAgICBsYXllcjEtPnNldEV4cGVjdGF0aW9uKGZh
bHNlLCBmYWxzZSk7CisgICAgbGF5ZXIyLT5zZXRPcGFxdWUodHJ1ZSk7CisgICAgbGF5ZXIyLT5z
ZXRPcGFjaXR5KDEpOworICAgIGxheWVyMi0+c2V0RXhwZWN0YXRpb24oZmFsc2UsIGZhbHNlKTsK
KyAgICBtX2hvc3RJbXBsLT5kcmF3TGF5ZXJzKCk7CisgICAgRVhQRUNUX1RSVUUobGF5ZXIxLT5k
cmF3bigpKTsKKyAgICBFWFBFQ1RfVFJVRShsYXllcjItPmRyYXduKCkpOworCisgICAgLy8gUGFy
ZW50IGxheWVyIHdpdGggdHJhbnNsdWNlbnQgY29udGVudCwgZHJhd24gd2l0aCBibGVuZGluZy4K
KyAgICAvLyBDaGlsZCBsYXllciB3aXRoIG9wYXF1ZSBjb250ZW50LCBkcmF3biB3aXRob3V0IGJs
ZW5kaW5nLgorICAgIGxheWVyMS0+c2V0T3BhcXVlKGZhbHNlKTsKKyAgICBsYXllcjEtPnNldEV4
cGVjdGF0aW9uKHRydWUsIGZhbHNlKTsKKyAgICBsYXllcjItPnNldEV4cGVjdGF0aW9uKGZhbHNl
LCBmYWxzZSk7CisgICAgbV9ob3N0SW1wbC0+ZHJhd0xheWVycygpOworICAgIEVYUEVDVF9UUlVF
KGxheWVyMS0+ZHJhd24oKSk7CisgICAgRVhQRUNUX1RSVUUobGF5ZXIyLT5kcmF3bigpKTsKKwor
ICAgIC8vIFBhcmVudCBsYXllciB3aXRoIHRyYW5zbHVjZW50IG9wYWNpdHkgYW5kIG9wYXF1ZSBj
b250ZW50LiBTaW5jZSBpdCBoYXMgYQorICAgIC8vIGRyYXdpbmcgY2hpbGQsIGl0J3MgZHJhd24g
dG8gYSByZW5kZXIgc3VyZmFjZSB3aGljaCBjYXJyaWVzIHRoZSBvcGFjaXR5LAorICAgIC8vIHNv
IGl0J3MgaXRzZWxmIGRyYXduIHdpdGhvdXQgYmxlbmRpbmcuCisgICAgLy8gQ2hpbGQgbGF5ZXIg
d2l0aCBvcGFxdWUgY29udGVudCwgZHJhd24gd2l0aG91dCBibGVuZGluZyAocGFyZW50IHN1cmZh
Y2UKKyAgICAvLyBjYXJyaWVzIHRoZSBpbmhlcml0ZWQgb3BhY2l0eSkuCisgICAgbGF5ZXIxLT5z
ZXRPcGFxdWUodHJ1ZSk7CisgICAgbGF5ZXIxLT5zZXRPcGFjaXR5KDAuNSk7CisgICAgbGF5ZXIx
LT5zZXRFeHBlY3RhdGlvbihmYWxzZSwgdHJ1ZSk7CisgICAgbGF5ZXIyLT5zZXRFeHBlY3RhdGlv
bihmYWxzZSwgZmFsc2UpOworICAgIG1faG9zdEltcGwtPmRyYXdMYXllcnMoKTsKKyAgICBFWFBF
Q1RfVFJVRShsYXllcjEtPmRyYXduKCkpOworICAgIEVYUEVDVF9UUlVFKGxheWVyMi0+ZHJhd24o
KSk7Cit9CisKKwogfSAvLyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvTW9ja1dlYkdyYXBoaWNzQ29udGV4dDNELmggYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL01vY2tXZWJHcmFwaGljc0NvbnRleHQzRC5oCmluZGV4IGQyNTUxMTYzZGIy
NTQ4MmIxZmExYzZjMTA1OWJhNmZiN2JkY2YwZDMuLjg3MjY1YmNiNzE0ODdkYmNhNzQ0Y2YxYzNl
YWUxNzI5YmVjNWNhZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
TW9ja1dlYkdyYXBoaWNzQ29udGV4dDNELmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9Nb2NrV2ViR3JhcGhpY3NDb250ZXh0M0QuaApAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRl
ZiBNb2NrV2ViR3JhcGhpY3NDb250ZXh0M0RfaAogI2RlZmluZSBNb2NrV2ViR3JhcGhpY3NDb250
ZXh0M0RfaAogCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKICNpbmNsdWRlICJXZWJH
cmFwaGljc0NvbnRleHQzRC5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTg0LDcgKzg1LDEx
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgYnVmZmVyRGF0YShXR0MzRGVudW0gdGFyZ2V0
LCBXR0MzRHNpemVpcHRyIHNpemUsIGNvbnN0IHZvaWQqIGRhdGEsIFdHQzNEZW51bSB1c2FnZSkg
eyB9CiAgICAgdmlydHVhbCB2b2lkIGJ1ZmZlclN1YkRhdGEoV0dDM0RlbnVtIHRhcmdldCwgV0dD
M0RpbnRwdHIgb2Zmc2V0LCBXR0MzRHNpemVpcHRyIHNpemUsIGNvbnN0IHZvaWQqIGRhdGEpIHsg
fQogCi0gICAgdmlydHVhbCBXR0MzRGVudW0gY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhXR0MzRGVu
dW0gdGFyZ2V0KSB7IHJldHVybiAwOyB9CisgICAgdmlydHVhbCBXR0MzRGVudW0gY2hlY2tGcmFt
ZWJ1ZmZlclN0YXR1cyhXR0MzRGVudW0gdGFyZ2V0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUl9DT01QTEVURTsKKyAgICB9CisK
ICAgICB2aXJ0dWFsIHZvaWQgY2xlYXIoV0dDM0RiaXRmaWVsZCBtYXNrKSB7IH0KICAgICB2aXJ0
dWFsIHZvaWQgY2xlYXJDb2xvcihXR0MzRGNsYW1wZiByZWQsIFdHQzNEY2xhbXBmIGdyZWVuLCBX
R0MzRGNsYW1wZiBibHVlLCBXR0MzRGNsYW1wZiBhbHBoYSkgeyB9CiAgICAgdmlydHVhbCB2b2lk
IGNsZWFyRGVwdGgoV0dDM0RjbGFtcGYgZGVwdGgpIHsgfQpAQCAtMTIzLDExICsxMjgsMjggQEAg
cHVibGljOgogICAgIHZpcnR1YWwgV0dDM0RlbnVtIGdldEVycm9yKCkgeyByZXR1cm4gMDsgfQog
ICAgIHZpcnR1YWwgdm9pZCBnZXRGbG9hdHYoV0dDM0RlbnVtIHBuYW1lLCBXR0MzRGZsb2F0KiB2
YWx1ZSkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFt
ZXRlcml2KFdHQzNEZW51bSB0YXJnZXQsIFdHQzNEZW51bSBhdHRhY2htZW50LCBXR0MzRGVudW0g
cG5hbWUsIFdHQzNEaW50KiB2YWx1ZSkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGdldEludGVnZXJ2
KFdHQzNEZW51bSBwbmFtZSwgV0dDM0RpbnQqIHZhbHVlKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQg
Z2V0UHJvZ3JhbWl2KFdlYkdMSWQgcHJvZ3JhbSwgV0dDM0RlbnVtIHBuYW1lLCBXR0MzRGludCog
dmFsdWUpIHsgfQorCisgICAgdmlydHVhbCB2b2lkIGdldEludGVnZXJ2KFdHQzNEZW51bSBwbmFt
ZSwgV0dDM0RpbnQqIHZhbHVlKQorICAgIHsKKyAgICAgICAgaWYgKHBuYW1lID09IFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dDNEOjpNQVhfVEVYVFVSRV9TSVpFKQorICAgICAgICAgICAgKnZhbHVl
ID0gMTAyNDsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0UHJvZ3JhbWl2KFdlYkdMSWQg
cHJvZ3JhbSwgV0dDM0RlbnVtIHBuYW1lLCBXR0MzRGludCogdmFsdWUpCisgICAgeworICAgICAg
ICBpZiAocG5hbWUgPT0gV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OkxJTktfU1RBVFVTKQor
ICAgICAgICAgICAgKnZhbHVlID0gMTsKKyAgICB9CisKICAgICB2aXJ0dWFsIFdlYlN0cmluZyBn
ZXRQcm9ncmFtSW5mb0xvZyhXZWJHTElkIHByb2dyYW0pIHsgcmV0dXJuIFdlYlN0cmluZygpOyB9
CiAgICAgdmlydHVhbCB2b2lkIGdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcml2KFdHQzNEZW51bSB0
YXJnZXQsIFdHQzNEZW51bSBwbmFtZSwgV0dDM0RpbnQqIHZhbHVlKSB7IH0KLSAgICB2aXJ0dWFs
IHZvaWQgZ2V0U2hhZGVyaXYoV2ViR0xJZCBzaGFkZXIsIFdHQzNEZW51bSBwbmFtZSwgV0dDM0Rp
bnQqIHZhbHVlKSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCBnZXRTaGFkZXJpdihXZWJHTElkIHNo
YWRlciwgV0dDM0RlbnVtIHBuYW1lLCBXR0MzRGludCogdmFsdWUpCisgICAgeworICAgICAgICBp
ZiAocG5hbWUgPT0gV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OkNPTVBJTEVfU1RBVFVTKQor
ICAgICAgICAgICAgKnZhbHVlID0gMTsKKyAgICB9CisKICAgICB2aXJ0dWFsIFdlYlN0cmluZyBn
ZXRTaGFkZXJJbmZvTG9nKFdlYkdMSWQgc2hhZGVyKSB7IHJldHVybiBXZWJTdHJpbmcoKTsgfQog
CiAgICAgdmlydHVhbCBXZWJTdHJpbmcgZ2V0U2hhZGVyU291cmNlKFdlYkdMSWQgc2hhZGVyKSB7
IHJldHVybiBXZWJTdHJpbmcoKTsgfQpAQCAtMjEyLDEyICsyMzQsMTIgQEAgcHVibGljOgogCiAg
ICAgdmlydHVhbCB2b2lkIHZpZXdwb3J0KFdHQzNEaW50IHgsIFdHQzNEaW50IHksIFdHQzNEc2l6
ZWkgd2lkdGgsIFdHQzNEc2l6ZWkgaGVpZ2h0KSB7IH0KIAotICAgIHZpcnR1YWwgV2ViR0xJZCBj
cmVhdGVCdWZmZXIoKSB7IHJldHVybiAwOyB9Ci0gICAgdmlydHVhbCBXZWJHTElkIGNyZWF0ZUZy
YW1lYnVmZmVyKCkgeyByZXR1cm4gMDsgfQotICAgIHZpcnR1YWwgV2ViR0xJZCBjcmVhdGVQcm9n
cmFtKCkgeyByZXR1cm4gMDsgfQotICAgIHZpcnR1YWwgV2ViR0xJZCBjcmVhdGVSZW5kZXJidWZm
ZXIoKSB7IHJldHVybiAwOyB9Ci0gICAgdmlydHVhbCBXZWJHTElkIGNyZWF0ZVNoYWRlcihXR0Mz
RGVudW0pIHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIFdlYkdMSWQgY3JlYXRlVGV4dHVyZSgp
IHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIFdlYkdMSWQgY3JlYXRlQnVmZmVyKCkgeyByZXR1
cm4gMTsgfQorICAgIHZpcnR1YWwgV2ViR0xJZCBjcmVhdGVGcmFtZWJ1ZmZlcigpIHsgcmV0dXJu
IDE7IH0KKyAgICB2aXJ0dWFsIFdlYkdMSWQgY3JlYXRlUHJvZ3JhbSgpIHsgcmV0dXJuIDE7IH0K
KyAgICB2aXJ0dWFsIFdlYkdMSWQgY3JlYXRlUmVuZGVyYnVmZmVyKCkgeyByZXR1cm4gMTsgfQor
ICAgIHZpcnR1YWwgV2ViR0xJZCBjcmVhdGVTaGFkZXIoV0dDM0RlbnVtKSB7IHJldHVybiAxOyB9
CisgICAgdmlydHVhbCBXZWJHTElkIGNyZWF0ZVRleHR1cmUoKSB7IHJldHVybiAxOyB9CiAKICAg
ICB2aXJ0dWFsIHZvaWQgZGVsZXRlQnVmZmVyKFdlYkdMSWQpIHsgfQogICAgIHZpcnR1YWwgdm9p
ZCBkZWxldGVGcmFtZWJ1ZmZlcihXZWJHTElkKSB7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112580</attachid>
            <date>2011-10-26 13:12:44 -0700</date>
            <delta_ts>2011-10-27 07:24:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70085-20111026131243.patch</filename>
            <type>text/plain</type>
            <size>13266</size>
            <attacher name="Antoine Labour">piman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTgzNTkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3NGNiMzI5ZjJjMWNiODk2
MDEyMjI2Y2YyNDljMjBhMWVhZTQyNjcwLi45ZWQyNzZjODhjYzg4ZTU3NjFmNDliODBmMGMzNWUw
ZWYxMzJkOGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTEtMTAtMTMgIEFudG9p
bmUgTGFib3VyICA8cGltYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIERpc2FibGUgYmxlbmRp
bmcgd2hlbiBkcmF3aW5nIG9wYXF1ZSBsYXllcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTcwMDg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQ292ZXJlZCBieSBjb21wb3NpdGluZy8gdGVzdHMsIGFzIHdl
bGwgYXMgYSBuZXcgdW5pdCB0ZXN0OgorICAgICAgICBDQ0xheWVyVHJlZUhvc3RJbXBsVGVzdC5i
bGVuZGluZ09mZldoZW5EcmF3aW5nT3BhcXVlTGF5ZXJzCisKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okxh
eWVyQ2hyb21pdW06OkxheWVyQ2hyb21pdW0pOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDaHJv
bWl1bTo6cHVzaFByb3BlcnRpZXNUbyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheWVy
UmVuZGVyZXJDaHJvbWl1bTo6ZHJhd0xheWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVy
SW1wbDo6Q0NMYXllckltcGwpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDTGF5ZXJJbXBsLmg6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVySW1wbDo6c2V0T3Bh
cXVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJJbXBsOjpvcGFxdWUpOgorCiAyMDExLTEw
LTI0ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIGNvbXBvc2l0
aW5nL3ZpZGVvIHRlc3RzIHRpbWUgb3V0IG9uIExpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5jcHAKaW5k
ZXggMmQxNThhYmY2NjZlOWM1NzExMDk4ZjFjNmI5OTZjZTViZTRkOWQ3MC4uNmE2YTBlNzdjNDc0
OTA5Y2EwMmI0NDgyZGZmNjAxNjBhYTExY2Y0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5jcHAKQEAg
LTI4OCw2ICsyODgsNyBAQCB2b2lkIExheWVyQ2hyb21pdW06OnB1c2hQcm9wZXJ0aWVzVG8oQ0NM
YXllckltcGwqIGxheWVyKQogICAgIGxheWVyLT5zZXRNYXNrc1RvQm91bmRzKG1fbWFza3NUb0Jv
dW5kcyk7CiAgICAgbGF5ZXItPnNldE1heFNjcm9sbFBvc2l0aW9uKG1fbWF4U2Nyb2xsUG9zaXRp
b24pOwogICAgIGxheWVyLT5zZXROYW1lKG1fbmFtZSk7CisgICAgbGF5ZXItPnNldE9wYXF1ZSht
X29wYXF1ZSk7CiAgICAgbGF5ZXItPnNldE9wYWNpdHkobV9vcGFjaXR5KTsKICAgICBsYXllci0+
c2V0UG9zaXRpb24obV9wb3NpdGlvbik7CiAgICAgbGF5ZXItPnNldFByZXNlcnZlczNEKHByZXNl
cnZlczNEKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAKaW5kZXggMDU3
NmFkOTIzODM5MjY4Yjg1MGMwOTQ4ZmU0NGIyMjA4NzM0YTZlZS4uYmVlMjZlNmM5MTFiNDkxNWRh
Y2MxNjZiN2UyMGM3OWM4MGQwMzZjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21p
dW0uY3BwCkBAIC01ODcsOCArNTg3LDE1IEBAIHZvaWQgTGF5ZXJSZW5kZXJlckNocm9taXVtOjpk
cmF3TGF5ZXIoQ0NMYXllckltcGwqIGxheWVyLCBDQ1JlbmRlclN1cmZhY2UqIHRhcmdlCiAgICAg
ZWxzZQogICAgICAgICBHTEMobV9jb250ZXh0LmdldCgpLCBtX2NvbnRleHQtPmRpc2FibGUoR3Jh
cGhpY3NDb250ZXh0M0Q6OlNDSVNTT1JfVEVTVCkpOwogCisgICAgYm9vbCBvcGFxdWUgPSBsYXll
ci0+b3BhcXVlKCkgJiYgbGF5ZXItPmRyYXdPcGFjaXR5KCkgPT0gMTsKKyAgICBpZiAob3BhcXVl
KQorICAgICAgICBHTEMobV9jb250ZXh0LmdldCgpLCBtX2NvbnRleHQtPmRpc2FibGUoR3JhcGhp
Y3NDb250ZXh0M0Q6OkJMRU5EKSk7CisKICAgICBsYXllci0+ZHJhdyh0aGlzKTsKIAorICAgIGlm
IChvcGFxdWUpCisgICAgICAgIEdMQyhtX2NvbnRleHQuZ2V0KCksIG1fY29udGV4dC0+ZW5hYmxl
KEdyYXBoaWNzQ29udGV4dDNEOjpCTEVORCkpOworCiAgICAgLy8gRHJhdyB0aGUgZGVidWcgYm9y
ZGVyIGlmIHRoZXJlIGlzIG9uZS4KICAgICBsYXllci0+ZHJhd0RlYnVnQm9yZGVyKHRoaXMpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NMYXllckltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NMYXllckltcGwuY3BwCmluZGV4IDJiMDVkOWZmMGQxN2UwMmJiNGVlN2Q4M2Ji
MGYzYjI0ZmNiNzVjZjMuLmViYjllYjE5ODA4MWViZWUzZjc3ZGJjNjVlMmZmZThiNmYyMmRhMDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDTGF5ZXJJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ0xheWVySW1wbC5jcHAKQEAgLTQ0LDYgKzQ0LDcgQEAgQ0NMYXllckltcGw6
OkNDTGF5ZXJJbXBsKGludCBpZCkKICAgICAsIG1fYW5jaG9yUG9pbnRaKDApCiAgICAgLCBtX2Rv
dWJsZVNpZGVkKHRydWUpCiAgICAgLCBtX21hc2tzVG9Cb3VuZHMoZmFsc2UpCisgICAgLCBtX29w
YXF1ZShmYWxzZSkKICAgICAsIG1fb3BhY2l0eSgxLjApCiAgICAgLCBtX3ByZXNlcnZlczNEKGZh
bHNlKQogICAgICwgbV91c2VzTGF5ZXJTY2lzc29yKGZhbHNlKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmgK
aW5kZXggMzljNmY4ZTEwYmEwZjg3N2I5MmFmYTEzMGY0MTE4NDM0ZmE1ZWNhNC4uMzY5ZWU5MWFi
ZWIyOTYyNzIzOTg5OTRhZTkxNDkyODFjZWZkN2I2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5oCkBA
IC05Miw2ICs5Miw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldE1hc2tzVG9Cb3VuZHMoYm9vbCBt
YXNrc1RvQm91bmRzKSB7IG1fbWFza3NUb0JvdW5kcyA9IG1hc2tzVG9Cb3VuZHM7IH0KICAgICBi
b29sIG1hc2tzVG9Cb3VuZHMoKSBjb25zdCB7IHJldHVybiBtX21hc2tzVG9Cb3VuZHM7IH0KIAor
ICAgIHZvaWQgc2V0T3BhcXVlKGJvb2wgb3BhcXVlKSB7IG1fb3BhcXVlID0gb3BhcXVlOyB9Cisg
ICAgYm9vbCBvcGFxdWUoKSBjb25zdCB7IHJldHVybiBtX29wYXF1ZTsgfQorCiAgICAgdm9pZCBz
ZXRPcGFjaXR5KGZsb2F0IG9wYWNpdHkpIHsgbV9vcGFjaXR5ID0gb3BhY2l0eTsgfQogICAgIGZs
b2F0IG9wYWNpdHkoKSBjb25zdCB7IHJldHVybiBtX29wYWNpdHk7IH0KIApAQCAtMjA5LDYgKzIx
Miw3IEBAIHByaXZhdGU6CiAKICAgICBJbnRSZWN0IG1fdmlzaWJsZUxheWVyUmVjdDsKICAgICBi
b29sIG1fbWFza3NUb0JvdW5kczsKKyAgICBib29sIG1fb3BhcXVlOwogICAgIGZsb2F0IG1fb3Bh
Y2l0eTsKICAgICBGbG9hdFBvaW50IG1fcG9zaXRpb247CiAgICAgYm9vbCBtX3ByZXNlcnZlczNE
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhv
c3RJbXBsVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVl
SG9zdEltcGxUZXN0LmNwcAppbmRleCAwZmQ3NjhkNWMyNTkzYmRlMmM5OTdiYmY0ZDAxZGNmMTU1
NWNkMDcyLi5mYTVjNzBjYmYxYjQzMzk4YTEwMjMxMjFlMTc1YTUwMzI1YWM4YTM2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdEltcGxUZXN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdElt
cGxUZXN0LmNwcApAQCAtMjYsMTEgKzI2LDE1IEBACiAKICNpbmNsdWRlICJjYy9DQ0xheWVyVHJl
ZUhvc3RJbXBsLmgiCiAKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaCIKKyNp
bmNsdWRlICJMYXllclJlbmRlcmVyQ2hyb21pdW0uaCIKKyNpbmNsdWRlICJNb2NrV2ViR3JhcGhp
Y3NDb250ZXh0M0QuaCIKICNpbmNsdWRlICJjYy9DQ0xheWVySW1wbC5oIgogI2luY2x1ZGUgImNj
L0NDU2luZ2xlVGhyZWFkUHJveHkuaCIKICNpbmNsdWRlIDxndGVzdC9ndGVzdC5oPgogCiB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKIG5hbWVzcGFj
ZSB7CiAKQEAgLTE1MSw0ICsxNTUsMTM5IEBAIFRFU1RfRihDQ0xheWVyVHJlZUhvc3RJbXBsVGVz
dCwgc2Nyb2xsUm9vdENhbGxzQ29tbWl0QW5kUmVkcmF3KQogICAgIEFTU0VSVChtX2RpZFJlcXVl
c3RDb21taXQpOwogfQogCitjbGFzcyBCbGVuZFN0YXRlVHJhY2tlckNvbnRleHQ6IHB1YmxpYyBN
b2NrV2ViR3JhcGhpY3NDb250ZXh0M0QgeworcHVibGljOgorICAgIEJsZW5kU3RhdGVUcmFja2Vy
Q29udGV4dCgpIDogbV9ibGVuZChmYWxzZSkgeyB9CisKKyAgICB2aXJ0dWFsIGJvb2wgaW5pdGlh
bGl6ZShBdHRyaWJ1dGVzLCBXZWJWaWV3KiwgYm9vbCByZW5kZXJEaXJlY3RseVRvV2ViVmlldykg
eyByZXR1cm4gdHJ1ZTsgfQorCisgICAgdmlydHVhbCB2b2lkIGVuYWJsZShXR0MzRGVudW0gY2Fw
KQorICAgIHsKKyAgICAgICAgaWYgKGNhcCA9PSBHcmFwaGljc0NvbnRleHQzRDo6QkxFTkQpCisg
ICAgICAgICAgICBtX2JsZW5kID0gdHJ1ZTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlz
YWJsZShXR0MzRGVudW0gY2FwKQorICAgIHsKKyAgICAgICAgaWYgKGNhcCA9PSBHcmFwaGljc0Nv
bnRleHQzRDo6QkxFTkQpCisgICAgICAgICAgICBtX2JsZW5kID0gZmFsc2U7CisgICAgfQorCisg
ICAgYm9vbCBibGVuZCgpIGNvbnN0IHsgcmV0dXJuIG1fYmxlbmQ7IH0KKworcHJpdmF0ZToKKyAg
ICBib29sIG1fYmxlbmQ7Cit9OworCitjbGFzcyBCbGVuZFN0YXRlQ2hlY2tMYXllciA6IHB1Ymxp
YyBDQ0xheWVySW1wbCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8QmxlbmRTdGF0
ZUNoZWNrTGF5ZXI+IGNyZWF0ZShpbnQgaWQpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBCbGVuZFN0
YXRlQ2hlY2tMYXllcihpZCkpOyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgZHJhdyhMYXllclJlbmRl
cmVyQ2hyb21pdW0qIHJlbmRlcmVyKQorICAgIHsKKyAgICAgICAgbV9kcmF3biA9IHRydWU7Cisg
ICAgICAgIEJsZW5kU3RhdGVUcmFja2VyQ29udGV4dCogY29udGV4dCA9IHN0YXRpY19jYXN0PEJs
ZW5kU3RhdGVUcmFja2VyQ29udGV4dCo+KEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6ZXh0cmFj
dFdlYkdyYXBoaWNzQ29udGV4dDNEKHJlbmRlcmVyLT5jb250ZXh0KCkpKTsKKyAgICAgICAgRVhQ
RUNUX0VRKG1fYmxlbmQsIGNvbnRleHQtPmJsZW5kKCkpOworICAgICAgICBFWFBFQ1RfRVEobV9o
YXNSZW5kZXJTdXJmYWNlLCAhIXJlbmRlclN1cmZhY2UoKSk7CisgICAgfQorCisgICAgdm9pZCBz
ZXRFeHBlY3RhdGlvbihib29sIGJsZW5kLCBib29sIGhhc1JlbmRlclN1cmZhY2UpCisgICAgewor
ICAgICAgICBtX2JsZW5kID0gYmxlbmQ7CisgICAgICAgIG1faGFzUmVuZGVyU3VyZmFjZSA9IGhh
c1JlbmRlclN1cmZhY2U7CisgICAgICAgIG1fZHJhd24gPSBmYWxzZTsKKyAgICB9CisKKyAgICBi
b29sIGRyYXduKCkgY29uc3QgeyByZXR1cm4gbV9kcmF3bjsgfQorCitwcml2YXRlOgorICAgIGV4
cGxpY2l0IEJsZW5kU3RhdGVDaGVja0xheWVyKGludCBpZCkKKyAgICAgICAgOiBDQ0xheWVySW1w
bChpZCkKKyAgICAgICAgLCBtX2JsZW5kKGZhbHNlKQorICAgICAgICAsIG1faGFzUmVuZGVyU3Vy
ZmFjZShmYWxzZSkKKyAgICAgICAgLCBtX2RyYXduKGZhbHNlKQorICAgIHsKKyAgICAgICAgc2V0
QW5jaG9yUG9pbnQoRmxvYXRQb2ludCgwLCAwKSk7CisgICAgICAgIHNldEJvdW5kcyhJbnRTaXpl
KDEwLCAxMCkpOworICAgICAgICBzZXREcmF3c0NvbnRlbnQodHJ1ZSk7CisgICAgfQorCisgICAg
Ym9vbCBtX2JsZW5kOworICAgIGJvb2wgbV9oYXNSZW5kZXJTdXJmYWNlOworICAgIGJvb2wgbV9k
cmF3bjsKK307CisKK1RFU1RfRihDQ0xheWVyVHJlZUhvc3RJbXBsVGVzdCwgYmxlbmRpbmdPZmZX
aGVuRHJhd2luZ09wYXF1ZUxheWVycykKK3sKKyAgICBHcmFwaGljc0NvbnRleHQzRDo6QXR0cmli
dXRlcyBhdHRyczsKKyAgICBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQgPSBHcmFw
aGljc0NvbnRleHQzRFByaXZhdGU6OmNyZWF0ZUdyYXBoaWNzQ29udGV4dEZyb21XZWJDb250ZXh0
KGFkb3B0UHRyKG5ldyBCbGVuZFN0YXRlVHJhY2tlckNvbnRleHQoKSksIGF0dHJzLCAwLCBHcmFw
aGljc0NvbnRleHQzRDo6UmVuZGVyRGlyZWN0bHlUb0hvc3RXaW5kb3csIEdyYXBoaWNzQ29udGV4
dDNEUHJpdmF0ZTo6Rm9yVXNlT25UaGlzVGhyZWFkKTsKKyAgICBtX2hvc3RJbXBsLT5pbml0aWFs
aXplTGF5ZXJSZW5kZXJlcihjb250ZXh0KTsKKyAgICBtX2hvc3RJbXBsLT5zZXRWaWV3cG9ydChJ
bnRTaXplKDEwLCAxMCkpOworCisgICAgUmVmUHRyPENDTGF5ZXJJbXBsPiByb290ID0gQ0NMYXll
ckltcGw6OmNyZWF0ZSgwKTsKKyAgICByb290LT5zZXRBbmNob3JQb2ludChGbG9hdFBvaW50KDAs
IDApKTsKKyAgICByb290LT5zZXRCb3VuZHMoSW50U2l6ZSgxMCwgMTApKTsKKyAgICByb290LT5z
ZXREcmF3c0NvbnRlbnQoZmFsc2UpOworICAgIG1faG9zdEltcGwtPnNldFJvb3RMYXllcihyb290
KTsKKworICAgIFJlZlB0cjxCbGVuZFN0YXRlQ2hlY2tMYXllcj4gbGF5ZXIxID0gQmxlbmRTdGF0
ZUNoZWNrTGF5ZXI6OmNyZWF0ZSgxKTsKKyAgICByb290LT5hZGRDaGlsZChsYXllcjEpOworCisg
ICAgLy8gT3BhcXVlIGxheWVyLCBkcmF3biB3aXRob3V0IGJsZW5kaW5nLgorICAgIGxheWVyMS0+
c2V0T3BhcXVlKHRydWUpOworICAgIGxheWVyMS0+c2V0RXhwZWN0YXRpb24oZmFsc2UsIGZhbHNl
KTsKKyAgICBtX2hvc3RJbXBsLT5kcmF3TGF5ZXJzKCk7CisgICAgRVhQRUNUX1RSVUUobGF5ZXIx
LT5kcmF3bigpKTsKKworICAgIC8vIExheWVyIHdpdGggdHJhbnNsdWNlbnQgY29udGVudCwgZHJh
d24gd2l0aCBibGVuZGluZy4KKyAgICBsYXllcjEtPnNldE9wYXF1ZShmYWxzZSk7CisgICAgbGF5
ZXIxLT5zZXRFeHBlY3RhdGlvbih0cnVlLCBmYWxzZSk7CisgICAgbV9ob3N0SW1wbC0+ZHJhd0xh
eWVycygpOworICAgIEVYUEVDVF9UUlVFKGxheWVyMS0+ZHJhd24oKSk7CisKKyAgICAvLyBMYXll
ciB3aXRoIHRyYW5zbHVjZW50IG9wYWNpdHksIGRyYXduIHdpdGggYmxlbmRpbmcuCisgICAgbGF5
ZXIxLT5zZXRPcGFxdWUodHJ1ZSk7CisgICAgbGF5ZXIxLT5zZXRPcGFjaXR5KDAuNSk7CisgICAg
bGF5ZXIxLT5zZXRFeHBlY3RhdGlvbih0cnVlLCBmYWxzZSk7CisgICAgbV9ob3N0SW1wbC0+ZHJh
d0xheWVycygpOworICAgIEVYUEVDVF9UUlVFKGxheWVyMS0+ZHJhd24oKSk7CisKKyAgICBSZWZQ
dHI8QmxlbmRTdGF0ZUNoZWNrTGF5ZXI+IGxheWVyMiA9IEJsZW5kU3RhdGVDaGVja0xheWVyOjpj
cmVhdGUoMik7CisgICAgbGF5ZXIxLT5hZGRDaGlsZChsYXllcjIpOworCisgICAgLy8gMiBvcGFx
dWUgbGF5ZXJzLCBkcmF3biB3aXRob3V0IGJsZW5kaW5nLgorICAgIGxheWVyMS0+c2V0T3BhcXVl
KHRydWUpOworICAgIGxheWVyMS0+c2V0T3BhY2l0eSgxKTsKKyAgICBsYXllcjEtPnNldEV4cGVj
dGF0aW9uKGZhbHNlLCBmYWxzZSk7CisgICAgbGF5ZXIyLT5zZXRPcGFxdWUodHJ1ZSk7CisgICAg
bGF5ZXIyLT5zZXRPcGFjaXR5KDEpOworICAgIGxheWVyMi0+c2V0RXhwZWN0YXRpb24oZmFsc2Us
IGZhbHNlKTsKKyAgICBtX2hvc3RJbXBsLT5kcmF3TGF5ZXJzKCk7CisgICAgRVhQRUNUX1RSVUUo
bGF5ZXIxLT5kcmF3bigpKTsKKyAgICBFWFBFQ1RfVFJVRShsYXllcjItPmRyYXduKCkpOworCisg
ICAgLy8gUGFyZW50IGxheWVyIHdpdGggdHJhbnNsdWNlbnQgY29udGVudCwgZHJhd24gd2l0aCBi
bGVuZGluZy4KKyAgICAvLyBDaGlsZCBsYXllciB3aXRoIG9wYXF1ZSBjb250ZW50LCBkcmF3biB3
aXRob3V0IGJsZW5kaW5nLgorICAgIGxheWVyMS0+c2V0T3BhcXVlKGZhbHNlKTsKKyAgICBsYXll
cjEtPnNldEV4cGVjdGF0aW9uKHRydWUsIGZhbHNlKTsKKyAgICBsYXllcjItPnNldEV4cGVjdGF0
aW9uKGZhbHNlLCBmYWxzZSk7CisgICAgbV9ob3N0SW1wbC0+ZHJhd0xheWVycygpOworICAgIEVY
UEVDVF9UUlVFKGxheWVyMS0+ZHJhd24oKSk7CisgICAgRVhQRUNUX1RSVUUobGF5ZXIyLT5kcmF3
bigpKTsKKworICAgIC8vIFBhcmVudCBsYXllciB3aXRoIHRyYW5zbHVjZW50IG9wYWNpdHkgYW5k
IG9wYXF1ZSBjb250ZW50LiBTaW5jZSBpdCBoYXMgYQorICAgIC8vIGRyYXdpbmcgY2hpbGQsIGl0
J3MgZHJhd24gdG8gYSByZW5kZXIgc3VyZmFjZSB3aGljaCBjYXJyaWVzIHRoZSBvcGFjaXR5LAor
ICAgIC8vIHNvIGl0J3MgaXRzZWxmIGRyYXduIHdpdGhvdXQgYmxlbmRpbmcuCisgICAgLy8gQ2hp
bGQgbGF5ZXIgd2l0aCBvcGFxdWUgY29udGVudCwgZHJhd24gd2l0aG91dCBibGVuZGluZyAocGFy
ZW50IHN1cmZhY2UKKyAgICAvLyBjYXJyaWVzIHRoZSBpbmhlcml0ZWQgb3BhY2l0eSkuCisgICAg
bGF5ZXIxLT5zZXRPcGFxdWUodHJ1ZSk7CisgICAgbGF5ZXIxLT5zZXRPcGFjaXR5KDAuNSk7Cisg
ICAgbGF5ZXIxLT5zZXRFeHBlY3RhdGlvbihmYWxzZSwgdHJ1ZSk7CisgICAgbGF5ZXIyLT5zZXRF
eHBlY3RhdGlvbihmYWxzZSwgZmFsc2UpOworICAgIG1faG9zdEltcGwtPmRyYXdMYXllcnMoKTsK
KyAgICBFWFBFQ1RfVFJVRShsYXllcjEtPmRyYXduKCkpOworICAgIEVYUEVDVF9UUlVFKGxheWVy
Mi0+ZHJhd24oKSk7Cit9CisKKwogfSAvLyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvTW9ja1dlYkdyYXBoaWNzQ29udGV4dDNELmggYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL01vY2tXZWJHcmFwaGljc0NvbnRleHQzRC5oCmluZGV4IGQy
NTUxMTYzZGIyNTQ4MmIxZmExYzZjMTA1OWJhNmZiN2JkY2YwZDMuLjg3MjY1YmNiNzE0ODdkYmNh
NzQ0Y2YxYzNlYWUxNzI5YmVjNWNhZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvTW9ja1dlYkdyYXBoaWNzQ29udGV4dDNELmgKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9Nb2NrV2ViR3JhcGhpY3NDb250ZXh0M0QuaApAQCAtMjYsNiArMjYsNyBA
QAogI2lmbmRlZiBNb2NrV2ViR3JhcGhpY3NDb250ZXh0M0RfaAogI2RlZmluZSBNb2NrV2ViR3Jh
cGhpY3NDb250ZXh0M0RfaAogCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKICNpbmNs
dWRlICJXZWJHcmFwaGljc0NvbnRleHQzRC5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTg0
LDcgKzg1LDExIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgYnVmZmVyRGF0YShXR0MzRGVu
dW0gdGFyZ2V0LCBXR0MzRHNpemVpcHRyIHNpemUsIGNvbnN0IHZvaWQqIGRhdGEsIFdHQzNEZW51
bSB1c2FnZSkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGJ1ZmZlclN1YkRhdGEoV0dDM0RlbnVtIHRh
cmdldCwgV0dDM0RpbnRwdHIgb2Zmc2V0LCBXR0MzRHNpemVpcHRyIHNpemUsIGNvbnN0IHZvaWQq
IGRhdGEpIHsgfQogCi0gICAgdmlydHVhbCBXR0MzRGVudW0gY2hlY2tGcmFtZWJ1ZmZlclN0YXR1
cyhXR0MzRGVudW0gdGFyZ2V0KSB7IHJldHVybiAwOyB9CisgICAgdmlydHVhbCBXR0MzRGVudW0g
Y2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhXR0MzRGVudW0gdGFyZ2V0KQorICAgIHsKKyAgICAgICAg
cmV0dXJuIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUl9DT01QTEVURTsK
KyAgICB9CisKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXIoV0dDM0RiaXRmaWVsZCBtYXNrKSB7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJDb2xvcihXR0MzRGNsYW1wZiByZWQsIFdHQzNEY2xhbXBm
IGdyZWVuLCBXR0MzRGNsYW1wZiBibHVlLCBXR0MzRGNsYW1wZiBhbHBoYSkgeyB9CiAgICAgdmly
dHVhbCB2b2lkIGNsZWFyRGVwdGgoV0dDM0RjbGFtcGYgZGVwdGgpIHsgfQpAQCAtMTIzLDExICsx
MjgsMjggQEAgcHVibGljOgogICAgIHZpcnR1YWwgV0dDM0RlbnVtIGdldEVycm9yKCkgeyByZXR1
cm4gMDsgfQogICAgIHZpcnR1YWwgdm9pZCBnZXRGbG9hdHYoV0dDM0RlbnVtIHBuYW1lLCBXR0Mz
RGZsb2F0KiB2YWx1ZSkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGdldEZyYW1lYnVmZmVyQXR0YWNo
bWVudFBhcmFtZXRlcml2KFdHQzNEZW51bSB0YXJnZXQsIFdHQzNEZW51bSBhdHRhY2htZW50LCBX
R0MzRGVudW0gcG5hbWUsIFdHQzNEaW50KiB2YWx1ZSkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGdl
dEludGVnZXJ2KFdHQzNEZW51bSBwbmFtZSwgV0dDM0RpbnQqIHZhbHVlKSB7IH0KLSAgICB2aXJ0
dWFsIHZvaWQgZ2V0UHJvZ3JhbWl2KFdlYkdMSWQgcHJvZ3JhbSwgV0dDM0RlbnVtIHBuYW1lLCBX
R0MzRGludCogdmFsdWUpIHsgfQorCisgICAgdmlydHVhbCB2b2lkIGdldEludGVnZXJ2KFdHQzNE
ZW51bSBwbmFtZSwgV0dDM0RpbnQqIHZhbHVlKQorICAgIHsKKyAgICAgICAgaWYgKHBuYW1lID09
IFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpNQVhfVEVYVFVSRV9TSVpFKQorICAgICAgICAg
ICAgKnZhbHVlID0gMTAyNDsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0UHJvZ3JhbWl2
KFdlYkdMSWQgcHJvZ3JhbSwgV0dDM0RlbnVtIHBuYW1lLCBXR0MzRGludCogdmFsdWUpCisgICAg
eworICAgICAgICBpZiAocG5hbWUgPT0gV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OkxJTktf
U1RBVFVTKQorICAgICAgICAgICAgKnZhbHVlID0gMTsKKyAgICB9CisKICAgICB2aXJ0dWFsIFdl
YlN0cmluZyBnZXRQcm9ncmFtSW5mb0xvZyhXZWJHTElkIHByb2dyYW0pIHsgcmV0dXJuIFdlYlN0
cmluZygpOyB9CiAgICAgdmlydHVhbCB2b2lkIGdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcml2KFdH
QzNEZW51bSB0YXJnZXQsIFdHQzNEZW51bSBwbmFtZSwgV0dDM0RpbnQqIHZhbHVlKSB7IH0KLSAg
ICB2aXJ0dWFsIHZvaWQgZ2V0U2hhZGVyaXYoV2ViR0xJZCBzaGFkZXIsIFdHQzNEZW51bSBwbmFt
ZSwgV0dDM0RpbnQqIHZhbHVlKSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCBnZXRTaGFkZXJpdihX
ZWJHTElkIHNoYWRlciwgV0dDM0RlbnVtIHBuYW1lLCBXR0MzRGludCogdmFsdWUpCisgICAgewor
ICAgICAgICBpZiAocG5hbWUgPT0gV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OkNPTVBJTEVf
U1RBVFVTKQorICAgICAgICAgICAgKnZhbHVlID0gMTsKKyAgICB9CisKICAgICB2aXJ0dWFsIFdl
YlN0cmluZyBnZXRTaGFkZXJJbmZvTG9nKFdlYkdMSWQgc2hhZGVyKSB7IHJldHVybiBXZWJTdHJp
bmcoKTsgfQogCiAgICAgdmlydHVhbCBXZWJTdHJpbmcgZ2V0U2hhZGVyU291cmNlKFdlYkdMSWQg
c2hhZGVyKSB7IHJldHVybiBXZWJTdHJpbmcoKTsgfQpAQCAtMjEyLDEyICsyMzQsMTIgQEAgcHVi
bGljOgogCiAgICAgdmlydHVhbCB2b2lkIHZpZXdwb3J0KFdHQzNEaW50IHgsIFdHQzNEaW50IHks
IFdHQzNEc2l6ZWkgd2lkdGgsIFdHQzNEc2l6ZWkgaGVpZ2h0KSB7IH0KIAotICAgIHZpcnR1YWwg
V2ViR0xJZCBjcmVhdGVCdWZmZXIoKSB7IHJldHVybiAwOyB9Ci0gICAgdmlydHVhbCBXZWJHTElk
IGNyZWF0ZUZyYW1lYnVmZmVyKCkgeyByZXR1cm4gMDsgfQotICAgIHZpcnR1YWwgV2ViR0xJZCBj
cmVhdGVQcm9ncmFtKCkgeyByZXR1cm4gMDsgfQotICAgIHZpcnR1YWwgV2ViR0xJZCBjcmVhdGVS
ZW5kZXJidWZmZXIoKSB7IHJldHVybiAwOyB9Ci0gICAgdmlydHVhbCBXZWJHTElkIGNyZWF0ZVNo
YWRlcihXR0MzRGVudW0pIHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIFdlYkdMSWQgY3JlYXRl
VGV4dHVyZSgpIHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIFdlYkdMSWQgY3JlYXRlQnVmZmVy
KCkgeyByZXR1cm4gMTsgfQorICAgIHZpcnR1YWwgV2ViR0xJZCBjcmVhdGVGcmFtZWJ1ZmZlcigp
IHsgcmV0dXJuIDE7IH0KKyAgICB2aXJ0dWFsIFdlYkdMSWQgY3JlYXRlUHJvZ3JhbSgpIHsgcmV0
dXJuIDE7IH0KKyAgICB2aXJ0dWFsIFdlYkdMSWQgY3JlYXRlUmVuZGVyYnVmZmVyKCkgeyByZXR1
cm4gMTsgfQorICAgIHZpcnR1YWwgV2ViR0xJZCBjcmVhdGVTaGFkZXIoV0dDM0RlbnVtKSB7IHJl
dHVybiAxOyB9CisgICAgdmlydHVhbCBXZWJHTElkIGNyZWF0ZVRleHR1cmUoKSB7IHJldHVybiAx
OyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlQnVmZmVyKFdlYkdMSWQpIHsgfQogICAgIHZp
cnR1YWwgdm9pZCBkZWxldGVGcmFtZWJ1ZmZlcihXZWJHTElkKSB7IH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>