<?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>123411</bug_id>
          
          <creation_ts>2013-10-28 11:33:32 -0700</creation_ts>
          <short_desc>Upstream remaining PLATFORM(IOS) and ENABLE(REMOTE_INSPECTOR) pieces</short_desc>
          <delta_ts>2013-10-28 15:07:08 -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 Misc.</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="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>944168</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2013-10-28 11:33:32 -0700</bug_when>
    <thetext>This completes the upstreaming of iOS remote inspector code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>944182</commentid>
    <comment_count>1</comment_count>
      <attachid>215323</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2013-10-28 12:27:02 -0700</bug_when>
    <thetext>Created attachment 215323
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>944183</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-28 12:28:26 -0700</bug_when>
    <thetext>Attachment 215323 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/inspector/InspectorClient.h&apos;, u&apos;Source/WebCore/inspector/InspectorDOMAgent.cpp&apos;, u&apos;Source/WebCore/inspector/InspectorOverlay.cpp&apos;, u&apos;Source/WebCore/inspector/InspectorOverlay.h&apos;, u&apos;Source/WebKit/ChangeLog&apos;, u&apos;Source/WebKit/WebKit.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebKit/mac/ChangeLog&apos;, u&apos;Source/WebKit/mac/WebCoreSupport/WebInspectorClient.h&apos;, u&apos;Source/WebKit/mac/WebInspector/WebInspector.h&apos;, u&apos;Source/WebKit/mac/WebInspector/WebInspector.mm&apos;, u&apos;Source/WebKit/mac/WebInspector/WebNodeHighlight.h&apos;, u&apos;Source/WebKit/mac/WebInspector/WebNodeHighlight.mm&apos;, u&apos;Source/WebKit/mac/WebInspector/WebNodeHighlightView.h&apos;, u&apos;Source/WebKit/mac/WebInspector/WebNodeHighlightView.mm&apos;, u&apos;Source/WebKit/mac/WebInspector/WebNodeHighlighter.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebIndicateLayer.h&apos;, u&apos;Source/WebKit/mac/WebView/WebIndicateLayer.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebView.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebViewData.h&apos;, u&apos;Source/WebKit/mac/WebView/WebViewData.mm&apos;]&quot; exit_code: 1
