<?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>98568</bug_id>
          
          <creation_ts>2012-10-05 15:42:58 -0700</creation_ts>
          <short_desc>Provide a way to run WebKit1</short_desc>
          <delta_ts>2012-10-08 12:12:06 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Rik Cabanier">cabanier</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>andersca</cc>
    
    <cc>cabanier</cc>
    
    <cc>mitz</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>736052</commentid>
    <comment_count>0</comment_count>
    <who name="Rik Cabanier">cabanier</who>
    <bug_when>2012-10-05 15:42:58 -0700</bug_when>
    <thetext>There is currently no way to run WebKit using the WebKit1 path.
Safari was changed so it only supports WebKit2 and there is no simple web browser to calls into the webKit1 code patch.

Please create a small tool to enable this</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736129</commentid>
    <comment_count>1</comment_count>
      <attachid>167427</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-10-05 17:48:15 -0700</bug_when>
    <thetext>Created attachment 167427
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736134</commentid>
    <comment_count>2</comment_count>
      <attachid>167427</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-10-05 17:59:45 -0700</bug_when>
    <thetext>Comment on attachment 167427
Patch

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

Neat!

&gt; Tools/MiniBrowser/mac/BrowserWindowController.m:38
&gt; +        // Initialization code here.

Don&apos;t think we need this comment.

&gt; Tools/MiniBrowser/mac/BrowserWindowController.m:48
&gt; +    // Implement this method to handle any initialization after your window controller&apos;s window has been loaded from its nib file.

Or this one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736137</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-10-05 18:09:07 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/130571</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167427</attachid>
            <date>2012-10-05 17:48:15 -0700</date>
            <delta_ts>2012-10-05 17:59:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98568-20121005174726.patch</filename>
            <type>text/plain</type>
            <size>99964</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwNTU0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZTQ3NjI4YjJmOTg1ZGJhZWM2MTM0NzQ1NTE5NjE0NWNl
