<?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>128688</bug_id>
          
          <creation_ts>2014-02-12 14:05:30 -0800</creation_ts>
          <short_desc>During a copy, position:fixed gets converted to position:absolute even if only part of the document is selected</short_desc>
          <delta_ts>2014-02-24 18:42:26 -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>HTML Editing</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>dino</cc>
    
    <cc>jonlee</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>980000</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-02-12 14:05:30 -0800</bug_when>
    <thetext>During a copy, position:fixed gets converted to position:absolute even if only part of the document is selected</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>980007</commentid>
    <comment_count>1</comment_count>
      <attachid>224005</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-02-12 14:13:29 -0800</bug_when>
    <thetext>Created attachment 224005
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>980008</commentid>
    <comment_count>2</comment_count>
      <attachid>224005</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-02-12 14:16:36 -0800</bug_when>
    <thetext>Comment on attachment 224005
Patch

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

&gt; Source/WebCore/editing/markup.cpp:627
&gt; -    if (accumulator.needRelativeStyleWrapper() &amp;&amp; body &amp;&amp; fullySelectedRoot == body) {
&gt; +    if (accumulator.needRelativeStyleWrapper() &amp;&amp; needsPositionStyleConversion) {

I don&apos;t think we should do this. This would result in another round of Apple-style-span nightmare.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>980025</commentid>
    <comment_count>3</comment_count>
      <attachid>224005</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-02-12 14:55:06 -0800</bug_when>
    <thetext>Comment on attachment 224005
Patch

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

&gt; Source/WebCore/editing/markup.cpp:328
&gt; +            if (m_needsPositionStyleConversion &amp;&amp; element.document().settings() &amp;&amp; element.document().settings()-&gt;shouldConvertPositionStyleOnCopy())
&gt;                  m_needRelativeStyleWrapper |= newInlineStyle-&gt;convertFixedAndStickyPosition();

This is actually broken because convertFixedAndStickyPosition doesn&apos;t adjust coordinates with respect to the wrapping div&apos;s. r-.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>980055</commentid>
    <comment_count>4</comment_count>
      <attachid>224005</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-02-12 15:52:10 -0800</bug_when>
    <thetext>Comment on attachment 224005
Patch

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

&gt;&gt; Source/WebCore/editing/markup.cpp:328
&gt;&gt;                  m_needRelativeStyleWrapper |= newInlineStyle-&gt;convertFixedAndStickyPosition();
&gt; 
&gt; This is actually broken because convertFixedAndStickyPosition doesn&apos;t adjust coordinates with respect to the wrapping div&apos;s. r-.

Oh oops, I completely misunderstood this patch :(

I think we should check settings in createMarkupInternal though.

&gt; Source/WebCore/editing/markup.cpp:570
&gt; +    bool needsPositionStyleConversion = body &amp;&amp; fullySelectedRoot == body;

We don&apos;t need this separate boolean because fullySelectedRoot can only ever set to body.

&gt;&gt; Source/WebCore/editing/markup.cpp:627
&gt;&gt; +    if (accumulator.needRelativeStyleWrapper() &amp;&amp; needsPositionStyleConversion) {
&gt; 
&gt; I don&apos;t think we should do this. This would result in another round of Apple-style-span nightmare.

Ignore this comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>980393</commentid>
    <comment_count>5</comment_count>
      <attachid>224005</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-02-13 12:31:24 -0800</bug_when>
    <thetext>Comment on attachment 224005
Patch

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

&gt;&gt; Source/WebCore/editing/markup.cpp:570
&gt;&gt; +    bool needsPositionStyleConversion = body &amp;&amp; fullySelectedRoot == body;
&gt; 
&gt; We don&apos;t need this separate boolean because fullySelectedRoot can only ever set to body.

I&apos;m going to keep the separate boolean because it gets read twice, and it is conceptually different than the comparison that it gets set to</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>980423</commentid>
    <comment_count>6</comment_count>
      <attachid>224005</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-02-13 13:48:34 -0800</bug_when>
    <thetext>Comment on attachment 224005
Patch

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

&gt;&gt;&gt; Source/WebCore/editing/markup.cpp:328
&gt;&gt;&gt;                  m_needRelativeStyleWrapper |= newInlineStyle-&gt;convertFixedAndStickyPosition();
&gt;&gt; 
&gt;&gt; This is actually broken because convertFixedAndStickyPosition doesn&apos;t adjust coordinates with respect to the wrapping div&apos;s. r-.
&gt; 
&gt; Oh oops, I completely misunderstood this patch :(
&gt; 
&gt; I think we should check settings in createMarkupInternal though.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>980426</commentid>
    <comment_count>7</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-02-13 13:52:29 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/164053</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984143</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-02-24 18:42:26 -0800</bug_when>
    <thetext>&lt;rdar://problem/16156149&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224005</attachid>
            <date>2014-02-12 14:13:29 -0800</date>
            <delta_ts>2014-02-13 13:48:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-128688-20140212141327.patch</filename>
            <type>text/plain</type>
            <size>24775</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYzOTY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTBjNmM1YTVjN2M4ODA3
NTBkODc1NDFlYzVkNTM4ODcyMDYwMzI5ZS4uMjU3Y2RhZmYyMjI3NGMzMmQyOTYwZGIwOWE0MzE4
MjJjMDRkODllNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE0LTAyLTEyICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgRHVyaW5nIGEg
Y29weSwgcG9zaXRpb246Zml4ZWQgZ2V0cyBjb252ZXJ0ZWQgdG8gcG9zaXRpb246YWJzb2x1dGUg
ZXZlbiBpZiBvbmx5IHBhcnQgb2YgdGhlIGRvY3VtZW50IGlzIHNlbGVjdGVkCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjg2ODgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIGEgZmllbGQsIG1fbmVl
ZHNQb3NpdGlvblN0eWxlQ29udmVyc2lvbiwgdG8gU3R5bGVkTWFya3VwQWNjdW11bGF0b3IuCisK
KyAgICAgICAgQWxzbywgcmVuYW1lcyB0aGUgQ29udmVydFBvc2l0aW9uU3R5bGVPbkNvcHkgc2V0
dGluZyB0byBTaG91bGRDb252ZXJ0UG9zaXRpb25TdHlsZU9uQ29weQorCisgICAgICAgIFRlc3Q6
IGVkaXRpbmcvcGFzdGVib2FyZC9jb3B5LXBhc3RlLWRvZXNudC1jb252ZXJ0LXN0aWNreS1hbmQt
Zml4ZWQtZHVyaW5nLXBhcnRpYWwtY29weS5odG1sCisKKyAgICAgICAgKiBlZGl0aW5nL21hcmt1
cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZWRNYXJrdXBBY2N1bXVsYXRvcjo6U3R5bGVk
TWFya3VwQWNjdW11bGF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVkTWFya3VwQWNjdW11
bGF0b3I6OmFwcGVuZEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlTWFya3VwSW50
ZXJuYWwpOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaW46CisgICAgICAgICogdGVzdGluZy9J
bnRlcm5hbFNldHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6
OkJhY2t1cDo6QmFja3VwKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OkJh
Y2t1cDo6cmVzdG9yZVRvKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNl
dFNob3VsZENvbnZlcnRQb3NpdGlvblN0eWxlT25Db3B5KToKKyAgICAgICAgKiB0ZXN0aW5nL0lu
dGVybmFsU2V0dGluZ3MuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRs
OgorCiAyMDE0LTAyLTEyICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZW5kZXJOYW1lZEZsb3dUaHJlYWQgc2hvdWxkIG9ubHkgc3VwcG9ydCBSZW5kZXJFbGVt
ZW50IGNoaWxkcmVuLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDJjMjQzMTE2YzlmY2ZlMDBkNDM3ZDYx
NmE0YjQxZjQyM2QwMjk5ZjYuLjg2YTRmMTIyMTJkZWMwNDY2MTFjMjJjNWI0YjllN2ZhODAxYTJk
N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxNC0wMi0xMiAgTXlsZXMg
Qy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIER1cmluZyBhIGNv
cHksIHBvc2l0aW9uOmZpeGVkIGdldHMgY29udmVydGVkIHRvIHBvc2l0aW9uOmFic29sdXRlIGV2
ZW4gaWYgb25seSBwYXJ0IG9mIHRoZSBkb2N1bWVudCBpcyBzZWxlY3RlZAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI4Njg4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1lcyB0aGUgQ29udmVydFBv
c2l0aW9uU3R5bGVPbkNvcHkgc2V0dGluZyB0byBTaG91bGRDb252ZXJ0UG9zaXRpb25TdHlsZU9u
Q29weQorCisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaDoKKyAg
ICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tOgorICAgICAgICAoLVtXZWJQcmVmZXJl
bmNlcyBzaG91bGRDb252ZXJ0UG9zaXRpb25TdHlsZU9uQ29weV0pOgorICAgICAgICAoLVtXZWJQ
cmVmZXJlbmNlcyBzZXRTaG91bGRDb252ZXJ0UG9zaXRpb25TdHlsZU9uQ29weTpdKToKKyAgICAg
ICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oOgorICAgICAgICAqIFdlYlZpZXcv
V2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfcHJlZmVyZW5jZXNDaGFuZ2VkOl0pOgor
CiAyMDE0LTAyLTExICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAg
IEZyYW1lOjpyZWN0Rm9yU2VsZWN0aW9uIHNob3VsZG4ndCBpbnN0YW50aWF0ZSBGcmFtZVNlbGVj
dGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCmluZGV4IGJlODUzYjMxZDhmNWI3NzQwN2JjZTU4OTc0N2NiNWVmZDA0NjQ0
OGQuLmFkYTljNTAxN2RkNzFkOGE0NDc1NjRlYWU3NjdhMWZlZmYxZDJhY2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMCBAQAorMjAxNC0wMi0xMiAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4Zmll
bGRAYXBwbGUuY29tPgorCisgICAgICAgIER1cmluZyBhIGNvcHksIHBvc2l0aW9uOmZpeGVkIGdl
dHMgY29udmVydGVkIHRvIHBvc2l0aW9uOmFic29sdXRlIGV2ZW4gaWYgb25seSBwYXJ0IG9mIHRo
ZSBkb2N1bWVudCBpcyBzZWxlY3RlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTI4Njg4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUmVuYW1lcyB0aGUgQ29udmVydFBvc2l0aW9uU3R5bGVPbkNvcHkgc2V0
dGluZyB0byBTaG91bGRDb252ZXJ0UG9zaXRpb25TdHlsZU9uQ29weQorCisgICAgICAgICogU2hh
cmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQ
cmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChXS1ByZWZlcmVuY2VzU2V0U2hvdWxkQ29udmVydFBv
c2l0aW9uU3R5bGVPbkNvcHkpOgorICAgICAgICAoV0tQcmVmZXJlbmNlc0dldFNob3VsZENvbnZl
cnRQb3NpdGlvblN0eWxlT25Db3B5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQcmVm
ZXJlbmNlc1ByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKToKKwogMjAx
NC0wMi0xMiAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFN0b3Ag
dXNpbmcgUExBVEZPUk0oTUFDKSBpbiBXZWJLaXQyL3tEYXRhYmFzZSxOZXR3b3JrfVByb2Nlc3Mg
ZXhjZXB0IHdoZXJlIGl0IG1lYW5zIOKAnE9TIFggYnV0IG5vdCBpT1PigJ0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvbWFya3VwLmNwcAppbmRleCAxYTZhZDI2MDE5MWFkMmJiOWIyNDYxMDdjNzNjYjI5ODIyYTFh
ZDY0Li5kZTE1ZWU4YjJiNTRmYTExYTk3ODUzMzE1NTMwZjY1OWFmOWI5OWM3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9tYXJrdXAuY3BwCkBAIC0xMTcsMTcgKzExNywxNCBAQCBjbGFzcyBTdHlsZWRNYXJr
dXBBY2N1bXVsYXRvciBmaW5hbCA6IHB1YmxpYyBNYXJrdXBBY2N1bXVsYXRvciB7CiBwdWJsaWM6
CiAgICAgZW51bSBSYW5nZUZ1bGx5U2VsZWN0c05vZGUgeyBEb2VzRnVsbHlTZWxlY3ROb2RlLCBE
b2VzTm90RnVsbHlTZWxlY3ROb2RlIH07CiAKLSAgICBTdHlsZWRNYXJrdXBBY2N1bXVsYXRvcihW
ZWN0b3I8Tm9kZSo+KiBub2RlcywgRUFic29sdXRlVVJMcywgRUFubm90YXRlRm9ySW50ZXJjaGFu
Z2UsIGNvbnN0IFJhbmdlKiwgTm9kZSogaGlnaGVzdE5vZGVUb0JlU2VyaWFsaXplZCA9IDApOwor
ICAgIFN0eWxlZE1hcmt1cEFjY3VtdWxhdG9yKFZlY3RvcjxOb2RlKj4qIG5vZGVzLCBFQWJzb2x1
dGVVUkxzLCBFQW5ub3RhdGVGb3JJbnRlcmNoYW5nZSwgY29uc3QgUmFuZ2UqLCBib29sIG5lZWRz
UG9zaXRpb25TdHlsZUNvbnZlcnNpb24sIE5vZGUqIGhpZ2hlc3ROb2RlVG9CZVNlcmlhbGl6ZWQg
PSAwKTsKIAogICAgIE5vZGUqIHNlcmlhbGl6ZU5vZGVzKE5vZGUqIHN0YXJ0Tm9kZSwgTm9kZSog
cGFzdEVuZCk7CiAgICAgdm9pZCB3cmFwV2l0aE5vZGUoTm9kZSYsIGJvb2wgY29udmVydEJsb2Nr
c1RvSW5saW5lcyA9IGZhbHNlLCBSYW5nZUZ1bGx5U2VsZWN0c05vZGUgPSBEb2VzRnVsbHlTZWxl
Y3ROb2RlKTsKICAgICB2b2lkIHdyYXBXaXRoU3R5bGVOb2RlKFN0eWxlUHJvcGVydGllcyosIERv
Y3VtZW50JiwgYm9vbCBpc0Jsb2NrID0gZmFsc2UpOwogICAgIFN0cmluZyB0YWtlUmVzdWx0cygp
OwogICAgIAotICAgIGJvb2wgbmVlZFJlbGF0aXZlU3R5bGVXcmFwcGVyKCkgY29uc3QKLSAgICB7
Ci0gICAgICAgIHJldHVybiBtX25lZWRSZWxhdGl2ZVN0eWxlV3JhcHBlcjsKLSAgICB9CisgICAg
Ym9vbCBuZWVkUmVsYXRpdmVTdHlsZVdyYXBwZXIoKSBjb25zdCB7IHJldHVybiBtX25lZWRSZWxh
dGl2ZVN0eWxlV3JhcHBlcjsgfQogCiAgICAgdXNpbmcgTWFya3VwQWNjdW11bGF0b3I6OmFwcGVu
ZFN0cmluZzsKIApAQCAtMTY0LDEzICsxNjEsMTUgQEAgcHJpdmF0ZToKICAgICBOb2RlKiBtX2hp
Z2hlc3ROb2RlVG9CZVNlcmlhbGl6ZWQ7CiAgICAgUmVmUHRyPEVkaXRpbmdTdHlsZT4gbV93cmFw
cGluZ1N0eWxlOwogICAgIGJvb2wgbV9uZWVkUmVsYXRpdmVTdHlsZVdyYXBwZXI7CisgICAgYm9v
bCBtX25lZWRzUG9zaXRpb25TdHlsZUNvbnZlcnNpb247CiB9OwogCi1pbmxpbmUgU3R5bGVkTWFy
a3VwQWNjdW11bGF0b3I6OlN0eWxlZE1hcmt1cEFjY3VtdWxhdG9yKFZlY3RvcjxOb2RlKj4qIG5v
ZGVzLCBFQWJzb2x1dGVVUkxzIHNob3VsZFJlc29sdmVVUkxzLCBFQW5ub3RhdGVGb3JJbnRlcmNo
YW5nZSBzaG91bGRBbm5vdGF0ZSwgY29uc3QgUmFuZ2UqIHJhbmdlLCBOb2RlKiBoaWdoZXN0Tm9k
ZVRvQmVTZXJpYWxpemVkKQoraW5saW5lIFN0eWxlZE1hcmt1cEFjY3VtdWxhdG9yOjpTdHlsZWRN
YXJrdXBBY2N1bXVsYXRvcihWZWN0b3I8Tm9kZSo+KiBub2RlcywgRUFic29sdXRlVVJMcyBzaG91
bGRSZXNvbHZlVVJMcywgRUFubm90YXRlRm9ySW50ZXJjaGFuZ2Ugc2hvdWxkQW5ub3RhdGUsIGNv
bnN0IFJhbmdlKiByYW5nZSwgYm9vbCBuZWVkc1Bvc2l0aW9uU3R5bGVDb252ZXJzaW9uLCBOb2Rl
KiBoaWdoZXN0Tm9kZVRvQmVTZXJpYWxpemVkKQogICAgIDogTWFya3VwQWNjdW11bGF0b3Iobm9k
ZXMsIHNob3VsZFJlc29sdmVVUkxzLCByYW5nZSkKICAgICAsIG1fc2hvdWxkQW5ub3RhdGUoc2hv
dWxkQW5ub3RhdGUpCiAgICAgLCBtX2hpZ2hlc3ROb2RlVG9CZVNlcmlhbGl6ZWQoaGlnaGVzdE5v
ZGVUb0JlU2VyaWFsaXplZCkKICAgICAsIG1fbmVlZFJlbGF0aXZlU3R5bGVXcmFwcGVyKGZhbHNl
KQorICAgICwgbV9uZWVkc1Bvc2l0aW9uU3R5bGVDb252ZXJzaW9uKG5lZWRzUG9zaXRpb25TdHls
ZUNvbnZlcnNpb24pCiB7CiB9CiAKQEAgLTMyNSw3ICszMjQsNyBAQCB2b2lkIFN0eWxlZE1hcmt1
cEFjY3VtdWxhdG9yOjphcHBlbmRFbGVtZW50KFN0cmluZ0J1aWxkZXImIG91dCwgY29uc3QgRWxl
bWVudCYgZQogICAgICAgICAgICAgaWYgKGFkZERpc3BsYXlJbmxpbmUpCiAgICAgICAgICAgICAg
ICAgbmV3SW5saW5lU3R5bGUtPmZvcmNlSW5saW5lKCk7CiAgICAgICAgICAgICAKLSAgICAgICAg
ICAgIGlmIChlbGVtZW50LmRvY3VtZW50KCkuc2V0dGluZ3MoKSAmJiBlbGVtZW50LmRvY3VtZW50
KCkuc2V0dGluZ3MoKS0+Y29udmVydFBvc2l0aW9uU3R5bGVPbkNvcHkoKSkKKyAgICAgICAgICAg
IGlmIChtX25lZWRzUG9zaXRpb25TdHlsZUNvbnZlcnNpb24gJiYgZWxlbWVudC5kb2N1bWVudCgp
LnNldHRpbmdzKCkgJiYgZWxlbWVudC5kb2N1bWVudCgpLnNldHRpbmdzKCktPnNob3VsZENvbnZl
cnRQb3NpdGlvblN0eWxlT25Db3B5KCkpCiAgICAgICAgICAgICAgICAgbV9uZWVkUmVsYXRpdmVT
dHlsZVdyYXBwZXIgfD0gbmV3SW5saW5lU3R5bGUtPmNvbnZlcnRGaXhlZEFuZFN0aWNreVBvc2l0
aW9uKCk7CiAKICAgICAgICAgICAgIC8vIElmIHRoZSBub2RlIGlzIG5vdCBmdWxseSBzZWxlY3Rl
ZCBieSB0aGUgcmFuZ2UsIHRoZW4gd2UgZG9uJ3Qgd2FudCB0byBrZWVwIHN0eWxlcyB0aGF0IGFm
ZmVjdCBpdHMgcmVsYXRpb25zaGlwIHRvIHRoZSBub2RlcyBhcm91bmQgaXQKQEAgLTU2OCw3ICs1
NjcsOCBAQCBzdGF0aWMgU3RyaW5nIGNyZWF0ZU1hcmt1cEludGVybmFsKERvY3VtZW50JiBkb2N1
bWVudCwgY29uc3QgUmFuZ2UmIHJhbmdlLCBjb25zdAogICAgICAgICBmdWxseVNlbGVjdGVkUm9v
dCA9IGJvZHk7CiAgICAgTm9kZSogc3BlY2lhbENvbW1vbkFuY2VzdG9yID0gaGlnaGVzdEFuY2Vz
dG9yVG9XcmFwTWFya3VwKCZ1cGRhdGVkUmFuZ2UsIHNob3VsZEFubm90YXRlKTsKIAotICAgIFN0
eWxlZE1hcmt1cEFjY3VtdWxhdG9yIGFjY3VtdWxhdG9yKG5vZGVzLCBzaG91bGRSZXNvbHZlVVJM
cywgc2hvdWxkQW5ub3RhdGUsICZ1cGRhdGVkUmFuZ2UsIHNwZWNpYWxDb21tb25BbmNlc3Rvcik7
CisgICAgYm9vbCBuZWVkc1Bvc2l0aW9uU3R5bGVDb252ZXJzaW9uID0gYm9keSAmJiBmdWxseVNl
bGVjdGVkUm9vdCA9PSBib2R5OworICAgIFN0eWxlZE1hcmt1cEFjY3VtdWxhdG9yIGFjY3VtdWxh
dG9yKG5vZGVzLCBzaG91bGRSZXNvbHZlVVJMcywgc2hvdWxkQW5ub3RhdGUsICZ1cGRhdGVkUmFu
Z2UsIG5lZWRzUG9zaXRpb25TdHlsZUNvbnZlcnNpb24sIHNwZWNpYWxDb21tb25BbmNlc3Rvcik7
CiAgICAgTm9kZSogcGFzdEVuZCA9IHVwZGF0ZWRSYW5nZS5wYXN0TGFzdE5vZGUoKTsKIAogICAg
IE5vZGUqIHN0YXJ0Tm9kZSA9IHVwZGF0ZWRSYW5nZS5maXJzdE5vZGUoKTsKQEAgLTYyNCw3ICs2
MjQsNyBAQCBzdGF0aWMgU3RyaW5nIGNyZWF0ZU1hcmt1cEludGVybmFsKERvY3VtZW50JiBkb2N1
bWVudCwgY29uc3QgUmFuZ2UmIHJhbmdlLCBjb25zdAogICAgICAgICB9CiAgICAgfQogICAgIAot
ICAgIGlmIChhY2N1bXVsYXRvci5uZWVkUmVsYXRpdmVTdHlsZVdyYXBwZXIoKSAmJiBib2R5ICYm
IGZ1bGx5U2VsZWN0ZWRSb290ID09IGJvZHkpIHsKKyAgICBpZiAoYWNjdW11bGF0b3IubmVlZFJl
bGF0aXZlU3R5bGVXcmFwcGVyKCkgJiYgbmVlZHNQb3NpdGlvblN0eWxlQ29udmVyc2lvbikgewog
ICAgICAgICBSZWZQdHI8RWRpdGluZ1N0eWxlPiBwb3NpdGlvblJlbGF0aXZlU3R5bGUgPSBzdHls
ZUZyb21NYXRjaGVkUnVsZXNBbmRJbmxpbmVEZWNsKGJvZHkpOwogICAgICAgICBwb3NpdGlvblJl
bGF0aXZlU3R5bGUtPnN0eWxlKCktPnNldFByb3BlcnR5KENTU1Byb3BlcnR5UG9zaXRpb24sIENT
U1ZhbHVlUmVsYXRpdmUpOwogICAgICAgICBhY2N1bXVsYXRvci53cmFwV2l0aFN0eWxlTm9kZShw
b3NpdGlvblJlbGF0aXZlU3R5bGUtPnN0eWxlKCksIGRvY3VtZW50LCB0cnVlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4gYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1NldHRpbmdzLmluCmluZGV4IGIyNDUyYTY4NTgxMWM5NjFkZWVhMWRkZmEzMDU3MjdjNTY3Mzgw
MjYuLmEwYjY0MzNiZjkzNWFhMjQ4ZTAyNzg0Yjc0NzQ3M2FhODc2MDM2YzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9TZXR0aW5ncy5pbgpAQCAtMjA1LDQgKzIwNSw0IEBAIGFsbG93TXVsdGlFbGVtZW50SW1wbGlj
aXRTdWJtaXNzaW9uIGluaXRpYWw9ZmFsc2UKIAogbWVkaWFQbGF5YmFja0FsbG93c0FpclBsYXkg
aW5pdGlhbD10cnVlLCBjb25kaXRpb25hbD1JT1NfQUlSUExBWQogCi1jb252ZXJ0UG9zaXRpb25T
dHlsZU9uQ29weSBpbml0aWFsPWZhbHNlCitzaG91bGRDb252ZXJ0UG9zaXRpb25TdHlsZU9uQ29w
eSBpbml0aWFsPWZhbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFsU2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdz
LmNwcAppbmRleCBkOGFjMGExZmNmOWMxYmY2ZTUyZjYzNWEzYTdlZjAyM2ZmODAyNGNmLi45YTli
MTcxYzc0Nzc0Y2FmOWVhYjc3ZWFkODRkMDkwMzJmNGM3MzZkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKQEAgLTk0LDcgKzk0LDcgQEAgSW50ZXJuYWxT
ZXR0aW5nczo6QmFja3VwOjpCYWNrdXAoU2V0dGluZ3MmIHNldHRpbmdzKQogICAgICwgbV91c2VM
ZWdhY3lCYWNrZ3JvdW5kU2l6ZVNob3J0aGFuZEJlaGF2aW9yKHNldHRpbmdzLnVzZUxlZ2FjeUJh
Y2tncm91bmRTaXplU2hvcnRoYW5kQmVoYXZpb3IoKSkKICAgICAsIG1fYXV0b3Njcm9sbEZvckRy
YWdBbmREcm9wRW5hYmxlZChzZXR0aW5ncy5hdXRvc2Nyb2xsRm9yRHJhZ0FuZERyb3BFbmFibGVk
KCkpCiAgICAgLCBtX3BsdWdpblJlcGxhY2VtZW50RW5hYmxlZChSdW50aW1lRW5hYmxlZEZlYXR1
cmVzOjpzaGFyZWRGZWF0dXJlcygpLnBsdWdpblJlcGxhY2VtZW50RW5hYmxlZCgpKQotICAgICwg
bV9jb252ZXJ0UG9zaXRpb25TdHlsZU9uQ29weShzZXR0aW5ncy5jb252ZXJ0UG9zaXRpb25TdHls
ZU9uQ29weSgpKQorICAgICwgbV9zaG91bGRDb252ZXJ0UG9zaXRpb25TdHlsZU9uQ29weShzZXR0
aW5ncy5zaG91bGRDb252ZXJ0UG9zaXRpb25TdHlsZU9uQ29weSgpKQogewogfQogCkBAIC0xNTYs
NyArMTU2LDcgQEAgdm9pZCBJbnRlcm5hbFNldHRpbmdzOjpCYWNrdXA6OnJlc3RvcmVUbyhTZXR0
aW5ncyYgc2V0dGluZ3MpCiAgICAgc2V0dGluZ3Muc2V0VGltZVdpdGhvdXRNb3VzZU1vdmVtZW50
QmVmb3JlSGlkaW5nQ29udHJvbHMobV9vcmlnaW5hbFRpbWVXaXRob3V0TW91c2VNb3ZlbWVudEJl
Zm9yZUhpZGluZ0NvbnRyb2xzKTsKICAgICBzZXR0aW5ncy5zZXRVc2VMZWdhY3lCYWNrZ3JvdW5k
U2l6ZVNob3J0aGFuZEJlaGF2aW9yKG1fdXNlTGVnYWN5QmFja2dyb3VuZFNpemVTaG9ydGhhbmRC
ZWhhdmlvcik7CiAgICAgc2V0dGluZ3Muc2V0QXV0b3Njcm9sbEZvckRyYWdBbmREcm9wRW5hYmxl
ZChtX2F1dG9zY3JvbGxGb3JEcmFnQW5kRHJvcEVuYWJsZWQpOwotICAgIHNldHRpbmdzLnNldENv
bnZlcnRQb3NpdGlvblN0eWxlT25Db3B5KG1fY29udmVydFBvc2l0aW9uU3R5bGVPbkNvcHkpOwor
ICAgIHNldHRpbmdzLnNldFNob3VsZENvbnZlcnRQb3NpdGlvblN0eWxlT25Db3B5KG1fc2hvdWxk
Q29udmVydFBvc2l0aW9uU3R5bGVPbkNvcHkpOwogICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6
OnNoYXJlZEZlYXR1cmVzKCkuc2V0UGx1Z2luUmVwbGFjZW1lbnRFbmFibGVkKG1fcGx1Z2luUmVw
bGFjZW1lbnRFbmFibGVkKTsKIH0KIApAQCAtNTI5LDEwICs1MjksMTAgQEAgdm9pZCBJbnRlcm5h
bFNldHRpbmdzOjpzZXRCYWNrZ3JvdW5kU2hvdWxkRXh0ZW5kQmV5b25kUGFnZShib29sIGhhc0V4
dGVuZGVkQmFja2cKICAgICBzZXR0aW5ncygpLT5zZXRCYWNrZ3JvdW5kU2hvdWxkRXh0ZW5kQmV5
b25kUGFnZShoYXNFeHRlbmRlZEJhY2tncm91bmQpOwogfQogCi12b2lkIEludGVybmFsU2V0dGlu
Z3M6OnNldENvbnZlcnRQb3NpdGlvblN0eWxlT25Db3B5KGJvb2wgY29udmVydCwgRXhjZXB0aW9u
Q29kZSYgZWMpCit2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldFNob3VsZENvbnZlcnRQb3NpdGlv
blN0eWxlT25Db3B5KGJvb2wgY29udmVydCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgSW50
ZXJuYWxTZXR0aW5nc0d1YXJkRm9yU2V0dGluZ3MoKTsKLSAgICBzZXR0aW5ncygpLT5zZXRDb252
ZXJ0UG9zaXRpb25TdHlsZU9uQ29weShjb252ZXJ0KTsKKyAgICBzZXR0aW5ncygpLT5zZXRTaG91
bGRDb252ZXJ0UG9zaXRpb25TdHlsZU9uQ29weShjb252ZXJ0KTsKIH0KIAogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmggYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAppbmRleCBhYzgzNGJlMGU0ZjQxOTExNDM5
ZGRiZGU0NzJlNDZmY2Y5MGQ4NGJkLi4wYjI5MDc2YWJiOGM2NDE3MmQ4YWNhZTI0ZjMzNTU1MmRl
ZWViOTMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGlu
Z3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaApAQCAt
OTEsNyArOTEsNyBAQCBwdWJsaWM6CiAgICAgICAgIGJvb2wgbV91c2VMZWdhY3lCYWNrZ3JvdW5k
U2l6ZVNob3J0aGFuZEJlaGF2aW9yOwogICAgICAgICBib29sIG1fYXV0b3Njcm9sbEZvckRyYWdB
bmREcm9wRW5hYmxlZDsKICAgICAgICAgYm9vbCBtX3BsdWdpblJlcGxhY2VtZW50RW5hYmxlZDsK
LSAgICAgICAgYm9vbCBtX2NvbnZlcnRQb3NpdGlvblN0eWxlT25Db3B5OworICAgICAgICBib29s
IG1fc2hvdWxkQ29udmVydFBvc2l0aW9uU3R5bGVPbkNvcHk7CiAgICAgfTsKIAogICAgIHN0YXRp
YyBQYXNzUmVmUHRyPEludGVybmFsU2V0dGluZ3M+IGNyZWF0ZShQYWdlKiBwYWdlKQpAQCAtMTM3
LDcgKzEzNyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEZvbnRGYWxsYmFja1ByZWZlcnNQaWN0
b2dyYXBocyhib29sIHByZWZlclBpY3RvZ3JhcGhzLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9p
ZCBzZXRQbHVnaW5SZXBsYWNlbWVudEVuYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBzZXRCYWNrZ3Jv
dW5kU2hvdWxkRXh0ZW5kQmV5b25kUGFnZShib29sIGhhc0V4dGVuZGVkQmFja2dyb3VuZCwgRXhj
ZXB0aW9uQ29kZSYpOwotICAgIHZvaWQgc2V0Q29udmVydFBvc2l0aW9uU3R5bGVPbkNvcHkoYm9v
bCBjb252ZXJ0LCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBzZXRTaG91bGRDb252ZXJ0UG9z
aXRpb25TdHlsZU9uQ29weShib29sIGNvbnZlcnQsIEV4Y2VwdGlvbkNvZGUmKTsKIAogCiBwcml2
YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdz
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKaW5kZXgg
ODU0YjlkYjhhODRlZDkwNjYxYjk3OWQ2NmQ1ZGU4MDJjOWQ3Nzc2ZS4uYTIyYjUwNjEzMTM4MDYw
NjY2MDFmMzNmYzVhOTZhOGU5NzNmMTc4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFsU2V0dGluZ3MuaWRsCkBAIC02MCw1ICs2MCw1IEBACiAgICAgW1JhaXNlc0V4Y2VwdGlv
bl0gdm9pZCBzZXRGb250RmFsbGJhY2tQcmVmZXJzUGljdG9ncmFwaHMoYm9vbGVhbiBwcmVmZXJQ
aWN0b2dyYXBocyk7CiAgICAgdm9pZCBzZXRQbHVnaW5SZXBsYWNlbWVudEVuYWJsZWQoYm9vbGVh
biBlbmFibGVkKTsKICAgICBbUmFpc2VzRXhjZXB0aW9uXSB2b2lkIHNldEJhY2tncm91bmRTaG91
bGRFeHRlbmRCZXlvbmRQYWdlKGJvb2xlYW4gaGFzRXh0ZW5kZWRCYWNrZ3JvdW5kKTsKLSAgICBb
UmFpc2VzRXhjZXB0aW9uXSB2b2lkIHNldENvbnZlcnRQb3NpdGlvblN0eWxlT25Db3B5KGJvb2xl
YW4gY29udmVydCk7CisgICAgW1JhaXNlc0V4Y2VwdGlvbl0gdm9pZCBzZXRTaG91bGRDb252ZXJ0
UG9zaXRpb25TdHlsZU9uQ29weShib29sZWFuIGNvbnZlcnQpOwogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmggYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCmluZGV4IDQ1
MjU0NmE5M2ZhYTZiNWMxMDQ5YzYyNGFjNDdhYTY2M2NkNjFkMDYuLmNlMDYxZDRhMGMwYzQyN2Iw
MDAyZGUyY2I4YmVmNjY1OTkyNjE0ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaApAQCAtMTQ2LDcgKzE0Niw3IEBACiAj
ZGVmaW5lIFdlYktpdExvd1Bvd2VyVmlkZW9BdWRpb0J1ZmZlclNpemVFbmFibGVkUHJlZmVyZW5j
ZUtleSBAIldlYktpdExvd1Bvd2VyVmlkZW9BdWRpb0J1ZmZlclNpemVFbmFibGVkIgogI2RlZmlu
ZSBXZWJLaXRVc2VMZWdhY3lUZXh0QWxpZ25Qb3NpdGlvbmVkRWxlbWVudEJlaGF2aW9yUHJlZmVy
ZW5jZUtleSBAIldlYktpdFVzZUxlZ2FjeVRleHRBbGlnblBvc2l0aW9uZWRFbGVtZW50QmVoYXZp
b3IiCiAjZGVmaW5lIFdlYktpdE1lZGlhU291cmNlRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJL
aXRNZWRpYVNvdXJjZUVuYWJsZWQiCi0jZGVmaW5lIFdlYktpdENvbnZlcnRQb3NpdGlvblN0eWxl
T25Db3B5UHJlZmVyZW5jZUtleSBAIldlYktpdENvbnZlcnRQb3NpdGlvblN0eWxlT25Db3B5Igor
I2RlZmluZSBXZWJLaXRTaG91bGRDb252ZXJ0UG9zaXRpb25TdHlsZU9uQ29weVByZWZlcmVuY2VL
ZXkgQCJXZWJLaXRTaG91bGRDb252ZXJ0UG9zaXRpb25TdHlsZU9uQ29weSIKIAogI2lmICFUQVJH
RVRfT1NfSVBIT05FCiAvLyBUaGVzZSBhcmUgcHJpdmF0ZSBib3RoIGJlY2F1c2UgY2FsbGVycyBz
aG91bGQgYmUgdXNpbmcgdGhlIGNvdmVyIG1ldGhvZHMgYW5kIGJlY2F1c2UgdGhlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQppbmRleCAwZDM1M2I4NWRiYjEz
ZTk5MTQ3M2E5YmE1YjlkYTcyNzc1ODhjYTBkLi43ZTFmMzhiYzdhYmEyMWZiNzYxZjEwYmUyNzkx
YTY4MzcyMDY2NWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlBy
ZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5j
ZXMubW0KQEAgLTI1MzUsMTQgKzI1MzUsMTQgQEAgLSAodm9pZClzZXRNZWRpYVNvdXJjZUVuYWJs
ZWQ6KEJPT0wpZW5hYmxlZAogICAgIFtzZWxmIF9zZXRCb29sVmFsdWU6ZW5hYmxlZCBmb3JLZXk6
V2ViS2l0TWVkaWFTb3VyY2VFbmFibGVkUHJlZmVyZW5jZUtleV07CiB9CiAKLS0gKEJPT0wpY29u
dmVydFBvc2l0aW9uU3R5bGVPbkNvcHkKKy0gKEJPT0wpc2hvdWxkQ29udmVydFBvc2l0aW9uU3R5
bGVPbkNvcHkKIHsKLSAgICByZXR1cm4gW3NlbGYgX2Jvb2xWYWx1ZUZvcktleTpXZWJLaXRDb252
ZXJ0UG9zaXRpb25TdHlsZU9uQ29weVByZWZlcmVuY2VLZXldOworICAgIHJldHVybiBbc2VsZiBf
Ym9vbFZhbHVlRm9yS2V5OldlYktpdFNob3VsZENvbnZlcnRQb3NpdGlvblN0eWxlT25Db3B5UHJl
ZmVyZW5jZUtleV07CiB9CiAKLS0gKHZvaWQpc2V0Q29udmVydFBvc2l0aW9uU3R5bGVPbkNvcHk6
KEJPT0wpZW5hYmxlZAorLSAodm9pZClzZXRTaG91bGRDb252ZXJ0UG9zaXRpb25TdHlsZU9uQ29w
eTooQk9PTCllbmFibGVkCiB7Ci0gICAgW3NlbGYgX3NldEJvb2xWYWx1ZTplbmFibGVkIGZvcktl
eTpXZWJLaXRDb252ZXJ0UG9zaXRpb25TdHlsZU9uQ29weVByZWZlcmVuY2VLZXldOworICAgIFtz
ZWxmIF9zZXRCb29sVmFsdWU6ZW5hYmxlZCBmb3JLZXk6V2ViS2l0U2hvdWxkQ29udmVydFBvc2l0
aW9uU3R5bGVPbkNvcHlQcmVmZXJlbmNlS2V5XTsKIH0KIAogQGVuZApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaCBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKaW5kZXggMjIyNmNmNzQx
MWY4MDE1OGI0ODhjMzIyOGFiZmYwOTc2MDAwYmI2ZC4uZDRkYTYxMmZjYTkzMjc5OTU3YTc1ZTA4
MDNhOGIyNGVhZmU5NGZhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlByZWZlcmVuY2VzUHJpdmF0ZS5oCkBAIC00MzIsNyArNDMyLDcgQEAgZXh0ZXJuIE5TU3RyaW5n
ICpXZWJQcmVmZXJlbmNlc0NhY2hlTW9kZWxDaGFuZ2VkSW50ZXJuYWxOb3RpZmljYXRpb247CiAt
ICh2b2lkKXNldE1lZGlhU291cmNlRW5hYmxlZDooQk9PTClmbGFnOwogLSAoQk9PTCltZWRpYVNv
dXJjZUVuYWJsZWQ7CiAKLS0gKHZvaWQpc2V0Q29udmVydFBvc2l0aW9uU3R5bGVPbkNvcHk6KEJP
T0wpZmxhZzsKLS0gKEJPT0wpY29udmVydFBvc2l0aW9uU3R5bGVPbkNvcHk7CistICh2b2lkKXNl
dFNob3VsZENvbnZlcnRQb3NpdGlvblN0eWxlT25Db3B5OihCT09MKWZsYWc7CistIChCT09MKXNo
b3VsZENvbnZlcnRQb3NpdGlvblN0eWxlT25Db3B5OwogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlZpZXcubW0KaW5kZXggMzVhMDk5YjVjZjVmN2UxNzZjMDU0ODg4YjZkOGYzZjUzNGRj
ZGRhNi4uYjliMzc4ZTg2NmZjY2EyNTg2ZWI2ZDAxNjk0YjQ4ZGJlMDlmYTc0NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMjM3OCw3ICsyMzc4LDcgQEAgLSAodm9pZClf
cHJlZmVyZW5jZXNDaGFuZ2VkOihXZWJQcmVmZXJlbmNlcyAqKXByZWZlcmVuY2VzCiAgICAgc2V0
dGluZ3Muc2V0TWVkaWFTb3VyY2VFbmFibGVkKFtwcmVmZXJlbmNlcyBtZWRpYVNvdXJjZUVuYWJs
ZWRdKTsKICNlbmRpZgogCi0gICAgc2V0dGluZ3Muc2V0Q29udmVydFBvc2l0aW9uU3R5bGVPbkNv
cHkoW3ByZWZlcmVuY2VzIGNvbnZlcnRQb3NpdGlvblN0eWxlT25Db3B5XSk7CisgICAgc2V0dGlu
Z3Muc2V0U2hvdWxkQ29udmVydFBvc2l0aW9uU3R5bGVPbkNvcHkoW3ByZWZlcmVuY2VzIHNob3Vs
ZENvbnZlcnRQb3NpdGlvblN0eWxlT25Db3B5XSk7CiAKICAgICBzd2l0Y2ggKFtwcmVmZXJlbmNl
cyBzdG9yYWdlQmxvY2tpbmdQb2xpY3ldKSB7CiAgICAgY2FzZSBXZWJBbGxvd0FsbFN0b3JhZ2U6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5o
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuaAppbmRleCA5Yjg0
ZDg2OWM0Mjc0ZjA0NmJjNTEzM2QwMzgyYWZjYWQwYTg1MjMyLi43ODM3MDY3YzE5ZmIxY2U3YTM3
MmRhYjYyYjBlNWNiY2YyZDMxNzgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViUHJlZmVyZW5jZXNTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVm
ZXJlbmNlc1N0b3JlLmgKQEAgLTE5MCw3ICsxOTAsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKICAg
ICBtYWNybyhTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQsIHNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxl
ZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKICAgICBtYWNybyhNZWRpYVNvdXJjZUVuYWJsZWQsIG1l
ZGlhU291cmNlRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKICAgICBtYWNybyhWaWV3R2Vz
dHVyZURlYnVnZ2luZ0VuYWJsZWQsIHZpZXdHZXN0dXJlRGVidWdnaW5nRW5hYmxlZCwgQm9vbCwg
Ym9vbCwgZmFsc2UpIFwKLSAgICBtYWNybyhDb252ZXJ0UG9zaXRpb25TdHlsZU9uQ29weSwgY29u
dmVydFBvc2l0aW9uU3R5bGVPbkNvcHksIEJvb2wsIGJvb2wsIGZhbHNlKSBcCisgICAgbWFjcm8o
U2hvdWxkQ29udmVydFBvc2l0aW9uU3R5bGVPbkNvcHksIHNob3VsZENvbnZlcnRQb3NpdGlvblN0
eWxlT25Db3B5LCBCb29sLCBib29sLCBmYWxzZSkgXAogICAgIFwKIAogI2RlZmluZSBGT1JfRUFD
SF9XRUJLSVRfRE9VQkxFX1BSRUZFUkVOQ0UobWFjcm8pIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcAppbmRleCAyMDkzYTZjNmZlOGNlODEy
NjFlZjcxYjkxYTUxOTYxZmZlZGE5MGY0Li5iNDY5ZWQ5Y2ZhYTBjMGFjM2Q0YTI1ZjYwMmNjZGMx
M2I5NTZiNjVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQ
cmVmZXJlbmNlcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJl
ZmVyZW5jZXMuY3BwCkBAIC0xMjM2LDEyICsxMjM2LDEyIEBAIGJvb2wgV0tQcmVmZXJlbmNlc0dl
dFZpZXdHZXN0dXJlRGVidWdnaW5nRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2Vz
UmVmCiAgICAgcmV0dXJuIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnZpZXdHZXN0dXJlRGVidWdn
aW5nRW5hYmxlZCgpOwogfQogCi12b2lkIFdLUHJlZmVyZW5jZXNTZXRDb252ZXJ0UG9zaXRpb25T
dHlsZU9uQ29weShXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBib29sIGNvbnZlcnQp
Cit2b2lkIFdLUHJlZmVyZW5jZXNTZXRTaG91bGRDb252ZXJ0UG9zaXRpb25TdHlsZU9uQ29weShX
S1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBib29sIGNvbnZlcnQpCiB7Ci0gICAgdG9J
bXBsKHByZWZlcmVuY2VzUmVmKS0+c2V0Q29udmVydFBvc2l0aW9uU3R5bGVPbkNvcHkoY29udmVy
dCk7CisgICAgdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2V0U2hvdWxkQ29udmVydFBvc2l0aW9u
U3R5bGVPbkNvcHkoY29udmVydCk7CiB9CiAKLWJvb2wgV0tQcmVmZXJlbmNlc0dldENvbnZlcnRQ
b3NpdGlvblN0eWxlT25Db3B5KFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYpCitib29s
IFdLUHJlZmVyZW5jZXNHZXRTaG91bGRDb252ZXJ0UG9zaXRpb25TdHlsZU9uQ29weShXS1ByZWZl
cmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKQogewotICAgIHJldHVybiB0b0ltcGwocHJlZmVyZW5j
ZXNSZWYpLT5jb252ZXJ0UG9zaXRpb25TdHlsZU9uQ29weSgpOworICAgIHJldHVybiB0b0ltcGwo
cHJlZmVyZW5jZXNSZWYpLT5zaG91bGRDb252ZXJ0UG9zaXRpb25TdHlsZU9uQ29weSgpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNQ
cml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1By
aXZhdGUuaAppbmRleCBiYTVkYWJjMzUxNmViMTRmZDUyM2M1MzJjZDkwMmYzNjZhNjE0Y2Q0Li43
OTQ2MjFhZDlkY2NhNTQxMDBjNDRiYzE5MTQ5MmViOWI2Mzc2MDQ3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaApAQCAt
MzE1LDggKzMxNSw4IEBAIFdLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRWaWV3R2VzdHVy
ZURlYnVnZ2luZ0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmCiBXS19FWFBPUlQgYm9vbCBX
S1ByZWZlcmVuY2VzR2V0Vmlld0dlc3R1cmVEZWJ1Z2dpbmdFbmFibGVkKFdLUHJlZmVyZW5jZXNS
ZWYgcHJlZmVyZW5jZXNSZWYpOwogCiAvLyBEZWZhdWx0IHRvIGZhbHNlLgotV0tfRVhQT1JUIHZv
aWQgV0tQcmVmZXJlbmNlc1NldENvbnZlcnRQb3NpdGlvblN0eWxlT25Db3B5KFdLUHJlZmVyZW5j
ZXNSZWYgcHJlZmVyZW5jZXNSZWYsIGJvb2wgY29udmVydCk7Ci1XS19FWFBPUlQgYm9vbCBXS1By
ZWZlcmVuY2VzR2V0Q29udmVydFBvc2l0aW9uU3R5bGVPbkNvcHkoV0tQcmVmZXJlbmNlc1JlZiBw
cmVmZXJlbmNlc1JlZik7CitXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0U2hvdWxkQ29u
dmVydFBvc2l0aW9uU3R5bGVPbkNvcHkoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwg
Ym9vbCBjb252ZXJ0KTsKK1dLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRTaG91bGRDb252
ZXJ0UG9zaXRpb25TdHlsZU9uQ29weShXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKTsK
IAogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggNzc0NzhiYWNkMjhjZDE5MTIyNGFjNGI3Y2VmZjZkZDgy
NDBiOTRiNC4uNTk3NjU5OThmYjA2MGY0NjU2MThkYjgzZGRjZTVjYTUwMThiMTc2OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMjU3NSw3
ICsyNTc1LDcgQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQcmVm
ZXJlbmNlc1N0b3JlJiBzdG9yZSkKICAgICBzZXR0aW5ncy5zZXRNZWRpYVNvdXJjZUVuYWJsZWQo
c3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjptZWRpYVNvdXJjZUVu
YWJsZWRLZXkoKSkpOwogI2VuZGlmCiAKLSAgICBzZXR0aW5ncy5zZXRDb252ZXJ0UG9zaXRpb25T
dHlsZU9uQ29weShzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmNv
bnZlcnRQb3NpdGlvblN0eWxlT25Db3B5S2V5KCkpKTsKKyAgICBzZXR0aW5ncy5zZXRTaG91bGRD
b252ZXJ0UG9zaXRpb25TdHlsZU9uQ29weShzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJl
ZmVyZW5jZXNLZXk6OnNob3VsZENvbnZlcnRQb3NpdGlvblN0eWxlT25Db3B5S2V5KCkpKTsKIAog
ICAgIGlmIChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnBhZ2VW
aXNpYmlsaXR5QmFzZWRQcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkS2V5KCkpKSB7CiAgICAgICAg
IGlmIChtX3Byb2Nlc3NTdXBwcmVzc2lvbkRpc2FibGVkQnlXZWJQcmVmZXJlbmNlLmlzQWN0aXZl
KCkpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggNzRjYjIwNTdmMzA4MGJjMjVlZGE1ZTMwYzE3MDgyN2U5MGE5MWZhNi4uNzI5
MjhkZjI0ODQzNGY2MGFhZWQzNTcwOTczNjAxOTQxNTEzOWViOSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4
IEBACisyMDE0LTAyLTEyICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+
CisKKyAgICAgICAgRHVyaW5nIGEgY29weSwgcG9zaXRpb246Zml4ZWQgZ2V0cyBjb252ZXJ0ZWQg
dG8gcG9zaXRpb246YWJzb2x1dGUgZXZlbiBpZiBvbmx5IHBhcnQgb2YgdGhlIGRvY3VtZW50IGlz
IHNlbGVjdGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMjg2ODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBQZXJmb3JtcyBhIGNvcHkgb2YgdGhlIGNvbnRlbnRzIG9mIGEgcGFydGljdWxhciBkaXYsIHJh
dGhlciB0aGFuIHRoZSBlbnRpcmUgYm9keS4gTWFrZXMgc3VyZSB0aGF0CisgICAgICAgIG5vIHBv
c2l0aW9uOmZpeGVkIC0+IHBvc2l0aW9uOmFic29sdXRlIGNvbnZlcnNpb24gb2NjdXJzLgorCisg
ICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL2NvcHktcGFzdGUtY29udmVydHMtc3RpY2t5LWFu
ZC1maXhlZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL2NvcHkt
cGFzdGUtY29udmVydHMtc3RpY2t5LWFuZC1maXhlZC5odG1sOgorICAgICAgICAqIGVkaXRpbmcv
cGFzdGVib2FyZC9jb3B5LXBhc3RlLWRvZXNudC1jb252ZXJ0LXN0aWNreS1hbmQtZml4ZWQtZHVy
aW5nLXBhcnRpYWwtY29weS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcv
cGFzdGVib2FyZC9jb3B5LXBhc3RlLWRvZXNudC1jb252ZXJ0LXN0aWNreS1hbmQtZml4ZWQtZHVy
aW5nLXBhcnRpYWwtY29weS5odG1sOiBBZGRlZC4KKwogMjAxNC0wMi0xMiAgQnJhZHkgRWlkc29u
ICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgbWFjLXdrMSBwbGF0Zm9ybSBk
aXJlY3RvcnkgYW5kIFRlc3RFeHBlY3RhdGlvbnMgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZWRpdGluZy9wYXN0ZWJvYXJkL2NvcHktcGFzdGUtY29udmVydHMtc3RpY2t5LWFuZC1maXhl
ZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvY29weS1wYXN0
ZS1jb252ZXJ0cy1zdGlja3ktYW5kLWZpeGVkLWV4cGVjdGVkLnR4dAppbmRleCA1YTE4NWRiZjc2
YjZhOGQ4NDdiYjY5N2FiNTMzOWRmMzczNjRhNDc4Li5lNDJlYTU0OTNiYTVjMjU4ZTQwNWJkYjVi
MThlNDgxYjUwNDg3ZTJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9h
cmQvY29weS1wYXN0ZS1jb252ZXJ0cy1zdGlja3ktYW5kLWZpeGVkLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvY29weS1wYXN0ZS1jb252ZXJ0cy1zdGlj
a3ktYW5kLWZpeGVkLWV4cGVjdGVkLnR4dApAQCAtMzcsNyArMzcsNyBAQCBNYXJrdXAuZGVzY3Jp
cHRpb24oJ1RoZXNlIHRlc3RzIHRvIHNlZSBpZiBwb3NpdGlvbjpzdGlja3kgYW5kIHBvc2l0aW9u
OmZpeGVkIGdldAogZG9jdW1lbnQuZGVzaWduTW9kZSA9ICdvbic7CiAKIGlmICh3aW5kb3cuaW50
ZXJuYWxzKQotICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0Q29udmVydFBvc2l0aW9u
U3R5bGVPbkNvcHkodHJ1ZSk7CisgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRTaG91
bGRDb252ZXJ0UG9zaXRpb25TdHlsZU9uQ29weSh0cnVlKTsKIAogdmFyIHMgPSB3aW5kb3cuZ2V0
U2VsZWN0aW9uKCk7CiAKQEAgLTg1LDcgKzg1LDcgQEAgTWFya3VwLmRlc2NyaXB0aW9uKCdUaGVz
ZSB0ZXN0cyB0byBzZWUgaWYgcG9zaXRpb246c3RpY2t5IGFuZCBwb3NpdGlvbjpmaXhlZCBnZXQK
IGRvY3VtZW50LmRlc2lnbk1vZGUgPSAnb24nOwogCiBpZiAod2luZG93LmludGVybmFscykKLSAg
ICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldENvbnZlcnRQb3NpdGlvblN0eWxlT25Db3B5
KHRydWUpOworICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2hvdWxkQ29udmVydFBv
c2l0aW9uU3R5bGVPbkNvcHkodHJ1ZSk7CiAKIHZhciBzID0gd2luZG93LmdldFNlbGVjdGlvbigp
OwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvY29weS1wYXN0
ZS1jb252ZXJ0cy1zdGlja3ktYW5kLWZpeGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bh
c3RlYm9hcmQvY29weS1wYXN0ZS1jb252ZXJ0cy1zdGlja3ktYW5kLWZpeGVkLmh0bWwKaW5kZXgg
NzgwZjhhOTQ0OTRiYTVkYWQwNGY5MDI0NmJlMTA0NzVhNGViYzRlOC4uOGE2NzY0NmRjOTgzZTUx
NTg1ZTBlYzAzMTE4YTYwNzFiYTY5MGIxZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9wYXN0ZWJvYXJkL2NvcHktcGFzdGUtY29udmVydHMtc3RpY2t5LWFuZC1maXhlZC5odG1sCisr
KyBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9jb3B5LXBhc3RlLWNvbnZlcnRzLXN0
aWNreS1hbmQtZml4ZWQuaHRtbApAQCAtMTQsNyArMTQsNyBAQCBNYXJrdXAuZGVzY3JpcHRpb24o
J1RoZXNlIHRlc3RzIHRvIHNlZSBpZiBwb3NpdGlvbjpzdGlja3kgYW5kIHBvc2l0aW9uOmZpeGVk
IGdldAogZG9jdW1lbnQuZGVzaWduTW9kZSA9ICdvbic7CiAKIGlmICh3aW5kb3cuaW50ZXJuYWxz
KQotICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0Q29udmVydFBvc2l0aW9uU3R5bGVP
bkNvcHkodHJ1ZSk7CisgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRTaG91bGRDb252
ZXJ0UG9zaXRpb25TdHlsZU9uQ29weSh0cnVlKTsKIAogdmFyIHMgPSB3aW5kb3cuZ2V0U2VsZWN0
aW9uKCk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9jb3B5
LXBhc3RlLWRvZXNudC1jb252ZXJ0LXN0aWNreS1hbmQtZml4ZWQtZHVyaW5nLXBhcnRpYWwtY29w
eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvY29weS1wYXN0
ZS1kb2VzbnQtY29udmVydC1zdGlja3ktYW5kLWZpeGVkLWR1cmluZy1wYXJ0aWFsLWNvcHktZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE0MDdkYmE1YzY0NGI4Y2E1NmQ0Y2NmYjM1ZWM0YjY3OTEz
NDEyNzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQv
Y29weS1wYXN0ZS1kb2VzbnQtY29udmVydC1zdGlja3ktYW5kLWZpeGVkLWR1cmluZy1wYXJ0aWFs
LWNvcHktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKK1RoaXMgdGVzdHMgdG8gc2VlIGlm
IHBvc2l0aW9uOnN0aWNreSBhbmQgcG9zaXRpb246Zml4ZWQgZG9uJ3QgZ2V0IGNvbnZlcnRlZCB0
byBwb3NpdGlvbjpzdGF0aWMgYW5kIHBvc2l0aW9uOmFic29sdXRlIHVwb24gY29weS9wYXN0ZSB3
aGVuIHRoZXJlIGlzIG9ubHkgYSBwYXJ0aWFsIHNlbGVjdGlvbiAobm90IHRoZSBlbnRpcmUgYm9k
eSBpcyBzZWxlY3RlZCkKKworQmVmb3JlOgorfCAiCithYmMiCit8IDxkaXY+Cit8ICAgc3R5bGU9
InBvc2l0aW9uOiBmaXhlZDsgbGVmdDogMHB4OyB0b3A6IDBweDsiCit8ICAgImRlZiIKK3wgImdo
aQorIgorCitBZnRlcjoKK3wgImFiYyIKK3wgPGRpdj4KK3wgICBzdHlsZT0icG9zaXRpb246IGZp
eGVkOyBsZWZ0OiAwcHg7IHRvcDogMHB4OyIKK3wgICAiZGVmIgorfCAiZ2hpPCNzZWxlY3Rpb24t
Y2FyZXQ+IgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2NvcHkt
cGFzdGUtZG9lc250LWNvbnZlcnQtc3RpY2t5LWFuZC1maXhlZC1kdXJpbmctcGFydGlhbC1jb3B5
Lmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvY29weS1wYXN0ZS1kb2VzbnQt
Y29udmVydC1zdGlja3ktYW5kLWZpeGVkLWR1cmluZy1wYXJ0aWFsLWNvcHkuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42MWUxMzQ3YTQ2NGQxZGJjNTc5NDYxMDM0ZjA1ZWNiNzgxYWY2ZjIxCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2NvcHktcGFzdGUtZG9lc250
LWNvbnZlcnQtc3RpY2t5LWFuZC1maXhlZC1kdXJpbmctcGFydGlhbC1jb3B5Lmh0bWwKQEAgLTAs
MCArMSwzMCBAQAorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtdHlw
ZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04IiAvPgorPHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vcmVzb3VyY2VzL2R1bXAtYXMtbWFya3VwLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBjb250ZW50ZWRpdGFibGU9InRydWUiIGlk
PSJ0ZXN0Ij4KK2FiYzxkaXYgc3R5bGU9InBvc2l0aW9uOiBmaXhlZDsgbGVmdDogMHB4OyB0b3A6
IDBweDsiPmRlZjwvZGl2PmdoaQorPC9kaXY+CisKKzxzY3JpcHQ+CisKK01hcmt1cC5kZXNjcmlw
dGlvbignVGhpcyB0ZXN0cyB0byBzZWUgaWYgcG9zaXRpb246c3RpY2t5IGFuZCBwb3NpdGlvbjpm
aXhlZCBkb25cJ3QgZ2V0IGNvbnZlcnRlZCB0byBwb3NpdGlvbjpzdGF0aWMgYW5kIHBvc2l0aW9u
OmFic29sdXRlIHVwb24gY29weS9wYXN0ZSB3aGVuIHRoZXJlIGlzIG9ubHkgYSBwYXJ0aWFsIHNl
bGVjdGlvbiAobm90IHRoZSBlbnRpcmUgYm9keSBpcyBzZWxlY3RlZCknKTsKKworaWYgKHdpbmRv
dy5pbnRlcm5hbHMpCisgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRTaG91bGRDb252
ZXJ0UG9zaXRpb25TdHlsZU9uQ29weSh0cnVlKTsKKwordmFyIGUgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgidGVzdCIpOwordmFyIHMgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7CisKK01hcmt1
cC5kdW1wKCd0ZXN0JywgJ0JlZm9yZScpOworcy5zZXRQb3NpdGlvbihlLCAwKTsKK2RvY3VtZW50
LmV4ZWNDb21tYW5kKCJTZWxlY3RBbGwiKTsKK2RvY3VtZW50LmV4ZWNDb21tYW5kKCJDdXQiKTsK
K2RvY3VtZW50LmV4ZWNDb21tYW5kKCJQYXN0ZSIpOworTWFya3VwLmR1bXAoJ3Rlc3QnLCAnQWZ0
ZXInKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="review"
          id="248089"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
      

    </bug>

</bugzilla>