<?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>81831</bug_id>
          
          <creation_ts>2012-03-21 14:22:27 -0700</creation_ts>
          <short_desc>[chromium] Make CCDamageTracker robust to empty layer lists</short_desc>
          <delta_ts>2012-03-22 13:43:02 -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>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>backer</cc>
    
    <cc>cc-bugs</cc>
    
    <cc>danakj</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>584628</commentid>
    <comment_count>0</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-03-21 14:22:27 -0700</bug_when>
    <thetext>Minor fixes that do not change any behavior.  In particular, we need to protect users against accidental crashes if layerList is empty.  On the other hand, it is completely unexpected if the layerList is empty so there should still be a assertion to trigger in debug mode.

Those crashes have been reported in http://code.google.com/p/chromium/issues/detail?id=119353 and it might be appropriate to wait for landing this until after we either (1) repro and solve or (2) give up on trying to reproduce the crashes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584745</commentid>
    <comment_count>1</comment_count>
      <attachid>133138</attachid>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-03-21 16:18:59 -0700</bug_when>
    <thetext>Created attachment 133138
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584746</commentid>
    <comment_count>2</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-03-21 16:22:38 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; 
&gt; Those crashes have been reported in http://code.google.com/p/chromium/issues/detail?id=119353 and it might be appropriate to wait for landing this until after we either (1) repro and solve or (2) give up on trying to reproduce the crashes.

FYI, we did give up on that bug (you can see the details on that bug), so this patch is ready for review/land.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584932</commentid>
    <comment_count>3</comment_count>
      <attachid>133138</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-03-21 20:42:31 -0700</bug_when>
    <thetext>Comment on attachment 133138
Patch

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

&gt; Source/WebCore/ChangeLog:3
&gt; +        [chromium] CCDamageTracker code maintenence

Can you give this bug a better description of what and why you&apos;re fixing? Something like &quot;Make CCDamageTracker robust to empty layer lists&quot;?

&gt; Source/WebCore/ChangeLog:11
&gt; +        bug outside the damage tracker, but for robustness its appropriate

s/its/it&apos;s/

&gt; Source/WebCore/ChangeLog:14
&gt; +        In addition to this fix, performed some trivial maintenence on the

s/maintenence/maintenance/

&gt; Source/WebCore/platform/graphics/chromium/cc/CCDamageTracker.cpp:59
&gt; -void CCDamageTracker::updateDamageTrackingState(const Vector&lt;CCLayerImpl*&gt;&amp; layerList, int targetSurfaceLayerID, CCLayerImpl* targetSurfaceMaskLayer)
&gt; +void CCDamageTracker::updateDamageTrackingState(const Vector&lt;CCLayerImpl*&gt;&amp; layerList, int targetSurfaceLayerID, bool targetSurfacePropertyChangedOnlyFromDescendant, const IntRect&amp; targetSurfaceContentRect, CCLayerImpl* targetSurfaceMaskLayer)

This is a drive-by API question, but I&apos;m curious if this function should just take the render surface layer, rather than five properties that can be gotten off of it? Is there some time that you call it with different values other than what&apos;s on the render surface layer?

&gt; Source/WebKit/chromium/tests/CCDamageTrackerTest.cpp:808
&gt; +    // FIXME: check the damage rect is empty in this case.
&gt; +    FloatRect damageRect = targetSurface-&gt;damageTracker()-&gt;currentDamageRect();
&gt; +    EXPECT_TRUE(damageRect.isEmpty());

Why is this a FIXME? It kind of looks like you&apos;re doing what it says already?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584961</commentid>
    <comment_count>4</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-03-21 21:38:45 -0700</bug_when>
    <thetext>Thanks for the quick review =)  
I&apos;ll make all those fixes.  One point remains, though - I&apos;ll wait for you to give me the final decision of your preference.

&gt; &gt; Source/WebCore/platform/graphics/chromium/cc/CCDamageTracker.cpp:59
&gt; &gt; -void CCDamageTracker::updateDamageTrackingState(const Vector&lt;CCLayerImpl*&gt;&amp; layerList, int targetSurfaceLayerID, CCLayerImpl* targetSurfaceMaskLayer)
&gt; &gt; +void CCDamageTracker::updateDamageTrackingState(const Vector&lt;CCLayerImpl*&gt;&amp; layerList, int targetSurfaceLayerID, bool targetSurfacePropertyChangedOnlyFromDescendant, const IntRect&amp; targetSurfaceContentRect, CCLayerImpl* targetSurfaceMaskLayer)
&gt; 
&gt; This is a drive-by API question, but I&apos;m curious if this function should just take the render surface layer, rather than five properties that can be gotten off of it? Is there some time that you call it with different values other than what&apos;s on the render surface layer?

nduca was against it.  If I remember correctly, his thought process was that the damage tracker should not know about the surface that owns it, unless its really necessary.  Its a good point, and frankly I don&apos;t think the API on this class has stablized yet anyway, it will still evolve and improve a bit more with hindsight.  So, whichever option you prefer for this patch is OK with me =)

option A: keep the large number of args
option B: pass only the rendersurface itself, and add a maskLayer() accessor to CCRenderSurface.

&gt; 
&gt; &gt; Source/WebKit/chromium/tests/CCDamageTrackerTest.cpp:808
&gt; &gt; +    // FIXME: check the damage rect is empty in this case.
&gt; &gt; +    FloatRect damageRect = targetSurface-&gt;damageTracker()-&gt;currentDamageRect();
&gt; &gt; +    EXPECT_TRUE(damageRect.isEmpty());
&gt; 
&gt; Why is this a FIXME? It kind of looks like you&apos;re doing what it says already?

oops =) I&apos;ll remove that comment.  A vestige of having to stash and switch contexts while I wrote this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585036</commentid>
    <comment_count>5</comment_count>
      <attachid>133138</attachid>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-03-22 00:46:52 -0700</bug_when>
    <thetext>Comment on attachment 133138
Patch

removing r=? and cq=? since a new patch will be coming soon.

But, if you guys had a preference about the too-many-args issue, let me know =)  I&apos;ll submit a new patch tomorrow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585081</commentid>
    <comment_count>6</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-03-22 02:33:53 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 133138 [details])
&gt; removing r=? and cq=? since a new patch will be coming soon.
&gt; 
&gt; But, if you guys had a preference about the too-many-args issue, let me know =)  I&apos;ll submit a new patch tomorrow.

its getting long but I think we want to avoid direct coupling. That changes testability a bit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585563</commentid>
    <comment_count>7</comment_count>
      <attachid>133312</attachid>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-03-22 12:02:34 -0700</bug_when>
    <thetext>Created attachment 133312
Addressed reviewers comments

This patch opts for option A</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585644</commentid>
    <comment_count>8</comment_count>
      <attachid>133312</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-03-22 13:34:06 -0700</bug_when>
    <thetext>Comment on attachment 133312
Addressed reviewers comments

Looks good! R=me.  Please land this ASAP if possible, due to http://code.google.com/p/chromium/issues/detail?id=119465.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585654</commentid>
    <comment_count>9</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-03-22 13:43:02 -0700</bug_when>
    <thetext>Committed r111752: &lt;http://trac.webkit.org/changeset/111752&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133138</attachid>
            <date>2012-03-21 16:18:59 -0700</date>
            <delta_ts>2012-03-22 12:02:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81831-20120321161858.patch</filename>
            <type>text/plain</type>
            <size>10735</size>
            <attacher name="Shawn Singh">shawnsingh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExNTk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGZkNDk1NGE5ZDM0YWY2
