<?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>213290</bug_id>
          
          <creation_ts>2020-06-17 06:46:17 -0700</creation_ts>
          <short_desc>[GTK][WPE] Add API to configure and handle service worker registrations to WebKitWebsiteDataManager</short_desc>
          <delta_ts>2020-06-19 00:56:12 -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>WebKitGTK</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>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>berto</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gustavo</cc>
    
    <cc>mcatanzaro</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1663449</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-06-17 06:46:17 -0700</bug_when>
    <thetext>The default path is always used even for apps setting a base data directory. We should handle WebsiteDataType::ServiceWorkerRegistrations to configure the directory and allow to fetch and clear them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663450</commentid>
    <comment_count>1</comment_count>
      <attachid>402101</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-06-17 06:52:42 -0700</bug_when>
    <thetext>Created attachment 402101
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663451</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2020-06-17 06:53:45 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663463</commentid>
    <comment_count>3</comment_count>
      <attachid>402101</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-06-17 07:31:22 -0700</bug_when>
    <thetext>Comment on attachment 402101
Patch

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

&gt; Source/WebKit/ChangeLog:8
&gt; +        The default path is always used even for apps setting a base data directory. We should handle

I suggest we rm -rf the default path each time WebKit is started, and change the default path to something new. Leaking website data outside the application&apos;s base data directory is really bad.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663466</commentid>
    <comment_count>4</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-06-17 07:33:16 -0700</bug_when>
    <thetext>i.e. we could do the equivalent of:

$ rm -rf ~/.local/share/webkitgtk/serviceworkers

And change the new default path to: ~/.local/share/webkitgtk/ServiceWorkers.

That way, previously-leaked website data gets cleaned up on upgrade to 2.30. We have a one-time loss of previous service workers, but I guess that&apos;s OK?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663468</commentid>
    <comment_count>5</comment_count>
      <attachid>402101</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-06-17 07:33:34 -0700</bug_when>
    <thetext>Comment on attachment 402101
Patch

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

&gt; Source/WebKit/UIProcess/API/glib/WebKitWebsiteDataManager.cpp:222
&gt; +        if (!priv-&gt;swRegistrationsDirectory)
&gt; +            priv-&gt;swRegistrationsDirectory.reset(g_build_filename(priv-&gt;baseDataDirectory.get(), &quot;serviceworkers&quot;, nullptr));

Maybe: &quot;ServiceWorkers&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663474</commentid>
    <comment_count>6</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-06-17 07:47:28 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #4)
&gt; i.e. we could do the equivalent of:
&gt; 
&gt; $ rm -rf ~/.local/share/webkitgtk/serviceworkers
&gt; 
&gt; And change the new default path to: ~/.local/share/webkitgtk/ServiceWorkers.
&gt; 
&gt; That way, previously-leaked website data gets cleaned up on upgrade to 2.30.
&gt; We have a one-time loss of previous service workers, but I guess that&apos;s OK?

