<?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>83692</bug_id>
          
          <creation_ts>2012-04-11 08:32:01 -0700</creation_ts>
          <short_desc>[EFL] Add API for color chooser</short_desc>
          <delta_ts>2012-04-13 04:44:46 -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>WebKit EFL</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="Thiago Marcos P. Santos">tmpsantos</reporter>
          <assigned_to name="Thiago Marcos P. Santos">tmpsantos</assigned_to>
          <cc>gyuyoung.kim</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>mxie</cc>
    
    <cc>rakuco</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>600289</commentid>
    <comment_count>0</comment_count>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2012-04-11 08:32:01 -0700</bug_when>
    <thetext>EWK users will get a signal to create a color chooser dialog or whatever interface they find more appropriated when user clicks on a &lt;input type=color&gt;.

Will enable something like this to be implemented by an EFL browser: http://www.youtube.com/watch?v=IPwCH8WQ8Qo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>601088</commentid>
    <comment_count>1</comment_count>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2012-04-12 04:03:35 -0700</bug_when>
    <thetext>Depends on this 82867 for testing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>601211</commentid>
    <comment_count>2</comment_count>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2012-04-12 07:22:13 -0700</bug_when>
    <thetext>Not really a dependency. My mistake.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>601259</commentid>
    <comment_count>3</comment_count>
      <attachid>136918</attachid>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2012-04-12 08:41:30 -0700</bug_when>
    <thetext>Created attachment 136918
Adds color chooser API to EFL port</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>601267</commentid>
    <comment_count>4</comment_count>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2012-04-12 08:57:29 -0700</bug_when>
    <thetext>Tonikitoo: It might interest you since it is touching your build system. There was a typo on WebKitFeatures.cmake that I fixed. Was it working for you?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>601280</commentid>
    <comment_count>5</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-04-12 09:07:17 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Tonikitoo: It might interest you since it is touching your build system. There was a typo on WebKitFeatures.cmake that I fixed. Was it working for you?

what was the typo? rob/ming?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>601283</commentid>
    <comment_count>6</comment_count>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2012-04-12 09:09:04 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; Tonikitoo: It might interest you since it is touching your build system. There was a typo on WebKitFeatures.cmake that I fixed. Was it working for you?
&gt; 
&gt; what was the typo? rob/ming?

-WEBKIT_OPTION_DEFINE(ENABLE_INPUT_COLOR &quot;Toggle Color Input support&quot; OFF)
+WEBKIT_OPTION_DEFINE(ENABLE_INPUT_TYPE_COLOR &quot;Toggle Color Input support&quot; OFF)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>601286</commentid>
    <comment_count>7</comment_count>
      <attachid>136918</attachid>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-04-12 09:12:56 -0700</bug_when>
    <thetext>Comment on attachment 136918
Adds color chooser API to EFL port

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

Looks mostly fine. I wonder if it wouldn&apos;t make sense to pass the color data as a struct to the users; otherwise, the documentation should at least mention how to extract the RGBA values from the integer (and note that it&apos;s encoded as ARGB instead of RGBA). Is there any test that can be unskipped?

Last but not least: do you know if the BlackBerry port does something similar to us (ie. relay a signal and leave it up to the user to create the color chooser)? I&apos;m thinking how an actual implementation would work -- one would probably need the position where the event was emitted to create the widget, for example.

&gt; Source/WebCore/platform/efl/ColorChooserEfl.h:51
&gt; +    ChromeClientEfl *m_chromeClient;

Style nitpick: wrong placement of the asterisk.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>601289</commentid>
    <comment_count>8</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-04-12 09:21:44 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #5)