NzlhNjIzMzI5Y2EyMTVjZDU3ZTU1MTRmMi4uZGJhYTZlYzU3YThmM2UzYmM5MGE0OWMyNGE0Yjhj
YzExOGU3MDhkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTAzLTIxICBTaGF3
biBTaW5naCAgPHNoYXduc2luZ2hAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0g
Q0NEYW1hZ2VUcmFja2VyIGNvZGUgbWFpbnRlbmVuY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgxODMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgYSB1bml0IHRlc3QgaW4gQ0NEYW1hZ2VUcmFj
a2VyVGVzdCB0aGF0IGNhdXNlcyBhIGNyYXNoIGluCisgICAgICAgIHRoZSBvbGQgY29kZS4gV2l0
aCB0aGlzIHBhdGNoIGFwcGxpZWQsIHRoZSBjcmFzaCB3aWxsIG5vdCBvY2N1ci4KKyAgICAgICAg
SW4gdGhlb3J5LCB0aGF0IGNyYXNoIHNob3VsZCBuZXZlciBvY2N1ciBhbnl3YXksIHVubGVzcyB0
aGVyZSBpcyBhCisgICAgICAgIGJ1ZyBvdXRzaWRlIHRoZSBkYW1hZ2UgdHJhY2tlciwgYnV0IGZv
ciByb2J1c3RuZXNzIGl0cyBhcHByb3ByaWF0ZQorICAgICAgICB0byBoYW5kbGUgaXQgcHJvcGVy
bHkuCisKKyAgICAgICAgSW4gYWRkaXRpb24gdG8gdGhpcyBmaXgsIHBlcmZvcm1lZCBzb21lIHRy
aXZpYWwgbWFpbnRlbmVuY2Ugb24gdGhlCisgICAgICAgIGRhbWFnZSB0cmFja2VyIGNvZGUuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0RhbWFnZVRyYWNrZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NEYW1hZ2VUcmFja2VyOjp1cGRhdGVEYW1hZ2VUcmFj
a2luZ1N0YXRlKTogcmVtb3ZlZAorICAgICAgICB1bmNsZWFuIGNvZGUgdGhhdCBhY2Nlc3NlZCB0
aGUgdGFyZ2V0U3VyZmFjZSB0byBnZXQgbmVjZXNzYXJ5CisgICAgICAgIGluZm9ybWF0aW9uLiAg
SW5zdGVhZCwgd2Ugbm93IHBhc3MgdGhvc2UgYXJncyB0aHJvdWdoIHRoZSBkYW1hZ2UKKyAgICAg
ICAgdHJhY2tlcidzIEFQSS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDRGFtYWdlVHJhY2tlci5oOgorICAgICAgICAoQ0NEYW1hZ2VUcmFja2VyKTogbW9kaWZp
ZWQgYXJncyBwYXNzZWQgdG8gZGFtYWdlIHRyYWNrZXIgb24gdXBkYXRlLgorCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3RJbXBsOjp0cmFja0RhbWFnZUZvckFsbFN1
cmZhY2VzKToKKyAgICAgICAgbW9kaWZpZWQgYXJncyBwYXNzZWQgdG8gZGFtYWdlIHRyYWNrZXIg
b24gdXBkYXRlLgorCiAyMDEyLTAzLTIxICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEV4dHJhY3QgV2ViSW5zcGVjdG9yLlVJ
QnJlYWtwb2ludCBmcm9tIFdlYkluc3BlY3Rvci5CcmVha3BvaW50LgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwppbmRleCA0YjM4MTk2ZjI2Zjg2OWUyMDNkYzA2MzMzMWVmMmU4MDUzYTQzNzM0Li41
NTNhNDU1NzRkYjU0ZGRiMDI1ODYzZjgyYTI4MjFkMDdiOTA1ZDBjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTAzLTIxICBTaGF3biBTaW5naCAgPHNo
YXduc2luZ2hAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQ0NEYW1hZ2VUcmFj
a2VyIGNvZGUgbWFpbnRlbmVuY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTgxODMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiB0ZXN0cy9DQ0RhbWFnZVRyYWNrZXJUZXN0LmNwcDoKKyAgICAgICAgKFdl
YktpdFRlc3RzOjplbXVsYXRlRHJhd2luZ09uZUZyYW1lKTogbW9kaWZpZWQgYXJncyBwYXNzZWQg
dG8gZGFtYWdlIHRyYWNrZXIgb24gdXBkYXRlLgorCisgICAgICAgIChXZWJLaXRUZXN0czo6VEVT
VF9GKTogQWRkZWQgYW5vdGhlciB1bml0IHRlc3QuCisgICAgICAgIChXZWJLaXRUZXN0cyk6CisK
IDIwMTItMDMtMjEgIFRvbW15IFdpZGVuZmx5Y2h0ICA8dG9tbXl3QGdvb2dsZS5jb20+CiAKICAg
ICAgICAgW2Nocm9taXVtXSBNZWRpYVN0cmVhbSBBUEkgKEpTRVApOiBFbmhhbmNpbmcgV2ViTWVk
aWFIaW50cyBhbmQgV2ViSUNFT3B0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NEYW1hZ2VUcmFja2VyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRGFtYWdlVHJhY2tlci5jcHAK
aW5kZXggOTZjNWE1ZTE4MjVjZmZmNDliZjkzY2M4NjE3NzJlYWY4ZjdlNzMwYy4uNjZkYTRkZTg1
NmQyYzRjMzcyYmRiZGU4YWQwYzRiZTM5ZjZlNjk1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NEYW1hZ2VUcmFja2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0RhbWFnZVRy
YWNrZXIuY3BwCkBAIC01Niw3ICs1Niw3IEBAIENDRGFtYWdlVHJhY2tlcjo6fkNDRGFtYWdlVHJh
Y2tlcigpCiB7CiB9CiAKLXZvaWQgQ0NEYW1hZ2VUcmFja2VyOjp1cGRhdGVEYW1hZ2VUcmFja2lu
Z1N0YXRlKGNvbnN0IFZlY3RvcjxDQ0xheWVySW1wbCo+JiBsYXllckxpc3QsIGludCB0YXJnZXRT
dXJmYWNlTGF5ZXJJRCwgQ0NMYXllckltcGwqIHRhcmdldFN1cmZhY2VNYXNrTGF5ZXIpCit2b2lk
IENDRGFtYWdlVHJhY2tlcjo6dXBkYXRlRGFtYWdlVHJhY2tpbmdTdGF0ZShjb25zdCBWZWN0b3I8
Q0NMYXllckltcGwqPiYgbGF5ZXJMaXN0LCBpbnQgdGFyZ2V0U3VyZmFjZUxheWVySUQsIGJvb2wg
dGFyZ2V0U3VyZmFjZVByb3BlcnR5Q2hhbmdlZE9ubHlGcm9tRGVzY2VuZGFudCwgY29uc3QgSW50
UmVjdCYgdGFyZ2V0U3VyZmFjZUNvbnRlbnRSZWN0LCBDQ0xheWVySW1wbCogdGFyZ2V0U3VyZmFj
ZU1hc2tMYXllcikKIHsKICAgICAvLwogICAgIC8vIFRoaXMgZnVuY3Rpb24gY29tcHV0ZXMgdGhl
ICJkYW1hZ2UgcmVjdCIgb2YgYSB0YXJnZXQgc3VyZmFjZSwgYW5kIHVwZGF0ZXMgdGhlIHN0YXRl
CkBAIC03MSwyMCArNzEsMjAgQEAgdm9pZCBDQ0RhbWFnZVRyYWNrZXI6OnVwZGF0ZURhbWFnZVRy
YWNraW5nU3RhdGUoY29uc3QgVmVjdG9yPENDTGF5ZXJJbXBsKj4mIGxheWUKICAgICAvLwogICAg
IC8vIFRoZSBiYXNpYyBhbGdvcml0aG0gZm9yIGNvbXB1dGluZyB0aGUgZGFtYWdlIHJlZ2lvbiBp
cyBhcyBmb2xsb3dzOgogICAgIC8vCi0gICAgLy8gICAgICAgLy8gMS4gY29tcHV0ZSBkYW1hZ2Ug
Y2F1c2VkIGJ5IGNoYW5nZXMgaW4gYWN0aXZlL25ldyBsYXllcnMKKyAgICAvLyAgIDEuIGNvbXB1
dGUgZGFtYWdlIGNhdXNlZCBieSBjaGFuZ2VzIGluIGFjdGl2ZS9uZXcgbGF5ZXJzCiAgICAgLy8g
ICAgICAgZm9yIGVhY2ggbGF5ZXIgaW4gdGhlIGxheWVyTGlzdDoKICAgICAvLyAgICAgICAgICAg
aWYgdGhlIGxheWVyIGlzIGFjdHVhbGx5IGEgcmVuZGVyU3VyZmFjZToKICAgICAvLyAgICAgICAg
ICAgICAgIGFkZCB0aGUgc3VyZmFjZSdzIGRhbWFnZSB0byBvdXIgdGFyZ2V0IHN1cmZhY2UuCiAg
ICAgLy8gICAgICAgICAgIGVsc2UKICAgICAvLyAgICAgICAgICAgICAgIGFkZCB0aGUgbGF5ZXIn
cyBkYW1hZ2UgdG8gdGhlIHRhcmdldCBzdXJmYWNlLgogICAgIC8vCi0gICAgLy8gICAgICAgLy8g
Mi4gY29tcHV0ZSBkYW1hZ2UgY2F1c2VkIGJ5IHRoZSB0YXJnZXQgc3VyZmFjZSdzIG1hc2ssIGlm
IGl0IGV4aXN0cy4KKyAgICAvLyAgIDIuIGNvbXB1dGUgZGFtYWdlIGNhdXNlZCBieSB0aGUgdGFy
Z2V0IHN1cmZhY2UncyBtYXNrLCBpZiBpdCBleGlzdHMuCiAgICAgLy8KLSAgICAvLyAgICAgICAv
LyAzLiBjb21wdXRlIGRhbWFnZSBjYXVzZWQgYnkgb2xkIGxheWVycy9zdXJmYWNlcyB0aGF0IG5v
IGxvbmdlciBleGlzdAorICAgIC8vICAgMy4gY29tcHV0ZSBkYW1hZ2UgY2F1c2VkIGJ5IG9sZCBs
YXllcnMvc3VyZmFjZXMgdGhhdCBubyBsb25nZXIgZXhpc3QKICAgICAvLyAgICAgICBmb3IgZWFj
aCBsZWZ0b3ZlciBsYXllcjoKICAgICAvLyAgICAgICAgICAgYWRkIHRoZSBvbGQgbGF5ZXIvc3Vy
ZmFjZSBib3VuZHMgdG8gdGhlIHRhcmdldCBzdXJmYWNlIGRhbWFnZS4KICAgICAvLwotICAgIC8v
ICAgICAgIC8vIDQuIGNvbWJpbmUgYWxsIHBhcnRpYWwgZGFtYWdlIHJlY3RzIHRvIGdldCB0aGUg
ZnVsbCBkYW1hZ2UgcmVjdC4KKyAgICAvLyAgIDQuIGNvbWJpbmUgYWxsIHBhcnRpYWwgZGFtYWdl
IHJlY3RzIHRvIGdldCB0aGUgZnVsbCBkYW1hZ2UgcmVjdC4KICAgICAvLwogICAgIC8vIEFkZGl0
aW9uYWwgaW1wb3J0YW50IHBvaW50czoKICAgICAvLwpAQCAtMTI4LDE2ICsxMjgsMTEgQEAgdm9p
ZCBDQ0RhbWFnZVRyYWNrZXI6OnVwZGF0ZURhbWFnZVRyYWNraW5nU3RhdGUoY29uc3QgVmVjdG9y
PENDTGF5ZXJJbXBsKj4mIGxheWUKICAgICBGbG9hdFJlY3QgZGFtYWdlRnJvbVN1cmZhY2VNYXNr
ID0gdHJhY2tEYW1hZ2VGcm9tU3VyZmFjZU1hc2sodGFyZ2V0U3VyZmFjZU1hc2tMYXllcik7CiAg
ICAgRmxvYXRSZWN0IGRhbWFnZUZyb21MZWZ0b3ZlclJlY3RzID0gdHJhY2tEYW1hZ2VGcm9tTGVm
dG92ZXJSZWN0cygpOwogCi0gICAgLy8gSWYgdGhlIHRhcmdldCBzdXJmYWNlIGFscmVhZHkga25v
d3MgaXRzIGVudGlyZSByZWdpb24gaXMgZGFtYWdlZCwgd2UgY2FuIHJldHVybiBlYXJseS4KLSAg
ICAvLyBGSVhNRTogdGhpcyBzaG91bGQgZ28gYXdheSwgb3Igd2lsbCBiZSBjbGVhbmVyLCBhZnRl
ciByZWZhY3RvcmluZyBpbnRvIFJlbmRlclBhc3MvUmVuZGVyU2NoZWR1bGUuCi0gICAgQ0NMYXll
ckltcGwqIGxheWVyID0gbGF5ZXJMaXN0WzBdOwotICAgIENDUmVuZGVyU3VyZmFjZSogdGFyZ2V0
U3VyZmFjZSA9IGxheWVyLT50YXJnZXRSZW5kZXJTdXJmYWNlKCk7Ci0KLSAgICBpZiAobV9mb3Jj
ZUZ1bGxEYW1hZ2VOZXh0VXBkYXRlIHx8IHRhcmdldFN1cmZhY2UtPnN1cmZhY2VQcm9wZXJ0eUNo
YW5nZWRPbmx5RnJvbURlc2NlbmRhbnQoKSkgewotICAgICAgICBtX2N1cnJlbnREYW1hZ2VSZWN0
ID0gRmxvYXRSZWN0KHRhcmdldFN1cmZhY2UtPmNvbnRlbnRSZWN0KCkpOworICAgIGlmIChtX2Zv
cmNlRnVsbERhbWFnZU5leHRVcGRhdGUgfHwgdGFyZ2V0U3VyZmFjZVByb3BlcnR5Q2hhbmdlZE9u
bHlGcm9tRGVzY2VuZGFudCkgeworICAgICAgICBtX2N1cnJlbnREYW1hZ2VSZWN0ID0gdGFyZ2V0
U3VyZmFjZUNvbnRlbnRSZWN0OwogICAgICAgICBtX2ZvcmNlRnVsbERhbWFnZU5leHRVcGRhdGUg
PSBmYWxzZTsKICAgICB9IGVsc2UgewotICAgICAgICAvLyBGSVhNRTogY2FuIHdlIG5lZWQgdG8g
Y2xhbXAgdGhpcyBkYW1hZ2UgdG8gdGhlIHN1cmZhY2UncyBjb250ZW50IHJlY3Q/IChhZmZlY3Rz
IHBlcmZvcm1hbmNlLCBidXQgbm90IGNvcnJlY3RuZXNzKQorICAgICAgICAvLyBGSVhNRTogY2Fu
IHdlIGNsYW1wIHRoaXMgZGFtYWdlIHRvIHRoZSBzdXJmYWNlJ3MgY29udGVudCByZWN0PyAoYWZm
ZWN0cyBwZXJmb3JtYW5jZSwgYnV0IG5vdCBjb3JyZWN0bmVzcykKICAgICAgICAgbV9jdXJyZW50
RGFtYWdlUmVjdCA9IGRhbWFnZUZyb21BY3RpdmVMYXllcnM7CiAgICAgICAgIG1fY3VycmVudERh
bWFnZVJlY3QudW5pdGVJZk5vblplcm8oZGFtYWdlRnJvbVN1cmZhY2VNYXNrKTsKICAgICAgICAg
bV9jdXJyZW50RGFtYWdlUmVjdC51bml0ZUlmTm9uWmVybyhkYW1hZ2VGcm9tTGVmdG92ZXJSZWN0
cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ0RhbWFnZVRyYWNrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDRGFtYWdlVHJhY2tlci5oCmluZGV4IDdhNjI5YzQ3ODEyODFiZTRkZmEx
YzQ5ZGQxM2IxMWU0Zjk1NTBmNzYuLmYxY2ZkNGY3MzYwNjg0NDY0MTE0ZWE0Y2YyYmU4ZmU4ZDA3
NDVhMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDRGFtYWdlVHJhY2tlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDRGFtYWdlVHJhY2tlci5oCkBAIC00NCw3ICs0NCw3IEBAIHB1
YmxpYzoKICAgICB+Q0NEYW1hZ2VUcmFja2VyKCk7CiAKICAgICB2b2lkIGZvcmNlRnVsbERhbWFn
ZU5leHRVcGRhdGUoKSB7IG1fZm9yY2VGdWxsRGFtYWdlTmV4dFVwZGF0ZSA9IHRydWU7IH0KLSAg
ICB2b2lkIHVwZGF0ZURhbWFnZVRyYWNraW5nU3RhdGUoY29uc3QgVmVjdG9yPENDTGF5ZXJJbXBs
Kj4mIGxheWVyTGlzdCwgaW50IHRhcmdldFN1cmZhY2VMYXllcklELCBDQ0xheWVySW1wbCogdGFy
Z2V0U3VyZmFjZU1hc2tMYXllcik7CisgICAgdm9pZCB1cGRhdGVEYW1hZ2VUcmFja2luZ1N0YXRl
KGNvbnN0IFZlY3RvcjxDQ0xheWVySW1wbCo+JiBsYXllckxpc3QsIGludCB0YXJnZXRTdXJmYWNl
TGF5ZXJJRCwgYm9vbCB0YXJnZXRTdXJmYWNlUHJvcGVydHlDaGFuZ2VkT25seUZyb21EZXNjZW5k
YW50LCBjb25zdCBJbnRSZWN0JiB0YXJnZXRTdXJmYWNlQ29udGVudFJlY3QsIENDTGF5ZXJJbXBs
KiB0YXJnZXRTdXJmYWNlTWFza0xheWVyKTsKICAgICBjb25zdCBGbG9hdFJlY3QmIGN1cnJlbnRE
YW1hZ2VSZWN0KCkgeyByZXR1cm4gbV9jdXJyZW50RGFtYWdlUmVjdDsgfQogCiBwcml2YXRlOgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NMYXllclRyZWVIb3N0SW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmNwcAppbmRleCAwYWJmYWUxODhkYjlm
ZTIzZTdlMzMzNTU2NGYzMDMyZWI1OTU2OWFlLi45MGQ0ZDRkOTFhYWE5NWY4ZTE3NDc0NDE5NTVi
YTc3YmU3MTBiNWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmNwcApA
QCAtMTk2LDcgKzE5Niw3IEBAIHZvaWQgQ0NMYXllclRyZWVIb3N0SW1wbDo6dHJhY2tEYW1hZ2VG
b3JBbGxTdXJmYWNlcyhDQ0xheWVySW1wbCogcm9vdERyYXdMYXllciwKICAgICAgICAgQ0NMYXll
ckltcGwqIHJlbmRlclN1cmZhY2VMYXllciA9IHJlbmRlclN1cmZhY2VMYXllckxpc3Rbc3VyZmFj
ZUluZGV4XTsKICAgICAgICAgQ0NSZW5kZXJTdXJmYWNlKiByZW5kZXJTdXJmYWNlID0gcmVuZGVy
U3VyZmFjZUxheWVyLT5yZW5kZXJTdXJmYWNlKCk7CiAgICAgICAgIEFTU0VSVChyZW5kZXJTdXJm
YWNlKTsKLSAgICAgICAgcmVuZGVyU3VyZmFjZS0+ZGFtYWdlVHJhY2tlcigpLT51cGRhdGVEYW1h
Z2VUcmFja2luZ1N0YXRlKHJlbmRlclN1cmZhY2UtPmxheWVyTGlzdCgpLCByZW5kZXJTdXJmYWNl
TGF5ZXItPmlkKCksIHJlbmRlclN1cmZhY2VMYXllci0+bWFza0xheWVyKCkpOworICAgICAgICBy
ZW5kZXJTdXJmYWNlLT5kYW1hZ2VUcmFja2VyKCktPnVwZGF0ZURhbWFnZVRyYWNraW5nU3RhdGUo
cmVuZGVyU3VyZmFjZS0+bGF5ZXJMaXN0KCksIHJlbmRlclN1cmZhY2VMYXllci0+aWQoKSwgcmVu
ZGVyU3VyZmFjZS0+c3VyZmFjZVByb3BlcnR5Q2hhbmdlZE9ubHlGcm9tRGVzY2VuZGFudCgpLCBy
ZW5kZXJTdXJmYWNlLT5jb250ZW50UmVjdCgpLCByZW5kZXJTdXJmYWNlTGF5ZXItPm1hc2tMYXll
cigpKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVz
dHMvQ0NEYW1hZ2VUcmFja2VyVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L0NDRGFtYWdlVHJhY2tlclRlc3QuY3BwCmluZGV4IDc0ZDYzNWI0MGQ3MTc1MzBkNzZiOWM4MjQ0
NGJjNmRiMmQ3MzQxYjkuLjc0MzdiODY1MDMxZjlkOTRhOWZmMjRlMzZiYWRlOTM3YTkwZTljOGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NEYW1hZ2VUcmFja2Vy
VGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0RhbWFnZVRyYWNr
ZXJUZXN0LmNwcApAQCAtNzAsNyArNzAsNyBAQCB2b2lkIGVtdWxhdGVEcmF3aW5nT25lRnJhbWUo
Q0NMYXllckltcGwqIHJvb3QpCiAgICAgLy8gSXRlcmF0ZSBiYWNrLXRvLWZyb250LCBzbyB0aGF0
IGRhbWFnZSBjb3JyZWN0bHkgcHJvcGFnYXRlcyBmcm9tIGRlc2NlbmRhbnQgc3VyZmFjZXMgdG8g
YW5jZXN0b3JzLgogICAgIGZvciAoaW50IGkgPSByZW5kZXJTdXJmYWNlTGF5ZXJMaXN0LnNpemUo
KSAtIDE7IGkgPj0gMDsgLS1pKSB7CiAgICAgICAgIENDUmVuZGVyU3VyZmFjZSogdGFyZ2V0U3Vy
ZmFjZSA9IHJlbmRlclN1cmZhY2VMYXllckxpc3RbaV0tPnJlbmRlclN1cmZhY2UoKTsKLSAgICAg
ICAgdGFyZ2V0U3VyZmFjZS0+ZGFtYWdlVHJhY2tlcigpLT51cGRhdGVEYW1hZ2VUcmFja2luZ1N0
YXRlKHRhcmdldFN1cmZhY2UtPmxheWVyTGlzdCgpLCB0YXJnZXRTdXJmYWNlLT5vd25pbmdMYXll
cklkKCksIHJlbmRlclN1cmZhY2VMYXllckxpc3RbaV0tPm1hc2tMYXllcigpKTsKKyAgICAgICAg
dGFyZ2V0U3VyZmFjZS0+ZGFtYWdlVHJhY2tlcigpLT51cGRhdGVEYW1hZ2VUcmFja2luZ1N0YXRl
KHRhcmdldFN1cmZhY2UtPmxheWVyTGlzdCgpLCB0YXJnZXRTdXJmYWNlLT5vd25pbmdMYXllcklk
KCksIHRhcmdldFN1cmZhY2UtPnN1cmZhY2VQcm9wZXJ0eUNoYW5nZWRPbmx5RnJvbURlc2NlbmRh
bnQoKSwgdGFyZ2V0U3VyZmFjZS0+Y29udGVudFJlY3QoKSwgcmVuZGVyU3VyZmFjZUxheWVyTGlz
dFtpXS0+bWFza0xheWVyKCkpOwogICAgIH0KIAogICAgIHJvb3QtPnJlc2V0QWxsQ2hhbmdlVHJh
Y2tpbmdGb3JTdWJ0cmVlKCk7CkBAIC03NjcsNyArNzY3LDcgQEAgVEVTVF9GKENDRGFtYWdlVHJh
Y2tlclRlc3QsIHZlcmlmeURhbWFnZUZvclJlcGxpY2FNYXNrKQogICAgIEVYUEVDVF9GTE9BVF9S
RUNUX0VRKEZsb2F0UmVjdCgxOTQsIDIwMCwgNiwgOCksIGNoaWxkRGFtYWdlUmVjdCk7CiB9CiAK
LVRFU1RfRihDQ0RhbWFnZVRyYWNrZXJUZXN0LCB2ZXJpZnlEYW1hZ2VXaGVuUmVzZXQpCitURVNU
X0YoQ0NEYW1hZ2VUcmFja2VyVGVzdCwgdmVyaWZ5RGFtYWdlV2hlbkZvcmNlZEZ1bGxEYW1hZ2Up
CiB7CiAgICAgT3duUHRyPENDTGF5ZXJJbXBsPiByb290ID0gY3JlYXRlQW5kU2V0VXBUZXN0VHJl
ZVdpdGhPbmVTdXJmYWNlKCk7CiAgICAgQ0NMYXllckltcGwqIGNoaWxkID0gcm9vdC0+Y2hpbGRy
ZW4oKVswXS5nZXQoKTsKQEAgLTc5MCw0ICs3OTAsMjIgQEAgVEVTVF9GKENDRGFtYWdlVHJhY2tl
clRlc3QsIHZlcmlmeURhbWFnZVdoZW5SZXNldCkKICAgICBFWFBFQ1RfRkxPQVRfUkVDVF9FUShG
bG9hdFJlY3QoMCwgMCwgNTAwLCA1MDApLCByb290RGFtYWdlUmVjdCk7CiB9CiAKK1RFU1RfRihD
Q0RhbWFnZVRyYWNrZXJUZXN0LCB2ZXJpZnlEYW1hZ2VGb3JFbXB0eUxheWVyTGlzdCkKK3sKKyAg
ICAvLyBUaG91Z2ggaXQgc2hvdWxkIG5ldmVyIGhhcHBlbiwgaXRzIGEgZ29vZCBpZGVhIHRvIHZl
cmlmeSB0aGF0IHRoZSBkYW1hZ2UgdHJhY2tlcgorICAgIC8vIGRvZXMgbm90IGNyYXNoIHdoZW4g
aXQgcmVjZWl2ZXMgYW4gZW1wdHkgbGF5ZXJMaXN0LgorCisgICAgT3duUHRyPENDTGF5ZXJJbXBs
PiByb290ID0gQ0NMYXllckltcGw6OmNyZWF0ZSgxKTsKKyAgICByb290LT5jcmVhdGVSZW5kZXJT
dXJmYWNlKCk7CisKKyAgICBBU1NFUlRfVFJVRShyb290LT5yZW5kZXJTdXJmYWNlKCkgPT0gcm9v
dC0+dGFyZ2V0UmVuZGVyU3VyZmFjZSgpKTsKKyAgICBDQ1JlbmRlclN1cmZhY2UqIHRhcmdldFN1
cmZhY2UgPSByb290LT5yZW5kZXJTdXJmYWNlKCk7CisgICAgdGFyZ2V0U3VyZmFjZS0+Y2xlYXJM
YXllckxpc3QoKTsKKyAgICB0YXJnZXRTdXJmYWNlLT5kYW1hZ2VUcmFja2VyKCktPnVwZGF0ZURh
bWFnZVRyYWNraW5nU3RhdGUodGFyZ2V0U3VyZmFjZS0+bGF5ZXJMaXN0KCksIHRhcmdldFN1cmZh
Y2UtPm93bmluZ0xheWVySWQoKSwgZmFsc2UsIEludFJlY3QoKSwgMCk7CisKKyAgICAvLyBGSVhN
RTogY2hlY2sgdGhlIGRhbWFnZSByZWN0IGlzIGVtcHR5IGluIHRoaXMgY2FzZS4KKyAgICBGbG9h
dFJlY3QgZGFtYWdlUmVjdCA9IHRhcmdldFN1cmZhY2UtPmRhbWFnZVRyYWNrZXIoKS0+Y3VycmVu
dERhbWFnZVJlY3QoKTsKKyAgICBFWFBFQ1RfVFJVRShkYW1hZ2VSZWN0LmlzRW1wdHkoKSk7Cit9
CisKIH0gLy8gbmFtZXNwYWNlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133312</attachid>
            <date>2012-03-22 12:02:34 -0700</date>
            <delta_ts>2012-03-22 13:34:06 -0700</delta_ts>
            <desc>Addressed reviewers comments</desc>
            <filename>bug-81831-20120322120233.patch</filename>
            <type>text/plain</type>
            <size>10691</size>
            <attacher name="Shawn Singh">shawnsingh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExNzM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWZkZTIyNWIxZDI5NzM1
