<?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>46054</bug_id>
          
          <creation_ts>2010-09-19 10:29:11 -0700</creation_ts>
          <short_desc>Replace WKBundleRangeRef with WKBundleRangeHandleRef.</short_desc>
          <delta_ts>2010-09-19 11:26:20 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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="Sam Weinig">sam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ossy</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>281280</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-09-19 10:29:11 -0700</bug_when>
    <thetext>Replace WKBundleRangeRef with WKBundleRangeHandleRef.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281281</commentid>
    <comment_count>1</comment_count>
      <attachid>68028</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-09-19 10:32:35 -0700</bug_when>
    <thetext>Created attachment 68028
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281282</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-19 10:37:53 -0700</bug_when>
    <thetext>Attachment 68028 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebKit2/WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp:26:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
WebKit2/WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.h:34:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
WebKit2/WebProcess/InjectedBundle/API/c/WKBundleRangeHandle.cpp:26:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
WebKit2/WebProcess/InjectedBundle/API/c/WKBundleAPICast.h:52:  More than one command on the same line  [whitespace/newline] [4]
WebKit2/WebProcess/InjectedBundle/API/c/WKBundleAPICast.h:54:  More than one command on the same line  [whitespace/newline] [4]
WebKit2/WebProcess/InjectedBundle/API/c/WKBundleAPICast.h:56:  More than one command on the same line  [whitespace/newline] [4]
WebKit2/WebProcess/InjectedBundle/API/c/WKBundleAPICast.h:63:  More than one command on the same line  [whitespace/newline] [4]
Total errors found: 7 in 22 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281283</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-09-19 10:41:01 -0700</bug_when>
    <thetext>Landed in r67813.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281288</commentid>
    <comment_count>4</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2010-09-19 11:01:06 -0700</bug_when>
    <thetext>It seems this patch broke QtWebKit build. Could you fix it?
http://build.webkit.org/builders/Qt%20Linux%20Release/builds/20209/steps/compile-webkit/logs/stdio</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281291</commentid>
    <comment_count>5</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2010-09-19 11:26:20 -0700</bug_when>
    <thetext>Qt buildfix landed in http://trac.webkit.org/changeset/67815</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68028</attachid>
            <date>2010-09-19 10:32:35 -0700</date>
            <delta_ts>2010-09-19 10:34:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>ranger.diff</filename>
            <type>text/plain</type>
            <size>64666</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NzgxMSkKKysrIFdlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTMgQEAKKzIwMTAtMDktMTkgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXBsYWNl
