<?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>202308</bug_id>
          
          <creation_ts>2019-09-27 06:49:58 -0700</creation_ts>
          <short_desc>Move service worker process termination delay disabling from process pool to website data store</short_desc>
          <delta_ts>2019-09-27 09:08:26 -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>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="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>cdumez</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1574794</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-09-27 06:49:58 -0700</bug_when>
    <thetext>Move service worker process termination delay disabling from process pool to website data store</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574795</commentid>
    <comment_count>1</comment_count>
      <attachid>379719</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-09-27 06:55:17 -0700</bug_when>
    <thetext>Created attachment 379719
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574821</commentid>
    <comment_count>2</comment_count>
      <attachid>379719</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-27 08:53:01 -0700</bug_when>
    <thetext>Comment on attachment 379719
Patch

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

&gt; Source/WebCore/workers/service/server/SWServer.cpp:305
&gt; +    , m_processTerminationDelayEnabled(processTerminationDelayEnabled)

This needs a &quot;is&quot; prefix since this is a Boolean variable.

&gt; Source/WebCore/workers/service/server/SWServer.h:257
&gt; +    bool m_processTerminationDelayEnabled { true };

The new name is not as good because it is missing a prefix, violating coding style.

&gt; Source/WebKit/NetworkProcess/NetworkProcess.h:532
&gt; +        bool processTerminationDelayEnabled { true };

Can you explain why we need this and we cannot simply get this information from the SWServer in m_swServers ? You already store this boolean there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574827</commentid>
    <comment_count>3</comment_count>
      <attachid>379719</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-09-27 08:57:46 -0700</bug_when>
    <thetext>Comment on attachment 379719
Patch

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

&gt;&gt; Source/WebCore/workers/service/server/SWServer.cpp:305
&gt;&gt; +    , m_processTerminationDelayEnabled(processTerminationDelayEnabled)
&gt; 
&gt; This needs a &quot;is&quot; prefix since this is a Boolean variable.

I&apos;ll update the name when committing.

&gt;&gt; Source/WebKit/NetworkProcess/NetworkProcess.h:532
&gt;&gt; +        bool processTerminationDelayEnabled { true };
&gt; 
&gt; Can you explain why we need this and we cannot simply get this information from the SWServer in m_swServers ? You already store this boolean there.

This information is used when initializing the SWServer because they are lazily initialized.  If we don&apos;t have this, then we&apos;ll need another HashMap.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574828</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-27 08:58:19 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #3)
&gt; Comment on attachment 379719 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=379719&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/workers/service/server/SWServer.cpp:305
&gt; &gt;&gt; +    , m_processTerminationDelayEnabled(processTerminationDelayEnabled)
&gt; &gt; 
&gt; &gt; This needs a &quot;is&quot; prefix since this is a Boolean variable.
&gt; 
&gt; I&apos;ll update the name when committing.
&gt; 
&gt; &gt;&gt; Source/WebKit/NetworkProcess/NetworkProcess.h:532
&gt; &gt;&gt; +        bool processTerminationDelayEnabled { true };
&gt; &gt; 
&gt; &gt; Can you explain why we need this and we cannot simply get this information from the SWServer in m_swServers ? You already store this boolean there.
&gt; 
&gt; This information is used when initializing the SWServer because they are
&gt; lazily initialized.  If we don&apos;t have this, then we&apos;ll need another HashMap.

Ok, thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574833</commentid>
    <comment_count>5</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-09-27 09:07:34 -0700</bug_when>
    <thetext>http://trac.webkit.org/r250426</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574834</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-09-27 09:08:26 -0700</bug_when>
    <thetext>&lt;rdar://problem/55783546&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379719</attachid>
            <date>2019-09-27 06:55:17 -0700</date>
            <delta_ts>2019-09-27 08:58:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202308-20190927065514.patch</filename>
            <type>text/plain</type>
            <size>29930</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1MDM1MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDE5LTA5LTI3ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTW92ZSBzZXJ2
