<?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>72522</bug_id>
          
          <creation_ts>2011-11-16 10:35:49 -0800</creation_ts>
          <short_desc>[Qt] Move WebKit2 C++ APIs to private API and build QML extension plugin on top of that</short_desc>
          <delta_ts>2011-12-14 06:06:23 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tor Arne Vestbø">vestbo</reporter>
          <assigned_to name="Tor Arne Vestbø">vestbo</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>hausmann</cc>
    
    <cc>kenneth</cc>
    
    <cc>menard</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>504032</commentid>
    <comment_count>0</comment_count>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2011-11-16 10:35:49 -0800</bug_when>
    <thetext>[Qt] Move WebKit2 C++ APIs to private API and build QML extension plugin on top of that</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504034</commentid>
    <comment_count>1</comment_count>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2011-11-16 10:37:08 -0800</bug_when>
    <thetext>Patch: https://gist.github.com/1370909</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504663</commentid>
    <comment_count>2</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-11-17 01:50:06 -0800</bug_when>
    <thetext>Hey why not use 20 sec and actually upload the patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504705</commentid>
    <comment_count>3</comment_count>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2011-11-17 03:16:43 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Hey why not use 20 sec and actually upload the patch?

Cause webkit-patch still hates me :/

Please enter a bug number or a title for a new bug:
[Qt] Move WebKit2 C++ APIs to private API and build QML extension plugin on top of that
Reading Keychain for bugs.webkit.org account and password.  Click &quot;Allow&quot; to continue...
Logging in as vestbo@webkit.org...
Creating bug with title &quot;[Qt] Move WebKit2 C++ APIs to private API and build QML extension plugin on top of that&quot;
Bug 72522 created.
https://bugs.webkit.org/show_bug.cgi?id=72522
Fetching: https://bugs.webkit.org/show_bug.cgi?id=72522&amp;ctype=xml
  Running status to find changed, added, or removed files.
  Reviewing diff to determine which lines changed.
  Extracting affected function names from source files.
Traceback (most recent call last):
  File &quot;/Users/torarne/dev/webkit/wip/Tools/scripts/webkit-patch&quot;, line 74, in &lt;module&gt;
    main()
  File &quot;/Users/torarne/dev/webkit/wip/Tools/scripts/webkit-patch&quot;, line 69, in main
    WebKitPatch(os.path.abspath(__file__)).main()
  File &quot;/Users/torarne/dev/webkit/wip/Tools/Scripts/webkitpy/tool/multicommandtool.py&quot;, line 308, in main
    result = command.check_arguments_and_execute(options, args, self)
  File &quot;/Users/torarne/dev/webkit/wip/Tools/Scripts/webkitpy/tool/multicommandtool.py&quot;, line 117, in check_arguments_and_execute
    return self.execute(options, args, tool) or 0
  File &quot;/Users/torarne/dev/webkit/wip/Tools/Scripts/webkitpy/tool/commands/abstractsequencedcommand.py&quot;, line 51, in execute
    self._sequence.run_and_handle_errors(tool, options, state)
  File &quot;/Users/torarne/dev/webkit/wip/Tools/Scripts/webkitpy/tool/commands/stepsequence.py&quot;, line 70, in run_and_handle_errors
    self._run(tool, options, state)
  File &quot;/Users/torarne/dev/webkit/wip/Tools/Scripts/webkitpy/tool/commands/stepsequence.py&quot;, line 64, in _run
    step(tool, options).run(state)
  File &quot;/Users/torarne/dev/webkit/wip/Tools/Scripts/webkitpy/tool/steps/preparechangelog.py&quot;, line 76, in run
    self._tool.executive.run_and_throw_if_fail(args, self._options.quiet, cwd=self._tool.scm().checkout_root)
  File &quot;/Users/torarne/dev/webkit/wip/Tools/Scripts/webkitpy/common/system/executive.py&quot;, line 147, in run_and_throw_if_fail
    exit_code = self._run_command_with_teed_output(args, child_stdout, cwd=cwd)
  File &quot;/Users/torarne/dev/webkit/wip/Tools/Scripts/webkitpy/common/system/executive.py&quot;, line 132, in _run_command_with_teed_output
    teed_output.write(output_line)
  File &quot;/Users/torarne/dev/webkit/wip/Tools/Scripts/webkitpy/common/system/deprecated_logging.py&quot;, line 55, in write
    file.write(bytes)
  File &quot;/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/codecs.py&quot;, line 351, in write
    data, consumed = self.encode(object, self.errors)
UnicodeDecodeError: &apos;ascii&apos; codec can&apos;t decode byte 0xc3 in position 31: ordinal not in range(128)
webkit-patch upload -g HEAD  1.93s user 0.25s system 6% cpu 32.988 total</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504706</commentid>
    <comment_count>4</comment_count>
      <attachid>115552</attachid>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2011-11-17 03:18:10 -0800</bug_when>
    <thetext>Created attachment 115552
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504711</commentid>
    <comment_count>5</comment_count>
      <attachid>115552</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2011-11-17 03:27:48 -0800</bug_when>
    <thetext>Comment on attachment 115552
Patch

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

r=me but fix the coding style before landing :)

&gt; Source/WebKit/qt/declarative/experimental/plugin.cpp:33
&gt; +    QQuickWebViewExperimentalExtension(QObject *parent = 0) : QObject(parent) { }
&gt; +    QQuickWebViewExperimental* experimental() { return static_cast&lt;QQuickWebView*&gt;(parent())-&gt;experimental(); }

Coding style: Move the braces onto lines of their own.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520896</commentid>
    <comment_count>6</comment_count>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2011-12-14 06:06:23 -0800</bug_when>
    <thetext>Landed in r100602</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115552</attachid>
            <date>2011-11-17 03:18:10 -0800</date>
            <delta_ts>2011-11-17 03:27:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Qt-Move-WebKit2-C-APIs-to-private-API-and-build-QML-.patch</filename>
            <type>text/plain</type>
            <size>83070</size>
            <attacher name="Tor Arne Vestbø">vestbo</attacher>
            
              <data encoding="base64">RnJvbSBmMGVjYzcyZTAwM2NjNWIyZjMzNDA5ZmI3MWM0N2EzOWI4MWVjYmQxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/VG9yPTIwQXJuZT0yMFZlc3RiPUMzPUI4Pz0g