&gt; &gt; (In reply to comment #4)
&gt; &gt; &gt; Tonikitoo: It might interest you since it is touching your build system. There was a typo on WebKitFeatures.cmake that I fixed. Was it working for you?
&gt; &gt; 
&gt; &gt; what was the typo? rob/ming?
&gt; 
&gt; -WEBKIT_OPTION_DEFINE(ENABLE_INPUT_COLOR &quot;Toggle Color Input support&quot; OFF)
&gt; +WEBKIT_OPTION_DEFINE(ENABLE_INPUT_TYPE_COLOR &quot;Toggle Color Input support&quot; OFF)

I agree with this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>601301</commentid>
    <comment_count>9</comment_count>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2012-04-12 10:01:24 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 136918 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=136918&amp;action=review
&gt; 
&gt; Looks mostly fine. I wonder if it wouldn&apos;t make sense to pass the color data as a struct to the users; otherwise, the documentation should at least mention how to extract the RGBA values from the integer (and note that it&apos;s encoded as ARGB instead of RGBA). 

Hmmm... good point. I&apos;m going to change to structure as you are suggesting since Evas always handles color as 4 separated bytes.

&gt; Is there any test that can be unskipped?

There are some tests related to color input that are already succeeding but are unrelated to this patch. I going to unskip them on a different patch, otherwise is misleading.

&gt; 
&gt; Last but not least: do you know if the BlackBerry port does something similar to us (ie. relay a signal and leave it up to the user to create the color chooser)? I&apos;m thinking how an actual implementation would work -- one would probably need the position where the event was emitted to create the widget, for example.

My implementation is based on the Chromium port, that doesn&apos;t delivery any kind of positioning coordinates (IMO because they assume the current mouse coordinates). For BlackBerry port this should not matter, since I guess it will open a fullscreen window on the mobile device.

&gt; 
&gt; &gt; Source/WebCore/platform/efl/ColorChooserEfl.h:51
&gt; &gt; +    ChromeClientEfl *m_chromeClient;
&gt; 
&gt; Style nitpick: wrong placement of the asterisk.

Your eyes are better than the style-checker. Thanks for reviewing. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>601435</commentid>
    <comment_count>10</comment_count>
      <attachid>136953</attachid>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2012-04-12 12:22:30 -0700</bug_when>
    <thetext>Created attachment 136953
Added Ewk_Color structure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>601579</commentid>
    <comment_count>11</comment_count>
      <attachid>136953</attachid>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-04-12 15:29:17 -0700</bug_when>
    <thetext>Comment on attachment 136953
Added Ewk_Color structure.

Informal r+, thanks for the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>601923</commentid>
    <comment_count>12</comment_count>
      <attachid>137061</attachid>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2012-04-13 01:49:55 -0700</bug_when>
    <thetext>Created attachment 137061
Same as before, but fixes a typo on the docs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>601976</commentid>
    <comment_count>13</comment_count>
      <attachid>137061</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-13 04:44:41 -0700</bug_when>
    <thetext>Comment on attachment 137061
Same as before, but fixes a typo on the docs.

Clearing flags on attachment: 137061

Committed r114113: &lt;http://trac.webkit.org/changeset/114113&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>601977</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-13 04:44:46 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>136918</attachid>
            <date>2012-04-12 08:41:30 -0700</date>
            <delta_ts>2012-04-12 10:02:12 -0700</delta_ts>
            <desc>Adds color chooser API to EFL port</desc>
            <filename>color_chooser.patch</filename>
            <type>text/plain</type>
            <size>21685</size>
            <attacher name="Thiago Marcos P. Santos">tmpsantos</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBhNjlmNTM1Li4yOTk0Yjk4
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTItMDQtMTIgIFRoaWFnbyBNYXJjb3MgUC4gU2FudG9zICA8dGhpYWdvLnNhbnRvc0BpbnRl
bC5jb20+CisKKyAgICAgICAgW0VGTF0gQWRkIEFQSSBmb3IgY29sb3IgY2hvb3NlcgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODM2OTIKKworICAgICAg
ICBFbmFibGVzIElOUFVUX1RZUEVfQ09MT1IgYnkgZGVmYXVsdCBvbiB0aGUgRUZMIHBvcnQuCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2Uv
Y21ha2UvT3B0aW9uc0VmbC5jbWFrZToKKyAgICAgICAgKiBTb3VyY2UvY21ha2UvV2ViS2l0RmVh
dHVyZXMuY21ha2U6CisgICAgICAgICogU291cmNlL2NtYWtlY29uZmlnLmguY21ha2U6CisKIDIw
MTItMDMtMTUgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtDQUlST10gTWFrZSBHTENvbnRleHRHTFggYSBzdWJjbGFzcyBvZiBHTENvbnRleHQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCA5N2EwNjVkLi5mNzMzN2UzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAK
KzIwMTItMDQtMTIgIFRoaWFnbyBNYXJjb3MgUC4gU2FudG9zICA8dGhpYWdvLnNhbnRvc0BpbnRl
bC5jb20+CisKKyAgICAgICAgW0VGTF0gQWRkIEFQSSBmb3IgY29sb3IgY2hvb3NlcgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODM2OTIKKworICAgICAg
ICBBZGRlZCBuZXcgQVBJIHRvIGVuYWJsZSBicm93c2VycyB0byBkaXNwbGF5IGEgY3VzdG9tIGNv
bG9yIHBpY2tlcgorICAgICAgICB3aGVuIGFuIGlucHV0IGZpZWxkIG9mIHR5cGUgImNvbG9yIiBp
cyBhY3RpdmF0ZWQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFrZToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvQ29sb3JD
aG9vc2VyRWZsLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OkNvbG9yQ2hvb3NlckVmbDo6Q29sb3JDaG9vc2VyRWZsKToKKyAgICAgICAgKFdlYkNvcmU6
OkNvbG9yQ2hvb3NlckVmbDo6fkNvbG9yQ2hvb3NlckVmbCk6CisgICAgICAgIChXZWJDb3JlOjpD
b2xvckNob29zZXJFZmw6OnNldFNlbGVjdGVkQ29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6Q29s
b3JDaG9vc2VyRWZsOjplbmRDaG9vc2VyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvQ29sb3JD
aG9vc2VyRWZsLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChDb2xvckNo
b29zZXJFZmwpOgorCiAyMDEyLTA0LTEyICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBbQ2hyb21pdW1dIEVuYWJsZSBJTlBVVF9UWVBFX0RBVEUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxh
dGZvcm1FZmwuY21ha2UKaW5kZXggYzM1ZGI2ZC4uNzlhNTAxMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1F
ZmwuY21ha2UKQEAgLTIzLDYgKzIzLDcgQEAgTElTVChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAg
IHBhZ2UvZWZsL0V2ZW50SGFuZGxlckVmbC5jcHAKICAgcGxhdGZvcm0vQ3Vyc29yLmNwcAogICBw
bGF0Zm9ybS9lZmwvQ2xpcGJvYXJkRWZsLmNwcAorICBwbGF0Zm9ybS9lZmwvQ29sb3JDaG9vc2Vy
RWZsLmNwcAogICBwbGF0Zm9ybS9lZmwvQ29udGV4dE1lbnVFZmwuY3BwCiAgIHBsYXRmb3JtL2Vm
bC9Db250ZXh0TWVudUl0ZW1FZmwuY3BwCiAgIHBsYXRmb3JtL2VmbC9DdXJzb3JFZmwuY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ29sb3JDaG9vc2VyRWZsLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Db2xvckNob29zZXJFZmwuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgwMDNiZTEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ29sb3JDaG9vc2VyRWZsLmNwcApAQCAtMCww
ICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDEyLCBJbnRlbCBDb3Jwb3JhdGlvbgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMKKyAqICAgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbgor
ICogICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqICogTmVpdGhlciB0aGUgbmFtZSBvZiBJbnRlbCBDb3Jwb3JhdGlvbiBub3IgdGhlIG5h
bWVzIG9mIGl0cyBjb250cmlidXRvcnMgbWF5CisgKiAgIGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQKKyAqICAg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgIkFT
IElTIgorICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKyAqIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRQorICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRQorICogUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisKKyNpbmNsdWRlICJD
b2xvckNob29zZXJFZmwuaCIKKworI2luY2x1ZGUgIkNocm9tZUNsaWVudEVmbC5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK0NvbG9yQ2hvb3NlckVmbDo6Q29sb3JDaG9vc2VyRWZsKENocm9t
ZUNsaWVudEVmbCogY2hyb21lQ2xpZW50KQorICAgIDogbV9jaHJvbWVDbGllbnQoY2hyb21lQ2xp
ZW50KQoreworICAgIEFTU0VSVChtX2Nocm9tZUNsaWVudCk7Cit9CisKK0NvbG9yQ2hvb3NlckVm
bDo6fkNvbG9yQ2hvb3NlckVmbCgpCit7Cit9CisKK3ZvaWQgQ29sb3JDaG9vc2VyRWZsOjpzZXRT
ZWxlY3RlZENvbG9yKGNvbnN0IENvbG9yJiBjb2xvcikKK3sKKyAgICBtX2Nocm9tZUNsaWVudC0+
dXBkYXRlQ29sb3JDaG9vc2VyKGNvbG9yKTsKK30KKwordm9pZCBDb2xvckNob29zZXJFZmw6OmVu
ZENob29zZXIoKQoreworICAgIG1fY2hyb21lQ2xpZW50LT5yZW1vdmVDb2xvckNob29zZXIoKTsK
K30KKworfQorCisjZW5kaWYgLy8gRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ29sb3JDaG9vc2VyRWZsLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ29sb3JDaG9vc2VyRWZsLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uZTE5YjEzYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2VmbC9Db2xvckNob29zZXJFZmwuaApAQCAtMCwwICsxLDU2IEBACisvKgor
ICogQ29weXJpZ2h0IChjKSAyMDEyLCBJbnRlbCBDb3Jwb3JhdGlvbgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsIHRoaXMKKyAq
ICAgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0IG5vdGljZSwKKyAqICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbgorICogICBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBJbnRlbCBDb3Jwb3JhdGlvbiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250
cmlidXRvcnMgbWF5CisgKiAgIGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQKKyAqICAgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgIkFTIElTIgorICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKyAqIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRQorICog
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRQorICogUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBDb2xvckNob29zZXJFZmxf
aAorI2RlZmluZSBDb2xvckNob29zZXJFZmxfaAorCisjaW5jbHVkZSAiQ29sb3IuaCIKKyNpbmNs
dWRlICJDb2xvckNob29zZXIuaCIKKworI2luY2x1ZGUgPEV2YXMuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBDaHJvbWVDbGllbnRFZmw7CisKK2NsYXNzIENvbG9yQ2hvb3NlckVm
bCA6IHB1YmxpYyBDb2xvckNob29zZXIgeworcHVibGljOgorICAgIENvbG9yQ2hvb3NlckVmbChD
aHJvbWVDbGllbnRFZmwqKTsKKyAgICB+Q29sb3JDaG9vc2VyRWZsKCk7CisKKyAgICAvLyBDb2xv
ckNob29zZXIgaW1wbGVtZW50YXRpb24uCisgICAgdmlydHVhbCB2b2lkIHNldFNlbGVjdGVkQ29s
b3IoY29uc3QgQ29sb3ImKTsKKyAgICB2aXJ0dWFsIHZvaWQgZW5kQ2hvb3NlcigpOworCitwcml2
YXRlOgorICAgIENocm9tZUNsaWVudEVmbCAqbV9jaHJvbWVDbGllbnQ7Cit9OworCit9CisKKyNl
bmRpZiAvLyBDb2xvckNob29zZXJFZmxfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCmluZGV4IDAzOWVhZWIuLjU0
YzI0OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAxMi0wNC0xMiAgVGhp
YWdvIE1hcmNvcyBQLiBTYW50b3MgIDx0aGlhZ28uc2FudG9zQGludGVsLmNvbT4KKworICAgICAg
ICBbRUZMXSBBZGQgQVBJIGZvciBjb2xvciBjaG9vc2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MzY5MgorCisgICAgICAgIEFkZGVkIG5ldyBBUEkg
dG8gZW5hYmxlIGJyb3dzZXJzIHRvIGRpc3BsYXkgYSBjdXN0b20gY29sb3IgcGlja2VyCisgICAg
ICAgIHdoZW4gYW4gaW5wdXQgZmllbGQgb2YgdHlwZSAiY29sb3IiIGlzIGFjdGl2YXRlZC4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KFdlYkNvcmU6OkNocm9tZUNsaWVudEVmbDo6Y3JlYXRlQ29sb3JDaG9vc2VyKToKKyAgICAgICAg
KFdlYkNvcmU6OkNocm9tZUNsaWVudEVmbDo6cmVtb3ZlQ29sb3JDaG9vc2VyKToKKyAgICAgICAg
KFdlYkNvcmU6OkNocm9tZUNsaWVudEVmbDo6dXBkYXRlQ29sb3JDaG9vc2VyKToKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuaDoKKyAgICAgICAgKENocm9tZUNsaWVu
dEVmbCk6CisgICAgICAgICogZXdrL2V3a19wcml2YXRlLmg6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKiBld2svZXdrX3ZpZXcuY3BwOgorICAgICAgICAoX0V3a19WaWV3X1ByaXZhdGVf
RGF0YSk6CisgICAgICAgIChld2tfdmlld19jb2xvcl9jaG9vc2VyX25ldyk6CisgICAgICAgIChl
d2tfdmlld19jb2xvcl9jaG9vc2VyX2Rlc3Ryb3kpOgorICAgICAgICAoZXdrX3ZpZXdfY29sb3Jf
Y2hvb3Nlcl9jb2xvcl9zZXQpOgorICAgICAgICAoZXdrX3ZpZXdfY29sb3JfY2hvb3Nlcl9jaGFu
Z2VkKToKKyAgICAgICAgKiBld2svZXdrX3ZpZXcuaDoKKwogMjAxMi0wNC0xMSAgU3VkYXJzYW5h
IE5hZ2luZW5pICA8c3VkYXJzYW5hLm5hZ2luZW5pQGxpbnV4LmludGVsLmNvbT4KIAogICAgICAg
ICBbRUZMXSBMYXlvdXRUZXN0Q29udHJvbGxlciBuZWVkcyBpbXBsZW1lbnRhdGlvbiBvZiBwYWdl
UHJvcGVydHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRFZmwuY3BwCmluZGV4IDY4YWRmNWYuLmQwMmI5MzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcApAQCAtNjQs
NiArNjQsMTAgQEAKICNpbmNsdWRlICJEYXRhYmFzZVRyYWNrZXIuaCIKICNlbmRpZgogCisjaWYg
RU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisjaW5jbHVkZSAiQ29sb3JDaG9vc2VyRWZsLmgiCisj
ZW5kaWYKKwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIHN0YXRpYyBpbmxpbmUgRXZhc19P
YmplY3QqIGtpdChGcmFtZSogZnJhbWUpCkBAIC00MjUsNiArNDI5LDI1IEBAIE5vdGlmaWNhdGlv
bkNsaWVudCogQ2hyb21lQ2xpZW50RWZsOjpub3RpZmljYXRpb25QcmVzZW50ZXIoKSBjb25zdAog
fQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKK1Bhc3NPd25QdHI8Q29s
b3JDaG9vc2VyPiBDaHJvbWVDbGllbnRFZmw6OmNyZWF0ZUNvbG9yQ2hvb3NlcihDb2xvckNob29z
ZXJDbGllbnQqIGNvbG9yQ2hvb3NlckNsaWVudCwgY29uc3QgQ29sb3ImIGluaXRpYWxDb2xvcikK
K3sKKyAgICBld2tfdmlld19jb2xvcl9jaG9vc2VyX25ldyhtX3ZpZXcsIGNvbG9yQ2hvb3NlckNs
aWVudCwgaW5pdGlhbENvbG9yKTsKKworICAgIHJldHVybiBhZG9wdFB0cihuZXcgQ29sb3JDaG9v
c2VyRWZsKHRoaXMpKTsKK30KKwordm9pZCBDaHJvbWVDbGllbnRFZmw6OnJlbW92ZUNvbG9yQ2hv
b3NlcigpCit7CisgICAgZXdrX3ZpZXdfY29sb3JfY2hvb3Nlcl9kZXN0cm95KG1fdmlldyk7Cit9
CisKK3ZvaWQgQ2hyb21lQ2xpZW50RWZsOjp1cGRhdGVDb2xvckNob29zZXIoY29uc3QgQ29sb3Im
IGNvbG9yKQoreworICAgIGV3a192aWV3X2NvbG9yX2Nob29zZXJfY2hhbmdlZChtX3ZpZXcsIGNv
bG9yKTsKK30KKyNlbmRpZgorCiB2b2lkIENocm9tZUNsaWVudEVmbDo6cnVuT3BlblBhbmVsKEZy
YW1lKiBmcmFtZSwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4gcHJwRmlsZUNob29zZXIpCiB7CiAg
ICAgUmVmUHRyPEZpbGVDaG9vc2VyPiBjaG9vc2VyID0gcHJwRmlsZUNob29zZXI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuaCBi
L1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oCmluZGV4
IDljZTlkNjguLjY1ZWFlYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oCkBAIC0yOCw2ICsyOCwxMCBAQAogI2luY2x1ZGUgIktV
UkwuaCIKICNpbmNsdWRlICJQb3B1cE1lbnUuaCIKIAorI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NP
TE9SKQorI2luY2x1ZGUgIkNvbG9yQ2hvb3Nlci5oIgorI2VuZGlmCisKICNpZiBFTkFCTEUoTk9U
SUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQogI2luY2x1ZGUgIk5v
dGlmaWNhdGlvbkNsaWVudC5oIgogI2VuZGlmCkBAIC0xMzgsNiArMTQyLDEyIEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1l
bnQqKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisgICAgdmlydHVh
bCBQYXNzT3duUHRyPENvbG9yQ2hvb3Nlcj4gY3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3Nl
ckNsaWVudCosIGNvbnN0IENvbG9yJik7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZUNvbG9yQ2hv
b3NlcigpOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVDb2xvckNob29zZXIoY29uc3QgQ29sb3Im
KTsKKyNlbmRpZgorCiAgICAgdmlydHVhbCB2b2lkIHJ1bk9wZW5QYW5lbChGcmFtZSosIFBhc3NS
ZWZQdHI8RmlsZUNob29zZXI+KTsKICAgICB2aXJ0dWFsIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhj
b25zdCBWZWN0b3I8U3RyaW5nPiYsIEZpbGVJY29uTG9hZGVyKik7CiAgICAgdmlydHVhbCB2b2lk
IGZvcm1TdGF0ZURpZENoYW5nZShjb25zdCBOb2RlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9ld2svZXdrX3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfcHJp
dmF0ZS5oCmluZGV4IDk2ZTQ3OTUuLmJhNDFkNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfcHJp
dmF0ZS5oCkBAIC03Nyw2ICs3NywxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBzdHJ1Y3QgUG9w
dXBNZW51Q2xpZW50Owogc3RydWN0IENvbnRleHRNZW51Owogc3RydWN0IENvbnRleHRNZW51SXRl
bTsKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKK3N0cnVjdCBDb2xvcjsKK3N0cnVjdCBD
b2xvckNob29zZXJDbGllbnQ7CisjZW5kaWYKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCiBjbGFzcyBHcmFwaGljc0NvbnRleHQzRDsKIGNsYXNzIEdyYXBoaWNzTGF5ZXI7CkBAIC0x
NTQsNiArMTU4LDExIEBAIFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpGcmFtZT4gZXdrX3ZpZXdf
ZnJhbWVfY3JlYXRlKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFzCiAKIFdURjo6UGFzc1JlZlB0
cjxXZWJDb3JlOjpXaWRnZXQ+IGV3a192aWV3X3BsdWdpbl9jcmVhdGUoRXZhc19PYmplY3QqIGV3
a1ZpZXcsIEV2YXNfT2JqZWN0KiBmcmFtZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgcGx1Z2lu
U2l6ZSwgV2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IFdlYkNvcmU6
OktVUkwmIHVybCwgY29uc3QgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+JiBwYXJhbU5hbWVzLCBj
b25zdCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mIHBhcmFtVmFsdWVzLCBjb25zdCBXVEY6OlN0
cmluZyYgbWltZVR5cGUsIGJvb2wgbG9hZE1hbnVhbGx5KTsKIAorI2lmIEVOQUJMRShJTlBVVF9U
WVBFX0NPTE9SKQordm9pZCBld2tfdmlld19jb2xvcl9jaG9vc2VyX25ldyhFdmFzX09iamVjdCog
ZXdrVmlldywgV2ViQ29yZTo6Q29sb3JDaG9vc2VyQ2xpZW50KiBjbGllbnQsIGNvbnN0IFdlYkNv
cmU6OkNvbG9yJiBpbml0aWFsQ29sb3IpOwordm9pZCBld2tfdmlld19jb2xvcl9jaG9vc2VyX2No
YW5nZWQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBjb2xvcik7
CisjZW5kaWYKKwogdm9pZCBld2tfdmlld19wb3B1cF9uZXcoRXZhc19PYmplY3QqIGV3a1ZpZXcs
IFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCogY2xpZW50LCBpbnQgc2VsZWN0ZWQsIGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmIHJlY3QpOwogdm9pZCBld2tfdmlld192aWV3cG9ydF9hdHRyaWJ1dGVz
X3NldChFdmFzX09iamVjdCogZXdrVmlldywgY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVu
dHMmIGFyZ3VtZW50cyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tf
dmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCmluZGV4IDJkNDJh
MzIuLjUwZGJmY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcApAQCAtMSw2ICsxLDcg
QEAKIC8qCiAgICAgQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgUHJvRlVTSU9OIGVtYmVkZGVkIHN5
c3RlbXMKICAgICBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzCisg
ICAgQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uCiAKICAgICBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICAg
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKQEAgLTg3LDYgKzg4LDEwIEBACiAjaW5jbHVkZSAiTmV0d29ya0luZm9DbGllbnRFZmwuaCIK
ICNlbmRpZgogCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisjaW5jbHVkZSAiQ29sb3JD
aG9vc2VyQ2xpZW50LmgiCisjZW5kaWYKKwogc3RhdGljIGNvbnN0IGZsb2F0IHpvb21NaW5pbXVt
ID0gMC4wNTsKIHN0YXRpYyBjb25zdCBmbG9hdCB6b29tTWF4aW11bSA9IDQuMDsKIApAQCAtMTAz
LDYgKzEwOCw5IEBAIHN0YXRpYyBjb25zdCBzaXplX3QgZXdrVmlld1Njcm9sbHNTaXplU3RlcCA9
IDI7CiBzdGF0aWMgY29uc3Qgc2l6ZV90IGV3a1ZpZXdTY3JvbGxzU2l6ZU1heGltdW1GcmVlID0g
MzI7CiAKIHN0YXRpYyBjb25zdCBFdmFzX1NtYXJ0X0NiX0Rlc2NyaXB0aW9uIF9ld2tfdmlld19j
YWxsYmFja19uYW1lc1tdID0geworICAgIHsgImNvbG9yY2hvb3NlcixjcmVhdGUiLCAidSIgfSwK
KyAgICB7ICJjb2xvcmNob29zZXIsd2lsbGRlbGV0ZSIsICIiIH0sCisgICAgeyAiY29sb3JjaG9v
c2VyLGNvbG9yLGNoYW5nZWQiLCAidSIgfSwKICAgICB7ICJkb3dubG9hZCxyZXF1ZXN0IiwgInAi
IH0sCiAgICAgeyAiZWRpdG9yY2xpZW50LGNvbnRlbnRzLGNoYW5nZWQiLCAiIiB9LAogICAgIHsg
ImVkaXRvcmNsaWVudCxzZWxlY3Rpb24sY2hhbmdlZCIsICIiIH0sCkBAIC0xNTIsNiArMTYwLDkg
QEAgc3RydWN0IF9Fd2tfVmlld19Qcml2YXRlX0RhdGEgewogICAgIFdlYkNvcmU6OlZpZXdwb3J0
QXJndW1lbnRzIHZpZXdwb3J0QXJndW1lbnRzOwogICAgIEV3a19IaXN0b3J5KiBoaXN0b3J5Owog
ICAgIE93blB0cjxXZWJDb3JlOjpQYWdlQ2xpZW50RWZsPiBwYWdlQ2xpZW50OworI2lmIEVOQUJM
RShJTlBVVF9UWVBFX0NPTE9SKQorICAgIFdlYkNvcmU6OkNvbG9yQ2hvb3NlckNsaWVudCogY29s
b3JDaG9vc2VyQ2xpZW50OworI2VuZGlmCiAgICAgc3RydWN0IHsKICAgICAgICAgRXdrX01lbnUg
bWVudTsKICAgICAgICAgV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KiBtZW51Q2xpZW50OwpAQCAt
MzUyMSw2ICszNTMyLDc1IEBAIHZvaWQgZXdrX3ZpZXdfcG9wdXBfc2VsZWN0ZWRfc2V0KEV2YXNf
T2JqZWN0KiBld2tWaWV3LCBpbnQgaW5kZXgpCiAgICAgcHJpdi0+cG9wdXAubWVudUNsaWVudC0+
dmFsdWVDaGFuZ2VkKGluZGV4KTsKIH0KIAorI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQor
LyoqCisgKiBAaW50ZXJuYWwKKyAqCisgKiBDcmVhdGVzIGEgbmV3IGNvbG9yIGNob29zZXIgd2l0
aCBhbiBpbml0aWFsIHNlbGVjdGVkIGNvbG9yLgorICoKKyAqIEBwYXJhbSBjbGllbnQgQ29sb3JD
aG9vc2VyQ2xpZW50IGluc3RhbmNlIHRoYXQgYWxsb3dzIGNvbW11bmljYXRpb24gd2l0aCB3ZWJr
aXQuCisgKiBAcGFyYW0gaW5pdGlhbENvbG9yIFRoZSBpbml0aWFsIHNlbGVjdGVkIGNvbG9yLgor
ICoKKyAqLwordm9pZCBld2tfdmlld19jb2xvcl9jaG9vc2VyX25ldyhFdmFzX09iamVjdCogZXdr
VmlldywgV2ViQ29yZTo6Q29sb3JDaG9vc2VyQ2xpZW50KiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6
OkNvbG9yJiBpbml0aWFsQ29sb3IpCit7CisgICAgSU5GKCJld2tWaWV3PSVwIiwgZXdrVmlldyk7
CisgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEpOworICAg
IEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYpOworCisgICAgaWYg
KHByaXYtPmNvbG9yQ2hvb3NlckNsaWVudCkKKyAgICAgICAgZXdrX3ZpZXdfY29sb3JfY2hvb3Nl
cl9kZXN0cm95KGV3a1ZpZXcpOworCisgICAgcHJpdi0+Y29sb3JDaG9vc2VyQ2xpZW50ID0gY2xp
ZW50OworCisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfY2FsbChld2tWaWV3LCAiY29s
b3JjaG9vc2VyLGNyZWF0ZSIsICh2b2lkICopIGluaXRpYWxDb2xvci5yZ2IoKSk7Cit9CisKK0Vp
bmFfQm9vbCBld2tfdmlld19jb2xvcl9jaG9vc2VyX2Rlc3Ryb3koRXZhc19PYmplY3QqIGV3a1Zp
ZXcpCit7CisgICAgSU5GKCJld2tWaWV3PSVwIiwgZXdrVmlldyk7CisgICAgRVdLX1ZJRVdfU0Rf
R0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEsIGZhbHNlKTsKKyAgICBFV0tfVklFV19Q
UklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCBmYWxzZSk7CisKKyAgICBpZiAoIXBy
aXYtPmNvbG9yQ2hvb3NlckNsaWVudCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgZXZh
c19vYmplY3Rfc21hcnRfY2FsbGJhY2tfY2FsbChld2tWaWV3LCAiY29sb3JjaG9vc2VyLHdpbGxk
ZWxldGUiLCAwKTsKKworICAgIHByaXYtPmNvbG9yQ2hvb3NlckNsaWVudC0+ZGlkRW5kQ2hvb3Nl
cigpOworICAgIHByaXYtPmNvbG9yQ2hvb3NlckNsaWVudCA9IDA7CisKKyAgICByZXR1cm4gdHJ1
ZTsKK30KKwordm9pZCBld2tfdmlld19jb2xvcl9jaG9vc2VyX2NvbG9yX3NldChFdmFzX09iamVj
dCogZXdrVmlldywgdW5zaWduZWQgaW50IGNvbG9yKQoreworICAgIElORigiZXdrVmlldz0lcCIs
IGV3a1ZpZXcpOworICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnRE
YXRhKTsKKyAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2KTsK
KyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihwcml2LT5jb2xvckNob29zZXJDbGllbnQp
OworCisgICAgcHJpdi0+Y29sb3JDaG9vc2VyQ2xpZW50LT5kaWRDaG9vc2VDb2xvcihXZWJDb3Jl
OjpDb2xvcigoV2ViQ29yZTo6UkdCQTMyKSBjb2xvcikpOworfQorCisvKioKKyAqIEBpbnRlcm5h
bAorICoKKyAqIFRoZSBzZWxlY3RlZCBjb2xvciBvZiB0aGUgY29sb3IgaW5wdXQgYXNzb2NpYXRl
ZCB3aXRoIHRoZSBjb2xvciBjaG9vc2VyIGhhcworICogY2hhbmdlZC4gVXN1YWxseSB0aGUgYnJv
d3NlciBzaG91bGQgdXBkYXRlZCB0aGUgY3VycmVudCBzZWxlY3RlZCB2YWx1ZSBvbiB0aGUKKyAq
IGNvbG9yIHBpY2tlciBpZiB0aGUgdXNlciBpcyBub3QgaW50ZXJhY3RpbmcuCisgKgorICogQHBh
cmFtIGNvbG9yIFRoZSBuZXcgc2VsZWN0ZWQgY29sb3IuCisgKgorICovCit2b2lkIGV3a192aWV3
X2NvbG9yX2Nob29zZXJfY2hhbmdlZChFdmFzX09iamVjdCogZXdrVmlldywgY29uc3QgV2ViQ29y
ZTo6Q29sb3ImIGNvbG9yKQoreworICAgIElORigiZXdrVmlldz0lcCIsIGV3a1ZpZXcpOworCisg
ICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfY2FsbChld2tWaWV3LCAiY29sb3JjaG9vc2Vy
LGNvbG9yLGNoYW5nZWQiLCAodm9pZCAqKSBjb2xvci5yZ2IoKSk7Cit9CisjZW5kaWYKKwogLyoq
CiAgKiBAaW50ZXJuYWwKICAqIFJlcXVlc3QgYSBkb3dubG9hZCB0byB1c2VyLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX3ZpZXcuaAppbmRleCBmYTM4MmE5Li40ZTIyZDExIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdr
X3ZpZXcuaApAQCAtMSw2ICsxLDcgQEAKIC8qCiAgICAgQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAg
UHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMKICAgICBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBT
YW1zdW5nIEVsZWN0cm9uaWNzCisgICAgQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0
aW9uCiAKICAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCiAgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTMzLDYgKzM0LDExIEBACiAgKgogICogVGhlIGZv
bGxvd2luZyBzaWduYWxzIChzZWUgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKCkpIGFy
ZSBlbWl0dGVkOgogICoKKyAqICAtICJjb2xvcmNob29zZXIsY3JlYXRlIiwgdXNpZ25lZCBpbnQ6
IGEgbmV3IGNvbG9yIGNob29zZXIgc2hvdWxkIGJlIGNyZWF0ZWQuCisgKiAgLSAiY29sb3JjaG9v
c2VyLHdpbGxkZWxldGUiLCB2b2lkOiByZXBvcnRzIHRoYXQgYSBwcmV2aW91c2x5IGNyZWF0ZWQg
Y29sb3IKKyAqICAgIGNob29zZXIgd2lsbCBiZSBkZWxldGVkLgorICogIC0gImNvbG9yY2hvb3Nl
cixjb2xvcixjaGFuZ2VkIiwgdW5zaWduZWQgaW50OiB0aGUgdmFsdWUgYXQgdGhlIGNvbG9yIGlu
cHV0IHdpZGdldAorICogICAgY29ycmVzcG9uZGluZyB0byB0aGUgY29sb3IgY2hvb3NlciBoYXMg
Y2hhbmdlZC4KICAqICAtICJkb3dubG9hZCxyZXF1ZXN0IiwgRXdrX0Rvd25sb2FkOiByZXBvcnRz
IGEgZG93bmxvYWQgaXMgYmVpbmcgcmVxdWVzdGVkCiAgKiAgLSAiZWRpdG9yY2xpZW50LGNvbnRl
bnRzLGNoYW5nZWQiLCB2b2lkOiByZXBvcnRzIHRvIHRoZSB2aWV3IHRoYXQgZWRpdG9yCiAgKiAg
ICBjbGllbnQncyBjb250ZW50cyB3ZXJlIGNoYW5nZWQKQEAgLTc1MCw2ICs3NTYsMzMgQEAgdHlw
ZWRlZiBlbnVtIF9Fd2tfRWRpdG9yX0NvbW1hbmQgRXdrX0VkaXRvcl9Db21tYW5kOwogRUFQSSBF
aW5hX0Jvb2wgICAgZXdrX3ZpZXdfZXhlY3V0ZV9lZGl0b3JfY29tbWFuZChFdmFzX09iamVjdCAq
bywgY29uc3QgRXdrX0VkaXRvcl9Db21tYW5kIGNvbW1hbmQsIGNvbnN0IGNoYXIgKnZhbHVlKTsK
IAogLyoqCisgKiBEZXN0cm95cyBhIHByZXZpb3VzbHkgY3JlYXRlZCBjb2xvciBjaG9vc2VyLgor
ICoKKyAqIEJlZm9yZSBkZXN0cm95aW5nLCBpdCBpbmZvcm1zIGNsaWVudCB0aGF0IGNvbG9yIGNo
b29zZXIncyBkYXRhIGlzIHJlYWR5IHRvIGJlCisgKiBkZXN0cm95ZWQgYnkgc2VuZGluZyBhICJj
b2xvcmNob29zZXIsd2lsbGRlbGV0ZSIuIFRoZW4gaXQgcmVtb3ZlcyBhbnkgcmVmZXJlbmNlCisg
KiB0byB0aGUgY29sb3IgY2hvb3NlciBpbnNpZGUgd2Via2l0LiBJdCdzIHNhZmUgdG8gY2FsbCB0
aGlzIGZ1bmN0aW9uIGVpdGhlciBmcm9tCisgKiBpbnNpZGUgd2Via2l0IG9yIGZyb20gYnJvd3Nl
ci4KKyAqCisgKiBAcGFyYW0gbyB2aWV3IG9iamVjdAorICoKKyAqIEByZXR1cm4gQGMgRUlOQV9U
UlVFIGluIGNhc2UgY29sb3IgY2hvb3NlciB3YXMgc3VjY2Vzc2Z1bGx5IGRlc3Ryb3llZCBvciBA
YyBFSU5BX1RSVUUgaW4KKyAqIGNhc2UgdGhlcmUgd2Fzbid0IGFueSBjb2xvciBjaG9vc2VyIHRv
IGJlIGRlc3Ryb3llZAorICovCitFQVBJIEVpbmFfQm9vbCAgICBld2tfdmlld19jb2xvcl9jaG9v
c2VyX2Rlc3Ryb3koRXZhc19PYmplY3QqIG8pOworCisvKioKKyAqIENoYW5nZXMgdGhlIHNlbGVj
dGVkIGNvbG9yLgorICoKKyAqIENoYW5nZXMgdGhlIGNvbG9yIHNlbGVjdGVkIGluIHRoZSBjb2xv
ciBpbnB1dCB3aWRnZXQuIFRoZSBicm93c2VyIHNob3VsZCBjYWxsCisgKiB0aGlzIHdoZW4gdGhl
IHVzZXIgY2hvb3NlcyBhIG5ldyBjb2xvci4gSXQncyBsaWtlbHkgdGhhdCBld2tfdmlld19jb2xv
cl9jaG9vc2VyX2Rlc3Ryb3kKKyAqIHdpbGwgYmUgY2FsbGVkIGFmdGVyd2FyZHMuCisgKgorICog
QHBhcmFtIG8gdmlldyBvYmplY3QKKyAqIEBwYXJhbSBjb2xvciBzZWxlY3RlZCBjb2xvciBpbiB0
aGUgUkdCQTMyIGZvcm1hdAorICovCitFQVBJIHZvaWQgICAgICAgICBld2tfdmlld19jb2xvcl9j
aG9vc2VyX2NvbG9yX3NldChFdmFzX09iamVjdCogbywgdW5zaWduZWQgaW50IGNvbG9yKTsKKwor
LyoqCiAgKiBDaGFuZ2VzIGN1cnJlbnRseSBzZWxlY3RlZCBpdGVtLgogICoKICAqIENoYW5nZXMg
dGhlIG9wdGlvbiBzZWxlY3RlZCBpbiBzZWxlY3Qgd2lkZ2V0LiBUaGlzIGlzIGNhbGxlZCBieSBi
cm93c2VyCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZSBiL1NvdXJj
ZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCmluZGV4IGVlYjdlYmEuLjEwMzYyYWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRp
b25zRWZsLmNtYWtlCkBAIC02OSw2ICs2OSw3IEBAIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JU
X1ZBTFVFKEVOQUJMRV9CQVRURVJZX1NUQVRVUyBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9Q
T1JUX1ZBTFVFKEVOQUJMRV9GQVNUX01PQklMRV9TQ1JPTExJTkcgT04pCiBXRUJLSVRfT1BUSU9O
X0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfRklMVEVSUyBPTikKIFdFQktJVF9PUFRJT05fREVG
QVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9HTElCX1NVUFBPUlQgT04pCitXRUJLSVRfT1BUSU9OX0RF
RkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUiBPTikKIFdFQktJVF9PUFRJ
T05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJIE9GRikKIFdF
QktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9ORVRXT1JLX0lORk8gT04pCiBX
RUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQ
SSBPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9XZWJLaXRGZWF0dXJlcy5jbWFrZSBiL1Nv
dXJjZS9jbWFrZS9XZWJLaXRGZWF0dXJlcy5jbWFrZQppbmRleCBhZWMzZGNjLi42YWI4NzQwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvV2ViS2l0RmVhdHVyZXMuY21ha2UKKysrIGIvU291cmNl
L2NtYWtlL1dlYktpdEZlYXR1cmVzLmNtYWtlCkBAIC00MCw4ICs0MCw4IEBAIE1BQ1JPIChXRUJL
SVRfT1BUSU9OX0JFR0lOKQogICAgIFdFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9JQ09OREFU
QUJBU0UgIlRvZ2dsZSBJY29uIGRhdGFiYXNlIHN1cHBvcnQiIE9OKQogICAgIFdFQktJVF9PUFRJ
T05fREVGSU5FKEVOQUJMRV9JTUFHRV9ERUNPREVSX0RPV05fU0FNUExJTkcgIlRvZ2dsZSBpbWFn
ZSBkZWNvZGVyIGRvd24gc2FtcGxpbmcgc3VwcG9ydCIgT0ZGKQogICAgIFdFQktJVF9PUFRJT05f
REVGSU5FKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFICJUb2dnbGUgSW5kZXhlZCBEYXRhYmFzZSBB
UEkgc3VwcG9ydCIgT0ZGKQotICAgIFdFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9JTlBVVF9D
T0xPUiAiVG9nZ2xlIENvbG9yIElucHV0IHN1cHBvcnQiIE9GRikKICAgICBXRUJLSVRfT1BUSU9O
X0RFRklORShFTkFCTEVfSU5QVVRfU1BFRUNIICJUb2dnbGUgU3BlZWNoIElucHV0IEFQSSBzdXBw
b3J0IiBPRkYpCisgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX0lOUFVUX1RZUEVfQ09M
T1IgIlRvZ2dsZSBDb2xvciBJbnB1dCBzdXBwb3J0IiBPRkYpCiAgICAgV0VCS0lUX09QVElPTl9E
RUZJTkUoRU5BQkxFX0lOUFVUX1RZUEVfREFURSAiVG9nZ2xlIGRhdGUgdHlwZSA8aW5wdXQ+IHN1
cHBvcnQiIE9GRikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfSU5QVVRfVFlQRV9E
QVRFVElNRSAiVG9nZ2xlIGRhdGV0aW1lIHR5cGUgPGlucHV0PiBzdXBwb3J0IiBPRkYpCiAgICAg
V0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCAiVG9n
Z2xlIGRhdGV0aW1lLWxvY2FsIHR5cGUgPGlucHV0PiBzdXBwb3J0IiBPRkYpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvY21ha2Vjb25maWcuaC5jbWFrZSBiL1NvdXJjZS9jbWFrZWNvbmZpZy5oLmNtYWtl
CmluZGV4IDE4MGQ1N2QuLjNmNGMzN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZWNvbmZpZy5o
LmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZWNvbmZpZy5oLmNtYWtlCkBAIC0zMSw3ICszMSw3IEBA
CiAjY21ha2VkZWZpbmUwMSBFTkFCTEVfSUNPTkRBVEFCQVNFCiAjY21ha2VkZWZpbmUwMSBFTkFC
TEVfSU1BR0VfREVDT0RFUl9ET1dOX1NBTVBMSU5HCiAjY21ha2VkZWZpbmUwMSBFTkFCTEVfSU5E
RVhFRF9EQVRBQkFTRQotI2NtYWtlZGVmaW5lMDEgRU5BQkxFX0lOUFVUX0NPTE9SCisjY21ha2Vk
ZWZpbmUwMSBFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUgogI2NtYWtlZGVmaW5lMDEgRU5BQkxFX0lO
UFVUX1RZUEVfREFURQogI2NtYWtlZGVmaW5lMDEgRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUUK
ICNjbWFrZWRlZmluZTAxIEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwKZGlmZiAtLWdp
dCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhMzliYWRkLi41ZmVh
Mjg0IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMTItMDQtMTIgIFRoaWFnbyBNYXJjb3MgUC4gU2FudG9zICA8dGhp
YWdvLnNhbnRvc0BpbnRlbC5jb20+CisKKyAgICAgICAgW0VGTF0gQWRkIEFQSSBmb3IgY29sb3Ig
Y2hvb3NlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
ODM2OTIKKworICAgICAgICBFbmFibGVzIElOUFVUX1RZUEVfQ09MT1IgYnkgZGVmYXVsdCBvbiB0
aGUgRUZMIHBvcnQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBTY3JpcHRzL2J1aWxkLXdlYmtpdDoKKwogMjAxMi0wNC0xMiAgU2ltb24gUGVuYSAg
PHNwZW5hQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gVGVzdCBydW5uZXIgY3Jhc2hlcyB3
aXRob3V0IHJlY2VudCB2ZXJzaW9ucyBvZiBwdWxzZWF1ZGlvLXV0aWxzCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdCBiL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0Cmlu
ZGV4IDczMWFkZmUuLmRkYWM1ZjYgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Vi
a2l0CisrKyBiL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0CkBAIC0yMzYsNyArMjM2LDcgQEAg
bXkgQGZlYXR1cmVzID0gKAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfU0NSSVBURURfU1BFRUNI
IiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBcJHNjcmlwdGVkU3BlZWNoU3VwcG9ydCB9LAogCiAg
ICAgeyBvcHRpb24gPT4gImlucHV0LXR5cGUtY29sb3IiLCBkZXNjID0+ICJUb2dnbGUgY29sb3Ig
dHlwZSA8aW5wdXQ+IHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVfSU5QVVRfVFlQ
RV9DT0xPUiIsIGRlZmF1bHQgPT4gaXNCbGFja0JlcnJ5KCksIHZhbHVlID0+IFwkaW5wdXRUeXBl
Q29sb3JTdXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9JTlBVVF9UWVBFX0NPTE9S
IiwgZGVmYXVsdCA9PiAoaXNCbGFja0JlcnJ5KCkgfHwgaXNFZmwoKSksIHZhbHVlID0+IFwkaW5w
dXRUeXBlQ29sb3JTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAiaW5wdXQtdHlwZS1kYXRl
IiwgZGVzYyA9PiAiVG9nZ2xlIGRhdGUgdHlwZSA8aW5wdXQ+IHN1cHBvcnQiLAogICAgICAgZGVm
aW5lID0+ICJFTkFCTEVfSU5QVVRfVFlQRV9EQVRFIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBc
JGlucHV0VHlwZURhdGVTdXBwb3J0IH0sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>136953</attachid>
            <date>2012-04-12 12:22:30 -0700</date>
            <delta_ts>2012-04-13 01:49:55 -0700</delta_ts>
            <desc>Added Ewk_Color structure.</desc>
            <filename>color_chooser2.patch</filename>
            <type>text/plain</type>
            <size>22570</size>
            <attacher name="Thiago Marcos P. Santos">tmpsantos</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBhNjlmNTM1Li4yOTk0Yjk4
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTItMDQtMTIgIFRoaWFnbyBNYXJjb3MgUC4gU2FudG9zICA8dGhpYWdvLnNhbnRvc0BpbnRl
bC5jb20+CisKKyAgICAgICAgW0VGTF0gQWRkIEFQSSBmb3IgY29sb3IgY2hvb3NlcgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODM2OTIKKworICAgICAg
ICBFbmFibGVzIElOUFVUX1RZUEVfQ09MT1IgYnkgZGVmYXVsdCBvbiB0aGUgRUZMIHBvcnQuCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2Uv
Y21ha2UvT3B0aW9uc0VmbC5jbWFrZToKKyAgICAgICAgKiBTb3VyY2UvY21ha2UvV2ViS2l0RmVh
dHVyZXMuY21ha2U6CisgICAgICAgICogU291cmNlL2NtYWtlY29uZmlnLmguY21ha2U6CisKIDIw
MTItMDMtMTUgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtDQUlST10gTWFrZSBHTENvbnRleHRHTFggYSBzdWJjbGFzcyBvZiBHTENvbnRleHQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCA5N2EwNjVkLi5mNzMzN2UzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAK
KzIwMTItMDQtMTIgIFRoaWFnbyBNYXJjb3MgUC4gU2FudG9zICA8dGhpYWdvLnNhbnRvc0BpbnRl
bC5jb20+CisKKyAgICAgICAgW0VGTF0gQWRkIEFQSSBmb3IgY29sb3IgY2hvb3NlcgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODM2OTIKKworICAgICAg
ICBBZGRlZCBuZXcgQVBJIHRvIGVuYWJsZSBicm93c2VycyB0byBkaXNwbGF5IGEgY3VzdG9tIGNv
bG9yIHBpY2tlcgorICAgICAgICB3aGVuIGFuIGlucHV0IGZpZWxkIG9mIHR5cGUgImNvbG9yIiBp
cyBhY3RpdmF0ZWQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFrZToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvQ29sb3JD
aG9vc2VyRWZsLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OkNvbG9yQ2hvb3NlckVmbDo6Q29sb3JDaG9vc2VyRWZsKToKKyAgICAgICAgKFdlYkNvcmU6
OkNvbG9yQ2hvb3NlckVmbDo6fkNvbG9yQ2hvb3NlckVmbCk6CisgICAgICAgIChXZWJDb3JlOjpD
b2xvckNob29zZXJFZmw6OnNldFNlbGVjdGVkQ29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6Q29s
b3JDaG9vc2VyRWZsOjplbmRDaG9vc2VyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvQ29sb3JD
aG9vc2VyRWZsLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChDb2xvckNo
b29zZXJFZmwpOgorCiAyMDEyLTA0LTEyICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBbQ2hyb21pdW1dIEVuYWJsZSBJTlBVVF9UWVBFX0RBVEUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxh
dGZvcm1FZmwuY21ha2UKaW5kZXggYzM1ZGI2ZC4uNzlhNTAxMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1F
ZmwuY21ha2UKQEAgLTIzLDYgKzIzLDcgQEAgTElTVChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAg
IHBhZ2UvZWZsL0V2ZW50SGFuZGxlckVmbC5jcHAKICAgcGxhdGZvcm0vQ3Vyc29yLmNwcAogICBw
bGF0Zm9ybS9lZmwvQ2xpcGJvYXJkRWZsLmNwcAorICBwbGF0Zm9ybS9lZmwvQ29sb3JDaG9vc2Vy
RWZsLmNwcAogICBwbGF0Zm9ybS9lZmwvQ29udGV4dE1lbnVFZmwuY3BwCiAgIHBsYXRmb3JtL2Vm
bC9Db250ZXh0TWVudUl0ZW1FZmwuY3BwCiAgIHBsYXRmb3JtL2VmbC9DdXJzb3JFZmwuY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ29sb3JDaG9vc2VyRWZsLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Db2xvckNob29zZXJFZmwuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgwMDNiZTEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ29sb3JDaG9vc2VyRWZsLmNwcApAQCAtMCww
ICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDEyLCBJbnRlbCBDb3Jwb3JhdGlvbgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMKKyAqICAgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbgor
ICogICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqICogTmVpdGhlciB0aGUgbmFtZSBvZiBJbnRlbCBDb3Jwb3JhdGlvbiBub3IgdGhlIG5h
bWVzIG9mIGl0cyBjb250cmlidXRvcnMgbWF5CisgKiAgIGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQKKyAqICAg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgIkFT
IElTIgorICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKyAqIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRQorICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRQorICogUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisKKyNpbmNsdWRlICJD
b2xvckNob29zZXJFZmwuaCIKKworI2luY2x1ZGUgIkNocm9tZUNsaWVudEVmbC5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK0NvbG9yQ2hvb3NlckVmbDo6Q29sb3JDaG9vc2VyRWZsKENocm9t
ZUNsaWVudEVmbCogY2hyb21lQ2xpZW50KQorICAgIDogbV9jaHJvbWVDbGllbnQoY2hyb21lQ2xp
ZW50KQoreworICAgIEFTU0VSVChtX2Nocm9tZUNsaWVudCk7Cit9CisKK0NvbG9yQ2hvb3NlckVm
bDo6fkNvbG9yQ2hvb3NlckVmbCgpCit7Cit9CisKK3ZvaWQgQ29sb3JDaG9vc2VyRWZsOjpzZXRT
ZWxlY3RlZENvbG9yKGNvbnN0IENvbG9yJiBjb2xvcikKK3sKKyAgICBtX2Nocm9tZUNsaWVudC0+
dXBkYXRlQ29sb3JDaG9vc2VyKGNvbG9yKTsKK30KKwordm9pZCBDb2xvckNob29zZXJFZmw6OmVu
ZENob29zZXIoKQoreworICAgIG1fY2hyb21lQ2xpZW50LT5yZW1vdmVDb2xvckNob29zZXIoKTsK
K30KKworfQorCisjZW5kaWYgLy8gRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ29sb3JDaG9vc2VyRWZsLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ29sb3JDaG9vc2VyRWZsLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uYzFjOGQwNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2VmbC9Db2xvckNob29zZXJFZmwuaApAQCAtMCwwICsxLDU2IEBACisvKgor
ICogQ29weXJpZ2h0IChjKSAyMDEyLCBJbnRlbCBDb3Jwb3JhdGlvbgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsIHRoaXMKKyAq
ICAgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0IG5vdGljZSwKKyAqICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbgorICogICBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBJbnRlbCBDb3Jwb3JhdGlvbiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250
cmlidXRvcnMgbWF5CisgKiAgIGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQKKyAqICAgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgIkFTIElTIgorICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKyAqIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRQorICog
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRQorICogUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBDb2xvckNob29zZXJFZmxf
aAorI2RlZmluZSBDb2xvckNob29zZXJFZmxfaAorCisjaW5jbHVkZSAiQ29sb3IuaCIKKyNpbmNs
dWRlICJDb2xvckNob29zZXIuaCIKKworI2luY2x1ZGUgPEV2YXMuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBDaHJvbWVDbGllbnRFZmw7CisKK2NsYXNzIENvbG9yQ2hvb3NlckVm
bCA6IHB1YmxpYyBDb2xvckNob29zZXIgeworcHVibGljOgorICAgIENvbG9yQ2hvb3NlckVmbChD
aHJvbWVDbGllbnRFZmwqKTsKKyAgICB+Q29sb3JDaG9vc2VyRWZsKCk7CisKKyAgICAvLyBDb2xv
ckNob29zZXIgaW1wbGVtZW50YXRpb24uCisgICAgdmlydHVhbCB2b2lkIHNldFNlbGVjdGVkQ29s
b3IoY29uc3QgQ29sb3ImKTsKKyAgICB2aXJ0dWFsIHZvaWQgZW5kQ2hvb3NlcigpOworCitwcml2
YXRlOgorICAgIENocm9tZUNsaWVudEVmbCogbV9jaHJvbWVDbGllbnQ7Cit9OworCit9CisKKyNl
bmRpZiAvLyBDb2xvckNob29zZXJFZmxfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCmluZGV4IDAzOWVhZWIuLjU0
YzI0OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAxMi0wNC0xMiAgVGhp
YWdvIE1hcmNvcyBQLiBTYW50b3MgIDx0aGlhZ28uc2FudG9zQGludGVsLmNvbT4KKworICAgICAg
ICBbRUZMXSBBZGQgQVBJIGZvciBjb2xvciBjaG9vc2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MzY5MgorCisgICAgICAgIEFkZGVkIG5ldyBBUEkg
dG8gZW5hYmxlIGJyb3dzZXJzIHRvIGRpc3BsYXkgYSBjdXN0b20gY29sb3IgcGlja2VyCisgICAg
ICAgIHdoZW4gYW4gaW5wdXQgZmllbGQgb2YgdHlwZSAiY29sb3IiIGlzIGFjdGl2YXRlZC4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KFdlYkNvcmU6OkNocm9tZUNsaWVudEVmbDo6Y3JlYXRlQ29sb3JDaG9vc2VyKToKKyAgICAgICAg
KFdlYkNvcmU6OkNocm9tZUNsaWVudEVmbDo6cmVtb3ZlQ29sb3JDaG9vc2VyKToKKyAgICAgICAg
KFdlYkNvcmU6OkNocm9tZUNsaWVudEVmbDo6dXBkYXRlQ29sb3JDaG9vc2VyKToKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuaDoKKyAgICAgICAgKENocm9tZUNsaWVu
dEVmbCk6CisgICAgICAgICogZXdrL2V3a19wcml2YXRlLmg6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKiBld2svZXdrX3ZpZXcuY3BwOgorICAgICAgICAoX0V3a19WaWV3X1ByaXZhdGVf
RGF0YSk6CisgICAgICAgIChld2tfdmlld19jb2xvcl9jaG9vc2VyX25ldyk6CisgICAgICAgIChl
d2tfdmlld19jb2xvcl9jaG9vc2VyX2Rlc3Ryb3kpOgorICAgICAgICAoZXdrX3ZpZXdfY29sb3Jf
Y2hvb3Nlcl9jb2xvcl9zZXQpOgorICAgICAgICAoZXdrX3ZpZXdfY29sb3JfY2hvb3Nlcl9jaGFu
Z2VkKToKKyAgICAgICAgKiBld2svZXdrX3ZpZXcuaDoKKwogMjAxMi0wNC0xMSAgU3VkYXJzYW5h
IE5hZ2luZW5pICA8c3VkYXJzYW5hLm5hZ2luZW5pQGxpbnV4LmludGVsLmNvbT4KIAogICAgICAg
ICBbRUZMXSBMYXlvdXRUZXN0Q29udHJvbGxlciBuZWVkcyBpbXBsZW1lbnRhdGlvbiBvZiBwYWdl
UHJvcGVydHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRFZmwuY3BwCmluZGV4IDY4YWRmNWYuLmQwMmI5MzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcApAQCAtNjQs
NiArNjQsMTAgQEAKICNpbmNsdWRlICJEYXRhYmFzZVRyYWNrZXIuaCIKICNlbmRpZgogCisjaWYg
RU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisjaW5jbHVkZSAiQ29sb3JDaG9vc2VyRWZsLmgiCisj
ZW5kaWYKKwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIHN0YXRpYyBpbmxpbmUgRXZhc19P
YmplY3QqIGtpdChGcmFtZSogZnJhbWUpCkBAIC00MjUsNiArNDI5LDI1IEBAIE5vdGlmaWNhdGlv
bkNsaWVudCogQ2hyb21lQ2xpZW50RWZsOjpub3RpZmljYXRpb25QcmVzZW50ZXIoKSBjb25zdAog
fQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKK1Bhc3NPd25QdHI8Q29s
b3JDaG9vc2VyPiBDaHJvbWVDbGllbnRFZmw6OmNyZWF0ZUNvbG9yQ2hvb3NlcihDb2xvckNob29z
ZXJDbGllbnQqIGNvbG9yQ2hvb3NlckNsaWVudCwgY29uc3QgQ29sb3ImIGluaXRpYWxDb2xvcikK
K3sKKyAgICBld2tfdmlld19jb2xvcl9jaG9vc2VyX25ldyhtX3ZpZXcsIGNvbG9yQ2hvb3NlckNs
aWVudCwgaW5pdGlhbENvbG9yKTsKKworICAgIHJldHVybiBhZG9wdFB0cihuZXcgQ29sb3JDaG9v
c2VyRWZsKHRoaXMpKTsKK30KKwordm9pZCBDaHJvbWVDbGllbnRFZmw6OnJlbW92ZUNvbG9yQ2hv
b3NlcigpCit7CisgICAgZXdrX3ZpZXdfY29sb3JfY2hvb3Nlcl9kZXN0cm95KG1fdmlldyk7Cit9
CisKK3ZvaWQgQ2hyb21lQ2xpZW50RWZsOjp1cGRhdGVDb2xvckNob29zZXIoY29uc3QgQ29sb3Im
IGNvbG9yKQoreworICAgIGV3a192aWV3X2NvbG9yX2Nob29zZXJfY2hhbmdlZChtX3ZpZXcsIGNv
bG9yKTsKK30KKyNlbmRpZgorCiB2b2lkIENocm9tZUNsaWVudEVmbDo6cnVuT3BlblBhbmVsKEZy
YW1lKiBmcmFtZSwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4gcHJwRmlsZUNob29zZXIpCiB7CiAg
ICAgUmVmUHRyPEZpbGVDaG9vc2VyPiBjaG9vc2VyID0gcHJwRmlsZUNob29zZXI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuaCBi
L1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oCmluZGV4
IDljZTlkNjguLjY1ZWFlYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oCkBAIC0yOCw2ICsyOCwxMCBAQAogI2luY2x1ZGUgIktV
UkwuaCIKICNpbmNsdWRlICJQb3B1cE1lbnUuaCIKIAorI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NP
TE9SKQorI2luY2x1ZGUgIkNvbG9yQ2hvb3Nlci5oIgorI2VuZGlmCisKICNpZiBFTkFCTEUoTk9U
SUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQogI2luY2x1ZGUgIk5v
dGlmaWNhdGlvbkNsaWVudC5oIgogI2VuZGlmCkBAIC0xMzgsNiArMTQyLDEyIEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1l
bnQqKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisgICAgdmlydHVh
bCBQYXNzT3duUHRyPENvbG9yQ2hvb3Nlcj4gY3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3Nl
ckNsaWVudCosIGNvbnN0IENvbG9yJik7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZUNvbG9yQ2hv
b3NlcigpOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVDb2xvckNob29zZXIoY29uc3QgQ29sb3Im
KTsKKyNlbmRpZgorCiAgICAgdmlydHVhbCB2b2lkIHJ1bk9wZW5QYW5lbChGcmFtZSosIFBhc3NS
ZWZQdHI8RmlsZUNob29zZXI+KTsKICAgICB2aXJ0dWFsIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhj
b25zdCBWZWN0b3I8U3RyaW5nPiYsIEZpbGVJY29uTG9hZGVyKik7CiAgICAgdmlydHVhbCB2b2lk
IGZvcm1TdGF0ZURpZENoYW5nZShjb25zdCBOb2RlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9ld2svZXdrX3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfcHJp
dmF0ZS5oCmluZGV4IDk2ZTQ3OTUuLjk2ZmE3NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfcHJp
dmF0ZS5oCkBAIC03Nyw2ICs3NywxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBzdHJ1Y3QgUG9w
dXBNZW51Q2xpZW50Owogc3RydWN0IENvbnRleHRNZW51Owogc3RydWN0IENvbnRleHRNZW51SXRl
bTsKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKK3N0cnVjdCBDb2xvcjsKK3N0cnVjdCBD
b2xvckNob29zZXJDbGllbnQ7CisjZW5kaWYKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCiBjbGFzcyBHcmFwaGljc0NvbnRleHQzRDsKIGNsYXNzIEdyYXBoaWNzTGF5ZXI7CkBAIC0x
NTQsNiArMTU4LDExIEBAIFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpGcmFtZT4gZXdrX3ZpZXdf
ZnJhbWVfY3JlYXRlKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFzCiAKIFdURjo6UGFzc1JlZlB0
cjxXZWJDb3JlOjpXaWRnZXQ+IGV3a192aWV3X3BsdWdpbl9jcmVhdGUoRXZhc19PYmplY3QqIGV3
a1ZpZXcsIEV2YXNfT2JqZWN0KiBmcmFtZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgcGx1Z2lu
U2l6ZSwgV2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IFdlYkNvcmU6
OktVUkwmIHVybCwgY29uc3QgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+JiBwYXJhbU5hbWVzLCBj
b25zdCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mIHBhcmFtVmFsdWVzLCBjb25zdCBXVEY6OlN0
cmluZyYgbWltZVR5cGUsIGJvb2wgbG9hZE1hbnVhbGx5KTsKIAorI2lmIEVOQUJMRShJTlBVVF9U
WVBFX0NPTE9SKQordm9pZCBld2tfdmlld19jb2xvcl9jaG9vc2VyX25ldyhFdmFzX09iamVjdCog
ZXdrVmlldywgV2ViQ29yZTo6Q29sb3JDaG9vc2VyQ2xpZW50KiBjbGllbnQsIGNvbnN0IFdlYkNv
cmU6OkNvbG9yJiBpbml0aWFsQ29sb3IpOwordm9pZCBld2tfdmlld19jb2xvcl9jaG9vc2VyX2No
YW5nZWQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBuZXdDb2xv
cik7CisjZW5kaWYKKwogdm9pZCBld2tfdmlld19wb3B1cF9uZXcoRXZhc19PYmplY3QqIGV3a1Zp
ZXcsIFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCogY2xpZW50LCBpbnQgc2VsZWN0ZWQsIGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmIHJlY3QpOwogdm9pZCBld2tfdmlld192aWV3cG9ydF9hdHRyaWJ1
dGVzX3NldChFdmFzX09iamVjdCogZXdrVmlldywgY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBcmd1
bWVudHMmIGFyZ3VtZW50cyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9l
d2tfdmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCmluZGV4IDJk
NDJhMzIuLmE3NWJjYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmll
dy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcApAQCAtMSw2ICsx
LDcgQEAKIC8qCiAgICAgQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgUHJvRlVTSU9OIGVtYmVkZGVk
IHN5c3RlbXMKICAgICBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNz
CisgICAgQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uCiAKICAgICBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAg
ICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKQEAgLTg3LDYgKzg4LDEwIEBACiAjaW5jbHVkZSAiTmV0d29ya0luZm9DbGllbnRFZmwu
aCIKICNlbmRpZgogCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisjaW5jbHVkZSAiQ29s
b3JDaG9vc2VyQ2xpZW50LmgiCisjZW5kaWYKKwogc3RhdGljIGNvbnN0IGZsb2F0IHpvb21NaW5p
bXVtID0gMC4wNTsKIHN0YXRpYyBjb25zdCBmbG9hdCB6b29tTWF4aW11bSA9IDQuMDsKIApAQCAt
MTAzLDYgKzEwOCw5IEBAIHN0YXRpYyBjb25zdCBzaXplX3QgZXdrVmlld1Njcm9sbHNTaXplU3Rl
cCA9IDI7CiBzdGF0aWMgY29uc3Qgc2l6ZV90IGV3a1ZpZXdTY3JvbGxzU2l6ZU1heGltdW1GcmVl
ID0gMzI7CiAKIHN0YXRpYyBjb25zdCBFdmFzX1NtYXJ0X0NiX0Rlc2NyaXB0aW9uIF9ld2tfdmll
d19jYWxsYmFja19uYW1lc1tdID0geworICAgIHsgImNvbG9yY2hvb3NlcixjcmVhdGUiLCAiKHl5
eXkpIiB9LAorICAgIHsgImNvbG9yY2hvb3Nlcix3aWxsZGVsZXRlIiwgIiIgfSwKKyAgICB7ICJj
b2xvcmNob29zZXIsY29sb3IsY2hhbmdlZCIsICIoeXl5eSkiIH0sCiAgICAgeyAiZG93bmxvYWQs
cmVxdWVzdCIsICJwIiB9LAogICAgIHsgImVkaXRvcmNsaWVudCxjb250ZW50cyxjaGFuZ2VkIiwg
IiIgfSwKICAgICB7ICJlZGl0b3JjbGllbnQsc2VsZWN0aW9uLGNoYW5nZWQiLCAiIiB9LApAQCAt
MTUyLDYgKzE2MCw5IEBAIHN0cnVjdCBfRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhIHsKICAgICBXZWJD
b3JlOjpWaWV3cG9ydEFyZ3VtZW50cyB2aWV3cG9ydEFyZ3VtZW50czsKICAgICBFd2tfSGlzdG9y
eSogaGlzdG9yeTsKICAgICBPd25QdHI8V2ViQ29yZTo6UGFnZUNsaWVudEVmbD4gcGFnZUNsaWVu
dDsKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKyAgICBXZWJDb3JlOjpDb2xvckNob29z
ZXJDbGllbnQqIGNvbG9yQ2hvb3NlckNsaWVudDsKKyNlbmRpZgogICAgIHN0cnVjdCB7CiAgICAg
ICAgIEV3a19NZW51IG1lbnU7CiAgICAgICAgIFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCogbWVu
dUNsaWVudDsKQEAgLTM1MjEsNiArMzUzMiw4OCBAQCB2b2lkIGV3a192aWV3X3BvcHVwX3NlbGVj
dGVkX3NldChFdmFzX09iamVjdCogZXdrVmlldywgaW50IGluZGV4KQogICAgIHByaXYtPnBvcHVw
Lm1lbnVDbGllbnQtPnZhbHVlQ2hhbmdlZChpbmRleCk7CiB9CiAKKyNpZiBFTkFCTEUoSU5QVVRf
VFlQRV9DT0xPUikKKy8qKgorICogQGludGVybmFsCisgKgorICogQ3JlYXRlcyBhIG5ldyBjb2xv
ciBjaG9vc2VyIHdpdGggYW4gaW5pdGlhbCBzZWxlY3RlZCBjb2xvci4KKyAqCisgKiBAcGFyYW0g
Y2xpZW50IENvbG9yQ2hvb3NlckNsaWVudCBpbnN0YW5jZSB0aGF0IGFsbG93cyBjb21tdW5pY2F0
aW9uIHdpdGggd2Via2l0LgorICogQHBhcmFtIGluaXRpYWxDb2xvciBUaGUgaW5pdGlhbCBzZWxl
Y3RlZCBjb2xvci4KKyAqCisgKi8KK3ZvaWQgZXdrX3ZpZXdfY29sb3JfY2hvb3Nlcl9uZXcoRXZh
c19PYmplY3QqIGV3a1ZpZXcsIFdlYkNvcmU6OkNvbG9yQ2hvb3NlckNsaWVudCogY2xpZW50LCBj
b25zdCBXZWJDb3JlOjpDb2xvciYgaW5pdGlhbENvbG9yKQoreworICAgIElORigiZXdrVmlldz0l
cCIsIGV3a1ZpZXcpOworICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21h
cnREYXRhKTsKKyAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2
KTsKKworICAgIGlmIChwcml2LT5jb2xvckNob29zZXJDbGllbnQpCisgICAgICAgIGV3a192aWV3
X2NvbG9yX2Nob29zZXJfZGVzdHJveShld2tWaWV3KTsKKworICAgIHByaXYtPmNvbG9yQ2hvb3Nl
ckNsaWVudCA9IGNsaWVudDsKKworICAgIEV3a19Db2xvciBjb2xvcjsKKyAgICBjb2xvci5yID0g
aW5pdGlhbENvbG9yLnJlZCgpOworICAgIGNvbG9yLmcgPSBpbml0aWFsQ29sb3IuZ3JlZW4oKTsK
KyAgICBjb2xvci5iID0gaW5pdGlhbENvbG9yLmJsdWUoKTsKKyAgICBjb2xvci5hID0gaW5pdGlh
bENvbG9yLmFscGhhKCk7CisKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKGV3
a1ZpZXcsICJjb2xvcmNob29zZXIsY3JlYXRlIiwgJmNvbG9yKTsKK30KKworRWluYV9Cb29sIGV3
a192aWV3X2NvbG9yX2Nob29zZXJfZGVzdHJveShFdmFzX09iamVjdCogZXdrVmlldykKK3sKKyAg
ICBJTkYoImV3a1ZpZXc9JXAiLCBld2tWaWV3KTsKKyAgICBFV0tfVklFV19TRF9HRVRfT1JfUkVU
VVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSwgZmFsc2UpOworICAgIEVXS19WSUVXX1BSSVZfR0VUX09S
X1JFVFVSTihzbWFydERhdGEsIHByaXYsIGZhbHNlKTsKKworICAgIGlmICghcHJpdi0+Y29sb3JD
aG9vc2VyQ2xpZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBldmFzX29iamVjdF9z
bWFydF9jYWxsYmFja19jYWxsKGV3a1ZpZXcsICJjb2xvcmNob29zZXIsd2lsbGRlbGV0ZSIsIDAp
OworCisgICAgcHJpdi0+Y29sb3JDaG9vc2VyQ2xpZW50LT5kaWRFbmRDaG9vc2VyKCk7CisgICAg
cHJpdi0+Y29sb3JDaG9vc2VyQ2xpZW50ID0gMDsKKworICAgIHJldHVybiB0cnVlOworfQorCit2
b2lkIGV3a192aWV3X2NvbG9yX2Nob29zZXJfY29sb3Jfc2V0KEV2YXNfT2JqZWN0ICpld2tWaWV3
LCBpbnQgciwgaW50IGcsIGludCBiKQoreworICAgIElORigiZXdrVmlldz0lcCIsIGV3a1ZpZXcp
OworICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhKTsKKyAg
ICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2KTsKKyAgICBFSU5B
X1NBRkVUWV9PTl9OVUxMX1JFVFVSTihwcml2LT5jb2xvckNob29zZXJDbGllbnQpOworCisgICAg
Ly8gQWxwaGEgY2hhbm5lbCBpcyBub3QgYWxsb3dlZCwgc2VlIENvbG9ySW5wdXRUeXBlOjpzYW5p
dGl6ZVZhbHVlKCkuCisgICAgcHJpdi0+Y29sb3JDaG9vc2VyQ2xpZW50LT5kaWRDaG9vc2VDb2xv
cihXZWJDb3JlOjpDb2xvcihyLCBnLCBiKSk7Cit9CisKKy8qKgorICogQGludGVybmFsCisgKgor
ICogVGhlIHNlbGVjdGVkIGNvbG9yIG9mIHRoZSBjb2xvciBpbnB1dCBhc3NvY2lhdGVkIHdpdGgg
dGhlIGNvbG9yIGNob29zZXIgaGFzCisgKiBjaGFuZ2VkLiBVc3VhbGx5IHRoZSBicm93c2VyIHNo
b3VsZCB1cGRhdGVkIHRoZSBjdXJyZW50IHNlbGVjdGVkIHZhbHVlIG9uIHRoZQorICogY29sb3Ig
cGlja2VyIGlmIHRoZSB1c2VyIGlzIG5vdCBpbnRlcmFjdGluZy4KKyAqCisgKiBAcGFyYW0gY29s
b3IgVGhlIG5ldyBzZWxlY3RlZCBjb2xvci4KKyAqCisgKi8KK3ZvaWQgZXdrX3ZpZXdfY29sb3Jf
Y2hvb3Nlcl9jaGFuZ2VkKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBXZWJDb3JlOjpDb2xv
ciYgbmV3Q29sb3IpCit7CisgICAgSU5GKCJld2tWaWV3PSVwIiwgZXdrVmlldyk7CisKKyAgICBF
d2tfQ29sb3IgY29sb3I7CisgICAgY29sb3IuciA9IG5ld0NvbG9yLnJlZCgpOworICAgIGNvbG9y
LmcgPSBuZXdDb2xvci5ncmVlbigpOworICAgIGNvbG9yLmIgPSBuZXdDb2xvci5ibHVlKCk7Cisg
ICAgY29sb3IuYSA9IG5ld0NvbG9yLmFscGhhKCk7CisKKyAgICBldmFzX29iamVjdF9zbWFydF9j
YWxsYmFja19jYWxsKGV3a1ZpZXcsICJjb2xvcmNob29zZXIsY29sb3IsY2hhbmdlZCIsICZjb2xv
cik7Cit9CisjZW5kaWYKKwogLyoqCiAgKiBAaW50ZXJuYWwKICAqIFJlcXVlc3QgYSBkb3dubG9h
ZCB0byB1c2VyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3Lmgg
Yi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaAppbmRleCBmYTM4MmE5Li4zNzQzODk4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaApAQCAtMSw2ICsxLDcgQEAKIC8qCiAgICAgQ29w
eXJpZ2h0IChDKSAyMDA5LTIwMTAgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMKICAgICBDb3B5
cmlnaHQgKEMpIDIwMDktMjAxMCBTYW1zdW5nIEVsZWN0cm9uaWNzCisgICAgQ29weXJpZ2h0IChD
KSAyMDEyIEludGVsIENvcnBvcmF0aW9uCiAKICAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICAgbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTMzLDYgKzM0
LDExIEBACiAgKgogICogVGhlIGZvbGxvd2luZyBzaWduYWxzIChzZWUgZXZhc19vYmplY3Rfc21h
cnRfY2FsbGJhY2tfYWRkKCkpIGFyZSBlbWl0dGVkOgogICoKKyAqICAtICJjb2xvcmNob29zZXIs
Y3JlYXRlIiwgRXdrX0NvbG9yOiBhIG5ldyBjb2xvciBjaG9vc2VyIHNob3VsZCBiZSBjcmVhdGVk
LgorICogIC0gImNvbG9yY2hvb3Nlcix3aWxsZGVsZXRlIiwgdm9pZDogcmVwb3J0cyB0aGF0IGEg
cHJldmlvdXNseSBjcmVhdGVkIGNvbG9yCisgKiAgICBjaG9vc2VyIHdpbGwgYmUgZGVsZXRlZC4K
KyAqICAtICJjb2xvcmNob29zZXIsY29sb3IsY2hhbmdlZCIsIEV3a19Db2xvcjogdGhlIHZhbHVl
IGF0IHRoZSBjb2xvciBpbnB1dCB3aWRnZXQKKyAqICAgIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGNv
bG9yIGNob29zZXIgaGFzIGNoYW5nZWQuCiAgKiAgLSAiZG93bmxvYWQscmVxdWVzdCIsIEV3a19E
b3dubG9hZDogcmVwb3J0cyBhIGRvd25sb2FkIGlzIGJlaW5nIHJlcXVlc3RlZAogICogIC0gImVk
aXRvcmNsaWVudCxjb250ZW50cyxjaGFuZ2VkIiwgdm9pZDogcmVwb3J0cyB0byB0aGUgdmlldyB0
aGF0IGVkaXRvcgogICogICAgY2xpZW50J3MgY29udGVudHMgd2VyZSBjaGFuZ2VkCkBAIC0yODQs
NiArMjkwLDE2IEBAIHN0cnVjdCBfRXdrX1Njcm9sbF9SZXF1ZXN0IHsKICAgICBFdmFzX0Nvb3Jk
IHgsIHksIHcsIGgsIHgyLCB5MjsKIH07CiAKKy8vLyBDcmVhdGVzIGEgdHlwZSBuYW1lIGZvciBA
YSBfRXdrX0NvbG9yLgordHlwZWRlZiBzdHJ1Y3QgX0V3a19Db2xvciBFd2tfQ29sb3I7CisvLy8g
UmVwcmVzZW50cyBhIGNvbG9yIHVzaW5nIHRoZSBSR0JBIGZvcm1hdC4KK3N0cnVjdCBfRXdrX0Nv
bG9yIHsKKyAgICB1bnNpZ25lZCBjaGFyIHI7IC8qKjwgUmVkIGNoYW5uZWwuICovCisgICAgdW5z
aWduZWQgY2hhciBnOyAvKio8IEdyZWVuIGNoYW5uZWwuICovCisgICAgdW5zaWduZWQgY2hhciBi
OyAvKio8IEJsdWUgY2hhbm5lbC4gKi8KKyAgICB1bnNpZ25lZCBjaGFyIGE7IC8qKjwgQWxwaGEg
Y2hhbm5lbC4gKi8KK307CisKIC8qKgogICogQGJyaWVmIENvbnRhaW5zIGFuIGludGVybmFsIFZp
ZXcgZGF0YS4KICAqCkBAIC03NTAsNiArNzY2LDM1IEBAIHR5cGVkZWYgZW51bSBfRXdrX0VkaXRv
cl9Db21tYW5kIEV3a19FZGl0b3JfQ29tbWFuZDsKIEVBUEkgRWluYV9Cb29sICAgIGV3a192aWV3
X2V4ZWN1dGVfZWRpdG9yX2NvbW1hbmQoRXZhc19PYmplY3QgKm8sIGNvbnN0IEV3a19FZGl0b3Jf
Q29tbWFuZCBjb21tYW5kLCBjb25zdCBjaGFyICp2YWx1ZSk7CiAKIC8qKgorICogRGVzdHJveXMg
YSBwcmV2aW91c2x5IGNyZWF0ZWQgY29sb3IgY2hvb3Nlci4KKyAqCisgKiBCZWZvcmUgZGVzdHJv
eWluZywgaXQgaW5mb3JtcyBjbGllbnQgdGhhdCBjb2xvciBjaG9vc2VyJ3MgZGF0YSBpcyByZWFk
eSB0byBiZQorICogZGVzdHJveWVkIGJ5IHNlbmRpbmcgYSAiY29sb3JjaG9vc2VyLHdpbGxkZWxl
dGUiLiBUaGVuIGl0IHJlbW92ZXMgYW55IHJlZmVyZW5jZQorICogdG8gdGhlIGNvbG9yIGNob29z
ZXIgaW5zaWRlIHdlYmtpdC4gSXQncyBzYWZlIHRvIGNhbGwgdGhpcyBmdW5jdGlvbiBlaXRoZXIg
ZnJvbQorICogaW5zaWRlIHdlYmtpdCBvciBmcm9tIGJyb3dzZXIuCisgKgorICogQHBhcmFtIG8g
dmlldyBvYmplY3QKKyAqCisgKiBAcmV0dXJuIEBjIEVJTkFfVFJVRSBpbiBjYXNlIGNvbG9yIGNo
b29zZXIgd2FzIHN1Y2Nlc3NmdWxseSBkZXN0cm95ZWQgb3IgQGMgRUlOQV9UUlVFIGluCisgKiBj
YXNlIHRoZXJlIHdhc24ndCBhbnkgY29sb3IgY2hvb3NlciB0byBiZSBkZXN0cm95ZWQKKyAqLwor
RUFQSSBFaW5hX0Jvb2wgICAgZXdrX3ZpZXdfY29sb3JfY2hvb3Nlcl9kZXN0cm95KEV2YXNfT2Jq
ZWN0KiBvKTsKKworLyoqCisgKiBDaGFuZ2VzIHRoZSBzZWxlY3RlZCBjb2xvci4KKyAqCisgKiBD
aGFuZ2VzIHRoZSBjb2xvciBzZWxlY3RlZCBpbiB0aGUgY29sb3IgaW5wdXQgd2lkZ2V0LiBUaGUg
YnJvd3NlciBzaG91bGQgY2FsbAorICogdGhpcyB3aGVuIHRoZSB1c2VyIGNob29zZXMgYSBuZXcg
Y29sb3IuIEl0J3MgbGlrZWx5IHRoYXQgZXdrX3ZpZXdfY29sb3JfY2hvb3Nlcl9kZXN0cm95Cisg
KiB3aWxsIGJlIGNhbGxlZCBhZnRlcndhcmRzLgorICoKKyAqIEBwYXJhbSBvIHZpZXcgb2JqZWN0
CisgKiBAcGFyYW0gciByZWQgY29sb3IgY29tcG9uZW50CisgKiBAcGFyYW0gZyBncmVlbiBjb2xv
ciBjb21wb25lbnQKKyAqIEBwYXJhbSBiIGJsdWUgY29sb3IgY29tcG9uZW50CisgKi8KK0VBUEkg
dm9pZCAgICAgICAgIGV3a192aWV3X2NvbG9yX2Nob29zZXJfY29sb3Jfc2V0KEV2YXNfT2JqZWN0
KiBvLCBpbnQgciwgaW50IGcsIGludCBiKTsKKworLyoqCiAgKiBDaGFuZ2VzIGN1cnJlbnRseSBz
ZWxlY3RlZCBpdGVtLgogICoKICAqIENoYW5nZXMgdGhlIG9wdGlvbiBzZWxlY3RlZCBpbiBzZWxl
Y3Qgd2lkZ2V0LiBUaGlzIGlzIGNhbGxlZCBieSBicm93c2VyCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
Y21ha2UvT3B0aW9uc0VmbC5jbWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCmlu
ZGV4IGVlYjdlYmEuLjEwMzYyYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZs
LmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCkBAIC02OSw2ICs2OSw3
IEBAIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9CQVRURVJZX1NUQVRV
UyBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9GQVNUX01PQklM
RV9TQ1JPTExJTkcgT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVf
RklMVEVSUyBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9HTElC
X1NVUFBPUlQgT04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfSU5Q
VVRfVFlQRV9DT0xPUiBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJM
RV9ORVRTQ0FQRV9QTFVHSU5fQVBJIE9GRikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZB
TFVFKEVOQUJMRV9ORVRXT1JLX0lORk8gT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9W
QUxVRShFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSBPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9j
bWFrZS9XZWJLaXRGZWF0dXJlcy5jbWFrZSBiL1NvdXJjZS9jbWFrZS9XZWJLaXRGZWF0dXJlcy5j
bWFrZQppbmRleCBhZWMzZGNjLi42YWI4NzQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvV2Vi
S2l0RmVhdHVyZXMuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL1dlYktpdEZlYXR1cmVzLmNtYWtl
CkBAIC00MCw4ICs0MCw4IEBAIE1BQ1JPIChXRUJLSVRfT1BUSU9OX0JFR0lOKQogICAgIFdFQktJ
VF9PUFRJT05fREVGSU5FKEVOQUJMRV9JQ09OREFUQUJBU0UgIlRvZ2dsZSBJY29uIGRhdGFiYXNl
IHN1cHBvcnQiIE9OKQogICAgIFdFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9JTUFHRV9ERUNP
REVSX0RPV05fU0FNUExJTkcgIlRvZ2dsZSBpbWFnZSBkZWNvZGVyIGRvd24gc2FtcGxpbmcgc3Vw
cG9ydCIgT0ZGKQogICAgIFdFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9JTkRFWEVEX0RBVEFC
QVNFICJUb2dnbGUgSW5kZXhlZCBEYXRhYmFzZSBBUEkgc3VwcG9ydCIgT0ZGKQotICAgIFdFQktJ
VF9PUFRJT05fREVGSU5FKEVOQUJMRV9JTlBVVF9DT0xPUiAiVG9nZ2xlIENvbG9yIElucHV0IHN1
cHBvcnQiIE9GRikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfSU5QVVRfU1BFRUNI
ICJUb2dnbGUgU3BlZWNoIElucHV0IEFQSSBzdXBwb3J0IiBPRkYpCisgICAgV0VCS0lUX09QVElP
Tl9ERUZJTkUoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IgIlRvZ2dsZSBDb2xvciBJbnB1dCBzdXBw
b3J0IiBPRkYpCiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX0lOUFVUX1RZUEVfREFU
RSAiVG9nZ2xlIGRhdGUgdHlwZSA8aW5wdXQ+IHN1cHBvcnQiIE9GRikKICAgICBXRUJLSVRfT1BU
SU9OX0RFRklORShFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRSAiVG9nZ2xlIGRhdGV0aW1lIHR5
cGUgPGlucHV0PiBzdXBwb3J0IiBPRkYpCiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxF
X0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCAiVG9nZ2xlIGRhdGV0aW1lLWxvY2FsIHR5cGUgPGlu
cHV0PiBzdXBwb3J0IiBPRkYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2Vjb25maWcuaC5jbWFr
ZSBiL1NvdXJjZS9jbWFrZWNvbmZpZy5oLmNtYWtlCmluZGV4IDE4MGQ1N2QuLjNmNGMzN2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZWNvbmZpZy5oLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZWNv
bmZpZy5oLmNtYWtlCkBAIC0zMSw3ICszMSw3IEBACiAjY21ha2VkZWZpbmUwMSBFTkFCTEVfSUNP
TkRBVEFCQVNFCiAjY21ha2VkZWZpbmUwMSBFTkFCTEVfSU1BR0VfREVDT0RFUl9ET1dOX1NBTVBM
SU5HCiAjY21ha2VkZWZpbmUwMSBFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRQotI2NtYWtlZGVmaW5l
MDEgRU5BQkxFX0lOUFVUX0NPTE9SCisjY21ha2VkZWZpbmUwMSBFTkFCTEVfSU5QVVRfVFlQRV9D
T0xPUgogI2NtYWtlZGVmaW5lMDEgRU5BQkxFX0lOUFVUX1RZUEVfREFURQogI2NtYWtlZGVmaW5l
MDEgRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUUKICNjbWFrZWRlZmluZTAxIEVOQUJMRV9JTlBV
VF9UWVBFX0RBVEVUSU1FTE9DQUwKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xz
L0NoYW5nZUxvZwppbmRleCBhMzliYWRkLi41ZmVhMjg0IDEwMDY0NAotLS0gYS9Ub29scy9DaGFu
Z2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDQtMTIg
IFRoaWFnbyBNYXJjb3MgUC4gU2FudG9zICA8dGhpYWdvLnNhbnRvc0BpbnRlbC5jb20+CisKKyAg
ICAgICAgW0VGTF0gQWRkIEFQSSBmb3IgY29sb3IgY2hvb3NlcgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODM2OTIKKworICAgICAgICBFbmFibGVzIElO
UFVUX1RZUEVfQ09MT1IgYnkgZGVmYXVsdCBvbiB0aGUgRUZMIHBvcnQuCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL2J1aWxkLXdlYmtp
dDoKKwogMjAxMi0wNC0xMiAgU2ltb24gUGVuYSAgPHNwZW5hQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgW0dUS10gVGVzdCBydW5uZXIgY3Jhc2hlcyB3aXRob3V0IHJlY2VudCB2ZXJzaW9ucyBvZiBw
dWxzZWF1ZGlvLXV0aWxzCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdCBi
L1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0CmluZGV4IDczMWFkZmUuLmRkYWM1ZjYgMTAwNzU1
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0CisrKyBiL1Rvb2xzL1NjcmlwdHMvYnVp
bGQtd2Via2l0CkBAIC0yMzYsNyArMjM2LDcgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgICAgZGVm
aW5lID0+ICJFTkFCTEVfU0NSSVBURURfU1BFRUNIIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBc
JHNjcmlwdGVkU3BlZWNoU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gImlucHV0LXR5cGUt
Y29sb3IiLCBkZXNjID0+ICJUb2dnbGUgY29sb3IgdHlwZSA8aW5wdXQ+IHN1cHBvcnQiLAotICAg
ICAgZGVmaW5lID0+ICJFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUiIsIGRlZmF1bHQgPT4gaXNCbGFj
a0JlcnJ5KCksIHZhbHVlID0+IFwkaW5wdXRUeXBlQ29sb3JTdXBwb3J0IH0sCisgICAgICBkZWZp
bmUgPT4gIkVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SIiwgZGVmYXVsdCA9PiAoaXNCbGFja0JlcnJ5
KCkgfHwgaXNFZmwoKSksIHZhbHVlID0+IFwkaW5wdXRUeXBlQ29sb3JTdXBwb3J0IH0sCiAKICAg
ICB7IG9wdGlvbiA9PiAiaW5wdXQtdHlwZS1kYXRlIiwgZGVzYyA9PiAiVG9nZ2xlIGRhdGUgdHlw
ZSA8aW5wdXQ+IHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfSU5QVVRfVFlQRV9E
QVRFIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBcJGlucHV0VHlwZURhdGVTdXBwb3J0IH0sCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137061</attachid>
            <date>2012-04-13 01:49:55 -0700</date>
            <delta_ts>2012-04-13 04:44:41 -0700</delta_ts>
            <desc>Same as before, but fixes a typo on the docs.</desc>
            <filename>color_chooser3.patch</filename>
            <type>text/plain</type>
            <size>22573</size>
            <attacher name="Thiago Marcos P. Santos">tmpsantos</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBhNjlmNTM1Li4yOTk0Yjk4
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTItMDQtMTIgIFRoaWFnbyBNYXJjb3MgUC4gU2FudG9zICA8dGhpYWdvLnNhbnRvc0BpbnRl
bC5jb20+CisKKyAgICAgICAgW0VGTF0gQWRkIEFQSSBmb3IgY29sb3IgY2hvb3NlcgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODM2OTIKKworICAgICAg
ICBFbmFibGVzIElOUFVUX1RZUEVfQ09MT1IgYnkgZGVmYXVsdCBvbiB0aGUgRUZMIHBvcnQuCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2Uv
Y21ha2UvT3B0aW9uc0VmbC5jbWFrZToKKyAgICAgICAgKiBTb3VyY2UvY21ha2UvV2ViS2l0RmVh
dHVyZXMuY21ha2U6CisgICAgICAgICogU291cmNlL2NtYWtlY29uZmlnLmguY21ha2U6CisKIDIw
MTItMDMtMTUgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtDQUlST10gTWFrZSBHTENvbnRleHRHTFggYSBzdWJjbGFzcyBvZiBHTENvbnRleHQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCA5N2EwNjVkLi5mNzMzN2UzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAK
KzIwMTItMDQtMTIgIFRoaWFnbyBNYXJjb3MgUC4gU2FudG9zICA8dGhpYWdvLnNhbnRvc0BpbnRl
bC5jb20+CisKKyAgICAgICAgW0VGTF0gQWRkIEFQSSBmb3IgY29sb3IgY2hvb3NlcgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODM2OTIKKworICAgICAg
ICBBZGRlZCBuZXcgQVBJIHRvIGVuYWJsZSBicm93c2VycyB0byBkaXNwbGF5IGEgY3VzdG9tIGNv
bG9yIHBpY2tlcgorICAgICAgICB3aGVuIGFuIGlucHV0IGZpZWxkIG9mIHR5cGUgImNvbG9yIiBp
cyBhY3RpdmF0ZWQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFrZToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvQ29sb3JD
aG9vc2VyRWZsLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OkNvbG9yQ2hvb3NlckVmbDo6Q29sb3JDaG9vc2VyRWZsKToKKyAgICAgICAgKFdlYkNvcmU6
OkNvbG9yQ2hvb3NlckVmbDo6fkNvbG9yQ2hvb3NlckVmbCk6CisgICAgICAgIChXZWJDb3JlOjpD
b2xvckNob29zZXJFZmw6OnNldFNlbGVjdGVkQ29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6Q29s
b3JDaG9vc2VyRWZsOjplbmRDaG9vc2VyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvQ29sb3JD
aG9vc2VyRWZsLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChDb2xvckNo
b29zZXJFZmwpOgorCiAyMDEyLTA0LTEyICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBbQ2hyb21pdW1dIEVuYWJsZSBJTlBVVF9UWVBFX0RBVEUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxh
dGZvcm1FZmwuY21ha2UKaW5kZXggYzM1ZGI2ZC4uNzlhNTAxMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1F
ZmwuY21ha2UKQEAgLTIzLDYgKzIzLDcgQEAgTElTVChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAg
IHBhZ2UvZWZsL0V2ZW50SGFuZGxlckVmbC5jcHAKICAgcGxhdGZvcm0vQ3Vyc29yLmNwcAogICBw
bGF0Zm9ybS9lZmwvQ2xpcGJvYXJkRWZsLmNwcAorICBwbGF0Zm9ybS9lZmwvQ29sb3JDaG9vc2Vy
RWZsLmNwcAogICBwbGF0Zm9ybS9lZmwvQ29udGV4dE1lbnVFZmwuY3BwCiAgIHBsYXRmb3JtL2Vm
bC9Db250ZXh0TWVudUl0ZW1FZmwuY3BwCiAgIHBsYXRmb3JtL2VmbC9DdXJzb3JFZmwuY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ29sb3JDaG9vc2VyRWZsLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Db2xvckNob29zZXJFZmwuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgwMDNiZTEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ29sb3JDaG9vc2VyRWZsLmNwcApAQCAtMCww
ICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDEyLCBJbnRlbCBDb3Jwb3JhdGlvbgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMKKyAqICAgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbgor
ICogICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqICogTmVpdGhlciB0aGUgbmFtZSBvZiBJbnRlbCBDb3Jwb3JhdGlvbiBub3IgdGhlIG5h
bWVzIG9mIGl0cyBjb250cmlidXRvcnMgbWF5CisgKiAgIGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQKKyAqICAg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgIkFT
IElTIgorICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKyAqIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRQorICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRQorICogUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisKKyNpbmNsdWRlICJD
b2xvckNob29zZXJFZmwuaCIKKworI2luY2x1ZGUgIkNocm9tZUNsaWVudEVmbC5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK0NvbG9yQ2hvb3NlckVmbDo6Q29sb3JDaG9vc2VyRWZsKENocm9t
ZUNsaWVudEVmbCogY2hyb21lQ2xpZW50KQorICAgIDogbV9jaHJvbWVDbGllbnQoY2hyb21lQ2xp
ZW50KQoreworICAgIEFTU0VSVChtX2Nocm9tZUNsaWVudCk7Cit9CisKK0NvbG9yQ2hvb3NlckVm
bDo6fkNvbG9yQ2hvb3NlckVmbCgpCit7Cit9CisKK3ZvaWQgQ29sb3JDaG9vc2VyRWZsOjpzZXRT
ZWxlY3RlZENvbG9yKGNvbnN0IENvbG9yJiBjb2xvcikKK3sKKyAgICBtX2Nocm9tZUNsaWVudC0+
dXBkYXRlQ29sb3JDaG9vc2VyKGNvbG9yKTsKK30KKwordm9pZCBDb2xvckNob29zZXJFZmw6OmVu
ZENob29zZXIoKQoreworICAgIG1fY2hyb21lQ2xpZW50LT5yZW1vdmVDb2xvckNob29zZXIoKTsK
K30KKworfQorCisjZW5kaWYgLy8gRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ29sb3JDaG9vc2VyRWZsLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ29sb3JDaG9vc2VyRWZsLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uYzFjOGQwNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2VmbC9Db2xvckNob29zZXJFZmwuaApAQCAtMCwwICsxLDU2IEBACisvKgor
ICogQ29weXJpZ2h0IChjKSAyMDEyLCBJbnRlbCBDb3Jwb3JhdGlvbgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsIHRoaXMKKyAq
ICAgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0IG5vdGljZSwKKyAqICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbgorICogICBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBJbnRlbCBDb3Jwb3JhdGlvbiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250
cmlidXRvcnMgbWF5CisgKiAgIGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQKKyAqICAgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgIkFTIElTIgorICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKyAqIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRQorICog
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRQorICogUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBDb2xvckNob29zZXJFZmxf
aAorI2RlZmluZSBDb2xvckNob29zZXJFZmxfaAorCisjaW5jbHVkZSAiQ29sb3IuaCIKKyNpbmNs
dWRlICJDb2xvckNob29zZXIuaCIKKworI2luY2x1ZGUgPEV2YXMuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBDaHJvbWVDbGllbnRFZmw7CisKK2NsYXNzIENvbG9yQ2hvb3NlckVm
bCA6IHB1YmxpYyBDb2xvckNob29zZXIgeworcHVibGljOgorICAgIENvbG9yQ2hvb3NlckVmbChD
aHJvbWVDbGllbnRFZmwqKTsKKyAgICB+Q29sb3JDaG9vc2VyRWZsKCk7CisKKyAgICAvLyBDb2xv
ckNob29zZXIgaW1wbGVtZW50YXRpb24uCisgICAgdmlydHVhbCB2b2lkIHNldFNlbGVjdGVkQ29s
b3IoY29uc3QgQ29sb3ImKTsKKyAgICB2aXJ0dWFsIHZvaWQgZW5kQ2hvb3NlcigpOworCitwcml2
YXRlOgorICAgIENocm9tZUNsaWVudEVmbCogbV9jaHJvbWVDbGllbnQ7Cit9OworCit9CisKKyNl
bmRpZiAvLyBDb2xvckNob29zZXJFZmxfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCmluZGV4IDAzOWVhZWIuLjU0
YzI0OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAxMi0wNC0xMiAgVGhp
YWdvIE1hcmNvcyBQLiBTYW50b3MgIDx0aGlhZ28uc2FudG9zQGludGVsLmNvbT4KKworICAgICAg
ICBbRUZMXSBBZGQgQVBJIGZvciBjb2xvciBjaG9vc2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MzY5MgorCisgICAgICAgIEFkZGVkIG5ldyBBUEkg
dG8gZW5hYmxlIGJyb3dzZXJzIHRvIGRpc3BsYXkgYSBjdXN0b20gY29sb3IgcGlja2VyCisgICAg
ICAgIHdoZW4gYW4gaW5wdXQgZmllbGQgb2YgdHlwZSAiY29sb3IiIGlzIGFjdGl2YXRlZC4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KFdlYkNvcmU6OkNocm9tZUNsaWVudEVmbDo6Y3JlYXRlQ29sb3JDaG9vc2VyKToKKyAgICAgICAg
KFdlYkNvcmU6OkNocm9tZUNsaWVudEVmbDo6cmVtb3ZlQ29sb3JDaG9vc2VyKToKKyAgICAgICAg
KFdlYkNvcmU6OkNocm9tZUNsaWVudEVmbDo6dXBkYXRlQ29sb3JDaG9vc2VyKToKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuaDoKKyAgICAgICAgKENocm9tZUNsaWVu
dEVmbCk6CisgICAgICAgICogZXdrL2V3a19wcml2YXRlLmg6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKiBld2svZXdrX3ZpZXcuY3BwOgorICAgICAgICAoX0V3a19WaWV3X1ByaXZhdGVf
RGF0YSk6CisgICAgICAgIChld2tfdmlld19jb2xvcl9jaG9vc2VyX25ldyk6CisgICAgICAgIChl
d2tfdmlld19jb2xvcl9jaG9vc2VyX2Rlc3Ryb3kpOgorICAgICAgICAoZXdrX3ZpZXdfY29sb3Jf
Y2hvb3Nlcl9jb2xvcl9zZXQpOgorICAgICAgICAoZXdrX3ZpZXdfY29sb3JfY2hvb3Nlcl9jaGFu
Z2VkKToKKyAgICAgICAgKiBld2svZXdrX3ZpZXcuaDoKKwogMjAxMi0wNC0xMSAgU3VkYXJzYW5h
IE5hZ2luZW5pICA8c3VkYXJzYW5hLm5hZ2luZW5pQGxpbnV4LmludGVsLmNvbT4KIAogICAgICAg
ICBbRUZMXSBMYXlvdXRUZXN0Q29udHJvbGxlciBuZWVkcyBpbXBsZW1lbnRhdGlvbiBvZiBwYWdl
UHJvcGVydHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRFZmwuY3BwCmluZGV4IDY4YWRmNWYuLmQwMmI5MzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcApAQCAtNjQs
NiArNjQsMTAgQEAKICNpbmNsdWRlICJEYXRhYmFzZVRyYWNrZXIuaCIKICNlbmRpZgogCisjaWYg
RU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisjaW5jbHVkZSAiQ29sb3JDaG9vc2VyRWZsLmgiCisj
ZW5kaWYKKwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIHN0YXRpYyBpbmxpbmUgRXZhc19P
YmplY3QqIGtpdChGcmFtZSogZnJhbWUpCkBAIC00MjUsNiArNDI5LDI1IEBAIE5vdGlmaWNhdGlv
bkNsaWVudCogQ2hyb21lQ2xpZW50RWZsOjpub3RpZmljYXRpb25QcmVzZW50ZXIoKSBjb25zdAog
fQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKK1Bhc3NPd25QdHI8Q29s
b3JDaG9vc2VyPiBDaHJvbWVDbGllbnRFZmw6OmNyZWF0ZUNvbG9yQ2hvb3NlcihDb2xvckNob29z
ZXJDbGllbnQqIGNvbG9yQ2hvb3NlckNsaWVudCwgY29uc3QgQ29sb3ImIGluaXRpYWxDb2xvcikK
K3sKKyAgICBld2tfdmlld19jb2xvcl9jaG9vc2VyX25ldyhtX3ZpZXcsIGNvbG9yQ2hvb3NlckNs
aWVudCwgaW5pdGlhbENvbG9yKTsKKworICAgIHJldHVybiBhZG9wdFB0cihuZXcgQ29sb3JDaG9v
c2VyRWZsKHRoaXMpKTsKK30KKwordm9pZCBDaHJvbWVDbGllbnRFZmw6OnJlbW92ZUNvbG9yQ2hv
b3NlcigpCit7CisgICAgZXdrX3ZpZXdfY29sb3JfY2hvb3Nlcl9kZXN0cm95KG1fdmlldyk7Cit9
CisKK3ZvaWQgQ2hyb21lQ2xpZW50RWZsOjp1cGRhdGVDb2xvckNob29zZXIoY29uc3QgQ29sb3Im
IGNvbG9yKQoreworICAgIGV3a192aWV3X2NvbG9yX2Nob29zZXJfY2hhbmdlZChtX3ZpZXcsIGNv
bG9yKTsKK30KKyNlbmRpZgorCiB2b2lkIENocm9tZUNsaWVudEVmbDo6cnVuT3BlblBhbmVsKEZy
YW1lKiBmcmFtZSwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4gcHJwRmlsZUNob29zZXIpCiB7CiAg
ICAgUmVmUHRyPEZpbGVDaG9vc2VyPiBjaG9vc2VyID0gcHJwRmlsZUNob29zZXI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuaCBi
L1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oCmluZGV4
IDljZTlkNjguLjY1ZWFlYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oCkBAIC0yOCw2ICsyOCwxMCBAQAogI2luY2x1ZGUgIktV
UkwuaCIKICNpbmNsdWRlICJQb3B1cE1lbnUuaCIKIAorI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NP
TE9SKQorI2luY2x1ZGUgIkNvbG9yQ2hvb3Nlci5oIgorI2VuZGlmCisKICNpZiBFTkFCTEUoTk9U
SUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQogI2luY2x1ZGUgIk5v
dGlmaWNhdGlvbkNsaWVudC5oIgogI2VuZGlmCkBAIC0xMzgsNiArMTQyLDEyIEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1l
bnQqKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisgICAgdmlydHVh
bCBQYXNzT3duUHRyPENvbG9yQ2hvb3Nlcj4gY3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3Nl
ckNsaWVudCosIGNvbnN0IENvbG9yJik7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZUNvbG9yQ2hv
b3NlcigpOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVDb2xvckNob29zZXIoY29uc3QgQ29sb3Im
KTsKKyNlbmRpZgorCiAgICAgdmlydHVhbCB2b2lkIHJ1bk9wZW5QYW5lbChGcmFtZSosIFBhc3NS
ZWZQdHI8RmlsZUNob29zZXI+KTsKICAgICB2aXJ0dWFsIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhj
b25zdCBWZWN0b3I8U3RyaW5nPiYsIEZpbGVJY29uTG9hZGVyKik7CiAgICAgdmlydHVhbCB2b2lk
IGZvcm1TdGF0ZURpZENoYW5nZShjb25zdCBOb2RlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9ld2svZXdrX3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfcHJp
dmF0ZS5oCmluZGV4IDk2ZTQ3OTUuLjk2ZmE3NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfcHJp
dmF0ZS5oCkBAIC03Nyw2ICs3NywxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBzdHJ1Y3QgUG9w
dXBNZW51Q2xpZW50Owogc3RydWN0IENvbnRleHRNZW51Owogc3RydWN0IENvbnRleHRNZW51SXRl
bTsKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKK3N0cnVjdCBDb2xvcjsKK3N0cnVjdCBD
b2xvckNob29zZXJDbGllbnQ7CisjZW5kaWYKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCiBjbGFzcyBHcmFwaGljc0NvbnRleHQzRDsKIGNsYXNzIEdyYXBoaWNzTGF5ZXI7CkBAIC0x
NTQsNiArMTU4LDExIEBAIFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpGcmFtZT4gZXdrX3ZpZXdf
ZnJhbWVfY3JlYXRlKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFzCiAKIFdURjo6UGFzc1JlZlB0
cjxXZWJDb3JlOjpXaWRnZXQ+IGV3a192aWV3X3BsdWdpbl9jcmVhdGUoRXZhc19PYmplY3QqIGV3
a1ZpZXcsIEV2YXNfT2JqZWN0KiBmcmFtZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgcGx1Z2lu
U2l6ZSwgV2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IFdlYkNvcmU6
OktVUkwmIHVybCwgY29uc3QgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+JiBwYXJhbU5hbWVzLCBj
b25zdCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mIHBhcmFtVmFsdWVzLCBjb25zdCBXVEY6OlN0
cmluZyYgbWltZVR5cGUsIGJvb2wgbG9hZE1hbnVhbGx5KTsKIAorI2lmIEVOQUJMRShJTlBVVF9U
WVBFX0NPTE9SKQordm9pZCBld2tfdmlld19jb2xvcl9jaG9vc2VyX25ldyhFdmFzX09iamVjdCog
ZXdrVmlldywgV2ViQ29yZTo6Q29sb3JDaG9vc2VyQ2xpZW50KiBjbGllbnQsIGNvbnN0IFdlYkNv
cmU6OkNvbG9yJiBpbml0aWFsQ29sb3IpOwordm9pZCBld2tfdmlld19jb2xvcl9jaG9vc2VyX2No
YW5nZWQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBuZXdDb2xv
cik7CisjZW5kaWYKKwogdm9pZCBld2tfdmlld19wb3B1cF9uZXcoRXZhc19PYmplY3QqIGV3a1Zp
ZXcsIFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCogY2xpZW50LCBpbnQgc2VsZWN0ZWQsIGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmIHJlY3QpOwogdm9pZCBld2tfdmlld192aWV3cG9ydF9hdHRyaWJ1
dGVzX3NldChFdmFzX09iamVjdCogZXdrVmlldywgY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBcmd1
bWVudHMmIGFyZ3VtZW50cyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9l
d2tfdmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCmluZGV4IDJk
NDJhMzIuLmM2NWFjYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmll
dy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcApAQCAtMSw2ICsx
LDcgQEAKIC8qCiAgICAgQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgUHJvRlVTSU9OIGVtYmVkZGVk
IHN5c3RlbXMKICAgICBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNz
CisgICAgQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uCiAKICAgICBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAg
ICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKQEAgLTg3LDYgKzg4LDEwIEBACiAjaW5jbHVkZSAiTmV0d29ya0luZm9DbGllbnRFZmwu
aCIKICNlbmRpZgogCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisjaW5jbHVkZSAiQ29s
b3JDaG9vc2VyQ2xpZW50LmgiCisjZW5kaWYKKwogc3RhdGljIGNvbnN0IGZsb2F0IHpvb21NaW5p
bXVtID0gMC4wNTsKIHN0YXRpYyBjb25zdCBmbG9hdCB6b29tTWF4aW11bSA9IDQuMDsKIApAQCAt
MTAzLDYgKzEwOCw5IEBAIHN0YXRpYyBjb25zdCBzaXplX3QgZXdrVmlld1Njcm9sbHNTaXplU3Rl
cCA9IDI7CiBzdGF0aWMgY29uc3Qgc2l6ZV90IGV3a1ZpZXdTY3JvbGxzU2l6ZU1heGltdW1GcmVl
ID0gMzI7CiAKIHN0YXRpYyBjb25zdCBFdmFzX1NtYXJ0X0NiX0Rlc2NyaXB0aW9uIF9ld2tfdmll
d19jYWxsYmFja19uYW1lc1tdID0geworICAgIHsgImNvbG9yY2hvb3NlcixjcmVhdGUiLCAiKHl5
eXkpIiB9LAorICAgIHsgImNvbG9yY2hvb3Nlcix3aWxsZGVsZXRlIiwgIiIgfSwKKyAgICB7ICJj
b2xvcmNob29zZXIsY29sb3IsY2hhbmdlZCIsICIoeXl5eSkiIH0sCiAgICAgeyAiZG93bmxvYWQs
cmVxdWVzdCIsICJwIiB9LAogICAgIHsgImVkaXRvcmNsaWVudCxjb250ZW50cyxjaGFuZ2VkIiwg
IiIgfSwKICAgICB7ICJlZGl0b3JjbGllbnQsc2VsZWN0aW9uLGNoYW5nZWQiLCAiIiB9LApAQCAt
MTUyLDYgKzE2MCw5IEBAIHN0cnVjdCBfRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhIHsKICAgICBXZWJD
b3JlOjpWaWV3cG9ydEFyZ3VtZW50cyB2aWV3cG9ydEFyZ3VtZW50czsKICAgICBFd2tfSGlzdG9y
eSogaGlzdG9yeTsKICAgICBPd25QdHI8V2ViQ29yZTo6UGFnZUNsaWVudEVmbD4gcGFnZUNsaWVu
dDsKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKyAgICBXZWJDb3JlOjpDb2xvckNob29z
ZXJDbGllbnQqIGNvbG9yQ2hvb3NlckNsaWVudDsKKyNlbmRpZgogICAgIHN0cnVjdCB7CiAgICAg
ICAgIEV3a19NZW51IG1lbnU7CiAgICAgICAgIFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCogbWVu
dUNsaWVudDsKQEAgLTM1MjEsNiArMzUzMiw4OCBAQCB2b2lkIGV3a192aWV3X3BvcHVwX3NlbGVj
dGVkX3NldChFdmFzX09iamVjdCogZXdrVmlldywgaW50IGluZGV4KQogICAgIHByaXYtPnBvcHVw
Lm1lbnVDbGllbnQtPnZhbHVlQ2hhbmdlZChpbmRleCk7CiB9CiAKKyNpZiBFTkFCTEUoSU5QVVRf
VFlQRV9DT0xPUikKKy8qKgorICogQGludGVybmFsCisgKgorICogQ3JlYXRlcyBhIG5ldyBjb2xv
ciBjaG9vc2VyIHdpdGggYW4gaW5pdGlhbCBzZWxlY3RlZCBjb2xvci4KKyAqCisgKiBAcGFyYW0g
Y2xpZW50IENvbG9yQ2hvb3NlckNsaWVudCBpbnN0YW5jZSB0aGF0IGFsbG93cyBjb21tdW5pY2F0
aW9uIHdpdGggd2Via2l0LgorICogQHBhcmFtIGluaXRpYWxDb2xvciBUaGUgaW5pdGlhbCBzZWxl
Y3RlZCBjb2xvci4KKyAqCisgKi8KK3ZvaWQgZXdrX3ZpZXdfY29sb3JfY2hvb3Nlcl9uZXcoRXZh
c19PYmplY3QqIGV3a1ZpZXcsIFdlYkNvcmU6OkNvbG9yQ2hvb3NlckNsaWVudCogY2xpZW50LCBj
b25zdCBXZWJDb3JlOjpDb2xvciYgaW5pdGlhbENvbG9yKQoreworICAgIElORigiZXdrVmlldz0l
cCIsIGV3a1ZpZXcpOworICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21h
cnREYXRhKTsKKyAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2
KTsKKworICAgIGlmIChwcml2LT5jb2xvckNob29zZXJDbGllbnQpCisgICAgICAgIGV3a192aWV3
X2NvbG9yX2Nob29zZXJfZGVzdHJveShld2tWaWV3KTsKKworICAgIHByaXYtPmNvbG9yQ2hvb3Nl
ckNsaWVudCA9IGNsaWVudDsKKworICAgIEV3a19Db2xvciBjb2xvcjsKKyAgICBjb2xvci5yID0g
aW5pdGlhbENvbG9yLnJlZCgpOworICAgIGNvbG9yLmcgPSBpbml0aWFsQ29sb3IuZ3JlZW4oKTsK
KyAgICBjb2xvci5iID0gaW5pdGlhbENvbG9yLmJsdWUoKTsKKyAgICBjb2xvci5hID0gaW5pdGlh
bENvbG9yLmFscGhhKCk7CisKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKGV3
a1ZpZXcsICJjb2xvcmNob29zZXIsY3JlYXRlIiwgJmNvbG9yKTsKK30KKworRWluYV9Cb29sIGV3
a192aWV3X2NvbG9yX2Nob29zZXJfZGVzdHJveShFdmFzX09iamVjdCogZXdrVmlldykKK3sKKyAg
ICBJTkYoImV3a1ZpZXc9JXAiLCBld2tWaWV3KTsKKyAgICBFV0tfVklFV19TRF9HRVRfT1JfUkVU
VVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSwgZmFsc2UpOworICAgIEVXS19WSUVXX1BSSVZfR0VUX09S
X1JFVFVSTihzbWFydERhdGEsIHByaXYsIGZhbHNlKTsKKworICAgIGlmICghcHJpdi0+Y29sb3JD
aG9vc2VyQ2xpZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBldmFzX29iamVjdF9z
bWFydF9jYWxsYmFja19jYWxsKGV3a1ZpZXcsICJjb2xvcmNob29zZXIsd2lsbGRlbGV0ZSIsIDAp
OworCisgICAgcHJpdi0+Y29sb3JDaG9vc2VyQ2xpZW50LT5kaWRFbmRDaG9vc2VyKCk7CisgICAg
cHJpdi0+Y29sb3JDaG9vc2VyQ2xpZW50ID0gMDsKKworICAgIHJldHVybiB0cnVlOworfQorCit2
b2lkIGV3a192aWV3X2NvbG9yX2Nob29zZXJfY29sb3Jfc2V0KEV2YXNfT2JqZWN0ICpld2tWaWV3
LCBpbnQgciwgaW50IGcsIGludCBiKQoreworICAgIElORigiZXdrVmlldz0lcCIsIGV3a1ZpZXcp
OworICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhKTsKKyAg
ICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2KTsKKyAgICBFSU5B
X1NBRkVUWV9PTl9OVUxMX1JFVFVSTihwcml2LT5jb2xvckNob29zZXJDbGllbnQpOworCisgICAg
Ly8gQWxwaGEgY2hhbm5lbCBpcyBub3QgYWxsb3dlZCwgc2VlIENvbG9ySW5wdXRUeXBlOjpzYW5p
dGl6ZVZhbHVlKCkuCisgICAgcHJpdi0+Y29sb3JDaG9vc2VyQ2xpZW50LT5kaWRDaG9vc2VDb2xv
cihXZWJDb3JlOjpDb2xvcihyLCBnLCBiKSk7Cit9CisKKy8qKgorICogQGludGVybmFsCisgKgor
ICogVGhlIHNlbGVjdGVkIGNvbG9yIG9mIHRoZSBjb2xvciBpbnB1dCBhc3NvY2lhdGVkIHdpdGgg
dGhlIGNvbG9yIGNob29zZXIgaGFzCisgKiBjaGFuZ2VkLiBVc3VhbGx5IHRoZSBicm93c2VyIHNo
b3VsZCB1cGRhdGVkIHRoZSBjdXJyZW50IHNlbGVjdGVkIHZhbHVlIG9uIHRoZQorICogY29sb3Ig
cGlja2VyIGlmIHRoZSB1c2VyIGlzIG5vdCBpbnRlcmFjdGluZy4KKyAqCisgKiBAcGFyYW0gbmV3
Q29sb3IgVGhlIG5ldyBzZWxlY3RlZCBjb2xvci4KKyAqCisgKi8KK3ZvaWQgZXdrX3ZpZXdfY29s
b3JfY2hvb3Nlcl9jaGFuZ2VkKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBXZWJDb3JlOjpD
b2xvciYgbmV3Q29sb3IpCit7CisgICAgSU5GKCJld2tWaWV3PSVwIiwgZXdrVmlldyk7CisKKyAg
ICBFd2tfQ29sb3IgY29sb3I7CisgICAgY29sb3IuciA9IG5ld0NvbG9yLnJlZCgpOworICAgIGNv
bG9yLmcgPSBuZXdDb2xvci5ncmVlbigpOworICAgIGNvbG9yLmIgPSBuZXdDb2xvci5ibHVlKCk7
CisgICAgY29sb3IuYSA9IG5ld0NvbG9yLmFscGhhKCk7CisKKyAgICBldmFzX29iamVjdF9zbWFy
dF9jYWxsYmFja19jYWxsKGV3a1ZpZXcsICJjb2xvcmNob29zZXIsY29sb3IsY2hhbmdlZCIsICZj
b2xvcik7Cit9CisjZW5kaWYKKwogLyoqCiAgKiBAaW50ZXJuYWwKICAqIFJlcXVlc3QgYSBkb3du
bG9hZCB0byB1c2VyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3
LmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaAppbmRleCBmYTM4MmE5Li4zNzQz
ODk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaAorKysgYi9T
b3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaApAQCAtMSw2ICsxLDcgQEAKIC8qCiAgICAg
Q29weXJpZ2h0IChDKSAyMDA5LTIwMTAgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMKICAgICBD
b3B5cmlnaHQgKEMpIDIwMDktMjAxMCBTYW1zdW5nIEVsZWN0cm9uaWNzCisgICAgQ29weXJpZ2h0
IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uCiAKICAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICAgbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTMzLDYg
KzM0LDExIEBACiAgKgogICogVGhlIGZvbGxvd2luZyBzaWduYWxzIChzZWUgZXZhc19vYmplY3Rf
c21hcnRfY2FsbGJhY2tfYWRkKCkpIGFyZSBlbWl0dGVkOgogICoKKyAqICAtICJjb2xvcmNob29z
ZXIsY3JlYXRlIiwgRXdrX0NvbG9yOiBhIG5ldyBjb2xvciBjaG9vc2VyIHNob3VsZCBiZSBjcmVh
dGVkLgorICogIC0gImNvbG9yY2hvb3Nlcix3aWxsZGVsZXRlIiwgdm9pZDogcmVwb3J0cyB0aGF0
IGEgcHJldmlvdXNseSBjcmVhdGVkIGNvbG9yCisgKiAgICBjaG9vc2VyIHdpbGwgYmUgZGVsZXRl
ZC4KKyAqICAtICJjb2xvcmNob29zZXIsY29sb3IsY2hhbmdlZCIsIEV3a19Db2xvcjogdGhlIHZh
bHVlIGF0IHRoZSBjb2xvciBpbnB1dCB3aWRnZXQKKyAqICAgIGNvcnJlc3BvbmRpbmcgdG8gdGhl
IGNvbG9yIGNob29zZXIgaGFzIGNoYW5nZWQuCiAgKiAgLSAiZG93bmxvYWQscmVxdWVzdCIsIEV3
a19Eb3dubG9hZDogcmVwb3J0cyBhIGRvd25sb2FkIGlzIGJlaW5nIHJlcXVlc3RlZAogICogIC0g
ImVkaXRvcmNsaWVudCxjb250ZW50cyxjaGFuZ2VkIiwgdm9pZDogcmVwb3J0cyB0byB0aGUgdmll
dyB0aGF0IGVkaXRvcgogICogICAgY2xpZW50J3MgY29udGVudHMgd2VyZSBjaGFuZ2VkCkBAIC0y
ODQsNiArMjkwLDE2IEBAIHN0cnVjdCBfRXdrX1Njcm9sbF9SZXF1ZXN0IHsKICAgICBFdmFzX0Nv
b3JkIHgsIHksIHcsIGgsIHgyLCB5MjsKIH07CiAKKy8vLyBDcmVhdGVzIGEgdHlwZSBuYW1lIGZv
ciBAYSBfRXdrX0NvbG9yLgordHlwZWRlZiBzdHJ1Y3QgX0V3a19Db2xvciBFd2tfQ29sb3I7Cisv
Ly8gUmVwcmVzZW50cyBhIGNvbG9yIHVzaW5nIHRoZSBSR0JBIGZvcm1hdC4KK3N0cnVjdCBfRXdr
X0NvbG9yIHsKKyAgICB1bnNpZ25lZCBjaGFyIHI7IC8qKjwgUmVkIGNoYW5uZWwuICovCisgICAg
dW5zaWduZWQgY2hhciBnOyAvKio8IEdyZWVuIGNoYW5uZWwuICovCisgICAgdW5zaWduZWQgY2hh
ciBiOyAvKio8IEJsdWUgY2hhbm5lbC4gKi8KKyAgICB1bnNpZ25lZCBjaGFyIGE7IC8qKjwgQWxw
aGEgY2hhbm5lbC4gKi8KK307CisKIC8qKgogICogQGJyaWVmIENvbnRhaW5zIGFuIGludGVybmFs
IFZpZXcgZGF0YS4KICAqCkBAIC03NTAsNiArNzY2LDM1IEBAIHR5cGVkZWYgZW51bSBfRXdrX0Vk
aXRvcl9Db21tYW5kIEV3a19FZGl0b3JfQ29tbWFuZDsKIEVBUEkgRWluYV9Cb29sICAgIGV3a192
aWV3X2V4ZWN1dGVfZWRpdG9yX2NvbW1hbmQoRXZhc19PYmplY3QgKm8sIGNvbnN0IEV3a19FZGl0
b3JfQ29tbWFuZCBjb21tYW5kLCBjb25zdCBjaGFyICp2YWx1ZSk7CiAKIC8qKgorICogRGVzdHJv
eXMgYSBwcmV2aW91c2x5IGNyZWF0ZWQgY29sb3IgY2hvb3Nlci4KKyAqCisgKiBCZWZvcmUgZGVz
dHJveWluZywgaXQgaW5mb3JtcyBjbGllbnQgdGhhdCBjb2xvciBjaG9vc2VyJ3MgZGF0YSBpcyBy
ZWFkeSB0byBiZQorICogZGVzdHJveWVkIGJ5IHNlbmRpbmcgYSAiY29sb3JjaG9vc2VyLHdpbGxk
ZWxldGUiLiBUaGVuIGl0IHJlbW92ZXMgYW55IHJlZmVyZW5jZQorICogdG8gdGhlIGNvbG9yIGNo
b29zZXIgaW5zaWRlIHdlYmtpdC4gSXQncyBzYWZlIHRvIGNhbGwgdGhpcyBmdW5jdGlvbiBlaXRo
ZXIgZnJvbQorICogaW5zaWRlIHdlYmtpdCBvciBmcm9tIGJyb3dzZXIuCisgKgorICogQHBhcmFt
IG8gdmlldyBvYmplY3QKKyAqCisgKiBAcmV0dXJuIEBjIEVJTkFfVFJVRSBpbiBjYXNlIGNvbG9y
IGNob29zZXIgd2FzIHN1Y2Nlc3NmdWxseSBkZXN0cm95ZWQgb3IgQGMgRUlOQV9UUlVFIGluCisg
KiBjYXNlIHRoZXJlIHdhc24ndCBhbnkgY29sb3IgY2hvb3NlciB0byBiZSBkZXN0cm95ZWQKKyAq
LworRUFQSSBFaW5hX0Jvb2wgICAgZXdrX3ZpZXdfY29sb3JfY2hvb3Nlcl9kZXN0cm95KEV2YXNf
T2JqZWN0KiBvKTsKKworLyoqCisgKiBDaGFuZ2VzIHRoZSBzZWxlY3RlZCBjb2xvci4KKyAqCisg
KiBDaGFuZ2VzIHRoZSBjb2xvciBzZWxlY3RlZCBpbiB0aGUgY29sb3IgaW5wdXQgd2lkZ2V0LiBU
aGUgYnJvd3NlciBzaG91bGQgY2FsbAorICogdGhpcyB3aGVuIHRoZSB1c2VyIGNob29zZXMgYSBu
ZXcgY29sb3IuIEl0J3MgbGlrZWx5IHRoYXQgZXdrX3ZpZXdfY29sb3JfY2hvb3Nlcl9kZXN0cm95
CisgKiB3aWxsIGJlIGNhbGxlZCBhZnRlcndhcmRzLgorICoKKyAqIEBwYXJhbSBvIHZpZXcgb2Jq
ZWN0CisgKiBAcGFyYW0gciByZWQgY29sb3IgY29tcG9uZW50CisgKiBAcGFyYW0gZyBncmVlbiBj
b2xvciBjb21wb25lbnQKKyAqIEBwYXJhbSBiIGJsdWUgY29sb3IgY29tcG9uZW50CisgKi8KK0VB
UEkgdm9pZCAgICAgICAgIGV3a192aWV3X2NvbG9yX2Nob29zZXJfY29sb3Jfc2V0KEV2YXNfT2Jq
ZWN0KiBvLCBpbnQgciwgaW50IGcsIGludCBiKTsKKworLyoqCiAgKiBDaGFuZ2VzIGN1cnJlbnRs
eSBzZWxlY3RlZCBpdGVtLgogICoKICAqIENoYW5nZXMgdGhlIG9wdGlvbiBzZWxlY3RlZCBpbiBz
ZWxlY3Qgd2lkZ2V0LiBUaGlzIGlzIGNhbGxlZCBieSBicm93c2VyCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtl
CmluZGV4IGVlYjdlYmEuLjEwMzYyYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9PcHRpb25z
RWZsLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCkBAIC02OSw2ICs2
OSw3IEBAIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9CQVRURVJZX1NU
QVRVUyBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9GQVNUX01P
QklMRV9TQ1JPTExJTkcgT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFC
TEVfRklMVEVSUyBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9H
TElCX1NVUFBPUlQgT04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVf
SU5QVVRfVFlQRV9DT0xPUiBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVO
QUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJIE9GRikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JU
X1ZBTFVFKEVOQUJMRV9ORVRXT1JLX0lORk8gT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9S
VF9WQUxVRShFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSBPTikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9jbWFrZS9XZWJLaXRGZWF0dXJlcy5jbWFrZSBiL1NvdXJjZS9jbWFrZS9XZWJLaXRGZWF0dXJl
cy5jbWFrZQppbmRleCBhZWMzZGNjLi42YWI4NzQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2Uv
V2ViS2l0RmVhdHVyZXMuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL1dlYktpdEZlYXR1cmVzLmNt
YWtlCkBAIC00MCw4ICs0MCw4IEBAIE1BQ1JPIChXRUJLSVRfT1BUSU9OX0JFR0lOKQogICAgIFdF
QktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9JQ09OREFUQUJBU0UgIlRvZ2dsZSBJY29uIGRhdGFi
YXNlIHN1cHBvcnQiIE9OKQogICAgIFdFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9JTUFHRV9E
RUNPREVSX0RPV05fU0FNUExJTkcgIlRvZ2dsZSBpbWFnZSBkZWNvZGVyIGRvd24gc2FtcGxpbmcg
c3VwcG9ydCIgT0ZGKQogICAgIFdFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9JTkRFWEVEX0RB
VEFCQVNFICJUb2dnbGUgSW5kZXhlZCBEYXRhYmFzZSBBUEkgc3VwcG9ydCIgT0ZGKQotICAgIFdF
QktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9JTlBVVF9DT0xPUiAiVG9nZ2xlIENvbG9yIElucHV0
IHN1cHBvcnQiIE9GRikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfSU5QVVRfU1BF
RUNIICJUb2dnbGUgU3BlZWNoIElucHV0IEFQSSBzdXBwb3J0IiBPRkYpCisgICAgV0VCS0lUX09Q
VElPTl9ERUZJTkUoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IgIlRvZ2dsZSBDb2xvciBJbnB1dCBz
dXBwb3J0IiBPRkYpCiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX0lOUFVUX1RZUEVf
REFURSAiVG9nZ2xlIGRhdGUgdHlwZSA8aW5wdXQ+IHN1cHBvcnQiIE9GRikKICAgICBXRUJLSVRf
T1BUSU9OX0RFRklORShFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRSAiVG9nZ2xlIGRhdGV0aW1l
IHR5cGUgPGlucHV0PiBzdXBwb3J0IiBPRkYpCiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5B
QkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCAiVG9nZ2xlIGRhdGV0aW1lLWxvY2FsIHR5cGUg
PGlucHV0PiBzdXBwb3J0IiBPRkYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2Vjb25maWcuaC5j
bWFrZSBiL1NvdXJjZS9jbWFrZWNvbmZpZy5oLmNtYWtlCmluZGV4IDE4MGQ1N2QuLjNmNGMzN2Eg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZWNvbmZpZy5oLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFr
ZWNvbmZpZy5oLmNtYWtlCkBAIC0zMSw3ICszMSw3IEBACiAjY21ha2VkZWZpbmUwMSBFTkFCTEVf
SUNPTkRBVEFCQVNFCiAjY21ha2VkZWZpbmUwMSBFTkFCTEVfSU1BR0VfREVDT0RFUl9ET1dOX1NB
TVBMSU5HCiAjY21ha2VkZWZpbmUwMSBFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRQotI2NtYWtlZGVm
aW5lMDEgRU5BQkxFX0lOUFVUX0NPTE9SCisjY21ha2VkZWZpbmUwMSBFTkFCTEVfSU5QVVRfVFlQ
RV9DT0xPUgogI2NtYWtlZGVmaW5lMDEgRU5BQkxFX0lOUFVUX1RZUEVfREFURQogI2NtYWtlZGVm
aW5lMDEgRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUUKICNjbWFrZWRlZmluZTAxIEVOQUJMRV9J
TlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCBhMzliYWRkLi41ZmVhMjg0IDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDQt
MTIgIFRoaWFnbyBNYXJjb3MgUC4gU2FudG9zICA8dGhpYWdvLnNhbnRvc0BpbnRlbC5jb20+CisK
KyAgICAgICAgW0VGTF0gQWRkIEFQSSBmb3IgY29sb3IgY2hvb3NlcgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODM2OTIKKworICAgICAgICBFbmFibGVz
IElOUFVUX1RZUEVfQ09MT1IgYnkgZGVmYXVsdCBvbiB0aGUgRUZMIHBvcnQuCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL2J1aWxkLXdl
YmtpdDoKKwogMjAxMi0wNC0xMiAgU2ltb24gUGVuYSAgPHNwZW5hQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgW0dUS10gVGVzdCBydW5uZXIgY3Jhc2hlcyB3aXRob3V0IHJlY2VudCB2ZXJzaW9ucyBv
ZiBwdWxzZWF1ZGlvLXV0aWxzCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2J1aWxkLXdlYmtp
dCBiL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0CmluZGV4IDczMWFkZmUuLmRkYWM1ZjYgMTAw
NzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0CisrKyBiL1Rvb2xzL1NjcmlwdHMv
YnVpbGQtd2Via2l0CkBAIC0yMzYsNyArMjM2LDcgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgICAg
ZGVmaW5lID0+ICJFTkFCTEVfU0NSSVBURURfU1BFRUNIIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9
PiBcJHNjcmlwdGVkU3BlZWNoU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gImlucHV0LXR5
cGUtY29sb3IiLCBkZXNjID0+ICJUb2dnbGUgY29sb3IgdHlwZSA8aW5wdXQ+IHN1cHBvcnQiLAot
ICAgICAgZGVmaW5lID0+ICJFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUiIsIGRlZmF1bHQgPT4gaXNC
bGFja0JlcnJ5KCksIHZhbHVlID0+IFwkaW5wdXRUeXBlQ29sb3JTdXBwb3J0IH0sCisgICAgICBk
ZWZpbmUgPT4gIkVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SIiwgZGVmYXVsdCA9PiAoaXNCbGFja0Jl
cnJ5KCkgfHwgaXNFZmwoKSksIHZhbHVlID0+IFwkaW5wdXRUeXBlQ29sb3JTdXBwb3J0IH0sCiAK
ICAgICB7IG9wdGlvbiA9PiAiaW5wdXQtdHlwZS1kYXRlIiwgZGVzYyA9PiAiVG9nZ2xlIGRhdGUg
dHlwZSA8aW5wdXQ+IHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfSU5QVVRfVFlQ
RV9EQVRFIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBcJGlucHV0VHlwZURhdGVTdXBwb3J0IH0s
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>