But this is the default location, applications not using base data directory would still use that one. I think it was a mistake to use shared locations, and we should probably change all default locations to depend on the app name, but unfortunately we can&apos;t remove the default dirs :-(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663476</commentid>
    <comment_count>7</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-06-17 07:49:54 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #5)
&gt; Comment on attachment 402101 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=402101&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/API/glib/WebKitWebsiteDataManager.c:222
&gt; &gt; +        if (!priv-&gt;swRegistrationsDirectory)
&gt; &gt; +            priv-&gt;swRegistrationsDirectory.reset(g_build_filename(priv-&gt;baseDataDirectory.get(), &quot;serviceworkers&quot;, nullptr));
&gt; 
&gt; Maybe: &quot;ServiceWorkers&quot;?

That&apos;s consistent with other default dir names that are lowercase like localstorage, but I don&apos;t really mind, this is not expected to be ever accessed by users.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663492</commentid>
    <comment_count>8</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-06-17 08:32:05 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #7)
&gt; That&apos;s consistent with other default dir names that are lowercase like
&gt; localstorage, but I don&apos;t really mind, this is not expected to be ever
&gt; accessed by users.

It doesn&apos;t matter either way. I guess matching the default location is best, though. If we were going to rename the default location and delete the old default -- note I used capitals for the proposed new default default location to distinguish it from the old default location -- then it would be needed for consistency.

(In reply to Carlos Garcia Campos from comment #6)
&gt; I think it was a mistake to use shared locations,
&gt; and we should probably change all default locations to depend on the app
&gt; name, but unfortunately we can&apos;t remove the default dirs :-(

I agree it was a mistake. Let&apos;s fix this in the GTK 4 API? We can use GtkApplication ID if g_application_get_default() returns non-null, otherwise use g_get_prgname(). Applications that set base data and cache directory would be unaffected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663829</commentid>
    <comment_count>9</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-06-18 01:17:56 -0700</bug_when>
    <thetext>Committed r263204: &lt;https://trac.webkit.org/changeset/263204&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663889</commentid>
    <comment_count>10</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-06-18 09:15:37 -0700</bug_when>
    <thetext>OK, we missed a couple spots. It also has to be added to WebProcessProxy::platformGetLaunchOptions in WebProcessProxyGLib.cpp and bubblewrapSpawn in BubblewrapLauncher.cpp. We should probably add comments to warn about this....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664297</commentid>
    <comment_count>11</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-06-19 00:56:12 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #10)
&gt; OK, we missed a couple spots. It also has to be added to
&gt; WebProcessProxy::platformGetLaunchOptions in WebProcessProxyGLib.cpp and
&gt; bubblewrapSpawn in BubblewrapLauncher.cpp. We should probably add comments
&gt; to warn about this....

Registrations are handled by the network process.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402101</attachid>
            <date>2020-06-17 06:52:42 -0700</date>
            <delta_ts>2020-06-17 07:31:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-sw-registrations.diff</filename>
            <type>text/plain</type>
            <size>29212</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggZmUyOTMyOTZlODU1Li5jZTliOWU1ZmFhYzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzEgQEAKKzIwMjAtMDYtMTcgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtHVEtdW1dQRV0gQWRkIEFQSSB0byBjb25maWd1cmUgYW5kIGhh
bmRsZSBzZXJ2aWNlIHdvcmtlciByZWdpc3RyYXRpb25zIHRvIFdlYktpdFdlYnNpdGVEYXRhTWFu
YWdlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEz
MjkwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhl
IGRlZmF1bHQgcGF0aCBpcyBhbHdheXMgdXNlZCBldmVuIGZvciBhcHBzIHNldHRpbmcgYSBiYXNl
IGRhdGEgZGlyZWN0b3J5LiBXZSBzaG91bGQgaGFuZGxlCisgICAgICAgIFdlYnNpdGVEYXRhVHlw
ZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbnMgdG8gY29uZmlndXJlIHRoZSBkaXJlY3Rvcnkg
YW5kIGFsbG93IHRvIGZldGNoIGFuZCBjbGVhciB0aGVtLgorCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdFdlYnNpdGVEYXRhLmNwcDoKKyAgICAgICAgKHJlY29yZENvbnRhaW5z
U3VwcG9ydGVkRGF0YVR5cGVzKToKKyAgICAgICAgKHRvV2ViS2l0V2Vic2l0ZURhdGFUeXBlcyk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYnNpdGVEYXRhTWFuYWdlci5j
cHA6CisgICAgICAgICh3ZWJraXRXZWJzaXRlRGF0YU1hbmFnZXJHZXRQcm9wZXJ0eSk6CisgICAg
ICAgICh3ZWJraXRXZWJzaXRlRGF0YU1hbmFnZXJTZXRQcm9wZXJ0eSk6CisgICAgICAgICh3ZWJr
aXRXZWJzaXRlRGF0YU1hbmFnZXJDb25zdHJ1Y3RlZCk6CisgICAgICAgICh3ZWJraXRfd2Vic2l0
ZV9kYXRhX21hbmFnZXJfY2xhc3NfaW5pdCk6CisgICAgICAgICh3ZWJraXRXZWJzaXRlRGF0YU1h
bmFnZXJHZXREYXRhU3RvcmUpOgorICAgICAgICAod2Via2l0X3dlYnNpdGVfZGF0YV9tYW5hZ2Vy
X2dldF9zZXJ2aWNlX3dvcmtlcl9yZWdpc3RyYXRpb25zX2RpcmVjdG9yeSk6CisgICAgICAgICh0
b1dlYnNpdGVEYXRhVHlwZXMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdl
YnNpdGVEYXRhLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2Vic2l0ZURh
dGFNYW5hZ2VyLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3Rr
LTQuMC1zZWN0aW9ucy50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0V2Vi
c2l0ZURhdGEuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRXZWJzaXRlRGF0
YU1hbmFnZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9kb2NzL3dwZS0xLjAtc2Vj
dGlvbnMudHh0OgorCiAyMDIwLTA2LTE2ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVdIEFkZCBBUEkgdG8gY29uZmlndXJlIGFu
ZCBlbmFibGUgcmVzb3VyY2UgbG9hZCBzdGF0aXN0aWNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJzaXRlRGF0YS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJzaXRlRGF0YS5jcHAKaW5kZXggZmMwZmY5
YzI4M2I1Li41MzE3ODljZDQxMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdFdlYnNpdGVEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJzaXRlRGF0YS5jcHAKQEAgLTc5LDcgKzc5LDggQEAgc3Rh
dGljIGJvb2wgcmVjb3JkQ29udGFpbnNTdXBwb3J0ZWREYXRhVHlwZXMoY29uc3QgV2Vic2l0ZURh
dGFSZWNvcmQmIHJlY29yZCkKICNlbmRpZgogICAgICAgICBXZWJzaXRlRGF0YVR5cGU6OkNvb2tp
ZXMsCiAgICAgICAgIFdlYnNpdGVEYXRhVHlwZTo6RGV2aWNlSWRIYXNoU2FsdCwKLSAgICAgICAg
V2Vic2l0ZURhdGFUeXBlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzCisgICAgICAgIFdlYnNpdGVE
YXRhVHlwZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljcywKKyAgICAgICAgV2Vic2l0ZURhdGFUeXBl
OjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9ucwogICAgIH0pOwogfQogCkBAIC0xMTIsNiArMTEz
LDggQEAgc3RhdGljIFdlYktpdFdlYnNpdGVEYXRhVHlwZXMgdG9XZWJLaXRXZWJzaXRlRGF0YVR5
cGVzKE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGUKICAgICAgICAgcmV0dXJuVmFsdWUgfD0gV0VC
S0lUX1dFQlNJVEVfREFUQV9ERVZJQ0VfSURfSEFTSF9TQUxUOwogICAgIGlmICh0eXBlcy5jb250
YWlucyhXZWJzaXRlRGF0YVR5cGU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3MpKQogICAgICAgICBy
ZXR1cm5WYWx1ZSB8PSBXRUJLSVRfV0VCU0lURV9EQVRBX0lUUDsKKyAgICBpZiAodHlwZXMuY29u
dGFpbnMoV2Vic2l0ZURhdGFUeXBlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9ucykpCisgICAg
ICAgIHJldHVyblZhbHVlIHw9IFdFQktJVF9XRUJTSVRFX0RBVEFfU0VSVklDRV9XT1JLRVJfUkVH
SVNUUkFUSU9OUzsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViS2l0V2Vic2l0ZURhdGFUeXBl
cz4ocmV0dXJuVmFsdWUpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ2xpYi9XZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyLmNwcAppbmRleCAwYjY5
ZDZlODllMjIuLjI3NWZiZWMyZTQ4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXIuY3BwCkBAIC04
Nyw2ICs4Nyw3IEBAIGVudW0gewogICAgIFBST1BfV0VCU1FMX0RJUkVDVE9SWSwKICAgICBQUk9Q
X0hTVFNfQ0FDSEVfRElSRUNUT1JZLAogICAgIFBST1BfSVRQX0RJUkVDVE9SWSwKKyAgICBQUk9Q
X1NFUlZJQ0VfV09SS0VSX1JFR0lTVFJBVElPTlNfRElSRUNUT1JZLAogICAgIFBST1BfSVNfRVBI
RU1FUkFMCiB9OwogCkBAIC0xMDYsNiArMTA3LDcgQEAgc3RydWN0IF9XZWJLaXRXZWJzaXRlRGF0
YU1hbmFnZXJQcml2YXRlIHsKICAgICBHVW5pcXVlUHRyPGNoYXI+IHdlYlNRTERpcmVjdG9yeTsK
ICAgICBHVW5pcXVlUHRyPGNoYXI+IGhzdHNDYWNoZURpcmVjdG9yeTsKICAgICBHVW5pcXVlUHRy
PGNoYXI+IGl0cERpcmVjdG9yeTsKKyAgICBHVW5pcXVlUHRyPGNoYXI+IHN3UmVnaXN0cmF0aW9u
c0RpcmVjdG9yeTsKIAogICAgIEdSZWZQdHI8V2ViS2l0Q29va2llTWFuYWdlcj4gY29va2llTWFu
YWdlcjsKICAgICBWZWN0b3I8V2ViUHJvY2Vzc1Bvb2wqPiBwcm9jZXNzUG9vbHM7CkBAIC0xNDcs
NiArMTQ5LDkgQEAgc3RhdGljIHZvaWQgd2Via2l0V2Vic2l0ZURhdGFNYW5hZ2VyR2V0UHJvcGVy
dHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wSUQsIEcKICAgICBjYXNlIFBST1BfSVRQX0RJ
UkVDVE9SWToKICAgICAgICAgZ192YWx1ZV9zZXRfc3RyaW5nKHZhbHVlLCB3ZWJraXRfd2Vic2l0
ZV9kYXRhX21hbmFnZXJfZ2V0X2l0cF9kaXJlY3RvcnkobWFuYWdlcikpOwogICAgICAgICBicmVh
azsKKyAgICBjYXNlIFBST1BfU0VSVklDRV9XT1JLRVJfUkVHSVNUUkFUSU9OU19ESVJFQ1RPUlk6
CisgICAgICAgIGdfdmFsdWVfc2V0X3N0cmluZyh2YWx1ZSwgd2Via2l0X3dlYnNpdGVfZGF0YV9t
YW5hZ2VyX2dldF9zZXJ2aWNlX3dvcmtlcl9yZWdpc3RyYXRpb25zX2RpcmVjdG9yeShtYW5hZ2Vy
KSk7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUFJPUF9JU19FUEhFTUVSQUw6CiAgICAgICAg
IGdfdmFsdWVfc2V0X2Jvb2xlYW4odmFsdWUsIHdlYmtpdF93ZWJzaXRlX2RhdGFfbWFuYWdlcl9p
c19lcGhlbWVyYWwobWFuYWdlcikpOwogICAgICAgICBicmVhazsKQEAgLTE4Nyw2ICsxOTIsOSBA
QCBzdGF0aWMgdm9pZCB3ZWJraXRXZWJzaXRlRGF0YU1hbmFnZXJTZXRQcm9wZXJ0eShHT2JqZWN0
KiBvYmplY3QsIGd1aW50IHByb3BJRCwgYwogICAgIGNhc2UgUFJPUF9JVFBfRElSRUNUT1JZOgog
ICAgICAgICBtYW5hZ2VyLT5wcml2LT5pdHBEaXJlY3RvcnkucmVzZXQoZ192YWx1ZV9kdXBfc3Ry
aW5nKHZhbHVlKSk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgUFJPUF9TRVJWSUNFX1dPUktF
Ul9SRUdJU1RSQVRJT05TX0RJUkVDVE9SWToKKyAgICAgICAgbWFuYWdlci0+cHJpdi0+c3dSZWdp
c3RyYXRpb25zRGlyZWN0b3J5LnJlc2V0KGdfdmFsdWVfZHVwX3N0cmluZyh2YWx1ZSkpOworICAg
ICAgICBicmVhazsKICAgICBjYXNlIFBST1BfSVNfRVBIRU1FUkFMOgogICAgICAgICBpZiAoZ192
YWx1ZV9nZXRfYm9vbGVhbih2YWx1ZSkpCiAgICAgICAgICAgICBtYW5hZ2VyLT5wcml2LT53ZWJz
aXRlRGF0YVN0b3JlID0gV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpjcmVhdGVOb25QZXJzaXN0
ZW50KCk7CkBAIC0yMTAsNiArMjE4LDggQEAgc3RhdGljIHZvaWQgd2Via2l0V2Vic2l0ZURhdGFN
YW5hZ2VyQ29uc3RydWN0ZWQoR09iamVjdCogb2JqZWN0KQogICAgICAgICAgICAgcHJpdi0+d2Vi
U1FMRGlyZWN0b3J5LnJlc2V0KGdfYnVpbGRfZmlsZW5hbWUocHJpdi0+YmFzZURhdGFEaXJlY3Rv
cnkuZ2V0KCksICJkYXRhYmFzZXMiLCBudWxscHRyKSk7CiAgICAgICAgIGlmICghcHJpdi0+aXRw
RGlyZWN0b3J5KQogICAgICAgICAgICAgcHJpdi0+aXRwRGlyZWN0b3J5LnJlc2V0KGdfYnVpbGRf
ZmlsZW5hbWUocHJpdi0+YmFzZURhdGFEaXJlY3RvcnkuZ2V0KCksICJpdHAiLCBudWxscHRyKSk7
CisgICAgICAgIGlmICghcHJpdi0+c3dSZWdpc3RyYXRpb25zRGlyZWN0b3J5KQorICAgICAgICAg
ICAgcHJpdi0+c3dSZWdpc3RyYXRpb25zRGlyZWN0b3J5LnJlc2V0KGdfYnVpbGRfZmlsZW5hbWUo
cHJpdi0+YmFzZURhdGFEaXJlY3RvcnkuZ2V0KCksICJzZXJ2aWNld29ya2VycyIsIG51bGxwdHIp
KTsKICAgICB9CiAKICAgICBpZiAocHJpdi0+YmFzZUNhY2hlRGlyZWN0b3J5KSB7CkBAIC0zODcs
NiArMzk3LDIzIEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJzaXRlX2RhdGFfbWFuYWdlcl9jbGFz
c19pbml0KFdlYktpdFdlYnNpdGVEYXRhTWFuYWdlckNsYXNzCiAgICAgICAgICAgICBudWxscHRy
LAogICAgICAgICAgICAgc3RhdGljX2Nhc3Q8R1BhcmFtRmxhZ3M+KFdFQktJVF9QQVJBTV9SRUFE
V1JJVEUgfCBHX1BBUkFNX0NPTlNUUlVDVF9PTkxZKSkpOwogCisgICAgLyoqCisgICAgICogV2Vi
S2l0V2Vic2l0ZURhdGFNYW5hZ2VyOnNlcnZpY2Utd29ya2VyLXJlZ2lzdHJhdGlvbnMtZGlyZWN0
b3J5OgorICAgICAqCisgICAgICogVGhlIGRpcmVjdG9yeSB3aGVyZSBzZXJ2aWNlIHdvcmtlcnMg
cmVnaXN0cmF0aW9ucyB3aWxsIGJlIHN0b3JlZC4KKyAgICAgKgorICAgICAqIFNpbmNlOiAyLjMw
CisgICAgICovCisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKKyAgICAgICAg
Z09iamVjdENsYXNzLAorICAgICAgICBQUk9QX1NFUlZJQ0VfV09SS0VSX1JFR0lTVFJBVElPTlNf
RElSRUNUT1JZLAorICAgICAgICBnX3BhcmFtX3NwZWNfc3RyaW5nKAorICAgICAgICAgICAgInNl
cnZpY2Utd29ya2VyLXJlZ2lzdHJhdGlvbnMtZGlyZWN0b3J5IiwKKyAgICAgICAgICAgIF8oIlNl
cnZpY2UgV29ya2VyIFJlZ2lzdHJhdGlvbnMgRGlyZWN0b3J5IiksCisgICAgICAgICAgICBfKCJU
aGUgZGlyZWN0b3J5IHdoZXJlIHNlcnZpY2Ugd29ya2VycyByZWdpc3RyYXRpb25zIHdpbGwgYmUg
c3RvcmVkIiksCisgICAgICAgICAgICBudWxscHRyLAorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8
R1BhcmFtRmxhZ3M+KFdFQktJVF9QQVJBTV9SRUFEV1JJVEUgfCBHX1BBUkFNX0NPTlNUUlVDVF9P
TkxZKSkpOworCiAgICAgLyoqCiAgICAgICogV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyOmlzLWVw
aGVtZXJhbDoKICAgICAgKgpAQCAtNDI3LDYgKzQ1NCw4IEBAIFdlYktpdDo6V2Vic2l0ZURhdGFT
dG9yZSYgd2Via2l0V2Vic2l0ZURhdGFNYW5hZ2VyR2V0RGF0YVN0b3JlKFdlYktpdFdlYnNpdGVE
YXRhCiAgICAgICAgICAgICBXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OmRlZmF1bHRIU1RTRGly
ZWN0b3J5KCkgOiBGaWxlU3lzdGVtOjpzdHJpbmdGcm9tRmlsZVN5c3RlbVJlcHJlc2VudGF0aW9u
KHByaXYtPmhzdHNDYWNoZURpcmVjdG9yeS5nZXQoKSkpOwogICAgICAgICBjb25maWd1cmF0aW9u
LT5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KCFwcml2LT5pdHBEaXJlY3Rvcnkg
PwogICAgICAgICAgICAgV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpkZWZhdWx0UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RpcmVjdG9yeSgpIDogRmlsZVN5c3RlbTo6c3RyaW5nRnJvbUZpbGVTeXN0
ZW1SZXByZXNlbnRhdGlvbihwcml2LT5pdHBEaXJlY3RvcnkuZ2V0KCkpKTsKKyAgICAgICAgY29u
ZmlndXJhdGlvbi0+c2V0U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeSghcHJpdi0+
c3dSZWdpc3RyYXRpb25zRGlyZWN0b3J5ID8KKyAgICAgICAgICAgIFdlYktpdDo6V2Vic2l0ZURh
dGFTdG9yZTo6ZGVmYXVsdFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnkoKSA6IEZp
bGVTeXN0ZW06OnN0cmluZ0Zyb21GaWxlU3lzdGVtUmVwcmVzZW50YXRpb24ocHJpdi0+c3dSZWdp
c3RyYXRpb25zRGlyZWN0b3J5LmdldCgpKSk7CiAgICAgICAgIGNvbmZpZ3VyYXRpb24tPnNldE1l
ZGlhS2V5c1N0b3JhZ2VEaXJlY3RvcnkoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpkZWZhdWx0
TWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeSgpKTsKICAgICAgICAgcHJpdi0+d2Vic2l0ZURhdGFT
dG9yZSA9IFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6Y3JlYXRlKFdURk1vdmUoY29uZmlndXJh
dGlvbiksIFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOwogICAgIH0KQEAgLTcx
MSw2ICs3NDAsMjkgQEAgY29uc3QgZ2NoYXIqIHdlYmtpdF93ZWJzaXRlX2RhdGFfbWFuYWdlcl9n
ZXRfaXRwX2RpcmVjdG9yeShXZWJLaXRXZWJzaXRlRGF0YU1hbmEKICAgICByZXR1cm4gcHJpdi0+
aXRwRGlyZWN0b3J5LmdldCgpOwogfQogCisvKioKKyAqIHdlYmtpdF93ZWJzaXRlX2RhdGFfbWFu
YWdlcl9nZXRfc2VydmljZV93b3JrZXJfcmVnaXN0cmF0aW9uc19kaXJlY3Rvcnk6CisgKiBAbWFu
YWdlcjogYSAjV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyCisgKgorICogR2V0IHRoZSAjV2ViS2l0
V2Vic2l0ZURhdGFNYW5hZ2VyOnNlcnZpY2Utd29ya2VyLXJlZ2lzdHJhdGlvbnMtZGlyZWN0b3J5
IHByb3BlcnR5LgorICoKKyAqIFJldHVybnM6IChhbGxvdy1ub25lKTogdGhlIGRpcmVjdG9yeSB3
aGVyZSBzZXJ2aWNlIHdvcmtlciByZWdpc3RyYXRpb25zIGFyZSBzdG9yZWQgb3IgJU5VTEwgaWYg
QG1hbmFnZXIgaXMgZXBoZW1lcmFsLgorICoKKyAqIFNpbmNlOiAyLjMwCisgKi8KK2NvbnN0IGdj
aGFyKiB3ZWJraXRfd2Vic2l0ZV9kYXRhX21hbmFnZXJfZ2V0X3NlcnZpY2Vfd29ya2VyX3JlZ2lz
dHJhdGlvbnNfZGlyZWN0b3J5KFdlYktpdFdlYnNpdGVEYXRhTWFuYWdlciogbWFuYWdlcikKK3sK
KyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCU0lURV9EQVRBX01BTkFHRVIo
bWFuYWdlciksIG51bGxwdHIpOworCisgICAgV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyUHJpdmF0
ZSogcHJpdiA9IG1hbmFnZXItPnByaXY7CisgICAgaWYgKHByaXYtPndlYnNpdGVEYXRhU3RvcmUg
JiYgIXByaXYtPndlYnNpdGVEYXRhU3RvcmUtPmlzUGVyc2lzdGVudCgpKQorICAgICAgICByZXR1
cm4gbnVsbHB0cjsKKworICAgIGlmICghcHJpdi0+c3dSZWdpc3RyYXRpb25zRGlyZWN0b3J5KQor
ICAgICAgICBwcml2LT5zd1JlZ2lzdHJhdGlvbnNEaXJlY3RvcnkucmVzZXQoZ19zdHJkdXAoV2Vi
S2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpkZWZhdWx0U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRp
cmVjdG9yeSgpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICByZXR1cm4gcHJpdi0+c3dSZWdpc3RyYXRp
b25zRGlyZWN0b3J5LmdldCgpOworfQorCiAvKioKICAqIHdlYmtpdF93ZWJzaXRlX2RhdGFfbWFu
YWdlcl9nZXRfY29va2llX21hbmFnZXI6CiAgKiBAbWFuYWdlcjogYSAjV2ViS2l0V2Vic2l0ZURh
dGFNYW5hZ2VyCkBAIC03OTYsNiArODQ4LDggQEAgc3RhdGljIE9wdGlvblNldDxXZWJzaXRlRGF0
YVR5cGU+IHRvV2Vic2l0ZURhdGFUeXBlcyhXZWJLaXRXZWJzaXRlRGF0YVR5cGVzIHR5cGUKICAg
ICAgICAgcmV0dXJuVmFsdWUuYWRkKFdlYnNpdGVEYXRhVHlwZTo6RGV2aWNlSWRIYXNoU2FsdCk7
CiAgICAgaWYgKHR5cGVzICYgV0VCS0lUX1dFQlNJVEVfREFUQV9JVFApCiAgICAgICAgIHJldHVy
blZhbHVlLmFkZChXZWJzaXRlRGF0YVR5cGU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3MpOworICAg
IGlmICh0eXBlcyAmIFdFQktJVF9XRUJTSVRFX0RBVEFfU0VSVklDRV9XT1JLRVJfUkVHSVNUUkFU
SU9OUykKKyAgICAgICAgcmV0dXJuVmFsdWUuYWRkKFdlYnNpdGVEYXRhVHlwZTo6U2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbnMpOwogICAgIHJldHVybiByZXR1cm5WYWx1ZTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJzaXRlRGF0YS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJzaXRlRGF0YS5oCmlu
ZGV4IGIxZTBlMzk2NDJlNi4uNzI3NDA0ZTFmYjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYnNpdGVEYXRhLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJzaXRlRGF0YS5oCkBAIC00Nyw2ICs0Nyw3IEBA
IHR5cGVkZWYgc3RydWN0IF9XZWJLaXRXZWJzaXRlRGF0YSBXZWJLaXRXZWJzaXRlRGF0YTsKICAq
IEBXRUJLSVRfV0VCU0lURV9EQVRBX0RFVklDRV9JRF9IQVNIX1NBTFQ6IEhhc2ggc2FsdCB1c2Vk
IHRvIGdlbmVyYXRlIHRoZSBkZXZpY2UgaWRzIHVzZWQgYnkgd2VicGFnZXMuIFNpbmNlIDIuMjQK
ICAqIEBXRUJLSVRfV0VCU0lURV9EQVRBX0hTVFNfQ0FDSEU6IEhTVFMgY2FjaGUuIFNpbmNlIDIu
MjYKICAqIEBXRUJLSVRfV0VCU0lURV9EQVRBX0lUUDogSW50ZWxsaWdlbnQgVHJhY2tpbmcgUHJl
dmVudGlvbiBkYXRhLiBTaW5jZSAyLjMwLgorICogQFdFQktJVF9XRUJTSVRFX0RBVEFfU0VSVklD
RV9XT1JLRVJfUkVHSVNUUkFUSU9OUzogU2VydmljZSB3b3JrZXIgcmVnaXN0cmF0aW9ucy4gU2lu
Y2UgMi4zMAogICogQFdFQktJVF9XRUJTSVRFX0RBVEFfQUxMOiBBbGwgdHlwZXMuCiAgKgogICog
RW51bSB2YWx1ZXMgd2l0aCBmbGFncyByZXByZXNlbnRpbmcgdHlwZXMgb2YgV2Vic2l0ZSBkYXRh
LgpAQCAtNTQsMTkgKzU1LDIwIEBAIHR5cGVkZWYgc3RydWN0IF9XZWJLaXRXZWJzaXRlRGF0YSBX
ZWJLaXRXZWJzaXRlRGF0YTsKICAqIFNpbmNlOiAyLjE2CiAgKi8KIHR5cGVkZWYgZW51bSB7Ci0g
ICAgV0VCS0lUX1dFQlNJVEVfREFUQV9NRU1PUllfQ0FDSEUgICAgICAgICAgICAgID0gMSA8PCAw
LAotICAgIFdFQktJVF9XRUJTSVRFX0RBVEFfRElTS19DQUNIRSAgICAgICAgICAgICAgICA9IDEg
PDwgMSwKLSAgICBXRUJLSVRfV0VCU0lURV9EQVRBX09GRkxJTkVfQVBQTElDQVRJT05fQ0FDSEUg
PSAxIDw8IDIsCi0gICAgV0VCS0lUX1dFQlNJVEVfREFUQV9TRVNTSU9OX1NUT1JBR0UgICAgICAg
ICAgID0gMSA8PCAzLAotICAgIFdFQktJVF9XRUJTSVRFX0RBVEFfTE9DQUxfU1RPUkFHRSAgICAg
ICAgICAgICA9IDEgPDwgNCwKLSAgICBXRUJLSVRfV0VCU0lURV9EQVRBX1dFQlNRTF9EQVRBQkFT
RVMgICAgICAgICAgPSAxIDw8IDUsCi0gICAgV0VCS0lUX1dFQlNJVEVfREFUQV9JTkRFWEVEREJf
REFUQUJBU0VTICAgICAgID0gMSA8PCA2LAotICAgIFdFQktJVF9XRUJTSVRFX0RBVEFfUExVR0lO
X0RBVEEgICAgICAgICAgICAgICA9IDEgPDwgNywKLSAgICBXRUJLSVRfV0VCU0lURV9EQVRBX0NP
T0tJRVMgICAgICAgICAgICAgICAgICAgPSAxIDw8IDgsCi0gICAgV0VCS0lUX1dFQlNJVEVfREFU
QV9ERVZJQ0VfSURfSEFTSF9TQUxUICAgICAgID0gMSA8PCA5LAotICAgIFdFQktJVF9XRUJTSVRF
X0RBVEFfSFNUU19DQUNIRSAgICAgICAgICAgICAgICA9IDEgPDwgMTAsCi0gICAgV0VCS0lUX1dF
QlNJVEVfREFUQV9JVFAgICAgICAgICAgICAgICAgICAgICAgID0gMSA8PCAxMSwKLSAgICBXRUJL
SVRfV0VCU0lURV9EQVRBX0FMTCAgICAgICAgICAgICAgICAgICAgICAgPSAoMSA8PCAxMikgLSAx
CisgICAgV0VCS0lUX1dFQlNJVEVfREFUQV9NRU1PUllfQ0FDSEUgICAgICAgICAgICAgICAgID0g
MSA8PCAwLAorICAgIFdFQktJVF9XRUJTSVRFX0RBVEFfRElTS19DQUNIRSAgICAgICAgICAgICAg
ICAgICA9IDEgPDwgMSwKKyAgICBXRUJLSVRfV0VCU0lURV9EQVRBX09GRkxJTkVfQVBQTElDQVRJ
T05fQ0FDSEUgICAgPSAxIDw8IDIsCisgICAgV0VCS0lUX1dFQlNJVEVfREFUQV9TRVNTSU9OX1NU
T1JBR0UgICAgICAgICAgICAgID0gMSA8PCAzLAorICAgIFdFQktJVF9XRUJTSVRFX0RBVEFfTE9D
QUxfU1RPUkFHRSAgICAgICAgICAgICAgICA9IDEgPDwgNCwKKyAgICBXRUJLSVRfV0VCU0lURV9E
QVRBX1dFQlNRTF9EQVRBQkFTRVMgICAgICAgICAgICAgPSAxIDw8IDUsCisgICAgV0VCS0lUX1dF
QlNJVEVfREFUQV9JTkRFWEVEREJfREFUQUJBU0VTICAgICAgICAgID0gMSA8PCA2LAorICAgIFdF
QktJVF9XRUJTSVRFX0RBVEFfUExVR0lOX0RBVEEgICAgICAgICAgICAgICAgICA9IDEgPDwgNywK
KyAgICBXRUJLSVRfV0VCU0lURV9EQVRBX0NPT0tJRVMgICAgICAgICAgICAgICAgICAgICAgPSAx
IDw8IDgsCisgICAgV0VCS0lUX1dFQlNJVEVfREFUQV9ERVZJQ0VfSURfSEFTSF9TQUxUICAgICAg
ICAgID0gMSA8PCA5LAorICAgIFdFQktJVF9XRUJTSVRFX0RBVEFfSFNUU19DQUNIRSAgICAgICAg
ICAgICAgICAgICA9IDEgPDwgMTAsCisgICAgV0VCS0lUX1dFQlNJVEVfREFUQV9JVFAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gMSA8PCAxMSwKKyAgICBXRUJLSVRfV0VCU0lURV9EQVRBX1NF
UlZJQ0VfV09SS0VSX1JFR0lTVFJBVElPTlMgPSAxIDw8IDEyLAorICAgIFdFQktJVF9XRUJTSVRF
X0RBVEFfQUxMICAgICAgICAgICAgICAgICAgICAgICAgICA9ICgxIDw8IDEzKSAtIDEKIH0gV2Vi
S2l0V2Vic2l0ZURhdGFUeXBlczsKIAogV0VCS0lUX0FQSSBHVHlwZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXIuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2Vy
LmgKaW5kZXggMTZmMDQ3MzE2NzU5Li41YzE5NjUzMjdiNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXIu
aApAQCAtOTYsNiArOTYsOSBAQCB3ZWJraXRfd2Vic2l0ZV9kYXRhX21hbmFnZXJfZ2V0X2hzdHNf
Y2FjaGVfZGlyZWN0b3J5ICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYgogV0VCS0lUX0FQSSBj
b25zdCBnY2hhciAqCiB3ZWJraXRfd2Vic2l0ZV9kYXRhX21hbmFnZXJfZ2V0X2l0cF9kaXJlY3Rv
cnkgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYnNpdGVEYXRhTWFuYWdlciAqbWFu
YWdlcik7CiAKK1dFQktJVF9BUEkgY29uc3QgZ2NoYXIgKgord2Via2l0X3dlYnNpdGVfZGF0YV9t
YW5hZ2VyX2dldF9zZXJ2aWNlX3dvcmtlcl9yZWdpc3RyYXRpb25zX2RpcmVjdG9yeShXZWJLaXRX
ZWJzaXRlRGF0YU1hbmFnZXIgKm1hbmFnZXIpOworCiBXRUJLSVRfQVBJIFdlYktpdENvb2tpZU1h
bmFnZXIgKgogd2Via2l0X3dlYnNpdGVfZGF0YV9tYW5hZ2VyX2dldF9jb29raWVfbWFuYWdlciAg
ICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXIgKm1hbmFnZXIp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Vi
a2l0Mmd0ay00LjAtc2VjdGlvbnMudHh0IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0
ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dAppbmRleCA5N2ZiZTlkMmQ3NmYuLmNh
OGQ1NTk1NWVjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9k
b2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAtc2VjdGlvbnMudHh0CkBAIC0xNDU5LDYg
KzE0NTksNyBAQCB3ZWJraXRfd2Vic2l0ZV9kYXRhX21hbmFnZXJfZ2V0X2luZGV4ZWRkYl9kaXJl
Y3RvcnkKIHdlYmtpdF93ZWJzaXRlX2RhdGFfbWFuYWdlcl9nZXRfd2Vic3FsX2RpcmVjdG9yeQog
d2Via2l0X3dlYnNpdGVfZGF0YV9tYW5hZ2VyX2dldF9oc3RzX2NhY2hlX2RpcmVjdG9yeQogd2Vi
a2l0X3dlYnNpdGVfZGF0YV9tYW5hZ2VyX2dldF9pdHBfZGlyZWN0b3J5Cit3ZWJraXRfd2Vic2l0
ZV9kYXRhX21hbmFnZXJfZ2V0X3NlcnZpY2Vfd29ya2VyX3JlZ2lzdHJhdGlvbnNfZGlyZWN0b3J5
CiB3ZWJraXRfd2Vic2l0ZV9kYXRhX21hbmFnZXJfZ2V0X2Nvb2tpZV9tYW5hZ2VyCiB3ZWJraXRf
d2Vic2l0ZV9kYXRhX21hbmFnZXJfc2V0X2l0cF9lbmFibGVkCiB3ZWJraXRfd2Vic2l0ZV9kYXRh
X21hbmFnZXJfZ2V0X2l0cF9lbmFibGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvd3BlL1dlYktpdFdlYnNpdGVEYXRhLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvd3BlL1dlYktpdFdlYnNpdGVEYXRhLmgKaW5kZXggY2Q3YjNlZTI3ODNhLi45MTAzYzY3
ZGQ1N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0
V2Vic2l0ZURhdGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktp
dFdlYnNpdGVEYXRhLmgKQEAgLTQ3LDYgKzQ3LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFdl
YnNpdGVEYXRhIFdlYktpdFdlYnNpdGVEYXRhOwogICogQFdFQktJVF9XRUJTSVRFX0RBVEFfREVW
SUNFX0lEX0hBU0hfU0FMVDogSGFzaCBzYWx0IHVzZWQgdG8gZ2VuZXJhdGUgdGhlIGRldmljZSBp
ZHMgdXNlZCBieSB3ZWJwYWdlcy4gU2luY2UgMi4yNAogICogQFdFQktJVF9XRUJTSVRFX0RBVEFf
SFNUU19DQUNIRTogSFNUUyBjYWNoZS4gU2luY2UgMi4yNgogICogQFdFQktJVF9XRUJTSVRFX0RB
VEFfSVRQOiBJbnRlbGxpZ2VudCBUcmFja2luZyBQcmV2ZW50aW9uIGRhdGEuIFNpbmNlIDIuMzAu
CisgKiBAV0VCS0lUX1dFQlNJVEVfREFUQV9TRVJWSUNFX1dPUktFUl9SRUdJU1RSQVRJT05TOiBT
ZXJ2aWNlIHdvcmtlciByZWdpc3RyYXRpb25zLiBTaW5jZSAyLjMwCiAgKiBAV0VCS0lUX1dFQlNJ
VEVfREFUQV9BTEw6IEFsbCB0eXBlcy4KICAqCiAgKiBFbnVtIHZhbHVlcyB3aXRoIGZsYWdzIHJl
cHJlc2VudGluZyB0eXBlcyBvZiBXZWJzaXRlIGRhdGEuCkBAIC01NCwxOSArNTUsMjAgQEAgdHlw
ZWRlZiBzdHJ1Y3QgX1dlYktpdFdlYnNpdGVEYXRhIFdlYktpdFdlYnNpdGVEYXRhOwogICogU2lu
Y2U6IDIuMTYKICAqLwogdHlwZWRlZiBlbnVtIHsKLSAgICBXRUJLSVRfV0VCU0lURV9EQVRBX01F
TU9SWV9DQUNIRSAgICAgICAgICAgICAgPSAxIDw8IDAsCi0gICAgV0VCS0lUX1dFQlNJVEVfREFU
QV9ESVNLX0NBQ0hFICAgICAgICAgICAgICAgID0gMSA8PCAxLAotICAgIFdFQktJVF9XRUJTSVRF
X0RBVEFfT0ZGTElORV9BUFBMSUNBVElPTl9DQUNIRSA9IDEgPDwgMiwKLSAgICBXRUJLSVRfV0VC
U0lURV9EQVRBX1NFU1NJT05fU1RPUkFHRSAgICAgICAgICAgPSAxIDw8IDMsCi0gICAgV0VCS0lU
X1dFQlNJVEVfREFUQV9MT0NBTF9TVE9SQUdFICAgICAgICAgICAgID0gMSA8PCA0LAotICAgIFdF
QktJVF9XRUJTSVRFX0RBVEFfV0VCU1FMX0RBVEFCQVNFUyAgICAgICAgICA9IDEgPDwgNSwKLSAg
ICBXRUJLSVRfV0VCU0lURV9EQVRBX0lOREVYRUREQl9EQVRBQkFTRVMgICAgICAgPSAxIDw8IDYs
Ci0gICAgV0VCS0lUX1dFQlNJVEVfREFUQV9QTFVHSU5fREFUQSAgICAgICAgICAgICAgID0gMSA8
PCA3LAotICAgIFdFQktJVF9XRUJTSVRFX0RBVEFfQ09PS0lFUyAgICAgICAgICAgICAgICAgICA9
IDEgPDwgOCwKLSAgICBXRUJLSVRfV0VCU0lURV9EQVRBX0RFVklDRV9JRF9IQVNIX1NBTFQgICAg
ICAgPSAxIDw8IDksCi0gICAgV0VCS0lUX1dFQlNJVEVfREFUQV9IU1RTX0NBQ0hFICAgICAgICAg
ICAgICAgID0gMSA8PCAxMCwKLSAgICBXRUJLSVRfV0VCU0lURV9EQVRBX0lUUCAgICAgICAgICAg
ICAgICAgICAgICAgPSAxIDw8IDExLAotICAgIFdFQktJVF9XRUJTSVRFX0RBVEFfQUxMICAgICAg
ICAgICAgICAgICAgICAgICA9ICgxIDw8IDEyKSAtIDEKKyAgICBXRUJLSVRfV0VCU0lURV9EQVRB
X01FTU9SWV9DQUNIRSAgICAgICAgICAgICAgICAgPSAxIDw8IDAsCisgICAgV0VCS0lUX1dFQlNJ
VEVfREFUQV9ESVNLX0NBQ0hFICAgICAgICAgICAgICAgICAgID0gMSA8PCAxLAorICAgIFdFQktJ
VF9XRUJTSVRFX0RBVEFfT0ZGTElORV9BUFBMSUNBVElPTl9DQUNIRSAgICA9IDEgPDwgMiwKKyAg
ICBXRUJLSVRfV0VCU0lURV9EQVRBX1NFU1NJT05fU1RPUkFHRSAgICAgICAgICAgICAgPSAxIDw8
IDMsCisgICAgV0VCS0lUX1dFQlNJVEVfREFUQV9MT0NBTF9TVE9SQUdFICAgICAgICAgICAgICAg
ID0gMSA8PCA0LAorICAgIFdFQktJVF9XRUJTSVRFX0RBVEFfV0VCU1FMX0RBVEFCQVNFUyAgICAg
ICAgICAgICA9IDEgPDwgNSwKKyAgICBXRUJLSVRfV0VCU0lURV9EQVRBX0lOREVYRUREQl9EQVRB
QkFTRVMgICAgICAgICAgPSAxIDw8IDYsCisgICAgV0VCS0lUX1dFQlNJVEVfREFUQV9QTFVHSU5f
REFUQSAgICAgICAgICAgICAgICAgID0gMSA8PCA3LAorICAgIFdFQktJVF9XRUJTSVRFX0RBVEFf
Q09PS0lFUyAgICAgICAgICAgICAgICAgICAgICA9IDEgPDwgOCwKKyAgICBXRUJLSVRfV0VCU0lU
RV9EQVRBX0RFVklDRV9JRF9IQVNIX1NBTFQgICAgICAgICAgPSAxIDw8IDksCisgICAgV0VCS0lU
X1dFQlNJVEVfREFUQV9IU1RTX0NBQ0hFICAgICAgICAgICAgICAgICAgID0gMSA8PCAxMCwKKyAg
ICBXRUJLSVRfV0VCU0lURV9EQVRBX0lUUCAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxIDw8
IDExLAorICAgIFdFQktJVF9XRUJTSVRFX0RBVEFfU0VSVklDRV9XT1JLRVJfUkVHSVNUUkFUSU9O
UyA9IDEgPDwgMTIsCisgICAgV0VCS0lUX1dFQlNJVEVfREFUQV9BTEwgICAgICAgICAgICAgICAg
ICAgICAgICAgID0gKDEgPDwgMTMpIC0gMQogfSBXZWJLaXRXZWJzaXRlRGF0YVR5cGVzOwogCiBX
RUJLSVRfQVBJIEdUeXBlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
d3BlL1dlYktpdFdlYnNpdGVEYXRhTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL3dwZS9XZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXIuaAppbmRleCA0YTZjZTRiNzM2YTAuLjcw
ZDE1YTZmODI2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9X
ZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvd3BlL1dlYktpdFdlYnNpdGVEYXRhTWFuYWdlci5oCkBAIC05Niw2ICs5Niw5IEBAIHdlYmtp
dF93ZWJzaXRlX2RhdGFfbWFuYWdlcl9nZXRfaHN0c19jYWNoZV9kaXJlY3RvcnkgICAgICAgICAg
ICAgICAgICAoV2ViS2l0V2ViCiBXRUJLSVRfQVBJIGNvbnN0IGdjaGFyICoKIHdlYmtpdF93ZWJz
aXRlX2RhdGFfbWFuYWdlcl9nZXRfaXRwX2RpcmVjdG9yeSAgICAgICAgICAgICAgICAgICAgICAg
ICAoV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyICptYW5hZ2VyKTsKIAorV0VCS0lUX0FQSSBjb25z
dCBnY2hhciAqCit3ZWJraXRfd2Vic2l0ZV9kYXRhX21hbmFnZXJfZ2V0X3NlcnZpY2Vfd29ya2Vy
X3JlZ2lzdHJhdGlvbnNfZGlyZWN0b3J5KFdlYktpdFdlYnNpdGVEYXRhTWFuYWdlciAqbWFuYWdl
cik7CisKIFdFQktJVF9BUEkgV2ViS2l0Q29va2llTWFuYWdlciAqCiB3ZWJraXRfd2Vic2l0ZV9k
YXRhX21hbmFnZXJfZ2V0X2Nvb2tpZV9tYW5hZ2VyICAgICAgICAgICAgICAgICAgICAgICAgKFdl
YktpdFdlYnNpdGVEYXRhTWFuYWdlciAqbWFuYWdlcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUtMS4wLXNlY3Rpb25zLnR4dCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUtMS4wLXNlY3Rpb25zLnR4dAppbmRl
eCAxZGQzNWM3NWU5MzMuLmU5ODE3N2FhZGNlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL3dwZS9kb2NzL3dwZS0xLjAtc2VjdGlvbnMudHh0CisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUtMS4wLXNlY3Rpb25zLnR4dApAQCAtMTM5
Myw2ICsxMzkzLDcgQEAgd2Via2l0X3dlYnNpdGVfZGF0YV9tYW5hZ2VyX2dldF9pbmRleGVkZGJf
ZGlyZWN0b3J5CiB3ZWJraXRfd2Vic2l0ZV9kYXRhX21hbmFnZXJfZ2V0X3dlYnNxbF9kaXJlY3Rv
cnkKIHdlYmtpdF93ZWJzaXRlX2RhdGFfbWFuYWdlcl9nZXRfaHN0c19jYWNoZV9kaXJlY3RvcnkK
IHdlYmtpdF93ZWJzaXRlX2RhdGFfbWFuYWdlcl9nZXRfaXRwX2RpcmVjdG9yeQord2Via2l0X3dl
YnNpdGVfZGF0YV9tYW5hZ2VyX2dldF9zZXJ2aWNlX3dvcmtlcl9yZWdpc3RyYXRpb25zX2RpcmVj
dG9yeQogd2Via2l0X3dlYnNpdGVfZGF0YV9tYW5hZ2VyX2dldF9jb29raWVfbWFuYWdlcgogd2Vi
a2l0X3dlYnNpdGVfZGF0YV9tYW5hZ2VyX3NldF9pdHBfZW5hYmxlZAogd2Via2l0X3dlYnNpdGVf
ZGF0YV9tYW5hZ2VyX2dldF9pdHBfZW5hYmxlZApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9n
IGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDQ0ZDgxYWJhNWMyNi4uMDVkOWQ5MzVlYzQ2IDEwMDY0
NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjQgQEAKKzIwMjAtMDYtMTcgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEu
Y29tPgorCisgICAgICAgIFtHVEtdW1dQRV0gQWRkIEFQSSB0byBjb25maWd1cmUgYW5kIGhhbmRs
ZSBzZXJ2aWNlIHdvcmtlciByZWdpc3RyYXRpb25zIHRvIFdlYktpdFdlYnNpdGVEYXRhTWFuYWdl
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzMjkw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSGFuZGxl
IG5ldyB3ZWJzaXRlIGRhdGEgaW4gTWluaUJyb3dzZXIgYW5kIGFkZCBhIHVuaXQgdGVzdC4KKwor
ICAgICAgICAqIE1pbmlCcm93c2VyL2d0ay9tYWluLmM6CisgICAgICAgIChnb3RXZWJzaXRlRGF0
YUNhbGxiYWNrKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVz
dFdlYnNpdGVEYXRhLmNwcDoKKyAgICAgICAgKHNlcnZlckNhbGxiYWNrKToKKyAgICAgICAgKHRl
c3RXZWJzaXRlRGF0YUNvbmZpZ3VyYXRpb24pOgorICAgICAgICAodGVzdFdlYnNpdGVEYXRhRXBo
ZW1lcmFsKToKKyAgICAgICAgKHRlc3RXZWJzaXRlRGF0YUlUUCk6CisgICAgICAgICh0ZXN0V2Vi
c2l0ZURhdGFTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9ucyk6CisgICAgICAgIChiZWZvcmVBbGwp
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvZ2xpYi9XZWJLaXRHTGliL1Rlc3RNYWluLmg6Cisg
ICAgICAgIChUZXN0OjpUZXN0KToKKwogMjAyMC0wNi0xNiAgQ2FybG9zIEdhcmNpYSBDYW1wb3Mg
IDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS11bV1BFXSBBZGQgQVBJIHRvIGNv
bmZpZ3VyZSBhbmQgZW5hYmxlIHJlc291cmNlIGxvYWQgc3RhdGlzdGljcwpkaWZmIC0tZ2l0IGEv
VG9vbHMvTWluaUJyb3dzZXIvZ3RrL21haW4uYyBiL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9tYWlu
LmMKaW5kZXggZGNlODUwMTBlMTlmLi5lYTViMzBhMjM5YjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01p
bmlCcm93c2VyL2d0ay9tYWluLmMKKysrIGIvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL21haW4uYwpA
QCAtNDI1LDYgKzQyNSw4IEBAIHN0YXRpYyB2b2lkIGdvdFdlYnNpdGVEYXRhQ2FsbGJhY2soV2Vi
S2l0V2Vic2l0ZURhdGFNYW5hZ2VyICptYW5hZ2VyLCBHQXN5bmNSZXN1CiAgICAgYWJvdXREYXRh
RmlsbFRhYmxlKHJlc3VsdCwgZGF0YVJlcXVlc3QsIGRhdGFMaXN0LCAiT2ZmbGluZSBXZWIgQXBw
bGljYXRpb25zIENhY2hlIiwgV0VCS0lUX1dFQlNJVEVfREFUQV9PRkZMSU5FX0FQUExJQ0FUSU9O
X0NBQ0hFLCB3ZWJraXRfd2Vic2l0ZV9kYXRhX21hbmFnZXJfZ2V0X29mZmxpbmVfYXBwbGljYXRp
b25fY2FjaGVfZGlyZWN0b3J5KG1hbmFnZXIpLCBwYWdlSUQpOwogICAgIGFib3V0RGF0YUZpbGxU
YWJsZShyZXN1bHQsIGRhdGFSZXF1ZXN0LCBkYXRhTGlzdCwgIkhTVFMgQ2FjaGUiLCBXRUJLSVRf
V0VCU0lURV9EQVRBX0hTVFNfQ0FDSEUsIHdlYmtpdF93ZWJzaXRlX2RhdGFfbWFuYWdlcl9nZXRf
aHN0c19jYWNoZV9kaXJlY3RvcnkobWFuYWdlciksIHBhZ2VJRCk7CiAgICAgYWJvdXREYXRhRmls
bFRhYmxlKHJlc3VsdCwgZGF0YVJlcXVlc3QsIGRhdGFMaXN0LCAiSVRQIGRhdGEiLCBXRUJLSVRf
V0VCU0lURV9EQVRBX0lUUCwgd2Via2l0X3dlYnNpdGVfZGF0YV9tYW5hZ2VyX2dldF9pdHBfZGly
ZWN0b3J5KG1hbmFnZXIpLCBwYWdlSUQpOworICAgIGFib3V0RGF0YUZpbGxUYWJsZShyZXN1bHQs
IGRhdGFSZXF1ZXN0LCBkYXRhTGlzdCwgIlNlcnZpY2UgV29ya2VyIFJlZ2lzdHJhdGF0aW9ucyIs
IFdFQktJVF9XRUJTSVRFX0RBVEFfU0VSVklDRV9XT1JLRVJfUkVHSVNUUkFUSU9OUywKKyAgICAg
ICAgd2Via2l0X3dlYnNpdGVfZGF0YV9tYW5hZ2VyX2dldF9zZXJ2aWNlX3dvcmtlcl9yZWdpc3Ry
YXRpb25zX2RpcmVjdG9yeShtYW5hZ2VyKSwgcGFnZUlEKTsKIAogICAgIHJlc3VsdCA9IGdfc3Ry
aW5nX2FwcGVuZChyZXN1bHQsICI8L2JvZHk+PC9odG1sPiIpOwogICAgIGdzaXplIHN0cmVhbUxl
bmd0aCA9IHJlc3VsdC0+bGVuOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRHTGliL1Rlc3RXZWJzaXRlRGF0YS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdEdMaWIvVGVzdFdlYnNpdGVEYXRhLmNwcAppbmRleCA1YjQ0MDJiZmE2OWUuLjZi
N2JjZDlkYmM3MyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRH
TGliL1Rlc3RXZWJzaXRlRGF0YS5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRHTGliL1Rlc3RXZWJzaXRlRGF0YS5jcHAKQEAgLTc0LDYgKzc0LDIwIEBAIHN0YXRpYyB2
b2lkIHNlcnZlckNhbGxiYWNrKFNvdXBTZXJ2ZXIqIHNlcnZlciwgU291cE1lc3NhZ2UqIG1lc3Nh
Z2UsIGNvbnN0IGNoYXIqCiAgICAgICAgIHNvdXBfbWVzc2FnZV9ib2R5X2FwcGVuZChtZXNzYWdl
LT5yZXNwb25zZV9ib2R5LCBTT1VQX01FTU9SWV9TVEFUSUMsIGVudW1lcmF0ZURldmljZXNIVE1M
LCBzdHJsZW4oZW51bWVyYXRlRGV2aWNlc0hUTUwpKTsKICAgICAgICAgc291cF9tZXNzYWdlX2Jv
ZHlfY29tcGxldGUobWVzc2FnZS0+cmVzcG9uc2VfYm9keSk7CiAgICAgICAgIHNvdXBfbWVzc2Fn
ZV9zZXRfc3RhdHVzKG1lc3NhZ2UsIFNPVVBfU1RBVFVTX09LKTsKKyAgICB9IGVsc2UgaWYgKGdf
c3RyX2VxdWFsKHBhdGgsICIvc2VydmljZS9yZWdpc3Rlci5odG1sIikpIHsKKyAgICAgICAgc3Rh
dGljIGNvbnN0IGNoYXIqIHN3UmVnaXN0ZXJIVE1MID0gIjxodG1sPjxib2R5PjxzY3JpcHQgc3Jj
PVwiL3NlcnZpY2UvcmVnaXN0ZXIuanNcIj48L3NjcmlwdD48L2JvZHk+PC9odG1sPiI7CisgICAg
ICAgIHNvdXBfbWVzc2FnZV9ib2R5X2FwcGVuZChtZXNzYWdlLT5yZXNwb25zZV9ib2R5LCBTT1VQ
X01FTU9SWV9TVEFUSUMsIHN3UmVnaXN0ZXJIVE1MLCBzdHJsZW4oc3dSZWdpc3RlckhUTUwpKTsK
KyAgICAgICAgc291cF9tZXNzYWdlX2JvZHlfY29tcGxldGUobWVzc2FnZS0+cmVzcG9uc2VfYm9k
eSk7CisgICAgICAgIHNvdXBfbWVzc2FnZV9zZXRfc3RhdHVzKG1lc3NhZ2UsIFNPVVBfU1RBVFVT
X09LKTsKKyAgICB9IGVsc2UgaWYgKGdfc3RyX2VxdWFsKHBhdGgsICIvc2VydmljZS9yZWdpc3Rl
ci5qcyIpKSB7CisgICAgICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzd1JlZ2lzdGVySlMgPQorICAg
ICAgICAgICAgImFzeW5jIGZ1bmN0aW9uIHRlc3QoKSB7IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNl
V29ya2VyLnJlZ2lzdGVyKFwiL3NlcnZpY2UvZW1wdHktd29ya2VyLmpzXCIpOyB9IHRlc3QoKTsi
OworICAgICAgICBzb3VwX21lc3NhZ2VfYm9keV9hcHBlbmQobWVzc2FnZS0+cmVzcG9uc2VfYm9k
eSwgU09VUF9NRU1PUllfU1RBVElDLCBzd1JlZ2lzdGVySlMsIHN0cmxlbihzd1JlZ2lzdGVySlMp
KTsKKyAgICAgICAgc291cF9tZXNzYWdlX2JvZHlfY29tcGxldGUobWVzc2FnZS0+cmVzcG9uc2Vf
Ym9keSk7CisgICAgICAgIHNvdXBfbWVzc2FnZV9zZXRfc3RhdHVzKG1lc3NhZ2UsIFNPVVBfU1RB
VFVTX09LKTsKKyAgICB9IGVsc2UgaWYgKGdfc3RyX2VxdWFsKHBhdGgsICIvc2VydmljZS9lbXB0
eS13b3JrZXIuanMiKSkgeworICAgICAgICBzb3VwX21lc3NhZ2VfYm9keV9jb21wbGV0ZShtZXNz
YWdlLT5yZXNwb25zZV9ib2R5KTsKKyAgICAgICAgc291cF9tZXNzYWdlX3NldF9zdGF0dXMobWVz
c2FnZSwgU09VUF9TVEFUVVNfT0spOwogICAgIH0gZWxzZQogICAgICAgICBzb3VwX21lc3NhZ2Vf
c2V0X3N0YXR1cyhtZXNzYWdlLCBTT1VQX1NUQVRVU19OT1RfRk9VTkQpOwogfQpAQCAtMTc2LDYg
KzE5MCwxMCBAQCBzdGF0aWMgdm9pZCB0ZXN0V2Vic2l0ZURhdGFDb25maWd1cmF0aW9uKFdlYnNp
dGVEYXRhVGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKICAgICBHVW5pcXVlUHRyPGNoYXI+IGl0
cERpcmVjdG9yeShnX2J1aWxkX2ZpbGVuYW1lKFRlc3Q6OmRhdGFEaXJlY3RvcnkoKSwgIml0cCIs
IG51bGxwdHIpKTsKICAgICBnX2Fzc2VydF9jbXBzdHIoaXRwRGlyZWN0b3J5LmdldCgpLCA9PSwg
d2Via2l0X3dlYnNpdGVfZGF0YV9tYW5hZ2VyX2dldF9pdHBfZGlyZWN0b3J5KHRlc3QtPm1fbWFu
YWdlcikpOwogCisgICAgR1VuaXF1ZVB0cjxjaGFyPiBzd1JlZ2lzdHJhdGlvbnNEaXJlY3Rvcnko
Z19idWlsZF9maWxlbmFtZShUZXN0OjpkYXRhRGlyZWN0b3J5KCksICJzZXJ2aWNld29ya2VycyIs
IG51bGxwdHIpKTsKKyAgICBnX2Fzc2VydF9jbXBzdHIoc3dSZWdpc3RyYXRpb25zRGlyZWN0b3J5
LmdldCgpLCA9PSwgd2Via2l0X3dlYnNpdGVfZGF0YV9tYW5hZ2VyX2dldF9zZXJ2aWNlX3dvcmtl
cl9yZWdpc3RyYXRpb25zX2RpcmVjdG9yeSh0ZXN0LT5tX21hbmFnZXIpKTsKKyAgICBnX2Fzc2Vy
dF90cnVlKGdfZmlsZV90ZXN0KHN3UmVnaXN0cmF0aW9uc0RpcmVjdG9yeS5nZXQoKSwgR19GSUxF
X1RFU1RfSVNfRElSKSk7CisKICAgICAvLyBDbGVhciBhbGwgcGVyc2lzdGVudCBjYWNoZXMsIHNp
bmNlIHRoZSBkYXRhIGRpciBpcyBjb21tb24gdG8gYWxsIHRlc3QgY2FzZXMuIE5vdGU6IG5vdCBj
bGVhbmluZyB0aGUgSFNUUyBjYWNoZSBoZXJlIGFzIGl0cyBkYXRhCiAgICAgLy8gaXMgbmVlZGVk
IGZvciB0aGUgSFNUUyB0ZXN0cywgd2hlcmUgZGF0YSBjbGVhbmluZyB3aWxsIGJlIHRlc3RlZC4K
ICAgICBzdGF0aWMgY29uc3QgV2ViS2l0V2Vic2l0ZURhdGFUeXBlcyBwZXJzaXN0ZW50Q2FjaGVz
ID0gc3RhdGljX2Nhc3Q8V2ViS2l0V2Vic2l0ZURhdGFUeXBlcz4oV0VCS0lUX1dFQlNJVEVfREFU
QV9ESVNLX0NBQ0hFIHwgV0VCS0lUX1dFQlNJVEVfREFUQV9MT0NBTF9TVE9SQUdFCkBAIC0xOTIs
NiArMjEwLDggQEAgc3RhdGljIHZvaWQgdGVzdFdlYnNpdGVEYXRhQ29uZmlndXJhdGlvbihXZWJz
aXRlRGF0YVRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiAgICAgZ19hc3NlcnRfY21wc3RyKHdl
YmtpdF93ZWJzaXRlX2RhdGFfbWFuYWdlcl9nZXRfZGlza19jYWNoZV9kaXJlY3RvcnkodGVzdC0+
bV9tYW5hZ2VyKSwgIT0sIHdlYmtpdF93ZWJzaXRlX2RhdGFfbWFuYWdlcl9nZXRfZGlza19jYWNo
ZV9kaXJlY3RvcnkoZGVmYXVsdE1hbmFnZXIpKTsKICAgICBnX2Fzc2VydF9jbXBzdHIod2Via2l0
X3dlYnNpdGVfZGF0YV9tYW5hZ2VyX2dldF9vZmZsaW5lX2FwcGxpY2F0aW9uX2NhY2hlX2RpcmVj
dG9yeSh0ZXN0LT5tX21hbmFnZXIpLCAhPSwgd2Via2l0X3dlYnNpdGVfZGF0YV9tYW5hZ2VyX2dl
dF9vZmZsaW5lX2FwcGxpY2F0aW9uX2NhY2hlX2RpcmVjdG9yeShkZWZhdWx0TWFuYWdlcikpOwog
ICAgIGdfYXNzZXJ0X2NtcHN0cih3ZWJraXRfd2Vic2l0ZV9kYXRhX21hbmFnZXJfZ2V0X2hzdHNf
Y2FjaGVfZGlyZWN0b3J5KHRlc3QtPm1fbWFuYWdlciksICE9LCB3ZWJraXRfd2Vic2l0ZV9kYXRh
X21hbmFnZXJfZ2V0X2hzdHNfY2FjaGVfZGlyZWN0b3J5KGRlZmF1bHRNYW5hZ2VyKSk7CisgICAg
Z19hc3NlcnRfY21wc3RyKHdlYmtpdF93ZWJzaXRlX2RhdGFfbWFuYWdlcl9nZXRfaXRwX2RpcmVj
dG9yeSh0ZXN0LT5tX21hbmFnZXIpLCAhPSwgd2Via2l0X3dlYnNpdGVfZGF0YV9tYW5hZ2VyX2dl
dF9pdHBfZGlyZWN0b3J5KGRlZmF1bHRNYW5hZ2VyKSk7CisgICAgZ19hc3NlcnRfY21wc3RyKHdl
YmtpdF93ZWJzaXRlX2RhdGFfbWFuYWdlcl9nZXRfc2VydmljZV93b3JrZXJfcmVnaXN0cmF0aW9u
c19kaXJlY3RvcnkodGVzdC0+bV9tYW5hZ2VyKSwgIT0sIHdlYmtpdF93ZWJzaXRlX2RhdGFfbWFu
YWdlcl9nZXRfc2VydmljZV93b3JrZXJfcmVnaXN0cmF0aW9uc19kaXJlY3RvcnkoZGVmYXVsdE1h
bmFnZXIpKTsKIAogICAgIC8vIFVzaW5nIFRlc3Q6OmRhdGFEaXJlY3RvcnkoKSB3ZSBnZXQgdGhl
IGRlZmF1bHQgY29uZmlndXJhdGlvbiBidXQgZm9yIGEgZGlmZmVycmVudCBwcmVmaXguCiAgICAg
R1JlZlB0cjxXZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXI+IGJhc2VEYXRhTWFuYWdlciA9IGFkb3B0
R1JlZih3ZWJraXRfd2Vic2l0ZV9kYXRhX21hbmFnZXJfbmV3KCJiYXNlLWRhdGEtZGlyZWN0b3J5
IiwgVGVzdDo6ZGF0YURpcmVjdG9yeSgpLCAiYmFzZS1jYWNoZS1kaXJlY3RvcnkiLCBUZXN0Ojpk
YXRhRGlyZWN0b3J5KCksIG51bGxwdHIpKTsKQEAgLTIwOCw2ICsyMjgsOCBAQCBzdGF0aWMgdm9p
ZCB0ZXN0V2Vic2l0ZURhdGFDb25maWd1cmF0aW9uKFdlYnNpdGVEYXRhVGVzdCogdGVzdCwgZ2Nv
bnN0cG9pbnRlcikKIAogICAgIGdfYXNzZXJ0X2NtcHN0cih3ZWJraXRfd2Vic2l0ZV9kYXRhX21h
bmFnZXJfZ2V0X2l0cF9kaXJlY3RvcnkoYmFzZURhdGFNYW5hZ2VyLmdldCgpKSwgPT0sIGl0cERp
cmVjdG9yeS5nZXQoKSk7CiAKKyAgICBnX2Fzc2VydF9jbXBzdHIod2Via2l0X3dlYnNpdGVfZGF0
YV9tYW5hZ2VyX2dldF9zZXJ2aWNlX3dvcmtlcl9yZWdpc3RyYXRpb25zX2RpcmVjdG9yeShiYXNl
RGF0YU1hbmFnZXIuZ2V0KCkpLCA9PSwgc3dSZWdpc3RyYXRpb25zRGlyZWN0b3J5LmdldCgpKTsK
KwogICAgIGdfYXNzZXJ0X2NtcHN0cih3ZWJraXRfd2Vic2l0ZV9kYXRhX21hbmFnZXJfZ2V0X2Rp
c2tfY2FjaGVfZGlyZWN0b3J5KGJhc2VEYXRhTWFuYWdlci5nZXQoKSksID09LCBUZXN0OjpkYXRh
RGlyZWN0b3J5KCkpOwogCiAgICAgLy8gQW55IHNwZWNpZmljIGNvbmZpZ3VyYXRpb24gcHJvdmlk
ZWQgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIGJhc2UgZGlycy4KQEAgLTIyMCw2ICsyNDIsNyBAQCBz
dGF0aWMgdm9pZCB0ZXN0V2Vic2l0ZURhdGFDb25maWd1cmF0aW9uKFdlYnNpdGVEYXRhVGVzdCog
dGVzdCwgZ2NvbnN0cG9pbnRlcikKICAgICAvLyBUaGUgcmVzdWx0IHNob3VsZCBiZSB0aGUgc2Ft
ZSBhcyBwcmV2aW91cyBtYW5hZ2VyLgogICAgIGdfYXNzZXJ0X2NtcHN0cih3ZWJraXRfd2Vic2l0
ZV9kYXRhX21hbmFnZXJfZ2V0X2xvY2FsX3N0b3JhZ2VfZGlyZWN0b3J5KGJhc2VEYXRhTWFuYWdl
ci5nZXQoKSksID09LCBsb2NhbFN0b3JhZ2VEaXJlY3RvcnkuZ2V0KCkpOwogICAgIGdfYXNzZXJ0
X2NtcHN0cih3ZWJraXRfd2Vic2l0ZV9kYXRhX21hbmFnZXJfZ2V0X2l0cF9kaXJlY3RvcnkoYmFz
ZURhdGFNYW5hZ2VyLmdldCgpKSwgPT0sIGl0cERpcmVjdG9yeS5nZXQoKSk7CisgICAgZ19hc3Nl
cnRfY21wc3RyKHdlYmtpdF93ZWJzaXRlX2RhdGFfbWFuYWdlcl9nZXRfc2VydmljZV93b3JrZXJf
cmVnaXN0cmF0aW9uc19kaXJlY3RvcnkoYmFzZURhdGFNYW5hZ2VyLmdldCgpKSwgPT0sIHN3UmVn
aXN0cmF0aW9uc0RpcmVjdG9yeS5nZXQoKSk7CiAgICAgZ19hc3NlcnRfY21wc3RyKHdlYmtpdF93
ZWJzaXRlX2RhdGFfbWFuYWdlcl9nZXRfZGlza19jYWNoZV9kaXJlY3RvcnkoYmFzZURhdGFNYW5h
Z2VyLmdldCgpKSwgPT0sIFRlc3Q6OmRhdGFEaXJlY3RvcnkoKSk7CiB9CiAKQEAgLTI0Myw2ICsy
NjYsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0V2Vic2l0ZURhdGFFcGhlbWVyYWwoV2ViVmlld1Rlc3Qq
IHRlc3QsIGdjb25zdHBvaW50ZXIpCiAgICAgZ19hc3NlcnRfbnVsbCh3ZWJraXRfd2Vic2l0ZV9k
YXRhX21hbmFnZXJfZ2V0X2luZGV4ZWRkYl9kaXJlY3RvcnkobWFuYWdlci5nZXQoKSkpOwogICAg
IGdfYXNzZXJ0X251bGwod2Via2l0X3dlYnNpdGVfZGF0YV9tYW5hZ2VyX2dldF9oc3RzX2NhY2hl
X2RpcmVjdG9yeShtYW5hZ2VyLmdldCgpKSk7CiAgICAgZ19hc3NlcnRfbnVsbCh3ZWJraXRfd2Vi
c2l0ZV9kYXRhX21hbmFnZXJfZ2V0X2l0cF9kaXJlY3RvcnkobWFuYWdlci5nZXQoKSkpOworICAg
IGdfYXNzZXJ0X251bGwod2Via2l0X3dlYnNpdGVfZGF0YV9tYW5hZ2VyX2dldF9zZXJ2aWNlX3dv
cmtlcl9yZWdpc3RyYXRpb25zX2RpcmVjdG9yeShtYW5hZ2VyLmdldCgpKSk7CiAKICAgICAvLyBD
b25maWd1cmF0aW9uIGlzIGlnbm9yZWQgd2hlbiBpcy1lcGhlbWVyYWwgaXMgdXNlZC4KICAgICBt
YW5hZ2VyID0gYWRvcHRHUmVmKFdFQktJVF9XRUJTSVRFX0RBVEFfTUFOQUdFUihnX29iamVjdF9u
ZXcoV0VCS0lUX1RZUEVfV0VCU0lURV9EQVRBX01BTkFHRVIsICJiYXNlLWRhdGEtZGlyZWN0b3J5
IiwgVGVzdDo6ZGF0YURpcmVjdG9yeSgpLCAiaXMtZXBoZW1lcmFsIiwgVFJVRSwgbnVsbHB0cikp
KTsKQEAgLTY3Myw2ICs2OTcsMzYgQEAgc3RhdGljIHZvaWQgdGVzdFdlYnNpdGVEYXRhSVRQKFdl
YnNpdGVEYXRhVGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKICAgICBnX3JtZGlyKGl0cERpcmVj
dG9yeSk7CiB9CiAKK3N0YXRpYyB2b2lkIHRlc3RXZWJzaXRlRGF0YVNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25zKFdlYnNpdGVEYXRhVGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKK3sKKyAgICBH
TGlzdCogZGF0YUxpc3QgPSB0ZXN0LT5mZXRjaChXRUJLSVRfV0VCU0lURV9EQVRBX1NFUlZJQ0Vf
V09SS0VSX1JFR0lTVFJBVElPTlMpOworICAgIGdfYXNzZXJ0X251bGwoZGF0YUxpc3QpOworCisg
ICAgdGVzdC0+bG9hZFVSSShrU2VydmVyLT5nZXRVUklGb3JQYXRoKCIvc2VydmljZS9yZWdpc3Rl
ci5odG1sIikuZGF0YSgpKTsKKyAgICB0ZXN0LT53YWl0VW50aWxMb2FkRmluaXNoZWQoKTsKKwor
ICAgIGRhdGFMaXN0ID0gdGVzdC0+ZmV0Y2goV0VCS0lUX1dFQlNJVEVfREFUQV9TRVJWSUNFX1dP
UktFUl9SRUdJU1RSQVRJT05TKTsKKyAgICBnX2Fzc2VydF9jbXB1aW50KGdfbGlzdF9sZW5ndGgo
ZGF0YUxpc3QpLCA9PSwgMSk7CisgICAgZ19hc3NlcnRfbm9ubnVsbChkYXRhTGlzdCk7CisgICAg
YXV0byogZGF0YSA9IHN0YXRpY19jYXN0PFdlYktpdFdlYnNpdGVEYXRhKj4oZGF0YUxpc3QtPmRh
dGEpOworICAgIGdfYXNzZXJ0X25vbm51bGwoZGF0YSk7CisgICAgV2ViS2l0U2VjdXJpdHlPcmln
aW4qIG9yaWdpbiA9IHdlYmtpdF9zZWN1cml0eV9vcmlnaW5fbmV3X2Zvcl91cmkoa1NlcnZlci0+
Z2V0VVJJRm9yUGF0aCgiL3NlcnZpY2UvcmVnaXN0ZXIuaHRtbCIpLmRhdGEoKSk7CisgICAgZ19h
c3NlcnRfY21wc3RyKHdlYmtpdF93ZWJzaXRlX2RhdGFfZ2V0X25hbWUoZGF0YSksID09LCB3ZWJr
aXRfc2VjdXJpdHlfb3JpZ2luX2dldF9ob3N0KG9yaWdpbikpOworICAgIHdlYmtpdF9zZWN1cml0
eV9vcmlnaW5fdW5yZWYob3JpZ2luKTsKKworICAgIC8vIFJlbW92ZSB0aGUgcmVnaXN0cmF0aW9u
LgorICAgIEdMaXN0IHJlbW92ZUxpc3QgPSB7IGRhdGEsIG51bGxwdHIsIG51bGxwdHIgfTsKKyAg
ICB0ZXN0LT5yZW1vdmUoV0VCS0lUX1dFQlNJVEVfREFUQV9TRVJWSUNFX1dPUktFUl9SRUdJU1RS
QVRJT05TLCAmcmVtb3ZlTGlzdCk7CisgICAgZGF0YUxpc3QgPSB0ZXN0LT5mZXRjaChXRUJLSVRf
V0VCU0lURV9EQVRBX1NFUlZJQ0VfV09SS0VSX1JFR0lTVFJBVElPTlMpOworICAgIGdfYXNzZXJ0
X251bGwoZGF0YUxpc3QpOworCisgICAgLy8gQ2xlYXIgYWxsLgorICAgIHN0YXRpYyBjb25zdCBX
ZWJLaXRXZWJzaXRlRGF0YVR5cGVzIGNhY2hlQW5kUmVnaXN0cmF0aW9ucyA9IHN0YXRpY19jYXN0
PFdlYktpdFdlYnNpdGVEYXRhVHlwZXM+KFdFQktJVF9XRUJTSVRFX0RBVEFfU0VSVklDRV9XT1JL
RVJfUkVHSVNUUkFUSU9OUyB8IFdFQktJVF9XRUJTSVRFX0RBVEFfTUVNT1JZX0NBQ0hFIHwgV0VC
S0lUX1dFQlNJVEVfREFUQV9ESVNLX0NBQ0hFKTsKKyAgICB0ZXN0LT5jbGVhcihjYWNoZUFuZFJl
Z2lzdHJhdGlvbnMsIDApOworICAgIGRhdGFMaXN0ID0gdGVzdC0+ZmV0Y2goY2FjaGVBbmRSZWdp
c3RyYXRpb25zKTsKKyAgICBnX2Fzc2VydF9udWxsKGRhdGFMaXN0KTsKK30KKwogdm9pZCBiZWZv
cmVBbGwoKQogewogICAgIGtTZXJ2ZXIgPSBuZXcgV2ViS2l0VGVzdFNlcnZlcigpOwpAQCAtNjk0
LDYgKzc0OCw3IEBAIHZvaWQgYmVmb3JlQWxsKCkKICNlbmRpZgogICAgIFdlYnNpdGVEYXRhVGVz
dDo6YWRkKCJXZWJLaXRXZWJzaXRlRGF0YSIsICJkZXZpY2VpZGhhc2hzYWx0IiwgdGVzdFdlYnNp
dGVEYXRhRGV2aWNlSWRIYXNoU2FsdCk7CiAgICAgV2Vic2l0ZURhdGFUZXN0OjphZGQoIldlYktp
dFdlYnNpdGVEYXRhIiwgIml0cCIsIHRlc3RXZWJzaXRlRGF0YUlUUCk7CisgICAgV2Vic2l0ZURh
dGFUZXN0OjphZGQoIldlYktpdFdlYnNpdGVEYXRhIiwgInNlcnZpY2Utd29ya2VyLXJlZ2lzdHJh
dGlvbnMiLCB0ZXN0V2Vic2l0ZURhdGFTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9ucyk7CiB9CiAK
IHZvaWQgYWZ0ZXJBbGwoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9nbGliL1dl
YktpdEdMaWIvVGVzdE1haW4uaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xpYi9XZWJLaXRHTGli
L1Rlc3RNYWluLmgKaW5kZXggZWU0ZjcxM2VlZThkLi5kYzI0Y2YwZmExYTYgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xpYi9XZWJLaXRHTGliL1Rlc3RNYWluLmgKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9nbGliL1dlYktpdEdMaWIvVGVzdE1haW4uaApAQCAtMTI1LDExICsx
MjUsMTIgQEAgcHVibGljOgogICAgICAgICBHVW5pcXVlUHRyPGNoYXI+IHdlYlNRTERpcmVjdG9y
eShnX2J1aWxkX2ZpbGVuYW1lKGRhdGFEaXJlY3RvcnkoKSwgIndlYnNxbCIsIG51bGxwdHIpKTsK
ICAgICAgICAgR1VuaXF1ZVB0cjxjaGFyPiBoc3RzRGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5hbWUo
ZGF0YURpcmVjdG9yeSgpLCAiaHN0cyIsIG51bGxwdHIpKTsKICAgICAgICAgR1VuaXF1ZVB0cjxj
aGFyPiBpdHBEaXJlY3RvcnkoZ19idWlsZF9maWxlbmFtZShkYXRhRGlyZWN0b3J5KCksICJpdHAi
LCBudWxscHRyKSk7CisgICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gc3dSZWdpc3RyYXRpb25zRGly
ZWN0b3J5KGdfYnVpbGRfZmlsZW5hbWUoZGF0YURpcmVjdG9yeSgpLCAic2VydmljZXdvcmtlcnMi
LCBudWxscHRyKSk7CiAgICAgICAgIEdSZWZQdHI8V2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyPiB3
ZWJzaXRlRGF0YU1hbmFnZXIgPSBhZG9wdEdSZWYod2Via2l0X3dlYnNpdGVfZGF0YV9tYW5hZ2Vy
X25ldygKICAgICAgICAgICAgICJsb2NhbC1zdG9yYWdlLWRpcmVjdG9yeSIsIGxvY2FsU3RvcmFn
ZURpcmVjdG9yeS5nZXQoKSwgImluZGV4ZWRkYi1kaXJlY3RvcnkiLCBpbmRleGVkREJEaXJlY3Rv
cnkuZ2V0KCksCiAgICAgICAgICAgICAiZGlzay1jYWNoZS1kaXJlY3RvcnkiLCBkaXNrQ2FjaGVE
aXJlY3RvcnkuZ2V0KCksICJvZmZsaW5lLWFwcGxpY2F0aW9uLWNhY2hlLWRpcmVjdG9yeSIsIGFw
cGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnkuZ2V0KCksCiAgICAgICAgICAgICAid2Vic3FsLWRpcmVj
dG9yeSIsIHdlYlNRTERpcmVjdG9yeS5nZXQoKSwgImhzdHMtY2FjaGUtZGlyZWN0b3J5IiwgaHN0
c0RpcmVjdG9yeS5nZXQoKSwKLSAgICAgICAgICAgICJpdHAtZGlyZWN0b3J5IiwgaXRwRGlyZWN0
b3J5LmdldCgpLCBudWxscHRyKSk7CisgICAgICAgICAgICAiaXRwLWRpcmVjdG9yeSIsIGl0cERp
cmVjdG9yeS5nZXQoKSwgInNlcnZpY2Utd29ya2VyLXJlZ2lzdHJhdGlvbnMtZGlyZWN0b3J5Iiwg
c3dSZWdpc3RyYXRpb25zRGlyZWN0b3J5LmdldCgpLCBudWxscHRyKSk7CiAKICAgICAgICAgbV93
ZWJDb250ZXh0ID0gYWRvcHRHUmVmKFdFQktJVF9XRUJfQ09OVEVYVChnX29iamVjdF9uZXcoV0VC
S0lUX1RZUEVfV0VCX0NPTlRFWFQsCiAgICAgICAgICAgICAid2Vic2l0ZS1kYXRhLW1hbmFnZXIi
LCB3ZWJzaXRlRGF0YU1hbmFnZXIuZ2V0KCksCg==
</data>
<flag name="review"
          id="417530"
          type_id="1"
          status="+"
          setter="mcatanzaro"
    />
          </attachment>
      

    </bug>

</bugzilla>