IFdLQnVuZGxlUmFuZ2VSZWYgd2l0aCBXS0J1bmRsZVJhbmdlSGFuZGxlUmVmLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDYwNTQKKworICAgICAgICBU
aGUgbmV3IG9uZSBhY3RzIGxpa2UgV0tCdW5kbGVOb2RlSGFuZGxlUmVmIGFuZCBhbGxvd3MgZm9y
IGdldHRpbmcgYQorICAgICAgICB3cmFwcGVyIGluIGEgc3BlY2lmaWMgd29ybGQgZm9yIHRoZSBo
YW5kbGUuCisKKyAgICAgICAgKiBTaGFyZWQvQVBJT2JqZWN0Lmg6CisgICAgICAgICogV2ViS2l0
Mi5wcm86CisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVBUElDYXN0Lmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUJhc2Uu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlRnJh
bWUuY3BwOgorICAgICAgICAoV0tCdW5kbGVGcmFtZUdldEphdmFTY3JpcHRXcmFwcGVyRm9yUmFu
Z2VGb3JXb3JsZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9X
S0J1bmRsZUZyYW1lLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZVBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9jL1dLQnVuZGxlUmFuZ2UuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVSYW5nZS5oOiBSZW1vdmVkLgorICAgICAgICAqIFdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVSYW5nZUhhbmRsZS5jcHA6IEFk
ZGVkLgorICAgICAgICAoV0tCdW5kbGVSYW5nZUhhbmRsZUdldFR5cGVJRCk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVJhbmdlSGFuZGxlLmg6IEFk
ZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVu
ZGxlTm9kZUhhbmRsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlTm9kZUhh
bmRsZTo6Z2V0T3JDcmVhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
RE9NL0luamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYktpdDo6ZG9tSGFuZGxlQ2FjaGUpOgorICAgICAgICAoV2ViS2l0OjpJbmplY3Rl
ZEJ1bmRsZVJhbmdlSGFuZGxlOjpnZXRPckNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OkluamVj
dGVkQnVuZGxlUmFuZ2VIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVk
QnVuZGxlUmFuZ2VIYW5kbGU6OkluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUpOgorICAgICAgICAo
V2ViS2l0OjpJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlOjp+SW5qZWN0ZWRCdW5kbGVSYW5nZUhh
bmRsZSk6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGU6OmNvcmVS
YW5nZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRC
dW5kbGVSYW5nZUhhbmRsZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5k
bGVSYW5nZUhhbmRsZTo6dHlwZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpJ
bmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQ6OnNob3VsZEJlZ2luRWRpdGluZyk6CisgICAg
ICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudDo6c2hvdWxkRW5kRWRp
dGluZyk6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudDo6
c2hvdWxkSW5zZXJ0Tm9kZSk6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZUVk
aXRvckNsaWVudDo6c2hvdWxkSW5zZXJ0VGV4dCk6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVk
QnVuZGxlUGFnZUVkaXRvckNsaWVudDo6c2hvdWxkRGVsZXRlUmFuZ2UpOgorICAgICAgICAoV2Vi
S2l0OjpJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQ6OnNob3VsZENoYW5nZVNlbGVjdGVk
UmFuZ2UpOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQ6
OnNob3VsZEFwcGx5U3R5bGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFt
ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lOjpqc1dyYXBwZXJGb3JXb3JsZCk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmg6CisgICAgICAgICogd2luL1dl
YktpdDIudmNwcm9qOgorICAgICAgICAqIHdpbi9XZWJLaXQyR2VuZXJhdGVkLm1ha2U6CisKIDIw
MTAtMDktMTggIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBEYW4gQmVybnN0ZWluLgpJbmRleDogV2ViS2l0Mi9XZWJLaXQyLnBybwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXQyL1dlYktpdDIucHJvCShyZXZpc2lvbiA2NzgwNykKKysrIFdlYktpdDIvV2Vi
S2l0Mi5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTIzMyw2ICsyMzMsNyBAQCBIRUFERVJTICs9IFwK
ICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlQmFzZS5oIFwKICAg
ICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oIFwKICAgICBX
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuaCBc
CisgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVSYW5nZUhh
bmRsZS5oIFwKICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmgg
XAogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNs
aWVudC5oIFwKICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFn
ZVVJQ2xpZW50LmggXApAQCAtMzQ3LDYgKzM0OCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIFVJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViVUlDbGllbnQuY3Bw
IFwKICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZU5vZGVI
YW5kbGUuY3BwIFwKKyAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1
bmRsZVJhbmdlSGFuZGxlLmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZS5jcHAgXAogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGVQYWdlRWRpdG9yQ2xpZW50LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50LmNwcCBcCkluZGV4OiBXZWJLaXQyL1NoYXJl
ZC9BUElPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaAko
cmV2aXNpb24gNjc4MDcpCisrKyBXZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaAkod29ya2luZyBj
b3B5KQpAQCAtNjYsOSArNjYsMTAgQEAgcHVibGljOgogICAgICAgICAvLyBCdW5kbGUgdHlwZXMK
ICAgICAgICAgVHlwZUJ1bmRsZSwKICAgICAgICAgVHlwZUJ1bmRsZUZyYW1lLAorICAgICAgICBU
eXBlQnVuZGxlTm9kZUhhbmRsZSwKICAgICAgICAgVHlwZUJ1bmRsZVBhZ2UsCisgICAgICAgIFR5
cGVCdW5kbGVSYW5nZUhhbmRsZSwKICAgICAgICAgVHlwZUJ1bmRsZVNjcmlwdFdvcmxkLAotICAg
ICAgICBUeXBlQnVuZGxlTm9kZUhhbmRsZSwKIAogICAgICAgICAvLyBQbGF0Zm9ybSBzcGVjaWZp
YwogICAgICAgICBUeXBlVmlldwpJbmRleDogV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHJldmlzaW9uIDY3ODA3KQorKysgV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTE5OSw2ICsxOTksOCBAQAogCQlC
QzMzREU4RTEyMzg1QzMzMDAzNjBGM0YgLyogV0tOdW1iZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMzNERThDMTIzODVDMzMwMDM2MEYzRiAvKiBX
S051bWJlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsK
IAkJQkMzM0RFOEYxMjM4NUMzMzAwMzYwRjNGIC8qIFdLTnVtYmVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMzNERThEMTIzODVDMzMwMDM2MEYz
RiAvKiBXS051bWJlci5jcHAgKi87IH07CiAJCUJDMzNERjA2MTIzODY3N0YwMDM2MEYzRiAvKiBX
S1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTcyRDVGMkUxMjM2RjlFODAwQTg4QjE1IC8qIFdLU2VyaWFsaXplZFNj
cmlwdFZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9
OworCQlCQzMzRTBEMTEyNDA4RTg2MDAzNjBGM0YgLyogSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRs
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMzM0Uw
Q0YxMjQwOEU4NjAwMzYwRjNGIC8qIEluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuaCAqLzsgfTsK
KwkJQkMzM0UwRDIxMjQwOEU4NjAwMzYwRjNGIC8qIEluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMzM0Uw
RDAxMjQwOEU4NjAwMzYwRjNGIC8qIEluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuY3BwICovOyB9
OwogCQlCQzRCRUVBQjEyMEEwQTVGMDBGQkEwQzcgLyogSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzRCRUVB
OTEyMEEwQTVFMDBGQkEwQzcgLyogSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmggKi87IH07CiAJ
CUJDNEJFRUFDMTIwQTBBNUYwMEZCQTBDNyAvKiBJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0QkVFQUEx
MjBBMEE1RjAwRkJBMEM3IC8qIEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5jcHAgKi87IH07CiAJ
CUJDNEJFRkUxMTIwQTFBNEMwMEZCQTBDNyAvKiBXS0J1bmRsZU5vZGVIYW5kbGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNEJFRkRGMTIwQTFBNEMw
MEZCQTBDNyAvKiBXS0J1bmRsZU5vZGVIYW5kbGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQdWJsaWMsICk7IH07IH07CkBAIC0yMDgsNiArMjEwLDggQEAKIAkJQkM1RjdCQjQxMTgy
Mzc2QzAwNTJDMDJDIC8qIENodW5rZWRVcGRhdGVEcmF3aW5nQXJlYS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzVGN0JCMjExODIzNzZDMDA1MkMw
MkMgLyogQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhLmNwcCAqLzsgfTsKIAkJQkM1RjdCQjUxMTgy
Mzc2QzAwNTJDMDJDIC8qIENodW5rZWRVcGRhdGVEcmF3aW5nQXJlYS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM1RjdCQjMxMTgyMzc2QzAwNTJDMDJD
IC8qIENodW5rZWRVcGRhdGVEcmF3aW5nQXJlYS5oICovOyB9OwogCQlCQzVGN0JCOTExODIzNzk5
MDA1MkMwMkMgLyogQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhTWFjLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNUY3QkI4MTE4MjM3OTkwMDUyQzAy
QyAvKiBDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWFNYWMuY3BwICovOyB9OworCQlCQzYwQzU3OTEy
NDBBNTQ2MDA4QzVFMjkgLyogV0tCdW5kbGVSYW5nZUhhbmRsZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM2MEM1NzcxMjQwQTU0NjAwOEM1RTI5IC8q
IFdLQnVuZGxlUmFuZ2VIYW5kbGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJs
aWMsICk7IH07IH07CisJCUJDNjBDNTdBMTI0MEE1NDYwMDhDNUUyOSAvKiBXS0J1bmRsZVJhbmdl
SGFuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDNjBDNTc4MTI0MEE1NDYwMDhDNUUyOSAvKiBXS0J1bmRsZVJhbmdlSGFuZGxlLmNwcCAqLzsg
fTsKIAkJQkM2MTdFRTgxMDRDQjM0NzAwRkIzRkUxIC8qIEphdmFTY3JpcHRDb3JlLmZyYW1ld29y
ayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBQTFD
N0RFMTAwRTg0NkUwMDc4REVCQyAvKiBKYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsgKi87IH07CiAJ
CUJDNjQ2ODAzMTFEQkJBNzMwMDY0NTVCMCAvKiBXS0FycmF5LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzY0NjgwMjExREJCQTczMDA2NDU1QjAgLyog
V0tBcnJheS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsK
IAkJQkM2NDY4MEIxMURCQkQ2OTAwNjQ1NUIwIC8qIFdLQXJyYXkuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM2NDY4MEExMURCQkQ2OTAwNjQ1NUIw
IC8qIFdLQXJyYXkuY3BwICovOyB9OwpAQCAtMzYwLDggKzM2NCw2IEBACiAJCUQzQjk0ODQ5MTFG
RjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQzQjk0ODQ1MTFGRjRCNjUwMDAzMkIzOSAvKiBX
ZWJTZWFyY2hQb3B1cE1lbnUuaCAqLzsgfTsKIAkJRTFFRTUzRTMxMUY4Q0ZDMDAwQ0NCRUU0IC8q
IEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRTUzREMxMUY4Q0Y5RjAwQ0NCRUU0IC8qIEluamVj
dGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5oICovOyB9OwogCQlFMUVFNTNFNzExRjhDRkZCMDBD
Q0JFRTQgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU1M0U2MTFGOENGRkIwMENDQkVF
NCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuY3BwICovOyB9OwotCQlFMUVFNTVG
NDExRjhGMTg5MDBDQ0JFRTQgLyogV0tCdW5kbGVSYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRTU1RjMxMUY4RjE4OTAwQ0NCRUU0IC8qIFdL
QnVuZGxlUmFuZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07
IH07Ci0JCUUxRUU1NUY4MTFGOEYxQkMwMENDQkVFNCAvKiBXS0J1bmRsZVJhbmdlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU1NUY3MTFGOEYx
QkMwMENDQkVFNCAvKiBXS0J1bmRsZVJhbmdlLmNwcCAqLzsgfTsKIC8qIEVuZCBQQlhCdWlsZEZp
bGUgc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhDb250YWluZXJJdGVtUHJveHkgc2VjdGlvbiAq
LwpAQCAtNTg4LDYgKzU5MCw4IEBACiAJCUJDMzNERDY3MTIzODQ2NDYwMDM2MEYzRiAvKiBXZWJO
dW1iZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViTnVtYmVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMzNERThDMTIzODVDMzMwMDM2MEYzRiAvKiBX
S051bWJlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS051bWJlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzMzREU4RDEyMzg1QzMzMDAzNjBGM0YgLyog
V0tOdW1iZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tOdW1i
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzMzRTBDRjEyNDA4RTg2MDAz
NjBGM0YgLyogSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUJDMzNFMEQwMTI0MDhFODYwMDM2MEYzRiAvKiBJbmplY3RlZEJ1bmRs
ZVJhbmdlSGFuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElu
amVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlCQzRCRUVBOTEyMEEwQTVFMDBGQkEwQzcgLyogSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkQnVuZGxlTm9kZUhhbmRs
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzRCRUVBQTEyMEEwQTVGMDBGQkEw
QzcgLyogSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUJDNEJFRkRGMTIwQTFBNEMwMEZCQTBDNyAvKiBXS0J1bmRsZU5v
ZGVIYW5kbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tCdW5kbGVOb2Rl
SGFuZGxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01OTcsNiArNjAxLDggQEAK
IAkJQkM1RjdCQjIxMTgyMzc2QzAwNTJDMDJDIC8qIENodW5rZWRVcGRhdGVEcmF3aW5nQXJlYS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDaHVua2VkVXBkYXRlRHJh
d2luZ0FyZWEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzVGN0JCMzExODIz
NzZDMDA1MkMwMkMgLyogQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IENodW5rZWRVcGRhdGVEcmF3aW5nQXJlYS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlCQzVGN0JCODExODIzNzk5MDA1MkMwMkMgLyogQ2h1bmtlZFVw
ZGF0ZURyYXdpbmdBcmVhTWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IENodW5rZWRVcGRhdGVEcmF3aW5nQXJlYU1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUJDNjBDNTc3MTI0MEE1NDYwMDhDNUUyOSAvKiBXS0J1bmRsZVJhbmdlSGFuZGxl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQnVuZGxlUmFuZ2VIYW5kbGUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM2MEM1NzgxMjQwQTU0NjAwOEM1RTI5
IC8qIFdLQnVuZGxlUmFuZ2VIYW5kbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV0tCdW5kbGVSYW5nZUhhbmRsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUJDNjQ2ODAyMTFEQkJBNzMwMDY0NTVCMCAvKiBXS0FycmF5LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQXJyYXkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQkM2NDY4MEExMURCQkQ2OTAwNjQ1NUIwIC8qIFdLQXJyYXkuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tBcnJheS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUJDNjQ2OTZEMTFEQkU2MDMwMDY0NTVCMCAvKiBJbW11dGFibGVBcnJheS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbW11dGFibGVBcnJheS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03NTIsOCArNzU4LDYgQEAKIAkJRDNC
OTQ4NDUxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTZWFyY2hQb3B1cE1lbnUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTFFRTUzREMxMUY4Q0Y5RjAwQ0NCRUU0IC8qIEluamVjdGVkQnVu
ZGxlUGFnZUVkaXRvckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJ
bmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTFFRTUzRTYxMUY4Q0ZGQjAwQ0NCRUU0IC8qIEluamVjdGVkQnVuZGxlUGFnZUVkaXRv
ckNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmplY3Rl
ZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQlFMUVFNTVGMzExRjhGMTg5MDBDQ0JFRTQgLyogV0tCdW5kbGVSYW5nZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXS0J1bmRsZVJhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUUxRUU1NUY3MTFGOEYxQkMwMENDQkVFNCAvKiBXS0J1bmRsZVJhbmdlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLQnVuZGxlUmFuZ2UuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogLyogRW5kIFBCWEZpbGVSZWZlcmVuY2Ugc2Vj
dGlvbiAqLwogCiAvKiBCZWdpbiBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZSBzZWN0aW9uICovCkBA
IC0xMzY4LDggKzEzNzIsOCBAQAogCQkJCUJDMjA1MjdGMTFDOTQyODQwMDhGMzM3NSAvKiBXS0J1
bmRsZVBhZ2UuaCAqLywKIAkJCQlCQzFCNDE5NzExRDQxRDU3MDAxMUU4REQgLyogV0tCdW5kbGVQ
YWdlUHJpdmF0ZS5oICovLAogCQkJCUJDRjA0OUU1MTFGRTIwRjYwMEY4NkE1OCAvKiBXS0J1bmRs
ZVByaXZhdGUuaCAqLywKLQkJCQlFMUVFNTVGNzExRjhGMUJDMDBDQ0JFRTQgLyogV0tCdW5kbGVS
YW5nZS5jcHAgKi8sCi0JCQkJRTFFRTU1RjMxMUY4RjE4OTAwQ0NCRUU0IC8qIFdLQnVuZGxlUmFu
Z2UuaCAqLywKKwkJCQlCQzYwQzU3ODEyNDBBNTQ2MDA4QzVFMjkgLyogV0tCdW5kbGVSYW5nZUhh
bmRsZS5jcHAgKi8sCisJCQkJQkM2MEM1NzcxMjQwQTU0NjAwOEM1RTI5IC8qIFdLQnVuZGxlUmFu
Z2VIYW5kbGUuaCAqLywKIAkJCQlCQzE0REY5QzEyMEI2MzVGMDA4MjZDMEMgLyogV0tCdW5kbGVT
Y3JpcHRXb3JsZC5jcHAgKi8sCiAJCQkJQkMxNERGOUQxMjBCNjM1RjAwODI2QzBDIC8qIFdLQnVu
ZGxlU2NyaXB0V29ybGQuaCAqLywKIAkJCSk7CkBAIC0xNDEwLDYgKzE0MTQsOCBAQAogCQkJY2hp
bGRyZW4gPSAoCiAJCQkJQkM0QkVFQUExMjBBMEE1RjAwRkJBMEM3IC8qIEluamVjdGVkQnVuZGxl
Tm9kZUhhbmRsZS5jcHAgKi8sCiAJCQkJQkM0QkVFQTkxMjBBMEE1RTAwRkJBMEM3IC8qIEluamVj
dGVkQnVuZGxlTm9kZUhhbmRsZS5oICovLAorCQkJCUJDMzNFMEQwMTI0MDhFODYwMDM2MEYzRiAv
KiBJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmNwcCAqLywKKwkJCQlCQzMzRTBDRjEyNDA4RTg2
MDAzNjBGM0YgLyogSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5oICovLAogCQkJKTsKIAkJCXBh
dGggPSBET007CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTYwNiw3ICsxNjEyLDYg
QEAKIAkJCQkxQTIxNjJCMTExRjM4OTcxMDA4QUQwRjUgLyogTlBSdW50aW1lVXRpbGl0aWVzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQTI0QjVGMzExRjUzMUU4MDBDMzgyNjkgLyogTWFjaFV0aWxp
dGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTFFRTUzRTMxMUY4Q0ZDMDAwQ0NCRUU0IC8qIElu
amVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTFFRTU1
RjQxMUY4RjE4OTAwQ0NCRUU0IC8qIFdLQnVuZGxlUmFuZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDRjA0OUU2MTFGRTIwRjYwMEY4NkE1OCAvKiBXS0J1bmRsZUZyYW1lUHJpdmF0ZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkNGMDQ5RTcxMUZFMjBGNjAwRjg2QTU4IC8qIFdLQnVuZGxlUHJpdmF0
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFFNDk3NjgxMUZGNjU4RTAwNDhCNDY0IC8qIE5QSlNP
YmplY3QuaCBpbiBIZWFkZXJzICovLApAQCAtMTY1OCw2ICsxNjYzLDggQEAKIAkJCQlCQzMzREU4
RTEyMzg1QzMzMDAzNjBGM0YgLyogV0tOdW1iZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMzNE
RjA2MTIzODY3N0YwMDM2MEYzRiAvKiBXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkNGNTAxMjExMjNFRDNCMzAwNTk1NUFFIC8qIFRocmVhZExhdW5jaGVyLmgg
aW4gSGVhZGVycyAqLywKKwkJCQlCQzMzRTBEMTEyNDA4RTg2MDAzNjBGM0YgLyogSW5qZWN0ZWRC
dW5kbGVSYW5nZUhhbmRsZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkM2MEM1NzkxMjQwQTU0NjAw
OEM1RTI5IC8qIFdLQnVuZGxlUmFuZ2VIYW5kbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRjUw
NUU3MTI0MzA0N0IwMDU5NTVBRSAvKiBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkNGNTA3MjQxMjQzMjhBOTAwNTk1NUFFIC8qIFdLQ2VydGlmaWNhdGVJbmZv
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0Y1MDcyODEyNDMyOUFBMDA1OTU1QUUgLyogV2ViQ2Vy
dGlmaWNhdGVJbmZvLmggaW4gSGVhZGVycyAqLywKQEAgLTE4NjMsNyArMTg3MCw2IEBACiAJCQkJ
MUExQzY0OUIxMUY0MTc0MjAwNTUzQzE5IC8qIFdlYkNvbnRleHRNYWMubW0gaW4gU291cmNlcyAq
LywKIAkJCQkxQTI0QjVGMjExRjUzMUU4MDBDMzgyNjkgLyogTWFjaFV0aWxpdGllcy5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlFMUVFNTNFNzExRjhDRkZCMDBDQ0JFRTQgLyogSW5qZWN0ZWRCdW5k
bGVQYWdlRWRpdG9yQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUUxRUU1NUY4MTFGOEYx
QkMwMENDQkVFNCAvKiBXS0J1bmRsZVJhbmdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBRTQ5
NzY5MTFGRjY1OEUwMDQ4QjQ2NCAvKiBOUEpTT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTFBRTQ5ODc5MTFGRjdGQUEwMDQ4QjQ2NCAvKiBKU05QT2JqZWN0LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTFBRTQ5QTRBMTFGRkE4Q0UwMDQ4QjQ2NCAvKiBKU05QTWV0aG9kLmNwcCBpbiBTb3Vy
Y2VzICovLApAQCAtMTkwOSw2ICsxOTE1LDggQEAKIAkJCQlCQzMzREU4RjEyMzg1QzMzMDAzNjBG
M0YgLyogV0tOdW1iZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNGNTAxMjIxMjNFRDNCMzAw
NTk1NUFFIC8qIFRocmVhZExhdW5jaGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDRjUwMUI0
MTIzRUY2MDIwMDU5NTVBRSAvKiBUaHJlYWRMYXVuY2hlck1hYy5tbSBpbiBTb3VyY2VzICovLAor
CQkJCUJDMzNFMEQyMTI0MDhFODYwMDM2MEYzRiAvKiBJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxl
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUJDNjBDNTdBMTI0MEE1NDYwMDhDNUUyOSAvKiBXS0J1
bmRsZVJhbmdlSGFuZGxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDRjUwNUU4MTI0MzA0N0Iw
MDU5NTVBRSAvKiBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CUJDRjUwNzI1MTI0MzI4QTkwMDU5NTVBRSAvKiBXS0NlcnRpZmljYXRlSW5mby5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlCQ0Y1MDcyRjEyNDMyQTk3MDA1OTU1QUUgLyogV0tDZXJ0aWZpY2F0ZUlu
Zm9NYWMubW0gaW4gU291cmNlcyAqLywKSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VFZGl0
b3JDbGllbnQuY3BwCShyZXZpc2lvbiA2NzgwNykKKysrIFdlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yNSw5ICsyNSwxMCBAQAogCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVQYWdlRWRp
dG9yQ2xpZW50LmgiCiAKKyNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuaCIKKyNp
bmNsdWRlICJJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmgiCiAjaW5jbHVkZSAiV0tBUElDYXN0
LmgiCiAjaW5jbHVkZSAiV0tCdW5kbGVBUElDYXN0LmgiCi0jaW5jbHVkZSAiSW5qZWN0ZWRCdW5k
bGVOb2RlSGFuZGxlLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtNDksMTUgKzUwLDE5IEBAIHZvaWQgSW5qZWN0ZWRCdW5k
bGVQYWdlRWRpdG9yQ2xpZW50OjppbmkKIAogYm9vbCBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JD
bGllbnQ6OnNob3VsZEJlZ2luRWRpdGluZyhXZWJQYWdlKiBwYWdlLCBSYW5nZSogcmFuZ2UpCiB7
Ci0gICAgaWYgKG1fY2xpZW50LnNob3VsZEJlZ2luRWRpdGluZykKLSAgICAgICAgcmV0dXJuIG1f
Y2xpZW50LnNob3VsZEJlZ2luRWRpdGluZyh0b1JlZihwYWdlKSwgdG9SZWYocmFuZ2UpLCBtX2Ns
aWVudC5jbGllbnRJbmZvKTsKKyAgICBpZiAobV9jbGllbnQuc2hvdWxkQmVnaW5FZGl0aW5nKSB7
CisgICAgICAgIFJlZlB0cjxJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlPiByYW5nZUhhbmRsZSA9
IEluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGU6OmdldE9yQ3JlYXRlKHJhbmdlKTsKKyAgICAgICAg
cmV0dXJuIG1fY2xpZW50LnNob3VsZEJlZ2luRWRpdGluZyh0b1JlZihwYWdlKSwgdG9SZWYocmFu
Z2VIYW5kbGUuZ2V0KCkpLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKKyAgICB9CiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKIGJvb2wgSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50OjpzaG91bGRF
bmRFZGl0aW5nKFdlYlBhZ2UqIHBhZ2UsIFJhbmdlKiByYW5nZSkKIHsKLSAgICBpZiAobV9jbGll
bnQuc2hvdWxkRW5kRWRpdGluZykKLSAgICAgICAgcmV0dXJuIG1fY2xpZW50LnNob3VsZEVuZEVk
aXRpbmcodG9SZWYocGFnZSksIHRvUmVmKHJhbmdlKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7Cisg
ICAgaWYgKG1fY2xpZW50LnNob3VsZEVuZEVkaXRpbmcpIHsKKyAgICAgICAgUmVmUHRyPEluamVj
dGVkQnVuZGxlUmFuZ2VIYW5kbGU+IHJhbmdlSGFuZGxlID0gSW5qZWN0ZWRCdW5kbGVSYW5nZUhh
bmRsZTo6Z2V0T3JDcmVhdGUocmFuZ2UpOworICAgICAgICByZXR1cm4gbV9jbGllbnQuc2hvdWxk
RW5kRWRpdGluZyh0b1JlZihwYWdlKSwgdG9SZWYocmFuZ2VIYW5kbGUuZ2V0KCkpLCBtX2NsaWVu
dC5jbGllbnRJbmZvKTsKKyAgICB9CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTY1LDM2ICs3
MCw0NiBAQCBib29sIEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudDo6c2hvCiB7CiAgICAg
aWYgKG1fY2xpZW50LnNob3VsZEluc2VydE5vZGUpIHsKICAgICAgICAgUmVmUHRyPEluamVjdGVk
QnVuZGxlTm9kZUhhbmRsZT4gbm9kZUhhbmRsZSA9IEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZTo6
Z2V0T3JDcmVhdGUobm9kZSk7Ci0gICAgICAgIHJldHVybiBtX2NsaWVudC5zaG91bGRJbnNlcnRO
b2RlKHRvUmVmKHBhZ2UpLCB0b1JlZihub2RlSGFuZGxlLmdldCgpKSwgdG9SZWYocmFuZ2VUb1Jl
cGxhY2UpLCB0b1dLKGFjdGlvbiksIG1fY2xpZW50LmNsaWVudEluZm8pOworICAgICAgICBSZWZQ
dHI8SW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZT4gcmFuZ2VUb1JlcGxhY2VIYW5kbGUgPSBJbmpl
Y3RlZEJ1bmRsZVJhbmdlSGFuZGxlOjpnZXRPckNyZWF0ZShyYW5nZVRvUmVwbGFjZSk7CisgICAg
ICAgIHJldHVybiBtX2NsaWVudC5zaG91bGRJbnNlcnROb2RlKHRvUmVmKHBhZ2UpLCB0b1JlZihu
b2RlSGFuZGxlLmdldCgpKSwgdG9SZWYocmFuZ2VUb1JlcGxhY2VIYW5kbGUuZ2V0KCkpLCB0b1dL
KGFjdGlvbiksIG1fY2xpZW50LmNsaWVudEluZm8pOwogICAgIH0KICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAogYm9vbCBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQ6OnNob3VsZEluc2VydFRl
eHQoV2ViUGFnZSogcGFnZSwgU3RyaW5nSW1wbCogdGV4dCwgUmFuZ2UqIHJhbmdlVG9SZXBsYWNl
LCBFZGl0b3JJbnNlcnRBY3Rpb24gYWN0aW9uKQogewotICAgIGlmIChtX2NsaWVudC5zaG91bGRJ
bnNlcnRUZXh0KQotICAgICAgICByZXR1cm4gbV9jbGllbnQuc2hvdWxkSW5zZXJ0VGV4dCh0b1Jl
ZihwYWdlKSwgdG9SZWYodGV4dCksIHRvUmVmKHJhbmdlVG9SZXBsYWNlKSwgdG9XSyhhY3Rpb24p
LCBtX2NsaWVudC5jbGllbnRJbmZvKTsKKyAgICBpZiAobV9jbGllbnQuc2hvdWxkSW5zZXJ0VGV4
dCkgeworICAgICAgICBSZWZQdHI8SW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZT4gcmFuZ2VUb1Jl
cGxhY2VIYW5kbGUgPSBJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlOjpnZXRPckNyZWF0ZShyYW5n
ZVRvUmVwbGFjZSk7CisgICAgICAgIHJldHVybiBtX2NsaWVudC5zaG91bGRJbnNlcnRUZXh0KHRv
UmVmKHBhZ2UpLCB0b1JlZih0ZXh0KSwgdG9SZWYocmFuZ2VUb1JlcGxhY2VIYW5kbGUuZ2V0KCkp
LCB0b1dLKGFjdGlvbiksIG1fY2xpZW50LmNsaWVudEluZm8pOworICAgIH0KICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAogYm9vbCBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQ6OnNob3VsZERl
bGV0ZVJhbmdlKFdlYlBhZ2UqIHBhZ2UsIFJhbmdlKiByYW5nZSkKIHsKLSAgICBpZiAobV9jbGll
bnQuc2hvdWxkRGVsZXRlUmFuZ2UpCi0gICAgICAgIHJldHVybiBtX2NsaWVudC5zaG91bGREZWxl
dGVSYW5nZSh0b1JlZihwYWdlKSwgdG9SZWYocmFuZ2UpLCBtX2NsaWVudC5jbGllbnRJbmZvKTsK
KyAgICBpZiAobV9jbGllbnQuc2hvdWxkRGVsZXRlUmFuZ2UpIHsKKyAgICAgICAgUmVmUHRyPElu
amVjdGVkQnVuZGxlUmFuZ2VIYW5kbGU+IHJhbmdlSGFuZGxlID0gSW5qZWN0ZWRCdW5kbGVSYW5n
ZUhhbmRsZTo6Z2V0T3JDcmVhdGUocmFuZ2UpOworICAgICAgICByZXR1cm4gbV9jbGllbnQuc2hv
dWxkRGVsZXRlUmFuZ2UodG9SZWYocGFnZSksIHRvUmVmKHJhbmdlSGFuZGxlLmdldCgpKSwgbV9j
bGllbnQuY2xpZW50SW5mbyk7CisgICAgfQogICAgIHJldHVybiB0cnVlOwogfQogCiBib29sIElu
amVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudDo6c2hvdWxkQ2hhbmdlU2VsZWN0ZWRSYW5nZShX
ZWJQYWdlKiBwYWdlLCBSYW5nZSogZnJvbVJhbmdlLCBSYW5nZSogdG9SYW5nZSwgRUFmZmluaXR5
IGFmZmluaXR5LCBib29sIHN0aWxsU2VsZWN0aW5nKQogewotICAgIGlmIChtX2NsaWVudC5zaG91
bGRDaGFuZ2VTZWxlY3RlZFJhbmdlKQotICAgICAgICByZXR1cm4gbV9jbGllbnQuc2hvdWxkQ2hh
bmdlU2VsZWN0ZWRSYW5nZSh0b1JlZihwYWdlKSwgdG9SZWYoZnJvbVJhbmdlKSwgdG9SZWYodG9S
YW5nZSksIHRvV0soYWZmaW5pdHkpLCBzdGlsbFNlbGVjdGluZywgbV9jbGllbnQuY2xpZW50SW5m
byk7CisgICAgaWYgKG1fY2xpZW50LnNob3VsZENoYW5nZVNlbGVjdGVkUmFuZ2UpIHsKKyAgICAg
ICAgUmVmUHRyPEluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGU+IGZyb21SYW5nZUhhbmRsZSA9IElu
amVjdGVkQnVuZGxlUmFuZ2VIYW5kbGU6OmdldE9yQ3JlYXRlKGZyb21SYW5nZSk7CisgICAgICAg
IFJlZlB0cjxJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlPiB0b1JhbmdlSGFuZGxlID0gSW5qZWN0
ZWRCdW5kbGVSYW5nZUhhbmRsZTo6Z2V0T3JDcmVhdGUodG9SYW5nZSk7CisgICAgICAgIHJldHVy
biBtX2NsaWVudC5zaG91bGRDaGFuZ2VTZWxlY3RlZFJhbmdlKHRvUmVmKHBhZ2UpLCB0b1JlZihm
cm9tUmFuZ2VIYW5kbGUuZ2V0KCkpLCB0b1JlZih0b1JhbmdlSGFuZGxlLmdldCgpKSwgdG9XSyhh
ZmZpbml0eSksIHN0aWxsU2VsZWN0aW5nLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKKyAgICB9CiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKIGJvb2wgSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50
OjpzaG91bGRBcHBseVN0eWxlKFdlYlBhZ2UqIHBhZ2UsIENTU1N0eWxlRGVjbGFyYXRpb24qIHN0
eWxlLCBSYW5nZSogcmFuZ2UpCiB7Ci0gICAgaWYgKG1fY2xpZW50LnNob3VsZEFwcGx5U3R5bGUp
Ci0gICAgICAgIHJldHVybiBtX2NsaWVudC5zaG91bGRBcHBseVN0eWxlKHRvUmVmKHBhZ2UpLCB0
b1JlZihzdHlsZSksIHRvUmVmKHJhbmdlKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7CisgICAgaWYg
KG1fY2xpZW50LnNob3VsZEFwcGx5U3R5bGUpIHsKKyAgICAgICAgUmVmUHRyPEluamVjdGVkQnVu
ZGxlUmFuZ2VIYW5kbGU+IHJhbmdlSGFuZGxlID0gSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZTo6
Z2V0T3JDcmVhdGUocmFuZ2UpOworICAgICAgICByZXR1cm4gbV9jbGllbnQuc2hvdWxkQXBwbHlT
dHlsZSh0b1JlZihwYWdlKSwgdG9SZWYoc3R5bGUpLCB0b1JlZihyYW5nZUhhbmRsZS5nZXQoKSks
IG1fY2xpZW50LmNsaWVudEluZm8pOworICAgIH0KICAgICByZXR1cm4gdHJ1ZTsKIH0KIApJbmRl
eDogV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlQVBJQ2Fz
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZUFQSUNhc3QuaAkocmV2aXNpb24gNjc4MDcpCisrKyBXZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVBUElDYXN0LmgJKHdvcmtpbmcgY29weSkK
QEAgLTM3LDM1ICszNywzNCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgQ1NT
U3R5bGVEZWNsYXJhdGlvbjsKLSAgICBjbGFzcyBOb2RlOwotICAgIGNsYXNzIFJhbmdlOwogfQog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgSW5qZWN0ZWRCdW5kbGU7CiBjbGFzcyBJbmpl
Y3RlZEJ1bmRsZU5vZGVIYW5kbGU7CitjbGFzcyBJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlOwog
Y2xhc3MgSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZDsKIGNsYXNzIFdlYkZyYW1lOwogY2xhc3Mg
V2ViUGFnZTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgQVBJVHlwZT4gc3RydWN0IEJ1bmRsZUFQSVR5
cGVJbmZvIHsgfTsKK3RlbXBsYXRlPD4gc3RydWN0IEJ1bmRsZUFQSVR5cGVJbmZvPFdLQnVuZGxl
Q1NTU3R5bGVEZWNsYXJhdGlvblJlZj4gICAgIHsgdHlwZWRlZiBXZWJDb3JlOjpDU1NTdHlsZURl
Y2xhcmF0aW9uKiBJbXBsVHlwZTsgfTsKIHRlbXBsYXRlPD4gc3RydWN0IEJ1bmRsZUFQSVR5cGVJ
bmZvPFdLQnVuZGxlRnJhbWVSZWY+ICAgICAgICAgICAgICAgICAgIHsgdHlwZWRlZiBXZWJGcmFt
ZSogSW1wbFR5cGU7IH07Cit0ZW1wbGF0ZTw+IHN0cnVjdCBCdW5kbGVBUElUeXBlSW5mbzxXS0J1
bmRsZU5vZGVIYW5kbGVSZWY+ICAgICAgICAgICAgICB7IHR5cGVkZWYgSW5qZWN0ZWRCdW5kbGVO
b2RlSGFuZGxlKiBJbXBsVHlwZTsgfTsKIHRlbXBsYXRlPD4gc3RydWN0IEJ1bmRsZUFQSVR5cGVJ
bmZvPFdLQnVuZGxlUGFnZVJlZj4gICAgICAgICAgICAgICAgICAgIHsgdHlwZWRlZiBXZWJQYWdl
KiBJbXBsVHlwZTsgfTsKK3RlbXBsYXRlPD4gc3RydWN0IEJ1bmRsZUFQSVR5cGVJbmZvPFdLQnVu
ZGxlUmFuZ2VIYW5kbGVSZWY+ICAgICAgICAgICAgIHsgdHlwZWRlZiBJbmplY3RlZEJ1bmRsZVJh
bmdlSGFuZGxlKiBJbXBsVHlwZTsgfTsKIHRlbXBsYXRlPD4gc3RydWN0IEJ1bmRsZUFQSVR5cGVJ
bmZvPFdLQnVuZGxlUmVmPiAgICAgICAgICAgICAgICAgICAgICAgIHsgdHlwZWRlZiBJbmplY3Rl
ZEJ1bmRsZSogSW1wbFR5cGU7IH07Ci10ZW1wbGF0ZTw+IHN0cnVjdCBCdW5kbGVBUElUeXBlSW5m
bzxXS0J1bmRsZU5vZGVIYW5kbGVSZWY+ICAgICAgICAgICAgICB7IHR5cGVkZWYgSW5qZWN0ZWRC
dW5kbGVOb2RlSGFuZGxlKiBJbXBsVHlwZTsgfTsKIHRlbXBsYXRlPD4gc3RydWN0IEJ1bmRsZUFQ
SVR5cGVJbmZvPFdLQnVuZGxlU2NyaXB0V29ybGRSZWY+ICAgICAgICAgICAgIHsgdHlwZWRlZiBJ
bmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkKiBJbXBsVHlwZTsgfTsKLXRlbXBsYXRlPD4gc3RydWN0
IEJ1bmRsZUFQSVR5cGVJbmZvPFdLQnVuZGxlUmFuZ2VSZWY+ICAgICAgICAgICAgICAgICAgIHsg
dHlwZWRlZiBXZWJDb3JlOjpSYW5nZSogSW1wbFR5cGU7IH07Ci10ZW1wbGF0ZTw+IHN0cnVjdCBC
dW5kbGVBUElUeXBlSW5mbzxXS0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25SZWY+ICAgICB7IHR5
cGVkZWYgV2ViQ29yZTo6Q1NTU3R5bGVEZWNsYXJhdGlvbiogSW1wbFR5cGU7IH07CiAKIHRlbXBs
YXRlPHR5cGVuYW1lIEltcGxUeXBlPiBzdHJ1Y3QgQnVuZGxlSW1wbFR5cGVJbmZvIHsgfTsKIHRl
bXBsYXRlPD4gc3RydWN0IEJ1bmRsZUltcGxUeXBlSW5mbzxJbmplY3RlZEJ1bmRsZSo+ICAgICAg
ICAgICAgICAgICAgIHsgdHlwZWRlZiBXS0J1bmRsZVJlZiBBUElUeXBlOyB9OwogdGVtcGxhdGU8
PiBzdHJ1Y3QgQnVuZGxlSW1wbFR5cGVJbmZvPEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZSo+ICAg
ICAgICAgeyB0eXBlZGVmIFdLQnVuZGxlTm9kZUhhbmRsZVJlZiBBUElUeXBlOyB9OwordGVtcGxh
dGU8PiBzdHJ1Y3QgQnVuZGxlSW1wbFR5cGVJbmZvPEluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUq
PiAgICAgICAgeyB0eXBlZGVmIFdLQnVuZGxlUmFuZ2VIYW5kbGVSZWYgQVBJVHlwZTsgfTsKIHRl
bXBsYXRlPD4gc3RydWN0IEJ1bmRsZUltcGxUeXBlSW5mbzxJbmplY3RlZEJ1bmRsZVNjcmlwdFdv
cmxkKj4gICAgICAgIHsgdHlwZWRlZiBXS0J1bmRsZVNjcmlwdFdvcmxkUmVmIEFQSVR5cGU7IH07
CiB0ZW1wbGF0ZTw+IHN0cnVjdCBCdW5kbGVJbXBsVHlwZUluZm88V2ViRnJhbWUqPiAgICAgICAg
ICAgICAgICAgICAgICAgICB7IHR5cGVkZWYgV0tCdW5kbGVGcmFtZVJlZiBBUElUeXBlOyB9Owog
dGVtcGxhdGU8PiBzdHJ1Y3QgQnVuZGxlSW1wbFR5cGVJbmZvPFdlYlBhZ2UqPiAgICAgICAgICAg
ICAgICAgICAgICAgICAgeyB0eXBlZGVmIFdLQnVuZGxlUGFnZVJlZiBBUElUeXBlOyB9OwogdGVt
cGxhdGU8PiBzdHJ1Y3QgQnVuZGxlSW1wbFR5cGVJbmZvPFdlYkNvcmU6OkNTU1N0eWxlRGVjbGFy
YXRpb24qPiAgICAgeyB0eXBlZGVmIFdLQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvblJlZiBBUElU
eXBlOyB9OwotdGVtcGxhdGU8PiBzdHJ1Y3QgQnVuZGxlSW1wbFR5cGVJbmZvPFdlYkNvcmU6OlJh
bmdlKj4gICAgICAgICAgICAgICAgICAgeyB0eXBlZGVmIFdLQnVuZGxlUmFuZ2VSZWYgQVBJVHlw
ZTsgfTsKIAogLyogT3BhcXVlIHR5cGluZyBjb252ZW5pZW5jZSBtZXRob2RzICovCiAKSW5kZXg6
IFdlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUJhc2UuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tC
dW5kbGVCYXNlLmgJKHJldmlzaW9uIDY3ODA3KQorKysgV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlQmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwxMCAr
MzAsMTAgQEAgdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tCdW5kbGUqIFdLQgogdHlwZWRl
ZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tCdW5kbGVGcmFtZSogV0tCdW5kbGVGcmFtZVJlZjsKIHR5
cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLQnVuZGxlTm9kZUhhbmRsZSogV0tCdW5kbGVOb2Rl
SGFuZGxlUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tCdW5kbGVQYWdlKiBXS0J1
bmRsZVBhZ2VSZWY7Cit0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0J1bmRsZVJhbmdlSGFu
ZGxlKiBXS0J1bmRsZVJhbmdlSGFuZGxlUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVl
V0tCdW5kbGVTY3JpcHRXb3JsZCogV0tCdW5kbGVTY3JpcHRXb3JsZFJlZjsKIAogdHlwZWRlZiBj
b25zdCBzdHJ1Y3QgT3BhcXVlV0tCdW5kbGVET01DU1NTdHlsZURlY2xhcmF0aW9uKiBXS0J1bmRs
ZUNTU1N0eWxlRGVjbGFyYXRpb25SZWY7Ci10eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0J1
bmRsZVJhbmdlKiBXS0J1bmRsZVJhbmdlUmVmOwogCiAjdW5kZWYgV0tfRVhQT1JUCiAjaWYgZGVm
aW5lZChXS19OT19FWFBPUlQpCkluZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGVGcmFtZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlRnJhbWUuY3BwCShyZXZpc2lvbiA2Nzgw
NykKKysrIFdlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZy
YW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzksNiArNzksMTEgQEAgSlNWYWx1ZVJlZiBXS0J1
bmRsZUZyYW1lR2V0SmF2YVNjcmlwdFdyYQogICAgIHJldHVybiB0b1dLKGZyYW1lUmVmKS0+anNX
cmFwcGVyRm9yV29ybGQodG9XSyhub2RlSGFuZGxlUmVmKSwgdG9XSyh3b3JsZFJlZikpOwogfQog
CitKU1ZhbHVlUmVmIFdLQnVuZGxlRnJhbWVHZXRKYXZhU2NyaXB0V3JhcHBlckZvclJhbmdlRm9y
V29ybGQoV0tCdW5kbGVGcmFtZVJlZiBmcmFtZVJlZiwgV0tCdW5kbGVSYW5nZUhhbmRsZVJlZiBy
YW5nZUhhbmRsZVJlZiwgV0tCdW5kbGVTY3JpcHRXb3JsZFJlZiB3b3JsZFJlZikKK3sKKyAgICBy
ZXR1cm4gdG9XSyhmcmFtZVJlZiktPmpzV3JhcHBlckZvcldvcmxkKHRvV0socmFuZ2VIYW5kbGVS
ZWYpLCB0b1dLKHdvcmxkUmVmKSk7Cit9CisKIFdLU3RyaW5nUmVmIFdLQnVuZGxlRnJhbWVDb3B5
TmFtZShXS0J1bmRsZUZyYW1lUmVmIGZyYW1lUmVmKQogewogICAgIHJldHVybiB0b0NvcGllZFJl
Zih0b1dLKGZyYW1lUmVmKS0+bmFtZSgpKTsKSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZyYW1lLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlRnJhbWUuaAkocmV2aXNpb24g
Njc4MDcpCisrKyBXZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5k
bGVGcmFtZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00Niw2ICs0Niw3IEBAIFdLX0VYUE9SVCBKU0ds
b2JhbENvbnRleHRSZWYgV0tCdW5kbGVGcmEKIFdLX0VYUE9SVCBKU0dsb2JhbENvbnRleHRSZWYg
V0tCdW5kbGVGcmFtZUdldEphdmFTY3JpcHRDb250ZXh0Rm9yV29ybGQoV0tCdW5kbGVGcmFtZVJl
ZiBmcmFtZSwgV0tCdW5kbGVTY3JpcHRXb3JsZFJlZiB3b3JsZCk7CiAKIFdLX0VYUE9SVCBKU1Zh
bHVlUmVmIFdLQnVuZGxlRnJhbWVHZXRKYXZhU2NyaXB0V3JhcHBlckZvck5vZGVGb3JXb3JsZChX
S0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBXS0J1bmRsZU5vZGVIYW5kbGVSZWYgbm9kZUhhbmRsZSwg
V0tCdW5kbGVTY3JpcHRXb3JsZFJlZiB3b3JsZCk7CitXS19FWFBPUlQgSlNWYWx1ZVJlZiBXS0J1
bmRsZUZyYW1lR2V0SmF2YVNjcmlwdFdyYXBwZXJGb3JSYW5nZUZvcldvcmxkKFdLQnVuZGxlRnJh
bWVSZWYgZnJhbWUsIFdLQnVuZGxlUmFuZ2VIYW5kbGVSZWYgcmFuZ2VIYW5kbGUsIFdLQnVuZGxl
U2NyaXB0V29ybGRSZWYgd29ybGQpOwogCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KSW5kZXg6IFdl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5k
bGVQYWdlLmgJKHJldmlzaW9uIDY3ODA3KQorKysgV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw2
IEBACiAjaWZuZGVmIFdLQnVuZGxlUGFnZV9oCiAjZGVmaW5lIFdLQnVuZGxlUGFnZV9oCiAKLSNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Lmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9X
S0Jhc2UuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLQnVuZGxlQmFzZS5oPgogI2luY2x1ZGUgPHN0
ZGludC5oPgpAQCAtMTE0LDEzICsxMTMsMTMgQEAgc3RydWN0IFdLQnVuZGxlUGFnZVVJQ2xpZW50
IHsKIHR5cGVkZWYgc3RydWN0IFdLQnVuZGxlUGFnZVVJQ2xpZW50IFdLQnVuZGxlUGFnZVVJQ2xp
ZW50OwogCiAvLyBFZGl0b3IgY2xpZW50Ci10eXBlZGVmIGJvb2wgKCpXS0J1bmRsZVBhZ2VTaG91
bGRCZWdpbkVkaXRpbmdDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlUmFu
Z2VSZWYgcmFuZ2UsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwotdHlwZWRlZiBib29sICgqV0tC
dW5kbGVQYWdlU2hvdWxkRW5kRWRpdGluZ0NhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwg
V0tCdW5kbGVSYW5nZVJlZiByYW5nZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7Ci10eXBlZGVm
IGJvb2wgKCpXS0J1bmRsZVBhZ2VTaG91bGRJbnNlcnROb2RlQ2FsbGJhY2spKFdLQnVuZGxlUGFn
ZVJlZiBwYWdlLCBXS0J1bmRsZU5vZGVIYW5kbGVSZWYgbm9kZSwgV0tCdW5kbGVSYW5nZVJlZiBy
YW5nZVRvUmVwbGFjZSwgV0tJbnNlcnRBY3Rpb25UeXBlIGFjdGlvbiwgY29uc3Qgdm9pZCogY2xp
ZW50SW5mbyk7Ci10eXBlZGVmIGJvb2wgKCpXS0J1bmRsZVBhZ2VTaG91bGRJbnNlcnRUZXh0Q2Fs
bGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBzdHJpbmcsIFdLQnVuZGxl
UmFuZ2VSZWYgcmFuZ2VUb1JlcGxhY2UsIFdLSW5zZXJ0QWN0aW9uVHlwZSBhY3Rpb24sIGNvbnN0
IHZvaWQqIGNsaWVudEluZm8pOwotdHlwZWRlZiBib29sICgqV0tCdW5kbGVQYWdlU2hvdWxkRGVs
ZXRlUmFuZ2VDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlUmFuZ2VSZWYg
cmFuZ2UsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwotdHlwZWRlZiBib29sICgqV0tCdW5kbGVQ
YWdlU2hvdWxkQ2hhbmdlU2VsZWN0ZWRSYW5nZSkoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVu
ZGxlUmFuZ2VSZWYgZnJvbVJhbmdlLCBXS0J1bmRsZVJhbmdlUmVmIHRvUmFuZ2UsIFdLQWZmaW5p
dHlUeXBlIGFmZmluaXR5LCBib29sIHN0aWxsU2VsZWN0aW5nLCBjb25zdCB2b2lkKiBjbGllbnRJ
bmZvKTsKLXR5cGVkZWYgYm9vbCAoKldLQnVuZGxlUGFnZVNob3VsZEFwcGx5U3R5bGUpKFdLQnVu
ZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25SZWYgc3R5bGUsIFdL
QnVuZGxlUmFuZ2VSZWYgcmFuZ2UsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwordHlwZWRlZiBi
b29sICgqV0tCdW5kbGVQYWdlU2hvdWxkQmVnaW5FZGl0aW5nQ2FsbGJhY2spKFdLQnVuZGxlUGFn
ZVJlZiBwYWdlLCBXS0J1bmRsZVJhbmdlSGFuZGxlUmVmIHJhbmdlLCBjb25zdCB2b2lkKiBjbGll
bnRJbmZvKTsKK3R5cGVkZWYgYm9vbCAoKldLQnVuZGxlUGFnZVNob3VsZEVuZEVkaXRpbmdDYWxs
YmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlUmFuZ2VIYW5kbGVSZWYgcmFuZ2Us
IGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwordHlwZWRlZiBib29sICgqV0tCdW5kbGVQYWdlU2hv
dWxkSW5zZXJ0Tm9kZUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVOb2Rl
SGFuZGxlUmVmIG5vZGUsIFdLQnVuZGxlUmFuZ2VIYW5kbGVSZWYgcmFuZ2VUb1JlcGxhY2UsIFdL
SW5zZXJ0QWN0aW9uVHlwZSBhY3Rpb24sIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwordHlwZWRl
ZiBib29sICgqV0tCdW5kbGVQYWdlU2hvdWxkSW5zZXJ0VGV4dENhbGxiYWNrKShXS0J1bmRsZVBh
Z2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgc3RyaW5nLCBXS0J1bmRsZVJhbmdlSGFuZGxlUmVmIHJh
bmdlVG9SZXBsYWNlLCBXS0luc2VydEFjdGlvblR5cGUgYWN0aW9uLCBjb25zdCB2b2lkKiBjbGll
bnRJbmZvKTsKK3R5cGVkZWYgYm9vbCAoKldLQnVuZGxlUGFnZVNob3VsZERlbGV0ZVJhbmdlQ2Fs
bGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZVJhbmdlSGFuZGxlUmVmIHJhbmdl
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKK3R5cGVkZWYgYm9vbCAoKldLQnVuZGxlUGFnZVNo
b3VsZENoYW5nZVNlbGVjdGVkUmFuZ2UpKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZVJh
bmdlSGFuZGxlUmVmIGZyb21SYW5nZSwgV0tCdW5kbGVSYW5nZUhhbmRsZVJlZiB0b1JhbmdlLCBX
S0FmZmluaXR5VHlwZSBhZmZpbml0eSwgYm9vbCBzdGlsbFNlbGVjdGluZywgY29uc3Qgdm9pZCog
Y2xpZW50SW5mbyk7Cit0eXBlZGVmIGJvb2wgKCpXS0J1bmRsZVBhZ2VTaG91bGRBcHBseVN0eWxl
KShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uUmVmIHN0
eWxlLCBXS0J1bmRsZVJhbmdlSGFuZGxlUmVmIHJhbmdlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZv
KTsKIHR5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZUVkaXRpbmdOb3RpZmljYXRpb24pKFdLQnVu
ZGxlUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBub3RpZmljYXRpb25OYW1lLCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKTsKIAogc3RydWN0IFdLQnVuZGxlUGFnZUVkaXRvckNsaWVudCB7CkluZGV4
OiBXZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVSYW5nZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9j
L1dLQnVuZGxlUmFuZ2UuY3BwCShyZXZpc2lvbiA2NzgwNykKKysrIFdlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVJhbmdlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMSw1NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgIldLQnVuZGxlUmFuZ2UuaCIK
LQotI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5oIgotI2luY2x1ZGUgIldLQnVu
ZGxlQVBJQ2FzdC5oIgotI2luY2x1ZGUgPFdlYkNvcmUvUmFuZ2UuaD4KLQotdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7Ci11c2luZyBuYW1lc3BhY2UgV2ViS2l0OwotCi11bnNpZ25lZCBXS0J1bmRs
ZVJhbmdlR2V0U3RhcnRPZmZzZXQoV0tCdW5kbGVSYW5nZVJlZiByYW5nZSkKLXsKLSAgICByZXR1
cm4gdG9XSyhyYW5nZSktPnN0YXJ0T2Zmc2V0KCk7Ci19Ci0KLVdLQnVuZGxlTm9kZUhhbmRsZVJl
ZiBXS0J1bmRsZVJhbmdlQ29weVN0YXJ0Q29udGFpbmVyKFdLQnVuZGxlUmFuZ2VSZWYgcmFuZ2Up
Ci17Ci0gICAgUmVmUHRyPEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZT4gbm9kZUhhbmRsZSA9IElu
amVjdGVkQnVuZGxlTm9kZUhhbmRsZTo6Z2V0T3JDcmVhdGUodG9XSyhyYW5nZSktPnN0YXJ0Q29u
dGFpbmVyKCkpOwotICAgIHJldHVybiB0b1JlZihub2RlSGFuZGxlLnJlbGVhc2UoKS5sZWFrUmVm
KCkpOwotfQotCi11bnNpZ25lZCBXS0J1bmRsZVJhbmdlR2V0RW5kT2Zmc2V0KFdLQnVuZGxlUmFu
Z2VSZWYgcmFuZ2UpCi17Ci0gICAgcmV0dXJuIHRvV0socmFuZ2UpLT5lbmRPZmZzZXQoKTsKLX0K
LQotV0tCdW5kbGVOb2RlSGFuZGxlUmVmIFdLQnVuZGxlUmFuZ2VDb3B5RW5kQ29udGFpbmVyKFdL
QnVuZGxlUmFuZ2VSZWYgcmFuZ2UpCi17Ci0gICAgUmVmUHRyPEluamVjdGVkQnVuZGxlTm9kZUhh
bmRsZT4gbm9kZUhhbmRsZSA9IEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZTo6Z2V0T3JDcmVhdGUo
dG9XSyhyYW5nZSktPmVuZENvbnRhaW5lcigpKTsKLSAgICByZXR1cm4gdG9SZWYobm9kZUhhbmRs
ZS5yZWxlYXNlKCkubGVha1JlZigpKTsKLX0KSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVJhbmdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUmFuZ2UuaAkocmV2aXNpb24g
Njc4MDcpCisrKyBXZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5k
bGVSYW5nZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUyICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
aWZuZGVmIFdLQnVuZGxlUmFuZ2VfaAotI2RlZmluZSBXS0J1bmRsZVJhbmdlX2gKLQotI2luY2x1
ZGUgPFdlYktpdDIvV0tCYXNlLmg+Ci0jaW5jbHVkZSA8V2ViS2l0Mi9XS0J1bmRsZUJhc2UuaD4K
LQotI2lmbmRlZiBfX2NwbHVzcGx1cwotI2luY2x1ZGUgPHN0ZGJvb2wuaD4KLSNlbmRpZgotCi0j
aWZkZWYgX19jcGx1c3BsdXMKLWV4dGVybiAiQyIgewotI2VuZGlmCi0KLVdLX0VYUE9SVCB1bnNp
Z25lZCBXS0J1bmRsZVJhbmdlR2V0U3RhcnRPZmZzZXQoV0tCdW5kbGVSYW5nZVJlZiByYW5nZSk7
Ci0KLVdLX0VYUE9SVCBXS0J1bmRsZU5vZGVIYW5kbGVSZWYgV0tCdW5kbGVSYW5nZUNvcHlTdGFy
dENvbnRhaW5lcihXS0J1bmRsZVJhbmdlUmVmIHJhbmdlKTsKLQotV0tfRVhQT1JUIHVuc2lnbmVk
IFdLQnVuZGxlUmFuZ2VHZXRFbmRPZmZzZXQoV0tCdW5kbGVSYW5nZVJlZiByYW5nZSk7Ci0KLVdL
X0VYUE9SVCBXS0J1bmRsZU5vZGVIYW5kbGVSZWYgV0tCdW5kbGVSYW5nZUNvcHlFbmRDb250YWlu
ZXIoV0tCdW5kbGVSYW5nZVJlZiByYW5nZSk7Ci0KLSNpZmRlZiBfX2NwbHVzcGx1cwotfQotI2Vu
ZGlmCi0KLSNlbmRpZiAvKiBXS0J1bmRsZVJhbmdlX2ggKi8KSW5kZXg6IFdlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVJhbmdlSGFuZGxlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVS
YW5nZUhhbmRsZS5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVSYW5nZUhhbmRsZS5jcHAJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiV0tCdW5kbGVSYW5nZUhhbmRsZS5o
IgorCisjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5oIgorI2luY2x1ZGUgIldL
QVBJQ2FzdC5oIgorI2luY2x1ZGUgIldLQnVuZGxlQVBJQ2FzdC5oIgorCit1c2luZyBuYW1lc3Bh
Y2UgV2ViS2l0OworCitXS1R5cGVJRCBXS0J1bmRsZVJhbmdlSGFuZGxlR2V0VHlwZUlEKCkKK3sK
KyAgICByZXR1cm4gdG9SZWYoSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZTo6QVBJVHlwZSk7Cit9
CkluZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVS
YW5nZUhhbmRsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvYy9XS0J1bmRsZVJhbmdlSGFuZGxlLmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVSYW5nZUhhbmRsZS5oCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXS0J1bmRs
ZVJhbmdlSGFuZGxlX2gKKyNkZWZpbmUgV0tCdW5kbGVSYW5nZUhhbmRsZV9oCisKKyNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Lmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2Uu
aD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLQnVuZGxlQmFzZS5oPgorCisjaWZkZWYgX19jcGx1c3Bs
dXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK1dLX0VYUE9SVCBXS1R5cGVJRCBXS0J1bmRsZVJh
bmdlSGFuZGxlR2V0VHlwZUlEKCk7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisK
KyNlbmRpZiAvKiBXS0J1bmRsZVJhbmdlSGFuZGxlX2ggKi8KSW5kZXg6IFdlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVk
QnVuZGxlTm9kZUhhbmRsZS5jcHAJKHJldmlzaW9uIDY3ODA3KQorKysgV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNSw3ICsyNSw2IEBACiAKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZU5v
ZGVIYW5kbGUuaCIKIAotI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQuaCIKICNp
bmNsdWRlIDxXZWJDb3JlL05vZGUuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogCkBAIC00
Myw2ICs0Miw5IEBAIHN0YXRpYyBET01IYW5kbGVDYWNoZSYgZG9tSGFuZGxlQ2FjaGUoKQogCiBQ
YXNzUmVmUHRyPEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZT4gSW5qZWN0ZWRCdW5kbGVOb2RlSGFu
ZGxlOjpnZXRPckNyZWF0ZShOb2RlKiBub2RlKQogeworICAgIGlmICghbm9kZSkKKyAgICAgICAg
cmV0dXJuIDA7CisKICAgICBzdGQ6OnBhaXI8RE9NSGFuZGxlQ2FjaGU6Oml0ZXJhdG9yLCBib29s
PiByZXN1bHQgPSBkb21IYW5kbGVDYWNoZSgpLmFkZChub2RlLCAwKTsKICAgICBpZiAoIXJlc3Vs
dC5zZWNvbmQpCiAgICAgICAgIHJldHVybiBQYXNzUmVmUHRyPEluamVjdGVkQnVuZGxlTm9kZUhh
bmRsZT4ocmVzdWx0LmZpcnN0LT5zZWNvbmQpOwpJbmRleDogV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlTm9k
ZUhhbmRsZS5oCShyZXZpc2lvbiA2NzgwNykKKysrIFdlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTI0LDcgKzI0LDYgQEAKICAqLwogCiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCi0jaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvSlNCYXNlLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNp
bmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZVJhbmdl
SGFuZGxlLmNwcAkocmV2aXNpb24gMCkKKysrIFdlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5jcHAJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVSYW5nZUhh
bmRsZS5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9SYW5nZS5oPgorI2luY2x1ZGUgPHd0Zi9IYXNo
TWFwLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsK
KwordHlwZWRlZiBIYXNoTWFwPFJhbmdlKiwgSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZSo+IERP
TUhhbmRsZUNhY2hlOworCitzdGF0aWMgRE9NSGFuZGxlQ2FjaGUmIGRvbUhhbmRsZUNhY2hlKCkK
K3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKERPTUhhbmRsZUNhY2hlLCBjYWNoZSwgKCkpOwor
ICAgIHJldHVybiBjYWNoZTsKK30KKworUGFzc1JlZlB0cjxJbmplY3RlZEJ1bmRsZVJhbmdlSGFu
ZGxlPiBJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlOjpnZXRPckNyZWF0ZShSYW5nZSogcmFuZ2Up
Cit7CisgICAgaWYgKCFyYW5nZSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBzdGQ6OnBhaXI8
RE9NSGFuZGxlQ2FjaGU6Oml0ZXJhdG9yLCBib29sPiByZXN1bHQgPSBkb21IYW5kbGVDYWNoZSgp
LmFkZChyYW5nZSwgMCk7CisgICAgaWYgKCFyZXN1bHQuc2Vjb25kKQorICAgICAgICByZXR1cm4g
UGFzc1JlZlB0cjxJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlPihyZXN1bHQuZmlyc3QtPnNlY29u
ZCk7CisKKyAgICBSZWZQdHI8SW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZT4gcmFuZ2VIYW5kbGUg
PSBJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlOjpjcmVhdGUocmFuZ2UpOworICAgIHJlc3VsdC5m
aXJzdC0+c2Vjb25kID0gcmFuZ2VIYW5kbGUuZ2V0KCk7CisgICAgcmV0dXJuIHJhbmdlSGFuZGxl
LnJlbGVhc2UoKTsKK30KKworUGFzc1JlZlB0cjxJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlPiBJ
bmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlOjpjcmVhdGUoUmFuZ2UqIHJhbmdlKQoreworICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZShyYW5nZSkpOworfQor
CitJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlOjpJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlKFJh
bmdlKiByYW5nZSkKKyAgICA6IG1fcmFuZ2UocmFuZ2UpCit7Cit9CisKK0luamVjdGVkQnVuZGxl
UmFuZ2VIYW5kbGU6On5JbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlKCkKK3sKKyAgICBkb21IYW5k
bGVDYWNoZSgpLnJlbW92ZShtX3JhbmdlLmdldCgpKTsKK30KKworUmFuZ2UqIEluamVjdGVkQnVu
ZGxlUmFuZ2VIYW5kbGU6OmNvcmVSYW5nZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcmFuZ2Uu
Z2V0KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1
bmRsZVJhbmdlSGFuZGxlLmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuaAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgSW5qZWN0ZWRCdW5kbGVSYW5n
ZUhhbmRsZV9oCisjZGVmaW5lIEluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGVfaAorCisjaW5jbHVk
ZSAiQVBJT2JqZWN0LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICBjbGFzcyBSYW5nZTsKK30K
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQ7
CisKK2NsYXNzIEluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUgOiBwdWJsaWMgQVBJT2JqZWN0IHsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgY29uc3QgVHlwZSBBUElUeXBlID0gVHlwZUJ1bmRsZVJhbmdl
SGFuZGxlOworCisgICAgc3RhdGljIFBhc3NSZWZQdHI8SW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRs
ZT4gZ2V0T3JDcmVhdGUoV2ViQ29yZTo6UmFuZ2UqKTsKKyAgICB+SW5qZWN0ZWRCdW5kbGVSYW5n
ZUhhbmRsZSgpOworCisgICAgV2ViQ29yZTo6UmFuZ2UqIGNvcmVSYW5nZSgpIGNvbnN0OworCitw
cml2YXRlOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGU+
IGNyZWF0ZShXZWJDb3JlOjpSYW5nZSopOworICAgIEluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUo
V2ViQ29yZTo6UmFuZ2UqKTsKKworICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1
cm4gQVBJVHlwZTsgfQorCisgICAgUmVmUHRyPFdlYkNvcmU6OlJhbmdlPiBtX3JhbmdlOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBJbmplY3RlZEJ1bmRsZVJhbmdl
SGFuZGxlX2gKSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAJKHJl
dmlzaW9uIDY3ODA3KQorKysgV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yNiwxMiArMjYsMTQgQEAKICNpbmNsdWRlICJXZWJGcmFtZS5o
IgogCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmgiCisjaW5jbHVkZSAiSW5q
ZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlU2NyaXB0
V29ybGQuaCIKICNpbmNsdWRlICJXZWJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJXZWJQYWdl
LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0FQ
SUNhc3QuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0xvY2suaD4KKyNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9KU1ZhbHVlUmVmLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9BbmltYXRpb25D
b250cm9sbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRp
b24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Nocm9tZS5oPgpAQCAtNDAsNiArNDIsNyBAQAogI2lu
Y2x1ZGUgPFdlYkNvcmUvSFRNTEZyYW1lT3duZXJFbGVtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9KU0NTU1N0eWxlRGVjbGFyYXRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0pTRWxlbWVudC5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvSlNSYW5nZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyVHJlZUFzVGV4dC5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvVGV4dFJlc291cmNlRGVjb2Rlci5oPgpAQCAtMzE0LDYgKzMxNywxNSBAQCBKU1ZhbHVlUmVm
IFdlYkZyYW1lOjpqc1dyYXBwZXJGb3JXb3JsZChJCiAgICAgcmV0dXJuIHRvUmVmKGV4ZWMsIHRv
SlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBub2RlSGFuZGxlLT5jb3JlTm9kZSgpKSk7CiB9CiAKK0pT
VmFsdWVSZWYgV2ViRnJhbWU6OmpzV3JhcHBlckZvcldvcmxkKEluamVjdGVkQnVuZGxlUmFuZ2VI
YW5kbGUqIHJhbmdlSGFuZGxlLCBJbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkKiB3b3JsZCkKK3sK
KyAgICBKU0RPTVdpbmRvdyogZ2xvYmFsT2JqZWN0ID0gbV9jb3JlRnJhbWUtPnNjcmlwdCgpLT5n
bG9iYWxPYmplY3Qod29ybGQtPmNvcmVXb3JsZCgpKTsKKyAgICBFeGVjU3RhdGUqIGV4ZWMgPSBn
bG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKTsKKworICAgIEpTTG9jayBsb2NrKFNpbGVuY2VBc3Nl
cnRpb25zT25seSk7CisgICAgcmV0dXJuIHRvUmVmKGV4ZWMsIHRvSlMoZXhlYywgZ2xvYmFsT2Jq
ZWN0LCByYW5nZUhhbmRsZS0+Y29yZVJhbmdlKCkpKTsKK30KKwogSlNWYWx1ZVJlZiBXZWJGcmFt
ZTo6Y29tcHV0ZWRTdHlsZUluY2x1ZGluZ1Zpc2l0ZWRJbmZvKEpTT2JqZWN0UmVmIGVsZW1lbnQp
CiB7CiAgICAgaWYgKCFtX2NvcmVGcmFtZSkKSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYkZyYW1lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViRnJhbWUuaAkocmV2aXNpb24gNjc4MDcpCisrKyBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJGcmFtZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00NSw2ICs0NSw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBJbmplY3RlZEJ1bmRsZU5vZGVI
YW5kbGU7CitjbGFzcyBJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlOwogY2xhc3MgSW5qZWN0ZWRC
dW5kbGVTY3JpcHRXb3JsZDsKIGNsYXNzIFdlYlBhZ2U7CiAKQEAgLTgxLDYgKzgyLDcgQEAgcHVi
bGljOgogICAgIEpTR2xvYmFsQ29udGV4dFJlZiBqc0NvbnRleHRGb3JXb3JsZChJbmplY3RlZEJ1
bmRsZVNjcmlwdFdvcmxkKik7CiAKICAgICBKU1ZhbHVlUmVmIGpzV3JhcHBlckZvcldvcmxkKElu
amVjdGVkQnVuZGxlTm9kZUhhbmRsZSosIEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQqKTsKKyAg
ICBKU1ZhbHVlUmVmIGpzV3JhcHBlckZvcldvcmxkKEluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUq
LCBJbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkKik7CiAKICAgICBzdGF0aWMgU3RyaW5nIGNvdW50
ZXJWYWx1ZShKU09iamVjdFJlZiBlbGVtZW50KTsKICAgICBzdGF0aWMgU3RyaW5nIG1hcmtlclRl
eHQoSlNPYmplY3RSZWYgZWxlbWVudCk7CkluZGV4OiBXZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJv
ago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagkocmV2aXNpb24gNjc4
MDcpCisrKyBXZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtOTM4
LDExICs5MzgsMTEgQEAKIAkJCQkJCQk+DQogCQkJCQkJPC9GaWxlPg0KIAkJCQkJCTxGaWxlDQot
CQkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZVxBUElcY1xX
S0J1bmRsZVJhbmdlLmNwcCINCisJCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXElu
amVjdGVkQnVuZGxlXEFQSVxjXFdLQnVuZGxlUmFuZ2VIYW5kbGUuY3BwIg0KIAkJCQkJCQk+DQog
CQkJCQkJPC9GaWxlPg0KIAkJCQkJCTxGaWxlDQotCQkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2Vi
UHJvY2Vzc1xJbmplY3RlZEJ1bmRsZVxBUElcY1xXS0J1bmRsZVJhbmdlLmgiDQorCQkJCQkJCVJl
bGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZVxBUElcY1xXS0J1bmRsZVJh
bmdlSGFuZGxlLmgiDQogCQkJCQkJCT4NCiAJCQkJCQk8L0ZpbGU+DQogCQkJCQkJPEZpbGUNCkBA
IC05NjYsNiArOTY2LDE0IEBACiAJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcSW5q
ZWN0ZWRCdW5kbGVcRE9NXEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5oIg0KIAkJCQkJCT4NCiAJ
CQkJCTwvRmlsZT4NCisJCQkJCTxGaWxlDQorCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9j
ZXNzXEluamVjdGVkQnVuZGxlXERPTVxJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmNwcCINCisJ
CQkJCQk+DQorCQkJCQk8L0ZpbGU+DQorCQkJCQk8RmlsZQ0KKwkJCQkJCVJlbGF0aXZlUGF0aD0i
Li5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZVxET01cSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRs
ZS5oIg0KKwkJCQkJCT4NCisJCQkJCTwvRmlsZT4NCiAJCQkJPC9GaWx0ZXI+DQogCQkJCTxGaWx0
ZXINCiAJCQkJCU5hbWU9IndpbiINCkluZGV4OiBXZWJLaXQyL3dpbi9XZWJLaXQyR2VuZXJhdGVk
Lm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi93aW4vV2ViS2l0MkdlbmVyYXRlZC5tYWtlCShy
ZXZpc2lvbiA2NzgwNykKKysrIFdlYktpdDIvd2luL1dlYktpdDJHZW5lcmF0ZWQubWFrZQkod29y
a2luZyBjb3B5KQpAQCAtNDUsNyArNDUsNyBAQCBhbGw6CiAgICAgeGNvcHkgL3kgL2QgIi4uXFdl
YlByb2Nlc3NcSW5qZWN0ZWRCdW5kbGVcQVBJXGNcV0tCdW5kbGVQYWdlLmgiICIkKFdFQktJVE9V
VFBVVERJUilcaW5jbHVkZVxXZWJLaXQyIgogICAgIHhjb3B5IC95IC9kICIuLlxXZWJQcm9jZXNz
XEluamVjdGVkQnVuZGxlXEFQSVxjXFdLQnVuZGxlUGFnZVByaXZhdGUuaCIgIiQoV0VCS0lUT1VU
UFVURElSKVxpbmNsdWRlXFdlYktpdDIiCiAgICAgeGNvcHkgL3kgL2QgIi4uXFdlYlByb2Nlc3Nc
SW5qZWN0ZWRCdW5kbGVcQVBJXGNcV0tCdW5kbGVQcml2YXRlLmgiICIkKFdFQktJVE9VVFBVVERJ
UilcaW5jbHVkZVxXZWJLaXQyIgotICAgIHhjb3B5IC95IC9kICIuLlxXZWJQcm9jZXNzXEluamVj
dGVkQnVuZGxlXEFQSVxjXFdLQnVuZGxlUmFuZ2UuaCIgIiQoV0VCS0lUT1VUUFVURElSKVxpbmNs
dWRlXFdlYktpdDIiCisgICAgeGNvcHkgL3kgL2QgIi4uXFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5k
bGVcQVBJXGNcV0tCdW5kbGVSYW5nZUhhbmRsZS5oIiAiJChXRUJLSVRPVVRQVVRESVIpXGluY2x1
ZGVcV2ViS2l0MiIKICAgICB4Y29weSAveSAvZCAiLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRs
ZVxBUElcY1xXS0J1bmRsZVNjcmlwdFdvcmxkLmgiICIkKFdFQktJVE9VVFBVVERJUilcaW5jbHVk
ZVxXZWJLaXQyIgogICAgIC1kZWwgIiQoV0VCS0lUT1VUUFVURElSKVxidWlsZGZhaWxlZCIKIApJ
bmRleDogV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0No
YW5nZUxvZwkocmV2aXNpb24gNjc4MTEpCisrKyBXZWJLaXRUb29scy9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwyOCBAQAorMjAxMC0wOS0xOSAgU2FtIFdlaW5pZyAgPHNhbUB3
ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFJlcGxhY2UgV0tCdW5kbGVSYW5nZVJlZiB3aXRoIFdLQnVuZGxlUmFuZ2VIYW5kbGVSZWYu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NjA1NAor
CisgICAgICAgIFRoZSBuZXcgb25lIGFjdHMgbGlrZSBXS0J1bmRsZU5vZGVIYW5kbGVSZWYgYW5k
IGFsbG93cyBmb3IgZ2V0dGluZyBhCisgICAgICAgIHdyYXBwZXIgaW4gYSBzcGVjaWZpYyB3b3Js
ZCBmb3IgdGhlIGhhbmRsZS4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcDoKKyAgICAgICAgKFdUUjo6cHJvcGVydHlWYWx1
ZSk6CisgICAgICAgIChXVFI6OnByb3BlcnR5VmFsdWVEb3VibGUpOgorICAgICAgICAoV1RSOjpw
cm9wZXJ0eVZhbHVlSW50KToKKyAgICAgICAgKFdUUjo6bnVtZXJpY1dpbmRvd1Byb3BlcnR5VmFs
dWUpOgorICAgICAgICAoV1RSOjp0b1N0cik6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxl
UGFnZTo6c2hvdWxkQmVnaW5FZGl0aW5nKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQ
YWdlOjpzaG91bGRFbmRFZGl0aW5nKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdl
OjpzaG91bGRJbnNlcnROb2RlKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpz
aG91bGRJbnNlcnRUZXh0KToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpzaG91
bGREZWxldGVSYW5nZSk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6c2hvdWxk
Q2hhbmdlU2VsZWN0ZWRSYW5nZSk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6
c2hvdWxkQXBwbHlTdHlsZSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuaDoKKwogMjAxMC0wOS0xOSAgS2VudCBUYW11cmEgIDx0
a2VudEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gRml4IFdlYkdMIHRlc3Qg
cmVncmVzc2lvbnMgYnkgcjY3ODA5LgpJbmRleDogV2ViS2l0VG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQ
YWdlLmNwcAkocmV2aXNpb24gNjc4MDgpCisrKyBXZWJLaXRUb29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTMyLDcgKzMyLDYgQEAKICNpbmNsdWRlIDxXZWJLaXQyL1dLQnVuZGxlRnJhbWUuaD4KICNpbmNs
dWRlIDxXZWJLaXQyL1dLQnVuZGxlRnJhbWVQcml2YXRlLmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9X
S0J1bmRsZVBhZ2VQcml2YXRlLmg+Ci0jaW5jbHVkZSA8V2ViS2l0Mi9XS0J1bmRsZVJhbmdlLmg+
CiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKQEAgLTQzLDE4ICs0MiwyNiBAQCBzdGF0aWMgSlNW
YWx1ZVJlZiBwcm9wZXJ0eVZhbHVlKEpTQ29udGV4CiAgICAgaWYgKCFvYmplY3QpCiAgICAgICAg
IHJldHVybiAwOwogICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBwcm9wZXJ0eU5hbWVTdHJp
bmcoQWRvcHQsIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHByb3BlcnR5TmFtZSkpOwot
ICAgIEpTVmFsdWVSZWYgZXhjZXB0aW9uOwotICAgIHJldHVybiBKU09iamVjdEdldFByb3BlcnR5
KGNvbnRleHQsIG9iamVjdCwgcHJvcGVydHlOYW1lU3RyaW5nLmdldCgpLCAmZXhjZXB0aW9uKTsK
KyAgICByZXR1cm4gSlNPYmplY3RHZXRQcm9wZXJ0eShjb250ZXh0LCBvYmplY3QsIHByb3BlcnR5
TmFtZVN0cmluZy5nZXQoKSwgMCk7CiB9CiAKLXN0YXRpYyBkb3VibGUgbnVtZXJpY1dpbmRvd1By
b3BlcnR5VmFsdWUoV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgY29uc3QgY2hhciogcHJvcGVydHlO
YW1lKQorc3RhdGljIGRvdWJsZSBwcm9wZXJ0eVZhbHVlRG91YmxlKEpTQ29udGV4dFJlZiBjb250
ZXh0LCBKU09iamVjdFJlZiBvYmplY3QsIGNvbnN0IGNoYXIqIHByb3BlcnR5TmFtZSkKIHsKLSAg
ICBKU0dsb2JhbENvbnRleHRSZWYgY29udGV4dCA9IFdLQnVuZGxlRnJhbWVHZXRKYXZhU2NyaXB0
Q29udGV4dChmcmFtZSk7Ci0gICAgSlNWYWx1ZVJlZiB2YWx1ZSA9IHByb3BlcnR5VmFsdWUoY29u
dGV4dCwgSlNDb250ZXh0R2V0R2xvYmFsT2JqZWN0KGNvbnRleHQpLCBwcm9wZXJ0eU5hbWUpOwor
ICAgIEpTVmFsdWVSZWYgdmFsdWUgPSBwcm9wZXJ0eVZhbHVlKGNvbnRleHQsIG9iamVjdCwgcHJv
cGVydHlOYW1lKTsKICAgICBpZiAoIXZhbHVlKQogICAgICAgICByZXR1cm4gMDsKLSAgICBKU1Zh
bHVlUmVmIGV4Y2VwdGlvbjsKLSAgICByZXR1cm4gSlNWYWx1ZVRvTnVtYmVyKGNvbnRleHQsIHZh
bHVlLCAmZXhjZXB0aW9uKTsKKyAgICByZXR1cm4gSlNWYWx1ZVRvTnVtYmVyKGNvbnRleHQsIHZh
bHVlLCAwKTsgICAgCit9CisKK3N0YXRpYyBpbnQgcHJvcGVydHlWYWx1ZUludChKU0NvbnRleHRS
ZWYgY29udGV4dCwgSlNPYmplY3RSZWYgb2JqZWN0LCBjb25zdCBjaGFyKiBwcm9wZXJ0eU5hbWUp
Cit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4ocHJvcGVydHlWYWx1ZURvdWJsZShjb250
ZXh0LCBvYmplY3QsIHByb3BlcnR5TmFtZSkpOyAgICAKK30KKworc3RhdGljIGRvdWJsZSBudW1l
cmljV2luZG93UHJvcGVydHlWYWx1ZShXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBjb25zdCBjaGFy
KiBwcm9wZXJ0eU5hbWUpCit7CisgICAgSlNHbG9iYWxDb250ZXh0UmVmIGNvbnRleHQgPSBXS0J1
bmRsZUZyYW1lR2V0SmF2YVNjcmlwdENvbnRleHQoZnJhbWUpOworICAgIHJldHVybiBwcm9wZXJ0
eVZhbHVlRG91YmxlKGNvbnRleHQsIEpTQ29udGV4dEdldEdsb2JhbE9iamVjdChjb250ZXh0KSwg
cHJvcGVydHlOYW1lKTsKIH0KIAogc3RhdGljIHN0cmluZyBkdW1wUGF0aChKU0dsb2JhbENvbnRl
eHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgbm9kZVZhbHVlKQpAQCAtODksMTYgKzk2LDMxIEBA
IHN0YXRpYyBzdHJpbmcgZHVtcFBhdGgoV0tCdW5kbGVQYWdlUmVmIHAKICAgICByZXR1cm4gZHVt
cFBhdGgoY29udGV4dCwgbm9kZU9iamVjdCk7CiB9CiAKLXN0YXRpYyBzdHJpbmcgdG9TdHIoV0tC
dW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlU2NyaXB0V29ybGRSZWYgd29ybGQsIFdLQnVuZGxl
UmFuZ2VSZWYgcmFuZ2VSZWYpCitzdGF0aWMgc3RyaW5nIHRvU3RyKFdLQnVuZGxlUGFnZVJlZiBw
YWdlLCBXS0J1bmRsZVNjcmlwdFdvcmxkUmVmIHdvcmxkLCBXS0J1bmRsZVJhbmdlSGFuZGxlUmVm
IHJhbmdlUmVmKQogewogICAgIGlmICghcmFuZ2VSZWYpCiAgICAgICAgIHJldHVybiAiKG51bGwp
IjsKIAotICAgIFdLUmV0YWluUHRyPFdLQnVuZGxlTm9kZUhhbmRsZVJlZj4gc3RhcnROb2RlKEFk
b3B0V0ssIFdLQnVuZGxlUmFuZ2VDb3B5U3RhcnRDb250YWluZXIocmFuZ2VSZWYpKTsKLSAgICBX
S1JldGFpblB0cjxXS0J1bmRsZU5vZGVIYW5kbGVSZWY+IGVuZE5vZGUoQWRvcHRXSywgV0tCdW5k
bGVSYW5nZUNvcHlFbmRDb250YWluZXIocmFuZ2VSZWYpKTsKKyAgICBXS0J1bmRsZUZyYW1lUmVm
IGZyYW1lID0gV0tCdW5kbGVQYWdlR2V0TWFpbkZyYW1lKHBhZ2UpOworCisgICAgSlNHbG9iYWxD
b250ZXh0UmVmIGNvbnRleHQgPSBXS0J1bmRsZUZyYW1lR2V0SmF2YVNjcmlwdENvbnRleHRGb3JX
b3JsZChmcmFtZSwgd29ybGQpOworICAgIEpTVmFsdWVSZWYgcmFuZ2VWYWx1ZSA9IFdLQnVuZGxl
RnJhbWVHZXRKYXZhU2NyaXB0V3JhcHBlckZvclJhbmdlRm9yV29ybGQoZnJhbWUsIHJhbmdlUmVm
LCB3b3JsZCk7CisgICAgQVNTRVJUKEpTVmFsdWVJc09iamVjdChjb250ZXh0LCByYW5nZVZhbHVl
KSk7CisgICAgSlNPYmplY3RSZWYgcmFuZ2VPYmplY3QgPSAoSlNPYmplY3RSZWYpcmFuZ2VWYWx1
ZTsKKworICAgIEpTVmFsdWVSZWYgc3RhcnROb2RlVmFsdWUgPSBwcm9wZXJ0eVZhbHVlKGNvbnRl
eHQsIHJhbmdlT2JqZWN0LCAic3RhcnRDb250YWluZXIiKTsKKyAgICBBU1NFUlQoSlNWYWx1ZUlz
T2JqZWN0KGNvbnRleHQsIHN0YXJ0Tm9kZVZhbHVlKSk7CisgICAgSlNPYmplY3RSZWYgc3RhcnRO
b2RlT2JqZWN0ID0gKEpTT2JqZWN0UmVmKXN0YXJ0Tm9kZVZhbHVlOworCisgICAgSlNWYWx1ZVJl
ZiBlbmROb2RlVmFsdWUgPSBwcm9wZXJ0eVZhbHVlKGNvbnRleHQsIHJhbmdlT2JqZWN0LCAiZW5k
Q29udGFpbmVyIik7CisgICAgQVNTRVJUKEpTVmFsdWVJc09iamVjdChjb250ZXh0LCBlbmROb2Rl
VmFsdWUpKTsKKyAgICBKU09iamVjdFJlZiBlbmROb2RlT2JqZWN0ID0gKEpTT2JqZWN0UmVmKWVu
ZE5vZGVWYWx1ZTsKKworICAgIGludCBzdGFydE9mZnNldCA9IHByb3BlcnR5VmFsdWVJbnQoY29u
dGV4dCwgcmFuZ2VPYmplY3QsICJzdGFydE9mZnNldCIpOworICAgIGludCBlbmRPZmZzZXQgPSBw
cm9wZXJ0eVZhbHVlSW50KGNvbnRleHQsIHJhbmdlT2JqZWN0LCAiZW5kT2Zmc2V0Iik7CiAKICAg
ICBvc3RyaW5nc3RyZWFtIG91dDsKLSAgICBvdXQgPDwgInJhbmdlIGZyb20gIiA8PCBXS0J1bmRs
ZVJhbmdlR2V0U3RhcnRPZmZzZXQocmFuZ2VSZWYpIDw8ICIgb2YgIiA8PCBkdW1wUGF0aChwYWdl
LCB3b3JsZCwgc3RhcnROb2RlLmdldCgpKSA8PCAiIHRvICIgPDwgV0tCdW5kbGVSYW5nZUdldEVu
ZE9mZnNldChyYW5nZVJlZikgPDwgIiBvZiAiIDw8IGR1bXBQYXRoKHBhZ2UsIHdvcmxkLCBlbmRO
b2RlLmdldCgpKTsKKyAgICBvdXQgPDwgInJhbmdlIGZyb20gIiA8PCBzdGFydE9mZnNldCA8PCAi
IG9mICIgPDwgZHVtcFBhdGgoY29udGV4dCwgc3RhcnROb2RlT2JqZWN0KSA8PCAiIHRvICIgPDwg
ZW5kT2Zmc2V0IDw8ICIgb2YgIiA8PCBkdW1wUGF0aChjb250ZXh0LCBlbmROb2RlT2JqZWN0KTsK
ICAgICByZXR1cm4gb3V0LnN0cigpOwogfQogCkBAIC01NTcsMzcgKzU3OSwzNyBAQCB2b2lkIElu
amVjdGVkQnVuZGxlUGFnZTo6d2lsbFJ1bkphdmFTY3JpCiAKIC8vIEVkaXRvciBDbGllbnQgQ2Fs
bGJhY2tzCiAKLWJvb2wgSW5qZWN0ZWRCdW5kbGVQYWdlOjpzaG91bGRCZWdpbkVkaXRpbmcoV0tC
dW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlUmFuZ2VSZWYgcmFuZ2UsIGNvbnN0IHZvaWQqIGNs
aWVudEluZm8pCitib29sIEluamVjdGVkQnVuZGxlUGFnZTo6c2hvdWxkQmVnaW5FZGl0aW5nKFdL
QnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZVJhbmdlSGFuZGxlUmVmIHJhbmdlLCBjb25zdCB2
b2lkKiBjbGllbnRJbmZvKQogewogICAgIHJldHVybiBzdGF0aWNfY2FzdDxJbmplY3RlZEJ1bmRs
ZVBhZ2UqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSktPnNob3VsZEJlZ2luRWRpdGlu
ZyhyYW5nZSk7CiB9CiAKLWJvb2wgSW5qZWN0ZWRCdW5kbGVQYWdlOjpzaG91bGRFbmRFZGl0aW5n
KFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZVJhbmdlUmVmIHJhbmdlLCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKQorYm9vbCBJbmplY3RlZEJ1bmRsZVBhZ2U6OnNob3VsZEVuZEVkaXRpbmco
V0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlUmFuZ2VIYW5kbGVSZWYgcmFuZ2UsIGNvbnN0
IHZvaWQqIGNsaWVudEluZm8pCiB7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEluamVjdGVkQnVu
ZGxlUGFnZSo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+c2hvdWxkRW5kRWRpdGlu
ZyhyYW5nZSk7CiB9CiAKLWJvb2wgSW5qZWN0ZWRCdW5kbGVQYWdlOjpzaG91bGRJbnNlcnROb2Rl
KFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZU5vZGVIYW5kbGVSZWYgbm9kZSwgV0tCdW5k
bGVSYW5nZVJlZiByYW5nZVRvUmVwbGFjZSwgV0tJbnNlcnRBY3Rpb25UeXBlIGFjdGlvbiwgY29u
c3Qgdm9pZCogY2xpZW50SW5mbykKK2Jvb2wgSW5qZWN0ZWRCdW5kbGVQYWdlOjpzaG91bGRJbnNl
cnROb2RlKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZU5vZGVIYW5kbGVSZWYgbm9kZSwg
V0tCdW5kbGVSYW5nZUhhbmRsZVJlZiByYW5nZVRvUmVwbGFjZSwgV0tJbnNlcnRBY3Rpb25UeXBl
IGFjdGlvbiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8SW5qZWN0ZWRCdW5kbGVQYWdlKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpLT5z
aG91bGRJbnNlcnROb2RlKG5vZGUsIHJhbmdlVG9SZXBsYWNlLCBhY3Rpb24pOwogfQogCi1ib29s
IEluamVjdGVkQnVuZGxlUGFnZTo6c2hvdWxkSW5zZXJ0VGV4dChXS0J1bmRsZVBhZ2VSZWYgcGFn
ZSwgV0tTdHJpbmdSZWYgdGV4dCwgV0tCdW5kbGVSYW5nZVJlZiByYW5nZVRvUmVwbGFjZSwgV0tJ
bnNlcnRBY3Rpb25UeXBlIGFjdGlvbiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK2Jvb2wgSW5q
ZWN0ZWRCdW5kbGVQYWdlOjpzaG91bGRJbnNlcnRUZXh0KFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBX
S1N0cmluZ1JlZiB0ZXh0LCBXS0J1bmRsZVJhbmdlSGFuZGxlUmVmIHJhbmdlVG9SZXBsYWNlLCBX
S0luc2VydEFjdGlvblR5cGUgYWN0aW9uLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewogICAg
IHJldHVybiBzdGF0aWNfY2FzdDxJbmplY3RlZEJ1bmRsZVBhZ2UqPihjb25zdF9jYXN0PHZvaWQq
PihjbGllbnRJbmZvKSktPnNob3VsZEluc2VydFRleHQodGV4dCwgcmFuZ2VUb1JlcGxhY2UsIGFj
dGlvbik7CiB9CiAKLWJvb2wgSW5qZWN0ZWRCdW5kbGVQYWdlOjpzaG91bGREZWxldGVSYW5nZShX
S0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVSYW5nZVJlZiByYW5nZSwgY29uc3Qgdm9pZCog
Y2xpZW50SW5mbykKK2Jvb2wgSW5qZWN0ZWRCdW5kbGVQYWdlOjpzaG91bGREZWxldGVSYW5nZShX
S0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVSYW5nZUhhbmRsZVJlZiByYW5nZSwgY29uc3Qg
dm9pZCogY2xpZW50SW5mbykKIHsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SW5qZWN0ZWRCdW5k
bGVQYWdlKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpLT5zaG91bGREZWxldGVSYW5n
ZShyYW5nZSk7CiB9CiAKLWJvb2wgSW5qZWN0ZWRCdW5kbGVQYWdlOjpzaG91bGRDaGFuZ2VTZWxl
Y3RlZFJhbmdlKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZVJhbmdlUmVmIGZyb21SYW5n
ZSwgV0tCdW5kbGVSYW5nZVJlZiB0b1JhbmdlLCBXS0FmZmluaXR5VHlwZSBhZmZpbml0eSwgYm9v
bCBzdGlsbFNlbGVjdGluZywgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK2Jvb2wgSW5qZWN0ZWRC
dW5kbGVQYWdlOjpzaG91bGRDaGFuZ2VTZWxlY3RlZFJhbmdlKFdLQnVuZGxlUGFnZVJlZiBwYWdl
LCBXS0J1bmRsZVJhbmdlSGFuZGxlUmVmIGZyb21SYW5nZSwgV0tCdW5kbGVSYW5nZUhhbmRsZVJl
ZiB0b1JhbmdlLCBXS0FmZmluaXR5VHlwZSBhZmZpbml0eSwgYm9vbCBzdGlsbFNlbGVjdGluZywg
Y29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SW5qZWN0
ZWRCdW5kbGVQYWdlKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpLT5zaG91bGRDaGFu
Z2VTZWxlY3RlZFJhbmdlKGZyb21SYW5nZSwgdG9SYW5nZSwgYWZmaW5pdHksIHN0aWxsU2VsZWN0
aW5nKTsKIH0KIAotYm9vbCBJbmplY3RlZEJ1bmRsZVBhZ2U6OnNob3VsZEFwcGx5U3R5bGUoV0tC
dW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvblJlZiBzdHlsZSwg
V0tCdW5kbGVSYW5nZVJlZiByYW5nZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK2Jvb2wgSW5q
ZWN0ZWRCdW5kbGVQYWdlOjpzaG91bGRBcHBseVN0eWxlKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBX
S0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25SZWYgc3R5bGUsIFdLQnVuZGxlUmFuZ2VIYW5kbGVS
ZWYgcmFuZ2UsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CiAgICAgcmV0dXJuIHN0YXRpY19j
YXN0PEluamVjdGVkQnVuZGxlUGFnZSo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+
c2hvdWxkQXBwbHlTdHlsZShzdHlsZSwgcmFuZ2UpOwogfQpAQCAtNjEyLDcgKzYzNCw3IEBAIHZv
aWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRDaGFuZ2VTZWxlY3QKICAgICBzdGF0aWNfY2FzdDxJ
bmplY3RlZEJ1bmRsZVBhZ2UqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSktPmRpZENo
YW5nZVNlbGVjdGlvbihub3RpZmljYXRpb25OYW1lKTsKIH0KIAotYm9vbCBJbmplY3RlZEJ1bmRs
ZVBhZ2U6OnNob3VsZEJlZ2luRWRpdGluZyhXS0J1bmRsZVJhbmdlUmVmIHJhbmdlKQorYm9vbCBJ
bmplY3RlZEJ1bmRsZVBhZ2U6OnNob3VsZEJlZ2luRWRpdGluZyhXS0J1bmRsZVJhbmdlSGFuZGxl
UmVmIHJhbmdlKQogewogICAgIGlmICghSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLmlzVGVzdFJ1
bm5pbmcoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC02MjIsNyArNjQ0LDcgQEAgYm9vbCBJ
bmplY3RlZEJ1bmRsZVBhZ2U6OnNob3VsZEJlZ2luRWRpdAogICAgIHJldHVybiBJbmplY3RlZEJ1
bmRsZTo6c2hhcmVkKCkubGF5b3V0VGVzdENvbnRyb2xsZXIoKS0+c2hvdWxkQWxsb3dFZGl0aW5n
KCk7CiB9CiAKLWJvb2wgSW5qZWN0ZWRCdW5kbGVQYWdlOjpzaG91bGRFbmRFZGl0aW5nKFdLQnVu
ZGxlUmFuZ2VSZWYgcmFuZ2UpCitib29sIEluamVjdGVkQnVuZGxlUGFnZTo6c2hvdWxkRW5kRWRp
dGluZyhXS0J1bmRsZVJhbmdlSGFuZGxlUmVmIHJhbmdlKQogewogICAgIGlmICghSW5qZWN0ZWRC
dW5kbGU6OnNoYXJlZCgpLmlzVGVzdFJ1bm5pbmcoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CkBA
IC02MzIsNyArNjU0LDcgQEAgYm9vbCBJbmplY3RlZEJ1bmRsZVBhZ2U6OnNob3VsZEVuZEVkaXRp
bgogICAgIHJldHVybiBJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkubGF5b3V0VGVzdENvbnRyb2xs
ZXIoKS0+c2hvdWxkQWxsb3dFZGl0aW5nKCk7CiB9CiAKLWJvb2wgSW5qZWN0ZWRCdW5kbGVQYWdl
OjpzaG91bGRJbnNlcnROb2RlKFdLQnVuZGxlTm9kZUhhbmRsZVJlZiBub2RlLCBXS0J1bmRsZVJh
bmdlUmVmIHJhbmdlVG9SZXBsYWNlLCBXS0luc2VydEFjdGlvblR5cGUgYWN0aW9uKQorYm9vbCBJ
bmplY3RlZEJ1bmRsZVBhZ2U6OnNob3VsZEluc2VydE5vZGUoV0tCdW5kbGVOb2RlSGFuZGxlUmVm
IG5vZGUsIFdLQnVuZGxlUmFuZ2VIYW5kbGVSZWYgcmFuZ2VUb1JlcGxhY2UsIFdLSW5zZXJ0QWN0
aW9uVHlwZSBhY3Rpb24pCiB7CiAgICAgaWYgKCFJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkuaXNU
ZXN0UnVubmluZygpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTY0OCw3ICs2NzAsNyBAQCBi
b29sIEluamVjdGVkQnVuZGxlUGFnZTo6c2hvdWxkSW5zZXJ0Tm9kCiAgICAgcmV0dXJuIEluamVj
dGVkQnVuZGxlOjpzaGFyZWQoKS5sYXlvdXRUZXN0Q29udHJvbGxlcigpLT5zaG91bGRBbGxvd0Vk
aXRpbmcoKTsKIH0KIAotYm9vbCBJbmplY3RlZEJ1bmRsZVBhZ2U6OnNob3VsZEluc2VydFRleHQo
V0tTdHJpbmdSZWYgdGV4dCwgV0tCdW5kbGVSYW5nZVJlZiByYW5nZVRvUmVwbGFjZSwgV0tJbnNl
cnRBY3Rpb25UeXBlIGFjdGlvbikKK2Jvb2wgSW5qZWN0ZWRCdW5kbGVQYWdlOjpzaG91bGRJbnNl
cnRUZXh0KFdLU3RyaW5nUmVmIHRleHQsIFdLQnVuZGxlUmFuZ2VIYW5kbGVSZWYgcmFuZ2VUb1Jl
cGxhY2UsIFdLSW5zZXJ0QWN0aW9uVHlwZSBhY3Rpb24pCiB7CiAgICAgaWYgKCFJbmplY3RlZEJ1
bmRsZTo6c2hhcmVkKCkuaXNUZXN0UnVubmluZygpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKQEAg
LTY2NCw3ICs2ODYsNyBAQCBib29sIEluamVjdGVkQnVuZGxlUGFnZTo6c2hvdWxkSW5zZXJ0VGV4
CiAgICAgcmV0dXJuIEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5sYXlvdXRUZXN0Q29udHJvbGxl
cigpLT5zaG91bGRBbGxvd0VkaXRpbmcoKTsKIH0KIAotYm9vbCBJbmplY3RlZEJ1bmRsZVBhZ2U6
OnNob3VsZERlbGV0ZVJhbmdlKFdLQnVuZGxlUmFuZ2VSZWYgcmFuZ2UpCitib29sIEluamVjdGVk
QnVuZGxlUGFnZTo6c2hvdWxkRGVsZXRlUmFuZ2UoV0tCdW5kbGVSYW5nZUhhbmRsZVJlZiByYW5n
ZSkKIHsKICAgICBpZiAoIUluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5pc1Rlc3RSdW5uaW5nKCkp
CiAgICAgICAgIHJldHVybiB0cnVlOwpAQCAtNjc0LDcgKzY5Niw3IEBAIGJvb2wgSW5qZWN0ZWRC
dW5kbGVQYWdlOjpzaG91bGREZWxldGVSYW4KICAgICByZXR1cm4gSW5qZWN0ZWRCdW5kbGU6OnNo
YXJlZCgpLmxheW91dFRlc3RDb250cm9sbGVyKCktPnNob3VsZEFsbG93RWRpdGluZygpOwogfQog
Ci1ib29sIEluamVjdGVkQnVuZGxlUGFnZTo6c2hvdWxkQ2hhbmdlU2VsZWN0ZWRSYW5nZShXS0J1
bmRsZVJhbmdlUmVmIGZyb21SYW5nZSwgV0tCdW5kbGVSYW5nZVJlZiB0b1JhbmdlLCBXS0FmZmlu
aXR5VHlwZSBhZmZpbml0eSwgYm9vbCBzdGlsbFNlbGVjdGluZykKK2Jvb2wgSW5qZWN0ZWRCdW5k
bGVQYWdlOjpzaG91bGRDaGFuZ2VTZWxlY3RlZFJhbmdlKFdLQnVuZGxlUmFuZ2VIYW5kbGVSZWYg
ZnJvbVJhbmdlLCBXS0J1bmRsZVJhbmdlSGFuZGxlUmVmIHRvUmFuZ2UsIFdLQWZmaW5pdHlUeXBl
IGFmZmluaXR5LCBib29sIHN0aWxsU2VsZWN0aW5nKQogewogICAgIGlmICghSW5qZWN0ZWRCdW5k
bGU6OnNoYXJlZCgpLmlzVGVzdFJ1bm5pbmcoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC02
OTMsNyArNzE1LDcgQEAgYm9vbCBJbmplY3RlZEJ1bmRsZVBhZ2U6OnNob3VsZENoYW5nZVNlbAog
ICAgIHJldHVybiBJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkubGF5b3V0VGVzdENvbnRyb2xsZXIo
KS0+c2hvdWxkQWxsb3dFZGl0aW5nKCk7CiB9CiAKLWJvb2wgSW5qZWN0ZWRCdW5kbGVQYWdlOjpz
aG91bGRBcHBseVN0eWxlKFdLQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvblJlZiBzdHlsZSwgV0tC
dW5kbGVSYW5nZVJlZiByYW5nZSkKK2Jvb2wgSW5qZWN0ZWRCdW5kbGVQYWdlOjpzaG91bGRBcHBs
eVN0eWxlKFdLQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvblJlZiBzdHlsZSwgV0tCdW5kbGVSYW5n
ZUhhbmRsZVJlZiByYW5nZSkKIHsKICAgICBpZiAoIUluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5p
c1Rlc3RSdW5uaW5nKCkpCiAgICAgICAgIHJldHVybiB0cnVlOwpJbmRleDogV2ViS2l0VG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXRUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlUGFnZS5oCShyZXZpc2lvbiA2NzgwOCkKKysrIFdlYktpdFRvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTkxLDI0ICs5MSwyNCBAQCBwcml2YXRlOgogICAgIHZvaWQgd2lsbFJ1bkphdmFT
Y3JpcHRQcm9tcHQoV0tTdHJpbmdSZWYgbWVzc2FnZSwgV0tTdHJpbmdSZWYgZGVmYXVsdFZhbHVl
LCBXS0J1bmRsZUZyYW1lUmVmKTsKIAogICAgIC8vIEVkaXRvciBjbGllbnQKLSAgICBzdGF0aWMg
Ym9vbCBzaG91bGRCZWdpbkVkaXRpbmcoV0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZVJhbmdlUmVm
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKLSAgICBzdGF0aWMgYm9vbCBzaG91bGRFbmRFZGl0
aW5nKFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5kbGVSYW5nZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50
SW5mbyk7Ci0gICAgc3RhdGljIGJvb2wgc2hvdWxkSW5zZXJ0Tm9kZShXS0J1bmRsZVBhZ2VSZWYs
IFdLQnVuZGxlTm9kZUhhbmRsZVJlZiwgV0tCdW5kbGVSYW5nZVJlZiByYW5nZVRvUmVwbGFjZSwg
V0tJbnNlcnRBY3Rpb25UeXBlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKLSAgICBzdGF0aWMg
Ym9vbCBzaG91bGRJbnNlcnRUZXh0KFdLQnVuZGxlUGFnZVJlZiwgV0tTdHJpbmdSZWYsIFdLQnVu
ZGxlUmFuZ2VSZWYgcmFuZ2VUb1JlcGxhY2UsIFdLSW5zZXJ0QWN0aW9uVHlwZSwgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbyk7Ci0gICAgc3RhdGljIGJvb2wgc2hvdWxkRGVsZXRlUmFuZ2UoV0tCdW5k
bGVQYWdlUmVmLCBXS0J1bmRsZVJhbmdlUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKLSAg
ICBzdGF0aWMgYm9vbCBzaG91bGRDaGFuZ2VTZWxlY3RlZFJhbmdlKFdLQnVuZGxlUGFnZVJlZiwg
V0tCdW5kbGVSYW5nZVJlZiBmcm9tUmFuZ2UsIFdLQnVuZGxlUmFuZ2VSZWYgdG9SYW5nZSwgV0tB
ZmZpbml0eVR5cGUsIGJvb2wgc3RpbGxTZWxlY3RpbmcsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8p
OwotICAgIHN0YXRpYyBib29sIHNob3VsZEFwcGx5U3R5bGUoV0tCdW5kbGVQYWdlUmVmLCBXS0J1
bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25SZWYgc3R5bGUsIFdLQnVuZGxlUmFuZ2VSZWYgcmFuZ2Us
IGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOworICAgIHN0YXRpYyBib29sIHNob3VsZEJlZ2luRWRp
dGluZyhXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlUmFuZ2VIYW5kbGVSZWYsIGNvbnN0IHZvaWQq
IGNsaWVudEluZm8pOworICAgIHN0YXRpYyBib29sIHNob3VsZEVuZEVkaXRpbmcoV0tCdW5kbGVQ
YWdlUmVmLCBXS0J1bmRsZVJhbmdlSGFuZGxlUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsK
KyAgICBzdGF0aWMgYm9vbCBzaG91bGRJbnNlcnROb2RlKFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5k
bGVOb2RlSGFuZGxlUmVmLCBXS0J1bmRsZVJhbmdlSGFuZGxlUmVmIHJhbmdlVG9SZXBsYWNlLCBX
S0luc2VydEFjdGlvblR5cGUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOworICAgIHN0YXRpYyBi
b29sIHNob3VsZEluc2VydFRleHQoV0tCdW5kbGVQYWdlUmVmLCBXS1N0cmluZ1JlZiwgV0tCdW5k
bGVSYW5nZUhhbmRsZVJlZiByYW5nZVRvUmVwbGFjZSwgV0tJbnNlcnRBY3Rpb25UeXBlLCBjb25z
dCB2b2lkKiBjbGllbnRJbmZvKTsKKyAgICBzdGF0aWMgYm9vbCBzaG91bGREZWxldGVSYW5nZShX
S0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlUmFuZ2VIYW5kbGVSZWYsIGNvbnN0IHZvaWQqIGNsaWVu
dEluZm8pOworICAgIHN0YXRpYyBib29sIHNob3VsZENoYW5nZVNlbGVjdGVkUmFuZ2UoV0tCdW5k
bGVQYWdlUmVmLCBXS0J1bmRsZVJhbmdlSGFuZGxlUmVmIGZyb21SYW5nZSwgV0tCdW5kbGVSYW5n
ZUhhbmRsZVJlZiB0b1JhbmdlLCBXS0FmZmluaXR5VHlwZSwgYm9vbCBzdGlsbFNlbGVjdGluZywg
Y29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CisgICAgc3RhdGljIGJvb2wgc2hvdWxkQXBwbHlTdHls
ZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvblJlZiBzdHlsZSwg
V0tCdW5kbGVSYW5nZUhhbmRsZVJlZiByYW5nZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiAg
ICAgc3RhdGljIHZvaWQgZGlkQmVnaW5FZGl0aW5nKFdLQnVuZGxlUGFnZVJlZiwgV0tTdHJpbmdS
ZWYgbm90aWZpY2F0aW9uTmFtZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiAgICAgc3RhdGlj
IHZvaWQgZGlkRW5kRWRpdGluZyhXS0J1bmRsZVBhZ2VSZWYsIFdLU3RyaW5nUmVmIG5vdGlmaWNh
dGlvbk5hbWUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogICAgIHN0YXRpYyB2b2lkIGRpZENo
YW5nZShXS0J1bmRsZVBhZ2VSZWYsIFdLU3RyaW5nUmVmIG5vdGlmaWNhdGlvbk5hbWUsIGNvbnN0
IHZvaWQqIGNsaWVudEluZm8pOwogICAgIHN0YXRpYyB2b2lkIGRpZENoYW5nZVNlbGVjdGlvbihX
S0J1bmRsZVBhZ2VSZWYsIFdLU3RyaW5nUmVmIG5vdGlmaWNhdGlvbk5hbWUsIGNvbnN0IHZvaWQq
IGNsaWVudEluZm8pOwotICAgIGJvb2wgc2hvdWxkQmVnaW5FZGl0aW5nKFdLQnVuZGxlUmFuZ2VS
ZWYpOwotICAgIGJvb2wgc2hvdWxkRW5kRWRpdGluZyhXS0J1bmRsZVJhbmdlUmVmKTsKLSAgICBi
b29sIHNob3VsZEluc2VydE5vZGUoV0tCdW5kbGVOb2RlSGFuZGxlUmVmLCBXS0J1bmRsZVJhbmdl
UmVmIHJhbmdlVG9SZXBsYWNlLCBXS0luc2VydEFjdGlvblR5cGUpOwotICAgIGJvb2wgc2hvdWxk
SW5zZXJ0VGV4dChXS1N0cmluZ1JlZiwgV0tCdW5kbGVSYW5nZVJlZiByYW5nZVRvUmVwbGFjZSwg
V0tJbnNlcnRBY3Rpb25UeXBlKTsKLSAgICBib29sIHNob3VsZERlbGV0ZVJhbmdlKFdLQnVuZGxl
UmFuZ2VSZWYpOwotICAgIGJvb2wgc2hvdWxkQ2hhbmdlU2VsZWN0ZWRSYW5nZShXS0J1bmRsZVJh
bmdlUmVmIGZyb21SYW5nZSwgV0tCdW5kbGVSYW5nZVJlZiB0b1JhbmdlLCBXS0FmZmluaXR5VHlw
ZSwgYm9vbCBzdGlsbFNlbGVjdGluZyk7Ci0gICAgYm9vbCBzaG91bGRBcHBseVN0eWxlKFdLQnVu
ZGxlQ1NTU3R5bGVEZWNsYXJhdGlvblJlZiBzdHlsZSwgV0tCdW5kbGVSYW5nZVJlZiByYW5nZSk7
CisgICAgYm9vbCBzaG91bGRCZWdpbkVkaXRpbmcoV0tCdW5kbGVSYW5nZUhhbmRsZVJlZik7Cisg
ICAgYm9vbCBzaG91bGRFbmRFZGl0aW5nKFdLQnVuZGxlUmFuZ2VIYW5kbGVSZWYpOworICAgIGJv
b2wgc2hvdWxkSW5zZXJ0Tm9kZShXS0J1bmRsZU5vZGVIYW5kbGVSZWYsIFdLQnVuZGxlUmFuZ2VI
YW5kbGVSZWYgcmFuZ2VUb1JlcGxhY2UsIFdLSW5zZXJ0QWN0aW9uVHlwZSk7CisgICAgYm9vbCBz
aG91bGRJbnNlcnRUZXh0KFdLU3RyaW5nUmVmLCBXS0J1bmRsZVJhbmdlSGFuZGxlUmVmIHJhbmdl
VG9SZXBsYWNlLCBXS0luc2VydEFjdGlvblR5cGUpOworICAgIGJvb2wgc2hvdWxkRGVsZXRlUmFu
Z2UoV0tCdW5kbGVSYW5nZUhhbmRsZVJlZik7CisgICAgYm9vbCBzaG91bGRDaGFuZ2VTZWxlY3Rl
ZFJhbmdlKFdLQnVuZGxlUmFuZ2VIYW5kbGVSZWYgZnJvbVJhbmdlLCBXS0J1bmRsZVJhbmdlSGFu
ZGxlUmVmIHRvUmFuZ2UsIFdLQWZmaW5pdHlUeXBlLCBib29sIHN0aWxsU2VsZWN0aW5nKTsKKyAg
ICBib29sIHNob3VsZEFwcGx5U3R5bGUoV0tCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uUmVmIHN0
eWxlLCBXS0J1bmRsZVJhbmdlSGFuZGxlUmVmIHJhbmdlKTsKICAgICB2b2lkIGRpZEJlZ2luRWRp
dGluZyhXS1N0cmluZ1JlZiBub3RpZmljYXRpb25OYW1lKTsKICAgICB2b2lkIGRpZEVuZEVkaXRp
bmcoV0tTdHJpbmdSZWYgbm90aWZpY2F0aW9uTmFtZSk7CiAgICAgdm9pZCBkaWRDaGFuZ2UoV0tT
dHJpbmdSZWYgbm90aWZpY2F0aW9uTmFtZSk7Cg==
</data>
<flag name="review"
          id="57471"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>