MTc5NzMwYy4uZGEzMzk5MDkxMzRmZTU4YzY3OTk1MDk4MWRkNmI4YjA4Mzg3OTMxNiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
MCBAQAorMjAxMi0xMC0wNSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4K
KworICAgICAgICBQcm92aWRlIGEgd2F5IHRvIHJ1biBXZWJLaXQxCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODU2OAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgaXQgcG9zc2libGUgdG8gY3JlYXRl
IGJvdGggV2ViS2l0MSBhbmQgV2ViS2l0MiB3aW5kb3dzIGluIE1pbmlCcm93c2VyLgorICAgICAg
ICAKKyAgICAgICAgVHVybiBCcm93c2VyV2luZG93Q29udHJvbGxlciBpbnRvIGEgYmFzZSBjbGFz
czsgc3ViY2xhc3NlZCBieQorICAgICAgICBXSzFCcm93c2VyV2luZG93Q29udHJvbGxlciBhbmQg
V0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIsIGVhY2ggb2YKKyAgICAgICAgd2hpY2ggaW1wbGVt
ZW50IHRoZSBCcm93c2VyQ29udHJvbGxlciBwcm90b2NvbC4KKyAgICAgICAgCisgICAgICAgIFVz
ZSBDb21tYW5kLU4gdG8gZ2V0IGEgV2ViS2l0MSB3aW5kb3csIGFuZCBDb21tYW5kLU9wdGlvbi1O
IHRvCisgICAgICAgIGdldCBhIFdLMiB3aW5kb3cuIEFsc28gYWRkICJPcGVuIExvY2F0aW9uIiB0
byBmb2N1cyB0aGUgVVJMIGJhciwKKyAgICAgICAgYW5kIGNvZGUgdG8gYWRkIGFuIGh0dHA6Ly8g
aWYgbWlzc2luZy4KKyAgICAgICAgCisgICAgICAgIEhvb2sgdXAgd2luZG93IHRpdGxlIGNhbGxi
YWNrczsgYXBwZW5kICIgW1dLMS8yXSIgdG8gd2luZG93IHRpdGxlCisgICAgICAgIGFzIGFwcHJv
cHJpYXRlLgorCisgICAgICAgICogTWluaUJyb3dzZXIvTWluaUJyb3dzZXIueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9tYWMvQXBwRGVsZWdhdGUubToK
KyAgICAgICAgKC1bQnJvd3NlckFwcERlbGVnYXRlIG5ld1dpbmRvdzpdKToKKyAgICAgICAgKC1b
QnJvd3NlckFwcERlbGVnYXRlIG9wZW5QYW5lbERpZEVuZDpyZXR1cm5Db2RlOmNvbnRleHRJbmZv
Ol0pOgorICAgICAgICAqIE1pbmlCcm93c2VyL21hYy9Ccm93c2VyV2luZG93Q29udHJvbGxlci5o
OgorICAgICAgICAqIE1pbmlCcm93c2VyL21hYy9Ccm93c2VyV2luZG93Q29udHJvbGxlci5tOgor
ICAgICAgICAoLVtCcm93c2VyV2luZG93Q29udHJvbGxlciBpbml0V2l0aFdpbmRvdzpdKToKKyAg
ICAgICAgKC1bQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgd2luZG93RGlkTG9hZF0pOgorICAgICAg
ICAoLVtCcm93c2VyV2luZG93Q29udHJvbGxlciBvcGVuTG9jYXRpb246XSk6CisgICAgICAgICgt
W0Jyb3dzZXJXaW5kb3dDb250cm9sbGVyIGxvYWRVUkxTdHJpbmc6XSk6CisgICAgICAgICgtW0Jy
b3dzZXJXaW5kb3dDb250cm9sbGVyIGFwcGxpY2F0aW9uVGVybWluYXRpbmddKToKKyAgICAgICAg
KC1bQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgYWRkUHJvdG9jb2xJZk5lY2Vzc2FyeTpdKToKKyAg
ICAgICAgKiBNaW5pQnJvd3Nlci9tYWMvTWFpbk1lbnUueGliOgorICAgICAgICAqIE1pbmlCcm93
c2VyL21hYy9XSzFCcm93c2VyV2luZG93Q29udHJvbGxlci5oOiBDb3BpZWQgZnJvbSBUb29scy9N
aW5pQnJvd3Nlci9tYWMvQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIuaC4KKyAgICAgICAgKFdlYlZp
ZXcpOgorICAgICAgICAqIE1pbmlCcm93c2VyL21hYy9XSzFCcm93c2VyV2luZG93Q29udHJvbGxl
ci5tOiBBZGRlZC4KKyAgICAgICAgKC1bV0sxQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgYXdha2VG
cm9tTmliXSk6CisgICAgICAgICgtW1dLMUJyb3dzZXJXaW5kb3dDb250cm9sbGVyIGRlYWxsb2Nd
KToKKyAgICAgICAgKC1bV0sxQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgbG9hZFVSTFN0cmluZzpd
KToKKyAgICAgICAgKC1bV0sxQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgZmV0Y2g6XSk6CisgICAg
ICAgICgtW1dLMUJyb3dzZXJXaW5kb3dDb250cm9sbGVyIHNob3dIaWRlV2ViVmlldzpdKToKKyAg
ICAgICAgKC1bV0sxQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgcmVtb3ZlUmVpbnNlcnRXZWJWaWV3
Ol0pOgorICAgICAgICAoLVtXSzFCcm93c2VyV2luZG93Q29udHJvbGxlciB2YWxpZGF0ZU1lbnVJ
dGVtOl0pOgorICAgICAgICAoLVtXSzFCcm93c2VyV2luZG93Q29udHJvbGxlciByZWxvYWQ6XSk6
CisgICAgICAgICgtW1dLMUJyb3dzZXJXaW5kb3dDb250cm9sbGVyIGZvcmNlUmVwYWludDpdKToK
KyAgICAgICAgKC1bV0sxQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgZ29CYWNrOl0pOgorICAgICAg
ICAoLVtXSzFCcm93c2VyV2luZG93Q29udHJvbGxlciBnb0ZvcndhcmQ6XSk6CisgICAgICAgICgt
W1dLMUJyb3dzZXJXaW5kb3dDb250cm9sbGVyIHZhbGlkYXRlVXNlckludGVyZmFjZUl0ZW06XSk6
CisgICAgICAgICgtW1dLMUJyb3dzZXJXaW5kb3dDb250cm9sbGVyIHZhbGlkYXRlVG9vbGJhcl0p
OgorICAgICAgICAoLVtXSzFCcm93c2VyV2luZG93Q29udHJvbGxlciB3aW5kb3dTaG91bGRDbG9z
ZTpdKToKKyAgICAgICAgKC1bV0sxQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgd2luZG93V2lsbENs
b3NlOl0pOgorICAgICAgICAoLVtXSzFCcm93c2VyV2luZG93Q29udHJvbGxlciBhcHBsaWNhdGlv
blRlcm1pbmF0aW5nXSk6CisgICAgICAgICgtW1dLMUJyb3dzZXJXaW5kb3dDb250cm9sbGVyIGN1
cnJlbnRab29tRmFjdG9yXSk6CisgICAgICAgICgtW1dLMUJyb3dzZXJXaW5kb3dDb250cm9sbGVy
IGNhblpvb21Jbl0pOgorICAgICAgICAoLVtXSzFCcm93c2VyV2luZG93Q29udHJvbGxlciB6b29t
SW46XSk6CisgICAgICAgICgtW1dLMUJyb3dzZXJXaW5kb3dDb250cm9sbGVyIGNhblpvb21PdXRd
KToKKyAgICAgICAgKC1bV0sxQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgem9vbU91dDpdKToKKyAg
ICAgICAgKC1bV0sxQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgY2FuUmVzZXRab29tXSk6CisgICAg
ICAgICgtW1dLMUJyb3dzZXJXaW5kb3dDb250cm9sbGVyIHJlc2V0Wm9vbTpdKToKKyAgICAgICAg
KC1bV0sxQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgdG9nZ2xlWm9vbU1vZGU6XSk6CisgICAgICAg
ICgtW1dLMUJyb3dzZXJXaW5kb3dDb250cm9sbGVyIGlzUGFnaW5hdGVkXSk6CisgICAgICAgICgt
W1dLMUJyb3dzZXJXaW5kb3dDb250cm9sbGVyIHRvZ2dsZVBhZ2luYXRpb25Nb2RlOl0pOgorICAg
ICAgICAoLVtXSzFCcm93c2VyV2luZG93Q29udHJvbGxlciBmaW5kOl0pOgorICAgICAgICAoLVtX
SzFCcm93c2VyV2luZG93Q29udHJvbGxlciBkdW1wU291cmNlVG9Db25zb2xlOl0pOgorICAgICAg
ICAoLVtXSzFCcm93c2VyV2luZG93Q29udHJvbGxlciB3ZWJWaWV3OmRpZFN0YXJ0UHJvdmlzaW9u
YWxMb2FkRm9yRnJhbWU6XSk6CisgICAgICAgICgtW1dLMUJyb3dzZXJXaW5kb3dDb250cm9sbGVy
IHdlYlZpZXc6ZGlkUmVjZWl2ZVRpdGxlOmZvckZyYW1lOl0pOgorICAgICAgICAqIE1pbmlCcm93
c2VyL21hYy9XSzJCcm93c2VyV2luZG93Q29udHJvbGxlci5oOiBDb3BpZWQgZnJvbSBUb29scy9N
aW5pQnJvd3Nlci9tYWMvQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIuaC4KKyAgICAgICAgKiBNaW5p
QnJvd3Nlci9tYWMvV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubTogQ29waWVkIGZyb20gVG9v
bHMvTWluaUJyb3dzZXIvbWFjL0Jyb3dzZXJXaW5kb3dDb250cm9sbGVyLm0uCisgICAgICAgICgt
W1dLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyIGluaXRXaXRoQ29udGV4dDpwYWdlR3JvdXA6XSk6
CisgICAgICAgICgtW1dLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyIGRlYWxsb2NdKToKKyAgICAg
ICAgKC1bV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgZmV0Y2g6XSk6CisgICAgICAgICgtW1dL
MkJyb3dzZXJXaW5kb3dDb250cm9sbGVyIHNob3dIaWRlV2ViVmlldzpdKToKKyAgICAgICAgKC1b
V0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgcmVtb3ZlUmVpbnNlcnRXZWJWaWV3Ol0pOgorICAg
ICAgICAoLVtXSzJCcm93c2VyV2luZG93Q29udHJvbGxlciB2YWxpZGF0ZU1lbnVJdGVtOl0pOgor
ICAgICAgICAoLVtXSzJCcm93c2VyV2luZG93Q29udHJvbGxlciByZWxvYWQ6XSk6CisgICAgICAg
ICgtW1dLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyIGZvcmNlUmVwYWludDpdKToKKyAgICAgICAg
KC1bV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgZ29CYWNrOl0pOgorICAgICAgICAoLVtXSzJC
cm93c2VyV2luZG93Q29udHJvbGxlciBnb0ZvcndhcmQ6XSk6CisgICAgICAgICgtW1dLMkJyb3dz
ZXJXaW5kb3dDb250cm9sbGVyIHZhbGlkYXRlVXNlckludGVyZmFjZUl0ZW06XSk6CisgICAgICAg
ICgtW1dLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyIHZhbGlkYXRlVG9vbGJhcl0pOgorICAgICAg
ICAoLVtXSzJCcm93c2VyV2luZG93Q29udHJvbGxlciB3aW5kb3dTaG91bGRDbG9zZTpdKToKKyAg
ICAgICAgKC1bV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgd2luZG93V2lsbENsb3NlOl0pOgor
ICAgICAgICAoLVtXSzJCcm93c2VyV2luZG93Q29udHJvbGxlciBhcHBsaWNhdGlvblRlcm1pbmF0
aW5nXSk6CisgICAgICAgICgtW1dLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyIGN1cnJlbnRab29t
RmFjdG9yXSk6CisgICAgICAgICgtW1dLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyIHNldEN1cnJl
bnRab29tRmFjdG9yOl0pOgorICAgICAgICAoLVtXSzJCcm93c2VyV2luZG93Q29udHJvbGxlciBj
YW5ab29tSW5dKToKKyAgICAgICAgKC1bV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgem9vbUlu
Ol0pOgorICAgICAgICAoLVtXSzJCcm93c2VyV2luZG93Q29udHJvbGxlciBjYW5ab29tT3V0XSk6
CisgICAgICAgICgtW1dLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyIHpvb21PdXQ6XSk6CisgICAg
ICAgICgtW1dLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyIGNhblJlc2V0Wm9vbV0pOgorICAgICAg
ICAoLVtXSzJCcm93c2VyV2luZG93Q29udHJvbGxlciByZXNldFpvb206XSk6CisgICAgICAgICgt
W1dLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyIHRvZ2dsZVpvb21Nb2RlOl0pOgorICAgICAgICAo
LVtXSzJCcm93c2VyV2luZG93Q29udHJvbGxlciBpc1BhZ2luYXRlZF0pOgorICAgICAgICAoLVtX
SzJCcm93c2VyV2luZG93Q29udHJvbGxlciB0b2dnbGVQYWdpbmF0aW9uTW9kZTpdKToKKyAgICAg
ICAgKC1bV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgZHVtcFNvdXJjZVRvQ29uc29sZTpdKToK
KyAgICAgICAgKGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUpOgorICAgICAgICAoZGlk
UmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUpOgorICAgICAg
ICAoZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJvckZvckZyYW1lKToKKyAgICAgICAgKGRp
ZENvbW1pdExvYWRGb3JGcmFtZSk6CisgICAgICAgIChkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JG
cmFtZSk6CisgICAgICAgIChkaWRGaW5pc2hMb2FkRm9yRnJhbWUpOgorICAgICAgICAoZGlkRmFp
bExvYWRXaXRoRXJyb3JGb3JGcmFtZSk6CisgICAgICAgIChkaWRTYW1lRG9jdW1lbnROYXZpZ2F0
aW9uRm9yRnJhbWUpOgorICAgICAgICAoZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUpOgorICAgICAg
ICAoZGlkRmlyc3RMYXlvdXRGb3JGcmFtZSk6CisgICAgICAgIChkaWRGaXJzdFZpc3VhbGx5Tm9u
RW1wdHlMYXlvdXRGb3JGcmFtZSk6CisgICAgICAgIChkaWRSZW1vdmVGcmFtZUZyb21IaWVyYXJj
aHkpOgorICAgICAgICAoZGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZyYW1lKToKKyAgICAg
ICAgKGRpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lKToKKyAgICAgICAgKGRpZERldGVjdFhT
U0ZvckZyYW1lKToKKyAgICAgICAgKGRpZFN0YXJ0UHJvZ3Jlc3MpOgorICAgICAgICAoZGlkQ2hh
bmdlUHJvZ3Jlc3MpOgorICAgICAgICAoZGlkRmluaXNoUHJvZ3Jlc3MpOgorICAgICAgICAoZGlk
QmVjb21lVW5yZXNwb25zaXZlKToKKyAgICAgICAgKGRpZEJlY29tZVJlc3BvbnNpdmUpOgorICAg
ICAgICAocHJvY2Vzc0RpZEV4aXQpOgorICAgICAgICAoZGlkQ2hhbmdlQmFja0ZvcndhcmRMaXN0
KToKKyAgICAgICAgKGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24pOgorICAgICAgICAo
ZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKToKKyAgICAgICAgKGRlY2lkZVBvbGljeUZv
clJlc3BvbnNlKToKKyAgICAgICAgKGNyZWF0ZU5ld1BhZ2UpOgorICAgICAgICAoc2hvd1BhZ2Up
OgorICAgICAgICAoY2xvc2VQYWdlKToKKyAgICAgICAgKHJ1bkphdmFTY3JpcHRBbGVydCk6Cisg
ICAgICAgIChydW5KYXZhU2NyaXB0Q29uZmlybSk6CisgICAgICAgIChydW5KYXZhU2NyaXB0UHJv
bXB0KToKKyAgICAgICAgKHNldFN0YXR1c1RleHQpOgorICAgICAgICAobW91c2VEaWRNb3ZlT3Zl
ckVsZW1lbnQpOgorICAgICAgICAoZ2V0V2luZG93RnJhbWUpOgorICAgICAgICAoc2V0V2luZG93
RnJhbWUpOgorICAgICAgICAocnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKToKKyAgICAgICAg
KHJ1bk9wZW5QYW5lbCk6CisgICAgICAgICgtW1dLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyIGF3
YWtlRnJvbU5pYl0pOgorICAgICAgICAoLVtXSzJCcm93c2VyV2luZG93Q29udHJvbGxlciBkaWRT
dGFydFByb2dyZXNzXSk6CisgICAgICAgICgtW1dLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyIGRp
ZENoYW5nZVByb2dyZXNzOl0pOgorICAgICAgICAoLVtXSzJCcm93c2VyV2luZG93Q29udHJvbGxl
ciBkaWRGaW5pc2hQcm9ncmVzc10pOgorICAgICAgICAoLVtXSzJCcm93c2VyV2luZG93Q29udHJv
bGxlciB1cGRhdGVQcm92aXNpb25hbFVSTEZvckZyYW1lOl0pOgorICAgICAgICAoLVtXSzJCcm93
c2VyV2luZG93Q29udHJvbGxlciBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lOl0pOgor
ICAgICAgICAoLVtXSzJCcm93c2VyV2luZG93Q29udHJvbGxlciBkaWRSZWNlaXZlU2VydmVyUmVk
aXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZTpdKToKKyAgICAgICAgKC1bV0syQnJvd3Nl
cldpbmRvd0NvbnRyb2xsZXIgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJvckZvckZyYW1l
Ol0pOgorICAgICAgICAoLVtXSzJCcm93c2VyV2luZG93Q29udHJvbGxlciBkaWRGYWlsTG9hZFdp
dGhFcnJvckZvckZyYW1lOl0pOgorICAgICAgICAoLVtXSzJCcm93c2VyV2luZG93Q29udHJvbGxl
ciBkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWU6XSk6CisgICAgICAgICgtW1dLMkJy
b3dzZXJXaW5kb3dDb250cm9sbGVyIGRpZENvbW1pdExvYWRGb3JGcmFtZTpdKToKKyAgICAgICAg
KC1bV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgbG9hZFVSTFN0cmluZzpdKToKKyAgICAgICAg
KC1bV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgcGVyZm9ybUZpbmRQYW5lbEFjdGlvbjpdKToK
KyAgICAgICAgKC1bV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgZmluZDpdKToKKwogMjAxMi0x
MC0wNSAgWmFuIERvYmVyc2VrICA8emFuZG9iZXJzZWtAZ21haWwuY29tPgogCiAgICAgICAgIFtH
dGtdIGZhc3QveHNsL3hzbHQtbWlzc2luZy1uYW1lc3BhY2UtaW4teHNsdC54bWwgaXMgZmFpbGlu
ZyBvbiB0aGUgNjQtYml0IERlYnVnIGJ1aWxkZXIKZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93
c2VyL01pbmlCcm93c2VyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9NaW5pQnJv
d3Nlci9NaW5pQnJvd3Nlci54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDBlMGNjNTAy
ZTFhZGI3M2YyODRhZjA4NThkNmNkOGYxOGY1YjBjZjEuLjY4ZGFkYjUxZDc4M2VmODdhMmZlYjlk
MTgxMzkwMGNhNTBlNTI0N2MgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2VyL01pbmlCcm93
c2VyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvTWluaUJyb3dzZXIvTWlu
aUJyb3dzZXIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtOSwxMiArOSwxNCBAQAogLyog
QmVnaW4gUEJYQnVpbGRGaWxlIHNlY3Rpb24gKi8KIAkJMEY3RUI2RTMxMzQxMTNDMzAwRjREODY1
IC8qIFdlYktpdC5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRjdFQjZFMjEzNDExM0MzMDBGNEQ4NjUgLyogV2ViS2l0LmZyYW1ld29y
ayAqLzsgfTsKIAkJMEY3RUI4NzkxMzQxMTNGMjAwRjREODY1IC8qIFdlYktpdC5mcmFtZXdvcmsg
aW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjdFQjZF
MjEzNDExM0MzMDBGNEQ4NjUgLyogV2ViS2l0LmZyYW1ld29yayAqLzsgfTsKKwkJMEZFNjQzQTEx
NjFGQTg5NDAwNTlFM0ZGIC8qIEJyb3dzZXJXaW5kb3dDb250cm9sbGVyLm0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkU2NDNBMDE2MUZBODk0MDA1OUUz
RkYgLyogQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubSAqLzsgfTsKKwkJMEZFNjQzQTQxNjFGQUM2
NjAwNTlFM0ZGIC8qIFdLMUJyb3dzZXJXaW5kb3dDb250cm9sbGVyLm0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkU2NDNBMzE2MUZBQzY2MDA1OUUzRkYg
LyogV0sxQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubSAqLzsgfTsKIAkJMjU2QUMzREEwRjRCNkFD
MzAwQ0YzMzY5IC8qIEFwcERlbGVnYXRlLm0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyNTZBQzNEOTBGNEI2QUMzMDBDRjMzNjkgLyogQXBwRGVsZWdhdGUu
bSAqLzsgfTsKIAkJNTFFMjQ0RkExMUVGQ0UwNzAwODIyOEQxIC8qIE1CVG9vbGJhckl0ZW0ubSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRTI0NEY5MTFF
RkNFMDcwMDgyMjhEMSAvKiBNQlRvb2xiYXJJdGVtLm0gKi87IH07CiAJCThEMTEwNzJGMDQ4NkNF
QjgwMEU0NzA5MCAvKiBDb2NvYS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxMDU4QzdBMUZFQTU0RjAxMTFDQTJDQkIgLyogQ29jb2Eu
ZnJhbWV3b3JrICovOyB9OwogCQlCQzIwNTQ1RTExQzk2QzkyMDA4RjMzNzUgLyogQ29jb2EuZnJh
bWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MTA1OEM3QTFGRUE1NEYwMTExQ0EyQ0JCIC8qIENvY29hLmZyYW1ld29yayAqLzsgfTsKIAkJQkMz
Mjk0ODcxMTZBOTJFMjAwODYzNUQwIC8qIG1haW4ubSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMzI5NDg2MTE2QTkyRTIwMDg2MzVEMCAvKiBtYWluLm0g
Ki87IH07Ci0JCUJDMzI5NDk4MTE2QTk0MUIwMDg2MzVEMCAvKiBCcm93c2VyV2luZG93Q29udHJv
bGxlci5tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMz
Mjk0OTcxMTZBOTQxQjAwODYzNUQwIC8qIEJyb3dzZXJXaW5kb3dDb250cm9sbGVyLm0gKi87IH07
CisJCUJDMzI5NDk4MTE2QTk0MUIwMDg2MzVEMCAvKiBXSzJCcm93c2VyV2luZG93Q29udHJvbGxl
ci5tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMzMjk0
OTcxMTZBOTQxQjAwODYzNUQwIC8qIFdLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyLm0gKi87IH07
CiAJCUJDNzJCODk1MTFFNTdFMDcwMDFFQjRFQSAvKiBNYWluTWVudS54aWIgaW4gUmVzb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEREQ1ODE1MERBMUQwQTMwMEIz
MjAyOSAvKiBNYWluTWVudS54aWIgKi87IH07CiAJCUJDNzJCODk2MTFFNTdFMEYwMDFFQjRFQSAv
KiBCcm93c2VyV2luZG93LnhpYiBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkMzMjk0QTIxMTZBOTg1MjAwODYzNUQwIC8qIEJyb3dzZXJXaW5kb3cueGli
ICovOyB9OwogCQlCQzhGQjVBODExNkFBMUZFMDA4MEQ0MTMgLyogV2ViS2l0Mi5mcmFtZXdvcmsg
aW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzhGQjVB
NzExNkFBMUZFMDA4MEQ0MTMgLyogV2ViS2l0Mi5mcmFtZXdvcmsgKi87IH07CkBAIC00OSw2ICs1
MSwxMCBAQAogCiAvKiBCZWdpbiBQQlhGaWxlUmVmZXJlbmNlIHNlY3Rpb24gKi8KIAkJMEY3RUI2
RTIxMzQxMTNDMzAwRjREODY1IC8qIFdlYktpdC5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgcGF0aCA9
IFdlYktpdC5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJ
CTBGRTY0MzlGMTYxRkE4OTQwMDU5RTNGRiAvKiBCcm93c2VyV2luZG93Q29udHJvbGxlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBCcm93c2VyV2luZG93Q29udHJvbGxlci5o
OyBwYXRoID0gbWFjL0Jyb3dzZXJXaW5kb3dDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTBGRTY0M0EwMTYxRkE4OTQwMDU5RTNGRiAvKiBCcm93c2VyV2luZG93Q29u
dHJvbGxlci5tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLm9iamM7IG5hbWUgPSBCcm93c2VyV2lu
ZG93Q29udHJvbGxlci5tOyBwYXRoID0gbWFjL0Jyb3dzZXJXaW5kb3dDb250cm9sbGVyLm07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGRTY0M0EyMTYxRkFDNjYwMDU5RTNGRiAvKiBX
SzFCcm93c2VyV2luZG93Q29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBXSzFCcm93c2VyV2luZG93Q29udHJvbGxlci5oOyBwYXRoID0gbWFjL1dLMUJyb3dzZXJX
aW5kb3dDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGRTY0M0Ez
MTYxRkFDNjYwMDU5RTNGRiAvKiBXSzFCcm93c2VyV2luZG93Q29udHJvbGxlci5tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLm9iamM7IG5hbWUgPSBXSzFCcm93c2VyV2luZG93Q29udHJvbGxlci5t
OyBwYXRoID0gbWFjL1dLMUJyb3dzZXJXaW5kb3dDb250cm9sbGVyLm07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTEwNThDN0ExRkVBNTRGMDExMUNBMkNCQiAvKiBDb2NvYS5mcmFtZXdv
cmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFw
cGVyLmZyYW1ld29yazsgbmFtZSA9IENvY29hLmZyYW1ld29yazsgcGF0aCA9IC9TeXN0ZW0vTGli
cmFyeS9GcmFtZXdvcmtzL0NvY29hLmZyYW1ld29yazsgc291cmNlVHJlZSA9ICI8YWJzb2x1dGU+
IjsgfTsKIAkJMURERDU4MTUwREExRDBBMzAwQjMyMDI5IC8qIE1haW5NZW51LnhpYiAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGUueGliOyBuYW1l
ID0gTWFpbk1lbnUueGliOyBwYXRoID0gbWFjL01haW5NZW51LnhpYjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMjU2QUMzRDgwRjRCNkFDMzAwQ0YzMzY5IC8qIEFwcERlbGVnYXRlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEFwcERlbGVnYXRlLmg7IHBhdGggPSBt
YWMvQXBwRGVsZWdhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTYwLDggKzY2
LDggQEAKIAkJNTFFMjQ0RjkxMUVGQ0UwNzAwODIyOEQxIC8qIE1CVG9vbGJhckl0ZW0ubSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5vYmpjOyBwYXRoID0gTUJUb29sYmFySXRlbS5tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk4RDExMDczMjA0ODZDRUI4MDBFNDcwOTAgLyogTWluaUJy
b3dzZXIuYXBwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUg
PSB3cmFwcGVyLmFwcGxpY2F0aW9uOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSBNaW5pQnJv
d3Nlci5hcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCUJDMzI5NDg2
MTE2QTkyRTIwMDg2MzVEMCAvKiBtYWluLm0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMub2JqYzsg
bmFtZSA9IG1haW4ubTsgcGF0aCA9IG1hYy9tYWluLm07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCUJDMzI5NDk2MTE2QTk0MUIwMDg2MzVEMCAvKiBCcm93c2VyV2luZG93Q29udHJvbGxl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBCcm93c2VyV2luZG93Q29udHJv
bGxlci5oOyBwYXRoID0gbWFjL0Jyb3dzZXJXaW5kb3dDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCUJDMzI5NDk3MTE2QTk0MUIwMDg2MzVEMCAvKiBCcm93c2VyV2lu
ZG93Q29udHJvbGxlci5tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLm9iamM7IG5hbWUgPSBCcm93
c2VyV2luZG93Q29udHJvbGxlci5tOyBwYXRoID0gbWFjL0Jyb3dzZXJXaW5kb3dDb250cm9sbGVy
Lm07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDMzI5NDk2MTE2QTk0MUIwMDg2MzVE
MCAvKiBXSzJCcm93c2VyV2luZG93Q29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBXSzJCcm93c2VyV2luZG93Q29udHJvbGxlci5oOyBwYXRoID0gbWFjL1dLMkJy
b3dzZXJXaW5kb3dDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJD
MzI5NDk3MTE2QTk0MUIwMDg2MzVEMCAvKiBXSzJCcm93c2VyV2luZG93Q29udHJvbGxlci5tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLm9iamM7IG5hbWUgPSBXSzJCcm93c2VyV2luZG93Q29udHJv
bGxlci5tOyBwYXRoID0gbWFjL1dLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyLm07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMzI5NEEyMTE2QTk4NTIwMDg2MzVEMCAvKiBCcm93c2Vy
V2luZG93LnhpYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IGZpbGUueGliOyBuYW1lID0gQnJvd3NlcldpbmRvdy54aWI7IHBhdGggPSBtYWMvQnJvd3Nl
cldpbmRvdy54aWI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNzJCODk3MTFFNTdF
NkUwMDFFQjRFQSAvKiBJbmZvLnBsaXN0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5wbGlzdC54bWw7IHBhdGgg
PSBJbmZvLnBsaXN0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzcyQjg5QTExRTU3
RThBMDAxRUI0RUEgLyogSW5mby5wbGlzdCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQucGxpc3QueG1sOyBuYW1l
ID0gSW5mby5wbGlzdDsgcGF0aCA9IG1hYy9JbmZvLnBsaXN0OyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTA1LDggKzExMSwxMiBAQAogCQkJCUJDMzI5NDg2MTE2QTkyRTIwMDg2MzVE
MCAvKiBtYWluLm0gKi8sCiAJCQkJMjU2QUMzRDgwRjRCNkFDMzAwQ0YzMzY5IC8qIEFwcERlbGVn
YXRlLmggKi8sCiAJCQkJMjU2QUMzRDkwRjRCNkFDMzAwQ0YzMzY5IC8qIEFwcERlbGVnYXRlLm0g
Ki8sCi0JCQkJQkMzMjk0OTYxMTZBOTQxQjAwODYzNUQwIC8qIEJyb3dzZXJXaW5kb3dDb250cm9s
bGVyLmggKi8sCi0JCQkJQkMzMjk0OTcxMTZBOTQxQjAwODYzNUQwIC8qIEJyb3dzZXJXaW5kb3dD
b250cm9sbGVyLm0gKi8sCisJCQkJMEZFNjQzOUYxNjFGQTg5NDAwNTlFM0ZGIC8qIEJyb3dzZXJX
aW5kb3dDb250cm9sbGVyLmggKi8sCisJCQkJMEZFNjQzQTAxNjFGQTg5NDAwNTlFM0ZGIC8qIEJy
b3dzZXJXaW5kb3dDb250cm9sbGVyLm0gKi8sCisJCQkJMEZFNjQzQTIxNjFGQUM2NjAwNTlFM0ZG
IC8qIFdLMUJyb3dzZXJXaW5kb3dDb250cm9sbGVyLmggKi8sCisJCQkJMEZFNjQzQTMxNjFGQUM2
NjAwNTlFM0ZGIC8qIFdLMUJyb3dzZXJXaW5kb3dDb250cm9sbGVyLm0gKi8sCisJCQkJQkMzMjk0
OTYxMTZBOTQxQjAwODYzNUQwIC8qIFdLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyLmggKi8sCisJ
CQkJQkMzMjk0OTcxMTZBOTQxQjAwODYzNUQwIC8qIFdLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVy
Lm0gKi8sCiAJCQkJNTFFMjQ0RjgxMUVGQ0UwNzAwODIyOEQxIC8qIE1CVG9vbGJhckl0ZW0uaCAq
LywKIAkJCQk1MUUyNDRGOTExRUZDRTA3MDA4MjI4RDEgLyogTUJUb29sYmFySXRlbS5tICovLAog
CQkJKTsKQEAgLTI4NSw4ICsyOTUsMTAgQEAKIAkJCWZpbGVzID0gKAogCQkJCTI1NkFDM0RBMEY0
QjZBQzMwMENGMzM2OSAvKiBBcHBEZWxlZ2F0ZS5tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMzMjk0
ODcxMTZBOTJFMjAwODYzNUQwIC8qIG1haW4ubSBpbiBTb3VyY2VzICovLAotCQkJCUJDMzI5NDk4
MTE2QTk0MUIwMDg2MzVEMCAvKiBCcm93c2VyV2luZG93Q29udHJvbGxlci5tIGluIFNvdXJjZXMg
Ki8sCisJCQkJQkMzMjk0OTgxMTZBOTQxQjAwODYzNUQwIC8qIFdLMkJyb3dzZXJXaW5kb3dDb250
cm9sbGVyLm0gaW4gU291cmNlcyAqLywKIAkJCQk1MUUyNDRGQTExRUZDRTA3MDA4MjI4RDEgLyog
TUJUb29sYmFySXRlbS5tIGluIFNvdXJjZXMgKi8sCisJCQkJMEZFNjQzQTExNjFGQTg5NDAwNTlF
M0ZGIC8qIEJyb3dzZXJXaW5kb3dDb250cm9sbGVyLm0gaW4gU291cmNlcyAqLywKKwkJCQkwRkU2
NDNBNDE2MUZBQzY2MDA1OUUzRkYgLyogV0sxQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubSBpbiBT
b3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Npbmcg
PSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvbWFjL0FwcERlbGVnYXRl
Lm0gYi9Ub29scy9NaW5pQnJvd3Nlci9tYWMvQXBwRGVsZWdhdGUubQppbmRleCAyODU3MzYxNzUy
ZDI0YzIwMmY2NTFmMzI0MDk0YjczMDQ2YTRhNWZhLi4zYmRlM2QxZjUyNzgzYTU1NWVkOGM1YTgx
YzMxY2JmYWNkM2NhYzUyIDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9tYWMvQXBwRGVs
ZWdhdGUubQorKysgYi9Ub29scy9NaW5pQnJvd3Nlci9tYWMvQXBwRGVsZWdhdGUubQpAQCAtMjUs
NyArMjUsOCBAQAogCiAjaW1wb3J0ICJBcHBEZWxlZ2F0ZS5oIgogCi0jaW1wb3J0ICJCcm93c2Vy
V2luZG93Q29udHJvbGxlci5oIgorI2ltcG9ydCAiV0sxQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIu
aCIKKyNpbXBvcnQgIldLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyLmgiCiAKICNpbXBvcnQgPFdl
YktpdDIvV0tDb250ZXh0UHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0Mi9XS1N0cmluZ0NGLmg+
CkBAIC0zMyw2ICszNCwxMSBAQAogCiBzdGF0aWMgTlNTdHJpbmcgKmRlZmF1bHRVUkwgPSBAImh0
dHA6Ly93d3cud2Via2l0Lm9yZy8iOwogCitlbnVtIHsKKyAgICBXZWJLaXQxTmV3V2luZG93VGFn
ID0gMSwKKyAgICBXZWJLaXQyTmV3V2luZG93VGFnID0gMgorfTsKKwogQGltcGxlbWVudGF0aW9u
IEJyb3dzZXJBcHBEZWxlZ2F0ZQogCiB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVk
QnVuZGxlKFdLQ29udGV4dFJlZiBjb250ZXh0LCBXS1N0cmluZ1JlZiBtZXNzYWdlTmFtZSwgV0tU
eXBlUmVmIG1lc3NhZ2VCb2R5LCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQpAQCAtMTUyLDcgKzE1
OCwxNiBAQCAtIChpZClpbml0CiAKIC0gKElCQWN0aW9uKW5ld1dpbmRvdzooaWQpc2VuZGVyCiB7
Ci0gICAgQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgKmNvbnRyb2xsZXIgPSBbW0Jyb3dzZXJXaW5k
b3dDb250cm9sbGVyIGFsbG9jXSBpbml0V2l0aENvbnRleHQ6X3Byb2Nlc3NDb250ZXh0IHBhZ2VH
cm91cDpfcGFnZUdyb3VwXTsKKyAgICBCcm93c2VyV2luZG93Q29udHJvbGxlciAqY29udHJvbGxl
ciA9IG5pbDsKKyAgICAKKyAgICBpZiAoIVtzZW5kZXIgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxl
Y3Rvcih0YWcpXSB8fCBbc2VuZGVyIHRhZ10gPT0gV2ViS2l0MU5ld1dpbmRvd1RhZykKKyAgICAg
ICAgY29udHJvbGxlciA9IFtbV0sxQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgYWxsb2NdIGluaXRX
aXRoV2luZG93TmliTmFtZTpAIkJyb3dzZXJXaW5kb3ciXTsKKyAgICBlbHNlIGlmIChbc2VuZGVy
IHRhZ10gPT0gV2ViS2l0Mk5ld1dpbmRvd1RhZykKKyAgICAgICAgY29udHJvbGxlciA9IFtbV0sy
QnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgYWxsb2NdIGluaXRXaXRoQ29udGV4dDpfcHJvY2Vzc0Nv
bnRleHQgcGFnZUdyb3VwOl9wYWdlR3JvdXBdOworCisgICAgaWYgKCFjb250cm9sbGVyKQorICAg
ICAgICByZXR1cm47CisKICAgICBbW2NvbnRyb2xsZXIgd2luZG93XSBtYWtlS2V5QW5kT3JkZXJG
cm9udDpzZW5kZXJdOwogICAgIFtfYnJvd3NlcldpbmRvd3MgYWRkT2JqZWN0Oltjb250cm9sbGVy
IHdpbmRvd11dOwogICAgIApAQCAtMjE3LDcgKzIzMiw3IEBAIC0gKHZvaWQpb3BlblBhbmVsRGlk
RW5kOihOU09wZW5QYW5lbCAqKXNoZWV0IHJldHVybkNvZGU6KGludClyZXR1cm5Db2RlIGNvbnRl
eHRJCiAKICAgICBCcm93c2VyV2luZG93Q29udHJvbGxlciAqY29udHJvbGxlciA9IFtzZWxmIGZy
b250bW9zdEJyb3dzZXJXaW5kb3dDb250cm9sbGVyXTsKICAgICBpZiAoIWNvbnRyb2xsZXIpIHsK
LSAgICAgICAgY29udHJvbGxlciA9IFtbQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgYWxsb2NdIGlu
aXRXaXRoQ29udGV4dDpfcHJvY2Vzc0NvbnRleHQgcGFnZUdyb3VwOl9wYWdlR3JvdXBdOworICAg
ICAgICBjb250cm9sbGVyID0gW1tXSzJCcm93c2VyV2luZG93Q29udHJvbGxlciBhbGxvY10gaW5p
dFdpdGhDb250ZXh0Ol9wcm9jZXNzQ29udGV4dCBwYWdlR3JvdXA6X3BhZ2VHcm91cF07IC8vIEZJ
WE1FOiBhZGQgYSB3YXkgdG8gb3BlbiBpbiBXSzEgYWxzby4KICAgICAgICAgW1tjb250cm9sbGVy
IHdpbmRvd10gbWFrZUtleUFuZE9yZGVyRnJvbnQ6c2VsZl07CiAgICAgfQogICAgIApkaWZmIC0t
Z2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvbWFjL0Jyb3dzZXJXaW5kb3dDb250cm9sbGVyLmggYi9U
b29scy9NaW5pQnJvd3Nlci9tYWMvQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIuaAppbmRleCA4NGM5
ZjBhZmU5NWU4Y2FlMmUwNzFkMzJmMThlMWE2ZjQyZGZlYmNlLi43ZWU4OTE5N2I4MjhiM2RmMzll
MDNjM2QwZWYwYmJkZGQxODE0YTg3IDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9tYWMv
QnJvd3NlcldpbmRvd0NvbnRyb2xsZXIuaAorKysgYi9Ub29scy9NaW5pQnJvd3Nlci9tYWMvQnJv
d3NlcldpbmRvd0NvbnRyb2xsZXIuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMjMsMjIgKzIzLDEwIEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCiAgKi8KIAotQGludGVyZmFjZSBCcm93c2VyV2luZG93Q29udHJvbGxlciA6
IE5TV2luZG93Q29udHJvbGxlciB7Ci0gICAgSUJPdXRsZXQgTlNQcm9ncmVzc0luZGljYXRvciAq
cHJvZ3Jlc3NJbmRpY2F0b3I7Ci0gICAgSUJPdXRsZXQgTlNCdXR0b24gKnJlbG9hZEJ1dHRvbjsK
LSAgICBJQk91dGxldCBOU0J1dHRvbiAqYmFja0J1dHRvbjsKLSAgICBJQk91dGxldCBOU0J1dHRv
biAqZm9yd2FyZEJ1dHRvbjsKLSAgICBJQk91dGxldCBOU1Rvb2xiYXIgKnRvb2xiYXI7Ci0gICAg
SUJPdXRsZXQgTlNUZXh0RmllbGQgKnVybFRleHQ7Ci0gICAgSUJPdXRsZXQgTlNWaWV3ICpjb250
YWluZXJWaWV3OwotICAgIAotICAgIElCT3V0bGV0IE5TV2luZG93ICpmaW5kUGFuZWxXaW5kb3c7
Ci0gICAgCi0gICAgV0tDb250ZXh0UmVmIF9jb250ZXh0OwotICAgIFdLUGFnZUdyb3VwUmVmIF9w
YWdlR3JvdXA7Ci0gICAgV0tWaWV3ICpfd2ViVmlldzsKLSAgICBCT09MIF96b29tVGV4dE9ubHk7
Ci19CisjaW1wb3J0IDxDb2NvYS9Db2NvYS5oPgorCitAcHJvdG9jb2wgQnJvd3NlckNvbnRyb2xs
ZXIKKwogLSAoSUJBY3Rpb24pZmV0Y2g6KGlkKXNlbmRlcjsKIC0gKElCQWN0aW9uKXJlbG9hZDoo
aWQpc2VuZGVyOwogLSAoSUJBY3Rpb24pZm9yY2VSZXBhaW50OihpZClzZW5kZXI7CkBAIC00OCwx
MCArMzYsNiBAQAogLSAoSUJBY3Rpb24pc2hvd0hpZGVXZWJWaWV3OihpZClzZW5kZXI7CiAtIChJ
QkFjdGlvbilyZW1vdmVSZWluc2VydFdlYlZpZXc6KGlkKXNlbmRlcjsKIAotLSAoaWQpaW5pdFdp
dGhDb250ZXh0OihXS0NvbnRleHRSZWYpY29udGV4dCBwYWdlR3JvdXA6KFdLUGFnZUdyb3VwUmVm
KXBhZ2VHcm91cDsKLS0gKHZvaWQpbG9hZFVSTFN0cmluZzooTlNTdHJpbmcgKil1cmxTdHJpbmc7
Ci0tICh2b2lkKWFwcGxpY2F0aW9uVGVybWluYXRpbmc7Ci0KIC0gKElCQWN0aW9uKXpvb21Jbjoo
aWQpc2VuZGVyOwogLSAoSUJBY3Rpb24pem9vbU91dDooaWQpc2VuZGVyOwogLSAoSUJBY3Rpb24p
cmVzZXRab29tOihpZClzZW5kZXI7CkBAIC02NywzICs1MSwyNyBAQAogLSAoSUJBY3Rpb24pZmlu
ZDooaWQpc2VuZGVyOwogCiBAZW5kCisKK0BpbnRlcmZhY2UgQnJvd3NlcldpbmRvd0NvbnRyb2xs
ZXIgOiBOU1dpbmRvd0NvbnRyb2xsZXIgeworICAgIElCT3V0bGV0IE5TUHJvZ3Jlc3NJbmRpY2F0
b3IgKnByb2dyZXNzSW5kaWNhdG9yOworICAgIElCT3V0bGV0IE5TQnV0dG9uICpyZWxvYWRCdXR0
b247CisgICAgSUJPdXRsZXQgTlNCdXR0b24gKmJhY2tCdXR0b247CisgICAgSUJPdXRsZXQgTlNC
dXR0b24gKmZvcndhcmRCdXR0b247CisgICAgSUJPdXRsZXQgTlNUb29sYmFyICp0b29sYmFyOwor
ICAgIElCT3V0bGV0IE5TVGV4dEZpZWxkICp1cmxUZXh0OworICAgIElCT3V0bGV0IE5TVmlldyAq
Y29udGFpbmVyVmlldzsKKyAgICAKKyAgICBJQk91dGxldCBOU1dpbmRvdyAqZmluZFBhbmVsV2lu
ZG93OworICAgIAorICAgIEJPT0wgX3pvb21UZXh0T25seTsKK30KKworLSAodm9pZClsb2FkVVJM
U3RyaW5nOihOU1N0cmluZyAqKXVybFN0cmluZzsKKy0gKE5TU3RyaW5nICopYWRkUHJvdG9jb2xJ
Zk5lY2Vzc2FyeTooTlNTdHJpbmcgKilhZGRyZXNzOworCistICh2b2lkKWFwcGxpY2F0aW9uVGVy
bWluYXRpbmc7CisKKy0gKElCQWN0aW9uKW9wZW5Mb2NhdGlvbjooaWQpc2VuZGVyOworCitAZW5k
CisKZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL21hYy9Ccm93c2VyV2luZG93Q29udHJv
bGxlci5tIGIvVG9vbHMvTWluaUJyb3dzZXIvbWFjL0Jyb3dzZXJXaW5kb3dDb250cm9sbGVyLm0K
aW5kZXggMGFkYjdlMmQyMjJlYWNmMmY2YmIwYzQwOWQwMTY2ZmNjOTY4N2IzMi4uMWNjMzc2Zjgx
MWUwZTIzYWRlYzFkZDFiYTUyZGY0ODg0MWQzMWYyYiAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJy
b3dzZXIvbWFjL0Jyb3dzZXJXaW5kb3dDb250cm9sbGVyLm0KKysrIGIvVG9vbHMvTWluaUJyb3dz
ZXIvbWFjL0Jyb3dzZXJXaW5kb3dDb250cm9sbGVyLm0KQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI1LDc3OSArMjUsNDggQEAKIAogI2ltcG9ydCAi
QnJvd3NlcldpbmRvd0NvbnRyb2xsZXIuaCIKIAotI2ltcG9ydCAiQXBwRGVsZWdhdGUuaCIKLSNp
bXBvcnQgPFdlYktpdDIvV0tQYWdlUHJpdmF0ZS5oPgotI2ltcG9ydCA8V2ViS2l0Mi9XS1N0cmlu
Z0NGLmg+Ci0jaW1wb3J0IDxXZWJLaXQyL1dLVVJMQ0YuaD4KLSNpbXBvcnQgPFdlYktpdDIvV0tW
aWV3UHJpdmF0ZS5oPgotCiBAaW50ZXJmYWNlIEJyb3dzZXJXaW5kb3dDb250cm9sbGVyICgpCi0t
ICh2b2lkKWRpZFN0YXJ0UHJvZ3Jlc3M7Ci0tICh2b2lkKWRpZENoYW5nZVByb2dyZXNzOihkb3Vi
bGUpdmFsdWU7Ci0tICh2b2lkKWRpZEZpbmlzaFByb2dyZXNzOwotLSAodm9pZClkaWRTdGFydFBy
b3Zpc2lvbmFsTG9hZEZvckZyYW1lOihXS0ZyYW1lUmVmKWZyYW1lOwotLSAodm9pZClkaWRDb21t
aXRMb2FkRm9yRnJhbWU6KFdLRnJhbWVSZWYpZnJhbWU7Ci0tICh2b2lkKWRpZFJlY2VpdmVTZXJ2
ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lOihXS0ZyYW1lUmVmKWZyYW1lOwot
LSAodm9pZClkaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aEVycm9yRm9yRnJhbWU6KFdLRnJhbWVS
ZWYpZnJhbWU7Ci0tICh2b2lkKWRpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWU6KFdLRnJhbWVS
ZWYpZnJhbWU7Ci0tICh2b2lkKWRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZTooV0tG
cmFtZVJlZilmcmFtZTsKLS0gKEJPT0wpaXNQYWdpbmF0ZWQ7CisKIEBlbmQKIAogQGltcGxlbWVu
dGF0aW9uIEJyb3dzZXJXaW5kb3dDb250cm9sbGVyCiAKLS0gKGlkKWluaXRXaXRoQ29udGV4dDoo
V0tDb250ZXh0UmVmKWNvbnRleHQgcGFnZUdyb3VwOihXS1BhZ2VHcm91cFJlZilwYWdlR3JvdXAK
Ky0gKGlkKWluaXRXaXRoV2luZG93OihOU1dpbmRvdyAqKXdpbmRvdwogewotICAgIGlmICgoc2Vs
ZiA9IFtzdXBlciBpbml0V2l0aFdpbmRvd05pYk5hbWU6QCJCcm93c2VyV2luZG93Il0pKSB7Ci0g
ICAgICAgIF9jb250ZXh0ID0gV0tSZXRhaW4oY29udGV4dCk7Ci0gICAgICAgIF9wYWdlR3JvdXAg
PSBXS1JldGFpbihwYWdlR3JvdXApOwotICAgICAgICBfem9vbVRleHRPbmx5ID0gTk87CisgICAg
c2VsZiA9IFtzdXBlciBpbml0V2l0aFdpbmRvdzp3aW5kb3ddOworICAgIGlmIChzZWxmKSB7Cisg
ICAgICAgIC8vIEluaXRpYWxpemF0aW9uIGNvZGUgaGVyZS4KICAgICB9CiAgICAgCiAgICAgcmV0
dXJuIHNlbGY7CiB9CiAKLS0gKHZvaWQpZGVhbGxvYwotewotICAgIFdLUmVsZWFzZShfY29udGV4
dCk7Ci0gICAgV0tSZWxlYXNlKF9wYWdlR3JvdXApOwotICAgIFtfd2ViVmlldyByZWxlYXNlXTsK
LQotICAgIFtzdXBlciBkZWFsbG9jXTsKLX0KLQotLSAoSUJBY3Rpb24pZmV0Y2g6KGlkKXNlbmRl
cgotewotICAgIENGVVJMUmVmIGNmVVJMID0gQ0ZVUkxDcmVhdGVXaXRoU3RyaW5nKDAsIChDRlN0
cmluZ1JlZilbdXJsVGV4dCBzdHJpbmdWYWx1ZV0sIDApOwotICAgIGlmICghY2ZVUkwpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIFdLVVJMUmVmIHVybCA9IFdLVVJMQ3JlYXRlV2l0aENGVVJMKGNm
VVJMKTsKLSAgICBDRlJlbGVhc2UoY2ZVUkwpOwotCi0gICAgV0tQYWdlTG9hZFVSTChfd2ViVmll
dy5wYWdlUmVmLCB1cmwpOwotICAgIFdLUmVsZWFzZSh1cmwpOwotfQotCi0tIChJQkFjdGlvbilz
aG93SGlkZVdlYlZpZXc6KGlkKXNlbmRlcgotewotICAgIEJPT0wgaGlkZGVuID0gIVtfd2ViVmll
dyBpc0hpZGRlbl07Ci0gICAgCi0gICAgW193ZWJWaWV3IHNldEhpZGRlbjpoaWRkZW5dOwotfQot
Ci0tIChJQkFjdGlvbilyZW1vdmVSZWluc2VydFdlYlZpZXc6KGlkKXNlbmRlcgotewotICAgIGlm
IChbX3dlYlZpZXcgd2luZG93XSkgewotICAgICAgICBbX3dlYlZpZXcgcmV0YWluXTsKLSAgICAg
ICAgW193ZWJWaWV3IHJlbW92ZUZyb21TdXBlcnZpZXddOyAKLSAgICB9IGVsc2UgewotICAgICAg
ICBbY29udGFpbmVyVmlldyBhZGRTdWJ2aWV3Ol93ZWJWaWV3XTsKLSAgICAgICAgW193ZWJWaWV3
IHJlbGVhc2VdOwotICAgIH0KLX0KLQotLSAoQk9PTCl2YWxpZGF0ZU1lbnVJdGVtOihOU01lbnVJ
dGVtICopbWVudUl0ZW0KLXsKLSAgICBTRUwgYWN0aW9uID0gW21lbnVJdGVtIGFjdGlvbl07Ci0K
LSAgICBpZiAoYWN0aW9uID09IEBzZWxlY3Rvcih6b29tSW46KSkKLSAgICAgICAgcmV0dXJuIFtz
ZWxmIGNhblpvb21Jbl07Ci0gICAgaWYgKGFjdGlvbiA9PSBAc2VsZWN0b3Ioem9vbU91dDopKQot
ICAgICAgICByZXR1cm4gW3NlbGYgY2FuWm9vbU91dF07Ci0gICAgaWYgKGFjdGlvbiA9PSBAc2Vs
ZWN0b3IocmVzZXRab29tOikpCi0gICAgICAgIHJldHVybiBbc2VsZiBjYW5SZXNldFpvb21dOwot
Ci0gICAgaWYgKGFjdGlvbiA9PSBAc2VsZWN0b3Ioc2hvd0hpZGVXZWJWaWV3OikpCi0gICAgICAg
IFttZW51SXRlbSBzZXRUaXRsZTpbX3dlYlZpZXcgaXNIaWRkZW5dID8gQCJTaG93IFdlYiBWaWV3
IiA6IEAiSGlkZSBXZWIgVmlldyJdOwotICAgIGVsc2UgaWYgKGFjdGlvbiA9PSBAc2VsZWN0b3Io
cmVtb3ZlUmVpbnNlcnRXZWJWaWV3OikpCi0gICAgICAgIFttZW51SXRlbSBzZXRUaXRsZTpbX3dl
YlZpZXcgd2luZG93XSA/IEAiUmVtb3ZlIFdlYiBWaWV3IiA6IEAiSW5zZXJ0IFdlYiBWaWV3Il07
Ci0gICAgZWxzZSBpZiAoYWN0aW9uID09IEBzZWxlY3Rvcih0b2dnbGVab29tTW9kZTopKQotICAg
ICAgICBbbWVudUl0ZW0gc2V0U3RhdGU6X3pvb21UZXh0T25seSA/IE5TT25TdGF0ZSA6IE5TT2Zm
U3RhdGVdOwotICAgIGVsc2UgaWYgKFttZW51SXRlbSBhY3Rpb25dID09IEBzZWxlY3Rvcih0b2dn
bGVQYWdpbmF0aW9uTW9kZTopKQotICAgICAgICBbbWVudUl0ZW0gc2V0U3RhdGU6W3NlbGYgaXNQ
YWdpbmF0ZWRdID8gTlNPblN0YXRlIDogTlNPZmZTdGF0ZV07Ci0KLSAgICByZXR1cm4gWUVTOwot
fQotCi0tIChJQkFjdGlvbilyZWxvYWQ6KGlkKXNlbmRlcgotewotICAgIFdLUGFnZVJlbG9hZChf
d2ViVmlldy5wYWdlUmVmKTsKLX0KLQotLSAoSUJBY3Rpb24pZm9yY2VSZXBhaW50OihpZClzZW5k
ZXIKLXsKLSAgICBbX3dlYlZpZXcgc2V0TmVlZHNEaXNwbGF5OllFU107Ci19Ci0KLS0gKElCQWN0
aW9uKWdvQmFjazooaWQpc2VuZGVyCi17Ci0gICAgV0tQYWdlR29CYWNrKF93ZWJWaWV3LnBhZ2VS
ZWYpOwotfQotCi0tIChJQkFjdGlvbilnb0ZvcndhcmQ6KGlkKXNlbmRlcgotewotICAgIFdLUGFn
ZUdvRm9yd2FyZChfd2ViVmlldy5wYWdlUmVmKTsKLX0KLQotLSAoQk9PTCl2YWxpZGF0ZVVzZXJJ
bnRlcmZhY2VJdGVtOihpZCA8TlNWYWxpZGF0ZWRVc2VySW50ZXJmYWNlSXRlbT4paXRlbQorLSAo
dm9pZCl3aW5kb3dEaWRMb2FkCiB7Ci0gICAgU0VMIGFjdGlvbiA9IFtpdGVtIGFjdGlvbl07Ci0K
LSAgICBpZiAoYWN0aW9uID09IEBzZWxlY3Rvcihnb0JhY2s6KSkKLSAgICAgICAgcmV0dXJuIF93
ZWJWaWV3ICYmIFdLUGFnZUNhbkdvQmFjayhfd2ViVmlldy5wYWdlUmVmKTsKLSAgICAKLSAgICBp
ZiAoYWN0aW9uID09IEBzZWxlY3Rvcihnb0ZvcndhcmQ6KSkKLSAgICAgICAgcmV0dXJuIF93ZWJW
aWV3ICYmIFdLUGFnZUNhbkdvRm9yd2FyZChfd2ViVmlldy5wYWdlUmVmKTsKKyAgICBbc3VwZXIg
d2luZG93RGlkTG9hZF07CiAgICAgCi0gICAgcmV0dXJuIFlFUzsKLX0KLQotLSAodm9pZCl2YWxp
ZGF0ZVRvb2xiYXIKLXsKLSAgICBbdG9vbGJhciB2YWxpZGF0ZVZpc2libGVJdGVtc107Ci19Ci0K
LS0gKEJPT0wpd2luZG93U2hvdWxkQ2xvc2U6KGlkKXNlbmRlcgotewotICAgIExPRyhAIndpbmRv
d1Nob3VsZENsb3NlIik7Ci0gICAgQk9PTCBjYW5DbG9zZUltbWVkaWF0ZWx5ID0gV0tQYWdlVHJ5
Q2xvc2UoX3dlYlZpZXcucGFnZVJlZik7Ci0gICAgcmV0dXJuIGNhbkNsb3NlSW1tZWRpYXRlbHk7
Ci19Ci0KLS0gKHZvaWQpd2luZG93V2lsbENsb3NlOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNh
dGlvbgotewotICAgIFsoQnJvd3NlckFwcERlbGVnYXRlICopW05TQXBwIGRlbGVnYXRlXSBicm93
c2VyV2luZG93V2lsbENsb3NlOltzZWxmIHdpbmRvd11dOwotICAgIFtzZWxmIGF1dG9yZWxlYXNl
XTsKLX0KLQotLSAodm9pZClhcHBsaWNhdGlvblRlcm1pbmF0aW5nCi17Ci0gICAgLy8gRklYTUU6
IFdoeSBhcmUgd2UgYm90aGVyaW5nIHRvIGNsb3NlIHRoZSBwYWdlPyBUaGlzIGRvZXNuJ3QgZXZl
biBwcmV2ZW50IExFQUsgb3V0cHV0LgotICAgIFdLUGFnZUNsb3NlKF93ZWJWaWV3LnBhZ2VSZWYp
OwotfQotCi0jZGVmaW5lIERlZmF1bHRNaW5pbXVtWm9vbUZhY3RvciAoLjUpCi0jZGVmaW5lIERl
ZmF1bHRNYXhpbXVtWm9vbUZhY3RvciAoMy4wKQotI2RlZmluZSBEZWZhdWx0Wm9vbUZhY3RvclJh
dGlvICgxLjIpCi0KLS0gKGRvdWJsZSljdXJyZW50Wm9vbUZhY3RvcgotewotICAgIHJldHVybiBf
em9vbVRleHRPbmx5ID8gV0tQYWdlR2V0VGV4dFpvb21GYWN0b3IoX3dlYlZpZXcucGFnZVJlZikg
OiBXS1BhZ2VHZXRQYWdlWm9vbUZhY3Rvcihfd2ViVmlldy5wYWdlUmVmKTsKLX0KLQotLSAodm9p
ZClzZXRDdXJyZW50Wm9vbUZhY3RvcjooZG91YmxlKWZhY3RvcgotewotICAgIF96b29tVGV4dE9u
bHkgPyBXS1BhZ2VTZXRUZXh0Wm9vbUZhY3Rvcihfd2ViVmlldy5wYWdlUmVmLCBmYWN0b3IpIDog
V0tQYWdlU2V0UGFnZVpvb21GYWN0b3IoX3dlYlZpZXcucGFnZVJlZiwgZmFjdG9yKTsKLX0KLQot
LSAoQk9PTCljYW5ab29tSW4KLXsKLSAgICByZXR1cm4gW3NlbGYgY3VycmVudFpvb21GYWN0b3Jd
ICogRGVmYXVsdFpvb21GYWN0b3JSYXRpbyA8IERlZmF1bHRNYXhpbXVtWm9vbUZhY3RvcjsKLX0K
LQotLSAodm9pZCl6b29tSW46KGlkKXNlbmRlcgotewotICAgIGlmICghW3NlbGYgY2FuWm9vbUlu
XSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgZG91YmxlIGZhY3RvciA9IFtzZWxmIGN1cnJlbnRa
b29tRmFjdG9yXSAqIERlZmF1bHRab29tRmFjdG9yUmF0aW87Ci0gICAgW3NlbGYgc2V0Q3VycmVu
dFpvb21GYWN0b3I6ZmFjdG9yXTsKKyAgICAvLyBJbXBsZW1lbnQgdGhpcyBtZXRob2QgdG8gaGFu
ZGxlIGFueSBpbml0aWFsaXphdGlvbiBhZnRlciB5b3VyIHdpbmRvdyBjb250cm9sbGVyJ3Mgd2lu
ZG93IGhhcyBiZWVuIGxvYWRlZCBmcm9tIGl0cyBuaWIgZmlsZS4KIH0KIAotLSAoQk9PTCljYW5a
b29tT3V0Ci17Ci0gICAgcmV0dXJuIFtzZWxmIGN1cnJlbnRab29tRmFjdG9yXSAvIERlZmF1bHRa
b29tRmFjdG9yUmF0aW8gPiBEZWZhdWx0TWluaW11bVpvb21GYWN0b3I7Ci19Ci0KLS0gKHZvaWQp
em9vbU91dDooaWQpc2VuZGVyCi17Ci0gICAgaWYgKCFbc2VsZiBjYW5ab29tSW5dKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBkb3VibGUgZmFjdG9yID0gW3NlbGYgY3VycmVudFpvb21GYWN0b3Jd
IC8gRGVmYXVsdFpvb21GYWN0b3JSYXRpbzsKLSAgICBbc2VsZiBzZXRDdXJyZW50Wm9vbUZhY3Rv
cjpmYWN0b3JdOwotfQotCi0tIChCT09MKWNhblJlc2V0Wm9vbQotewotICAgIHJldHVybiBfem9v
bVRleHRPbmx5ID8gKFdLUGFnZUdldFRleHRab29tRmFjdG9yKF93ZWJWaWV3LnBhZ2VSZWYpICE9
IDEpIDogKFdLUGFnZUdldFBhZ2Vab29tRmFjdG9yKF93ZWJWaWV3LnBhZ2VSZWYpICE9IDEpOwot
fQotCi0tICh2b2lkKXJlc2V0Wm9vbTooaWQpc2VuZGVyCi17Ci0gICAgaWYgKCFbc2VsZiBjYW5S
ZXNldFpvb21dKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoX3pvb21UZXh0T25seSkKLSAg
ICAgICAgV0tQYWdlU2V0VGV4dFpvb21GYWN0b3IoX3dlYlZpZXcucGFnZVJlZiwgMSk7Ci0gICAg
ZWxzZQotICAgICAgICBXS1BhZ2VTZXRQYWdlWm9vbUZhY3Rvcihfd2ViVmlldy5wYWdlUmVmLCAx
KTsKLX0KLQotLSAoSUJBY3Rpb24pdG9nZ2xlWm9vbU1vZGU6KGlkKXNlbmRlcgotewotICAgIGlm
IChfem9vbVRleHRPbmx5KSB7Ci0gICAgICAgIF96b29tVGV4dE9ubHkgPSBOTzsKLSAgICAgICAg
ZG91YmxlIGN1cnJlbnRUZXh0Wm9vbSA9IFdLUGFnZUdldFRleHRab29tRmFjdG9yKF93ZWJWaWV3
LnBhZ2VSZWYpOwotICAgICAgICBXS1BhZ2VTZXRQYWdlQW5kVGV4dFpvb21GYWN0b3JzKF93ZWJW
aWV3LnBhZ2VSZWYsIGN1cnJlbnRUZXh0Wm9vbSwgMSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAg
X3pvb21UZXh0T25seSA9IFlFUzsKLSAgICAgICAgZG91YmxlIGN1cnJlbnRQYWdlWm9vbSA9IFdL
UGFnZUdldFBhZ2Vab29tRmFjdG9yKF93ZWJWaWV3LnBhZ2VSZWYpOwotICAgICAgICBXS1BhZ2VT
ZXRQYWdlQW5kVGV4dFpvb21GYWN0b3JzKF93ZWJWaWV3LnBhZ2VSZWYsIDEsIGN1cnJlbnRQYWdl
Wm9vbSk7Ci0gICAgfQotfQotCi0tIChCT09MKWlzUGFnaW5hdGVkCi17Ci0gICAgcmV0dXJuIFdL
UGFnZUdldFBhZ2luYXRpb25Nb2RlKF93ZWJWaWV3LnBhZ2VSZWYpICE9IGtXS1BhZ2luYXRpb25N
b2RlVW5wYWdpbmF0ZWQ7Ci19Ci0KLS0gKElCQWN0aW9uKXRvZ2dsZVBhZ2luYXRpb25Nb2RlOihp
ZClzZW5kZXIKLXsKLSAgICBpZiAoW3NlbGYgaXNQYWdpbmF0ZWRdKQotICAgICAgICBXS1BhZ2VT
ZXRQYWdpbmF0aW9uTW9kZShfd2ViVmlldy5wYWdlUmVmLCBrV0tQYWdpbmF0aW9uTW9kZVVucGFn
aW5hdGVkKTsKLSAgICBlbHNlIHsKLSAgICAgICAgV0tQYWdlU2V0UGFnaW5hdGlvbk1vZGUoX3dl
YlZpZXcucGFnZVJlZiwga1dLUGFnaW5hdGlvbk1vZGVMZWZ0VG9SaWdodCk7Ci0gICAgICAgIFdL
UGFnZVNldFBhZ2VMZW5ndGgoX3dlYlZpZXcucGFnZVJlZiwgX3dlYlZpZXcuYm91bmRzLnNpemUu
d2lkdGggLyAyKTsKLSAgICAgICAgV0tQYWdlU2V0R2FwQmV0d2VlblBhZ2VzKF93ZWJWaWV3LnBh
Z2VSZWYsIDEwKTsKLSAgICB9Ci19Ci0KLS0gKElCQWN0aW9uKWR1bXBTb3VyY2VUb0NvbnNvbGU6
KGlkKXNlbmRlcgotewotICAgIFdLUGFnZUdldFNvdXJjZUZvckZyYW1lX2IoX3dlYlZpZXcucGFn
ZVJlZiwgV0tQYWdlR2V0TWFpbkZyYW1lKF93ZWJWaWV3LnBhZ2VSZWYpLCBeKFdLU3RyaW5nUmVm
IHJlc3VsdCwgV0tFcnJvclJlZiBlcnJvcikgewotICAgICAgICBDRlN0cmluZ1JlZiBjZlJlc3Vs
dCA9IFdLU3RyaW5nQ29weUNGU3RyaW5nKDAsIHJlc3VsdCk7Ci0gICAgICAgIExPRyhAIk1haW4g
ZnJhbWUgc291cmNlXG4gXCIlQFwiIiwgKE5TU3RyaW5nICopY2ZSZXN1bHQpOwotICAgICAgICBD
RlJlbGVhc2UoY2ZSZXN1bHQpOwotICAgIH0pOwotfQotCi0vLyBNQVJLOiBMb2FkZXIgQ2xpZW50
IENhbGxiYWNrcwotCi1zdGF0aWMgdm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1l
KFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNv
bnN0IHZvaWQgKmNsaWVudEluZm8pCi17Ci0gICAgWyhCcm93c2VyV2luZG93Q29udHJvbGxlciAq
KWNsaWVudEluZm8gZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZTpmcmFtZV07Ci19Ci0K
LXN0YXRpYyB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZv
ckZyYW1lKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYgdXNlckRh
dGEsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCi17Ci0gICAgWyhCcm93c2VyV2luZG93Q29udHJv
bGxlciAqKWNsaWVudEluZm8gZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxM
b2FkRm9yRnJhbWU6ZnJhbWVdOwotfQotCi1zdGF0aWMgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxM
b2FkV2l0aEVycm9yRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdL
RXJyb3JSZWYgZXJyb3IsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5m
bykKLXsKLSAgICBbKEJyb3dzZXJXaW5kb3dDb250cm9sbGVyICopY2xpZW50SW5mbyBkaWRGYWls
UHJvdmlzaW9uYWxMb2FkV2l0aEVycm9yRm9yRnJhbWU6ZnJhbWVdOwotfQotCi1zdGF0aWMgdm9p
ZCBkaWRDb21taXRMb2FkRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUs
IFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKLXsKLSAgICBbKEJy
b3dzZXJXaW5kb3dDb250cm9sbGVyICopY2xpZW50SW5mbyBkaWRDb21taXRMb2FkRm9yRnJhbWU6
ZnJhbWVdOwotfQotCi1zdGF0aWMgdm9pZCBkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZShX
S1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25z
dCB2b2lkICpjbGllbnRJbmZvKQotewotICAgIExPRyhAImRpZEZpbmlzaERvY3VtZW50TG9hZEZv
ckZyYW1lIik7Ci19Ci0KLXN0YXRpYyB2b2lkIGRpZEZpbmlzaExvYWRGb3JGcmFtZShXS1BhZ2VS
ZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lk
ICpjbGllbnRJbmZvKQotewotICAgIExPRyhAImRpZEZpbmlzaExvYWRGb3JGcmFtZSIpOwotfQot
Ci1zdGF0aWMgdm9pZCBkaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lKFdLUGFnZVJlZiBwYWdl
LCBXS0ZyYW1lUmVmIGZyYW1lLCBXS0Vycm9yUmVmIGVycm9yLCBXS1R5cGVSZWYgdXNlckRhdGEs
IGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCi17Ci0gICAgWyhCcm93c2VyV2luZG93Q29udHJvbGxl
ciAqKWNsaWVudEluZm8gZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZTpmcmFtZV07Ci19Ci0K
LXN0YXRpYyB2b2lkIGRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZShXS1BhZ2VSZWYg
cGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSB0eXBl
LCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCi17Ci0gICAgWyhC
cm93c2VyV2luZG93Q29udHJvbGxlciAqKWNsaWVudEluZm8gZGlkU2FtZURvY3VtZW50TmF2aWdh
dGlvbkZvckZyYW1lOmZyYW1lXTsKLX0KLQotc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVRpdGxlRm9y
RnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIHRpdGxlLCBXS0ZyYW1lUmVmIGZyYW1l
LCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCi17Ci0gICAgQ0ZT
dHJpbmdSZWYgY2ZUaXRsZSA9IFdLU3RyaW5nQ29weUNGU3RyaW5nKDAsIHRpdGxlKTsKLSAgICBM
T0coQCJkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZSBcIiVAXCIiLCAoTlNTdHJpbmcgKiljZlRpdGxl
KTsKLSAgICBDRlJlbGVhc2UoY2ZUaXRsZSk7Ci19Ci0KLXN0YXRpYyB2b2lkIGRpZEZpcnN0TGF5
b3V0Rm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiB1
c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKLXsKLSAgICBMT0coQCJkaWRGaXJzdExh
eW91dEZvckZyYW1lIik7Ci19Ci0KLXN0YXRpYyB2b2lkIGRpZEZpcnN0VmlzdWFsbHlOb25FbXB0
eUxheW91dEZvckZyYW1lKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVS
ZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCi17Ci0gICAgTE9HKEAiZGlkRmly
c3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWUiKTsKLX0KLQotc3RhdGljIHZvaWQgZGlk
UmVtb3ZlRnJhbWVGcm9tSGllcmFyY2h5KFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1l
LCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCi17Ci0gICAgTE9H
KEAiZGlkUmVtb3ZlRnJhbWVGcm9tSGllcmFyY2h5Iik7Ci19Ci0KLXN0YXRpYyB2b2lkIGRpZERp
c3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBm
cmFtZSwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQotewotICAg
IExPRyhAImRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSIpOwotfQotCi1zdGF0aWMg
dm9pZCBkaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFt
ZVJlZiBmcmFtZSwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQot
ewotICAgIExPRyhAImRpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lIik7Ci19Ci0KLXN0YXRp
YyB2b2lkIGRpZERldGVjdFhTU0ZvckZyYW1lKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZy
YW1lLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pIAoteyAKLSAg
ICBMT0coQCJkaWREZXRlY3RYU1NGb3JGcmFtZSIpOyAKLX0KLSAKLXN0YXRpYyB2b2lkIGRpZFN0
YXJ0UHJvZ3Jlc3MoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCi17Ci0g
ICAgWyhCcm93c2VyV2luZG93Q29udHJvbGxlciAqKWNsaWVudEluZm8gZGlkU3RhcnRQcm9ncmVz
c107Ci19Ci0KLXN0YXRpYyB2b2lkIGRpZENoYW5nZVByb2dyZXNzKFdLUGFnZVJlZiBwYWdlLCBj
b25zdCB2b2lkICpjbGllbnRJbmZvKQotewotICAgIFsoQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIg
KiljbGllbnRJbmZvIGRpZENoYW5nZVByb2dyZXNzOldLUGFnZUdldEVzdGltYXRlZFByb2dyZXNz
KHBhZ2UpXTsKLX0KLQotc3RhdGljIHZvaWQgZGlkRmluaXNoUHJvZ3Jlc3MoV0tQYWdlUmVmIHBh
Z2UsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCi17Ci0gICAgWyhCcm93c2VyV2luZG93Q29udHJv
bGxlciAqKWNsaWVudEluZm8gZGlkRmluaXNoUHJvZ3Jlc3NdOwotfQotCi1zdGF0aWMgdm9pZCBk
aWRCZWNvbWVVbnJlc3BvbnNpdmUoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQgKmNsaWVudElu
Zm8pCi17Ci0gICAgTE9HKEAiZGlkQmVjb21lVW5yZXNwb25zaXZlIik7Ci19Ci0KLXN0YXRpYyB2
b2lkIGRpZEJlY29tZVJlc3BvbnNpdmUoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQgKmNsaWVu
dEluZm8pCi17Ci0gICAgTE9HKEAiZGlkQmVjb21lUmVzcG9uc2l2ZSIpOwotfQotCi1zdGF0aWMg
dm9pZCBwcm9jZXNzRGlkRXhpdChXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCAqY2xpZW50SW5m
bykKLXsKLSAgICBMT0coQCJwcm9jZXNzRGlkRXhpdCIpOwotfQotCi1zdGF0aWMgdm9pZCBkaWRD
aGFuZ2VCYWNrRm9yd2FyZExpc3QoV0tQYWdlUmVmIHBhZ2UsIFdLQmFja0ZvcndhcmRMaXN0SXRl
bVJlZiBhZGRlZEl0ZW0sIFdLQXJyYXlSZWYgcmVtb3ZlZEl0ZW1zLCBjb25zdCB2b2lkICpjbGll
bnRJbmZvKQotewotICAgIFsoQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgKiljbGllbnRJbmZvIHZh
bGlkYXRlVG9vbGJhcl07Ci19Ci0KLS8vIE1BUks6IFBvbGljeSBDbGllbnQgQ2FsbGJhY2tzCi0K
LXN0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oV0tQYWdlUmVmIHBh
Z2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLRnJhbWVOYXZpZ2F0aW9uVHlwZSBuYXZpZ2F0aW9uVHlw
ZSwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiBtb3VzZUJ1
dHRvbiwgV0tVUkxSZXF1ZXN0UmVmIHJlcXVlc3QsIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZiBs
aXN0ZW5lciwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQotewot
ICAgIExPRyhAImRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24iKTsKLSAgICBXS0ZyYW1l
UG9saWN5TGlzdGVuZXJVc2UobGlzdGVuZXIpOwotfQotCi1zdGF0aWMgdm9pZCBkZWNpZGVQb2xp
Y3lGb3JOZXdXaW5kb3dBY3Rpb24oV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdL
RnJhbWVOYXZpZ2F0aW9uVHlwZSBuYXZpZ2F0aW9uVHlwZSwgV0tFdmVudE1vZGlmaWVycyBtb2Rp
ZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiBtb3VzZUJ1dHRvbiwgV0tVUkxSZXF1ZXN0UmVmIHJl
cXVlc3QsIFdLU3RyaW5nUmVmIGZyYW1lTmFtZSwgV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmIGxp
c3RlbmVyLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCi17Ci0g
ICAgTE9HKEAiZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uIik7Ci0gICAgV0tGcmFtZVBv
bGljeUxpc3RlbmVyVXNlKGxpc3RlbmVyKTsKLX0KLQotc3RhdGljIHZvaWQgZGVjaWRlUG9saWN5
Rm9yUmVzcG9uc2UoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVVJMUmVzcG9u
c2VSZWYgcmVzcG9uc2UsIFdLVVJMUmVxdWVzdFJlZiByZXF1ZXN0LCBXS0ZyYW1lUG9saWN5TGlz
dGVuZXJSZWYgbGlzdGVuZXIsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50
SW5mbykKLXsKLSAgICBXS0ZyYW1lUG9saWN5TGlzdGVuZXJVc2UobGlzdGVuZXIpOwotfQotCi0v
LyBNQVJLOiBVSSBDbGllbnQgQ2FsbGJhY2tzCi0KLXN0YXRpYyBXS1BhZ2VSZWYgY3JlYXRlTmV3
UGFnZShXS1BhZ2VSZWYgcGFnZSwgV0tVUkxSZXF1ZXN0UmVmIHJlcXVlc3QsIFdLRGljdGlvbmFy
eVJlZiBmZWF0dXJlcywgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1
dHRvbiBidXR0b24sIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCi17Ci0gICAgTE9HKEAiY3JlYXRl
TmV3UGFnZSIpOwotICAgIEJyb3dzZXJXaW5kb3dDb250cm9sbGVyICpjb250cm9sbGVyID0gW1tC
cm93c2VyV2luZG93Q29udHJvbGxlciBhbGxvY10gaW5pdFdpdGhDb250ZXh0OldLUGFnZUdldENv
bnRleHQocGFnZSkgcGFnZUdyb3VwOldLUGFnZUdldFBhZ2VHcm91cChwYWdlKV07Ci0gICAgW2Nv
bnRyb2xsZXIgbG9hZFdpbmRvd107Ci0KLSAgICByZXR1cm4gV0tSZXRhaW4oY29udHJvbGxlci0+
X3dlYlZpZXcucGFnZVJlZik7Ci19Ci0KLXN0YXRpYyB2b2lkIHNob3dQYWdlKFdLUGFnZVJlZiBw
YWdlLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQotewotICAgIExPRyhAInNob3dQYWdlIik7Ci0g
ICAgW1soQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgKiljbGllbnRJbmZvIHdpbmRvd10gb3JkZXJG
cm9udDpuaWxdOwotfQotCi1zdGF0aWMgdm9pZCBjbG9zZVBhZ2UoV0tQYWdlUmVmIHBhZ2UsIGNv
bnN0IHZvaWQgKmNsaWVudEluZm8pCi17Ci0gICAgTE9HKEAiY2xvc2VQYWdlIik7Ci0gICAgV0tQ
YWdlQ2xvc2UocGFnZSk7Ci0gICAgW1soQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgKiljbGllbnRJ
bmZvIHdpbmRvd10gY2xvc2VdOwotfQotCi1zdGF0aWMgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQo
V0tQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG1lc3NhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIGNv
bnN0IHZvaWQqIGNsaWVudEluZm8pCi17Ci0gICAgTlNBbGVydCogYWxlcnQgPSBbW05TQWxlcnQg
YWxsb2NdIGluaXRdOwotCi0gICAgV0tVUkxSZWYgd2tVUkwgPSBXS0ZyYW1lQ29weVVSTChmcmFt
ZSk7Ci0gICAgQ0ZVUkxSZWYgY2ZVUkwgPSBXS1VSTENvcHlDRlVSTCgwLCB3a1VSTCk7Ci0gICAg
V0tSZWxlYXNlKHdrVVJMKTsKLQotICAgIFthbGVydCBzZXRNZXNzYWdlVGV4dDpbTlNTdHJpbmcg
c3RyaW5nV2l0aEZvcm1hdDpAIkphdmFTY3JpcHQgYWxlcnQgZGlhbG9nIGZyb20gJUAuIiwgWyhO
U1VSTCAqKWNmVVJMIGFic29sdXRlU3RyaW5nXV1dOwotICAgIENGUmVsZWFzZShjZlVSTCk7Ci0K
LSAgICBDRlN0cmluZ1JlZiBjZk1lc3NhZ2UgPSBXS1N0cmluZ0NvcHlDRlN0cmluZygwLCBtZXNz
YWdlKTsKLSAgICBbYWxlcnQgc2V0SW5mb3JtYXRpdmVUZXh0OihOU1N0cmluZyAqKWNmTWVzc2Fn
ZV07Ci0gICAgQ0ZSZWxlYXNlKGNmTWVzc2FnZSk7Ci0KLSAgICBbYWxlcnQgYWRkQnV0dG9uV2l0
aFRpdGxlOkAiT0siXTsKLQotICAgIFthbGVydCBydW5Nb2RhbF07Ci0gICAgW2FsZXJ0IHJlbGVh
c2VdOwotfQotCi1zdGF0aWMgYm9vbCBydW5KYXZhU2NyaXB0Q29uZmlybShXS1BhZ2VSZWYgcGFn
ZSwgV0tTdHJpbmdSZWYgbWVzc2FnZSwgV0tGcmFtZVJlZiBmcmFtZSwgY29uc3Qgdm9pZCogY2xp
ZW50SW5mbykKLXsKLSAgICBOU0FsZXJ0KiBhbGVydCA9IFtbTlNBbGVydCBhbGxvY10gaW5pdF07
Ci0KLSAgICBXS1VSTFJlZiB3a1VSTCA9IFdLRnJhbWVDb3B5VVJMKGZyYW1lKTsKLSAgICBDRlVS
TFJlZiBjZlVSTCA9IFdLVVJMQ29weUNGVVJMKDAsIHdrVVJMKTsKLSAgICBXS1JlbGVhc2Uod2tV
UkwpOwotCi0gICAgW2FsZXJ0IHNldE1lc3NhZ2VUZXh0OltOU1N0cmluZyBzdHJpbmdXaXRoRm9y
bWF0OkAiSmF2YVNjcmlwdCBjb25maXJtIGRpYWxvZyBmcm9tICVALiIsIFsoTlNVUkwgKiljZlVS
TCBhYnNvbHV0ZVN0cmluZ11dXTsKLSAgICBDRlJlbGVhc2UoY2ZVUkwpOwotCi0gICAgQ0ZTdHJp
bmdSZWYgY2ZNZXNzYWdlID0gV0tTdHJpbmdDb3B5Q0ZTdHJpbmcoMCwgbWVzc2FnZSk7Ci0gICAg
W2FsZXJ0IHNldEluZm9ybWF0aXZlVGV4dDooTlNTdHJpbmcgKiljZk1lc3NhZ2VdOwotICAgIENG
UmVsZWFzZShjZk1lc3NhZ2UpOwotCi0gICAgW2FsZXJ0IGFkZEJ1dHRvbldpdGhUaXRsZTpAIk9L
Il07Ci0gICAgW2FsZXJ0IGFkZEJ1dHRvbldpdGhUaXRsZTpAIkNhbmNlbCJdOwotCi0gICAgTlNJ
bnRlZ2VyIGJ1dHRvbiA9IFthbGVydCBydW5Nb2RhbF07Ci0gICAgW2FsZXJ0IHJlbGVhc2VdOwot
Ci0gICAgcmV0dXJuIGJ1dHRvbiA9PSBOU0FsZXJ0Rmlyc3RCdXR0b25SZXR1cm47Ci19Ci0KLXN0
YXRpYyBXS1N0cmluZ1JlZiBydW5KYXZhU2NyaXB0UHJvbXB0KFdLUGFnZVJlZiBwYWdlLCBXS1N0
cmluZ1JlZiBtZXNzYWdlLCBXS1N0cmluZ1JlZiBkZWZhdWx0VmFsdWUsIFdLRnJhbWVSZWYgZnJh
bWUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCi17Ci0gICAgTlNBbGVydCogYWxlcnQgPSBbW05T
QWxlcnQgYWxsb2NdIGluaXRdOwotCi0gICAgV0tVUkxSZWYgd2tVUkwgPSBXS0ZyYW1lQ29weVVS
TChmcmFtZSk7Ci0gICAgQ0ZVUkxSZWYgY2ZVUkwgPSBXS1VSTENvcHlDRlVSTCgwLCB3a1VSTCk7
Ci0gICAgV0tSZWxlYXNlKHdrVVJMKTsKLQotICAgIFthbGVydCBzZXRNZXNzYWdlVGV4dDpbTlNT
dHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIkphdmFTY3JpcHQgcHJvbXB0IGRpYWxvZyBmcm9tICVA
LiIsIFsoTlNVUkwgKiljZlVSTCBhYnNvbHV0ZVN0cmluZ11dXTsKLSAgICBDRlJlbGVhc2UoY2ZV
UkwpOwotCi0gICAgQ0ZTdHJpbmdSZWYgY2ZNZXNzYWdlID0gV0tTdHJpbmdDb3B5Q0ZTdHJpbmco
MCwgbWVzc2FnZSk7Ci0gICAgW2FsZXJ0IHNldEluZm9ybWF0aXZlVGV4dDooTlNTdHJpbmcgKilj
Zk1lc3NhZ2VdOwotICAgIENGUmVsZWFzZShjZk1lc3NhZ2UpOwotCi0gICAgW2FsZXJ0IGFkZEJ1
dHRvbldpdGhUaXRsZTpAIk9LIl07Ci0gICAgW2FsZXJ0IGFkZEJ1dHRvbldpdGhUaXRsZTpAIkNh
bmNlbCJdOwotCi0gICAgTlNUZXh0RmllbGQqIGlucHV0ID0gW1tOU1RleHRGaWVsZCBhbGxvY10g
aW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDIwMCwgMjQpXTsKLSAgICBDRlN0cmluZ1Jl
ZiBjZkRlZmF1bHRWYWx1ZSA9IFdLU3RyaW5nQ29weUNGU3RyaW5nKDAsIGRlZmF1bHRWYWx1ZSk7
Ci0gICAgW2lucHV0IHNldFN0cmluZ1ZhbHVlOihOU1N0cmluZyAqKWNmRGVmYXVsdFZhbHVlXTsK
LSAgICBDRlJlbGVhc2UoY2ZEZWZhdWx0VmFsdWUpOwotCi0gICAgW2FsZXJ0IHNldEFjY2Vzc29y
eVZpZXc6aW5wdXRdOwotCi0gICAgTlNJbnRlZ2VyIGJ1dHRvbiA9IFthbGVydCBydW5Nb2RhbF07
Ci0KLSAgICBOU1N0cmluZyogcmVzdWx0ID0gbmlsOwotICAgIGlmIChidXR0b24gPT0gTlNBbGVy
dEZpcnN0QnV0dG9uUmV0dXJuKSB7Ci0gICAgICAgIFtpbnB1dCB2YWxpZGF0ZUVkaXRpbmddOwot
ICAgICAgICByZXN1bHQgPSBbaW5wdXQgc3RyaW5nVmFsdWVdOwotICAgIH0KLQotICAgIFthbGVy
dCByZWxlYXNlXTsKLQotICAgIGlmICghcmVzdWx0KQotICAgICAgICByZXR1cm4gMDsKLSAgICBy
ZXR1cm4gV0tTdHJpbmdDcmVhdGVXaXRoQ0ZTdHJpbmcoKENGU3RyaW5nUmVmKXJlc3VsdCk7Ci19
Ci0KLXN0YXRpYyB2b2lkIHNldFN0YXR1c1RleHQoV0tQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVm
IHRleHQsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCi17Ci0gICAgTE9HKEAic2V0U3RhdHVzVGV4
dCIpOwotfQotCi1zdGF0aWMgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChXS1BhZ2VSZWYg
cGFnZSwgV0tIaXRUZXN0UmVzdWx0UmVmIGhpdFRlc3RSZXN1bHQsIFdLRXZlbnRNb2RpZmllcnMg
bW9kaWZpZXJzLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCi17
Ci0gICAgTE9HKEAibW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQiKTsKLX0KLQotc3RhdGljIFdLUmVj
dCBnZXRXaW5kb3dGcmFtZShXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykK
LXsKLSAgICBOU1JlY3QgcmVjdCA9IFtbKEJyb3dzZXJXaW5kb3dDb250cm9sbGVyICopY2xpZW50
SW5mbyB3aW5kb3ddIGZyYW1lXTsKLSAgICBXS1JlY3Qgd2tSZWN0OwotICAgIHdrUmVjdC5vcmln
aW4ueCA9IHJlY3Qub3JpZ2luLng7Ci0gICAgd2tSZWN0Lm9yaWdpbi55ID0gcmVjdC5vcmlnaW4u
eTsKLSAgICB3a1JlY3Quc2l6ZS53aWR0aCA9IHJlY3Quc2l6ZS53aWR0aDsKLSAgICB3a1JlY3Qu
c2l6ZS5oZWlnaHQgPSByZWN0LnNpemUuaGVpZ2h0OwotICAgIHJldHVybiB3a1JlY3Q7Ci19Ci0K
LXN0YXRpYyB2b2lkIHNldFdpbmRvd0ZyYW1lKFdLUGFnZVJlZiBwYWdlLCBXS1JlY3QgcmVjdCwg
Y29uc3Qgdm9pZCogY2xpZW50SW5mbykKLXsKLSAgICBbWyhCcm93c2VyV2luZG93Q29udHJvbGxl
ciAqKWNsaWVudEluZm8gd2luZG93XSBzZXRGcmFtZTpOU01ha2VSZWN0KHJlY3Qub3JpZ2luLngs
IHJlY3Qub3JpZ2luLnksIHJlY3Quc2l6ZS53aWR0aCwgcmVjdC5zaXplLmhlaWdodCkgZGlzcGxh
eTpZRVNdOwotfQotCi1zdGF0aWMgYm9vbCBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoV0tQ
YWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG1lc3NhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIGNvbnN0
IHZvaWQqIGNsaWVudEluZm8pCi17Ci0gICAgTlNBbGVydCAqYWxlcnQgPSBbW05TQWxlcnQgYWxs
b2NdIGluaXRdOwotCi0gICAgV0tVUkxSZWYgd2tVUkwgPSBXS0ZyYW1lQ29weVVSTChmcmFtZSk7
Ci0gICAgQ0ZVUkxSZWYgY2ZVUkwgPSBXS1VSTENvcHlDRlVSTCgwLCB3a1VSTCk7Ci0gICAgV0tS
ZWxlYXNlKHdrVVJMKTsKLQotICAgIFthbGVydCBzZXRNZXNzYWdlVGV4dDpbTlNTdHJpbmcgc3Ry
aW5nV2l0aEZvcm1hdDpAIkJlZm9yZVVubG9hZCBjb25maXJtIGRpYWxvZyBmcm9tICVALiIsIFso
TlNVUkwgKiljZlVSTCBhYnNvbHV0ZVN0cmluZ11dXTsKLSAgICBDRlJlbGVhc2UoY2ZVUkwpOwot
Ci0gICAgQ0ZTdHJpbmdSZWYgY2ZNZXNzYWdlID0gV0tTdHJpbmdDb3B5Q0ZTdHJpbmcoMCwgbWVz
c2FnZSk7Ci0gICAgW2FsZXJ0IHNldEluZm9ybWF0aXZlVGV4dDooTlNTdHJpbmcgKiljZk1lc3Nh
Z2VdOwotICAgIENGUmVsZWFzZShjZk1lc3NhZ2UpOwotCi0gICAgW2FsZXJ0IGFkZEJ1dHRvbldp
dGhUaXRsZTpAIk9LIl07Ci0gICAgW2FsZXJ0IGFkZEJ1dHRvbldpdGhUaXRsZTpAIkNhbmNlbCJd
OwotCi0gICAgTlNJbnRlZ2VyIGJ1dHRvbiA9IFthbGVydCBydW5Nb2RhbF07Ci0gICAgW2FsZXJ0
IHJlbGVhc2VdOwotCi0gICAgcmV0dXJuIGJ1dHRvbiA9PSBOU0FsZXJ0Rmlyc3RCdXR0b25SZXR1
cm47Ci19Ci0KLXN0YXRpYyB2b2lkIHJ1bk9wZW5QYW5lbChXS1BhZ2VSZWYgcGFnZSwgV0tGcmFt
ZVJlZiBmcmFtZSwgV0tPcGVuUGFuZWxQYXJhbWV0ZXJzUmVmIHBhcmFtZXRlcnMsIFdLT3BlblBh
bmVsUmVzdWx0TGlzdGVuZXJSZWYgbGlzdGVuZXIsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCi17
Ci0gICAgTlNPcGVuUGFuZWwgKm9wZW5QYW5lbCA9IFtOU09wZW5QYW5lbCBvcGVuUGFuZWxdOwot
ICAgIFtvcGVuUGFuZWwgc2V0QWxsb3dzTXVsdGlwbGVTZWxlY3Rpb246V0tPcGVuUGFuZWxQYXJh
bWV0ZXJzR2V0QWxsb3dzTXVsdGlwbGVGaWxlcyhwYXJhbWV0ZXJzKV07Ci0KLSAgICBXS1JldGFp
bihsaXN0ZW5lcik7Ci0KLSAgICBbb3BlblBhbmVsIGJlZ2luU2hlZXRNb2RhbEZvcldpbmRvdzpb
KEJyb3dzZXJXaW5kb3dDb250cm9sbGVyICopY2xpZW50SW5mbyB3aW5kb3ddIGNvbXBsZXRpb25I
YW5kbGVyOl4oTlNJbnRlZ2VyIHJlc3VsdCkgewotICAgICAgICBpZiAocmVzdWx0ID09IE5TRmls
ZUhhbmRsaW5nUGFuZWxPS0J1dHRvbikgewotICAgICAgICAgICAgV0tNdXRhYmxlQXJyYXlSZWYg
ZmlsZVVSTHMgPSBXS011dGFibGVBcnJheUNyZWF0ZSgpOwotCi0gICAgICAgICAgICBOU1VSTCAq
bnNVUkw7Ci0gICAgICAgICAgICBmb3IgKG5zVVJMIGluIFtvcGVuUGFuZWwgVVJMc10pIHsKLSAg
ICAgICAgICAgICAgICBXS1VSTFJlZiB3a1VSTCA9IFdLVVJMQ3JlYXRlV2l0aENGVVJMKChDRlVS
TFJlZiluc1VSTCk7Ci0gICAgICAgICAgICAgICAgV0tBcnJheUFwcGVuZEl0ZW0oZmlsZVVSTHMs
IHdrVVJMKTsKLSAgICAgICAgICAgICAgICBXS1JlbGVhc2Uod2tVUkwpOwotICAgICAgICAgICAg
fQotCi0gICAgICAgICAgICBXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyQ2hvb3NlRmlsZXMobGlz
dGVuZXIsIGZpbGVVUkxzKTsKLQotICAgICAgICAgICAgV0tSZWxlYXNlKGZpbGVVUkxzKTsKLSAg
ICAgICAgfSBlbHNlCi0gICAgICAgICAgICBXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyQ2FuY2Vs
KGxpc3RlbmVyKTsKLSAgICAgICAgCi0gICAgICAgIFdLUmVsZWFzZShsaXN0ZW5lcik7Ci0gICAg
fV07Ci19Ci0KLS0gKHZvaWQpYXdha2VGcm9tTmliCi17Ci0gICAgX3dlYlZpZXcgPSBbW1dLVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpbY29udGFpbmVyVmlldyBib3VuZHNdIGNvbnRleHRSZWY6
X2NvbnRleHQgcGFnZUdyb3VwUmVmOl9wYWdlR3JvdXBdOwotCi0gICAgW193ZWJWaWV3IHNldEF1
dG9yZXNpemluZ01hc2s6KE5TVmlld1dpZHRoU2l6YWJsZSB8IE5TVmlld0hlaWdodFNpemFibGUp
XTsKLSAgICBbY29udGFpbmVyVmlldyBhZGRTdWJ2aWV3Ol93ZWJWaWV3XTsKLSAgICAKLSAgICBX
S1BhZ2VMb2FkZXJDbGllbnQgbG9hZENsaWVudCA9IHsKLSAgICAgICAga1dLUGFnZUxvYWRlckNs
aWVudEN1cnJlbnRWZXJzaW9uLAotICAgICAgICBzZWxmLCAgIC8qIGNsaWVudEluZm8gKi8KLSAg
ICAgICAgZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSwKLSAgICAgICAgZGlkUmVjZWl2
ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUsCi0gICAgICAgIGRpZEZh
aWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3JGb3JGcmFtZSwKLSAgICAgICAgZGlkQ29tbWl0TG9h
ZEZvckZyYW1lLAotICAgICAgICBkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZSwKLSAgICAg
ICAgZGlkRmluaXNoTG9hZEZvckZyYW1lLAotICAgICAgICBkaWRGYWlsTG9hZFdpdGhFcnJvckZv
ckZyYW1lLAotICAgICAgICBkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUsCi0gICAg
ICAgIGRpZFJlY2VpdmVUaXRsZUZvckZyYW1lLAotICAgICAgICBkaWRGaXJzdExheW91dEZvckZy
YW1lLAotICAgICAgICBkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZSwKLSAg
ICAgICAgZGlkUmVtb3ZlRnJhbWVGcm9tSGllcmFyY2h5LAotICAgICAgICBkaWREaXNwbGF5SW5z
ZWN1cmVDb250ZW50Rm9yRnJhbWUsCi0gICAgICAgIGRpZFJ1bkluc2VjdXJlQ29udGVudEZvckZy
YW1lLAotICAgICAgICAwLCAvLyBjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNl
SW5GcmFtZQotICAgICAgICAwLCAvLyBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2VJ
bkZyYW1lCi0gICAgICAgIGRpZFN0YXJ0UHJvZ3Jlc3MsCi0gICAgICAgIGRpZENoYW5nZVByb2dy
ZXNzLAotICAgICAgICBkaWRGaW5pc2hQcm9ncmVzcywKLSAgICAgICAgZGlkQmVjb21lVW5yZXNw
b25zaXZlLAotICAgICAgICBkaWRCZWNvbWVSZXNwb25zaXZlLAotICAgICAgICBwcm9jZXNzRGlk
RXhpdCwKLSAgICAgICAgZGlkQ2hhbmdlQmFja0ZvcndhcmRMaXN0LAotICAgICAgICAwLCAvLyBz
aG91bGRHb1RvQmFja0ZvcndhcmRJdGVtCi0gICAgICAgIDAsIC8vIGRpZEZhaWxUb0luaXRpYWxp
emVQbHVnaW4KLSAgICAgICAgZGlkRGV0ZWN0WFNTRm9yRnJhbWUsCi0gICAgICAgIDAsIC8vIGRp
ZE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dAotICAgICAgICAwLCAvLyB3aWxsR29Ub0Jh
Y2tGb3J3YXJkTGlzdEl0ZW0KLSAgICAgICAgMCwgLy8gaW50ZXJhY3Rpb25PY2N1cnJlZFdoaWxl
UHJvY2Vzc1VucmVzcG9uc2l2ZQotICAgICAgICAwLCAvLyBwbHVnaW5EaWRGYWlsCi0gICAgICAg
IDAsIC8vIGRpZFJlY2VpdmVJbnRlbnRGb3JGcmFtZQotICAgICAgICAwLCAvLyByZWdpc3Rlcklu
dGVudFNlcnZpY2VGb3JGcmFtZQotICAgICAgICAwLCAvLyBkaWRMYXlvdXQKLSAgICB9OwotICAg
IFdLUGFnZVNldFBhZ2VMb2FkZXJDbGllbnQoX3dlYlZpZXcucGFnZVJlZiwgJmxvYWRDbGllbnQp
OwotICAgIAotICAgIFdLUGFnZVBvbGljeUNsaWVudCBwb2xpY3lDbGllbnQgPSB7Ci0gICAgICAg
IGtXS1BhZ2VQb2xpY3lDbGllbnRDdXJyZW50VmVyc2lvbiwKLSAgICAgICAgc2VsZiwgICAgICAg
LyogY2xpZW50SW5mbyAqLwotICAgICAgICBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9u
LAotICAgICAgICBkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24sCi0gICAgICAgIGRlY2lk
ZVBvbGljeUZvclJlc3BvbnNlLAotICAgICAgICAwICAgICAgICAgICAvKiB1bmFibGVUb0ltcGxl
bWVudFBvbGljeSAqLwotICAgIH07Ci0gICAgV0tQYWdlU2V0UGFnZVBvbGljeUNsaWVudChfd2Vi
Vmlldy5wYWdlUmVmLCAmcG9saWN5Q2xpZW50KTsKLQotICAgIFdLUGFnZVVJQ2xpZW50IHVpQ2xp
ZW50ID0gewotICAgICAgICBrV0tQYWdlVUlDbGllbnRDdXJyZW50VmVyc2lvbiwKLSAgICAgICAg
c2VsZiwgICAgICAgLyogY2xpZW50SW5mbyAqLwotICAgICAgICAwLCAgICAgICAgICAvKiBjcmVh
dGVOZXdQYWdlX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAgKi8KLSAgICAgICAgc2hvd1BhZ2UsCi0g
ICAgICAgIGNsb3NlUGFnZSwKLSAgICAgICAgMCwgICAgICAgICAgLyogdGFrZUZvY3VzICovCi0g
ICAgICAgIDAsICAgICAgICAgIC8qIGZvY3VzICovCi0gICAgICAgIDAsICAgICAgICAgIC8qIHVu
Zm9jdXMgKi8KLSAgICAgICAgcnVuSmF2YVNjcmlwdEFsZXJ0LAotICAgICAgICBydW5KYXZhU2Ny
aXB0Q29uZmlybSwKLSAgICAgICAgcnVuSmF2YVNjcmlwdFByb21wdCwKLSAgICAgICAgc2V0U3Rh
dHVzVGV4dCwKLSAgICAgICAgMCwgICAgICAgICAgLyogbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnRf
ZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAqLwotICAgICAgICAwLCAgICAgICAgICAvKiBtaXNzaW5n
UGx1Z2luQnV0dG9uQ2xpY2tlZCAqLwotICAgICAgICAwLCAgICAgICAgICAvKiBkaWROb3RIYW5k
bGVLZXlFdmVudCAqLwotICAgICAgICAwLCAgICAgICAgICAvKiBkaWROb3RIYW5kbGVXaGVlbEV2
ZW50ICovCi0gICAgICAgIDAsICAgICAgICAgIC8qIHRvb2xiYXJzQXJlVmlzaWJsZSAqLwotICAg
ICAgICAwLCAgICAgICAgICAvKiBzZXRUb29sYmFyc0FyZVZpc2libGUgKi8KLSAgICAgICAgMCwg
ICAgICAgICAgLyogbWVudUJhcklzVmlzaWJsZSAqLwotICAgICAgICAwLCAgICAgICAgICAvKiBz
ZXRNZW51QmFySXNWaXNpYmxlICovCi0gICAgICAgIDAsICAgICAgICAgIC8qIHN0YXR1c0Jhcklz
VmlzaWJsZSAqLwotICAgICAgICAwLCAgICAgICAgICAvKiBzZXRTdGF0dXNCYXJJc1Zpc2libGUg
Ki8KLSAgICAgICAgMCwgICAgICAgICAgLyogaXNSZXNpemFibGUgKi8KLSAgICAgICAgMCwgICAg
ICAgICAgLyogc2V0SXNSZXNpemFibGUgKi8KLSAgICAgICAgZ2V0V2luZG93RnJhbWUsCi0gICAg
ICAgIHNldFdpbmRvd0ZyYW1lLAotICAgICAgICBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWws
Ci0gICAgICAgIDAsICAgICAgICAgIC8qIGRpZERyYXcgKi8KLSAgICAgICAgMCwgICAgICAgICAg
LyogcGFnZURpZFNjcm9sbCAqLwotICAgICAgICAwLCAgICAgICAgICAvKiBleGNlZWRlZERhdGFi
YXNlUXVvdGEgKi8KLSAgICAgICAgcnVuT3BlblBhbmVsLAotICAgICAgICAwLCAgICAgICAgICAv
KiBkZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0ICovCi0gICAgICAg
IDAsIC8vIGhlYWRlckhlaWdodAotICAgICAgICAwLCAvLyBmb290ZXJIZWlnaHQKLSAgICAgICAg
MCwgLy8gZHJhd0hlYWRlcgotICAgICAgICAwLCAvLyBkcmF3Rm9vdGVyCi0gICAgICAgIDAsIC8v
IHByaW50RnJhbWUKLSAgICAgICAgMCwgLy8gc2hvd01vZGFsCi0gICAgICAgIDAsIC8vIGRpZENv
bXBsZXRlUnViYmVyQmFuZEZvck1haW5GcmFtZQotICAgICAgICAwLCAvLyBzYXZlRGF0YVRvRmls
ZUluRG93bmxvYWRzRm9sZGVyCi0gICAgICAgIDAsIC8vIHNob3VsZEludGVycnVwdEphdmFTY3Jp
cHQKLSAgICAgICAgY3JlYXRlTmV3UGFnZSwKLSAgICAgICAgbW91c2VEaWRNb3ZlT3ZlckVsZW1l
bnQsCi0gICAgICAgIDAsIC8vIGRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0Ci0gICAgICAgIDAsIC8vIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZAotICAg
ICAgICAwLCAvLyBzaG93Q29sb3JQaWNrZXIKLSAgICAgICAgMCwgLy8gaGlkZUNvbG9yUGlja2Vy
Ci0gICAgfTsKLSAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQoX3dlYlZpZXcucGFnZVJlZiwgJnVp
Q2xpZW50KTsKLX0KLQotLSAodm9pZClkaWRTdGFydFByb2dyZXNzCi17Ci0gICAgW3Byb2dyZXNz
SW5kaWNhdG9yIHNldERvdWJsZVZhbHVlOjAuMF07Ci0gICAgW3Byb2dyZXNzSW5kaWNhdG9yIHNl
dEhpZGRlbjpOT107Ci19Ci0KLS0gKHZvaWQpZGlkQ2hhbmdlUHJvZ3Jlc3M6KGRvdWJsZSl2YWx1
ZQotewotICAgIFtwcm9ncmVzc0luZGljYXRvciBzZXREb3VibGVWYWx1ZTp2YWx1ZV07Ci19Ci0K
LS0gKHZvaWQpZGlkRmluaXNoUHJvZ3Jlc3MKLXsKLSAgICBbcHJvZ3Jlc3NJbmRpY2F0b3Igc2V0
SGlkZGVuOllFU107Ci0gICAgW3Byb2dyZXNzSW5kaWNhdG9yIHNldERvdWJsZVZhbHVlOjEuMF07
Ci19Ci0KLS0gKHZvaWQpdXBkYXRlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZTooV0tGcmFtZVJlZilm
cmFtZQotewotICAgIHN0YXRpYyBXS1VSTFJlZiBlbXB0eVVSTCA9IDA7Ci0gICAgaWYgKCFlbXB0
eVVSTCkKLSAgICAgICAgZW1wdHlVUkwgPSBXS1VSTENyZWF0ZVdpdGhVVEY4Q1N0cmluZygiIik7
Ci0KLSAgICBXS1VSTFJlZiB1cmwgPSBXS0ZyYW1lQ29weVByb3Zpc2lvbmFsVVJMKGZyYW1lKTsK
LQotICAgIGlmICghdXJsKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoV0tVUkxJc0VxdWFs
KHVybCwgZW1wdHlVUkwpKSB7Ci0gICAgICAgIFdLUmVsZWFzZSh1cmwpOwotICAgICAgICByZXR1
cm47Ci0gICAgfQotCi0gICAgQ0ZVUkxSZWYgY2ZTb3VyY2VVUkwgPSBXS1VSTENvcHlDRlVSTCgw
LCB1cmwpOwotICAgIFdLUmVsZWFzZSh1cmwpOwotCi0gICAgW3VybFRleHQgc2V0U3RyaW5nVmFs
dWU6KE5TU3RyaW5nKilDRlVSTEdldFN0cmluZyhjZlNvdXJjZVVSTCldOwotICAgIENGUmVsZWFz
ZShjZlNvdXJjZVVSTCk7Ci19Ci0KLS0gKHZvaWQpZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JG
cmFtZTooV0tGcmFtZVJlZilmcmFtZQotewotICAgIGlmICghV0tGcmFtZUlzTWFpbkZyYW1lKGZy
YW1lKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgW3NlbGYgdXBkYXRlUHJvdmlzaW9uYWxVUkxG
b3JGcmFtZTpmcmFtZV07Ci19Ci0KLS0gKHZvaWQpZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9y
UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWU6KFdLRnJhbWVSZWYpZnJhbWUKLXsKLSAgICBpZiAoIVdL
RnJhbWVJc01haW5GcmFtZShmcmFtZSkpCi0gICAgICAgIHJldHVybjsKLQotICAgIFtzZWxmIHVw
ZGF0ZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWU6ZnJhbWVdOwotfQotCi0tICh2b2lkKWRpZEZhaWxQ
cm92aXNpb25hbExvYWRXaXRoRXJyb3JGb3JGcmFtZTooV0tGcmFtZVJlZilmcmFtZQotewotICAg
IGlmICghV0tGcmFtZUlzTWFpbkZyYW1lKGZyYW1lKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
W3NlbGYgdXBkYXRlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZTpmcmFtZV07Ci19Ci0KLS0gKHZvaWQp
ZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZTooV0tGcmFtZVJlZilmcmFtZQotewotICAgIGlm
ICghV0tGcmFtZUlzTWFpbkZyYW1lKGZyYW1lKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgW3Nl
bGYgdXBkYXRlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZTpmcmFtZV07Ci19Ci0KLS0gKHZvaWQpZGlk
U2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lOihXS0ZyYW1lUmVmKWZyYW1lCi17Ci19Ci0K
LS0gKHZvaWQpZGlkQ29tbWl0TG9hZEZvckZyYW1lOihXS0ZyYW1lUmVmKWZyYW1lCistIChJQkFj
dGlvbilvcGVuTG9jYXRpb246KGlkKXNlbmRlcgogeworICAgIFtbc2VsZiB3aW5kb3ddIG1ha2VG
aXJzdFJlc3BvbmRlcjp1cmxUZXh0XTsKIH0KIAogLSAodm9pZClsb2FkVVJMU3RyaW5nOihOU1N0
cmluZyAqKXVybFN0cmluZwogewotICAgIC8vIEZJWE1FOiBXZSBzaG91bGRuJ3QgaGF2ZSB0byBz
ZXQgdGhlIHVybCB0ZXh0IGhlcmUuCi0gICAgW3VybFRleHQgc2V0U3RyaW5nVmFsdWU6dXJsU3Ry
aW5nXTsKLSAgICBbc2VsZiBmZXRjaDpuaWxdOwogfQogCi0tIChJQkFjdGlvbilwZXJmb3JtRmlu
ZFBhbmVsQWN0aW9uOihpZClzZW5kZXIKKy0gKHZvaWQpYXBwbGljYXRpb25UZXJtaW5hdGluZwog
ewotICAgIFtmaW5kUGFuZWxXaW5kb3cgbWFrZUtleUFuZE9yZGVyRnJvbnQ6c2VuZGVyXTsKIH0K
IAotLSAoSUJBY3Rpb24pZmluZDooaWQpc2VuZGVyCistIChOU1N0cmluZyAqKWFkZFByb3RvY29s
SWZOZWNlc3Nhcnk6KE5TU3RyaW5nICopYWRkcmVzcwogewotICAgIFdLU3RyaW5nUmVmIHN0cmlu
ZyA9IFdLU3RyaW5nQ3JlYXRlV2l0aENGU3RyaW5nKChDRlN0cmluZ1JlZilbc2VuZGVyIHN0cmlu
Z1ZhbHVlXSk7CisgICAgaWYgKFthZGRyZXNzIHJhbmdlT2ZTdHJpbmc6QCI6Ly8iXS5sZW5ndGgg
PiAwKQorICAgICAgICByZXR1cm4gYWRkcmVzczsKIAotICAgIFdLUGFnZUZpbmRTdHJpbmcoX3dl
YlZpZXcucGFnZVJlZiwgc3RyaW5nLCBrV0tGaW5kT3B0aW9uc0Nhc2VJbnNlbnNpdGl2ZSB8IGtX
S0ZpbmRPcHRpb25zV3JhcEFyb3VuZCB8IGtXS0ZpbmRPcHRpb25zU2hvd0ZpbmRJbmRpY2F0b3Ig
fCBrV0tGaW5kT3B0aW9uc1Nob3dPdmVybGF5LCAxMDApOworICAgIHJldHVybiBbQCJodHRwOi8v
IiBzdHJpbmdCeUFwcGVuZGluZ1N0cmluZzphZGRyZXNzXTsKIH0KIAogQGVuZApkaWZmIC0tZ2l0
IGEvVG9vbHMvTWluaUJyb3dzZXIvbWFjL01haW5NZW51LnhpYiBiL1Rvb2xzL01pbmlCcm93c2Vy
L21hYy9NYWluTWVudS54aWIKaW5kZXggMTY0ZGJhNDY2MDU3ZjQ1OTMxOTIzNzZkMDJkZjEzYmNj
NzRmNDQ1OS4uYjcxM2EwMGY1MzkzMzA2MDZmOTRjZmI2M2M3MTg1OGY4NTU4NWE4ZCAxMDA2NDQK
LS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvbWFjL01haW5NZW51LnhpYgorKysgYi9Ub29scy9NaW5p
QnJvd3Nlci9tYWMvTWFpbk1lbnUueGliCkBAIC0yLDEzICsyLDEzIEBACiA8YXJjaGl2ZSB0eXBl
PSJjb20uYXBwbGUuSW50ZXJmYWNlQnVpbGRlcjMuQ29jb2EuWElCIiB2ZXJzaW9uPSI3LjEwIj4K
IAk8ZGF0YT4KIAkJPGludCBrZXk9IklCRG9jdW1lbnQuU3lzdGVtVGFyZ2V0Ij4xMDgwPC9pbnQ+
Ci0JCTxzdHJpbmcga2V5PSJJQkRvY3VtZW50LlN5c3RlbVZlcnNpb24iPjEyQTI1Njwvc3RyaW5n
PgotCQk8c3RyaW5nIGtleT0iSUJEb2N1bWVudC5JbnRlcmZhY2VCdWlsZGVyVmVyc2lvbiI+MjU0
Nzwvc3RyaW5nPgotCQk8c3RyaW5nIGtleT0iSUJEb2N1bWVudC5BcHBLaXRWZXJzaW9uIj4xMTg1
PC9zdHJpbmc+Ci0JCTxzdHJpbmcga2V5PSJJQkRvY3VtZW50LkhJVG9vbGJveFZlcnNpb24iPjYy
Mi4wMDwvc3RyaW5nPgorCQk8c3RyaW5nIGtleT0iSUJEb2N1bWVudC5TeXN0ZW1WZXJzaW9uIj4x
MkM1Mjwvc3RyaW5nPgorCQk8c3RyaW5nIGtleT0iSUJEb2N1bWVudC5JbnRlcmZhY2VCdWlsZGVy
VmVyc2lvbiI+NDEwOTwvc3RyaW5nPgorCQk8c3RyaW5nIGtleT0iSUJEb2N1bWVudC5BcHBLaXRW
ZXJzaW9uIj4xMTg3LjM0PC9zdHJpbmc+CisJCTxzdHJpbmcga2V5PSJJQkRvY3VtZW50LkhJVG9v
bGJveFZlcnNpb24iPjYyNS4wMDwvc3RyaW5nPgogCQk8b2JqZWN0IGNsYXNzPSJOU011dGFibGVE
aWN0aW9uYXJ5IiBrZXk9IklCRG9jdW1lbnQuUGx1Z2luVmVyc2lvbnMiPgogCQkJPHN0cmluZyBr
ZXk9Ik5TLmtleS4wIj5jb20uYXBwbGUuSW50ZXJmYWNlQnVpbGRlci5Db2NvYVBsdWdpbjwvc3Ry
aW5nPgotCQkJPHN0cmluZyBrZXk9Ik5TLm9iamVjdC4wIj4yNTQ3PC9zdHJpbmc+CisJCQk8c3Ry
aW5nIGtleT0iTlMub2JqZWN0LjAiPjQxMDk8L3N0cmluZz4KIAkJPC9vYmplY3Q+CiAJCTxvYmpl
Y3QgY2xhc3M9Ik5TQXJyYXkiIGtleT0iSUJEb2N1bWVudC5JbnRlZ3JhdGVkQ2xhc3NEZXBlbmRl
bmNpZXMiPgogCQkJPGJvb2wga2V5PSJFbmNvZGVkV2l0aFhNTENvZGVyIj5ZRVM8L2Jvb2w+CkBA
IC0xOTEsMTIgKzE5MSwzNCBAQAogCQkJCQkJCQk8Ym9vbCBrZXk9IkVuY29kZWRXaXRoWE1MQ29k
ZXIiPllFUzwvYm9vbD4KIAkJCQkJCQkJPG9iamVjdCBjbGFzcz0iTlNNZW51SXRlbSIgaWQ9Ijcw
NTM0MTAyNSI+CiAJCQkJCQkJCQk8cmVmZXJlbmNlIGtleT0iTlNNZW51IiByZWY9IjcyMDA1Mzc2
NCIvPgotCQkJCQkJCQkJPHN0cmluZyBrZXk9Ik5TVGl0bGUiPk5ldyBXaW5kb3c8L3N0cmluZz4K
KwkJCQkJCQkJCTxzdHJpbmcga2V5PSJOU1RpdGxlIj5PcGVuIExvY2F0aW9uIDwvc3RyaW5nPgor
CQkJCQkJCQkJPHN0cmluZyBrZXk9Ik5TS2V5RXF1aXYiPmw8L3N0cmluZz4KKwkJCQkJCQkJCTxp
bnQga2V5PSJOU0tleUVxdWl2TW9kTWFzayI+MTA0ODU3NjwvaW50PgorCQkJCQkJCQkJPGludCBr
ZXk9Ik5TTW5lbW9uaWNMb2MiPjIxNDc0ODM2NDc8L2ludD4KKwkJCQkJCQkJCTxyZWZlcmVuY2Ug
a2V5PSJOU09uSW1hZ2UiIHJlZj0iMzU0NjU5OTIiLz4KKwkJCQkJCQkJCTxyZWZlcmVuY2Uga2V5
PSJOU01peGVkSW1hZ2UiIHJlZj0iNTAyNTUxNjY4Ii8+CisJCQkJCQkJCQk8aW50IGtleT0iTlNU
YWciPjE8L2ludD4KKwkJCQkJCQkJPC9vYmplY3Q+CisJCQkJCQkJCTxvYmplY3QgY2xhc3M9Ik5T
TWVudUl0ZW0iIGlkPSI1NTI2MjY3NjAiPgorCQkJCQkJCQkJPHJlZmVyZW5jZSBrZXk9Ik5TTWVu
dSIgcmVmPSI3MjAwNTM3NjQiLz4KKwkJCQkJCQkJCTxzdHJpbmcga2V5PSJOU1RpdGxlIj5OZXcg
V2ViS2l0MSBXaW5kb3c8L3N0cmluZz4KIAkJCQkJCQkJCTxzdHJpbmcga2V5PSJOU0tleUVxdWl2
Ij5uPC9zdHJpbmc+CiAJCQkJCQkJCQk8aW50IGtleT0iTlNLZXlFcXVpdk1vZE1hc2siPjEwNDg1
NzY8L2ludD4KIAkJCQkJCQkJCTxpbnQga2V5PSJOU01uZW1vbmljTG9jIj4yMTQ3NDgzNjQ3PC9p
bnQ+CiAJCQkJCQkJCQk8cmVmZXJlbmNlIGtleT0iTlNPbkltYWdlIiByZWY9IjM1NDY1OTkyIi8+
CiAJCQkJCQkJCQk8cmVmZXJlbmNlIGtleT0iTlNNaXhlZEltYWdlIiByZWY9IjUwMjU1MTY2OCIv
PgorCQkJCQkJCQkJPGludCBrZXk9Ik5TVGFnIj4xPC9pbnQ+CisJCQkJCQkJCTwvb2JqZWN0Pgor
CQkJCQkJCQk8b2JqZWN0IGNsYXNzPSJOU01lbnVJdGVtIiBpZD0iNjMyNTY2NDEzIj4KKwkJCQkJ
CQkJCTxyZWZlcmVuY2Uga2V5PSJOU01lbnUiIHJlZj0iNzIwMDUzNzY0Ii8+CisJCQkJCQkJCQk8
Ym9vbCBrZXk9Ik5TSXNBbHRlcm5hdGUiPllFUzwvYm9vbD4KKwkJCQkJCQkJCTxzdHJpbmcga2V5
PSJOU1RpdGxlIj5OZXcgV2ViS2l0MiBXaW5kb3c8L3N0cmluZz4KKwkJCQkJCQkJCTxzdHJpbmcg
a2V5PSJOU0tleUVxdWl2Ij5uPC9zdHJpbmc+CisJCQkJCQkJCQk8aW50IGtleT0iTlNLZXlFcXVp
dk1vZE1hc2siPjE1NzI4NjQ8L2ludD4KKwkJCQkJCQkJCTxpbnQga2V5PSJOU01uZW1vbmljTG9j
Ij4yMTQ3NDgzNjQ3PC9pbnQ+CisJCQkJCQkJCQk8cmVmZXJlbmNlIGtleT0iTlNPbkltYWdlIiBy
ZWY9IjM1NDY1OTkyIi8+CisJCQkJCQkJCQk8cmVmZXJlbmNlIGtleT0iTlNNaXhlZEltYWdlIiBy
ZWY9IjUwMjU1MTY2OCIvPgorCQkJCQkJCQkJPGludCBrZXk9Ik5TVGFnIj4yPC9pbnQ+CiAJCQkJ
CQkJCTwvb2JqZWN0PgogCQkJCQkJCQk8b2JqZWN0IGNsYXNzPSJOU01lbnVJdGVtIiBpZD0iNzIy
NzQ1NzU4Ij4KIAkJCQkJCQkJCTxyZWZlcmVuY2Uga2V5PSJOU01lbnUiIHJlZj0iNzIwMDUzNzY0
Ii8+CkBAIC0xMzUyLDE0ICsxMzc0LDYgQEAKIAkJCQk8L29iamVjdD4KIAkJCQk8b2JqZWN0IGNs
YXNzPSJJQkNvbm5lY3Rpb25SZWNvcmQiPgogCQkJCQk8b2JqZWN0IGNsYXNzPSJJQkFjdGlvbkNv
bm5lY3Rpb24iIGtleT0iY29ubmVjdGlvbiI+Ci0JCQkJCQk8c3RyaW5nIGtleT0ibGFiZWwiPm5l
d1dpbmRvdzo8L3N0cmluZz4KLQkJCQkJCTxyZWZlcmVuY2Uga2V5PSJzb3VyY2UiIHJlZj0iMTAx
NCIvPgotCQkJCQkJPHJlZmVyZW5jZSBrZXk9ImRlc3RpbmF0aW9uIiByZWY9IjcwNTM0MTAyNSIv
PgotCQkJCQk8L29iamVjdD4KLQkJCQkJPGludCBrZXk9ImNvbm5lY3Rpb25JRCI+NTMzPC9pbnQ+
Ci0JCQkJPC9vYmplY3Q+Ci0JCQkJPG9iamVjdCBjbGFzcz0iSUJDb25uZWN0aW9uUmVjb3JkIj4K
LQkJCQkJPG9iamVjdCBjbGFzcz0iSUJBY3Rpb25Db25uZWN0aW9uIiBrZXk9ImNvbm5lY3Rpb24i
PgogCQkJCQkJPHN0cmluZyBrZXk9ImxhYmVsIj5mb3JjZVJlcGFpbnQ6PC9zdHJpbmc+CiAJCQkJ
CQk8cmVmZXJlbmNlIGtleT0ic291cmNlIiByZWY9IjEwMTQiLz4KIAkJCQkJCTxyZWZlcmVuY2Ug
a2V5PSJkZXN0aW5hdGlvbiIgcmVmPSI4NzgxNjU5MTkiLz4KQEAgLTE0MzAsNiArMTQ0NCwzMCBA
QAogCQkJCQk8L29iamVjdD4KIAkJCQkJPGludCBrZXk9ImNvbm5lY3Rpb25JRCI+NTcwPC9pbnQ+
CiAJCQkJPC9vYmplY3Q+CisJCQkJPG9iamVjdCBjbGFzcz0iSUJDb25uZWN0aW9uUmVjb3JkIj4K
KwkJCQkJPG9iamVjdCBjbGFzcz0iSUJBY3Rpb25Db25uZWN0aW9uIiBrZXk9ImNvbm5lY3Rpb24i
PgorCQkJCQkJPHN0cmluZyBrZXk9ImxhYmVsIj5uZXdXaW5kb3c6PC9zdHJpbmc+CisJCQkJCQk8
cmVmZXJlbmNlIGtleT0ic291cmNlIiByZWY9IjEwMTQiLz4KKwkJCQkJCTxyZWZlcmVuY2Uga2V5
PSJkZXN0aW5hdGlvbiIgcmVmPSI2MzI1NjY0MTMiLz4KKwkJCQkJPC9vYmplY3Q+CisJCQkJCTxp
bnQga2V5PSJjb25uZWN0aW9uSUQiPjU3MjwvaW50PgorCQkJCTwvb2JqZWN0PgorCQkJCTxvYmpl
Y3QgY2xhc3M9IklCQ29ubmVjdGlvblJlY29yZCI+CisJCQkJCTxvYmplY3QgY2xhc3M9IklCQWN0
aW9uQ29ubmVjdGlvbiIga2V5PSJjb25uZWN0aW9uIj4KKwkJCQkJCTxzdHJpbmcga2V5PSJsYWJl
bCI+bmV3V2luZG93Ojwvc3RyaW5nPgorCQkJCQkJPHJlZmVyZW5jZSBrZXk9InNvdXJjZSIgcmVm
PSIxMDE0Ii8+CisJCQkJCQk8cmVmZXJlbmNlIGtleT0iZGVzdGluYXRpb24iIHJlZj0iNTUyNjI2
NzYwIi8+CisJCQkJCTwvb2JqZWN0PgorCQkJCQk8aW50IGtleT0iY29ubmVjdGlvbklEIj41NzQ8
L2ludD4KKwkJCQk8L29iamVjdD4KKwkJCQk8b2JqZWN0IGNsYXNzPSJJQkNvbm5lY3Rpb25SZWNv
cmQiPgorCQkJCQk8b2JqZWN0IGNsYXNzPSJJQkFjdGlvbkNvbm5lY3Rpb24iIGtleT0iY29ubmVj
dGlvbiI+CisJCQkJCQk8c3RyaW5nIGtleT0ibGFiZWwiPm9wZW5Mb2NhdGlvbjo8L3N0cmluZz4K
KwkJCQkJCTxyZWZlcmVuY2Uga2V5PSJzb3VyY2UiIHJlZj0iMTAxNCIvPgorCQkJCQkJPHJlZmVy
ZW5jZSBrZXk9ImRlc3RpbmF0aW9uIiByZWY9IjcwNTM0MTAyNSIvPgorCQkJCQk8L29iamVjdD4K
KwkJCQkJPGludCBrZXk9ImNvbm5lY3Rpb25JRCI+NTc1PC9pbnQ+CisJCQkJPC9vYmplY3Q+CiAJ
CQk8L29iamVjdD4KIAkJCTxvYmplY3QgY2xhc3M9IklCTXV0YWJsZU9yZGVyZWRTZXQiIGtleT0i
b2JqZWN0UmVjb3JkcyI+CiAJCQkJPG9iamVjdCBjbGFzcz0iTlNBcnJheSIga2V5PSJvcmRlcmVk
T2JqZWN0cyI+CkBAIC0xNTI3LDYgKzE1NjUsOCBAQAogCQkJCQkJCTxyZWZlcmVuY2UgcmVmPSI0
MjUxNjQxNjgiLz4KIAkJCQkJCQk8cmVmZXJlbmNlIHJlZj0iNTc5OTcxNzEyIi8+CiAJCQkJCQkJ
PHJlZmVyZW5jZSByZWY9IjEwMTA0Njk5MjAiLz4KKwkJCQkJCQk8cmVmZXJlbmNlIHJlZj0iNjMy
NTY2NDEzIi8+CisJCQkJCQkJPHJlZmVyZW5jZSByZWY9IjU1MjYyNjc2MCIvPgogCQkJCQkJPC9v
YmplY3Q+CiAJCQkJCQk8cmVmZXJlbmNlIGtleT0icGFyZW50IiByZWY9IjM3OTgxNDYyMyIvPgog
CQkJCQk8L29iamVjdD4KQEAgLTIxNjUsNiArMjIwNSwxNiBAQAogCQkJCQkJPHJlZmVyZW5jZSBr
ZXk9Im9iamVjdCIgcmVmPSIxNTc3MjA5MiIvPgogCQkJCQkJPHJlZmVyZW5jZSBrZXk9InBhcmVu
dCIgcmVmPSI4NjUyMzIyNTkiLz4KIAkJCQkJPC9vYmplY3Q+CisJCQkJCTxvYmplY3QgY2xhc3M9
IklCT2JqZWN0UmVjb3JkIj4KKwkJCQkJCTxpbnQga2V5PSJvYmplY3RJRCI+NTcxPC9pbnQ+CisJ
CQkJCQk8cmVmZXJlbmNlIGtleT0ib2JqZWN0IiByZWY9IjYzMjU2NjQxMyIvPgorCQkJCQkJPHJl
ZmVyZW5jZSBrZXk9InBhcmVudCIgcmVmPSI3MjAwNTM3NjQiLz4KKwkJCQkJPC9vYmplY3Q+CisJ
CQkJCTxvYmplY3QgY2xhc3M9IklCT2JqZWN0UmVjb3JkIj4KKwkJCQkJCTxpbnQga2V5PSJvYmpl
Y3RJRCI+NTczPC9pbnQ+CisJCQkJCQk8cmVmZXJlbmNlIGtleT0ib2JqZWN0IiByZWY9IjU1MjYy
Njc2MCIvPgorCQkJCQkJPHJlZmVyZW5jZSBrZXk9InBhcmVudCIgcmVmPSI3MjAwNTM3NjQiLz4K
KwkJCQkJPC9vYmplY3Q+CiAJCQkJPC9vYmplY3Q+CiAJCQk8L29iamVjdD4KIAkJCTxvYmplY3Qg
Y2xhc3M9Ik5TTXV0YWJsZURpY3Rpb25hcnkiIGtleT0iZmxhdHRlbmVkUHJvcGVydGllcyI+CkBA
IC0yMjY1LDYgKzIzMTUsOCBAQAogCQkJCQk8c3RyaW5nPjU2OC5JQlBsdWdpbkRlcGVuZGVuY3k8
L3N0cmluZz4KIAkJCQkJPHN0cmluZz41NjkuSUJQbHVnaW5EZXBlbmRlbmN5PC9zdHJpbmc+CiAJ
CQkJCTxzdHJpbmc+NTcuSUJQbHVnaW5EZXBlbmRlbmN5PC9zdHJpbmc+CisJCQkJCTxzdHJpbmc+
NTcxLklCUGx1Z2luRGVwZW5kZW5jeTwvc3RyaW5nPgorCQkJCQk8c3RyaW5nPjU3My5JQlBsdWdp
bkRlcGVuZGVuY3k8L3N0cmluZz4KIAkJCQkJPHN0cmluZz41OC5JQlBsdWdpbkRlcGVuZGVuY3k8
L3N0cmluZz4KIAkJCQkJPHN0cmluZz43Mi5JQlBsdWdpbkRlcGVuZGVuY3k8L3N0cmluZz4KIAkJ
CQkJPHN0cmluZz43My5JQlBsdWdpbkRlcGVuZGVuY3k8L3N0cmluZz4KQEAgLTIzODgsNiArMjQ0
MCw4IEBACiAJCQkJCTxzdHJpbmc+Y29tLmFwcGxlLkludGVyZmFjZUJ1aWxkZXIuQ29jb2FQbHVn
aW48L3N0cmluZz4KIAkJCQkJPHN0cmluZz5jb20uYXBwbGUuSW50ZXJmYWNlQnVpbGRlci5Db2Nv
YVBsdWdpbjwvc3RyaW5nPgogCQkJCQk8c3RyaW5nPmNvbS5hcHBsZS5JbnRlcmZhY2VCdWlsZGVy
LkNvY29hUGx1Z2luPC9zdHJpbmc+CisJCQkJCTxzdHJpbmc+Y29tLmFwcGxlLkludGVyZmFjZUJ1
aWxkZXIuQ29jb2FQbHVnaW48L3N0cmluZz4KKwkJCQkJPHN0cmluZz5jb20uYXBwbGUuSW50ZXJm
YWNlQnVpbGRlci5Db2NvYVBsdWdpbjwvc3RyaW5nPgogCQkJCTwvb2JqZWN0PgogCQkJPC9vYmpl
Y3Q+CiAJCQk8b2JqZWN0IGNsYXNzPSJOU011dGFibGVEaWN0aW9uYXJ5IiBrZXk9InVubG9jYWxp
emVkUHJvcGVydGllcyI+CkBAIC0yNDAyLDcgKzI0NTYsNyBAQAogCQkJCTxyZWZlcmVuY2Uga2V5
PSJkaWN0LnZhbHVlcyIgcmVmPSIwIi8+CiAJCQk8L29iamVjdD4KIAkJCTxuaWwga2V5PSJzb3Vy
Y2VJRCIvPgotCQkJPGludCBrZXk9Im1heElEIj41NzA8L2ludD4KKwkJCTxpbnQga2V5PSJtYXhJ
RCI+NTc1PC9pbnQ+CiAJCTwvb2JqZWN0PgogCQk8b2JqZWN0IGNsYXNzPSJJQkNsYXNzRGVzY3Jp
YmVyIiBrZXk9IklCRG9jdW1lbnQuQ2xhc3NlcyI+CiAJCQk8b2JqZWN0IGNsYXNzPSJOU011dGFi
bGVBcnJheSIga2V5PSJyZWZlcmVuY2VkUGFydGlhbENsYXNzRGVzY3JpcHRpb25zIj4KQEAgLTI0
MTksMTE5ICsyNDczLDE0IEBACiAJCQkJCTxzdHJpbmcga2V5PSJjbGFzc05hbWUiPkJyb3dzZXJX
aW5kb3dDb250cm9sbGVyPC9zdHJpbmc+CiAJCQkJCTxzdHJpbmcga2V5PSJzdXBlcmNsYXNzTmFt
ZSI+TlNXaW5kb3dDb250cm9sbGVyPC9zdHJpbmc+CiAJCQkJCTxvYmplY3QgY2xhc3M9Ik5TTXV0
YWJsZURpY3Rpb25hcnkiIGtleT0iYWN0aW9ucyI+Ci0JCQkJCQk8Ym9vbCBrZXk9IkVuY29kZWRX
aXRoWE1MQ29kZXIiPllFUzwvYm9vbD4KLQkJCQkJCTxvYmplY3QgY2xhc3M9Ik5TQXJyYXkiIGtl
eT0iZGljdC5zb3J0ZWRLZXlzIj4KLQkJCQkJCQk8Ym9vbCBrZXk9IkVuY29kZWRXaXRoWE1MQ29k
ZXIiPllFUzwvYm9vbD4KLQkJCQkJCQk8c3RyaW5nPmR1bXBTb3VyY2VUb0NvbnNvbGU6PC9zdHJp
bmc+Ci0JCQkJCQkJPHN0cmluZz5mZXRjaDo8L3N0cmluZz4KLQkJCQkJCQk8c3RyaW5nPmZpbmQ6
PC9zdHJpbmc+Ci0JCQkJCQkJPHN0cmluZz5mb3JjZVJlcGFpbnQ6PC9zdHJpbmc+Ci0JCQkJCQkJ
PHN0cmluZz5nb0JhY2s6PC9zdHJpbmc+Ci0JCQkJCQkJPHN0cmluZz5nb0ZvcndhcmQ6PC9zdHJp
bmc+Ci0JCQkJCQkJPHN0cmluZz5yZWxvYWQ6PC9zdHJpbmc+Ci0JCQkJCQkJPHN0cmluZz5yZW1v
dmVSZWluc2VydFdlYlZpZXc6PC9zdHJpbmc+Ci0JCQkJCQkJPHN0cmluZz5yZXNldFpvb206PC9z
dHJpbmc+Ci0JCQkJCQkJPHN0cmluZz5zaG93SGlkZVdlYlZpZXc6PC9zdHJpbmc+Ci0JCQkJCQkJ
PHN0cmluZz50b2dnbGVQYWdpbmF0aW9uTW9kZTo8L3N0cmluZz4KLQkJCQkJCQk8c3RyaW5nPnRv
Z2dsZVpvb21Nb2RlOjwvc3RyaW5nPgotCQkJCQkJCTxzdHJpbmc+em9vbUluOjwvc3RyaW5nPgot
CQkJCQkJCTxzdHJpbmc+em9vbU91dDo8L3N0cmluZz4KLQkJCQkJCTwvb2JqZWN0PgotCQkJCQkJ
PG9iamVjdCBjbGFzcz0iTlNBcnJheSIga2V5PSJkaWN0LnZhbHVlcyI+Ci0JCQkJCQkJPGJvb2wg
a2V5PSJFbmNvZGVkV2l0aFhNTENvZGVyIj5ZRVM8L2Jvb2w+Ci0JCQkJCQkJPHN0cmluZz5pZDwv
c3RyaW5nPgotCQkJCQkJCTxzdHJpbmc+aWQ8L3N0cmluZz4KLQkJCQkJCQk8c3RyaW5nPmlkPC9z
dHJpbmc+Ci0JCQkJCQkJPHN0cmluZz5pZDwvc3RyaW5nPgotCQkJCQkJCTxzdHJpbmc+aWQ8L3N0
cmluZz4KLQkJCQkJCQk8c3RyaW5nPmlkPC9zdHJpbmc+Ci0JCQkJCQkJPHN0cmluZz5pZDwvc3Ry
aW5nPgotCQkJCQkJCTxzdHJpbmc+aWQ8L3N0cmluZz4KLQkJCQkJCQk8c3RyaW5nPmlkPC9zdHJp
bmc+Ci0JCQkJCQkJPHN0cmluZz5pZDwvc3RyaW5nPgotCQkJCQkJCTxzdHJpbmc+aWQ8L3N0cmlu
Zz4KLQkJCQkJCQk8c3RyaW5nPmlkPC9zdHJpbmc+Ci0JCQkJCQkJPHN0cmluZz5pZDwvc3RyaW5n
PgotCQkJCQkJCTxzdHJpbmc+aWQ8L3N0cmluZz4KLQkJCQkJCTwvb2JqZWN0PgorCQkJCQkJPHN0
cmluZyBrZXk9Ik5TLmtleS4wIj5vcGVuTG9jYXRpb246PC9zdHJpbmc+CisJCQkJCQk8c3RyaW5n
IGtleT0iTlMub2JqZWN0LjAiPmlkPC9zdHJpbmc+CiAJCQkJCTwvb2JqZWN0PgogCQkJCQk8b2Jq
ZWN0IGNsYXNzPSJOU011dGFibGVEaWN0aW9uYXJ5IiBrZXk9ImFjdGlvbkluZm9zQnlOYW1lIj4K
LQkJCQkJCTxib29sIGtleT0iRW5jb2RlZFdpdGhYTUxDb2RlciI+WUVTPC9ib29sPgotCQkJCQkJ
PG9iamVjdCBjbGFzcz0iTlNBcnJheSIga2V5PSJkaWN0LnNvcnRlZEtleXMiPgotCQkJCQkJCTxi
b29sIGtleT0iRW5jb2RlZFdpdGhYTUxDb2RlciI+WUVTPC9ib29sPgotCQkJCQkJCTxzdHJpbmc+
ZHVtcFNvdXJjZVRvQ29uc29sZTo8L3N0cmluZz4KLQkJCQkJCQk8c3RyaW5nPmZldGNoOjwvc3Ry
aW5nPgotCQkJCQkJCTxzdHJpbmc+ZmluZDo8L3N0cmluZz4KLQkJCQkJCQk8c3RyaW5nPmZvcmNl
UmVwYWludDo8L3N0cmluZz4KLQkJCQkJCQk8c3RyaW5nPmdvQmFjazo8L3N0cmluZz4KLQkJCQkJ
CQk8c3RyaW5nPmdvRm9yd2FyZDo8L3N0cmluZz4KLQkJCQkJCQk8c3RyaW5nPnJlbG9hZDo8L3N0
cmluZz4KLQkJCQkJCQk8c3RyaW5nPnJlbW92ZVJlaW5zZXJ0V2ViVmlldzo8L3N0cmluZz4KLQkJ
CQkJCQk8c3RyaW5nPnJlc2V0Wm9vbTo8L3N0cmluZz4KLQkJCQkJCQk8c3RyaW5nPnNob3dIaWRl
V2ViVmlldzo8L3N0cmluZz4KLQkJCQkJCQk8c3RyaW5nPnRvZ2dsZVBhZ2luYXRpb25Nb2RlOjwv
c3RyaW5nPgotCQkJCQkJCTxzdHJpbmc+dG9nZ2xlWm9vbU1vZGU6PC9zdHJpbmc+Ci0JCQkJCQkJ
PHN0cmluZz56b29tSW46PC9zdHJpbmc+Ci0JCQkJCQkJPHN0cmluZz56b29tT3V0Ojwvc3RyaW5n
PgotCQkJCQkJPC9vYmplY3Q+Ci0JCQkJCQk8b2JqZWN0IGNsYXNzPSJOU0FycmF5IiBrZXk9ImRp
Y3QudmFsdWVzIj4KLQkJCQkJCQk8Ym9vbCBrZXk9IkVuY29kZWRXaXRoWE1MQ29kZXIiPllFUzwv
Ym9vbD4KLQkJCQkJCQk8b2JqZWN0IGNsYXNzPSJJQkFjdGlvbkluZm8iPgotCQkJCQkJCQk8c3Ry
aW5nIGtleT0ibmFtZSI+ZHVtcFNvdXJjZVRvQ29uc29sZTo8L3N0cmluZz4KLQkJCQkJCQkJPHN0
cmluZyBrZXk9ImNhbmRpZGF0ZUNsYXNzTmFtZSI+aWQ8L3N0cmluZz4KLQkJCQkJCQk8L29iamVj
dD4KLQkJCQkJCQk8b2JqZWN0IGNsYXNzPSJJQkFjdGlvbkluZm8iPgotCQkJCQkJCQk8c3RyaW5n
IGtleT0ibmFtZSI+ZmV0Y2g6PC9zdHJpbmc+Ci0JCQkJCQkJCTxzdHJpbmcga2V5PSJjYW5kaWRh
dGVDbGFzc05hbWUiPmlkPC9zdHJpbmc+Ci0JCQkJCQkJPC9vYmplY3Q+Ci0JCQkJCQkJPG9iamVj
dCBjbGFzcz0iSUJBY3Rpb25JbmZvIj4KLQkJCQkJCQkJPHN0cmluZyBrZXk9Im5hbWUiPmZpbmQ6
PC9zdHJpbmc+Ci0JCQkJCQkJCTxzdHJpbmcga2V5PSJjYW5kaWRhdGVDbGFzc05hbWUiPmlkPC9z
dHJpbmc+Ci0JCQkJCQkJPC9vYmplY3Q+Ci0JCQkJCQkJPG9iamVjdCBjbGFzcz0iSUJBY3Rpb25J
bmZvIj4KLQkJCQkJCQkJPHN0cmluZyBrZXk9Im5hbWUiPmZvcmNlUmVwYWludDo8L3N0cmluZz4K
LQkJCQkJCQkJPHN0cmluZyBrZXk9ImNhbmRpZGF0ZUNsYXNzTmFtZSI+aWQ8L3N0cmluZz4KLQkJ
CQkJCQk8L29iamVjdD4KLQkJCQkJCQk8b2JqZWN0IGNsYXNzPSJJQkFjdGlvbkluZm8iPgotCQkJ
CQkJCQk8c3RyaW5nIGtleT0ibmFtZSI+Z29CYWNrOjwvc3RyaW5nPgotCQkJCQkJCQk8c3RyaW5n
IGtleT0iY2FuZGlkYXRlQ2xhc3NOYW1lIj5pZDwvc3RyaW5nPgotCQkJCQkJCTwvb2JqZWN0Pgot
CQkJCQkJCTxvYmplY3QgY2xhc3M9IklCQWN0aW9uSW5mbyI+Ci0JCQkJCQkJCTxzdHJpbmcga2V5
PSJuYW1lIj5nb0ZvcndhcmQ6PC9zdHJpbmc+Ci0JCQkJCQkJCTxzdHJpbmcga2V5PSJjYW5kaWRh
dGVDbGFzc05hbWUiPmlkPC9zdHJpbmc+Ci0JCQkJCQkJPC9vYmplY3Q+Ci0JCQkJCQkJPG9iamVj
dCBjbGFzcz0iSUJBY3Rpb25JbmZvIj4KLQkJCQkJCQkJPHN0cmluZyBrZXk9Im5hbWUiPnJlbG9h
ZDo8L3N0cmluZz4KLQkJCQkJCQkJPHN0cmluZyBrZXk9ImNhbmRpZGF0ZUNsYXNzTmFtZSI+aWQ8
L3N0cmluZz4KLQkJCQkJCQk8L29iamVjdD4KLQkJCQkJCQk8b2JqZWN0IGNsYXNzPSJJQkFjdGlv
bkluZm8iPgotCQkJCQkJCQk8c3RyaW5nIGtleT0ibmFtZSI+cmVtb3ZlUmVpbnNlcnRXZWJWaWV3
Ojwvc3RyaW5nPgotCQkJCQkJCQk8c3RyaW5nIGtleT0iY2FuZGlkYXRlQ2xhc3NOYW1lIj5pZDwv
c3RyaW5nPgotCQkJCQkJCTwvb2JqZWN0PgotCQkJCQkJCTxvYmplY3QgY2xhc3M9IklCQWN0aW9u
SW5mbyI+Ci0JCQkJCQkJCTxzdHJpbmcga2V5PSJuYW1lIj5yZXNldFpvb206PC9zdHJpbmc+Ci0J
CQkJCQkJCTxzdHJpbmcga2V5PSJjYW5kaWRhdGVDbGFzc05hbWUiPmlkPC9zdHJpbmc+Ci0JCQkJ
CQkJPC9vYmplY3Q+Ci0JCQkJCQkJPG9iamVjdCBjbGFzcz0iSUJBY3Rpb25JbmZvIj4KLQkJCQkJ
CQkJPHN0cmluZyBrZXk9Im5hbWUiPnNob3dIaWRlV2ViVmlldzo8L3N0cmluZz4KLQkJCQkJCQkJ
PHN0cmluZyBrZXk9ImNhbmRpZGF0ZUNsYXNzTmFtZSI+aWQ8L3N0cmluZz4KLQkJCQkJCQk8L29i
amVjdD4KLQkJCQkJCQk8b2JqZWN0IGNsYXNzPSJJQkFjdGlvbkluZm8iPgotCQkJCQkJCQk8c3Ry
aW5nIGtleT0ibmFtZSI+dG9nZ2xlUGFnaW5hdGlvbk1vZGU6PC9zdHJpbmc+Ci0JCQkJCQkJCTxz
dHJpbmcga2V5PSJjYW5kaWRhdGVDbGFzc05hbWUiPmlkPC9zdHJpbmc+Ci0JCQkJCQkJPC9vYmpl
Y3Q+Ci0JCQkJCQkJPG9iamVjdCBjbGFzcz0iSUJBY3Rpb25JbmZvIj4KLQkJCQkJCQkJPHN0cmlu
ZyBrZXk9Im5hbWUiPnRvZ2dsZVpvb21Nb2RlOjwvc3RyaW5nPgotCQkJCQkJCQk8c3RyaW5nIGtl
eT0iY2FuZGlkYXRlQ2xhc3NOYW1lIj5pZDwvc3RyaW5nPgotCQkJCQkJCTwvb2JqZWN0PgotCQkJ
CQkJCTxvYmplY3QgY2xhc3M9IklCQWN0aW9uSW5mbyI+Ci0JCQkJCQkJCTxzdHJpbmcga2V5PSJu
YW1lIj56b29tSW46PC9zdHJpbmc+Ci0JCQkJCQkJCTxzdHJpbmcga2V5PSJjYW5kaWRhdGVDbGFz
c05hbWUiPmlkPC9zdHJpbmc+Ci0JCQkJCQkJPC9vYmplY3Q+Ci0JCQkJCQkJPG9iamVjdCBjbGFz
cz0iSUJBY3Rpb25JbmZvIj4KLQkJCQkJCQkJPHN0cmluZyBrZXk9Im5hbWUiPnpvb21PdXQ6PC9z
dHJpbmc+Ci0JCQkJCQkJCTxzdHJpbmcga2V5PSJjYW5kaWRhdGVDbGFzc05hbWUiPmlkPC9zdHJp
bmc+Ci0JCQkJCQkJPC9vYmplY3Q+CisJCQkJCQk8c3RyaW5nIGtleT0iTlMua2V5LjAiPm9wZW5M
b2NhdGlvbjo8L3N0cmluZz4KKwkJCQkJCTxvYmplY3QgY2xhc3M9IklCQWN0aW9uSW5mbyIga2V5
PSJOUy5vYmplY3QuMCI+CisJCQkJCQkJPHN0cmluZyBrZXk9Im5hbWUiPm9wZW5Mb2NhdGlvbjo8
L3N0cmluZz4KKwkJCQkJCQk8c3RyaW5nIGtleT0iY2FuZGlkYXRlQ2xhc3NOYW1lIj5pZDwvc3Ry
aW5nPgogCQkJCQkJPC9vYmplY3Q+CiAJCQkJCTwvb2JqZWN0PgogCQkJCQk8b2JqZWN0IGNsYXNz
PSJOU011dGFibGVEaWN0aW9uYXJ5IiBrZXk9Im91dGxldHMiPgpAQCAtMjY1MywxNyArMjYwMiwz
MyBAQAogCQkJCQk8L29iamVjdD4KIAkJCQk8L29iamVjdD4KIAkJCQk8b2JqZWN0IGNsYXNzPSJJ
QlBhcnRpYWxDbGFzc0Rlc2NyaXB0aW9uIj4KLQkJCQkJPHN0cmluZyBrZXk9ImNsYXNzTmFtZSI+
TlNEb2N1bWVudDwvc3RyaW5nPgorCQkJCQk8c3RyaW5nIGtleT0iY2xhc3NOYW1lIj5OU0RvY3Vt
ZW50Q29udHJvbGxlcjwvc3RyaW5nPgorCQkJCQk8b2JqZWN0IGNsYXNzPSJOU011dGFibGVEaWN0
aW9uYXJ5IiBrZXk9ImFjdGlvbnMiPgorCQkJCQkJPHN0cmluZyBrZXk9Ik5TLmtleS4wIj5fb3Bl
blJlY2VudERvY3VtZW50Ojwvc3RyaW5nPgorCQkJCQkJPHN0cmluZyBrZXk9Ik5TLm9iamVjdC4w
Ij5pZDwvc3RyaW5nPgorCQkJCQk8L29iamVjdD4KKwkJCQkJPG9iamVjdCBjbGFzcz0iTlNNdXRh
YmxlRGljdGlvbmFyeSIga2V5PSJhY3Rpb25JbmZvc0J5TmFtZSI+CisJCQkJCQk8c3RyaW5nIGtl
eT0iTlMua2V5LjAiPl9vcGVuUmVjZW50RG9jdW1lbnQ6PC9zdHJpbmc+CisJCQkJCQk8b2JqZWN0
IGNsYXNzPSJJQkFjdGlvbkluZm8iIGtleT0iTlMub2JqZWN0LjAiPgorCQkJCQkJCTxzdHJpbmcg
a2V5PSJuYW1lIj5fb3BlblJlY2VudERvY3VtZW50Ojwvc3RyaW5nPgorCQkJCQkJCTxzdHJpbmcg
a2V5PSJjYW5kaWRhdGVDbGFzc05hbWUiPmlkPC9zdHJpbmc+CisJCQkJCQk8L29iamVjdD4KKwkJ
CQkJPC9vYmplY3Q+CisJCQkJCTxvYmplY3QgY2xhc3M9IklCQ2xhc3NEZXNjcmlwdGlvblNvdXJj
ZSIga2V5PSJzb3VyY2VJZGVudGlmaWVyIj4KKwkJCQkJCTxzdHJpbmcga2V5PSJtYWpvcktleSI+
SUJQcm9qZWN0U291cmNlPC9zdHJpbmc+CisJCQkJCQk8c3RyaW5nIGtleT0ibWlub3JLZXkiPi4v
Q2xhc3Nlcy9OU0RvY3VtZW50Q29udHJvbGxlci5oPC9zdHJpbmc+CisJCQkJCTwvb2JqZWN0Pgor
CQkJCTwvb2JqZWN0PgorCQkJCTxvYmplY3QgY2xhc3M9IklCUGFydGlhbENsYXNzRGVzY3JpcHRp
b24iPgorCQkJCQk8c3RyaW5nIGtleT0iY2xhc3NOYW1lIj5XZWJWaWV3PC9zdHJpbmc+CiAJCQkJ
CTxvYmplY3QgY2xhc3M9Ik5TTXV0YWJsZURpY3Rpb25hcnkiIGtleT0iYWN0aW9ucyI+CiAJCQkJ
CQk8Ym9vbCBrZXk9IkVuY29kZWRXaXRoWE1MQ29kZXIiPllFUzwvYm9vbD4KIAkJCQkJCTxvYmpl
Y3QgY2xhc3M9Ik5TQXJyYXkiIGtleT0iZGljdC5zb3J0ZWRLZXlzIj4KIAkJCQkJCQk8Ym9vbCBr
ZXk9IkVuY29kZWRXaXRoWE1MQ29kZXIiPllFUzwvYm9vbD4KLQkJCQkJCQk8c3RyaW5nPnByaW50
RG9jdW1lbnQ6PC9zdHJpbmc+Ci0JCQkJCQkJPHN0cmluZz5yZXZlcnREb2N1bWVudFRvU2F2ZWQ6
PC9zdHJpbmc+Ci0JCQkJCQkJPHN0cmluZz5ydW5QYWdlTGF5b3V0Ojwvc3RyaW5nPgotCQkJCQkJ
CTxzdHJpbmc+c2F2ZURvY3VtZW50Ojwvc3RyaW5nPgotCQkJCQkJCTxzdHJpbmc+c2F2ZURvY3Vt
ZW50QXM6PC9zdHJpbmc+Ci0JCQkJCQkJPHN0cmluZz5zYXZlRG9jdW1lbnRUbzo8L3N0cmluZz4K
KwkJCQkJCQk8c3RyaW5nPnJlbG9hZEZyb21PcmlnaW46PC9zdHJpbmc+CisJCQkJCQkJPHN0cmlu
Zz5yZXNldFBhZ2Vab29tOjwvc3RyaW5nPgorCQkJCQkJCTxzdHJpbmc+em9vbVBhZ2VJbjo8L3N0
cmluZz4KKwkJCQkJCQk8c3RyaW5nPnpvb21QYWdlT3V0Ojwvc3RyaW5nPgogCQkJCQkJPC9vYmpl
Y3Q+CiAJCQkJCQk8b2JqZWN0IGNsYXNzPSJOU0FycmF5IiBrZXk9ImRpY3QudmFsdWVzIj4KIAkJ
CQkJCQk8Ym9vbCBrZXk9IkVuY29kZWRXaXRoWE1MQ29kZXIiPllFUzwvYm9vbD4KQEAgLTI2NzEs
NzAgKzI2MzYsNDAgQEAKIAkJCQkJCQk8c3RyaW5nPmlkPC9zdHJpbmc+CiAJCQkJCQkJPHN0cmlu
Zz5pZDwvc3RyaW5nPgogCQkJCQkJCTxzdHJpbmc+aWQ8L3N0cmluZz4KLQkJCQkJCQk8c3RyaW5n
PmlkPC9zdHJpbmc+Ci0JCQkJCQkJPHN0cmluZz5pZDwvc3RyaW5nPgogCQkJCQkJPC9vYmplY3Q+
CiAJCQkJCTwvb2JqZWN0PgogCQkJCQk8b2JqZWN0IGNsYXNzPSJOU011dGFibGVEaWN0aW9uYXJ5
IiBrZXk9ImFjdGlvbkluZm9zQnlOYW1lIj4KIAkJCQkJCTxib29sIGtleT0iRW5jb2RlZFdpdGhY
TUxDb2RlciI+WUVTPC9ib29sPgogCQkJCQkJPG9iamVjdCBjbGFzcz0iTlNBcnJheSIga2V5PSJk
aWN0LnNvcnRlZEtleXMiPgogCQkJCQkJCTxib29sIGtleT0iRW5jb2RlZFdpdGhYTUxDb2RlciI+
WUVTPC9ib29sPgotCQkJCQkJCTxzdHJpbmc+cHJpbnREb2N1bWVudDo8L3N0cmluZz4KLQkJCQkJ
CQk8c3RyaW5nPnJldmVydERvY3VtZW50VG9TYXZlZDo8L3N0cmluZz4KLQkJCQkJCQk8c3RyaW5n
PnJ1blBhZ2VMYXlvdXQ6PC9zdHJpbmc+Ci0JCQkJCQkJPHN0cmluZz5zYXZlRG9jdW1lbnQ6PC9z
dHJpbmc+Ci0JCQkJCQkJPHN0cmluZz5zYXZlRG9jdW1lbnRBczo8L3N0cmluZz4KLQkJCQkJCQk8
c3RyaW5nPnNhdmVEb2N1bWVudFRvOjwvc3RyaW5nPgorCQkJCQkJCTxzdHJpbmc+cmVsb2FkRnJv
bU9yaWdpbjo8L3N0cmluZz4KKwkJCQkJCQk8c3RyaW5nPnJlc2V0UGFnZVpvb206PC9zdHJpbmc+
CisJCQkJCQkJPHN0cmluZz56b29tUGFnZUluOjwvc3RyaW5nPgorCQkJCQkJCTxzdHJpbmc+em9v
bVBhZ2VPdXQ6PC9zdHJpbmc+CiAJCQkJCQk8L29iamVjdD4KIAkJCQkJCTxvYmplY3QgY2xhc3M9
Ik5TQXJyYXkiIGtleT0iZGljdC52YWx1ZXMiPgogCQkJCQkJCTxib29sIGtleT0iRW5jb2RlZFdp
dGhYTUxDb2RlciI+WUVTPC9ib29sPgogCQkJCQkJCTxvYmplY3QgY2xhc3M9IklCQWN0aW9uSW5m
byI+Ci0JCQkJCQkJCTxzdHJpbmcga2V5PSJuYW1lIj5wcmludERvY3VtZW50Ojwvc3RyaW5nPgor
CQkJCQkJCQk8c3RyaW5nIGtleT0ibmFtZSI+cmVsb2FkRnJvbU9yaWdpbjo8L3N0cmluZz4KIAkJ
CQkJCQkJPHN0cmluZyBrZXk9ImNhbmRpZGF0ZUNsYXNzTmFtZSI+aWQ8L3N0cmluZz4KIAkJCQkJ
CQk8L29iamVjdD4KIAkJCQkJCQk8b2JqZWN0IGNsYXNzPSJJQkFjdGlvbkluZm8iPgotCQkJCQkJ
CQk8c3RyaW5nIGtleT0ibmFtZSI+cmV2ZXJ0RG9jdW1lbnRUb1NhdmVkOjwvc3RyaW5nPgorCQkJ
CQkJCQk8c3RyaW5nIGtleT0ibmFtZSI+cmVzZXRQYWdlWm9vbTo8L3N0cmluZz4KIAkJCQkJCQkJ
PHN0cmluZyBrZXk9ImNhbmRpZGF0ZUNsYXNzTmFtZSI+aWQ8L3N0cmluZz4KIAkJCQkJCQk8L29i
amVjdD4KIAkJCQkJCQk8b2JqZWN0IGNsYXNzPSJJQkFjdGlvbkluZm8iPgotCQkJCQkJCQk8c3Ry
aW5nIGtleT0ibmFtZSI+cnVuUGFnZUxheW91dDo8L3N0cmluZz4KKwkJCQkJCQkJPHN0cmluZyBr
ZXk9Im5hbWUiPnpvb21QYWdlSW46PC9zdHJpbmc+CiAJCQkJCQkJCTxzdHJpbmcga2V5PSJjYW5k
aWRhdGVDbGFzc05hbWUiPmlkPC9zdHJpbmc+CiAJCQkJCQkJPC9vYmplY3Q+CiAJCQkJCQkJPG9i
amVjdCBjbGFzcz0iSUJBY3Rpb25JbmZvIj4KLQkJCQkJCQkJPHN0cmluZyBrZXk9Im5hbWUiPnNh
dmVEb2N1bWVudDo8L3N0cmluZz4KKwkJCQkJCQkJPHN0cmluZyBrZXk9Im5hbWUiPnpvb21QYWdl
T3V0Ojwvc3RyaW5nPgogCQkJCQkJCQk8c3RyaW5nIGtleT0iY2FuZGlkYXRlQ2xhc3NOYW1lIj5p
ZDwvc3RyaW5nPgogCQkJCQkJCTwvb2JqZWN0PgotCQkJCQkJCTxvYmplY3QgY2xhc3M9IklCQWN0
aW9uSW5mbyI+Ci0JCQkJCQkJCTxzdHJpbmcga2V5PSJuYW1lIj5zYXZlRG9jdW1lbnRBczo8L3N0
cmluZz4KLQkJCQkJCQkJPHN0cmluZyBrZXk9ImNhbmRpZGF0ZUNsYXNzTmFtZSI+aWQ8L3N0cmlu
Zz4KLQkJCQkJCQk8L29iamVjdD4KLQkJCQkJCQk8b2JqZWN0IGNsYXNzPSJJQkFjdGlvbkluZm8i
PgotCQkJCQkJCQk8c3RyaW5nIGtleT0ibmFtZSI+c2F2ZURvY3VtZW50VG86PC9zdHJpbmc+Ci0J
CQkJCQkJCTxzdHJpbmcga2V5PSJjYW5kaWRhdGVDbGFzc05hbWUiPmlkPC9zdHJpbmc+Ci0JCQkJ
CQkJPC9vYmplY3Q+Ci0JCQkJCQk8L29iamVjdD4KLQkJCQkJPC9vYmplY3Q+Ci0JCQkJCTxvYmpl
Y3QgY2xhc3M9IklCQ2xhc3NEZXNjcmlwdGlvblNvdXJjZSIga2V5PSJzb3VyY2VJZGVudGlmaWVy
Ij4KLQkJCQkJCTxzdHJpbmcga2V5PSJtYWpvcktleSI+SUJQcm9qZWN0U291cmNlPC9zdHJpbmc+
Ci0JCQkJCQk8c3RyaW5nIGtleT0ibWlub3JLZXkiPi4vQ2xhc3Nlcy9OU0RvY3VtZW50Lmg8L3N0
cmluZz4KLQkJCQkJPC9vYmplY3Q+Ci0JCQkJPC9vYmplY3Q+Ci0JCQkJPG9iamVjdCBjbGFzcz0i
SUJQYXJ0aWFsQ2xhc3NEZXNjcmlwdGlvbiI+Ci0JCQkJCTxzdHJpbmcga2V5PSJjbGFzc05hbWUi
Pk5TRG9jdW1lbnRDb250cm9sbGVyPC9zdHJpbmc+Ci0JCQkJCTxvYmplY3QgY2xhc3M9Ik5TTXV0
YWJsZURpY3Rpb25hcnkiIGtleT0iYWN0aW9ucyI+Ci0JCQkJCQk8c3RyaW5nIGtleT0iTlMua2V5
LjAiPl9vcGVuUmVjZW50RG9jdW1lbnQ6PC9zdHJpbmc+Ci0JCQkJCQk8c3RyaW5nIGtleT0iTlMu
b2JqZWN0LjAiPmlkPC9zdHJpbmc+Ci0JCQkJCTwvb2JqZWN0PgotCQkJCQk8b2JqZWN0IGNsYXNz
PSJOU011dGFibGVEaWN0aW9uYXJ5IiBrZXk9ImFjdGlvbkluZm9zQnlOYW1lIj4KLQkJCQkJCTxz
dHJpbmcga2V5PSJOUy5rZXkuMCI+X29wZW5SZWNlbnREb2N1bWVudDo8L3N0cmluZz4KLQkJCQkJ
CTxvYmplY3QgY2xhc3M9IklCQWN0aW9uSW5mbyIga2V5PSJOUy5vYmplY3QuMCI+Ci0JCQkJCQkJ
PHN0cmluZyBrZXk9Im5hbWUiPl9vcGVuUmVjZW50RG9jdW1lbnQ6PC9zdHJpbmc+Ci0JCQkJCQkJ
PHN0cmluZyBrZXk9ImNhbmRpZGF0ZUNsYXNzTmFtZSI+aWQ8L3N0cmluZz4KIAkJCQkJCTwvb2Jq
ZWN0PgogCQkJCQk8L29iamVjdD4KIAkJCQkJPG9iamVjdCBjbGFzcz0iSUJDbGFzc0Rlc2NyaXB0
aW9uU291cmNlIiBrZXk9InNvdXJjZUlkZW50aWZpZXIiPgogCQkJCQkJPHN0cmluZyBrZXk9Im1h
am9yS2V5Ij5JQlByb2plY3RTb3VyY2U8L3N0cmluZz4KLQkJCQkJCTxzdHJpbmcga2V5PSJtaW5v
cktleSI+Li9DbGFzc2VzL05TRG9jdW1lbnRDb250cm9sbGVyLmg8L3N0cmluZz4KKwkJCQkJCTxz
dHJpbmcga2V5PSJtaW5vcktleSI+Li9DbGFzc2VzL1dlYlZpZXcuaDwvc3RyaW5nPgogCQkJCQk8
L29iamVjdD4KIAkJCQk8L29iamVjdD4KIAkJCTwvb2JqZWN0PgpkaWZmIC0tZ2l0IGEvVG9vbHMv
TWluaUJyb3dzZXIvbWFjL1dLMUJyb3dzZXJXaW5kb3dDb250cm9sbGVyLmggYi9Ub29scy9NaW5p
QnJvd3Nlci9tYWMvV0sxQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZGFl
MmNhMjc4N2I4NDBiZGVjYTVlYzVkOGJlMmNiNzMxNjk2ZWI1Ci0tLSAvZGV2L251bGwKKysrIGIv
VG9vbHMvTWluaUJyb3dzZXIvbWFjL1dLMUJyb3dzZXJXaW5kb3dDb250cm9sbGVyLmgKQEAgLTAs
MCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgIkJyb3dzZXJXaW5kb3dDb250cm9sbGVy
LmgiCisKK0BjbGFzcyBXZWJWaWV3OworCitAaW50ZXJmYWNlIFdLMUJyb3dzZXJXaW5kb3dDb250
cm9sbGVyIDogQnJvd3NlcldpbmRvd0NvbnRyb2xsZXI8QnJvd3NlckNvbnRyb2xsZXI+IHsKKyAg
ICBXZWJWaWV3ICpfd2ViVmlldzsKK30KKworCitAZW5kCmRpZmYgLS1naXQgYS9Ub29scy9NaW5p
QnJvd3Nlci9tYWMvV0sxQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubSBiL1Rvb2xzL01pbmlCcm93
c2VyL21hYy9XSzFCcm93c2VyV2luZG93Q29udHJvbGxlci5tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI0YjRjNmE2
MWJhYjc1ZDU4NjkxZjM5ZGQyMDYzYjMyNGZiNTVkMTEKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29s
cy9NaW5pQnJvd3Nlci9tYWMvV0sxQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQpAQCAtMCwwICsx
LDI0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgIldLMUJyb3dzZXJXaW5kb3dDb250cm9sbGVy
LmgiCisKKyNpbXBvcnQgPFdlYktpdC9XZWJLaXQuaD4KKyNpbXBvcnQgIkFwcERlbGVnYXRlLmgi
CisKK0BpbnRlcmZhY2UgV0sxQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgKCkKK0BlbmQKKworQGlt
cGxlbWVudGF0aW9uIFdLMUJyb3dzZXJXaW5kb3dDb250cm9sbGVyCisKKy0gKHZvaWQpYXdha2VG
cm9tTmliCit7CisgICAgX3dlYlZpZXcgPSBbW1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
W2NvbnRhaW5lclZpZXcgYm91bmRzXV07CisgICAgW193ZWJWaWV3IHNldEF1dG9yZXNpemluZ01h
c2s6KE5TVmlld1dpZHRoU2l6YWJsZSB8IE5TVmlld0hlaWdodFNpemFibGUpXTsKKworICAgIC8v
IFNldCB0aGUgV2ViVmlldyBkZWxlZ2F0ZXMKKyAgICBbX3dlYlZpZXcgc2V0RnJhbWVMb2FkRGVs
ZWdhdGU6c2VsZl07CisgICAgW193ZWJWaWV3IHNldFVJRGVsZWdhdGU6c2VsZl07CisgICAgW193
ZWJWaWV3IHNldFJlc291cmNlTG9hZERlbGVnYXRlOnNlbGZdOworCisgICAgW2NvbnRhaW5lclZp
ZXcgYWRkU3Vidmlldzpfd2ViVmlld107Cit9CisKKy0gKHZvaWQpZGVhbGxvYworeworICAgIFtf
d2ViVmlldyByZWxlYXNlXTsKKworICAgIFtzdXBlciBkZWFsbG9jXTsKK30KKworLSAodm9pZCls
b2FkVVJMU3RyaW5nOihOU1N0cmluZyAqKXVybFN0cmluZworeworICAgIC8vIEZJWE1FOiBXZSBz
aG91bGRuJ3QgaGF2ZSB0byBzZXQgdGhlIHVybCB0ZXh0IGhlcmUuCisgICAgW3VybFRleHQgc2V0
U3RyaW5nVmFsdWU6dXJsU3RyaW5nXTsKKyAgICBbc2VsZiBmZXRjaDpuaWxdOworfQorCistIChJ
QkFjdGlvbilmZXRjaDooaWQpc2VuZGVyCit7CisgICAgW3VybFRleHQgc2V0U3RyaW5nVmFsdWU6
W3NlbGYgYWRkUHJvdG9jb2xJZk5lY2Vzc2FyeTpbdXJsVGV4dCBzdHJpbmdWYWx1ZV1dXTsKKyAg
ICBOU1VSTCAqdXJsID0gW05TVVJMIFVSTFdpdGhTdHJpbmc6W3VybFRleHQgc3RyaW5nVmFsdWVd
XTsKKyAgICBbW193ZWJWaWV3IG1haW5GcmFtZV0gbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCBy
ZXF1ZXN0V2l0aFVSTDp1cmxdXTsKK30KKworLSAoSUJBY3Rpb24pc2hvd0hpZGVXZWJWaWV3Oihp
ZClzZW5kZXIKK3sKKyAgICBCT09MIGhpZGRlbiA9ICFbX3dlYlZpZXcgaXNIaWRkZW5dOworICAg
IAorICAgIFtfd2ViVmlldyBzZXRIaWRkZW46aGlkZGVuXTsKK30KKworLSAoSUJBY3Rpb24pcmVt
b3ZlUmVpbnNlcnRXZWJWaWV3OihpZClzZW5kZXIKK3sKKyAgICBpZiAoW193ZWJWaWV3IHdpbmRv
d10pIHsKKyAgICAgICAgW193ZWJWaWV3IHJldGFpbl07CisgICAgICAgIFtfd2ViVmlldyByZW1v
dmVGcm9tU3VwZXJ2aWV3XTsgCisgICAgfSBlbHNlIHsKKyAgICAgICAgW2NvbnRhaW5lclZpZXcg
YWRkU3Vidmlldzpfd2ViVmlld107CisgICAgICAgIFtfd2ViVmlldyByZWxlYXNlXTsKKyAgICB9
Cit9CisKKy0gKEJPT0wpdmFsaWRhdGVNZW51SXRlbTooTlNNZW51SXRlbSAqKW1lbnVJdGVtCit7
CisgICAgU0VMIGFjdGlvbiA9IFttZW51SXRlbSBhY3Rpb25dOworCisgICAgaWYgKGFjdGlvbiA9
PSBAc2VsZWN0b3Ioem9vbUluOikpCisgICAgICAgIHJldHVybiBbc2VsZiBjYW5ab29tSW5dOwor
ICAgIGlmIChhY3Rpb24gPT0gQHNlbGVjdG9yKHpvb21PdXQ6KSkKKyAgICAgICAgcmV0dXJuIFtz
ZWxmIGNhblpvb21PdXRdOworICAgIGlmIChhY3Rpb24gPT0gQHNlbGVjdG9yKHJlc2V0Wm9vbTop
KQorICAgICAgICByZXR1cm4gW3NlbGYgY2FuUmVzZXRab29tXTsKKworICAgIGlmIChhY3Rpb24g
PT0gQHNlbGVjdG9yKHNob3dIaWRlV2ViVmlldzopKQorICAgICAgICBbbWVudUl0ZW0gc2V0VGl0
bGU6W193ZWJWaWV3IGlzSGlkZGVuXSA/IEAiU2hvdyBXZWIgVmlldyIgOiBAIkhpZGUgV2ViIFZp
ZXciXTsKKyAgICBlbHNlIGlmIChhY3Rpb24gPT0gQHNlbGVjdG9yKHJlbW92ZVJlaW5zZXJ0V2Vi
VmlldzopKQorICAgICAgICBbbWVudUl0ZW0gc2V0VGl0bGU6W193ZWJWaWV3IHdpbmRvd10gPyBA
IlJlbW92ZSBXZWIgVmlldyIgOiBAIkluc2VydCBXZWIgVmlldyJdOworICAgIGVsc2UgaWYgKGFj
dGlvbiA9PSBAc2VsZWN0b3IodG9nZ2xlWm9vbU1vZGU6KSkKKyAgICAgICAgW21lbnVJdGVtIHNl
dFN0YXRlOl96b29tVGV4dE9ubHkgPyBOU09uU3RhdGUgOiBOU09mZlN0YXRlXTsKKyAgICBlbHNl
IGlmIChbbWVudUl0ZW0gYWN0aW9uXSA9PSBAc2VsZWN0b3IodG9nZ2xlUGFnaW5hdGlvbk1vZGU6
KSkKKyAgICAgICAgW21lbnVJdGVtIHNldFN0YXRlOltzZWxmIGlzUGFnaW5hdGVkXSA/IE5TT25T
dGF0ZSA6IE5TT2ZmU3RhdGVdOworCisgICAgcmV0dXJuIFlFUzsKK30KKworLSAoSUJBY3Rpb24p
cmVsb2FkOihpZClzZW5kZXIKK3sKKyAgICBbX3dlYlZpZXcgcmVsb2FkOnNlbmRlcl07Cit9CisK
Ky0gKElCQWN0aW9uKWZvcmNlUmVwYWludDooaWQpc2VuZGVyCit7CisgICAgW193ZWJWaWV3IHNl
dE5lZWRzRGlzcGxheTpZRVNdOworfQorCistIChJQkFjdGlvbilnb0JhY2s6KGlkKXNlbmRlcgor
eworICAgIFtfd2ViVmlldyBnb0JhY2s6c2VuZGVyXTsKK30KKworLSAoSUJBY3Rpb24pZ29Gb3J3
YXJkOihpZClzZW5kZXIKK3sKKyAgICBbX3dlYlZpZXcgZ29Gb3J3YXJkOnNlbmRlcl07Cit9CisK
Ky0gKEJPT0wpdmFsaWRhdGVVc2VySW50ZXJmYWNlSXRlbTooaWQgPE5TVmFsaWRhdGVkVXNlcklu
dGVyZmFjZUl0ZW0+KWl0ZW0KK3sKKyAgICBTRUwgYWN0aW9uID0gW2l0ZW0gYWN0aW9uXTsKKwor
ICAgIGlmIChhY3Rpb24gPT0gQHNlbGVjdG9yKGdvQmFjazopKQorICAgICAgICByZXR1cm4gW193
ZWJWaWV3IGNhbkdvQmFja107CisgICAgCisgICAgaWYgKGFjdGlvbiA9PSBAc2VsZWN0b3IoZ29G
b3J3YXJkOikpCisgICAgICAgIHJldHVybiBbX3dlYlZpZXcgY2FuR29Gb3J3YXJkXTsKKyAgICAK
KyAgICByZXR1cm4gWUVTOworfQorCistICh2b2lkKXZhbGlkYXRlVG9vbGJhcgoreworICAgIFt0
b29sYmFyIHZhbGlkYXRlVmlzaWJsZUl0ZW1zXTsKK30KKworLSAoQk9PTCl3aW5kb3dTaG91bGRD
bG9zZTooaWQpc2VuZGVyCit7CisgICAgcmV0dXJuIFlFUzsKK30KKworLSAodm9pZCl3aW5kb3dX
aWxsQ2xvc2U6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCit7CisgICAgWyhCcm93c2Vy
QXBwRGVsZWdhdGUgKilbTlNBcHAgZGVsZWdhdGVdIGJyb3dzZXJXaW5kb3dXaWxsQ2xvc2U6W3Nl
bGYgd2luZG93XV07CisgICAgW3NlbGYgYXV0b3JlbGVhc2VdOworfQorCistICh2b2lkKWFwcGxp
Y2F0aW9uVGVybWluYXRpbmcKK3sKK30KKworLSAoZG91YmxlKWN1cnJlbnRab29tRmFjdG9yCit7
CisgICAgcmV0dXJuIDE7Cit9CisKKy0gKEJPT0wpY2FuWm9vbUluCit7CisgICAgcmV0dXJuIFtf
d2ViVmlldyBjYW5NYWtlVGV4dExhcmdlcl07Cit9CisKKy0gKHZvaWQpem9vbUluOihpZClzZW5k
ZXIKK3sKKyAgICBpZiAoIVtzZWxmIGNhblpvb21Jbl0pCisgICAgICAgIHJldHVybjsKKworICAg
IFtfd2ViVmlldyBtYWtlVGV4dExhcmdlcjpzZW5kZXJdOworfQorCistIChCT09MKWNhblpvb21P
dXQKK3sKKyAgICByZXR1cm4gW193ZWJWaWV3IGNhbk1ha2VUZXh0U21hbGxlcl07Cit9CisKKy0g
KHZvaWQpem9vbU91dDooaWQpc2VuZGVyCit7CisgICAgaWYgKCFbc2VsZiBjYW5ab29tSW5dKQor
ICAgICAgICByZXR1cm47CisKKyAgICBbX3dlYlZpZXcgbWFrZVRleHRTbWFsbGVyOnNlbmRlcl07
Cit9CisKKy0gKEJPT0wpY2FuUmVzZXRab29tCit7CisgICAgcmV0dXJuIFtfd2ViVmlldyBjYW5N
YWtlVGV4dFN0YW5kYXJkU2l6ZV07Cit9CisKKy0gKHZvaWQpcmVzZXRab29tOihpZClzZW5kZXIK
K3sKKyAgICBpZiAoIVtzZWxmIGNhblJlc2V0Wm9vbV0pCisgICAgICAgIHJldHVybjsKKworICAg
IFtfd2ViVmlldyBtYWtlVGV4dFN0YW5kYXJkU2l6ZTpzZW5kZXJdOworfQorCistIChJQkFjdGlv
bil0b2dnbGVab29tTW9kZTooaWQpc2VuZGVyCit7CisgICAgLy8gRklYTUU6IG5vbi10ZXh0IHpv
b20gbm90IGltcGxlbWVudGVkLgorICAgIF96b29tVGV4dE9ubHkgPSAhX3pvb21UZXh0T25seTsK
K30KKworLSAoQk9PTClpc1BhZ2luYXRlZAoreworICAgIHJldHVybiBOTzsKK30KKworLSAoSUJB
Y3Rpb24pdG9nZ2xlUGFnaW5hdGlvbk1vZGU6KGlkKXNlbmRlcgoreworfQorCistIChJQkFjdGlv
bilmaW5kOihpZClzZW5kZXIKK3sKK30KKworLSAoSUJBY3Rpb24pZHVtcFNvdXJjZVRvQ29uc29s
ZTooaWQpc2VuZGVyCit7Cit9CisKKy8vIFdlYkZyYW1lTG9hZERlbGVnYXRlIE1ldGhvZHMKKy0g
KHZvaWQpd2ViVmlldzooV2ViVmlldyAqKXNlbmRlciBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZv
ckZyYW1lOihXZWJGcmFtZSAqKWZyYW1lCit7Cit9CisKKy0gKHZvaWQpd2ViVmlldzooV2ViVmll
dyAqKXNlbmRlciBkaWRSZWNlaXZlVGl0bGU6KE5TU3RyaW5nICopdGl0bGUgZm9yRnJhbWU6KFdl
YkZyYW1lICopZnJhbWUKK3sKKyAgICBpZiAoZnJhbWUgIT0gW3NlbmRlciBtYWluRnJhbWVdKQor
ICAgICAgICByZXR1cm47CisKKyAgICBbW3NlbGYgd2luZG93XSBzZXRUaXRsZTpbdGl0bGUgc3Ry
aW5nQnlBcHBlbmRpbmdTdHJpbmc6QCIgW1dLMV0iXV07Cit9CisKK0BlbmQKZGlmZiAtLWdpdCBh
L1Rvb2xzL01pbmlCcm93c2VyL21hYy9XSzJCcm93c2VyV2luZG93Q29udHJvbGxlci5oIGIvVG9v
bHMvTWluaUJyb3dzZXIvbWFjL1dLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uODQwZjA4MjczMWQ5ODRiNThlYWNjMjgwODg4NjYzMTg4YzQ4MWQzZQotLS0gL2Rldi9udWxs
CisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL21hYy9XSzJCcm93c2VyV2luZG93Q29udHJvbGxlci5o
CkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJCcm93c2VyV2luZG93Q29u
dHJvbGxlci5oIgorCitAaW50ZXJmYWNlIFdLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyIDogQnJv
d3NlcldpbmRvd0NvbnRyb2xsZXI8QnJvd3NlckNvbnRyb2xsZXI+IHsKKyAgICBXS0NvbnRleHRS
ZWYgX2NvbnRleHQ7CisgICAgV0tQYWdlR3JvdXBSZWYgX3BhZ2VHcm91cDsKKyAgICBXS1ZpZXcg
Kl93ZWJWaWV3OworfQorCistIChpZClpbml0V2l0aENvbnRleHQ6KFdLQ29udGV4dFJlZiljb250
ZXh0IHBhZ2VHcm91cDooV0tQYWdlR3JvdXBSZWYpcGFnZUdyb3VwOworCitAZW5kCmRpZmYgLS1n
aXQgYS9Ub29scy9NaW5pQnJvd3Nlci9tYWMvV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubSBi
L1Rvb2xzL01pbmlCcm93c2VyL21hYy9XSzJCcm93c2VyV2luZG93Q29udHJvbGxlci5tCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjhkYjlhMjQwOGFkZWE4MzAxZTcyZTgxODBhNmUwYzY5M2M4ZTYxM2MKLS0tIC9kZXYv
bnVsbAorKysgYi9Ub29scy9NaW5pQnJvd3Nlci9tYWMvV0syQnJvd3NlcldpbmRvd0NvbnRyb2xs
ZXIubQpAQCAtMCwwICsxLDgwOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgIldLMkJyb3dzZXJX
aW5kb3dDb250cm9sbGVyLmgiCisKKyNpbXBvcnQgIkFwcERlbGVnYXRlLmgiCisjaW1wb3J0IDxX
ZWJLaXQyL1dLUGFnZVByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdDIvV0tTdHJpbmdDRi5oPgor
I2ltcG9ydCA8V2ViS2l0Mi9XS1VSTENGLmg+CisjaW1wb3J0IDxXZWJLaXQyL1dLVmlld1ByaXZh
dGUuaD4KKworQGludGVyZmFjZSBXSzJCcm93c2VyV2luZG93Q29udHJvbGxlciAoKQorLSAodm9p
ZClkaWRTdGFydFByb2dyZXNzOworLSAodm9pZClkaWRDaGFuZ2VQcm9ncmVzczooZG91YmxlKXZh
bHVlOworLSAodm9pZClkaWRGaW5pc2hQcm9ncmVzczsKKy0gKHZvaWQpZGlkU3RhcnRQcm92aXNp
b25hbExvYWRGb3JGcmFtZTooV0tGcmFtZVJlZilmcmFtZTsKKy0gKHZvaWQpZGlkQ29tbWl0TG9h
ZEZvckZyYW1lOihXS0ZyYW1lUmVmKWZyYW1lOworLSAodm9pZClkaWRSZWNlaXZlU2VydmVyUmVk
aXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZTooV0tGcmFtZVJlZilmcmFtZTsKKy0gKHZv
aWQpZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJvckZvckZyYW1lOihXS0ZyYW1lUmVmKWZy
YW1lOworLSAodm9pZClkaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lOihXS0ZyYW1lUmVmKWZy
YW1lOworLSAodm9pZClkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWU6KFdLRnJhbWVS
ZWYpZnJhbWU7CistIChCT09MKWlzUGFnaW5hdGVkOworQGVuZAorCitAaW1wbGVtZW50YXRpb24g
V0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIKKworLSAoaWQpaW5pdFdpdGhDb250ZXh0OihXS0Nv
bnRleHRSZWYpY29udGV4dCBwYWdlR3JvdXA6KFdLUGFnZUdyb3VwUmVmKXBhZ2VHcm91cAorewor
ICAgIGlmICgoc2VsZiA9IFtzdXBlciBpbml0V2l0aFdpbmRvd05pYk5hbWU6QCJCcm93c2VyV2lu
ZG93Il0pKSB7CisgICAgICAgIF9jb250ZXh0ID0gV0tSZXRhaW4oY29udGV4dCk7CisgICAgICAg
IF9wYWdlR3JvdXAgPSBXS1JldGFpbihwYWdlR3JvdXApOworICAgICAgICBfem9vbVRleHRPbmx5
ID0gTk87CisgICAgfQorICAgIAorICAgIHJldHVybiBzZWxmOworfQorCistICh2b2lkKWRlYWxs
b2MKK3sKKyAgICBXS1JlbGVhc2UoX2NvbnRleHQpOworICAgIFdLUmVsZWFzZShfcGFnZUdyb3Vw
KTsKKyAgICBbX3dlYlZpZXcgcmVsZWFzZV07CisKKyAgICBbc3VwZXIgZGVhbGxvY107Cit9CisK
Ky0gKElCQWN0aW9uKWZldGNoOihpZClzZW5kZXIKK3sKKyAgICBbdXJsVGV4dCBzZXRTdHJpbmdW
YWx1ZTpbc2VsZiBhZGRQcm90b2NvbElmTmVjZXNzYXJ5Olt1cmxUZXh0IHN0cmluZ1ZhbHVlXV1d
OworCisgICAgQ0ZVUkxSZWYgY2ZVUkwgPSBDRlVSTENyZWF0ZVdpdGhTdHJpbmcoMCwgKENGU3Ry
aW5nUmVmKVt1cmxUZXh0IHN0cmluZ1ZhbHVlXSwgMCk7CisgICAgaWYgKCFjZlVSTCkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgV0tVUkxSZWYgdXJsID0gV0tVUkxDcmVhdGVXaXRoQ0ZVUkwoY2ZV
UkwpOworICAgIENGUmVsZWFzZShjZlVSTCk7CisKKyAgICBXS1BhZ2VMb2FkVVJMKF93ZWJWaWV3
LnBhZ2VSZWYsIHVybCk7CisgICAgV0tSZWxlYXNlKHVybCk7Cit9CisKKy0gKElCQWN0aW9uKXNo
b3dIaWRlV2ViVmlldzooaWQpc2VuZGVyCit7CisgICAgQk9PTCBoaWRkZW4gPSAhW193ZWJWaWV3
IGlzSGlkZGVuXTsKKyAgICAKKyAgICBbX3dlYlZpZXcgc2V0SGlkZGVuOmhpZGRlbl07Cit9CisK
Ky0gKElCQWN0aW9uKXJlbW92ZVJlaW5zZXJ0V2ViVmlldzooaWQpc2VuZGVyCit7CisgICAgaWYg
KFtfd2ViVmlldyB3aW5kb3ddKSB7CisgICAgICAgIFtfd2ViVmlldyByZXRhaW5dOworICAgICAg
ICBbX3dlYlZpZXcgcmVtb3ZlRnJvbVN1cGVydmlld107IAorICAgIH0gZWxzZSB7CisgICAgICAg
IFtjb250YWluZXJWaWV3IGFkZFN1YnZpZXc6X3dlYlZpZXddOworICAgICAgICBbX3dlYlZpZXcg
cmVsZWFzZV07CisgICAgfQorfQorCistIChCT09MKXZhbGlkYXRlTWVudUl0ZW06KE5TTWVudUl0
ZW0gKiltZW51SXRlbQoreworICAgIFNFTCBhY3Rpb24gPSBbbWVudUl0ZW0gYWN0aW9uXTsKKwor
ICAgIGlmIChhY3Rpb24gPT0gQHNlbGVjdG9yKHpvb21JbjopKQorICAgICAgICByZXR1cm4gW3Nl
bGYgY2FuWm9vbUluXTsKKyAgICBpZiAoYWN0aW9uID09IEBzZWxlY3Rvcih6b29tT3V0OikpCisg
ICAgICAgIHJldHVybiBbc2VsZiBjYW5ab29tT3V0XTsKKyAgICBpZiAoYWN0aW9uID09IEBzZWxl
Y3RvcihyZXNldFpvb206KSkKKyAgICAgICAgcmV0dXJuIFtzZWxmIGNhblJlc2V0Wm9vbV07CisK
KyAgICBpZiAoYWN0aW9uID09IEBzZWxlY3RvcihzaG93SGlkZVdlYlZpZXc6KSkKKyAgICAgICAg
W21lbnVJdGVtIHNldFRpdGxlOltfd2ViVmlldyBpc0hpZGRlbl0gPyBAIlNob3cgV2ViIFZpZXci
IDogQCJIaWRlIFdlYiBWaWV3Il07CisgICAgZWxzZSBpZiAoYWN0aW9uID09IEBzZWxlY3Rvcihy
ZW1vdmVSZWluc2VydFdlYlZpZXc6KSkKKyAgICAgICAgW21lbnVJdGVtIHNldFRpdGxlOltfd2Vi
VmlldyB3aW5kb3ddID8gQCJSZW1vdmUgV2ViIFZpZXciIDogQCJJbnNlcnQgV2ViIFZpZXciXTsK
KyAgICBlbHNlIGlmIChhY3Rpb24gPT0gQHNlbGVjdG9yKHRvZ2dsZVpvb21Nb2RlOikpCisgICAg
ICAgIFttZW51SXRlbSBzZXRTdGF0ZTpfem9vbVRleHRPbmx5ID8gTlNPblN0YXRlIDogTlNPZmZT
dGF0ZV07CisgICAgZWxzZSBpZiAoW21lbnVJdGVtIGFjdGlvbl0gPT0gQHNlbGVjdG9yKHRvZ2ds
ZVBhZ2luYXRpb25Nb2RlOikpCisgICAgICAgIFttZW51SXRlbSBzZXRTdGF0ZTpbc2VsZiBpc1Bh
Z2luYXRlZF0gPyBOU09uU3RhdGUgOiBOU09mZlN0YXRlXTsKKworICAgIHJldHVybiBZRVM7Cit9
CisKKy0gKElCQWN0aW9uKXJlbG9hZDooaWQpc2VuZGVyCit7CisgICAgV0tQYWdlUmVsb2FkKF93
ZWJWaWV3LnBhZ2VSZWYpOworfQorCistIChJQkFjdGlvbilmb3JjZVJlcGFpbnQ6KGlkKXNlbmRl
cgoreworICAgIFtfd2ViVmlldyBzZXROZWVkc0Rpc3BsYXk6WUVTXTsKK30KKworLSAoSUJBY3Rp
b24pZ29CYWNrOihpZClzZW5kZXIKK3sKKyAgICBXS1BhZ2VHb0JhY2soX3dlYlZpZXcucGFnZVJl
Zik7Cit9CisKKy0gKElCQWN0aW9uKWdvRm9yd2FyZDooaWQpc2VuZGVyCit7CisgICAgV0tQYWdl
R29Gb3J3YXJkKF93ZWJWaWV3LnBhZ2VSZWYpOworfQorCistIChCT09MKXZhbGlkYXRlVXNlcklu
dGVyZmFjZUl0ZW06KGlkIDxOU1ZhbGlkYXRlZFVzZXJJbnRlcmZhY2VJdGVtPilpdGVtCit7Cisg
ICAgU0VMIGFjdGlvbiA9IFtpdGVtIGFjdGlvbl07CisKKyAgICBpZiAoYWN0aW9uID09IEBzZWxl
Y3Rvcihnb0JhY2s6KSkKKyAgICAgICAgcmV0dXJuIF93ZWJWaWV3ICYmIFdLUGFnZUNhbkdvQmFj
ayhfd2ViVmlldy5wYWdlUmVmKTsKKyAgICAKKyAgICBpZiAoYWN0aW9uID09IEBzZWxlY3Rvcihn
b0ZvcndhcmQ6KSkKKyAgICAgICAgcmV0dXJuIF93ZWJWaWV3ICYmIFdLUGFnZUNhbkdvRm9yd2Fy
ZChfd2ViVmlldy5wYWdlUmVmKTsKKyAgICAKKyAgICByZXR1cm4gWUVTOworfQorCistICh2b2lk
KXZhbGlkYXRlVG9vbGJhcgoreworICAgIFt0b29sYmFyIHZhbGlkYXRlVmlzaWJsZUl0ZW1zXTsK
K30KKworLSAoQk9PTCl3aW5kb3dTaG91bGRDbG9zZTooaWQpc2VuZGVyCit7CisgICAgTE9HKEAi
d2luZG93U2hvdWxkQ2xvc2UiKTsKKyAgICBCT09MIGNhbkNsb3NlSW1tZWRpYXRlbHkgPSBXS1Bh
Z2VUcnlDbG9zZShfd2ViVmlldy5wYWdlUmVmKTsKKyAgICByZXR1cm4gY2FuQ2xvc2VJbW1lZGlh
dGVseTsKK30KKworLSAodm9pZCl3aW5kb3dXaWxsQ2xvc2U6KE5TTm90aWZpY2F0aW9uICopbm90
aWZpY2F0aW9uCit7CisgICAgWyhCcm93c2VyQXBwRGVsZWdhdGUgKilbTlNBcHAgZGVsZWdhdGVd
IGJyb3dzZXJXaW5kb3dXaWxsQ2xvc2U6W3NlbGYgd2luZG93XV07CisgICAgW3NlbGYgYXV0b3Jl
bGVhc2VdOworfQorCistICh2b2lkKWFwcGxpY2F0aW9uVGVybWluYXRpbmcKK3sKKyAgICAvLyBG
SVhNRTogV2h5IGFyZSB3ZSBib3RoZXJpbmcgdG8gY2xvc2UgdGhlIHBhZ2U/IFRoaXMgZG9lc24n
dCBldmVuIHByZXZlbnQgTEVBSyBvdXRwdXQuCisgICAgV0tQYWdlQ2xvc2UoX3dlYlZpZXcucGFn
ZVJlZik7Cit9CisKKyNkZWZpbmUgRGVmYXVsdE1pbmltdW1ab29tRmFjdG9yICguNSkKKyNkZWZp
bmUgRGVmYXVsdE1heGltdW1ab29tRmFjdG9yICgzLjApCisjZGVmaW5lIERlZmF1bHRab29tRmFj
dG9yUmF0aW8gKDEuMikKKworLSAoZG91YmxlKWN1cnJlbnRab29tRmFjdG9yCit7CisgICAgcmV0
dXJuIF96b29tVGV4dE9ubHkgPyBXS1BhZ2VHZXRUZXh0Wm9vbUZhY3Rvcihfd2ViVmlldy5wYWdl
UmVmKSA6IFdLUGFnZUdldFBhZ2Vab29tRmFjdG9yKF93ZWJWaWV3LnBhZ2VSZWYpOworfQorCist
ICh2b2lkKXNldEN1cnJlbnRab29tRmFjdG9yOihkb3VibGUpZmFjdG9yCit7CisgICAgX3pvb21U
ZXh0T25seSA/IFdLUGFnZVNldFRleHRab29tRmFjdG9yKF93ZWJWaWV3LnBhZ2VSZWYsIGZhY3Rv
cikgOiBXS1BhZ2VTZXRQYWdlWm9vbUZhY3Rvcihfd2ViVmlldy5wYWdlUmVmLCBmYWN0b3IpOwor
fQorCistIChCT09MKWNhblpvb21JbgoreworICAgIHJldHVybiBbc2VsZiBjdXJyZW50Wm9vbUZh
Y3Rvcl0gKiBEZWZhdWx0Wm9vbUZhY3RvclJhdGlvIDwgRGVmYXVsdE1heGltdW1ab29tRmFjdG9y
OworfQorCistICh2b2lkKXpvb21JbjooaWQpc2VuZGVyCit7CisgICAgaWYgKCFbc2VsZiBjYW5a
b29tSW5dKQorICAgICAgICByZXR1cm47CisKKyAgICBkb3VibGUgZmFjdG9yID0gW3NlbGYgY3Vy
cmVudFpvb21GYWN0b3JdICogRGVmYXVsdFpvb21GYWN0b3JSYXRpbzsKKyAgICBbc2VsZiBzZXRD
dXJyZW50Wm9vbUZhY3RvcjpmYWN0b3JdOworfQorCistIChCT09MKWNhblpvb21PdXQKK3sKKyAg
ICByZXR1cm4gW3NlbGYgY3VycmVudFpvb21GYWN0b3JdIC8gRGVmYXVsdFpvb21GYWN0b3JSYXRp
byA+IERlZmF1bHRNaW5pbXVtWm9vbUZhY3RvcjsKK30KKworLSAodm9pZCl6b29tT3V0OihpZClz
ZW5kZXIKK3sKKyAgICBpZiAoIVtzZWxmIGNhblpvb21Jbl0pCisgICAgICAgIHJldHVybjsKKwor
ICAgIGRvdWJsZSBmYWN0b3IgPSBbc2VsZiBjdXJyZW50Wm9vbUZhY3Rvcl0gLyBEZWZhdWx0Wm9v
bUZhY3RvclJhdGlvOworICAgIFtzZWxmIHNldEN1cnJlbnRab29tRmFjdG9yOmZhY3Rvcl07Cit9
CisKKy0gKEJPT0wpY2FuUmVzZXRab29tCit7CisgICAgcmV0dXJuIF96b29tVGV4dE9ubHkgPyAo
V0tQYWdlR2V0VGV4dFpvb21GYWN0b3IoX3dlYlZpZXcucGFnZVJlZikgIT0gMSkgOiAoV0tQYWdl
R2V0UGFnZVpvb21GYWN0b3IoX3dlYlZpZXcucGFnZVJlZikgIT0gMSk7Cit9CisKKy0gKHZvaWQp
cmVzZXRab29tOihpZClzZW5kZXIKK3sKKyAgICBpZiAoIVtzZWxmIGNhblJlc2V0Wm9vbV0pCisg
ICAgICAgIHJldHVybjsKKworICAgIGlmIChfem9vbVRleHRPbmx5KQorICAgICAgICBXS1BhZ2VT
ZXRUZXh0Wm9vbUZhY3Rvcihfd2ViVmlldy5wYWdlUmVmLCAxKTsKKyAgICBlbHNlCisgICAgICAg
IFdLUGFnZVNldFBhZ2Vab29tRmFjdG9yKF93ZWJWaWV3LnBhZ2VSZWYsIDEpOworfQorCistIChJ
QkFjdGlvbil0b2dnbGVab29tTW9kZTooaWQpc2VuZGVyCit7CisgICAgaWYgKF96b29tVGV4dE9u
bHkpIHsKKyAgICAgICAgX3pvb21UZXh0T25seSA9IE5POworICAgICAgICBkb3VibGUgY3VycmVu
dFRleHRab29tID0gV0tQYWdlR2V0VGV4dFpvb21GYWN0b3IoX3dlYlZpZXcucGFnZVJlZik7Cisg
ICAgICAgIFdLUGFnZVNldFBhZ2VBbmRUZXh0Wm9vbUZhY3RvcnMoX3dlYlZpZXcucGFnZVJlZiwg
Y3VycmVudFRleHRab29tLCAxKTsKKyAgICB9IGVsc2UgeworICAgICAgICBfem9vbVRleHRPbmx5
ID0gWUVTOworICAgICAgICBkb3VibGUgY3VycmVudFBhZ2Vab29tID0gV0tQYWdlR2V0UGFnZVpv
b21GYWN0b3IoX3dlYlZpZXcucGFnZVJlZik7CisgICAgICAgIFdLUGFnZVNldFBhZ2VBbmRUZXh0
Wm9vbUZhY3RvcnMoX3dlYlZpZXcucGFnZVJlZiwgMSwgY3VycmVudFBhZ2Vab29tKTsKKyAgICB9
Cit9CisKKy0gKEJPT0wpaXNQYWdpbmF0ZWQKK3sKKyAgICByZXR1cm4gV0tQYWdlR2V0UGFnaW5h
dGlvbk1vZGUoX3dlYlZpZXcucGFnZVJlZikgIT0ga1dLUGFnaW5hdGlvbk1vZGVVbnBhZ2luYXRl
ZDsKK30KKworLSAoSUJBY3Rpb24pdG9nZ2xlUGFnaW5hdGlvbk1vZGU6KGlkKXNlbmRlcgorewor
ICAgIGlmIChbc2VsZiBpc1BhZ2luYXRlZF0pCisgICAgICAgIFdLUGFnZVNldFBhZ2luYXRpb25N
b2RlKF93ZWJWaWV3LnBhZ2VSZWYsIGtXS1BhZ2luYXRpb25Nb2RlVW5wYWdpbmF0ZWQpOworICAg
IGVsc2UgeworICAgICAgICBXS1BhZ2VTZXRQYWdpbmF0aW9uTW9kZShfd2ViVmlldy5wYWdlUmVm
LCBrV0tQYWdpbmF0aW9uTW9kZUxlZnRUb1JpZ2h0KTsKKyAgICAgICAgV0tQYWdlU2V0UGFnZUxl
bmd0aChfd2ViVmlldy5wYWdlUmVmLCBfd2ViVmlldy5ib3VuZHMuc2l6ZS53aWR0aCAvIDIpOwor
ICAgICAgICBXS1BhZ2VTZXRHYXBCZXR3ZWVuUGFnZXMoX3dlYlZpZXcucGFnZVJlZiwgMTApOwor
ICAgIH0KK30KKworLSAoSUJBY3Rpb24pZHVtcFNvdXJjZVRvQ29uc29sZTooaWQpc2VuZGVyCit7
CisgICAgV0tQYWdlR2V0U291cmNlRm9yRnJhbWVfYihfd2ViVmlldy5wYWdlUmVmLCBXS1BhZ2VH
ZXRNYWluRnJhbWUoX3dlYlZpZXcucGFnZVJlZiksIF4oV0tTdHJpbmdSZWYgcmVzdWx0LCBXS0Vy
cm9yUmVmIGVycm9yKSB7CisgICAgICAgIENGU3RyaW5nUmVmIGNmUmVzdWx0ID0gV0tTdHJpbmdD
b3B5Q0ZTdHJpbmcoMCwgcmVzdWx0KTsKKyAgICAgICAgTE9HKEAiTWFpbiBmcmFtZSBzb3VyY2Vc
biBcIiVAXCIiLCAoTlNTdHJpbmcgKiljZlJlc3VsdCk7CisgICAgICAgIENGUmVsZWFzZShjZlJl
c3VsdCk7CisgICAgfSk7Cit9CisKKy8vIE1BUks6IExvYWRlciBDbGllbnQgQ2FsbGJhY2tzCisK
K3N0YXRpYyB2b2lkIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV0tQYWdlUmVmIHBh
Z2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xp
ZW50SW5mbykKK3sKKyAgICBbKFdLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyICopY2xpZW50SW5m
byBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lOmZyYW1lXTsKK30KKworc3RhdGljIHZv
aWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV0tQ
YWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qg
dm9pZCAqY2xpZW50SW5mbykKK3sKKyAgICBbKFdLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyICop
Y2xpZW50SW5mbyBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JG
cmFtZTpmcmFtZV07Cit9CisKK3N0YXRpYyB2b2lkIGRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRo
RXJyb3JGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tFcnJvclJl
ZiBlcnJvciwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQorewor
ICAgIFsoV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgKiljbGllbnRJbmZvIGRpZEZhaWxQcm92
aXNpb25hbExvYWRXaXRoRXJyb3JGb3JGcmFtZTpmcmFtZV07Cit9CisKK3N0YXRpYyB2b2lkIGRp
ZENvbW1pdExvYWRGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tU
eXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQoreworICAgIFsoV0syQnJv
d3NlcldpbmRvd0NvbnRyb2xsZXIgKiljbGllbnRJbmZvIGRpZENvbW1pdExvYWRGb3JGcmFtZTpm
cmFtZV07Cit9CisKK3N0YXRpYyB2b2lkIGRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKFdL
UGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0
IHZvaWQgKmNsaWVudEluZm8pCit7CisgICAgTE9HKEAiZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9y
RnJhbWUiKTsKK30KKworc3RhdGljIHZvaWQgZGlkRmluaXNoTG9hZEZvckZyYW1lKFdLUGFnZVJl
ZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQg
KmNsaWVudEluZm8pCit7CisgICAgTE9HKEAiZGlkRmluaXNoTG9hZEZvckZyYW1lIik7Cit9CisK
K3N0YXRpYyB2b2lkIGRpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2Us
IFdLRnJhbWVSZWYgZnJhbWUsIFdLRXJyb3JSZWYgZXJyb3IsIFdLVHlwZVJlZiB1c2VyRGF0YSwg
Y29uc3Qgdm9pZCAqY2xpZW50SW5mbykKK3sKKyAgICBbKFdLMkJyb3dzZXJXaW5kb3dDb250cm9s
bGVyICopY2xpZW50SW5mbyBkaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lOmZyYW1lXTsKK30K
Kworc3RhdGljIHZvaWQgZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lKFdLUGFnZVJl
ZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1NhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlIHR5
cGUsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKK3sKKyAgICBb
KFdLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyICopY2xpZW50SW5mbyBkaWRTYW1lRG9jdW1lbnRO
YXZpZ2F0aW9uRm9yRnJhbWU6ZnJhbWVdOworfQorCitzdGF0aWMgdm9pZCBkaWRSZWNlaXZlVGl0
bGVGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgdGl0bGUsIFdLRnJhbWVSZWYg
ZnJhbWUsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKK3sKKyAg
ICBpZiAoIVdLRnJhbWVJc01haW5GcmFtZShmcmFtZSkpCisgICAgICAgIHJldHVybjsKKworICAg
IFdLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyKiBjb250cm9sbGVyID0gKFdLMkJyb3dzZXJXaW5k
b3dDb250cm9sbGVyKiljbGllbnRJbmZvOworICAgIENGU3RyaW5nUmVmIGNmVGl0bGUgPSBXS1N0
cmluZ0NvcHlDRlN0cmluZygwLCB0aXRsZSk7CisgICAgW1tjb250cm9sbGVyIHdpbmRvd10gc2V0
VGl0bGU6WyhOU1N0cmluZyAqKWNmVGl0bGUgc3RyaW5nQnlBcHBlbmRpbmdTdHJpbmc6QCIgW1dL
Ml0iXV07CisgICAgQ0ZSZWxlYXNlKGNmVGl0bGUpOworfQorCitzdGF0aWMgdm9pZCBkaWRGaXJz
dExheW91dEZvckZyYW1lKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVS
ZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCit7CisgICAgTE9HKEAiZGlkRmly
c3RMYXlvdXRGb3JGcmFtZSIpOworfQorCitzdGF0aWMgdm9pZCBkaWRGaXJzdFZpc3VhbGx5Tm9u
RW1wdHlMYXlvdXRGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tU
eXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQoreworICAgIExPRyhAImRp
ZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckZyYW1lIik7Cit9CisKK3N0YXRpYyB2b2lk
IGRpZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNoeShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBm
cmFtZSwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQoreworICAg
IExPRyhAImRpZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNoeSIpOworfQorCitzdGF0aWMgdm9pZCBk
aWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVS
ZWYgZnJhbWUsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKK3sK
KyAgICBMT0coQCJkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUiKTsKK30KKworc3Rh
dGljIHZvaWQgZGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdL
RnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5m
bykKK3sKKyAgICBMT0coQCJkaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSIpOworfQorCitz
dGF0aWMgdm9pZCBkaWREZXRlY3RYU1NGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJl
ZiBmcmFtZSwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKSAKK3sg
CisgICAgTE9HKEAiZGlkRGV0ZWN0WFNTRm9yRnJhbWUiKTsgCit9CisgCitzdGF0aWMgdm9pZCBk
aWRTdGFydFByb2dyZXNzKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQor
eworICAgIFsoV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgKiljbGllbnRJbmZvIGRpZFN0YXJ0
UHJvZ3Jlc3NdOworfQorCitzdGF0aWMgdm9pZCBkaWRDaGFuZ2VQcm9ncmVzcyhXS1BhZ2VSZWYg
cGFnZSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKK3sKKyAgICBbKFdLMkJyb3dzZXJXaW5kb3dD
b250cm9sbGVyICopY2xpZW50SW5mbyBkaWRDaGFuZ2VQcm9ncmVzczpXS1BhZ2VHZXRFc3RpbWF0
ZWRQcm9ncmVzcyhwYWdlKV07Cit9CisKK3N0YXRpYyB2b2lkIGRpZEZpbmlzaFByb2dyZXNzKFdL
UGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQoreworICAgIFsoV0syQnJvd3Nl
cldpbmRvd0NvbnRyb2xsZXIgKiljbGllbnRJbmZvIGRpZEZpbmlzaFByb2dyZXNzXTsKK30KKwor
c3RhdGljIHZvaWQgZGlkQmVjb21lVW5yZXNwb25zaXZlKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2
b2lkICpjbGllbnRJbmZvKQoreworICAgIExPRyhAImRpZEJlY29tZVVucmVzcG9uc2l2ZSIpOwor
fQorCitzdGF0aWMgdm9pZCBkaWRCZWNvbWVSZXNwb25zaXZlKFdLUGFnZVJlZiBwYWdlLCBjb25z
dCB2b2lkICpjbGllbnRJbmZvKQoreworICAgIExPRyhAImRpZEJlY29tZVJlc3BvbnNpdmUiKTsK
K30KKworc3RhdGljIHZvaWQgcHJvY2Vzc0RpZEV4aXQoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZv
aWQgKmNsaWVudEluZm8pCit7CisgICAgTE9HKEAicHJvY2Vzc0RpZEV4aXQiKTsKK30KKworc3Rh
dGljIHZvaWQgZGlkQ2hhbmdlQmFja0ZvcndhcmRMaXN0KFdLUGFnZVJlZiBwYWdlLCBXS0JhY2tG
b3J3YXJkTGlzdEl0ZW1SZWYgYWRkZWRJdGVtLCBXS0FycmF5UmVmIHJlbW92ZWRJdGVtcywgY29u
c3Qgdm9pZCAqY2xpZW50SW5mbykKK3sKKyAgICBbKFdLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVy
ICopY2xpZW50SW5mbyB2YWxpZGF0ZVRvb2xiYXJdOworfQorCisvLyBNQVJLOiBQb2xpY3kgQ2xp
ZW50IENhbGxiYWNrcworCitzdGF0aWMgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS0ZyYW1lTmF2aWdhdGlvblR5
cGUgbmF2aWdhdGlvblR5cGUsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCBXS0V2ZW50TW91
c2VCdXR0b24gbW91c2VCdXR0b24sIFdLVVJMUmVxdWVzdFJlZiByZXF1ZXN0LCBXS0ZyYW1lUG9s
aWN5TGlzdGVuZXJSZWYgbGlzdGVuZXIsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCog
Y2xpZW50SW5mbykKK3sKKyAgICBMT0coQCJkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9u
Iik7CisgICAgV0tGcmFtZVBvbGljeUxpc3RlbmVyVXNlKGxpc3RlbmVyKTsKK30KKworc3RhdGlj
IHZvaWQgZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKFdLUGFnZVJlZiBwYWdlLCBXS0Zy
YW1lUmVmIGZyYW1lLCBXS0ZyYW1lTmF2aWdhdGlvblR5cGUgbmF2aWdhdGlvblR5cGUsIFdLRXZl
bnRNb2RpZmllcnMgbW9kaWZpZXJzLCBXS0V2ZW50TW91c2VCdXR0b24gbW91c2VCdXR0b24sIFdL
VVJMUmVxdWVzdFJlZiByZXF1ZXN0LCBXS1N0cmluZ1JlZiBmcmFtZU5hbWUsIFdLRnJhbWVQb2xp
Y3lMaXN0ZW5lclJlZiBsaXN0ZW5lciwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkKiBj
bGllbnRJbmZvKQoreworICAgIExPRyhAImRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbiIp
OworICAgIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclVzZShsaXN0ZW5lcik7Cit9CisKK3N0YXRpYyB2
b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZy
YW1lLCBXS1VSTFJlc3BvbnNlUmVmIHJlc3BvbnNlLCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVzdCwg
V0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmIGxpc3RlbmVyLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNv
bnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgV0tGcmFtZVBvbGljeUxpc3RlbmVyVXNlKGxp
c3RlbmVyKTsKK30KKworLy8gTUFSSzogVUkgQ2xpZW50IENhbGxiYWNrcworCitzdGF0aWMgV0tQ
YWdlUmVmIGNyZWF0ZU5ld1BhZ2UoV0tQYWdlUmVmIHBhZ2UsIFdLVVJMUmVxdWVzdFJlZiByZXF1
ZXN0LCBXS0RpY3Rpb25hcnlSZWYgZmVhdHVyZXMsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJz
LCBXS0V2ZW50TW91c2VCdXR0b24gYnV0dG9uLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQorewor
ICAgIExPRyhAImNyZWF0ZU5ld1BhZ2UiKTsKKyAgICBXSzJCcm93c2VyV2luZG93Q29udHJvbGxl
ciAqY29udHJvbGxlciA9IFtbV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgYWxsb2NdIGluaXRX
aXRoQ29udGV4dDpXS1BhZ2VHZXRDb250ZXh0KHBhZ2UpIHBhZ2VHcm91cDpXS1BhZ2VHZXRQYWdl
R3JvdXAocGFnZSldOworICAgIFtjb250cm9sbGVyIGxvYWRXaW5kb3ddOworCisgICAgcmV0dXJu
IFdLUmV0YWluKGNvbnRyb2xsZXItPl93ZWJWaWV3LnBhZ2VSZWYpOworfQorCitzdGF0aWMgdm9p
ZCBzaG93UGFnZShXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKK3sKKyAg
ICBMT0coQCJzaG93UGFnZSIpOworICAgIFtbKEJyb3dzZXJXaW5kb3dDb250cm9sbGVyICopY2xp
ZW50SW5mbyB3aW5kb3ddIG9yZGVyRnJvbnQ6bmlsXTsKK30KKworc3RhdGljIHZvaWQgY2xvc2VQ
YWdlKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQoreworICAgIExPRyhA
ImNsb3NlUGFnZSIpOworICAgIFdLUGFnZUNsb3NlKHBhZ2UpOworICAgIFtbKEJyb3dzZXJXaW5k
b3dDb250cm9sbGVyICopY2xpZW50SW5mbyB3aW5kb3ddIGNsb3NlXTsKK30KKworc3RhdGljIHZv
aWQgcnVuSmF2YVNjcmlwdEFsZXJ0KFdLUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBtZXNzYWdl
LCBXS0ZyYW1lUmVmIGZyYW1lLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIE5TQWxl
cnQqIGFsZXJ0ID0gW1tOU0FsZXJ0IGFsbG9jXSBpbml0XTsKKworICAgIFdLVVJMUmVmIHdrVVJM
ID0gV0tGcmFtZUNvcHlVUkwoZnJhbWUpOworICAgIENGVVJMUmVmIGNmVVJMID0gV0tVUkxDb3B5
Q0ZVUkwoMCwgd2tVUkwpOworICAgIFdLUmVsZWFzZSh3a1VSTCk7CisKKyAgICBbYWxlcnQgc2V0
TWVzc2FnZVRleHQ6W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJKYXZhU2NyaXB0IGFsZXJ0
IGRpYWxvZyBmcm9tICVALiIsIFsoTlNVUkwgKiljZlVSTCBhYnNvbHV0ZVN0cmluZ11dXTsKKyAg
ICBDRlJlbGVhc2UoY2ZVUkwpOworCisgICAgQ0ZTdHJpbmdSZWYgY2ZNZXNzYWdlID0gV0tTdHJp
bmdDb3B5Q0ZTdHJpbmcoMCwgbWVzc2FnZSk7CisgICAgW2FsZXJ0IHNldEluZm9ybWF0aXZlVGV4
dDooTlNTdHJpbmcgKiljZk1lc3NhZ2VdOworICAgIENGUmVsZWFzZShjZk1lc3NhZ2UpOworCisg
ICAgW2FsZXJ0IGFkZEJ1dHRvbldpdGhUaXRsZTpAIk9LIl07CisKKyAgICBbYWxlcnQgcnVuTW9k
YWxdOworICAgIFthbGVydCByZWxlYXNlXTsKK30KKworc3RhdGljIGJvb2wgcnVuSmF2YVNjcmlw
dENvbmZpcm0oV0tQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG1lc3NhZ2UsIFdLRnJhbWVSZWYg
ZnJhbWUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgTlNBbGVydCogYWxlcnQgPSBb
W05TQWxlcnQgYWxsb2NdIGluaXRdOworCisgICAgV0tVUkxSZWYgd2tVUkwgPSBXS0ZyYW1lQ29w
eVVSTChmcmFtZSk7CisgICAgQ0ZVUkxSZWYgY2ZVUkwgPSBXS1VSTENvcHlDRlVSTCgwLCB3a1VS
TCk7CisgICAgV0tSZWxlYXNlKHdrVVJMKTsKKworICAgIFthbGVydCBzZXRNZXNzYWdlVGV4dDpb
TlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIkphdmFTY3JpcHQgY29uZmlybSBkaWFsb2cgZnJv
bSAlQC4iLCBbKE5TVVJMICopY2ZVUkwgYWJzb2x1dGVTdHJpbmddXV07CisgICAgQ0ZSZWxlYXNl
KGNmVVJMKTsKKworICAgIENGU3RyaW5nUmVmIGNmTWVzc2FnZSA9IFdLU3RyaW5nQ29weUNGU3Ry
aW5nKDAsIG1lc3NhZ2UpOworICAgIFthbGVydCBzZXRJbmZvcm1hdGl2ZVRleHQ6KE5TU3RyaW5n
ICopY2ZNZXNzYWdlXTsKKyAgICBDRlJlbGVhc2UoY2ZNZXNzYWdlKTsKKworICAgIFthbGVydCBh
ZGRCdXR0b25XaXRoVGl0bGU6QCJPSyJdOworICAgIFthbGVydCBhZGRCdXR0b25XaXRoVGl0bGU6
QCJDYW5jZWwiXTsKKworICAgIE5TSW50ZWdlciBidXR0b24gPSBbYWxlcnQgcnVuTW9kYWxdOwor
ICAgIFthbGVydCByZWxlYXNlXTsKKworICAgIHJldHVybiBidXR0b24gPT0gTlNBbGVydEZpcnN0
QnV0dG9uUmV0dXJuOworfQorCitzdGF0aWMgV0tTdHJpbmdSZWYgcnVuSmF2YVNjcmlwdFByb21w
dChXS1BhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgbWVzc2FnZSwgV0tTdHJpbmdSZWYgZGVmYXVs
dFZhbHVlLCBXS0ZyYW1lUmVmIGZyYW1lLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAg
IE5TQWxlcnQqIGFsZXJ0ID0gW1tOU0FsZXJ0IGFsbG9jXSBpbml0XTsKKworICAgIFdLVVJMUmVm
IHdrVVJMID0gV0tGcmFtZUNvcHlVUkwoZnJhbWUpOworICAgIENGVVJMUmVmIGNmVVJMID0gV0tV
UkxDb3B5Q0ZVUkwoMCwgd2tVUkwpOworICAgIFdLUmVsZWFzZSh3a1VSTCk7CisKKyAgICBbYWxl
cnQgc2V0TWVzc2FnZVRleHQ6W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJKYXZhU2NyaXB0
IHByb21wdCBkaWFsb2cgZnJvbSAlQC4iLCBbKE5TVVJMICopY2ZVUkwgYWJzb2x1dGVTdHJpbmdd
XV07CisgICAgQ0ZSZWxlYXNlKGNmVVJMKTsKKworICAgIENGU3RyaW5nUmVmIGNmTWVzc2FnZSA9
IFdLU3RyaW5nQ29weUNGU3RyaW5nKDAsIG1lc3NhZ2UpOworICAgIFthbGVydCBzZXRJbmZvcm1h
dGl2ZVRleHQ6KE5TU3RyaW5nICopY2ZNZXNzYWdlXTsKKyAgICBDRlJlbGVhc2UoY2ZNZXNzYWdl
KTsKKworICAgIFthbGVydCBhZGRCdXR0b25XaXRoVGl0bGU6QCJPSyJdOworICAgIFthbGVydCBh
ZGRCdXR0b25XaXRoVGl0bGU6QCJDYW5jZWwiXTsKKworICAgIE5TVGV4dEZpZWxkKiBpbnB1dCA9
IFtbTlNUZXh0RmllbGQgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCAyMDAs
IDI0KV07CisgICAgQ0ZTdHJpbmdSZWYgY2ZEZWZhdWx0VmFsdWUgPSBXS1N0cmluZ0NvcHlDRlN0
cmluZygwLCBkZWZhdWx0VmFsdWUpOworICAgIFtpbnB1dCBzZXRTdHJpbmdWYWx1ZTooTlNTdHJp
bmcgKiljZkRlZmF1bHRWYWx1ZV07CisgICAgQ0ZSZWxlYXNlKGNmRGVmYXVsdFZhbHVlKTsKKwor
ICAgIFthbGVydCBzZXRBY2Nlc3NvcnlWaWV3OmlucHV0XTsKKworICAgIE5TSW50ZWdlciBidXR0
b24gPSBbYWxlcnQgcnVuTW9kYWxdOworCisgICAgTlNTdHJpbmcqIHJlc3VsdCA9IG5pbDsKKyAg
ICBpZiAoYnV0dG9uID09IE5TQWxlcnRGaXJzdEJ1dHRvblJldHVybikgeworICAgICAgICBbaW5w
dXQgdmFsaWRhdGVFZGl0aW5nXTsKKyAgICAgICAgcmVzdWx0ID0gW2lucHV0IHN0cmluZ1ZhbHVl
XTsKKyAgICB9CisKKyAgICBbYWxlcnQgcmVsZWFzZV07CisKKyAgICBpZiAoIXJlc3VsdCkKKyAg
ICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIFdLU3RyaW5nQ3JlYXRlV2l0aENGU3RyaW5nKChD
RlN0cmluZ1JlZilyZXN1bHQpOworfQorCitzdGF0aWMgdm9pZCBzZXRTdGF0dXNUZXh0KFdLUGFn
ZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiB0ZXh0LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQorewor
ICAgIExPRyhAInNldFN0YXR1c1RleHQiKTsKK30KKworc3RhdGljIHZvaWQgbW91c2VEaWRNb3Zl
T3ZlckVsZW1lbnQoV0tQYWdlUmVmIHBhZ2UsIFdLSGl0VGVzdFJlc3VsdFJlZiBoaXRUZXN0UmVz
dWx0LCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25z
dCB2b2lkICpjbGllbnRJbmZvKQoreworICAgIExPRyhAIm1vdXNlRGlkTW92ZU92ZXJFbGVtZW50
Iik7Cit9CisKK3N0YXRpYyBXS1JlY3QgZ2V0V2luZG93RnJhbWUoV0tQYWdlUmVmIHBhZ2UsIGNv
bnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgTlNSZWN0IHJlY3QgPSBbWyhCcm93c2VyV2lu
ZG93Q29udHJvbGxlciAqKWNsaWVudEluZm8gd2luZG93XSBmcmFtZV07CisgICAgV0tSZWN0IHdr
UmVjdDsKKyAgICB3a1JlY3Qub3JpZ2luLnggPSByZWN0Lm9yaWdpbi54OworICAgIHdrUmVjdC5v
cmlnaW4ueSA9IHJlY3Qub3JpZ2luLnk7CisgICAgd2tSZWN0LnNpemUud2lkdGggPSByZWN0LnNp
emUud2lkdGg7CisgICAgd2tSZWN0LnNpemUuaGVpZ2h0ID0gcmVjdC5zaXplLmhlaWdodDsKKyAg
ICByZXR1cm4gd2tSZWN0OworfQorCitzdGF0aWMgdm9pZCBzZXRXaW5kb3dGcmFtZShXS1BhZ2VS
ZWYgcGFnZSwgV0tSZWN0IHJlY3QsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgW1so
QnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgKiljbGllbnRJbmZvIHdpbmRvd10gc2V0RnJhbWU6TlNN
YWtlUmVjdChyZWN0Lm9yaWdpbi54LCByZWN0Lm9yaWdpbi55LCByZWN0LnNpemUud2lkdGgsIHJl
Y3Quc2l6ZS5oZWlnaHQpIGRpc3BsYXk6WUVTXTsKK30KKworc3RhdGljIGJvb2wgcnVuQmVmb3Jl
VW5sb2FkQ29uZmlybVBhbmVsKFdLUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBtZXNzYWdlLCBX
S0ZyYW1lUmVmIGZyYW1lLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIE5TQWxlcnQg
KmFsZXJ0ID0gW1tOU0FsZXJ0IGFsbG9jXSBpbml0XTsKKworICAgIFdLVVJMUmVmIHdrVVJMID0g
V0tGcmFtZUNvcHlVUkwoZnJhbWUpOworICAgIENGVVJMUmVmIGNmVVJMID0gV0tVUkxDb3B5Q0ZV
UkwoMCwgd2tVUkwpOworICAgIFdLUmVsZWFzZSh3a1VSTCk7CisKKyAgICBbYWxlcnQgc2V0TWVz
c2FnZVRleHQ6W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJCZWZvcmVVbmxvYWQgY29uZmly
bSBkaWFsb2cgZnJvbSAlQC4iLCBbKE5TVVJMICopY2ZVUkwgYWJzb2x1dGVTdHJpbmddXV07Cisg
ICAgQ0ZSZWxlYXNlKGNmVVJMKTsKKworICAgIENGU3RyaW5nUmVmIGNmTWVzc2FnZSA9IFdLU3Ry
aW5nQ29weUNGU3RyaW5nKDAsIG1lc3NhZ2UpOworICAgIFthbGVydCBzZXRJbmZvcm1hdGl2ZVRl
eHQ6KE5TU3RyaW5nICopY2ZNZXNzYWdlXTsKKyAgICBDRlJlbGVhc2UoY2ZNZXNzYWdlKTsKKwor
ICAgIFthbGVydCBhZGRCdXR0b25XaXRoVGl0bGU6QCJPSyJdOworICAgIFthbGVydCBhZGRCdXR0
b25XaXRoVGl0bGU6QCJDYW5jZWwiXTsKKworICAgIE5TSW50ZWdlciBidXR0b24gPSBbYWxlcnQg
cnVuTW9kYWxdOworICAgIFthbGVydCByZWxlYXNlXTsKKworICAgIHJldHVybiBidXR0b24gPT0g
TlNBbGVydEZpcnN0QnV0dG9uUmV0dXJuOworfQorCitzdGF0aWMgdm9pZCBydW5PcGVuUGFuZWwo
V0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLT3BlblBhbmVsUGFyYW1ldGVyc1Jl
ZiBwYXJhbWV0ZXJzLCBXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyUmVmIGxpc3RlbmVyLCBjb25z
dCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIE5TT3BlblBhbmVsICpvcGVuUGFuZWwgPSBbTlNP
cGVuUGFuZWwgb3BlblBhbmVsXTsKKyAgICBbb3BlblBhbmVsIHNldEFsbG93c011bHRpcGxlU2Vs
ZWN0aW9uOldLT3BlblBhbmVsUGFyYW1ldGVyc0dldEFsbG93c011bHRpcGxlRmlsZXMocGFyYW1l
dGVycyldOworCisgICAgV0tSZXRhaW4obGlzdGVuZXIpOworCisgICAgW29wZW5QYW5lbCBiZWdp
blNoZWV0TW9kYWxGb3JXaW5kb3c6WyhCcm93c2VyV2luZG93Q29udHJvbGxlciAqKWNsaWVudElu
Zm8gd2luZG93XSBjb21wbGV0aW9uSGFuZGxlcjpeKE5TSW50ZWdlciByZXN1bHQpIHsKKyAgICAg
ICAgaWYgKHJlc3VsdCA9PSBOU0ZpbGVIYW5kbGluZ1BhbmVsT0tCdXR0b24pIHsKKyAgICAgICAg
ICAgIFdLTXV0YWJsZUFycmF5UmVmIGZpbGVVUkxzID0gV0tNdXRhYmxlQXJyYXlDcmVhdGUoKTsK
KworICAgICAgICAgICAgTlNVUkwgKm5zVVJMOworICAgICAgICAgICAgZm9yIChuc1VSTCBpbiBb
b3BlblBhbmVsIFVSTHNdKSB7CisgICAgICAgICAgICAgICAgV0tVUkxSZWYgd2tVUkwgPSBXS1VS
TENyZWF0ZVdpdGhDRlVSTCgoQ0ZVUkxSZWYpbnNVUkwpOworICAgICAgICAgICAgICAgIFdLQXJy
YXlBcHBlbmRJdGVtKGZpbGVVUkxzLCB3a1VSTCk7CisgICAgICAgICAgICAgICAgV0tSZWxlYXNl
KHdrVVJMKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgV0tPcGVuUGFuZWxSZXN1bHRM
aXN0ZW5lckNob29zZUZpbGVzKGxpc3RlbmVyLCBmaWxlVVJMcyk7CisKKyAgICAgICAgICAgIFdL
UmVsZWFzZShmaWxlVVJMcyk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgV0tPcGVuUGFu
ZWxSZXN1bHRMaXN0ZW5lckNhbmNlbChsaXN0ZW5lcik7CisgICAgICAgIAorICAgICAgICBXS1Jl
bGVhc2UobGlzdGVuZXIpOworICAgIH1dOworfQorCistICh2b2lkKWF3YWtlRnJvbU5pYgorewor
ICAgIF93ZWJWaWV3ID0gW1tXS1ZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6W2NvbnRhaW5lclZp
ZXcgYm91bmRzXSBjb250ZXh0UmVmOl9jb250ZXh0IHBhZ2VHcm91cFJlZjpfcGFnZUdyb3VwXTsK
KworICAgIFtfd2ViVmlldyBzZXRBdXRvcmVzaXppbmdNYXNrOihOU1ZpZXdXaWR0aFNpemFibGUg
fCBOU1ZpZXdIZWlnaHRTaXphYmxlKV07CisgICAgW2NvbnRhaW5lclZpZXcgYWRkU3Vidmlldzpf
d2ViVmlld107CisgICAgCisgICAgV0tQYWdlTG9hZGVyQ2xpZW50IGxvYWRDbGllbnQgPSB7Cisg
ICAgICAgIGtXS1BhZ2VMb2FkZXJDbGllbnRDdXJyZW50VmVyc2lvbiwKKyAgICAgICAgc2VsZiwg
ICAvKiBjbGllbnRJbmZvICovCisgICAgICAgIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJh
bWUsCisgICAgICAgIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZv
ckZyYW1lLAorICAgICAgICBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aEVycm9yRm9yRnJhbWUs
CisgICAgICAgIGRpZENvbW1pdExvYWRGb3JGcmFtZSwKKyAgICAgICAgZGlkRmluaXNoRG9jdW1l
bnRMb2FkRm9yRnJhbWUsCisgICAgICAgIGRpZEZpbmlzaExvYWRGb3JGcmFtZSwKKyAgICAgICAg
ZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZSwKKyAgICAgICAgZGlkU2FtZURvY3VtZW50TmF2
aWdhdGlvbkZvckZyYW1lLAorICAgICAgICBkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZSwKKyAgICAg
ICAgZGlkRmlyc3RMYXlvdXRGb3JGcmFtZSwKKyAgICAgICAgZGlkRmlyc3RWaXN1YWxseU5vbkVt
cHR5TGF5b3V0Rm9yRnJhbWUsCisgICAgICAgIGRpZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNoeSwK
KyAgICAgICAgZGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZyYW1lLAorICAgICAgICBkaWRS
dW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSwKKyAgICAgICAgMCwgLy8gY2FuQXV0aGVudGljYXRl
QWdhaW5zdFByb3RlY3Rpb25TcGFjZUluRnJhbWUKKyAgICAgICAgMCwgLy8gZGlkUmVjZWl2ZUF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlSW5GcmFtZQorICAgICAgICBkaWRTdGFydFByb2dyZXNzLAor
ICAgICAgICBkaWRDaGFuZ2VQcm9ncmVzcywKKyAgICAgICAgZGlkRmluaXNoUHJvZ3Jlc3MsCisg
ICAgICAgIGRpZEJlY29tZVVucmVzcG9uc2l2ZSwKKyAgICAgICAgZGlkQmVjb21lUmVzcG9uc2l2
ZSwKKyAgICAgICAgcHJvY2Vzc0RpZEV4aXQsCisgICAgICAgIGRpZENoYW5nZUJhY2tGb3J3YXJk
TGlzdCwKKyAgICAgICAgMCwgLy8gc2hvdWxkR29Ub0JhY2tGb3J3YXJkSXRlbQorICAgICAgICAw
LCAvLyBkaWRGYWlsVG9Jbml0aWFsaXplUGx1Z2luCisgICAgICAgIGRpZERldGVjdFhTU0ZvckZy
YW1lLAorICAgICAgICAwLCAvLyBkaWROZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQKKyAg
ICAgICAgMCwgLy8gd2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtCisgICAgICAgIDAsIC8vIGlu
dGVyYWN0aW9uT2NjdXJyZWRXaGlsZVByb2Nlc3NVbnJlc3BvbnNpdmUKKyAgICAgICAgMCwgLy8g
cGx1Z2luRGlkRmFpbAorICAgICAgICAwLCAvLyBkaWRSZWNlaXZlSW50ZW50Rm9yRnJhbWUKKyAg
ICAgICAgMCwgLy8gcmVnaXN0ZXJJbnRlbnRTZXJ2aWNlRm9yRnJhbWUKKyAgICAgICAgMCwgLy8g
ZGlkTGF5b3V0CisgICAgfTsKKyAgICBXS1BhZ2VTZXRQYWdlTG9hZGVyQ2xpZW50KF93ZWJWaWV3
LnBhZ2VSZWYsICZsb2FkQ2xpZW50KTsKKyAgICAKKyAgICBXS1BhZ2VQb2xpY3lDbGllbnQgcG9s
aWN5Q2xpZW50ID0geworICAgICAgICBrV0tQYWdlUG9saWN5Q2xpZW50Q3VycmVudFZlcnNpb24s
CisgICAgICAgIHNlbGYsICAgICAgIC8qIGNsaWVudEluZm8gKi8KKyAgICAgICAgZGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiwKKyAgICAgICAgZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93
QWN0aW9uLAorICAgICAgICBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZSwKKyAgICAgICAgMCAgICAg
ICAgICAgLyogdW5hYmxlVG9JbXBsZW1lbnRQb2xpY3kgKi8KKyAgICB9OworICAgIFdLUGFnZVNl
dFBhZ2VQb2xpY3lDbGllbnQoX3dlYlZpZXcucGFnZVJlZiwgJnBvbGljeUNsaWVudCk7CisKKyAg
ICBXS1BhZ2VVSUNsaWVudCB1aUNsaWVudCA9IHsKKyAgICAgICAga1dLUGFnZVVJQ2xpZW50Q3Vy
cmVudFZlcnNpb24sCisgICAgICAgIHNlbGYsICAgICAgIC8qIGNsaWVudEluZm8gKi8KKyAgICAg
ICAgMCwgICAgICAgICAgLyogY3JlYXRlTmV3UGFnZV9kZXByZWNhdGVkRm9yVXNlV2l0aFYwICov
CisgICAgICAgIHNob3dQYWdlLAorICAgICAgICBjbG9zZVBhZ2UsCisgICAgICAgIDAsICAgICAg
ICAgIC8qIHRha2VGb2N1cyAqLworICAgICAgICAwLCAgICAgICAgICAvKiBmb2N1cyAqLworICAg
ICAgICAwLCAgICAgICAgICAvKiB1bmZvY3VzICovCisgICAgICAgIHJ1bkphdmFTY3JpcHRBbGVy
dCwKKyAgICAgICAgcnVuSmF2YVNjcmlwdENvbmZpcm0sCisgICAgICAgIHJ1bkphdmFTY3JpcHRQ
cm9tcHQsCisgICAgICAgIHNldFN0YXR1c1RleHQsCisgICAgICAgIDAsICAgICAgICAgIC8qIG1v
dXNlRGlkTW92ZU92ZXJFbGVtZW50X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAgKi8KKyAgICAgICAg
MCwgICAgICAgICAgLyogbWlzc2luZ1BsdWdpbkJ1dHRvbkNsaWNrZWQgKi8KKyAgICAgICAgMCwg
ICAgICAgICAgLyogZGlkTm90SGFuZGxlS2V5RXZlbnQgKi8KKyAgICAgICAgMCwgICAgICAgICAg
LyogZGlkTm90SGFuZGxlV2hlZWxFdmVudCAqLworICAgICAgICAwLCAgICAgICAgICAvKiB0b29s
YmFyc0FyZVZpc2libGUgKi8KKyAgICAgICAgMCwgICAgICAgICAgLyogc2V0VG9vbGJhcnNBcmVW
aXNpYmxlICovCisgICAgICAgIDAsICAgICAgICAgIC8qIG1lbnVCYXJJc1Zpc2libGUgKi8KKyAg
ICAgICAgMCwgICAgICAgICAgLyogc2V0TWVudUJhcklzVmlzaWJsZSAqLworICAgICAgICAwLCAg
ICAgICAgICAvKiBzdGF0dXNCYXJJc1Zpc2libGUgKi8KKyAgICAgICAgMCwgICAgICAgICAgLyog
c2V0U3RhdHVzQmFySXNWaXNpYmxlICovCisgICAgICAgIDAsICAgICAgICAgIC8qIGlzUmVzaXph
YmxlICovCisgICAgICAgIDAsICAgICAgICAgIC8qIHNldElzUmVzaXphYmxlICovCisgICAgICAg
IGdldFdpbmRvd0ZyYW1lLAorICAgICAgICBzZXRXaW5kb3dGcmFtZSwKKyAgICAgICAgcnVuQmVm
b3JlVW5sb2FkQ29uZmlybVBhbmVsLAorICAgICAgICAwLCAgICAgICAgICAvKiBkaWREcmF3ICov
CisgICAgICAgIDAsICAgICAgICAgIC8qIHBhZ2VEaWRTY3JvbGwgKi8KKyAgICAgICAgMCwgICAg
ICAgICAgLyogZXhjZWVkZWREYXRhYmFzZVF1b3RhICovCisgICAgICAgIHJ1bk9wZW5QYW5lbCwK
KyAgICAgICAgMCwgICAgICAgICAgLyogZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNz
aW9uUmVxdWVzdCAqLworICAgICAgICAwLCAvLyBoZWFkZXJIZWlnaHQKKyAgICAgICAgMCwgLy8g
Zm9vdGVySGVpZ2h0CisgICAgICAgIDAsIC8vIGRyYXdIZWFkZXIKKyAgICAgICAgMCwgLy8gZHJh
d0Zvb3RlcgorICAgICAgICAwLCAvLyBwcmludEZyYW1lCisgICAgICAgIDAsIC8vIHNob3dNb2Rh
bAorICAgICAgICAwLCAvLyBkaWRDb21wbGV0ZVJ1YmJlckJhbmRGb3JNYWluRnJhbWUKKyAgICAg
ICAgMCwgLy8gc2F2ZURhdGFUb0ZpbGVJbkRvd25sb2Fkc0ZvbGRlcgorICAgICAgICAwLCAvLyBz
aG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0CisgICAgICAgIGNyZWF0ZU5ld1BhZ2UsCisgICAgICAg
IG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50LAorICAgICAgICAwLCAvLyBkZWNpZGVQb2xpY3lGb3JO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdAorICAgICAgICAwLCAvLyB1bmF2YWlsYWJsZVBs
dWdpbkJ1dHRvbkNsaWNrZWQKKyAgICAgICAgMCwgLy8gc2hvd0NvbG9yUGlja2VyCisgICAgICAg
IDAsIC8vIGhpZGVDb2xvclBpY2tlcgorICAgIH07CisgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50
KF93ZWJWaWV3LnBhZ2VSZWYsICZ1aUNsaWVudCk7Cit9CisKKy0gKHZvaWQpZGlkU3RhcnRQcm9n
cmVzcworeworICAgIFtwcm9ncmVzc0luZGljYXRvciBzZXREb3VibGVWYWx1ZTowLjBdOworICAg
IFtwcm9ncmVzc0luZGljYXRvciBzZXRIaWRkZW46Tk9dOworfQorCistICh2b2lkKWRpZENoYW5n
ZVByb2dyZXNzOihkb3VibGUpdmFsdWUKK3sKKyAgICBbcHJvZ3Jlc3NJbmRpY2F0b3Igc2V0RG91
YmxlVmFsdWU6dmFsdWVdOworfQorCistICh2b2lkKWRpZEZpbmlzaFByb2dyZXNzCit7CisgICAg
W3Byb2dyZXNzSW5kaWNhdG9yIHNldEhpZGRlbjpZRVNdOworICAgIFtwcm9ncmVzc0luZGljYXRv
ciBzZXREb3VibGVWYWx1ZToxLjBdOworfQorCistICh2b2lkKXVwZGF0ZVByb3Zpc2lvbmFsVVJM
Rm9yRnJhbWU6KFdLRnJhbWVSZWYpZnJhbWUKK3sKKyAgICBzdGF0aWMgV0tVUkxSZWYgZW1wdHlV
UkwgPSAwOworICAgIGlmICghZW1wdHlVUkwpCisgICAgICAgIGVtcHR5VVJMID0gV0tVUkxDcmVh
dGVXaXRoVVRGOENTdHJpbmcoIiIpOworCisgICAgV0tVUkxSZWYgdXJsID0gV0tGcmFtZUNvcHlQ
cm92aXNpb25hbFVSTChmcmFtZSk7CisKKyAgICBpZiAoIXVybCkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgaWYgKFdLVVJMSXNFcXVhbCh1cmwsIGVtcHR5VVJMKSkgeworICAgICAgICBXS1JlbGVh
c2UodXJsKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIENGVVJMUmVmIGNmU291cmNl
VVJMID0gV0tVUkxDb3B5Q0ZVUkwoMCwgdXJsKTsKKyAgICBXS1JlbGVhc2UodXJsKTsKKworICAg
IFt1cmxUZXh0IHNldFN0cmluZ1ZhbHVlOihOU1N0cmluZyopQ0ZVUkxHZXRTdHJpbmcoY2ZTb3Vy
Y2VVUkwpXTsKKyAgICBDRlJlbGVhc2UoY2ZTb3VyY2VVUkwpOworfQorCistICh2b2lkKWRpZFN0
YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWU6KFdLRnJhbWVSZWYpZnJhbWUKK3sKKyAgICBpZiAo
IVdLRnJhbWVJc01haW5GcmFtZShmcmFtZSkpCisgICAgICAgIHJldHVybjsKKworICAgIFtzZWxm
IHVwZGF0ZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWU6ZnJhbWVdOworfQorCistICh2b2lkKWRpZFJl
Y2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lOihXS0ZyYW1lUmVm
KWZyYW1lCit7CisgICAgaWYgKCFXS0ZyYW1lSXNNYWluRnJhbWUoZnJhbWUpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBbc2VsZiB1cGRhdGVQcm92aXNpb25hbFVSTEZvckZyYW1lOmZyYW1lXTsK
K30KKworLSAodm9pZClkaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aEVycm9yRm9yRnJhbWU6KFdL
RnJhbWVSZWYpZnJhbWUKK3sKKyAgICBpZiAoIVdLRnJhbWVJc01haW5GcmFtZShmcmFtZSkpCisg
ICAgICAgIHJldHVybjsKKworICAgIFtzZWxmIHVwZGF0ZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWU6
ZnJhbWVdOworfQorCistICh2b2lkKWRpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWU6KFdLRnJh
bWVSZWYpZnJhbWUKK3sKKyAgICBpZiAoIVdLRnJhbWVJc01haW5GcmFtZShmcmFtZSkpCisgICAg
ICAgIHJldHVybjsKKworICAgIFtzZWxmIHVwZGF0ZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWU6ZnJh
bWVdOworfQorCistICh2b2lkKWRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZTooV0tG
cmFtZVJlZilmcmFtZQoreworfQorCistICh2b2lkKWRpZENvbW1pdExvYWRGb3JGcmFtZTooV0tG
cmFtZVJlZilmcmFtZQoreworfQorCistICh2b2lkKWxvYWRVUkxTdHJpbmc6KE5TU3RyaW5nICop
dXJsU3RyaW5nCit7CisgICAgLy8gRklYTUU6IFdlIHNob3VsZG4ndCBoYXZlIHRvIHNldCB0aGUg
dXJsIHRleHQgaGVyZS4KKyAgICBbdXJsVGV4dCBzZXRTdHJpbmdWYWx1ZTp1cmxTdHJpbmddOwor
ICAgIFtzZWxmIGZldGNoOm5pbF07Cit9CisKKy0gKElCQWN0aW9uKXBlcmZvcm1GaW5kUGFuZWxB
Y3Rpb246KGlkKXNlbmRlcgoreworICAgIFtmaW5kUGFuZWxXaW5kb3cgbWFrZUtleUFuZE9yZGVy
RnJvbnQ6c2VuZGVyXTsKK30KKworLSAoSUJBY3Rpb24pZmluZDooaWQpc2VuZGVyCit7CisgICAg
V0tTdHJpbmdSZWYgc3RyaW5nID0gV0tTdHJpbmdDcmVhdGVXaXRoQ0ZTdHJpbmcoKENGU3RyaW5n
UmVmKVtzZW5kZXIgc3RyaW5nVmFsdWVdKTsKKworICAgIFdLUGFnZUZpbmRTdHJpbmcoX3dlYlZp
ZXcucGFnZVJlZiwgc3RyaW5nLCBrV0tGaW5kT3B0aW9uc0Nhc2VJbnNlbnNpdGl2ZSB8IGtXS0Zp
bmRPcHRpb25zV3JhcEFyb3VuZCB8IGtXS0ZpbmRPcHRpb25zU2hvd0ZpbmRJbmRpY2F0b3IgfCBr
V0tGaW5kT3B0aW9uc1Nob3dPdmVybGF5LCAxMDApOworfQorCitAZW5kCg==
</data>
<flag name="review"
          id="180102"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>