<?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>91555</bug_id>
          
          <creation_ts>2012-07-17 16:31:42 -0700</creation_ts>
          <short_desc>[chromium] Ubercomp: clean up CCRenderer interface</short_desc>
          <delta_ts>2012-07-19 10:37:33 -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>1</everconfirmed>
          <reporter name="Alexandre Elias">aelias</reporter>
          <assigned_to name="Alexandre Elias">aelias</assigned_to>
          <cc>aelias</cc>
    
    <cc>cc-bugs</cc>
    
    <cc>danakj</cc>
    
    <cc>enne</cc>
    
    <cc>jamesr</cc>
    
    <cc>japhet</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>671734</commentid>
    <comment_count>0</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2012-07-17 16:31:42 -0700</bug_when>
    <thetext>[chromium] Ubercomp: clean up CCRenderer interface</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671746</commentid>
    <comment_count>1</comment_count>
      <attachid>152873</attachid>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2012-07-17 16:41:04 -0700</bug_when>
    <thetext>Created attachment 152873
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671747</commentid>
    <comment_count>2</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2012-07-17 16:41:24 -0700</bug_when>
    <thetext>This is an small cleanup to reduce boilerplate in the ubercomp implementation.  When CCHeadsUpDisplay is better integrated into LayerRendererChromium, we should make private finishDrawingFrame() as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672321</commentid>
    <comment_count>3</comment_count>
      <attachid>152873</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-07-18 06:41:05 -0700</bug_when>
    <thetext>Comment on attachment 152873
Patch

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

&gt; Source/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp:368
&gt; +        renderPass-&gt;targetSurface()-&gt;damageTracker()-&gt;didDrawDamagedArea();

This won&apos;t be able to stay here obviously, once targetSurface() is gone. So if we are going to do this, we have to guarantee that every render pass given to drawFrame() is actually drawn. I&apos;m not sure that this is going to make our lives easier.. I&apos;m currently adding another piece to the code in CCLTHI::drawLayers() that would then go here. But it really belongs there. CCLTHI manages the RenderPasses, LRC just draws them.

So overall, I feel like this is not going to help us and isn&apos;t worth removing one method from the API. :/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672710</commentid>
    <comment_count>4</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2012-07-18 13:38:29 -0700</bug_when>
    <thetext>For ubercomp, I was going to have to stash away pointers to the renderpasses as they came in, reconstruct the render pass list, and then do the actual work in finishDrawingFrame().  It seems to me that the one-at-a-time model is an implementation detail of OpenGL.  Why shouldn&apos;t we make sure that the only renderpasses sent to CCRenderer will be actually drawn; that seems like a good idea anyway?

We can still do some work on the side in CCLTHI; I&apos;m fine with moving the didDrawDamaged area back there in a loop over the render passes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672718</commentid>
    <comment_count>5</comment_count>
      <attachid>153082</attachid>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2012-07-18 13:49:40 -0700</bug_when>
    <thetext>Created attachment 153082
Patch

Move didDrawDamagedArea back to LTHI</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672758</commentid>
    <comment_count>6</comment_count>
      <attachid>153082</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-07-18 14:28:32 -0700</bug_when>
    <thetext>Comment on attachment 153082
Patch

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

R=me.

&gt; Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:555
&gt; +    m_layerRenderer-&gt;drawFrame(frame.renderPasses, m_rootScissorRect);
&gt; +    if (m_headsUpDisplay-&gt;enabled(settings()))
&gt; +        m_headsUpDisplay-&gt;draw(this);
&gt; +    m_layerRenderer-&gt;finishDrawingFrame();

It&apos;s a little weird to me to have this asymmetric finish function without an exposed begin, but I understand that you need to draw some extra stuff in the frame here.  The heads up display is a little bit of a wart, and I&apos;m not sure if it should be generating quads or be completely contained within LRC or something else.  Refactoring for the future, I guess.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672857</commentid>
    <comment_count>7</comment_count>
      <attachid>153082</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-18 15:33:19 -0700</bug_when>
    <thetext>Comment on attachment 153082
Patch

Clearing flags on attachment: 153082

Committed r123033: &lt;http://trac.webkit.org/changeset/123033&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672858</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-18 15:33:32 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>673629</commentid>
    <comment_count>9</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-07-19 10:17:36 -0700</bug_when>
    <thetext>Reverted r123036 for reason:

Triggers some DCHECKs in Chromium browser_tests

Committed r123120: &lt;http://trac.webkit.org/changeset/123120&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>673630</commentid>
    <comment_count>10</comment_count>
      <attachid>153082</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-07-19 10:20:18 -0700</bug_when>
    <thetext>Comment on attachment 153082
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:555
&gt;&gt; +    m_layerRenderer-&gt;finishDrawingFrame();
&gt; 
&gt; It&apos;s a little weird to me to have this asymmetric finish function without an exposed begin, but I understand that you need to draw some extra stuff in the frame here.  The heads up display is a little bit of a wart, and I&apos;m not sure if it should be generating quads or be completely contained within LRC or something else.  Refactoring for the future, I guess.

Making quads I think so a child renderer can display a hud.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>673648</commentid>
    <comment_count>11</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-07-19 10:37:33 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Reverted r123036 for reason:
&gt; 
&gt; Triggers some DCHECKs in Chromium browser_tests
&gt; 
&gt; Committed r123120: &lt;http://trac.webkit.org/changeset/123120&gt;

The ChangeLog got mangled, it wasn&apos;t this bug that got reverted.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152873</attachid>
            <date>2012-07-17 16:41:04 -0700</date>
            <delta_ts>2012-07-18 13:49:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91555-20120717164103.patch</filename>
            <type>text/plain</type>
            <size>14474</size>
            <attacher name="Alexandre Elias">aelias</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyODY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDg3MTVkY2IxYWYwYzg0
