<?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>78936</bug_id>
          
          <creation_ts>2012-02-17 14:15:56 -0800</creation_ts>
          <short_desc>[chromium] Refactor CCLayerTreeHostCommon: merge scattered setTargetRenderSurface logic</short_desc>
          <delta_ts>2012-02-21 17:49:28 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Shawn Singh">shawnsingh</reporter>
          <assigned_to name="Shawn Singh">shawnsingh</assigned_to>
          <cc>enne</cc>
    
    <cc>jamesr</cc>
    
    <cc>vangelis</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>559535</commentid>
    <comment_count>0</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-02-17 14:15:56 -0800</bug_when>
    <thetext>There are two separate if-else satements where setTargetRenderSurface logic is used.  This is unnecessarily nuanced and error-prone logic.

The desired semantics are actually straightforward:
  - if the layer has a renderSurface (including the rootLayer), then the layer&apos;s targetRenderSurface should be its own renderSurface.
  - if the layer doesn&apos;t have a renderSurface, then the layer&apos;s targetRenderSurface should be the nearest ancestor surface (which is also the parent&apos;s targetRenderSurface).

This patch (coming in a moment) merges this scattered logic.

Two details to note:
(1) It was also convenient to merge two other if-statements in this patch:   if (layer-&gt;parent()) and if (layer != rootLayer) are equivalent. 
(2) There is still a bit of unnecessary cruft because of the rootLayer special case, but cleaning that up will be in a future patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559538</commentid>
    <comment_count>1</comment_count>
      <attachid>127658</attachid>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-02-17 14:19:26 -0800</bug_when>
    <thetext>Created attachment 127658
Patch

tested on linux layout tests and unit tests, no apparent reggressions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560522</commentid>
    <comment_count>2</comment_count>
      <attachid>127658</attachid>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2012-02-20 18:28:47 -0800</bug_when>
    <thetext>Comment on attachment 127658
Patch

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

Just one comment, otherwise looks good.

&gt; Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:336
&gt; +            layer-&gt;setTargetRenderSurface(layer-&gt;renderSurface());

Maybe move this to CCLayerTreeHostImpl::calculateRenderPasses() where we create the RS for the root layer since that&apos;s a special case and the RS only gets created once.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560658</commentid>
    <comment_count>3</comment_count>
      <attachid>127917</attachid>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-02-20 22:13:23 -0800</bug_when>
    <thetext>Created attachment 127917
Patch

This patch pulls out the setTargetRenderSurface for the rootLayer special case.  However, it caused an explosion of places (in unit tests) where we have to call setTargetRenderSurface.  Because I will attempt to address the rootLayer special case in the next refactoring patch, I would prefer to stick with the previous patch on this bug.  Vangelis, whatever you and other reviewers decide is OK with me.  I tested this patch on linux, no apparent regressions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560985</commentid>
    <comment_count>4</comment_count>
      <attachid>127917</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-02-21 10:08:14 -0800</bug_when>
    <thetext>Comment on attachment 127917
Patch

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

&gt; Source/WebKit/chromium/tests/CCDamageTrackerTest.cpp:89
&gt;      root-&gt;createRenderSurface();
&gt; +    root-&gt;setTargetRenderSurface(root-&gt;renderSurface());

is there ever a case where we want to call LayerType::createRenderSurface() but not set the layer&apos;s target to the newly created surface?  Can we just do it in the create() call?  It would seem to save a lot of LOC in this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561004</commentid>
    <comment_count>5</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-02-21 10:32:57 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 127917 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=127917&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/chromium/tests/CCDamageTrackerTest.cpp:89
&gt; &gt;      root-&gt;createRenderSurface();
&gt; &gt; +    root-&gt;setTargetRenderSurface(root-&gt;renderSurface());
&gt; 
&gt; is there ever a case where we want to call LayerType::createRenderSurface() but not set the layer&apos;s target to the newly created surface?  Can we just do it in the create() call?  It would seem to save a lot of LOC in this patch.

I believe this should work (will test it).

But, I feel we should rename createRenderSurface() to reflect that, so it doesn&apos;t seem like a side-effect.  How about setupNewRenderSurface()?  or createAndSetupRenderSurface() ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561289</commentid>
    <comment_count>6</comment_count>
      <attachid>128059</attachid>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-02-21 15:33:52 -0800</bug_when>
    <thetext>Created attachment 128059
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561298</commentid>
    <comment_count>7</comment_count>
      <attachid>128059</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-02-21 15:43:26 -0800</bug_when>
    <thetext>Comment on attachment 128059
Patch

LGTM! Slowly but surely this function is getting cleaned up.  :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561317</commentid>
    <comment_count>8</comment_count>
      <attachid>128059</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-02-21 16:03:32 -0800</bug_when>
    <thetext>Comment on attachment 128059
Patch

Ooh, that&apos;s nice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561379</commentid>
    <comment_count>9</comment_count>
      <attachid>128059</attachid>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-02-21 16:47:11 -0800</bug_when>
    <thetext>Comment on attachment 128059
Patch

Cool, thanks for the reviews</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561425</commentid>
    <comment_count>10</comment_count>
      <attachid>128059</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-21 17:49:23 -0800</bug_when>
    <thetext>Comment on attachment 128059
Patch

Clearing flags on attachment: 128059

Committed r108426: &lt;http://trac.webkit.org/changeset/108426&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561426</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-21 17:49:28 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127658</attachid>
            <date>2012-02-17 14:19:26 -0800</date>
            <delta_ts>2012-02-20 22:13:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78936-20120217141925.patch</filename>
            <type>text/plain</type>
            <size>3792</size>
            <attacher name="Shawn Singh">shawnsingh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3OTU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzhiNWE1MWEwZjI5NzI4