PHRvci5hcm5lLnZlc3Rib0Bub2tpYS5jb20+CkRhdGU6IFdlZCwgMTYgTm92IDIwMTEgMTk6MjM6
MTcgKzAxMDAKU3ViamVjdDogW1BBVENIXSBbUXRdIE1vdmUgV2ViS2l0MiBDKysgQVBJcyB0byBw
cml2YXRlIEFQSSBhbmQgYnVpbGQgUU1MCiBleHRlbnNpb24gcGx1Z2luIG9uIHRvcCBvZiB0aGF0
CgpBIG5ldyBleHRlbnNpb24gb2JqZWN0IGhhcyBiZWVuIGFkZGVkIHRvIFFRdWlja1dlYlZpZXcg
KHRoZSBzYW1lIGFwcHJvYWNoIHNob3VsZCBiZSB1c2VkCmZvciBvdGhlciBBUEkgY2xhc3NlcyB0
aGF0IG5lZWQgZXhwZXJpbWVudGFsIEFQSXMpLiBUaGUgUU1MIGV4dGVuc2lvbiBtZWNoYW5pc20g
aXMgdGhlbgpidWlsdCBvbiB0b3Agb2YgdGhlIGV4cGVyaW1lbnRhbCBvYmplY3QuCi0tLQogU291
cmNlL1F0V2ViS2l0LnBybyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA5ICst
CiBTb3VyY2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL2RlY2xhcmF0aXZlLnBybyAgICAgICB8ICAg
NjAgKy0tLS0tLQogLi4uL3F0L2RlY2xhcmF0aXZlL2V4cGVyaW1lbnRhbC9leHBlcmltZW50YWwu
cHJpICAgfCAgIDUyICsrKysrKwogLi4uL1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9leHBlcmltZW50
YWwvcGx1Z2luLmNwcCAgfCAgIDUzICsrKysrKwogU291cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2
ZS9leHBlcmltZW50YWwvcW1sZGlyICAgfCAgICAxICsKIFNvdXJjZS9XZWJLaXQvcXQvZGVjbGFy
YXRpdmUvcGx1Z2luLmNwcCAgICAgICAgICAgIHwgICAgOCArLQogU291cmNlL1dlYktpdC9xdC9k
ZWNsYXJhdGl2ZS9wcml2YXRlL3BsdWdpbi5jcHAgICAgfCAgIDQ3IC0tLS0tLQogU291cmNlL1dl
YktpdC9xdC9kZWNsYXJhdGl2ZS9wcml2YXRlL3ByaXZhdGUucHJvICAgfCAgIDU0IC0tLS0tLQog
U291cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9wcml2YXRlL3FtbGRpciAgICAgICAgfCAgICAx
IC0KIFNvdXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvcHVibGljLnByaSAgICAgICAgICAgIHwg
ICA1OCArKysrKysrCiBTb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpICAgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAgMTAgKy0KIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNr
d2VicGFnZS5jcHAgIHwgICAgOCArLQogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9x
cXVpY2t3ZWJwYWdlLmggICAgfCAgIDc3IC0tLS0tLS0tLQogU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xcXVpY2t3ZWJwYWdlX3AuaCAgfCAgIDY4ICsrKysrLS0tCiAuLi4vV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnBhZ2VfcF9wLmggICB8ICAgNTUgKysrKysrCiBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwICB8ICAgMzMg
KysrLQogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmggICAg
fCAgMTM4IC0tLS0tLS0tLS0tLS0tLQogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9x
cXVpY2t3ZWJ2aWV3X3AuaCAgfCAgMTc1ICsrKysrKysrKysrKystLS0tLS0tCiAuLi4vV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmggICB8ICAgOTAgKysrKysrKysr
KwogLi4uL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3cHJpdmF0ZWV4dGVuc2lvbi5jcHAgICAgICAgfCAg
IDM2IC0tLS0KIC4uLi9BUEkvcXQvcXF1aWNrd2Vidmlld3ByaXZhdGVleHRlbnNpb25fcC5oICAg
ICAgIHwgICAzOCAtLS0tLQogLi4uL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2ViZG93bmxv
YWRpdGVtLmNwcCAgfCAgICA0ICstCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3
ZWJkb3dubG9hZGl0ZW0uaCB8ICAgODYgLS0tLS0tLS0tLQogLi4uL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC9xd2ViZG93bmxvYWRpdGVtX3AuaCAgfCAgMTAxICsrKysrKysrLS0tLQogLi4uL1VJ
UHJvY2Vzcy9BUEkvcXQvcXdlYmRvd25sb2FkaXRlbV9wX3AuaCAgICAgICAgfCAgIDUzICsrKysr
KwogLi4uL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXMuY3BwICAgfCAg
ICA0ICstCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlcy5o
ICB8ICAxNDEgLS0tLS0tLS0tLS0tLS0tLQogLi4uL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9x
d2VicHJlZmVyZW5jZXNfcC5oICAgfCAgMTY2ICsrKysrKysrKysrKystLS0tLS0KIC4uLi9VSVBy
b2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL3FtbHRlc3RzLnBybyAgIHwgICAgMSArCiAuLi4v
QVBJL3F0L3Rlc3RzL3FtbHRlc3RzL3RzdF9xbWx0ZXN0cy5jcHAgICAgICAgICB8ICAgIDUgKy0K
IC4uLi9BUEkvcXQvdGVzdHMvcXF1aWNrd2Vidmlldy9xcXVpY2t3ZWJ2aWV3LnBybyAgIHwgICAg
MSArCiAuLi4vcXQvdGVzdHMvcXF1aWNrd2Vidmlldy90c3RfcXF1aWNrd2Vidmlldy5jcHAgICB8
ICAgIDQgKy0KIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdERvd25sb2FkTWFuYWdlci5j
cHAgIHwgICAgMiArLQogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0Vmlld0ludGVyZmFj
ZS5jcHAgICAgfCAgICA0ICstCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJFcnJv
ci5oICAgICAgICAgICB8ICAgIDIgKy0KIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdl
YlBhZ2VQcm94eS5jcHAgICAgIHwgICAgNCArLQogU291cmNlL2FwaS5wcmkgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA1ICstCiBUb29scy9NaW5pQnJvd3Nlci9xdC9C
cm93c2VyV2luZG93LmNwcCAgICAgICAgICAgICB8ICAgIDYgKy0KIFRvb2xzL01pbmlCcm93c2Vy
L3F0L0Jyb3dzZXJXaW5kb3cuaCAgICAgICAgICAgICAgIHwgICAgNCArLQogVG9vbHMvTWluaUJy
b3dzZXIvcXQvVXJsTG9hZGVyLmNwcCAgICAgICAgICAgICAgICAgfCAgICAxICsKIFRvb2xzL1dl
YktpdFRlc3RSdW5uZXIvcXQvUGxhdGZvcm1XZWJWaWV3UXQuY3BwICAgIHwgICAgNCArLQogVG9v
bHMvcW1ha2UvbWtzcGVjcy9mZWF0dXJlcy9kZWZhdWx0X3Bvc3QucHJmICAgICAgfCAgICAxIC0K
IFRvb2xzL3FtYWtlL21rc3BlY3MvZmVhdHVyZXMvZGVmYXVsdF9wcmUucHJmICAgICAgIHwgICAg
NCArCiBUb29scy9xbWFrZS9ta3NwZWNzL2ZlYXR1cmVzL3F0d2Via2l0LXByaXZhdGUucHJmICB8
ICAgMTIgKysKIFRvb2xzL3FtYWtlL21rc3BlY3MvZmVhdHVyZXMvcXR3ZWJraXQucHJmICAgICAg
ICAgIHwgICAgMSArCiA0NSBmaWxlcyBjaGFuZ2VkLCA4MDYgaW5zZXJ0aW9ucygrKSwgODgxIGRl
bGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRp
dmUvZXhwZXJpbWVudGFsL2V4cGVyaW1lbnRhbC5wcmkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3Vy
Y2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL2V4cGVyaW1lbnRhbC9wbHVnaW4uY3BwCiBjcmVhdGUg
bW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9leHBlcmltZW50YWwvcW1s
ZGlyCiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9wcml2
YXRlL3BsdWdpbi5jcHAKIGRlbGV0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L3F0L2RlY2xh
cmF0aXZlL3ByaXZhdGUvcHJpdmF0ZS5wcm8KIGRlbGV0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2Vi
S2l0L3F0L2RlY2xhcmF0aXZlL3ByaXZhdGUvcW1sZGlyCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291
cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9wdWJsaWMucHJpCiBkZWxldGUgbW9kZSAxMDA2NDQg
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJwYWdlLmgKIGNyZWF0ZSBt
b2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnBhZ2Vf
cF9wLmgKIGRlbGV0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3FxdWlja3dlYnZpZXcuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaAogZGVsZXRlIG1vZGUgMTAwNjQ0IFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld3ByaXZhdGVleHRlbnNpb24u
Y3BwCiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9x
cXVpY2t3ZWJ2aWV3cHJpdmF0ZWV4dGVuc2lvbl9wLmgKIGRlbGV0ZSBtb2RlIDEwMDY0NCBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJkb3dubG9hZGl0ZW0uaAogY3JlYXRlIG1v
ZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYmRvd25sb2FkaXRl
bV9wX3AuaAogZGVsZXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvcXdlYnByZWZlcmVuY2VzLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBUb29scy9xbWFrZS9ta3Nw
ZWNzL2ZlYXR1cmVzL3F0d2Via2l0LXByaXZhdGUucHJmCgpkaWZmIC0tZ2l0IGEvU291cmNlL1F0
V2ViS2l0LnBybyBiL1NvdXJjZS9RdFdlYktpdC5wcm8KaW5kZXggZWQwMGRkYi4uOGIyN2NhZSAx
MDA2NDQKLS0tIGEvU291cmNlL1F0V2ViS2l0LnBybworKysgYi9Tb3VyY2UvUXRXZWJLaXQucHJv
CkBAIC0xNywxMiArMTcsOSBAQCBTVUJESVJTICs9IGFwaQogCiBpbmNsdWRlKFdlYktpdC9xdC9k
b2NzL2RvY3MucHJpKQogCi1TVUJESVJTICs9IFdlYktpdC9xdC9kZWNsYXJhdGl2ZQotaGF2ZVF0
KDUpIHsKLSAgICAhbm9fd2Via2l0MiB7Ci0gICAgICAgIFNVQkRJUlMgKz0gV2ViS2l0L3F0L2Rl
Y2xhcmF0aXZlL3ByaXZhdGUKLSAgICB9Ci19CitkZWNsYXJhdGl2ZS5maWxlID0gV2ViS2l0L3F0
L2RlY2xhcmF0aXZlL2RlY2xhcmF0aXZlLnBybworZGVjbGFyYXRpdmUubWFrZWZpbGUgPSBNYWtl
ZmlsZS5kZWNsYXJhdGl2ZQorU1VCRElSUyArPSBkZWNsYXJhdGl2ZQogCiB0ZXN0cy5maWxlID0g
dGVzdHMucHJpCiBTVUJESVJTICs9IHRlc3RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0
L2RlY2xhcmF0aXZlL2RlY2xhcmF0aXZlLnBybyBiL1NvdXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRp
dmUvZGVjbGFyYXRpdmUucHJvCmluZGV4IGY4MTcxOWUuLjczNzkyODMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvZGVjbGFyYXRpdmUucHJvCisrKyBiL1NvdXJjZS9X
ZWJLaXQvcXQvZGVjbGFyYXRpdmUvZGVjbGFyYXRpdmUucHJvCkBAIC0xLDU4ICsxLDE4IEBACiAj
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLSMgUHJvamVjdCBmaWxlIGZvciB0aGUgUXRXZWJLaXQgUU1MIHBsdWdpbgor
IyBNYWluIHByb2plY3QgZmlsZSBmb3IgdGhlIFF0IFF1aWNrIChRTUwpIHBsdWdpbgogIwogIyBT
ZWUgJ1Rvb2xzL3FtYWtlL1JFQURNRScgZm9yIGFuIG92ZXJ2aWV3IG9mIHRoZSBidWlsZCBzeXN0
ZW0KICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQogCi1URU1QTEFURSA9IGxpYgotVEFSR0VUICA9IHFtbHdlYmtpdHBs
dWdpbgorVEVNUExBVEUgPSBzdWJkaXJzCitDT05GSUcgKz0gb3JkZXJlZAogCi1UQVJHRVQubW9k
dWxlX25hbWUgPSBRdFdlYktpdAorcHVibGljX2FwaS5maWxlID0gcHVibGljLnByaQorcHVibGlj
X2FwaS5tYWtlZmlsZSA9IE1ha2VmaWxlLmRlY2xhcmF0aXZlLnB1YmxpYworU1VCRElSUyArPSBw
dWJsaWNfYXBpCiAKLUNPTkZJRyArPSBxdCBwbHVnaW4KLQotd2luMzJ8bWFjOiF3aW5jZSo6IXdp
bjMyLW1zdmM6IW1hY3gteGNvZGU6Q09ORklHICs9IGRlYnVnX2FuZF9yZWxlYXNlCi0KLVFNTERJ
UkZJTEUgPSAkJHtfUFJPX0ZJTEVfUFdEX30vcW1sZGlyCi1jb3B5MmJ1aWxkLmlucHV0ID0gUU1M
RElSRklMRQotY29weTJidWlsZC5vdXRwdXQgPSAkJHtST09UX0JVSUxEX0RJUn0vaW1wb3J0cy8k
JHtUQVJHRVQubW9kdWxlX25hbWV9L3FtbGRpcgotIWNvbnRhaW5zKFRFTVBMQVRFX1BSRUZJWCwg
dmMpOmNvcHkyYnVpbGQudmFyaWFibGVfb3V0ID0gUFJFX1RBUkdFVERFUFMKLWNvcHkyYnVpbGQu
Y29tbWFuZHMgPSAkJFFNQUtFX0NPUFkgJHtRTUFLRV9GSUxFX0lOfSAke1FNQUtFX0ZJTEVfT1VU
fQotY29weTJidWlsZC5uYW1lID0gQ09QWSAke1FNQUtFX0ZJTEVfSU59Ci1jb3B5MmJ1aWxkLkNP
TkZJRyArPSBub19saW5rCi1RTUFLRV9FWFRSQV9DT01QSUxFUlMgKz0gY29weTJidWlsZAotCi1U
QVJHRVQgPSAkJHF0TGlicmFyeVRhcmdldCgkJFRBUkdFVCkKLWNvbnRhaW5zKFFUX0NPTkZJRywg
cmVkdWNlX2V4cG9ydHMpOkNPTkZJRyArPSBoaWRlX3N5bWJvbHMKLQotd2luY2UqOkxJQlMgKz0g
JCRRTUFLRV9MSUJTX0dVSQotCi1DT05GSUcgKz0gcXR3ZWJraXQKLQotUVQgKz0gZGVjbGFyYXRp
dmUKLWhhdmVRdCg1KTogUVQgKz0gd2lkZ2V0cwotCi1jb250YWlucyhRVF9DT05GSUcsIHF0cXVp
Y2sxKTogewotICAgIFFUICs9IHF0cXVpY2sxCi19Ci0KLURFU1RESVIgPSAkJHtST09UX0JVSUxE
X0RJUn0vaW1wb3J0cy8kJHtUQVJHRVQubW9kdWxlX25hbWV9Ci0KLUNPTkZJRyArPSBycGF0aAot
UlBBVEhESVJfUkVMQVRJVkVfVE9fREVTVERJUiA9IC4uLy4uL2xpYgotCi1TT1VSQ0VTICs9IHFk
ZWNsYXJhdGl2ZXdlYnZpZXcuY3BwIHBsdWdpbi5jcHAKLUhFQURFUlMgKz0gcWRlY2xhcmF0aXZl
d2Vidmlld19wLmgKLQotIW5vX3dlYmtpdDI6IHsKLSAgICBERUZJTkVTICs9IEhBVkVfV0VCS0lU
MgotICAgIFFUICs9IG5ldHdvcmsKK2hhdmVRdCg1KTohbm9fd2Via2l0MiB7CisgICAgZXhwZXJp
bWVudGFsX2FwaS5maWxlID0gZXhwZXJpbWVudGFsL2V4cGVyaW1lbnRhbC5wcmkKKyAgICBleHBl
cmltZW50YWxfYXBpLm1ha2VmaWxlID0gTWFrZWZpbGUuZGVjbGFyYXRpdmUuZXhwZXJpbWVudGFs
CisgICAgU1VCRElSUyArPSBleHBlcmltZW50YWxfYXBpCiB9Ci0KLXRhcmdldC5wYXRoID0gJCRb
UVRfSU5TVEFMTF9JTVBPUlRTXS8kJHtUQVJHRVQubW9kdWxlX25hbWV9Ci0KLQotcW1sZGlyLmZp
bGVzICs9ICQkUFdEL3FtbGRpcgotcW1sZGlyLnBhdGggKz0gICQkW1FUX0lOU1RBTExfSU1QT1JU
U10vJCR7VEFSR0VULm1vZHVsZV9uYW1lfQotCi1JTlNUQUxMUyArPSB0YXJnZXQgcW1sZGlyCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL2V4cGVyaW1lbnRhbC9leHBl
cmltZW50YWwucHJpIGIvU291cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9leHBlcmltZW50YWwv
ZXhwZXJpbWVudGFsLnByaQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZTg5
MDllCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9leHBl
cmltZW50YWwvZXhwZXJpbWVudGFsLnByaQpAQCAtMCwwICsxLDUyIEBACisjIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
KyMgUHJvamVjdCBmaWxlIGZvciB0aGUgUXQgUXVpY2sgKFFNTCkgZXhwZXJpbWVudGFsIEFQSSBw
bHVnaW4KKyMKKyMgU2VlICdUb29scy9xbWFrZS9SRUFETUUnIGZvciBhbiBvdmVydmlldyBvZiB0
aGUgYnVpbGQgc3lzdGVtCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworVEVNUExBVEUgPSBsaWIKK1RBUkdFVCAg
PSBxbWx3ZWJraXRleHBlcmltZW50YWxwbHVnaW4KKworVEFSR0VULm1vZHVsZV9uYW1lID0gUXRX
ZWJLaXQvZXhwZXJpbWVudGFsCisKK0NPTkZJRyArPSBxdCBwbHVnaW4KKword2luMzJ8bWFjOiF3
aW5jZSo6IXdpbjMyLW1zdmM6IW1hY3gteGNvZGU6Q09ORklHICs9IGRlYnVnX2FuZF9yZWxlYXNl
CisKK1FNTERJUkZJTEUgPSAkJHtfUFJPX0ZJTEVfUFdEX30vcW1sZGlyCitjb3B5MmJ1aWxkLmlu
cHV0ID0gUU1MRElSRklMRQorY29weTJidWlsZC5vdXRwdXQgPSAkJHtST09UX0JVSUxEX0RJUn0v
aW1wb3J0cy8kJHtUQVJHRVQubW9kdWxlX25hbWV9L3FtbGRpcgorIWNvbnRhaW5zKFRFTVBMQVRF
X1BSRUZJWCwgdmMpOmNvcHkyYnVpbGQudmFyaWFibGVfb3V0ID0gUFJFX1RBUkdFVERFUFMKK2Nv
cHkyYnVpbGQuY29tbWFuZHMgPSAkJFFNQUtFX0NPUFkgJHtRTUFLRV9GSUxFX0lOfSAke1FNQUtF
X0ZJTEVfT1VUfQorY29weTJidWlsZC5uYW1lID0gQ09QWSAke1FNQUtFX0ZJTEVfSU59Citjb3B5
MmJ1aWxkLkNPTkZJRyArPSBub19saW5rCitRTUFLRV9FWFRSQV9DT01QSUxFUlMgKz0gY29weTJi
dWlsZAorCitUQVJHRVQgPSAkJHF0TGlicmFyeVRhcmdldCgkJFRBUkdFVCkKK2NvbnRhaW5zKFFU
X0NPTkZJRywgcmVkdWNlX2V4cG9ydHMpOkNPTkZJRyArPSBoaWRlX3N5bWJvbHMKKword2luY2Uq
OkxJQlMgKz0gJCRRTUFLRV9MSUJTX0dVSQorCitDT05GSUcgKz0gcXR3ZWJraXQgcXR3ZWJraXQt
cHJpdmF0ZQorCitRVCArPSBkZWNsYXJhdGl2ZSB3aWRnZXRzIG5ldHdvcmsKKworREVTVERJUiA9
ICQke1JPT1RfQlVJTERfRElSfS9pbXBvcnRzLyQke1RBUkdFVC5tb2R1bGVfbmFtZX0KKworQ09O
RklHICs9IHJwYXRoCitSUEFUSERJUl9SRUxBVElWRV9UT19ERVNURElSID0gLi4vLi4vbGliCisK
K1NPVVJDRVMgKz0gcGx1Z2luLmNwcAorCitERUZJTkVTICs9IEhBVkVfV0VCS0lUMgorSU5DTFVE
RVBBVEggKz0gLi4vLi4vLi4vLi4vV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0CisKK3RhcmdldC5w
YXRoID0gJCRbUVRfSU5TVEFMTF9JTVBPUlRTXS8kJHtUQVJHRVQubW9kdWxlX25hbWV9CisKKwor
cW1sZGlyLmZpbGVzICs9ICQkUFdEL3FtbGRpcgorcW1sZGlyLnBhdGggKz0gICQkW1FUX0lOU1RB
TExfSU1QT1JUU10vJCR7VEFSR0VULm1vZHVsZV9uYW1lfQorCitJTlNUQUxMUyArPSB0YXJnZXQg
cW1sZGlyCisKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9leHBl
cmltZW50YWwvcGx1Z2luLmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvZXhwZXJp
bWVudGFsL3BsdWdpbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2U2
ODJmZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvZXhw
ZXJpbWVudGFsL3BsdWdpbi5jcHAKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAgICBDb3B5cmlnaHQg
KEMpIDIwMTEgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisK
KyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJh
cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAg
ICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy
YW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8K
KworI2luY2x1ZGUgInFxdWlja3dlYnBhZ2VfcC5oIgorI2luY2x1ZGUgInFxdWlja3dlYnZpZXdf
cC5oIgorCisjaW5jbHVkZSA8UXREZWNsYXJhdGl2ZS9xZGVjbGFyYXRpdmUuaD4KKyNpbmNsdWRl
IDxRdERlY2xhcmF0aXZlL3FkZWNsYXJhdGl2ZWV4dGVuc2lvbnBsdWdpbi5oPgorCitRVF9CRUdJ
Tl9OQU1FU1BBQ0UKKworY2xhc3MgUVF1aWNrV2ViVmlld0V4cGVyaW1lbnRhbEV4dGVuc2lvbiA6
IHB1YmxpYyBRT2JqZWN0IHsKKyAgICBRX09CSkVDVAorICAgIFFfUFJPUEVSVFkoUVF1aWNrV2Vi
Vmlld0V4cGVyaW1lbnRhbCogZXhwZXJpbWVudGFsIFJFQUQgZXhwZXJpbWVudGFsIENPTlNUQU5U
IEZJTkFMKQorcHVibGljOgorICAgIFFRdWlja1dlYlZpZXdFeHBlcmltZW50YWxFeHRlbnNpb24o
UU9iamVjdCAqcGFyZW50ID0gMCkgOiBRT2JqZWN0KHBhcmVudCkgeyB9CisgICAgUVF1aWNrV2Vi
Vmlld0V4cGVyaW1lbnRhbCogZXhwZXJpbWVudGFsKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8UVF1
aWNrV2ViVmlldyo+KHBhcmVudCgpKS0+ZXhwZXJpbWVudGFsKCk7IH0KK307CisKK2NsYXNzIFdl
YktpdFFtbEV4cGVyaW1lbnRhbEV4dGVuc2lvblBsdWdpbjogcHVibGljIFFEZWNsYXJhdGl2ZUV4
dGVuc2lvblBsdWdpbiB7CisgICAgUV9PQkpFQ1QKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQg
cmVnaXN0ZXJUeXBlcyhjb25zdCBjaGFyKiB1cmkpCisgICAgeworICAgICAgICBRX0FTU0VSVChR
TGF0aW4xU3RyaW5nKHVyaSkgPT0gUUxhdGluMVN0cmluZygiUXRXZWJLaXQuZXhwZXJpbWVudGFs
IikpOworCisgICAgICAgIHFtbFJlZ2lzdGVyRXh0ZW5kZWRUeXBlPFFRdWlja1dlYlZpZXcsIFFR
dWlja1dlYlZpZXdFeHBlcmltZW50YWxFeHRlbnNpb24+KHVyaSwgMywgMCwgIldlYlZpZXciKTsK
KyAgICAgICAgcW1sUmVnaXN0ZXJVbmNyZWF0YWJsZVR5cGU8UVF1aWNrV2ViVmlld0V4cGVyaW1l
bnRhbD4odXJpLCAzLCAwLCAiUVF1aWNrV2ViVmlld0V4cGVyaW1lbnRhbCIsCisgICAgICAgICAg
ICBRT2JqZWN0Ojp0cigiQ2Fubm90IGNyZWF0ZSBzZXBhcmF0ZSBpbnN0YW5jZSBvZiBRUXVpY2tX
ZWJWaWV3RXhwZXJpbWVudGFsIikpOworICAgIH0KK307CisKK1FUX0VORF9OQU1FU1BBQ0UKKwor
I2luY2x1ZGUgInBsdWdpbi5tb2MiCisKK1FfRVhQT1JUX1BMVUdJTjIocW1sd2Via2l0cGx1Z2lu
ZXhwZXJpbWVudGFsLCBRVF9QUkVQRU5EX05BTUVTUEFDRShXZWJLaXRRbWxFeHBlcmltZW50YWxF
eHRlbnNpb25QbHVnaW4pKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRp
dmUvZXhwZXJpbWVudGFsL3FtbGRpciBiL1NvdXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvZXhw
ZXJpbWVudGFsL3FtbGRpcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZGM4
YjBlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9leHBl
cmltZW50YWwvcW1sZGlyCkBAIC0wLDAgKzEgQEAKK3BsdWdpbiBxbWx3ZWJraXRwcml2YXRlcGx1
Z2luCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL3BsdWdpbi5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL3BsdWdpbi5jcHAKaW5kZXggMzc5Yjk3OS4u
OTE2MzRlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9wbHVnaW4u
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvcGx1Z2luLmNwcApAQCAtMjMs
MTAgKzIzLDEwIEBACiAjaW5jbHVkZSA8UXREZWNsYXJhdGl2ZS9xZGVjbGFyYXRpdmVleHRlbnNp
b25wbHVnaW4uaD4KIAogI2lmIGRlZmluZWQoSEFWRV9XRUJLSVQyKQotI2luY2x1ZGUgInFxdWlj
a3dlYnBhZ2UuaCIKLSNpbmNsdWRlICJxcXVpY2t3ZWJ2aWV3LmgiCi0jaW5jbHVkZSAicXdlYmRv
d25sb2FkaXRlbS5oIgotI2luY2x1ZGUgInF3ZWJwcmVmZXJlbmNlcy5oIgorI2luY2x1ZGUgInFx
dWlja3dlYnBhZ2VfcC5oIgorI2luY2x1ZGUgInFxdWlja3dlYnZpZXdfcC5oIgorI2luY2x1ZGUg
InF3ZWJkb3dubG9hZGl0ZW1fcC5oIgorI2luY2x1ZGUgInF3ZWJwcmVmZXJlbmNlc19wLmgiCiAK
ICNpbmNsdWRlIDxRdE5ldHdvcmsvcW5ldHdvcmtyZXBseS5oPgogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL3ByaXZhdGUvcGx1Z2luLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvcHJpdmF0ZS9wbHVnaW4uY3BwCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA2YjExMzQ0Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvcXQv
ZGVjbGFyYXRpdmUvcHJpdmF0ZS9wbHVnaW4uY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNDcgKzAs
MCBAQAotLyoKLSAgICBDb3B5cmlnaHQgKEMpIDIwMTEgTm9raWEgQ29ycG9yYXRpb24gYW5kL29y
IGl0cyBzdWJzaWRpYXJ5KC1pZXMpCi0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gICAgbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAgICBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAgICB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCi0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICAgIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gICAgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0KLSAgICBZb3Ugc2hv
dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlCi0gICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ
SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICAgIEJvc3Rvbiwg
TUEgMDIxMTAtMTMwMSwgVVNBLgotKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaW5jbHVk
ZSAicXF1aWNrd2VicGFnZS5oIgotI2luY2x1ZGUgInFxdWlja3dlYnZpZXcuaCIKLSNpbmNsdWRl
ICJxcXVpY2t3ZWJ2aWV3X3AuaCIKLSNpbmNsdWRlICJxcXVpY2t3ZWJ2aWV3cHJpdmF0ZWV4dGVu
c2lvbl9wLmgiCi0KLSNpbmNsdWRlIDxRdERlY2xhcmF0aXZlL3FkZWNsYXJhdGl2ZS5oPgotI2lu
Y2x1ZGUgPFF0RGVjbGFyYXRpdmUvcWRlY2xhcmF0aXZlZXh0ZW5zaW9ucGx1Z2luLmg+Ci0KLVFU
X0JFR0lOX05BTUVTUEFDRQotCi1jbGFzcyBXZWJLaXRRbWxQbHVnaW5Qcml2YXRlIDogcHVibGlj
IFFEZWNsYXJhdGl2ZUV4dGVuc2lvblBsdWdpbiB7Ci0gICAgUV9PQkpFQ1QKLXB1YmxpYzoKLSAg
ICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJUeXBlcyhjb25zdCBjaGFyKiB1cmkpCi0gICAgewotICAg
ICAgICBRX0FTU0VSVChRTGF0aW4xU3RyaW5nKHVyaSkgPT0gUUxhdGluMVN0cmluZygiUXRXZWJL
aXQucHJpdmF0ZSIpKTsKLSAgICAgICAgcW1sUmVnaXN0ZXJFeHRlbmRlZFR5cGU8UVF1aWNrV2Vi
VmlldywgUVF1aWNrV2ViVmlld1ByaXZhdGVFeHRlbnNpb24+KHVyaSwgMywgMCwgIldlYlZpZXci
KTsKLSAgICAgICAgcW1sUmVnaXN0ZXJVbmNyZWF0YWJsZVR5cGU8UVF1aWNrV2ViVmlld1ByaXZh
dGU+KHVyaSwgMywgMCwgIldlYlZpZXdQcml2YXRlIiwgUU9iamVjdDo6dHIoIkNhbm5vdCBjcmVh
dGUgc2VwYXJhdGUgaW5zdGFuY2Ugb2YgV2ViVmlld1ByaXZhdGUiKSk7Ci0gICAgfQotfTsKLQot
UVRfRU5EX05BTUVTUEFDRQotCi0jaW5jbHVkZSAicGx1Z2luLm1vYyIKLQotUV9FWFBPUlRfUExV
R0lOMihxbWx3ZWJraXRwbHVnaW5wcml2YXRlLCBRVF9QUkVQRU5EX05BTUVTUEFDRShXZWJLaXRR
bWxQbHVnaW5Qcml2YXRlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L2RlY2xhcmF0
aXZlL3ByaXZhdGUvcHJpdmF0ZS5wcm8gYi9Tb3VyY2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL3By
aXZhdGUvcHJpdmF0ZS5wcm8KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg4NmI3M2Iu
LjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9wcml2YXRlL3ByaXZh
dGUucHJvCisrKyAvZGV2L251bGwKQEAgLTEsNTQgKzAsMCBAQAotIyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFBy
b2plY3QgZmlsZSBmb3IgdGhlIFF0V2ViS2l0IFFNTCBwcml2YXRlIHBsdWdpbgotIwotIyBTZWUg
J1Rvb2xzL3FtYWtlL1JFQURNRScgZm9yIGFuIG92ZXJ2aWV3IG9mIHRoZSBidWlsZCBzeXN0ZW0K
LSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQotCi1URU1QTEFURSA9IGxpYgotVEFSR0VUICA9IHFtbHdlYmtpdHByaXZh
dGVwbHVnaW4KLQotVEFSR0VULm1vZHVsZV9uYW1lID0gUXRXZWJLaXQvcHJpdmF0ZQotCi1DT05G
SUcgKz0gcXQgcGx1Z2luCi0KLXdpbjMyfG1hYzohd2luY2UqOiF3aW4zMi1tc3ZjOiFtYWN4LXhj
b2RlOkNPTkZJRyArPSBkZWJ1Z19hbmRfcmVsZWFzZQotCi1RTUxESVJGSUxFID0gJCR7X1BST19G
SUxFX1BXRF99L3FtbGRpcgotY29weTJidWlsZC5pbnB1dCA9IFFNTERJUkZJTEUKLWNvcHkyYnVp
bGQub3V0cHV0ID0gJCR7Uk9PVF9CVUlMRF9ESVJ9L2ltcG9ydHMvJCR7VEFSR0VULm1vZHVsZV9u
YW1lfS9xbWxkaXIKLSFjb250YWlucyhURU1QTEFURV9QUkVGSVgsIHZjKTpjb3B5MmJ1aWxkLnZh
cmlhYmxlX291dCA9IFBSRV9UQVJHRVRERVBTCi1jb3B5MmJ1aWxkLmNvbW1hbmRzID0gJCRRTUFL
RV9DT1BZICR7UU1BS0VfRklMRV9JTn0gJHtRTUFLRV9GSUxFX09VVH0KLWNvcHkyYnVpbGQubmFt
ZSA9IENPUFkgJHtRTUFLRV9GSUxFX0lOfQotY29weTJidWlsZC5DT05GSUcgKz0gbm9fbGluawot
UU1BS0VfRVhUUkFfQ09NUElMRVJTICs9IGNvcHkyYnVpbGQKLQotVEFSR0VUID0gJCRxdExpYnJh
cnlUYXJnZXQoJCRUQVJHRVQpCi1jb250YWlucyhRVF9DT05GSUcsIHJlZHVjZV9leHBvcnRzKTpD
T05GSUcgKz0gaGlkZV9zeW1ib2xzCi0KLXdpbmNlKjpMSUJTICs9ICQkUU1BS0VfTElCU19HVUkK
LQotbG9hZChqYXZhc2NyaXB0Y29yZSkKLWxvYWQod2ViY29yZSkKLWxvYWQod2Via2l0MikKLUNP
TkZJRyArPSBxdHdlYmtpdAotCi1RVCArPSBkZWNsYXJhdGl2ZSB3aWRnZXRzIG5ldHdvcmsKLQot
REVTVERJUiA9ICQke1JPT1RfQlVJTERfRElSfS9pbXBvcnRzLyQke1RBUkdFVC5tb2R1bGVfbmFt
ZX0KLQotQ09ORklHICs9IHJwYXRoCi1SUEFUSERJUl9SRUxBVElWRV9UT19ERVNURElSID0gLi4v
Li4vbGliCi0KLVNPVVJDRVMgKz0gcGx1Z2luLmNwcAotCi1ERUZJTkVTICs9IEhBVkVfV0VCS0lU
MgotSU5DTFVERVBBVEggKz0gLi4vLi4vLi4vLi4vV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0Ci0K
LXRhcmdldC5wYXRoID0gJCRbUVRfSU5TVEFMTF9JTVBPUlRTXS8kJHtUQVJHRVQubW9kdWxlX25h
bWV9Ci0KLQotcW1sZGlyLmZpbGVzICs9ICQkUFdEL3FtbGRpcgotcW1sZGlyLnBhdGggKz0gICQk
W1FUX0lOU1RBTExfSU1QT1JUU10vJCR7VEFSR0VULm1vZHVsZV9uYW1lfQotCi1JTlNUQUxMUyAr
PSB0YXJnZXQgcW1sZGlyCi0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRp
dmUvcHJpdmF0ZS9xbWxkaXIgYi9Tb3VyY2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL3ByaXZhdGUv
cW1sZGlyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZGM4YjBlLi4wMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvcHJpdmF0ZS9xbWxkaXIKKysrIC9kZXYv
bnVsbApAQCAtMSArMCwwIEBACi1wbHVnaW4gcW1sd2Via2l0cHJpdmF0ZXBsdWdpbgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9wdWJsaWMucHJpIGIvU291cmNlL1dl
YktpdC9xdC9kZWNsYXJhdGl2ZS9wdWJsaWMucHJpCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLmIzMzEzMzkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L2Rl
Y2xhcmF0aXZlL3B1YmxpYy5wcmkKQEAgLTAsMCArMSw1OCBAQAorIyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFBy
b2plY3QgZmlsZSBmb3IgdGhlIFF0V2ViS2l0IFFNTCBwbHVnaW4KKyMKKyMgU2VlICdUb29scy9x
bWFrZS9SRUFETUUnIGZvciBhbiBvdmVydmlldyBvZiB0aGUgYnVpbGQgc3lzdGVtCisjIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKworVEVNUExBVEUgPSBsaWIKK1RBUkdFVCAgPSBxbWx3ZWJraXRwbHVnaW4KKworVEFS
R0VULm1vZHVsZV9uYW1lID0gUXRXZWJLaXQKKworQ09ORklHICs9IHF0IHBsdWdpbgorCit3aW4z
MnxtYWM6IXdpbmNlKjohd2luMzItbXN2YzohbWFjeC14Y29kZTpDT05GSUcgKz0gZGVidWdfYW5k
X3JlbGVhc2UKKworUU1MRElSRklMRSA9ICQke19QUk9fRklMRV9QV0RffS9xbWxkaXIKK2NvcHky
YnVpbGQuaW5wdXQgPSBRTUxESVJGSUxFCitjb3B5MmJ1aWxkLm91dHB1dCA9ICQke1JPT1RfQlVJ
TERfRElSfS9pbXBvcnRzLyQke1RBUkdFVC5tb2R1bGVfbmFtZX0vcW1sZGlyCishY29udGFpbnMo
VEVNUExBVEVfUFJFRklYLCB2Yyk6Y29weTJidWlsZC52YXJpYWJsZV9vdXQgPSBQUkVfVEFSR0VU
REVQUworY29weTJidWlsZC5jb21tYW5kcyA9ICQkUU1BS0VfQ09QWSAke1FNQUtFX0ZJTEVfSU59
ICR7UU1BS0VfRklMRV9PVVR9Citjb3B5MmJ1aWxkLm5hbWUgPSBDT1BZICR7UU1BS0VfRklMRV9J
Tn0KK2NvcHkyYnVpbGQuQ09ORklHICs9IG5vX2xpbmsKK1FNQUtFX0VYVFJBX0NPTVBJTEVSUyAr
PSBjb3B5MmJ1aWxkCisKK1RBUkdFVCA9ICQkcXRMaWJyYXJ5VGFyZ2V0KCQkVEFSR0VUKQorY29u
dGFpbnMoUVRfQ09ORklHLCByZWR1Y2VfZXhwb3J0cyk6Q09ORklHICs9IGhpZGVfc3ltYm9scwor
Cit3aW5jZSo6TElCUyArPSAkJFFNQUtFX0xJQlNfR1VJCisKK0NPTkZJRyArPSBxdHdlYmtpdCBx
dHdlYmtpdC1wcml2YXRlCisKK1FUICs9IGRlY2xhcmF0aXZlCitoYXZlUXQoNSk6IFFUICs9IHdp
ZGdldHMKKworY29udGFpbnMoUVRfQ09ORklHLCBxdHF1aWNrMSk6IHsKKyAgICBRVCArPSBxdHF1
aWNrMQorfQorCitERVNURElSID0gJCR7Uk9PVF9CVUlMRF9ESVJ9L2ltcG9ydHMvJCR7VEFSR0VU
Lm1vZHVsZV9uYW1lfQorCitDT05GSUcgKz0gcnBhdGgKK1JQQVRIRElSX1JFTEFUSVZFX1RPX0RF
U1RESVIgPSAuLi8uLi9saWIKKworU09VUkNFUyArPSBxZGVjbGFyYXRpdmV3ZWJ2aWV3LmNwcCBw
bHVnaW4uY3BwCitIRUFERVJTICs9IHFkZWNsYXJhdGl2ZXdlYnZpZXdfcC5oCisKKyFub193ZWJr
aXQyOiB7CisgICAgREVGSU5FUyArPSBIQVZFX1dFQktJVDIKKyAgICBRVCArPSBuZXR3b3JrCit9
CisKK3RhcmdldC5wYXRoID0gJCRbUVRfSU5TVEFMTF9JTVBPUlRTXS8kJHtUQVJHRVQubW9kdWxl
X25hbWV9CisKKworcW1sZGlyLmZpbGVzICs9ICQkUFdEL3FtbGRpcgorcW1sZGlyLnBhdGggKz0g
ICQkW1FUX0lOU1RBTExfSU1QT1JUU10vJCR7VEFSR0VULm1vZHVsZV9uYW1lfQorCitJTlNUQUxM
UyArPSB0YXJnZXQgcW1sZGlyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJp
IGIvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQppbmRleCBkMzc4YzU0Li5kNGE3NDA1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJLaXQyL1Rh
cmdldC5wcmkKQEAgLTI0MiwxNSArMjQyLDE0IEBAIEhFQURFUlMgKz0gXAogICAgIFVJUHJvY2Vz
cy9BUEkvY3BwL1dLUmV0YWluUHRyLmggXAogICAgIFVJUHJvY2Vzcy9BUEkvY3BwL3F0L1dLU3Ry
aW5nUXQuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9jcHAvcXQvV0tVUkxRdC5oIFwKLSAgICBVSVBy
b2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlcy5oIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3F3
ZWJwcmVmZXJlbmNlc19wLmggXAotICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYmRvd25sb2FkaXRl
bS5oIFwKKyAgICBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlc19wX3AuaCBcCiAgICAg
VUlQcm9jZXNzL0FQSS9xdC9xd2ViZG93bmxvYWRpdGVtX3AuaCBcCi0gICAgVUlQcm9jZXNzL0FQ
SS9xdC9xcXVpY2t3ZWJwYWdlLmggXAorICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYmRvd25sb2Fk
aXRlbV9wX3AuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJwYWdlX3AuaCBcCi0g
ICAgVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmggXAorICAgIFVJUHJvY2Vzcy9BUEkv
cXQvcXF1aWNrd2VicGFnZV9wX3AuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2
aWV3X3AuaCBcCi0gICAgVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3cHJpdmF0ZWV4dGVu
c2lvbl9wLmggXAorICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaCBcCiAg
ICAgVUlQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHku
aCBcCiAgICAgVUlQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uRGVjaXNpb25M
aXN0ZW5lci5oIFwKICAgICBVSVByb2Nlc3MvQXV0aGVudGljYXRpb24vV2ViQ3JlZGVudGlhbC5o
IFwKQEAgLTU1Myw3ICs1NTIsNiBAQCBTT1VSQ0VTICs9IFwKICAgICBVSVByb2Nlc3MvQVBJL3F0
L3FxdWlja3dlYnBhZ2UuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcu
Y3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlcy5jcHAgXAotICAgIFVJ
UHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld3ByaXZhdGVleHRlbnNpb24uY3BwIFwKICAgICBV
SVByb2Nlc3MvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eS5jcHAg
XAogICAgIFVJUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlz
dGVuZXIuY3BwIFwKICAgICBVSVByb2Nlc3MvQXV0aGVudGljYXRpb24vV2ViQ3JlZGVudGlhbC5j
cHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3
ZWJwYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2VicGFn
ZS5jcHAKaW5kZXggYTEyMjc4Zi4uZWYxMzQ3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJwYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnBhZ2UuY3BwCkBAIC0xOSwxMiArMTksMTIgQEAKICAq
LwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAicXF1aWNrd2VicGFnZS5oIgorI2lu
Y2x1ZGUgInFxdWlja3dlYnBhZ2VfcC5oIgogCiAjaW5jbHVkZSAiUXRXZWJQYWdlUHJveHkuaCIK
ICNpbmNsdWRlICJUcmFuc2Zvcm1hdGlvbk1hdHJpeC5oIgotI2luY2x1ZGUgInFxdWlja3dlYnBh
Z2VfcC5oIgotI2luY2x1ZGUgInFxdWlja3dlYnZpZXcuaCIKKyNpbmNsdWRlICJxcXVpY2t3ZWJw
YWdlX3BfcC5oIgorI2luY2x1ZGUgInFxdWlja3dlYnZpZXdfcC5oIgogI2luY2x1ZGUgPFF0Q29y
ZS9RVXJsPgogI2luY2x1ZGUgPFF0RGVjbGFyYXRpdmUvUVF1aWNrQ2FudmFzPgogI2luY2x1ZGUg
PFF0RGVjbGFyYXRpdmUvUVNHRW5naW5lPgpAQCAtMjQzLDQgKzI0Myw0IEBAIHZvaWQgUVF1aWNr
V2ViUGFnZVByaXZhdGU6Ol9xX29uU2NlbmVHcmFwaEluaXRpYWxpemVkKCkKICAgICBRT2JqZWN0
Ojpjb25uZWN0KGVuZ2luZSwgU0lHTkFMKGFmdGVyUmVuZGVyaW5nKCkpLCBxLCBTTE9UKF9xX29u
QWZ0ZXJTY2VuZVJlbmRlcigpKSwgUXQ6OkRpcmVjdENvbm5lY3Rpb24pOwogfQogCi0jaW5jbHVk
ZSAibW9jX3FxdWlja3dlYnBhZ2UuY3BwIgorI2luY2x1ZGUgIm1vY19xcXVpY2t3ZWJwYWdlX3Au
Y3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3
ZWJwYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnBhZ2Uu
aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzhiOWNkNC4uMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnBhZ2UuaAorKysgL2Rldi9u
dWxsCkBAIC0xLDc3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgTm9raWEgQ29y
cG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCi0gKgotICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
LSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
Ci0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAq
Ci0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAq
IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICoKLSAqLwotCi0jaWZuZGVmIHFxdWlja3dl
YnBhZ2VfaAotI2RlZmluZSBxcXVpY2t3ZWJwYWdlX2gKLQotI2luY2x1ZGUgInF3ZWJraXRnbG9i
YWwuaCIKLQotI2luY2x1ZGUgPFF0Q29yZS9RU2hhcmVkUG9pbnRlcj4KLSNpbmNsdWRlIDxRdERl
Y2xhcmF0aXZlL1FRdWlja0l0ZW0+Ci0KLWNsYXNzIFFRdWlja1dlYlZpZXc7Ci1jbGFzcyBRUXVp
Y2tXZWJQYWdlUHJpdmF0ZTsKLWNsYXNzIFFXZWJQcmVmZXJlbmNlczsKLQotbmFtZXNwYWNlIFdl
YktpdCB7Ci1jbGFzcyBRdFZpZXdJbnRlcmZhY2U7Ci19Ci0KLWNsYXNzIFFXRUJLSVRfRVhQT1JU
IFFRdWlja1dlYlBhZ2UgOiBwdWJsaWMgUVF1aWNrSXRlbSB7Ci0gICAgUV9PQkpFQ1QKLXB1Ymxp
YzoKLSAgICBRUXVpY2tXZWJQYWdlKFFRdWlja0l0ZW0qIHBhcmVudCA9IDApOwotICAgIHZpcnR1
YWwgflFRdWlja1dlYlBhZ2UoKTsKLQotcHJvdGVjdGVkOgotICAgIHZpcnR1YWwgdm9pZCBrZXlQ
cmVzc0V2ZW50KFFLZXlFdmVudCopOwotICAgIHZpcnR1YWwgdm9pZCBrZXlSZWxlYXNlRXZlbnQo
UUtleUV2ZW50Kik7Ci0gICAgdmlydHVhbCB2b2lkIGlucHV0TWV0aG9kRXZlbnQoUUlucHV0TWV0
aG9kRXZlbnQqKTsKLSAgICB2aXJ0dWFsIHZvaWQgZm9jdXNJbkV2ZW50KFFGb2N1c0V2ZW50Kik7
Ci0gICAgdmlydHVhbCB2b2lkIGZvY3VzT3V0RXZlbnQoUUZvY3VzRXZlbnQqKTsKLSAgICB2aXJ0
dWFsIHZvaWQgbW91c2VQcmVzc0V2ZW50KFFNb3VzZUV2ZW50Kik7Ci0gICAgdmlydHVhbCB2b2lk
IG1vdXNlTW92ZUV2ZW50KFFNb3VzZUV2ZW50Kik7Ci0gICAgdmlydHVhbCB2b2lkIG1vdXNlUmVs
ZWFzZUV2ZW50KFFNb3VzZUV2ZW50ICopOwotICAgIHZpcnR1YWwgdm9pZCBtb3VzZURvdWJsZUNs
aWNrRXZlbnQoUU1vdXNlRXZlbnQqKTsKLSAgICB2aXJ0dWFsIHZvaWQgd2hlZWxFdmVudChRV2hl
ZWxFdmVudCopOwotICAgIHZpcnR1YWwgdm9pZCBob3ZlckVudGVyRXZlbnQoUUhvdmVyRXZlbnQq
KTsKLSAgICB2aXJ0dWFsIHZvaWQgaG92ZXJNb3ZlRXZlbnQoUUhvdmVyRXZlbnQqKTsKLSAgICB2
aXJ0dWFsIHZvaWQgaG92ZXJMZWF2ZUV2ZW50KFFIb3ZlckV2ZW50Kik7Ci0gICAgdmlydHVhbCB2
b2lkIGRyYWdNb3ZlRXZlbnQoUURyYWdNb3ZlRXZlbnQqKTsKLSAgICB2aXJ0dWFsIHZvaWQgZHJh
Z0VudGVyRXZlbnQoUURyYWdFbnRlckV2ZW50Kik7Ci0gICAgdmlydHVhbCB2b2lkIGRyYWdMZWF2
ZUV2ZW50KFFEcmFnTGVhdmVFdmVudCopOwotICAgIHZpcnR1YWwgdm9pZCBkcm9wRXZlbnQoUURy
b3BFdmVudCopOwotICAgIHZpcnR1YWwgdm9pZCB0b3VjaEV2ZW50KFFUb3VjaEV2ZW50Kik7Ci0g
ICAgdmlydHVhbCBib29sIGV2ZW50KFFFdmVudCopOwotICAgIHZpcnR1YWwgdm9pZCBnZW9tZXRy
eUNoYW5nZWQoY29uc3QgUVJlY3RGJiwgY29uc3QgUVJlY3RGJik7Ci0gICAgdmlydHVhbCB2b2lk
IGl0ZW1DaGFuZ2UoSXRlbUNoYW5nZSwgY29uc3QgSXRlbUNoYW5nZURhdGEmKTsKLQotcHJpdmF0
ZToKLSAgICBRX1BSSVZBVEVfU0xPVChkLCB2b2lkIF9xX29uQWZ0ZXJTY2VuZVJlbmRlcigpKTsK
LSAgICBRX1BSSVZBVEVfU0xPVChkLCB2b2lkIF9xX29uU2NlbmVHcmFwaEluaXRpYWxpemVkKCkp
OwotCi0gICAgUVF1aWNrV2ViUGFnZVByaXZhdGUqIGQ7Ci0gICAgZnJpZW5kIGNsYXNzIFFRdWlj
a1dlYlZpZXdQcml2YXRlOwotICAgIGZyaWVuZCBjbGFzcyBXZWJLaXQ6OlF0Vmlld0ludGVyZmFj
ZTsKLX07Ci0KLVFNTF9ERUNMQVJFX1RZUEUoUVF1aWNrV2ViUGFnZSkKLQotI2VuZGlmIC8qIHFx
dWlja3dlYnBhZ2VfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9xdC9xcXVpY2t3ZWJwYWdlX3AuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQv
cXF1aWNrd2VicGFnZV9wLmgKaW5kZXggMThkODE4ZC4uYmM5Y2IyOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJwYWdlX3AuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnBhZ2VfcC5oCkBAIC0yMSwzNSAr
MjEsNTcgQEAKICNpZm5kZWYgcXF1aWNrd2VicGFnZV9wX2gKICNkZWZpbmUgcXF1aWNrd2VicGFn
ZV9wX2gKIAotI2luY2x1ZGUgIlF0U0dVcGRhdGVRdWV1ZS5oIgotI2luY2x1ZGUgIlF0Vmlld0lu
dGVyZmFjZS5oIgotI2luY2x1ZGUgIlF0V2ViUGFnZVByb3h5LmgiCi0jaW5jbHVkZSAicXF1aWNr
d2VicGFnZS5oIgorI2luY2x1ZGUgInF3ZWJraXRnbG9iYWwuaCIKIAotUVRfQkVHSU5fTkFNRVNQ
QUNFCi1jbGFzcyBRUmVjdEY7Ci1jbGFzcyBRU0dOb2RlOwotY2xhc3MgUVN0cmluZzsKLVFUX0VO
RF9OQU1FU1BBQ0UKKyNpbmNsdWRlIDxRdENvcmUvUVNoYXJlZFBvaW50ZXI+CisjaW5jbHVkZSA8
UXREZWNsYXJhdGl2ZS9RUXVpY2tJdGVtPgogCi1jbGFzcyBRUXVpY2tXZWJQYWdlOworY2xhc3Mg
UVF1aWNrV2ViVmlldzsKK2NsYXNzIFFRdWlja1dlYlBhZ2VQcml2YXRlOworY2xhc3MgUVdlYlBy
ZWZlcmVuY2VzOwogCi1jbGFzcyBRUXVpY2tXZWJQYWdlUHJpdmF0ZSB7Ci1wdWJsaWM6Ci0gICAg
UVF1aWNrV2ViUGFnZVByaXZhdGUoUVF1aWNrV2ViUGFnZSogdmlldyk7CituYW1lc3BhY2UgV2Vi
S2l0IHsKK2NsYXNzIFF0Vmlld0ludGVyZmFjZTsKK30KIAotICAgIHZvaWQgc2V0UGFnZVByb3h5
KFF0V2ViUGFnZVByb3h5Kik7CitjbGFzcyBRV0VCS0lUX0VYUE9SVCBRUXVpY2tXZWJQYWdlIDog
cHVibGljIFFRdWlja0l0ZW0geworICAgIFFfT0JKRUNUCitwdWJsaWM6CisgICAgUVF1aWNrV2Vi
UGFnZShRUXVpY2tJdGVtKiBwYXJlbnQgPSAwKTsKKyAgICB2aXJ0dWFsIH5RUXVpY2tXZWJQYWdl
KCk7CiAKLSAgICB2b2lkIGluaXRpYWxpemVTY2VuZUdyYXBoQ29ubmVjdGlvbnMoKTsKK3Byb3Rl
Y3RlZDoKKyAgICB2aXJ0dWFsIHZvaWQga2V5UHJlc3NFdmVudChRS2V5RXZlbnQqKTsKKyAgICB2
aXJ0dWFsIHZvaWQga2V5UmVsZWFzZUV2ZW50KFFLZXlFdmVudCopOworICAgIHZpcnR1YWwgdm9p
ZCBpbnB1dE1ldGhvZEV2ZW50KFFJbnB1dE1ldGhvZEV2ZW50Kik7CisgICAgdmlydHVhbCB2b2lk
IGZvY3VzSW5FdmVudChRRm9jdXNFdmVudCopOworICAgIHZpcnR1YWwgdm9pZCBmb2N1c091dEV2
ZW50KFFGb2N1c0V2ZW50Kik7CisgICAgdmlydHVhbCB2b2lkIG1vdXNlUHJlc3NFdmVudChRTW91
c2VFdmVudCopOworICAgIHZpcnR1YWwgdm9pZCBtb3VzZU1vdmVFdmVudChRTW91c2VFdmVudCop
OworICAgIHZpcnR1YWwgdm9pZCBtb3VzZVJlbGVhc2VFdmVudChRTW91c2VFdmVudCAqKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgbW91c2VEb3VibGVDbGlja0V2ZW50KFFNb3VzZUV2ZW50Kik7CisgICAg
dmlydHVhbCB2b2lkIHdoZWVsRXZlbnQoUVdoZWVsRXZlbnQqKTsKKyAgICB2aXJ0dWFsIHZvaWQg
aG92ZXJFbnRlckV2ZW50KFFIb3ZlckV2ZW50Kik7CisgICAgdmlydHVhbCB2b2lkIGhvdmVyTW92
ZUV2ZW50KFFIb3ZlckV2ZW50Kik7CisgICAgdmlydHVhbCB2b2lkIGhvdmVyTGVhdmVFdmVudChR
SG92ZXJFdmVudCopOworICAgIHZpcnR1YWwgdm9pZCBkcmFnTW92ZUV2ZW50KFFEcmFnTW92ZUV2
ZW50Kik7CisgICAgdmlydHVhbCB2b2lkIGRyYWdFbnRlckV2ZW50KFFEcmFnRW50ZXJFdmVudCop
OworICAgIHZpcnR1YWwgdm9pZCBkcmFnTGVhdmVFdmVudChRRHJhZ0xlYXZlRXZlbnQqKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZHJvcEV2ZW50KFFEcm9wRXZlbnQqKTsKKyAgICB2aXJ0dWFsIHZvaWQg
dG91Y2hFdmVudChRVG91Y2hFdmVudCopOworICAgIHZpcnR1YWwgYm9vbCBldmVudChRRXZlbnQq
KTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2VvbWV0cnlDaGFuZ2VkKGNvbnN0IFFSZWN0RiYsIGNvbnN0
IFFSZWN0RiYpOworICAgIHZpcnR1YWwgdm9pZCBpdGVtQ2hhbmdlKEl0ZW1DaGFuZ2UsIGNvbnN0
IEl0ZW1DaGFuZ2VEYXRhJik7CiAKLSAgICB2b2lkIF9xX29uQWZ0ZXJTY2VuZVJlbmRlcigpOwot
ICAgIHZvaWQgX3Ffb25TY2VuZUdyYXBoSW5pdGlhbGl6ZWQoKTsKLSAgICB2b2lkIHBhaW50VG9D
dXJyZW50R0xDb250ZXh0KCk7Citwcml2YXRlOgorICAgIFFfUFJJVkFURV9TTE9UKGQsIHZvaWQg
X3Ffb25BZnRlclNjZW5lUmVuZGVyKCkpOworICAgIFFfUFJJVkFURV9TTE9UKGQsIHZvaWQgX3Ff
b25TY2VuZUdyYXBoSW5pdGlhbGl6ZWQoKSk7CiAKLSAgICBRUXVpY2tXZWJQYWdlKiBjb25zdCBx
OwotICAgIFF0V2ViUGFnZVByb3h5KiBwYWdlUHJveHk7Ci0gICAgV2ViS2l0OjpRdFNHVXBkYXRl
UXVldWUgc2dVcGRhdGVRdWV1ZTsKLSAgICBib29sIHBhaW50aW5nSXNJbml0aWFsaXplZDsKKyAg
ICBRUXVpY2tXZWJQYWdlUHJpdmF0ZSogZDsKKyAgICBmcmllbmQgY2xhc3MgUVF1aWNrV2ViVmll
d1ByaXZhdGU7CisgICAgZnJpZW5kIGNsYXNzIFdlYktpdDo6UXRWaWV3SW50ZXJmYWNlOwogfTsK
IAotI2VuZGlmIC8qIHFxdWlja3dlYnBhZ2VfcF9oICovCitRTUxfREVDTEFSRV9UWVBFKFFRdWlj
a1dlYlBhZ2UpCisKKyNlbmRpZiAvLyBxcXVpY2t3ZWJwYWdlX3BfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJwYWdlX3BfcC5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJwYWdlX3BfcC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM5MjZiYWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnBhZ2VfcF9wLmgKQEAgLTAsMCAr
MSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQv
b3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBzZWUgdGhlIGZpbGUgQ09QWUlO
Ry5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpZm5kZWYgcXF1aWNrd2VicGFnZV9wX3BfaAor
I2RlZmluZSBxcXVpY2t3ZWJwYWdlX3BfcF9oCisKKyNpbmNsdWRlICJRdFNHVXBkYXRlUXVldWUu
aCIKKyNpbmNsdWRlICJRdFZpZXdJbnRlcmZhY2UuaCIKKyNpbmNsdWRlICJRdFdlYlBhZ2VQcm94
eS5oIgorI2luY2x1ZGUgInFxdWlja3dlYnBhZ2VfcC5oIgorCitRVF9CRUdJTl9OQU1FU1BBQ0UK
K2NsYXNzIFFSZWN0RjsKK2NsYXNzIFFTR05vZGU7CitjbGFzcyBRU3RyaW5nOworUVRfRU5EX05B
TUVTUEFDRQorCitjbGFzcyBRUXVpY2tXZWJQYWdlOworCitjbGFzcyBRUXVpY2tXZWJQYWdlUHJp
dmF0ZSB7CitwdWJsaWM6CisgICAgUVF1aWNrV2ViUGFnZVByaXZhdGUoUVF1aWNrV2ViUGFnZSog
dmlldyk7CisKKyAgICB2b2lkIHNldFBhZ2VQcm94eShRdFdlYlBhZ2VQcm94eSopOworCisgICAg
dm9pZCBpbml0aWFsaXplU2NlbmVHcmFwaENvbm5lY3Rpb25zKCk7CisKKyAgICB2b2lkIF9xX29u
QWZ0ZXJTY2VuZVJlbmRlcigpOworICAgIHZvaWQgX3Ffb25TY2VuZUdyYXBoSW5pdGlhbGl6ZWQo
KTsKKyAgICB2b2lkIHBhaW50VG9DdXJyZW50R0xDb250ZXh0KCk7CisKKyAgICBRUXVpY2tXZWJQ
YWdlKiBjb25zdCBxOworICAgIFF0V2ViUGFnZVByb3h5KiBwYWdlUHJveHk7CisgICAgV2ViS2l0
OjpRdFNHVXBkYXRlUXVldWUgc2dVcGRhdGVRdWV1ZTsKKyAgICBib29sIHBhaW50aW5nSXNJbml0
aWFsaXplZDsKK307CisKKyNlbmRpZiAvLyBxcXVpY2t3ZWJwYWdlX3BfcF9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcAppbmRleCA2ZDBh
NmM2Li45NTVmYjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3FxdWlja3dlYnZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQv
cXF1aWNrd2Vidmlldy5jcHAKQEAgLTE5LDcgKzE5LDcgQEAKICAqLwogCiAjaW5jbHVkZSAiY29u
ZmlnLmgiCi0jaW5jbHVkZSAicXF1aWNrd2Vidmlldy5oIgorI2luY2x1ZGUgInFxdWlja3dlYnZp
ZXdfcC5oIgogCiAjaW5jbHVkZSAiUXRWaWV3SW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAiUXRXZWJQ
YWdlUHJveHkuaCIKQEAgLTI3LDkgKzI3LDkgQEAKICNpbmNsdWRlICJXZWJQYWdlR3JvdXAuaCIK
ICNpbmNsdWRlICJXZWJQcmVmZXJlbmNlcy5oIgogCi0jaW5jbHVkZSAicXF1aWNrd2VicGFnZV9w
LmgiCi0jaW5jbHVkZSAicXF1aWNrd2Vidmlld19wLmgiCi0jaW5jbHVkZSAicXdlYnByZWZlcmVu
Y2VzX3AuaCIKKyNpbmNsdWRlICJxcXVpY2t3ZWJwYWdlX3BfcC5oIgorI2luY2x1ZGUgInFxdWlj
a3dlYnZpZXdfcF9wLmgiCisjaW5jbHVkZSAicXdlYnByZWZlcmVuY2VzX3BfcC5oIgogCiAjaW5j
bHVkZSA8UXREZWNsYXJhdGl2ZS9RUXVpY2tDYW52YXM+CiAjaW5jbHVkZSA8UXRXaWRnZXRzL1FG
aWxlRGlhbG9nPgpAQCAtMzU1LDkgKzM1NSwyNyBAQCB2b2lkIFFRdWlja1dlYlZpZXdQcml2YXRl
OjpzZXRQYWdlUHJveHkoUXRXZWJQYWdlUHJveHkqIHBhZ2VQcm94eSkKICAgICBRT2JqZWN0Ojpj
b25uZWN0KHBhZ2VQcm94eSwgU0lHTkFMKHJlY2VpdmVkTWVzc2FnZUZyb21OYXZpZ2F0b3JRdE9i
amVjdChRVmFyaWFudE1hcCkpLCBxLCBTSUdOQUwobWVzc2FnZVJlY2VpdmVkKFFWYXJpYW50TWFw
KSkpOwogfQogCitRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsOjpRUXVpY2tXZWJWaWV3RXhwZXJp
bWVudGFsKFFRdWlja1dlYlZpZXcgKndlYlZpZXcpCisgICAgOiBRT2JqZWN0KHdlYlZpZXcpCisg
ICAgLCBxX3B0cih3ZWJWaWV3KQorICAgICwgZF9wdHIod2ViVmlldy0+ZF9wdHIuZGF0YSgpKQor
eworfQorCitRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsOjp+UVF1aWNrV2ViVmlld0V4cGVyaW1l
bnRhbCgpCit7Cit9CisKK3ZvaWQgUVF1aWNrV2ViVmlld0V4cGVyaW1lbnRhbDo6c2V0VXNlVHJh
ZGl0aW9uYWxEZXNrdG9wQmVoYXZpb3VyKGJvb2wgZW5hYmxlKQoreworICAgIFFfRChRUXVpY2tX
ZWJWaWV3KTsKKyAgICBkLT5zZXRVc2VUcmFkaXRpb25hbERlc2t0b3BCZWhhdmlvdXIoZW5hYmxl
KTsKK30KKwogUVF1aWNrV2ViVmlldzo6UVF1aWNrV2ViVmlldyhRUXVpY2tJdGVtKiBwYXJlbnQp
CiAgICAgOiBRUXVpY2tJdGVtKHBhcmVudCkKICAgICAsIGRfcHRyKG5ldyBRUXVpY2tXZWJWaWV3
UHJpdmF0ZSkKKyAgICAsIG1fZXhwZXJpbWVudGFsKG5ldyBRUXVpY2tXZWJWaWV3RXhwZXJpbWVu
dGFsKHRoaXMpKQogewogICAgIFFfRChRUXVpY2tXZWJWaWV3KTsKICAgICBkLT5pbml0aWFsaXpl
KHRoaXMpOwpAQCAtMzY3LDYgKzM4NSw3IEBAIFFRdWlja1dlYlZpZXc6OlFRdWlja1dlYlZpZXco
UVF1aWNrSXRlbSogcGFyZW50KQogUVF1aWNrV2ViVmlldzo6UVF1aWNrV2ViVmlldyhXS0NvbnRl
eHRSZWYgY29udGV4dFJlZiwgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwUmVmLCBRUXVpY2tJdGVt
KiBwYXJlbnQpCiAgICAgOiBRUXVpY2tJdGVtKHBhcmVudCkKICAgICAsIGRfcHRyKG5ldyBRUXVp
Y2tXZWJWaWV3UHJpdmF0ZSkKKyAgICAsIG1fZXhwZXJpbWVudGFsKG5ldyBRUXVpY2tXZWJWaWV3
RXhwZXJpbWVudGFsKHRoaXMpKQogewogICAgIFFfRChRUXVpY2tXZWJWaWV3KTsKICAgICBkLT5p
bml0aWFsaXplKHRoaXMsIGNvbnRleHRSZWYsIHBhZ2VHcm91cFJlZik7CkBAIC00NjgsNiArNDg3
LDExIEBAIFFXZWJQcmVmZXJlbmNlcyogUVF1aWNrV2ViVmlldzo6cHJlZmVyZW5jZXMoKSBjb25z
dAogICAgIHJldHVybiBkLT5wYWdlUHJveHktPnByZWZlcmVuY2VzKCk7CiB9CiAKK1FRdWlja1dl
YlZpZXdFeHBlcmltZW50YWwqIFFRdWlja1dlYlZpZXc6OmV4cGVyaW1lbnRhbCgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1fZXhwZXJpbWVudGFsOworfQorCiB2b2lkIFFRdWlja1dlYlZpZXc6Omdl
b21ldHJ5Q2hhbmdlZChjb25zdCBRUmVjdEYmIG5ld0dlb21ldHJ5LCBjb25zdCBRUmVjdEYmIG9s
ZEdlb21ldHJ5KQogewogICAgIFFfRChRUXVpY2tXZWJWaWV3KTsKQEAgLTQ5Myw1ICs1MTcsNCBA
QCBXS1BhZ2VSZWYgUVF1aWNrV2ViVmlldzo6cGFnZVJlZigpIGNvbnN0CiAgICAgcmV0dXJuIGQt
PnBhZ2VQcm94eS0+cGFnZVJlZigpOwogfQogCi0jaW5jbHVkZSAibW9jX3FxdWlja3dlYnZpZXcu
Y3BwIgogI2luY2x1ZGUgIm1vY19xcXVpY2t3ZWJ2aWV3X3AuY3BwIgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuaApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZjhiYTgxNy4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuaAorKysgL2Rldi9udWxsCkBAIC0xLDEzOCArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMg
c3Vic2lkaWFyeSgtaWVzKQotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K
LSAqCi0gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZQotICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4g
IElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEz
MDEsIFVTQS4KLSAqCi0gKi8KLQotI2lmbmRlZiBxcXVpY2t3ZWJ2aWV3X2gKLSNkZWZpbmUgcXF1
aWNrd2Vidmlld19oCi0KLSNpbmNsdWRlICJxd2Via2l0Z2xvYmFsLmgiCi0jaW5jbHVkZSA8UXRE
ZWNsYXJhdGl2ZS9xcXVpY2tpdGVtLmg+Ci0KLWNsYXNzIFFRdWlja1dlYlBhZ2U7Ci1jbGFzcyBR
UXVpY2tXZWJWaWV3UHJpdmF0ZTsKLWNsYXNzIFFXZWJEb3dubG9hZEl0ZW07Ci1jbGFzcyBRV2Vi
UHJlZmVyZW5jZXM7Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotY2xhc3MgUXRWaWV3SW50ZXJmYWNl
OwotfQotCi1uYW1lc3BhY2UgV1RSIHsKLWNsYXNzIFBsYXRmb3JtV2ViVmlldzsKLX0KLQotdHlw
ZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tDb250ZXh0KiBXS0NvbnRleHRSZWY7Ci10eXBlZGVm
IGNvbnN0IHN0cnVjdCBPcGFxdWVXS1BhZ2VHcm91cCogV0tQYWdlR3JvdXBSZWY7Ci10eXBlZGVm
IGNvbnN0IHN0cnVjdCBPcGFxdWVXS1BhZ2UqIFdLUGFnZVJlZjsKLQotUVRfQkVHSU5fTkFNRVNQ
QUNFCi1jbGFzcyBRUGFpbnRlcjsKLWNsYXNzIFFVcmw7Ci1RVF9FTkRfTkFNRVNQQUNFCi0KLWNs
YXNzIFFXRUJLSVRfRVhQT1JUIFFRdWlja1dlYlZpZXcgOiBwdWJsaWMgUVF1aWNrSXRlbSB7Ci0g
ICAgUV9PQkpFQ1QKLSAgICBRX1BST1BFUlRZKFFTdHJpbmcgdGl0bGUgUkVBRCB0aXRsZSBOT1RJ
RlkgdGl0bGVDaGFuZ2VkKQotICAgIFFfUFJPUEVSVFkoUVVybCB1cmwgUkVBRCB1cmwgTk9USUZZ
IHVybENoYW5nZWQpCi0gICAgUV9QUk9QRVJUWShpbnQgbG9hZFByb2dyZXNzIFJFQUQgbG9hZFBy
b2dyZXNzIE5PVElGWSBsb2FkUHJvZ3Jlc3NDaGFuZ2VkKQotICAgIFFfUFJPUEVSVFkoYm9vbCBj
YW5Hb0JhY2sgUkVBRCBjYW5Hb0JhY2sgTk9USUZZIG5hdmlnYXRpb25TdGF0ZUNoYW5nZWQgRklO
QUwpCi0gICAgUV9QUk9QRVJUWShib29sIGNhbkdvRm9yd2FyZCBSRUFEIGNhbkdvRm9yd2FyZCBO
T1RJRlkgbmF2aWdhdGlvblN0YXRlQ2hhbmdlZCBGSU5BTCkKLSAgICBRX1BST1BFUlRZKGJvb2wg
Y2FuU3RvcCBSRUFEIGNhblN0b3AgTk9USUZZIG5hdmlnYXRpb25TdGF0ZUNoYW5nZWQgRklOQUwp
Ci0gICAgUV9QUk9QRVJUWShib29sIGNhblJlbG9hZCBSRUFEIGNhblJlbG9hZCBOT1RJRlkgbmF2
aWdhdGlvblN0YXRlQ2hhbmdlZCBGSU5BTCkKLSAgICBRX1BST1BFUlRZKFFXZWJQcmVmZXJlbmNl
cyogcHJlZmVyZW5jZXMgUkVBRCBwcmVmZXJlbmNlcyBDT05TVEFOVCBGSU5BTCkKLSAgICBRX1BS
T1BFUlRZKFFRdWlja1dlYlBhZ2UqIHBhZ2UgUkVBRCBwYWdlIENPTlNUQU5UIEZJTkFMKQotICAg
IFFfRU5VTVMoTmF2aWdhdGlvblBvbGljeSkKLSAgICBRX0VOVU1TKEVycm9yVHlwZSkKLXB1Ymxp
YzoKLSAgICBlbnVtIE5hdmlnYXRpb25Qb2xpY3kgewotICAgICAgICBVc2VQb2xpY3ksCi0gICAg
ICAgIERvd25sb2FkUG9saWN5LAotICAgICAgICBJZ25vcmVQb2xpY3kKLSAgICB9OwotCi0gICAg
ZW51bSBFcnJvclR5cGUgewotICAgICAgICBFbmdpbmVFcnJvciwKLSAgICAgICAgTmV0d29ya0Vy
cm9yLAotICAgICAgICBIdHRwRXJyb3IsCi0gICAgICAgIERvd25sb2FkRXJyb3IKLSAgICB9Owot
ICAgIFFRdWlja1dlYlZpZXcoUVF1aWNrSXRlbSogcGFyZW50ID0gMCk7Ci0gICAgdmlydHVhbCB+
UVF1aWNrV2ViVmlldygpOwotCi0gICAgUVVybCB1cmwoKSBjb25zdDsKLSAgICBRU3RyaW5nIHRp
dGxlKCkgY29uc3Q7Ci0gICAgaW50IGxvYWRQcm9ncmVzcygpIGNvbnN0OwotCi0gICAgYm9vbCBj
YW5Hb0JhY2soKSBjb25zdDsKLSAgICBib29sIGNhbkdvRm9yd2FyZCgpIGNvbnN0OwotICAgIGJv
b2wgY2FuU3RvcCgpIGNvbnN0OwotICAgIGJvb2wgY2FuUmVsb2FkKCkgY29uc3Q7Ci0KLSAgICBR
V2ViUHJlZmVyZW5jZXMqIHByZWZlcmVuY2VzKCkgY29uc3Q7Ci0gICAgUVF1aWNrV2ViUGFnZSog
cGFnZSgpOwotCi1wdWJsaWMgUV9TTE9UUzoKLSAgICB2b2lkIGxvYWQoY29uc3QgUVVybCYpOwot
ICAgIHZvaWQgcG9zdE1lc3NhZ2UoY29uc3QgUVN0cmluZyYpOwotCi0gICAgdm9pZCBnb0JhY2so
KTsKLSAgICB2b2lkIGdvRm9yd2FyZCgpOwotICAgIHZvaWQgc3RvcCgpOwotICAgIHZvaWQgcmVs
b2FkKCk7Ci0KLVFfU0lHTkFMUzoKLSAgICB2b2lkIHRpdGxlQ2hhbmdlZChjb25zdCBRU3RyaW5n
JiB0aXRsZSk7Ci0gICAgdm9pZCBzdGF0dXNCYXJNZXNzYWdlQ2hhbmdlZChjb25zdCBRU3RyaW5n
JiBtZXNzYWdlKTsKLSAgICB2b2lkIGxvYWRTdGFydGVkKCk7Ci0gICAgdm9pZCBsb2FkU3VjY2Vl
ZGVkKCk7Ci0gICAgdm9pZCBsb2FkRmFpbGVkKFFRdWlja1dlYlZpZXc6OkVycm9yVHlwZSBlcnJv
clR5cGUsIGludCBlcnJvckNvZGUsIGNvbnN0IFFVcmwmIHVybCk7Ci0gICAgdm9pZCBsb2FkUHJv
Z3Jlc3NDaGFuZ2VkKGludCBwcm9ncmVzcyk7Ci0gICAgdm9pZCB1cmxDaGFuZ2VkKGNvbnN0IFFV
cmwmIHVybCk7Ci0gICAgdm9pZCBtZXNzYWdlUmVjZWl2ZWQoY29uc3QgUVZhcmlhbnRNYXAmIG1l
c3NhZ2UpOwotICAgIHZvaWQgZG93bmxvYWRSZXF1ZXN0ZWQoUVdlYkRvd25sb2FkSXRlbSogZG93
bmxvYWRJdGVtKTsKLSAgICB2b2lkIGxpbmtIb3ZlcmVkKGNvbnN0IFFVcmwmIHVybCwgY29uc3Qg
UVN0cmluZyYgdGl0bGUpOwotICAgIHZvaWQgdmlld01vZGVDaGFuZ2VkKCk7Ci0gICAgdm9pZCBu
YXZpZ2F0aW9uU3RhdGVDaGFuZ2VkKCk7Ci0KLXByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIHZvaWQg
Z2VvbWV0cnlDaGFuZ2VkKGNvbnN0IFFSZWN0RiYsIGNvbnN0IFFSZWN0RiYpOwotICAgIHZpcnR1
YWwgdm9pZCB0b3VjaEV2ZW50KFFUb3VjaEV2ZW50KiBldmVudCk7Ci0KLXByaXZhdGU6Ci0gICAg
UV9ERUNMQVJFX1BSSVZBVEUoUVF1aWNrV2ViVmlldykKLQotICAgIFFRdWlja1dlYlZpZXcoV0tD
b250ZXh0UmVmLCBXS1BhZ2VHcm91cFJlZiwgUVF1aWNrSXRlbSogcGFyZW50ID0gMCk7Ci0gICAg
V0tQYWdlUmVmIHBhZ2VSZWYoKSBjb25zdDsKLQotICAgIFFfUFJJVkFURV9TTE9UKGRfZnVuYygp
LCB2b2lkIF9xX3ZpZXdwb3J0VXBkYXRlZCgpKTsKLSAgICBRX1BSSVZBVEVfU0xPVChkX2Z1bmMo
KSwgdm9pZCBfcV92aWV3cG9ydFRyYWplY3RvcnlWZWN0b3JDaGFuZ2VkKGNvbnN0IFFQb2ludEYm
KSk7Ci0gICAgUV9QUklWQVRFX1NMT1QoZF9mdW5jKCksIHZvaWQgX3Ffb25PcGVuUGFuZWxGaWxl
c1NlbGVjdGVkKCkpOwotICAgIFFfUFJJVkFURV9TTE9UKGRfZnVuYygpLCB2b2lkIF9xX29uT3Bl
blBhbmVsRmluaXNoZWQoaW50IHJlc3VsdCkpOwotICAgIFFfUFJJVkFURV9TTE9UKGRfZnVuYygp
LCB2b2lkIF9xX29uVmlzaWJsZUNoYW5nZWQoKSk7Ci0gICAgLy8gSGlkZXMgUU9iamVjdDo6ZF9w
dHIgYWxsb3dpbmcgdXMgdG8gdXNlIHRoZSBjb252ZW5pZW5jZSBtYWNyb3MuCi0gICAgUVNjb3Bl
ZFBvaW50ZXI8UVF1aWNrV2ViVmlld1ByaXZhdGU+IGRfcHRyOwotCi0gICAgZnJpZW5kIGNsYXNz
IFF0V2ViUGFnZVByb3h5OwotICAgIGZyaWVuZCBjbGFzcyBXZWJLaXQ6OlF0Vmlld0ludGVyZmFj
ZTsKLSAgICBmcmllbmQgY2xhc3MgV1RSOjpQbGF0Zm9ybVdlYlZpZXc7Ci19OwotCi1RTUxfREVD
TEFSRV9UWVBFKFFRdWlja1dlYlZpZXcpCi0KLSNlbmRpZiAvKiBxcXVpY2t3ZWJ2aWV3X2ggKi8K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmll
d19wLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5o
CmluZGV4IDE4ODNjN2IuLmQ3M2ZhYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaApAQCAtMjEsNzcgKzIxLDEzOCBAQAogI2lmbmRl
ZiBxcXVpY2t3ZWJ2aWV3X3BfaAogI2RlZmluZSBxcXVpY2t3ZWJ2aWV3X3BfaAogCi0jaW5jbHVk
ZSAiUXRQb2xpY3lJbnRlcmZhY2UuaCIKLSNpbmNsdWRlICJRdFZpZXdJbnRlcmZhY2UuaCIKLSNp
bmNsdWRlICJRdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUuaCIKLSNpbmNsdWRlICJRdFdlYlBh
Z2VQcm94eS5oIgorI2luY2x1ZGUgInF3ZWJraXRnbG9iYWwuaCIKKyNpbmNsdWRlIDxRdERlY2xh
cmF0aXZlL3FxdWlja2l0ZW0uaD4KIAotI2luY2x1ZGUgInFxdWlja3dlYnZpZXcuaCIKK2NsYXNz
IFFRdWlja1dlYlBhZ2U7CitjbGFzcyBRUXVpY2tXZWJWaWV3UHJpdmF0ZTsKK2NsYXNzIFFRdWlj
a1dlYlZpZXdFeHBlcmltZW50YWw7CitjbGFzcyBRV2ViRG93bmxvYWRJdGVtOworY2xhc3MgUVdl
YlByZWZlcmVuY2VzOwogCi0jaW5jbHVkZSA8UXRDb3JlL1FPYmplY3Q+Ci0jaW5jbHVkZSA8UXRD
b3JlL1FTY29wZWRQb2ludGVyPgorbmFtZXNwYWNlIFdlYktpdCB7CitjbGFzcyBRdFZpZXdJbnRl
cmZhY2U7Cit9CiAKLWNsYXNzIFF0V2ViUGFnZVByb3h5OworbmFtZXNwYWNlIFdUUiB7CitjbGFz
cyBQbGF0Zm9ybVdlYlZpZXc7Cit9CisKK3R5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLQ29u
dGV4dCogV0tDb250ZXh0UmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQYWdlR3Jv
dXAqIFdLUGFnZUdyb3VwUmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQYWdlKiBX
S1BhZ2VSZWY7CiAKIFFUX0JFR0lOX05BTUVTUEFDRQotY2xhc3MgUUZpbGVEaWFsb2c7CitjbGFz
cyBRUGFpbnRlcjsKK2NsYXNzIFFVcmw7CiBRVF9FTkRfTkFNRVNQQUNFCiAKLWNsYXNzIFFXRUJL
SVRfRVhQT1JUIFFRdWlja1dlYlZpZXdQcml2YXRlIDogcHVibGljIFFPYmplY3QsIHB1YmxpYyBX
ZWJLaXQ6OlF0UG9saWN5SW50ZXJmYWNlIHsKK2NsYXNzIFFXRUJLSVRfRVhQT1JUIFFRdWlja1dl
YlZpZXcgOiBwdWJsaWMgUVF1aWNrSXRlbSB7CiAgICAgUV9PQkpFQ1QKLSAgICBRX0RFQ0xBUkVf
UFVCTElDKFFRdWlja1dlYlZpZXcpCisgICAgUV9QUk9QRVJUWShRU3RyaW5nIHRpdGxlIFJFQUQg
dGl0bGUgTk9USUZZIHRpdGxlQ2hhbmdlZCkKKyAgICBRX1BST1BFUlRZKFFVcmwgdXJsIFJFQUQg
dXJsIE5PVElGWSB1cmxDaGFuZ2VkKQorICAgIFFfUFJPUEVSVFkoaW50IGxvYWRQcm9ncmVzcyBS
RUFEIGxvYWRQcm9ncmVzcyBOT1RJRlkgbG9hZFByb2dyZXNzQ2hhbmdlZCkKKyAgICBRX1BST1BF
UlRZKGJvb2wgY2FuR29CYWNrIFJFQUQgY2FuR29CYWNrIE5PVElGWSBuYXZpZ2F0aW9uU3RhdGVD
aGFuZ2VkIEZJTkFMKQorICAgIFFfUFJPUEVSVFkoYm9vbCBjYW5Hb0ZvcndhcmQgUkVBRCBjYW5H
b0ZvcndhcmQgTk9USUZZIG5hdmlnYXRpb25TdGF0ZUNoYW5nZWQgRklOQUwpCisgICAgUV9QUk9Q
RVJUWShib29sIGNhblN0b3AgUkVBRCBjYW5TdG9wIE5PVElGWSBuYXZpZ2F0aW9uU3RhdGVDaGFu
Z2VkIEZJTkFMKQorICAgIFFfUFJPUEVSVFkoYm9vbCBjYW5SZWxvYWQgUkVBRCBjYW5SZWxvYWQg
Tk9USUZZIG5hdmlnYXRpb25TdGF0ZUNoYW5nZWQgRklOQUwpCisgICAgUV9QUk9QRVJUWShRV2Vi
UHJlZmVyZW5jZXMqIHByZWZlcmVuY2VzIFJFQUQgcHJlZmVyZW5jZXMgQ09OU1RBTlQgRklOQUwp
CisgICAgUV9QUk9QRVJUWShRUXVpY2tXZWJQYWdlKiBwYWdlIFJFQUQgcGFnZSBDT05TVEFOVCBG
SU5BTCkKKyAgICBRX0VOVU1TKE5hdmlnYXRpb25Qb2xpY3kpCisgICAgUV9FTlVNUyhFcnJvclR5
cGUpCiBwdWJsaWM6Ci0gICAgUVF1aWNrV2ViVmlld1ByaXZhdGUoKTsKLSAgICB2aXJ0dWFsIH5R
UXVpY2tXZWJWaWV3UHJpdmF0ZSgpIHsgfQotICAgIHZvaWQgc2V0UGFnZVByb3h5KFF0V2ViUGFn
ZVByb3h5Kik7Ci0gICAgdm9pZCBpbml0aWFsaXplKFFRdWlja1dlYlZpZXcqIHZpZXdwb3J0LCBX
S0NvbnRleHRSZWYgY29udGV4dFJlZiA9IDAsIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cFJlZiA9
IDApOwotICAgIHZvaWQgaW5pdGlhbGl6ZVRvdWNoKFFRdWlja1dlYlZpZXcqIHZpZXdwb3J0KTsK
LSAgICB2b2lkIGluaXRpYWxpemVEZXNrdG9wKFFRdWlja1dlYlZpZXcqIHZpZXdwb3J0KTsKLSAg
ICB2b2lkIGVuYWJsZU1vdXNlRXZlbnRzKCk7Ci0gICAgdm9pZCBkaXNhYmxlTW91c2VFdmVudHMo
KTsKLQotICAgIHZvaWQgbG9hZERpZENvbW1pdCgpOwotICAgIHZvaWQgY29udGVudFNpemVDaGFu
Z2VkKGNvbnN0IFFTaXplJiBuZXdTaXplKTsKLSAgICB2b2lkIHNjcm9sbFBvc2l0aW9uUmVxdWVz
dGVkKGNvbnN0IFFQb2ludCYgcG9zKTsKLSAgICB2b2lkIHVwZGF0ZVZpZXdwb3J0U2l6ZSgpOwot
ICAgIHZvaWQgdXBkYXRlVmlld3BvcnRDb25zdHJhaW50cygpOwotCi0gICAgc3RhdGljIFFRdWlj
a1dlYlZpZXdQcml2YXRlKiBnZXQoUVF1aWNrV2ViVmlldyogdmlldykKLSAgICB7Ci0gICAgICAg
IHJldHVybiB2aWV3LT5kX3B0ci5kYXRhKCk7Ci0gICAgfQotCi0gICAgdm9pZCBfcV92aWV3cG9y
dFVwZGF0ZWQoKTsKLSAgICB2b2lkIF9xX3ZpZXdwb3J0VHJhamVjdG9yeVZlY3RvckNoYW5nZWQo
Y29uc3QgUVBvaW50RiYpOwotICAgIHZvaWQgX3Ffb25PcGVuUGFuZWxGaWxlc1NlbGVjdGVkKCk7
Ci0gICAgdm9pZCBfcV9vbk9wZW5QYW5lbEZpbmlzaGVkKGludCByZXN1bHQpOwotICAgIHZvaWQg
X3Ffb25WaXNpYmxlQ2hhbmdlZCgpOwotCi0gICAgLy8gUXRQb2xpY3lJbnRlcmZhY2UuCi0gICAg
dmlydHVhbCBRdFBvbGljeUludGVyZmFjZTo6UG9saWN5QWN0aW9uIG5hdmlnYXRpb25Qb2xpY3lG
b3JVUkwoY29uc3QgUVVybCYsIFF0OjpNb3VzZUJ1dHRvbiwgUXQ6OktleWJvYXJkTW9kaWZpZXJz
KTsKLQotICAgIHZvaWQgY2hvb3NlRmlsZXMoV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclJlZiwg
Y29uc3QgUVN0cmluZ0xpc3QmIHNlbGVjdGVkRmlsZU5hbWVzLCBXZWJLaXQ6OlF0Vmlld0ludGVy
ZmFjZTo6RmlsZUNob29zZXJUeXBlKTsKLSAgICB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChjb25z
dCBRU3RyaW5nJik7Ci0gICAgYm9vbCBydW5KYXZhU2NyaXB0Q29uZmlybShjb25zdCBRU3RyaW5n
Jik7Ci0gICAgUVN0cmluZyBydW5KYXZhU2NyaXB0UHJvbXB0KGNvbnN0IFFTdHJpbmcmLCBjb25z
dCBRU3RyaW5nJiBkZWZhdWx0VmFsdWUsIGJvb2wmIG9rKTsKLSAgICB2b2lkIGRpZENoYW5nZVZp
ZXdwb3J0UHJvcGVydGllcyhjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cyYgYXJncyk7
Ci0KLXB1YmxpYyBzbG90czoKLSAgICB2b2lkIHNldFVzZVRyYWRpdGlvbmFsRGVza3RvcEJlaGF2
aW91cihib29sIGVuYWJsZSk7CisgICAgZW51bSBOYXZpZ2F0aW9uUG9saWN5IHsKKyAgICAgICAg
VXNlUG9saWN5LAorICAgICAgICBEb3dubG9hZFBvbGljeSwKKyAgICAgICAgSWdub3JlUG9saWN5
CisgICAgfTsKKworICAgIGVudW0gRXJyb3JUeXBlIHsKKyAgICAgICAgRW5naW5lRXJyb3IsCisg
ICAgICAgIE5ldHdvcmtFcnJvciwKKyAgICAgICAgSHR0cEVycm9yLAorICAgICAgICBEb3dubG9h
ZEVycm9yCisgICAgfTsKKyAgICBRUXVpY2tXZWJWaWV3KFFRdWlja0l0ZW0qIHBhcmVudCA9IDAp
OworICAgIHZpcnR1YWwgflFRdWlja1dlYlZpZXcoKTsKKworICAgIFFVcmwgdXJsKCkgY29uc3Q7
CisgICAgUVN0cmluZyB0aXRsZSgpIGNvbnN0OworICAgIGludCBsb2FkUHJvZ3Jlc3MoKSBjb25z
dDsKKworICAgIGJvb2wgY2FuR29CYWNrKCkgY29uc3Q7CisgICAgYm9vbCBjYW5Hb0ZvcndhcmQo
KSBjb25zdDsKKyAgICBib29sIGNhblN0b3AoKSBjb25zdDsKKyAgICBib29sIGNhblJlbG9hZCgp
IGNvbnN0OworCisgICAgUVdlYlByZWZlcmVuY2VzKiBwcmVmZXJlbmNlcygpIGNvbnN0OworICAg
IFFRdWlja1dlYlBhZ2UqIHBhZ2UoKTsKKworICAgIFFRdWlja1dlYlZpZXdFeHBlcmltZW50YWwq
IGV4cGVyaW1lbnRhbCgpIGNvbnN0OworCitwdWJsaWMgUV9TTE9UUzoKKyAgICB2b2lkIGxvYWQo
Y29uc3QgUVVybCYpOworICAgIHZvaWQgcG9zdE1lc3NhZ2UoY29uc3QgUVN0cmluZyYpOworCisg
ICAgdm9pZCBnb0JhY2soKTsKKyAgICB2b2lkIGdvRm9yd2FyZCgpOworICAgIHZvaWQgc3RvcCgp
OworICAgIHZvaWQgcmVsb2FkKCk7CisKK1FfU0lHTkFMUzoKKyAgICB2b2lkIHRpdGxlQ2hhbmdl
ZChjb25zdCBRU3RyaW5nJiB0aXRsZSk7CisgICAgdm9pZCBzdGF0dXNCYXJNZXNzYWdlQ2hhbmdl
ZChjb25zdCBRU3RyaW5nJiBtZXNzYWdlKTsKKyAgICB2b2lkIGxvYWRTdGFydGVkKCk7CisgICAg
dm9pZCBsb2FkU3VjY2VlZGVkKCk7CisgICAgdm9pZCBsb2FkRmFpbGVkKFFRdWlja1dlYlZpZXc6
OkVycm9yVHlwZSBlcnJvclR5cGUsIGludCBlcnJvckNvZGUsIGNvbnN0IFFVcmwmIHVybCk7Cisg
ICAgdm9pZCBsb2FkUHJvZ3Jlc3NDaGFuZ2VkKGludCBwcm9ncmVzcyk7CisgICAgdm9pZCB1cmxD
aGFuZ2VkKGNvbnN0IFFVcmwmIHVybCk7CisgICAgdm9pZCBtZXNzYWdlUmVjZWl2ZWQoY29uc3Qg
UVZhcmlhbnRNYXAmIG1lc3NhZ2UpOworICAgIHZvaWQgZG93bmxvYWRSZXF1ZXN0ZWQoUVdlYkRv
d25sb2FkSXRlbSogZG93bmxvYWRJdGVtKTsKKyAgICB2b2lkIGxpbmtIb3ZlcmVkKGNvbnN0IFFV
cmwmIHVybCwgY29uc3QgUVN0cmluZyYgdGl0bGUpOworICAgIHZvaWQgdmlld01vZGVDaGFuZ2Vk
KCk7CisgICAgdm9pZCBuYXZpZ2F0aW9uU3RhdGVDaGFuZ2VkKCk7CisKK3Byb3RlY3RlZDoKKyAg
ICB2aXJ0dWFsIHZvaWQgZ2VvbWV0cnlDaGFuZ2VkKGNvbnN0IFFSZWN0RiYsIGNvbnN0IFFSZWN0
RiYpOworICAgIHZpcnR1YWwgdm9pZCB0b3VjaEV2ZW50KFFUb3VjaEV2ZW50KiBldmVudCk7CiAK
IHByaXZhdGU6Ci0gICAgUVNjb3BlZFBvaW50ZXI8UVF1aWNrV2ViUGFnZT4gcGFnZVZpZXc7Ci0g
ICAgUVNjb3BlZFBvaW50ZXI8V2ViS2l0OjpRdFZpZXdJbnRlcmZhY2U+IHZpZXdJbnRlcmZhY2U7
Ci0gICAgUVNjb3BlZFBvaW50ZXI8UXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lPiBpbnRlcmFj
dGlvbkVuZ2luZTsKKyAgICBRX0RFQ0xBUkVfUFJJVkFURShRUXVpY2tXZWJWaWV3KQorCisgICAg
UVF1aWNrV2ViVmlldyhXS0NvbnRleHRSZWYsIFdLUGFnZUdyb3VwUmVmLCBRUXVpY2tJdGVtKiBw
YXJlbnQgPSAwKTsKKyAgICBXS1BhZ2VSZWYgcGFnZVJlZigpIGNvbnN0OworCisgICAgUV9QUklW
QVRFX1NMT1QoZF9mdW5jKCksIHZvaWQgX3Ffdmlld3BvcnRVcGRhdGVkKCkpOworICAgIFFfUFJJ
VkFURV9TTE9UKGRfZnVuYygpLCB2b2lkIF9xX3ZpZXdwb3J0VHJhamVjdG9yeVZlY3RvckNoYW5n
ZWQoY29uc3QgUVBvaW50RiYpKTsKKyAgICBRX1BSSVZBVEVfU0xPVChkX2Z1bmMoKSwgdm9pZCBf
cV9vbk9wZW5QYW5lbEZpbGVzU2VsZWN0ZWQoKSk7CisgICAgUV9QUklWQVRFX1NMT1QoZF9mdW5j
KCksIHZvaWQgX3Ffb25PcGVuUGFuZWxGaW5pc2hlZChpbnQgcmVzdWx0KSk7CisgICAgUV9QUklW
QVRFX1NMT1QoZF9mdW5jKCksIHZvaWQgX3Ffb25WaXNpYmxlQ2hhbmdlZCgpKTsKKyAgICAvLyBI
aWRlcyBRT2JqZWN0OjpkX3B0ciBhbGxvd2luZyB1cyB0byB1c2UgdGhlIGNvbnZlbmllbmNlIG1h
Y3Jvcy4KKyAgICBRU2NvcGVkUG9pbnRlcjxRUXVpY2tXZWJWaWV3UHJpdmF0ZT4gZF9wdHI7Cisg
ICAgUVF1aWNrV2ViVmlld0V4cGVyaW1lbnRhbCogbV9leHBlcmltZW50YWw7CisKKyAgICBmcmll
bmQgY2xhc3MgUXRXZWJQYWdlUHJveHk7CisgICAgZnJpZW5kIGNsYXNzIFdlYktpdDo6UXRWaWV3
SW50ZXJmYWNlOworICAgIGZyaWVuZCBjbGFzcyBXVFI6OlBsYXRmb3JtV2ViVmlldzsKKyAgICBm
cmllbmQgY2xhc3MgUVF1aWNrV2ViVmlld0V4cGVyaW1lbnRhbDsKK307CisKK1FNTF9ERUNMQVJF
X1RZUEUoUVF1aWNrV2ViVmlldykKIAotICAgIFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzIHZp
ZXdwb3J0QXJndW1lbnRzOworY2xhc3MgUVdFQktJVF9FWFBPUlQgUVF1aWNrV2ViVmlld0V4cGVy
aW1lbnRhbCA6IHB1YmxpYyBRT2JqZWN0IHsKKyAgICBRX09CSkVDVAorcHVibGljOgorICAgIFFR
dWlja1dlYlZpZXdFeHBlcmltZW50YWwoUVF1aWNrV2ViVmlldyogd2ViVmlldyk7CisgICAgdmly
dHVhbCB+UVF1aWNrV2ViVmlld0V4cGVyaW1lbnRhbCgpOwogCisgICAgdm9pZCBzZXRVc2VUcmFk
aXRpb25hbERlc2t0b3BCZWhhdmlvdXIoYm9vbCBlbmFibGUpOworcHJpdmF0ZToKICAgICBRUXVp
Y2tXZWJWaWV3KiBxX3B0cjsKLSAgICBRU2NvcGVkUG9pbnRlcjxRdFdlYlBhZ2VQcm94eT4gcGFn
ZVByb3h5OworICAgIFFRdWlja1dlYlZpZXdQcml2YXRlKiBkX3B0cjsKIAotICAgIGJvb2wgdXNl
VHJhZGl0aW9uYWxEZXNrdG9wQmVoYXZpb3VyOwotICAgIFFGaWxlRGlhbG9nKiBmaWxlRGlhbG9n
OwotICAgIFdLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJSZWYgb3BlblBhbmVsUmVzdWx0TGlzdGVu
ZXI7CisgICAgUV9ERUNMQVJFX1BSSVZBVEUoUVF1aWNrV2ViVmlldykKKyAgICBRX0RFQ0xBUkVf
UFVCTElDKFFRdWlja1dlYlZpZXcpCiB9OwogCi0jZW5kaWYgLyogcXF1aWNrd2Vidmlld19wX2gg
Ki8KKyNlbmRpZiAvLyBxcXVpY2t3ZWJ2aWV3X3BfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmM2YWJjMTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmgKQEAgLTAsMCArMSw5MCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1
YnNpZGlhcnkoLWllcykKKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisg
KgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
KyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCisgKgorICovCisKKyNpZm5kZWYgcXF1aWNrd2Vidmlld19wX3BfaAorI2RlZmluZSBx
cXVpY2t3ZWJ2aWV3X3BfcF9oCisKKyNpbmNsdWRlICJRdFBvbGljeUludGVyZmFjZS5oIgorI2lu
Y2x1ZGUgIlF0Vmlld0ludGVyZmFjZS5oIgorI2luY2x1ZGUgIlF0Vmlld3BvcnRJbnRlcmFjdGlv
bkVuZ2luZS5oIgorI2luY2x1ZGUgIlF0V2ViUGFnZVByb3h5LmgiCisKKyNpbmNsdWRlICJxcXVp
Y2t3ZWJ2aWV3X3AuaCIKKworI2luY2x1ZGUgPFF0Q29yZS9RT2JqZWN0PgorI2luY2x1ZGUgPFF0
Q29yZS9RU2NvcGVkUG9pbnRlcj4KKworY2xhc3MgUXRXZWJQYWdlUHJveHk7CisKK1FUX0JFR0lO
X05BTUVTUEFDRQorY2xhc3MgUUZpbGVEaWFsb2c7CitRVF9FTkRfTkFNRVNQQUNFCisKK2NsYXNz
IFFXRUJLSVRfRVhQT1JUIFFRdWlja1dlYlZpZXdQcml2YXRlIDogcHVibGljIFdlYktpdDo6UXRQ
b2xpY3lJbnRlcmZhY2UgeworCisgICAgUV9ERUNMQVJFX1BVQkxJQyhRUXVpY2tXZWJWaWV3KQor
cHVibGljOgorICAgIFFRdWlja1dlYlZpZXdQcml2YXRlKCk7CisgICAgdmlydHVhbCB+UVF1aWNr
V2ViVmlld1ByaXZhdGUoKSB7IH0KKyAgICB2b2lkIHNldFBhZ2VQcm94eShRdFdlYlBhZ2VQcm94
eSopOworICAgIHZvaWQgaW5pdGlhbGl6ZShRUXVpY2tXZWJWaWV3KiB2aWV3cG9ydCwgV0tDb250
ZXh0UmVmIGNvbnRleHRSZWYgPSAwLCBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBSZWYgPSAwKTsK
KyAgICB2b2lkIGluaXRpYWxpemVUb3VjaChRUXVpY2tXZWJWaWV3KiB2aWV3cG9ydCk7CisgICAg
dm9pZCBpbml0aWFsaXplRGVza3RvcChRUXVpY2tXZWJWaWV3KiB2aWV3cG9ydCk7CisgICAgdm9p
ZCBlbmFibGVNb3VzZUV2ZW50cygpOworICAgIHZvaWQgZGlzYWJsZU1vdXNlRXZlbnRzKCk7CisK
KyAgICB2b2lkIGxvYWREaWRDb21taXQoKTsKKyAgICB2b2lkIGNvbnRlbnRTaXplQ2hhbmdlZChj
b25zdCBRU2l6ZSYgbmV3U2l6ZSk7CisgICAgdm9pZCBzY3JvbGxQb3NpdGlvblJlcXVlc3RlZChj
b25zdCBRUG9pbnQmIHBvcyk7CisgICAgdm9pZCB1cGRhdGVWaWV3cG9ydFNpemUoKTsKKyAgICB2
b2lkIHVwZGF0ZVZpZXdwb3J0Q29uc3RyYWludHMoKTsKKworICAgIHZvaWQgX3Ffdmlld3BvcnRV
cGRhdGVkKCk7CisgICAgdm9pZCBfcV92aWV3cG9ydFRyYWplY3RvcnlWZWN0b3JDaGFuZ2VkKGNv
bnN0IFFQb2ludEYmKTsKKyAgICB2b2lkIF9xX29uT3BlblBhbmVsRmlsZXNTZWxlY3RlZCgpOwor
ICAgIHZvaWQgX3Ffb25PcGVuUGFuZWxGaW5pc2hlZChpbnQgcmVzdWx0KTsKKyAgICB2b2lkIF9x
X29uVmlzaWJsZUNoYW5nZWQoKTsKKworICAgIC8vIFF0UG9saWN5SW50ZXJmYWNlLgorICAgIHZp
cnR1YWwgUXRQb2xpY3lJbnRlcmZhY2U6OlBvbGljeUFjdGlvbiBuYXZpZ2F0aW9uUG9saWN5Rm9y
VVJMKGNvbnN0IFFVcmwmLCBRdDo6TW91c2VCdXR0b24sIFF0OjpLZXlib2FyZE1vZGlmaWVycyk7
CisKKyAgICB2b2lkIGNob29zZUZpbGVzKFdLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJSZWYsIGNv
bnN0IFFTdHJpbmdMaXN0JiBzZWxlY3RlZEZpbGVOYW1lcywgV2ViS2l0OjpRdFZpZXdJbnRlcmZh
Y2U6OkZpbGVDaG9vc2VyVHlwZSk7CisgICAgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoY29uc3Qg
UVN0cmluZyYpOworICAgIGJvb2wgcnVuSmF2YVNjcmlwdENvbmZpcm0oY29uc3QgUVN0cmluZyYp
OworICAgIFFTdHJpbmcgcnVuSmF2YVNjcmlwdFByb21wdChjb25zdCBRU3RyaW5nJiwgY29uc3Qg
UVN0cmluZyYgZGVmYXVsdFZhbHVlLCBib29sJiBvayk7CisgICAgdm9pZCBkaWRDaGFuZ2VWaWV3
cG9ydFByb3BlcnRpZXMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMmIGFyZ3MpOwor
ICAgIHZvaWQgc2V0VXNlVHJhZGl0aW9uYWxEZXNrdG9wQmVoYXZpb3VyKGJvb2wgZW5hYmxlKTsK
KworcHJpdmF0ZToKKyAgICBRU2NvcGVkUG9pbnRlcjxRUXVpY2tXZWJQYWdlPiBwYWdlVmlldzsK
KyAgICBRU2NvcGVkUG9pbnRlcjxXZWJLaXQ6OlF0Vmlld0ludGVyZmFjZT4gdmlld0ludGVyZmFj
ZTsKKyAgICBRU2NvcGVkUG9pbnRlcjxRdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmU+IGludGVy
YWN0aW9uRW5naW5lOworCisgICAgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMgdmlld3BvcnRB
cmd1bWVudHM7CisKKyAgICBRUXVpY2tXZWJWaWV3KiBxX3B0cjsKKyAgICBRU2NvcGVkUG9pbnRl
cjxRdFdlYlBhZ2VQcm94eT4gcGFnZVByb3h5OworCisgICAgYm9vbCB1c2VUcmFkaXRpb25hbERl
c2t0b3BCZWhhdmlvdXI7CisgICAgUUZpbGVEaWFsb2cqIGZpbGVEaWFsb2c7CisgICAgV0tPcGVu
UGFuZWxSZXN1bHRMaXN0ZW5lclJlZiBvcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcjsKK307CisKKyNl
bmRpZiAvLyBxcXVpY2t3ZWJ2aWV3X3BfcF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdwcml2YXRlZXh0ZW5zaW9uLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld3ByaXZhdGVleHRlbnNpb24u
Y3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YWM0Mzk1Li4wMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld3ByaXZhdGVleHRl
bnNpb24uY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykK
LSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBwcm9n
cmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0g
KiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy
YW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGgg
dGhpcyBwcm9ncmFtOyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRv
Ci0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKgotICov
Ci0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJxcXVpY2t3ZWJ2aWV3cHJpdmF0ZWV4
dGVuc2lvbl9wLmgiCi0KLSNpbmNsdWRlICJxcXVpY2t3ZWJwYWdlLmgiCi0jaW5jbHVkZSAicXF1
aWNrd2Vidmlldy5oIgotI2luY2x1ZGUgInFxdWlja3dlYnZpZXdfcC5oIgotCi1RUXVpY2tXZWJW
aWV3UHJpdmF0ZUV4dGVuc2lvbjo6UVF1aWNrV2ViVmlld1ByaXZhdGVFeHRlbnNpb24oUU9iamVj
dCogcGFyZW50KQotICAgIDogUU9iamVjdChwYXJlbnQpCi17Ci19Ci0KLVFRdWlja1dlYlZpZXdQ
cml2YXRlKiBRUXVpY2tXZWJWaWV3UHJpdmF0ZUV4dGVuc2lvbjo6dmlld1ByaXZhdGUoKQotewot
ICAgIHJldHVybiBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6Z2V0KHN0YXRpY19jYXN0PFFRdWlja1dl
YlZpZXcqPihwYXJlbnQoKSkpOwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3cHJpdmF0ZWV4dGVuc2lvbl9wLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdwcml2YXRlZXh0ZW5zaW9uX3AuaApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTA2NjU1Mi4uMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdwcml2YXRlZXh0ZW5zaW9u
X3AuaAorKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTEgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCi0gKgot
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgcHJvZ3JhbSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMg
cHJvZ3JhbTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICog
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICoKLSAqLwotCi0j
aWZuZGVmIHFxdWlja3dlYnZpZXdwcml2YXRlZXh0ZW5zaW9uX3BfaAotI2RlZmluZSBxcXVpY2t3
ZWJ2aWV3cHJpdmF0ZWV4dGVuc2lvbl9wX2gKLQotI2luY2x1ZGUgInF3ZWJraXRnbG9iYWwuaCIK
LQotI2luY2x1ZGUgPFFPYmplY3Q+Ci0KLWNsYXNzIFFRdWlja1dlYlZpZXdQcml2YXRlOwotCi1j
bGFzcyBRV0VCS0lUX0VYUE9SVCBRUXVpY2tXZWJWaWV3UHJpdmF0ZUV4dGVuc2lvbiA6IHB1Ymxp
YyBRT2JqZWN0IHsKLSAgICBRX09CSkVDVAotICAgIFFfUFJPUEVSVFkoUVF1aWNrV2ViVmlld1By
aXZhdGUqIHByaXZhdGVPYmplY3QgUkVBRCB2aWV3UHJpdmF0ZSBDT05TVEFOVCBGSU5BTCkKLXB1
YmxpYzoKLSAgICBRUXVpY2tXZWJWaWV3UHJpdmF0ZUV4dGVuc2lvbihRT2JqZWN0ICpwYXJlbnQg
PSAwKTsKLSAgICBRUXVpY2tXZWJWaWV3UHJpdmF0ZSogdmlld1ByaXZhdGUoKTsKLX07Ci0KLSNl
bmRpZiAvLyBxcXVpY2t3ZWJ2aWV3cHJpdmF0ZWV4dGVuc2lvbl9wX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYmRvd25sb2FkaXRlbS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJkb3dubG9hZGl0ZW0uY3BwCmluZGV4IDY1
OTBiNzQuLjg1NDc2NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvcXdlYmRvd25sb2FkaXRlbS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9xdC9xd2ViZG93bmxvYWRpdGVtLmNwcApAQCAtMTksMTAgKzE5LDEwIEBACiAgKi8KIAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgInF3ZWJkb3dubG9hZGl0ZW0uaCIKKyNpbmNsdWRl
ICJxd2ViZG93bmxvYWRpdGVtX3AuaCIKIAogI2luY2x1ZGUgIkRvd25sb2FkUHJveHkuaCIKLSNp
bmNsdWRlICJxd2ViZG93bmxvYWRpdGVtX3AuaCIKKyNpbmNsdWRlICJxd2ViZG93bmxvYWRpdGVt
X3BfcC5oIgogCiBRV2ViRG93bmxvYWRJdGVtUHJpdmF0ZTo6UVdlYkRvd25sb2FkSXRlbVByaXZh
dGUoUVdlYkRvd25sb2FkSXRlbSogcXEpCiAgICAgOiBxKHFxKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2ViZG93bmxvYWRpdGVtLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJkb3dubG9hZGl0ZW0uaApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggYjQ0YzViMC4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3F3ZWJkb3dubG9hZGl0ZW0uaAorKysgL2Rldi9udWxsCkBAIC0xLDg2ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgTm9raWEgQ29ycG9yYXRpb24gYW5kL29y
IGl0cyBzdWJzaWRpYXJ5KC1pZXMpCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgotICoKLSAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgotICoKLSAqLwotCi0jaWZuZGVmIHF3ZWJkb3dubG9hZGl0ZW1faAotI2Rl
ZmluZSBxd2ViZG93bmxvYWRpdGVtX2gKLQotI2luY2x1ZGUgInF3ZWJraXRnbG9iYWwuaCIKLSNp
bmNsdWRlIDxRT2JqZWN0PgotI2luY2x1ZGUgPFFVcmw+Ci0KLWNsYXNzIFFXZWJEb3dubG9hZEl0
ZW1Qcml2YXRlOwotY2xhc3MgUXRXZWJFcnJvcjsKLQotUVRfQkVHSU5fTkFNRVNQQUNFCi1jbGFz
cyBRU3RyaW5nOwotUVRfRU5EX05BTUVTUEFDRQotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLWNsYXNz
IFF0RG93bmxvYWRNYW5hZ2VyOwotfQotCi1jbGFzcyBRV0VCS0lUX0VYUE9SVCBRV2ViRG93bmxv
YWRJdGVtIDogcHVibGljIFFPYmplY3QgewotICAgIFFfT0JKRUNUCi0gICAgUV9QUk9QRVJUWShx
dWludDY0IGV4cGVjdGVkQ29udGVudExlbmd0aCBSRUFEIGV4cGVjdGVkQ29udGVudExlbmd0aCBD
T05TVEFOVCBGSU5BTCkKLSAgICBRX1BST1BFUlRZKFFTdHJpbmcgZGVzdGluYXRpb25QYXRoIFJF
QUQgZGVzdGluYXRpb25QYXRoIFdSSVRFIHNldERlc3RpbmF0aW9uUGF0aCkKLSAgICBRX1BST1BF
UlRZKFFTdHJpbmcgc3VnZ2VzdGVkRmlsZW5hbWUgUkVBRCBzdWdnZXN0ZWRGaWxlbmFtZSBDT05T
VEFOVCBGSU5BTCkKLSAgICBRX1BST1BFUlRZKHF1aW50NjQgdG90YWxCeXRlc1JlY2VpdmVkIFJF
QUQgdG90YWxCeXRlc1JlY2VpdmVkIE5PVElGWSB0b3RhbEJ5dGVzUmVjZWl2ZWRDaGFuZ2VkIEZJ
TkFMKQotICAgIFFfUFJPUEVSVFkoUVVybCB1cmwgUkVBRCB1cmwgQ09OU1RBTlQgRklOQUwpCi0g
ICAgUV9FTlVNUyhEb3dubG9hZEVycm9yKQotcHVibGljOgotICAgIHZpcnR1YWwgflFXZWJEb3du
bG9hZEl0ZW0oKTsKLQotICAgIGVudW0gRG93bmxvYWRFcnJvciB7Ci0gICAgICAgIEFib3J0ZWQg
PSAwLAotICAgICAgICBDYW5ub3RXcml0ZVRvRmlsZSwKLSAgICAgICAgQ2Fubm90T3BlbkZpbGUs
Ci0gICAgICAgIERlc3RpbmF0aW9uQWxyZWFkeUV4aXN0cywKLSAgICAgICAgQ2FuY2VsbGVkLAot
ICAgICAgICBDYW5ub3REZXRlcm1pbmVGaWxlbmFtZSwKLSAgICAgICAgTmV0d29ya0ZhaWx1cmUK
LSAgICB9OwotCi0gICAgUVVybCB1cmwoKSBjb25zdDsKLSAgICBRU3RyaW5nIGRlc3RpbmF0aW9u
UGF0aCgpIGNvbnN0OwotICAgIFFTdHJpbmcgc3VnZ2VzdGVkRmlsZW5hbWUoKSBjb25zdDsKLSAg
ICBRU3RyaW5nIG1pbWVUeXBlKCkgY29uc3Q7Ci0gICAgcXVpbnQ2NCBleHBlY3RlZENvbnRlbnRM
ZW5ndGgoKSBjb25zdDsKLSAgICBxdWludDY0IHRvdGFsQnl0ZXNSZWNlaXZlZCgpIGNvbnN0Owot
ICAgIHZvaWQgc2V0RGVzdGluYXRpb25QYXRoKGNvbnN0IFFTdHJpbmcmIGRlc3RpbmF0aW9uKTsK
LQotcHVibGljIFFfU0xPVFM6Ci0gICAgdm9pZCBzdGFydCgpOwotICAgIHZvaWQgY2FuY2VsKCk7
Ci0KLVFfU0lHTkFMUzoKLSAgICB2b2lkIGRlc3RpbmF0aW9uRmlsZUNyZWF0ZWQoY29uc3QgUVN0
cmluZyYgZGVzdGluYXRpb25QYXRoKTsKLSAgICB2b2lkIHRvdGFsQnl0ZXNSZWNlaXZlZENoYW5n
ZWQocXVpbnQ2NCBieXRlc1JlY2VpdmVkKTsKLSAgICB2b2lkIHN1Y2NlZWRlZCgpOwotICAgIHZv
aWQgZmFpbGVkKFFXZWJEb3dubG9hZEl0ZW06OkRvd25sb2FkRXJyb3IgZXJyb3IsIGNvbnN0IFFV
cmwmIHVybCwgY29uc3QgUVN0cmluZyYgZGVzY3JpcHRpb24pOwotCi1wcml2YXRlOgotICAgIFFX
ZWJEb3dubG9hZEl0ZW0oUU9iamVjdCogcGFyZW50ID0gMCk7Ci0gICAgUVdlYkRvd25sb2FkSXRl
bVByaXZhdGUqIGQ7Ci0KLSAgICBmcmllbmQgY2xhc3MgV2ViS2l0OjpRdERvd25sb2FkTWFuYWdl
cjsKLSAgICBmcmllbmQgY2xhc3MgUXRXZWJQYWdlUHJveHk7Ci19OwotCi0jZW5kaWYgLyogcXdl
YmRvd25sb2FkaXRlbV9oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3F3ZWJkb3dubG9hZGl0ZW1fcC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9xdC9xd2ViZG93bmxvYWRpdGVtX3AuaAppbmRleCBiYjhjMjUyLi5lODA5MjM2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJkb3dubG9hZGl0ZW1fcC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYmRvd25sb2FkaXRlbV9w
LmgKQEAgLTEsNTMgKzEsODYgQEAKIC8qCi0gICAgQ29weXJpZ2h0IChDKSAyMDExIE5va2lhIENv
cnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQotCi0gICAgVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICAgIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
Ci0gICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCi0gICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gICAgYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAgICBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQotICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgotCi0gICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gICAgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwKLSAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSovCi0KKyAqIENvcHlyaWdodCAo
QykgMjAxMSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAq
CisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFt
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhp
cyBwcm9ncmFtOyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisg
KiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCiAK
ICNpZm5kZWYgcXdlYmRvd25sb2FkaXRlbV9wX2gKICNkZWZpbmUgcXdlYmRvd25sb2FkaXRlbV9w
X2gKIAotI2luY2x1ZGUgInF3ZWJkb3dubG9hZGl0ZW0uaCIKKyNpbmNsdWRlICJxd2Via2l0Z2xv
YmFsLmgiCisjaW5jbHVkZSA8UU9iamVjdD4KICNpbmNsdWRlIDxRVXJsPgogCitjbGFzcyBRV2Vi
RG93bmxvYWRJdGVtUHJpdmF0ZTsKK2NsYXNzIFF0V2ViRXJyb3I7CisKK1FUX0JFR0lOX05BTUVT
UEFDRQorY2xhc3MgUVN0cmluZzsKK1FUX0VORF9OQU1FU1BBQ0UKKwogbmFtZXNwYWNlIFdlYktp
dCB7Ci1jbGFzcyBEb3dubG9hZFByb3h5OworY2xhc3MgUXREb3dubG9hZE1hbmFnZXI7CiB9CiAK
LWNsYXNzIFFXZWJEb3dubG9hZEl0ZW1Qcml2YXRlIDogcHVibGljIFFPYmplY3QgeworY2xhc3Mg
UVdFQktJVF9FWFBPUlQgUVdlYkRvd25sb2FkSXRlbSA6IHB1YmxpYyBRT2JqZWN0IHsKICAgICBR
X09CSkVDVAorICAgIFFfUFJPUEVSVFkocXVpbnQ2NCBleHBlY3RlZENvbnRlbnRMZW5ndGggUkVB
RCBleHBlY3RlZENvbnRlbnRMZW5ndGggQ09OU1RBTlQgRklOQUwpCisgICAgUV9QUk9QRVJUWShR
U3RyaW5nIGRlc3RpbmF0aW9uUGF0aCBSRUFEIGRlc3RpbmF0aW9uUGF0aCBXUklURSBzZXREZXN0
aW5hdGlvblBhdGgpCisgICAgUV9QUk9QRVJUWShRU3RyaW5nIHN1Z2dlc3RlZEZpbGVuYW1lIFJF
QUQgc3VnZ2VzdGVkRmlsZW5hbWUgQ09OU1RBTlQgRklOQUwpCisgICAgUV9QUk9QRVJUWShxdWlu
dDY0IHRvdGFsQnl0ZXNSZWNlaXZlZCBSRUFEIHRvdGFsQnl0ZXNSZWNlaXZlZCBOT1RJRlkgdG90
YWxCeXRlc1JlY2VpdmVkQ2hhbmdlZCBGSU5BTCkKKyAgICBRX1BST1BFUlRZKFFVcmwgdXJsIFJF
QUQgdXJsIENPTlNUQU5UIEZJTkFMKQorICAgIFFfRU5VTVMoRG93bmxvYWRFcnJvcikKIHB1Ymxp
YzoKLSAgICBRV2ViRG93bmxvYWRJdGVtUHJpdmF0ZShRV2ViRG93bmxvYWRJdGVtKik7Ci0KLSAg
ICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShRV2ViRG93bmxvYWRJdGVtKiBkb3dubG9hZCkgeyBl
bWl0IHJlY2VpdmVkUmVzcG9uc2UoZG93bmxvYWQpOyB9CisgICAgdmlydHVhbCB+UVdlYkRvd25s
b2FkSXRlbSgpOwogCi0gICAgUVdlYkRvd25sb2FkSXRlbSogcTsKKyAgICBlbnVtIERvd25sb2Fk
RXJyb3IgeworICAgICAgICBBYm9ydGVkID0gMCwKKyAgICAgICAgQ2Fubm90V3JpdGVUb0ZpbGUs
CisgICAgICAgIENhbm5vdE9wZW5GaWxlLAorICAgICAgICBEZXN0aW5hdGlvbkFscmVhZHlFeGlz
dHMsCisgICAgICAgIENhbmNlbGxlZCwKKyAgICAgICAgQ2Fubm90RGV0ZXJtaW5lRmlsZW5hbWUs
CisgICAgICAgIE5ldHdvcmtGYWlsdXJlCisgICAgfTsKIAotICAgIFdlYktpdDo6RG93bmxvYWRQ
cm94eSogZG93bmxvYWRQcm94eTsKKyAgICBRVXJsIHVybCgpIGNvbnN0OworICAgIFFTdHJpbmcg
ZGVzdGluYXRpb25QYXRoKCkgY29uc3Q7CisgICAgUVN0cmluZyBzdWdnZXN0ZWRGaWxlbmFtZSgp
IGNvbnN0OworICAgIFFTdHJpbmcgbWltZVR5cGUoKSBjb25zdDsKKyAgICBxdWludDY0IGV4cGVj
dGVkQ29udGVudExlbmd0aCgpIGNvbnN0OworICAgIHF1aW50NjQgdG90YWxCeXRlc1JlY2VpdmVk
KCkgY29uc3Q7CisgICAgdm9pZCBzZXREZXN0aW5hdGlvblBhdGgoY29uc3QgUVN0cmluZyYgZGVz
dGluYXRpb24pOwogCi0gICAgUVVybCBzb3VyY2VVcmw7Ci0gICAgUVN0cmluZyBzdWdnZXN0ZWRG
aWxlbmFtZTsKLSAgICBRU3RyaW5nIGRlc3RpbmF0aW9uUGF0aDsKLSAgICBRU3RyaW5nIG1pbWVU
eXBlOwotICAgIHF1aW50NjQgZXhwZWN0ZWRDb250ZW50TGVuZ3RoOwotICAgIHF1aW50NjQgdG90
YWxCeXRlc1JlY2VpdmVkOworcHVibGljIFFfU0xPVFM6CisgICAgdm9pZCBzdGFydCgpOworICAg
IHZvaWQgY2FuY2VsKCk7CiAKIFFfU0lHTkFMUzoKLSAgICB2b2lkIHJlY2VpdmVkUmVzcG9uc2Uo
UVdlYkRvd25sb2FkSXRlbSopOworICAgIHZvaWQgZGVzdGluYXRpb25GaWxlQ3JlYXRlZChjb25z
dCBRU3RyaW5nJiBkZXN0aW5hdGlvblBhdGgpOworICAgIHZvaWQgdG90YWxCeXRlc1JlY2VpdmVk
Q2hhbmdlZChxdWludDY0IGJ5dGVzUmVjZWl2ZWQpOworICAgIHZvaWQgc3VjY2VlZGVkKCk7Cisg
ICAgdm9pZCBmYWlsZWQoUVdlYkRvd25sb2FkSXRlbTo6RG93bmxvYWRFcnJvciBlcnJvciwgY29u
c3QgUVVybCYgdXJsLCBjb25zdCBRU3RyaW5nJiBkZXNjcmlwdGlvbik7CisKK3ByaXZhdGU6Cisg
ICAgUVdlYkRvd25sb2FkSXRlbShRT2JqZWN0KiBwYXJlbnQgPSAwKTsKKyAgICBRV2ViRG93bmxv
YWRJdGVtUHJpdmF0ZSogZDsKKworICAgIGZyaWVuZCBjbGFzcyBXZWJLaXQ6OlF0RG93bmxvYWRN
YW5hZ2VyOworICAgIGZyaWVuZCBjbGFzcyBRdFdlYlBhZ2VQcm94eTsKIH07CiAKLSNlbmRpZiAv
KiBxd2ViZG93bmxvYWRpdGVtX3BfaCAqLworI2VuZGlmIC8vIHF3ZWJkb3dubG9hZGl0ZW1fcF9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJkb3dubG9h
ZGl0ZW1fcF9wLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJkb3dubG9h
ZGl0ZW1fcF9wLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzgwODQ4Ygot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYmRv
d25sb2FkaXRlbV9wX3AuaApAQCAtMCwwICsxLDUzIEBACisvKgorICAgIENvcHlyaWdodCAoQykg
MjAxMSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKworICAg
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwor
ICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisK
KyNpZm5kZWYgcXdlYmRvd25sb2FkaXRlbV9wX3BfaAorI2RlZmluZSBxd2ViZG93bmxvYWRpdGVt
X3BfcF9oCisKKyNpbmNsdWRlICJxd2ViZG93bmxvYWRpdGVtX3AuaCIKKyNpbmNsdWRlIDxRVXJs
PgorCituYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIERvd25sb2FkUHJveHk7Cit9CisKK2NsYXNz
IFFXZWJEb3dubG9hZEl0ZW1Qcml2YXRlIDogcHVibGljIFFPYmplY3QgeworICAgIFFfT0JKRUNU
CitwdWJsaWM6CisgICAgUVdlYkRvd25sb2FkSXRlbVByaXZhdGUoUVdlYkRvd25sb2FkSXRlbSop
OworCisgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoUVdlYkRvd25sb2FkSXRlbSogZG93bmxv
YWQpIHsgZW1pdCByZWNlaXZlZFJlc3BvbnNlKGRvd25sb2FkKTsgfQorCisgICAgUVdlYkRvd25s
b2FkSXRlbSogcTsKKworICAgIFdlYktpdDo6RG93bmxvYWRQcm94eSogZG93bmxvYWRQcm94eTsK
KworICAgIFFVcmwgc291cmNlVXJsOworICAgIFFTdHJpbmcgc3VnZ2VzdGVkRmlsZW5hbWU7Cisg
ICAgUVN0cmluZyBkZXN0aW5hdGlvblBhdGg7CisgICAgUVN0cmluZyBtaW1lVHlwZTsKKyAgICBx
dWludDY0IGV4cGVjdGVkQ29udGVudExlbmd0aDsKKyAgICBxdWludDY0IHRvdGFsQnl0ZXNSZWNl
aXZlZDsKKworUV9TSUdOQUxTOgorICAgIHZvaWQgcmVjZWl2ZWRSZXNwb25zZShRV2ViRG93bmxv
YWRJdGVtKik7Cit9OworCisjZW5kaWYgLy8gcXdlYmRvd25sb2FkaXRlbV9wX3BfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXMuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXMuY3BwCmlu
ZGV4IGNjZWY5ZWIuLjIwNzFiYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlcy5jcHAKQEAgLTE4LDcgKzE4LDcgQEAKICovCiAKICNp
bmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJxd2VicHJlZmVyZW5jZXMuaCIKKyNpbmNsdWRl
ICJxd2VicHJlZmVyZW5jZXNfcC5oIgogCiAjaW5jbHVkZSAiUXRXZWJQYWdlUHJveHkuaCIKICNp
bmNsdWRlICJXS1BhZ2VHcm91cC5oIgpAQCAtMjYsNyArMjYsNyBAQAogI2luY2x1ZGUgIldLUHJl
ZmVyZW5jZXNQcml2YXRlLmgiCiAjaW5jbHVkZSAiV0tSZXRhaW5QdHIuaCIKICNpbmNsdWRlICJX
S1N0cmluZ1F0LmgiCi0jaW5jbHVkZSAicXdlYnByZWZlcmVuY2VzX3AuaCIKKyNpbmNsdWRlICJx
d2VicHJlZmVyZW5jZXNfcF9wLmgiCiAKIFFXZWJQcmVmZXJlbmNlcyogUVdlYlByZWZlcmVuY2Vz
UHJpdmF0ZTo6Y3JlYXRlUHJlZmVyZW5jZXMoUXRXZWJQYWdlUHJveHkqIHF0V2ViUGFnZVByb3h5
KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJl
ZmVyZW5jZXMuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVu
Y2VzLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRlMjAwNzMuLjAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXMuaAorKysg
L2Rldi9udWxsCkBAIC0xLDE0MSArMCwwIEBACi0vKgotICAgIENvcHlyaWdodCAoQykgMjAxMSBO
b2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKLQotICAgIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
LSAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYwotICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgotICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLQotICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICAgIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0g
ICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKLSAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KLQotICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAgICBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICAgIHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsCi0gICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0qLwotCi0jaWZuZGVm
IHF3ZWJwcmVmZXJlbmNlc19oCi0jZGVmaW5lIHF3ZWJwcmVmZXJlbmNlc19oCi0KLSNpbmNsdWRl
ICJxd2Via2l0Z2xvYmFsLmgiCi0KLSNpbmNsdWRlIDxRdENvcmUvUU9iamVjdD4KLQotY2xhc3Mg
UVdlYlByZWZlcmVuY2VzUHJpdmF0ZTsKLQotY2xhc3MgUVdFQktJVF9FWFBPUlQgUVdlYlByZWZl
cmVuY2VzIDogcHVibGljIFFPYmplY3QgewotICAgIFFfT0JKRUNUCi1wdWJsaWM6Ci0gICAgflFX
ZWJQcmVmZXJlbmNlcygpOwotCi0gICAgUV9QUk9QRVJUWShib29sIGF1dG9Mb2FkSW1hZ2VzIFJF
QUQgYXV0b0xvYWRJbWFnZXMgV1JJVEUgc2V0QXV0b0xvYWRJbWFnZXMgTk9USUZZIGF1dG9Mb2Fk
SW1hZ2VzQ2hhbmdlZCBGSU5BTCkKLSAgICBRX1BST1BFUlRZKGJvb2wgamF2YXNjcmlwdEVuYWJs
ZWQgUkVBRCBqYXZhc2NyaXB0RW5hYmxlZCBXUklURSBzZXRKYXZhc2NyaXB0RW5hYmxlZCBOT1RJ
RlkgamF2YXNjcmlwdEVuYWJsZWRDaGFuZ2VkIEZJTkFMKQotICAgIFFfUFJPUEVSVFkoYm9vbCBw
bHVnaW5zRW5hYmxlZCBSRUFEIHBsdWdpbnNFbmFibGVkIFdSSVRFIHNldFBsdWdpbnNFbmFibGVk
IE5PVElGWSBwbHVnaW5zRW5hYmxlZENoYW5nZWQgRklOQUwpCi0gICAgUV9QUk9QRVJUWShib29s
IG9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZCBSRUFEIG9mZmxpbmVXZWJBcHBsaWNh
dGlvbkNhY2hlRW5hYmxlZCBXUklURSBzZXRPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJs
ZWQgTk9USUZZIG9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZENoYW5nZWQgRklOQUwp
Ci0gICAgUV9QUk9QRVJUWShib29sIGxvY2FsU3RvcmFnZUVuYWJsZWQgUkVBRCBsb2NhbFN0b3Jh
Z2VFbmFibGVkIFdSSVRFIHNldExvY2FsU3RvcmFnZUVuYWJsZWQgTk9USUZZIGxvY2FsU3RvcmFn
ZUVuYWJsZWRDaGFuZ2VkIEZJTkFMKQotICAgIFFfUFJPUEVSVFkoYm9vbCB4c3NBdWRpdGluZ0Vu
YWJsZWQgUkVBRCB4c3NBdWRpdGluZ0VuYWJsZWQgV1JJVEUgc2V0WHNzQXVkaXRpbmdFbmFibGVk
IE5PVElGWSB4c3NBdWRpdGluZ0VuYWJsZWRDaGFuZ2VkIEZJTkFMKQotICAgIFFfUFJPUEVSVFko
Ym9vbCBwcml2YXRlQnJvd3NpbmdFbmFibGVkIFJFQUQgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCBX
UklURSBzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkIE5PVElGWSBwcml2YXRlQnJvd3NpbmdFbmFi
bGVkQ2hhbmdlZCBGSU5BTCkKLSAgICBRX1BST1BFUlRZKGJvb2wgZG5zUHJlZmV0Y2hFbmFibGVk
IFJFQUQgZG5zUHJlZmV0Y2hFbmFibGVkIFdSSVRFIHNldERuc1ByZWZldGNoRW5hYmxlZCBOT1RJ
RlkgZG5zUHJlZmV0Y2hFbmFibGVkQ2hhbmdlZCBGSU5BTCkKLSAgICBRX1BST1BFUlRZKGJvb2wg
bmF2aWdhdG9yUXRPYmplY3RFbmFibGVkIFJFQUQgbmF2aWdhdG9yUXRPYmplY3RFbmFibGVkIFdS
SVRFIHNldE5hdmlnYXRvclF0T2JqZWN0RW5hYmxlZCBOT1RJRlkgbmF2aWdhdG9yUXRPYmplY3RF
bmFibGVkQ2hhbmdlZCBGSU5BTCkKLQotICAgIFFfUFJPUEVSVFkoUVN0cmluZyBzdGFuZGFyZEZv
bnRGYW1pbHkgUkVBRCBzdGFuZGFyZEZvbnRGYW1pbHkgV1JJVEUgc2V0U3RhbmRhcmRGb250RmFt
aWx5IE5PVElGWSBzdGFuZGFyZEZvbnRGYW1pbHlDaGFuZ2VkIEZJTkFMKQotICAgIFFfUFJPUEVS
VFkoUVN0cmluZyBmaXhlZEZvbnRGYW1pbHkgUkVBRCBmaXhlZEZvbnRGYW1pbHkgV1JJVEUgc2V0
Rml4ZWRGb250RmFtaWx5IE5PVElGWSBmaXhlZEZvbnRGYW1pbHlDaGFuZ2VkIEZJTkFMKQotICAg
IFFfUFJPUEVSVFkoUVN0cmluZyBzZXJpZkZvbnRGYW1pbHkgUkVBRCBzZXJpZkZvbnRGYW1pbHkg
V1JJVEUgc2V0U2VyaWZGb250RmFtaWx5IE5PVElGWSBzZXJpZkZvbnRGYW1pbHlDaGFuZ2VkIEZJ
TkFMKQotICAgIFFfUFJPUEVSVFkoUVN0cmluZyBzYW5zU2VyaWZGb250RmFtaWx5IFJFQUQgc2Fu
c1NlcmlmRm9udEZhbWlseSBXUklURSBzZXRTYW5zU2VyaWZGb250RmFtaWx5IE5PVElGWSBzYW5z
U2VyaWZGb250RmFtaWx5Q2hhbmdlZCBGSU5BTCkKLSAgICBRX1BST1BFUlRZKFFTdHJpbmcgY3Vy
c2l2ZUZvbnRGYW1pbHkgUkVBRCBjdXJzaXZlRm9udEZhbWlseSBXUklURSBzZXRDdXJzaXZlRm9u
dEZhbWlseSBOT1RJRlkgY3Vyc2l2ZUZvbnRGYW1pbHlDaGFuZ2VkIEZJTkFMKQotICAgIFFfUFJP
UEVSVFkoUVN0cmluZyBmYW50YXN5Rm9udEZhbWlseSBSRUFEIGZhbnRhc3lGb250RmFtaWx5IFdS
SVRFIHNldEZhbnRhc3lGb250RmFtaWx5IE5PVElGWSBmYW50YXN5Rm9udEZhbWlseUNoYW5nZWQg
RklOQUwpCi0KLSAgICBRX1BST1BFUlRZKHVuc2lnbmVkIG1pbmltdW1Gb250U2l6ZSBSRUFEIG1p
bmltdW1Gb250U2l6ZSBXUklURSBzZXRNaW5pbXVtRm9udFNpemUgTk9USUZZIG1pbmltdW1Gb250
U2l6ZUNoYW5nZWQgRklOQUwpCi0gICAgUV9QUk9QRVJUWSh1bnNpZ25lZCBkZWZhdWx0Rm9udFNp
emUgUkVBRCBkZWZhdWx0Rm9udFNpemUgV1JJVEUgc2V0RGVmYXVsdEZvbnRTaXplIE5PVElGWSBk
ZWZhdWx0Rm9udFNpemVDaGFuZ2VkIEZJTkFMKQotICAgIFFfUFJPUEVSVFkodW5zaWduZWQgZGVm
YXVsdEZpeGVkRm9udFNpemUgUkVBRCBkZWZhdWx0Rml4ZWRGb250U2l6ZSBXUklURSBzZXREZWZh
dWx0Rml4ZWRGb250U2l6ZSBOT1RJRlkgZGVmYXVsdEZpeGVkRm9udFNpemVDaGFuZ2VkIEZJTkFM
KQotCi0gICAgYm9vbCBhdXRvTG9hZEltYWdlcygpIGNvbnN0OwotICAgIHZvaWQgc2V0QXV0b0xv
YWRJbWFnZXMoYm9vbCBlbmFibGUpOwotCi0gICAgYm9vbCBqYXZhc2NyaXB0RW5hYmxlZCgpIGNv
bnN0OwotICAgIHZvaWQgc2V0SmF2YXNjcmlwdEVuYWJsZWQoYm9vbCBlbmFibGUpOwotCi0gICAg
Ym9vbCBwbHVnaW5zRW5hYmxlZCgpIGNvbnN0OwotICAgIHZvaWQgc2V0UGx1Z2luc0VuYWJsZWQo
Ym9vbCBlbmFibGUpOwotCi0gICAgYm9vbCBvZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJs
ZWQoKSBjb25zdDsKLSAgICB2b2lkIHNldE9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxl
ZChib29sIGVuYWJsZSk7Ci0KLSAgICBib29sIGxvY2FsU3RvcmFnZUVuYWJsZWQoKSBjb25zdDsK
LSAgICB2b2lkIHNldExvY2FsU3RvcmFnZUVuYWJsZWQoYm9vbCBlbmFibGUpOwotCi0gICAgYm9v
bCB4c3NBdWRpdGluZ0VuYWJsZWQoKSBjb25zdDsKLSAgICB2b2lkIHNldFhzc0F1ZGl0aW5nRW5h
YmxlZChib29sIGVuYWJsZSk7Ci0KLSAgICBib29sIHByaXZhdGVCcm93c2luZ0VuYWJsZWQoKSBj
b25zdDsKLSAgICB2b2lkIHNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQoYm9vbCBlbmFibGUpOwot
Ci0gICAgYm9vbCBkbnNQcmVmZXRjaEVuYWJsZWQoKSBjb25zdDsKLSAgICB2b2lkIHNldERuc1By
ZWZldGNoRW5hYmxlZChib29sIGVuYWJsZSk7Ci0KLSAgICBib29sIG5hdmlnYXRvclF0T2JqZWN0
RW5hYmxlZCgpIGNvbnN0OwotICAgIHZvaWQgc2V0TmF2aWdhdG9yUXRPYmplY3RFbmFibGVkKGJv
b2wpOwotCi0gICAgUVN0cmluZyBzdGFuZGFyZEZvbnRGYW1pbHkoKSBjb25zdDsKLSAgICB2b2lk
IHNldFN0YW5kYXJkRm9udEZhbWlseShjb25zdCBRU3RyaW5nJiBmYW1pbHkpOwotCi0gICAgUVN0
cmluZyBmaXhlZEZvbnRGYW1pbHkoKSBjb25zdDsKLSAgICB2b2lkIHNldEZpeGVkRm9udEZhbWls
eShjb25zdCBRU3RyaW5nJiBmYW1pbHkpOwotCi0gICAgUVN0cmluZyBzZXJpZkZvbnRGYW1pbHko
KSBjb25zdDsKLSAgICB2b2lkIHNldFNlcmlmRm9udEZhbWlseShjb25zdCBRU3RyaW5nJiBmYW1p
bHkpOwotCi0gICAgUVN0cmluZyBzYW5zU2VyaWZGb250RmFtaWx5KCkgY29uc3Q7Ci0gICAgdm9p
ZCBzZXRTYW5zU2VyaWZGb250RmFtaWx5KGNvbnN0IFFTdHJpbmcmIGZhbWlseSk7Ci0KLSAgICBR
U3RyaW5nIGN1cnNpdmVGb250RmFtaWx5KCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRDdXJzaXZlRm9u
dEZhbWlseShjb25zdCBRU3RyaW5nJiBmYW1pbHkpOwotCi0gICAgUVN0cmluZyBmYW50YXN5Rm9u
dEZhbWlseSgpIGNvbnN0OwotICAgIHZvaWQgc2V0RmFudGFzeUZvbnRGYW1pbHkoY29uc3QgUVN0
cmluZyYgZmFtaWx5KTsKLQotICAgIHVuc2lnbmVkIG1pbmltdW1Gb250U2l6ZSgpIGNvbnN0Owot
ICAgIHZvaWQgc2V0TWluaW11bUZvbnRTaXplKHVuc2lnbmVkIHNpemUpOwotCi0gICAgdW5zaWdu
ZWQgZGVmYXVsdEZvbnRTaXplKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXREZWZhdWx0Rm9udFNpemUo
dW5zaWduZWQgc2l6ZSk7Ci0KLSAgICB1bnNpZ25lZCBkZWZhdWx0Rml4ZWRGb250U2l6ZSgpIGNv
bnN0OwotICAgIHZvaWQgc2V0RGVmYXVsdEZpeGVkRm9udFNpemUodW5zaWduZWQgc2l6ZSk7Ci0K
LVFfU0lHTkFMUzoKLSAgICB2b2lkIGF1dG9Mb2FkSW1hZ2VzQ2hhbmdlZCgpOwotICAgIHZvaWQg
cGx1Z2luc0VuYWJsZWRDaGFuZ2VkKCk7Ci0gICAgdm9pZCBqYXZhc2NyaXB0RW5hYmxlZENoYW5n
ZWQoKTsKLSAgICB2b2lkIG9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZENoYW5nZWQo
KTsKLSAgICB2b2lkIGxvY2FsU3RvcmFnZUVuYWJsZWRDaGFuZ2VkKCk7Ci0gICAgdm9pZCB4c3NB
dWRpdGluZ0VuYWJsZWRDaGFuZ2VkKCk7Ci0gICAgdm9pZCBwcml2YXRlQnJvd3NpbmdFbmFibGVk
Q2hhbmdlZCgpOwotICAgIHZvaWQgZG5zUHJlZmV0Y2hFbmFibGVkQ2hhbmdlZCgpOwotICAgIHZv
aWQgbmF2aWdhdG9yUXRPYmplY3RFbmFibGVkQ2hhbmdlZCgpOwotCi0gICAgdm9pZCBzdGFuZGFy
ZEZvbnRGYW1pbHlDaGFuZ2VkKCk7Ci0gICAgdm9pZCBmaXhlZEZvbnRGYW1pbHlDaGFuZ2VkKCk7
Ci0gICAgdm9pZCBzZXJpZkZvbnRGYW1pbHlDaGFuZ2VkKCk7Ci0gICAgdm9pZCBzYW5zU2VyaWZG
b250RmFtaWx5Q2hhbmdlZCgpOwotICAgIHZvaWQgY3Vyc2l2ZUZvbnRGYW1pbHlDaGFuZ2VkKCk7
Ci0gICAgdm9pZCBmYW50YXN5Rm9udEZhbWlseUNoYW5nZWQoKTsKLQotICAgIHZvaWQgbWluaW11
bUZvbnRTaXplQ2hhbmdlZCgpOwotICAgIHZvaWQgZGVmYXVsdEZvbnRTaXplQ2hhbmdlZCgpOwot
ICAgIHZvaWQgZGVmYXVsdEZpeGVkRm9udFNpemVDaGFuZ2VkKCk7Ci0KLXByaXZhdGU6Ci0gICAg
UV9ESVNBQkxFX0NPUFkoUVdlYlByZWZlcmVuY2VzKQotCi0gICAgUVdlYlByZWZlcmVuY2VzKCk7
Ci0KLSAgICBRV2ViUHJlZmVyZW5jZXNQcml2YXRlICpkOwotCi0gICAgZnJpZW5kIGNsYXNzIFFX
ZWJQcmVmZXJlbmNlc1ByaXZhdGU7Ci19OwotCi0jZW5kaWYgLy8gcXdlYnByZWZlcmVuY2VzX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVu
Y2VzX3AuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2Vz
X3AuaAppbmRleCBiZGEyZjRhLi4yOWRmMDRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlc19wLmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXNfcC5oCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAgICBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJz
aWRpYXJ5KC1pZXMpCisgICAgQ29weXJpZ2h0IChDKSAyMDExIE5va2lhIENvcnBvcmF0aW9uIGFu
ZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogCiAgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0xNyw1NSAr
MTcsMTI1IEBACiAgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCiAqLwogCi0jaW5jbHVk
ZSAiV0tQcmVmZXJlbmNlcy5oIgorI2lmbmRlZiBxd2VicHJlZmVyZW5jZXNfcF9oCisjZGVmaW5l
IHF3ZWJwcmVmZXJlbmNlc19wX2gKIAotY2xhc3MgUXRXZWJQYWdlUHJveHk7CisjaW5jbHVkZSAi
cXdlYmtpdGdsb2JhbC5oIgogCi1jbGFzcyBRV2ViUHJlZmVyZW5jZXNQcml2YXRlIHsKKyNpbmNs
dWRlIDxRdENvcmUvUU9iamVjdD4KKworY2xhc3MgUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTsKKwor
Y2xhc3MgUVdFQktJVF9FWFBPUlQgUVdlYlByZWZlcmVuY2VzIDogcHVibGljIFFPYmplY3Qgewor
ICAgIFFfT0JKRUNUCiBwdWJsaWM6CisgICAgflFXZWJQcmVmZXJlbmNlcygpOworCisgICAgUV9Q
Uk9QRVJUWShib29sIGF1dG9Mb2FkSW1hZ2VzIFJFQUQgYXV0b0xvYWRJbWFnZXMgV1JJVEUgc2V0
QXV0b0xvYWRJbWFnZXMgTk9USUZZIGF1dG9Mb2FkSW1hZ2VzQ2hhbmdlZCBGSU5BTCkKKyAgICBR
X1BST1BFUlRZKGJvb2wgamF2YXNjcmlwdEVuYWJsZWQgUkVBRCBqYXZhc2NyaXB0RW5hYmxlZCBX
UklURSBzZXRKYXZhc2NyaXB0RW5hYmxlZCBOT1RJRlkgamF2YXNjcmlwdEVuYWJsZWRDaGFuZ2Vk
IEZJTkFMKQorICAgIFFfUFJPUEVSVFkoYm9vbCBwbHVnaW5zRW5hYmxlZCBSRUFEIHBsdWdpbnNF
bmFibGVkIFdSSVRFIHNldFBsdWdpbnNFbmFibGVkIE5PVElGWSBwbHVnaW5zRW5hYmxlZENoYW5n
ZWQgRklOQUwpCisgICAgUV9QUk9QRVJUWShib29sIG9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hl
RW5hYmxlZCBSRUFEIG9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZCBXUklURSBzZXRP
ZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQgTk9USUZZIG9mZmxpbmVXZWJBcHBsaWNh
dGlvbkNhY2hlRW5hYmxlZENoYW5nZWQgRklOQUwpCisgICAgUV9QUk9QRVJUWShib29sIGxvY2Fs
U3RvcmFnZUVuYWJsZWQgUkVBRCBsb2NhbFN0b3JhZ2VFbmFibGVkIFdSSVRFIHNldExvY2FsU3Rv
cmFnZUVuYWJsZWQgTk9USUZZIGxvY2FsU3RvcmFnZUVuYWJsZWRDaGFuZ2VkIEZJTkFMKQorICAg
IFFfUFJPUEVSVFkoYm9vbCB4c3NBdWRpdGluZ0VuYWJsZWQgUkVBRCB4c3NBdWRpdGluZ0VuYWJs
ZWQgV1JJVEUgc2V0WHNzQXVkaXRpbmdFbmFibGVkIE5PVElGWSB4c3NBdWRpdGluZ0VuYWJsZWRD
aGFuZ2VkIEZJTkFMKQorICAgIFFfUFJPUEVSVFkoYm9vbCBwcml2YXRlQnJvd3NpbmdFbmFibGVk
IFJFQUQgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCBXUklURSBzZXRQcml2YXRlQnJvd3NpbmdFbmFi
bGVkIE5PVElGWSBwcml2YXRlQnJvd3NpbmdFbmFibGVkQ2hhbmdlZCBGSU5BTCkKKyAgICBRX1BS
T1BFUlRZKGJvb2wgZG5zUHJlZmV0Y2hFbmFibGVkIFJFQUQgZG5zUHJlZmV0Y2hFbmFibGVkIFdS
SVRFIHNldERuc1ByZWZldGNoRW5hYmxlZCBOT1RJRlkgZG5zUHJlZmV0Y2hFbmFibGVkQ2hhbmdl
ZCBGSU5BTCkKKyAgICBRX1BST1BFUlRZKGJvb2wgbmF2aWdhdG9yUXRPYmplY3RFbmFibGVkIFJF
QUQgbmF2aWdhdG9yUXRPYmplY3RFbmFibGVkIFdSSVRFIHNldE5hdmlnYXRvclF0T2JqZWN0RW5h
YmxlZCBOT1RJRlkgbmF2aWdhdG9yUXRPYmplY3RFbmFibGVkQ2hhbmdlZCBGSU5BTCkKKworICAg
IFFfUFJPUEVSVFkoUVN0cmluZyBzdGFuZGFyZEZvbnRGYW1pbHkgUkVBRCBzdGFuZGFyZEZvbnRG
YW1pbHkgV1JJVEUgc2V0U3RhbmRhcmRGb250RmFtaWx5IE5PVElGWSBzdGFuZGFyZEZvbnRGYW1p
bHlDaGFuZ2VkIEZJTkFMKQorICAgIFFfUFJPUEVSVFkoUVN0cmluZyBmaXhlZEZvbnRGYW1pbHkg
UkVBRCBmaXhlZEZvbnRGYW1pbHkgV1JJVEUgc2V0Rml4ZWRGb250RmFtaWx5IE5PVElGWSBmaXhl
ZEZvbnRGYW1pbHlDaGFuZ2VkIEZJTkFMKQorICAgIFFfUFJPUEVSVFkoUVN0cmluZyBzZXJpZkZv
bnRGYW1pbHkgUkVBRCBzZXJpZkZvbnRGYW1pbHkgV1JJVEUgc2V0U2VyaWZGb250RmFtaWx5IE5P
VElGWSBzZXJpZkZvbnRGYW1pbHlDaGFuZ2VkIEZJTkFMKQorICAgIFFfUFJPUEVSVFkoUVN0cmlu
ZyBzYW5zU2VyaWZGb250RmFtaWx5IFJFQUQgc2Fuc1NlcmlmRm9udEZhbWlseSBXUklURSBzZXRT
YW5zU2VyaWZGb250RmFtaWx5IE5PVElGWSBzYW5zU2VyaWZGb250RmFtaWx5Q2hhbmdlZCBGSU5B
TCkKKyAgICBRX1BST1BFUlRZKFFTdHJpbmcgY3Vyc2l2ZUZvbnRGYW1pbHkgUkVBRCBjdXJzaXZl
Rm9udEZhbWlseSBXUklURSBzZXRDdXJzaXZlRm9udEZhbWlseSBOT1RJRlkgY3Vyc2l2ZUZvbnRG
YW1pbHlDaGFuZ2VkIEZJTkFMKQorICAgIFFfUFJPUEVSVFkoUVN0cmluZyBmYW50YXN5Rm9udEZh
bWlseSBSRUFEIGZhbnRhc3lGb250RmFtaWx5IFdSSVRFIHNldEZhbnRhc3lGb250RmFtaWx5IE5P
VElGWSBmYW50YXN5Rm9udEZhbWlseUNoYW5nZWQgRklOQUwpCisKKyAgICBRX1BST1BFUlRZKHVu
c2lnbmVkIG1pbmltdW1Gb250U2l6ZSBSRUFEIG1pbmltdW1Gb250U2l6ZSBXUklURSBzZXRNaW5p
bXVtRm9udFNpemUgTk9USUZZIG1pbmltdW1Gb250U2l6ZUNoYW5nZWQgRklOQUwpCisgICAgUV9Q
Uk9QRVJUWSh1bnNpZ25lZCBkZWZhdWx0Rm9udFNpemUgUkVBRCBkZWZhdWx0Rm9udFNpemUgV1JJ
VEUgc2V0RGVmYXVsdEZvbnRTaXplIE5PVElGWSBkZWZhdWx0Rm9udFNpemVDaGFuZ2VkIEZJTkFM
KQorICAgIFFfUFJPUEVSVFkodW5zaWduZWQgZGVmYXVsdEZpeGVkRm9udFNpemUgUkVBRCBkZWZh
dWx0Rml4ZWRGb250U2l6ZSBXUklURSBzZXREZWZhdWx0Rml4ZWRGb250U2l6ZSBOT1RJRlkgZGVm
YXVsdEZpeGVkRm9udFNpemVDaGFuZ2VkIEZJTkFMKQorCisgICAgYm9vbCBhdXRvTG9hZEltYWdl
cygpIGNvbnN0OworICAgIHZvaWQgc2V0QXV0b0xvYWRJbWFnZXMoYm9vbCBlbmFibGUpOworCisg
ICAgYm9vbCBqYXZhc2NyaXB0RW5hYmxlZCgpIGNvbnN0OworICAgIHZvaWQgc2V0SmF2YXNjcmlw
dEVuYWJsZWQoYm9vbCBlbmFibGUpOworCisgICAgYm9vbCBwbHVnaW5zRW5hYmxlZCgpIGNvbnN0
OworICAgIHZvaWQgc2V0UGx1Z2luc0VuYWJsZWQoYm9vbCBlbmFibGUpOworCisgICAgYm9vbCBv
ZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQoKSBjb25zdDsKKyAgICB2b2lkIHNldE9m
ZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZChib29sIGVuYWJsZSk7CisKKyAgICBib29s
IGxvY2FsU3RvcmFnZUVuYWJsZWQoKSBjb25zdDsKKyAgICB2b2lkIHNldExvY2FsU3RvcmFnZUVu
YWJsZWQoYm9vbCBlbmFibGUpOworCisgICAgYm9vbCB4c3NBdWRpdGluZ0VuYWJsZWQoKSBjb25z
dDsKKyAgICB2b2lkIHNldFhzc0F1ZGl0aW5nRW5hYmxlZChib29sIGVuYWJsZSk7CisKKyAgICBi
b29sIHByaXZhdGVCcm93c2luZ0VuYWJsZWQoKSBjb25zdDsKKyAgICB2b2lkIHNldFByaXZhdGVC
cm93c2luZ0VuYWJsZWQoYm9vbCBlbmFibGUpOworCisgICAgYm9vbCBkbnNQcmVmZXRjaEVuYWJs
ZWQoKSBjb25zdDsKKyAgICB2b2lkIHNldERuc1ByZWZldGNoRW5hYmxlZChib29sIGVuYWJsZSk7
CisKKyAgICBib29sIG5hdmlnYXRvclF0T2JqZWN0RW5hYmxlZCgpIGNvbnN0OworICAgIHZvaWQg
c2V0TmF2aWdhdG9yUXRPYmplY3RFbmFibGVkKGJvb2wpOworCisgICAgUVN0cmluZyBzdGFuZGFy
ZEZvbnRGYW1pbHkoKSBjb25zdDsKKyAgICB2b2lkIHNldFN0YW5kYXJkRm9udEZhbWlseShjb25z
dCBRU3RyaW5nJiBmYW1pbHkpOwogCi0gICAgZW51bSBXZWJBdHRyaWJ1dGUgewotICAgICAgICBB
dXRvTG9hZEltYWdlcywKLSAgICAgICAgSmF2YXNjcmlwdEVuYWJsZWQsCi0gICAgICAgIFBsdWdp
bnNFbmFibGVkLAotICAgICAgICBPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQsCi0g
ICAgICAgIExvY2FsU3RvcmFnZUVuYWJsZWQsCi0gICAgICAgIFhTU0F1ZGl0aW5nRW5hYmxlZCwK
LSAgICAgICAgRnJhbWVGbGF0dGVuaW5nRW5hYmxlZCwKLSAgICAgICAgUHJpdmF0ZUJyb3dzaW5n
RW5hYmxlZCwKLSAgICAgICAgQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQsCi0gICAgICAg
IERuc1ByZWZldGNoRW5hYmxlZAotICAgIH07Ci0KLSAgICBlbnVtIEZvbnRGYW1pbHkgewotICAg
ICAgICBTdGFuZGFyZEZvbnQsCi0gICAgICAgIEZpeGVkRm9udCwKLSAgICAgICAgU2VyaWZGb250
LAotICAgICAgICBTYW5zU2VyaWZGb250LAotICAgICAgICBDdXJzaXZlRm9udCwKLSAgICAgICAg
RmFudGFzeUZvbnQKLSAgICB9OwotCi0gICAgZW51bSBGb250U2l6ZVR5cGUgewotICAgICAgICBN
aW5pbXVtRm9udFNpemUsCi0gICAgICAgIERlZmF1bHRGb250U2l6ZSwKLSAgICAgICAgRGVmYXVs
dEZpeGVkRm9udFNpemUKLSAgICB9OwotCi0gICAgc3RhdGljIFFXZWJQcmVmZXJlbmNlcyogY3Jl
YXRlUHJlZmVyZW5jZXMoUXRXZWJQYWdlUHJveHkqKTsKLQotICAgIHZvaWQgc2V0QXR0cmlidXRl
KFdlYkF0dHJpYnV0ZSBhdHRyLCBib29sIGVuYWJsZSk7Ci0gICAgYm9vbCB0ZXN0QXR0cmlidXRl
KFdlYkF0dHJpYnV0ZSBhdHRyKSBjb25zdDsKLQotICAgIHZvaWQgc2V0Rm9udEZhbWlseShGb250
RmFtaWx5IHdoaWNoLCBjb25zdCBRU3RyaW5nJiBmYW1pbHkpOwotICAgIFFTdHJpbmcgZm9udEZh
bWlseShGb250RmFtaWx5IHdoaWNoKSBjb25zdDsKLQotICAgIHZvaWQgc2V0Rm9udFNpemUoRm9u
dFNpemVUeXBlIHR5cGUsIHVuc2lnbmVkIHNpemUpOwotICAgIHVuc2lnbmVkIGZvbnRTaXplKEZv
bnRTaXplVHlwZSB0eXBlKSBjb25zdDsKLQotICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5j
ZXNSZWYoKSBjb25zdDsKLQotICAgIFF0V2ViUGFnZVByb3h5KiBxdFdlYlBhZ2VQcm94eTsKLQot
ICAgIHN0YXRpYyBRV2ViUHJlZmVyZW5jZXNQcml2YXRlKiBnZXQoUVdlYlByZWZlcmVuY2VzKik7
CisgICAgUVN0cmluZyBmaXhlZEZvbnRGYW1pbHkoKSBjb25zdDsKKyAgICB2b2lkIHNldEZpeGVk
Rm9udEZhbWlseShjb25zdCBRU3RyaW5nJiBmYW1pbHkpOworCisgICAgUVN0cmluZyBzZXJpZkZv
bnRGYW1pbHkoKSBjb25zdDsKKyAgICB2b2lkIHNldFNlcmlmRm9udEZhbWlseShjb25zdCBRU3Ry
aW5nJiBmYW1pbHkpOworCisgICAgUVN0cmluZyBzYW5zU2VyaWZGb250RmFtaWx5KCkgY29uc3Q7
CisgICAgdm9pZCBzZXRTYW5zU2VyaWZGb250RmFtaWx5KGNvbnN0IFFTdHJpbmcmIGZhbWlseSk7
CisKKyAgICBRU3RyaW5nIGN1cnNpdmVGb250RmFtaWx5KCkgY29uc3Q7CisgICAgdm9pZCBzZXRD
dXJzaXZlRm9udEZhbWlseShjb25zdCBRU3RyaW5nJiBmYW1pbHkpOworCisgICAgUVN0cmluZyBm
YW50YXN5Rm9udEZhbWlseSgpIGNvbnN0OworICAgIHZvaWQgc2V0RmFudGFzeUZvbnRGYW1pbHko
Y29uc3QgUVN0cmluZyYgZmFtaWx5KTsKKworICAgIHVuc2lnbmVkIG1pbmltdW1Gb250U2l6ZSgp
IGNvbnN0OworICAgIHZvaWQgc2V0TWluaW11bUZvbnRTaXplKHVuc2lnbmVkIHNpemUpOworCisg
ICAgdW5zaWduZWQgZGVmYXVsdEZvbnRTaXplKCkgY29uc3Q7CisgICAgdm9pZCBzZXREZWZhdWx0
Rm9udFNpemUodW5zaWduZWQgc2l6ZSk7CisKKyAgICB1bnNpZ25lZCBkZWZhdWx0Rml4ZWRGb250
U2l6ZSgpIGNvbnN0OworICAgIHZvaWQgc2V0RGVmYXVsdEZpeGVkRm9udFNpemUodW5zaWduZWQg
c2l6ZSk7CisKK1FfU0lHTkFMUzoKKyAgICB2b2lkIGF1dG9Mb2FkSW1hZ2VzQ2hhbmdlZCgpOwor
ICAgIHZvaWQgcGx1Z2luc0VuYWJsZWRDaGFuZ2VkKCk7CisgICAgdm9pZCBqYXZhc2NyaXB0RW5h
YmxlZENoYW5nZWQoKTsKKyAgICB2b2lkIG9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxl
ZENoYW5nZWQoKTsKKyAgICB2b2lkIGxvY2FsU3RvcmFnZUVuYWJsZWRDaGFuZ2VkKCk7CisgICAg
dm9pZCB4c3NBdWRpdGluZ0VuYWJsZWRDaGFuZ2VkKCk7CisgICAgdm9pZCBwcml2YXRlQnJvd3Np
bmdFbmFibGVkQ2hhbmdlZCgpOworICAgIHZvaWQgZG5zUHJlZmV0Y2hFbmFibGVkQ2hhbmdlZCgp
OworICAgIHZvaWQgbmF2aWdhdG9yUXRPYmplY3RFbmFibGVkQ2hhbmdlZCgpOworCisgICAgdm9p
ZCBzdGFuZGFyZEZvbnRGYW1pbHlDaGFuZ2VkKCk7CisgICAgdm9pZCBmaXhlZEZvbnRGYW1pbHlD
aGFuZ2VkKCk7CisgICAgdm9pZCBzZXJpZkZvbnRGYW1pbHlDaGFuZ2VkKCk7CisgICAgdm9pZCBz
YW5zU2VyaWZGb250RmFtaWx5Q2hhbmdlZCgpOworICAgIHZvaWQgY3Vyc2l2ZUZvbnRGYW1pbHlD
aGFuZ2VkKCk7CisgICAgdm9pZCBmYW50YXN5Rm9udEZhbWlseUNoYW5nZWQoKTsKKworICAgIHZv
aWQgbWluaW11bUZvbnRTaXplQ2hhbmdlZCgpOworICAgIHZvaWQgZGVmYXVsdEZvbnRTaXplQ2hh
bmdlZCgpOworICAgIHZvaWQgZGVmYXVsdEZpeGVkRm9udFNpemVDaGFuZ2VkKCk7CisKK3ByaXZh
dGU6CisgICAgUV9ESVNBQkxFX0NPUFkoUVdlYlByZWZlcmVuY2VzKQorCisgICAgUVdlYlByZWZl
cmVuY2VzKCk7CisKKyAgICBRV2ViUHJlZmVyZW5jZXNQcml2YXRlICpkOworCisgICAgZnJpZW5k
IGNsYXNzIFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU7CiB9OworCisjZW5kaWYgLy8gcXdlYnByZWZl
cmVuY2VzX3BfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90
ZXN0cy9xbWx0ZXN0cy9xbWx0ZXN0cy5wcm8gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3F0L3Rlc3RzL3FtbHRlc3RzL3FtbHRlc3RzLnBybwppbmRleCA2NDAzN2U0Li41OTk0N2IwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3Rz
L3FtbHRlc3RzLnBybworKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3Rz
L3FtbHRlc3RzL3FtbHRlc3RzLnBybwpAQCAtMSw1ICsxLDYgQEAKIGluY2x1ZGUoLi4vdGVzdHMu
cHJpKQogCitDT05GSUcgKz0gcXR3ZWJraXQtcHJpdmF0ZQogQ09ORklHICs9IHdhcm5fb24gdGVz
dGNhc2UKIAogUVQgLT0gdGVzdGxpYgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy90c3RfcW1sdGVzdHMuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy90c3RfcW1sdGVzdHMuY3BwCmluZGV4
IDUyNjY0NGIuLmVjNmZkNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvdGVzdHMvcW1sdGVzdHMvdHN0X3FtbHRlc3RzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL3RzdF9xbWx0ZXN0cy5jcHAKQEAgLTIw
LDggKzIwLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICIuLi91dGlsLmgiCiAK
LSNpbmNsdWRlICJxcXVpY2t3ZWJwYWdlLmgiCi0jaW5jbHVkZSAicXF1aWNrd2Vidmlldy5oIgor
I2luY2x1ZGUgInFxdWlja3dlYnBhZ2VfcC5oIgogI2luY2x1ZGUgInFxdWlja3dlYnZpZXdfcC5o
IgogCiAjaW5jbHVkZSA8UVZhckxlbmd0aEFycmF5PgpAQCAtMzMsNyArMzIsNyBAQCBwdWJsaWM6
CiAgICAgRGVza3RvcFdlYlZpZXcoUVF1aWNrSXRlbSogcGFyZW50ID0gMCkKICAgICAgICAgOiBR
UXVpY2tXZWJWaWV3KHBhcmVudCkKICAgICB7Ci0gICAgICAgIFFRdWlja1dlYlZpZXdQcml2YXRl
OjpnZXQodGhpcyktPnNldFVzZVRyYWRpdGlvbmFsRGVza3RvcEJlaGF2aW91cih0cnVlKTsKKyAg
ICAgICAgZXhwZXJpbWVudGFsKCktPnNldFVzZVRyYWRpdGlvbmFsRGVza3RvcEJlaGF2aW91cih0
cnVlKTsKICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3Rlc3RzL3FxdWlja3dlYnZpZXcvcXF1aWNrd2Vidmlldy5wcm8gYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FxdWlja3dlYnZpZXcvcXF1aWNrd2Vidmlldy5w
cm8KaW5kZXggZTk5YzdmNC4uNzI4NTIxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC90ZXN0cy9xcXVpY2t3ZWJ2aWV3L3FxdWlja3dlYnZpZXcucHJvCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcXF1aWNrd2Vidmlldy9xcXVp
Y2t3ZWJ2aWV3LnBybwpAQCAtMSArMSwyIEBACiBpbmNsdWRlKC4uL3Rlc3RzLnByaSkKK0NPTkZJ
RyArPSBxdHdlYmtpdC1wcml2YXRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3F0L3Rlc3RzL3FxdWlja3dlYnZpZXcvdHN0X3FxdWlja3dlYnZpZXcuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xcXVpY2t3ZWJ2aWV3L3RzdF9xcXVp
Y2t3ZWJ2aWV3LmNwcAppbmRleCBlYjQ5ZjJlLi5lNDNlNjY1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FxdWlja3dlYnZpZXcvdHN0X3FxdWlja3dl
YnZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcXF1
aWNrd2Vidmlldy90c3RfcXF1aWNrd2Vidmlldy5jcHAKQEAgLTIyLDggKzIyLDggQEAKIAogI2lu
Y2x1ZGUgPFFTY29wZWRQb2ludGVyPgogI2luY2x1ZGUgPFF0VGVzdC9RdFRlc3Q+Ci0jaW5jbHVk
ZSA8cXF1aWNrd2VicGFnZS5oPgotI2luY2x1ZGUgPHFxdWlja3dlYnZpZXcuaD4KKyNpbmNsdWRl
IDxxcXVpY2t3ZWJwYWdlX3AuaD4KKyNpbmNsdWRlIDxxcXVpY2t3ZWJ2aWV3X3AuaD4KIAogY2xh
c3MgdHN0X1FRdWlja1dlYlZpZXcgOiBwdWJsaWMgUU9iamVjdCB7CiAgICAgUV9PQkpFQ1QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdERvd25sb2FkTWFuYWdlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXREb3dubG9hZE1hbmFnZXIuY3BwCmlu
ZGV4IDNmOTdmYzYuLjEwYTQwZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9xdC9RdERvd25sb2FkTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L3F0L1F0RG93bmxvYWRNYW5hZ2VyLmNwcApAQCAtMjcsOCArMjcsOCBAQAogI2luY2x1ZGUgIldL
U3RyaW5nUXQuaCIKICNpbmNsdWRlICJXS1VSTFF0LmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dC5o
IgotI2luY2x1ZGUgInF3ZWJkb3dubG9hZGl0ZW0uaCIKICNpbmNsdWRlICJxd2ViZG93bmxvYWRp
dGVtX3AuaCIKKyNpbmNsdWRlICJxd2ViZG93bmxvYWRpdGVtX3BfcC5oIgogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0Vmll
d0ludGVyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRWaWV3SW50ZXJm
YWNlLmNwcAppbmRleCA2ZDgzMjliLi5jMDk2YjFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvcXQvUXRWaWV3SW50ZXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvcXQvUXRWaWV3SW50ZXJmYWNlLmNwcApAQCAtMjIsMTAgKzIyLDEwIEBACiAjaW5j
bHVkZSAiUXRWaWV3SW50ZXJmYWNlLmgiCiAKICNpbmNsdWRlICJRdFdlYkVycm9yLmgiCi0jaW5j
bHVkZSAicXF1aWNrd2VicGFnZS5oIgogI2luY2x1ZGUgInFxdWlja3dlYnBhZ2VfcC5oIgotI2lu
Y2x1ZGUgInFxdWlja3dlYnZpZXcuaCIKKyNpbmNsdWRlICJxcXVpY2t3ZWJwYWdlX3BfcC5oIgog
I2luY2x1ZGUgInFxdWlja3dlYnZpZXdfcC5oIgorI2luY2x1ZGUgInFxdWlja3dlYnZpZXdfcF9w
LmgiCiAKICNpbmNsdWRlIDxRdERlY2xhcmF0aXZlL1FEZWNsYXJhdGl2ZUVuZ2luZT4KICNpbmNs
dWRlIDxRdERlY2xhcmF0aXZlL1FRdWlja1ZpZXc+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvcXQvUXRXZWJFcnJvci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0
L1F0V2ViRXJyb3IuaAppbmRleCA5MTE4N2U5Li4zODliNTBmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJFcnJvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9xdC9RdFdlYkVycm9yLmgKQEAgLTIxLDcgKzIxLDcgQEAKICNpZm5kZWYgUXRXZWJF
cnJvcl9oCiAjZGVmaW5lIFF0V2ViRXJyb3JfaAogCi0jaW5jbHVkZSAicXdlYmRvd25sb2FkaXRl
bS5oIgorI2luY2x1ZGUgInF3ZWJkb3dubG9hZGl0ZW1fcC5oIgogI2luY2x1ZGUgInF3ZWJraXRn
bG9iYWwuaCIKICNpbmNsdWRlIDxRdE5ldHdvcmsvUU5ldHdvcmtSZXBseT4KICNpbmNsdWRlIDxX
S0Vycm9yLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQ
YWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVByb3h5
LmNwcAppbmRleCAzNTY0ZGQ2Li4yYTY2MTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvcXQvUXRXZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9xdC9RdFdlYlBhZ2VQcm94eS5jcHAKQEAgLTIyLDEwICsyMiwxMCBAQAogI2luY2x1ZGUg
IlF0V2ViUGFnZVByb3h5LmgiCiAKICNpbmNsdWRlICJRdFdlYkVycm9yLmgiCi0jaW5jbHVkZSAi
cXdlYmRvd25sb2FkaXRlbS5oIgogI2luY2x1ZGUgInF3ZWJkb3dubG9hZGl0ZW1fcC5oIgotI2lu
Y2x1ZGUgInF3ZWJwcmVmZXJlbmNlcy5oIgorI2luY2x1ZGUgInF3ZWJkb3dubG9hZGl0ZW1fcF9w
LmgiCiAjaW5jbHVkZSAicXdlYnByZWZlcmVuY2VzX3AuaCIKKyNpbmNsdWRlICJxd2VicHJlZmVy
ZW5jZXNfcF9wLmgiCiAKICNpbmNsdWRlICJDbGllbnRJbXBsLmgiCiAjaW5jbHVkZSAiRG93bmxv
YWRQcm94eS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL2FwaS5wcmkgYi9Tb3VyY2UvYXBpLnByaQpp
bmRleCBiMTI4MTg3Li4xNTE5YzZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvYXBpLnByaQorKysgYi9T
b3VyY2UvYXBpLnByaQpAQCAtMTYxLDE1ICsxNjEsMTIgQEAgY29udGFpbnMoQ09ORklHLCB0ZXht
YXApIHsKIAogIyAtLS0tLS0tLS0tLS0tIEluc3RhbGwgcnVsZXMgLS0tLS0tLS0tLS0tLQogCi1t
b2R1bGVmaWxlLmZpbGVzID0gJCR7Uk9PVF9XRUJLSVRfRElSfS9Ub29scy9xbWFrZS9ta3NwZWNz
L21vZHVsZXMvcXRfd2Via2l0LnByaQorbW9kdWxlZmlsZS5maWxlcyA9ICQkUVQud2Via2l0Lm1v
ZHVsZWZpbGUKIG1rc3BlY3MgPSAkJFtRTUFLRV9NS1NQRUNTXQogbWtzcGVjcyA9ICQkc3BsaXQo
bWtzcGVjcywgOikKIG1vZHVsZWZpbGUucGF0aCA9ICQkbGFzdChta3NwZWNzKS9tb2R1bGVzCiBJ
TlNUQUxMUyArPSBtb2R1bGVmaWxlCiAKLWluY2x1ZGUoJCRmaXJzdChtb2R1bGVmaWxlLmZpbGVz
KSkKLVZFUlNJT04gPSAkJHtRVC53ZWJraXQuVkVSU0lPTn0KLQogIyBTeW5jcXQgaGFzIGFscmVh
ZHkgcnVuIGF0IHRoaXMgcG9pbnQsIHNvIHdlIGNhbiB1c2UgaGVhZGVycy5wcmkKICMgYXMgYSBi
YXNpcyBmb3Igb3VyIGluc3RhbGwtcnVsZXMKIEhFQURFUlNfUFJJID0gJCR7Uk9PVF9CVUlMRF9E
SVJ9L2luY2x1ZGUvJCRUQVJHRVQvaGVhZGVycy5wcmkKZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlC
cm93c2VyL3F0L0Jyb3dzZXJXaW5kb3cuY3BwIGIvVG9vbHMvTWluaUJyb3dzZXIvcXQvQnJvd3Nl
cldpbmRvdy5jcHAKaW5kZXggZjU2MTNiNi4uNThlNTg5NCAxMDA2NDQKLS0tIGEvVG9vbHMvTWlu
aUJyb3dzZXIvcXQvQnJvd3NlcldpbmRvdy5jcHAKKysrIGIvVG9vbHMvTWluaUJyb3dzZXIvcXQv
QnJvd3NlcldpbmRvdy5jcHAKQEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlICJCcm93c2VyV2lu
ZG93LmgiCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJxcXVpY2t3ZWJwYWdlLmgi
CisjaW5jbHVkZSAicXF1aWNrd2VicGFnZV9wLmgiCiAjaW5jbHVkZSAicXF1aWNrd2Vidmlld19w
LmgiCiAjaW5jbHVkZSAidXRpbHMuaCIKIApAQCAtNTMsNyArNTMsNyBAQCBCcm93c2VyV2luZG93
OjpCcm93c2VyV2luZG93KFdpbmRvd09wdGlvbnMqIG9wdGlvbnMpCiAgICAgc2V0U291cmNlKFFV
cmwoInFyYzovcW1sL0Jyb3dzZXJXaW5kb3cucW1sIikpOwogICAgIGNvbm5lY3Qocm9vdE9iamVj
dCgpLCBTSUdOQUwocGFnZVRpdGxlQ2hhbmdlZChRU3RyaW5nKSksIHRoaXMsIFNMT1Qoc2V0V2lu
ZG93VGl0bGUoUVN0cmluZykpKTsKICAgICBpZiAoIW9wdGlvbnMtPnVzZVRvdWNoV2ViVmlldygp
KQotICAgICAgICBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6Z2V0KHJvb3RPYmplY3QoKS0+cHJvcGVy
dHkoIndlYnZpZXciKS52YWx1ZTxRUXVpY2tXZWJWaWV3Kj4oKSktPnNldFVzZVRyYWRpdGlvbmFs
RGVza3RvcEJlaGF2aW91cih0cnVlKTsKKyAgICAgICAgd2ViVmlldygpLT5leHBlcmltZW50YWwo
KS0+c2V0VXNlVHJhZGl0aW9uYWxEZXNrdG9wQmVoYXZpb3VyKHRydWUpOwogICAgIGlmIChvcHRp
b25zLT5zdGFydE1heGltaXplZCgpKQogICAgICAgICBzZXRXaW5kb3dTdGF0ZShRdDo6V2luZG93
TWF4aW1pemVkKTsKICAgICBlbHNlCkBAIC02MSw3ICs2MSw3IEBAIEJyb3dzZXJXaW5kb3c6OkJy
b3dzZXJXaW5kb3coV2luZG93T3B0aW9ucyogb3B0aW9ucykKICAgICBzaG93KCk7CiB9CiAKLVFP
YmplY3QqIEJyb3dzZXJXaW5kb3c6OndlYlZpZXcoKSBjb25zdAorUVF1aWNrV2ViVmlldyogQnJv
d3NlcldpbmRvdzo6d2ViVmlldygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHJvb3RPYmplY3QoKS0+
cHJvcGVydHkoIndlYnZpZXciKS52YWx1ZTxRUXVpY2tXZWJWaWV3Kj4oKTsKIH0KZGlmZiAtLWdp
dCBhL1Rvb2xzL01pbmlCcm93c2VyL3F0L0Jyb3dzZXJXaW5kb3cuaCBiL1Rvb2xzL01pbmlCcm93
c2VyL3F0L0Jyb3dzZXJXaW5kb3cuaAppbmRleCA2NTFlYTA3Li43NjllOTdkIDEwMDY0NAotLS0g
YS9Ub29scy9NaW5pQnJvd3Nlci9xdC9Ccm93c2VyV2luZG93LmgKKysrIGIvVG9vbHMvTWluaUJy
b3dzZXIvcXQvQnJvd3NlcldpbmRvdy5oCkBAIC0zMyw2ICszMyw4IEBACiAjaW5jbHVkZSA8UVN0
cmluZ0xpc3Q+CiAjaW5jbHVkZSA8UXREZWNsYXJhdGl2ZS9RUXVpY2tWaWV3PgogCitjbGFzcyBR
UXVpY2tXZWJWaWV3OworCiBjbGFzcyBCcm93c2VyV2luZG93IDogcHVibGljIFFRdWlja1ZpZXcg
ewogICAgIFFfT0JKRUNUCiAKQEAgLTQwLDcgKzQyLDcgQEAgcHVibGljOgogICAgIEJyb3dzZXJX
aW5kb3coV2luZG93T3B0aW9ucyogPSAwKTsKICAgICB+QnJvd3NlcldpbmRvdygpOwogICAgIHZv
aWQgbG9hZChjb25zdCBRU3RyaW5nJiB1cmwpOwotICAgIFFPYmplY3QqIHdlYlZpZXcoKSBjb25z
dDsKKyAgICBRUXVpY2tXZWJWaWV3KiB3ZWJWaWV3KCkgY29uc3Q7CiAKIHB1YmxpYyBzbG90czoK
ICAgICBCcm93c2VyV2luZG93KiBuZXdXaW5kb3coY29uc3QgUVN0cmluZyYgdXJsID0gImFib3V0
OmJsYW5rIik7CmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9xdC9VcmxMb2FkZXIuY3Bw
IGIvVG9vbHMvTWluaUJyb3dzZXIvcXQvVXJsTG9hZGVyLmNwcAppbmRleCBlYmQ2NzBlLi5kYWY1
NjI4IDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9xdC9VcmxMb2FkZXIuY3BwCisrKyBi
L1Rvb2xzL01pbmlCcm93c2VyL3F0L1VybExvYWRlci5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICAq
LwogCiAjaW5jbHVkZSAiVXJsTG9hZGVyLmgiCisjaW5jbHVkZSAicXF1aWNrd2Vidmlld19wLmgi
CiAKICNpbmNsdWRlIDxRRGVidWc+CiAjaW5jbHVkZSA8UUZpbGU+CmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL3F0L1BsYXRmb3JtV2ViVmlld1F0LmNwcCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvcXQvUGxhdGZvcm1XZWJWaWV3UXQuY3BwCmluZGV4IDk2NjFiNTcuLjkyMDFm
OTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvcXQvUGxhdGZvcm1XZWJWaWV3
UXQuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvcXQvUGxhdGZvcm1XZWJWaWV3UXQu
Y3BwCkBAIC0yNyw4ICsyNyw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNpbmNsdWRlICJQ
bGF0Zm9ybVdlYlZpZXcuaCIKLSNpbmNsdWRlICJxcXVpY2t3ZWJ2aWV3LmgiCi0jaW5jbHVkZSAi
cXF1aWNrd2VicGFnZS5oIgorI2luY2x1ZGUgInFxdWlja3dlYnBhZ2VfcC5oIgorI2luY2x1ZGUg
InFxdWlja3dlYnZpZXdfcC5oIgogCiAjaW5jbHVkZSA8UUFwcGxpY2F0aW9uPgogI2luY2x1ZGUg
PFFEZWNsYXJhdGl2ZVByb3BlcnR5PgpkaWZmIC0tZ2l0IGEvVG9vbHMvcW1ha2UvbWtzcGVjcy9m
ZWF0dXJlcy9kZWZhdWx0X3Bvc3QucHJmIGIvVG9vbHMvcW1ha2UvbWtzcGVjcy9mZWF0dXJlcy9k
ZWZhdWx0X3Bvc3QucHJmCmluZGV4IGM5NDkzYWEuLjgyYTNiYmQgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L3FtYWtlL21rc3BlY3MvZmVhdHVyZXMvZGVmYXVsdF9wb3N0LnByZgorKysgYi9Ub29scy9xbWFr
ZS9ta3NwZWNzL2ZlYXR1cmVzL2RlZmF1bHRfcG9zdC5wcmYKQEAgLTM3LDcgKzM3LDYgQEAgREVQ
RU5EUEFUSCArPSAkJE9VVF9QV0QKIAogSU5DTFVERVBBVEggKz0gXAogICAgICQke1JPT1RfV0VC
S0lUX0RJUn0vU291cmNlIFwKLSAgICAkJHtST09UX0JVSUxEX0RJUn0vaW5jbHVkZS9RdFdlYktp
dCBcCiAgICAgJCRidWlsZERpckZvclNvdXJjZShTb3VyY2UvaW5jbHVkZSkgXAogICAgICQke1FU
LnNjcmlwdC5pbmNsdWRlc30KIApkaWZmIC0tZ2l0IGEvVG9vbHMvcW1ha2UvbWtzcGVjcy9mZWF0
dXJlcy9kZWZhdWx0X3ByZS5wcmYgYi9Ub29scy9xbWFrZS9ta3NwZWNzL2ZlYXR1cmVzL2RlZmF1
bHRfcHJlLnByZgppbmRleCBmOGQ4YzdiLi42ZGNhNjgzIDEwMDY0NAotLS0gYS9Ub29scy9xbWFr
ZS9ta3NwZWNzL2ZlYXR1cmVzL2RlZmF1bHRfcHJlLnByZgorKysgYi9Ub29scy9xbWFrZS9ta3Nw
ZWNzL2ZlYXR1cmVzL2RlZmF1bHRfcHJlLnByZgpAQCAtMTAxLDUgKzEwMSw5IEBAIGhhdmVRdCg1
KTogewogICAgIH0KIH0KIAorUVQud2Via2l0Lm1vZHVsZWZpbGUgPSAkJHtST09UX1dFQktJVF9E
SVJ9L1Rvb2xzL3FtYWtlL21rc3BlY3MvbW9kdWxlcy9xdF93ZWJraXQucHJpCitpbmNsdWRlKCQk
UVQud2Via2l0Lm1vZHVsZWZpbGUpCitWRVJTSU9OID0gJCR7UVQud2Via2l0LlZFUlNJT059CisK
ICMgU2V0IHNvbWUgZGVmYXVsdHMgZm9yIHNwZWNpZmljIHBsYXRmb3JtcwogQ09ORklHICs9IGlu
Y2x1ZGVfd2ViaW5zcGVjdG9yCmRpZmYgLS1naXQgYS9Ub29scy9xbWFrZS9ta3NwZWNzL2ZlYXR1
cmVzL3F0d2Via2l0LXByaXZhdGUucHJmIGIvVG9vbHMvcW1ha2UvbWtzcGVjcy9mZWF0dXJlcy9x
dHdlYmtpdC1wcml2YXRlLnByZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4w
NWM2OGQ5Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvcW1ha2UvbWtzcGVjcy9mZWF0dXJlcy9x
dHdlYmtpdC1wcml2YXRlLnByZgpAQCAtMCwwICsxLDEyIEBACisjIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgVGhp
cyBmaWxlIGlzIHVzZWQgYnkgdG9vbHMgdGhhdCByZWx5IG9uIHByaXZhdGUgQVBJcyBvZgorIyB0
aGUgUXRXZWJLaXQgbGlicmFyeQorIworIyBGSVhNRTogQ2FuIHdlIHVzZSB0aGUgc2FtZSB3YXkg
YXMgY2xpZW50IGFwcGxpY2F0aW9ucyB3b3VsZCB1c2U/CisjCisjIFNlZSAnVG9vbHMvcW1ha2Uv
UkVBRE1FJyBmb3IgYW4gb3ZlcnZpZXcgb2YgdGhlIGJ1aWxkIHN5c3RlbQorIyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CisKK2NvbmZpZ19zdGVwIHsKKyAgICBJTkNMVURFUEFUSCArPSAkJHtST09UX0JVSUxEX0RJUn0v
aW5jbHVkZS8kJHtRVC53ZWJraXQubmFtZX0vJCR7UVQud2Via2l0LlZFUlNJT059LyQke1FULndl
YmtpdC5uYW1lfS9wcml2YXRlCit9CmRpZmYgLS1naXQgYS9Ub29scy9xbWFrZS9ta3NwZWNzL2Zl
YXR1cmVzL3F0d2Via2l0LnByZiBiL1Rvb2xzL3FtYWtlL21rc3BlY3MvZmVhdHVyZXMvcXR3ZWJr
aXQucHJmCmluZGV4IGE0MzIwYjMuLjkwY2JkNmUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL3FtYWtlL21r
c3BlY3MvZmVhdHVyZXMvcXR3ZWJraXQucHJmCisrKyBiL1Rvb2xzL3FtYWtlL21rc3BlY3MvZmVh
dHVyZXMvcXR3ZWJraXQucHJmCkBAIC0yNCw1ICsyNCw2IEBAIGNvbmZpZ19zdGVwIHsKICAgICB9
CiAKICAgICBERVBFTkRQQVRIICs9ICQkUk9PVF9XRUJLSVRfRElSL1NvdXJjZS9XZWJLaXQvcXQv
QXBpCisgICAgSU5DTFVERVBBVEggKz0gJCR7Uk9PVF9CVUlMRF9ESVJ9L2luY2x1ZGUvUXRXZWJL
aXQKIH0KIAotLSAKMS43LjQuNAoK
</data>
<flag name="review"
          id="114494"
          type_id="1"
          status="+"
          setter="hausmann"
    />
          </attachment>
      

    </bug>

</bugzilla>