<?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>205507</bug_id>
          
          <creation_ts>2019-12-20 09:47:34 -0800</creation_ts>
          <short_desc>Add a Custom User Agent menu to MiniBrowser, and related cleanup</short_desc>
          <delta_ts>2019-12-20 13:48:31 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>dino</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1600768</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-12-20 09:47:34 -0800</bug_when>
    <thetext>Add a Custom User Agent menu to MiniBrowser, and related cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600772</commentid>
    <comment_count>1</comment_count>
      <attachid>386220</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-12-20 09:51:34 -0800</bug_when>
    <thetext>Created attachment 386220
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600781</commentid>
    <comment_count>2</comment_count>
      <attachid>386220</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-12-20 10:00:09 -0800</bug_when>
    <thetext>Comment on attachment 386220
Patch

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

&gt; Tools/MiniBrowser/mac/AppDelegate.m:87
&gt; +//    [[NSApp mainMenu] insertItem:[item autorelease] atIndex:[[NSApp mainMenu] indexOfItemWithTitle:@&quot;Debug&quot;]];

Nit - I think you meant to remove this line?

&gt; Tools/MiniBrowser/mac/SettingsController.m:150
&gt; +    NSMenuItem *userAgentSubmenuItem = [[NSMenuItem alloc] initWithTitle:@&quot;User Agent&quot; action:nil keyEquivalent:@&quot;&quot;];
&gt; +    NSMenu *userAgentMenu = [[NSMenu alloc] initWithTitle:@&quot;User Agent&quot;];

It seems like these two will leak. I wonder if we can just use RetainPtr instead here (though it looks like nothing else in MiniBrowser includes wtf headers :/)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600821</commentid>
    <comment_count>3</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-12-20 11:15:33 -0800</bug_when>
    <thetext>We should ARC minibrowser :P</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600907</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-12-20 13:47:32 -0800</bug_when>
    <thetext>https://trac.webkit.org/changeset/253840/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600909</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-12-20 13:48:31 -0800</bug_when>
    <thetext>&lt;rdar://problem/58124430&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386220</attachid>
            <date>2019-12-20 09:51:34 -0800</date>
            <delta_ts>2019-12-20 10:00:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205507-20191220095133.patch</filename>
            <type>text/plain</type>
            <size>37577</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzNjkyCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggODAwYWZkZTBjMDNkN2Q2M2E2YmUwMjQxMjY0YmIxOGIy