aWNlIHdvcmtlciBwcm9jZXNzIHRlcm1pbmF0aW9uIGRlbGF5IGRpc2FibGluZyBmcm9tIHByb2Nl
c3MgcG9vbCB0byB3ZWJzaXRlIGRhdGEgc3RvcmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjMwOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcjo6U1dTZXJ2ZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6U1dTZXJ2ZXI6OnVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KToKKyAgICAgICAg
KiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpT
V1NlcnZlcjo6ZGlzYWJsZVNlcnZpY2VXb3JrZXJQcm9jZXNzVGVybWluYXRpb25EZWxheSk6IERl
bGV0ZWQuCisKIDIwMTktMDktMjUgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5j
b20+CiAKICAgICAgICAgW2lQYWRPU10gW0RhdGFBY3RpdmF0aW9uXSBGb2N1cyBtb3ZlcyBhd2F5
IGFmdGVyIGZvY3VzaW5nIGlucHV0IGZpZWxkcyBvbiB3d3cuYXR0LmNvbQpJbmRleDogU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAJKHJl
dmlzaW9uIDI1MDM1MCkKKysrIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIv
U1dTZXJ2ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOTksOSArMjk5LDEwIEBAIHZvaWQgU1dT
ZXJ2ZXI6OkNvbm5lY3Rpb246OnN5bmNUZXJtaW5hdGUKICAgICAgICAgbV9zZXJ2ZXIuc3luY1Rl
cm1pbmF0ZVdvcmtlcigqd29ya2VyKTsKIH0KIAotU1dTZXJ2ZXI6OlNXU2VydmVyKFVuaXF1ZVJl
ZjxTV09yaWdpblN0b3JlPiYmIG9yaWdpblN0b3JlLCBTdHJpbmcmJiByZWdpc3RyYXRpb25EYXRh
YmFzZURpcmVjdG9yeSwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDcmVhdGVDb250ZXh0Q29u
bmVjdGlvbkNhbGxiYWNrJiYgY2FsbGJhY2spCitTV1NlcnZlcjo6U1dTZXJ2ZXIoVW5pcXVlUmVm
PFNXT3JpZ2luU3RvcmU+JiYgb3JpZ2luU3RvcmUsIGJvb2wgcHJvY2Vzc1Rlcm1pbmF0aW9uRGVs
YXlFbmFibGVkLCBTdHJpbmcmJiByZWdpc3RyYXRpb25EYXRhYmFzZURpcmVjdG9yeSwgUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBDcmVhdGVDb250ZXh0Q29ubmVjdGlvbkNhbGxiYWNrJiYgY2Fs
bGJhY2spCiAgICAgOiBtX29yaWdpblN0b3JlKFdURk1vdmUob3JpZ2luU3RvcmUpKQogICAgICwg
bV9zZXNzaW9uSUQoc2Vzc2lvbklEKQorICAgICwgbV9wcm9jZXNzVGVybWluYXRpb25EZWxheUVu
YWJsZWQocHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXlFbmFibGVkKQogICAgICwgbV9jcmVhdGVDb250
ZXh0Q29ubmVjdGlvbkNhbGxiYWNrKFdURk1vdmUoY2FsbGJhY2spKQogewogICAgIEFTU0VSVCgh
cmVnaXN0cmF0aW9uRGF0YWJhc2VEaXJlY3RvcnkuaXNFbXB0eSgpIHx8IG1fc2Vzc2lvbklELmlz
RXBoZW1lcmFsKCkpOwpAQCAtODQyLDcgKzg0Myw3IEBAIHZvaWQgU1dTZXJ2ZXI6OnVucmVnaXN0
ZXJTZXJ2aWNlV29ya2VyQ2wKIAogICAgICAgICAgICAgbV9jbGllbnRJZGVudGlmaWVyc1Blck9y
aWdpbi5yZW1vdmUoY2xpZW50T3JpZ2luKTsKICAgICAgICAgfSk7Ci0gICAgICAgIGl0ZXJhdG9y
LT52YWx1ZS50ZXJtaW5hdGVTZXJ2aWNlV29ya2Vyc1RpbWVyLT5zdGFydE9uZVNob3QobV9zaG91
bGREaXNhYmxlU2VydmljZVdvcmtlclByb2Nlc3NUZXJtaW5hdGlvbkRlbGF5ID8gMF9zIDogdGVy
bWluYXRpb25EZWxheSk7CisgICAgICAgIGl0ZXJhdG9yLT52YWx1ZS50ZXJtaW5hdGVTZXJ2aWNl
V29ya2Vyc1RpbWVyLT5zdGFydE9uZVNob3QobV9wcm9jZXNzVGVybWluYXRpb25EZWxheUVuYWJs
ZWQgPyB0ZXJtaW5hdGlvbkRlbGF5IDogMF9zKTsKICAgICB9CiAKICAgICBhdXRvIGNsaWVudHNC
eVJlZ2lzdHJhYmxlRG9tYWluSXRlcmF0b3IgPSBtX2NsaWVudHNCeVJlZ2lzdHJhYmxlRG9tYWlu
LmZpbmQoY2xpZW50UmVnaXN0cmFibGVEb21haW4pOwpJbmRleDogU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaAkocmV2aXNpb24gMjUwMzUwKQor
KysgU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMjUsNyArMTI1LDcgQEAgcHVibGljOgogICAgIH07CiAKICAgICB1c2lu
ZyBDcmVhdGVDb250ZXh0Q29ubmVjdGlvbkNhbGxiYWNrID0gRnVuY3Rpb248dm9pZChjb25zdCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYpPjsKLSAgICBXRUJDT1JFX0VYUE9SVCBTV1NlcnZl
cihVbmlxdWVSZWY8U1dPcmlnaW5TdG9yZT4mJiwgU3RyaW5nJiYgcmVnaXN0cmF0aW9uRGF0YWJh
c2VEaXJlY3RvcnksIFBBTDo6U2Vzc2lvbklELCBDcmVhdGVDb250ZXh0Q29ubmVjdGlvbkNhbGxi
YWNrJiYpOworICAgIFdFQkNPUkVfRVhQT1JUIFNXU2VydmVyKFVuaXF1ZVJlZjxTV09yaWdpblN0
b3JlPiYmLCBib29sIHByb2Nlc3NUZXJtaW5hdGlvbkRlbGF5RW5hYmxlZCwgU3RyaW5nJiYgcmVn
aXN0cmF0aW9uRGF0YWJhc2VEaXJlY3RvcnksIFBBTDo6U2Vzc2lvbklELCBDcmVhdGVDb250ZXh0
Q29ubmVjdGlvbkNhbGxiYWNrJiYpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgflNXU2VydmVyKCk7
CiAKQEAgLTE5NCw4ICsxOTQsNiBAQCBwdWJsaWM6CiAgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklEKCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uSUQ7IH0KICAgICBXRUJDT1JFX0VYUE9SVCBi
b29sIG5lZWRzQ29udGV4dENvbm5lY3Rpb25Gb3JSZWdpc3RyYWJsZURvbWFpbihjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYpIGNvbnN0OwogCi0gICAgdm9pZCBkaXNhYmxlU2VydmljZVdvcmtlclBy
b2Nlc3NUZXJtaW5hdGlvbkRlbGF5KCkgeyBtX3Nob3VsZERpc2FibGVTZXJ2aWNlV29ya2VyUHJv
Y2Vzc1Rlcm1pbmF0aW9uRGVsYXkgPSB0cnVlOyB9Ci0KICAgICB2b2lkIHJlbW92ZUZyb21TY29w
ZVRvUmVnaXN0cmF0aW9uTWFwKGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmKTsK
IAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYWRkQ29udGV4dENvbm5lY3Rpb24oU1dTZXJ2ZXJU
b0NvbnRleHRDb25uZWN0aW9uJik7CkBAIC0yNTYsNyArMjU0LDcgQEAgcHJpdmF0ZToKICAgICBI
YXNoTWFwPFJlZ2lzdHJhYmxlRG9tYWluLCBIYXNoTWFwPFNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
LCBWZWN0b3I8UnVuU2VydmljZVdvcmtlckNhbGxiYWNrPj4+IG1fc2VydmljZVdvcmtlclJ1blJl
cXVlc3RzOwogICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwogICAgIGJvb2wgbV9pbXBv
cnRDb21wbGV0ZWQgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9zaG91bGREaXNhYmxlU2VydmljZVdv
cmtlclByb2Nlc3NUZXJtaW5hdGlvbkRlbGF5IHsgZmFsc2UgfTsKKyAgICBib29sIG1fcHJvY2Vz
c1Rlcm1pbmF0aW9uRGVsYXlFbmFibGVkIHsgdHJ1ZSB9OwogICAgIFZlY3RvcjxDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+PiBtX2NsZWFyQ29tcGxldGlvbkNhbGxiYWNrczsKICAgICBWZWN0b3I8
RnVuY3Rpb248dm9pZChjb25zdCBIYXNoU2V0PFNlY3VyaXR5T3JpZ2luRGF0YT4mKT4+IG1fZ2V0
T3JpZ2luc1dpdGhSZWdpc3RyYXRpb25zQ2FsbGJhY2tzOwogICAgIEhhc2hNYXA8UmVnaXN0cmFi
bGVEb21haW4sIFNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbio+IG1fY29udGV4dENvbm5lY3Rp
b25zOwpJbmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1MDQwNCkKKysrIFNvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDcgQEAKKzIwMTktMDktMjcgIEFsZXgg
Q2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBNb3ZlIHNl
cnZpY2Ugd29ya2VyIHByb2Nlc3MgdGVybWluYXRpb24gZGVsYXkgZGlzYWJsaW5nIGZyb20gcHJv
Y2VzcyBwb29sIHRvIHdlYnNpdGUgZGF0YSBzdG9yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyMzA4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSXQncyBvbmx5IHRoZXJlIGZvciBhIHRlc3QsIHdoaWNo
IHN0aWxsIHdvcmtzIHF1aWNrbHkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjppbml0aWFsaXpl
TmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6YWRkV2Vi
c2l0ZURhdGFTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpkZXN0cm95
U2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpmZXRjaFdlYnNpdGVE
YXRhKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRh
Rm9yUmVnaXN0cmFibGVEb21haW5zKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6
OnJlZ2lzdHJhYmxlRG9tYWluc1dpdGhXZWJzaXRlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtQcm9jZXNzOjpzd1NlcnZlckZvclNlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUHJvY2Vzczo6YWRkU2VydmljZVdvcmtlclNlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUHJvY2Vzczo6ZGlzYWJsZVNlcnZpY2VXb3JrZXJQcm9jZXNzVGVybWluYXRpb25EZWxh
eSk6IERlbGV0ZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAg
ICAgICAgKiBTaGFyZWQvV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAg
ICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAg
ICogU2hhcmVkL1dlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tOgorICAgICAgICAoLVtXS1Byb2Nlc3NQb29s
IF9kaXNhYmxlU2VydmljZVdvcmtlclByb2Nlc3NUZXJtaW5hdGlvbkRlbGF5XSk6IERlbGV0ZWQu
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3Vy
YXRpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3Rv
cmVDb25maWd1cmF0aW9uLm1tOgorICAgICAgICAoLVtfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmln
dXJhdGlvbiBzZXJ2aWNlV29ya2VyUHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXlFbmFibGVkXSk6Cisg
ICAgICAgICgtW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIHNldFNlcnZpY2VXb3Jr
ZXJQcm9jZXNzVGVybWluYXRpb25EZWxheUVuYWJsZWQ6XSk6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmVu
c3VyZU5ldHdvcmtQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmRp
c2FibGVTZXJ2aWNlV29ya2VyUHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXkpOiBEZWxldGVkLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW06CisgICAgICAgIChXZWJL
aXQ6OldlYnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRlcnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uOjpjb3B5KToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaDoKKyAg
ICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246OnNlcnZpY2VXb3Jr
ZXJQcm9jZXNzVGVybWluYXRpb25EZWxheUVuYWJsZWQgY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6c2V0U2VydmljZVdvcmtlclByb2Nlc3NU
ZXJtaW5hdGlvbkRlbGF5RW5hYmxlZCk6CisKIDIwMTktMDktMjYgIERlYW4gSmFja3NvbiAgPGRp
bm9AYXBwbGUuY29tPgogCiAgICAgICAgIENvbnRleHRNZW51IG9uIGEgbGluayBpbiBhbiBlbWFp
bCBubyBsb25nZXIgc2hvd3Mgd2ViIHByZXZpZXcKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCShyZXZpc2lvbiAyNTAzNTEpCisrKyBT
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzMxLDEyICszMzEsMTEgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6
ZU5ldHdvcmtQcgogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAgIGlmIChwYXJlbnRQ
cm9jZXNzSGFzU2VydmljZVdvcmtlckVudGl0bGVtZW50KCkpIHsKLSAgICAgICAgYWRkU2Vydmlj
ZVdvcmtlclNlc3Npb24oUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgcGFyYW1l
dGVycy5zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5LCBwYXJhbWV0ZXJzLnNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOworICAgICAgICBi
b29sIHNlcnZpY2VXb3JrZXJQcm9jZXNzVGVybWluYXRpb25EZWxheUVuYWJsZWQgPSB0cnVlOwor
ICAgICAgICBhZGRTZXJ2aWNlV29ya2VyU2Vzc2lvbihQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNl
c3Npb25JRCgpLCBzZXJ2aWNlV29ya2VyUHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXlFbmFibGVkLCBw
YXJhbWV0ZXJzLnNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnksIHBhcmFtZXRlcnMu
c2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CiAKICAg
ICAgICAgZm9yIChhdXRvJiBzY2hlbWUgOiBwYXJhbWV0ZXJzLnVybFNjaGVtZXNTZXJ2aWNlV29y
a2Vyc0NhbkhhbmRsZSkKICAgICAgICAgICAgIHJlZ2lzdGVyVVJMU2NoZW1lU2VydmljZVdvcmtl
cnNDYW5IYW5kbGUoc2NoZW1lKTsKLQotICAgICAgICBtX3Nob3VsZERpc2FibGVTZXJ2aWNlV29y
a2VyUHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXkgPSBwYXJhbWV0ZXJzLnNob3VsZERpc2FibGVTZXJ2
aWNlV29ya2VyUHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXk7CiAgICAgfQogI2VuZGlmCiAgICAgaW5p
dGlhbGl6ZVN0b3JhZ2VRdW90YShwYXJhbWV0ZXJzLmRlZmF1bHREYXRhU3RvcmVQYXJhbWV0ZXJz
KTsKQEAgLTQ2NCw3ICs0NjMsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjphZGRXZWJzaXRlRGF0
YVN0b3JlCiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAgICAgaWYgKHBhcmVudFByb2Nl
c3NIYXNTZXJ2aWNlV29ya2VyRW50aXRsZW1lbnQoKSkKLSAgICAgICAgYWRkU2VydmljZVdvcmtl
clNlc3Npb24ocGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMuc2Vzc2lvbklELCBw
YXJhbWV0ZXJzLnNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnksIHBhcmFtZXRlcnMu
c2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CisgICAg
ICAgIGFkZFNlcnZpY2VXb3JrZXJTZXNzaW9uKHBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJh
bWV0ZXJzLnNlc3Npb25JRCwgcGFyYW1ldGVycy5zZXJ2aWNlV29ya2VyUHJvY2Vzc1Rlcm1pbmF0
aW9uRGVsYXlFbmFibGVkLCBwYXJhbWV0ZXJzLnNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJl
Y3RvcnksIHBhcmFtZXRlcnMuc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeUV4dGVu
c2lvbkhhbmRsZSk7CiAjZW5kaWYKIAogICAgIG1fc3RvcmFnZU1hbmFnZXJTZXQtPmFkZChwYXJh
bWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5zZXNzaW9uSUQsIHBhcmFtZXRlcnMubG9j
YWxTdG9yYWdlRGlyZWN0b3J5LCBwYXJhbWV0ZXJzLmxvY2FsU3RvcmFnZURpcmVjdG9yeUV4dGVu
c2lvbkhhbmRsZSk7CkBAIC01OTYsNyArNTk1LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGVz
dHJveVNlc3Npb24oUEFMOgogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAgIG1fc3dT
ZXJ2ZXJzLnJlbW92ZShzZXNzaW9uSUQpOwotICAgIG1fc3dEYXRhYmFzZVBhdGhzLnJlbW92ZShz
ZXNzaW9uSUQpOworICAgIG1fc2VydmljZVdvcmtlckluZm8ucmVtb3ZlKHNlc3Npb25JRCk7CiAj
ZW5kaWYKIAogICAgIG1fc3RvcmFnZU1hbmFnZXJTZXQtPnJlbW92ZShzZXNzaW9uSUQpOwpAQCAt
MTM1Niw3ICsxMzU1LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZmV0Y2hXZWJzaXRlRGF0YShQ
QQogI2VuZGlmCiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCi0gICAgcGF0aCA9IG1fc3dE
YXRhYmFzZVBhdGhzLmdldChzZXNzaW9uSUQpOworICAgIHBhdGggPSBtX3NlcnZpY2VXb3JrZXJJ
bmZvLmdldChzZXNzaW9uSUQpLmRhdGFiYXNlUGF0aDsKICAgICBpZiAoIXBhdGguaXNFbXB0eSgp
ICYmIHdlYnNpdGVEYXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURhdGFUeXBlOjpTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9ucykpIHsKICAgICAgICAgc3dTZXJ2ZXJGb3JTZXNzaW9uKHNlc3Npb25J
RCkuZ2V0T3JpZ2luc1dpdGhSZWdpc3RyYXRpb25zKFtjYWxsYmFja0FnZ3JlZ2F0b3IgPSBjYWxs
YmFja0FnZ3JlZ2F0b3IuY29weVJlZigpXShjb25zdCBIYXNoU2V0PFNlY3VyaXR5T3JpZ2luRGF0
YT4mIHNlY3VyaXR5T3JpZ2lucykgbXV0YWJsZSB7CiAgICAgICAgICAgICBmb3IgKGF1dG8mIG9y
aWdpbiA6IHNlY3VyaXR5T3JpZ2lucykKQEAgLTE3MzcsNyArMTczNiw3IEBAIHZvaWQgTmV0d29y
a1Byb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhRm8KICNlbmRpZgogICAgIAogI2lmIEVOQUJMRShT
RVJWSUNFX1dPUktFUikKLSAgICBwYXRoID0gbV9zd0RhdGFiYXNlUGF0aHMuZ2V0KHNlc3Npb25J
RCk7CisgICAgcGF0aCA9IG1fc2VydmljZVdvcmtlckluZm8uZ2V0KHNlc3Npb25JRCkuZGF0YWJh
c2VQYXRoOwogICAgIGlmICghcGF0aC5pc0VtcHR5KCkgJiYgd2Vic2l0ZURhdGFUeXBlcy5jb250
YWlucyhXZWJzaXRlRGF0YVR5cGU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25zKSkgewogICAg
ICAgICBzd1NlcnZlckZvclNlc3Npb24oc2Vzc2lvbklEKS5nZXRPcmlnaW5zV2l0aFJlZ2lzdHJh
dGlvbnMoW3RoaXMsIHNlc3Npb25JRCwgZG9tYWluc1RvRGVsZXRlQWxsQnV0Q29va2llc0Zvciwg
Y2FsbGJhY2tBZ2dyZWdhdG9yID0gY2FsbGJhY2tBZ2dyZWdhdG9yLmNvcHlSZWYoKV0oY29uc3Qg
SGFzaFNldDxTZWN1cml0eU9yaWdpbkRhdGE+JiBzZWN1cml0eU9yaWdpbnMpIG11dGFibGUgewog
ICAgICAgICAgICAgZm9yIChhdXRvJiBzZWN1cml0eU9yaWdpbiA6IHNlY3VyaXR5T3JpZ2lucykg
ewpAQCAtMTg3NCw3ICsxODczLDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6cmVnaXN0cmFibGVE
b21haW5zVwogI2VuZGlmCiAgICAgCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQotICAgIHBh
dGggPSBtX3N3RGF0YWJhc2VQYXRocy5nZXQoc2Vzc2lvbklEKTsKKyAgICBwYXRoID0gbV9zZXJ2
aWNlV29ya2VySW5mby5nZXQoc2Vzc2lvbklEKS5kYXRhYmFzZVBhdGg7CiAgICAgaWYgKCFwYXRo
LmlzRW1wdHkoKSAmJiB3ZWJzaXRlRGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbnMpKSB7CiAgICAgICAgIHN3U2VydmVyRm9yU2Vzc2lv
bihzZXNzaW9uSUQpLmdldE9yaWdpbnNXaXRoUmVnaXN0cmF0aW9ucyhbY2FsbGJhY2tBZ2dyZWdh
dG9yID0gY2FsbGJhY2tBZ2dyZWdhdG9yLmNvcHlSZWYoKV0oY29uc3QgSGFzaFNldDxTZWN1cml0
eU9yaWdpbkRhdGE+JiBzZWN1cml0eU9yaWdpbnMpIG11dGFibGUgewogICAgICAgICAgICAgZm9y
IChhdXRvJiBzZWN1cml0eU9yaWdpbiA6IHNlY3VyaXR5T3JpZ2lucykKQEAgLTIzNzksMjAgKzIz
NzgsMTcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6Zm9yRWFjaFNXU2VydmVyKGNvbgogU1dTZXJ2
ZXImIE5ldHdvcmtQcm9jZXNzOjpzd1NlcnZlckZvclNlc3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklEKQogewogICAgIGF1dG8gcmVzdWx0ID0gbV9zd1NlcnZlcnMuZW5zdXJlKHNlc3Npb25J
RCwgWyZdIHsKLSAgICAgICAgYXV0byBwYXRoID0gbV9zd0RhdGFiYXNlUGF0aHMuZ2V0KHNlc3Np
b25JRCk7CisgICAgICAgIGF1dG8gaW5mbyA9IG1fc2VydmljZVdvcmtlckluZm8uZ2V0KHNlc3Np
b25JRCk7CisgICAgICAgIGF1dG8gcGF0aCA9IGluZm8uZGF0YWJhc2VQYXRoOwogICAgICAgICAv
LyBUaGVyZSBzaG91bGQgYWxyZWFkeSBiZSBhIHJlZ2lzdGVyZWQgcGF0aCBmb3IgdGhpcyBQQUw6
OlNlc3Npb25JRC4KICAgICAgICAgLy8gSWYgdGhlcmUncyBub3QsIHRoZW4gd2hlcmUgZGlkIHRo
aXMgUEFMOjpTZXNzaW9uSUQgY29tZSBmcm9tPwogICAgICAgICBBU1NFUlQoc2Vzc2lvbklELmlz
RXBoZW1lcmFsKCkgfHwgIXBhdGguaXNFbXB0eSgpKTsKLSAgICAgICAgCi0gICAgICAgIGF1dG8g
dmFsdWUgPSBtYWtlVW5pcXVlPFNXU2VydmVyPihtYWtlVW5pcXVlUmVmPFdlYlNXT3JpZ2luU3Rv
cmU+KCksIFdURk1vdmUocGF0aCksIHNlc3Npb25JRCwgW3RoaXMsIHNlc3Npb25JRF0oYXV0byYg
cmVnaXN0cmFibGVEb21haW4pIHsKKworICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZTxTV1NlcnZl
cj4obWFrZVVuaXF1ZVJlZjxXZWJTV09yaWdpblN0b3JlPigpLCBpbmZvLnByb2Nlc3NUZXJtaW5h
dGlvbkRlbGF5RW5hYmxlZCwgV1RGTW92ZShwYXRoKSwgc2Vzc2lvbklELCBbdGhpcywgc2Vzc2lv
bklEXShhdXRvJiByZWdpc3RyYWJsZURvbWFpbikgewogICAgICAgICAgICAgQVNTRVJUKCFyZWdp
c3RyYWJsZURvbWFpbi5pc0VtcHR5KCkpOwogICAgICAgICAgICAgcGFyZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24oKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6RXN0YWJsaXNoV29y
a2VyQ29udGV4dENvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzIHsgcmVnaXN0cmFibGVEb21haW4s
IHNlc3Npb25JRCB9LCAwKTsKICAgICAgICAgfSk7Ci0gICAgICAgIGlmIChtX3Nob3VsZERpc2Fi
bGVTZXJ2aWNlV29ya2VyUHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXkpCi0gICAgICAgICAgICB2YWx1
ZS0+ZGlzYWJsZVNlcnZpY2VXb3JrZXJQcm9jZXNzVGVybWluYXRpb25EZWxheSgpOwotICAgICAg
ICByZXR1cm4gdmFsdWU7CiAgICAgfSk7Ci0KICAgICByZXR1cm4gKnJlc3VsdC5pdGVyYXRvci0+
dmFsdWU7CiB9CiAKQEAgLTI0MTksMTkgKzI0MTUsMTMgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6
dW5yZWdpc3RlclNXU2VydmVyQwogICAgICAgICBzdG9yZS0+dW5yZWdpc3RlclNXU2VydmVyQ29u
bmVjdGlvbihjb25uZWN0aW9uKTsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGlzYWJsZVNl
cnZpY2VXb3JrZXJQcm9jZXNzVGVybWluYXRpb25EZWxheSgpCi17Ci0gICAgaWYgKG1fc2hvdWxk
RGlzYWJsZVNlcnZpY2VXb3JrZXJQcm9jZXNzVGVybWluYXRpb25EZWxheSkKLSAgICAgICAgcmV0
dXJuOwotICAgIAotICAgIG1fc2hvdWxkRGlzYWJsZVNlcnZpY2VXb3JrZXJQcm9jZXNzVGVybWlu
YXRpb25EZWxheSA9IHRydWU7Ci0gICAgZm9yIChhdXRvJiBzd1NlcnZlciA6IG1fc3dTZXJ2ZXJz
LnZhbHVlcygpKQotICAgICAgICBzd1NlcnZlci0+ZGlzYWJsZVNlcnZpY2VXb3JrZXJQcm9jZXNz
VGVybWluYXRpb25EZWxheSgpOwotfQotCi12b2lkIE5ldHdvcmtQcm9jZXNzOjphZGRTZXJ2aWNl
V29ya2VyU2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFN0cmluZyYgc2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeSwgY29uc3QgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
JiBoYW5kbGUpCit2b2lkIE5ldHdvcmtQcm9jZXNzOjphZGRTZXJ2aWNlV29ya2VyU2Vzc2lvbihQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgcHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXlFbmFi
bGVkLCBTdHJpbmcmIHNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnksIGNvbnN0IFNh
bmRib3hFeHRlbnNpb246OkhhbmRsZSYgaGFuZGxlKQogewotICAgIGF1dG8gYWRkUmVzdWx0ID0g
bV9zd0RhdGFiYXNlUGF0aHMuYWRkKHNlc3Npb25JRCwgc2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bkRpcmVjdG9yeSk7CisgICAgU2VydmljZVdvcmtlckluZm8gaW5mbyB7CisgICAgICAgIHNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnksCisgICAgICAgIHByb2Nlc3NUZXJtaW5hdGlv
bkRlbGF5RW5hYmxlZCwKKyAgICB9OworICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9zZXJ2aWNlV29y
a2VySW5mby5hZGQoc2Vzc2lvbklELCBXVEZNb3ZlKGluZm8pKTsKICAgICBpZiAoYWRkUmVzdWx0
LmlzTmV3RW50cnkpIHsKICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVu
dGx5KGhhbmRsZSk7CiAgICAgICAgIGlmICghc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVj
dG9yeS5pc0VtcHR5KCkpCkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5oCShyZXZpc2lvbiAyNTAzNTApCisrKyBTb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ1OSw3ICs0NTks
NyBAQCBwcml2YXRlOgogICAgIAogICAgIFdlYlNXT3JpZ2luU3RvcmUqIGV4aXN0aW5nU1dPcmln
aW5TdG9yZUZvclNlc3Npb24oUEFMOjpTZXNzaW9uSUQpIGNvbnN0OwogCi0gICAgdm9pZCBhZGRT
ZXJ2aWNlV29ya2VyU2Vzc2lvbihQQUw6OlNlc3Npb25JRCwgU3RyaW5nJiBzZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uRGlyZWN0b3J5LCBjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmKTsK
KyAgICB2b2lkIGFkZFNlcnZpY2VXb3JrZXJTZXNzaW9uKFBBTDo6U2Vzc2lvbklELCBib29sIHBy
b2Nlc3NUZXJtaW5hdGlvbkRlbGF5RW5hYmxlZCwgU3RyaW5nJiBzZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uRGlyZWN0b3J5LCBjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmKTsKICNlbmRp
ZgogCiAgICAgdm9pZCBwb3N0U3RvcmFnZVRhc2soQ3Jvc3NUaHJlYWRUYXNrJiYpOwpAQCAtNTI3
LDggKzUyNywxMSBAQCBwcml2YXRlOgogICAgIExvY2sgbV9zdG9yYWdlVGFza011dGV4OwogICAg
IAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKLSAgICBib29sIG1fc2hvdWxkRGlzYWJsZVNl
cnZpY2VXb3JrZXJQcm9jZXNzVGVybWluYXRpb25EZWxheSB7IGZhbHNlIH07Ci0gICAgSGFzaE1h
cDxQQUw6OlNlc3Npb25JRCwgU3RyaW5nPiBtX3N3RGF0YWJhc2VQYXRoczsKKyAgICBzdHJ1Y3Qg
U2VydmljZVdvcmtlckluZm8geworICAgICAgICBTdHJpbmcgZGF0YWJhc2VQYXRoOworICAgICAg
ICBib29sIHByb2Nlc3NUZXJtaW5hdGlvbkRlbGF5RW5hYmxlZCB7IHRydWUgfTsKKyAgICB9Owor
ICAgIEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIFNlcnZpY2VXb3JrZXJJbmZvPiBtX3NlcnZpY2VX
b3JrZXJJbmZvOwogICAgIEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxX
ZWJDb3JlOjpTV1NlcnZlcj4+IG1fc3dTZXJ2ZXJzOwogI2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdl
cy5pbgkocmV2aXNpb24gMjUwMzUwKQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMTUwLDEwICsxNTAs
NiBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2VzcyBMZWdhY3lSZWNlaXZlCiAKICAgICBTZXRD
YWNoZVN0b3JhZ2VQYXJhbWV0ZXJzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU3RyaW5nIGNh
Y2hlU3RvcmFnZURpcmVjdG9yeSwgV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgaGFu
ZGxlKTsKIAotI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKLSAgICBEaXNhYmxlU2VydmljZVdv
cmtlclByb2Nlc3NUZXJtaW5hdGlvbkRlbGF5KCkKLSNlbmRpZgotCiAgICAgU3luY0xvY2FsU3Rv
cmFnZSgpIC0+ICgpIFN5bmNocm9ub3VzCiAgICAgQ2xlYXJMZWdhY3lQcml2YXRlQnJvd3NpbmdM
b2NhbFN0b3JhZ2UoKQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRlRGF0YVN0
b3JlUGFyYW1ldGVycy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
c2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuY3BwCShyZXZpc2lvbiAyNTAzNTEpCisrKyBTb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTUwLDcgKzUwLDcgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVyczo6ZW5j
b2RlKAogI2VuZGlmCiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCi0gICAgZW5jb2RlciA8
PCBzZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5IDw8IHNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25EaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CisgICAgZW5jb2RlciA8PCBzZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5IDw8IHNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25E
aXJlY3RvcnlFeHRlbnNpb25IYW5kbGUgPDwgc2VydmljZVdvcmtlclByb2Nlc3NUZXJtaW5hdGlv
bkRlbGF5RW5hYmxlZDsKICNlbmRpZgogCiAgICAgZW5jb2RlciA8PCBsb2NhbFN0b3JhZ2VEaXJl
Y3RvcnkgPDwgbG9jYWxTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOwpAQCAtMTIxLDYg
KzEyMSwxMiBAQCBPcHRpb25hbDxXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycz4gV2ViCiAgICAg
aWYgKCFzZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKQog
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIHBhcmFtZXRlcnMuc2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbkRpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUoKnNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOworICAgIAorICAgIE9w
dGlvbmFsPGJvb2w+IHNlcnZpY2VXb3JrZXJQcm9jZXNzVGVybWluYXRpb25EZWxheUVuYWJsZWQ7
CisgICAgZGVjb2RlciA+PiBzZXJ2aWNlV29ya2VyUHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXlFbmFi
bGVkOworICAgIGlmICghc2VydmljZVdvcmtlclByb2Nlc3NUZXJtaW5hdGlvbkRlbGF5RW5hYmxl
ZCkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICBwYXJhbWV0ZXJzLnNlcnZpY2VX
b3JrZXJQcm9jZXNzVGVybWluYXRpb25EZWxheUVuYWJsZWQgPSBXVEZNb3ZlKCpzZXJ2aWNlV29y
a2VyUHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXlFbmFibGVkKTsKICNlbmRpZgogCiAgICAgT3B0aW9u
YWw8U3RyaW5nPiBsb2NhbFN0b3JhZ2VEaXJlY3Rvcnk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmgJKHJldmlzaW9uIDI1MDM1
MSkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTY1LDYgKzY1LDcgQEAgc3RydWN0IFdlYnNpdGVEYXRhU3RvcmVQ
YXJhbWV0ZXJzIHsKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAgICAgU3RyaW5nIHNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3Rvcnk7CiAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFu
ZGxlIHNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7Cisg
ICAgYm9vbCBzZXJ2aWNlV29ya2VyUHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXlFbmFibGVkIHsgdHJ1
ZSB9OwogI2VuZGlmCiAKICAgICBTdHJpbmcgbG9jYWxTdG9yYWdlRGlyZWN0b3J5OwpJbmRleDog
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAkocmV2aXNpb24gMjUw
MzUyKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC01NTYsOCArNTU2LDYgQEAgTmV0d29ya1Byb2Nlc3NQcm94eSYgV2ViUHJv
Y2Vzc1Bvb2w6OmVucwogCiAgICAgaWYgKCFtX3NjaGVtZXNTZXJ2aWNlV29ya2Vyc0NhbkhhbmRs
ZS5pc0VtcHR5KCkpCiAgICAgICAgIHBhcmFtZXRlcnMudXJsU2NoZW1lc1NlcnZpY2VXb3JrZXJz
Q2FuSGFuZGxlID0gY29weVRvVmVjdG9yKG1fc2NoZW1lc1NlcnZpY2VXb3JrZXJzQ2FuSGFuZGxl
KTsKLQotICAgIHBhcmFtZXRlcnMuc2hvdWxkRGlzYWJsZVNlcnZpY2VXb3JrZXJQcm9jZXNzVGVy
bWluYXRpb25EZWxheSA9IG1fc2hvdWxkRGlzYWJsZVNlcnZpY2VXb3JrZXJQcm9jZXNzVGVybWlu
YXRpb25EZWxheTsKICNlbmRpZgogCiAgICAgYXV0byBsb2NhbFN0b3JhZ2VEaXJlY3RvcnkgPSBt
X3dlYnNpdGVEYXRhU3RvcmUgPyBtX3dlYnNpdGVEYXRhU3RvcmUtPnJlc29sdmVkTG9jYWxTdG9y
YWdlRGlyZWN0b3J5KCkgOiBudWxsU3RyaW5nKCk7CkBAIC03MzAsMTggKzcyOCw2IEBAIHZvaWQg
V2ViUHJvY2Vzc1Bvb2w6OmVzdGFibGlzaFdvcmtlckNvbnQKIH0KICNlbmRpZgogCi12b2lkIFdl
YlByb2Nlc3NQb29sOjpkaXNhYmxlU2VydmljZVdvcmtlclByb2Nlc3NUZXJtaW5hdGlvbkRlbGF5
KCkKLXsKLSNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCi0gICAgaWYgKG1fc2hvdWxkRGlzYWJs
ZVNlcnZpY2VXb3JrZXJQcm9jZXNzVGVybWluYXRpb25EZWxheSkKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgbV9zaG91bGREaXNhYmxlU2VydmljZVdvcmtlclByb2Nlc3NUZXJtaW5hdGlvbkRlbGF5
ID0gdHJ1ZTsKLSAgICBpZiAobV9uZXR3b3JrUHJvY2VzcykKLSAgICAgICAgbV9uZXR3b3JrUHJv
Y2Vzcy0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkRpc2FibGVTZXJ2aWNlV29ya2Vy
UHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXkoKSwgMCk7Ci0jZW5kaWYKLX0KLQogdm9pZCBXZWJQcm9j
ZXNzUG9vbDo6d2luZG93U2VydmVyQ29ubmVjdGlvblN0YXRlQ2hhbmdlZCgpCiB7CiAgICAgc2l6
ZV90IHByb2Nlc3NDb3VudCA9IG1fcHJvY2Vzc2VzLnNpemUoKTsKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAkocmV2aXNpb24gMjUwMzUwKQorKysgU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAkod29ya2luZyBjb3B5KQpAQCAtMzE3
LDcgKzMxNyw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNlbmROZXR3b3JrUHJvY2Vzc1dpbGxTdXNw
ZW5kSW1taW5lbnRseUZvclRlc3RpbmcoKTsKICAgICB2b2lkIHNlbmROZXR3b3JrUHJvY2Vzc0Rp
ZFJlc3VtZSgpOwogICAgIHZvaWQgdGVybWluYXRlU2VydmljZVdvcmtlclByb2Nlc3NlcygpOwot
ICAgIHZvaWQgZGlzYWJsZVNlcnZpY2VXb3JrZXJQcm9jZXNzVGVybWluYXRpb25EZWxheSgpOwog
CiAgICAgdm9pZCBzeW5jTmV0d29ya1Byb2Nlc3NDb29raWVzKCk7CiAgICAgdm9pZCBzeW5jTG9j
YWxTdG9yYWdlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjYWxsYmFjayk7CkBAIC02MTks
NyArNjE4LDYgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPFJlZ2lzdHJhYmxlRG9tYWluV2l0aFNl
c3Npb25JRCwgV2ViUHJvY2Vzc1Byb3h5Kj4gbV9zZXJ2aWNlV29ya2VyUHJvY2Vzc2VzOwogICAg
IGJvb2wgbV93YWl0aW5nRm9yV29ya2VyQ29udGV4dFByb2Nlc3NDb25uZWN0aW9uIHsgZmFsc2Ug
fTsKICAgICBib29sIG1fYWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JTZXJ2aWNlV29ya2VyIHsg
ZmFsc2UgfTsKLSAgICBib29sIG1fc2hvdWxkRGlzYWJsZVNlcnZpY2VXb3JrZXJQcm9jZXNzVGVy
bWluYXRpb25EZWxheSB7IGZhbHNlIH07CiAgICAgU3RyaW5nIG1fc2VydmljZVdvcmtlclVzZXJB
Z2VudDsKICAgICBPcHRpb25hbDxXZWJQcmVmZXJlbmNlc1N0b3JlPiBtX3NlcnZpY2VXb3JrZXJQ
cmVmZXJlbmNlczsKICAgICBIYXNoTWFwPFN0cmluZywgYm9vbD4gbV9tYXlIYXZlUmVnaXN0ZXJl
ZFNlcnZpY2VXb3JrZXJzOwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLUHJvY2Vzc1Bvb2wubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0JKHJldmlzaW9uIDI1MDM1MCkKKysrIFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC00NTMsMTEgKzQ1Myw2IEBAIC0gKHZvaWQpX3Rlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9j
ZXNzZXMKICAgICBfcHJvY2Vzc1Bvb2wtPnRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzZXMo
KTsKIH0KIAotLSAodm9pZClfZGlzYWJsZVNlcnZpY2VXb3JrZXJQcm9jZXNzVGVybWluYXRpb25E
ZWxheQotewotICAgIF9wcm9jZXNzUG9vbC0+ZGlzYWJsZVNlcnZpY2VXb3JrZXJQcm9jZXNzVGVy
bWluYXRpb25EZWxheSgpOwotfQotCiAtIChwaWRfdClfbmV0d29ya1Byb2Nlc3NJZGVudGlmaWVy
CiB7CiAgICAgcmV0dXJuIF9wcm9jZXNzUG9vbC0+bmV0d29ya1Byb2Nlc3NJZGVudGlmaWVyKCk7
CkBAIC00NjgsNyArNDYzLDYgQEAgLSAocGlkX3QpX3ByZXdhcm1lZFByb2Nlc3NJZGVudGlmaWVy
CiAgICAgcmV0dXJuIF9wcm9jZXNzUG9vbC0+cHJld2FybWVkUHJvY2Vzc0lkZW50aWZpZXIoKTsK
IH0KIAotCiAtICh2b2lkKV9zeW5jTmV0d29ya1Byb2Nlc3NDb29raWVzCiB7CiAgICAgX3Byb2Nl
c3NQb29sLT5zeW5jTmV0d29ya1Byb2Nlc3NDb29raWVzKCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUu
aAkocmV2aXNpb24gMjUwMzc3KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTkzLDcgKzkzLDYgQEAK
IC0gKHZvaWQpX3NlbmROZXR3b3JrUHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseSBXS19BUElf
QVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogLSAodm9pZClf
c2VuZE5ldHdvcmtQcm9jZXNzRGlkUmVzdW1lIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAtICh2b2lkKV90ZXJtaW5hdGVTZXJ2aWNlV29ya2Vy
UHJvY2Vzc2VzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkpOwotLSAo
dm9pZClfZGlzYWJsZVNlcnZpY2VXb3JrZXJQcm9jZXNzVGVybWluYXRpb25EZWxheSBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjApKTsKIAogLy8gVGVzdCBvbmx5LgogLSAo
cGlkX3QpX25ldHdvcmtQcm9jZXNzSWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEw
LjEzKSwgaW9zKDExLjApKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJh
dGlvbi5oCShyZXZpc2lvbiAyNTAzNzcpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaAkod29ya2luZyBjb3B5KQpA
QCAtNjAsNiArNjAsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEu
CiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSwgc2V0dGVyPV9zZXRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGlyZWN0b3J5OikgTlNVUkwgKl9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7CiBAcHJvcGVydHkg
KG5vbmF0b21pYywgY29weSwgc2V0dGVyPV9zZXRDYWNoZVN0b3JhZ2VEaXJlY3Rvcnk6KSBOU1VS
TCAqX2NhY2hlU3RvcmFnZURpcmVjdG9yeSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQp
LCBpb3MoMTEuMykpOwogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0U2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeTopIE5TVVJMICpfc2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbkRpcmVjdG9yeSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3Mo
MTEuMykpOworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgc2VydmljZVdvcmtlclByb2Nlc3NU
ZXJtaW5hdGlvbkRlbGF5RW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOwogQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5
KSBOU1VSTCAqbmV0d29ya0NhY2hlRGlyZWN0b3J5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tf
TUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFi
bGUsIGNvcHkpIE5TVVJMICpkZXZpY2VJZEhhc2hTYWx0c1N0b3JhZ2VEaXJlY3RvcnkgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIEBwcm9wZXJ0
eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSkgTlNVUkwgKmFwcGxpY2F0aW9uQ2FjaGVEaXJl
Y3RvcnkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0
YVN0b3JlQ29uZmlndXJhdGlvbi5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24ubW0JKHJldmlz
aW9uIDI1MDM3NykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJz
aXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbQkod29ya2luZyBjb3B5KQpAQCAtMjA5LDYgKzIw
OSwxNiBAQCAtICh2b2lkKV9zZXRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyCiAgICAgX2Nv
bmZpZ3VyYXRpb24tPnNldFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnkodXJsLnBh
dGgpOwogfQogCistIChCT09MKXNlcnZpY2VXb3JrZXJQcm9jZXNzVGVybWluYXRpb25EZWxheUVu
YWJsZWQKK3sKKyAgICByZXR1cm4gX2NvbmZpZ3VyYXRpb24tPnNlcnZpY2VXb3JrZXJQcm9jZXNz
VGVybWluYXRpb25EZWxheUVuYWJsZWQoKTsKK30KKworLSAodm9pZClzZXRTZXJ2aWNlV29ya2Vy
UHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXlFbmFibGVkOihCT09MKWVuYWJsZWQKK3sKKyAgICBfY29u
ZmlndXJhdGlvbi0+c2V0U2VydmljZVdvcmtlclByb2Nlc3NUZXJtaW5hdGlvbkRlbGF5RW5hYmxl
ZChlbmFibGVkKTsKK30KKwogLSAodm9pZClzZXRTb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50
aWZpZXI6KE5TU3RyaW5nICopaWRlbnRpZmllcgogewogICAgIF9jb25maWd1cmF0aW9uLT5zZXRT
b3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIoaWRlbnRpZmllcik7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJh
dGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURh
dGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uY3BwCShyZXZpc2lvbiAyNTAzNzcpCisr
KyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29u
ZmlndXJhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzLDYgKzUzLDcgQEAgUmVmPFdlYnNp
dGVEYXRhU3RvcmVDb25maWd1cmF0aW9uPiBXZWJzaQogewogICAgIGF1dG8gY29weSA9IFdlYnNp
dGVEYXRhU3RvcmVDb25maWd1cmF0aW9uOjpjcmVhdGUobV9pc1BlcnNpc3RlbnQpOwogCisgICAg
Y29weS0+bV9zZXJ2aWNlV29ya2VyUHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXlFbmFibGVkID0gdGhp
cy0+bV9zZXJ2aWNlV29ya2VyUHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXlFbmFibGVkOwogICAgIGNv
cHktPm1fZmFzdFNlcnZlclRydXN0RXZhbHVhdGlvbkVuYWJsZWQgPSB0aGlzLT5tX2Zhc3RTZXJ2
ZXJUcnVzdEV2YWx1YXRpb25FbmFibGVkOwogICAgIGNvcHktPm1fbmV0d29ya0NhY2hlU3BlY3Vs
YXRpdmVWYWxpZGF0aW9uRW5hYmxlZCA9IHRoaXMtPm1fbmV0d29ya0NhY2hlU3BlY3VsYXRpdmVW
YWxpZGF0aW9uRW5hYmxlZDsKICAgICBjb3B5LT5tX2NhY2hlU3RvcmFnZURpcmVjdG9yeSA9IHRo
aXMtPm1fY2FjaGVTdG9yYWdlRGlyZWN0b3J5OwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3Jl
Q29uZmlndXJhdGlvbi5oCShyZXZpc2lvbiAyNTAzNzcpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xMDgsNiArMTA4LDkgQEAgcHVibGljOgogICAgIGNvbnN0IFN0cmluZyYgc2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeTsgfQogICAgIHZvaWQgc2V0U2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbkRpcmVjdG9yeShTdHJpbmcmJiBkaXJlY3RvcnkpIHsgbV9zZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5ID0gV1RGTW92ZShkaXJlY3RvcnkpOyB9CiAgICAgCisg
ICAgYm9vbCBzZXJ2aWNlV29ya2VyUHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXlFbmFibGVkKCkgY29u
c3QgeyByZXR1cm4gbV9zZXJ2aWNlV29ya2VyUHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXlFbmFibGVk
OyB9CisgICAgdm9pZCBzZXRTZXJ2aWNlV29ya2VyUHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXlFbmFi
bGVkKGJvb2wgZW5hYmxlZCkgeyBtX3NlcnZpY2VXb3JrZXJQcm9jZXNzVGVybWluYXRpb25EZWxh
eUVuYWJsZWQgPSBlbmFibGVkOyB9CisKICAgICBjb25zdCBTdHJpbmcmIHNvdXJjZUFwcGxpY2F0
aW9uQnVuZGxlSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlQXBwbGljYXRpb25C
dW5kbGVJZGVudGlmaWVyOyB9CiAgICAgdm9pZCBzZXRTb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlk
ZW50aWZpZXIoU3RyaW5nJiYgaWRlbnRpZmllcikgeyBtX3NvdXJjZUFwcGxpY2F0aW9uQnVuZGxl
SWRlbnRpZmllciA9IFdURk1vdmUoaWRlbnRpZmllcik7IH0KIApAQCAtMTYxLDYgKzE2NCw3IEBA
IHByaXZhdGU6CiAgICAgYm9vbCBtX2FsbG93c0NlbGx1bGFyQWNjZXNzIHsgdHJ1ZSB9OwogICAg
IGJvb2wgbV9mYXN0U2VydmVyVHJ1c3RFdmFsdWF0aW9uRW5hYmxlZCB7IGZhbHNlIH07CiAgICAg
Ym9vbCBtX25ldHdvcmtDYWNoZVNwZWN1bGF0aXZlVmFsaWRhdGlvbkVuYWJsZWQgeyBmYWxzZSB9
OworICAgIGJvb2wgbV9zZXJ2aWNlV29ya2VyUHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXlFbmFibGVk
IHsgdHJ1ZSB9OwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFJldGFpblB0cjxDRkRpY3Rpb25h
cnlSZWY+IG1fcHJveHlDb25maWd1cmF0aW9uOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vi
c2l0ZURhdGFTdG9yZUNvY29hLm1tCShyZXZpc2lvbiAyNTAzNzcpCisrKyBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW0JKHdv
cmtpbmcgY29weSkKQEAgLTE3Niw2ICsxNzYsNyBAQCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVy
cyBXZWJzaXRlRGF0YVN0CiAgICAgcGFyYW1ldGVycy5zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
RGlyZWN0b3J5ID0gcmVzb2x2ZWRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5KCk7
CiAgICAgaWYgKCFwYXJhbWV0ZXJzLnNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3Rvcnku
aXNFbXB0eSgpKQogICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JSZWFk
V3JpdGVEaXJlY3RvcnkocGFyYW1ldGVycy5zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0
b3J5LCBwYXJhbWV0ZXJzLnNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnlFeHRlbnNp
b25IYW5kbGUpOworICAgIHBhcmFtZXRlcnMuc2VydmljZVdvcmtlclByb2Nlc3NUZXJtaW5hdGlv
bkRlbGF5RW5hYmxlZCA9IG1fY29uZmlndXJhdGlvbi0+c2VydmljZVdvcmtlclByb2Nlc3NUZXJt
aW5hdGlvbkRlbGF5RW5hYmxlZCgpOwogI2VuZGlmCiAKICAgICBwYXJhbWV0ZXJzLmxvY2FsU3Rv
cmFnZURpcmVjdG9yeSA9IHJlc29sdmVkTG9jYWxTdG9yYWdlRGlyZWN0b3J5KCk7CkluZGV4OiBU
b29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAy
NTA0MjApCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMiBA
QAorMjAxOS0wOS0yNyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3Jn
PgorCisgICAgICAgIE1vdmUgc2VydmljZSB3b3JrZXIgcHJvY2VzcyB0ZXJtaW5hdGlvbiBkZWxh
eSBkaXNhYmxpbmcgZnJvbSBwcm9jZXNzIHBvb2wgdG8gd2Vic2l0ZSBkYXRhIHN0b3JlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDIzMDgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tOgorCiAyMDE5LTA5LTI3
ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIElzTlNV
UkxTZXNzaW9uV2ViU29ja2V0RW5hYmxlZCBhbiBleHBlcmltZW50YWwgZmxhZwpJbmRleDogVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2
aWNlV29ya2VyQmFzaWMubW0JKHJldmlzaW9uIDI1MDM1MCkKKysrIFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC0xNzAwLDE0ICsxNzAwLDIxIEBAIFRFU1QoU2VydmljZVdvcmtlcnMsIFByb2Nlc3NQZXJT
aXRlKQogCiAgICAgW1dLV2Vic2l0ZURhdGFTdG9yZSBfYWxsb3dXZWJzaXRlRGF0YVJlY29yZHNG
b3JBbGxPcmlnaW5zXTsKIAorICAgIC8vIE5vcm1hbGx5LCBzZXJ2aWNlIHdvcmtlcnMgZ2V0IHRl
cm1pbmF0ZWQgc2V2ZXJhbCBzZWNvbmRzIGFmdGVyIHRoZWlyIGNsaWVudHMgYXJlIGdvbmUuCisg
ICAgLy8gRGlzYWJsZSB0aGlzIGRlbGF5IGZvciB0aGUgcHVycG9zZSBvZiB0ZXN0aW5nLgorICAg
IF9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uICpkYXRhU3RvcmVDb25maWd1cmF0aW9u
ID0gW1tbX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdIGF1dG9y
ZWxlYXNlXTsKKyAgICBkYXRhU3RvcmVDb25maWd1cmF0aW9uLnNlcnZpY2VXb3JrZXJQcm9jZXNz
VGVybWluYXRpb25EZWxheUVuYWJsZWQgPSBOTzsKKyAgICBhdXRvIGRhdGFTdG9yZSA9IGFkb3B0
TlMoW1tXS1dlYnNpdGVEYXRhU3RvcmUgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246ZGF0
YVN0b3JlQ29uZmlndXJhdGlvbl0pOworICAgIAogICAgIC8vIFN0YXJ0IHdpdGggYSBjbGVhbiBz
bGF0ZSBkYXRhIHN0b3JlCi0gICAgW1tXS1dlYnNpdGVEYXRhU3RvcmUgZGVmYXVsdERhdGFTdG9y
ZV0gcmVtb3ZlRGF0YU9mVHlwZXM6W1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxXZWJzaXRlRGF0YVR5
cGVzXSBtb2RpZmllZFNpbmNlOltOU0RhdGUgZGlzdGFudFBhc3RdIGNvbXBsZXRpb25IYW5kbGVy
Ol4oKSB7CisgICAgW2RhdGFTdG9yZSByZW1vdmVEYXRhT2ZUeXBlczpbV0tXZWJzaXRlRGF0YVN0
b3JlIGFsbFdlYnNpdGVEYXRhVHlwZXNdIG1vZGlmaWVkU2luY2U6W05TRGF0ZSBkaXN0YW50UGFz
dF0gY29tcGxldGlvbkhhbmRsZXI6XigpIHsKICAgICAgICAgZG9uZSA9IHRydWU7CiAgICAgfV07
CiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKICAgICBkb25lID0gZmFsc2U7
CiAKICAgICBSZXRhaW5QdHI8V0tXZWJWaWV3Q29uZmlndXJhdGlvbj4gY29uZmlndXJhdGlvbiA9
IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgY29u
ZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlID0gZGF0YVN0b3JlLmdldCgpOwogCiAg
ICAgUmV0YWluUHRyPFNXTWVzc2FnZUhhbmRsZXI+IG1lc3NhZ2VIYW5kbGVyID0gYWRvcHROUyhb
W1NXTWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRdKTsKICAgICBbW2NvbmZpZ3VyYXRpb24gdXNl
ckNvbnRlbnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjptZXNzYWdlSGFuZGxl
ci5nZXQoKSBuYW1lOkAic3ciXTsKQEAgLTE3MjgsMTAgKzE3MzUsNiBAQCBURVNUKFNlcnZpY2VX
b3JrZXJzLCBQcm9jZXNzUGVyU2l0ZSkKICAgICBbcHJvY2Vzc1Bvb2wgX3JlZ2lzdGVyVVJMU2No
ZW1lU2VydmljZVdvcmtlcnNDYW5IYW5kbGU6QCJzdzEiXTsKICAgICBbcHJvY2Vzc1Bvb2wgX3Jl
Z2lzdGVyVVJMU2NoZW1lU2VydmljZVdvcmtlcnNDYW5IYW5kbGU6QCJzdzIiXTsKIAotICAgIC8v
IE5vcm1hbGx5LCBzZXJ2aWNlIHdvcmtlcnMgZ2V0IHRlcm1pbmF0ZWQgc2V2ZXJhbCBzZWNvbmRz
IGFmdGVyIHRoZWlyIGNsaWVudHMgYXJlIGdvbmUuCi0gICAgLy8gRGlzYWJsZSB0aGlzIGRlbGF5
IGZvciB0aGUgcHVycG9zZSBvZiB0ZXN0aW5nLgotICAgIFtwcm9jZXNzUG9vbCBfZGlzYWJsZVNl
cnZpY2VXb3JrZXJQcm9jZXNzVGVybWluYXRpb25EZWxheV07Ci0KICAgICBSZXRhaW5QdHI8V0tX
ZWJWaWV3PiB3ZWJWaWV3MSA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJh
bWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9u
LmdldCgpXSk7CiAKICAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QxID0gW05TVVJMUmVxdWVzdCBy
ZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInN3MTovL2hvc3QvbWFpbi5odG1s
Il1dOwo=
</data>
<flag name="review"
          id="395449"
          type_id="1"
          status="+"
          setter="cdumez"
    />
    <flag name="commit-queue"
          id="395457"
          type_id="3"
          status="-"
          setter="cdumez"
    />
          </attachment>
      

    </bug>

</bugzilla>