NWY4MWZhNzI1NjA1MzQ4NjBlNzlmOTYzMS4uZTE4M2NiYmVjZGY5MTIzMDdkOTQ3MjA1ZGU0YTE2
OGQwMmVlOTViZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTAzLTIyICBTaGF3
biBTaW5naCAgPHNoYXduc2luZ2hAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0g
TWFrZSBDQ0RhbWFnZVRyYWNrZXIgcm9idXN0IHRvIGVtcHR5IGxheWVyIGxpc3RzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTgzMQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIGEgdW5pdCB0ZXN0
IGluIENDRGFtYWdlVHJhY2tlclRlc3QgdGhhdCBjYXVzZXMgYSBjcmFzaCBpbgorICAgICAgICB0
aGUgb2xkIGNvZGUuIFdpdGggdGhpcyBwYXRjaCBhcHBsaWVkLCB0aGUgY3Jhc2ggd2lsbCBub3Qg
b2NjdXIuCisgICAgICAgIEluIHRoZW9yeSwgdGhhdCBjcmFzaCBzaG91bGQgbmV2ZXIgb2NjdXIg
YW55d2F5LCB1bmxlc3MgdGhlcmUgaXMgYQorICAgICAgICBidWcgb3V0c2lkZSB0aGUgZGFtYWdl
IHRyYWNrZXIsIGJ1dCBmb3Igcm9idXN0bmVzcyBpdCdzCisgICAgICAgIGFwcHJvcHJpYXRlIHRv
IGhhbmRsZSBpdCBwcm9wZXJseS4KKworICAgICAgICBJbiBhZGRpdGlvbiB0byB0aGlzIGZpeCwg
cGVyZm9ybWVkIHNvbWUgdHJpdmlhbCBtYWludGVuYW5jZSBvbiB0aGUKKyAgICAgICAgZGFtYWdl
IHRyYWNrZXIgY29kZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDRGFtYWdlVHJhY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ0RhbWFnZVRyYWNrZXI6
OnVwZGF0ZURhbWFnZVRyYWNraW5nU3RhdGUpOiByZW1vdmVkCisgICAgICAgIHVuY2xlYW4gY29k
ZSB0aGF0IGFjY2Vzc2VkIHRoZSB0YXJnZXRTdXJmYWNlIHRvIGdldCBuZWNlc3NhcnkKKyAgICAg
ICAgaW5mb3JtYXRpb24uIEluc3RlYWQsIHdlIG5vdyBwYXNzIHRob3NlIGFyZ3MgdGhyb3VnaCB0
aGUgZGFtYWdlCisgICAgICAgIHRyYWNrZXIncyBBUEkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ0RhbWFnZVRyYWNrZXIuaDoKKyAgICAgICAgKENDRGFtYWdl
VHJhY2tlcik6IG1vZGlmaWVkIGFyZ3MgcGFzc2VkIHRvIGRhbWFnZSB0cmFja2VyIG9uIHVwZGF0
ZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVl
SG9zdEltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0SW1wbDo6dHJh
Y2tEYW1hZ2VGb3JBbGxTdXJmYWNlcyk6CisgICAgICAgIG1vZGlmaWVkIGFyZ3MgcGFzc2VkIHRv
IGRhbWFnZSB0cmFja2VyIG9uIHVwZGF0ZS4KKwogMjAxMi0wMy0yMiAgSm9jZWx5biBUdXJjb3R0
ZSAgPGpvY2VseW4udHVyY290dGVAbm9raWEuY29tPgogCiAgICAgICAgIFRpbGVkQmFja2luZ1N0
b3JlOiBGaXggdGVzdCByZWdyZXNzaW9ucyB0aGF0IGFwcGVhcmVkIHdpdGggcjExMTU2MC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggYWExZjg4ODFjZDYxN2EzYTBhODUyZWZlNmE3MWJj
NTRjMWZjODE0Yy4uYTJmYWRhMTRjZjRkNTY4NjljYTM0YTZhMmJjYWNjYzZhNjQwODY3YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0wMy0yMiAgU2hh
d24gU2luZ2ggIDxzaGF3bnNpbmdoQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1d
IE1ha2UgQ0NEYW1hZ2VUcmFja2VyIHJvYnVzdCB0byBlbXB0eSBsYXllciBsaXN0cworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODE4MzEKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHRlc3RzL0NDRGFtYWdl
VHJhY2tlclRlc3QuY3BwOgorICAgICAgICAoV2ViS2l0VGVzdHM6OmVtdWxhdGVEcmF3aW5nT25l
RnJhbWUpOiBtb2RpZmllZCBhcmdzIHBhc3NlZCB0byBkYW1hZ2UgdHJhY2tlciBvbiB1cGRhdGUu
CisKKyAgICAgICAgKFdlYktpdFRlc3RzOjpURVNUX0YpOiBBZGRlZCBhbm90aGVyIHVuaXQgdGVz
dC4KKyAgICAgICAgKFdlYktpdFRlc3RzKToKKwogMjAxMi0wMy0yMiAgQmVybmhhcmQgQmF1ZXIg
IDxiYXVlcmJAZ29vZ2xlLmNvbT4KIAogICAgICAgICBbY2hyb21pdW1dIFBsdWctaW4gZmFpbGlu
ZyB0byBsb2FkIHNob3VsZG4ndCBzYXkgIk1pc3NpbmcgUGx1Zy1pbiIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRGFtYWdlVHJhY2tl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0Rh
bWFnZVRyYWNrZXIuY3BwCmluZGV4IDk2YzVhNWUxODI1Y2ZmZjQ5YmY5M2NjODYxNzcyZWFmOGY3
ZTczMGMuLjY2ZGE0ZGU4NTZkMmM0YzM3MmJkYmRlOGFkMGM0YmUzOWY2ZTY5NWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRGFtYWdl
VHJhY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NEYW1hZ2VUcmFja2VyLmNwcApAQCAtNTYsNyArNTYsNyBAQCBDQ0RhbWFnZVRyYWNr
ZXI6On5DQ0RhbWFnZVRyYWNrZXIoKQogewogfQogCi12b2lkIENDRGFtYWdlVHJhY2tlcjo6dXBk
YXRlRGFtYWdlVHJhY2tpbmdTdGF0ZShjb25zdCBWZWN0b3I8Q0NMYXllckltcGwqPiYgbGF5ZXJM
aXN0LCBpbnQgdGFyZ2V0U3VyZmFjZUxheWVySUQsIENDTGF5ZXJJbXBsKiB0YXJnZXRTdXJmYWNl
TWFza0xheWVyKQordm9pZCBDQ0RhbWFnZVRyYWNrZXI6OnVwZGF0ZURhbWFnZVRyYWNraW5nU3Rh
dGUoY29uc3QgVmVjdG9yPENDTGF5ZXJJbXBsKj4mIGxheWVyTGlzdCwgaW50IHRhcmdldFN1cmZh
Y2VMYXllcklELCBib29sIHRhcmdldFN1cmZhY2VQcm9wZXJ0eUNoYW5nZWRPbmx5RnJvbURlc2Nl
bmRhbnQsIGNvbnN0IEludFJlY3QmIHRhcmdldFN1cmZhY2VDb250ZW50UmVjdCwgQ0NMYXllcklt
cGwqIHRhcmdldFN1cmZhY2VNYXNrTGF5ZXIpCiB7CiAgICAgLy8KICAgICAvLyBUaGlzIGZ1bmN0
aW9uIGNvbXB1dGVzIHRoZSAiZGFtYWdlIHJlY3QiIG9mIGEgdGFyZ2V0IHN1cmZhY2UsIGFuZCB1
cGRhdGVzIHRoZSBzdGF0ZQpAQCAtNzEsMjAgKzcxLDIwIEBAIHZvaWQgQ0NEYW1hZ2VUcmFja2Vy
Ojp1cGRhdGVEYW1hZ2VUcmFja2luZ1N0YXRlKGNvbnN0IFZlY3RvcjxDQ0xheWVySW1wbCo+JiBs
YXllCiAgICAgLy8KICAgICAvLyBUaGUgYmFzaWMgYWxnb3JpdGhtIGZvciBjb21wdXRpbmcgdGhl
IGRhbWFnZSByZWdpb24gaXMgYXMgZm9sbG93czoKICAgICAvLwotICAgIC8vICAgICAgIC8vIDEu
IGNvbXB1dGUgZGFtYWdlIGNhdXNlZCBieSBjaGFuZ2VzIGluIGFjdGl2ZS9uZXcgbGF5ZXJzCisg
ICAgLy8gICAxLiBjb21wdXRlIGRhbWFnZSBjYXVzZWQgYnkgY2hhbmdlcyBpbiBhY3RpdmUvbmV3
IGxheWVycwogICAgIC8vICAgICAgIGZvciBlYWNoIGxheWVyIGluIHRoZSBsYXllckxpc3Q6CiAg
ICAgLy8gICAgICAgICAgIGlmIHRoZSBsYXllciBpcyBhY3R1YWxseSBhIHJlbmRlclN1cmZhY2U6
CiAgICAgLy8gICAgICAgICAgICAgICBhZGQgdGhlIHN1cmZhY2UncyBkYW1hZ2UgdG8gb3VyIHRh
cmdldCBzdXJmYWNlLgogICAgIC8vICAgICAgICAgICBlbHNlCiAgICAgLy8gICAgICAgICAgICAg
ICBhZGQgdGhlIGxheWVyJ3MgZGFtYWdlIHRvIHRoZSB0YXJnZXQgc3VyZmFjZS4KICAgICAvLwot
ICAgIC8vICAgICAgIC8vIDIuIGNvbXB1dGUgZGFtYWdlIGNhdXNlZCBieSB0aGUgdGFyZ2V0IHN1
cmZhY2UncyBtYXNrLCBpZiBpdCBleGlzdHMuCisgICAgLy8gICAyLiBjb21wdXRlIGRhbWFnZSBj
YXVzZWQgYnkgdGhlIHRhcmdldCBzdXJmYWNlJ3MgbWFzaywgaWYgaXQgZXhpc3RzLgogICAgIC8v
Ci0gICAgLy8gICAgICAgLy8gMy4gY29tcHV0ZSBkYW1hZ2UgY2F1c2VkIGJ5IG9sZCBsYXllcnMv
c3VyZmFjZXMgdGhhdCBubyBsb25nZXIgZXhpc3QKKyAgICAvLyAgIDMuIGNvbXB1dGUgZGFtYWdl
IGNhdXNlZCBieSBvbGQgbGF5ZXJzL3N1cmZhY2VzIHRoYXQgbm8gbG9uZ2VyIGV4aXN0CiAgICAg
Ly8gICAgICAgZm9yIGVhY2ggbGVmdG92ZXIgbGF5ZXI6CiAgICAgLy8gICAgICAgICAgIGFkZCB0
aGUgb2xkIGxheWVyL3N1cmZhY2UgYm91bmRzIHRvIHRoZSB0YXJnZXQgc3VyZmFjZSBkYW1hZ2Uu
CiAgICAgLy8KLSAgICAvLyAgICAgICAvLyA0LiBjb21iaW5lIGFsbCBwYXJ0aWFsIGRhbWFnZSBy
ZWN0cyB0byBnZXQgdGhlIGZ1bGwgZGFtYWdlIHJlY3QuCisgICAgLy8gICA0LiBjb21iaW5lIGFs
bCBwYXJ0aWFsIGRhbWFnZSByZWN0cyB0byBnZXQgdGhlIGZ1bGwgZGFtYWdlIHJlY3QuCiAgICAg
Ly8KICAgICAvLyBBZGRpdGlvbmFsIGltcG9ydGFudCBwb2ludHM6CiAgICAgLy8KQEAgLTEyOCwx
NiArMTI4LDExIEBAIHZvaWQgQ0NEYW1hZ2VUcmFja2VyOjp1cGRhdGVEYW1hZ2VUcmFja2luZ1N0
YXRlKGNvbnN0IFZlY3RvcjxDQ0xheWVySW1wbCo+JiBsYXllCiAgICAgRmxvYXRSZWN0IGRhbWFn
ZUZyb21TdXJmYWNlTWFzayA9IHRyYWNrRGFtYWdlRnJvbVN1cmZhY2VNYXNrKHRhcmdldFN1cmZh
Y2VNYXNrTGF5ZXIpOwogICAgIEZsb2F0UmVjdCBkYW1hZ2VGcm9tTGVmdG92ZXJSZWN0cyA9IHRy
YWNrRGFtYWdlRnJvbUxlZnRvdmVyUmVjdHMoKTsKIAotICAgIC8vIElmIHRoZSB0YXJnZXQgc3Vy
ZmFjZSBhbHJlYWR5IGtub3dzIGl0cyBlbnRpcmUgcmVnaW9uIGlzIGRhbWFnZWQsIHdlIGNhbiBy
ZXR1cm4gZWFybHkuCi0gICAgLy8gRklYTUU6IHRoaXMgc2hvdWxkIGdvIGF3YXksIG9yIHdpbGwg
YmUgY2xlYW5lciwgYWZ0ZXIgcmVmYWN0b3JpbmcgaW50byBSZW5kZXJQYXNzL1JlbmRlclNjaGVk
dWxlLgotICAgIENDTGF5ZXJJbXBsKiBsYXllciA9IGxheWVyTGlzdFswXTsKLSAgICBDQ1JlbmRl
clN1cmZhY2UqIHRhcmdldFN1cmZhY2UgPSBsYXllci0+dGFyZ2V0UmVuZGVyU3VyZmFjZSgpOwot
Ci0gICAgaWYgKG1fZm9yY2VGdWxsRGFtYWdlTmV4dFVwZGF0ZSB8fCB0YXJnZXRTdXJmYWNlLT5z
dXJmYWNlUHJvcGVydHlDaGFuZ2VkT25seUZyb21EZXNjZW5kYW50KCkpIHsKLSAgICAgICAgbV9j
dXJyZW50RGFtYWdlUmVjdCA9IEZsb2F0UmVjdCh0YXJnZXRTdXJmYWNlLT5jb250ZW50UmVjdCgp
KTsKKyAgICBpZiAobV9mb3JjZUZ1bGxEYW1hZ2VOZXh0VXBkYXRlIHx8IHRhcmdldFN1cmZhY2VQ
cm9wZXJ0eUNoYW5nZWRPbmx5RnJvbURlc2NlbmRhbnQpIHsKKyAgICAgICAgbV9jdXJyZW50RGFt
YWdlUmVjdCA9IHRhcmdldFN1cmZhY2VDb250ZW50UmVjdDsKICAgICAgICAgbV9mb3JjZUZ1bGxE
YW1hZ2VOZXh0VXBkYXRlID0gZmFsc2U7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgLy8gRklYTUU6
IGNhbiB3ZSBuZWVkIHRvIGNsYW1wIHRoaXMgZGFtYWdlIHRvIHRoZSBzdXJmYWNlJ3MgY29udGVu
dCByZWN0PyAoYWZmZWN0cyBwZXJmb3JtYW5jZSwgYnV0IG5vdCBjb3JyZWN0bmVzcykKKyAgICAg
ICAgLy8gRklYTUU6IGNhbiB3ZSBjbGFtcCB0aGlzIGRhbWFnZSB0byB0aGUgc3VyZmFjZSdzIGNv
bnRlbnQgcmVjdD8gKGFmZmVjdHMgcGVyZm9ybWFuY2UsIGJ1dCBub3QgY29ycmVjdG5lc3MpCiAg
ICAgICAgIG1fY3VycmVudERhbWFnZVJlY3QgPSBkYW1hZ2VGcm9tQWN0aXZlTGF5ZXJzOwogICAg
ICAgICBtX2N1cnJlbnREYW1hZ2VSZWN0LnVuaXRlSWZOb25aZXJvKGRhbWFnZUZyb21TdXJmYWNl
TWFzayk7CiAgICAgICAgIG1fY3VycmVudERhbWFnZVJlY3QudW5pdGVJZk5vblplcm8oZGFtYWdl
RnJvbUxlZnRvdmVyUmVjdHMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NEYW1hZ2VUcmFja2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0RhbWFnZVRyYWNrZXIuaAppbmRleCA3YTYy
OWM0NzgxMjgxYmU0ZGZhMWM0OWRkMTNiMTFlNGY5NTUwZjc2Li5mMWNmZDRmNzM2MDY4NDQ2NDEx
NGVhNGNmMmJlOGZlOGQwNzQ1YTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0RhbWFnZVRyYWNrZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0RhbWFnZVRyYWNrZXIuaApAQCAt
NDQsNyArNDQsNyBAQCBwdWJsaWM6CiAgICAgfkNDRGFtYWdlVHJhY2tlcigpOwogCiAgICAgdm9p
ZCBmb3JjZUZ1bGxEYW1hZ2VOZXh0VXBkYXRlKCkgeyBtX2ZvcmNlRnVsbERhbWFnZU5leHRVcGRh
dGUgPSB0cnVlOyB9Ci0gICAgdm9pZCB1cGRhdGVEYW1hZ2VUcmFja2luZ1N0YXRlKGNvbnN0IFZl
Y3RvcjxDQ0xheWVySW1wbCo+JiBsYXllckxpc3QsIGludCB0YXJnZXRTdXJmYWNlTGF5ZXJJRCwg
Q0NMYXllckltcGwqIHRhcmdldFN1cmZhY2VNYXNrTGF5ZXIpOworICAgIHZvaWQgdXBkYXRlRGFt
YWdlVHJhY2tpbmdTdGF0ZShjb25zdCBWZWN0b3I8Q0NMYXllckltcGwqPiYgbGF5ZXJMaXN0LCBp
bnQgdGFyZ2V0U3VyZmFjZUxheWVySUQsIGJvb2wgdGFyZ2V0U3VyZmFjZVByb3BlcnR5Q2hhbmdl
ZE9ubHlGcm9tRGVzY2VuZGFudCwgY29uc3QgSW50UmVjdCYgdGFyZ2V0U3VyZmFjZUNvbnRlbnRS
ZWN0LCBDQ0xheWVySW1wbCogdGFyZ2V0U3VyZmFjZU1hc2tMYXllcik7CiAgICAgY29uc3QgRmxv
YXRSZWN0JiBjdXJyZW50RGFtYWdlUmVjdCgpIHsgcmV0dXJuIG1fY3VycmVudERhbWFnZVJlY3Q7
IH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5jcHAKaW5k
ZXggNDQzYTFmZmFhNzdiYTBlZTUyMDI5ZGYwZTNhYjE0OTY3ZjRjNTJkYi4uOWM3YzNlZGM2NWNl
MTY0MzdkMjY1NTYwMWQ1M2JmZDBmZWFiZTEzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRy
ZWVIb3N0SW1wbC5jcHAKQEAgLTE5Niw3ICsxOTYsNyBAQCB2b2lkIENDTGF5ZXJUcmVlSG9zdElt
cGw6OnRyYWNrRGFtYWdlRm9yQWxsU3VyZmFjZXMoQ0NMYXllckltcGwqIHJvb3REcmF3TGF5ZXIs
CiAgICAgICAgIENDTGF5ZXJJbXBsKiByZW5kZXJTdXJmYWNlTGF5ZXIgPSByZW5kZXJTdXJmYWNl
TGF5ZXJMaXN0W3N1cmZhY2VJbmRleF07CiAgICAgICAgIENDUmVuZGVyU3VyZmFjZSogcmVuZGVy
U3VyZmFjZSA9IHJlbmRlclN1cmZhY2VMYXllci0+cmVuZGVyU3VyZmFjZSgpOwogICAgICAgICBB
U1NFUlQocmVuZGVyU3VyZmFjZSk7Ci0gICAgICAgIHJlbmRlclN1cmZhY2UtPmRhbWFnZVRyYWNr
ZXIoKS0+dXBkYXRlRGFtYWdlVHJhY2tpbmdTdGF0ZShyZW5kZXJTdXJmYWNlLT5sYXllckxpc3Qo
KSwgcmVuZGVyU3VyZmFjZUxheWVyLT5pZCgpLCByZW5kZXJTdXJmYWNlTGF5ZXItPm1hc2tMYXll
cigpKTsKKyAgICAgICAgcmVuZGVyU3VyZmFjZS0+ZGFtYWdlVHJhY2tlcigpLT51cGRhdGVEYW1h
Z2VUcmFja2luZ1N0YXRlKHJlbmRlclN1cmZhY2UtPmxheWVyTGlzdCgpLCByZW5kZXJTdXJmYWNl
TGF5ZXItPmlkKCksIHJlbmRlclN1cmZhY2UtPnN1cmZhY2VQcm9wZXJ0eUNoYW5nZWRPbmx5RnJv
bURlc2NlbmRhbnQoKSwgcmVuZGVyU3VyZmFjZS0+Y29udGVudFJlY3QoKSwgcmVuZGVyU3VyZmFj
ZUxheWVyLT5tYXNrTGF5ZXIoKSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL0NDRGFtYWdlVHJhY2tlclRlc3QuY3BwIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS90ZXN0cy9DQ0RhbWFnZVRyYWNrZXJUZXN0LmNwcAppbmRleCA3NGQ2MzViNDBk
NzE3NTMwZDc2YjljODI0NDRiYzZkYjJkNzM0MWI5Li4wOWRlYjk2NWViMmMwNjI1ZmZmM2U4NjNk
YzMxYmQ4YWU2ZmQ5MDBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L0NDRGFtYWdlVHJhY2tlclRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVz
dHMvQ0NEYW1hZ2VUcmFja2VyVGVzdC5jcHAKQEAgLTcwLDcgKzcwLDcgQEAgdm9pZCBlbXVsYXRl
RHJhd2luZ09uZUZyYW1lKENDTGF5ZXJJbXBsKiByb290KQogICAgIC8vIEl0ZXJhdGUgYmFjay10
by1mcm9udCwgc28gdGhhdCBkYW1hZ2UgY29ycmVjdGx5IHByb3BhZ2F0ZXMgZnJvbSBkZXNjZW5k
YW50IHN1cmZhY2VzIHRvIGFuY2VzdG9ycy4KICAgICBmb3IgKGludCBpID0gcmVuZGVyU3VyZmFj
ZUxheWVyTGlzdC5zaXplKCkgLSAxOyBpID49IDA7IC0taSkgewogICAgICAgICBDQ1JlbmRlclN1
cmZhY2UqIHRhcmdldFN1cmZhY2UgPSByZW5kZXJTdXJmYWNlTGF5ZXJMaXN0W2ldLT5yZW5kZXJT
dXJmYWNlKCk7Ci0gICAgICAgIHRhcmdldFN1cmZhY2UtPmRhbWFnZVRyYWNrZXIoKS0+dXBkYXRl
RGFtYWdlVHJhY2tpbmdTdGF0ZSh0YXJnZXRTdXJmYWNlLT5sYXllckxpc3QoKSwgdGFyZ2V0U3Vy
ZmFjZS0+b3duaW5nTGF5ZXJJZCgpLCByZW5kZXJTdXJmYWNlTGF5ZXJMaXN0W2ldLT5tYXNrTGF5
ZXIoKSk7CisgICAgICAgIHRhcmdldFN1cmZhY2UtPmRhbWFnZVRyYWNrZXIoKS0+dXBkYXRlRGFt
YWdlVHJhY2tpbmdTdGF0ZSh0YXJnZXRTdXJmYWNlLT5sYXllckxpc3QoKSwgdGFyZ2V0U3VyZmFj
ZS0+b3duaW5nTGF5ZXJJZCgpLCB0YXJnZXRTdXJmYWNlLT5zdXJmYWNlUHJvcGVydHlDaGFuZ2Vk
T25seUZyb21EZXNjZW5kYW50KCksIHRhcmdldFN1cmZhY2UtPmNvbnRlbnRSZWN0KCksIHJlbmRl
clN1cmZhY2VMYXllckxpc3RbaV0tPm1hc2tMYXllcigpKTsKICAgICB9CiAKICAgICByb290LT5y
ZXNldEFsbENoYW5nZVRyYWNraW5nRm9yU3VidHJlZSgpOwpAQCAtNzY3LDcgKzc2Nyw3IEBAIFRF
U1RfRihDQ0RhbWFnZVRyYWNrZXJUZXN0LCB2ZXJpZnlEYW1hZ2VGb3JSZXBsaWNhTWFzaykKICAg
ICBFWFBFQ1RfRkxPQVRfUkVDVF9FUShGbG9hdFJlY3QoMTk0LCAyMDAsIDYsIDgpLCBjaGlsZERh
bWFnZVJlY3QpOwogfQogCi1URVNUX0YoQ0NEYW1hZ2VUcmFja2VyVGVzdCwgdmVyaWZ5RGFtYWdl
V2hlblJlc2V0KQorVEVTVF9GKENDRGFtYWdlVHJhY2tlclRlc3QsIHZlcmlmeURhbWFnZVdoZW5G
b3JjZWRGdWxsRGFtYWdlKQogewogICAgIE93blB0cjxDQ0xheWVySW1wbD4gcm9vdCA9IGNyZWF0
ZUFuZFNldFVwVGVzdFRyZWVXaXRoT25lU3VyZmFjZSgpOwogICAgIENDTGF5ZXJJbXBsKiBjaGls
ZCA9IHJvb3QtPmNoaWxkcmVuKClbMF0uZ2V0KCk7CkBAIC03OTAsNCArNzkwLDIxIEBAIFRFU1Rf
RihDQ0RhbWFnZVRyYWNrZXJUZXN0LCB2ZXJpZnlEYW1hZ2VXaGVuUmVzZXQpCiAgICAgRVhQRUNU
X0ZMT0FUX1JFQ1RfRVEoRmxvYXRSZWN0KDAsIDAsIDUwMCwgNTAwKSwgcm9vdERhbWFnZVJlY3Qp
OwogfQogCitURVNUX0YoQ0NEYW1hZ2VUcmFja2VyVGVzdCwgdmVyaWZ5RGFtYWdlRm9yRW1wdHlM
YXllckxpc3QpCit7CisgICAgLy8gVGhvdWdoIGl0IHNob3VsZCBuZXZlciBoYXBwZW4sIGl0cyBh
IGdvb2QgaWRlYSB0byB2ZXJpZnkgdGhhdCB0aGUgZGFtYWdlIHRyYWNrZXIKKyAgICAvLyBkb2Vz
IG5vdCBjcmFzaCB3aGVuIGl0IHJlY2VpdmVzIGFuIGVtcHR5IGxheWVyTGlzdC4KKworICAgIE93
blB0cjxDQ0xheWVySW1wbD4gcm9vdCA9IENDTGF5ZXJJbXBsOjpjcmVhdGUoMSk7CisgICAgcm9v
dC0+Y3JlYXRlUmVuZGVyU3VyZmFjZSgpOworCisgICAgQVNTRVJUX1RSVUUocm9vdC0+cmVuZGVy
U3VyZmFjZSgpID09IHJvb3QtPnRhcmdldFJlbmRlclN1cmZhY2UoKSk7CisgICAgQ0NSZW5kZXJT
dXJmYWNlKiB0YXJnZXRTdXJmYWNlID0gcm9vdC0+cmVuZGVyU3VyZmFjZSgpOworICAgIHRhcmdl
dFN1cmZhY2UtPmNsZWFyTGF5ZXJMaXN0KCk7CisgICAgdGFyZ2V0U3VyZmFjZS0+ZGFtYWdlVHJh
Y2tlcigpLT51cGRhdGVEYW1hZ2VUcmFja2luZ1N0YXRlKHRhcmdldFN1cmZhY2UtPmxheWVyTGlz
dCgpLCB0YXJnZXRTdXJmYWNlLT5vd25pbmdMYXllcklkKCksIGZhbHNlLCBJbnRSZWN0KCksIDAp
OworCisgICAgRmxvYXRSZWN0IGRhbWFnZVJlY3QgPSB0YXJnZXRTdXJmYWNlLT5kYW1hZ2VUcmFj
a2VyKCktPmN1cnJlbnREYW1hZ2VSZWN0KCk7CisgICAgRVhQRUNUX1RSVUUoZGFtYWdlUmVjdC5p
c0VtcHR5KCkpOworfQorCiB9IC8vIG5hbWVzcGFjZQo=
</data>
<flag name="review"
          id="137270"
          type_id="1"
          status="+"
          setter="enne"
    />
          </attachment>
      

    </bug>

</bugzilla>