NzBmZjhkNzMxYTVkN2M4MjFmMzE3NjNkMC4uZGNkMjgxMTUxY2ZiZGQ4YjQwZWUwZmViOGFmZDll
YzVkY2RiZjdjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTA3LTE3ICBBbGV4
YW5kcmUgRWxpYXMgIDxhZWxpYXNAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIFVi
ZXJjb21wOiBjbGVhbiB1cCBDQ1JlbmRlcmVyIGludGVyZmFjZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTE1NTUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJIHJlcGxhY2VkIHRoZSBvbmUtYnktb25lIFJl
bmRlclBhc3MgY2FsbHMgd2l0aCBhIG5ldyBkcmF3RnJhbWUoKQorICAgICAgICBtZXRob2QgdGhh
dCBkaXJlY3RseSB0YWtlcyBhIENDUmVuZGVyUGFzc0xpc3QsIGFuZCBtb3ZlZCBhIHNtYWxsCisg
ICAgICAgIGFtb3VudCBvZiBjb2RlIGZyb20gQ0NMYXllclRyZWVIb3N0SW1wbCB0byBpbXBsZW1l
bnQgaXQuICBJbiB1YmVyY29tcAorICAgICAgICBtb2RlLCB3ZSB3aWxsIHByb2R1Y2UgYSBmcmFt
ZSBidW5kbGUgcmF0aGVyIHRoYW4gYSBjb21tYW5kLXN0cmVhbSwgc28KKyAgICAgICAgdGhlIGZ1
bGwgbGlzdCBpcyBlYXNpZXIgdG8gd29yayB3aXRoLgorCisgICAgICAgIEFsc28sIGdpdmUgZW1w
dHkgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbnMgZm9yIHRoZSBtZXRob2RzIHRoYXQgZG9uJ3QKKyAg
ICAgICAgbmVlZCB0byBkbyBhbnl0aGluZyBpbiBhIG5vbi1HTCBjb250ZXh0LCBhbmQgbWFrZSBw
cml2YXRlCisgICAgICAgIHNldFNjaXNzb3JUb1JlY3QuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
IChuby1vcCByZWZhY3RvcmluZykuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJS
ZW5kZXJlckNocm9taXVtOjpkcmF3RnJhbWUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmg6Cisg
ICAgICAgIChMYXllclJlbmRlcmVyQ2hyb21pdW0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q0NMYXllclRyZWVIb3N0SW1wbDo6ZHJhd0xheWVycyk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NSZW5kZXJlci5oOgorICAgICAgICAoV2ViQ29yZTo6Q0NS
ZW5kZXJlcjo6dmlld3BvcnRDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkNDUmVuZGVyZXI6
OmRlY2lkZVJlbmRlclBhc3NBbGxvY2F0aW9uc0ZvckZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6
OkNDUmVuZGVyZXI6OmhhdmVDYWNoZWRSZXNvdXJjZXNGb3JSZW5kZXJQYXNzSWQpOgorICAgICAg
ICAoQ0NSZW5kZXJlcik6CisgICAgICAgIChXZWJDb3JlOjpDQ1JlbmRlcmVyOjpmaW5pc2hEcmF3
aW5nRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6Q0NSZW5kZXJlcjo6ZG9Ob09wKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNDUmVuZGVyZXI6OmlzQ29udGV4dExvc3QpOgorCiAyMDEyLTA3LTE3ICBF
bWlsIEEgRWtsdW5kICA8ZWFlQGNocm9taXVtLm9yZz4KIAogICAgICAgICBJbmNvcnJlY3Qgb2Zm
c2V0IHVzZWQgZm9yIHNjcm9sbFdpZHRoL0hlaWdodCBjYWxjdWxhdGlvbgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwppbmRleCBmMTE1MTk4OTliMGMyZDUyZGFhNTNhNzEwOGE3NzQ1Nzg5NzliYjE2
Li41NWRiMGY1NGUzMWQzMWFmZDEwYWJjMDBiYmNjMjZmMWQ4YTQ3N2EwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTA3LTE3ICBBbGV4YW5kcmUgRWxp
YXMgIDxhZWxpYXNAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIFViZXJjb21wOiBj
bGVhbiB1cCBDQ1JlbmRlcmVyIGludGVyZmFjZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTE1NTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBJIHJlcGxhY2VkIHRoZSBvbmUtYnktb25lIFJlbmRlclBhc3Mg
Y2FsbHMgd2l0aCBhIG5ldyBkcmF3RnJhbWUoKQorICAgICAgICBtZXRob2QgdGhhdCBkaXJlY3Rs
eSB0YWtlcyBhIENDUmVuZGVyUGFzc0xpc3QsIGFuZCBtb3ZlZCBhIHNtYWxsCisgICAgICAgIGFt
b3VudCBvZiBjb2RlIGZyb20gQ0NMYXllclRyZWVIb3N0SW1wbCB0byBpbXBsZW1lbnQgaXQuICBJ
biB1YmVyY29tcAorICAgICAgICBtb2RlLCB3ZSB3aWxsIHByb2R1Y2UgYSBmcmFtZSBidW5kbGUg
cmF0aGVyIHRoYW4gYSBjb21tYW5kLXN0cmVhbSwgc28KKyAgICAgICAgdGhlIGZ1bGwgbGlzdCBp
cyBlYXNpZXIgdG8gd29yayB3aXRoLgorCisgICAgICAgIEFsc28sIGdpdmUgZW1wdHkgZGVmYXVs
dCBpbXBsZW1lbnRhdGlvbnMgZm9yIHRoZSBtZXRob2RzIHRoYXQgZG9uJ3QKKyAgICAgICAgbmVl
ZCB0byBkbyBhbnl0aGluZyBpbiBhIG5vbi1HTCBjb250ZXh0LCBhbmQgbWFrZSBwcml2YXRlCisg
ICAgICAgIHNldFNjaXNzb3JUb1JlY3QuCisKKyAgICAgICAgKiB0ZXN0cy9MYXllclJlbmRlcmVy
Q2hyb21pdW1UZXN0LmNwcDoKKyAgICAgICAgKEZha2VDQ1JlbmRlcmVyQ2xpZW50OjpGYWtlQ0NS
ZW5kZXJlckNsaWVudCk6CisgICAgICAgIChGYWtlQ0NSZW5kZXJlckNsaWVudDo6cmVuZGVyUGFz
c2VzKToKKyAgICAgICAgKEZha2VDQ1JlbmRlcmVyQ2xpZW50KToKKyAgICAgICAgKFRFU1RfRik6
CisgICAgICAgIChURVNUKToKKwogMjAxMi0wNy0xNyAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuICBSb2xsZWQgREVQUy4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJD
aHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9M
YXllclJlbmRlcmVyQ2hyb21pdW0uY3BwCmluZGV4IGE3MjY3NDE0MGVhYzQwN2EyNzJiNWY0YmRh
ZDY2MTVlNTRiYTU0MWEuLjNhZGM0Mzc3YmU2NWE2YmViYjZhMTBkNGNmNjY2YTAwNWFkMTliM2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xh
eWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcApAQCAtNDYsNiArNDYsNyBA
QAogI2luY2x1ZGUgIlRocm90dGxlZFRleHR1cmVVcGxvYWRlci5oIgogI2luY2x1ZGUgIlRyYWNl
RXZlbnQuaCIKICNpbmNsdWRlICJUcmFja2luZ1RleHR1cmVBbGxvY2F0b3IuaCIKKyNpbmNsdWRl
ICJjYy9DQ0RhbWFnZVRyYWNrZXIuaCIKICNpbmNsdWRlICJjYy9DQ0xheWVyUXVhZC5oIgogI2lu
Y2x1ZGUgImNjL0NDTWF0aFV0aWwuaCIKICNpbmNsdWRlICJjYy9DQ1Byb3h5LmgiCkBAIC0zNTMs
NiArMzU0LDIxIEBAIGJvb2wgTGF5ZXJSZW5kZXJlckNocm9taXVtOjpoYXZlQ2FjaGVkUmVzb3Vy
Y2VzRm9yUmVuZGVyUGFzc0lkKGludCBpZCkgY29uc3QKICAgICByZXR1cm4gdGV4dHVyZSAmJiB0
ZXh0dXJlLT5pZCgpOwogfQogCit2b2lkIExheWVyUmVuZGVyZXJDaHJvbWl1bTo6ZHJhd0ZyYW1l
KGNvbnN0IENDUmVuZGVyUGFzc0xpc3QmIHJlbmRlclBhc3NlcywgY29uc3QgRmxvYXRSZWN0JiBy
b290U2Npc3NvclJlY3QpCit7CisgICAgY29uc3QgQ0NSZW5kZXJQYXNzKiByb290UmVuZGVyUGFz
cyA9IHJlbmRlclBhc3Nlcy5sYXN0KCk7CisgICAgYmVnaW5EcmF3aW5nRnJhbWUocm9vdFJlbmRl
clBhc3MpOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCByZW5kZXJQYXNzZXMuc2l6ZSgp
OyArK2kpIHsKKyAgICAgICAgY29uc3QgQ0NSZW5kZXJQYXNzKiByZW5kZXJQYXNzID0gcmVuZGVy
UGFzc2VzW2ldOworCisgICAgICAgIEZsb2F0UmVjdCByb290U2Npc3NvclJlY3RJbkN1cnJlbnRT
dXJmYWNlID0gcmVuZGVyUGFzcy0+dGFyZ2V0U3VyZmFjZSgpLT5jb21wdXRlUm9vdFNjaXNzb3JS
ZWN0SW5DdXJyZW50U3VyZmFjZShyb290U2Npc3NvclJlY3QpOworICAgICAgICBkcmF3UmVuZGVy
UGFzcyhyZW5kZXJQYXNzLCByb290U2Npc3NvclJlY3RJbkN1cnJlbnRTdXJmYWNlKTsKKworICAg
ICAgICByZW5kZXJQYXNzLT50YXJnZXRTdXJmYWNlKCktPmRhbWFnZVRyYWNrZXIoKS0+ZGlkRHJh
d0RhbWFnZWRBcmVhKCk7CisgICAgfQorfQorCiB2b2lkIExheWVyUmVuZGVyZXJDaHJvbWl1bTo6
YmVnaW5EcmF3aW5nRnJhbWUoY29uc3QgQ0NSZW5kZXJQYXNzKiByb290UmVuZGVyUGFzcykKIHsK
ICAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgb25jZSBmcmFtZWJ1ZmZlciBpcyBhdXRvbWF0aWNh
bGx5IHJlY3JlYXRlZCBvbiBmaXJzdCB1c2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVt
LmgKaW5kZXggNDE1NTIwZDdmZDllOTM4MWU2NWU1MDNmYTliNzNmYjVmOWQ5OGNjZC4uYTg5MDZj
NGRjYTI1MWFmZjJjNTM0ZGU4M2I1NTAyMGJkNjMxMThmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5k
ZXJlckNocm9taXVtLmgKQEAgLTgxLDggKzgxLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBkZWNpZGVSZW5kZXJQYXNzQWxsb2NhdGlvbnNGb3JGcmFtZShjb25zdCBDQ1JlbmRlclBhc3NM
aXN0JikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGhhdmVDYWNoZWRSZXNvdXJjZXNGb3JS
ZW5kZXJQYXNzSWQoaW50IGlkKSBjb25zdCBPVkVSUklERTsKIAotICAgIHZpcnR1YWwgdm9pZCBi
ZWdpbkRyYXdpbmdGcmFtZShjb25zdCBDQ1JlbmRlclBhc3MqIGRlZmF1bHRSZW5kZXJQYXNzKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZHJhd1JlbmRlclBhc3MoY29uc3QgQ0NSZW5kZXJQ
YXNzKiwgY29uc3QgRmxvYXRSZWN0JiBmcmFtZWJ1ZmZlckRhbWFnZVJlY3QpIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgdm9pZCBkcmF3RnJhbWUoY29uc3QgQ0NSZW5kZXJQYXNzTGlzdCYsIGNvbnN0
IEZsb2F0UmVjdCYgcm9vdFNjaXNzb3JSZWN0KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQg
ZmluaXNoRHJhd2luZ0ZyYW1lKCkgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIHZvaWQgZHJhd0hl
YWRzVXBEaXNwbGF5KGNvbnN0IENDU2NvcGVkVGV4dHVyZSosIGNvbnN0IEludFNpemUmIGh1ZFNp
emUpIE9WRVJSSURFOwpAQCAtMTA2LDggKzEwNSw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFRl
eHR1cmVBbGxvY2F0b3IqIGltcGxUZXh0dXJlQWxsb2NhdG9yKCkgY29uc3QgT1ZFUlJJREUgeyBy
ZXR1cm4gbV9pbXBsVGV4dHVyZUFsbG9jYXRvci5nZXQoKTsgfQogICAgIHZpcnR1YWwgVGV4dHVy
ZUFsbG9jYXRvciogY29udGVudHNUZXh0dXJlQWxsb2NhdG9yKCkgY29uc3QgT1ZFUlJJREUgeyBy
ZXR1cm4gbV9jb250ZW50c1RleHR1cmVBbGxvY2F0b3IuZ2V0KCk7IH0KIAotICAgIHZpcnR1YWwg
dm9pZCBzZXRTY2lzc29yVG9SZWN0KGNvbnN0IEludFJlY3QmKSBPVkVSUklERTsKLQogICAgIHZp
cnR1YWwgYm9vbCBpc0NvbnRleHRMb3N0KCkgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIHZvaWQg
c2V0VmlzaWJsZShib29sKSBPVkVSUklERTsKQEAgLTEyOCw2ICsxMjUsOSBAQCBwcm90ZWN0ZWQ6
CiBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIHRvR0xNYXRyaXgoZmxvYXQqLCBjb25zdCBXZWJL
aXQ6OldlYlRyYW5zZm9ybWF0aW9uTWF0cml4Jik7CiAKKyAgICB2b2lkIGJlZ2luRHJhd2luZ0Zy
YW1lKGNvbnN0IENDUmVuZGVyUGFzcyogcm9vdFJlbmRlclBhc3MpOworICAgIHZvaWQgZHJhd1Jl
bmRlclBhc3MoY29uc3QgQ0NSZW5kZXJQYXNzKiwgY29uc3QgRmxvYXRSZWN0JiBmcmFtZWJ1ZmZl
ckRhbWFnZVJlY3QpOworCiAgICAgdm9pZCBkcmF3UXVhZChjb25zdCBDQ0RyYXdRdWFkKik7CiAg
ICAgdm9pZCBkcmF3Q2hlY2tlcmJvYXJkUXVhZChjb25zdCBDQ0NoZWNrZXJib2FyZERyYXdRdWFk
Kik7CiAgICAgdm9pZCBkcmF3RGVidWdCb3JkZXJRdWFkKGNvbnN0IENDRGVidWdCb3JkZXJEcmF3
UXVhZCopOwpAQCAtMTQwLDYgKzE0MCw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkcmF3VGlsZVF1
YWQoY29uc3QgQ0NUaWxlRHJhd1F1YWQqKTsKICAgICB2b2lkIGRyYXdZVVZWaWRlb1F1YWQoY29u
c3QgQ0NZVVZWaWRlb0RyYXdRdWFkKik7CiAKKyAgICB2b2lkIHNldFNjaXNzb3JUb1JlY3QoY29u
c3QgSW50UmVjdCYpOworCiAgICAgdm9pZCBzZXREcmF3RnJhbWVidWZmZXJSZWN0KGNvbnN0IElu
dFJlY3QmLCBib29sIGZsaXBZKTsKIAogICAgIC8vIFRoZSBjdXJyZW50IGRyYXdpbmcgdGFyZ2V0
IGlzIGVpdGhlciBhIFJlbmRlclBhc3Mgb3IgU2NvcGVkVGV4dHVyZS4gVXNlIHRoZXNlIGZ1bmN0
aW9ucyB0byBzd2l0Y2ggdG8gYSBuZXcgZHJhd2luZyB0YXJnZXQuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJ
bXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
TGF5ZXJUcmVlSG9zdEltcGwuY3BwCmluZGV4IDA0YmI3ODY3MTU5ZDc2ODgzMjA4Njk0OWM0Yzky
ODY3YmE0MThlOWIuLmQyZGZmZjYxNDlkNzVjY2JiNGI5ZDM0Njk3MDA2ZmRlZmUzN2FiYTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
TGF5ZXJUcmVlSG9zdEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuY3BwCkBAIC01NDcsMzAgKzU0Nywx
NiBAQCB2b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OmRyYXdMYXllcnMoY29uc3QgRnJhbWVEYXRh
JiBmcmFtZSkKICAgICAvLyBGSVhNRTogdXNlIHRoZSBmcmFtZSBiZWdpbiB0aW1lIGZyb20gdGhl
IG92ZXJhbGwgY29tcG9zaXRvciBzY2hlZHVsZXIuCiAgICAgLy8gVGhpcyB2YWx1ZSBpcyBjdXJy
ZW50bHkgaW5hY2Nlc3NpYmxlIGJlY2F1c2UgaXQgaXMgdXAgaW4gQ2hyb21pdW0ncwogICAgIC8v
IFJlbmRlcldpZGdldC4KLQotICAgIC8vIFRoZSByb290IFJlbmRlclBhc3MgaXMgdGhlIGxhc3Qg
b25lIHRvIGJlIGRyYXduLgotICAgIGNvbnN0IENDUmVuZGVyUGFzcyogcm9vdFJlbmRlclBhc3Mg
PSBmcmFtZS5yZW5kZXJQYXNzZXMubGFzdCgpOwotCiAgICAgbV9mcHNDb3VudGVyLT5tYXJrQmVn
aW5uaW5nT2ZGcmFtZShjdXJyZW50VGltZSgpKTsKLSAgICBtX2xheWVyUmVuZGVyZXItPmJlZ2lu
RHJhd2luZ0ZyYW1lKHJvb3RSZW5kZXJQYXNzKTsKLQotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgZnJhbWUucmVuZGVyUGFzc2VzLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIGNvbnN0IENDUmVu
ZGVyUGFzcyogcmVuZGVyUGFzcyA9IGZyYW1lLnJlbmRlclBhc3Nlc1tpXTsKLQotICAgICAgICBG
bG9hdFJlY3Qgcm9vdFNjaXNzb3JSZWN0SW5DdXJyZW50U3VyZmFjZSA9IHJlbmRlclBhc3MtPnRh
cmdldFN1cmZhY2UoKS0+Y29tcHV0ZVJvb3RTY2lzc29yUmVjdEluQ3VycmVudFN1cmZhY2UobV9y
b290U2Npc3NvclJlY3QpOwotICAgICAgICBtX2xheWVyUmVuZGVyZXItPmRyYXdSZW5kZXJQYXNz
KHJlbmRlclBhc3MsIHJvb3RTY2lzc29yUmVjdEluQ3VycmVudFN1cmZhY2UpOwotCi0gICAgICAg
IHJlbmRlclBhc3MtPnRhcmdldFN1cmZhY2UoKS0+ZGFtYWdlVHJhY2tlcigpLT5kaWREcmF3RGFt
YWdlZEFyZWEoKTsKLSAgICB9Ci0KLSAgICBpZiAobV9kZWJ1Z1JlY3RIaXN0b3J5LT5lbmFibGVk
KHNldHRpbmdzKCkpKQotICAgICAgICBtX2RlYnVnUmVjdEhpc3RvcnktPnNhdmVEZWJ1Z1JlY3Rz
Rm9yQ3VycmVudEZyYW1lKG1fcm9vdExheWVySW1wbC5nZXQoKSwgKmZyYW1lLnJlbmRlclN1cmZh
Y2VMYXllckxpc3QsIGZyYW1lLm9jY2x1ZGluZ1NjcmVlblNwYWNlUmVjdHMsIHNldHRpbmdzKCkp
OwogCisgICAgbV9sYXllclJlbmRlcmVyLT5kcmF3RnJhbWUoZnJhbWUucmVuZGVyUGFzc2VzLCBt
X3Jvb3RTY2lzc29yUmVjdCk7CiAgICAgaWYgKG1faGVhZHNVcERpc3BsYXktPmVuYWJsZWQoc2V0
dGluZ3MoKSkpCiAgICAgICAgIG1faGVhZHNVcERpc3BsYXktPmRyYXcodGhpcyk7Ci0KICAgICBt
X2xheWVyUmVuZGVyZXItPmZpbmlzaERyYXdpbmdGcmFtZSgpOwogCisgICAgaWYgKG1fZGVidWdS
ZWN0SGlzdG9yeS0+ZW5hYmxlZChzZXR0aW5ncygpKSkKKyAgICAgICAgbV9kZWJ1Z1JlY3RIaXN0
b3J5LT5zYXZlRGVidWdSZWN0c0ZvckN1cnJlbnRGcmFtZShtX3Jvb3RMYXllckltcGwuZ2V0KCks
ICpmcmFtZS5yZW5kZXJTdXJmYWNlTGF5ZXJMaXN0LCBmcmFtZS5vY2NsdWRpbmdTY3JlZW5TcGFj
ZVJlY3RzLCBzZXR0aW5ncygpKTsKKwogICAgICsrbV9zb3VyY2VBbmltYXRpb25GcmFtZU51bWJl
cjsKIAogICAgIC8vIFRoZSBuZXh0IGZyYW1lIHNob3VsZCBzdGFydCBieSBhc3N1bWluZyBub3Ro
aW5nIGhhcyBjaGFuZ2VkLCBhbmQgY2hhbmdlcyBhcmUgbm90ZWQgYXMgdGhleSBvY2N1ci4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
UmVuZGVyZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDUmVuZGVyZXIuaAppbmRleCBkZWQwZWZkYzM4ZWY5MzFhZmIzMDE3ZTI3MDJmNWM3ZjJkMTA0
ZjkwLi42YjA1ZDk0OTRjMmMxZDg2MGIyOWI3NjNkZGJhNGQ2YTFjZTIyNGZlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1JlbmRlcmVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NS
ZW5kZXJlci5oCkBAIC02NywyNCArNjcsMjMgQEAgcHVibGljOgogICAgIGludCB2aWV3cG9ydFdp
ZHRoKCkgeyByZXR1cm4gdmlld3BvcnRTaXplKCkud2lkdGgoKTsgfQogICAgIGludCB2aWV3cG9y
dEhlaWdodCgpIHsgcmV0dXJuIHZpZXdwb3J0U2l6ZSgpLmhlaWdodCgpOyB9CiAKLSAgICB2aXJ0
dWFsIHZvaWQgdmlld3BvcnRDaGFuZ2VkKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB2aWV3cG9y
dENoYW5nZWQoKSB7IH0KIAogICAgIGNvbnN0IFdlYktpdDo6V2ViVHJhbnNmb3JtYXRpb25NYXRy
aXgmIHByb2plY3Rpb25NYXRyaXgoKSBjb25zdCB7IHJldHVybiBtX3Byb2plY3Rpb25NYXRyaXg7
IH0KICAgICBjb25zdCBXZWJLaXQ6OldlYlRyYW5zZm9ybWF0aW9uTWF0cml4JiB3aW5kb3dNYXRy
aXgoKSBjb25zdCB7IHJldHVybiBtX3dpbmRvd01hdHJpeDsgfQogCi0gICAgdmlydHVhbCB2b2lk
IGRlY2lkZVJlbmRlclBhc3NBbGxvY2F0aW9uc0ZvckZyYW1lKGNvbnN0IENDUmVuZGVyUGFzc0xp
c3QmKSA9IDA7Ci0gICAgdmlydHVhbCBib29sIGhhdmVDYWNoZWRSZXNvdXJjZXNGb3JSZW5kZXJQ
YXNzSWQoaW50KSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRlY2lkZVJlbmRlclBhc3NB
bGxvY2F0aW9uc0ZvckZyYW1lKGNvbnN0IENDUmVuZGVyUGFzc0xpc3QmKSB7IH0KKyAgICB2aXJ0
dWFsIGJvb2wgaGF2ZUNhY2hlZFJlc291cmNlc0ZvclJlbmRlclBhc3NJZChpbnQpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgYmVnaW5EcmF3aW5nRnJhbWUoY29u
c3QgQ0NSZW5kZXJQYXNzKiBkZWZhdWx0UmVuZGVyUGFzcykgPSAwOwotICAgIHZpcnR1YWwgdm9p
ZCBkcmF3UmVuZGVyUGFzcyhjb25zdCBDQ1JlbmRlclBhc3MqLCBjb25zdCBGbG9hdFJlY3QmIHJv
b3RTY2lzc29yUmVjdEluQ3VycmVudFBhc3MpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZmluaXNo
RHJhd2luZ0ZyYW1lKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkcmF3RnJhbWUoY29uc3QgQ0NS
ZW5kZXJQYXNzTGlzdCYsIGNvbnN0IEZsb2F0UmVjdCYgcm9vdFNjaXNzb3JSZWN0KSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIGZpbmlzaERyYXdpbmdGcmFtZSgpIHsgfQogCiAgICAgdmlydHVhbCB2
b2lkIGRyYXdIZWFkc1VwRGlzcGxheShjb25zdCBDQ1Njb3BlZFRleHR1cmUqLCBjb25zdCBJbnRT
aXplJiBodWRTaXplKSA9IDA7CiAKICAgICAvLyB3YWl0cyBmb3IgcmVuZGVyaW5nIHRvIGZpbmlz
aAogICAgIHZpcnR1YWwgdm9pZCBmaW5pc2goKSA9IDA7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZG9O
b09wKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkb05vT3AoKSB7IH0KICAgICAvLyBwdXRzIGJh
Y2tidWZmZXIgb25zY3JlZW4KICAgICB2aXJ0dWFsIGJvb2wgc3dhcEJ1ZmZlcnMoY29uc3QgSW50
UmVjdCYgc3ViQnVmZmVyKSA9IDA7CiAKQEAgLTk1LDkgKzk0LDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgVGV4dHVyZUFsbG9jYXRvciogaW1wbFRleHR1cmVBbGxvY2F0b3IoKSBjb25zdCA9IDA7
CiAgICAgdmlydHVhbCBUZXh0dXJlQWxsb2NhdG9yKiBjb250ZW50c1RleHR1cmVBbGxvY2F0b3Io
KSBjb25zdCA9IDA7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0U2Npc3NvclRvUmVjdChjb25zdCBJ
bnRSZWN0JikgPSAwOwotCi0gICAgdmlydHVhbCBib29sIGlzQ29udGV4dExvc3QoKSA9IDA7Cisg
ICAgdmlydHVhbCBib29sIGlzQ29udGV4dExvc3QoKSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAg
dmlydHVhbCB2b2lkIHNldFZpc2libGUoYm9vbCkgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL0xheWVyUmVuZGVyZXJDaHJvbWl1bVRlc3QuY3BwIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9MYXllclJlbmRlcmVyQ2hyb21pdW1UZXN0LmNwcApp
bmRleCA3Y2RiYTgwOWNlMmI2NzkwYjMyZmM5Yjk5NTA4MjNkYjQwZDA5OTRhLi4xNDFiNzE5YmJm
M2Q5ZjMzMzcwMDAzNjc5NGFmM2UzNWI3NmQ5Y2Q0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL0xheWVyUmVuZGVyZXJDaHJvbWl1bVRlc3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTGF5ZXJSZW5kZXJlckNocm9taXVtVGVzdC5jcHAKQEAg
LTgxLDYgKzgxLDcgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgbV9yb290TGF5ZXItPmNyZWF0
ZVJlbmRlclN1cmZhY2UoKTsKICAgICAgICAgbV9yb290UmVuZGVyUGFzcyA9IENDUmVuZGVyUGFz
czo6Y3JlYXRlKG1fcm9vdExheWVyLT5yZW5kZXJTdXJmYWNlKCksIG1fcm9vdExheWVyLT5pZCgp
KTsKKyAgICAgICAgbV9yZW5kZXJQYXNzZXMuYXBwZW5kKG1fcm9vdFJlbmRlclBhc3MuZ2V0KCkp
OwogICAgIH0KIAogICAgIC8vIENDUmVuZGVyZXJDbGllbnQgbWV0aG9kcy4KQEAgLTk2LDYgKzk3
LDcgQEAgcHVibGljOgogICAgIGludCBzZXRGdWxsUm9vdExheWVyRGFtYWdlQ291bnQoKSBjb25z
dCB7IHJldHVybiBtX3NldEZ1bGxSb290TGF5ZXJEYW1hZ2VDb3VudDsgfQogCiAgICAgQ0NSZW5k
ZXJQYXNzKiByb290UmVuZGVyUGFzcygpIHsgcmV0dXJuIG1fcm9vdFJlbmRlclBhc3MuZ2V0KCk7
IH0KKyAgICBjb25zdCBDQ1JlbmRlclBhc3NMaXN0JiByZW5kZXJQYXNzZXMoKSB7IHJldHVybiBt
X3JlbmRlclBhc3NlczsgfQogCiAgICAgc2l6ZV90IG1lbW9yeUFsbG9jYXRpb25MaW1pdEJ5dGVz
KCkgY29uc3QgeyByZXR1cm4gbV9tZW1vcnlBbGxvY2F0aW9uTGltaXRCeXRlczsgfQogCkBAIC0x
MDQsNiArMTA2LDcgQEAgcHJpdmF0ZToKICAgICBEZWJ1Z1Njb3BlZFNldEltcGxUaHJlYWQgbV9p
bXBsVGhyZWFkOwogICAgIE93blB0cjxDQ0xheWVySW1wbD4gbV9yb290TGF5ZXI7CiAgICAgT3du
UHRyPENDUmVuZGVyUGFzcz4gbV9yb290UmVuZGVyUGFzczsKKyAgICBDQ1JlbmRlclBhc3NMaXN0
IG1fcmVuZGVyUGFzc2VzOwogICAgIHNpemVfdCBtX21lbW9yeUFsbG9jYXRpb25MaW1pdEJ5dGVz
OwogfTsKIApAQCAtMjE1LDcgKzIxOCw3IEBAIFRFU1RfRihMYXllclJlbmRlcmVyQ2hyb21pdW1U
ZXN0LCBEaXNjYXJkZWRCYWNrYnVmZmVySXNSZWNyZWF0ZWRGb3JTY29wZUR1cmF0aW9uCiAgICAg
RVhQRUNUX0VRKDEsIG1fbW9ja0NsaWVudC5zZXRGdWxsUm9vdExheWVyRGFtYWdlQ291bnQoKSk7
CiAKICAgICBtX2xheWVyUmVuZGVyZXJDaHJvbWl1bS5zZXRWaXNpYmxlKHRydWUpOwotICAgIG1f
bGF5ZXJSZW5kZXJlckNocm9taXVtLmJlZ2luRHJhd2luZ0ZyYW1lKG1fbW9ja0NsaWVudC5yb290
UmVuZGVyUGFzcygpKTsKKyAgICBtX2xheWVyUmVuZGVyZXJDaHJvbWl1bS5kcmF3RnJhbWUobV9t
b2NrQ2xpZW50LnJlbmRlclBhc3NlcygpLCBGbG9hdFJlY3QoKSk7CiAgICAgRVhQRUNUX0ZBTFNF
KG1fbGF5ZXJSZW5kZXJlckNocm9taXVtLmlzRnJhbWVidWZmZXJEaXNjYXJkZWQoKSk7CiAKICAg
ICBzd2FwQnVmZmVycygpOwpAQCAtMjMwLDcgKzIzMyw3IEBAIFRFU1RfRihMYXllclJlbmRlcmVy
Q2hyb21pdW1UZXN0LCBGcmFtZWJ1ZmZlckRpc2NhcmRlZEFmdGVyUmVhZGJhY2tXaGVuTm90Vmlz
aWJsCiAgICAgRVhQRUNUX0VRKDEsIG1fbW9ja0NsaWVudC5zZXRGdWxsUm9vdExheWVyRGFtYWdl
Q291bnQoKSk7CiAKICAgICBjaGFyIHBpeGVsc1s0XTsKLSAgICBtX2xheWVyUmVuZGVyZXJDaHJv
bWl1bS5iZWdpbkRyYXdpbmdGcmFtZShtX21vY2tDbGllbnQucm9vdFJlbmRlclBhc3MoKSk7Cisg
ICAgbV9sYXllclJlbmRlcmVyQ2hyb21pdW0uZHJhd0ZyYW1lKG1fbW9ja0NsaWVudC5yZW5kZXJQ
YXNzZXMoKSwgRmxvYXRSZWN0KCkpOwogICAgIEVYUEVDVF9GQUxTRShtX2xheWVyUmVuZGVyZXJD
aHJvbWl1bS5pc0ZyYW1lYnVmZmVyRGlzY2FyZGVkKCkpOwogCiAgICAgbV9sYXllclJlbmRlcmVy
Q2hyb21pdW0uZ2V0RnJhbWVidWZmZXJQaXhlbHMocGl4ZWxzLCBJbnRSZWN0KDAsIDAsIDEsIDEp
KTsKQEAgLTQwNiw4ICs0MDksNyBAQCBURVNUKExheWVyUmVuZGVyZXJDaHJvbWl1bVRlc3QyLCBv
cGFxdWVCYWNrZ3JvdW5kKQogCiAgICAgRVhQRUNUX1RSVUUobGF5ZXJSZW5kZXJlckNocm9taXVt
LmluaXRpYWxpemUoKSk7CiAKLSAgICBsYXllclJlbmRlcmVyQ2hyb21pdW0uYmVnaW5EcmF3aW5n
RnJhbWUobW9ja0NsaWVudC5yb290UmVuZGVyUGFzcygpKTsKLSAgICBsYXllclJlbmRlcmVyQ2hy
b21pdW0uZHJhd1JlbmRlclBhc3MobW9ja0NsaWVudC5yb290UmVuZGVyUGFzcygpLCBGbG9hdFJl
Y3QoKSk7CisgICAgbGF5ZXJSZW5kZXJlckNocm9taXVtLmRyYXdGcmFtZShtb2NrQ2xpZW50LnJl
bmRlclBhc3NlcygpLCBGbG9hdFJlY3QoKSk7CiAgICAgbGF5ZXJSZW5kZXJlckNocm9taXVtLmZp
bmlzaERyYXdpbmdGcmFtZSgpOwogCiAgICAgLy8gT24gREVCVUcgYnVpbGRzLCByZW5kZXIgcGFz
c2VzIHdpdGggb3BhcXVlIGJhY2tncm91bmQgY2xlYXIgdG8gYmx1ZSB0bwpAQCAtNDI5LDggKzQz
MSw3IEBAIFRFU1QoTGF5ZXJSZW5kZXJlckNocm9taXVtVGVzdDIsIHRyYW5zcGFyZW50QmFja2dy
b3VuZCkKIAogICAgIEVYUEVDVF9UUlVFKGxheWVyUmVuZGVyZXJDaHJvbWl1bS5pbml0aWFsaXpl
KCkpOwogCi0gICAgbGF5ZXJSZW5kZXJlckNocm9taXVtLmJlZ2luRHJhd2luZ0ZyYW1lKG1vY2tD
bGllbnQucm9vdFJlbmRlclBhc3MoKSk7Ci0gICAgbGF5ZXJSZW5kZXJlckNocm9taXVtLmRyYXdS
ZW5kZXJQYXNzKG1vY2tDbGllbnQucm9vdFJlbmRlclBhc3MoKSwgRmxvYXRSZWN0KCkpOworICAg
IGxheWVyUmVuZGVyZXJDaHJvbWl1bS5kcmF3RnJhbWUobW9ja0NsaWVudC5yZW5kZXJQYXNzZXMo
KSwgRmxvYXRSZWN0KCkpOwogICAgIGxheWVyUmVuZGVyZXJDaHJvbWl1bS5maW5pc2hEcmF3aW5n
RnJhbWUoKTsKIAogICAgIEVYUEVDVF9FUSgxLCBjb250ZXh0LT5jbGVhckNvdW50KCkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>153082</attachid>
            <date>2012-07-18 13:49:40 -0700</date>
            <delta_ts>2012-07-19 10:20:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91555-20120718134939.patch</filename>
            <type>text/plain</type>
            <size>14469</size>
            <attacher name="Alexandre Elias">aelias</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyODY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDg3MTVkY2IxYWYwYzg0