ODIyMmI2Ny4uNjMyZTAwZTE5ZTc3NDIyMzFhYTRjZGVmYmFiNWY1ODk4Y2IwZTVlOCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3
IEBACisyMDE5LTEyLTIwICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgor
CisgICAgICAgIEFkZCBhIEN1c3RvbSBVc2VyIEFnZW50IG1lbnUgdG8gTWluaUJyb3dzZXIsIGFu
ZCByZWxhdGVkIGNsZWFudXAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwNTUwNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
ICAgICAgICAKKyAgICAgICAgQWRkIGEgVXNlciBBZ2VudCIgc3VibWVudSB0byB0aGUgU2V0dGlu
Z3MgbWVudSwgYW5kIGNvbnN0cnVjdCBpdCB3aXRoIHNvbWUgYnVpbHQtaW4KKyAgICAgICAgVUEg
c3RyaW5ncy4gV2hlbiBjaGFuZ2VkLCBpdCBzZXRzIHRoZSBjdXN0b21Vc2VyQWdlbnQgb24gdGhl
IFdLV2ViVmlldy9XZWJWaWV3IGFuZAorICAgICAgICB0cmlnZ2VycyBhIHJlbG9hZC4KKyAgICAg
ICAgCisgICAgICAgIEkgYWxzbyByZWFycmFuZ2VkIHRoZSBtZW51cyBzbyB0aGF0ICJTZXR0aW5n
cyIgYW5kICJEZWJ1ZyIgYXJlIG5vIGxvbmdlciB0byB0aGUgcmlnaHQKKyAgICAgICAgb2YgdGhl
ICJIZWxwIiBtZW51LCB3aGljaCBtZWFucyBnZXR0aW5nIHRoZSBTZXR0aW5ncyBtZW51IGZyb20g
dGhlIHhpYi4gSXQgd2FzIHRoZW4KKyAgICAgICAgZWFzaWVyIGlmIFNldHRpbmdzQ29udHJvbGxl
ciB3YXMgbm8gbG9uZ2VyIGEgc2luZ2xldG9uLCBidXQgb3duZWQgYnkgQXBwRGVsZWdhdGUuCisg
ICAgICAgIEFkZGVkIGEgY2F0ZWdvcnkgb24gTlNBcHBsaWNhdGlvbiB0byBtYWtlIGl0IGVhc2ll
ciB0byBnZXQgdG8gQnJvd3NlckFwcERlbGVnYXRlCisgICAgICAgIGFuZCB0aGVuY2UgdG8gdGhl
IFNldHRpbmdzQ29udHJvbGxlci4KKworICAgICAgICAqIE1pbmlCcm93c2VyL21hYy9BcHBEZWxl
Z2F0ZS5oOgorICAgICAgICAqIE1pbmlCcm93c2VyL21hYy9BcHBEZWxlZ2F0ZS5tOgorICAgICAg
ICAoLVtOU0FwcGxpY2F0aW9uIGJyb3dzZXJBcHBEZWxlZ2F0ZV0pOgorICAgICAgICAoLVtCcm93
c2VyQXBwRGVsZWdhdGUgYXdha2VGcm9tTmliXSk6CisgICAgICAgICgtW0Jyb3dzZXJBcHBEZWxl
Z2F0ZSBkZWZhdWx0Q29uZmlndXJhdGlvbl0pOgorICAgICAgICAoLVtCcm93c2VyQXBwRGVsZWdh
dGUgZGVmYXVsdFByZWZlcmVuY2VzXSk6CisgICAgICAgICgtW0Jyb3dzZXJBcHBEZWxlZ2F0ZSBj
cmVhdGVCcm93c2VyV2luZG93Q29udHJvbGxlcjpdKToKKyAgICAgICAgKC1bQnJvd3NlckFwcERl
bGVnYXRlIG5ld1dpbmRvdzpdKToKKyAgICAgICAgKC1bQnJvd3NlckFwcERlbGVnYXRlIG5ld1By
aXZhdGVXaW5kb3c6XSk6CisgICAgICAgICgtW0Jyb3dzZXJBcHBEZWxlZ2F0ZSBhcHBsaWNhdGlv
bkRpZEZpbmlzaExhdW5jaGluZzpdKToKKyAgICAgICAgKC1bQnJvd3NlckFwcERlbGVnYXRlIF91
cGRhdGVOZXdXaW5kb3dLZXlFcXVpdmFsZW50c10pOgorICAgICAgICAoLVtCcm93c2VyQXBwRGVs
ZWdhdGUgdXNlckNvbnRlbnRDb250b2xsZXJdKToKKyAgICAgICAgKGRlZmF1bHRDb25maWd1cmF0
aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKGRlZmF1bHRQcmVmZXJlbmNlcyk6IERlbGV0ZWQuCisg
ICAgICAgICogTWluaUJyb3dzZXIvbWFjL0V4dGVuc2lvbk1hbmFnZXJXaW5kb3dDb250cm9sbGVy
Lm06CisgICAgICAgICgtW0V4dGVuc2lvbk1hbmFnZXJXaW5kb3dDb250cm9sbGVyIGluaXRdKToK
KyAgICAgICAgKC1bRXh0ZW5zaW9uTWFuYWdlcldpbmRvd0NvbnRyb2xsZXIgYWRkOl0pOgorICAg
ICAgICAoLVtFeHRlbnNpb25NYW5hZ2VyV2luZG93Q29udHJvbGxlciByZW1vdmU6XSk6CisgICAg
ICAgICogTWluaUJyb3dzZXIvbWFjL01haW5NZW51LnhpYjoKKyAgICAgICAgKiBNaW5pQnJvd3Nl
ci9tYWMvU2V0dGluZ3NDb250cm9sbGVyLmg6CisgICAgICAgICogTWluaUJyb3dzZXIvbWFjL1Nl
dHRpbmdzQ29udHJvbGxlci5tOgorICAgICAgICAoLVtTZXR0aW5nc0NvbnRyb2xsZXIgaW5pdFdp
dGhNZW51Ol0pOgorICAgICAgICAoLVtTZXR0aW5nc0NvbnRyb2xsZXIgZGVhbGxvY10pOgorICAg
ICAgICAoLVtTZXR0aW5nc0NvbnRyb2xsZXIgX3BvcHVsYXRlTWVudV0pOgorICAgICAgICAoK1tT
ZXR0aW5nc0NvbnRyb2xsZXIgdXNlckFnZW50RGF0YV0pOgorICAgICAgICAoLVtTZXR0aW5nc0Nv
bnRyb2xsZXIgYnVpbGRVc2VyQWdlbnRzTWVudTpdKToKKyAgICAgICAgKC1bU2V0dGluZ3NDb250
cm9sbGVyIHZhbGlkYXRlTWVudUl0ZW06XSk6CisgICAgICAgICgtW1NldHRpbmdzQ29udHJvbGxl
ciBfdG9nZ2xlQm9vbGVhbkRlZmF1bHQ6XSk6CisgICAgICAgICgtW1NldHRpbmdzQ29udHJvbGxl
ciB0b2dnbGVFeHBlcmltZW50YWxGZWF0dXJlOl0pOgorICAgICAgICAoLVtTZXR0aW5nc0NvbnRy
b2xsZXIgdG9nZ2xlSW50ZXJuYWxEZWJ1Z0ZlYXR1cmU6XSk6CisgICAgICAgICgtW1NldHRpbmdz
Q29udHJvbGxlciBjdXN0b21Vc2VyQWdlbnRdKToKKyAgICAgICAgKC1bU2V0dGluZ3NDb250cm9s
bGVyIGNoYW5nZUN1dG9tVXNlckFnZW50Ol0pOgorICAgICAgICAoK1tTZXR0aW5nc0NvbnRyb2xs
ZXIgc2hhcmVkXSk6IERlbGV0ZWQuCisgICAgICAgICgtW1NldHRpbmdzQ29udHJvbGxlciBpbml0
XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1NldHRpbmdzQ29udHJvbGxlciBtZW51XSk6IERlbGV0
ZWQuCisgICAgICAgICogTWluaUJyb3dzZXIvbWFjL1dLMUJyb3dzZXJXaW5kb3dDb250cm9sbGVy
Lm06CisgICAgICAgICgtW1dLMUJyb3dzZXJXaW5kb3dDb250cm9sbGVyIGF3YWtlRnJvbU5pYl0p
OgorICAgICAgICAoLVtXSzFCcm93c2VyV2luZG93Q29udHJvbGxlciB1c2VyQWdlbnREaWRDaGFu
Z2U6XSk6CisgICAgICAgICgtW1dLMUJyb3dzZXJXaW5kb3dDb250cm9sbGVyIHdpbmRvd1dpbGxD
bG9zZTpdKToKKyAgICAgICAgKC1bV0sxQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgZGlkQ2hhbmdl
U2V0dGluZ3NdKToKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9tYWMvV0syQnJvd3NlcldpbmRvd0Nv
bnRyb2xsZXIubToKKyAgICAgICAgKC1bV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgYXdha2VG
cm9tTmliXSk6CisgICAgICAgICgtW1dLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyIGluaXRXaXRo
Q29uZmlndXJhdGlvbjpdKToKKyAgICAgICAgKC1bV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIg
dXNlckFnZW50RGlkQ2hhbmdlOl0pOgorICAgICAgICAoLVtXSzJCcm93c2VyV2luZG93Q29udHJv
bGxlciB3aW5kb3dXaWxsQ2xvc2U6XSk6CisgICAgICAgICgtW1dLMkJyb3dzZXJXaW5kb3dDb250
cm9sbGVyIGRpZENoYW5nZVNldHRpbmdzXSk6CisKIDIwMTktMTItMTggIENhcmxvcyBHYXJjaWEg
Q2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgR1RLIGdh
cmRlbmluZy4gVXBkYXRlIGV4cGVjdGF0aW9ucyBvZiB1bml0IHRlc3RzCmRpZmYgLS1naXQgYS9U
b29scy9NaW5pQnJvd3Nlci9tYWMvQXBwRGVsZWdhdGUuaCBiL1Rvb2xzL01pbmlCcm93c2VyL21h
Yy9BcHBEZWxlZ2F0ZS5oCmluZGV4IDQ1ZWYxYTY0MjRlYTNhMDFjZWYxNGI4OGQ2NjEwYWFiZTk4
NDQ2YWEuLmNhOTgwMzZlNTE0OTE2OTViYzk3NmZlZGNkMTBjOWU2M2QzODYxNDQgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL01pbmlCcm93c2VyL21hYy9BcHBEZWxlZ2F0ZS5oCisrKyBiL1Rvb2xzL01pbmlC
cm93c2VyL21hYy9BcHBEZWxlZ2F0ZS5oCkBAIC0yNCwxMSArMjQsMTUgQEAKICAqLwogCiBAY2xh
c3MgRXh0ZW5zaW9uTWFuYWdlcldpbmRvd0NvbnRyb2xsZXI7CitAY2xhc3MgU2V0dGluZ3NDb250
cm9sbGVyOwogCiBAaW50ZXJmYWNlIEJyb3dzZXJBcHBEZWxlZ2F0ZSA6IE5TT2JqZWN0IDxOU0Fw
cGxpY2F0aW9uRGVsZWdhdGU+IHsKICAgICBOU011dGFibGVTZXQgKl9icm93c2VyV2luZG93Q29u
dHJvbGxlcnM7CisgICAgU2V0dGluZ3NDb250cm9sbGVyICpfc2V0dGluZ3NDb250cm9sbGVyOwog
ICAgIEV4dGVuc2lvbk1hbmFnZXJXaW5kb3dDb250cm9sbGVyICpfZXh0ZW5zaW9uTWFuYWdlcldp
bmRvd0NvbnRyb2xsZXI7CiAKKyAgICBJQk91dGxldCBOU01lbnUgKl9zZXR0aW5nc01lbnU7CisK
ICAgICBJQk91dGxldCBOU01lbnVJdGVtICpfbmV3V2ViS2l0MVdpbmRvd0l0ZW07CiAgICAgSUJP
dXRsZXQgTlNNZW51SXRlbSAqX25ld1dlYktpdDJXaW5kb3dJdGVtOwogICAgIElCT3V0bGV0IE5T
TWVudUl0ZW0gKl9uZXdXZWJLaXQxRWRpdG9ySXRlbTsKQEAgLTM5LDggKzQzLDE0IEBAIEBpbnRl
cmZhY2UgQnJvd3NlckFwcERlbGVnYXRlIDogTlNPYmplY3QgPE5TQXBwbGljYXRpb25EZWxlZ2F0
ZT4gewogCiAtICh2b2lkKWRpZENoYW5nZVNldHRpbmdzOwogCi1AcHJvcGVydHkgKHJlYWRvbmx5
KSBXS1VzZXJDb250ZW50Q29udHJvbGxlciAqdXNlckNvbnRlbnRDb250b2xsZXI7CitAcHJvcGVy
dHkgKHJlYWRvbmx5LCBub25hdG9taWMpIFdLVXNlckNvbnRlbnRDb250cm9sbGVyICp1c2VyQ29u
dGVudENvbnRvbGxlcjsKK0Bwcm9wZXJ0eSAocmVhZG9ubHksIG5vbmF0b21pYykgU2V0dGluZ3ND
b250cm9sbGVyICpzZXR0aW5nc0NvbnRyb2xsZXI7CitAcHJvcGVydHkgKHJlYWRvbmx5LCBub25h
dG9taWMpIFdLUHJlZmVyZW5jZXMgKmRlZmF1bHRQcmVmZXJlbmNlczsKIAogQGVuZAogCi1XS1By
ZWZlcmVuY2VzICpkZWZhdWx0UHJlZmVyZW5jZXModm9pZCk7CitAaW50ZXJmYWNlIE5TQXBwbGlj
YXRpb24gKE1pbmlCcm93c2VyQXBwbGljYXRpb25FeHRlbnNpb25zKQorCistIChCcm93c2VyQXBw
RGVsZWdhdGUgKilicm93c2VyQXBwRGVsZWdhdGU7CisKK0BlbmQKZGlmZiAtLWdpdCBhL1Rvb2xz
L01pbmlCcm93c2VyL21hYy9BcHBEZWxlZ2F0ZS5tIGIvVG9vbHMvTWluaUJyb3dzZXIvbWFjL0Fw
cERlbGVnYXRlLm0KaW5kZXggYjZhZjRlZjcyNGZiYzM2NDFlZmExYzcxMzVjMWZhZjQwNWIwYTc5
ZC4uMmI3OTUxOTY5MWI1ZDU1YmUxNmJmOGI0N2MzYTc1NWYyZGRlZmM3MiAxMDA2NDQKLS0tIGEv
VG9vbHMvTWluaUJyb3dzZXIvbWFjL0FwcERlbGVnYXRlLm0KKysrIGIvVG9vbHMvTWluaUJyb3dz
ZXIvbWFjL0FwcERlbGVnYXRlLm0KQEAgLTQ4LDggKzQ4LDIwIEBACiAgICAgV2ViS2l0Mk5ld0Vk
aXRvclRhZyA9IDQKIH07CiAKK0BpbXBsZW1lbnRhdGlvbiBOU0FwcGxpY2F0aW9uIChNaW5pQnJv
d3NlckFwcGxpY2F0aW9uRXh0ZW5zaW9ucykKKworLSAoQnJvd3NlckFwcERlbGVnYXRlICopYnJv
d3NlckFwcERlbGVnYXRlCit7CisgICAgcmV0dXJuIChCcm93c2VyQXBwRGVsZWdhdGUgKilbc2Vs
ZiBkZWxlZ2F0ZV07Cit9CisKK0BlbmQKKwogQGludGVyZmFjZSBOU0FwcGxpY2F0aW9uIChUb3Vj
aEJhcikKIEBwcm9wZXJ0eSAoZ2V0dGVyPWlzQXV0b21hdGljQ3VzdG9taXplVG91Y2hCYXJNZW51
SXRlbUVuYWJsZWQpIEJPT0wgYXV0b21hdGljQ3VzdG9taXplVG91Y2hCYXJNZW51SXRlbUVuYWJs
ZWQ7CisKK0Bwcm9wZXJ0eSAocmVhZG9ubHksIG5vbmF0b21pYykgV0tXZWJWaWV3Q29uZmlndXJh
dGlvbiAqZGVmYXVsdENvbmZpZ3VyYXRpb247CisKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIEJy
b3dzZXJBcHBEZWxlZ2F0ZQpAQCAtNjcsMTMgKzc5LDEyIEBAIC0gKGlkKWluaXQKIAogLSAodm9p
ZClhd2FrZUZyb21OaWIKIHsKLSAgICBOU01lbnVJdGVtICppdGVtID0gW1tOU01lbnVJdGVtIGFs
bG9jXSBpbml0XTsKLSAgICBbaXRlbSBzZXRTdWJtZW51OltbU2V0dGluZ3NDb250cm9sbGVyIHNo
YXJlZF0gbWVudV1dOworICAgIF9zZXR0aW5nc0NvbnRyb2xsZXIgPSBbW1NldHRpbmdzQ29udHJv
bGxlciBhbGxvY10gaW5pdFdpdGhNZW51Ol9zZXR0aW5nc01lbnVdOwogCi0gICAgaWYgKFtbU2V0
dGluZ3NDb250cm9sbGVyIHNoYXJlZF0gdXNlc0dhbWVDb250cm9sbGVyRnJhbWV3b3JrXSkKKyAg
ICBpZiAoW19zZXR0aW5nc0NvbnRyb2xsZXIgdXNlc0dhbWVDb250cm9sbGVyRnJhbWV3b3JrXSkK
ICAgICAgICAgW1dLUHJvY2Vzc1Bvb2wgX2ZvcmNlR2FtZUNvbnRyb2xsZXJGcmFtZXdvcmtdOwog
Ci0gICAgW1tOU0FwcCBtYWluTWVudV0gaW5zZXJ0SXRlbTpbaXRlbSBhdXRvcmVsZWFzZV0gYXRJ
bmRleDpbW05TQXBwIG1haW5NZW51XSBpbmRleE9mSXRlbVdpdGhUaXRsZTpAIkRlYnVnIl1dOwor
Ly8gICAgW1tOU0FwcCBtYWluTWVudV0gaW5zZXJ0SXRlbTpbaXRlbSBhdXRvcmVsZWFzZV0gYXRJ
bmRleDpbW05TQXBwIG1haW5NZW51XSBpbmRleE9mSXRlbVdpdGhUaXRsZTpAIkRlYnVnIl1dOwog
CiAgICAgaWYgKFtOU0FwcCByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHNldEF1dG9tYXRp
Y0N1c3RvbWl6ZVRvdWNoQmFyTWVudUl0ZW1FbmFibGVkOildKQogICAgICAgICBbTlNBcHAgc2V0
QXV0b21hdGljQ3VzdG9taXplVG91Y2hCYXJNZW51SXRlbUVuYWJsZWQ6WUVTXTsKQEAgLTkyLDcg
KzEwMyw3IEBAIC0gKHZvaWQpYXdha2VGcm9tTmliCiAgICAgcmV0dXJuIGRhdGFTdG9yZTsKIH0K
IAotc3RhdGljIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKmRlZmF1bHRDb25maWd1cmF0aW9uKCkK
Ky0gKFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKilkZWZhdWx0Q29uZmlndXJhdGlvbgogewogICAg
IHN0YXRpYyBXS1dlYlZpZXdDb25maWd1cmF0aW9uICpjb25maWd1cmF0aW9uOwogCkBAIC0xMDUs
OSArMTE2LDkgQEAgLSAodm9pZClhd2FrZUZyb21OaWIKICAgICAgICAgY29uZmlndXJhdGlvbi5w
cmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCA9IFlFUzsKIAogICAgICAgICBf
V0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gKnByb2Nlc3NDb25maWd1cmF0aW9uID0gW1tbX1dL
UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSBhdXRvcmVsZWFzZV07Ci0gICAg
ICAgIGlmIChbU2V0dGluZ3NDb250cm9sbGVyIHNoYXJlZF0ucGVyV2luZG93V2ViUHJvY2Vzc2Vz
RGlzYWJsZWQpCisgICAgICAgIGlmIChfc2V0dGluZ3NDb250cm9sbGVyLnBlcldpbmRvd1dlYlBy
b2Nlc3Nlc0Rpc2FibGVkKQogICAgICAgICAgICAgcHJvY2Vzc0NvbmZpZ3VyYXRpb24udXNlc1Np
bmdsZVdlYlByb2Nlc3MgPSBZRVM7Ci0gICAgICAgIGlmIChbU2V0dGluZ3NDb250cm9sbGVyIHNo
YXJlZF0ucHJvY2Vzc1N3YXBPbldpbmRvd09wZW5XaXRoT3BlbmVyRW5hYmxlZCkKKyAgICAgICAg
aWYgKF9zZXR0aW5nc0NvbnRyb2xsZXIucHJvY2Vzc1N3YXBPbldpbmRvd09wZW5XaXRoT3BlbmVy
RW5hYmxlZCkKICAgICAgICAgICAgIHByb2Nlc3NDb25maWd1cmF0aW9uLnByb2Nlc3NTd2Fwc09u
V2luZG93T3BlbldpdGhPcGVuZXIgPSB0cnVlOwogICAgICAgICAKICAgICAgICAgY29uZmlndXJh
dGlvbi5wcm9jZXNzUG9vbCA9IFtbW1dLUHJvY2Vzc1Bvb2wgYWxsb2NdIF9pbml0V2l0aENvbmZp
Z3VyYXRpb246cHJvY2Vzc0NvbmZpZ3VyYXRpb25dIGF1dG9yZWxlYXNlXTsKQEAgLTEzMywxNCAr
MTQ0LDE0IEBAIC0gKHZvaWQpYXdha2VGcm9tTmliCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBj
b25maWd1cmF0aW9uLnN1cHByZXNzZXNJbmNyZW1lbnRhbFJlbmRlcmluZyA9IFtTZXR0aW5nc0Nv
bnRyb2xsZXIgc2hhcmVkXS5pbmNyZW1lbnRhbFJlbmRlcmluZ1N1cHByZXNzZWQ7Ci0gICAgY29u
ZmlndXJhdGlvbi53ZWJzaXRlRGF0YVN0b3JlLl9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxl
ZCA9IFtTZXR0aW5nc0NvbnRyb2xsZXIgc2hhcmVkXS5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5h
YmxlZDsKKyAgICBjb25maWd1cmF0aW9uLnN1cHByZXNzZXNJbmNyZW1lbnRhbFJlbmRlcmluZyA9
IF9zZXR0aW5nc0NvbnRyb2xsZXIuaW5jcmVtZW50YWxSZW5kZXJpbmdTdXBwcmVzc2VkOworICAg
IGNvbmZpZ3VyYXRpb24ud2Vic2l0ZURhdGFTdG9yZS5fcmVzb3VyY2VMb2FkU3RhdGlzdGljc0Vu
YWJsZWQgPSBfc2V0dGluZ3NDb250cm9sbGVyLnJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVk
OwogICAgIHJldHVybiBjb25maWd1cmF0aW9uOwogfQogCi1XS1ByZWZlcmVuY2VzICpkZWZhdWx0
UHJlZmVyZW5jZXMoKQorLSAoV0tQcmVmZXJlbmNlcyAqKWRlZmF1bHRQcmVmZXJlbmNlcwogewot
ICAgIHJldHVybiBkZWZhdWx0Q29uZmlndXJhdGlvbigpLnByZWZlcmVuY2VzOworICAgIHJldHVy
biBzZWxmLmRlZmF1bHRDb25maWd1cmF0aW9uLnByZWZlcmVuY2VzOwogfQogCiAtIChCcm93c2Vy
V2luZG93Q29udHJvbGxlciAqKWNyZWF0ZUJyb3dzZXJXaW5kb3dDb250cm9sbGVyOihpZClzZW5k
ZXIKQEAgLTE1MCw4ICsxNjEsOCBAQCAtIChCcm93c2VyV2luZG93Q29udHJvbGxlciAqKWNyZWF0
ZUJyb3dzZXJXaW5kb3dDb250cm9sbGVyOihpZClzZW5kZXIKICAgICBCT09MIG1ha2VFZGl0YWJs
ZSA9IE5POwogCiAgICAgaWYgKCFbc2VuZGVyIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Io
dGFnKV0pIHsKLSAgICAgICAgdXNlV2ViS2l0MiA9IFtTZXR0aW5nc0NvbnRyb2xsZXIgc2hhcmVk
XS51c2VXZWJLaXQyQnlEZWZhdWx0OwotICAgICAgICBtYWtlRWRpdGFibGUgPSBbU2V0dGluZ3ND
b250cm9sbGVyIHNoYXJlZF0uY3JlYXRlRWRpdG9yQnlEZWZhdWx0OworICAgICAgICB1c2VXZWJL
aXQyID0gX3NldHRpbmdzQ29udHJvbGxlci51c2VXZWJLaXQyQnlEZWZhdWx0OworICAgICAgICBt
YWtlRWRpdGFibGUgPSBfc2V0dGluZ3NDb250cm9sbGVyLmNyZWF0ZUVkaXRvckJ5RGVmYXVsdDsK
ICAgICB9IGVsc2UgewogICAgICAgICB1c2VXZWJLaXQyID0gW3NlbmRlciB0YWddID09IFdlYktp
dDJOZXdXaW5kb3dUYWcgfHwgW3NlbmRlciB0YWddID09IFdlYktpdDJOZXdFZGl0b3JUYWc7CiAg
ICAgICAgIG1ha2VFZGl0YWJsZSA9IFtzZW5kZXIgdGFnXSA9PSBXZWJLaXQxTmV3RWRpdG9yVGFn
IHx8IFtzZW5kZXIgdGFnXSA9PSBXZWJLaXQyTmV3RWRpdG9yVGFnOwpAQCAtMTYwLDcgKzE3MSw3
IEBAIC0gKEJyb3dzZXJXaW5kb3dDb250cm9sbGVyICopY3JlYXRlQnJvd3NlcldpbmRvd0NvbnRy
b2xsZXI6KGlkKXNlbmRlcgogICAgIGlmICghdXNlV2ViS2l0MikKICAgICAgICAgY29udHJvbGxl
ciA9IFtbV0sxQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgYWxsb2NdIGluaXRXaXRoV2luZG93Tmli
TmFtZTpAIkJyb3dzZXJXaW5kb3ciXTsKICAgICBlbHNlCi0gICAgICAgIGNvbnRyb2xsZXIgPSBb
W1dLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyIGFsbG9jXSBpbml0V2l0aENvbmZpZ3VyYXRpb246
ZGVmYXVsdENvbmZpZ3VyYXRpb24oKV07CisgICAgICAgIGNvbnRyb2xsZXIgPSBbW1dLMkJyb3dz
ZXJXaW5kb3dDb250cm9sbGVyIGFsbG9jXSBpbml0V2l0aENvbmZpZ3VyYXRpb246W3NlbGYgZGVm
YXVsdENvbmZpZ3VyYXRpb25dXTsKIAogICAgIGlmIChtYWtlRWRpdGFibGUpCiAgICAgICAgIGNv
bnRyb2xsZXIuZWRpdGFibGUgPSBZRVM7CkBAIC0xODAsMTIgKzE5MSwxMiBAQCAtIChJQkFjdGlv
biluZXdXaW5kb3c6KGlkKXNlbmRlcgogICAgICAgICByZXR1cm47CiAKICAgICBbW2NvbnRyb2xs
ZXIgd2luZG93XSBtYWtlS2V5QW5kT3JkZXJGcm9udDpzZW5kZXJdOwotICAgIFtjb250cm9sbGVy
IGxvYWRVUkxTdHJpbmc6W1NldHRpbmdzQ29udHJvbGxlciBzaGFyZWRdLmRlZmF1bHRVUkxdOwor
ICAgIFtjb250cm9sbGVyIGxvYWRVUkxTdHJpbmc6X3NldHRpbmdzQ29udHJvbGxlci5kZWZhdWx0
VVJMXTsKIH0KIAogLSAoSUJBY3Rpb24pbmV3UHJpdmF0ZVdpbmRvdzooaWQpc2VuZGVyCiB7Ci0g
ICAgV0tXZWJWaWV3Q29uZmlndXJhdGlvbiAqcHJpdmF0ZUNvbmZpZ3VyYXRvbiA9IFtkZWZhdWx0
Q29uZmlndXJhdGlvbigpIGNvcHldOworICAgIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKnByaXZh
dGVDb25maWd1cmF0b24gPSBbc2VsZi5kZWZhdWx0Q29uZmlndXJhdGlvbiBjb3B5XTsKICAgICBw
cml2YXRlQ29uZmlndXJhdG9uLndlYnNpdGVEYXRhU3RvcmUgPSBbV0tXZWJzaXRlRGF0YVN0b3Jl
IG5vblBlcnNpc3RlbnREYXRhU3RvcmVdOwogCiAgICAgQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIg
KmNvbnRyb2xsZXIgPSBbW1dLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyIGFsbG9jXSBpbml0V2l0
aENvbmZpZ3VyYXRpb246cHJpdmF0ZUNvbmZpZ3VyYXRvbl07CkBAIC0xOTQsNyArMjA1LDcgQEAg
LSAoSUJBY3Rpb24pbmV3UHJpdmF0ZVdpbmRvdzooaWQpc2VuZGVyCiAgICAgW1tjb250cm9sbGVy
IHdpbmRvd10gbWFrZUtleUFuZE9yZGVyRnJvbnQ6c2VuZGVyXTsKICAgICBbX2Jyb3dzZXJXaW5k
b3dDb250cm9sbGVycyBhZGRPYmplY3Q6Y29udHJvbGxlcl07CiAKLSAgICBbY29udHJvbGxlciBs
b2FkVVJMU3RyaW5nOltTZXR0aW5nc0NvbnRyb2xsZXIgc2hhcmVkXS5kZWZhdWx0VVJMXTsKKyAg
ICBbY29udHJvbGxlciBsb2FkVVJMU3RyaW5nOl9zZXR0aW5nc0NvbnRyb2xsZXIuZGVmYXVsdFVS
TF07CiB9CiAKIC0gKElCQWN0aW9uKW5ld0VkaXRvcldpbmRvdzooaWQpc2VuZGVyCkBAIC0yMjAs
NyArMjMxLDcgQEAgLSAodm9pZClhcHBsaWNhdGlvbkRpZEZpbmlzaExhdW5jaGluZzooTlNOb3Rp
ZmljYXRpb24gKilhTm90aWZpY2F0aW9uCiAKICAgICBbc2VsZiBfdXBkYXRlTmV3V2luZG93S2V5
RXF1aXZhbGVudHNdOwogCi0gICAgaWYgKFtTZXR0aW5nc0NvbnRyb2xsZXIgc2hhcmVkXS5jcmVh
dGVFZGl0b3JCeURlZmF1bHQpCisgICAgaWYgKF9zZXR0aW5nc0NvbnRyb2xsZXIuY3JlYXRlRWRp
dG9yQnlEZWZhdWx0KQogICAgICAgICBbc2VsZiBuZXdFZGl0b3JXaW5kb3c6c2VsZl07CiAgICAg
ZWxzZQogICAgICAgICBbc2VsZiBuZXdXaW5kb3c6c2VsZl07CkBAIC0yOTMsMTEgKzMwNCwxMSBA
QCAtICh2b2lkKWRpZENoYW5nZVNldHRpbmdzCiAKIC0gKHZvaWQpX3VwZGF0ZU5ld1dpbmRvd0tl
eUVxdWl2YWxlbnRzCiB7Ci0gICAgTlNFdmVudE1vZGlmaWVyRmxhZ3Mgd2ViS2l0MUZsYWdzID0g
W1NldHRpbmdzQ29udHJvbGxlciBzaGFyZWRdLnVzZVdlYktpdDJCeURlZmF1bHQgPyBOU0V2ZW50
TW9kaWZpZXJGbGFnT3B0aW9uIDogMDsKLSAgICBOU0V2ZW50TW9kaWZpZXJGbGFncyB3ZWJLaXQy
RmxhZ3MgPSBbU2V0dGluZ3NDb250cm9sbGVyIHNoYXJlZF0udXNlV2ViS2l0MkJ5RGVmYXVsdCA/
IDAgOiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uOworICAgIE5TRXZlbnRNb2RpZmllckZsYWdz
IHdlYktpdDFGbGFncyA9IF9zZXR0aW5nc0NvbnRyb2xsZXIudXNlV2ViS2l0MkJ5RGVmYXVsdCA/
IE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb24gOiAwOworICAgIE5TRXZlbnRNb2RpZmllckZsYWdz
IHdlYktpdDJGbGFncyA9IF9zZXR0aW5nc0NvbnRyb2xsZXIudXNlV2ViS2l0MkJ5RGVmYXVsdCA/
IDAgOiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uOwogCi0gICAgTlNTdHJpbmcgKm5vcm1hbFdp
bmRvd0VxdWl2YWxlbnQgPSBbU2V0dGluZ3NDb250cm9sbGVyIHNoYXJlZF0uY3JlYXRlRWRpdG9y
QnlEZWZhdWx0ID8gQCJOIiA6IEAibiI7Ci0gICAgTlNTdHJpbmcgKmVkaXRvckVxdWl2YWxlbnQg
PSBbU2V0dGluZ3NDb250cm9sbGVyIHNoYXJlZF0uY3JlYXRlRWRpdG9yQnlEZWZhdWx0ID8gQCJu
IiA6IEAiTiI7CisgICAgTlNTdHJpbmcgKm5vcm1hbFdpbmRvd0VxdWl2YWxlbnQgPSBfc2V0dGlu
Z3NDb250cm9sbGVyLmNyZWF0ZUVkaXRvckJ5RGVmYXVsdCA/IEAiTiIgOiBAIm4iOworICAgIE5T
U3RyaW5nICplZGl0b3JFcXVpdmFsZW50ID0gX3NldHRpbmdzQ29udHJvbGxlci5jcmVhdGVFZGl0
b3JCeURlZmF1bHQgPyBAIm4iIDogQCJOIjsKIAogICAgIF9uZXdXZWJLaXQxV2luZG93SXRlbS5r
ZXlFcXVpdmFsZW50TW9kaWZpZXJNYXNrID0gTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQgfCB3
ZWJLaXQxRmxhZ3M7CiAgICAgX25ld1dlYktpdDJXaW5kb3dJdGVtLmtleUVxdWl2YWxlbnRNb2Rp
Zmllck1hc2sgPSBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZCB8IHdlYktpdDJGbGFnczsKQEAg
LTMxNyw3ICszMjgsNyBAQCAtIChJQkFjdGlvbilzaG93RXh0ZW5zaW9uc01hbmFnZXI6KGlkKXNl
bmRlcgogCiAtIChXS1VzZXJDb250ZW50Q29udHJvbGxlciAqKXVzZXJDb250ZW50Q29udG9sbGVy
CiB7Ci0gICAgcmV0dXJuIGRlZmF1bHRDb25maWd1cmF0aW9uKCkudXNlckNvbnRlbnRDb250cm9s
bGVyOworICAgIHJldHVybiBzZWxmLmRlZmF1bHRDb25maWd1cmF0aW9uLnVzZXJDb250ZW50Q29u
dHJvbGxlcjsKIH0KIAogLSAoSUJBY3Rpb24pZmV0Y2hEZWZhdWx0U3RvcmVXZWJzaXRlRGF0YToo
aWQpc2VuZGVyCmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9tYWMvRXh0ZW5zaW9uTWFu
YWdlcldpbmRvd0NvbnRyb2xsZXIubSBiL1Rvb2xzL01pbmlCcm93c2VyL21hYy9FeHRlbnNpb25N
YW5hZ2VyV2luZG93Q29udHJvbGxlci5tCmluZGV4IGRkNjRlMjc5NjE4NzQ3MTk4N2I3NzFkZDk1
Njk4NWIyNjYyMDNmZDUuLjU3MzBiNjJjZGJkNmUxOTg3ZjUwOTRiODNiYTUxNTAzMjAxZTdiZGYg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2VyL21hYy9FeHRlbnNpb25NYW5hZ2VyV2luZG93
Q29udHJvbGxlci5tCisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL21hYy9FeHRlbnNpb25NYW5hZ2Vy
V2luZG93Q29udHJvbGxlci5tCkBAIC00NSw3ICs0NSw3IEBAIC0gKGluc3RhbmNldHlwZSlpbml0
CiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgIH0K
IAotICAgICAgICAgICAgICAgICAgICBCcm93c2VyQXBwRGVsZWdhdGUqIGFwcERlbGVnYXRlID0g
KEJyb3dzZXJBcHBEZWxlZ2F0ZSAqKVtbTlNBcHBsaWNhdGlvbiBzaGFyZWRBcHBsaWNhdGlvbl0g
ZGVsZWdhdGVdOworICAgICAgICAgICAgICAgICAgICBCcm93c2VyQXBwRGVsZWdhdGUqIGFwcERl
bGVnYXRlID0gW1tOU0FwcGxpY2F0aW9uIHNoYXJlZEFwcGxpY2F0aW9uXSBicm93c2VyQXBwRGVs
ZWdhdGVdOwogICAgICAgICAgICAgICAgICAgICBbYXBwRGVsZWdhdGUudXNlckNvbnRlbnRDb250
b2xsZXIgX2FkZFVzZXJDb250ZW50RmlsdGVyOmV4dGVuc2lvbl07CiAgICAgICAgICAgICAgICAg
fV07CiAgICAgICAgICAgICB9CkBAIC0xMDQsNyArMTA0LDcgQEAgLSAoSUJBY3Rpb24pYWRkOihp
ZClzZW5kZXIKIAogICAgICAgICAgICAgW2FycmF5Q29udHJvbGxlciBhZGRPYmplY3Q6aWRlbnRp
Zmllcl07CiAKLSAgICAgICAgICAgIEJyb3dzZXJBcHBEZWxlZ2F0ZSogYXBwRGVsZWdhdGUgPSAo
QnJvd3NlckFwcERlbGVnYXRlICopW1tOU0FwcGxpY2F0aW9uIHNoYXJlZEFwcGxpY2F0aW9uXSBk
ZWxlZ2F0ZV07CisgICAgICAgICAgICBCcm93c2VyQXBwRGVsZWdhdGUqIGFwcERlbGVnYXRlID0g
W1tOU0FwcGxpY2F0aW9uIHNoYXJlZEFwcGxpY2F0aW9uXSBicm93c2VyQXBwRGVsZWdhdGVdOwog
ICAgICAgICAgICAgW2FwcERlbGVnYXRlLnVzZXJDb250ZW50Q29udG9sbGVyIF9hZGRVc2VyQ29u
dGVudEZpbHRlcjpleHRlbnNpb25dOwogICAgICAgICB9XTsKICAgICB9XTsKQEAgLTEzMyw3ICsx
MzMsNyBAQCAtIChJQkFjdGlvbilyZW1vdmU6KGlkKXNlbmRlcgogICAgICAgICBbaW5zdGFsbGVk
Q29udGVudEV4dGVuc2lvbnMgcmVsZWFzZV07CiAKICAgICAgICAgW2FycmF5Q29udHJvbGxlciBy
ZW1vdmVPYmplY3RBdEFycmFuZ2VkT2JqZWN0SW5kZXg6aW5kZXhdOwotICAgICAgICBCcm93c2Vy
QXBwRGVsZWdhdGUqIGFwcERlbGVnYXRlID0gKEJyb3dzZXJBcHBEZWxlZ2F0ZSAqKVtbTlNBcHBs
aWNhdGlvbiBzaGFyZWRBcHBsaWNhdGlvbl0gZGVsZWdhdGVdOworICAgICAgICBCcm93c2VyQXBw
RGVsZWdhdGUqIGFwcERlbGVnYXRlID0gW1tOU0FwcGxpY2F0aW9uIHNoYXJlZEFwcGxpY2F0aW9u
XSBicm93c2VyQXBwRGVsZWdhdGVdOwogICAgICAgICBbYXBwRGVsZWdhdGUudXNlckNvbnRlbnRD
b250b2xsZXIgX3JlbW92ZVVzZXJDb250ZW50RmlsdGVyOmlkZW50aWZpZXJUb1JlbW92ZV07CiAg
ICAgfV07CiB9CmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9tYWMvTWFpbk1lbnUueGli
IGIvVG9vbHMvTWluaUJyb3dzZXIvbWFjL01haW5NZW51LnhpYgppbmRleCA3ZmZiMjFmZmFiNzA2
YzZjZWIzZWQ5NzhkZTA1MGEzOTYyYTRkNmRjLi4yYjRkM2EzYjhjYjhhMjAyNTc4Njk3MTJiMTVi
Yzg1NTU3ZWQ2M2NiIDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9tYWMvTWFpbk1lbnUu
eGliCisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL21hYy9NYWluTWVudS54aWIKQEAgLTEsNyArMSw3
IEBACiA8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPGRvY3VtZW50IHR5
cGU9ImNvbS5hcHBsZS5JbnRlcmZhY2VCdWlsZGVyMy5Db2NvYS5YSUIiIHZlcnNpb249IjMuMCIg
dG9vbHNWZXJzaW9uPSIxNDg1NC4yIiB0YXJnZXRSdW50aW1lPSJNYWNPU1guQ29jb2EiIHByb3Bl
cnR5QWNjZXNzQ29udHJvbD0ibm9uZSIgdXNlQXV0b2xheW91dD0iWUVTIj4KKzxkb2N1bWVudCB0
eXBlPSJjb20uYXBwbGUuSW50ZXJmYWNlQnVpbGRlcjMuQ29jb2EuWElCIiB2ZXJzaW9uPSIzLjAi
IHRvb2xzVmVyc2lvbj0iMTU1MDUiIHRhcmdldFJ1bnRpbWU9Ik1hY09TWC5Db2NvYSIgcHJvcGVy
dHlBY2Nlc3NDb250cm9sPSJub25lIiB1c2VBdXRvbGF5b3V0PSJZRVMiPgogICAgIDxkZXBlbmRl
bmNpZXM+Ci0gICAgICAgIDxwbHVnSW4gaWRlbnRpZmllcj0iY29tLmFwcGxlLkludGVyZmFjZUJ1
aWxkZXIuQ29jb2FQbHVnaW4iIHZlcnNpb249IjE0ODU0LjIiLz4KKyAgICAgICAgPHBsdWdJbiBp
ZGVudGlmaWVyPSJjb20uYXBwbGUuSW50ZXJmYWNlQnVpbGRlci5Db2NvYVBsdWdpbiIgdmVyc2lv
bj0iMTU1MDUiLz4KICAgICA8L2RlcGVuZGVuY2llcz4KICAgICA8b2JqZWN0cz4KICAgICAgICAg
PGN1c3RvbU9iamVjdCBpZD0iLTIiIHVzZXJMYWJlbD0iRmlsZSdzIE93bmVyIiBjdXN0b21DbGFz
cz0iTlNBcHBsaWNhdGlvbiI+CkBAIC03NzMsNDEgKzc3Myw5IEBACiAgICAgICAgICAgICAgICAg
ICAgICAgICA8L2l0ZW1zPgogICAgICAgICAgICAgICAgICAgICA8L21lbnU+CiAgICAgICAgICAg
ICAgICAgPC9tZW51SXRlbT4KLSAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9IldpbmRv
dyIgaWQ9IjE5Ij4KLSAgICAgICAgICAgICAgICAgICAgPG1lbnUga2V5PSJzdWJtZW51IiB0aXRs
ZT0iV2luZG93IiBzeXN0ZW1NZW51PSJ3aW5kb3ciIGlkPSIyNCI+Ci0gICAgICAgICAgICAgICAg
ICAgICAgICA8aXRlbXM+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnVJdGVtIHRp
dGxlPSJNaW5pbWl6ZSIga2V5RXF1aXZhbGVudD0ibSIgaWQ9IjIzIj4KLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPGNvbm5lY3Rpb25zPgotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPGFjdGlvbiBzZWxlY3Rvcj0icGVyZm9ybU1pbmlhdHVyaXplOiIgdGFyZ2V0
PSItMSIgaWQ9IjM3Ii8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29ubmVj
dGlvbnM+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51SXRlbT4KLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9Ilpvb20iIGlkPSIyMzkiPgotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29ubmVjdGlvbnM+Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8YWN0aW9uIHNlbGVjdG9yPSJwZXJmb3JtWm9vbToiIHRh
cmdldD0iLTEiIGlkPSIyNDAiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9j
b25uZWN0aW9ucz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21lbnVJdGVtPgotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDxtZW51SXRlbSBpc1NlcGFyYXRvckl0ZW09IllFUyIg
aWQ9IjkyIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1vZGlmaWVyTWFzayBr
ZXk9ImtleUVxdWl2YWxlbnRNb2RpZmllck1hc2siIGNvbW1hbmQ9IllFUyIvPgotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDwvbWVudUl0ZW0+Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPG1lbnVJdGVtIHRpdGxlPSJCcmluZyBBbGwgdG8gRnJvbnQiIGlkPSI1Ij4KLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPGNvbm5lY3Rpb25zPgotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPGFjdGlvbiBzZWxlY3Rvcj0iYXJyYW5nZUluRnJvbnQ6IiB0YXJn
ZXQ9Ii0xIiBpZD0iMzkiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jb25u
ZWN0aW9ucz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21lbnVJdGVtPgotICAgICAg
ICAgICAgICAgICAgICAgICAgPC9pdGVtcz4KLSAgICAgICAgICAgICAgICAgICAgPC9tZW51Pgot
ICAgICAgICAgICAgICAgIDwvbWVudUl0ZW0+Ci0gICAgICAgICAgICAgICAgPG1lbnVJdGVtIHRp
dGxlPSJIZWxwIiBpZD0iNDkwIj4KKyAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9IlNl
dHRpbmdzIiBpZD0iTDk3LWVnLWt6cCIgdXNlckxhYmVsPSJTZXR0aW5ncyI+CiAgICAgICAgICAg
ICAgICAgICAgIDxtb2RpZmllck1hc2sga2V5PSJrZXlFcXVpdmFsZW50TW9kaWZpZXJNYXNrIi8+
Ci0gICAgICAgICAgICAgICAgICAgIDxtZW51IGtleT0ic3VibWVudSIgdGl0bGU9IkhlbHAiIHN5
c3RlbU1lbnU9ImhlbHAiIGlkPSI0OTEiPgotICAgICAgICAgICAgICAgICAgICAgICAgPGl0ZW1z
PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtZW51SXRlbSB0aXRsZT0iTWluaUJyb3dz
ZXIgSGVscCIga2V5RXF1aXZhbGVudD0iPyIgaWQ9IjQ5MiI+Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxjb25uZWN0aW9ucz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDxhY3Rpb24gc2VsZWN0b3I9InNob3dIZWxwOiIgdGFyZ2V0PSItMSIgaWQ9IjQ5MyIv
PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Nvbm5lY3Rpb25zPgotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDwvbWVudUl0ZW0+Ci0gICAgICAgICAgICAgICAgICAgICAg
ICA8L2l0ZW1zPgotICAgICAgICAgICAgICAgICAgICA8L21lbnU+CisgICAgICAgICAgICAgICAg
ICAgIDxtZW51IGtleT0ic3VibWVudSIgdGl0bGU9IlNldHRpbmdzIiBpZD0iRWdnLTUyLUlpSiIv
PgogICAgICAgICAgICAgICAgIDwvbWVudUl0ZW0+CiAgICAgICAgICAgICAgICAgPG1lbnVJdGVt
IHRpdGxlPSJEZWJ1ZyIgaWQ9IjUzNCI+CiAgICAgICAgICAgICAgICAgICAgIDxtb2RpZmllck1h
c2sga2V5PSJrZXlFcXVpdmFsZW50TW9kaWZpZXJNYXNrIi8+CkBAIC04OTEsNiArODU5LDQyIEBA
CiAgICAgICAgICAgICAgICAgICAgICAgICA8L2l0ZW1zPgogICAgICAgICAgICAgICAgICAgICA8
L21lbnU+CiAgICAgICAgICAgICAgICAgPC9tZW51SXRlbT4KKyAgICAgICAgICAgICAgICA8bWVu
dUl0ZW0gdGl0bGU9IldpbmRvdyIgaWQ9IjE5Ij4KKyAgICAgICAgICAgICAgICAgICAgPG1lbnUg
a2V5PSJzdWJtZW51IiB0aXRsZT0iV2luZG93IiBzeXN0ZW1NZW51PSJ3aW5kb3ciIGlkPSIyNCI+
CisgICAgICAgICAgICAgICAgICAgICAgICA8aXRlbXM+CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPG1lbnVJdGVtIHRpdGxlPSJNaW5pbWl6ZSIga2V5RXF1aXZhbGVudD0ibSIgaWQ9IjIz
Ij4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvbm5lY3Rpb25zPgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFjdGlvbiBzZWxlY3Rvcj0icGVyZm9ybU1p
bmlhdHVyaXplOiIgdGFyZ2V0PSItMSIgaWQ9IjM3Ii8+CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDwvY29ubmVjdGlvbnM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9t
ZW51SXRlbT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9Ilpv
b20iIGlkPSIyMzkiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29ubmVjdGlv
bnM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWN0aW9uIHNlbGVjdG9y
PSJwZXJmb3JtWm9vbToiIHRhcmdldD0iLTEiIGlkPSIyNDAiLz4KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPC9jb25uZWN0aW9ucz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8L21lbnVJdGVtPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtZW51SXRlbSBpc1Nl
cGFyYXRvckl0ZW09IllFUyIgaWQ9IjkyIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPG1vZGlmaWVyTWFzayBrZXk9ImtleUVxdWl2YWxlbnRNb2RpZmllck1hc2siIGNvbW1hbmQ9
IllFUyIvPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWVudUl0ZW0+CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPG1lbnVJdGVtIHRpdGxlPSJCcmluZyBBbGwgdG8gRnJvbnQi
IGlkPSI1Ij4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvbm5lY3Rpb25zPgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFjdGlvbiBzZWxlY3Rvcj0iYXJy
YW5nZUluRnJvbnQ6IiB0YXJnZXQ9Ii0xIiBpZD0iMzkiLz4KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPC9jb25uZWN0aW9ucz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
L21lbnVJdGVtPgorICAgICAgICAgICAgICAgICAgICAgICAgPC9pdGVtcz4KKyAgICAgICAgICAg
ICAgICAgICAgPC9tZW51PgorICAgICAgICAgICAgICAgIDwvbWVudUl0ZW0+CisgICAgICAgICAg
ICAgICAgPG1lbnVJdGVtIHRpdGxlPSJIZWxwIiBpZD0iNDkwIj4KKyAgICAgICAgICAgICAgICAg
ICAgPG1vZGlmaWVyTWFzayBrZXk9ImtleUVxdWl2YWxlbnRNb2RpZmllck1hc2siLz4KKyAgICAg
ICAgICAgICAgICAgICAgPG1lbnUga2V5PSJzdWJtZW51IiB0aXRsZT0iSGVscCIgc3lzdGVtTWVu
dT0iaGVscCIgaWQ9IjQ5MSI+CisgICAgICAgICAgICAgICAgICAgICAgICA8aXRlbXM+CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnVJdGVtIHRpdGxlPSJNaW5pQnJvd3NlciBIZWxw
IiBrZXlFcXVpdmFsZW50PSI/IiBpZD0iNDkyIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPGNvbm5lY3Rpb25zPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PGFjdGlvbiBzZWxlY3Rvcj0ic2hvd0hlbHA6IiB0YXJnZXQ9Ii0xIiBpZD0iNDkzIi8+CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29ubmVjdGlvbnM+CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPC9tZW51SXRlbT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDwvaXRl
bXM+CisgICAgICAgICAgICAgICAgICAgIDwvbWVudT4KKyAgICAgICAgICAgICAgICA8L21lbnVJ
dGVtPgogICAgICAgICAgICAgPC9pdGVtcz4KICAgICAgICAgICAgIDxwb2ludCBrZXk9ImNhbnZh
c0xvY2F0aW9uIiB4PSIxMzkiIHk9Ii01MCIvPgogICAgICAgICA8L21lbnU+CkBAIC05MDAsNiAr
OTA0LDcgQEAKICAgICAgICAgICAgICAgICA8b3V0bGV0IHByb3BlcnR5PSJfbmV3V2ViS2l0MVdp
bmRvd0l0ZW0iIGRlc3RpbmF0aW9uPSI1NzMiIGlkPSJaQ2otdTItUFU3Ii8+CiAgICAgICAgICAg
ICAgICAgPG91dGxldCBwcm9wZXJ0eT0iX25ld1dlYktpdDJFZGl0b3JJdGVtIiBkZXN0aW5hdGlv
bj0iSWRJLXdiLTFKRCIgaWQ9IkRJci1wZS1YSTgiLz4KICAgICAgICAgICAgICAgICA8b3V0bGV0
IHByb3BlcnR5PSJfbmV3V2ViS2l0MldpbmRvd0l0ZW0iIGRlc3RpbmF0aW9uPSI1NzEiIGlkPSIx
R3YtbUstYXVsIi8+CisgICAgICAgICAgICAgICAgPG91dGxldCBwcm9wZXJ0eT0iX3NldHRpbmdz
TWVudSIgZGVzdGluYXRpb249IkVnZy01Mi1JaUoiIGlkPSJKTWktVUYtRWZLIi8+CiAgICAgICAg
ICAgICA8L2Nvbm5lY3Rpb25zPgogICAgICAgICA8L2N1c3RvbU9iamVjdD4KICAgICAgICAgPGN1
c3RvbU9iamVjdCBpZD0iNDIwIiBjdXN0b21DbGFzcz0iTlNGb250TWFuYWdlciIvPgpkaWZmIC0t
Z2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvbWFjL1NldHRpbmdzQ29udHJvbGxlci5oIGIvVG9vbHMv
TWluaUJyb3dzZXIvbWFjL1NldHRpbmdzQ29udHJvbGxlci5oCmluZGV4IDczNzhjYTc3ZGI2NzM2
YTM4MDU3NmU5MTMzMzcyMWJjOTE0YTQzYTEuLmM2Njc2YzA4ZGQ2YTQyNWNiZmJkZTZjM2M3ODIy
Mjg0NzM3ZmM3N2QgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2VyL21hYy9TZXR0aW5nc0Nv
bnRyb2xsZXIuaAorKysgYi9Ub29scy9NaW5pQnJvd3Nlci9tYWMvU2V0dGluZ3NDb250cm9sbGVy
LmgKQEAgLTI1LDEzICsyNSwxMSBAQAogCiAjaW1wb3J0IDxDb2NvYS9Db2NvYS5oPgogCi1AaW50
ZXJmYWNlIFNldHRpbmdzQ29udHJvbGxlciA6IE5TT2JqZWN0IHsKLSAgICBOU01lbnUgKl9tZW51
OwotfQorZXh0ZXJuIE5TU3RyaW5nICogY29uc3Qga1VzZXJBZ2VudENoYW5nZWROb3RpZmljYXRp
b25OYW1lOwogCi0rIChpbnN0YW5jZXR5cGUpc2hhcmVkOworQGludGVyZmFjZSBTZXR0aW5nc0Nv
bnRyb2xsZXIgOiBOU09iamVjdAogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5T
TWVudSAqbWVudTsKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aE1lbnU6KE5TTWVudSAqKW1lbnU7
CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCB1c2VXZWJLaXQyQnlEZWZh
dWx0OwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIGNyZWF0ZUVkaXRvckJ5
RGVmYXVsdDsKQEAgLTY0LDUgKzYyLDYgQEAgQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5
KSBCT09MIG5ldHdvcmtDYWNoZVNwZWN1bGF0aXZlUmV2YWxpZGF0aW9uRGlzYWJsZWQKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBwcm9jZXNzU3dhcE9uV2luZG93T3Blbldp
dGhPcGVuZXJFbmFibGVkOwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TU3Ry
aW5nICpkZWZhdWx0VVJMOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1N0cmlu
ZyAqY3VzdG9tVXNlckFnZW50OwogCiBAZW5kCmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nl
ci9tYWMvU2V0dGluZ3NDb250cm9sbGVyLm0gYi9Ub29scy9NaW5pQnJvd3Nlci9tYWMvU2V0dGlu
Z3NDb250cm9sbGVyLm0KaW5kZXggNGEzYTY1NTA1Y2RmZTgwMDg4OTgzYzcwZTNiZjdhYjQ0OTRm
OTBiYi4uZjE0YzhjMWYzMmU0MjI3ZTZhNWI3ZTU5MjI1ZWJlMTYwZjliZTc0NCAxMDA2NDQKLS0t
IGEvVG9vbHMvTWluaUJyb3dzZXIvbWFjL1NldHRpbmdzQ29udHJvbGxlci5tCisrKyBiL1Rvb2xz
L01pbmlCcm93c2VyL21hYy9TZXR0aW5nc0NvbnRyb2xsZXIubQpAQCAtMzEsOSArMzEsMTMgQEAK
ICNpbXBvcnQgPFdlYktpdC9fV0tFeHBlcmltZW50YWxGZWF0dXJlLmg+CiAjaW1wb3J0IDxXZWJL
aXQvX1dLSW50ZXJuYWxEZWJ1Z0ZlYXR1cmUuaD4KIAorTlNTdHJpbmcgKiBjb25zdCBrVXNlckFn
ZW50Q2hhbmdlZE5vdGlmaWNhdGlvbk5hbWUgPSBAIlVzZXJBZ2VudENoYW5nZWROb3RpZmljYXRp
b24iOworCiBzdGF0aWMgTlNTdHJpbmcgKiBjb25zdCBkZWZhdWx0VVJMID0gQCJodHRwOi8vd3d3
LndlYmtpdC5vcmcvIjsKIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IERlZmF1bHRVUkxQcmVmZXJl
bmNlS2V5ID0gQCJEZWZhdWx0VVJMIjsKIAorc3RhdGljIE5TU3RyaW5nICogY29uc3QgQ3VzdG9t
VXNlckFnZW50UHJlZmVyZW5jZUtleSA9IEAiQ3VzdG9tVXNlckFnZW50SWRlbnRpZmllciI7CisK
IHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IFVzZVdlYktpdDJCeURlZmF1bHRQcmVmZXJlbmNlS2V5
ID0gQCJVc2VXZWJLaXQyQnlEZWZhdWx0IjsKIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IENyZWF0
ZUVkaXRvckJ5RGVmYXVsdFByZWZlcmVuY2VLZXkgPSBAIkNyZWF0ZUVkaXRvckJ5RGVmYXVsdCI7
CiBzdGF0aWMgTlNTdHJpbmcgKiBjb25zdCBMYXllckJvcmRlcnNWaXNpYmxlUHJlZmVyZW5jZUtl
eSA9IEAiTGF5ZXJCb3JkZXJzVmlzaWJsZSI7CkBAIC03OCwyNyArODIsMjAgQEAgdHlwZWRlZiBO
U19FTlVNKE5TSW50ZWdlciwgRGVidWdPdmVyeWxheU1lbnVJdGVtVGFnKSB7CiAgICAgSW50ZXJu
YWxEZWJ1Z0ZlYXR1cmVUYWcsCiB9OwogCi1AaW1wbGVtZW50YXRpb24gU2V0dGluZ3NDb250cm9s
bGVyCi0KLUBzeW50aGVzaXplIG1lbnU9X21lbnU7Ci0KLSsgKGluc3RhbmNldHlwZSlzaGFyZWQK
LXsKLSAgICBzdGF0aWMgU2V0dGluZ3NDb250cm9sbGVyICpzaGFyZWRTZXR0aW5nc0NvbnRyb2xs
ZXI7Ci0gICAgc3RhdGljIGRpc3BhdGNoX29uY2VfdCBvbmNlVG9rZW47Ci0gICAgZGlzcGF0Y2hf
b25jZSgmb25jZVRva2VuLCBeewotICAgICAgICBzaGFyZWRTZXR0aW5nc0NvbnRyb2xsZXIgPSBb
W3N1cGVyIGFsbG9jXSBpbml0XTsKLSAgICB9KTsKK0BpbnRlcmZhY2UgU2V0dGluZ3NDb250cm9s
bGVyICgpCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmV0YWluKSBOU01lbnUgKm1lbnU7CitAZW5k
CiAKLSAgICByZXR1cm4gc2hhcmVkU2V0dGluZ3NDb250cm9sbGVyOwotfQorQGltcGxlbWVudGF0
aW9uIFNldHRpbmdzQ29udHJvbGxlcgogCi0tIChpbnN0YW5jZXR5cGUpaW5pdAorLSAoaW5zdGFu
Y2V0eXBlKWluaXRXaXRoTWVudTooTlNNZW51ICopbWVudQogewogICAgIHNlbGYgPSBbc3VwZXIg
aW5pdF07CiAgICAgaWYgKCFzZWxmKQogICAgICAgICByZXR1cm4gbmlsOwogCisgICAgX21lbnUg
PSBbbWVudSByZXRhaW5dOworCiAgICAgTlNBcnJheSAqb25CeURlZmF1bHRQcmVmcyA9IEBbCiAg
ICAgICAgIFVzZVdlYktpdDJCeURlZmF1bHRQcmVmZXJlbmNlS2V5LAogICAgICAgICBBY2NlbGVy
YXRlZERyYXdpbmdFbmFibGVkUHJlZmVyZW5jZUtleSwKQEAgLTExNCwxNSArMTExLDE1IEBAIC0g
KGluc3RhbmNldHlwZSlpbml0CiAgICAgICAgICAgICBbdXNlckRlZmF1bHRzIHNldEJvb2w6WUVT
IGZvcktleTpwcmVmTmFtZV07CiAgICAgfQogCisgICAgW3NlbGYgX3BvcHVsYXRlTWVudV07CisK
ICAgICByZXR1cm4gc2VsZjsKIH0KIAotLSAoTlNNZW51ICopbWVudQorLSAodm9pZClkZWFsbG9j
CiB7Ci0gICAgaWYgKCFfbWVudSkKLSAgICAgICAgW3NlbGYgX3BvcHVsYXRlTWVudV07Ci0KLSAg
ICByZXR1cm4gX21lbnU7CisgICAgW19tZW51IHJlbGVhc2VdOworICAgIFtzdXBlciBkZWFsbG9j
XTsKIH0KIAogLSAodm9pZClfYWRkSXRlbVdpdGhUaXRsZTooTlNTdHJpbmcgKil0aXRsZSBhY3Rp
b246KFNFTClhY3Rpb24gaW5kZW50ZWQ6KEJPT0wpaW5kZW50ZWQKQEAgLTE0MywxNCArMTQwLDIw
IEBAIC0gKHZvaWQpX2FkZEhlYWRlcldpdGhUaXRsZTooTlNTdHJpbmcgKil0aXRsZQogCiAtICh2
b2lkKV9wb3B1bGF0ZU1lbnUKIHsKLSAgICBfbWVudSA9IFtbTlNNZW51IGFsbG9jXSBpbml0V2l0
aFRpdGxlOkAiU2V0dGluZ3MiXTsKLQogICAgIFtzZWxmIF9hZGRJdGVtV2l0aFRpdGxlOkAiVXNl
IFdlYktpdDIgQnkgRGVmYXVsdCIgYWN0aW9uOkBzZWxlY3Rvcih0b2dnbGVVc2VXZWJLaXQyQnlE
ZWZhdWx0OikgaW5kZW50ZWQ6Tk9dOwogICAgIFtzZWxmIF9hZGRJdGVtV2l0aFRpdGxlOkAiQ3Jl
YXRlIEVkaXRvciBCeSBEZWZhdWx0IiBhY3Rpb246QHNlbGVjdG9yKHRvZ2dsZUNyZWF0ZUVkaXRv
ckJ5RGVmYXVsdDopIGluZGVudGVkOk5PXTsKICAgICBbc2VsZiBfYWRkSXRlbVdpdGhUaXRsZTpA
IlNldCBEZWZhdWx0IFVSTCB0byBDdXJyZW50IFVSTCIgYWN0aW9uOkBzZWxlY3RvcihzZXREZWZh
dWx0VVJMVG9DdXJyZW50VVJMOikgaW5kZW50ZWQ6Tk9dOwogCiAgICAgW19tZW51IGFkZEl0ZW06
W05TTWVudUl0ZW0gc2VwYXJhdG9ySXRlbV1dOwogCisgICAgTlNNZW51SXRlbSAqdXNlckFnZW50
U3VibWVudUl0ZW0gPSBbW05TTWVudUl0ZW0gYWxsb2NdIGluaXRXaXRoVGl0bGU6QCJVc2VyIEFn
ZW50IiBhY3Rpb246bmlsIGtleUVxdWl2YWxlbnQ6QCIiXTsKKyAgICBOU01lbnUgKnVzZXJBZ2Vu
dE1lbnUgPSBbW05TTWVudSBhbGxvY10gaW5pdFdpdGhUaXRsZTpAIlVzZXIgQWdlbnQiXTsKKyAg
ICBbc2VsZiBidWlsZFVzZXJBZ2VudHNNZW51OnVzZXJBZ2VudE1lbnVdOworICAgIFt1c2VyQWdl
bnRTdWJtZW51SXRlbSBzZXRTdWJtZW51OnVzZXJBZ2VudE1lbnVdOworICAgIFtfbWVudSBhZGRJ
dGVtOnVzZXJBZ2VudFN1Ym1lbnVJdGVtXTsKKworICAgIFtfbWVudSBhZGRJdGVtOltOU01lbnVJ
dGVtIHNlcGFyYXRvckl0ZW1dXTsKKwogICAgIFtzZWxmIF9hZGRJdGVtV2l0aFRpdGxlOkAiVXNl
IFRyYW5zcGFyZW50IFdpbmRvd3MiIGFjdGlvbjpAc2VsZWN0b3IodG9nZ2xlVXNlVHJhbnNwYXJl
bnRXaW5kb3dzOikgaW5kZW50ZWQ6Tk9dOwogICAgIFtzZWxmIF9hZGRJdGVtV2l0aFRpdGxlOkAi
VXNlIFBhZ2luYXRlZCBNb2RlIiBhY3Rpb246QHNlbGVjdG9yKHRvZ2dsZVVzZVBhZ2luYXRlZE1v
ZGU6KSBpbmRlbnRlZDpOT107CiAgICAgW3NlbGYgX2FkZEl0ZW1XaXRoVGl0bGU6QCJTaG93IExh
eWVyIEJvcmRlcnMiIGFjdGlvbjpAc2VsZWN0b3IodG9nZ2xlU2hvd0xheWVyQm9yZGVyczopIGlu
ZGVudGVkOk5PXTsKQEAgLTI0MCw2ICsyNDMsNTggQEAgLSAodm9pZClfcG9wdWxhdGVNZW51CiAg
ICAgW3NlbGYgX2FkZEl0ZW1XaXRoVGl0bGU6QCJFbmFibGUgU3VicGl4ZWwgQ1NTT00gTWV0cmlj
cyIgYWN0aW9uOkBzZWxlY3Rvcih0b2dnbGVFbmFibGVTdWJQaXhlbENTU09NTWV0cmljczopIGlu
ZGVudGVkOllFU107CiB9CiAKKysgKE5TQXJyYXkgKil1c2VyQWdlbnREYXRhCit7CisgICAgcmV0
dXJuIEBbCisgICAgICAgIEB7CisgICAgICAgICAgICBAImxhYmVsIiA6IEAiU2FmYXJpIiwKKyAg
ICAgICAgICAgIEAiaWRlbnRpZmllciIgOiBAInNhZmFyaSIsCisgICAgICAgICAgICBAInVzZXJB
Z2VudCIgOiBAIk1vemlsbGEvNS4wIChNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYIDEwXzE1XzIp
IEFwcGxlV2ViS2l0LzYwNS4xLjE1IChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi8xMy4wLjQg
U2FmYXJpLzYwNS4xLjE1IgorICAgICAgICB9LAorICAgICAgICBAeworICAgICAgICAgICAgQCJs
YWJlbCIgOiBAIlNhZmFyaSBvbiBpUGhvbmUiLAorICAgICAgICAgICAgQCJpZGVudGlmaWVyIiA6
IEAiaXBob25lLXNhZmFyaSIsCisgICAgICAgICAgICBAInVzZXJBZ2VudCIgOiBAIk1vemlsbGEv
NS4wIChpUGhvbmU7IENQVSBpUGhvbmUgT1MgMTNfNCBsaWtlIE1hYyBPUyBYKSBBcHBsZVdlYktp
dC82MDUuMS4xNSAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vMTMuMSBNb2JpbGUvMTVFMTQ4
IFNhZmFyaS82MDQuMSIKKyAgICAgICAgfSwKKyAgICAgICAgQHsKKyAgICAgICAgICAgIEAibGFi
ZWwiIDogQCJGaXJlZm94IiwKKyAgICAgICAgICAgIEAiaWRlbnRpZmllciIgOiBAImZpcmVmb3gi
LAorICAgICAgICAgICAgQCJ1c2VyQWdlbnQiIDogQCJNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBJ
bnRlbCBNYWMgT1MgWCAxMC4xNTsgcnY6NzAuMCkgR2Vja28vMjAxMDAxMDEgRmlyZWZveC83MC4w
IgorICAgICAgICB9LAorICAgICAgICBAeworICAgICAgICAgICAgQCJsYWJlbCIgOiBAIkNocm9t
ZSIsCisgICAgICAgICAgICBAImlkZW50aWZpZXIiIDogQCJjaHJvbWUiLAorICAgICAgICAgICAg
QCJ1c2VyQWdlbnQiIDogQCJNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAx
MF8xNV8yKSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvNzgu
MC4zOTA0LjEwOCBTYWZhcmkvNTM3LjM2IgorICAgICAgICB9LAorICAgIF07Cit9CisKKy0gKHZv
aWQpYnVpbGRVc2VyQWdlbnRzTWVudTooTlNNZW51ICopbWVudQoreworICAgIE5TRGljdGlvbmFy
eSogZGVmYXVsdFVBSW5mbyA9IEB7CisgICAgICAgIEAibGFiZWwiIDogQCJEZWZhdWx0IiwKKyAg
ICAgICAgQCJpZGVudGlmaWVyIiA6IEAiZGVmYXVsdCIsCisgICAgfTsKKworICAgIE5TTWVudUl0
ZW0gKm1lbnVJdGVtID0gW1tOU01lbnVJdGVtIGFsbG9jXSBpbml0V2l0aFRpdGxlOkAiRGVmYXVs
dCIgYWN0aW9uOkBzZWxlY3RvcihjaGFuZ2VDdXRvbVVzZXJBZ2VudDopIGtleUVxdWl2YWxlbnQ6
QCIiXTsKKyAgICBbbWVudUl0ZW0gc2V0VGFyZ2V0OnNlbGZdOworICAgIFttZW51SXRlbSBzZXRS
ZXByZXNlbnRlZE9iamVjdDpkZWZhdWx0VUFJbmZvXTsKKworICAgIFttZW51IGFkZEl0ZW06bWVu
dUl0ZW1dOworICAgIFttZW51SXRlbSByZWxlYXNlXTsKKworICAgIFttZW51IGFkZEl0ZW06W05T
TWVudUl0ZW0gc2VwYXJhdG9ySXRlbV1dOworCisgICAgZm9yIChOU0RpY3Rpb25hcnkgKnVzZXJB
Z2VudERhdGEgaW4gW1tzZWxmIGNsYXNzXSB1c2VyQWdlbnREYXRhXSkgeworICAgICAgICBOU1N0
cmluZyAqbmFtZSA9IHVzZXJBZ2VudERhdGFbQCJsYWJlbCJdOworICAgICAgICBtZW51SXRlbSA9
IFtbTlNNZW51SXRlbSBhbGxvY10gaW5pdFdpdGhUaXRsZTpuYW1lIGFjdGlvbjpAc2VsZWN0b3Io
Y2hhbmdlQ3V0b21Vc2VyQWdlbnQ6KSBrZXlFcXVpdmFsZW50OkAiIl07CisgICAgICAgIFttZW51
SXRlbSBzZXRUYXJnZXQ6c2VsZl07CisgICAgICAgIFttZW51SXRlbSBzZXRSZXByZXNlbnRlZE9i
amVjdDp1c2VyQWdlbnREYXRhXTsKKyAgICAgICAgW21lbnUgYWRkSXRlbTptZW51SXRlbV07Cisg
ICAgICAgIFttZW51SXRlbSByZWxlYXNlXTsKKyAgICB9Cit9CisKICNwcmFnbWEgR0NDIGRpYWdu
b3N0aWMgcHVzaAogI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
aW1wbGVtZW50YXRpb25zIgogLSAoQk9PTCl2YWxpZGF0ZU1lbnVJdGVtOihOU01lbnVJdGVtICop
bWVudUl0ZW0KQEAgLTMwMywxNCArMzU4LDI1IEBAIC0gKEJPT0wpdmFsaWRhdGVNZW51SXRlbToo
TlNNZW51SXRlbSAqKW1lbnVJdGVtCiAgICAgICAgIFttZW51SXRlbSBzZXRTdGF0ZTpbc2VsZiBz
dWJQaXhlbENTU09NTWV0cmljc0VuYWJsZWRdID8gTlNDb250cm9sU3RhdGVWYWx1ZU9uIDogTlND
b250cm9sU3RhdGVWYWx1ZU9mZl07CiAgICAgZWxzZSBpZiAoYWN0aW9uID09IEBzZWxlY3Rvcih0
b2dnbGVEZWJ1Z092ZXJsYXk6KSkKICAgICAgICAgW21lbnVJdGVtIHNldFN0YXRlOltzZWxmIGRl
YnVnT3ZlcmxheVZpc2libGU6bWVudUl0ZW1dID8gTlNDb250cm9sU3RhdGVWYWx1ZU9uIDogTlND
b250cm9sU3RhdGVWYWx1ZU9mZl07CisgICAgZWxzZSBpZiAoYWN0aW9uID09IEBzZWxlY3Rvcihj
aGFuZ2VDdXRvbVVzZXJBZ2VudDopKSB7CisKKyAgICAgICAgTlNTdHJpbmcgKnNhdmVkVUFJZGVu
dGlmaWVyID0gW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gc3RyaW5nRm9y
S2V5OkN1c3RvbVVzZXJBZ2VudFByZWZlcmVuY2VLZXldOworICAgICAgICBOU0RpY3Rpb25hcnkg
KnVzZXJBZ2VudERpY3QgPSBbbWVudUl0ZW0gcmVwcmVzZW50ZWRPYmplY3RdOworICAgICAgICBp
ZiAodXNlckFnZW50RGljdCkgeworICAgICAgICAgICAgQk9PTCBpc0N1cnJlbnRVQSA9IFt1c2Vy
QWdlbnREaWN0W0AiaWRlbnRpZmllciJdIGlzRXF1YWxUb1N0cmluZzpzYXZlZFVBSWRlbnRpZmll
cl07CisgICAgICAgICAgICBbbWVudUl0ZW0gc2V0U3RhdGU6aXNDdXJyZW50VUEgPyBOU0NvbnRy
b2xTdGF0ZVZhbHVlT24gOiBOU0NvbnRyb2xTdGF0ZVZhbHVlT2ZmXTsKKyAgICAgICAgfSBlbHNl
CisgICAgICAgICAgICBbbWVudUl0ZW0gc2V0U3RhdGU6TlNDb250cm9sU3RhdGVWYWx1ZU9mZl07
CisgICAgfQogCisgICAgV0tQcmVmZXJlbmNlcyAqZGVmYXVsdFByZWZlcmVuY2VzID0gW1tOU0Fw
cGxpY2F0aW9uIHNoYXJlZEFwcGxpY2F0aW9uXSBicm93c2VyQXBwRGVsZWdhdGVdLmRlZmF1bHRQ
cmVmZXJlbmNlczsKICAgICBpZiAobWVudUl0ZW0udGFnID09IEV4cGVyaW1lbnRhbEZlYXR1cmVU
YWcpIHsKICAgICAgICAgX1dLRXhwZXJpbWVudGFsRmVhdHVyZSAqZmVhdHVyZSA9IG1lbnVJdGVt
LnJlcHJlc2VudGVkT2JqZWN0OwotICAgICAgICBbbWVudUl0ZW0gc2V0U3RhdGU6W2RlZmF1bHRQ
cmVmZXJlbmNlcygpIF9pc0VuYWJsZWRGb3JFeHBlcmltZW50YWxGZWF0dXJlOmZlYXR1cmVdID8g
TlNDb250cm9sU3RhdGVWYWx1ZU9uIDogTlNDb250cm9sU3RhdGVWYWx1ZU9mZl07CisgICAgICAg
IFttZW51SXRlbSBzZXRTdGF0ZTpbZGVmYXVsdFByZWZlcmVuY2VzIF9pc0VuYWJsZWRGb3JFeHBl
cmltZW50YWxGZWF0dXJlOmZlYXR1cmVdID8gTlNDb250cm9sU3RhdGVWYWx1ZU9uIDogTlNDb250
cm9sU3RhdGVWYWx1ZU9mZl07CiAgICAgfQogICAgIGlmIChtZW51SXRlbS50YWcgPT0gSW50ZXJu
YWxEZWJ1Z0ZlYXR1cmVUYWcpIHsKICAgICAgICAgX1dLSW50ZXJuYWxEZWJ1Z0ZlYXR1cmUgKmZl
YXR1cmUgPSBtZW51SXRlbS5yZXByZXNlbnRlZE9iamVjdDsKLSAgICAgICAgW21lbnVJdGVtIHNl
dFN0YXRlOltkZWZhdWx0UHJlZmVyZW5jZXMoKSBfaXNFbmFibGVkRm9ySW50ZXJuYWxEZWJ1Z0Zl
YXR1cmU6ZmVhdHVyZV0gPyBOU0NvbnRyb2xTdGF0ZVZhbHVlT24gOiBOU0NvbnRyb2xTdGF0ZVZh
bHVlT2ZmXTsKKyAgICAgICAgW21lbnVJdGVtIHNldFN0YXRlOltkZWZhdWx0UHJlZmVyZW5jZXMg
X2lzRW5hYmxlZEZvckludGVybmFsRGVidWdGZWF0dXJlOmZlYXR1cmVdID8gTlNDb250cm9sU3Rh
dGVWYWx1ZU9uIDogTlNDb250cm9sU3RhdGVWYWx1ZU9mZl07CiAgICAgfQogCiAgICAgcmV0dXJu
IFlFUzsKQEAgLTMyMSw3ICszODcsNyBAQCAtICh2b2lkKV90b2dnbGVCb29sZWFuRGVmYXVsdDoo
TlNTdHJpbmcgKilkZWZhdWx0TmFtZQogICAgIE5TVXNlckRlZmF1bHRzICpkZWZhdWx0cyA9IFtO
U1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c107CiAgICAgW2RlZmF1bHRzIHNldEJv
b2w6IVtkZWZhdWx0cyBib29sRm9yS2V5OmRlZmF1bHROYW1lXSBmb3JLZXk6ZGVmYXVsdE5hbWVd
OwogCi0gICAgWyhCcm93c2VyQXBwRGVsZWdhdGUgKilbW05TQXBwbGljYXRpb24gc2hhcmVkQXBw
bGljYXRpb25dIGRlbGVnYXRlXSBkaWRDaGFuZ2VTZXR0aW5nc107CisgICAgW1tbTlNBcHBsaWNh
dGlvbiBzaGFyZWRBcHBsaWNhdGlvbl0gYnJvd3NlckFwcERlbGVnYXRlXSBkaWRDaGFuZ2VTZXR0
aW5nc107CiB9CiAKIC0gKHZvaWQpdG9nZ2xlVXNlV2ViS2l0MkJ5RGVmYXVsdDooaWQpc2VuZGVy
CkBAIC02MzksNyArNzA1LDcgQEAgLSAodm9pZCl0b2dnbGVEZWJ1Z092ZXJsYXk6KGlkKXNlbmRl
cgogLSAodm9pZCl0b2dnbGVFeHBlcmltZW50YWxGZWF0dXJlOihpZClzZW5kZXIKIHsKICAgICBf
V0tFeHBlcmltZW50YWxGZWF0dXJlICpmZWF0dXJlID0gKChOU01lbnVJdGVtICopc2VuZGVyKS5y
ZXByZXNlbnRlZE9iamVjdDsKLSAgICBXS1ByZWZlcmVuY2VzICpwcmVmZXJlbmNlcyA9IGRlZmF1
bHRQcmVmZXJlbmNlcygpOworICAgIFdLUHJlZmVyZW5jZXMgKnByZWZlcmVuY2VzID0gW1tOU0Fw
cGxpY2F0aW9uIHNoYXJlZEFwcGxpY2F0aW9uXSBicm93c2VyQXBwRGVsZWdhdGVdLmRlZmF1bHRQ
cmVmZXJlbmNlczsKIAogICAgIEJPT0wgY3VycmVudGx5RW5hYmxlZCA9IFtwcmVmZXJlbmNlcyBf
aXNFbmFibGVkRm9yRXhwZXJpbWVudGFsRmVhdHVyZTpmZWF0dXJlXTsKICAgICBbcHJlZmVyZW5j
ZXMgX3NldEVuYWJsZWQ6IWN1cnJlbnRseUVuYWJsZWQgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTpm
ZWF0dXJlXTsKQEAgLTY1MCw3ICs3MTYsNyBAQCAtICh2b2lkKXRvZ2dsZUV4cGVyaW1lbnRhbEZl
YXR1cmU6KGlkKXNlbmRlcgogLSAodm9pZCl0b2dnbGVJbnRlcm5hbERlYnVnRmVhdHVyZTooaWQp
c2VuZGVyCiB7CiAgICAgX1dLSW50ZXJuYWxEZWJ1Z0ZlYXR1cmUgKmZlYXR1cmUgPSAoKE5TTWVu
dUl0ZW0gKilzZW5kZXIpLnJlcHJlc2VudGVkT2JqZWN0OwotICAgIFdLUHJlZmVyZW5jZXMgKnBy
ZWZlcmVuY2VzID0gZGVmYXVsdFByZWZlcmVuY2VzKCk7CisgICAgV0tQcmVmZXJlbmNlcyAqcHJl
ZmVyZW5jZXMgPSBbW05TQXBwbGljYXRpb24gc2hhcmVkQXBwbGljYXRpb25dIGJyb3dzZXJBcHBE
ZWxlZ2F0ZV0uZGVmYXVsdFByZWZlcmVuY2VzOwogCiAgICAgQk9PTCBjdXJyZW50bHlFbmFibGVk
ID0gW3ByZWZlcmVuY2VzIF9pc0VuYWJsZWRGb3JJbnRlcm5hbERlYnVnRmVhdHVyZTpmZWF0dXJl
XTsKICAgICBbcHJlZmVyZW5jZXMgX3NldEVuYWJsZWQ6IWN1cnJlbnRseUVuYWJsZWQgZm9ySW50
ZXJuYWxEZWJ1Z0ZlYXR1cmU6ZmVhdHVyZV07CkBAIC02NjcsNiArNzMzLDMyIEBAIC0gKEJPT0wp
ZGVidWdPdmVybGF5VmlzaWJsZTooTlNNZW51SXRlbSAqKW1lbnVJdGVtCiAgICAgcmV0dXJuIE5P
OwogfQogCistIChOU1N0cmluZyAqKWN1c3RvbVVzZXJBZ2VudAoreworICAgIE5TU3RyaW5nICp1
YUlkZW50aWZpZXIgPSBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBzdHJp
bmdGb3JLZXk6Q3VzdG9tVXNlckFnZW50UHJlZmVyZW5jZUtleV07CisgICAgaWYgKHVhSWRlbnRp
ZmllcikgeworICAgICAgICBmb3IgKE5TRGljdGlvbmFyeSAqaXRlbSBpbiBbW3NlbGYgY2xhc3Nd
IHVzZXJBZ2VudERhdGFdKSB7CisgICAgICAgICAgICBpZiAoW2l0ZW1bQCJpZGVudGlmaWVyIl0g
aXNFcXVhbFRvU3RyaW5nOnVhSWRlbnRpZmllcl0pCisgICAgICAgICAgICAgICAgcmV0dXJuIGl0
ZW1bQCJ1c2VyQWdlbnQiXTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBuaWw7Cit9
CisKKy0gKHZvaWQpY2hhbmdlQ3V0b21Vc2VyQWdlbnQ6KGlkKXNlbmRlcgoreworICAgIE5TRGlj
dGlvbmFyeSAqdXNlckFnZW50RGljdCA9IFtzZW5kZXIgcmVwcmVzZW50ZWRPYmplY3RdOworICAg
IGlmICghdXNlckFnZW50RGljdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgTlNTdHJpbmcgKnVh
SWRlbnRpZmllciA9IHVzZXJBZ2VudERpY3RbQCJpZGVudGlmaWVyIl07CisgICAgaWYgKHVhSWRl
bnRpZmllcikKKyAgICAgICAgW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10g
c2V0T2JqZWN0OnVhSWRlbnRpZmllciBmb3JLZXk6Q3VzdG9tVXNlckFnZW50UHJlZmVyZW5jZUtl
eV07CisgICAgICAgIAorICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0g
cG9zdE5vdGlmaWNhdGlvbk5hbWU6a1VzZXJBZ2VudENoYW5nZWROb3RpZmljYXRpb25OYW1lIG9i
amVjdDpzZWxmXTsKK30KKwogLSAoTlNTdHJpbmcgKilkZWZhdWx0VVJMCiB7CiAgICAgTlNTdHJp
bmcgKmN1c3RvbURlZmF1bHRVUkwgPSBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1
bHRzXSBzdHJpbmdGb3JLZXk6RGVmYXVsdFVSTFByZWZlcmVuY2VLZXldOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvTWluaUJyb3dzZXIvbWFjL1dLMUJyb3dzZXJXaW5kb3dDb250cm9sbGVyLm0gYi9Ub29s
cy9NaW5pQnJvd3Nlci9tYWMvV0sxQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQppbmRleCAwZjUx
MWE2NDNmZTI4OWZlMDUzMTcxNzVjNTE3MWFlNDk5MzI3Y2U1Li4yYWE1MzY2OTk1YTQ2NGYyMmJh
NTA4NWIwMzlhNjdlNzVjMjc0ZDg2IDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9tYWMv
V0sxQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQorKysgYi9Ub29scy9NaW5pQnJvd3Nlci9tYWMv
V0sxQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQpAQCAtNjAsMTMgKzYwLDE5IEBAIC0gKHZvaWQp
YXdha2VGcm9tTmliCiAKICAgICBbX3dlYlZpZXcgX2xpc3RlbkZvckxheW91dE1pbGVzdG9uZXM6
V2ViRGlkRmlyc3RMYXlvdXQgfCBXZWJEaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQgfCBX
ZWJEaWRIaXRSZWxldmFudFJlcGFpbnRlZE9iamVjdHNBcmVhVGhyZXNob2xkXTsKIAorICAgIFNl
dHRpbmdzQ29udHJvbGxlciAqc2V0dGluZ3NDb250cm9sbGVyID0gW1tOU0FwcGxpY2F0aW9uIHNo
YXJlZEFwcGxpY2F0aW9uXSBicm93c2VyQXBwRGVsZWdhdGVdLnNldHRpbmdzQ29udHJvbGxlcjsK
KyAgICBpZiAoc2V0dGluZ3NDb250cm9sbGVyLmN1c3RvbVVzZXJBZ2VudCkKKyAgICAgICAgX3dl
YlZpZXcuY3VzdG9tVXNlckFnZW50ID0gc2V0dGluZ3NDb250cm9sbGVyLmN1c3RvbVVzZXJBZ2Vu
dDsKKwogICAgIFtzZWxmIGRpZENoYW5nZVNldHRpbmdzXTsKKyAgICBbW05TTm90aWZpY2F0aW9u
Q2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9y
KHVzZXJBZ2VudERpZENoYW5nZTopIG5hbWU6a1VzZXJBZ2VudENoYW5nZWROb3RpZmljYXRpb25O
YW1lIG9iamVjdDpuaWxdOwogCiAgICAgW2NvbnRhaW5lclZpZXcgYWRkU3Vidmlldzpfd2ViVmll
d107CiB9CiAKIC0gKHZvaWQpZGVhbGxvYwogeworICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIg
ZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6c2VsZl07CiAgICAgW193ZWJWaWV3IHNldEZy
YW1lTG9hZERlbGVnYXRlOm5pbF07CiAgICAgW193ZWJWaWV3IHNldFVJRGVsZWdhdGU6bmlsXTsK
ICAgICBbX3dlYlZpZXcgc2V0UmVzb3VyY2VMb2FkRGVsZWdhdGU6bmlsXTsKQEAgLTc1LDYgKzgx
LDEzIEBAIC0gKHZvaWQpZGVhbGxvYwogICAgIFtzdXBlciBkZWFsbG9jXTsKIH0KIAorLSAodm9p
ZCl1c2VyQWdlbnREaWRDaGFuZ2U6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCit7Cisg
ICAgU2V0dGluZ3NDb250cm9sbGVyICpzZXR0aW5nc0NvbnRyb2xsZXIgPSBbW05TQXBwbGljYXRp
b24gc2hhcmVkQXBwbGljYXRpb25dIGJyb3dzZXJBcHBEZWxlZ2F0ZV0uc2V0dGluZ3NDb250cm9s
bGVyOworICAgIF93ZWJWaWV3LmN1c3RvbVVzZXJBZ2VudCA9IHNldHRpbmdzQ29udHJvbGxlci5j
dXN0b21Vc2VyQWdlbnQ7CisgICAgW193ZWJWaWV3IHJlbG9hZDpuaWxdOworfQorCiAtICh2b2lk
KWxvYWRVUkxTdHJpbmc6KE5TU3RyaW5nICopdXJsU3RyaW5nCiB7CiAgICAgLy8gRklYTUU6IFdl
IHNob3VsZG4ndCBoYXZlIHRvIHNldCB0aGUgdXJsIHRleHQgaGVyZS4KQEAgLTE5NSw3ICsyMDgs
NyBAQCAtIChCT09MKXdpbmRvd1Nob3VsZENsb3NlOihpZClzZW5kZXIKIAogLSAodm9pZCl3aW5k
b3dXaWxsQ2xvc2U6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCiB7Ci0gICAgWyhCcm93
c2VyQXBwRGVsZWdhdGUgKilbW05TQXBwbGljYXRpb24gc2hhcmVkQXBwbGljYXRpb25dIGRlbGVn
YXRlXSBicm93c2VyV2luZG93V2lsbENsb3NlOnNlbGYud2luZG93XTsKKyAgICBbW1tOU0FwcGxp
Y2F0aW9uIHNoYXJlZEFwcGxpY2F0aW9uXSBicm93c2VyQXBwRGVsZWdhdGVdIGJyb3dzZXJXaW5k
b3dXaWxsQ2xvc2U6c2VsZi53aW5kb3ddOwogICAgIFtzZWxmIGF1dG9yZWxlYXNlXTsKIH0KIApA
QCAtMzA0LDcgKzMxNyw3IEBAIC0gKHZvaWQpc2V0RWRpdGFibGU6KEJPT0wpZWRpdGFibGUKIAog
LSAodm9pZClkaWRDaGFuZ2VTZXR0aW5ncwogewotICAgIFNldHRpbmdzQ29udHJvbGxlciAqc2V0
dGluZ3MgPSBbU2V0dGluZ3NDb250cm9sbGVyIHNoYXJlZF07CisgICAgU2V0dGluZ3NDb250cm9s
bGVyICpzZXR0aW5ncyA9IFtbTlNBcHBsaWNhdGlvbiBzaGFyZWRBcHBsaWNhdGlvbl0gYnJvd3Nl
ckFwcERlbGVnYXRlXS5zZXR0aW5nc0NvbnRyb2xsZXI7CiAKICAgICBbW1dlYlByZWZlcmVuY2Vz
IHN0YW5kYXJkUHJlZmVyZW5jZXNdIHNldFN1YnBpeGVsQ1NTT01FbGVtZW50TWV0cmljc0VuYWJs
ZWQ6c2V0dGluZ3Muc3ViUGl4ZWxDU1NPTU1ldHJpY3NFbmFibGVkXTsKICAgICBbW1dlYlByZWZl
cmVuY2VzIHN0YW5kYXJkUHJlZmVyZW5jZXNdIHNldFNob3dEZWJ1Z0JvcmRlcnM6c2V0dGluZ3Mu
bGF5ZXJCb3JkZXJzVmlzaWJsZV07CmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9tYWMv
V0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubSBiL1Rvb2xzL01pbmlCcm93c2VyL21hYy9XSzJC
cm93c2VyV2luZG93Q29udHJvbGxlci5tCmluZGV4IGEwNjQzOTVjMGM0NGFhZDRhMTNmODFhZTAy
ZjkxZmMxZDY4ZjM5YzYuLjAzMWVkZDUzM2FlMWI3OTFiYzY4NjJjNjMxYjkwOWFlOTlkYWM4ODYg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2VyL21hYy9XSzJCcm93c2VyV2luZG93Q29udHJv
bGxlci5tCisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL21hYy9XSzJCcm93c2VyV2luZG93Q29udHJv
bGxlci5tCkBAIC0xMDIsOSArMTAyLDEwIEBAIC0gKHZvaWQpYXdha2VGcm9tTmliCiAgICAgX3dl
YlZpZXcubmF2aWdhdGlvbkRlbGVnYXRlID0gc2VsZjsKICAgICBfd2ViVmlldy5VSURlbGVnYXRl
ID0gc2VsZjsKIAorICAgIFNldHRpbmdzQ29udHJvbGxlciAqc2V0dGluZ3NDb250cm9sbGVyID0g
W1tOU0FwcGxpY2F0aW9uIHNoYXJlZEFwcGxpY2F0aW9uXSBicm93c2VyQXBwRGVsZWdhdGVdLnNl
dHRpbmdzQ29udHJvbGxlcjsKICAgICAvLyBUaGlzIHNldHRpbmcgaW5zdGFsbHMgdGhlIG5ldyBX
SzIgSWNvbiBMb2FkaW5nIERlbGVnYXRlIGFuZCB0ZXN0cyB0aGF0IG1lY2hhbmlzbSBieQogICAg
IC8vIHRlbGxpbmcgV2ViS2l0IHRvIGxvYWQgZXZlcnkgaWNvbiByZWZlcmVuY2VkIGJ5IHRoZSBw
YWdlLgotICAgIGlmIChbW1NldHRpbmdzQ29udHJvbGxlciBzaGFyZWRdIGxvYWRzQWxsU2l0ZUlj
b25zXSkKKyAgICBpZiAoc2V0dGluZ3NDb250cm9sbGVyLmxvYWRzQWxsU2l0ZUljb25zKQogICAg
ICAgICBfd2ViVmlldy5faWNvbkxvYWRpbmdEZWxlZ2F0ZSA9IHNlbGY7CiAgICAgCiAgICAgX3dl
YlZpZXcuX29ic2VydmVkUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHMgPSBfV0tSZW5kZXJpbmdQcm9n
cmVzc0V2ZW50Rmlyc3RMYXlvdXQKQEAgLTExMyw3ICsxMTQsOSBAQCAtICh2b2lkKWF3YWtlRnJv
bU5pYgogICAgICAgICB8IF9XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRGaXJzdExheW91dEFmdGVy
U3VwcHJlc3NlZEluY3JlbWVudGFsUmVuZGVyaW5nCiAgICAgICAgIHwgX1dLUmVuZGVyaW5nUHJv
Z3Jlc3NFdmVudEZpcnN0UGFpbnRBZnRlclN1cHByZXNzZWRJbmNyZW1lbnRhbFJlbmRlcmluZzsK
IAotICAgIF96b29tVGV4dE9ubHkgPSBOTzsKKworICAgIGlmIChzZXR0aW5nc0NvbnRyb2xsZXIu
Y3VzdG9tVXNlckFnZW50KQorICAgICAgICBfd2ViVmlldy5jdXN0b21Vc2VyQWdlbnQgPSBzZXR0
aW5nc0NvbnRyb2xsZXIuY3VzdG9tVXNlckFnZW50OwogCiAgICAgX3dlYlZpZXcuX3VzZVBsYXRm
b3JtRmluZFVJID0gTk87CiAKQEAgLTEyNSw2ICsxMjgsOCBAQCAtICh2b2lkKWF3YWtlRnJvbU5p
YgogICAgIF90ZXh0RmluZGVyLmhpZGVJbnRlcmZhY2VDYWxsYmFjayA9IF57CiAgICAgICAgIFtf
d2ViVmlldyBfaGlkZUZpbmRVSV07CiAgICAgfTsKKworICAgIF96b29tVGV4dE9ubHkgPSBOTzsK
IH0KIAogLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoQ29uZmlndXJhdGlvbjooV0tXZWJWaWV3Q29u
ZmlndXJhdGlvbiAqKWNvbmZpZ3VyYXRpb24KQEAgLTEzNSwxMSArMTQwLDEzIEBAIC0gKGluc3Rh
bmNldHlwZSlpbml0V2l0aENvbmZpZ3VyYXRpb246KFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKilj
b25maWd1cmF0aW9uCiAgICAgX2NvbmZpZ3VyYXRpb24gPSBbY29uZmlndXJhdGlvbiBjb3B5XTsK
ICAgICBfaXNQcml2YXRlQnJvd3NpbmdXaW5kb3cgPSAhX2NvbmZpZ3VyYXRpb24ud2Vic2l0ZURh
dGFTdG9yZS5pc1BlcnNpc3RlbnQ7CiAKKyAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1
bHRDZW50ZXJdIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKHVzZXJBZ2VudERp
ZENoYW5nZTopIG5hbWU6a1VzZXJBZ2VudENoYW5nZWROb3RpZmljYXRpb25OYW1lIG9iamVjdDpu
aWxdOwogICAgIHJldHVybiBzZWxmOwogfQogCiAtICh2b2lkKWRlYWxsb2MKIHsKKyAgICBbW05T
Tm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOnNlbGZdOwog
ICAgIFtfd2ViVmlldyByZW1vdmVPYnNlcnZlcjpzZWxmIGZvcktleVBhdGg6QCJ0aXRsZSJdOwog
ICAgIFtfd2ViVmlldyByZW1vdmVPYnNlcnZlcjpzZWxmIGZvcktleVBhdGg6QCJVUkwiXTsKICAg
ICAKQEAgLTE1NCw2ICsxNjEsMTMgQEAgLSAodm9pZClkZWFsbG9jCiAgICAgW3N1cGVyIGRlYWxs
b2NdOwogfQogCistICh2b2lkKXVzZXJBZ2VudERpZENoYW5nZTooTlNOb3RpZmljYXRpb24gKilu
b3RpZmljYXRpb24KK3sKKyAgICBTZXR0aW5nc0NvbnRyb2xsZXIgKnNldHRpbmdzQ29udHJvbGxl
ciA9IFtbTlNBcHBsaWNhdGlvbiBzaGFyZWRBcHBsaWNhdGlvbl0gYnJvd3NlckFwcERlbGVnYXRl
XS5zZXR0aW5nc0NvbnRyb2xsZXI7CisgICAgX3dlYlZpZXcuY3VzdG9tVXNlckFnZW50ID0gc2V0
dGluZ3NDb250cm9sbGVyLmN1c3RvbVVzZXJBZ2VudDsKKyAgICBbX3dlYlZpZXcgcmVsb2FkXTsK
K30KKwogLSAoSUJBY3Rpb24pZmV0Y2g6KGlkKXNlbmRlcgogewogICAgIFt1cmxUZXh0IHNldFN0
cmluZ1ZhbHVlOltzZWxmIGFkZFByb3RvY29sSWZOZWNlc3Nhcnk6dXJsVGV4dC5zdHJpbmdWYWx1
ZV1dOwpAQCAtMzcyLDcgKzM4Niw3IEBAIC0gKEJPT0wpd2luZG93U2hvdWxkQ2xvc2U6KGlkKXNl
bmRlcgogCiAtICh2b2lkKXdpbmRvd1dpbGxDbG9zZTooTlNOb3RpZmljYXRpb24gKilub3RpZmlj
YXRpb24KIHsKLSAgICBbKEJyb3dzZXJBcHBEZWxlZ2F0ZSAqKVtbTlNBcHBsaWNhdGlvbiBzaGFy
ZWRBcHBsaWNhdGlvbl0gZGVsZWdhdGVdIGJyb3dzZXJXaW5kb3dXaWxsQ2xvc2U6c2VsZi53aW5k
b3ddOworICAgIFtbW05TQXBwbGljYXRpb24gc2hhcmVkQXBwbGljYXRpb25dIGJyb3dzZXJBcHBE
ZWxlZ2F0ZV0gYnJvd3NlcldpbmRvd1dpbGxDbG9zZTpzZWxmLndpbmRvd107CiAgICAgW3NlbGYg
YXV0b3JlbGVhc2VdOwogfQogCkBAIC00MjEsNyArNDM1LDcgQEAgLSAodm9pZCl6b29tT3V0Oihp
ZClzZW5kZXIKIAogLSAodm9pZClkaWRDaGFuZ2VTZXR0aW5ncwogewotICAgIFNldHRpbmdzQ29u
dHJvbGxlciAqc2V0dGluZ3MgPSBbU2V0dGluZ3NDb250cm9sbGVyIHNoYXJlZF07CisgICAgU2V0
dGluZ3NDb250cm9sbGVyICpzZXR0aW5ncyA9IFtbTlNBcHBsaWNhdGlvbiBzaGFyZWRBcHBsaWNh
dGlvbl0gYnJvd3NlckFwcERlbGVnYXRlXS5zZXR0aW5nc0NvbnRyb2xsZXI7CiAgICAgV0tQcmVm
ZXJlbmNlcyAqcHJlZmVyZW5jZXMgPSBfd2ViVmlldy5jb25maWd1cmF0aW9uLnByZWZlcmVuY2Vz
OwogCiAgICAgX3dlYlZpZXcuX3VzZVN5c3RlbUFwcGVhcmFuY2UgPSBzZXR0aW5ncy51c2VTeXN0
ZW1BcHBlYXJhbmNlOwo=
</data>
<flag name="review"
          id="402036"
          type_id="1"
          status="+"
          setter="wenson_hsieh"
    />
          </attachment>
      

    </bug>

</bugzilla>