NzRlMmExZmMyZjFhOGFkZDYzODM5YzA2Mi4uYWEyZmQ4Mzg3MjRmYWFiNmRmMWY1MzFlZThhY2Vi
NTY2YTVkZmMzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTAyLTE3ICBTaGF3
biBTaW5naCAgPHNoYXduc2luZ2hAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0g
UmVmYWN0b3IgQ0NMYXllclRyZWVIb3N0Q29tbW9uOiBtZXJnZSBzY2F0dGVyZWQgc2V0VGFyZ2V0
UmVuZGVyU3VyZmFjZSBsb2dpYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9Nzg5MzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBObyBjaGFuZ2UgaW4gYmVoYXZpb3IsIHRoZSBjb2RlIG1vdmVkIGFyb3VuZCBh
bHJlYWR5IGNvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgSW4gY2FsY3VsYXRl
RHJhd1RyYW5zZm9ybXNBbmRWaXNpYmlsaXR5KCksIHRoZXJlIGFyZSB0d28gc2VwYXJhdGUKKyAg
ICAgICAgaWYtZWxzZSBzdGF0ZW1lbnRzIHdoZXJlIHNldFRhcmdldFJlbmRlclN1cmZhY2UgbG9n
aWMgaXMKKyAgICAgICAgcGVyZm9ybWVkLCBhbmQgdGhpcyBtYWtlcyB0aGUgY29kZSBsZXNzIHJl
YWRhYmxlIGFuZCBtb3JlIGVycm9yCisgICAgICAgIHByb25lLiBUaGlzIHBhdGNoIG1lcmdlcyB0
aGUgbG9naWMsIHJlbW92aW5nIHRoZSByZWR1bmRhbnQgaWYtZWxzZQorICAgICAgICBzdGF0ZW1l
bnRzLgorCisgICAgICAgIFRoaXMgY29kZSBhbHNvIG1lcmdlcyBvbmUgb3RoZXIgc2V0IG9mIGlm
LXN0YXRlbWVudHMgdGhhdCBhcmUKKyAgICAgICAgZXF1aXZhbGVudCwgaWYgKGxheWVyLT5wYXJl
bnQoKSkgYW5kIGlmIChsYXllciE9cm9vdExheWVyKS4KKworICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdENvbW1vbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpjYWxjdWxhdGVEcmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxpdHlJbnRlcm5hbCk6CisK
IDIwMTItMDItMTYgIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJv
bGwgb3V0IHIxMDc4ODcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdENvbW1vbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RDb21tb24uY3Bw
CmluZGV4IDRkYmNhOTJjMjU1NmQyNjljZDlmMDMxZTZlNjE1YTNkY2YzMDI1MjIuLjZiMDVkN2Qy
YTZmYmUzYzM4M2I3MDMxYzllODI5ZjRjNjk0NDA4ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdENvbW1vbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NM
YXllclRyZWVIb3N0Q29tbW9uLmNwcApAQCAtMzAyLDYgKzMwMiw4IEBAIHN0YXRpYyBib29sIGNh
bGN1bGF0ZURyYXdUcmFuc2Zvcm1zQW5kVmlzaWJpbGl0eUludGVybmFsKExheWVyVHlwZSogbGF5
ZXIsIExheWVyCiAgICAgICAgIC8vIHN1cmZhY2UgYW5kIGlzIHRoZXJlZm9yZSBleHByZXNzZWQg
aW4gdGhlIHBhcmVudCdzIGNvb3JkaW5hdGUgc3lzdGVtLgogICAgICAgICByZW5kZXJTdXJmYWNl
LT5zZXRDbGlwUmVjdChsYXllci0+cGFyZW50KCkgPyBsYXllci0+cGFyZW50KCktPmNsaXBSZWN0
KCkgOiBsYXllci0+Y2xpcFJlY3QoKSk7CiAKKyAgICAgICAgbGF5ZXItPnNldFRhcmdldFJlbmRl
clN1cmZhY2UobGF5ZXItPnJlbmRlclN1cmZhY2UoKSk7CisKICAgICAgICAgaWYgKGxheWVyLT5t
YXNrTGF5ZXIoKSkgewogICAgICAgICAgICAgcmVuZGVyU3VyZmFjZS0+c2V0TWFza0xheWVyKGxh
eWVyLT5tYXNrTGF5ZXIoKSk7CiAgICAgICAgICAgICBsYXllci0+bWFza0xheWVyKCktPnNldFRh
cmdldFJlbmRlclN1cmZhY2UocmVuZGVyU3VyZmFjZSk7CkBAIC0zMjAsMTggKzMyMiwyMCBAQCBz
dGF0aWMgYm9vbCBjYWxjdWxhdGVEcmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxpdHlJbnRlcm5hbChM
YXllclR5cGUqIGxheWVyLCBMYXllcgogCiAgICAgICAgIGxheWVyLT5zZXREcmF3T3BhY2l0eShk
cmF3T3BhY2l0eSk7CiAKLSAgICAgICAgaWYgKGxheWVyLT5wYXJlbnQoKSkgeworICAgICAgICBp
ZiAobGF5ZXIgIT0gcm9vdExheWVyKSB7CisgICAgICAgICAgICBBU1NFUlQobGF5ZXItPnBhcmVu
dCgpKTsKKyAgICAgICAgICAgIGxheWVyLT5jbGVhclJlbmRlclN1cmZhY2UoKTsKKwogICAgICAg
ICAgICAgLy8gTGF5ZXJzIGluaGVyaXQgdGhlIGNsaXAgcmVjdCBmcm9tIHRoZWlyIHBhcmVudC4K
ICAgICAgICAgICAgIGxheWVyLT5zZXRDbGlwUmVjdChsYXllci0+cGFyZW50KCktPmNsaXBSZWN0
KCkpOwogICAgICAgICAgICAgaWYgKGxheWVyLT5wYXJlbnQoKS0+dXNlc0xheWVyQ2xpcHBpbmco
KSkKICAgICAgICAgICAgICAgICBsYXllci0+c2V0VXNlc0xheWVyQ2xpcHBpbmcodHJ1ZSk7CiAK
ICAgICAgICAgICAgIGxheWVyLT5zZXRUYXJnZXRSZW5kZXJTdXJmYWNlKGxheWVyLT5wYXJlbnQo
KS0+dGFyZ2V0UmVuZGVyU3VyZmFjZSgpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
IGxheWVyLT5zZXRUYXJnZXRSZW5kZXJTdXJmYWNlKGxheWVyLT5yZW5kZXJTdXJmYWNlKCkpOwog
ICAgICAgICB9CiAKLSAgICAgICAgaWYgKGxheWVyICE9IHJvb3RMYXllcikKLSAgICAgICAgICAg
IGxheWVyLT5jbGVhclJlbmRlclN1cmZhY2UoKTsKLQogICAgICAgICBpZiAobGF5ZXItPm1hc2tz
VG9Cb3VuZHMoKSkgewogICAgICAgICAgICAgSW50UmVjdCBjbGlwUmVjdCA9IHRyYW5zZm9ybWVk
TGF5ZXJSZWN0OwogICAgICAgICAgICAgY2xpcFJlY3QuaW50ZXJzZWN0KGxheWVyLT5jbGlwUmVj
dCgpKTsKQEAgLTM0NywxMyArMzUxLDYgQEAgc3RhdGljIGJvb2wgY2FsY3VsYXRlRHJhd1RyYW5z
Zm9ybXNBbmRWaXNpYmlsaXR5SW50ZXJuYWwoTGF5ZXJUeXBlKiBsYXllciwgTGF5ZXIKICAgICBs
YXllclNjcmVlblNwYWNlVHJhbnNmb3JtLnRyYW5zbGF0ZTNkKC0wLjUgKiBib3VuZHMud2lkdGgo
KSwgLTAuNSAqIGJvdW5kcy5oZWlnaHQoKSwgMCk7CiAgICAgbGF5ZXItPnNldFNjcmVlblNwYWNl
VHJhbnNmb3JtKGxheWVyU2NyZWVuU3BhY2VUcmFuc2Zvcm0pOwogCi0gICAgaWYgKGxheWVyLT5y
ZW5kZXJTdXJmYWNlKCkpCi0gICAgICAgIGxheWVyLT5zZXRUYXJnZXRSZW5kZXJTdXJmYWNlKGxh
eWVyLT5yZW5kZXJTdXJmYWNlKCkpOwotICAgIGVsc2UgewotICAgICAgICBBU1NFUlQobGF5ZXIt
PnBhcmVudCgpKTsKLSAgICAgICAgbGF5ZXItPnNldFRhcmdldFJlbmRlclN1cmZhY2UobGF5ZXIt
PnBhcmVudCgpLT50YXJnZXRSZW5kZXJTdXJmYWNlKCkpOwotICAgIH0KLQogICAgIC8vIGRyYXdh
YmxlQ29udGVudFJlY3QoKSBpcyBhbHdheXMgc3RvcmVkIGluIHRoZSBjb29yZGluYXRlIHN5c3Rl
bSBvZiB0aGUKICAgICAvLyBSZW5kZXJTdXJmYWNlIHRoZSBsYXllciBkcmF3cyBpbnRvLgogICAg
IGlmIChsYXllci0+ZHJhd3NDb250ZW50KCkpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127917</attachid>
            <date>2012-02-20 22:13:23 -0800</date>
            <delta_ts>2012-02-21 15:33:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78936-20120220221322.patch</filename>
            <type>text/plain</type>
            <size>14768</size>
            <attacher name="Shawn Singh">shawnsingh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4MjgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGFmZjYwZWIxZDJlNjBl
NmZmZTAyMTU4MGM2OTYxMGJkYWYyMjEwNi4uN2QyMjQ4YTljMzRjMDBkNmQ0ZGU0Yjg0YTNmYjll
NWYwNmQ3MjA2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTAyLTIwICBTaGF3
biBTaW5naCAgPHNoYXduc2luZ2hAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0g
UmVmYWN0b3IgQ0NMYXllclRyZWVIb3N0Q29tbW9uOiBtZXJnZSBzY2F0dGVyZWQgc2V0VGFyZ2V0
UmVuZGVyU3VyZmFjZSBsb2dpYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9Nzg5MzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBObyBjaGFuZ2UgaW4gYmVoYXZpb3IsIHRoZSBjb2RlIG1vdmVkIGFyb3VuZCBh
bHJlYWR5IGNvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgSW4gY2FsY3VsYXRl
RHJhd1RyYW5zZm9ybXNBbmRWaXNpYmlsaXR5KCksIHRoZXJlIGFyZSB0d28gc2VwYXJhdGUKKyAg
ICAgICAgaWYtZWxzZSBzdGF0ZW1lbnRzIHdoZXJlIHNldFRhcmdldFJlbmRlclN1cmZhY2UgbG9n
aWMgaXMKKyAgICAgICAgcGVyZm9ybWVkLCBhbmQgdGhpcyBtYWtlcyB0aGUgY29kZSBsZXNzIHJl
YWRhYmxlIGFuZCBtb3JlIGVycm9yCisgICAgICAgIHByb25lLiBUaGlzIHBhdGNoIG1lcmdlcyB0
aGUgbG9naWMsIHJlbW92aW5nIHRoZSByZWR1bmRhbnQgaWYtZWxzZQorICAgICAgICBzdGF0ZW1l
bnRzLgorCisgICAgICAgIFRoaXMgY29kZSBhbHNvIG1lcmdlcyBvbmUgb3RoZXIgc2V0IG9mIGlm
LXN0YXRlbWVudHMgdGhhdCBhcmUKKyAgICAgICAgZXF1aXZhbGVudCwgaWYgKGxheWVyLT5wYXJl
bnQoKSkgYW5kIGlmIChsYXllciE9cm9vdExheWVyKS4KKyAgICAgICAgbWlnaHQgYmUgZ29vZCBm
aXggYWZ0ZXIgdGVzdGluZworCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NMYXllclRyZWVIb3N0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9z
dDo6dXBkYXRlTGF5ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ0xheWVyVHJlZUhvc3RDb21tb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y2FsY3VsYXRl
RHJhd1RyYW5zZm9ybXNBbmRWaXNpYmlsaXR5SW50ZXJuYWwpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0SW1wbDo6Y2FsY3VsYXRlUmVuZGVyUGFzc2VzKToKKwog
MjAxMi0wMi0yMCAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgW1VOSVhdIFBsdWdpbiBpbmZvcm1hdGlvbiBmaWVsZHMgYXJlIG5vdCBpbnRlcnByZXRl
ZCBhcyBVVEYtOApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAyYmUzNWMwZTgwZTY1MjZi
MGEyNTM2ODI0YTQ4NzliZTU3NWRhOTk1Li5hM2YwNzg3OTFlMWY3ZjU1NTViYTI1M2FlZGRmNDBm
YmE2MTAyOTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisy
MDEyLTAyLTIwICBTaGF3biBTaW5naCAgPHNoYXduc2luZ2hAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFtjaHJvbWl1bV0gUmVmYWN0b3IgQ0NMYXllclRyZWVIb3N0Q29tbW9uOiBtZXJnZSBzY2F0
dGVyZWQgc2V0VGFyZ2V0UmVuZGVyU3VyZmFjZSBsb2dpYworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg5MzYKKworICAgICAgICBVcGRhdGVkIHNldmVy
YWwgdW5pdCB0ZXN0cy4KKworICAgICAgICAqIHRlc3RzL0NDRGFtYWdlVHJhY2tlclRlc3QuY3Bw
OgorICAgICAgICAoV2ViS2l0VGVzdHM6OmNyZWF0ZVRlc3RUcmVlV2l0aE9uZVN1cmZhY2UpOgor
ICAgICAgICAoV2ViS2l0VGVzdHM6OmNyZWF0ZVRlc3RUcmVlV2l0aFR3b1N1cmZhY2VzKToKKyAg
ICAgICAgKiB0ZXN0cy9DQ0xheWVySXRlcmF0b3JUZXN0LmNwcDoKKyAgICAgICAgKiB0ZXN0cy9D
Q0xheWVyVHJlZUhvc3RDb21tb25UZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRFU1QpOgor
CiAyMDEyLTAyLTIwICBQZXRlciBCZXZlcmxvbyAgPHBldGVyQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBVbnJldmlld2VkLiAgUm9sbGVkIERFUFMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0
LmNwcAppbmRleCBlNDYyZTUzMThiZmM3ZjM3OTRkYTg2NWNlZmYzM2JhZWM1ZDJlNTAxLi45MTAz
MjQyZWJiNmIzMjIwYmVkNmIyNDhkNWVhMGEwNDlhYjY3YmZmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5
ZXJUcmVlSG9zdC5jcHAKQEAgLTM5NSw2ICszOTUsNyBAQCB2b2lkIENDTGF5ZXJUcmVlSG9zdDo6
dXBkYXRlTGF5ZXJzKExheWVyQ2hyb21pdW0qIHJvb3RMYXllcikKICAgICBpZiAoIXJvb3RMYXll
ci0+cmVuZGVyU3VyZmFjZSgpKQogICAgICAgICByb290TGF5ZXItPmNyZWF0ZVJlbmRlclN1cmZh
Y2UoKTsKICAgICByb290TGF5ZXItPnJlbmRlclN1cmZhY2UoKS0+c2V0Q29udGVudFJlY3QoSW50
UmVjdChJbnRQb2ludCgwLCAwKSwgdmlld3BvcnRTaXplKCkpKTsKKyAgICByb290TGF5ZXItPnNl
dFRhcmdldFJlbmRlclN1cmZhY2Uocm9vdExheWVyLT5yZW5kZXJTdXJmYWNlKCkpOwogCiAgICAg
SW50UmVjdCByb290Q2xpcFJlY3QoSW50UG9pbnQoKSwgdmlld3BvcnRTaXplKCkpOwogICAgIHJv
b3RMYXllci0+c2V0Q2xpcFJlY3Qocm9vdENsaXBSZWN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdENvbW1v
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xh
eWVyVHJlZUhvc3RDb21tb24uY3BwCmluZGV4IDliMjUwZDBhMjJiYWJhMzhmMmNiNmViZDkyN2Nk
MmY5NjE3MmE3NDguLjU3ZWYxYWYzMjA2NDY3NzI2NjRkMDNkYzcxMzVjZTBlNjcwNDNiYjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
TGF5ZXJUcmVlSG9zdENvbW1vbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0Q29tbW9uLmNwcApAQCAtMzAyLDYgKzMw
Miw4IEBAIHN0YXRpYyBib29sIGNhbGN1bGF0ZURyYXdUcmFuc2Zvcm1zQW5kVmlzaWJpbGl0eUlu
dGVybmFsKExheWVyVHlwZSogbGF5ZXIsIExheWVyCiAgICAgICAgIC8vIHN1cmZhY2UgYW5kIGlz
IHRoZXJlZm9yZSBleHByZXNzZWQgaW4gdGhlIHBhcmVudCdzIGNvb3JkaW5hdGUgc3lzdGVtLgog
ICAgICAgICByZW5kZXJTdXJmYWNlLT5zZXRDbGlwUmVjdChsYXllci0+cGFyZW50KCkgPyBsYXll
ci0+cGFyZW50KCktPmNsaXBSZWN0KCkgOiBsYXllci0+Y2xpcFJlY3QoKSk7CiAKKyAgICAgICAg
bGF5ZXItPnNldFRhcmdldFJlbmRlclN1cmZhY2UobGF5ZXItPnJlbmRlclN1cmZhY2UoKSk7CisK
ICAgICAgICAgaWYgKGxheWVyLT5tYXNrTGF5ZXIoKSkgewogICAgICAgICAgICAgcmVuZGVyU3Vy
ZmFjZS0+c2V0TWFza0xheWVyKGxheWVyLT5tYXNrTGF5ZXIoKSk7CiAgICAgICAgICAgICBsYXll
ci0+bWFza0xheWVyKCktPnNldFRhcmdldFJlbmRlclN1cmZhY2UocmVuZGVyU3VyZmFjZSk7CkBA
IC0zMjMsNyArMzI1LDEwIEBAIHN0YXRpYyBib29sIGNhbGN1bGF0ZURyYXdUcmFuc2Zvcm1zQW5k
VmlzaWJpbGl0eUludGVybmFsKExheWVyVHlwZSogbGF5ZXIsIExheWVyCiAKICAgICAgICAgbGF5
ZXItPnNldERyYXdPcGFjaXR5KGRyYXdPcGFjaXR5KTsKIAotICAgICAgICBpZiAobGF5ZXItPnBh
cmVudCgpKSB7CisgICAgICAgIGlmIChsYXllciAhPSByb290TGF5ZXIpIHsKKyAgICAgICAgICAg
IEFTU0VSVChsYXllci0+cGFyZW50KCkpOworICAgICAgICAgICAgbGF5ZXItPmNsZWFyUmVuZGVy
U3VyZmFjZSgpOworCiAgICAgICAgICAgICAvLyBMYXllcnMgaW5oZXJpdCB0aGUgY2xpcCByZWN0
IGZyb20gdGhlaXIgcGFyZW50LgogICAgICAgICAgICAgbGF5ZXItPnNldENsaXBSZWN0KGxheWVy
LT5wYXJlbnQoKS0+Y2xpcFJlY3QoKSk7CiAgICAgICAgICAgICBpZiAobGF5ZXItPnBhcmVudCgp
LT51c2VzTGF5ZXJDbGlwcGluZygpKQpAQCAtMzMyLDkgKzMzNyw2IEBAIHN0YXRpYyBib29sIGNh
bGN1bGF0ZURyYXdUcmFuc2Zvcm1zQW5kVmlzaWJpbGl0eUludGVybmFsKExheWVyVHlwZSogbGF5
ZXIsIExheWVyCiAgICAgICAgICAgICBsYXllci0+c2V0VGFyZ2V0UmVuZGVyU3VyZmFjZShsYXll
ci0+cGFyZW50KCktPnRhcmdldFJlbmRlclN1cmZhY2UoKSk7CiAgICAgICAgIH0KIAotICAgICAg
ICBpZiAobGF5ZXIgIT0gcm9vdExheWVyKQotICAgICAgICAgICAgbGF5ZXItPmNsZWFyUmVuZGVy
U3VyZmFjZSgpOwotCiAgICAgICAgIGlmIChsYXllci0+bWFza3NUb0JvdW5kcygpKSB7CiAgICAg
ICAgICAgICBJbnRSZWN0IGNsaXBSZWN0ID0gdHJhbnNmb3JtZWRMYXllclJlY3Q7CiAgICAgICAg
ICAgICBjbGlwUmVjdC5pbnRlcnNlY3QobGF5ZXItPmNsaXBSZWN0KCkpOwpAQCAtMzUwLDEzICsz
NTIsNiBAQCBzdGF0aWMgYm9vbCBjYWxjdWxhdGVEcmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxpdHlJ
bnRlcm5hbChMYXllclR5cGUqIGxheWVyLCBMYXllcgogICAgIGxheWVyU2NyZWVuU3BhY2VUcmFu
c2Zvcm0udHJhbnNsYXRlM2QoLTAuNSAqIGJvdW5kcy53aWR0aCgpLCAtMC41ICogYm91bmRzLmhl
aWdodCgpLCAwKTsKICAgICBsYXllci0+c2V0U2NyZWVuU3BhY2VUcmFuc2Zvcm0obGF5ZXJTY3Jl
ZW5TcGFjZVRyYW5zZm9ybSk7CiAKLSAgICBpZiAobGF5ZXItPnJlbmRlclN1cmZhY2UoKSkKLSAg
ICAgICAgbGF5ZXItPnNldFRhcmdldFJlbmRlclN1cmZhY2UobGF5ZXItPnJlbmRlclN1cmZhY2Uo
KSk7Ci0gICAgZWxzZSB7Ci0gICAgICAgIEFTU0VSVChsYXllci0+cGFyZW50KCkpOwotICAgICAg
ICBsYXllci0+c2V0VGFyZ2V0UmVuZGVyU3VyZmFjZShsYXllci0+cGFyZW50KCktPnRhcmdldFJl
bmRlclN1cmZhY2UoKSk7Ci0gICAgfQotCiAgICAgLy8gZHJhd2FibGVDb250ZW50UmVjdCgpIGlz
IGFsd2F5cyBzdG9yZWQgaW4gdGhlIGNvb3JkaW5hdGUgc3lzdGVtIG9mIHRoZQogICAgIC8vIFJl
bmRlclN1cmZhY2UgdGhlIGxheWVyIGRyYXdzIGludG8uCiAgICAgaWYgKGxheWVyLT5kcmF3c0Nv
bnRlbnQoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmNwcAppbmRleCAw
NTRiZWIzMmVlNTM1OWNiYzViYTU0ZjkxYjZhOTZjMTU0MGZmNWI1Li4zNzE4ODI4NDdlOTFjNzBl
YmEzNGE0Nzc3YjgyZDRjNjIxZDc0ZmZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhv
c3RJbXBsLmNwcApAQCAtMTk2LDYgKzE5Niw3IEBAIHZvaWQgQ0NMYXllclRyZWVIb3N0SW1wbDo6
Y2FsY3VsYXRlUmVuZGVyUGFzc2VzKENDUmVuZGVyUGFzc0xpc3QmIHBhc3NlcywgQ0NMYXllCiAg
ICAgICAgIHJvb3RMYXllcigpLT5jcmVhdGVSZW5kZXJTdXJmYWNlKCk7CiAgICAgcm9vdExheWVy
KCktPnJlbmRlclN1cmZhY2UoKS0+Y2xlYXJMYXllckxpc3QoKTsKICAgICByb290TGF5ZXIoKS0+
cmVuZGVyU3VyZmFjZSgpLT5zZXRDb250ZW50UmVjdChJbnRSZWN0KEludFBvaW50KCksIHZpZXdw
b3J0U2l6ZSgpKSk7CisgICAgcm9vdExheWVyKCktPnNldFRhcmdldFJlbmRlclN1cmZhY2Uocm9v
dExheWVyKCktPnJlbmRlclN1cmZhY2UoKSk7CiAKICAgICByb290TGF5ZXIoKS0+c2V0Q2xpcFJl
Y3QoSW50UmVjdChJbnRQb2ludCgpLCB2aWV3cG9ydFNpemUoKSkpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDRGFtYWdlVHJhY2tlclRlc3QuY3BwIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0RhbWFnZVRyYWNrZXJUZXN0LmNwcAppbmRleCBh
OWY3YjFjMWExZTg5ZjFkYmNmOWY1MDMzNGMwNWYzYTEzM2UwMzhhLi5hZDg2ZWNjMDhiMjg1ZTQ2
MTk2YjRlNjExMmQwNzc2M2NjMjY1NjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL0NDRGFtYWdlVHJhY2tlclRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvQ0NEYW1hZ2VUcmFja2VyVGVzdC5jcHAKQEAgLTg2LDYgKzg2LDcgQEAgUGFz
c1JlZlB0cjxDQ0xheWVySW1wbD4gY3JlYXRlVGVzdFRyZWVXaXRoT25lU3VyZmFjZSgpCiAgICAg
cm9vdC0+c2V0Qm91bmRzKEludFNpemUoNTAwLCA1MDApKTsKICAgICByb290LT5zZXREcmF3c0Nv
bnRlbnQodHJ1ZSk7CiAgICAgcm9vdC0+Y3JlYXRlUmVuZGVyU3VyZmFjZSgpOworICAgIHJvb3Qt
PnNldFRhcmdldFJlbmRlclN1cmZhY2Uocm9vdC0+cmVuZGVyU3VyZmFjZSgpKTsKICAgICByb290
LT5yZW5kZXJTdXJmYWNlKCktPnNldENvbnRlbnRSZWN0KEludFJlY3QoSW50UG9pbnQoKSwgSW50
U2l6ZSg1MDAsIDUwMCkpKTsKIAogICAgIGNoaWxkLT5zZXRQb3NpdGlvbihGbG9hdFBvaW50KDEw
MCwgMTAwKSk7CkBAIC0xMTQsNiArMTE1LDcgQEAgUGFzc1JlZlB0cjxDQ0xheWVySW1wbD4gY3Jl
YXRlVGVzdFRyZWVXaXRoVHdvU3VyZmFjZXMoKQogICAgIHJvb3QtPnNldEJvdW5kcyhJbnRTaXpl
KDUwMCwgNTAwKSk7CiAgICAgcm9vdC0+c2V0RHJhd3NDb250ZW50KHRydWUpOwogICAgIHJvb3Qt
PmNyZWF0ZVJlbmRlclN1cmZhY2UoKTsKKyAgICByb290LT5zZXRUYXJnZXRSZW5kZXJTdXJmYWNl
KHJvb3QtPnJlbmRlclN1cmZhY2UoKSk7CiAgICAgcm9vdC0+cmVuZGVyU3VyZmFjZSgpLT5zZXRD
b250ZW50UmVjdChJbnRSZWN0KEludFBvaW50KCksIEludFNpemUoNTAwLCA1MDApKSk7CiAKICAg
ICBjaGlsZDEtPnNldFBvc2l0aW9uKEZsb2F0UG9pbnQoMTAwLCAxMDApKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllckl0ZXJhdG9yVGVzdC5jcHAgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJJdGVyYXRvclRlc3QuY3BwCmluZGV4
IGJmZjdlMWJhOTcxMTQ1NjhjYWJlMzk2Y2ZhZTc3NDZmMDczNDA5OGUuLmVlZTQ5YTE4NTdjY2M2
MDJlNTY1MTQ4ZmYyZTcxMzlkMGRkNDBjYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvQ0NMYXllckl0ZXJhdG9yVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9DQ0xheWVySXRlcmF0b3JUZXN0LmNwcApAQCAtMTI5LDYgKzEyOSw3IEBA
IFRFU1QoQ0NMYXllckl0ZXJhdG9yVGVzdCwgc2ltcGxlVHJlZSkKICAgICBSZWZQdHI8VGVzdExh
eWVyQ2hyb21pdW0+IGZvdXJ0aCA9IFRlc3RMYXllckNocm9taXVtOjpjcmVhdGUoKTsKIAogICAg
IHJvb3RMYXllci0+Y3JlYXRlUmVuZGVyU3VyZmFjZSgpOworICAgIHJvb3RMYXllci0+c2V0VGFy
Z2V0UmVuZGVyU3VyZmFjZShyb290TGF5ZXItPnJlbmRlclN1cmZhY2UoKSk7CiAKICAgICByb290
TGF5ZXItPmFkZENoaWxkKGZpcnN0KTsKICAgICByb290TGF5ZXItPmFkZENoaWxkKHNlY29uZCk7
CkBAIC0xNzIsNiArMTczLDcgQEAgVEVTVChDQ0xheWVySXRlcmF0b3JUZXN0LCBjb21wbGV4VHJl
ZSkKICAgICBSZWZQdHI8VGVzdExheWVyQ2hyb21pdW0+IHJvb3QyMzEgPSBUZXN0TGF5ZXJDaHJv
bWl1bTo6Y3JlYXRlKCk7CiAKICAgICByb290TGF5ZXItPmNyZWF0ZVJlbmRlclN1cmZhY2UoKTsK
KyAgICByb290TGF5ZXItPnNldFRhcmdldFJlbmRlclN1cmZhY2Uocm9vdExheWVyLT5yZW5kZXJT
dXJmYWNlKCkpOwogCiAgICAgcm9vdExheWVyLT5hZGRDaGlsZChyb290MSk7CiAgICAgcm9vdExh
eWVyLT5hZGRDaGlsZChyb290Mik7CkBAIC0yMjcsNiArMjI5LDcgQEAgVEVTVChDQ0xheWVySXRl
cmF0b3JUZXN0LCBjb21wbGV4VHJlZU11bHRpU3VyZmFjZSkKICAgICBSZWZQdHI8VGVzdExheWVy
Q2hyb21pdW0+IHJvb3QyMzEgPSBUZXN0TGF5ZXJDaHJvbWl1bTo6Y3JlYXRlKCk7CiAKICAgICBy
b290TGF5ZXItPmNyZWF0ZVJlbmRlclN1cmZhY2UoKTsKKyAgICByb290TGF5ZXItPnNldFRhcmdl
dFJlbmRlclN1cmZhY2Uocm9vdExheWVyLT5yZW5kZXJTdXJmYWNlKCkpOwogCiAgICAgcm9vdExh
eWVyLT5hZGRDaGlsZChyb290MSk7CiAgICAgcm9vdExheWVyLT5hZGRDaGlsZChyb290Mik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdENv
bW1vblRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhv
c3RDb21tb25UZXN0LmNwcAppbmRleCBiMWZhNzI5MTg0MDFlMzI0MGU0MWQxM2QyZTBjMjdkMGM1
NmFkN2M1Li5lYjI2MjU5Mzc4ZjUxOWFiZDBkM2IyMTBmYjZhZTYzMzIxZjk0Njk3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdENvbW1vblRl
c3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0
Q29tbW9uVGVzdC5jcHAKQEAgLTk3LDYgKzk3LDcgQEAgVEVTVChDQ0xheWVyVHJlZUhvc3RDb21t
b25UZXN0LCB2ZXJpZnlUcmFuc2Zvcm1zRm9yTm9PcExheWVyKQogICAgIFJlZlB0cjxMYXllckNo
cm9taXVtPiBjaGlsZCA9IExheWVyQ2hyb21pdW06OmNyZWF0ZSgpOwogICAgIFJlZlB0cjxMYXll
ckNocm9taXVtPiBncmFuZENoaWxkID0gTGF5ZXJDaHJvbWl1bTo6Y3JlYXRlKCk7CiAgICAgcGFy
ZW50LT5jcmVhdGVSZW5kZXJTdXJmYWNlKCk7CisgICAgcGFyZW50LT5zZXRUYXJnZXRSZW5kZXJT
dXJmYWNlKHBhcmVudC0+cmVuZGVyU3VyZmFjZSgpKTsKICAgICBwYXJlbnQtPmFkZENoaWxkKGNo
aWxkKTsKICAgICBjaGlsZC0+YWRkQ2hpbGQoZ3JhbmRDaGlsZCk7CiAKQEAgLTEyNSw2ICsxMjYs
NyBAQCBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeVRyYW5zZm9ybXNGb3JT
aW5nbGVMYXllcikKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBpZGVudGl0eU1hdHJpeDsKICAg
ICBSZWZQdHI8TGF5ZXJDaHJvbWl1bT4gbGF5ZXIgPSBMYXllckNocm9taXVtOjpjcmVhdGUoKTsK
ICAgICBsYXllci0+Y3JlYXRlUmVuZGVyU3VyZmFjZSgpOworICAgIGxheWVyLT5zZXRUYXJnZXRS
ZW5kZXJTdXJmYWNlKGxheWVyLT5yZW5kZXJTdXJmYWNlKCkpOwogCiAgICAgLy8gQ2FzZSAxOiBz
ZXR0aW5nIHRoZSBzdWJsYXllciB0cmFuc2Zvcm0gc2hvdWxkIG5vdCBhZmZlY3QgdGhpcyBsYXll
cidzIGRyYXcgdHJhbnNmb3JtIG9yIHNjcmVlbi1zcGFjZSB0cmFuc2Zvcm0uCiAgICAgVHJhbnNm
b3JtYXRpb25NYXRyaXggYXJiaXRyYXJ5VHJhbnNsYXRpb247CkBAIC0xOTIsNiArMTk0LDcgQEAg
VEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlUcmFuc2Zvcm1zRm9yU2ltcGxl
SGllcmFyY2h5KQogICAgIFJlZlB0cjxMYXllckNocm9taXVtPiBjaGlsZCA9IExheWVyQ2hyb21p
dW06OmNyZWF0ZSgpOwogICAgIFJlZlB0cjxMYXllckNocm9taXVtPiBncmFuZENoaWxkID0gTGF5
ZXJDaHJvbWl1bTo6Y3JlYXRlKCk7CiAgICAgcGFyZW50LT5jcmVhdGVSZW5kZXJTdXJmYWNlKCk7
CisgICAgcGFyZW50LT5zZXRUYXJnZXRSZW5kZXJTdXJmYWNlKHBhcmVudC0+cmVuZGVyU3VyZmFj
ZSgpKTsKICAgICBwYXJlbnQtPmFkZENoaWxkKGNoaWxkKTsKICAgICBjaGlsZC0+YWRkQ2hpbGQo
Z3JhbmRDaGlsZCk7CiAKQEAgLTI3NCw2ICsyNzcsNyBAQCBURVNUKENDTGF5ZXJUcmVlSG9zdENv
bW1vblRlc3QsIHZlcmlmeVRyYW5zZm9ybXNGb3JTaW5nbGVSZW5kZXJTdXJmYWNlKQogICAgIFJl
ZlB0cjxMYXllckNocm9taXVtPiBjaGlsZCA9IExheWVyQ2hyb21pdW06OmNyZWF0ZSgpOwogICAg
IFJlZlB0cjxMYXllckNocm9taXVtV2l0aEZvcmNlZERyYXdzQ29udGVudD4gZ3JhbmRDaGlsZCA9
IGFkb3B0UmVmKG5ldyBMYXllckNocm9taXVtV2l0aEZvcmNlZERyYXdzQ29udGVudCgpKTsKICAg
ICBwYXJlbnQtPmNyZWF0ZVJlbmRlclN1cmZhY2UoKTsKKyAgICBwYXJlbnQtPnNldFRhcmdldFJl
bmRlclN1cmZhY2UocGFyZW50LT5yZW5kZXJTdXJmYWNlKCkpOwogICAgIHBhcmVudC0+YWRkQ2hp
bGQoY2hpbGQpOwogICAgIGNoaWxkLT5hZGRDaGlsZChncmFuZENoaWxkKTsKIApAQCAtMzM1LDYg
KzMzOSw3IEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5VHJhbnNmb3Jt
c0ZvclJlbmRlclN1cmZhY2VIaWVyYXJjaHkpCiAgICAgUmVmUHRyPExheWVyQ2hyb21pdW1XaXRo
Rm9yY2VkRHJhd3NDb250ZW50PiBncmFuZENoaWxkT2ZSUzEgPSBhZG9wdFJlZihuZXcgTGF5ZXJD
aHJvbWl1bVdpdGhGb3JjZWREcmF3c0NvbnRlbnQoKSk7CiAgICAgUmVmUHRyPExheWVyQ2hyb21p
dW1XaXRoRm9yY2VkRHJhd3NDb250ZW50PiBncmFuZENoaWxkT2ZSUzIgPSBhZG9wdFJlZihuZXcg
TGF5ZXJDaHJvbWl1bVdpdGhGb3JjZWREcmF3c0NvbnRlbnQoKSk7CiAgICAgcGFyZW50LT5jcmVh
dGVSZW5kZXJTdXJmYWNlKCk7CisgICAgcGFyZW50LT5zZXRUYXJnZXRSZW5kZXJTdXJmYWNlKHBh
cmVudC0+cmVuZGVyU3VyZmFjZSgpKTsKICAgICBwYXJlbnQtPmFkZENoaWxkKHJlbmRlclN1cmZh
Y2UxKTsKICAgICBwYXJlbnQtPmFkZENoaWxkKGNoaWxkT2ZSb290KTsKICAgICByZW5kZXJTdXJm
YWNlMS0+YWRkQ2hpbGQoY2hpbGRPZlJTMSk7CkBAIC00NzEsNiArNDc2LDcgQEAgVEVTVChDQ0xh
eWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlSZW5kZXJTdXJmYWNlTGlzdEZvckNsaXBMYXll
cikKICAgICBzZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5nKGNoaWxkLmdldCgpLCBpZGVudGl0
eU1hdHJpeCwgaWRlbnRpdHlNYXRyaXgsIEZsb2F0UG9pbnQ6Onplcm8oKSwgRmxvYXRQb2ludCgz
MCwgMzApLCBJbnRTaXplKDEwLCAxMCksIGZhbHNlKTsKIAogICAgIHBhcmVudC0+Y3JlYXRlUmVu
ZGVyU3VyZmFjZSgpOworICAgIHBhcmVudC0+c2V0VGFyZ2V0UmVuZGVyU3VyZmFjZShwYXJlbnQt
PnJlbmRlclN1cmZhY2UoKSk7CiAgICAgcGFyZW50LT5zZXRDbGlwUmVjdChJbnRSZWN0KDAsIDAs
IDEwLCAxMCkpOwogICAgIHBhcmVudC0+YWRkQ2hpbGQocmVuZGVyU3VyZmFjZTEpOwogICAgIHJl
bmRlclN1cmZhY2UxLT5jcmVhdGVSZW5kZXJTdXJmYWNlKCk7CkBAIC01MDAsNiArNTA2LDcgQEAg
VEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlSZW5kZXJTdXJmYWNlTGlzdEZv
clRyYW5zcGFyZW50Q2hpbGQpCiAgICAgc2V0TGF5ZXJQcm9wZXJ0aWVzRm9yVGVzdGluZyhjaGls
ZC5nZXQoKSwgaWRlbnRpdHlNYXRyaXgsIGlkZW50aXR5TWF0cml4LCBGbG9hdFBvaW50Ojp6ZXJv
KCksIEZsb2F0UG9pbnQ6Onplcm8oKSwgSW50U2l6ZSgxMCwgMTApLCBmYWxzZSk7CiAKICAgICBw
YXJlbnQtPmNyZWF0ZVJlbmRlclN1cmZhY2UoKTsKKyAgICBwYXJlbnQtPnNldFRhcmdldFJlbmRl
clN1cmZhY2UocGFyZW50LT5yZW5kZXJTdXJmYWNlKCkpOwogICAgIHBhcmVudC0+YWRkQ2hpbGQo
cmVuZGVyU3VyZmFjZTEpOwogICAgIHJlbmRlclN1cmZhY2UxLT5jcmVhdGVSZW5kZXJTdXJmYWNl
KCk7CiAgICAgcmVuZGVyU3VyZmFjZTEtPmFkZENoaWxkKGNoaWxkKTsKQEAgLTU0MCw2ICs1NDcs
NyBAQCBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeUNsaXBSZWN0Q3VsbHNS
ZW5kZXJTdXJmYWNlcykKICAgICBSZWZQdHI8TGF5ZXJDaHJvbWl1bVdpdGhGb3JjZWREcmF3c0Nv
bnRlbnQ+IGxlYWZOb2RlMSA9IGFkb3B0UmVmKG5ldyBMYXllckNocm9taXVtV2l0aEZvcmNlZERy
YXdzQ29udGVudCgpKTsKICAgICBSZWZQdHI8TGF5ZXJDaHJvbWl1bVdpdGhGb3JjZWREcmF3c0Nv
bnRlbnQ+IGxlYWZOb2RlMiA9IGFkb3B0UmVmKG5ldyBMYXllckNocm9taXVtV2l0aEZvcmNlZERy
YXdzQ29udGVudCgpKTsKICAgICBwYXJlbnQtPmNyZWF0ZVJlbmRlclN1cmZhY2UoKTsKKyAgICBw
YXJlbnQtPnNldFRhcmdldFJlbmRlclN1cmZhY2UocGFyZW50LT5yZW5kZXJTdXJmYWNlKCkpOwog
ICAgIHBhcmVudC0+YWRkQ2hpbGQoY2hpbGQpOwogICAgIGNoaWxkLT5hZGRDaGlsZChncmFuZENo
aWxkKTsKICAgICBncmFuZENoaWxkLT5hZGRDaGlsZChncmVhdEdyYW5kQ2hpbGQpOwpAQCAtNjEw
LDYgKzYxOCw3IEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgbGF5ZXJBZGRzU2Vs
ZlRvT2NjbHVkZWRSZWdpb24pCiAgICAgUmVmUHRyPExheWVyQ2hyb21pdW0+IHBhcmVudCA9IExh
eWVyQ2hyb21pdW06OmNyZWF0ZSgpOwogICAgIFJlZlB0cjxMYXllckNocm9taXVtV2l0aEZvcmNl
ZERyYXdzQ29udGVudD4gbGF5ZXIgPSBhZG9wdFJlZihuZXcgTGF5ZXJDaHJvbWl1bVdpdGhGb3Jj
ZWREcmF3c0NvbnRlbnQoKSk7CiAgICAgcGFyZW50LT5jcmVhdGVSZW5kZXJTdXJmYWNlKCk7Cisg
ICAgcGFyZW50LT5zZXRUYXJnZXRSZW5kZXJTdXJmYWNlKHBhcmVudC0+cmVuZGVyU3VyZmFjZSgp
KTsKICAgICBwYXJlbnQtPmFkZENoaWxkKGxheWVyKTsKIAogICAgIHNldExheWVyUHJvcGVydGll
c0ZvclRlc3RpbmcocGFyZW50LmdldCgpLCBpZGVudGl0eU1hdHJpeCwgaWRlbnRpdHlNYXRyaXgs
IEZsb2F0UG9pbnQoMCwgMCksIEZsb2F0UG9pbnQoMCwgMCksIEludFNpemUoMTAwLCAxMDApLCBm
YWxzZSk7CkBAIC02NDIsNiArNjUxLDcgQEAgVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0
LCBsYXllckFkZHNTZWxmVG9PY2NsdWRlZFJlZ2lvbldpdGhSb3RhdGlvbikKICAgICBSZWZQdHI8
TGF5ZXJDaHJvbWl1bT4gcGFyZW50ID0gTGF5ZXJDaHJvbWl1bTo6Y3JlYXRlKCk7CiAgICAgUmVm
UHRyPExheWVyQ2hyb21pdW1XaXRoRm9yY2VkRHJhd3NDb250ZW50PiBsYXllciA9IGFkb3B0UmVm
KG5ldyBMYXllckNocm9taXVtV2l0aEZvcmNlZERyYXdzQ29udGVudCgpKTsKICAgICBwYXJlbnQt
PmNyZWF0ZVJlbmRlclN1cmZhY2UoKTsKKyAgICBwYXJlbnQtPnNldFRhcmdldFJlbmRlclN1cmZh
Y2UocGFyZW50LT5yZW5kZXJTdXJmYWNlKCkpOwogICAgIHBhcmVudC0+YWRkQ2hpbGQobGF5ZXIp
OwogCiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbGF5ZXJUcmFuc2Zvcm07CkBAIC02NzksNiAr
Njg5LDcgQEAgVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCBsYXllckFkZHNTZWxmVG9P
Y2NsdWRlZFJlZ2lvbldpdGhUcmFuc2xhdGlvbikKICAgICBSZWZQdHI8TGF5ZXJDaHJvbWl1bT4g
cGFyZW50ID0gTGF5ZXJDaHJvbWl1bTo6Y3JlYXRlKCk7CiAgICAgUmVmUHRyPExheWVyQ2hyb21p
dW1XaXRoRm9yY2VkRHJhd3NDb250ZW50PiBsYXllciA9IGFkb3B0UmVmKG5ldyBMYXllckNocm9t
aXVtV2l0aEZvcmNlZERyYXdzQ29udGVudCgpKTsKICAgICBwYXJlbnQtPmNyZWF0ZVJlbmRlclN1
cmZhY2UoKTsKKyAgICBwYXJlbnQtPnNldFRhcmdldFJlbmRlclN1cmZhY2UocGFyZW50LT5yZW5k
ZXJTdXJmYWNlKCkpOwogICAgIHBhcmVudC0+YWRkQ2hpbGQobGF5ZXIpOwogCiAgICAgVHJhbnNm
b3JtYXRpb25NYXRyaXggbGF5ZXJUcmFuc2Zvcm07CkBAIC03MTUsNiArNzI2LDcgQEAgVEVTVChD
Q0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCBsYXllckFkZHNTZWxmVG9PY2NsdWRlZFJlZ2lvbldp
dGhSb3RhdGVkU3VyZmFjZSkKICAgICBSZWZQdHI8TGF5ZXJDaHJvbWl1bT4gY2hpbGQgPSBMYXll
ckNocm9taXVtOjpjcmVhdGUoKTsKICAgICBSZWZQdHI8TGF5ZXJDaHJvbWl1bVdpdGhGb3JjZWRE
cmF3c0NvbnRlbnQ+IGxheWVyID0gYWRvcHRSZWYobmV3IExheWVyQ2hyb21pdW1XaXRoRm9yY2Vk
RHJhd3NDb250ZW50KCkpOwogICAgIHBhcmVudC0+Y3JlYXRlUmVuZGVyU3VyZmFjZSgpOworICAg
IHBhcmVudC0+c2V0VGFyZ2V0UmVuZGVyU3VyZmFjZShwYXJlbnQtPnJlbmRlclN1cmZhY2UoKSk7
CiAgICAgcGFyZW50LT5hZGRDaGlsZChjaGlsZCk7CiAgICAgY2hpbGQtPmFkZENoaWxkKGxheWVy
KTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128059</attachid>
            <date>2012-02-21 15:33:52 -0800</date>
            <delta_ts>2012-02-21 17:49:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78936-20120221153351.patch</filename>
            <type>text/plain</type>
            <size>4813</size>
            <attacher name="Shawn Singh">shawnsingh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4MjgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGFmZjYwZWIxZDJlNjBl
NmZmZTAyMTU4MGM2OTYxMGJkYWYyMjEwNi4uZTc1OWE5M2Q2MzI3YzllOWJkMDRjNDZlMDUxNmY2
OWFjNjUwYmE3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTAyLTIxICBTaGF3
biBTaW5naCAgPHNoYXduc2luZ2hAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0g
UmVmYWN0b3IgQ0NMYXllclRyZWVIb3N0Q29tbW9uOiBtZXJnZSBzY2F0dGVyZWQgc2V0VGFyZ2V0
UmVuZGVyU3VyZmFjZSBsb2dpYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9Nzg5MzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBObyBjaGFuZ2UgaW4gYmVoYXZpb3IsIHRoZSBjb2RlIG1vdmVkIGFyb3VuZCBh
bHJlYWR5IGNvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgSW4gY2FsY3VsYXRl
RHJhd1RyYW5zZm9ybXNBbmRWaXNpYmlsaXR5KCksIHRoZXJlIGFyZSB0d28gc2VwYXJhdGUKKyAg
ICAgICAgaWYtZWxzZSBzdGF0ZW1lbnRzIHdoZXJlIHNldFRhcmdldFJlbmRlclN1cmZhY2UgbG9n
aWMgaXMKKyAgICAgICAgcGVyZm9ybWVkLCBhbmQgdGhpcyBtYWtlcyB0aGUgY29kZSBsZXNzIHJl
YWRhYmxlIGFuZCBtb3JlIGVycm9yCisgICAgICAgIHByb25lLiBUaGlzIHBhdGNoIG1lcmdlcyB0
aGUgbG9naWMsIHJlbW92aW5nIHRoZSByZWR1bmRhbnQgaWYtZWxzZQorICAgICAgICBzdGF0ZW1l
bnRzLgorCisgICAgICAgIFRoaXMgY29kZSBhbHNvIG1lcmdlcyBvbmUgb3RoZXIgc2V0IG9mIGlm
LXN0YXRlbWVudHMgdGhhdCBhcmUKKyAgICAgICAgZXF1aXZhbGVudCwgaWYgKGxheWVyLT5wYXJl
bnQoKSkgYW5kIGlmIChsYXllciE9cm9vdExheWVyKS4KKworICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5
ZXJDaHJvbWl1bTo6Y3JlYXRlUmVuZGVyU3VyZmFjZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NM
YXllckltcGw6OmNyZWF0ZVJlbmRlclN1cmZhY2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdENvbW1vbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpjYWxjdWxhdGVEcmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxpdHlJbnRlcm5hbCk6CisKIDIw
MTItMDItMjAgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtVTklYXSBQbHVnaW4gaW5mb3JtYXRpb24gZmllbGRzIGFyZSBub3QgaW50ZXJwcmV0ZWQg
YXMgVVRGLTgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0xheWVyQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5jcHAKaW5kZXggNGJjZjI5N2ZmOTI0NjhjOTg0ZjVi
NGZjYzEyYmZmNTNiMjY2ZDY3NC4uZGYyNTk4ZmY3MWIwODU5ODY1NjVhYjE1ZTYzM2ViODI3Yzky
MWQ5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vTGF5ZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5jcHAKQEAgLTUwMyw2ICs1MDMsNyBAQCB2b2lkIExh
eWVyQ2hyb21pdW06OmNyZWF0ZVJlbmRlclN1cmZhY2UoKQogewogICAgIEFTU0VSVCghbV9yZW5k
ZXJTdXJmYWNlKTsKICAgICBtX3JlbmRlclN1cmZhY2UgPSBhZG9wdFB0cihuZXcgUmVuZGVyU3Vy
ZmFjZUNocm9taXVtKHRoaXMpKTsKKyAgICBzZXRUYXJnZXRSZW5kZXJTdXJmYWNlKG1fcmVuZGVy
U3VyZmFjZS5nZXQoKSk7CiB9CiAKIGJvb2wgTGF5ZXJDaHJvbWl1bTo6ZGVzY2VuZGFudERyYXdz
Q29udGVudCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ0xheWVySW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5jcHAKaW5kZXggYzJiZDM0YjBiZmI4ZTkwODc2
MzQzMzFkMWNlMjYxZjJhZWJiZGQ2Ni4uY2U1NGU3ZTRiNzQ5NDI4OWY1YTgxZDYzNWRhZDY4M2Jl
OTY1YzczMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NMYXllckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmNwcApAQCAtMTA0LDYgKzEwNCw3IEBAIHZv
aWQgQ0NMYXllckltcGw6OmNyZWF0ZVJlbmRlclN1cmZhY2UoKQogewogICAgIEFTU0VSVCghbV9y
ZW5kZXJTdXJmYWNlKTsKICAgICBtX3JlbmRlclN1cmZhY2UgPSBhZG9wdFB0cihuZXcgQ0NSZW5k
ZXJTdXJmYWNlKHRoaXMpKTsKKyAgICBzZXRUYXJnZXRSZW5kZXJTdXJmYWNlKG1fcmVuZGVyU3Vy
ZmFjZS5nZXQoKSk7CiB9CiAKIGJvb2wgQ0NMYXllckltcGw6OmRlc2NlbmRhbnREcmF3c0NvbnRl
bnQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NMYXllclRyZWVIb3N0Q29tbW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdENvbW1vbi5jcHAKaW5kZXggOWIy
NTBkMGEyMmJhYmEzOGYyY2I2ZWJkOTI3Y2QyZjk2MTcyYTc0OC4uNGZjODY5NDAwOTZmOTczODll
ODNlY2M5OGRlYmMxNGYyZDI0YTI2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0Q29tbW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhv
c3RDb21tb24uY3BwCkBAIC0zMjMsMTggKzMyMywxOSBAQCBzdGF0aWMgYm9vbCBjYWxjdWxhdGVE
cmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxpdHlJbnRlcm5hbChMYXllclR5cGUqIGxheWVyLCBMYXll
cgogCiAgICAgICAgIGxheWVyLT5zZXREcmF3T3BhY2l0eShkcmF3T3BhY2l0eSk7CiAKLSAgICAg
ICAgaWYgKGxheWVyLT5wYXJlbnQoKSkgeworICAgICAgICBpZiAobGF5ZXIgIT0gcm9vdExheWVy
KSB7CisgICAgICAgICAgICBBU1NFUlQobGF5ZXItPnBhcmVudCgpKTsKKyAgICAgICAgICAgIGxh
eWVyLT5jbGVhclJlbmRlclN1cmZhY2UoKTsKKwogICAgICAgICAgICAgLy8gTGF5ZXJzIGluaGVy
aXQgdGhlIGNsaXAgcmVjdCBmcm9tIHRoZWlyIHBhcmVudC4KICAgICAgICAgICAgIGxheWVyLT5z
ZXRDbGlwUmVjdChsYXllci0+cGFyZW50KCktPmNsaXBSZWN0KCkpOwogICAgICAgICAgICAgaWYg
KGxheWVyLT5wYXJlbnQoKS0+dXNlc0xheWVyQ2xpcHBpbmcoKSkKICAgICAgICAgICAgICAgICBs
YXllci0+c2V0VXNlc0xheWVyQ2xpcHBpbmcodHJ1ZSk7CiAKKyAgICAgICAgICAgIC8vIExheWVy
cyB3aXRob3V0IHRoZWlyIG93biByZW5kZXJTdXJmYWNlIHdpbGwgcmVuZGVyIGludG8gdGhlIG5l
YXJlc3QgYW5jZXN0b3Igc3VyZmFjZS4KICAgICAgICAgICAgIGxheWVyLT5zZXRUYXJnZXRSZW5k
ZXJTdXJmYWNlKGxheWVyLT5wYXJlbnQoKS0+dGFyZ2V0UmVuZGVyU3VyZmFjZSgpKTsKICAgICAg
ICAgfQogCi0gICAgICAgIGlmIChsYXllciAhPSByb290TGF5ZXIpCi0gICAgICAgICAgICBsYXll
ci0+Y2xlYXJSZW5kZXJTdXJmYWNlKCk7Ci0KICAgICAgICAgaWYgKGxheWVyLT5tYXNrc1RvQm91
bmRzKCkpIHsKICAgICAgICAgICAgIEludFJlY3QgY2xpcFJlY3QgPSB0cmFuc2Zvcm1lZExheWVy
UmVjdDsKICAgICAgICAgICAgIGNsaXBSZWN0LmludGVyc2VjdChsYXllci0+Y2xpcFJlY3QoKSk7
CkBAIC0zNTAsMTMgKzM1MSw2IEBAIHN0YXRpYyBib29sIGNhbGN1bGF0ZURyYXdUcmFuc2Zvcm1z
QW5kVmlzaWJpbGl0eUludGVybmFsKExheWVyVHlwZSogbGF5ZXIsIExheWVyCiAgICAgbGF5ZXJT
Y3JlZW5TcGFjZVRyYW5zZm9ybS50cmFuc2xhdGUzZCgtMC41ICogYm91bmRzLndpZHRoKCksIC0w
LjUgKiBib3VuZHMuaGVpZ2h0KCksIDApOwogICAgIGxheWVyLT5zZXRTY3JlZW5TcGFjZVRyYW5z
Zm9ybShsYXllclNjcmVlblNwYWNlVHJhbnNmb3JtKTsKIAotICAgIGlmIChsYXllci0+cmVuZGVy
U3VyZmFjZSgpKQotICAgICAgICBsYXllci0+c2V0VGFyZ2V0UmVuZGVyU3VyZmFjZShsYXllci0+
cmVuZGVyU3VyZmFjZSgpKTsKLSAgICBlbHNlIHsKLSAgICAgICAgQVNTRVJUKGxheWVyLT5wYXJl
bnQoKSk7Ci0gICAgICAgIGxheWVyLT5zZXRUYXJnZXRSZW5kZXJTdXJmYWNlKGxheWVyLT5wYXJl
bnQoKS0+dGFyZ2V0UmVuZGVyU3VyZmFjZSgpKTsKLSAgICB9Ci0KICAgICAvLyBkcmF3YWJsZUNv
bnRlbnRSZWN0KCkgaXMgYWx3YXlzIHN0b3JlZCBpbiB0aGUgY29vcmRpbmF0ZSBzeXN0ZW0gb2Yg
dGhlCiAgICAgLy8gUmVuZGVyU3VyZmFjZSB0aGUgbGF5ZXIgZHJhd3MgaW50by4KICAgICBpZiAo
bGF5ZXItPmRyYXdzQ29udGVudCgpKSB7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>