<?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>192077</bug_id>
          
          <creation_ts>2018-11-28 08:45:51 -0800</creation_ts>
          <short_desc>[WebDriver] Fix clang warnings in Session.cpp</short_desc>
          <delta_ts>2018-11-29 01:15:26 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebDriver</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="Tomas Popela">tpopela</reporter>
          <assigned_to name="Tomas Popela">tpopela</assigned_to>
          <cc>bburg</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1482435</commentid>
    <comment_count>0</comment_count>
    <who name="Tomas Popela">tpopela</who>
    <bug_when>2018-11-28 08:45:51 -0800</bug_when>
    <thetext>../../Source/WebDriver/Session.cpp:244:23: warning: lambda capture &apos;this&apos; is not used [-Wunused-lambda-capture]
        dismissAlert([this, errorResult = WTFMove(result), completionHandler = WTFMove(completionHandler)](CommandResult&amp;&amp; result) mutable {
                      ^~~~~
../../Source/WebDriver/Session.cpp:257:22: warning: lambda capture &apos;this&apos; is not used [-Wunused-lambda-capture]
        acceptAlert([this, errorResult = WTFMove(result), completionHandler = WTFMove(completionHandler)](CommandResult&amp;&amp; result) mutable {
                     ^~~~~
../../Source/WebDriver/Session.cpp:269:19: warning: lambda capture &apos;this&apos; is not used [-Wunused-lambda-capture]
    getAlertText([this, completionHandler = WTFMove(completionHandler)](CommandResult&amp;&amp; result) {
                  ^~~~~
../../Source/WebDriver/Session.cpp:331:84: warning: lambda capture &apos;this&apos; is not used [-Wunused-lambda-capture]
        m_host-&gt;sendCommandToBackend(&quot;getBrowsingContext&quot;_s, WTFMove(parameters), [this, protectedThis = makeRef(*this), completionHandler = WTFMove(completionHandler)](SessionHost::CommandResponse&amp;&amp; response) {
                                                                                   ^~~~~
../../Source/WebDriver/Session.cpp:451:92: warning: lambda capture &apos;this&apos; is not used [-Wunused-lambda-capture]
        m_host-&gt;sendCommandToBackend(&quot;evaluateJavaScriptFunction&quot;_s, WTFMove(parameters), [this, protectedThis = makeRef(*this), completionHandler = WTFMove(completionHandler)](SessionHost::CommandResponse&amp;&amp; response) {
                                                                                           ^~~~~
../../Source/WebDriver/Session.cpp:480:80: warning: lambda capture &apos;this&apos; is not used [-Wunused-lambda-capture]
    m_host-&gt;sendCommandToBackend(&quot;getBrowsingContext&quot;_s, WTFMove(parameters), [this, protectedThis = makeRef(*this), completionHandler = WTFMove(completionHandler)](SessionHost::CommandResponse&amp;&amp; response) {
                                                                               ^~~~~
../../Source/WebDriver/Session.cpp:558:84: warning: lambda capture &apos;this&apos; is not used [-Wunused-lambda-capture]
    m_host-&gt;sendCommandToBackend(&quot;getBrowsingContexts&quot;_s, JSON::Object::create(), [this, protectedThis = makeRef(*this), completionHandler = WTFMove(completionHandler)](SessionHost::CommandResponse&amp;&amp; response) {
                                                                                   ^~~~~
../../Source/WebDriver/Session.cpp:689:80: warning: lambda capture &apos;this&apos; is not used [-Wunused-lambda-capture]
    m_host-&gt;sendCommandToBackend(&quot;getBrowsingContext&quot;_s, WTFMove(parameters), [this, protectedThis = makeRef(*this), completionHandler = WTFMove(completionHandler)](SessionHost::CommandResponse&amp;&amp; response) {
                                                                               ^~~~~
../../Source/WebDriver/Session.cpp:918:82: warning: lambda capture &apos;this&apos; is not used [-Wunused-lambda-capture]
    m_host-&gt;sendCommandToBackend(&quot;computeElementLayout&quot;_s, WTFMove(parameters), [this, protectedThis = makeRef(*this), completionHandler = WTFMove(completionHandler)](SessionHost::CommandResponse&amp;&amp; response) mutable {
                                                                                 ^~~~~
../../Source/WebDriver/Session.cpp:1115:92: warning: lambda capture &apos;this&apos; is not used [-Wunused-lambda-capture]
        m_host-&gt;sendCommandToBackend(&quot;evaluateJavaScriptFunction&quot;_s, WTFMove(parameters), [this, protectedThis = makeRef(*this), completionHandler = WTFMove(completionHandler)](SessionHost::CommandResponse&amp;&amp; response) {
                                                                                           ^~~~~
../../Source/WebDriver/Session.cpp:1166:92: warning: lambda capture &apos;this&apos; is not used [-Wunused-lambda-capture]
        m_host-&gt;sendCommandToBackend(&quot;evaluateJavaScriptFunction&quot;_s, WTFMove(parameters), [this, protectedThis = makeRef(*this), completionHandler = WTFMove(completionHandler)](SessionHost::CommandResponse&amp;&amp; response) {
                                                                                           ^~~~~
../../Source/WebDriver/Session.cpp:1207:92: warning: lambda capture &apos;this&apos; is not used [-Wunused-lambda-capture]
        m_host-&gt;sendCommandToBackend(&quot;evaluateJavaScriptFunction&quot;_s, WTFMove(parameters), [this, protectedThis = makeRef(*this), completionHandler = WTFMove(completionHandler)](SessionHost::CommandResponse&amp;&amp; response) {
                                                                                           ^~~~~
../../Source/WebDriver/Session.cpp:1239:47: warning: lambda capture &apos;this&apos; is not used [-Wunused-lambda-capture]
        computeElementLayout(elementID, { }, [this, protectedThis = makeRef(*this), completionHandler = WTFMove(completionHandler)](std::optional&lt;Rect&gt;&amp;&amp; rect, std::optional&lt;Point&gt;&amp;&amp;, bool, RefPtr&lt;JSON::Object&gt;&amp;&amp; error) {
                                              ^~~~~
../../Source/WebDriver/Session.cpp:1275:92: warning: lambda capture &apos;this&apos; is not used [-Wunused-lambda-capture]
        m_host-&gt;sendCommandToBackend(&quot;evaluateJavaScriptFunction&quot;_s, WTFMove(parameters), [this, protectedThis = makeRef(*this), completionHandler = WTFMove(completionHandler)](SessionHost::CommandResponse&amp;&amp; response) {
                                                                                           ^~~~~
../../Source/WebDriver/Session.cpp:1316:92: warning: lambda capture &apos;this&apos; is not used [-Wunused-lambda-capture]
        m_host-&gt;sendCommandToBackend(&quot;evaluateJavaScriptFunction&quot;_s, WTFMove(parameters), [this, protectedThis = makeRef(*this), completionHandler = WTFMove(completionHandler)](SessionHost::CommandResponse&amp;&amp; response) {
                                                                                           ^~~~~
../../Source/WebDriver/Session.cpp:1358:92: warning: lambda capture &apos;this&apos; is not used [-Wunused-lambda-capture]
        m_host-&gt;sendCommandToBackend(&quot;evaluateJavaScriptFunction&quot;_s, WTFMove(parameters), [this, protectedThis = makeRef(*this), completionHandler = WTFMove(completionHandler)](SessionHost::CommandResponse&amp;&amp; response) {
                                                                                           ^~~~~
../../Source/WebDriver/Session.cpp:1399:92: warning: lambda capture &apos;this&apos; is not used [-Wunused-lambda-capture]
        m_host-&gt;sendCommandToBackend(&quot;evaluateJavaScriptFunction&quot;_s, WTFMove(parameters), [this, protectedThis = makeRef(*this), completionHandler = WTFMove(completionHandler)](SessionHost::CommandResponse&amp;&amp; response) {
                                                                                           ^~~~~
../../Source/WebDriver/Session.cpp:1440:92: warning: lambda capture &apos;this&apos; is not used [-Wunused-lambda-capture]
        m_host-&gt;sendCommandToBackend(&quot;evaluateJavaScriptFunction&quot;_s, WTFMove(parameters), [this, protectedThis = makeRef(*this), completionHandler = WTFMove(completionHandler)](SessionHost::CommandResponse&amp;&amp; response) {
                                                                                           ^~~~~
../../Source/WebDriver/Session.cpp:1501:81: warning: lambda capture &apos;this&apos; is not used [-Wunused-lambda-capture]
    m_host-&gt;sendCommandToBackend(&quot;selectOptionElement&quot;_s, WTFMove(parameters), [this, protectedThis = makeRef(*this), completionHandler = WTFMove(completionHandler)](SessionHost::CommandResponse&amp;&amp; response) {
                                                                                ^~~~~
../../Source/WebDriver/Session.cpp:1532:94: warning: lambda capture &apos;isObscured&apos; is not used [-Wunused-lambda-capture]
        getElementTagName(elementID, [this, elementID, inViewCenter = WTFMove(inViewCenter), isObscured, completionHandler = WTFMove(completionHandler)](CommandResult&amp;&amp; result) mutable {
                                                                                           ~~^~~~~~~~~~
../../Source/WebDriver/Session.cpp:1572:88: warning: lambda capture &apos;this&apos; is not used [-Wunused-lambda-capture]
    m_host-&gt;sendCommandToBackend(&quot;evaluateJavaScriptFunction&quot;_s, WTFMove(parameters), [this, protectedThis = makeRef(*this), completionHandler = WTFMove(completionHandler)](SessionHost::CommandResponse&amp;&amp; response) {
                                                                                       ^~~~~
../../Source/WebDriver/Session.cpp:1824:12: warning: local variable &apos;resultValue&apos; will be copied despite being returned by name [-Wreturn-std-move]
    return resultValue;
           ^~~~~~~~~~~
../../Source/WebDriver/Session.cpp:1824:12: note: call &apos;std::move&apos; explicitly to avoid copying
    return resultValue;
           ^~~~~~~~~~~
           std::move(resultValue)
../../Source/WebDriver/Session.cpp:1928:85: warning: lambda capture &apos;this&apos; is not used [-Wunused-lambda-capture]
    m_host-&gt;sendCommandToBackend(&quot;performMouseInteraction&quot;_s, WTFMove(parameters), [this, protectedThis = makeRef(*this), completionHandler = WTFMove(completionHandler)](SessionHost::CommandResponse&amp;&amp; response) {
                                                                                    ^~~~~
../../Source/WebDriver/Session.cpp:1962:89: warning: lambda capture &apos;this&apos; is not used [-Wunused-lambda-capture]
    m_host-&gt;sendCommandToBackend(&quot;performKeyboardInteractions&quot;_s, WTFMove(parameters), [this, protectedThis = makeRef(*this), completionHandler = WTFMove(completionHandler)](SessionHost::CommandResponse&amp;&amp; response) {
                                                                                        ^~~~~
../../Source/WebDriver/Session.cpp:2049:79: warning: lambda capture &apos;this&apos; is not used [-Wunused-lambda-capture]
        m_host-&gt;sendCommandToBackend(&quot;getAllCookies&quot;_s, WTFMove(parameters), [this, protectedThis = makeRef(*this), completionHandler = WTFMove(completionHandler)](SessionHost::CommandResponse&amp;&amp; response) mutable {
                                                                              ^~~~~
../../Source/WebDriver/Session.cpp:2082:20: warning: lambda capture &apos;this&apos; is not used [-Wunused-lambda-capture]
    getAllCookies([this, name, completionHandler = WTFMove(completionHandler)](CommandResult&amp;&amp; result) mutable {
                   ^~~~~
../../Source/WebDriver/Session.cpp:2119:81: warning: lambda capture &apos;this&apos; is not used [-Wunused-lambda-capture]
        m_host-&gt;sendCommandToBackend(&quot;addSingleCookie&quot;_s, WTFMove(parameters), [this, protectedThis = makeRef(*this), completionHandler = WTFMove(completionHandler)](SessionHost::CommandResponse&amp;&amp; response) {
                                                                                ^~~~~
../../Source/WebDriver/Session.cpp:2144:84: warning: lambda capture &apos;this&apos; is not used [-Wunused-lambda-capture]
        m_host-&gt;sendCommandToBackend(&quot;deleteSingleCookie&quot;_s, WTFMove(parameters), [this, protectedThis = makeRef(*this), completionHandler = WTFMove(completionHandler)](SessionHost::CommandResponse&amp;&amp; response) {
                                                                                   ^~~~~
../../Source/WebDriver/Session.cpp:2168:82: warning: lambda capture &apos;this&apos; is not used [-Wunused-lambda-capture]
        m_host-&gt;sendCommandToBackend(&quot;deleteAllCookies&quot;_s, WTFMove(parameters), [this, protectedThis = makeRef(*this), completionHandler = WTFMove(completionHandler)](SessionHost::CommandResponse&amp;&amp; response) {
                                                                                 ^~~~~
../../Source/WebDriver/Session.cpp:2340:92: warning: lambda capture &apos;this&apos; is not used [-Wunused-lambda-capture]
        m_host-&gt;sendCommandToBackend(&quot;performInteractionSequence&quot;_s, WTFMove(parameters), [this, protectedThis = makeRef(*this), completionHandler = WTFMove(completionHandler)] (SessionHost::CommandResponse&amp;&amp; response) {
                                                                                           ^~~~~
../../Source/WebDriver/Session.cpp:2362:87: warning: lambda capture &apos;this&apos; is not used [-Wunused-lambda-capture]
    m_host-&gt;sendCommandToBackend(&quot;cancelInteractionSequence&quot;_s, WTFMove(parameters), [this, protectedThis = makeRef(*this), completionHandler = WTFMove(completionHandler)](SessionHost::CommandResponse&amp;&amp; response) {
                                                                                      ^~~~~
../../Source/WebDriver/Session.cpp:2380:92: warning: lambda capture &apos;this&apos; is not used [-Wunused-lambda-capture]
    m_host-&gt;sendCommandToBackend(&quot;dismissCurrentJavaScriptDialog&quot;_s, WTFMove(parameters), [this, protectedThis = makeRef(*this), completionHandler = WTFMove(completionHandler)](SessionHost::CommandResponse&amp;&amp; response) {
                                                                                           ^~~~~
../../Source/WebDriver/Session.cpp:2398:91: warning: lambda capture &apos;this&apos; is not used [-Wunused-lambda-capture]
    m_host-&gt;sendCommandToBackend(&quot;acceptCurrentJavaScriptDialog&quot;_s, WTFMove(parameters), [this, protectedThis = makeRef(*this), completionHandler = WTFMove(completionHandler)](SessionHost::CommandResponse&amp;&amp; response) {
                                                                                          ^~~~~
../../Source/WebDriver/Session.cpp:2416:94: warning: lambda capture &apos;this&apos; is not used [-Wunused-lambda-capture]
    m_host-&gt;sendCommandToBackend(&quot;messageOfCurrentJavaScriptDialog&quot;_s, WTFMove(parameters), [this, protectedThis = makeRef(*this), completionHandler = WTFMove(completionHandler)](SessionHost::CommandResponse&amp;&amp; response) {
                                                                                             ^~~~~
../../Source/WebDriver/Session.cpp:2440:100: warning: lambda capture &apos;this&apos; is not used [-Wunused-lambda-capture]
    m_host-&gt;sendCommandToBackend(&quot;setUserInputForCurrentJavaScriptPrompt&quot;_s, WTFMove(parameters), [this, protectedThis = makeRef(*this), completionHandler = WTFMove(completionHandler)](SessionHost::CommandResponse&amp;&amp; response) {
                                                                                                   ^~~~~
../../Source/WebDriver/Session.cpp:2471:80: warning: lambda capture &apos;this&apos; is not used [-Wunused-lambda-capture]
        m_host-&gt;sendCommandToBackend(&quot;takeScreenshot&quot;_s, WTFMove(parameters), [this, protectedThis = makeRef(*this), completionHandler = WTFMove(completionHandler)](SessionHost::CommandResponse&amp;&amp; response) mutable {
                                                                               ^~~~~
36 warnings generated.
[207/1963] Building CXX object Source/WebDriver/CMakeFiles/WebDriver.dir/WebDriverService.cpp.o
../../Source/WebDriver/WebDriverService.cpp:761:21: warning: lambda capture &apos;this&apos; is not used [-Wunused-lambda-capture]
    session-&gt;close([this, session, completionHandler = WTFMove(completionHandler)](CommandResult&amp;&amp; result) mutable {
                    ^~~~~
1 warning generated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1482436</commentid>
    <comment_count>1</comment_count>
      <attachid>355876</attachid>
    <who name="Tomas Popela">tpopela</who>
    <bug_when>2018-11-28 08:48:34 -0800</bug_when>
    <thetext>Created attachment 355876
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1482865</commentid>
    <comment_count>2</comment_count>
      <attachid>355876</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-11-29 01:14:19 -0800</bug_when>
    <thetext>Comment on attachment 355876
Patch

Clearing flags on attachment: 355876

Committed r238662: &lt;https://trac.webkit.org/changeset/238662&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1482866</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-11-29 01:14:21 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1482867</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-11-29 01:15:26 -0800</bug_when>
    <thetext>&lt;rdar://problem/46336398&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>355876</attachid>
            <date>2018-11-28 08:48:34 -0800</date>
            <delta_ts>2018-11-29 01:14:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192077-20181128174833.patch</filename>
            <type>text/plain</type>
            <size>33805</size>
            <attacher name="Tomas Popela">tpopela</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4NjA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVy
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJEcml2ZXIvQ2hhbmdlTG9nCmluZGV4IGM0ZTA2YjFjY2Fk
MTc4ZDVlZGYzZTlmNDhmZmU1ZjA2NWRkYmRjZDUuLmM4ZjEzNDAxMzMyYTlmNzg5NWRlYTJiNTRh
MzZkZDg0ODk5Mzg4NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJEcml2ZXIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTAgQEAKKzIwMTgtMTEt
MjggIFRvbWFzIFBvcGVsYSAgPHRwb3BlbGFAcmVkaGF0LmNvbT4KKworICAgICAgICBbV2ViRHJp
dmVyXSBGaXggY2xhbmcgd2FybmluZ3MgaW4gU2Vzc2lvbi5jcHAKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MjA3NworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2Vzc2lvbi5jcHA6CisgICAgICAgIChX
ZWJEcml2ZXI6OlNlc3Npb246OmRpc21pc3NBbmROb3RpZnlBbGVydCk6CisgICAgICAgIChXZWJE
cml2ZXI6OlNlc3Npb246OmFjY2VwdEFuZE5vdGlmeUFsZXJ0KToKKyAgICAgICAgKFdlYkRyaXZl
cjo6U2Vzc2lvbjo6cmVwb3J0VW5leHBlY3RlZEFsZXJ0T3Blbik6CisgICAgICAgIChXZWJEcml2
ZXI6OlNlc3Npb246OmdldEN1cnJlbnRVUkwpOgorICAgICAgICAoV2ViRHJpdmVyOjpTZXNzaW9u
OjpnZXRUaXRsZSk6CisgICAgICAgIChXZWJEcml2ZXI6OlNlc3Npb246OmdldFdpbmRvd0hhbmRs
ZSk6CisgICAgICAgIChXZWJEcml2ZXI6OlNlc3Npb246OmdldFdpbmRvd0hhbmRsZXMpOgorICAg
ICAgICAoV2ViRHJpdmVyOjpTZXNzaW9uOjpnZXRUb3BsZXZlbEJyb3dzaW5nQ29udGV4dFJlY3Qp
OgorICAgICAgICAoV2ViRHJpdmVyOjpTZXNzaW9uOjpjb21wdXRlRWxlbWVudExheW91dCk6Cisg
ICAgICAgIChXZWJEcml2ZXI6OlNlc3Npb246OmlzRWxlbWVudFNlbGVjdGVkKToKKyAgICAgICAg
KFdlYkRyaXZlcjo6U2Vzc2lvbjo6Z2V0RWxlbWVudFRleHQpOgorICAgICAgICAoV2ViRHJpdmVy
OjpTZXNzaW9uOjpnZXRFbGVtZW50VGFnTmFtZSk6CisgICAgICAgIChXZWJEcml2ZXI6OlNlc3Np
b246OmdldEVsZW1lbnRSZWN0KToKKyAgICAgICAgKFdlYkRyaXZlcjo6U2Vzc2lvbjo6aXNFbGVt
ZW50RW5hYmxlZCk6CisgICAgICAgIChXZWJEcml2ZXI6OlNlc3Npb246OmlzRWxlbWVudERpc3Bs
YXllZCk6CisgICAgICAgIChXZWJEcml2ZXI6OlNlc3Npb246OmdldEVsZW1lbnRBdHRyaWJ1dGUp
OgorICAgICAgICAoV2ViRHJpdmVyOjpTZXNzaW9uOjpnZXRFbGVtZW50UHJvcGVydHkpOgorICAg
ICAgICAoV2ViRHJpdmVyOjpTZXNzaW9uOjpnZXRFbGVtZW50Q1NTVmFsdWUpOgorICAgICAgICAo
V2ViRHJpdmVyOjpTZXNzaW9uOjpzZWxlY3RPcHRpb25FbGVtZW50KToKKyAgICAgICAgKFdlYkRy
aXZlcjo6U2Vzc2lvbjo6ZWxlbWVudENsaWNrKToKKyAgICAgICAgKFdlYkRyaXZlcjo6U2Vzc2lv
bjo6ZWxlbWVudENsZWFyKToKKyAgICAgICAgKFdlYkRyaXZlcjo6U2Vzc2lvbjo6aGFuZGxlU2Ny
aXB0UmVzdWx0KToKKyAgICAgICAgKFdlYkRyaXZlcjo6U2Vzc2lvbjo6cGVyZm9ybU1vdXNlSW50
ZXJhY3Rpb24pOgorICAgICAgICAoV2ViRHJpdmVyOjpTZXNzaW9uOjpwZXJmb3JtS2V5Ym9hcmRJ
bnRlcmFjdGlvbnMpOgorICAgICAgICAoV2ViRHJpdmVyOjpTZXNzaW9uOjpnZXRBbGxDb29raWVz
KToKKyAgICAgICAgKFdlYkRyaXZlcjo6U2Vzc2lvbjo6Z2V0TmFtZWRDb29raWUpOgorICAgICAg
ICAoV2ViRHJpdmVyOjpTZXNzaW9uOjphZGRDb29raWUpOgorICAgICAgICAoV2ViRHJpdmVyOjpT
ZXNzaW9uOjpkZWxldGVDb29raWUpOgorICAgICAgICAoV2ViRHJpdmVyOjpTZXNzaW9uOjpkZWxl
dGVBbGxDb29raWVzKToKKyAgICAgICAgKFdlYkRyaXZlcjo6U2Vzc2lvbjo6cGVyZm9ybUFjdGlv
bnMpOgorICAgICAgICAoV2ViRHJpdmVyOjpTZXNzaW9uOjpyZWxlYXNlQWN0aW9ucyk6CisgICAg
ICAgIChXZWJEcml2ZXI6OlNlc3Npb246OmRpc21pc3NBbGVydCk6CisgICAgICAgIChXZWJEcml2
ZXI6OlNlc3Npb246OmFjY2VwdEFsZXJ0KToKKyAgICAgICAgKFdlYkRyaXZlcjo6U2Vzc2lvbjo6
Z2V0QWxlcnRUZXh0KToKKyAgICAgICAgKFdlYkRyaXZlcjo6U2Vzc2lvbjo6c2VuZEFsZXJ0VGV4
dCk6CisgICAgICAgIChXZWJEcml2ZXI6OlNlc3Npb246OnRha2VTY3JlZW5zaG90KToKKyAgICAg
ICAgKiBXZWJEcml2ZXJTZXJ2aWNlLmNwcDoKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVy
U2VydmljZTo6ZGVsZXRlU2Vzc2lvbik6CisKIDIwMTgtMTEtMDIgIFphbiBEb2JlcnNlayAgPHpk
b2JlcnNla0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtXUEVdIFdlYkRyaXZlcjogc3VwcG9ydCB2
YWxpZGF0aW5nIGFuZCBwYXJzaW5nIHRoZSAnY2VydGlmaWNhdGVzJyBjYXBhYmlsaXR5CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwIGIvU291cmNlL1dlYkRyaXZlci9T
ZXNzaW9uLmNwcAppbmRleCA3YTYzNzMyNzYxODA4Njg5MmFlZTIwODgyY2FiY2Y1N2U3ZWU3MTY2
Li5mYTg2MWVjMjFjNGEyMTUzMmM3OWVmZmJiYzVhZTgyODhjODc2ZDhiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lv
bi5jcHAKQEAgLTI0MSw3ICsyNDEsNyBAQCB2b2lkIFNlc3Npb246OmhhbmRsZVVuZXhwZWN0ZWRB
bGVydE9wZW4oRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJiBjb21wbAogdm9pZCBT
ZXNzaW9uOjpkaXNtaXNzQW5kTm90aWZ5QWxlcnQoRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3Vs
dCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICByZXBvcnRVbmV4cGVjdGVkQWxlcnRP
cGVuKFt0aGlzLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
XShDb21tYW5kUmVzdWx0JiYgcmVzdWx0KSBtdXRhYmxlIHsKLSAgICAgICAgZGlzbWlzc0FsZXJ0
KFt0aGlzLCBlcnJvclJlc3VsdCA9IFdURk1vdmUocmVzdWx0KSwgY29tcGxldGlvbkhhbmRsZXIg
PSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oQ29tbWFuZFJlc3VsdCYmIHJlc3VsdCkgbXV0
YWJsZSB7CisgICAgICAgIGRpc21pc3NBbGVydChbZXJyb3JSZXN1bHQgPSBXVEZNb3ZlKHJlc3Vs
dCksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKENvbW1h
bmRSZXN1bHQmJiByZXN1bHQpIG11dGFibGUgewogICAgICAgICAgICAgaWYgKHJlc3VsdC5pc0Vy
cm9yKCkpIHsKICAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJlc3Vs
dCkpOwogICAgICAgICAgICAgICAgIHJldHVybjsKQEAgLTI1NCw3ICsyNTQsNyBAQCB2b2lkIFNl
c3Npb246OmRpc21pc3NBbmROb3RpZnlBbGVydChGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0
JiYpPiYmIGNvbXBsZXRpbwogdm9pZCBTZXNzaW9uOjphY2NlcHRBbmROb3RpZnlBbGVydChGdW5j
dGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAg
IHJlcG9ydFVuZXhwZWN0ZWRBbGVydE9wZW4oW3RoaXMsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcildKENvbW1hbmRSZXN1bHQmJiByZXN1bHQpIG11dGFibGUg
ewotICAgICAgICBhY2NlcHRBbGVydChbdGhpcywgZXJyb3JSZXN1bHQgPSBXVEZNb3ZlKHJlc3Vs
dCksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKENvbW1h
bmRSZXN1bHQmJiByZXN1bHQpIG11dGFibGUgeworICAgICAgICBhY2NlcHRBbGVydChbZXJyb3JS
ZXN1bHQgPSBXVEZNb3ZlKHJlc3VsdCksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcildKENvbW1hbmRSZXN1bHQmJiByZXN1bHQpIG11dGFibGUgewogICAgICAg
ICAgICAgaWYgKHJlc3VsdC5pc0Vycm9yKCkpIHsKICAgICAgICAgICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihXVEZNb3ZlKHJlc3VsdCkpOwogICAgICAgICAgICAgICAgIHJldHVybjsKQEAgLTI2
Niw3ICsyNjYsNyBAQCB2b2lkIFNlc3Npb246OmFjY2VwdEFuZE5vdGlmeUFsZXJ0KEZ1bmN0aW9u
PHZvaWQgKENvbW1hbmRSZXN1bHQmJik+JiYgY29tcGxldGlvbgogCiB2b2lkIFNlc3Npb246OnJl
cG9ydFVuZXhwZWN0ZWRBbGVydE9wZW4oRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBnZXRBbGVydFRleHQoW3RoaXMsIGNvbXBsZXRp
b25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKENvbW1hbmRSZXN1bHQmJiBy
ZXN1bHQpIHsKKyAgICBnZXRBbGVydFRleHQoW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcildKENvbW1hbmRSZXN1bHQmJiByZXN1bHQpIHsKICAgICAgICAgc3Rk
OjpvcHRpb25hbDxTdHJpbmc+IGFsZXJ0VGV4dDsKICAgICAgICAgaWYgKCFyZXN1bHQuaXNFcnJv
cigpKSB7CiAgICAgICAgICAgICBTdHJpbmcgdmFsdWVTdHJpbmc7CkBAIC0zMjgsNyArMzI4LDcg
QEAgdm9pZCBTZXNzaW9uOjpnZXRDdXJyZW50VVJMKEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1
bHQmJik+JiYgY29tcGxldGlvbkhhbmRsZXIKIAogICAgICAgICBSZWZQdHI8SlNPTjo6T2JqZWN0
PiBwYXJhbWV0ZXJzID0gSlNPTjo6T2JqZWN0OjpjcmVhdGUoKTsKICAgICAgICAgcGFyYW1ldGVy
cy0+c2V0U3RyaW5nKCJoYW5kbGUiX3MsIG1fdG9wbGV2ZWxCcm93c2luZ0NvbnRleHQudmFsdWUo
KSk7Ci0gICAgICAgIG1faG9zdC0+c2VuZENvbW1hbmRUb0JhY2tlbmQoImdldEJyb3dzaW5nQ29u
dGV4dCJfcywgV1RGTW92ZShwYXJhbWV0ZXJzKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtl
UmVmKCp0aGlzKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KV0oU2Vzc2lvbkhvc3Q6OkNvbW1hbmRSZXNwb25zZSYmIHJlc3BvbnNlKSB7CisgICAgICAgIG1f
aG9zdC0+c2VuZENvbW1hbmRUb0JhY2tlbmQoImdldEJyb3dzaW5nQ29udGV4dCJfcywgV1RGTW92
ZShwYXJhbWV0ZXJzKSwgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY29tcGxldGlv
bkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oU2Vzc2lvbkhvc3Q6OkNvbW1h
bmRSZXNwb25zZSYmIHJlc3BvbnNlKSB7CiAgICAgICAgICAgICBpZiAocmVzcG9uc2UuaXNFcnJv
ciB8fCAhcmVzcG9uc2UucmVzcG9uc2VPYmplY3QpIHsKICAgICAgICAgICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKFdURk1vdmUocmVzcG9uc2UucmVzcG9uc2VP
YmplY3QpKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwpAQCAtNDQ4LDcgKzQ0OCw3IEBAIHZv
aWQgU2Vzc2lvbjo6Z2V0VGl0bGUoRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKICAgICAgICAgcGFyYW1ldGVycy0+c2V0U3RyaW5nKCJicm93c2lu
Z0NvbnRleHRIYW5kbGUiX3MsIG1fdG9wbGV2ZWxCcm93c2luZ0NvbnRleHQudmFsdWUoKSk7CiAg
ICAgICAgIHBhcmFtZXRlcnMtPnNldFN0cmluZygiZnVuY3Rpb24iX3MsICJmdW5jdGlvbigpIHsg
cmV0dXJuIGRvY3VtZW50LnRpdGxlOyB9Il9zKTsKICAgICAgICAgcGFyYW1ldGVycy0+c2V0QXJy
YXkoImFyZ3VtZW50cyJfcywgSlNPTjo6QXJyYXk6OmNyZWF0ZSgpKTsKLSAgICAgICAgbV9ob3N0
LT5zZW5kQ29tbWFuZFRvQmFja2VuZCgiZXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24iX3MsIFdU
Rk1vdmUocGFyYW1ldGVycyksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyks
IGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKFNlc3Npb25I
b3N0OjpDb21tYW5kUmVzcG9uc2UmJiByZXNwb25zZSkgeworICAgICAgICBtX2hvc3QtPnNlbmRD
b21tYW5kVG9CYWNrZW5kKCJldmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbiJfcywgV1RGTW92ZShw
YXJhbWV0ZXJzKSwgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY29tcGxldGlvbkhh
bmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oU2Vzc2lvbkhvc3Q6OkNvbW1hbmRS
ZXNwb25zZSYmIHJlc3BvbnNlKSB7CiAgICAgICAgICAgICBpZiAocmVzcG9uc2UuaXNFcnJvciB8
fCAhcmVzcG9uc2UucmVzcG9uc2VPYmplY3QpIHsKICAgICAgICAgICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKFdURk1vdmUocmVzcG9uc2UucmVzcG9uc2VPYmpl
Y3QpKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwpAQCAtNDc3LDcgKzQ3Nyw3IEBAIHZvaWQg
U2Vzc2lvbjo6Z2V0V2luZG93SGFuZGxlKEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQmJik+
JiYgY29tcGxldGlvbkhhbmRsCiAKICAgICBSZWZQdHI8SlNPTjo6T2JqZWN0PiBwYXJhbWV0ZXJz
ID0gSlNPTjo6T2JqZWN0OjpjcmVhdGUoKTsKICAgICBwYXJhbWV0ZXJzLT5zZXRTdHJpbmcoImhh
bmRsZSJfcywgbV90b3BsZXZlbEJyb3dzaW5nQ29udGV4dC52YWx1ZSgpKTsKLSAgICBtX2hvc3Qt
PnNlbmRDb21tYW5kVG9CYWNrZW5kKCJnZXRCcm93c2luZ0NvbnRleHQiX3MsIFdURk1vdmUocGFy
YW1ldGVycyksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNvbXBsZXRp
b25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKFNlc3Npb25Ib3N0OjpDb21t
YW5kUmVzcG9uc2UmJiByZXNwb25zZSkgeworICAgIG1faG9zdC0+c2VuZENvbW1hbmRUb0JhY2tl
bmQoImdldEJyb3dzaW5nQ29udGV4dCJfcywgV1RGTW92ZShwYXJhbWV0ZXJzKSwgW3Byb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKV0oU2Vzc2lvbkhvc3Q6OkNvbW1hbmRSZXNwb25zZSYmIHJlc3BvbnNlKSB7
CiAgICAgICAgIGlmIChyZXNwb25zZS5pc0Vycm9yIHx8ICFyZXNwb25zZS5yZXNwb25zZU9iamVj
dCkgewogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChX
VEZNb3ZlKHJlc3BvbnNlLnJlc3BvbnNlT2JqZWN0KSkpOwogICAgICAgICAgICAgcmV0dXJuOwpA
QCAtNTU1LDcgKzU1NSw3IEBAIHZvaWQgU2Vzc2lvbjo6c3dpdGNoVG9XaW5kb3coY29uc3QgU3Ry
aW5nJiB3aW5kb3dIYW5kbGUsIEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSCiAKIHZvaWQgU2Vzc2lv
bjo6Z2V0V2luZG93SGFuZGxlcyhGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQogewotICAgIG1faG9zdC0+c2VuZENvbW1hbmRUb0JhY2tlbmQoImdl
dEJyb3dzaW5nQ29udGV4dHMiX3MsIEpTT046Ok9iamVjdDo6Y3JlYXRlKCksIFt0aGlzLCBwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcildKFNlc3Npb25Ib3N0OjpDb21tYW5kUmVzcG9uc2UmJiByZXNwb25z
ZSkgeworICAgIG1faG9zdC0+c2VuZENvbW1hbmRUb0JhY2tlbmQoImdldEJyb3dzaW5nQ29udGV4
dHMiX3MsIEpTT046Ok9iamVjdDo6Y3JlYXRlKCksIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigq
dGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKFNl
c3Npb25Ib3N0OjpDb21tYW5kUmVzcG9uc2UmJiByZXNwb25zZSkgewogICAgICAgICBpZiAocmVz
cG9uc2UuaXNFcnJvciB8fCAhcmVzcG9uc2UucmVzcG9uc2VPYmplY3QpIHsKICAgICAgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoV1RGTW92ZShyZXNwb25zZS5y
ZXNwb25zZU9iamVjdCkpKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTY4Niw3ICs2ODYsNyBA
QCB2b2lkIFNlc3Npb246OmdldFRvcGxldmVsQnJvd3NpbmdDb250ZXh0UmVjdChGdW5jdGlvbjx2
b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmCiB7CiAgICAgUmVmUHRyPEpTT046Ok9iamVjdD4gcGFy
YW1ldGVycyA9IEpTT046Ok9iamVjdDo6Y3JlYXRlKCk7CiAgICAgcGFyYW1ldGVycy0+c2V0U3Ry
aW5nKCJoYW5kbGUiX3MsIG1fdG9wbGV2ZWxCcm93c2luZ0NvbnRleHQudmFsdWUoKSk7Ci0gICAg
bV9ob3N0LT5zZW5kQ29tbWFuZFRvQmFja2VuZCgiZ2V0QnJvd3NpbmdDb250ZXh0Il9zLCBXVEZN
b3ZlKHBhcmFtZXRlcnMpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBj
b21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShTZXNzaW9uSG9z
dDo6Q29tbWFuZFJlc3BvbnNlJiYgcmVzcG9uc2UpIHsKKyAgICBtX2hvc3QtPnNlbmRDb21tYW5k
VG9CYWNrZW5kKCJnZXRCcm93c2luZ0NvbnRleHQiX3MsIFdURk1vdmUocGFyYW1ldGVycyksIFtw
cm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcildKFNlc3Npb25Ib3N0OjpDb21tYW5kUmVzcG9uc2UmJiByZXNw
b25zZSkgewogICAgICAgICBpZiAocmVzcG9uc2UuaXNFcnJvciB8fCAhcmVzcG9uc2UucmVzcG9u
c2VPYmplY3QpIHsKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6
OmZhaWwoV1RGTW92ZShyZXNwb25zZS5yZXNwb25zZU9iamVjdCkpKTsKICAgICAgICAgICAgIHJl
dHVybjsKQEAgLTkxNSw3ICs5MTUsNyBAQCB2b2lkIFNlc3Npb246OmNvbXB1dGVFbGVtZW50TGF5
b3V0KGNvbnN0IFN0cmluZyYgZWxlbWVudElELCBPcHRpb25TZXQ8RWxlbWVudExheQogICAgIHBh
cmFtZXRlcnMtPnNldFN0cmluZygibm9kZUhhbmRsZSJfcywgZWxlbWVudElEKTsKICAgICBwYXJh
bWV0ZXJzLT5zZXRCb29sZWFuKCJzY3JvbGxJbnRvVmlld0lmTmVlZGVkIl9zLCBvcHRpb25zLmNv
bnRhaW5zKEVsZW1lbnRMYXlvdXRPcHRpb246OlNjcm9sbEludG9WaWV3SWZOZWVkZWQpKTsKICAg
ICBwYXJhbWV0ZXJzLT5zZXRTdHJpbmcoImNvb3JkaW5hdGVTeXN0ZW0iX3MsIG9wdGlvbnMuY29u
dGFpbnMoRWxlbWVudExheW91dE9wdGlvbjo6VXNlVmlld3BvcnRDb29yZGluYXRlcykgPyAiTGF5
b3V0Vmlld3BvcnQiX3MgOiAiUGFnZSJfcyk7Ci0gICAgbV9ob3N0LT5zZW5kQ29tbWFuZFRvQmFj
a2VuZCgiY29tcHV0ZUVsZW1lbnRMYXlvdXQiX3MsIFdURk1vdmUocGFyYW1ldGVycyksIFt0aGlz
LCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcildKFNlc3Npb25Ib3N0OjpDb21tYW5kUmVzcG9uc2UmJiBy
ZXNwb25zZSkgbXV0YWJsZSB7CisgICAgbV9ob3N0LT5zZW5kQ29tbWFuZFRvQmFja2VuZCgiY29t
cHV0ZUVsZW1lbnRMYXlvdXQiX3MsIFdURk1vdmUocGFyYW1ldGVycyksIFtwcm90ZWN0ZWRUaGlz
ID0gbWFrZVJlZigqdGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcildKFNlc3Npb25Ib3N0OjpDb21tYW5kUmVzcG9uc2UmJiByZXNwb25zZSkgbXV0YWJs
ZSB7CiAgICAgICAgIGlmIChyZXNwb25zZS5pc0Vycm9yIHx8ICFyZXNwb25zZS5yZXNwb25zZU9i
amVjdCkgewogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoc3RkOjpudWxsb3B0LCBzdGQ6
Om51bGxvcHQsIGZhbHNlLCBXVEZNb3ZlKHJlc3BvbnNlLnJlc3BvbnNlT2JqZWN0KSk7CiAgICAg
ICAgICAgICByZXR1cm47CkBAIC0xMTEyLDcgKzExMTIsNyBAQCB2b2lkIFNlc3Npb246OmlzRWxl
bWVudFNlbGVjdGVkKGNvbnN0IFN0cmluZyYgZWxlbWVudElELCBGdW5jdGlvbjx2b2lkIChDb21t
YW5kUgogICAgICAgICAgICAgcGFyYW1ldGVycy0+c2V0U3RyaW5nKCJmcmFtZUhhbmRsZSJfcywg
bV9jdXJyZW50QnJvd3NpbmdDb250ZXh0LnZhbHVlKCkpOwogICAgICAgICBwYXJhbWV0ZXJzLT5z
ZXRTdHJpbmcoImZ1bmN0aW9uIl9zLCBFbGVtZW50QXR0cmlidXRlSmF2YVNjcmlwdCk7CiAgICAg
ICAgIHBhcmFtZXRlcnMtPnNldEFycmF5KCJhcmd1bWVudHMiX3MsIFdURk1vdmUoYXJndW1lbnRz
KSk7Ci0gICAgICAgIG1faG9zdC0+c2VuZENvbW1hbmRUb0JhY2tlbmQoImV2YWx1YXRlSmF2YVNj
cmlwdEZ1bmN0aW9uIl9zLCBXVEZNb3ZlKHBhcmFtZXRlcnMpLCBbdGhpcywgcHJvdGVjdGVkVGhp
cyA9IG1ha2VSZWYoKnRoaXMpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpXShTZXNzaW9uSG9zdDo6Q29tbWFuZFJlc3BvbnNlJiYgcmVzcG9uc2UpIHsKKyAg
ICAgICAgbV9ob3N0LT5zZW5kQ29tbWFuZFRvQmFja2VuZCgiZXZhbHVhdGVKYXZhU2NyaXB0RnVu
Y3Rpb24iX3MsIFdURk1vdmUocGFyYW1ldGVycyksIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigq
dGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKFNl
c3Npb25Ib3N0OjpDb21tYW5kUmVzcG9uc2UmJiByZXNwb25zZSkgewogICAgICAgICAgICAgaWYg
KHJlc3BvbnNlLmlzRXJyb3IgfHwgIXJlc3BvbnNlLnJlc3BvbnNlT2JqZWN0KSB7CiAgICAgICAg
ICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChXVEZNb3ZlKHJl
c3BvbnNlLnJlc3BvbnNlT2JqZWN0KSkpOwogICAgICAgICAgICAgICAgIHJldHVybjsKQEAgLTEx
NjMsNyArMTE2Myw3IEBAIHZvaWQgU2Vzc2lvbjo6Z2V0RWxlbWVudFRleHQoY29uc3QgU3RyaW5n
JiBlbGVtZW50SUQsIEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1CiAgICAgICAgIC8vIEZJWE1F
OiBBZGQgYW4gYXRvbSB0byBwcm9wZXJseSBpbXBsZW1lbnQgdGhpcyBpbnN0ZWFkIG9mIGp1c3Qg
dXNpbmcgaW5uZXJUZXh0LgogICAgICAgICBwYXJhbWV0ZXJzLT5zZXRTdHJpbmcoImZ1bmN0aW9u
Il9zLCAiZnVuY3Rpb24oZWxlbWVudCkgeyByZXR1cm4gZWxlbWVudC5pbm5lclRleHQucmVwbGFj
ZSgvXlteXFxTXFx4YTBdK3xbXlxcU1xceGEwXSskL2csICcnKSB9Il9zKTsKICAgICAgICAgcGFy
YW1ldGVycy0+c2V0QXJyYXkoImFyZ3VtZW50cyJfcywgV1RGTW92ZShhcmd1bWVudHMpKTsKLSAg
ICAgICAgbV9ob3N0LT5zZW5kQ29tbWFuZFRvQmFja2VuZCgiZXZhbHVhdGVKYXZhU2NyaXB0RnVu
Y3Rpb24iX3MsIFdURk1vdmUocGFyYW1ldGVycyksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZigqdGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cildKFNlc3Npb25Ib3N0OjpDb21tYW5kUmVzcG9uc2UmJiByZXNwb25zZSkgeworICAgICAgICBt
X2hvc3QtPnNlbmRDb21tYW5kVG9CYWNrZW5kKCJldmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbiJf
cywgV1RGTW92ZShwYXJhbWV0ZXJzKSwgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwg
Y29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oU2Vzc2lvbkhv
c3Q6OkNvbW1hbmRSZXNwb25zZSYmIHJlc3BvbnNlKSB7CiAgICAgICAgICAgICBpZiAocmVzcG9u
c2UuaXNFcnJvciB8fCAhcmVzcG9uc2UucmVzcG9uc2VPYmplY3QpIHsKICAgICAgICAgICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKFdURk1vdmUocmVzcG9uc2Uu
cmVzcG9uc2VPYmplY3QpKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTIwNCw3ICsx
MjA0LDcgQEAgdm9pZCBTZXNzaW9uOjpnZXRFbGVtZW50VGFnTmFtZShjb25zdCBTdHJpbmcmIGVs
ZW1lbnRJRCwgRnVuY3Rpb248dm9pZCAoQ29tbWFuZFIKICAgICAgICAgICAgIHBhcmFtZXRlcnMt
PnNldFN0cmluZygiZnJhbWVIYW5kbGUiX3MsIG1fY3VycmVudEJyb3dzaW5nQ29udGV4dC52YWx1
ZSgpKTsKICAgICAgICAgcGFyYW1ldGVycy0+c2V0U3RyaW5nKCJmdW5jdGlvbiJfcywgImZ1bmN0
aW9uKGVsZW1lbnQpIHsgcmV0dXJuIGVsZW1lbnQudGFnTmFtZS50b0xvd2VyQ2FzZSgpIH0iX3Mp
OwogICAgICAgICBwYXJhbWV0ZXJzLT5zZXRBcnJheSgiYXJndW1lbnRzIl9zLCBXVEZNb3ZlKGFy
Z3VtZW50cykpOwotICAgICAgICBtX2hvc3QtPnNlbmRDb21tYW5kVG9CYWNrZW5kKCJldmFsdWF0
ZUphdmFTY3JpcHRGdW5jdGlvbiJfcywgV1RGTW92ZShwYXJhbWV0ZXJzKSwgW3RoaXMsIHByb3Rl
Y3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKV0oU2Vzc2lvbkhvc3Q6OkNvbW1hbmRSZXNwb25zZSYmIHJlc3BvbnNl
KSB7CisgICAgICAgIG1faG9zdC0+c2VuZENvbW1hbmRUb0JhY2tlbmQoImV2YWx1YXRlSmF2YVNj
cmlwdEZ1bmN0aW9uIl9zLCBXVEZNb3ZlKHBhcmFtZXRlcnMpLCBbcHJvdGVjdGVkVGhpcyA9IG1h
a2VSZWYoKnRoaXMpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpXShTZXNzaW9uSG9zdDo6Q29tbWFuZFJlc3BvbnNlJiYgcmVzcG9uc2UpIHsKICAgICAgICAg
ICAgIGlmIChyZXNwb25zZS5pc0Vycm9yIHx8ICFyZXNwb25zZS5yZXNwb25zZU9iamVjdCkgewog
ICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoV1RG
TW92ZShyZXNwb25zZS5yZXNwb25zZU9iamVjdCkpKTsKICAgICAgICAgICAgICAgICByZXR1cm47
CkBAIC0xMjM2LDcgKzEyMzYsNyBAQCB2b2lkIFNlc3Npb246OmdldEVsZW1lbnRSZWN0KGNvbnN0
IFN0cmluZyYgZWxlbWVudElELCBGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdQogICAgICAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShyZXN1bHQpKTsKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQotICAgICAgICBjb21wdXRlRWxlbWVudExheW91dChlbGVtZW50SUQsIHsg
fSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY29tcGxldGlvbkhhbmRs
ZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oc3RkOjpvcHRpb25hbDxSZWN0PiYmIHJl
Y3QsIHN0ZDo6b3B0aW9uYWw8UG9pbnQ+JiYsIGJvb2wsIFJlZlB0cjxKU09OOjpPYmplY3Q+JiYg
ZXJyb3IpIHsKKyAgICAgICAgY29tcHV0ZUVsZW1lbnRMYXlvdXQoZWxlbWVudElELCB7IH0sIFtw
cm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcildKHN0ZDo6b3B0aW9uYWw8UmVjdD4mJiByZWN0LCBzdGQ6Om9w
dGlvbmFsPFBvaW50PiYmLCBib29sLCBSZWZQdHI8SlNPTjo6T2JqZWN0PiYmIGVycm9yKSB7CiAg
ICAgICAgICAgICBpZiAoIXJlY3QgfHwgZXJyb3IpIHsKICAgICAgICAgICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKFdURk1vdmUoZXJyb3IpKSk7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuOwpAQCAtMTI3Miw3ICsxMjcyLDcgQEAgdm9pZCBTZXNzaW9uOjppc0Vs
ZW1lbnRFbmFibGVkKGNvbnN0IFN0cmluZyYgZWxlbWVudElELCBGdW5jdGlvbjx2b2lkIChDb21t
YW5kUmUKICAgICAgICAgICAgIHBhcmFtZXRlcnMtPnNldFN0cmluZygiZnJhbWVIYW5kbGUiX3Ms
IG1fY3VycmVudEJyb3dzaW5nQ29udGV4dC52YWx1ZSgpKTsKICAgICAgICAgcGFyYW1ldGVycy0+
c2V0U3RyaW5nKCJmdW5jdGlvbiJfcywgImZ1bmN0aW9uKGVsZW1lbnQpIHsgcmV0dXJuIGVsZW1l
bnQuZGlzYWJsZWQgPT09IHVuZGVmaW5lZCA/IHRydWUgOiAhZWxlbWVudC5kaXNhYmxlZCB9Il9z
KTsKICAgICAgICAgcGFyYW1ldGVycy0+c2V0QXJyYXkoImFyZ3VtZW50cyJfcywgV1RGTW92ZShh
cmd1bWVudHMpKTsKLSAgICAgICAgbV9ob3N0LT5zZW5kQ29tbWFuZFRvQmFja2VuZCgiZXZhbHVh
dGVKYXZhU2NyaXB0RnVuY3Rpb24iX3MsIFdURk1vdmUocGFyYW1ldGVycyksIFt0aGlzLCBwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcildKFNlc3Npb25Ib3N0OjpDb21tYW5kUmVzcG9uc2UmJiByZXNwb25z
ZSkgeworICAgICAgICBtX2hvc3QtPnNlbmRDb21tYW5kVG9CYWNrZW5kKCJldmFsdWF0ZUphdmFT
Y3JpcHRGdW5jdGlvbiJfcywgV1RGTW92ZShwYXJhbWV0ZXJzKSwgW3Byb3RlY3RlZFRoaXMgPSBt
YWtlUmVmKCp0aGlzKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKV0oU2Vzc2lvbkhvc3Q6OkNvbW1hbmRSZXNwb25zZSYmIHJlc3BvbnNlKSB7CiAgICAgICAg
ICAgICBpZiAocmVzcG9uc2UuaXNFcnJvciB8fCAhcmVzcG9uc2UucmVzcG9uc2VPYmplY3QpIHsK
ICAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKFdU
Rk1vdmUocmVzcG9uc2UucmVzcG9uc2VPYmplY3QpKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
OwpAQCAtMTMxMyw3ICsxMzEzLDcgQEAgdm9pZCBTZXNzaW9uOjppc0VsZW1lbnREaXNwbGF5ZWQo
Y29uc3QgU3RyaW5nJiBlbGVtZW50SUQsIEZ1bmN0aW9uPHZvaWQgKENvbW1hbmQKICAgICAgICAg
ICAgIHBhcmFtZXRlcnMtPnNldFN0cmluZygiZnJhbWVIYW5kbGUiX3MsIG1fY3VycmVudEJyb3dz
aW5nQ29udGV4dC52YWx1ZSgpKTsKICAgICAgICAgcGFyYW1ldGVycy0+c2V0U3RyaW5nKCJmdW5j
dGlvbiJfcywgRWxlbWVudERpc3BsYXllZEphdmFTY3JpcHQpOwogICAgICAgICBwYXJhbWV0ZXJz
LT5zZXRBcnJheSgiYXJndW1lbnRzIl9zLCBXVEZNb3ZlKGFyZ3VtZW50cykpOwotICAgICAgICBt
X2hvc3QtPnNlbmRDb21tYW5kVG9CYWNrZW5kKCJldmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbiJf
cywgV1RGTW92ZShwYXJhbWV0ZXJzKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0
aGlzKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oU2Vz
c2lvbkhvc3Q6OkNvbW1hbmRSZXNwb25zZSYmIHJlc3BvbnNlKSB7CisgICAgICAgIG1faG9zdC0+
c2VuZENvbW1hbmRUb0JhY2tlbmQoImV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uIl9zLCBXVEZN
b3ZlKHBhcmFtZXRlcnMpLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjb21wbGV0
aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShTZXNzaW9uSG9zdDo6Q29t
bWFuZFJlc3BvbnNlJiYgcmVzcG9uc2UpIHsKICAgICAgICAgICAgIGlmIChyZXNwb25zZS5pc0Vy
cm9yIHx8ICFyZXNwb25zZS5yZXNwb25zZU9iamVjdCkgewogICAgICAgICAgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoV1RGTW92ZShyZXNwb25zZS5yZXNwb25z
ZU9iamVjdCkpKTsKICAgICAgICAgICAgICAgICByZXR1cm47CkBAIC0xMzU1LDcgKzEzNTUsNyBA
QCB2b2lkIFNlc3Npb246OmdldEVsZW1lbnRBdHRyaWJ1dGUoY29uc3QgU3RyaW5nJiBlbGVtZW50
SUQsIGNvbnN0IFN0cmluZyYgYXR0cmlidQogICAgICAgICAgICAgcGFyYW1ldGVycy0+c2V0U3Ry
aW5nKCJmcmFtZUhhbmRsZSJfcywgbV9jdXJyZW50QnJvd3NpbmdDb250ZXh0LnZhbHVlKCkpOwog
ICAgICAgICBwYXJhbWV0ZXJzLT5zZXRTdHJpbmcoImZ1bmN0aW9uIl9zLCBFbGVtZW50QXR0cmli
dXRlSmF2YVNjcmlwdCk7CiAgICAgICAgIHBhcmFtZXRlcnMtPnNldEFycmF5KCJhcmd1bWVudHMi
X3MsIFdURk1vdmUoYXJndW1lbnRzKSk7Ci0gICAgICAgIG1faG9zdC0+c2VuZENvbW1hbmRUb0Jh
Y2tlbmQoImV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uIl9zLCBXVEZNb3ZlKHBhcmFtZXRlcnMp
LCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjb21wbGV0aW9uSGFuZGxl
ciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShTZXNzaW9uSG9zdDo6Q29tbWFuZFJlc3Bv
bnNlJiYgcmVzcG9uc2UpIHsKKyAgICAgICAgbV9ob3N0LT5zZW5kQ29tbWFuZFRvQmFja2VuZCgi
ZXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24iX3MsIFdURk1vdmUocGFyYW1ldGVycyksIFtwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcildKFNlc3Npb25Ib3N0OjpDb21tYW5kUmVzcG9uc2UmJiByZXNwb25z
ZSkgewogICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmlzRXJyb3IgfHwgIXJlc3BvbnNlLnJlc3Bv
bnNlT2JqZWN0KSB7CiAgICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJl
c3VsdDo6ZmFpbChXVEZNb3ZlKHJlc3BvbnNlLnJlc3BvbnNlT2JqZWN0KSkpOwogICAgICAgICAg
ICAgICAgIHJldHVybjsKQEAgLTEzOTYsNyArMTM5Niw3IEBAIHZvaWQgU2Vzc2lvbjo6Z2V0RWxl
bWVudFByb3BlcnR5KGNvbnN0IFN0cmluZyYgZWxlbWVudElELCBjb25zdCBTdHJpbmcmIHByb3Bl
cnR5CiAgICAgICAgICAgICBwYXJhbWV0ZXJzLT5zZXRTdHJpbmcoImZyYW1lSGFuZGxlIl9zLCBt
X2N1cnJlbnRCcm93c2luZ0NvbnRleHQudmFsdWUoKSk7CiAgICAgICAgIHBhcmFtZXRlcnMtPnNl
dFN0cmluZygiZnVuY3Rpb24iX3MsIG1ha2VTdHJpbmcoImZ1bmN0aW9uKGVsZW1lbnQpIHsgcmV0
dXJuIGVsZW1lbnQuIiwgcHJvcGVydHksICI7IH0iKSk7CiAgICAgICAgIHBhcmFtZXRlcnMtPnNl
dEFycmF5KCJhcmd1bWVudHMiX3MsIFdURk1vdmUoYXJndW1lbnRzKSk7Ci0gICAgICAgIG1faG9z
dC0+c2VuZENvbW1hbmRUb0JhY2tlbmQoImV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uIl9zLCBX
VEZNb3ZlKHBhcmFtZXRlcnMpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMp
LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShTZXNzaW9u
SG9zdDo6Q29tbWFuZFJlc3BvbnNlJiYgcmVzcG9uc2UpIHsKKyAgICAgICAgbV9ob3N0LT5zZW5k
Q29tbWFuZFRvQmFja2VuZCgiZXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24iX3MsIFdURk1vdmUo
cGFyYW1ldGVycyksIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNvbXBsZXRpb25I
YW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKFNlc3Npb25Ib3N0OjpDb21tYW5k
UmVzcG9uc2UmJiByZXNwb25zZSkgewogICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmlzRXJyb3Ig
fHwgIXJlc3BvbnNlLnJlc3BvbnNlT2JqZWN0KSB7CiAgICAgICAgICAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChXVEZNb3ZlKHJlc3BvbnNlLnJlc3BvbnNlT2Jq
ZWN0KSkpOwogICAgICAgICAgICAgICAgIHJldHVybjsKQEAgLTE0MzcsNyArMTQzNyw3IEBAIHZv
aWQgU2Vzc2lvbjo6Z2V0RWxlbWVudENTU1ZhbHVlKGNvbnN0IFN0cmluZyYgZWxlbWVudElELCBj
b25zdCBTdHJpbmcmIGNzc1Byb3BlCiAgICAgICAgICAgICBwYXJhbWV0ZXJzLT5zZXRTdHJpbmco
ImZyYW1lSGFuZGxlIl9zLCBtX2N1cnJlbnRCcm93c2luZ0NvbnRleHQudmFsdWUoKSk7CiAgICAg
ICAgIHBhcmFtZXRlcnMtPnNldFN0cmluZygiZnVuY3Rpb24iX3MsIG1ha2VTdHJpbmcoImZ1bmN0
aW9uKGVsZW1lbnQpIHsgcmV0dXJuIGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5
bGUoZWxlbWVudCkuZ2V0UHJvcGVydHlWYWx1ZSgnIiwgY3NzUHJvcGVydHksICInKTsgfSIpKTsK
ICAgICAgICAgcGFyYW1ldGVycy0+c2V0QXJyYXkoImFyZ3VtZW50cyJfcywgV1RGTW92ZShhcmd1
bWVudHMpKTsKLSAgICAgICAgbV9ob3N0LT5zZW5kQ29tbWFuZFRvQmFja2VuZCgiZXZhbHVhdGVK
YXZhU2NyaXB0RnVuY3Rpb24iX3MsIFdURk1vdmUocGFyYW1ldGVycyksIFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcildKFNlc3Npb25Ib3N0OjpDb21tYW5kUmVzcG9uc2UmJiByZXNwb25zZSkg
eworICAgICAgICBtX2hvc3QtPnNlbmRDb21tYW5kVG9CYWNrZW5kKCJldmFsdWF0ZUphdmFTY3Jp
cHRGdW5jdGlvbiJfcywgV1RGTW92ZShwYXJhbWV0ZXJzKSwgW3Byb3RlY3RlZFRoaXMgPSBtYWtl
UmVmKCp0aGlzKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KV0oU2Vzc2lvbkhvc3Q6OkNvbW1hbmRSZXNwb25zZSYmIHJlc3BvbnNlKSB7CiAgICAgICAgICAg
ICBpZiAocmVzcG9uc2UuaXNFcnJvciB8fCAhcmVzcG9uc2UucmVzcG9uc2VPYmplY3QpIHsKICAg
ICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKFdURk1v
dmUocmVzcG9uc2UucmVzcG9uc2VPYmplY3QpKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwpA
QCAtMTQ5OCw3ICsxNDk4LDcgQEAgdm9pZCBTZXNzaW9uOjpzZWxlY3RPcHRpb25FbGVtZW50KGNv
bnN0IFN0cmluZyYgZWxlbWVudElELCBGdW5jdGlvbjx2b2lkIChDb21tYW4KICAgICBwYXJhbWV0
ZXJzLT5zZXRTdHJpbmcoImJyb3dzaW5nQ29udGV4dEhhbmRsZSJfcywgbV90b3BsZXZlbEJyb3dz
aW5nQ29udGV4dC52YWx1ZSgpKTsKICAgICBwYXJhbWV0ZXJzLT5zZXRTdHJpbmcoImZyYW1lSGFu
ZGxlIl9zLCBtX2N1cnJlbnRCcm93c2luZ0NvbnRleHQudmFsdWVfb3IoZW1wdHlTdHJpbmcoKSkp
OwogICAgIHBhcmFtZXRlcnMtPnNldFN0cmluZygibm9kZUhhbmRsZSJfcywgZWxlbWVudElEKTsK
LSAgICBtX2hvc3QtPnNlbmRDb21tYW5kVG9CYWNrZW5kKCJzZWxlY3RPcHRpb25FbGVtZW50Il9z
LCBXVEZNb3ZlKHBhcmFtZXRlcnMpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRo
aXMpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShTZXNz
aW9uSG9zdDo6Q29tbWFuZFJlc3BvbnNlJiYgcmVzcG9uc2UpIHsKKyAgICBtX2hvc3QtPnNlbmRD
b21tYW5kVG9CYWNrZW5kKCJzZWxlY3RPcHRpb25FbGVtZW50Il9zLCBXVEZNb3ZlKHBhcmFtZXRl
cnMpLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjb21wbGV0aW9uSGFuZGxlciA9
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShTZXNzaW9uSG9zdDo6Q29tbWFuZFJlc3BvbnNl
JiYgcmVzcG9uc2UpIHsKICAgICAgICAgaWYgKHJlc3BvbnNlLmlzRXJyb3IpIHsKICAgICAgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoV1RGTW92ZShyZXNwb25z
ZS5yZXNwb25zZU9iamVjdCkpKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTE1MjksNyArMTUy
OSw3IEBAIHZvaWQgU2Vzc2lvbjo6ZWxlbWVudENsaWNrKGNvbnN0IFN0cmluZyYgZWxlbWVudElE
LCBGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KIAotICAgICAgICBnZXRFbGVtZW50VGFnTmFtZShlbGVtZW50SUQsIFt0aGlzLCBlbGVt
ZW50SUQsIGluVmlld0NlbnRlciA9IFdURk1vdmUoaW5WaWV3Q2VudGVyKSwgaXNPYnNjdXJlZCwg
Y29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oQ29tbWFuZFJl
c3VsdCYmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGdldEVsZW1lbnRUYWdOYW1lKGVsZW1l
bnRJRCwgW3RoaXMsIGVsZW1lbnRJRCwgaW5WaWV3Q2VudGVyID0gV1RGTW92ZShpblZpZXdDZW50
ZXIpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShDb21t
YW5kUmVzdWx0JiYgcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgICAgIGJvb2wgaXNPcHRpb25F
bGVtZW50ID0gZmFsc2U7CiAgICAgICAgICAgICBpZiAoIXJlc3VsdC5pc0Vycm9yKCkpIHsKICAg
ICAgICAgICAgICAgICBTdHJpbmcgdGFnTmFtZTsKQEAgLTE1NjksNyArMTU2OSw3IEBAIHZvaWQg
U2Vzc2lvbjo6ZWxlbWVudENsZWFyKGNvbnN0IFN0cmluZyYgZWxlbWVudElELCBGdW5jdGlvbjx2
b2lkIChDb21tYW5kUmVzdWx0CiAgICAgICAgIHBhcmFtZXRlcnMtPnNldFN0cmluZygiZnJhbWVI
YW5kbGUiX3MsIG1fY3VycmVudEJyb3dzaW5nQ29udGV4dC52YWx1ZSgpKTsKICAgICBwYXJhbWV0
ZXJzLT5zZXRTdHJpbmcoImZ1bmN0aW9uIl9zLCBGb3JtRWxlbWVudENsZWFySmF2YVNjcmlwdCk7
CiAgICAgcGFyYW1ldGVycy0+c2V0QXJyYXkoImFyZ3VtZW50cyJfcywgV1RGTW92ZShhcmd1bWVu
dHMpKTsKLSAgICBtX2hvc3QtPnNlbmRDb21tYW5kVG9CYWNrZW5kKCJldmFsdWF0ZUphdmFTY3Jp
cHRGdW5jdGlvbiJfcywgV1RGTW92ZShwYXJhbWV0ZXJzKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMg
PSBtYWtlUmVmKCp0aGlzKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKV0oU2Vzc2lvbkhvc3Q6OkNvbW1hbmRSZXNwb25zZSYmIHJlc3BvbnNlKSB7CisgICAg
bV9ob3N0LT5zZW5kQ29tbWFuZFRvQmFja2VuZCgiZXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24i
X3MsIFdURk1vdmUocGFyYW1ldGVycyksIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyks
IGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKFNlc3Npb25I
b3N0OjpDb21tYW5kUmVzcG9uc2UmJiByZXNwb25zZSkgewogICAgICAgICBpZiAocmVzcG9uc2Uu
aXNFcnJvcikgewogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6
ZmFpbChXVEZNb3ZlKHJlc3BvbnNlLnJlc3BvbnNlT2JqZWN0KSkpOwogICAgICAgICAgICAgcmV0
dXJuOwpAQCAtMTgyMSw3ICsxODIxLDcgQEAgUmVmUHRyPEpTT046OlZhbHVlPiBTZXNzaW9uOjpo
YW5kbGVTY3JpcHRSZXN1bHQoUmVmUHRyPEpTT046OlZhbHVlPiYmIHJlc3VsdFZhbHUKICAgICAg
ICAgcmV0dXJuIHJldHVyblZhbHVlT2JqZWN0OwogICAgIH0KIAotICAgIHJldHVybiByZXN1bHRW
YWx1ZTsKKyAgICByZXR1cm4gV1RGTW92ZShyZXN1bHRWYWx1ZSk7CiB9CiAKIHZvaWQgU2Vzc2lv
bjo6ZXhlY3V0ZVNjcmlwdChjb25zdCBTdHJpbmcmIHNjcmlwdCwgUmVmUHRyPEpTT046OkFycmF5
PiYmIGFyZ3VtZW50c0FycmF5LCBFeGVjdXRlU2NyaXB0TW9kZSBtb2RlLCBGdW5jdGlvbjx2b2lk
IChDb21tYW5kUmVzdWx0JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtMTkyNSw3ICsxOTI1
LDcgQEAgdm9pZCBTZXNzaW9uOjpwZXJmb3JtTW91c2VJbnRlcmFjdGlvbihpbnQgeCwgaW50IHks
IE1vdXNlQnV0dG9uIGJ1dHRvbiwgTW91c2VJbnQKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAg
IHBhcmFtZXRlcnMtPnNldEFycmF5KCJtb2RpZmllcnMiX3MsIEpTT046OkFycmF5OjpjcmVhdGUo
KSk7Ci0gICAgbV9ob3N0LT5zZW5kQ29tbWFuZFRvQmFja2VuZCgicGVyZm9ybU1vdXNlSW50ZXJh
Y3Rpb24iX3MsIFdURk1vdmUocGFyYW1ldGVycyksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZigqdGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cildKFNlc3Npb25Ib3N0OjpDb21tYW5kUmVzcG9uc2UmJiByZXNwb25zZSkgeworICAgIG1faG9z
dC0+c2VuZENvbW1hbmRUb0JhY2tlbmQoInBlcmZvcm1Nb3VzZUludGVyYWN0aW9uIl9zLCBXVEZN
b3ZlKHBhcmFtZXRlcnMpLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjb21wbGV0
aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShTZXNzaW9uSG9zdDo6Q29t
bWFuZFJlc3BvbnNlJiYgcmVzcG9uc2UpIHsKICAgICAgICAgaWYgKHJlc3BvbnNlLmlzRXJyb3Ip
IHsKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoV1RG
TW92ZShyZXNwb25zZS5yZXNwb25zZU9iamVjdCkpKTsKICAgICAgICAgICAgIHJldHVybjsKQEAg
LTE5NTksNyArMTk1OSw3IEBAIHZvaWQgU2Vzc2lvbjo6cGVyZm9ybUtleWJvYXJkSW50ZXJhY3Rp
b25zKFZlY3RvcjxLZXlib2FyZEludGVyYWN0aW9uPiYmIGludGVyYWN0CiAgICAgICAgIGludGVy
YWN0aW9uc0FycmF5LT5wdXNoT2JqZWN0KFdURk1vdmUoaW50ZXJhY3Rpb25PYmplY3QpKTsKICAg
ICB9CiAgICAgcGFyYW1ldGVycy0+c2V0QXJyYXkoImludGVyYWN0aW9ucyJfcywgV1RGTW92ZShp
bnRlcmFjdGlvbnNBcnJheSkpOwotICAgIG1faG9zdC0+c2VuZENvbW1hbmRUb0JhY2tlbmQoInBl
cmZvcm1LZXlib2FyZEludGVyYWN0aW9ucyJfcywgV1RGTW92ZShwYXJhbWV0ZXJzKSwgW3RoaXMs
IHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oU2Vzc2lvbkhvc3Q6OkNvbW1hbmRSZXNwb25zZSYmIHJl
c3BvbnNlKSB7CisgICAgbV9ob3N0LT5zZW5kQ29tbWFuZFRvQmFja2VuZCgicGVyZm9ybUtleWJv
YXJkSW50ZXJhY3Rpb25zIl9zLCBXVEZNb3ZlKHBhcmFtZXRlcnMpLCBbcHJvdGVjdGVkVGhpcyA9
IG1ha2VSZWYoKnRoaXMpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpXShTZXNzaW9uSG9zdDo6Q29tbWFuZFJlc3BvbnNlJiYgcmVzcG9uc2UpIHsKICAgICAg
ICAgaWYgKHJlc3BvbnNlLmlzRXJyb3IpIHsKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KENvbW1hbmRSZXN1bHQ6OmZhaWwoV1RGTW92ZShyZXNwb25zZS5yZXNwb25zZU9iamVjdCkpKTsK
ICAgICAgICAgICAgIHJldHVybjsKQEAgLTIwNDYsNyArMjA0Niw3IEBAIHZvaWQgU2Vzc2lvbjo6
Z2V0QWxsQ29va2llcyhGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmIGNvbXBsZXRp
b25IYW5kbGVyCiAKICAgICAgICAgUmVmUHRyPEpTT046Ok9iamVjdD4gcGFyYW1ldGVycyA9IEpT
T046Ok9iamVjdDo6Y3JlYXRlKCk7CiAgICAgICAgIHBhcmFtZXRlcnMtPnNldFN0cmluZygiYnJv
d3NpbmdDb250ZXh0SGFuZGxlIl9zLCBtX3RvcGxldmVsQnJvd3NpbmdDb250ZXh0LnZhbHVlKCkp
OwotICAgICAgICBtX2hvc3QtPnNlbmRDb21tYW5kVG9CYWNrZW5kKCJnZXRBbGxDb29raWVzIl9z
LCBXVEZNb3ZlKHBhcmFtZXRlcnMpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRo
aXMpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShTZXNz
aW9uSG9zdDo6Q29tbWFuZFJlc3BvbnNlJiYgcmVzcG9uc2UpIG11dGFibGUgeworICAgICAgICBt
X2hvc3QtPnNlbmRDb21tYW5kVG9CYWNrZW5kKCJnZXRBbGxDb29raWVzIl9zLCBXVEZNb3ZlKHBh
cmFtZXRlcnMpLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjb21wbGV0aW9uSGFu
ZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShTZXNzaW9uSG9zdDo6Q29tbWFuZFJl
c3BvbnNlJiYgcmVzcG9uc2UpIG11dGFibGUgewogICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmlz
RXJyb3IgfHwgIXJlc3BvbnNlLnJlc3BvbnNlT2JqZWN0KSB7CiAgICAgICAgICAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChXVEZNb3ZlKHJlc3BvbnNlLnJlc3Bv
bnNlT2JqZWN0KSkpOwogICAgICAgICAgICAgICAgIHJldHVybjsKQEAgLTIwNzksNyArMjA3OSw3
IEBAIHZvaWQgU2Vzc2lvbjo6Z2V0QWxsQ29va2llcyhGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVz
dWx0JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyCiAKIHZvaWQgU2Vzc2lvbjo6Z2V0TmFtZWRDb29r
aWUoY29uc3QgU3RyaW5nJiBuYW1lLCBGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIGdldEFsbENvb2tpZXMoW3RoaXMsIG5hbWUsIGNv
bXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKENvbW1hbmRSZXN1
bHQmJiByZXN1bHQpIG11dGFibGUgeworICAgIGdldEFsbENvb2tpZXMoW25hbWUsIGNvbXBsZXRp
b25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKENvbW1hbmRSZXN1bHQmJiBy
ZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAocmVzdWx0LmlzRXJyb3IoKSkgewogICAgICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShyZXN1bHQpKTsKICAgICAgICAgICAgIHJl
dHVybjsKQEAgLTIxMTYsNyArMjExNiw3IEBAIHZvaWQgU2Vzc2lvbjo6YWRkQ29va2llKGNvbnN0
IENvb2tpZSYgY29va2llLCBGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmCiAgICAg
ICAgIFJlZlB0cjxKU09OOjpPYmplY3Q+IHBhcmFtZXRlcnMgPSBKU09OOjpPYmplY3Q6OmNyZWF0
ZSgpOwogICAgICAgICBwYXJhbWV0ZXJzLT5zZXRTdHJpbmcoImJyb3dzaW5nQ29udGV4dEhhbmRs
ZSJfcywgbV90b3BsZXZlbEJyb3dzaW5nQ29udGV4dC52YWx1ZSgpKTsKICAgICAgICAgcGFyYW1l
dGVycy0+c2V0T2JqZWN0KCJjb29raWUiX3MsIFdURk1vdmUoY29va2llKSk7Ci0gICAgICAgIG1f
aG9zdC0+c2VuZENvbW1hbmRUb0JhY2tlbmQoImFkZFNpbmdsZUNvb2tpZSJfcywgV1RGTW92ZShw
YXJhbWV0ZXJzKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY29tcGxl
dGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oU2Vzc2lvbkhvc3Q6OkNv
bW1hbmRSZXNwb25zZSYmIHJlc3BvbnNlKSB7CisgICAgICAgIG1faG9zdC0+c2VuZENvbW1hbmRU
b0JhY2tlbmQoImFkZFNpbmdsZUNvb2tpZSJfcywgV1RGTW92ZShwYXJhbWV0ZXJzKSwgW3Byb3Rl
Y3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKV0oU2Vzc2lvbkhvc3Q6OkNvbW1hbmRSZXNwb25zZSYmIHJlc3BvbnNl
KSB7CiAgICAgICAgICAgICBpZiAocmVzcG9uc2UuaXNFcnJvcikgewogICAgICAgICAgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoV1RGTW92ZShyZXNwb25zZS5y
ZXNwb25zZU9iamVjdCkpKTsKICAgICAgICAgICAgICAgICByZXR1cm47CkBAIC0yMTQxLDcgKzIx
NDEsNyBAQCB2b2lkIFNlc3Npb246OmRlbGV0ZUNvb2tpZShjb25zdCBTdHJpbmcmIG5hbWUsIEZ1
bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQmJik+JgogICAgICAgICBSZWZQdHI8SlNPTjo6T2Jq
ZWN0PiBwYXJhbWV0ZXJzID0gSlNPTjo6T2JqZWN0OjpjcmVhdGUoKTsKICAgICAgICAgcGFyYW1l
dGVycy0+c2V0U3RyaW5nKCJicm93c2luZ0NvbnRleHRIYW5kbGUiX3MsIG1fdG9wbGV2ZWxCcm93
c2luZ0NvbnRleHQudmFsdWUoKSk7CiAgICAgICAgIHBhcmFtZXRlcnMtPnNldFN0cmluZygiY29v
a2llTmFtZSJfcywgbmFtZSk7Ci0gICAgICAgIG1faG9zdC0+c2VuZENvbW1hbmRUb0JhY2tlbmQo
ImRlbGV0ZVNpbmdsZUNvb2tpZSJfcywgV1RGTW92ZShwYXJhbWV0ZXJzKSwgW3RoaXMsIHByb3Rl
Y3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKV0oU2Vzc2lvbkhvc3Q6OkNvbW1hbmRSZXNwb25zZSYmIHJlc3BvbnNl
KSB7CisgICAgICAgIG1faG9zdC0+c2VuZENvbW1hbmRUb0JhY2tlbmQoImRlbGV0ZVNpbmdsZUNv
b2tpZSJfcywgV1RGTW92ZShwYXJhbWV0ZXJzKSwgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0
aGlzKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oU2Vz
c2lvbkhvc3Q6OkNvbW1hbmRSZXNwb25zZSYmIHJlc3BvbnNlKSB7CiAgICAgICAgICAgICBpZiAo
cmVzcG9uc2UuaXNFcnJvcikgewogICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENv
bW1hbmRSZXN1bHQ6OmZhaWwoV1RGTW92ZShyZXNwb25zZS5yZXNwb25zZU9iamVjdCkpKTsKICAg
ICAgICAgICAgICAgICByZXR1cm47CkBAIC0yMTY1LDcgKzIxNjUsNyBAQCB2b2lkIFNlc3Npb246
OmRlbGV0ZUFsbENvb2tpZXMoRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJiBjb21w
bGV0aW9uSGFuZAogICAgICAgICB9CiAgICAgICAgIFJlZlB0cjxKU09OOjpPYmplY3Q+IHBhcmFt
ZXRlcnMgPSBKU09OOjpPYmplY3Q6OmNyZWF0ZSgpOwogICAgICAgICBwYXJhbWV0ZXJzLT5zZXRT
dHJpbmcoImJyb3dzaW5nQ29udGV4dEhhbmRsZSJfcywgbV90b3BsZXZlbEJyb3dzaW5nQ29udGV4
dC52YWx1ZSgpKTsKLSAgICAgICAgbV9ob3N0LT5zZW5kQ29tbWFuZFRvQmFja2VuZCgiZGVsZXRl
QWxsQ29va2llcyJfcywgV1RGTW92ZShwYXJhbWV0ZXJzKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMg
PSBtYWtlUmVmKCp0aGlzKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKV0oU2Vzc2lvbkhvc3Q6OkNvbW1hbmRSZXNwb25zZSYmIHJlc3BvbnNlKSB7CisgICAg
ICAgIG1faG9zdC0+c2VuZENvbW1hbmRUb0JhY2tlbmQoImRlbGV0ZUFsbENvb2tpZXMiX3MsIFdU
Rk1vdmUocGFyYW1ldGVycyksIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNvbXBs
ZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKFNlc3Npb25Ib3N0OjpD
b21tYW5kUmVzcG9uc2UmJiByZXNwb25zZSkgewogICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmlz
RXJyb3IpIHsKICAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0
OjpmYWlsKFdURk1vdmUocmVzcG9uc2UucmVzcG9uc2VPYmplY3QpKSk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuOwpAQCAtMjMzNyw3ICsyMzM3LDcgQEAgdm9pZCBTZXNzaW9uOjpwZXJmb3JtQWN0
aW9ucyhWZWN0b3I8VmVjdG9yPEFjdGlvbj4+JiYgYWN0aW9uc0J5VGljaywgRnVuY3Rpb248dm8K
ICAgICAgICAgfQogCiAgICAgICAgIHBhcmFtZXRlcnMtPnNldEFycmF5KCJzdGVwcyJfcywgV1RG
TW92ZShzdGVwcykpOwotICAgICAgICBtX2hvc3QtPnNlbmRDb21tYW5kVG9CYWNrZW5kKCJwZXJm
b3JtSW50ZXJhY3Rpb25TZXF1ZW5jZSJfcywgV1RGTW92ZShwYXJhbWV0ZXJzKSwgW3RoaXMsIHBy
b3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKV0gKFNlc3Npb25Ib3N0OjpDb21tYW5kUmVzcG9uc2UmJiByZXNw
b25zZSkgeworICAgICAgICBtX2hvc3QtPnNlbmRDb21tYW5kVG9CYWNrZW5kKCJwZXJmb3JtSW50
ZXJhY3Rpb25TZXF1ZW5jZSJfcywgV1RGTW92ZShwYXJhbWV0ZXJzKSwgW3Byb3RlY3RlZFRoaXMg
PSBtYWtlUmVmKCp0aGlzKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKV0gKFNlc3Npb25Ib3N0OjpDb21tYW5kUmVzcG9uc2UmJiByZXNwb25zZSkgewogICAg
ICAgICAgICAgaWYgKHJlc3BvbnNlLmlzRXJyb3IpIHsKICAgICAgICAgICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKFdURk1vdmUocmVzcG9uc2UucmVzcG9uc2VP
YmplY3QpKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwpAQCAtMjM1OSw3ICsyMzU5LDcgQEAg
dm9pZCBTZXNzaW9uOjpyZWxlYXNlQWN0aW9ucyhGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0
JiYpPiYmIGNvbXBsZXRpb25IYW5kbGUKIAogICAgIFJlZlB0cjxKU09OOjpPYmplY3Q+IHBhcmFt
ZXRlcnMgPSBKU09OOjpPYmplY3Q6OmNyZWF0ZSgpOwogICAgIHBhcmFtZXRlcnMtPnNldFN0cmlu
ZygiaGFuZGxlIl9zLCBtX3RvcGxldmVsQnJvd3NpbmdDb250ZXh0LnZhbHVlKCkpOwotICAgIG1f
aG9zdC0+c2VuZENvbW1hbmRUb0JhY2tlbmQoImNhbmNlbEludGVyYWN0aW9uU2VxdWVuY2UiX3Ms
IFdURk1vdmUocGFyYW1ldGVycyksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhp
cyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKFNlc3Np
b25Ib3N0OjpDb21tYW5kUmVzcG9uc2UmJiByZXNwb25zZSkgeworICAgIG1faG9zdC0+c2VuZENv
bW1hbmRUb0JhY2tlbmQoImNhbmNlbEludGVyYWN0aW9uU2VxdWVuY2UiX3MsIFdURk1vdmUocGFy
YW1ldGVycyksIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNvbXBsZXRpb25IYW5k
bGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKFNlc3Npb25Ib3N0OjpDb21tYW5kUmVz
cG9uc2UmJiByZXNwb25zZSkgewogICAgICAgICBpZiAocmVzcG9uc2UuaXNFcnJvcikgewogICAg
ICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChXVEZNb3ZlKHJl
c3BvbnNlLnJlc3BvbnNlT2JqZWN0KSkpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMjM3Nyw3
ICsyMzc3LDcgQEAgdm9pZCBTZXNzaW9uOjpkaXNtaXNzQWxlcnQoRnVuY3Rpb248dm9pZCAoQ29t
bWFuZFJlc3VsdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIAogICAgIFJlZlB0cjxKU09OOjpP
YmplY3Q+IHBhcmFtZXRlcnMgPSBKU09OOjpPYmplY3Q6OmNyZWF0ZSgpOwogICAgIHBhcmFtZXRl
cnMtPnNldFN0cmluZygiYnJvd3NpbmdDb250ZXh0SGFuZGxlIl9zLCBtX3RvcGxldmVsQnJvd3Np
bmdDb250ZXh0LnZhbHVlKCkpOwotICAgIG1faG9zdC0+c2VuZENvbW1hbmRUb0JhY2tlbmQoImRp
c21pc3NDdXJyZW50SmF2YVNjcmlwdERpYWxvZyJfcywgV1RGTW92ZShwYXJhbWV0ZXJzKSwgW3Ro
aXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY29tcGxldGlvbkhhbmRsZXIgPSBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oU2Vzc2lvbkhvc3Q6OkNvbW1hbmRSZXNwb25zZSYm
IHJlc3BvbnNlKSB7CisgICAgbV9ob3N0LT5zZW5kQ29tbWFuZFRvQmFja2VuZCgiZGlzbWlzc0N1
cnJlbnRKYXZhU2NyaXB0RGlhbG9nIl9zLCBXVEZNb3ZlKHBhcmFtZXRlcnMpLCBbcHJvdGVjdGVk
VGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpXShTZXNzaW9uSG9zdDo6Q29tbWFuZFJlc3BvbnNlJiYgcmVzcG9uc2UpIHsK
ICAgICAgICAgaWYgKHJlc3BvbnNlLmlzRXJyb3IpIHsKICAgICAgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoV1RGTW92ZShyZXNwb25zZS5yZXNwb25zZU9iamVj
dCkpKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTIzOTUsNyArMjM5NSw3IEBAIHZvaWQgU2Vz
c2lvbjo6YWNjZXB0QWxlcnQoRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKIAogICAgIFJlZlB0cjxKU09OOjpPYmplY3Q+IHBhcmFtZXRlcnMgPSBK
U09OOjpPYmplY3Q6OmNyZWF0ZSgpOwogICAgIHBhcmFtZXRlcnMtPnNldFN0cmluZygiYnJvd3Np
bmdDb250ZXh0SGFuZGxlIl9zLCBtX3RvcGxldmVsQnJvd3NpbmdDb250ZXh0LnZhbHVlKCkpOwot
ICAgIG1faG9zdC0+c2VuZENvbW1hbmRUb0JhY2tlbmQoImFjY2VwdEN1cnJlbnRKYXZhU2NyaXB0
RGlhbG9nIl9zLCBXVEZNb3ZlKHBhcmFtZXRlcnMpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1h
a2VSZWYoKnRoaXMpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpXShTZXNzaW9uSG9zdDo6Q29tbWFuZFJlc3BvbnNlJiYgcmVzcG9uc2UpIHsKKyAgICBtX2hv
c3QtPnNlbmRDb21tYW5kVG9CYWNrZW5kKCJhY2NlcHRDdXJyZW50SmF2YVNjcmlwdERpYWxvZyJf
cywgV1RGTW92ZShwYXJhbWV0ZXJzKSwgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwg
Y29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oU2Vzc2lvbkhv
c3Q6OkNvbW1hbmRSZXNwb25zZSYmIHJlc3BvbnNlKSB7CiAgICAgICAgIGlmIChyZXNwb25zZS5p
c0Vycm9yKSB7CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0Ojpm
YWlsKFdURk1vdmUocmVzcG9uc2UucmVzcG9uc2VPYmplY3QpKSk7CiAgICAgICAgICAgICByZXR1
cm47CkBAIC0yNDEzLDcgKzI0MTMsNyBAQCB2b2lkIFNlc3Npb246OmdldEFsZXJ0VGV4dChGdW5j
dGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogCiAgICAg
UmVmUHRyPEpTT046Ok9iamVjdD4gcGFyYW1ldGVycyA9IEpTT046Ok9iamVjdDo6Y3JlYXRlKCk7
CiAgICAgcGFyYW1ldGVycy0+c2V0U3RyaW5nKCJicm93c2luZ0NvbnRleHRIYW5kbGUiX3MsIG1f
dG9wbGV2ZWxCcm93c2luZ0NvbnRleHQudmFsdWUoKSk7Ci0gICAgbV9ob3N0LT5zZW5kQ29tbWFu
ZFRvQmFja2VuZCgibWVzc2FnZU9mQ3VycmVudEphdmFTY3JpcHREaWFsb2ciX3MsIFdURk1vdmUo
cGFyYW1ldGVycyksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNvbXBs
ZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKFNlc3Npb25Ib3N0OjpD
b21tYW5kUmVzcG9uc2UmJiByZXNwb25zZSkgeworICAgIG1faG9zdC0+c2VuZENvbW1hbmRUb0Jh
Y2tlbmQoIm1lc3NhZ2VPZkN1cnJlbnRKYXZhU2NyaXB0RGlhbG9nIl9zLCBXVEZNb3ZlKHBhcmFt
ZXRlcnMpLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjb21wbGV0aW9uSGFuZGxl
ciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShTZXNzaW9uSG9zdDo6Q29tbWFuZFJlc3Bv
bnNlJiYgcmVzcG9uc2UpIHsKICAgICAgICAgaWYgKHJlc3BvbnNlLmlzRXJyb3IgfHwgIXJlc3Bv
bnNlLnJlc3BvbnNlT2JqZWN0KSB7CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21t
YW5kUmVzdWx0OjpmYWlsKFdURk1vdmUocmVzcG9uc2UucmVzcG9uc2VPYmplY3QpKSk7CiAgICAg
ICAgICAgICByZXR1cm47CkBAIC0yNDM3LDcgKzI0MzcsNyBAQCB2b2lkIFNlc3Npb246OnNlbmRB
bGVydFRleHQoY29uc3QgU3RyaW5nJiB0ZXh0LCBGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0
JiYpPgogICAgIFJlZlB0cjxKU09OOjpPYmplY3Q+IHBhcmFtZXRlcnMgPSBKU09OOjpPYmplY3Q6
OmNyZWF0ZSgpOwogICAgIHBhcmFtZXRlcnMtPnNldFN0cmluZygiYnJvd3NpbmdDb250ZXh0SGFu
ZGxlIl9zLCBtX3RvcGxldmVsQnJvd3NpbmdDb250ZXh0LnZhbHVlKCkpOwogICAgIHBhcmFtZXRl
cnMtPnNldFN0cmluZygidXNlcklucHV0Il9zLCB0ZXh0KTsKLSAgICBtX2hvc3QtPnNlbmRDb21t
YW5kVG9CYWNrZW5kKCJzZXRVc2VySW5wdXRGb3JDdXJyZW50SmF2YVNjcmlwdFByb21wdCJfcywg
V1RGTW92ZShwYXJhbWV0ZXJzKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlz
KSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oU2Vzc2lv
bkhvc3Q6OkNvbW1hbmRSZXNwb25zZSYmIHJlc3BvbnNlKSB7CisgICAgbV9ob3N0LT5zZW5kQ29t
bWFuZFRvQmFja2VuZCgic2V0VXNlcklucHV0Rm9yQ3VycmVudEphdmFTY3JpcHRQcm9tcHQiX3Ms
IFdURk1vdmUocGFyYW1ldGVycyksIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNv
bXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKFNlc3Npb25Ib3N0
OjpDb21tYW5kUmVzcG9uc2UmJiByZXNwb25zZSkgewogICAgICAgICBpZiAocmVzcG9uc2UuaXNF
cnJvcikgewogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFp
bChXVEZNb3ZlKHJlc3BvbnNlLnJlc3BvbnNlT2JqZWN0KSkpOwogICAgICAgICAgICAgcmV0dXJu
OwpAQCAtMjQ2OCw3ICsyNDY4LDcgQEAgdm9pZCBTZXNzaW9uOjp0YWtlU2NyZWVuc2hvdChzdGQ6
Om9wdGlvbmFsPFN0cmluZz4gZWxlbWVudElELCBzdGQ6Om9wdGlvbmFsPGJvb2wKICAgICAgICAg
ICAgIHBhcmFtZXRlcnMtPnNldEJvb2xlYW4oImNsaXBUb1ZpZXdwb3J0Il9zLCB0cnVlKTsKICAg
ICAgICAgaWYgKHNjcm9sbEludG9WaWV3LnZhbHVlX29yKGZhbHNlKSkKICAgICAgICAgICAgIHBh
cmFtZXRlcnMtPnNldEJvb2xlYW4oInNjcm9sbEludG9WaWV3SWZOZWVkZWQiX3MsIHRydWUpOwot
ICAgICAgICBtX2hvc3QtPnNlbmRDb21tYW5kVG9CYWNrZW5kKCJ0YWtlU2NyZWVuc2hvdCJfcywg
V1RGTW92ZShwYXJhbWV0ZXJzKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlz
KSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oU2Vzc2lv
bkhvc3Q6OkNvbW1hbmRSZXNwb25zZSYmIHJlc3BvbnNlKSBtdXRhYmxlIHsKKyAgICAgICAgbV9o
b3N0LT5zZW5kQ29tbWFuZFRvQmFja2VuZCgidGFrZVNjcmVlbnNob3QiX3MsIFdURk1vdmUocGFy
YW1ldGVycyksIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNvbXBsZXRpb25IYW5k
bGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKFNlc3Npb25Ib3N0OjpDb21tYW5kUmVz
cG9uc2UmJiByZXNwb25zZSkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAocmVzcG9uc2UuaXNF
cnJvciB8fCAhcmVzcG9uc2UucmVzcG9uc2VPYmplY3QpIHsKICAgICAgICAgICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKFdURk1vdmUocmVzcG9uc2UucmVzcG9u
c2VPYmplY3QpKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNlLmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJp
dmVyU2VydmljZS5jcHAKaW5kZXggZGFiMGZhODRjZTNmNDg4MTdkZjQ2NDhhMWMzMGJhNzkxMTg2
YjRmMy4uN2Q1MjhiMjY1ZjhhZDdhZDQ0MzFkOGE3NTIzNzZkZTdkYTM3ODdjNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
RHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwCkBAIC03NTgsNyArNzU4LDcgQEAgdm9pZCBXZWJE
cml2ZXJTZXJ2aWNlOjpkZWxldGVTZXNzaW9uKFJlZlB0cjxKU09OOjpPYmplY3Q+JiYgcGFyYW1l
dGVycywgRnVuY3Rpb24KICAgICB9CiAKICAgICBhdXRvIHNlc3Npb24gPSBzdGQ6OmV4Y2hhbmdl
KG1fc2Vzc2lvbiwgbnVsbHB0cik7Ci0gICAgc2Vzc2lvbi0+Y2xvc2UoW3RoaXMsIHNlc3Npb24s
IGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKENvbW1hbmRS
ZXN1bHQmJiByZXN1bHQpIG11dGFibGUgeworICAgIHNlc3Npb24tPmNsb3NlKFtzZXNzaW9uLCBj
b21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShDb21tYW5kUmVz
dWx0JiYgcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgLy8gSWdub3JlIHVua25vd24gZXJyb3Jz
IHdoZW4gY2xvc2luZyB0aGUgc2Vzc2lvbiBpZiB0aGUgYnJvd3NlciBpcyBjbG9zZWQuCiAgICAg
ICAgIGlmIChyZXN1bHQuaXNFcnJvcigpICYmIHJlc3VsdC5lcnJvckNvZGUoKSA9PSBDb21tYW5k
UmVzdWx0OjpFcnJvckNvZGU6OlVua25vd25FcnJvciAmJiAhc2Vzc2lvbi0+aXNDb25uZWN0ZWQo
KSkKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OnN1Y2Nlc3Mo
KSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>