Source/WebKit/mac/WebView/WebIndicateLayer.h:33:  This { should be at the end of the previous line  [whitespace/braces] [4]
Total errors found: 1 in 21 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>944228</commentid>
    <comment_count>3</comment_count>
      <attachid>215323</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-28 15:07:06 -0700</bug_when>
    <thetext>Comment on attachment 215323
[PATCH] Proposed Fix

Clearing flags on attachment: 215323

Committed r158137: &lt;http://trac.webkit.org/changeset/158137&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>944229</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-28 15:07:08 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215323</attachid>
            <date>2013-10-28 12:27:02 -0700</date>
            <delta_ts>2013-10-28 15:07:06 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>upstream-rwi.patch</filename>
            <type>text/plain</type>
            <size>45801</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjZWE3Zjc2Li5iMDczNzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAg
QEAKKzIwMTMtMTAtMjggIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKwor
ICAgICAgICBVcHN0cmVhbSByZW1haW5pbmcgUExBVEZPUk0oSU9TKSBhbmQgRU5BQkxFKFJFTU9U
RV9JTlNQRUNUT1IpIHBpZWNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTIzNDExCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgSW5jbHVkZSBhbiBJbnNwZWN0b3JDbGllbnQgaG9vayBmb3Igd2hlbiBub2Rl
IHNlYXJjaGluZyBpcyBlbmFibGVkIC8gZGlzYWJsZWQuCisKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9yQ2xpZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDbGllbnQ6OmRp
ZFNldFNlYXJjaGluZ0Zvck5vZGUpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01B
Z2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6c2V0U2VhcmNo
aW5nRm9yTm9kZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yT3ZlcmxheTo6ZGlkU2V0U2VhcmNoaW5nRm9yTm9k
ZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuaDoKKwogMjAxMy0xMC0y
NSAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFVwc3Ry
ZWFtIEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKSBhbmQgZW5hYmxlIG9uIGlPUyBhbmQgTWFjCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50LmgKaW5kZXggODk1ZTVkOS4u
NTUwNDcwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDbGllbnQuaApA
QCAtODQsNiArODQsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNGcmFt
ZUluc3RydW1lbnRhdGlvbigpIHsgcmV0dXJuIGZhbHNlOyB9CiAKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkU2V0U2VhcmNoaW5nRm9yTm9kZShib29sKSB7IH0KKwogICAgIHZpcnR1YWwgdm9pZCBnZXRB
bGxvY2F0ZWRPYmplY3RzKEhhc2hTZXQ8Y29uc3Qgdm9pZCo+JikgeyB9CiAgICAgdmlydHVhbCB2
b2lkIGR1bXBVbmNvdW50ZWRBbGxvY2F0ZWRPYmplY3RzKGNvbnN0IEhhc2hNYXA8Y29uc3Qgdm9p
ZCosIHNpemVfdD4mKSB7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckRPTUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JET01BZ2VudC5jcHAKaW5kZXggMDA4MTM2My4uYjZlZDA1OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCkBAIC0xMTIxLDYgKzExMjEsOCBA
QCB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpzZXRTZWFyY2hpbmdGb3JOb2RlKEVycm9yU3RyaW5n
KiBlcnJvclN0cmluZywgYm9vbCBlbmFibAogICAgICAgICAgICAgcmV0dXJuOwogICAgIH0gZWxz
ZQogICAgICAgICBoaWRlSGlnaGxpZ2h0KGVycm9yU3RyaW5nKTsKKworICAgIG1fb3ZlcmxheS0+
ZGlkU2V0U2VhcmNoaW5nRm9yTm9kZShtX3NlYXJjaGluZ0Zvck5vZGUpOwogfQogCiBQYXNzT3du
UHRyPEhpZ2hsaWdodENvbmZpZz4gSW5zcGVjdG9yRE9NQWdlbnQ6OmhpZ2hsaWdodENvbmZpZ0Zy
b21JbnNwZWN0b3JPYmplY3QoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBJbnNwZWN0b3JPYmpl
Y3QqIGhpZ2hsaWdodEluc3BlY3Rvck9iamVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JPdmVybGF5LmNwcAppbmRleCA3N2JlODVmLi5hM2JlM2ZkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwCkBAIC0zMTQsNiArMzE0
LDExIEBAIE5vZGUqIEluc3BlY3Rvck92ZXJsYXk6OmhpZ2hsaWdodGVkTm9kZSgpIGNvbnN0CiAg
ICAgcmV0dXJuIG1faGlnaGxpZ2h0Tm9kZS5nZXQoKTsKIH0KIAordm9pZCBJbnNwZWN0b3JPdmVy
bGF5OjpkaWRTZXRTZWFyY2hpbmdGb3JOb2RlKGJvb2wgZW5hYmxlZCkKK3sKKyAgICBtX2NsaWVu
dC0+ZGlkU2V0U2VhcmNoaW5nRm9yTm9kZShlbmFibGVkKTsKK30KKwogdm9pZCBJbnNwZWN0b3JP
dmVybGF5Ojp1cGRhdGUoKQogewogICAgIGlmICghbV9oaWdobGlnaHROb2RlICYmICFtX2hpZ2hs
aWdodFF1YWQgJiYgbV9wYXVzZWRJbkRlYnVnZ2VyTWVzc2FnZS5pc051bGwoKSAmJiBtX3NpemUu
aXNFbXB0eSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yT3ZlcmxheS5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXku
aAppbmRleCA2MzE0ZDViLi45ZjZkMjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JPdmVybGF5LmgKQEAgLTEyMyw2ICsxMjMsOCBAQCBwdWJsaWM6CiAKICAgICBOb2Rl
KiBoaWdobGlnaHRlZE5vZGUoKSBjb25zdDsKIAorICAgIHZvaWQgZGlkU2V0U2VhcmNoaW5nRm9y
Tm9kZShib29sIGVuYWJsZWQpOworCiAgICAgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGJ1
aWxkT2JqZWN0Rm9ySGlnaGxpZ2h0ZWROb2RlKCkgY29uc3Q7CiAKICAgICB2b2lkIGZyZWVQYWdl
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCmluZGV4IDY1OTk3MGEuLmI4OTZjNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIg
QEAKKzIwMTMtMTAtMjggIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKwor
ICAgICAgICBVcHN0cmVhbSByZW1haW5pbmcgUExBVEZPUk0oSU9TKSBhbmQgRU5BQkxFKFJFTU9U
RV9JTlNQRUNUT1IpIHBpZWNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTIzNDExCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAxMy0x
MC0yNSAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFVw
c3RyZWFtIEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKSBhbmQgZW5hYmxlIG9uIGlPUyBhbmQgTWFj
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCA3YWQxOGQ5Li4wYjljZTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTMxOSw2ICszMTksOCBAQAogCQlBNTIxNEZDNzEzQjk3NUM4
MDAwMDE1RUYgLyogV2ViSW5zcGVjdG9yUmVtb3RlQ2hhbm5lbC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTUyMTRGQzExM0I5NzVDODAwMDAxNUVGIC8q
IFdlYkluc3BlY3RvclJlbW90ZUNoYW5uZWwuaCAqLzsgfTsKIAkJQTUyMTRGQzgxM0I5NzVDODAw
MDAxNUVGIC8qIFdlYkluc3BlY3RvclJlbW90ZUNoYW5uZWwubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTIxNEZDMjEzQjk3NUM4MDAwMDE1RUYgLyog
V2ViSW5zcGVjdG9yUmVtb3RlQ2hhbm5lbC5tbSAqLzsgfTsKIAkJQTUyMjA5RjgxM0M1M0U3NTAw
NEJBN0IxIC8qIFdlYkluc3BlY3RvclJlbGF5RGVmaW5pdGlvbnMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1MjIwOUY3MTNDNTNFNzUwMDRCQTdCMSAv
KiBXZWJJbnNwZWN0b3JSZWxheURlZmluaXRpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQTU2MDk0NjYxNEQ4QUQyNjAwNzk5QThBIC8qIFdl
YkluZGljYXRlTGF5ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE1NjA5NDY0MTREOEFEMjYwMDc5OUE4QSAvKiBXZWJJbmRpY2F0ZUxheWVyLmggKi87
IH07CisJCUE1NjA5NDY3MTREOEFEMjYwMDc5OUE4QSAvKiBXZWJJbmRpY2F0ZUxheWVyLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTU2MDk0NjUxNEQ4
QUQyNjAwNzk5QThBIC8qIFdlYkluZGljYXRlTGF5ZXIubW0gKi87IH07CiAJCUE1NUUyMEZGMTRE
NzI2NEMwMDMxNTQ5RSAvKiBXZWJJbnNwZWN0b3JTZXJ2ZXJXZWJWaWV3Q29ubmVjdGlvbkNvbnRy
b2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1
NUUyMEZEMTRENzI2NEMwMDMxNTQ5RSAvKiBXZWJJbnNwZWN0b3JTZXJ2ZXJXZWJWaWV3Q29ubmVj
dGlvbkNvbnRyb2xsZXIuaCAqLzsgfTsKIAkJQTU1RTIxMDAxNEQ3MjY0QzAwMzE1NDlFIC8qIFdl
Ykluc3BlY3RvclNlcnZlcldlYlZpZXdDb25uZWN0aW9uQ29udHJvbGxlci5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1NUUyMEZFMTRENzI2NEMwMDMx
NTQ5RSAvKiBXZWJJbnNwZWN0b3JTZXJ2ZXJXZWJWaWV3Q29ubmVjdGlvbkNvbnRyb2xsZXIubW0g
Ki87IH07CiAJCUE1Njg3QkRBMTM1Qjc5MUEwMDc0Q0JDQiAvKiBXZWJOb2RlSGlnaGxpZ2h0ZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1Njg3QkQ4
MTM1Qjc5MUEwMDc0Q0JDQiAvKiBXZWJOb2RlSGlnaGxpZ2h0ZXIuaCAqLzsgfTsKQEAgLTM0Myw3
ICszNDUsNiBAQAogCQlBNURFRkMxMDExRDUzNDNFMDA4ODUyNzMgLyogV2ViRGF0YWJhc2VRdW90
YU1hbmFnZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBNURFRkMwRTExRDUzNDNFMDA4ODUyNzMgLyogV2ViRGF0YWJhc2VRdW90YU1hbmFnZXIubW0g
Ki87IH07CiAJCUE1REVGQzEzMTFENTM0NEIwMDg4NTI3MyAvKiBXZWJBcHBsaWNhdGlvbkNhY2hl
UXVvdGFNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBNURFRkMxMTExRDUzNDRCMDA4ODUyNzMgLyogV2ViQXBwbGljYXRpb25DYWNoZVF1b3Rh
TWFuYWdlci5oICovOyB9OwogCQlBNURFRkMxNDExRDUzNDRCMDA4ODUyNzMgLyogV2ViQXBwbGlj
YXRpb25DYWNoZVF1b3RhTWFuYWdlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE1REVGQzEyMTFENTM0NEIwMDg4NTI3MyAvKiBXZWJBcHBsaWNhdGlv
bkNhY2hlUXVvdGFNYW5hZ2VyLm1tICovOyB9OwotCQlBNUQ2ODcxMDExRTYzRkQ3MDA0RTdFNUQg
LyogV2ViSW5zcGVjdG9yQ2xpZW50SU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTVFOEFENTgxODE1QjE1RTAwMzJFMzI3IC8qIFdlYkluc3BlY3Rv
ckNsaWVudElPUy5tbSAqLzsgfTsKIAkJQTcwOTM2QUYwQjU2MDhEQzAwQ0RCNDhFIC8qIFdlYkRy
YWdDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE3MDkzNkFEMEI1NjA4REMwMENEQjQ4RSAvKiBXZWJEcmFnQ2xpZW50LmggKi87IH07CiAJCUE3
MDkzNkIwMEI1NjA4REMwMENEQjQ4RSAvKiBXZWJEcmFnQ2xpZW50Lm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcwOTM2QUUwQjU2MDhEQzAwQ0RCNDhF
IC8qIFdlYkRyYWdDbGllbnQubW0gKi87IH07CiAJCUE4NjRCM0Y2MTIzRUQ5RkEwMEMyQTYxMiAv
KiBNYWlsUXVpcmtzVXNlclNjcmlwdC5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTg2NEIzRTUxMjNFRDgzRDAwQzJBNjEyIC8qIE1haWxRdWlya3NV
c2VyU2NyaXB0LmpzICovOyB9OwpAQCAtNjU3LDYgKzY1OCw4IEBACiAJCUE1MjE0RkMxMTNCOTc1
QzgwMDAwMTVFRiAvKiBXZWJJbnNwZWN0b3JSZW1vdGVDaGFubmVsLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkluc3BlY3RvclJlbW90ZUNoYW5uZWwuaDsgcGF0aCA9IHJl
bW90ZS9XZWJJbnNwZWN0b3JSZW1vdGVDaGFubmVsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUE1MjE0RkMyMTNCOTc1QzgwMDAwMTVFRiAvKiBXZWJJbnNwZWN0b3JSZW1vdGVDaGFu
bmVsLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV2ViSW5zcGVj
dG9yUmVtb3RlQ2hhbm5lbC5tbTsgcGF0aCA9IHJlbW90ZS9XZWJJbnNwZWN0b3JSZW1vdGVDaGFu
bmVsLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNTIyMDlGNzEzQzUzRTc1MDA0
QkE3QjEgLyogV2ViSW5zcGVjdG9yUmVsYXlEZWZpbml0aW9ucy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBXZWJJbnNwZWN0b3JSZWxheURlZmluaXRpb25zLmg7IHBhdGggPSBy
ZW1vdGUvV2ViSW5zcGVjdG9yUmVsYXlEZWZpbml0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlBNTYwOTQ2NDE0RDhBRDI2MDA3OTlBOEEgLyogV2ViSW5kaWNhdGVMYXllci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJJbmRpY2F0ZUxheWVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE1NjA5NDY1MTREOEFEMjYwMDc5OUE4QSAvKiBX
ZWJJbmRpY2F0ZUxheWVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gV2ViSW5kaWNhdGVMYXllci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTU1
RTIwRkQxNEQ3MjY0QzAwMzE1NDlFIC8qIFdlYkluc3BlY3RvclNlcnZlcldlYlZpZXdDb25uZWN0
aW9uQ29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJJbnNw
ZWN0b3JTZXJ2ZXJXZWJWaWV3Q29ubmVjdGlvbkNvbnRyb2xsZXIuaDsgcGF0aCA9IHJlbW90ZS9X
ZWJJbnNwZWN0b3JTZXJ2ZXJXZWJWaWV3Q29ubmVjdGlvbkNvbnRyb2xsZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTU1RTIwRkUxNEQ3MjY0QzAwMzE1NDlFIC8qIFdlYkluc3Bl
Y3RvclNlcnZlcldlYlZpZXdDb25uZWN0aW9uQ29udHJvbGxlci5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdlYkluc3BlY3RvclNlcnZlcldlYlZpZXdDb25uZWN0
aW9uQ29udHJvbGxlci5tbTsgcGF0aCA9IHJlbW90ZS9XZWJJbnNwZWN0b3JTZXJ2ZXJXZWJWaWV3
Q29ubmVjdGlvbkNvbnRyb2xsZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE1
Njg3QkQ4MTM1Qjc5MUEwMDc0Q0JDQiAvKiBXZWJOb2RlSGlnaGxpZ2h0ZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViTm9kZUhpZ2hsaWdodGVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC02NzQsNiArNjc3LDcgQEAKIAkJQTU4QTU3OTgxNDNFNzI3MDAw
MTI1RjUwIC8qIFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE1QzU2NkJCMTI3QTNBRTUwMEU4QTNGRiAvKiBX
ZWJEaXNrSW1hZ2VDYWNoZUNsaWVudElPUy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJEaXNrSW1hZ2VDYWNoZUNsaWVudElPUy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBNUM1NjZCQzEyN0EzQUU1MDBFOEEzRkYgLyogV2ViRGlza0ltYWdlQ2FjaGVDbGll
bnRJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJEaXNr
SW1hZ2VDYWNoZUNsaWVudElPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTVE
Njg3MEUxMUU2M0ZENzAwNEU3RTVEIC8qIFdlYkluc3BlY3RvckNsaWVudElPUy5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkluc3BlY3RvckNsaWVudElPUy5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTVERUZDMDcxMUQ1MzMxQzAwODg1Mjcz
IC8qIFdlYlNlY3VyaXR5T3JpZ2luLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gV2ViU2VjdXJpdHlPcmlnaW4ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUE1REVGQzA4MTFENTMzMUMwMDg4NTI3MyAvKiBXZWJTZWN1cml0eU9yaWdpbkludGVybmFs
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNlY3VyaXR5T3JpZ2luSW50
ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTVERUZDMDkxMUQ1MzMxQzAw
ODg1MjczIC8qIFdlYlNlY3VyaXR5T3JpZ2luUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJTZWN1cml0eU9yaWdpblByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTY4MSw3ICs2ODUsNiBAQAogCQlBNURFRkMwRTExRDUzNDNFMDA4ODUy
NzMgLyogV2ViRGF0YWJhc2VRdW90YU1hbmFnZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBXZWJEYXRhYmFzZVF1b3RhTWFuYWdlci5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQTVERUZDMTExMUQ1MzQ0QjAwODg1MjczIC8qIFdlYkFwcGxpY2F0
aW9uQ2FjaGVRdW90YU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViQXBwbGljYXRpb25DYWNoZVF1b3RhTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBNURFRkMxMjExRDUzNDRCMDA4ODUyNzMgLyogV2ViQXBwbGljYXRpb25DYWNoZVF1
b3RhTWFuYWdlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdl
YkFwcGxpY2F0aW9uQ2FjaGVRdW90YU1hbmFnZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCUE1RDY4NzBFMTFFNjNGRDcwMDRFN0U1RCAvKiBXZWJJbnNwZWN0b3JDbGllbnRJT1Mu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJJbnNwZWN0b3JD
bGllbnRJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MDkzNkFEMEI1NjA4
REMwMENEQjQ4RSAvKiBXZWJEcmFnQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXZWJEcmFnQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3
MDkzNkFFMEI1NjA4REMwMENEQjQ4RSAvKiBXZWJEcmFnQ2xpZW50Lm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkRyYWdDbGllbnQubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUE4NjRCM0U1MTIzRUQ4M0QwMEMyQTYxMiAvKiBNYWlsUXVpcmtz
VXNlclNjcmlwdC5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9IE1h
aWxRdWlya3NVc2VyU2NyaXB0LmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTIz
NCw2ICsxMjM3LDggQEAKIAkJCQlCQzdGODg5RDEwQzlEMzBDMDBENjEzM0QgLyogV2ViR2VvbG9j
YXRpb25Qb3NpdGlvbi5tbSAqLywKIAkJCQlCQzdGODhBNDEwQzlEODhCMDBENjEzM0QgLyogV2Vi
R2VvbG9jYXRpb25Qb3NpdGlvbkludGVybmFsLmggKi8sCiAJCQkJNTE1OEY2RUUxMDZEODYyQTAw
QUY0NTdDIC8qIFdlYkhpc3RvcnlEZWxlZ2F0ZS5oICovLAorCQkJCUE1NjA5NDY0MTREOEFEMjYw
MDc5OUE4QSAvKiBXZWJJbmRpY2F0ZUxheWVyLmggKi8sCisJCQkJQTU2MDk0NjUxNEQ4QUQyNjAw
Nzk5QThBIC8qIFdlYkluZGljYXRlTGF5ZXIubW0gKi8sCiAJCQkJNTE4NUY2MjUxMDcxMkI4MDAw
N0FBMzkzIC8qIFdlYk5hdmlnYXRpb25EYXRhLmggKi8sCiAJCQkJNTE4NUY2MjcxMDcxMkI5NzAw
N0FBMzkzIC8qIFdlYk5hdmlnYXRpb25EYXRhLm1tICovLAogCQkJCTMxMkUyRkUzMTRFNDgxODIw
MDdDQ0ExOCAvKiBXZWJOb3RpZmljYXRpb24uaCAqLywKQEAgLTE2MzQsNiArMTYzOSw3IEBACiAJ
CQkJMUFFQTY2RDQwREM2QjFGRjAwM0QxMkJGIC8qIFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5k
bGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUVBNjZEODBEQzZCMjA5MDAzRDEyQkYgLyogV2Vi
TmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDYXJib24uaCBpbiBIZWFkZXJzICovLAogCQkJCTFB
RUE2QTUwMERDOENFMkYwMDNEMTJCRiAvKiBXZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNv
Y29hLmggaW4gSGVhZGVycyAqLywKKwkJCQlBNTYwOTQ2NjE0RDhBRDI2MDA3OTlBOEEgLyogV2Vi
SW5kaWNhdGVMYXllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM5ODEwMzEwODI0QkYwMTAwOERG
MDM4IC8qIFdlYk5ldHNjYXBlUGx1Z2luUGFja2FnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM5
ODEwMkIwODI0QkYwMTAwOERGMDM4IC8qIFdlYk5ldHNjYXBlUGx1Z2luU3RyZWFtLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxQTRERjUyMjBFQzhDNzREMDA2QkQ0QjQgLyogV2ViTmV0c2NhcGVQbHVn
aW5WaWV3LmggaW4gSGVhZGVycyAqLywKQEAgLTIwNTEsNiArMjA1Nyw3IEBACiAJCQkJMzEyRTJG
RTYxNEU0ODE4MjAwN0NDQTE4IC8qIFdlYk5vdGlmaWNhdGlvbi5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTMxQzExQTZGMTQ3NjU1MkUwMDQ5QTRDQyAvKiBXZWJOb3RpZmljYXRpb25DbGllbnQubW0g
aW4gU291cmNlcyAqLywKIAkJCQlFREU5ODM4MTBCQ0RGNUZFMDBGREFFMjggLyogV2ViTlNBcnJh
eUV4dHJhcy5tIGluIFNvdXJjZXMgKi8sCisJCQkJQTU2MDk0NjcxNEQ4QUQyNjAwNzk5QThBIC8q
IFdlYkluZGljYXRlTGF5ZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQk5Mzk4MTBDNjA4MjRCRjAx
MDA4REYwMzggLyogV2ViTlNDb250cm9sRXh0cmFzLm0gaW4gU291cmNlcyAqLywKIAkJCQk5Mzk4
MTExNTA4MjRCRjAxMDA4REYwMzggLyogV2ViTlNEYXRhRXh0cmFzLm0gaW4gU291cmNlcyAqLywK
IAkJCQk2NTQ4OERBMjA4NEZCQ0NCMDA4MzFBRDAgLyogV2ViTlNEaWN0aW9uYXJ5RXh0cmFzLm0g
aW4gU291cmNlcyAqLywKQEAgLTIwNTgsNyArMjA2NSw2IEBACiAJCQkJNjVFRURFNTgwODRGRkM5
RTAwMDJEQjI1IC8qIFdlYk5TRmlsZU1hbmFnZXJFeHRyYXMubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk5Mzk4MTBDNzA4MjRCRjAxMDA4REYwMzggLyogV2ViTlNJbWFnZUV4dHJhcy5tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJOTM0QzRBOTEwRjAxNDA2QzAwOTM3MkMwIC8qIFdlYk5TT2JqZWN0RXh0cmFz
Lm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJQTVENjg3MTAxMUU2M0ZENzAwNEU3RTVEIC8qIFdlYklu
c3BlY3RvckNsaWVudElPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTkzOTgxMEM4MDgyNEJGMDEw
MDhERjAzOCAvKiBXZWJOU1Bhc3RlYm9hcmRFeHRyYXMubW0gaW4gU291cmNlcyAqLywKIAkJCQk5
Mzk4MTExOTA4MjRCRjAxMDA4REYwMzggLyogV2ViTlNQcmludE9wZXJhdGlvbkV4dHJhcy5tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJOTM5ODExMTIwODI0QkYwMTAwOERGMDM4IC8qIFdlYk5TVVJMRXh0
cmFzLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggZTFlN2U2Mi4uMTVmNDky
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDEzLTEwLTI4ICBKb3NlcGgg
UGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgVXBzdHJlYW0gcmVtYWlu
aW5nIFBMQVRGT1JNKElPUykgYW5kIEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKSBwaWVjZXMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMzQxMQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwc3RyZWFtIGlP
UyBub2RlIGhpZ2hsaWdodGluZyBhbmQgdmlldyBpbmRpY2F0aW9uLgorCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Lmg6CisgICAgICAgICogV2ViSW5zcGVjdG9y
L1dlYkluc3BlY3Rvci5oOgorICAgICAgICAqIFdlYkluc3BlY3Rvci9XZWJJbnNwZWN0b3IubW06
CisgICAgICAgICogV2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdobGlnaHQuaDoKKyAgICAgICAgKiBX
ZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodC5tbToKKyAgICAgICAgKC1bV2ViSGlnaGxpZ2h0
TGF5ZXIgaW5pdFdpdGhIaWdobGlnaHRWaWV3OndlYlZpZXc6XSk6CisgICAgICAgICgtW1dlYkhp
Z2hsaWdodExheWVyIGxheW91dFN1YmxheWVyc10pOgorICAgICAgICAoLVtXZWJIaWdobGlnaHRM
YXllciBhY3Rpb25Gb3JLZXk6XSk6CisgICAgICAgICgtW1dlYk5vZGVIaWdobGlnaHQgaW5pdFdp
dGhUYXJnZXRWaWV3Omluc3BlY3RvckNvbnRyb2xsZXI6XSk6CisgICAgICAgICgtW1dlYk5vZGVI
aWdobGlnaHQgZGVhbGxvY10pOgorICAgICAgICAoLVtXZWJOb2RlSGlnaGxpZ2h0IGF0dGFjaF0p
OgorICAgICAgICAqIFdlYkluc3BlY3Rvci9XZWJOb2RlSGlnaGxpZ2h0Vmlldy5oOgorICAgICAg
ICAqIFdlYkluc3BlY3Rvci9XZWJOb2RlSGlnaGxpZ2h0Vmlldy5tbToKKyAgICAgICAgKC1bV2Vi
Tm9kZUhpZ2hsaWdodFZpZXcgaW5pdFdpdGhXZWJOb2RlSGlnaGxpZ2h0Ol0pOgorICAgICAgICAo
LVtXZWJOb2RlSGlnaGxpZ2h0VmlldyBkZWFsbG9jXSk6CisgICAgICAgICgtW1dlYk5vZGVIaWdo
bGlnaHRWaWV3IF9hdHRhY2g6bnVtTGF5ZXJzOl0pOgorICAgICAgICAoZmluZEludGVyc2VjdGlv
bk9uTGluZUJldHdlZW5Qb2ludHMpOgorICAgICAgICAocXVhZEludGVyc2VjdGlvbik6CisgICAg
ICAgIChsYXllclBhdGhXaXRoSG9sZSk6CisgICAgICAgIChsYXllclBhdGgpOgorICAgICAgICAo
LVtXZWJOb2RlSGlnaGxpZ2h0VmlldyBfbGF5b3V0Rm9yTm9kZUhpZ2hsaWdodDpwYXJlbnQ6XSk6
CisgICAgICAgICgtW1dlYk5vZGVIaWdobGlnaHRWaWV3IF9sYXlvdXRGb3JSZWN0c0hpZ2hsaWdo
dDpwYXJlbnQ6XSk6CisgICAgICAgICgtW1dlYk5vZGVIaWdobGlnaHRWaWV3IGxheW91dFN1Ymxh
eWVyczpdKToKKyAgICAgICAgKiBXZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodGVyLm1tOgor
ICAgICAgICAoLVtXZWJOb2RlSGlnaGxpZ2h0ZXIgaGlnaGxpZ2h0XSk6CisgICAgICAgICogV2Vi
Vmlldy9XZWJJbmRpY2F0ZUxheWVyLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlZpZXcvV2ViSW5k
aWNhdGVMYXllci5tbTogQWRkZWQuCisgICAgICAgICgtW1dlYkluZGljYXRlTGF5ZXIgbGF5b3V0
U3VibGF5ZXJzXSk6CisgICAgICAgICgtW1dlYkluZGljYXRlTGF5ZXIgYWN0aW9uRm9yS2V5Ol0p
OgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBzZXRJ
bmRpY2F0aW5nRm9yUmVtb3RlSW5zcGVjdG9yOl0pOgorICAgICAgICAoLVtXZWJWaWV3IHNldEhv
c3RBcHBsaWNhdGlvbkJ1bmRsZUlkOm5hbWU6XSk6CisgICAgICAgICgtW1dlYlZpZXcgaG9zdEFw
cGxpY2F0aW9uQnVuZGxlSWRdKToKKyAgICAgICAgKC1bV2ViVmlldyBob3N0QXBwbGljYXRpb25O
YW1lXSk6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3RGF0YS5oOgorICAgICAgICAqIFdlYlZp
ZXcvV2ViVmlld0RhdGEubW06CisgICAgICAgICgtW1dlYlZpZXdQcml2YXRlIGRlYWxsb2NdKToK
KwogMjAxMy0xMC0yNSAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAg
ICAgICAgIFVwc3RyZWFtIEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKSBhbmQgZW5hYmxlIG9uIGlP
UyBhbmQgTWFjCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJJbnNwZWN0b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
Ykluc3BlY3RvckNsaWVudC5oCmluZGV4IGUwZDJjZDguLjQ0YThiMmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5oCkBA
IC05Nyw2ICs5NywxMCBAQCBwdWJsaWM6CiAgICAgYm9vbCBjYW5CZVJlbW90ZWx5SW5zcGVjdGVk
KCkgY29uc3Q7CiAKICAgICBXZWJWaWV3ICppbnNwZWN0ZWRXZWJWaWV3KCk7CisKKyNpZiBQTEFU
Rk9STShJT1MpCisgICAgdmlydHVhbCB2b2lkIGRpZFNldFNlYXJjaGluZ0Zvck5vZGUoYm9vbCkg
T1ZFUlJJREUgRklOQUw7CisjZW5kaWYKICNlbmRpZgogCiBwcml2YXRlOgpAQCAtMTQ0LDggKzE0
OCwxMCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzYXZlKGNvbnN0IFN0cmluZyYgdXJs
LCBjb25zdCBTdHJpbmcmIGNvbnRlbnQsIGJvb2wgZm9yY2VTYXZlQXMsIGJvb2wgYmFzZTY0RW5j
b2RlZCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGFwcGVuZChjb25zdCBTdHJpbmcmIHVy
bCwgY29uc3QgU3RyaW5nJiBjb250ZW50KSBPVkVSUklERTsKIAorI2lmICFQTEFURk9STShJT1Mp
CiAgICAgV2ViVmlldyogbV9pbnNwZWN0ZWRXZWJWaWV3OwogICAgIFJldGFpblB0cjxXZWJJbnNw
ZWN0b3JXaW5kb3dDb250cm9sbGVyPiBtX3dpbmRvd0NvbnRyb2xsZXI7CiAgICAgU3RyaW5nIG1f
aW5zcGVjdGVkVVJMOwogICAgIEhhc2hNYXA8U3RyaW5nLCBSZXRhaW5QdHI8TlNVUkw+PiBtX3N1
Z2dlc3RlZFRvQWN0dWFsVVJMTWFwOworI2VuZGlmCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvV2ViSW5zcGVjdG9yL1dlYkluc3BlY3Rvci5oIGIvU291cmNlL1dlYktpdC9tYWMv
V2ViSW5zcGVjdG9yL1dlYkluc3BlY3Rvci5oCmluZGV4IGVkNzhlZDcuLmU5ZTIzMmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkluc3BlY3Rvci9XZWJJbnNwZWN0b3IuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJJbnNwZWN0b3IvV2ViSW5zcGVjdG9yLmgKQEAgLTI4LDYg
KzI4LDExIEBACiAKICNpbXBvcnQgPEZvdW5kYXRpb24vTlNPYmplY3QuaD4KIAorI2lmIFBMQVRG
T1JNKElPUykKK2V4dGVybiBOU1N0cmluZyAqV2ViSW5zcGVjdG9yRGlkU3RhcnRTZWFyY2hpbmdG
b3JOb2RlOworZXh0ZXJuIE5TU3RyaW5nICpXZWJJbnNwZWN0b3JEaWRTdG9wU2VhcmNoaW5nRm9y
Tm9kZTsKKyNlbmRpZgorCiBAY2xhc3MgV2ViVmlldzsKIEBjbGFzcyBXZWJJbnNwZWN0b3JGcm9u
dGVuZDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViSW5zcGVjdG9yL1dlYklu
c3BlY3Rvci5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkluc3BlY3Rvci9XZWJJbnNwZWN0b3Iu
bW0KaW5kZXggMDhmNGJmYS4uNzkzZjc0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMv
V2ViSW5zcGVjdG9yL1dlYkluc3BlY3Rvci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJJ
bnNwZWN0b3IvV2ViSW5zcGVjdG9yLm1tCkBAIC0zOSw2ICszOSwxMSBAQAogCiB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKIAorI2lmIFBMQVRGT1JNKElPUykKK05TU3RyaW5nICpXZWJJbnNwZWN0
b3JEaWRTdGFydFNlYXJjaGluZ0Zvck5vZGUgPSBAIldlYkluc3BlY3RvckRpZFN0YXJ0U2VhcmNo
aW5nRm9yTm9kZSI7CitOU1N0cmluZyAqV2ViSW5zcGVjdG9yRGlkU3RvcFNlYXJjaGluZ0Zvck5v
ZGUgPSBAIldlYkluc3BlY3RvckRpZFN0b3BTZWFyY2hpbmdGb3JOb2RlIjsKKyNlbmRpZgorCiBA
aW1wbGVtZW50YXRpb24gV2ViSW5zcGVjdG9yCiAtIChpZClpbml0V2l0aFdlYlZpZXc6KFdlYlZp
ZXcgKil3ZWJWaWV3CiB7CkBAIC0yMjIsNiArMjI3LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAgICAgX3dlYlZpZXcgPSBbZnJhbWUgd2ViVmlld107CiB9CiAKKyNpZiAhUExBVEZPUk0o
SU9TKQogLSAoTlNXaW5kb3cgKil3aW5kb3cKIHsKICAgICAvLyBTaGlpcmEgY2FsbHMgdGhpcyBp
bnRlcm5hbCBtZXRob2QsIHJldHVybiBuaWwgc2luY2Ugd2UgY2FuJ3QgZWFzaWx5IHJldHVybiB0
aGUgd2luZG93CkBAIC0yMzMsNiArMjM5LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
ICAgICByZXR1cm4gbmlsOwogfQorI2VuZGlmCiAKIC0gKHZvaWQpc2hvd1dpbmRvdzooaWQpc2Vu
ZGVyCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJJbnNwZWN0b3IvV2ViTm9k
ZUhpZ2hsaWdodC5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdo
bGlnaHQuaAppbmRleCAxZWIyNzdhLi5jMzllZDBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkluc3BlY3Rvci9XZWJOb2RlSGlnaGxpZ2h0LmgKQEAgLTI2LDE1ICsyNiwzNyBAQAog
ICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KICAqLwogCisjaWYgUExBVEZPUk0oSU9TKQorI2ltcG9ydCA8UXVhcnR6Q29y
ZS9DQVRpbGVkTGF5ZXIuaD4KKyNpbXBvcnQgPFdlYktpdC9XQUtBcHBLaXRTdHVicy5oPgorI2lt
cG9ydCA8V2ViS2l0L1dBS1ZpZXcuaD4KKyNlbmRpZgorCiBAY2xhc3MgV2ViTm9kZUhpZ2hsaWdo
dFZpZXc7CisjaWYgUExBVEZPUk0oSU9TKQorQGNsYXNzIFdlYlZpZXc7CisjZW5kaWYKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIEluc3BlY3RvckNvbnRyb2xsZXI7CiB9CiAKKyNp
ZiBQTEFURk9STShJT1MpCitAaW50ZXJmYWNlIFdlYkhpZ2hsaWdodExheWVyIDogQ0FMYXllciB7
CisgICAgV2ViTm9kZUhpZ2hsaWdodFZpZXcgKl92aWV3OworICAgIFdlYlZpZXcgKl93ZWJWaWV3
OworfQorLSAoaWQpaW5pdFdpdGhIaWdobGlnaHRWaWV3OihXZWJOb2RlSGlnaGxpZ2h0VmlldyAq
KXZpZXcgd2ViVmlldzooV2ViVmlldyAqKXdlYlZpZXc7CitAZW5kCisjZW5kaWYKKwogQGludGVy
ZmFjZSBXZWJOb2RlSGlnaGxpZ2h0IDogTlNPYmplY3QgewogICAgIE5TVmlldyAqX3RhcmdldFZp
ZXc7CisjaWYgIVBMQVRGT1JNKElPUykKICAgICBOU1dpbmRvdyAqX2hpZ2hsaWdodFdpbmRvdzsK
KyNlbHNlCisgICAgV2ViSGlnaGxpZ2h0TGF5ZXIgKl9oaWdobGlnaHRMYXllcjsKKyNlbmRpZgog
ICAgIFdlYk5vZGVIaWdobGlnaHRWaWV3ICpfaGlnaGxpZ2h0VmlldzsKICAgICBXZWJDb3JlOjpJ
bnNwZWN0b3JDb250cm9sbGVyKiBfaW5zcGVjdG9yQ29udHJvbGxlcjsKICAgICBpZCBfZGVsZWdh
dGU7CkBAIC01Miw3ICs3NCwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIC0gKFdlYkNvcmU6
Okluc3BlY3RvckNvbnRyb2xsZXIqKWluc3BlY3RvckNvbnRyb2xsZXI7CiAKKyNpZiAhUExBVEZP
Uk0oSU9TKQogLSAodm9pZClzZXROZWVkc1VwZGF0ZUluVGFyZ2V0Vmlld1JlY3Q6KE5TUmVjdCly
ZWN0OworI2Vsc2UKKy0gKHZvaWQpc2V0TmVlZHNEaXNwbGF5OworI2VuZGlmCiBAZW5kCiAKIEBp
bnRlcmZhY2UgTlNPYmplY3QgKFdlYk5vZGVIaWdobGlnaHREZWxlZ2F0ZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYkluc3BlY3Rvci9XZWJOb2RlSGlnaGxpZ2h0Lm1tIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdobGlnaHQubW0KaW5kZXggMjE3
NGIwMy4uYWVlOTU2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViSW5zcGVjdG9y
L1dlYk5vZGVIaWdobGlnaHQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViSW5zcGVjdG9y
L1dlYk5vZGVIaWdobGlnaHQubW0KQEAgLTMzLDEyICszMyw1MSBAQAogI2ltcG9ydCA8V2ViQ29y
ZS9JbnNwZWN0b3JDb250cm9sbGVyLmg+CiAjaW1wb3J0IDx3dGYvQXNzZXJ0aW9ucy5oPgogCisj
aWYgUExBVEZPUk0oSU9TKQorI2ltcG9ydCAiV2ViRnJhbWVQcml2YXRlLmgiCisjaW1wb3J0ICJX
ZWJIVE1MVmlldy5oIgorI2ltcG9ydCAiV2ViVmlldy5oIgorI2ltcG9ydCA8UXVhcnR6Q29yZS9D
QUxheWVyUHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9XQUtXaW5kb3cuaD4KKyNlbmRpZgor
CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAorI2lmICFQTEFURk9STShJT1MpCiBAaW50ZXJm
YWNlIFdlYk5vZGVIaWdobGlnaHQgKEZpbGVJbnRlcm5hbCkKIC0gKE5TUmVjdClfY29tcHV0ZUhp
Z2hsaWdodFdpbmRvd0ZyYW1lOwogLSAodm9pZClfcmVwb3NpdGlvbkhpZ2hsaWdodFdpbmRvdzsK
IEBlbmQKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oSU9TKQorQGltcGxlbWVudGF0aW9uIFdlYkhp
Z2hsaWdodExheWVyCisKKy0gKGlkKWluaXRXaXRoSGlnaGxpZ2h0VmlldzooV2ViTm9kZUhpZ2hs
aWdodFZpZXcgKil2aWV3IHdlYlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3Cit7CisgICAgc2VsZiA9
IFtzdXBlciBpbml0XTsKKyAgICBpZiAoIXNlbGYpCisgICAgICAgIHJldHVybiBuaWw7CisgICAg
X3ZpZXcgPSB2aWV3OworICAgIF93ZWJWaWV3ID0gd2ViVmlldzsKKyAgICByZXR1cm4gc2VsZjsK
K30KKworLSAodm9pZClsYXlvdXRTdWJsYXllcnMKK3sKKyAgICBDR0Zsb2F0IGRvY3VtZW50U2Nh
bGUgPSBbW1tfd2ViVmlldyBtYWluRnJhbWVdIGRvY3VtZW50Vmlld10gc2NhbGVdOworICAgIFtz
ZWxmIHNldFRyYW5zZm9ybTpDQVRyYW5zZm9ybTNETWFrZVNjYWxlKGRvY3VtZW50U2NhbGUsIGRv
Y3VtZW50U2NhbGUsIDEuMCldOworCisgICAgW192aWV3IGxheW91dFN1YmxheWVyczpzZWxmXTsK
K30KKworLSAoaWQ8Q0FBY3Rpb24+KWFjdGlvbkZvcktleTooTlNTdHJpbmcgKilrZXkKK3sKKyAg
ICByZXR1cm4gbmlsOyAvLyBEaXNhYmxlIGFsbCBkZWZhdWx0IGFjdGlvbnMuCit9CisKK0BlbmQK
KyNlbmRpZgogCiBAaW1wbGVtZW50YXRpb24gV2ViTm9kZUhpZ2hsaWdodAogCkBAIC01MSw2ICs5
MCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogICAgIF90YXJnZXRWaWV3ID0gW3Rhcmdl
dFZpZXcgcmV0YWluXTsKICAgICBfaW5zcGVjdG9yQ29udHJvbGxlciA9IGluc3BlY3RvckNvbnRy
b2xsZXI7CiAKKyNpZiAhUExBVEZPUk0oSU9TKQogICAgIGludCBzdHlsZU1hc2sgPSBOU0JvcmRl
cmxlc3NXaW5kb3dNYXNrOwogICAgIE5TUmVjdCBjb250ZW50UmVjdCA9IFtOU1dpbmRvdyBjb250
ZW50UmVjdEZvckZyYW1lUmVjdDpbc2VsZiBfY29tcHV0ZUhpZ2hsaWdodFdpbmRvd0ZyYW1lXSBz
dHlsZU1hc2s6c3R5bGVNYXNrXTsKICAgICBfaGlnaGxpZ2h0V2luZG93ID0gW1tOU1dpbmRvdyBh
bGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpjb250ZW50UmVjdCBzdHlsZU1hc2s6c3R5bGVNYXNr
IGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT107CkBAIC02MiwxMyArMTAy
LDI2IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogICAgIF9oaWdobGlnaHRWaWV3ID0gW1tX
ZWJOb2RlSGlnaGxpZ2h0VmlldyBhbGxvY10gaW5pdFdpdGhXZWJOb2RlSGlnaGxpZ2h0OnNlbGZd
OwogICAgIFtfaGlnaGxpZ2h0V2luZG93IHNldENvbnRlbnRWaWV3Ol9oaWdobGlnaHRWaWV3XTsK
ICAgICBbX2hpZ2hsaWdodFZpZXcgcmVsZWFzZV07CisjZWxzZQorICAgIEFTU0VSVChbX3Rhcmdl
dFZpZXcgaXNLaW5kT2ZDbGFzczpbV2ViVmlldyBjbGFzc11dKTsKKyAgICBXZWJWaWV3ICp3ZWJW
aWV3ID0gKFdlYlZpZXcgKil0YXJnZXRWaWV3OworCisgICAgX2hpZ2hsaWdodFZpZXcgPSBbW1dl
Yk5vZGVIaWdobGlnaHRWaWV3IGFsbG9jXSBpbml0V2l0aFdlYk5vZGVIaWdobGlnaHQ6c2VsZl07
CisgICAgX2hpZ2hsaWdodExheWVyID0gW1tXZWJIaWdobGlnaHRMYXllciBhbGxvY10gaW5pdFdp
dGhIaWdobGlnaHRWaWV3Ol9oaWdobGlnaHRWaWV3IHdlYlZpZXc6d2ViVmlld107CisgICAgW19o
aWdobGlnaHRMYXllciBzZXRDb250ZW50c1NjYWxlOltbX3RhcmdldFZpZXcgd2luZG93XSBzY3Jl
ZW5TY2FsZV1dOyAvLyBIaURQSS4KKyAgICBbX2hpZ2hsaWdodExheWVyIHNldENhbkRyYXdDb25j
dXJyZW50bHk6Tk9dOworI2VuZGlmCiAKICAgICByZXR1cm4gc2VsZjsKIH0KIAogLSAodm9pZClk
ZWFsbG9jCiB7CisjaWYgIVBMQVRGT1JNKElPUykKICAgICBBU1NFUlQoIV9oaWdobGlnaHRXaW5k
b3cpOworI2Vsc2UKKyAgICBBU1NFUlQoIV9oaWdobGlnaHRMYXllcik7CisjZW5kaWYKICAgICBB
U1NFUlQoIV90YXJnZXRWaWV3KTsKICAgICBBU1NFUlQoIV9oaWdobGlnaHRWaWV3KTsKIApAQCAt
NzksNiArMTMyLDggQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB7CiAgICAgQVNTRVJUKF90
YXJnZXRWaWV3KTsKICAgICBBU1NFUlQoW190YXJnZXRWaWV3IHdpbmRvd10pOworCisjaWYgIVBM
QVRGT1JNKElPUykKICAgICBBU1NFUlQoX2hpZ2hsaWdodFdpbmRvdyk7CiAKICAgICBpZiAoIV9o
aWdobGlnaHRXaW5kb3cgfHwgIV90YXJnZXRWaWV3IHx8ICFbX3RhcmdldFZpZXcgd2luZG93XSkK
QEAgLTk1LDYgKzE1MCwxMyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKICAgICAgICAgW25v
dGlmaWNhdGlvbkNlbnRlciBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihfcmVw
b3NpdGlvbkhpZ2hsaWdodFdpbmRvdykgbmFtZTpOU1ZpZXdGcmFtZURpZENoYW5nZU5vdGlmaWNh
dGlvbiBvYmplY3Q6dl07CiAgICAgICAgIFtub3RpZmljYXRpb25DZW50ZXIgYWRkT2JzZXJ2ZXI6
c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX3JlcG9zaXRpb25IaWdobGlnaHRXaW5kb3cpIG5hbWU6
TlNWaWV3Qm91bmRzRGlkQ2hhbmdlTm90aWZpY2F0aW9uIG9iamVjdDp2XTsKICAgICB9CisjZWxz
ZQorICAgIEFTU0VSVChfaGlnaGxpZ2h0TGF5ZXIpOworCisgICAgV0FLV2luZG93ICp3aW5kb3cg
PSBbX3RhcmdldFZpZXcgd2luZG93XTsKKyAgICBbW3dpbmRvdyBob3N0TGF5ZXJdIGFkZFN1Ymxh
eWVyOl9oaWdobGlnaHRMYXllcl07CisgICAgW3NlbGYgc2V0TmVlZHNEaXNwbGF5XTsKKyNlbmRp
ZgogCiAgICAgaWYgKF9kZWxlZ2F0ZSAmJiBbX2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpA
c2VsZWN0b3IoZGlkQXR0YWNoV2ViTm9kZUhpZ2hsaWdodDopXSkKICAgICAgICAgW19kZWxlZ2F0
ZSBkaWRBdHRhY2hXZWJOb2RlSGlnaGxpZ2h0OnNlbGZdOwpAQCAtMTA3LDcgKzE2OSwxMSBAQCB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogLSAodm9pZClkZXRhY2gKIHsKKyNpZiAhUExBVEZP
Uk0oSU9TKQogICAgIGlmICghX2hpZ2hsaWdodFdpbmRvdykgeworI2Vsc2UKKyAgICBpZiAoIV9o
aWdobGlnaHRMYXllcikgeworI2VuZGlmCiAgICAgICAgIEFTU0VSVCghX3RhcmdldFZpZXcpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTE1LDYgKzE4MSw3IEBAIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogICAgIGlmIChfZGVsZWdhdGUgJiYgW19kZWxlZ2F0ZSByZXNwb25kc1RvU2Vs
ZWN0b3I6QHNlbGVjdG9yKHdpbGxEZXRhY2hXZWJOb2RlSGlnaGxpZ2h0OildKQogICAgICAgICBb
X2RlbGVnYXRlIHdpbGxEZXRhY2hXZWJOb2RlSGlnaGxpZ2h0OnNlbGZdOwogCisjaWYgIVBMQVRG
T1JNKElPUykKICAgICBOU05vdGlmaWNhdGlvbkNlbnRlciAqbm90aWZpY2F0aW9uQ2VudGVyID0g
W05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdOwogICAgIFtub3RpZmljYXRpb25D
ZW50ZXIgcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBuYW1lOk5TVmlld0ZyYW1lRGlkQ2hhbmdlTm90aWZp
Y2F0aW9uIG9iamVjdDpuaWxdOwogICAgIFtub3RpZmljYXRpb25DZW50ZXIgcmVtb3ZlT2JzZXJ2
ZXI6c2VsZiBuYW1lOk5TVmlld0JvdW5kc0RpZENoYW5nZU5vdGlmaWNhdGlvbiBvYmplY3Q6bmls
XTsKQEAgLTEyMyw2ICsxOTAsMTEgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKICAgICBb
X2hpZ2hsaWdodFdpbmRvdyByZWxlYXNlXTsKICAgICBfaGlnaGxpZ2h0V2luZG93ID0gbmlsOwor
I2Vsc2UKKyAgICBbX2hpZ2hsaWdodExheWVyIHJlbW92ZUZyb21TdXBlcmxheWVyXTsKKyAgICBb
X2hpZ2hsaWdodExheWVyIHJlbGVhc2VdOworICAgIF9oaWdobGlnaHRMYXllciA9IG5pbDsKKyNl
bmRpZgogCiAgICAgW190YXJnZXRWaWV3IHJlbGVhc2VdOwogICAgIF90YXJnZXRWaWV3ID0gbmls
OwpAQCAtMTMwLDYgKzIwMiwxMCBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKICAgICAvLyBX
ZSBkaWRuJ3QgcmV0YWluIF9oaWdobGlnaHRWaWV3LCBidXQgd2UgZG8gbmVlZCB0byB0ZWxsIGl0
IHRvIGZvcmdldCBhYm91dCB1cywgc28gaXQgZG9lc24ndAogICAgIC8vIHRyeSB0byBzZW5kIG91
ciBkZWxlZ2F0ZSBtZXNzYWdlcyBhZnRlciB3ZSd2ZSBiZWVuIGRlYWxsb2MnZWQsIGUuZy4KICAg
ICBbX2hpZ2hsaWdodFZpZXcgZGV0YWNoRnJvbVdlYk5vZGVIaWdobGlnaHRdOworI2lmIFBMQVRG
T1JNKElPUykKKyAgICAvLyBpT1MgZGlkIHJldGFpbiB0aGUgaGlnaGxpZ2h0VmlldywgYW5kIHdl
IHNob3VsZCByZWxlYXNlIGl0IGhlcmUuCisgICAgW19oaWdobGlnaHRWaWV3IHJlbGVhc2VdOwor
I2VuZGlmCiAgICAgX2hpZ2hsaWdodFZpZXcgPSBuaWw7CiB9CiAKQEAgLTE0NCw2ICsyMjAsNyBA
QCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKICAgICBfZGVsZWdhdGUgPSBkZWxlZ2F0ZTsKIH0K
IAorI2lmICFQTEFURk9STShJT1MpCiAtICh2b2lkKXNldE5lZWRzVXBkYXRlSW5UYXJnZXRWaWV3
UmVjdDooTlNSZWN0KXJlY3QKIHsKICAgICBBU1NFUlQoX3RhcmdldFZpZXcpOwpAQCAtMTU4LDYg
KzIzNSwxNCBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKICAgICAvLyBUaGlzIGlzIGVzcGVj
aWFsbHkgdmlzaWJsZSB3aGVuIHJlc2l6aW5nIHRoZSB3aW5kb3csIHNjcm9sbGluZyBvciB3aXRo
IERIVE1MLgogICAgIFtfaGlnaGxpZ2h0VmlldyBkaXNwbGF5SWZOZWVkZWRdOwogfQorI2Vsc2UK
Ky0gKHZvaWQpc2V0TmVlZHNEaXNwbGF5Cit7CisgICAgW19oaWdobGlnaHRMYXllciBzZXROZWVk
c0xheW91dF07CisgICAgW19oaWdobGlnaHRMYXllciBzZXROZWVkc0Rpc3BsYXldOworICAgIFtf
aGlnaGxpZ2h0TGF5ZXIgZGlzcGxheUlmTmVlZGVkXTsKK30KKyNlbmRpZgogCiAtIChOU1ZpZXcg
Kil0YXJnZXRWaWV3CiB7CkBAIC0xNzEsNiArMjU2LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAKIEBlbmQKIAorI2lmICFQTEFURk9STShJT1MpCiBAaW1wbGVtZW50YXRpb24gV2ViTm9k
ZUhpZ2hsaWdodCAoRmlsZUludGVybmFsKQogCiAtIChOU1JlY3QpX2NvbXB1dGVIaWdobGlnaHRX
aW5kb3dGcmFtZQpAQCAtMjA1LDMgKzI5MSw0IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
fQogCiBAZW5kCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkluc3Bl
Y3Rvci9XZWJOb2RlSGlnaGxpZ2h0Vmlldy5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViSW5zcGVj
dG9yL1dlYk5vZGVIaWdobGlnaHRWaWV3LmgKaW5kZXggY2IzMTdiOC4uYzRkYTA3OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdobGlnaHRWaWV3
LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdobGlnaHRW
aWV3LmgKQEAgLTI2LDEzICsyNiwyNiBAQAogICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCisjaWYgUExBVEZP
Uk0oSU9TKQorI2ltcG9ydCA8UXVhcnR6Q29yZS9DQVNoYXBlTGF5ZXIuaD4KKyNpbXBvcnQgPFdl
YktpdC9XQUtBcHBLaXRTdHVicy5oPgorI2ltcG9ydCA8V2ViS2l0L1dBS1ZpZXcuaD4KKyNlbmRp
ZgorCiBAY2xhc3MgV2ViTm9kZUhpZ2hsaWdodDsKIAogQGludGVyZmFjZSBXZWJOb2RlSGlnaGxp
Z2h0VmlldyA6IE5TVmlldyB7CiAgICAgV2ViTm9kZUhpZ2hsaWdodCAqX3dlYk5vZGVIaWdobGln
aHQ7CisjaWYgUExBVEZPUk0oSU9TKQorICAgIE5TTXV0YWJsZUFycmF5ICpfbGF5ZXJzOyAvLyBD
QVNoYXBlTGF5ZXJzLgorI2VuZGlmCiB9CiAtIChpZClpbml0V2l0aFdlYk5vZGVIaWdobGlnaHQ6
KFdlYk5vZGVIaWdobGlnaHQgKil3ZWJOb2RlSGlnaGxpZ2h0OwogCiAtIChXZWJOb2RlSGlnaGxp
Z2h0ICopd2ViTm9kZUhpZ2hsaWdodDsKIC0gKHZvaWQpZGV0YWNoRnJvbVdlYk5vZGVIaWdobGln
aHQ7CisKKyNpZiBQTEFURk9STShJT1MpCistICh2b2lkKWxheW91dFN1YmxheWVyczooQ0FMYXll
ciAqKXBhcmVudExheWVyOworI2VuZGlmCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodFZpZXcubW0KaW5kZXggZGQzNjNjNi4u
NGY3M2UzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViSW5zcGVjdG9yL1dlYk5v
ZGVIaWdobGlnaHRWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkluc3BlY3Rvci9X
ZWJOb2RlSGlnaGxpZ2h0Vmlldy5tbQpAQCAtMzMsMTAgKzMzLDI1IEBACiAjaW1wb3J0IDxXZWJD
b3JlL0luc3BlY3RvckNvbnRyb2xsZXIuaD4KICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CiAK
KyNpZiBQTEFURk9STShJT1MpCisjaW1wb3J0IDxDb3JlR3JhcGhpY3MvQ29yZUdyYXBoaWNzLmg+
CisjaW1wb3J0IDxXZWJDb3JlL0luc3BlY3Rvck92ZXJsYXkuaD4KKyNpbXBvcnQgPFdlYkNvcmUv
V2ViQ29yZVRocmVhZC5oPgorI2VuZGlmCisKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBA
aW1wbGVtZW50YXRpb24gV2ViTm9kZUhpZ2hsaWdodFZpZXcKIAorI2lmIFBMQVRGT1JNKElPUykK
Ky0gKHZvaWQpX3JlbW92ZUFsbExheWVycworeworICAgIGZvciAoQ0FTaGFwZUxheWVyICpsYXll
ciBpbiBfbGF5ZXJzKQorICAgICAgICBbbGF5ZXIgcmVtb3ZlRnJvbVN1cGVybGF5ZXJdOworICAg
IFtfbGF5ZXJzIHJlbW92ZUFsbE9iamVjdHNdOworfQorI2VuZGlmCisKIC0gKGlkKWluaXRXaXRo
V2ViTm9kZUhpZ2hsaWdodDooV2ViTm9kZUhpZ2hsaWdodCAqKXdlYk5vZGVIaWdobGlnaHQKIHsK
ICAgICBzZWxmID0gW3NlbGYgaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0XTsKQEAgLTQ1LDEyICs2
MCwyMCBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogICAgIF93ZWJOb2RlSGlnaGxpZ2h0
ID0gW3dlYk5vZGVIaWdobGlnaHQgcmV0YWluXTsKIAorI2lmIFBMQVRGT1JNKElPUykKKyAgICBf
bGF5ZXJzID0gW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdF07CisjZW5kaWYKKwogICAgIHJl
dHVybiBzZWxmOwogfQogCiAtICh2b2lkKWRlYWxsb2MKIHsKICAgICBbc2VsZiBkZXRhY2hGcm9t
V2ViTm9kZUhpZ2hsaWdodF07CisjaWYgUExBVEZPUk0oSU9TKQorICAgIFtzZWxmIF9yZW1vdmVB
bGxMYXllcnNdOworICAgIFtfbGF5ZXJzIHJlbGVhc2VdOworI2VuZGlmCiAgICAgW3N1cGVyIGRl
YWxsb2NdOwogfQogCkBAIC02NSw2ICs4OCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
ICAgIHJldHVybiBZRVM7CiB9CiAKKyNpZiAhUExBVEZPUk0oSU9TKQogLSAodm9pZClkcmF3UmVj
dDooTlNSZWN0KXJlY3QgCiB7CiAgICAgaWYgKF93ZWJOb2RlSGlnaGxpZ2h0KSB7CkBAIC03Nyw2
ICsxMDEsMjI2IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogICAgICAgICBbTlNHcmFwaGlj
c0NvbnRleHQgcmVzdG9yZUdyYXBoaWNzU3RhdGVdOwogICAgIH0KIH0KKyNlbHNlCistICh2b2lk
KV9hdHRhY2g6KENBTGF5ZXIgKilwYXJlbnQgbnVtTGF5ZXJzOihOU1VJbnRlZ2VyKW51bUxheWVy
cworeworICAgIEFTU0VSVChudW1MYXllcnMpOworCisgICAgLy8gV2UgaGF2ZSB0aGUgcmlnaHQg
bGF5ZXJzIGFuZCB0aGV5IGFyZSBhbGwgcGFyZW50ZWQgY29ycmVjdGx5LgorICAgIGlmIChbX2xh
eWVycyBjb3VudF0gPT0gbnVtTGF5ZXJzICYmIFtbX2xheWVycyBvYmplY3RBdEluZGV4OjBdIHN1
cGVybGF5ZXJdID09IHBhcmVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gUmVtb3ZlIGFu
ZCBjcmVhdGUgbmV3IGxheWVycy4KKyAgICBbc2VsZiBfcmVtb3ZlQWxsTGF5ZXJzXTsKKyAgICBm
b3IgKE5TVUludGVnZXIgaSA9IDA7IGkgPCBudW1MYXllcnM7ICsraSkgeworICAgICAgICBDQVNo
YXBlTGF5ZXIgKmxheWVyID0gW1tDQVNoYXBlTGF5ZXIgYWxsb2NdIGluaXRdOworICAgICAgICBb
X2xheWVycyBhZGRPYmplY3Q6bGF5ZXJdOworICAgICAgICBbcGFyZW50IGFkZFN1YmxheWVyOmxh
eWVyXTsKKyAgICAgICAgW2xheWVyIHJlbGVhc2VdOworICAgIH0KK30KKworc3RhdGljIGJvb2wg
ZmluZEludGVyc2VjdGlvbk9uTGluZUJldHdlZW5Qb2ludHMoY29uc3QgRmxvYXRQb2ludCYgcDEs
IGNvbnN0IEZsb2F0UG9pbnQmIHAyLCBjb25zdCBGbG9hdFBvaW50JiBkMSwgY29uc3QgRmxvYXRQ
b2ludCYgZDIsIEZsb2F0UG9pbnQmIGludGVyc2VjdGlvbikgCit7CisgICAgLy8gRG8gdGhlIGxp
bmVzIGludGVyc2VjdD8KKyAgICBGbG9hdFBvaW50IHRlbXBvcmFyeUludGVyc2VjdGlvblBvaW50
OworICAgIGlmICghZmluZEludGVyc2VjdGlvbihwMSwgcDIsIGQxLCBkMiwgdGVtcG9yYXJ5SW50
ZXJzZWN0aW9uUG9pbnQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBJcyB0aGUg
aW50ZXJzZWN0aW9uIGJldHdlZW4gdGhlIHR3byBwb2ludHMgb24gdGhlIGxpbmU/CisgICAgaWYg
KHAxLngoKSA+PSBwMi54KCkpIHsKKyAgICAgICAgaWYgKHRlbXBvcmFyeUludGVyc2VjdGlvblBv
aW50LngoKSA+IHAxLngoKSB8fCB0ZW1wb3JhcnlJbnRlcnNlY3Rpb25Qb2ludC54KCkgPCBwMi54
KCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYg
KHRlbXBvcmFyeUludGVyc2VjdGlvblBvaW50LngoKSA+IHAyLngoKSB8fCB0ZW1wb3JhcnlJbnRl
cnNlY3Rpb25Qb2ludC54KCkgPCBwMS54KCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgfQorICAgIGlmIChwMS55KCkgPj0gcDIueSgpKSB7CisgICAgICAgIGlmICh0ZW1wb3JhcnlJ
bnRlcnNlY3Rpb25Qb2ludC55KCkgPiBwMS55KCkgfHwgdGVtcG9yYXJ5SW50ZXJzZWN0aW9uUG9p
bnQueSgpIDwgcDIueSgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0gZWxzZSB7
CisgICAgICAgIGlmICh0ZW1wb3JhcnlJbnRlcnNlY3Rpb25Qb2ludC55KCkgPiBwMi55KCkgfHwg
dGVtcG9yYXJ5SW50ZXJzZWN0aW9uUG9pbnQueSgpIDwgcDEueSgpKQorICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIH0KKworICAgIGludGVyc2VjdGlvbiA9IHRlbXBvcmFyeUludGVyc2Vj
dGlvblBvaW50OworICAgIHJldHVybiB0cnVlOworfQorCisvLyBUaGlzIHF1YWQgaW50ZXJzZWN0
aW9uIHdvcmtzIGJlY2F1c2UgdGhlIHR3byBxdWFkcyBhcmUga25vd24gdG8gYmUgYXQgdGhlIHNh
bWUKKy8vIHJvdGF0aW9uIGFuZCBjbG9ja3dpc2UtbmVzcy4KK3N0YXRpYyBGbG9hdFF1YWQgcXVh
ZEludGVyc2VjdGlvbihGbG9hdFF1YWQgYm91bmRzLCBGbG9hdFF1YWQgdG9DbGFtcCkKK3sKKyAg
ICAvLyBSZXN1bHRpbmcgcG9pbnRzLgorICAgIEZsb2F0UG9pbnQgcDEsIHAyLCBwMywgcDQ7Cisg
ICAgYm9vbCBjb250YWluc1BvaW50MSA9IGZhbHNlOworICAgIGJvb2wgY29udGFpbnNQb2ludDIg
PSBmYWxzZTsKKyAgICBib29sIGNvbnRhaW5zUG9pbnQzID0gZmFsc2U7CisgICAgYm9vbCBjb250
YWluc1BvaW50NCA9IGZhbHNlOworICAgIGJvb2wgaW50ZXJzZWN0Rm9yUG9pbnQxID0gZmFsc2U7
CisgICAgYm9vbCBpbnRlcnNlY3RGb3JQb2ludDIgPSBmYWxzZTsKKyAgICBib29sIGludGVyc2Vj
dEZvclBvaW50MyA9IGZhbHNlOworICAgIGJvb2wgaW50ZXJzZWN0Rm9yUG9pbnQ0ID0gZmFsc2U7
CisKKyAgICAvLyBUb3AgLyBib3R0b20gdmVydGljYWwgY2xhbXBpbmcuCisgICAgaWYgKGJvdW5k
cy5jb250YWluc1BvaW50KHRvQ2xhbXAucDEoKSkpIHsKKyAgICAgICAgY29udGFpbnNQb2ludDEg
PSB0cnVlOworICAgICAgICBwMSA9IHRvQ2xhbXAucDEoKTsKKyAgICB9IGVsc2UgaWYgKCEoaW50
ZXJzZWN0Rm9yUG9pbnQxID0gZmluZEludGVyc2VjdGlvbk9uTGluZUJldHdlZW5Qb2ludHMoYm91
bmRzLnAxKCksIGJvdW5kcy5wMigpLCB0b0NsYW1wLnAxKCksIHRvQ2xhbXAucDQoKSwgcDEpKSkK
KyAgICAgICAgcDEgPSB0b0NsYW1wLnAxKCk7CisKKyAgICBpZiAoYm91bmRzLmNvbnRhaW5zUG9p
bnQodG9DbGFtcC5wMigpKSkgeworICAgICAgICBjb250YWluc1BvaW50MiA9IHRydWU7CisgICAg
ICAgIHAyID0gdG9DbGFtcC5wMigpOworICAgIH0gZWxzZSBpZiAoIShpbnRlcnNlY3RGb3JQb2lu
dDIgPSBmaW5kSW50ZXJzZWN0aW9uT25MaW5lQmV0d2VlblBvaW50cyhib3VuZHMucDEoKSwgYm91
bmRzLnAyKCksIHRvQ2xhbXAucDIoKSwgdG9DbGFtcC5wMygpLCBwMikpKQorICAgICAgICBwMiA9
IHRvQ2xhbXAucDIoKTsKKworICAgIGlmIChib3VuZHMuY29udGFpbnNQb2ludCh0b0NsYW1wLnAz
KCkpKSB7CisgICAgICAgIGNvbnRhaW5zUG9pbnQzID0gdHJ1ZTsKKyAgICAgICAgcDMgPSB0b0Ns
YW1wLnAzKCk7CisgICAgfSBlbHNlIGlmICghKGludGVyc2VjdEZvclBvaW50MyA9IGZpbmRJbnRl
cnNlY3Rpb25PbkxpbmVCZXR3ZWVuUG9pbnRzKGJvdW5kcy5wNCgpLCBib3VuZHMucDMoKSwgdG9D
bGFtcC5wMigpLCB0b0NsYW1wLnAzKCksIHAzKSkpCisgICAgICAgIHAzID0gdG9DbGFtcC5wMygp
OworCisgICAgaWYgKGJvdW5kcy5jb250YWluc1BvaW50KHRvQ2xhbXAucDQoKSkpIHsKKyAgICAg
ICAgY29udGFpbnNQb2ludDQgPSB0cnVlOworICAgICAgICBwNCA9IHRvQ2xhbXAucDQoKTsKKyAg
ICB9IGVsc2UgaWYgKCEoaW50ZXJzZWN0Rm9yUG9pbnQ0ID0gZmluZEludGVyc2VjdGlvbk9uTGlu
ZUJldHdlZW5Qb2ludHMoYm91bmRzLnA0KCksIGJvdW5kcy5wMygpLCB0b0NsYW1wLnAxKCksIHRv
Q2xhbXAucDQoKSwgcDQpKSkKKyAgICAgICAgcDQgPSB0b0NsYW1wLnA0KCk7CisKKyAgICAvLyBJ
ZiBvbmx5IG9uZSBvZiB0aGUgcG9pbnRzIGludGVyc2VjdGVkIG9uIGVpdGhlciB0aGUgdG9wIG9y
IGJvdHRvbSBsaW5lIHRoZW4gd2UKKyAgICAvLyBjYW4gY2xhbXAgdGhlIG90aGVyIHBvaW50IG9u
IHRoYXQgbGluZSB0byB0aGUgY29ybmVyIG9mIHRoZSBib3VuZHMuCisgICAgaWYgKCFjb250YWlu
c1BvaW50MSAmJiBpbnRlcnNlY3RGb3JQb2ludDIgJiYgIWludGVyc2VjdEZvclBvaW50MSkgewor
ICAgICAgICBjb250YWluc1BvaW50MSA9IHRydWU7CisgICAgICAgIHAxID0gYm91bmRzLnAxKCk7
CisgICAgfSBlbHNlIGlmICghY29udGFpbnNQb2ludDIgJiYgaW50ZXJzZWN0Rm9yUG9pbnQxICYm
ICFpbnRlcnNlY3RGb3JQb2ludDIpIHsKKyAgICAgICAgY29udGFpbnNQb2ludDIgPSB0cnVlOwor
ICAgICAgICBwMiA9IGJvdW5kcy5wMigpOworICAgIH0KKyAgICBpZiAoIWNvbnRhaW5zUG9pbnQ0
ICYmIGludGVyc2VjdEZvclBvaW50MyAmJiAhaW50ZXJzZWN0Rm9yUG9pbnQ0KSB7CisgICAgICAg
IGNvbnRhaW5zUG9pbnQ0ID0gdHJ1ZTsKKyAgICAgICAgcDQgPSBib3VuZHMucDQoKTsKKyAgICB9
IGVsc2UgaWYgKCFjb250YWluc1BvaW50MyAmJiBpbnRlcnNlY3RGb3JQb2ludDQgJiYgIWludGVy
c2VjdEZvclBvaW50MykgeworICAgICAgICBjb250YWluc1BvaW50MyA9IHRydWU7CisgICAgICAg
IHAzID0gYm91bmRzLnAzKCk7CisgICAgfQorCisgICAgLy8gTm93IHdlIG9ubHkgbmVlZCB0byBw
ZXJmb3JtIGhvcml6b250YWwgY2xhbXBpbmcgZm9yIHVuYWRqdXN0ZWQgcG9pbnRzLgorICAgIGlm
ICghY29udGFpbnNQb2ludDIgJiYgIWludGVyc2VjdEZvclBvaW50MikKKyAgICAgICAgZmluZElu
dGVyc2VjdGlvbk9uTGluZUJldHdlZW5Qb2ludHMoYm91bmRzLnAyKCksIGJvdW5kcy5wMygpLCBw
MSwgcDIsIHAyKTsKKyAgICBpZiAoIWNvbnRhaW5zUG9pbnQzICYmICFpbnRlcnNlY3RGb3JQb2lu
dDMpCisgICAgICAgIGZpbmRJbnRlcnNlY3Rpb25PbkxpbmVCZXR3ZWVuUG9pbnRzKGJvdW5kcy5w
MigpLCBib3VuZHMucDMoKSwgcDQsIHAzLCBwMyk7CisgICAgaWYgKCFjb250YWluc1BvaW50MSAm
JiAhaW50ZXJzZWN0Rm9yUG9pbnQxKQorICAgICAgICBmaW5kSW50ZXJzZWN0aW9uT25MaW5lQmV0
d2VlblBvaW50cyhib3VuZHMucDEoKSwgYm91bmRzLnA0KCksIHAxLCBwMiwgcDEpOworICAgIGlm
ICghY29udGFpbnNQb2ludDQgJiYgIWludGVyc2VjdEZvclBvaW50NCkKKyAgICAgICAgZmluZElu
dGVyc2VjdGlvbk9uTGluZUJldHdlZW5Qb2ludHMoYm91bmRzLnAxKCksIGJvdW5kcy5wNCgpLCBw
NCwgcDMsIHA0KTsKKworICAgIHJldHVybiBGbG9hdFF1YWQocDEsIHAyLCBwMywgcDQpOworfQor
CitzdGF0aWMgdm9pZCBsYXllclBhdGhXaXRoSG9sZShDQVNoYXBlTGF5ZXIgKmxheWVyLCBjb25z
dCBGbG9hdFF1YWQmIG91dGVyUXVhZCwgY29uc3QgRmxvYXRRdWFkJiBob2xlUXVhZCkKK3sKKyAg
ICAvLyBOb3RoaW5nIHRvIHNob3cuCisgICAgaWYgKG91dGVyUXVhZCA9PSBob2xlUXVhZCB8fCBo
b2xlUXVhZC5jb250YWluc1F1YWQob3V0ZXJRdWFkKSkgeworICAgICAgICBsYXllci5wYXRoID0g
TlVMTDsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIElmIHRoZXJlIGlzIGEgbmVn
YXRpdmUgbWFyZ2luIC8gcGFkZGluZyB0aGVuIHRoZSBvdXRlciBib3ggbWlnaHQgbm90CisgICAg
Ly8gZnVsbHkgY29udGFpbiB0aGUgaG9sZSBib3guIEluIHN1Y2ggY2FzZXMgd2UgcmVjYWxjdWxh
dGUgdGhlIGhvbGUgdG8KKyAgICAvLyBiZSB0aGUgaW50ZXJzZWN0aW9uIG9mIHRoZSB0d28gcXVh
ZHMuCisgICAgRmxvYXRRdWFkIGlubmVySG9sZTsKKyAgICBpZiAob3V0ZXJRdWFkLmNvbnRhaW5z
UXVhZChob2xlUXVhZCkpCisgICAgICAgIGlubmVySG9sZSA9IGhvbGVRdWFkOworICAgIGVsc2UK
KyAgICAgICAgaW5uZXJIb2xlID0gcXVhZEludGVyc2VjdGlvbihvdXRlclF1YWQsIGhvbGVRdWFk
KTsKKworICAgIC8vIENsb2Nrd2lzZSBpbnNpZGUgcmVjdCAoaG9sZSksIENvdW50ZXItQ2xvY2t3
aXNlIG91dHNpZGUgcmVjdCAoZmlsbCkuCisgICAgQ0dNdXRhYmxlUGF0aFJlZiBwYXRoID0gQ0dQ
YXRoQ3JlYXRlTXV0YWJsZSgpOworICAgIENHUGF0aE1vdmVUb1BvaW50KHBhdGgsIDAsIGlubmVy
SG9sZS5wMSgpLngoKSwgaW5uZXJIb2xlLnAxKCkueSgpKTsKKyAgICBDR1BhdGhBZGRMaW5lVG9Q
b2ludChwYXRoLCAwLCBpbm5lckhvbGUucDIoKS54KCksIGlubmVySG9sZS5wMigpLnkoKSk7Cisg
ICAgQ0dQYXRoQWRkTGluZVRvUG9pbnQocGF0aCwgMCwgaW5uZXJIb2xlLnAzKCkueCgpLCBpbm5l
ckhvbGUucDMoKS55KCkpOworICAgIENHUGF0aEFkZExpbmVUb1BvaW50KHBhdGgsIDAsIGlubmVy
SG9sZS5wNCgpLngoKSwgaW5uZXJIb2xlLnA0KCkueSgpKTsKKyAgICBDR1BhdGhNb3ZlVG9Qb2lu
dChwYXRoLCAwLCBvdXRlclF1YWQucDEoKS54KCksIG91dGVyUXVhZC5wMSgpLnkoKSk7CisgICAg
Q0dQYXRoQWRkTGluZVRvUG9pbnQocGF0aCwgMCwgb3V0ZXJRdWFkLnA0KCkueCgpLCBvdXRlclF1
YWQucDQoKS55KCkpOworICAgIENHUGF0aEFkZExpbmVUb1BvaW50KHBhdGgsIDAsIG91dGVyUXVh
ZC5wMygpLngoKSwgb3V0ZXJRdWFkLnAzKCkueSgpKTsKKyAgICBDR1BhdGhBZGRMaW5lVG9Qb2lu
dChwYXRoLCAwLCBvdXRlclF1YWQucDIoKS54KCksIG91dGVyUXVhZC5wMigpLnkoKSk7CisgICAg
bGF5ZXIucGF0aCA9IHBhdGg7CisgICAgQ0dQYXRoUmVsZWFzZShwYXRoKTsKK30KKworc3RhdGlj
IHZvaWQgbGF5ZXJQYXRoKENBU2hhcGVMYXllciAqbGF5ZXIsIGNvbnN0IEZsb2F0UXVhZCYgb3V0
ZXJRdWFkKQoreworICAgIENHTXV0YWJsZVBhdGhSZWYgcGF0aCA9IENHUGF0aENyZWF0ZU11dGFi
bGUoKTsKKyAgICBDR1BhdGhNb3ZlVG9Qb2ludChwYXRoLCAwLCBvdXRlclF1YWQucDEoKS54KCks
IG91dGVyUXVhZC5wMSgpLnkoKSk7CisgICAgQ0dQYXRoQWRkTGluZVRvUG9pbnQocGF0aCwgMCwg
b3V0ZXJRdWFkLnA0KCkueCgpLCBvdXRlclF1YWQucDQoKS55KCkpOworICAgIENHUGF0aEFkZExp
bmVUb1BvaW50KHBhdGgsIDAsIG91dGVyUXVhZC5wMygpLngoKSwgb3V0ZXJRdWFkLnAzKCkueSgp
KTsKKyAgICBDR1BhdGhBZGRMaW5lVG9Qb2ludChwYXRoLCAwLCBvdXRlclF1YWQucDIoKS54KCks
IG91dGVyUXVhZC5wMigpLnkoKSk7CisgICAgbGF5ZXIucGF0aCA9IHBhdGg7CisgICAgQ0dQYXRo
UmVsZWFzZShwYXRoKTsKK30KKworLSAodm9pZClfbGF5b3V0Rm9yTm9kZUhpZ2hsaWdodDooSGln
aGxpZ2h0KiloIHBhcmVudDooQ0FMYXllciAqKXBhcmVudExheWVyCit7CisgICAgW3NlbGYgX2F0
dGFjaDpwYXJlbnRMYXllciBudW1MYXllcnM6NF07CisKKyAgICBDQVNoYXBlTGF5ZXIgKm1hcmdp
bkxheWVyID0gW19sYXllcnMgb2JqZWN0QXRJbmRleDowXTsKKyAgICBDQVNoYXBlTGF5ZXIgKmJv
cmRlckxheWVyID0gW19sYXllcnMgb2JqZWN0QXRJbmRleDoxXTsKKyAgICBDQVNoYXBlTGF5ZXIg
KnBhZGRpbmdMYXllciA9IFtfbGF5ZXJzIG9iamVjdEF0SW5kZXg6Ml07CisgICAgQ0FTaGFwZUxh
eWVyICpjb250ZW50TGF5ZXIgPSBbX2xheWVycyBvYmplY3RBdEluZGV4OjNdOworCisgICAgRmxv
YXRRdWFkIG1hcmdpblF1YWQgPSBoLT5xdWFkc1swXTsKKyAgICBGbG9hdFF1YWQgYm9yZGVyUXVh
ZCA9IGgtPnF1YWRzWzFdOworICAgIEZsb2F0UXVhZCBwYWRkaW5nUXVhZCA9IGgtPnF1YWRzWzJd
OworICAgIEZsb2F0UXVhZCBjb250ZW50UXVhZCA9IGgtPnF1YWRzWzNdOworCisgICAgbWFyZ2lu
TGF5ZXIuZmlsbENvbG9yID0gY2FjaGVkQ0dDb2xvcihoLT5tYXJnaW5Db2xvciwgQ29sb3JTcGFj
ZURldmljZVJHQik7CisgICAgYm9yZGVyTGF5ZXIuZmlsbENvbG9yID0gY2FjaGVkQ0dDb2xvciho
LT5ib3JkZXJDb2xvciwgQ29sb3JTcGFjZURldmljZVJHQik7CisgICAgcGFkZGluZ0xheWVyLmZp
bGxDb2xvciA9IGNhY2hlZENHQ29sb3IoaC0+cGFkZGluZ0NvbG9yLCBDb2xvclNwYWNlRGV2aWNl
UkdCKTsKKyAgICBjb250ZW50TGF5ZXIuZmlsbENvbG9yID0gY2FjaGVkQ0dDb2xvcihoLT5jb250
ZW50Q29sb3IsIENvbG9yU3BhY2VEZXZpY2VSR0IpOworCisgICAgbGF5ZXJQYXRoV2l0aEhvbGUo
bWFyZ2luTGF5ZXIsIG1hcmdpblF1YWQsIGJvcmRlclF1YWQpOworICAgIGxheWVyUGF0aFdpdGhI
b2xlKGJvcmRlckxheWVyLCBib3JkZXJRdWFkLCBwYWRkaW5nUXVhZCk7CisgICAgbGF5ZXJQYXRo
V2l0aEhvbGUocGFkZGluZ0xheWVyLCBwYWRkaW5nUXVhZCwgY29udGVudFF1YWQpOworICAgIGxh
eWVyUGF0aChjb250ZW50TGF5ZXIsIGNvbnRlbnRRdWFkKTsKK30KKworLSAodm9pZClfbGF5b3V0
Rm9yUmVjdHNIaWdobGlnaHQ6KEhpZ2hsaWdodCopaCBwYXJlbnQ6KENBTGF5ZXIgKilwYXJlbnRM
YXllcgoreworICAgIE5TVUludGVnZXIgbnVtTGF5ZXJzID0gKE5TVUludGVnZXIpaC0+cXVhZHMu
c2l6ZSgpOworICAgIGlmICghbnVtTGF5ZXJzKSB7CisgICAgICAgIFtzZWxmIF9yZW1vdmVBbGxM
YXllcnNdOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgW3NlbGYgX2F0dGFjaDpwYXJl
bnRMYXllciBudW1MYXllcnM6bnVtTGF5ZXJzXTsKKworICAgIENHQ29sb3JSZWYgY29udGVudENv
bG9yID0gY2FjaGVkQ0dDb2xvcihoLT5jb250ZW50Q29sb3IsIENvbG9yU3BhY2VEZXZpY2VSR0Ip
OworICAgIGZvciAoTlNVSW50ZWdlciBpID0gMDsgaSA8IG51bUxheWVyczsgKytpKSB7CisgICAg
ICAgIENBU2hhcGVMYXllciAqbGF5ZXIgPSBbX2xheWVycyBvYmplY3RBdEluZGV4OmldOworICAg
ICAgICBsYXllci5maWxsQ29sb3IgPSBjb250ZW50Q29sb3I7CisgICAgICAgIGxheWVyUGF0aChs
YXllciwgaC0+cXVhZHNbaV0pOworICAgIH0KK30KKworLSAodm9pZClsYXlvdXRTdWJsYXllcnM6
KENBTGF5ZXIgKilwYXJlbnRMYXllcgoreworICAgIGlmICghX3dlYk5vZGVIaWdobGlnaHQpCisg
ICAgICAgIHJldHVybjsKKworICAgIFdlYlRocmVhZExvY2soKTsKKworICAgIGlmICghW193ZWJO
b2RlSGlnaGxpZ2h0IGluc3BlY3RvckNvbnRyb2xsZXJdKQorICAgICAgICByZXR1cm47CisKKyAg
ICBIaWdobGlnaHQgaDsKKyAgICBbX3dlYk5vZGVIaWdobGlnaHQgaW5zcGVjdG9yQ29udHJvbGxl
cl0tPmdldEhpZ2hsaWdodCgmaCk7CisKKyAgICBpZiAoaC50eXBlID09IEhpZ2hsaWdodFR5cGVO
b2RlKQorICAgICAgICBbc2VsZiBfbGF5b3V0Rm9yTm9kZUhpZ2hsaWdodDomaCBwYXJlbnQ6cGFy
ZW50TGF5ZXJdOworICAgIGVsc2UgaWYgKGgudHlwZSA9PSBIaWdobGlnaHRUeXBlUmVjdHMpCisg
ICAgICAgIFtzZWxmIF9sYXlvdXRGb3JSZWN0c0hpZ2hsaWdodDomaCBwYXJlbnQ6cGFyZW50TGF5
ZXJdOworfQorI2VuZGlmCiAKIC0gKFdlYk5vZGVIaWdobGlnaHQgKil3ZWJOb2RlSGlnaGxpZ2h0
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJJbnNwZWN0b3IvV2ViTm9kZUhp
Z2hsaWdodGVyLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdo
bGlnaHRlci5tbQppbmRleCAxZDBkZjgzLi4yYmE1OWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodGVyLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYkluc3BlY3Rvci9XZWJOb2RlSGlnaGxpZ2h0ZXIubW0KQEAgLTU2LDggKzU2
LDEyIEBACiAKIC0gKHZvaWQpaGlnaGxpZ2h0CiB7CisjaWYgIVBMQVRGT1JNKElPUykKICAgICAv
LyBUaGUgc2Nyb2xsdmlldydzIGNvbnRlbnQgdmlldyBzdGF5cyBhcm91bmQgYmV0d2VlbiBwYWdl
IG5hdmlnYXRpb25zLCBzbyB0YXJnZXQgaXQuCiAgICAgTlNWaWV3ICp2aWV3ID0gW1tbW1tfaW5z
cGVjdGVkV2ViVmlldyBtYWluRnJhbWVdIGZyYW1lVmlld10gZG9jdW1lbnRWaWV3XSBlbmNsb3Np
bmdTY3JvbGxWaWV3XSBjb250ZW50Vmlld107CisjZWxzZQorICAgIE5TVmlldyAqdmlldyA9IF9p
bnNwZWN0ZWRXZWJWaWV3OworI2VuZGlmCiAgICAgaWYgKCFbdmlldyB3aW5kb3ddKQogICAgICAg
ICByZXR1cm47IC8vIFNraXAgdGhlIGhpZ2hsaWdodCBpZiB3ZSBoYXZlIG5vIHdpbmRvdyAoZS5n
LiBoaWRkZW4gdGFiKS4KICAgICAKQEAgLTY1LDggKzY5LDEzIEBACiAgICAgICAgIF9jdXJyZW50
SGlnaGxpZ2h0ID0gW1tXZWJOb2RlSGlnaGxpZ2h0IGFsbG9jXSBpbml0V2l0aFRhcmdldFZpZXc6
dmlldyBpbnNwZWN0b3JDb250cm9sbGVyOltfaW5zcGVjdGVkV2ViVmlldyBwYWdlXS0+aW5zcGVj
dG9yQ29udHJvbGxlcigpXTsKICAgICAgICAgW19jdXJyZW50SGlnaGxpZ2h0IHNldERlbGVnYXRl
OnNlbGZdOwogICAgICAgICBbX2N1cnJlbnRIaWdobGlnaHQgYXR0YWNoXTsKLSAgICB9IGVsc2UK
KyAgICB9IGVsc2UgeworI2lmICFQTEFURk9STShJT1MpCiAgICAgICAgIFtbX2N1cnJlbnRIaWdo
bGlnaHQgaGlnaGxpZ2h0Vmlld10gc2V0TmVlZHNEaXNwbGF5OllFU107CisjZWxzZQorICAgICAg
ICBbX2N1cnJlbnRIaWdobGlnaHQgc2V0TmVlZHNEaXNwbGF5XTsKKyNlbmRpZgorICAgIH0KIH0K
IAogLSAodm9pZCloaWRlSGlnaGxpZ2h0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYkluZGljYXRlTGF5ZXIuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
SW5kaWNhdGVMYXllci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE1YTVh
NTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkluZGlj
YXRlTGF5ZXIuaApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmIFBMQVRGT1JNKElPUykgJiYgRU5BQkxFKFJFTU9URV9JTlNQ
RUNUT1IpCisKKyNpbXBvcnQgPFF1YXJ0ekNvcmUvUXVhcnR6Q29yZS5oPgorCitAY2xhc3MgV2Vi
VmlldzsKKworQGludGVyZmFjZSBXZWJJbmRpY2F0ZUxheWVyIDogQ0FMYXllcgoreworICAgIFdl
YlZpZXcgKl93ZWJWaWV3OworfQorCistIChpZClpbml0V2l0aFdlYlZpZXc6KFdlYlZpZXcgKil3
ZWJWaWV3OworCitAZW5kCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJJbmRpY2F0ZUxheWVyLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJJbmRpY2F0ZUxheWVyLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3
MzkwMzQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYklu
ZGljYXRlTGF5ZXIubW0KQEAgLTAsMCArMSw3MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBQTEFURk9STShJT1MpICYmIEVOQUJMRShSRU1PVEVf
SU5TUEVDVE9SKQorCisjaW1wb3J0ICJXZWJJbmRpY2F0ZUxheWVyLmgiCisKKyNpbXBvcnQgIldl
YkZyYW1lUHJpdmF0ZS5oIgorI2ltcG9ydCAiV2ViVmlldy5oIgorI2ltcG9ydCA8UXVhcnR6Q29y
ZS9DQUxheWVyUHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9Db2xvck1hYy5oPgorI2ltcG9y
dCA8V2ViQ29yZS9XQUtXaW5kb3cuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK0Bp
bXBsZW1lbnRhdGlvbiBXZWJJbmRpY2F0ZUxheWVyCisKKy0gKGlkKWluaXRXaXRoV2ViVmlldzoo
V2ViVmlldyAqKXdlYlZpZXcKK3sKKyAgICBzZWxmID0gW3N1cGVyIGluaXRdOworICAgIGlmICgh
c2VsZikKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIF93ZWJWaWV3ID0gd2ViVmlldzsKKwor
ICAgIHNlbGYuY2FuRHJhd0NvbmN1cnJlbnRseSA9IE5POworICAgIHNlbGYuY29udGVudHNTY2Fs
ZSA9IFtbX3dlYlZpZXcgd2luZG93XSBzY3JlZW5TY2FsZV07CisKKyAgICAvLyBCbHVlIGhpZ2hs
aWdodCBjb2xvci4KKyAgICBzdGF0aWMgQ29sb3IgaGlnaGxpZ2h0Q29sb3IoMTExLjBmIC8gMjU1
LjBmLCAxNjguMGYgLyAyNTUuMGYsIDIyMC4wZiAvIDI1NS4wZiwgMC42NmYpOworICAgIHNlbGYu
YmFja2dyb3VuZENvbG9yID0gY2FjaGVkQ0dDb2xvcihoaWdobGlnaHRDb2xvciwgQ29sb3JTcGFj
ZURldmljZVJHQik7CisKKyAgICByZXR1cm4gc2VsZjsKK30KKworLSAodm9pZClsYXlvdXRTdWJs
YXllcnMKK3sKKyAgICBDR0Zsb2F0IGRvY3VtZW50U2NhbGUgPSBbW1tfd2ViVmlldyBtYWluRnJh
bWVdIGRvY3VtZW50Vmlld10gc2NhbGVdOworICAgIFtzZWxmIHNldFRyYW5zZm9ybTpDQVRyYW5z
Zm9ybTNETWFrZVNjYWxlKGRvY3VtZW50U2NhbGUsIGRvY3VtZW50U2NhbGUsIDEuMCldOworICAg
IFtzZWxmIHNldEZyYW1lOltfd2ViVmlldyBmcmFtZV1dOworfQorCistIChpZDxDQUFjdGlvbj4p
YWN0aW9uRm9yS2V5OihOU1N0cmluZyAqKWtleQoreworICAgIC8vIERpc2FibGUgYWxsIGltcGxp
Y2l0IGFuaW1hdGlvbnMuCisgICAgcmV0dXJuIG5pbDsKK30KKworQGVuZAorCisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCA4MmVkZjA3Li5lOWI4NjEyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0yMTMsNiArMjEzLDkgQEAKIAogI2lm
IEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKQogI2ltcG9ydCAiV2ViSW5zcGVjdG9yU2VydmVyLmgi
CisjaWYgUExBVEZPUk0oSU9TKQorI2ltcG9ydCAiV2ViSW5kaWNhdGVMYXllci5oIgorI2VuZGlm
CiAjZW5kaWYKIAogI2lmIFVTRShHTElCKQpAQCAtMTMyMyw3ICsxMzI2LDIzIEBAIHN0YXRpYyBi
b29sIGZhc3REb2N1bWVudFRlYXJkb3duRW5hYmxlZCgpCiAKIC0gKHZvaWQpc2V0SW5kaWNhdGlu
Z0ZvclJlbW90ZUluc3BlY3RvcjooQk9PTCllbmFibGVkCiB7CisjaWYgUExBVEZPUk0oSU9TKQor
ICAgIEFTU0VSVChXZWJUaHJlYWRJc0xvY2tlZCgpKTsKKworICAgIGlmIChlbmFibGVkKSB7Cisg
ICAgICAgIGlmICghX3ByaXZhdGUtPmluZGljYXRlTGF5ZXIpIHsKKyAgICAgICAgICAgIF9wcml2
YXRlLT5pbmRpY2F0ZUxheWVyID0gW1tXZWJJbmRpY2F0ZUxheWVyIGFsbG9jXSBpbml0V2l0aFdl
YlZpZXc6c2VsZl07CisgICAgICAgICAgICBbX3ByaXZhdGUtPmluZGljYXRlTGF5ZXIgc2V0TmVl
ZHNMYXlvdXRdOworICAgICAgICAgICAgW1tbc2VsZiB3aW5kb3ddIGhvc3RMYXllcl0gYWRkU3Vi
bGF5ZXI6X3ByaXZhdGUtPmluZGljYXRlTGF5ZXJdOworICAgICAgICB9CisgICAgfSBlbHNlIHsK
KyAgICAgICAgW19wcml2YXRlLT5pbmRpY2F0ZUxheWVyIHJlbW92ZUZyb21TdXBlcmxheWVyXTsK
KyAgICAgICAgW19wcml2YXRlLT5pbmRpY2F0ZUxheWVyIHJlbGVhc2VdOworICAgICAgICBfcHJp
dmF0ZS0+aW5kaWNhdGVMYXllciA9IG5pbDsKKyAgICB9CisjZWxzZQogICAgIC8vIEZJWE1FOiBO
ZWVkcyBpbXBsZW1lbnRhdGlvbi4KKyNlbmRpZgogfQogCiAtICh2b2lkKXNldFJlbW90ZUluc3Bl
Y3RvclVzZXJJbmZvOihOU0RpY3Rpb25hcnkgKil1c2VySW5mbwpAQCAtMTM0MSw3ICsxMzYwLDM0
IEBAIHN0YXRpYyBib29sIGZhc3REb2N1bWVudFRlYXJkb3duRW5hYmxlZCgpCiB7CiAgICAgcmV0
dXJuIF9wcml2YXRlLT5yZW1vdGVJbnNwZWN0b3JVc2VySW5mbzsKIH0KLSNlbmRpZgorCisjaWYg
UExBVEZPUk0oSU9TKQorLSAodm9pZClzZXRIb3N0QXBwbGljYXRpb25CdW5kbGVJZDooTlNTdHJp
bmcgKilidW5kbGVJZCBuYW1lOihOU1N0cmluZyAqKW5hbWUKK3sKKyAgICBpZiAoIVtfcHJpdmF0
ZS0+aG9zdEFwcGxpY2F0aW9uQnVuZGxlSWQgaXNFcXVhbFRvU3RyaW5nOmJ1bmRsZUlkXSkgewor
ICAgICAgICBbX3ByaXZhdGUtPmhvc3RBcHBsaWNhdGlvbkJ1bmRsZUlkIHJlbGVhc2VdOworICAg
ICAgICBfcHJpdmF0ZS0+aG9zdEFwcGxpY2F0aW9uQnVuZGxlSWQgPSBbYnVuZGxlSWQgY29weV07
CisgICAgfQorCisgICAgaWYgKCFbX3ByaXZhdGUtPmhvc3RBcHBsaWNhdGlvbk5hbWUgaXNFcXVh
bFRvU3RyaW5nOm5hbWVdKSB7CisgICAgICAgIFtfcHJpdmF0ZS0+aG9zdEFwcGxpY2F0aW9uTmFt
ZSByZWxlYXNlXTsKKyAgICAgICAgX3ByaXZhdGUtPmhvc3RBcHBsaWNhdGlvbk5hbWUgPSBbbmFt
ZSBjb3B5XTsKKyAgICB9CisKKyAgICBbW1dlYlZpZXcgc2hhcmVkV2ViSW5zcGVjdG9yU2VydmVy
XSBwdXNoTGlzdGluZ107Cit9CisKKy0gKE5TU3RyaW5nICopaG9zdEFwcGxpY2F0aW9uQnVuZGxl
SWQKK3sKKyAgICByZXR1cm4gX3ByaXZhdGUtPmhvc3RBcHBsaWNhdGlvbkJ1bmRsZUlkOworfQor
CistIChOU1N0cmluZyAqKWhvc3RBcHBsaWNhdGlvbk5hbWUKK3sKKyAgICByZXR1cm4gX3ByaXZh
dGUtPmhvc3RBcHBsaWNhdGlvbk5hbWU7Cit9CisjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQorI2Vu
ZGlmIC8vIEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKQogCiAtIChXZWJDb3JlOjpQYWdlKilwYWdl
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLmgg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLmgKaW5kZXggZmIzZWViOC4u
MjQ1NDE1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0
YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaApAQCAtNjIs
NiArNjIsOSBAQCBjbGFzcyBQYWdlOwogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiBAcHJvdG9j
b2wgV2ViVXNlck1lZGlhQ2xpZW50OwogI2VuZGlmCisjaWYgRU5BQkxFKFJFTU9URV9JTlNQRUNU
T1IpICYmIFBMQVRGT1JNKElPUykKK0BjbGFzcyBXZWJJbmRpY2F0ZUxheWVyOworI2VuZGlmCiAK
IGV4dGVybiBCT09MIGFwcGxpY2F0aW9uSXNUZXJtaW5hdGluZzsKIGV4dGVybiBpbnQgcGx1Z2lu
RGF0YWJhc2VDbGllbnRDb3VudDsKQEAgLTIwNyw2ICsyMTAsMTEgQEAgcHJpdmF0ZToKICNpZiBF
TkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikKICAgICBCT09MIGFsbG93c1JlbW90ZUluc3BlY3Rpb247
CiAgICAgTlNEaWN0aW9uYXJ5ICpyZW1vdGVJbnNwZWN0b3JVc2VySW5mbzsKKyNpZiBQTEFURk9S
TShJT1MpCisgICAgV2ViSW5kaWNhdGVMYXllciAqaW5kaWNhdGVMYXllcjsKKyAgICBOU1N0cmlu
ZyAqaG9zdEFwcGxpY2F0aW9uQnVuZGxlSWQ7CisgICAgTlNTdHJpbmcgKmhvc3RBcHBsaWNhdGlv
bk5hbWU7CisjZW5kaWYKICNlbmRpZgogCiAjaWYgVVNFKEdMSUIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLm1tIGIvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJWaWV3RGF0YS5tbQppbmRleCBiNjAzZTU2Li5kNzFmZDY1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEubW0KQEAgLTEzNiw2ICsxMzYsMTEgQEAgV2Vi
Vmlld0xheWVyRmx1c2hTY2hlZHVsZXI6OldlYlZpZXdMYXllckZsdXNoU2NoZWR1bGVyKExheWVy
Rmx1c2hDb250cm9sbGVyKiBmbHUKIAogI2lmIEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKQogICAg
IFtyZW1vdGVJbnNwZWN0b3JVc2VySW5mbyByZWxlYXNlXTsKKyNpZiBQTEFURk9STShJT1MpCisg
ICAgW2luZGljYXRlTGF5ZXIgcmVsZWFzZV07CisgICAgW2hvc3RBcHBsaWNhdGlvbkJ1bmRsZUlk
IHJlbGVhc2VdOworICAgIFtob3N0QXBwbGljYXRpb25OYW1lIHJlbGVhc2VdOworI2VuZGlmCiAj
ZW5kaWYKIAogICAgIFtzdXBlciBkZWFsbG9jXTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>