NzBmZjhkNzMxYTVkN2M4MjFmMzE3NjNkMC4uZGNkMjgxMTUxY2ZiZGQ4YjQwZWUwZmViOGFmZDll
YzVkY2RiZjdjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTA3LTE3ICBBbGV4
YW5kcmUgRWxpYXMgIDxhZWxpYXNAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIFVi
ZXJjb21wOiBjbGVhbiB1cCBDQ1JlbmRlcmVyIGludGVyZmFjZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTE1NTUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJIHJlcGxhY2VkIHRoZSBvbmUtYnktb25lIFJl
bmRlclBhc3MgY2FsbHMgd2l0aCBhIG5ldyBkcmF3RnJhbWUoKQorICAgICAgICBtZXRob2QgdGhh
dCBkaXJlY3RseSB0YWtlcyBhIENDUmVuZGVyUGFzc0xpc3QsIGFuZCBtb3ZlZCBhIHNtYWxsCisg
ICAgICAgIGFtb3VudCBvZiBjb2RlIGZyb20gQ0NMYXllclRyZWVIb3N0SW1wbCB0byBpbXBsZW1l
bnQgaXQuICBJbiB1YmVyY29tcAorICAgICAgICBtb2RlLCB3ZSB3aWxsIHByb2R1Y2UgYSBmcmFt
ZSBidW5kbGUgcmF0aGVyIHRoYW4gYSBjb21tYW5kLXN0cmVhbSwgc28KKyAgICAgICAgdGhlIGZ1
bGwgbGlzdCBpcyBlYXNpZXIgdG8gd29yayB3aXRoLgorCisgICAgICAgIEFsc28sIGdpdmUgZW1w
dHkgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbnMgZm9yIHRoZSBtZXRob2RzIHRoYXQgZG9uJ3QKKyAg
ICAgICAgbmVlZCB0byBkbyBhbnl0aGluZyBpbiBhIG5vbi1HTCBjb250ZXh0LCBhbmQgbWFrZSBw
cml2YXRlCisgICAgICAgIHNldFNjaXNzb3JUb1JlY3QuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
IChuby1vcCByZWZhY3RvcmluZykuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJS
ZW5kZXJlckNocm9taXVtOjpkcmF3RnJhbWUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmg6Cisg
ICAgICAgIChMYXllclJlbmRlcmVyQ2hyb21pdW0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q0NMYXllclRyZWVIb3N0SW1wbDo6ZHJhd0xheWVycyk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NSZW5kZXJlci5oOgorICAgICAgICAoV2ViQ29yZTo6Q0NS
ZW5kZXJlcjo6dmlld3BvcnRDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkNDUmVuZGVyZXI6
OmRlY2lkZVJlbmRlclBhc3NBbGxvY2F0aW9uc0ZvckZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6
OkNDUmVuZGVyZXI6OmhhdmVDYWNoZWRSZXNvdXJjZXNGb3JSZW5kZXJQYXNzSWQpOgorICAgICAg
ICAoQ0NSZW5kZXJlcik6CisgICAgICAgIChXZWJDb3JlOjpDQ1JlbmRlcmVyOjpmaW5pc2hEcmF3
aW5nRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6Q0NSZW5kZXJlcjo6ZG9Ob09wKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNDUmVuZGVyZXI6OmlzQ29udGV4dExvc3QpOgorCiAyMDEyLTA3LTE3ICBF
bWlsIEEgRWtsdW5kICA8ZWFlQGNocm9taXVtLm9yZz4KIAogICAgICAgICBJbmNvcnJlY3Qgb2Zm
c2V0IHVzZWQgZm9yIHNjcm9sbFdpZHRoL0hlaWdodCBjYWxjdWxhdGlvbgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwppbmRleCBmMTE1MTk4OTliMGMyZDUyZGFhNTNhNzEwOGE3NzQ1Nzg5NzliYjE2
Li41NWRiMGY1NGUzMWQzMWFmZDEwYWJjMDBiYmNjMjZmMWQ4YTQ3N2EwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTA3LTE3ICBBbGV4YW5kcmUgRWxp
YXMgIDxhZWxpYXNAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIFViZXJjb21wOiBj
bGVhbiB1cCBDQ1JlbmRlcmVyIGludGVyZmFjZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTE1NTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBJIHJlcGxhY2VkIHRoZSBvbmUtYnktb25lIFJlbmRlclBhc3Mg
Y2FsbHMgd2l0aCBhIG5ldyBkcmF3RnJhbWUoKQorICAgICAgICBtZXRob2QgdGhhdCBkaXJlY3Rs
eSB0YWtlcyBhIENDUmVuZGVyUGFzc0xpc3QsIGFuZCBtb3ZlZCBhIHNtYWxsCisgICAgICAgIGFt
b3VudCBvZiBjb2RlIGZyb20gQ0NMYXllclRyZWVIb3N0SW1wbCB0byBpbXBsZW1lbnQgaXQuICBJ
biB1YmVyY29tcAorICAgICAgICBtb2RlLCB3ZSB3aWxsIHByb2R1Y2UgYSBmcmFtZSBidW5kbGUg
cmF0aGVyIHRoYW4gYSBjb21tYW5kLXN0cmVhbSwgc28KKyAgICAgICAgdGhlIGZ1bGwgbGlzdCBp
cyBlYXNpZXIgdG8gd29yayB3aXRoLgorCisgICAgICAgIEFsc28sIGdpdmUgZW1wdHkgZGVmYXVs
dCBpbXBsZW1lbnRhdGlvbnMgZm9yIHRoZSBtZXRob2RzIHRoYXQgZG9uJ3QKKyAgICAgICAgbmVl
ZCB0byBkbyBhbnl0aGluZyBpbiBhIG5vbi1HTCBjb250ZXh0LCBhbmQgbWFrZSBwcml2YXRlCisg
ICAgICAgIHNldFNjaXNzb3JUb1JlY3QuCisKKyAgICAgICAgKiB0ZXN0cy9MYXllclJlbmRlcmVy
Q2hyb21pdW1UZXN0LmNwcDoKKyAgICAgICAgKEZha2VDQ1JlbmRlcmVyQ2xpZW50OjpGYWtlQ0NS
ZW5kZXJlckNsaWVudCk6CisgICAgICAgIChGYWtlQ0NSZW5kZXJlckNsaWVudDo6cmVuZGVyUGFz
c2VzKToKKyAgICAgICAgKEZha2VDQ1JlbmRlcmVyQ2xpZW50KToKKyAgICAgICAgKFRFU1RfRik6
CisgICAgICAgIChURVNUKToKKwogMjAxMi0wNy0xNyAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuICBSb2xsZWQgREVQUy4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJD
aHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9M
YXllclJlbmRlcmVyQ2hyb21pdW0uY3BwCmluZGV4IGE3MjY3NDE0MGVhYzQwN2EyNzJiNWY0YmRh
ZDY2MTVlNTRiYTU0MWEuLjliNDAyOTcxZmQ3ZTdjZTcwYjI2NTljNDY4OGJiNDhhMTg5MDE2NmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xh
eWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcApAQCAtNDYsNiArNDYsNyBA
QAogI2luY2x1ZGUgIlRocm90dGxlZFRleHR1cmVVcGxvYWRlci5oIgogI2luY2x1ZGUgIlRyYWNl
RXZlbnQuaCIKICNpbmNsdWRlICJUcmFja2luZ1RleHR1cmVBbGxvY2F0b3IuaCIKKyNpbmNsdWRl
ICJjYy9DQ0RhbWFnZVRyYWNrZXIuaCIKICNpbmNsdWRlICJjYy9DQ0xheWVyUXVhZC5oIgogI2lu
Y2x1ZGUgImNjL0NDTWF0aFV0aWwuaCIKICNpbmNsdWRlICJjYy9DQ1Byb3h5LmgiCkBAIC0zNTMs
NiArMzU0LDE5IEBAIGJvb2wgTGF5ZXJSZW5kZXJlckNocm9taXVtOjpoYXZlQ2FjaGVkUmVzb3Vy
Y2VzRm9yUmVuZGVyUGFzc0lkKGludCBpZCkgY29uc3QKICAgICByZXR1cm4gdGV4dHVyZSAmJiB0
ZXh0dXJlLT5pZCgpOwogfQogCit2b2lkIExheWVyUmVuZGVyZXJDaHJvbWl1bTo6ZHJhd0ZyYW1l
KGNvbnN0IENDUmVuZGVyUGFzc0xpc3QmIHJlbmRlclBhc3NlcywgY29uc3QgRmxvYXRSZWN0JiBy
b290U2Npc3NvclJlY3QpCit7CisgICAgY29uc3QgQ0NSZW5kZXJQYXNzKiByb290UmVuZGVyUGFz
cyA9IHJlbmRlclBhc3Nlcy5sYXN0KCk7CisgICAgYmVnaW5EcmF3aW5nRnJhbWUocm9vdFJlbmRl
clBhc3MpOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCByZW5kZXJQYXNzZXMuc2l6ZSgp
OyArK2kpIHsKKyAgICAgICAgY29uc3QgQ0NSZW5kZXJQYXNzKiByZW5kZXJQYXNzID0gcmVuZGVy
UGFzc2VzW2ldOworCisgICAgICAgIEZsb2F0UmVjdCByb290U2Npc3NvclJlY3RJbkN1cnJlbnRT
dXJmYWNlID0gcmVuZGVyUGFzcy0+dGFyZ2V0U3VyZmFjZSgpLT5jb21wdXRlUm9vdFNjaXNzb3JS
ZWN0SW5DdXJyZW50U3VyZmFjZShyb290U2Npc3NvclJlY3QpOworICAgICAgICBkcmF3UmVuZGVy
UGFzcyhyZW5kZXJQYXNzLCByb290U2Npc3NvclJlY3RJbkN1cnJlbnRTdXJmYWNlKTsKKyAgICB9
Cit9CisKIHZvaWQgTGF5ZXJSZW5kZXJlckNocm9taXVtOjpiZWdpbkRyYXdpbmdGcmFtZShjb25z
dCBDQ1JlbmRlclBhc3MqIHJvb3RSZW5kZXJQYXNzKQogewogICAgIC8vIEZJWE1FOiBSZW1vdmUg
dGhpcyBvbmNlIGZyYW1lYnVmZmVyIGlzIGF1dG9tYXRpY2FsbHkgcmVjcmVhdGVkIG9uIGZpcnN0
IHVzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uaAppbmRleCA0MTU1MjBkN2ZkOWU5
MzgxZTY1ZTUwM2ZhOWI3M2ZiNWY5ZDk4Y2NkLi5hODkwNmM0ZGNhMjUxYWZmMmM1MzRkZTgzYjU1
MDIwYmQ2MzExOGY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uaApAQCAtODEs
OCArODEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRlY2lkZVJlbmRlclBhc3NBbGxv
Y2F0aW9uc0ZvckZyYW1lKGNvbnN0IENDUmVuZGVyUGFzc0xpc3QmKSBPVkVSUklERTsKICAgICB2
aXJ0dWFsIGJvb2wgaGF2ZUNhY2hlZFJlc291cmNlc0ZvclJlbmRlclBhc3NJZChpbnQgaWQpIGNv
bnN0IE9WRVJSSURFOwogCi0gICAgdmlydHVhbCB2b2lkIGJlZ2luRHJhd2luZ0ZyYW1lKGNvbnN0
IENDUmVuZGVyUGFzcyogZGVmYXVsdFJlbmRlclBhc3MpIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCBkcmF3UmVuZGVyUGFzcyhjb25zdCBDQ1JlbmRlclBhc3MqLCBjb25zdCBGbG9hdFJlY3Qm
IGZyYW1lYnVmZmVyRGFtYWdlUmVjdCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRyYXdG
cmFtZShjb25zdCBDQ1JlbmRlclBhc3NMaXN0JiwgY29uc3QgRmxvYXRSZWN0JiByb290U2Npc3Nv
clJlY3QpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBmaW5pc2hEcmF3aW5nRnJhbWUoKSBP
VkVSUklERTsKIAogICAgIHZpcnR1YWwgdm9pZCBkcmF3SGVhZHNVcERpc3BsYXkoY29uc3QgQ0NT
Y29wZWRUZXh0dXJlKiwgY29uc3QgSW50U2l6ZSYgaHVkU2l6ZSkgT1ZFUlJJREU7CkBAIC0xMDYs
OCArMTA1LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgVGV4dHVyZUFsbG9jYXRvciogaW1wbFRl
eHR1cmVBbGxvY2F0b3IoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX2ltcGxUZXh0dXJlQWxs
b2NhdG9yLmdldCgpOyB9CiAgICAgdmlydHVhbCBUZXh0dXJlQWxsb2NhdG9yKiBjb250ZW50c1Rl
eHR1cmVBbGxvY2F0b3IoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX2NvbnRlbnRzVGV4dHVy
ZUFsbG9jYXRvci5nZXQoKTsgfQogCi0gICAgdmlydHVhbCB2b2lkIHNldFNjaXNzb3JUb1JlY3Qo
Y29uc3QgSW50UmVjdCYpIE9WRVJSSURFOwotCiAgICAgdmlydHVhbCBib29sIGlzQ29udGV4dExv
c3QoKSBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRWaXNpYmxlKGJvb2wpIE9WRVJS
SURFOwpAQCAtMTI4LDYgKzEyNSw5IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgc3RhdGlj
IHZvaWQgdG9HTE1hdHJpeChmbG9hdCosIGNvbnN0IFdlYktpdDo6V2ViVHJhbnNmb3JtYXRpb25N
YXRyaXgmKTsKIAorICAgIHZvaWQgYmVnaW5EcmF3aW5nRnJhbWUoY29uc3QgQ0NSZW5kZXJQYXNz
KiByb290UmVuZGVyUGFzcyk7CisgICAgdm9pZCBkcmF3UmVuZGVyUGFzcyhjb25zdCBDQ1JlbmRl
clBhc3MqLCBjb25zdCBGbG9hdFJlY3QmIGZyYW1lYnVmZmVyRGFtYWdlUmVjdCk7CisKICAgICB2
b2lkIGRyYXdRdWFkKGNvbnN0IENDRHJhd1F1YWQqKTsKICAgICB2b2lkIGRyYXdDaGVja2VyYm9h
cmRRdWFkKGNvbnN0IENDQ2hlY2tlcmJvYXJkRHJhd1F1YWQqKTsKICAgICB2b2lkIGRyYXdEZWJ1
Z0JvcmRlclF1YWQoY29uc3QgQ0NEZWJ1Z0JvcmRlckRyYXdRdWFkKik7CkBAIC0xNDAsNiArMTQw
LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGRyYXdUaWxlUXVhZChjb25zdCBDQ1RpbGVEcmF3UXVh
ZCopOwogICAgIHZvaWQgZHJhd1lVVlZpZGVvUXVhZChjb25zdCBDQ1lVVlZpZGVvRHJhd1F1YWQq
KTsKIAorICAgIHZvaWQgc2V0U2Npc3NvclRvUmVjdChjb25zdCBJbnRSZWN0Jik7CisKICAgICB2
b2lkIHNldERyYXdGcmFtZWJ1ZmZlclJlY3QoY29uc3QgSW50UmVjdCYsIGJvb2wgZmxpcFkpOwog
CiAgICAgLy8gVGhlIGN1cnJlbnQgZHJhd2luZyB0YXJnZXQgaXMgZWl0aGVyIGEgUmVuZGVyUGFz
cyBvciBTY29wZWRUZXh0dXJlLiBVc2UgdGhlc2UgZnVuY3Rpb25zIHRvIHN3aXRjaCB0byBhIG5l
dyBkcmF3aW5nIHRhcmdldC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5jcHAK
aW5kZXggMDRiYjc4NjcxNTlkNzY4ODMyMDg2OTQ5YzRjOTI4NjdiYTQxOGU5Yi4uMjAwOGQ5ZjI4
YmEzN2I1MzdjZjRmNzE1NmE3YWQ2NTBhYjE5N2M1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXll
clRyZWVIb3N0SW1wbC5jcHAKQEAgLTU0NywzMCArNTQ3LDE5IEBAIHZvaWQgQ0NMYXllclRyZWVI
b3N0SW1wbDo6ZHJhd0xheWVycyhjb25zdCBGcmFtZURhdGEmIGZyYW1lKQogICAgIC8vIEZJWE1F
OiB1c2UgdGhlIGZyYW1lIGJlZ2luIHRpbWUgZnJvbSB0aGUgb3ZlcmFsbCBjb21wb3NpdG9yIHNj
aGVkdWxlci4KICAgICAvLyBUaGlzIHZhbHVlIGlzIGN1cnJlbnRseSBpbmFjY2Vzc2libGUgYmVj
YXVzZSBpdCBpcyB1cCBpbiBDaHJvbWl1bSdzCiAgICAgLy8gUmVuZGVyV2lkZ2V0LgotCi0gICAg
Ly8gVGhlIHJvb3QgUmVuZGVyUGFzcyBpcyB0aGUgbGFzdCBvbmUgdG8gYmUgZHJhd24uCi0gICAg
Y29uc3QgQ0NSZW5kZXJQYXNzKiByb290UmVuZGVyUGFzcyA9IGZyYW1lLnJlbmRlclBhc3Nlcy5s
YXN0KCk7Ci0KICAgICBtX2Zwc0NvdW50ZXItPm1hcmtCZWdpbm5pbmdPZkZyYW1lKGN1cnJlbnRU
aW1lKCkpOwotICAgIG1fbGF5ZXJSZW5kZXJlci0+YmVnaW5EcmF3aW5nRnJhbWUocm9vdFJlbmRl
clBhc3MpOwotCi0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBmcmFtZS5yZW5kZXJQYXNzZXMu
c2l6ZSgpOyArK2kpIHsKLSAgICAgICAgY29uc3QgQ0NSZW5kZXJQYXNzKiByZW5kZXJQYXNzID0g
ZnJhbWUucmVuZGVyUGFzc2VzW2ldOwogCi0gICAgICAgIEZsb2F0UmVjdCByb290U2Npc3NvclJl
Y3RJbkN1cnJlbnRTdXJmYWNlID0gcmVuZGVyUGFzcy0+dGFyZ2V0U3VyZmFjZSgpLT5jb21wdXRl
Um9vdFNjaXNzb3JSZWN0SW5DdXJyZW50U3VyZmFjZShtX3Jvb3RTY2lzc29yUmVjdCk7Ci0gICAg
ICAgIG1fbGF5ZXJSZW5kZXJlci0+ZHJhd1JlbmRlclBhc3MocmVuZGVyUGFzcywgcm9vdFNjaXNz
b3JSZWN0SW5DdXJyZW50U3VyZmFjZSk7CisgICAgbV9sYXllclJlbmRlcmVyLT5kcmF3RnJhbWUo
ZnJhbWUucmVuZGVyUGFzc2VzLCBtX3Jvb3RTY2lzc29yUmVjdCk7CisgICAgaWYgKG1faGVhZHNV
cERpc3BsYXktPmVuYWJsZWQoc2V0dGluZ3MoKSkpCisgICAgICAgIG1faGVhZHNVcERpc3BsYXkt
PmRyYXcodGhpcyk7CisgICAgbV9sYXllclJlbmRlcmVyLT5maW5pc2hEcmF3aW5nRnJhbWUoKTsK
IAotICAgICAgICByZW5kZXJQYXNzLT50YXJnZXRTdXJmYWNlKCktPmRhbWFnZVRyYWNrZXIoKS0+
ZGlkRHJhd0RhbWFnZWRBcmVhKCk7Ci0gICAgfQorICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAw
OyBpIDwgZnJhbWUucmVuZGVyUGFzc2VzLnNpemUoKTsgaSsrKQorICAgICAgICBmcmFtZS5yZW5k
ZXJQYXNzZXNbaV0tPnRhcmdldFN1cmZhY2UoKS0+ZGFtYWdlVHJhY2tlcigpLT5kaWREcmF3RGFt
YWdlZEFyZWEoKTsKIAogICAgIGlmIChtX2RlYnVnUmVjdEhpc3RvcnktPmVuYWJsZWQoc2V0dGlu
Z3MoKSkpCiAgICAgICAgIG1fZGVidWdSZWN0SGlzdG9yeS0+c2F2ZURlYnVnUmVjdHNGb3JDdXJy
ZW50RnJhbWUobV9yb290TGF5ZXJJbXBsLmdldCgpLCAqZnJhbWUucmVuZGVyU3VyZmFjZUxheWVy
TGlzdCwgZnJhbWUub2NjbHVkaW5nU2NyZWVuU3BhY2VSZWN0cywgc2V0dGluZ3MoKSk7CiAKLSAg
ICBpZiAobV9oZWFkc1VwRGlzcGxheS0+ZW5hYmxlZChzZXR0aW5ncygpKSkKLSAgICAgICAgbV9o
ZWFkc1VwRGlzcGxheS0+ZHJhdyh0aGlzKTsKLQotICAgIG1fbGF5ZXJSZW5kZXJlci0+ZmluaXNo
RHJhd2luZ0ZyYW1lKCk7Ci0KICAgICArK21fc291cmNlQW5pbWF0aW9uRnJhbWVOdW1iZXI7CiAK
ICAgICAvLyBUaGUgbmV4dCBmcmFtZSBzaG91bGQgc3RhcnQgYnkgYXNzdW1pbmcgbm90aGluZyBo
YXMgY2hhbmdlZCwgYW5kIGNoYW5nZXMgYXJlIG5vdGVkIGFzIHRoZXkgb2NjdXIuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1JlbmRl
cmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Jl
bmRlcmVyLmgKaW5kZXggZGVkMGVmZGMzOGVmOTMxYWZiMzAxN2UyNzAyZjVjN2YyZDEwNGY5MC4u
NmIwNWQ5NDk0YzJjMWQ4NjBiMjliNzYzZGRiYTRkNmExY2UyMjRmZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NSZW5kZXJlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUmVuZGVy
ZXIuaApAQCAtNjcsMjQgKzY3LDIzIEBAIHB1YmxpYzoKICAgICBpbnQgdmlld3BvcnRXaWR0aCgp
IHsgcmV0dXJuIHZpZXdwb3J0U2l6ZSgpLndpZHRoKCk7IH0KICAgICBpbnQgdmlld3BvcnRIZWln
aHQoKSB7IHJldHVybiB2aWV3cG9ydFNpemUoKS5oZWlnaHQoKTsgfQogCi0gICAgdmlydHVhbCB2
b2lkIHZpZXdwb3J0Q2hhbmdlZCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdmlld3BvcnRDaGFu
Z2VkKCkgeyB9CiAKICAgICBjb25zdCBXZWJLaXQ6OldlYlRyYW5zZm9ybWF0aW9uTWF0cml4JiBw
cm9qZWN0aW9uTWF0cml4KCkgY29uc3QgeyByZXR1cm4gbV9wcm9qZWN0aW9uTWF0cml4OyB9CiAg
ICAgY29uc3QgV2ViS2l0OjpXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgd2luZG93TWF0cml4KCkg
Y29uc3QgeyByZXR1cm4gbV93aW5kb3dNYXRyaXg7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBkZWNp
ZGVSZW5kZXJQYXNzQWxsb2NhdGlvbnNGb3JGcmFtZShjb25zdCBDQ1JlbmRlclBhc3NMaXN0Jikg
PSAwOwotICAgIHZpcnR1YWwgYm9vbCBoYXZlQ2FjaGVkUmVzb3VyY2VzRm9yUmVuZGVyUGFzc0lk
KGludCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkZWNpZGVSZW5kZXJQYXNzQWxsb2Nh
dGlvbnNGb3JGcmFtZShjb25zdCBDQ1JlbmRlclBhc3NMaXN0JikgeyB9CisgICAgdmlydHVhbCBi
b29sIGhhdmVDYWNoZWRSZXNvdXJjZXNGb3JSZW5kZXJQYXNzSWQoaW50KSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQogCi0gICAgdmlydHVhbCB2b2lkIGJlZ2luRHJhd2luZ0ZyYW1lKGNvbnN0IEND
UmVuZGVyUGFzcyogZGVmYXVsdFJlbmRlclBhc3MpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZHJh
d1JlbmRlclBhc3MoY29uc3QgQ0NSZW5kZXJQYXNzKiwgY29uc3QgRmxvYXRSZWN0JiByb290U2Np
c3NvclJlY3RJbkN1cnJlbnRQYXNzKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGZpbmlzaERyYXdp
bmdGcmFtZSgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZHJhd0ZyYW1lKGNvbnN0IENDUmVuZGVy
UGFzc0xpc3QmLCBjb25zdCBGbG9hdFJlY3QmIHJvb3RTY2lzc29yUmVjdCkgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBmaW5pc2hEcmF3aW5nRnJhbWUoKSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBk
cmF3SGVhZHNVcERpc3BsYXkoY29uc3QgQ0NTY29wZWRUZXh0dXJlKiwgY29uc3QgSW50U2l6ZSYg
aHVkU2l6ZSkgPSAwOwogCiAgICAgLy8gd2FpdHMgZm9yIHJlbmRlcmluZyB0byBmaW5pc2gKICAg
ICB2aXJ0dWFsIHZvaWQgZmluaXNoKCkgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIGRvTm9PcCgp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZG9Ob09wKCkgeyB9CiAgICAgLy8gcHV0cyBiYWNrYnVm
ZmVyIG9uc2NyZWVuCiAgICAgdmlydHVhbCBib29sIHN3YXBCdWZmZXJzKGNvbnN0IEludFJlY3Qm
IHN1YkJ1ZmZlcikgPSAwOwogCkBAIC05NSw5ICs5NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IFRleHR1cmVBbGxvY2F0b3IqIGltcGxUZXh0dXJlQWxsb2NhdG9yKCkgY29uc3QgPSAwOwogICAg
IHZpcnR1YWwgVGV4dHVyZUFsbG9jYXRvciogY29udGVudHNUZXh0dXJlQWxsb2NhdG9yKCkgY29u
c3QgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIHNldFNjaXNzb3JUb1JlY3QoY29uc3QgSW50UmVj
dCYpID0gMDsKLQotICAgIHZpcnR1YWwgYm9vbCBpc0NvbnRleHRMb3N0KCkgPSAwOworICAgIHZp
cnR1YWwgYm9vbCBpc0NvbnRleHRMb3N0KCkgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZpcnR1
YWwgdm9pZCBzZXRWaXNpYmxlKGJvb2wpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS90ZXN0cy9MYXllclJlbmRlcmVyQ2hyb21pdW1UZXN0LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvTGF5ZXJSZW5kZXJlckNocm9taXVtVGVzdC5jcHAKaW5kZXgg
N2NkYmE4MDljZTJiNjc5MGIzMmZjOWI5OTUwODIzZGI0MGQwOTk0YS4uMTQxYjcxOWJiZjNkOWYz
MzM3MDAwMzY3OTRhZjNlMzViNzZkOWNkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS90ZXN0cy9MYXllclJlbmRlcmVyQ2hyb21pdW1UZXN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL0xheWVyUmVuZGVyZXJDaHJvbWl1bVRlc3QuY3BwCkBAIC04MSw2
ICs4MSw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIG1fcm9vdExheWVyLT5jcmVhdGVSZW5k
ZXJTdXJmYWNlKCk7CiAgICAgICAgIG1fcm9vdFJlbmRlclBhc3MgPSBDQ1JlbmRlclBhc3M6OmNy
ZWF0ZShtX3Jvb3RMYXllci0+cmVuZGVyU3VyZmFjZSgpLCBtX3Jvb3RMYXllci0+aWQoKSk7Cisg
ICAgICAgIG1fcmVuZGVyUGFzc2VzLmFwcGVuZChtX3Jvb3RSZW5kZXJQYXNzLmdldCgpKTsKICAg
ICB9CiAKICAgICAvLyBDQ1JlbmRlcmVyQ2xpZW50IG1ldGhvZHMuCkBAIC05Niw2ICs5Nyw3IEBA
IHB1YmxpYzoKICAgICBpbnQgc2V0RnVsbFJvb3RMYXllckRhbWFnZUNvdW50KCkgY29uc3QgeyBy
ZXR1cm4gbV9zZXRGdWxsUm9vdExheWVyRGFtYWdlQ291bnQ7IH0KIAogICAgIENDUmVuZGVyUGFz
cyogcm9vdFJlbmRlclBhc3MoKSB7IHJldHVybiBtX3Jvb3RSZW5kZXJQYXNzLmdldCgpOyB9Cisg
ICAgY29uc3QgQ0NSZW5kZXJQYXNzTGlzdCYgcmVuZGVyUGFzc2VzKCkgeyByZXR1cm4gbV9yZW5k
ZXJQYXNzZXM7IH0KIAogICAgIHNpemVfdCBtZW1vcnlBbGxvY2F0aW9uTGltaXRCeXRlcygpIGNv
bnN0IHsgcmV0dXJuIG1fbWVtb3J5QWxsb2NhdGlvbkxpbWl0Qnl0ZXM7IH0KIApAQCAtMTA0LDYg
KzEwNiw3IEBAIHByaXZhdGU6CiAgICAgRGVidWdTY29wZWRTZXRJbXBsVGhyZWFkIG1faW1wbFRo
cmVhZDsKICAgICBPd25QdHI8Q0NMYXllckltcGw+IG1fcm9vdExheWVyOwogICAgIE93blB0cjxD
Q1JlbmRlclBhc3M+IG1fcm9vdFJlbmRlclBhc3M7CisgICAgQ0NSZW5kZXJQYXNzTGlzdCBtX3Jl
bmRlclBhc3NlczsKICAgICBzaXplX3QgbV9tZW1vcnlBbGxvY2F0aW9uTGltaXRCeXRlczsKIH07
CiAKQEAgLTIxNSw3ICsyMTgsNyBAQCBURVNUX0YoTGF5ZXJSZW5kZXJlckNocm9taXVtVGVzdCwg
RGlzY2FyZGVkQmFja2J1ZmZlcklzUmVjcmVhdGVkRm9yU2NvcGVEdXJhdGlvbgogICAgIEVYUEVD
VF9FUSgxLCBtX21vY2tDbGllbnQuc2V0RnVsbFJvb3RMYXllckRhbWFnZUNvdW50KCkpOwogCiAg
ICAgbV9sYXllclJlbmRlcmVyQ2hyb21pdW0uc2V0VmlzaWJsZSh0cnVlKTsKLSAgICBtX2xheWVy
UmVuZGVyZXJDaHJvbWl1bS5iZWdpbkRyYXdpbmdGcmFtZShtX21vY2tDbGllbnQucm9vdFJlbmRl
clBhc3MoKSk7CisgICAgbV9sYXllclJlbmRlcmVyQ2hyb21pdW0uZHJhd0ZyYW1lKG1fbW9ja0Ns
aWVudC5yZW5kZXJQYXNzZXMoKSwgRmxvYXRSZWN0KCkpOwogICAgIEVYUEVDVF9GQUxTRShtX2xh
eWVyUmVuZGVyZXJDaHJvbWl1bS5pc0ZyYW1lYnVmZmVyRGlzY2FyZGVkKCkpOwogCiAgICAgc3dh
cEJ1ZmZlcnMoKTsKQEAgLTIzMCw3ICsyMzMsNyBAQCBURVNUX0YoTGF5ZXJSZW5kZXJlckNocm9t
aXVtVGVzdCwgRnJhbWVidWZmZXJEaXNjYXJkZWRBZnRlclJlYWRiYWNrV2hlbk5vdFZpc2libAog
ICAgIEVYUEVDVF9FUSgxLCBtX21vY2tDbGllbnQuc2V0RnVsbFJvb3RMYXllckRhbWFnZUNvdW50
KCkpOwogCiAgICAgY2hhciBwaXhlbHNbNF07Ci0gICAgbV9sYXllclJlbmRlcmVyQ2hyb21pdW0u
YmVnaW5EcmF3aW5nRnJhbWUobV9tb2NrQ2xpZW50LnJvb3RSZW5kZXJQYXNzKCkpOworICAgIG1f
bGF5ZXJSZW5kZXJlckNocm9taXVtLmRyYXdGcmFtZShtX21vY2tDbGllbnQucmVuZGVyUGFzc2Vz
KCksIEZsb2F0UmVjdCgpKTsKICAgICBFWFBFQ1RfRkFMU0UobV9sYXllclJlbmRlcmVyQ2hyb21p
dW0uaXNGcmFtZWJ1ZmZlckRpc2NhcmRlZCgpKTsKIAogICAgIG1fbGF5ZXJSZW5kZXJlckNocm9t
aXVtLmdldEZyYW1lYnVmZmVyUGl4ZWxzKHBpeGVscywgSW50UmVjdCgwLCAwLCAxLCAxKSk7CkBA
IC00MDYsOCArNDA5LDcgQEAgVEVTVChMYXllclJlbmRlcmVyQ2hyb21pdW1UZXN0Miwgb3BhcXVl
QmFja2dyb3VuZCkKIAogICAgIEVYUEVDVF9UUlVFKGxheWVyUmVuZGVyZXJDaHJvbWl1bS5pbml0
aWFsaXplKCkpOwogCi0gICAgbGF5ZXJSZW5kZXJlckNocm9taXVtLmJlZ2luRHJhd2luZ0ZyYW1l
KG1vY2tDbGllbnQucm9vdFJlbmRlclBhc3MoKSk7Ci0gICAgbGF5ZXJSZW5kZXJlckNocm9taXVt
LmRyYXdSZW5kZXJQYXNzKG1vY2tDbGllbnQucm9vdFJlbmRlclBhc3MoKSwgRmxvYXRSZWN0KCkp
OworICAgIGxheWVyUmVuZGVyZXJDaHJvbWl1bS5kcmF3RnJhbWUobW9ja0NsaWVudC5yZW5kZXJQ
YXNzZXMoKSwgRmxvYXRSZWN0KCkpOwogICAgIGxheWVyUmVuZGVyZXJDaHJvbWl1bS5maW5pc2hE
cmF3aW5nRnJhbWUoKTsKIAogICAgIC8vIE9uIERFQlVHIGJ1aWxkcywgcmVuZGVyIHBhc3NlcyB3
aXRoIG9wYXF1ZSBiYWNrZ3JvdW5kIGNsZWFyIHRvIGJsdWUgdG8KQEAgLTQyOSw4ICs0MzEsNyBA
QCBURVNUKExheWVyUmVuZGVyZXJDaHJvbWl1bVRlc3QyLCB0cmFuc3BhcmVudEJhY2tncm91bmQp
CiAKICAgICBFWFBFQ1RfVFJVRShsYXllclJlbmRlcmVyQ2hyb21pdW0uaW5pdGlhbGl6ZSgpKTsK
IAotICAgIGxheWVyUmVuZGVyZXJDaHJvbWl1bS5iZWdpbkRyYXdpbmdGcmFtZShtb2NrQ2xpZW50
LnJvb3RSZW5kZXJQYXNzKCkpOwotICAgIGxheWVyUmVuZGVyZXJDaHJvbWl1bS5kcmF3UmVuZGVy
UGFzcyhtb2NrQ2xpZW50LnJvb3RSZW5kZXJQYXNzKCksIEZsb2F0UmVjdCgpKTsKKyAgICBsYXll
clJlbmRlcmVyQ2hyb21pdW0uZHJhd0ZyYW1lKG1vY2tDbGllbnQucmVuZGVyUGFzc2VzKCksIEZs
b2F0UmVjdCgpKTsKICAgICBsYXllclJlbmRlcmVyQ2hyb21pdW0uZmluaXNoRHJhd2luZ0ZyYW1l
KCk7CiAKICAgICBFWFBFQ1RfRVEoMSwgY29udGV4dC0+Y2xlYXJDb3VudCgpKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>