<?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>53174</bug_id>
          
          <creation_ts>2011-01-26 09:19:06 -0800</creation_ts>
          <short_desc>Web Inspector: store all settings related to the agents on the frontend side</short_desc>
          <delta_ts>2011-01-27 06:03:55 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>53229</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yury Semikhatsky">yurys</reporter>
          <assigned_to name="Yury Semikhatsky">yurys</assigned_to>
          <cc>abarth</cc>
    
    <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>eric</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>mnaganov</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>pnormand</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>340300</commentid>
    <comment_count>0</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-01-26 09:19:06 -0800</bug_when>
    <thetext>Web Inspector: store all settings related to the agents on the frontend side. InspectorSettings class should go away completely.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340304</commentid>
    <comment_count>1</comment_count>
      <attachid>80199</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-01-26 09:28:04 -0800</bug_when>
    <thetext>Created attachment 80199
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340315</commentid>
    <comment_count>2</comment_count>
      <attachid>80199</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-01-26 09:44:41 -0800</bug_when>
    <thetext>Comment on attachment 80199
Patch

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

&gt; Source/WebCore/inspector/InspectorAgent.cpp:569
&gt; +    if (InspectorDebuggerAgent::isDebuggerAlwaysEnabled() || m_state-&gt;getBoolean(InspectorState::debuggerEnabled))

I think InspectorDebuggerAgent::isDebuggerAlwaysEnabled should also be driven by the front-end. As a result, state will have plane cookie logic.

&gt; Source/WebCore/inspector/InspectorAgent.cpp:579
&gt; +    if (!ScriptProfiler::isProfilerAlwaysEnabled() &amp;&amp; m_state-&gt;getBoolean(InspectorState::profilerEnabled))

ditto

&gt; Source/WebCore/inspector/InspectorAgent.cpp:981
&gt; +void InspectorAgent::enableProfiler()

When did we lose skipRecompile?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340335</commentid>
    <comment_count>3</comment_count>
      <attachid>80208</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-01-26 10:28:14 -0800</bug_when>
    <thetext>Created attachment 80208
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340338</commentid>
    <comment_count>4</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-01-26 10:30:35 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 80199 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=80199&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/inspector/InspectorAgent.cpp:569
&gt; &gt; +    if (InspectorDebuggerAgent::isDebuggerAlwaysEnabled() || m_state-&gt;getBoolean(InspectorState::debuggerEnabled))
&gt; 
&gt; I think InspectorDebuggerAgent::isDebuggerAlwaysEnabled should also be driven by the front-end. As a result, state will have plane cookie logic.
&gt; 
Good point. Done.

&gt; &gt; Source/WebCore/inspector/InspectorAgent.cpp:579
&gt; &gt; +    if (!ScriptProfiler::isProfilerAlwaysEnabled() &amp;&amp; m_state-&gt;getBoolean(InspectorState::profilerEnabled))
&gt; 
&gt; ditto
&gt; 
Done.

&gt; &gt; Source/WebCore/inspector/InspectorAgent.cpp:981
&gt; &gt; +void InspectorAgent::enableProfiler()
&gt; 
&gt; When did we lose skipRecompile?

It happened in http://trac.webkit.org/changeset/65797, I changed the profiler agent code to recompile all functions immediately from startUserInitiatedProfiling method.

Please look at the change one more time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340751</commentid>
    <comment_count>5</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-01-27 00:37:19 -0800</bug_when>
    <thetext>Committed r76770  (http://trac.webkit.org/changeset/76770)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340770</commentid>
    <comment_count>6</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-01-27 01:14:30 -0800</bug_when>
    <thetext>It seems this patch makes inspector/storage-panel-dom-storage.html crash on 64-bits GTK Debug:

http://webkit-bots.igalia.com/amd64/svn_76770.core-when_1296119071-_-who_DumpRenderTree-_-why_11.trace.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340772</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-27 01:15:29 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/76770 might have broken Qt Linux Release
The following tests are not passing:
http/tests/inspector/console-xhr-logging.html
http/tests/inspector/extensions-headers.html
inspector/report-protocol-errors.html
inspector/storage-panel-dom-storage.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340780</commentid>
    <comment_count>8</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-01-27 01:35:47 -0800</bug_when>
    <thetext>Reopening since the change was rolled out in r76775 due to layout test failures.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340841</commentid>
    <comment_count>9</comment_count>
      <attachid>80322</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-01-27 05:15:14 -0800</bug_when>
    <thetext>Created attachment 80322
Patch that I&apos;m going to land

Updated layout tests to match the protocol changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340848</commentid>
    <comment_count>10</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-01-27 06:03:55 -0800</bug_when>
    <thetext>Committed r76792: &lt;http://trac.webkit.org/changeset/76792&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80199</attachid>
            <date>2011-01-26 09:28:04 -0800</date>
            <delta_ts>2011-01-26 10:28:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53174-20110126192800.patch</filename>
            <type>text/plain</type>
            <size>40030</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggOTM3OTNlNDEwZDc2M2VmYmNkMTkyM2U2MDY5NDg1MTM5
YmEzNTI4Yy4uNzI2MzljZjE4MDA1NDY5YmM3YWFlODUyZjg4ODk2YWZiODlhMTU3MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKQEAgLTExNzMsNyArMTE3Myw2IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMK
ICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAKICAgICBpbnNwZWN0b3Iv
SW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yUnVudGlt
ZUFnZW50LmNwcAotICAgIGluc3BlY3Rvci9JbnNwZWN0b3JTZXR0aW5ncy5jcHAKICAgICBpbnNw
ZWN0b3IvSW5zcGVjdG9yU3RhdGUuY3BwCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hl
ZXQuY3BwCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggYjY1OTI3MGE0MTIzOWMzZDdiYjc1Y2ExNThjMmIzZjUyZDc5Yzk0Zi4uYjk3ZjI5ZDhm
Nzg1ZWNhOGRkMGFjNTJjYzEwZDRjMjA0MWM2ZGI2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYw
IEBACisyMDExLTAxLTI2ICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IHN0b3JlIGFsbCBzZXR0aW5ncyByZWxhdGVkIHRvIHRoZSBhZ2VudHMgb24gdGhlIGZy
b250ZW5kIHNpZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTUzMTc0CisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtl
ZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBXZWJDb3JlLmd5
cGk6CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3IuaWRsOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JBZ2VudC5jcHA6IHByb2ZpbGVyIGFuZCBkZWJ1Z2dlciBlbmFibGVtZW50IHN0
YXRlIGlzIG5vdyBzdG9yZWQKKyAgICAgICAgb24gdGhlIGZyb250LWVuZCBzaWRlIGFuZCB3aWxs
IGJlIHB1c2hlZCB0byB0aGUgYmFja2VuZCB3aGVuIHRoZSBmcm9udGVuZCBpcyBsb2FkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBZ2VudDo6SW5zcGVjdG9yQWdlbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yQWdlbnQ6OmRpc2Nvbm5lY3RGcm9udGVuZCk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JBZ2VudDo6cmVzdG9yZURlYnVnZ2VyKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckFnZW50OjpyZXN0b3JlUHJvZmlsZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yQWdlbnQ6OmVuYWJsZVByb2ZpbGVyKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckFnZW50OjpkaXNhYmxlUHJvZmlsZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yQWdlbnQ6OnNob3dBbmRFbmFibGVEZWJ1Z2dlcik6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JBZ2VudDo6ZW5hYmxlRGVidWdnZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
QWdlbnQ6OmRpc2FibGVEZWJ1Z2dlcik6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckFn
ZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHA6IFhI
UiBmYWlsdXJlcyB3aWxsIGJlIGxvZ2dlZCB0byB0aGUgY29uc29sZSBvbmx5CisgICAgICAgIGlm
IHRoZSBmcm9udC1lbmQgd2FzIG9wZW5lZCBkdXJpbmcgY3VycmVudCBicm93c2VyIHNlc3Npb24g
YW5kIFhIUiBsb2dnaW5nIGlzIHR1cm5lZCBvbgorICAgICAgICB0aGVyZS4KKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckNvbnNvbGVBZ2VudDo6c2V0TW9uaXRvcmluZ1hIUkVuYWJsZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29uc29sZUFnZW50OjpzZXRDb25zb2xlTWVzc2Fn
ZXNFbmFibGVkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aWRlbnRp
ZmllckZvckluaXRpYWxSZXF1ZXN0SW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmRpZExvYWRSZXNvdXJjZUZyb21NZW1vcnlDYWNoZUltcGwpOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OmVuYWJsZSk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JQcm9maWxlckFnZW50OjpzdGFydFVzZXJJbml0aWF0ZWRQcm9maWxpbmcpOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50Lmg6CisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvclNldHRpbmdzLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9yU2V0dGluZ3MuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9yU3RhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3RhdGU6Oklu
c3BlY3RvclN0YXRlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yU3RhdGUuaDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZS5fcmVnaXN0ZXJDb25zb2xlRG9tYWluRGlz
cGF0Y2hlci5kaXNwYXRjaGVyLmNvbnNvbGVNZXNzYWdlc0NsZWFyZWQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZS5fcmVnaXN0ZXJDb25zb2xlRG9tYWluRGlz
cGF0Y2hlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlLl9o
YW5kbGVDb250ZXh0TWVudUV2ZW50Lml0ZW1BY3Rpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkNvbnNvbGVWaWV3LnByb3RvdHlwZS5faGFuZGxlQ29udGV4dE1lbnVFdmVudCk6CisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlLl90b2dnbGVQcm9maWxpbmcpOgorICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUuX3RvZ2dsZURlYnVnZ2luZyk6CisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5ncy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5TZXR0aW5ncyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanM6
CisKIDIwMTEtMDEtMjYgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBQYXZlbCBGZWxkbWFuLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRl
eCA5OWVhNDQxMDgwYjI4ZTNjYTZiM2U3MTcyZTEyN2QyY2RkMjRiYTE1Li44NGQxZGY2NWZhNzg0
Yzk3YTMxMmJkN2U4NWEyOTMwMTZmMGRjMDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtMTk5
NCw4ICsxOTk0LDYgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yUnVudGltZUFnZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclJ1bnRpbWVBZ2VudC5oIFwKLQlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yU2V0dGluZ3MuY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
U2V0dGluZ3MuaCBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0YXRlLmNw
cCBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0YXRlLmggXAogCVNvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcCBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluCmluZGV4IDliMjExN2RmYTBjZTgzNjA0ZDIyZDMxNWVhZTkzODgxMTI1YWZjNzcuLjQ3
ZjE0NTBjZGVjMDk2OTEzZTBlMjdmMWIxNjEyMzJiYjZlNmQzNmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhw
LmluCkBAIC0xMzYyLDkgKzEzNjIsOSBAQCBfX1pON1dlYkNvcmUxNEluc3BlY3RvckFnZW50NWNs
b3NlRXYKIF9fWk43V2ViQ29yZTE0SW5zcGVjdG9yQWdlbnQ5c2hvd1BhbmVsRVJLTjNXVEY2U3Ry
aW5nRQogX19aTjdXZWJDb3JlMTRJbnNwZWN0b3JBZ2VudDEyQ29uc29sZVBhbmVsRQogX19aTjdX
ZWJDb3JlMTRJbnNwZWN0b3JBZ2VudDEzUHJvZmlsZXNQYW5lbEUKLV9fWk43V2ViQ29yZTE0SW5z
cGVjdG9yQWdlbnQxNGVuYWJsZVByb2ZpbGVyRWJiCi1fX1pON1dlYkNvcmUxNEluc3BlY3RvckFn
ZW50MTVkaXNhYmxlRGVidWdnZXJFYgotX19aTjdXZWJDb3JlMTRJbnNwZWN0b3JBZ2VudDE1ZGlz
YWJsZVByb2ZpbGVyRWIKK19fWk43V2ViQ29yZTE0SW5zcGVjdG9yQWdlbnQxNGVuYWJsZVByb2Zp
bGVyRXYKK19fWk43V2ViQ29yZTE0SW5zcGVjdG9yQWdlbnQxNWRpc2FibGVEZWJ1Z2dlckV2Citf
X1pON1dlYkNvcmUxNEluc3BlY3RvckFnZW50MTVkaXNhYmxlUHJvZmlsZXJFdgogX19aTjdXZWJD
b3JlMTRJbnNwZWN0b3JBZ2VudDE4ZGlzY29ubmVjdEZyb250ZW5kRXYKIF9fWk43V2ViQ29yZTE0
SW5zcGVjdG9yQWdlbnQyMHN0b3BUaW1lbGluZVByb2ZpbGVyRXYKIF9fWk43V2ViQ29yZTE0SW5z
cGVjdG9yQWdlbnQyMXNob3dBbmRFbmFibGVEZWJ1Z2dlckV2CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXgg
NGE0ZTA0YzllMGI0MjNmN2ZmMjRlMjM5ZTgyOGRjNjBmM2Q2MzAxNC4uM2E5NjUyOTYzY2MxYmU0
YjhkZDFmMjIxOTE1ZGQ4MTJhMTZjYWNhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMjA0OSw4ICsy
MDQ5LDYgQEAKICAgICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9yUnVudGltZUFnZW50LmNw
cCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5oJywKICAg
ICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9yU3RhdGUuY3BwJywKLSAgICAgICAgICAgICdp
bnNwZWN0b3IvSW5zcGVjdG9yU2V0dGluZ3MuaCcsCi0gICAgICAgICAgICAnaW5zcGVjdG9yL0lu
c3BlY3RvclNldHRpbmdzLmNwcCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3RvclN0
YXRlLmgnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcCcs
CiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuaCcsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
cHJvCmluZGV4IGU2NGFlOTdhNDk2MjliYjk4Y2RkMjQ1OGVkMTY0YmE1NGRiNmVjZmIuLmFlYzNl
Y2I4NGNjOTkxYjUyZjk1MDIzNjQ1ZjExNTY3NjI0NGRkMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0x
MDYyLDcgKzEwNjIsNiBAQCBTT1VSQ0VTICs9IFwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yUHJv
ZmlsZXJBZ2VudC5jcHAgXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNw
cCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAgXAotICAgIGluc3Bl
Y3Rvci9JbnNwZWN0b3JTZXR0aW5ncy5jcHAgXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JTdGF0
ZS5jcHAgXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcCBcCiAgICAgaW5z
cGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwIFwKQEAgLTE5NjIsNyArMTk2MSw2IEBA
IEhFQURFUlMgKz0gXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmggXAog
ICAgIGluc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmggXAogICAgIGluc3BlY3Rvci9J
bnNwZWN0b3JSdW50aW1lQWdlbnQuaCBcCi0gICAgaW5zcGVjdG9yL0luc3BlY3RvclNldHRpbmdz
LmggXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JTdGF0ZS5oIFwKICAgICBpbnNwZWN0b3IvSW5z
cGVjdG9yU3R5bGVTaGVldC5oIFwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5k
ZXggZTJjZWZhMGNmYjMwY2YzNTAwYTI1YTE2MmFjMzhlNWY2YWFlMGRkZi4uNzQ3NDBkNzBiYmJi
NDE5NTFmMWJkMGMzOGNjN2U0MDMzMzlhNTRhYiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTY1MjU0LDE0ICs2NTI1NCw2IEBACiAJCQkJPgog
CQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3RvclxJbnNw
ZWN0b3JTZXR0aW5ncy5jcHAiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JTZXR0aW5ncy5oIgotCQkJCT4KLQkJCTwv
RmlsZT4KLQkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9y
U3RhdGUuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBjYzI4MjI3NzFlMGQyMWY5OThiMDJm
NTRlOGJiZjlkNmViZjI2ZDgyLi42YzRjNDhlMTczN2M1YThhZGY3OTVjOGQzZTMzMGRlNmNlNTRk
MzRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC0xNjU5LDggKzE2NTksNiBAQAogCQk3QTFGMkI1MjEyNkM2MUIyMDAwNkE3RTYg
LyogSW5zcGVjdG9yQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdBMUYyQjUxMTI2QzYxQjIwMDA2QTdFNiAvKiBJbnNwZWN0b3JDbGllbnQu
Y3BwICovOyB9OwogCQk3QTI0NTg3QjEwMjFFQUY0MDAwQTAwQUEgLyogSW5zcGVjdG9yRE9NQWdl
bnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0Ey
NDU4NzkxMDIxRUFGNDAwMEEwMEFBIC8qIEluc3BlY3RvckRPTUFnZW50LmNwcCAqLzsgfTsKIAkJ
N0EyNDU4N0MxMDIxRUFGNDAwMEEwMEFBIC8qIEluc3BlY3RvckRPTUFnZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QTI0NTg3QTEwMjFFQUY0MDAw
QTAwQUEgLyogSW5zcGVjdG9yRE9NQWdlbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwotCQk3QTU2NDBCRjEyREY5RTVFMDBGNDUzNkQgLyogSW5zcGVj
dG9yU2V0dGluZ3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gN0E1NjQwQkQxMkRGOUU1RTAwRjQ1MzZEIC8qIEluc3BlY3RvclNldHRpbmdzLmNwcCAq
LzsgfTsKLQkJN0E1NjQwQzAxMkRGOUU1RTAwRjQ1MzZEIC8qIEluc3BlY3RvclNldHRpbmdzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QTU2NDBCRTEy
REY5RTVFMDBGNDUzNkQgLyogSW5zcGVjdG9yU2V0dGluZ3MuaCAqLzsgfTsKIAkJN0E2NzRCREIw
RjlFQkY0RTAwNkNGMDk5IC8qIFBhZ2VHcm91cExvYWREZWZlcnJlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QTY3NEJEOTBGOUVCRjRFMDA2Q0Yw
OTkgLyogUGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcCAqLzsgfTsKIAkJN0E2NzRCREMwRjlFQkY0
RTAwNkNGMDk5IC8qIFBhZ2VHcm91cExvYWREZWZlcnJlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0E2NzRCREEwRjlFQkY0RTAwNkNGMDk5IC8qIFBh
Z2VHcm91cExvYWREZWZlcnJlci5oICovOyB9OwogCQk3QTc0RUNCQTEwMTgzOUE2MDBCRjkzOUUg
LyogSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdBNzRFQ0I4MTAxODM5QTUwMEJGOTM5RSAvKiBJbnNwZWN0
b3JET01TdG9yYWdlQWdlbnQuY3BwICovOyB9OwpAQCAtODEwMiw4ICs4MTAwLDYgQEAKIAkJN0Ey
NDU4N0ExMDIxRUFGNDAwMEEwMEFBIC8qIEluc3BlY3RvckRPTUFnZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3RvckRPTUFnZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTdBNTYzRTU0MTJERTMyQjAwMEY0NTM2RCAvKiBJbmplY3RlZFNjcmlw
dFNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmplY3RlZFNjcmlw
dFNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QTU2M0Y5NTEyREY1Qzkx
MDBGNDUzNkQgLyogSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmphdmFzY3JpcHQ7IHBhdGggPSBJbmplY3RlZFNjcmlwdFNvdXJjZS5qczsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJN0E1NjQwQkQxMkRGOUU1RTAwRjQ1MzZEIC8qIEluc3BlY3RvclNl
dHRpbmdzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3Rv
clNldHRpbmdzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJN0E1NjQwQkUxMkRG
OUU1RTAwRjQ1MzZEIC8qIEluc3BlY3RvclNldHRpbmdzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEluc3BlY3RvclNldHRpbmdzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTdBNjc0QkQ5MEY5RUJGNEUwMDZDRjA5OSAvKiBQYWdlR3JvdXBMb2FkRGVmZXJyZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFnZUdyb3VwTG9hZERl
ZmVycmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0E2NzRCREEwRjlFQkY0
RTAwNkNGMDk5IC8qIFBhZ2VHcm91cExvYWREZWZlcnJlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBQYWdlR3JvdXBMb2FkRGVmZXJyZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJN0E3NEVDQjgxMDE4MzlBNTAwQkY5MzlFIC8qIEluc3BlY3RvckRPTVN0b3Jh
Z2VBZ2VudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0
b3JET01TdG9yYWdlQWdlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTMw
MjQsOCArMTMwMjAsNiBAQAogCQkJCTgyQUIxNzcyMTI1QzgyNjcwMEM1MDY5RCAvKiBJbnNwZWN0
b3JSZXNvdXJjZUFnZW50LmggKi8sCiAJCQkJN0FBMzY1RUQxMkU3MjY1NDAwRENBMjQyIC8qIElu
c3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAgKi8sCiAJCQkJN0FGMTFBNTkxMkU3Mjc0OTAwNjFGMjND
IC8qIEluc3BlY3RvclJ1bnRpbWVBZ2VudC5oICovLAotCQkJCTdBNTY0MEJEMTJERjlFNUUwMEY0
NTM2RCAvKiBJbnNwZWN0b3JTZXR0aW5ncy5jcHAgKi8sCi0JCQkJN0E1NjQwQkUxMkRGOUU1RTAw
RjQ1MzZEIC8qIEluc3BlY3RvclNldHRpbmdzLmggKi8sCiAJCQkJNEZBM0I5MDgxMjVDRDEyMTAw
MzAwQkFEIC8qIEluc3BlY3RvclN0YXRlLmNwcCAqLywKIAkJCQk0RkEzQjkwOTEyNUNEMTIyMDAz
MDBCQUQgLyogSW5zcGVjdG9yU3RhdGUuaCAqLywKIAkJCQk4MkFCMTc2RjEyNUM4MjY3MDBDNTA2
OUQgLyogSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAgKi8sCkBAIC0yMDkyNSw3ICsyMDkxOSw2IEBA
CiAJCQkJOUYwRDZCMkYxMjFCRkVCQTAwNkMwMjg4IC8qIEluc3BlY3RvclByb2ZpbGVyQWdlbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTgyQUIxNzc2MTI1QzgyNjcwMEM1MDY5RCAvKiBJbnNwZWN0
b3JSZXNvdXJjZUFnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUYxMUE1QTEyRTcyNzQ5MDA2
MUYyM0MgLyogSW5zcGVjdG9yUnVudGltZUFnZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQk3QTU2
NDBDMDEyREY5RTVFMDBGNDUzNkQgLyogSW5zcGVjdG9yU2V0dGluZ3MuaCBpbiBIZWFkZXJzICov
LAogCQkJCTRGQTNCOTBCMTI1Q0QxMjIwMDMwMEJBRCAvKiBJbnNwZWN0b3JTdGF0ZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJODJBQjE3NzQxMjVDODI2NzAwQzUwNjlEIC8qIEluc3BlY3RvclN0eWxl
U2hlZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTc1NDEzM0E4MTAyRTAwRTgwMDA3NUQwMCAvKiBJ
bnNwZWN0b3JUaW1lbGluZUFnZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTIzNjY4LDcgKzIzNjYx
LDYgQEAKIAkJCQk5RjBENkIyRTEyMUJGRUJBMDA2QzAyODggLyogSW5zcGVjdG9yUHJvZmlsZXJB
Z2VudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4MkFCMTc3NTEyNUM4MjY3MDBDNTA2OUQgLyog
SW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QUEzNjVFRTEy
RTcyNjU0MDBEQ0EyNDIgLyogSW5zcGVjdG9yUnVudGltZUFnZW50LmNwcCBpbiBTb3VyY2VzICov
LAotCQkJCTdBNTY0MEJGMTJERjlFNUUwMEY0NTM2RCAvKiBJbnNwZWN0b3JTZXR0aW5ncy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk0RkEzQjkwQTEyNUNEMTIyMDAzMDBCQUQgLyogSW5zcGVjdG9y
U3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODJBQjE3NzMxMjVDODI2NzAwQzUwNjlEIC8q
IEluc3BlY3RvclN0eWxlU2hlZXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzU0MTMzQUExMDJF
MDBGNDAwMDc1RDAwIC8qIEluc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuaWRsCmluZGV4IGI4Y2NkOGUxMWYxNjg2
NDA0NGE0N2JjOWQ4MGU3NjZiNmI4YTA0ZTYuLjk3OTcyNzQ0OGM3MmJkZTAwOTNmNWU3OTlhMzMy
MmQxN2FlYzljNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3IuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuaWRsCkBAIC05
NCw3ICs5NCw2IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgW2RvbWFpbj1Db25zb2xlXSB2b2lk
IGNsZWFyQ29uc29sZU1lc3NhZ2VzKCk7CiAgICAgICAgIFtub3RpZnksIGRvbWFpbj1Db25zb2xl
XSB2b2lkIGNvbnNvbGVNZXNzYWdlc0NsZWFyZWQoKTsKICAgICAgICAgW2RvbWFpbj1Db25zb2xl
XSB2b2lkIHNldE1vbml0b3JpbmdYSFJFbmFibGVkKGluIGJvb2xlYW4gZW5hYmxlZCk7Ci0gICAg
ICAgIFtub3RpZnksIGRvbWFpbj1Db25zb2xlXSB2b2lkIG1vbml0b3JpbmdYSFJTdGF0ZUNoYW5n
ZWQob3V0IGJvb2xlYW4gZW5hYmxlZCk7CiAKICAgICAgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KICAgICAg
ICAgLy8gTmV0d29yayBBUEkKQEAgLTIzOSw4ICsyMzgsOCBAQCBtb2R1bGUgY29yZSB7CiAgICAg
ICAgIC8vIERlYnVnZ2VyIEFQSQogICAgICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogCi0gICAgICAgIFtk
b21haW49SW5zcGVjdG9yXSB2b2lkIGVuYWJsZURlYnVnZ2VyKGluIGJvb2xlYW4gYWx3YXlzKTsK
LSAgICAgICAgW2RvbWFpbj1JbnNwZWN0b3JdIHZvaWQgZGlzYWJsZURlYnVnZ2VyKGluIGJvb2xl
YW4gYWx3YXlzKTsKKyAgICAgICAgW2RvbWFpbj1JbnNwZWN0b3JdIHZvaWQgZW5hYmxlRGVidWdn
ZXIoKTsKKyAgICAgICAgW2RvbWFpbj1JbnNwZWN0b3JdIHZvaWQgZGlzYWJsZURlYnVnZ2VyKCk7
CiAKICAgICAgICAgW25vdGlmeSwgZG9tYWluPURlYnVnZ2VyXSB2b2lkIGRlYnVnZ2VyV2FzRW5h
YmxlZCgpOwogICAgICAgICBbbm90aWZ5LCBkb21haW49RGVidWdnZXJdIHZvaWQgZGVidWdnZXJX
YXNEaXNhYmxlZCgpOwpAQCAtMjkwLDggKzI4OSw4IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAg
Ly8gUHJvZmlsZXIgQVBJCiAgICAgICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAKLSAgICAgICAgW2RvbWFp
bj1JbnNwZWN0b3JdIHZvaWQgZW5hYmxlUHJvZmlsZXIoaW4gYm9vbGVhbiBhbHdheXMpOwotICAg
ICAgICBbZG9tYWluPUluc3BlY3Rvcl0gdm9pZCBkaXNhYmxlUHJvZmlsZXIoaW4gYm9vbGVhbiBh
bHdheXMpOworICAgICAgICBbZG9tYWluPUluc3BlY3Rvcl0gdm9pZCBlbmFibGVQcm9maWxlcigp
OworICAgICAgICBbZG9tYWluPUluc3BlY3Rvcl0gdm9pZCBkaXNhYmxlUHJvZmlsZXIoKTsKICAg
ICAgICAgW25vdGlmeSwgZG9tYWluPVByb2ZpbGVyXSB2b2lkIHByb2ZpbGVyV2FzRW5hYmxlZCgp
OwogICAgICAgICBbbm90aWZ5LCBkb21haW49UHJvZmlsZXJdIHZvaWQgcHJvZmlsZXJXYXNEaXNh
YmxlZCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
QWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFnZW50LmNwcApp
bmRleCA0YjM0MmM3YTJmOGFlZmIyMWQ3MTRmMzY0MTgzNTI1ZjUyZDQ2YmQzLi5iZDgzZTlkNTdh
YWI3ZTc1YzM4OTFjODYwNmEzNDI5MmUzMzhhOGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JBZ2VudC5jcHAKQEAgLTcyLDcgKzcyLDYgQEAKICNpbmNsdWRlICJJbnNw
ZWN0b3JQcm9maWxlckFnZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5o
IgogI2luY2x1ZGUgIkluc3BlY3RvclJ1bnRpbWVBZ2VudC5oIgotI2luY2x1ZGUgIkluc3BlY3Rv
clNldHRpbmdzLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yU3RhdGUuaCIKICNpbmNsdWRlICJJbnNw
ZWN0b3JUaW1lbGluZUFnZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yVmFsdWVzLmgiCkBAIC0x
NDYsNyArMTQ1LDYgQEAgSW5zcGVjdG9yQWdlbnQ6Okluc3BlY3RvckFnZW50KEluc3BlY3RvckNv
bnRyb2xsZXIqIGluc3BlY3RvckNvbnRyb2xsZXIsIFBhZ2UqIHAKICAgICAsIG1faW5qZWN0ZWRT
Y3JpcHRIb3N0KEluamVjdGVkU2NyaXB0SG9zdDo6Y3JlYXRlKHRoaXMpKQogICAgICwgbV9jb25z
b2xlQWdlbnQobmV3IEluc3BlY3RvckNvbnNvbGVBZ2VudCh0aGlzKSkKICNpZiBFTkFCTEUoSkFW
QVNDUklQVF9ERUJVR0dFUikKLSAgICAsIG1fYXR0YWNoRGVidWdnZXJXaGVuU2hvd24oZmFsc2Up
CiAgICAgLCBtX3Byb2ZpbGVyQWdlbnQoSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6Y3JlYXRlKHRo
aXMpKQogI2VuZGlmCiB7CkBAIC00NTAsOSArNDQ4LDcgQEAgdm9pZCBJbnNwZWN0b3JBZ2VudDo6
ZGlzY29ubmVjdEZyb250ZW5kKCkKICAgICAvLyBJZiB0aGUgd2luZG93IGlzIGJlaW5nIGNsb3Nl
ZCB3aXRoIHRoZSBkZWJ1Z2dlciBlbmFibGVkLAogICAgIC8vIHJlbWVtYmVyIHRoaXMgc3RhdGUg
dG8gcmUtZW5hYmxlIGRlYnVnZ2VyIG9uIHRoZSBuZXh0IHdpbmRvdwogICAgIC8vIG9wZW5pbmcu
Ci0gICAgYm9vbCBkZWJ1Z2dlcldhc0VuYWJsZWQgPSBkZWJ1Z2dlckVuYWJsZWQoKTsKICAgICBk
aXNhYmxlRGVidWdnZXIoKTsKLSAgICBtX2F0dGFjaERlYnVnZ2VyV2hlblNob3duID0gZGVidWdn
ZXJXYXNFbmFibGVkOwogI2VuZGlmCiAgICAgc2V0U2VhcmNoaW5nRm9yTm9kZShmYWxzZSk7CiAg
ICAgdW5iaW5kQWxsUmVzb3VyY2VzKCk7CkBAIC01NzAsMTAgKzU2Niw4IEBAIHZvaWQgSW5zcGVj
dG9yQWdlbnQ6OnJlc3RvcmVEZWJ1Z2dlcigpCiB7CiAgICAgQVNTRVJUKG1fZnJvbnRlbmQpOwog
I2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQotICAgIGlmIChJbnNwZWN0b3JEZWJ1Z2dl
ckFnZW50Ojppc0RlYnVnZ2VyQWx3YXlzRW5hYmxlZCgpIHx8IG1fYXR0YWNoRGVidWdnZXJXaGVu
U2hvd24gfHwgbV9zZXR0aW5ncy0+Z2V0Qm9vbGVhbihJbnNwZWN0b3JTZXR0aW5nczo6RGVidWdn
ZXJBbHdheXNFbmFibGVkKSkgewotICAgICAgICBlbmFibGVEZWJ1Z2dlcihmYWxzZSk7Ci0gICAg
ICAgIG1fYXR0YWNoRGVidWdnZXJXaGVuU2hvd24gPSBmYWxzZTsKLSAgICB9CisgICAgaWYgKElu
c3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmlzRGVidWdnZXJBbHdheXNFbmFibGVkKCkgfHwgbV9zdGF0
ZS0+Z2V0Qm9vbGVhbihJbnNwZWN0b3JTdGF0ZTo6ZGVidWdnZXJFbmFibGVkKSkKKyAgICAgICAg
ZW5hYmxlRGVidWdnZXIoKTsKICNlbmRpZgogfQogCkBAIC01ODIsNyArNTc2LDcgQEAgdm9pZCBJ
bnNwZWN0b3JBZ2VudDo6cmVzdG9yZVByb2ZpbGVyKFByb2ZpbGVyUmVzdG9yZUFjdGlvbiBhY3Rp
b24pCiAgICAgQVNTRVJUKG1fZnJvbnRlbmQpOwogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVH
R0VSKQogICAgIG1fcHJvZmlsZXJBZ2VudC0+c2V0RnJvbnRlbmQobV9mcm9udGVuZC5nZXQoKSk7
Ci0gICAgaWYgKCFTY3JpcHRQcm9maWxlcjo6aXNQcm9maWxlckFsd2F5c0VuYWJsZWQoKSAmJiBt
X3NldHRpbmdzLT5nZXRCb29sZWFuKEluc3BlY3RvclNldHRpbmdzOjpQcm9maWxlckFsd2F5c0Vu
YWJsZWQpKQorICAgIGlmICghU2NyaXB0UHJvZmlsZXI6OmlzUHJvZmlsZXJBbHdheXNFbmFibGVk
KCkgJiYgbV9zdGF0ZS0+Z2V0Qm9vbGVhbihJbnNwZWN0b3JTdGF0ZTo6cHJvZmlsZXJFbmFibGVk
KSkKICAgICAgICAgZW5hYmxlUHJvZmlsZXIoKTsKICAgICBpZiAoYWN0aW9uID09IFByb2ZpbGVy
UmVzdG9yZVJlc2V0QWdlbnQpCiAgICAgICAgIG1fcHJvZmlsZXJBZ2VudC0+cmVzZXRGcm9udGVu
ZFByb2ZpbGVzKCk7CkBAIC03MDUsMTQgKzY5OSw2IEBAIHZvaWQgSW5zcGVjdG9yQWdlbnQ6Ondp
bGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiAgICAgfQogfQogCi12b2lk
IEluc3BlY3RvckFnZW50OjplbnN1cmVTZXR0aW5nc0xvYWRlZCgpCi17Ci0gICAgaWYgKG1fc2V0
dGluZ3MpCi0gICAgICAgIHJldHVybjsKLSAgICBtX3NldHRpbmdzID0gbmV3IEluc3BlY3RvclNl
dHRpbmdzKG1fY2xpZW50KTsKLSAgICBtX3N0YXRlLT5zZXRCb29sZWFuKEluc3BlY3RvclN0YXRl
Ojptb25pdG9yaW5nWEhSLCBtX3NldHRpbmdzLT5nZXRCb29sZWFuKEluc3BlY3RvclNldHRpbmdz
OjpNb25pdG9yaW5nWEhSRW5hYmxlZCkpOwotfQotCiB2b2lkIEluc3BlY3RvckFnZW50OjpzdGFy
dFRpbWVsaW5lUHJvZmlsZXIoKQogewogICAgIGlmICghZW5hYmxlZCgpKQpAQCAtOTkyLDE3ICs5
NzgsMTcgQEAgYm9vbCBJbnNwZWN0b3JBZ2VudDo6cHJvZmlsZXJFbmFibGVkKCkgY29uc3QKICAg
ICByZXR1cm4gZW5hYmxlZCgpICYmIG1fcHJvZmlsZXJBZ2VudC0+ZW5hYmxlZCgpOwogfQogCi12
b2lkIEluc3BlY3RvckFnZW50OjplbmFibGVQcm9maWxlcihib29sIGFsd2F5cywgYm9vbCBza2lw
UmVjb21waWxlKQordm9pZCBJbnNwZWN0b3JBZ2VudDo6ZW5hYmxlUHJvZmlsZXIoKQogewotICAg
IGlmIChhbHdheXMpCi0gICAgICAgIG1fc2V0dGluZ3MtPnNldEJvb2xlYW4oSW5zcGVjdG9yU2V0
dGluZ3M6OlByb2ZpbGVyQWx3YXlzRW5hYmxlZCwgdHJ1ZSk7Ci0gICAgbV9wcm9maWxlckFnZW50
LT5lbmFibGUoc2tpcFJlY29tcGlsZSk7CisgICAgaWYgKHByb2ZpbGVyRW5hYmxlZCgpKQorICAg
ICAgICByZXR1cm47CisgICAgbV9zdGF0ZS0+c2V0Qm9vbGVhbihJbnNwZWN0b3JTdGF0ZTo6cHJv
ZmlsZXJFbmFibGVkLCB0cnVlKTsKKyAgICBtX3Byb2ZpbGVyQWdlbnQtPmVuYWJsZSgpOwogfQog
Ci12b2lkIEluc3BlY3RvckFnZW50OjpkaXNhYmxlUHJvZmlsZXIoYm9vbCBhbHdheXMpCit2b2lk
IEluc3BlY3RvckFnZW50OjpkaXNhYmxlUHJvZmlsZXIoKQogewotICAgIGlmIChhbHdheXMpCi0g
ICAgICAgIG1fc2V0dGluZ3MtPnNldEJvb2xlYW4oSW5zcGVjdG9yU2V0dGluZ3M6OlByb2ZpbGVy
QWx3YXlzRW5hYmxlZCwgZmFsc2UpOworICAgIG1fc3RhdGUtPnNldEJvb2xlYW4oSW5zcGVjdG9y
U3RhdGU6OnByb2ZpbGVyRW5hYmxlZCwgZmFsc2UpOwogICAgIG1fcHJvZmlsZXJBZ2VudC0+ZGlz
YWJsZSgpOwogfQogI2VuZGlmCkBAIC0xMDE3LDE4ICsxMDAzLDE3IEBAIHZvaWQgSW5zcGVjdG9y
QWdlbnQ6OnNob3dBbmRFbmFibGVEZWJ1Z2dlcigpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlm
ICghbV9mcm9udGVuZCkgewotICAgICAgICBtX2F0dGFjaERlYnVnZ2VyV2hlblNob3duID0gdHJ1
ZTsKKyAgICAgICAgbV9zdGF0ZS0+c2V0Qm9vbGVhbihJbnNwZWN0b3JTdGF0ZTo6ZGVidWdnZXJF
bmFibGVkLCB0cnVlKTsKICAgICAgICAgc2hvd1BhbmVsKFNjcmlwdHNQYW5lbCk7CiAgICAgfSBl
bHNlCi0gICAgICAgIGVuYWJsZURlYnVnZ2VyKGZhbHNlKTsKKyAgICAgICAgZW5hYmxlRGVidWdn
ZXIoKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JBZ2VudDo6ZW5hYmxlRGVidWdnZXIoYm9vbCBhbHdh
eXMpCit2b2lkIEluc3BlY3RvckFnZW50OjplbmFibGVEZWJ1Z2dlcigpCiB7Ci0gICAgQVNTRVJU
KCFkZWJ1Z2dlckVuYWJsZWQoKSk7Ci0gICAgaWYgKGFsd2F5cykKLSAgICAgICAgbV9zZXR0aW5n
cy0+c2V0Qm9vbGVhbihJbnNwZWN0b3JTZXR0aW5nczo6RGVidWdnZXJBbHdheXNFbmFibGVkLCB0
cnVlKTsKLQorICAgIGlmIChkZWJ1Z2dlckVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworICAg
IG1fc3RhdGUtPnNldEJvb2xlYW4oSW5zcGVjdG9yU3RhdGU6OmRlYnVnZ2VyRW5hYmxlZCwgdHJ1
ZSk7CiAgICAgQVNTRVJUKG1faW5zcGVjdGVkUGFnZSk7CiAKICAgICBtX2RlYnVnZ2VyQWdlbnQg
PSBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpjcmVhdGUodGhpcywgbV9mcm9udGVuZC5nZXQoKSk7
CkBAIC0xMDM3LDIzICsxMDIyLDE4IEBAIHZvaWQgSW5zcGVjdG9yQWdlbnQ6OmVuYWJsZURlYnVn
Z2VyKGJvb2wgYWx3YXlzKQogICAgIG1fZnJvbnRlbmQtPmRlYnVnZ2VyV2FzRW5hYmxlZCgpOwog
fQogCi12b2lkIEluc3BlY3RvckFnZW50OjpkaXNhYmxlRGVidWdnZXIoYm9vbCBhbHdheXMpCit2
b2lkIEluc3BlY3RvckFnZW50OjpkaXNhYmxlRGVidWdnZXIoKQogewogICAgIGlmICghZW5hYmxl
ZCgpKQogICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoYWx3YXlzKQotICAgICAgICBtX3NldHRp
bmdzLT5zZXRCb29sZWFuKEluc3BlY3RvclNldHRpbmdzOjpEZWJ1Z2dlckFsd2F5c0VuYWJsZWQs
IGZhbHNlKTsKLQogICAgIEFTU0VSVChtX2luc3BlY3RlZFBhZ2UpOwotCiAgICAgbV9kZWJ1Z2dl
ckFnZW50LmNsZWFyKCk7CiAgICAgbV9icm93c2VyRGVidWdnZXJBZ2VudC5jbGVhcigpOwogCi0g
ICAgbV9hdHRhY2hEZWJ1Z2dlcldoZW5TaG93biA9IGZhbHNlOwotCi0gICAgaWYgKG1fZnJvbnRl
bmQpCisgICAgaWYgKG1fZnJvbnRlbmQpIHsKICAgICAgICAgbV9mcm9udGVuZC0+ZGVidWdnZXJX
YXNEaXNhYmxlZCgpOworICAgICAgICBtX3N0YXRlLT5zZXRCb29sZWFuKEluc3BlY3RvclN0YXRl
OjpkZWJ1Z2dlckVuYWJsZWQsIGZhbHNlKTsKKyAgICB9CiB9CiAKIHZvaWQgSW5zcGVjdG9yQWdl
bnQ6OnJlc3VtZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBZ2VudC5oCmlu
ZGV4IDM2MmFiZWMyOWViZjk5ZGJmNmNhM2RiMzZkZWRmZGQ0MzEyZThmOWEuLjhjYzQ5YTZiMzZi
OGJhYmVkMGZhOTY5YTAyOTgxMWJmZjVkYjQ3N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JBZ2VudC5oCkBAIC03NCw3ICs3NCw2IEBAIGNsYXNzIEluc3BlY3Rvck9iamVj
dDsKIGNsYXNzIEluc3BlY3RvclByb2ZpbGVyQWdlbnQ7CiBjbGFzcyBJbnNwZWN0b3JSZXNvdXJj
ZUFnZW50OwogY2xhc3MgSW5zcGVjdG9yUnVudGltZUFnZW50OwotY2xhc3MgSW5zcGVjdG9yU2V0
dGluZ3M7CiBjbGFzcyBJbnNwZWN0b3JTdGF0ZTsKIGNsYXNzIEluc3BlY3RvclN0b3JhZ2VBZ2Vu
dDsKIGNsYXNzIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ7CkBAIC0yMzcsMTMgKzIzNiwxMyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzdGFydFVzZXJJbml0aWF0ZWRQcm9maWxpbmcoKTsKICAgICB2b2lk
IHN0b3BQcm9maWxpbmcoKSB7IHN0b3BVc2VySW5pdGlhdGVkUHJvZmlsaW5nKCk7IH0KICAgICB2
b2lkIHN0b3BVc2VySW5pdGlhdGVkUHJvZmlsaW5nKCk7Ci0gICAgdm9pZCBlbmFibGVQcm9maWxl
cihib29sIGFsd2F5cyA9IGZhbHNlLCBib29sIHNraXBSZWNvbXBpbGUgPSBmYWxzZSk7Ci0gICAg
dm9pZCBkaXNhYmxlUHJvZmlsZXIoYm9vbCBhbHdheXMgPSBmYWxzZSk7CisgICAgdm9pZCBlbmFi
bGVQcm9maWxlcigpOworICAgIHZvaWQgZGlzYWJsZVByb2ZpbGVyKCk7CiAgICAgYm9vbCBwcm9m
aWxlckVuYWJsZWQoKSBjb25zdDsKIAogICAgIHZvaWQgc2hvd0FuZEVuYWJsZURlYnVnZ2VyKCk7
Ci0gICAgdm9pZCBlbmFibGVEZWJ1Z2dlcihib29sIGFsd2F5cyk7Ci0gICAgdm9pZCBkaXNhYmxl
RGVidWdnZXIoYm9vbCBhbHdheXMgPSBmYWxzZSk7CisgICAgdm9pZCBlbmFibGVEZWJ1Z2dlcigp
OworICAgIHZvaWQgZGlzYWJsZURlYnVnZ2VyKCk7CiAgICAgYm9vbCBkZWJ1Z2dlckVuYWJsZWQo
KSBjb25zdCB7IHJldHVybiBtX2RlYnVnZ2VyQWdlbnQ7IH0KICAgICB2b2lkIHJlc3VtZSgpOwog
CkBAIC0yNTgsNyArMjU3LDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0SW5zcGVjdG9yRXh0ZW5z
aW9uQVBJKGNvbnN0IFN0cmluZyYgc291cmNlKTsKIAogICAgIEluc3BlY3RvclN0YXRlKiBzdGF0
ZSgpIHsgcmV0dXJuIG1fc3RhdGUuZ2V0KCk7IH0KLSAgICBJbnNwZWN0b3JTZXR0aW5ncyogc2V0
dGluZ3MoKSB7IHJldHVybiBtX3NldHRpbmdzLmdldCgpOyB9CiAKICAgICAvLyBJbnNwZWN0b3JB
Z2VudCBBUEkKICAgICB2b2lkIGdldEluc3BlY3RvclN0YXRlKFJlZlB0cjxJbnNwZWN0b3JPYmpl
Y3Q+KiBzdGF0ZSk7CkBAIC0yNjksNyArMjY3LDYgQEAgcHVibGljOgogICAgIHZvaWQgZGlkRXZh
bHVhdGVGb3JUZXN0SW5Gcm9udGVuZChsb25nIGNhbGxJZCwgY29uc3QgU3RyaW5nJiBqc29uUmVz
dWx0KTsKIAogICAgIC8vIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbiBBUEkKLSAgICB2b2lkIGVu
c3VyZVNldHRpbmdzTG9hZGVkKCk7CiAgICAgdm9pZCB3aWxsU2VuZFJlcXVlc3QoUmVzb3VyY2VS
ZXF1ZXN0Jik7CiAKIHByaXZhdGU6CkBAIC0zMTQsNyArMzExLDYgQEAgcHJpdmF0ZToKIAogICAg
IE93blB0cjxJbnNwZWN0b3JUaW1lbGluZUFnZW50PiBtX3RpbWVsaW5lQWdlbnQ7CiAgICAgT3du
UHRyPEluc3BlY3RvclN0YXRlPiBtX3N0YXRlOwotICAgIE93blB0cjxJbnNwZWN0b3JTZXR0aW5n
cz4gbV9zZXR0aW5nczsKIAogI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAg
ICAgT3duUHRyPEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudD4gbV9hcHBsaWNhdGlvbkNh
Y2hlQWdlbnQ7CkBAIC0zNDcsNyArMzQzLDYgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8U3RyaW5n
PiBtX3NjcmlwdHNUb0V2YWx1YXRlT25Mb2FkOwogICAgIFN0cmluZyBtX2luc3BlY3RvckV4dGVu
c2lvbkFQSTsKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKLSAgICBib29sIG1fYXR0
YWNoRGVidWdnZXJXaGVuU2hvd247CiAgICAgT3duUHRyPEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ+
IG1fZGVidWdnZXJBZ2VudDsKICAgICBPd25QdHI8SW5zcGVjdG9yQnJvd3NlckRlYnVnZ2VyQWdl
bnQ+IG1fYnJvd3NlckRlYnVnZ2VyQWdlbnQ7CiAgICAgT3duUHRyPEluc3BlY3RvclByb2ZpbGVy
QWdlbnQ+IG1fcHJvZmlsZXJBZ2VudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAKaW5kZXggNzY2MzhjN2I0NmUxNjg2ZGY0NjJmZjQy
MmRiZDg1NDRjNTZkN2I0Ny4uODcyY2JiNzUwNzFiY2RkNzgwYTIwMGZiNGFjZmVkOGFjZjQ0ZWEz
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVB
Z2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVB
Z2VudC5jcHAKQEAgLTMzLDcgKzMzLDYgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JBZ2VudC5oIgog
I2luY2x1ZGUgIkluc3BlY3RvckRPTUFnZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRl
bmQuaCIKLSNpbmNsdWRlICJJbnNwZWN0b3JTZXR0aW5ncy5oIgogI2luY2x1ZGUgIkluc3BlY3Rv
clN0YXRlLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgogI2luY2x1ZGUgIlJlc291cmNl
UmVzcG9uc2UuaCIKQEAgLTE5NCw5ICsxOTMsNiBAQCB2b2lkIEluc3BlY3RvckNvbnNvbGVBZ2Vu
dDo6ZGlkRmFpbExvYWRpbmcodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdQog
dm9pZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OnNldE1vbml0b3JpbmdYSFJFbmFibGVkKGJvb2wg
ZW5hYmxlZCkKIHsKICAgICBtX2luc3BlY3RvckFnZW50LT5zdGF0ZSgpLT5zZXRCb29sZWFuKElu
c3BlY3RvclN0YXRlOjptb25pdG9yaW5nWEhSLCBlbmFibGVkKTsKLSAgICBtX2luc3BlY3RvckFn
ZW50LT5zZXR0aW5ncygpLT5zZXRCb29sZWFuKEluc3BlY3RvclNldHRpbmdzOjpNb25pdG9yaW5n
WEhSRW5hYmxlZCwgZW5hYmxlZCk7Ci0gICAgaWYgKG1fZnJvbnRlbmQpCi0gICAgICAgIG1fZnJv
bnRlbmQtPm1vbml0b3JpbmdYSFJTdGF0ZUNoYW5nZWQoZW5hYmxlZCk7CiB9CiAKIHZvaWQgSW5z
cGVjdG9yQ29uc29sZUFnZW50OjpzZXRDb25zb2xlTWVzc2FnZXNFbmFibGVkKGJvb2wgZW5hYmxl
ZCkKQEAgLTIwNSw3ICsyMDEsNiBAQCB2b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6c2V0Q29u
c29sZU1lc3NhZ2VzRW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAgaWYgKCFlbmFibGVkIHx8ICFt
X2Zyb250ZW5kKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2Zyb250ZW5kLT5tb25pdG9yaW5n
WEhSU3RhdGVDaGFuZ2VkKG1faW5zcGVjdG9yQWdlbnQtPnN0YXRlKCktPmdldEJvb2xlYW4oSW5z
cGVjdG9yU3RhdGU6Om1vbml0b3JpbmdYSFIpKTsKICAgICBpZiAobV9leHBpcmVkQ29uc29sZU1l
c3NhZ2VDb3VudCkKICAgICAgICAgbV9mcm9udGVuZC0+dXBkYXRlQ29uc29sZU1lc3NhZ2VFeHBp
cmVkQ291bnQobV9leHBpcmVkQ29uc29sZU1lc3NhZ2VDb3VudCk7CiAgICAgdW5zaWduZWQgbWVz
c2FnZUNvdW50ID0gbV9jb25zb2xlTWVzc2FnZXMuc2l6ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAppbmRleCBjNDQ5
YmE0MzM2NjIyNzFhNWIzODE0OGVjMmZiYjU1OGQwYzlmYWQyLi5kYmI0NzJhZTk5ZmRjYmVlOWVh
NjA5OTIyMjE5ODhlOWQ1Yjc4ZDFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcApAQCAtMzc2LDcgKzM3Niw2IEBAIHZv
aWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjppZGVudGlmaWVyRm9ySW5pdGlhbFJlcXVlc3RJ
bXBsKEluc3BlY3RvckFnZW50KiBpCiB7CiAgICAgaWYgKCFpYy0+ZW5hYmxlZCgpKQogICAgICAg
ICByZXR1cm47Ci0gICAgaWMtPmVuc3VyZVNldHRpbmdzTG9hZGVkKCk7CiAKICAgICBpZiAoSW5z
cGVjdG9yUmVzb3VyY2VBZ2VudCogcmVzb3VyY2VBZ2VudCA9IHJldHJpZXZlUmVzb3VyY2VBZ2Vu
dChpYykpCiAgICAgICAgIHJlc291cmNlQWdlbnQtPmlkZW50aWZpZXJGb3JJbml0aWFsUmVxdWVz
dChpZGVudGlmaWVyLCByZXF1ZXN0LnVybCgpLCBsb2FkZXIpOwpAQCAtNDAxLDcgKzQwMCw2IEBA
IHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRMb2FkUmVzb3VyY2VGcm9tTWVtb3J5
Q2FjaGVJbXBsKEluc3BlY3RvckFnZW50CiB7CiAgICAgaWYgKCFpYy0+ZW5hYmxlZCgpKQogICAg
ICAgICByZXR1cm47Ci0gICAgaWMtPmVuc3VyZVNldHRpbmdzTG9hZGVkKCk7CiAgICAgaWYgKElu
c3BlY3RvclJlc291cmNlQWdlbnQqIHJlc291cmNlQWdlbnQgPSByZXRyaWV2ZVJlc291cmNlQWdl
bnQoaWMpKQogICAgICAgICByZXNvdXJjZUFnZW50LT5kaWRMb2FkUmVzb3VyY2VGcm9tTWVtb3J5
Q2FjaGUobG9hZGVyLCBjYWNoZWRSZXNvdXJjZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAKaW5kZXggNDY5MzA1MDdmOGVl
NDNlZTE4NmZiZTU0ZDg5NDI4MTMxMmRhY2JiZi4uMWViNGI2NDAxYTJlNjRmY2IyN2NlZjc5NWY0
OGZhYjlmMjk3ZTE4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvclByb2ZpbGVyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JQcm9maWxlckFnZW50LmNwcApAQCAtMTMyLDEzICsxMzIsMTIgQEAgdm9pZCBJbnNwZWN0
b3JQcm9maWxlckFnZW50OjpkaXNhYmxlKCkKICAgICAgICAgbV9mcm9udGVuZC0+cHJvZmlsZXJX
YXNEaXNhYmxlZCgpOwogfQogCi12b2lkIEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OmVuYWJsZShi
b29sIHNraXBSZWNvbXBpbGUpCit2b2lkIEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OmVuYWJsZSgp
CiB7CiAgICAgaWYgKG1fZW5hYmxlZCkKICAgICAgICAgcmV0dXJuOwogICAgIG1fZW5hYmxlZCA9
IHRydWU7Ci0gICAgaWYgKCFza2lwUmVjb21waWxlKQotICAgICAgICBTY3JpcHREZWJ1Z1NlcnZl
cjo6c2hhcmVkKCkucmVjb21waWxlQWxsSlNGdW5jdGlvbnNTb29uKCk7CisgICAgU2NyaXB0RGVi
dWdTZXJ2ZXI6OnNoYXJlZCgpLnJlY29tcGlsZUFsbEpTRnVuY3Rpb25zU29vbigpOwogICAgIGlm
IChtX2Zyb250ZW5kKQogICAgICAgICBtX2Zyb250ZW5kLT5wcm9maWxlcldhc0VuYWJsZWQoKTsK
IH0KQEAgLTIyOSw3ICsyMjgsNyBAQCB2b2lkIEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OnN0YXJ0
VXNlckluaXRpYXRlZFByb2ZpbGluZygpCiAgICAgaWYgKG1fcmVjb3JkaW5nVXNlckluaXRpYXRl
ZFByb2ZpbGUpCiAgICAgICAgIHJldHVybjsKICAgICBpZiAoIWVuYWJsZWQoKSkgewotICAgICAg
ICBlbmFibGUoZmFsc2UpOworICAgICAgICBlbmFibGUoKTsKICAgICAgICAgU2NyaXB0RGVidWdT
ZXJ2ZXI6OnNoYXJlZCgpLnJlY29tcGlsZUFsbEpTRnVuY3Rpb25zKCk7CiAgICAgfQogICAgIG1f
cmVjb3JkaW5nVXNlckluaXRpYXRlZFByb2ZpbGUgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmgKaW5kZXggOTM2MzdmNTljZmI3
ZjJiZjZjY2IwNDBlODQzMzlkOGM3YWZhNTUwNC4uZjEzMTY5YmExNzQzMzZkZmIxYzAxYWU0NDcx
Y2I2N2E2MTcwNmFkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvclByb2ZpbGVyQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yUHJvZmlsZXJBZ2VudC5oCkBAIC01OCw3ICs1OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFk
ZFN0YXJ0UHJvZmlsaW5nTWVzc2FnZVRvQ29uc29sZShjb25zdCBTdHJpbmcmIHRpdGxlLCB1bnNp
Z25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCk7CiAgICAgdm9pZCBjbGVh
clByb2ZpbGVzKCkgeyByZXNldFN0YXRlKCk7IH0KICAgICB2b2lkIGRpc2FibGUoKTsKLSAgICB2
b2lkIGVuYWJsZShib29sIHNraXBSZWNvbXBpbGUpOworICAgIHZvaWQgZW5hYmxlKCk7CiAgICAg
Ym9vbCBlbmFibGVkKCkgeyByZXR1cm4gbV9lbmFibGVkOyB9CiAgICAgU3RyaW5nIGdldEN1cnJl
bnRVc2VySW5pdGlhdGVkUHJvZmlsZU5hbWUoYm9vbCBpbmNyZW1lbnRQcm9maWxlTnVtYmVyID0g
ZmFsc2UpOwogICAgIHZvaWQgZ2V0UHJvZmlsZUhlYWRlcnMoUmVmUHRyPEluc3BlY3RvckFycmF5
PiogaGVhZGVycyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yU2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclNldHRp
bmdzLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDhjNTY0NTFhNmQ2NTExMTM2
OTk5NDYwMWZhMWM2NmRiOWFmYjBhYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU2V0dGluZ3Mu
Y3BwCisrKyAvZGV2L251bGwKQEAgLTEsOTEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
Ci0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
Ci0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5j
bHVkZSAiSW5zcGVjdG9yU2V0dGluZ3MuaCIKLQotI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0KLSNp
bmNsdWRlICJJbnNwZWN0b3JDbGllbnQuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jb25z
dCBjaGFyKiBJbnNwZWN0b3JTZXR0aW5nczo6TW9uaXRvcmluZ1hIUkVuYWJsZWQgPSAieGhyTW9u
aXRvciI7Ci1jb25zdCBjaGFyKiBJbnNwZWN0b3JTZXR0aW5nczo6UHJvZmlsZXJBbHdheXNFbmFi
bGVkID0gInByb2ZpbGVyRW5hYmxlZCI7Ci1jb25zdCBjaGFyKiBJbnNwZWN0b3JTZXR0aW5nczo6
RGVidWdnZXJBbHdheXNFbmFibGVkID0gImRlYnVnZ2VyRW5hYmxlZCI7Ci0KLUluc3BlY3RvclNl
dHRpbmdzOjpJbnNwZWN0b3JTZXR0aW5ncyhJbnNwZWN0b3JDbGllbnQqIGNsaWVudCkKLSAgICA6
IG1fY2xpZW50KGNsaWVudCkKLXsKLSAgICByZWdpc3RlckJvb2xlYW4oTW9uaXRvcmluZ1hIUkVu
YWJsZWQsIGZhbHNlKTsKLSAgICByZWdpc3RlckJvb2xlYW4oUHJvZmlsZXJBbHdheXNFbmFibGVk
LCBmYWxzZSk7Ci0gICAgcmVnaXN0ZXJCb29sZWFuKERlYnVnZ2VyQWx3YXlzRW5hYmxlZCwgZmFs
c2UpOwotfQotCi1ib29sIEluc3BlY3RvclNldHRpbmdzOjpnZXRCb29sZWFuKGNvbnN0IFN0cmlu
ZyYgbmFtZSkKLXsKLSAgICBTdHJpbmcgdmFsdWU7Ci0gICAgbV9jbGllbnQtPnBvcHVsYXRlU2V0
dGluZyhuYW1lLCAmdmFsdWUpOwotICAgIGlmICh2YWx1ZS5pc0VtcHR5KCkpCi0gICAgICAgIHZh
bHVlID0gbV9kZWZhdWx0VmFsdWVzLmdldChuYW1lKTsKLSAgICByZXR1cm4gdmFsdWUgPT0gInRy
dWUiOwotfQotCi12b2lkIEluc3BlY3RvclNldHRpbmdzOjpzZXRCb29sZWFuKGNvbnN0IFN0cmlu
ZyYgbmFtZSwgYm9vbCB2YWx1ZSkKLXsKLSAgICBtX2NsaWVudC0+c3RvcmVTZXR0aW5nKG5hbWUs
IHZhbHVlID8gInRydWUiIDogImZhbHNlIik7Ci19Ci0KLWxvbmcgSW5zcGVjdG9yU2V0dGluZ3M6
OmdldExvbmcoY29uc3QgU3RyaW5nJiBuYW1lKQotewotICAgIFN0cmluZyB2YWx1ZTsKLSAgICBt
X2NsaWVudC0+cG9wdWxhdGVTZXR0aW5nKG5hbWUsICZ2YWx1ZSk7Ci0gICAgaWYgKHZhbHVlLmlz
RW1wdHkoKSkKLSAgICAgICAgdmFsdWUgPSBtX2RlZmF1bHRWYWx1ZXMuZ2V0KG5hbWUpOwotICAg
IHJldHVybiB2YWx1ZS50b0ludCgpOwotfQotCi12b2lkIEluc3BlY3RvclNldHRpbmdzOjpzZXRM
b25nKGNvbnN0IFN0cmluZyYgbmFtZSwgbG9uZyB2YWx1ZSkKLXsKLSAgICBtX2NsaWVudC0+c3Rv
cmVTZXR0aW5nKG5hbWUsIFN0cmluZzo6bnVtYmVyKHZhbHVlKSk7Ci19Ci0KLXZvaWQgSW5zcGVj
dG9yU2V0dGluZ3M6OnJlZ2lzdGVyQm9vbGVhbihjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgZGVm
YXVsdFZhbHVlKQotewotICAgIG1fZGVmYXVsdFZhbHVlcy5zZXQobmFtZSwgZGVmYXVsdFZhbHVl
ID8gInRydWUiIDogImZhbHNlIik7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yU2V0dGluZ3M6OnJlZ2lz
dGVyTG9uZyhjb25zdCBTdHJpbmcmIG5hbWUsIGxvbmcgZGVmYXVsdFZhbHVlKQotewotICAgIG1f
ZGVmYXVsdFZhbHVlcy5zZXQobmFtZSwgU3RyaW5nOjpudW1iZXIoZGVmYXVsdFZhbHVlKSk7Ci19
Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1Ip
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU2V0dGluZ3Mu
aCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTZXR0aW5ncy5oCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZDQ4NTcwMDEwNTBlMjBhMTliNWQ0YzFiNzExYzUwMTY1
NWY1N2MzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTZXR0aW5ncy5oCisrKyAvZGV2L251bGwK
QEAgLTEsNzEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQot
ICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQot
ICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
LSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNpZm5kZWYgSW5zcGVjdG9yU2V0dGluZ3NfaAotI2RlZmluZSBJbnNw
ZWN0b3JTZXR0aW5nc19oCi0KLSNpZiBFTkFCTEUoSU5TUEVDVE9SKQotCi0jaW5jbHVkZSAiUGxh
dGZvcm1TdHJpbmcuaCIKLQotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3Rm
L3RleHQvU3RyaW5nSGFzaC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEluc3Bl
Y3RvckNsaWVudDsKLQotY2xhc3MgSW5zcGVjdG9yU2V0dGluZ3MgewotcHVibGljOgotICAgIHN0
YXRpYyBjb25zdCBjaGFyKiBNb25pdG9yaW5nWEhSRW5hYmxlZDsKLSAgICBzdGF0aWMgY29uc3Qg
Y2hhciogUHJvZmlsZXJBbHdheXNFbmFibGVkOwotICAgIHN0YXRpYyBjb25zdCBjaGFyKiBEZWJ1
Z2dlckFsd2F5c0VuYWJsZWQ7Ci0KLSAgICBJbnNwZWN0b3JTZXR0aW5ncyhJbnNwZWN0b3JDbGll
bnQqIGNsaWVudCk7Ci0KLSAgICBib29sIGdldEJvb2xlYW4oY29uc3QgU3RyaW5nJiBuYW1lKTsK
LSAgICB2b2lkIHNldEJvb2xlYW4oY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIHZhbHVlKTsKLQot
ICAgIGxvbmcgZ2V0TG9uZyhjb25zdCBTdHJpbmcmIG5hbWUpOwotICAgIHZvaWQgc2V0TG9uZyhj
b25zdCBTdHJpbmcmIG5hbWUsIGxvbmcgdmFsdWUpOwotCi1wcml2YXRlOgotICAgIHZvaWQgcmVn
aXN0ZXJCb29sZWFuKGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWZhdWx0VmFsdWUpOwotICAg
IHZvaWQgcmVnaXN0ZXJMb25nKGNvbnN0IFN0cmluZyYgbmFtZSwgbG9uZyBkZWZhdWx0VmFsdWUp
OwotCi0gICAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBEaWN0aW9uYXJ5OwotICAg
IERpY3Rpb25hcnkgbV9kZWZhdWx0VmFsdWVzOwotICAgIEluc3BlY3RvckNsaWVudCogbV9jbGll
bnQ7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoSU5T
UEVDVE9SKQotI2VuZGlmIC8vICFkZWZpbmVkKEluc3BlY3RvclNldHRpbmdzX2gpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3RhdGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0YXRlLmNwcAppbmRleCBjMWI2ODIxYWJiMTc0
MDY1ZThmZDI3MGIxMWRjNGJhYWM2MDdkZTUzLi43NzlkNDY0ZDZhOWMzM2FhNTVmZmM1Yjg0NGM2
NTJiNzI5NzQ0MmNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yU3RhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdGF0
ZS5jcHAKQEAgLTQyLDYgKzQyLDggQEAgSW5zcGVjdG9yU3RhdGU6Okluc3BlY3RvclN0YXRlKElu
c3BlY3RvckNsaWVudCogY2xpZW50KQogICAgIHJlZ2lzdGVyQm9vbGVhbih1c2VySW5pdGlhdGVk
UHJvZmlsaW5nLCBmYWxzZSk7CiAgICAgcmVnaXN0ZXJCb29sZWFuKHRpbWVsaW5lUHJvZmlsZXJF
bmFibGVkLCBmYWxzZSk7CiAgICAgcmVnaXN0ZXJCb29sZWFuKHNlYXJjaGluZ0Zvck5vZGUsIGZh
bHNlKTsKKyAgICByZWdpc3RlckJvb2xlYW4oZGVidWdnZXJFbmFibGVkLCBmYWxzZSk7CisgICAg
cmVnaXN0ZXJCb29sZWFuKHByb2ZpbGVyRW5hYmxlZCwgZmFsc2UpOwogICAgIHJlZ2lzdGVyT2Jq
ZWN0KGphdmFTY3JpcHRCcmVha3BvaW50cyk7CiAgICAgcmVnaXN0ZXJPYmplY3QoYnJvd3NlckJy
ZWFrcG9pbnRzKTsKICAgICByZWdpc3RlckJvb2xlYW4oY29uc29sZU1lc3NhZ2VzRW5hYmxlZCwg
ZmFsc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0
YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3RhdGUuaAppbmRleCAy
MDE3MzMyMjcyNGE2MDBkZjVmOTRmNzA0MGMwYTNmZGM0ODg5YzczLi45MGEyYzE3NTkyZjgxOGNi
ZWIzYThhYmYyM2JkMjNiNmU2MGIzYTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yU3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yU3RhdGUuaApAQCAtNDgsNyArNDgsOSBAQCBwdWJsaWM6CiAgICAgICAgIHRpbWVsaW5l
UHJvZmlsZXJFbmFibGVkLAogICAgICAgICBzZWFyY2hpbmdGb3JOb2RlLAogICAgICAgICBjb25z
b2xlTWVzc2FnZXNFbmFibGVkLAorICAgICAgICBwcm9maWxlckVuYWJsZWQsCiAgICAgICAgIHVz
ZXJJbml0aWF0ZWRQcm9maWxpbmcsCisgICAgICAgIGRlYnVnZ2VyRW5hYmxlZCwKICAgICAgICAg
amF2YVNjcmlwdEJyZWFrcG9pbnRzLAogICAgICAgICBicm93c2VyQnJlYWtwb2ludHMsCiAgICAg
ICAgIHJlc291cmNlQWdlbnRFbmFibGVkLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanMKaW5kZXggN2ZlYjdhYjk3ODEyNDA1MGU1ZjVkNWU5
ZGZiOWQ0ODRkZWEwMmJmYy4uM2FhNWVmMGM5ZjhhNTEzMzBhNzQ1ZTdjYWFlZDQ1NGM1OTFiNjQw
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xl
Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVW
aWV3LmpzCkBAIC0xNTAsMTEgKzE1MCw2IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90
b3R5cGUgPSB7CiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgY29uc29sZS5jbGVhck1l
c3NhZ2VzKCk7CiAgICAgICAgICAgICB9LAotCi0gICAgICAgICAgICBtb25pdG9yaW5nWEhSU3Rh
dGVDaGFuZ2VkOiBmdW5jdGlvbihlbmFibGVkKQotICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgIGNvbnNvbGUuX21vbml0b3JpbmdYSFJFbmFibGVkID0gZW5hYmxlZDsKLSAgICAgICAgICAg
IH0KICAgICAgICAgfQogICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyRG9tYWluRGlz
cGF0Y2hlcigiQ29uc29sZSIsIGRpc3BhdGNoZXIpOwogICAgIH0sCkBAIC00MTgsOSArNDEzLDEy
IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICB2YXIgaXRlbUFjdGlvbiA9IEluc3BlY3RvckJh
Y2tlbmQuc2V0TW9uaXRvcmluZ1hIUkVuYWJsZWQuYmluZChJbnNwZWN0b3JCYWNrZW5kLCAhdGhp
cy5fbW9uaXRvcmluZ1hIUkVuYWJsZWQpOworICAgICAgICB2YXIgaXRlbUFjdGlvbiA9IGZ1bmN0
aW9uICgpIHsKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5zZXR0aW5ncy5tb25pdG9yaW5nWEhS
RW5hYmxlZCA9ICFXZWJJbnNwZWN0b3Iuc2V0dGluZ3MubW9uaXRvcmluZ1hIUkVuYWJsZWQ7Cisg
ICAgICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnNldE1vbml0b3JpbmdYSFJFbmFibGVkKFdlYklu
c3BlY3Rvci5zZXR0aW5ncy5tb25pdG9yaW5nWEhSRW5hYmxlZCk7CisgICAgICAgIH0uYmluZCh0
aGlzKTsKICAgICAgICAgdmFyIGNvbnRleHRNZW51ID0gbmV3IFdlYkluc3BlY3Rvci5Db250ZXh0
TWVudSgpOwotICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRDaGVja2JveEl0ZW0oV2ViSW5zcGVj
dG9yLlVJU3RyaW5nKCJYTUxIdHRwUmVxdWVzdCBsb2dnaW5nIiksIGl0ZW1BY3Rpb24sIHRoaXMu
X21vbml0b3JpbmdYSFJFbmFibGVkKTsKKyAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kQ2hlY2ti
b3hJdGVtKFdlYkluc3BlY3Rvci5VSVN0cmluZygiWE1MSHR0cFJlcXVlc3QgbG9nZ2luZyIpLCBp
dGVtQWN0aW9uLCBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MubW9uaXRvcmluZ1hIUkVuYWJsZWQpCiAg
ICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDbGVh
ciBDb25zb2xlIiksIHRoaXMucmVxdWVzdENsZWFyTWVzc2FnZXMuYmluZCh0aGlzKSk7CiAgICAg
ICAgIGNvbnRleHRNZW51LnNob3coZXZlbnQpOwogICAgIH0sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanMgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanMKaW5kZXggYmJlMGM1ZWJj
ZmVmZWJhZjk2YTUxODllMjM2Yjc1Mjk3YjMxMDhlNy4uMTc2ZGRiMmVmZWU3MjE1ZGMxNzcyOWJm
NDdmMTNmMzg5NTUzNjhmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9Qcm9maWxlc1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qcwpAQCAtNTgwLDEwICs1ODAsMTMgQEAgV2ViSW5zcGVj
dG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlID0gewogCiAgICAgX3RvZ2dsZVByb2ZpbGluZzog
ZnVuY3Rpb24ob3B0aW9uYWxBbHdheXMpCiAgICAgewotICAgICAgICBpZiAodGhpcy5fcHJvZmls
ZXJFbmFibGVkKQorICAgICAgICBpZiAodGhpcy5fcHJvZmlsZXJFbmFibGVkKSB7CisgICAgICAg
ICAgICBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MucHJvZmlsZXJFbmFibGVkID0gZmFsc2U7CiAgICAg
ICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmRpc2FibGVQcm9maWxlcih0cnVlKTsKLSAgICAgICAg
ZWxzZQotICAgICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5lbmFibGVQcm9maWxlcighIW9wdGlv
bmFsQWx3YXlzKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5z
ZXR0aW5ncy5wcm9maWxlckVuYWJsZWQgPSAhIW9wdGlvbmFsQWx3YXlzOworICAgICAgICAgICAg
SW5zcGVjdG9yQmFja2VuZC5lbmFibGVQcm9maWxlcigpOworICAgICAgICB9CiAgICAgfSwKIAog
ICAgIF9wb3B1bGF0ZVByb2ZpbGVzOiBmdW5jdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCmluZGV4IDg4YmU2NjNhZTQzZTdi
YWE5MGE3Y2ExMDViMzE2ZmY1NWZkNzUxNjcuLmRkYzkwNmEzYjUxMjUxNmZjMTQzNGE3YzQwYTEz
NzUwYTVlOWM0NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvU2NyaXB0c1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvU2NyaXB0c1BhbmVsLmpzCkBAIC04MDEsMTAgKzgwMSwxMyBAQCBXZWJJbnNwZWN0b3IuU2Ny
aXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fd2FpdGluZ1RvUGF1c2UgPSBm
YWxzZTsKICAgICAgICAgdGhpcy5fc3RlcHBpbmcgPSBmYWxzZTsKIAotICAgICAgICBpZiAodGhp
cy5fZGVidWdnZXJFbmFibGVkKQotICAgICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5kaXNhYmxl
RGVidWdnZXIodHJ1ZSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIEluc3BlY3RvckJhY2tl
bmQuZW5hYmxlRGVidWdnZXIoISFvcHRpb25hbEFsd2F5cyk7CisgICAgICAgIGlmICh0aGlzLl9k
ZWJ1Z2dlckVuYWJsZWQpIHsKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5zZXR0aW5ncy5kZWJ1
Z2dlckVuYWJsZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQuZGlzYWJs
ZURlYnVnZ2VyKCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBXZWJJbnNwZWN0b3Iu
c2V0dGluZ3MuZGVidWdnZXJFbmFibGVkID0gISFvcHRpb25hbEFsd2F5czsKKyAgICAgICAgICAg
IEluc3BlY3RvckJhY2tlbmQuZW5hYmxlRGVidWdnZXIoKTsKKyAgICAgICAgfQogICAgIH0sCiAK
ICAgICBfdG9nZ2xlUGF1c2VPbkV4Y2VwdGlvbnM6IGZ1bmN0aW9uKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3MuanMgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzLmpzCmluZGV4IGVmNmIyNjM4MTM0NjJj
OTAwNTlhYTI1MzFmMTZiZTE2M2I0N2FlZmEuLjFjZWE1ZTFhOTA0NWQ3YWViMGZhOWQ0NmRlMjky
M2JiNjE5NjhkZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvU2V0dGluZ3MuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9T
ZXR0aW5ncy5qcwpAQCAtNTgsMTYgKzU4LDE5IEBAIFdlYkluc3BlY3Rvci5TZXR0aW5ncyA9IGZ1
bmN0aW9uKCkKIHsKICAgICB0aGlzLmluc3RhbGxBcHBsaWNhdGlvblNldHRpbmcoImNvbG9yRm9y
bWF0IiwgImhleCIpOwogICAgIHRoaXMuaW5zdGFsbEFwcGxpY2F0aW9uU2V0dGluZygiY29uc29s
ZUhpc3RvcnkiLCBbXSk7CisgICAgdGhpcy5pbnN0YWxsQXBwbGljYXRpb25TZXR0aW5nKCJkZWJ1
Z2dlckVuYWJsZWQiLCBmYWxzZSk7CisgICAgdGhpcy5pbnN0YWxsQXBwbGljYXRpb25TZXR0aW5n
KCJwcm9maWxlckVuYWJsZWQiLCBmYWxzZSk7CiAgICAgdGhpcy5pbnN0YWxsQXBwbGljYXRpb25T
ZXR0aW5nKCJldmVudExpc3RlbmVyc0ZpbHRlciIsICJhbGwiKTsKKyAgICB0aGlzLmluc3RhbGxB
cHBsaWNhdGlvblNldHRpbmcoImxhc3RBY3RpdmVQYW5lbCIsICJlbGVtZW50cyIpOwogICAgIHRo
aXMuaW5zdGFsbEFwcGxpY2F0aW9uU2V0dGluZygibGFzdFZpZXdlZFNjcmlwdEZpbGUiLCAiYXBw
bGljYXRpb24iKTsKKyAgICB0aGlzLmluc3RhbGxBcHBsaWNhdGlvblNldHRpbmcoIm1vbml0b3Jp
bmdYSFJFbmFibGVkIiwgZmFsc2UpOworICAgIHRoaXMuaW5zdGFsbEFwcGxpY2F0aW9uU2V0dGlu
ZygicGF1c2VPbkV4Y2VwdGlvblN0YXRlIiwgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5QYXVz
ZU9uRXhjZXB0aW9uc1N0YXRlLkRvbnRQYXVzZU9uRXhjZXB0aW9ucyk7CiAgICAgdGhpcy5pbnN0
YWxsQXBwbGljYXRpb25TZXR0aW5nKCJyZXNvdXJjZXNMYXJnZVJvd3MiLCB0cnVlKTsKICAgICB0
aGlzLmluc3RhbGxBcHBsaWNhdGlvblNldHRpbmcoInJlc291cmNlc1NvcnRPcHRpb25zIiwge3Rp
bWVPcHRpb246ICJyZXNwb25zZVRpbWUiLCBzaXplT3B0aW9uOiAidHJhbnNmZXJTaXplIn0pOwog
ICAgIHRoaXMuaW5zdGFsbEFwcGxpY2F0aW9uU2V0dGluZygicmVzb3VyY2VWaWV3VGFiIiwgImNv
bnRlbnQiKTsKICAgICB0aGlzLmluc3RhbGxBcHBsaWNhdGlvblNldHRpbmcoInNob3dJbmhlcml0
ZWRDb21wdXRlZFN0eWxlUHJvcGVydGllcyIsIGZhbHNlKTsKICAgICB0aGlzLmluc3RhbGxBcHBs
aWNhdGlvblNldHRpbmcoInNob3dVc2VyQWdlbnRTdHlsZXMiLCB0cnVlKTsKICAgICB0aGlzLmlu
c3RhbGxBcHBsaWNhdGlvblNldHRpbmcoIndhdGNoRXhwcmVzc2lvbnMiLCBbXSk7Ci0gICAgdGhp
cy5pbnN0YWxsQXBwbGljYXRpb25TZXR0aW5nKCJsYXN0QWN0aXZlUGFuZWwiLCAiZWxlbWVudHMi
KTsKLSAgICB0aGlzLmluc3RhbGxBcHBsaWNhdGlvblNldHRpbmcoInBhdXNlT25FeGNlcHRpb25T
dGF0ZSIsIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwuUGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZS5E
b250UGF1c2VPbkV4Y2VwdGlvbnMpOwogCiAgICAgdGhpcy5pbnN0YWxsUHJvamVjdFNldHRpbmco
ImJyZWFrcG9pbnRzIiwge30pOwogICAgIHRoaXMuaW5zdGFsbFByb2plY3RTZXR0aW5nKCJuYXRp
dmVCcmVha3BvaW50cyIsIFtdKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9pbnNwZWN0b3IuanMKaW5kZXggMGZhNDIwOWUxZDJlM2JkOTk2ODliMjc3ZmYyNjFhOWFk
OTkyYzk0NS4uYTE0ZmNjNDY3MDM1ODM4MTkyMzczYjlkYzU0YWYxMjlmODFhOTVmNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKQEAgLTYw
MSw2ICs2MDEsMTMgQEAgV2ViSW5zcGVjdG9yLmRvTG9hZGVkRG9uZSA9IGZ1bmN0aW9uKCkKICAg
ICB9CiAgICAgSW5zcGVjdG9yQmFja2VuZC5wb3B1bGF0ZVNjcmlwdE9iamVjdHMob25Qb3B1bGF0
ZVNjcmlwdE9iamVjdHMpOwogCisgICAgaWYgKFdlYkluc3BlY3Rvci5zZXR0aW5ncy5kZWJ1Z2dl
ckVuYWJsZWQpCisgICAgICAgIEluc3BlY3RvckJhY2tlbmQuZW5hYmxlRGVidWdnZXIoKTsKKyAg
ICBpZiAoV2ViSW5zcGVjdG9yLnNldHRpbmdzLnByb2ZpbGVyRW5hYmxlZCkKKyAgICAgICAgSW5z
cGVjdG9yQmFja2VuZC5lbmFibGVQcm9maWxlcigpOworICAgIGlmIChXZWJJbnNwZWN0b3Iuc2V0
dGluZ3MubW9uaXRvcmluZ1hIUkVuYWJsZWQpCisgICAgICAgIEluc3BlY3RvckJhY2tlbmQuc2V0
TW9uaXRvcmluZ1hIUkVuYWJsZWQodHJ1ZSk7CisKICAgICBJbnNwZWN0b3JCYWNrZW5kLnNldENv
bnNvbGVNZXNzYWdlc0VuYWJsZWQodHJ1ZSk7CiAKICAgICBmdW5jdGlvbiBwcm9wZXJ0eU5hbWVz
Q2FsbGJhY2sobmFtZXMpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80208</attachid>
            <date>2011-01-26 10:28:14 -0800</date>
            <delta_ts>2011-01-27 05:15:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53174-20110126212811.patch</filename>
            <type>text/plain</type>
            <size>45358</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggOTM3OTNlNDEwZDc2M2VmYmNkMTkyM2U2MDY5NDg1MTM5
YmEzNTI4Yy4uNzI2MzljZjE4MDA1NDY5YmM3YWFlODUyZjg4ODk2YWZiODlhMTU3MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKQEAgLTExNzMsNyArMTE3Myw2IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMK
ICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAKICAgICBpbnNwZWN0b3Iv
SW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yUnVudGlt
ZUFnZW50LmNwcAotICAgIGluc3BlY3Rvci9JbnNwZWN0b3JTZXR0aW5ncy5jcHAKICAgICBpbnNw
ZWN0b3IvSW5zcGVjdG9yU3RhdGUuY3BwCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hl
ZXQuY3BwCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggYjY1OTI3MGE0MTIzOWMzZDdiYjc1Y2ExNThjMmIzZjUyZDc5Yzk0Zi4uYjk3ZjI5ZDhm
Nzg1ZWNhOGRkMGFjNTJjYzEwZDRjMjA0MWM2ZGI2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYw
IEBACisyMDExLTAxLTI2ICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IHN0b3JlIGFsbCBzZXR0aW5ncyByZWxhdGVkIHRvIHRoZSBhZ2VudHMgb24gdGhlIGZy
b250ZW5kIHNpZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTUzMTc0CisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtl
ZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBXZWJDb3JlLmd5
cGk6CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3IuaWRsOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JBZ2VudC5jcHA6IHByb2ZpbGVyIGFuZCBkZWJ1Z2dlciBlbmFibGVtZW50IHN0
YXRlIGlzIG5vdyBzdG9yZWQKKyAgICAgICAgb24gdGhlIGZyb250LWVuZCBzaWRlIGFuZCB3aWxs
IGJlIHB1c2hlZCB0byB0aGUgYmFja2VuZCB3aGVuIHRoZSBmcm9udGVuZCBpcyBsb2FkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBZ2VudDo6SW5zcGVjdG9yQWdlbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yQWdlbnQ6OmRpc2Nvbm5lY3RGcm9udGVuZCk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JBZ2VudDo6cmVzdG9yZURlYnVnZ2VyKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckFnZW50OjpyZXN0b3JlUHJvZmlsZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yQWdlbnQ6OmVuYWJsZVByb2ZpbGVyKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckFnZW50OjpkaXNhYmxlUHJvZmlsZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yQWdlbnQ6OnNob3dBbmRFbmFibGVEZWJ1Z2dlcik6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JBZ2VudDo6ZW5hYmxlRGVidWdnZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
QWdlbnQ6OmRpc2FibGVEZWJ1Z2dlcik6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckFn
ZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHA6IFhI
UiBmYWlsdXJlcyB3aWxsIGJlIGxvZ2dlZCB0byB0aGUgY29uc29sZSBvbmx5CisgICAgICAgIGlm
IHRoZSBmcm9udC1lbmQgd2FzIG9wZW5lZCBkdXJpbmcgY3VycmVudCBicm93c2VyIHNlc3Npb24g
YW5kIFhIUiBsb2dnaW5nIGlzIHR1cm5lZCBvbgorICAgICAgICB0aGVyZS4KKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckNvbnNvbGVBZ2VudDo6c2V0TW9uaXRvcmluZ1hIUkVuYWJsZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29uc29sZUFnZW50OjpzZXRDb25zb2xlTWVzc2Fn
ZXNFbmFibGVkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aWRlbnRp
ZmllckZvckluaXRpYWxSZXF1ZXN0SW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmRpZExvYWRSZXNvdXJjZUZyb21NZW1vcnlDYWNoZUltcGwpOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OmVuYWJsZSk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JQcm9maWxlckFnZW50OjpzdGFydFVzZXJJbml0aWF0ZWRQcm9maWxpbmcpOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50Lmg6CisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvclNldHRpbmdzLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9yU2V0dGluZ3MuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9yU3RhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3RhdGU6Oklu
c3BlY3RvclN0YXRlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yU3RhdGUuaDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZS5fcmVnaXN0ZXJDb25zb2xlRG9tYWluRGlz
cGF0Y2hlci5kaXNwYXRjaGVyLmNvbnNvbGVNZXNzYWdlc0NsZWFyZWQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZS5fcmVnaXN0ZXJDb25zb2xlRG9tYWluRGlz
cGF0Y2hlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlLl9o
YW5kbGVDb250ZXh0TWVudUV2ZW50Lml0ZW1BY3Rpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkNvbnNvbGVWaWV3LnByb3RvdHlwZS5faGFuZGxlQ29udGV4dE1lbnVFdmVudCk6CisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlLl90b2dnbGVQcm9maWxpbmcpOgorICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUuX3RvZ2dsZURlYnVnZ2luZyk6CisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5ncy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5TZXR0aW5ncyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanM6
CisKIDIwMTEtMDEtMjYgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBQYXZlbCBGZWxkbWFuLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRl
eCA5OWVhNDQxMDgwYjI4ZTNjYTZiM2U3MTcyZTEyN2QyY2RkMjRiYTE1Li44NGQxZGY2NWZhNzg0
Yzk3YTMxMmJkN2U4NWEyOTMwMTZmMGRjMDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtMTk5
NCw4ICsxOTk0LDYgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yUnVudGltZUFnZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclJ1bnRpbWVBZ2VudC5oIFwKLQlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yU2V0dGluZ3MuY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
U2V0dGluZ3MuaCBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0YXRlLmNw
cCBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0YXRlLmggXAogCVNvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcCBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluCmluZGV4IDliMjExN2RmYTBjZTgzNjA0ZDIyZDMxNWVhZTkzODgxMTI1YWZjNzcuLjQ3
ZjE0NTBjZGVjMDk2OTEzZTBlMjdmMWIxNjEyMzJiYjZlNmQzNmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhw
LmluCkBAIC0xMzYyLDkgKzEzNjIsOSBAQCBfX1pON1dlYkNvcmUxNEluc3BlY3RvckFnZW50NWNs
b3NlRXYKIF9fWk43V2ViQ29yZTE0SW5zcGVjdG9yQWdlbnQ5c2hvd1BhbmVsRVJLTjNXVEY2U3Ry
aW5nRQogX19aTjdXZWJDb3JlMTRJbnNwZWN0b3JBZ2VudDEyQ29uc29sZVBhbmVsRQogX19aTjdX
ZWJDb3JlMTRJbnNwZWN0b3JBZ2VudDEzUHJvZmlsZXNQYW5lbEUKLV9fWk43V2ViQ29yZTE0SW5z
cGVjdG9yQWdlbnQxNGVuYWJsZVByb2ZpbGVyRWJiCi1fX1pON1dlYkNvcmUxNEluc3BlY3RvckFn
ZW50MTVkaXNhYmxlRGVidWdnZXJFYgotX19aTjdXZWJDb3JlMTRJbnNwZWN0b3JBZ2VudDE1ZGlz
YWJsZVByb2ZpbGVyRWIKK19fWk43V2ViQ29yZTE0SW5zcGVjdG9yQWdlbnQxNGVuYWJsZVByb2Zp
bGVyRXYKK19fWk43V2ViQ29yZTE0SW5zcGVjdG9yQWdlbnQxNWRpc2FibGVEZWJ1Z2dlckV2Citf
X1pON1dlYkNvcmUxNEluc3BlY3RvckFnZW50MTVkaXNhYmxlUHJvZmlsZXJFdgogX19aTjdXZWJD
b3JlMTRJbnNwZWN0b3JBZ2VudDE4ZGlzY29ubmVjdEZyb250ZW5kRXYKIF9fWk43V2ViQ29yZTE0
SW5zcGVjdG9yQWdlbnQyMHN0b3BUaW1lbGluZVByb2ZpbGVyRXYKIF9fWk43V2ViQ29yZTE0SW5z
cGVjdG9yQWdlbnQyMXNob3dBbmRFbmFibGVEZWJ1Z2dlckV2CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXgg
NGE0ZTA0YzllMGI0MjNmN2ZmMjRlMjM5ZTgyOGRjNjBmM2Q2MzAxNC4uM2E5NjUyOTYzY2MxYmU0
YjhkZDFmMjIxOTE1ZGQ4MTJhMTZjYWNhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMjA0OSw4ICsy
MDQ5LDYgQEAKICAgICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9yUnVudGltZUFnZW50LmNw
cCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5oJywKICAg
ICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9yU3RhdGUuY3BwJywKLSAgICAgICAgICAgICdp
bnNwZWN0b3IvSW5zcGVjdG9yU2V0dGluZ3MuaCcsCi0gICAgICAgICAgICAnaW5zcGVjdG9yL0lu
c3BlY3RvclNldHRpbmdzLmNwcCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3RvclN0
YXRlLmgnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcCcs
CiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuaCcsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
cHJvCmluZGV4IGU2NGFlOTdhNDk2MjliYjk4Y2RkMjQ1OGVkMTY0YmE1NGRiNmVjZmIuLmFlYzNl
Y2I4NGNjOTkxYjUyZjk1MDIzNjQ1ZjExNTY3NjI0NGRkMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0x
MDYyLDcgKzEwNjIsNiBAQCBTT1VSQ0VTICs9IFwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yUHJv
ZmlsZXJBZ2VudC5jcHAgXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNw
cCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAgXAotICAgIGluc3Bl
Y3Rvci9JbnNwZWN0b3JTZXR0aW5ncy5jcHAgXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JTdGF0
ZS5jcHAgXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcCBcCiAgICAgaW5z
cGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwIFwKQEAgLTE5NjIsNyArMTk2MSw2IEBA
IEhFQURFUlMgKz0gXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmggXAog
ICAgIGluc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmggXAogICAgIGluc3BlY3Rvci9J
bnNwZWN0b3JSdW50aW1lQWdlbnQuaCBcCi0gICAgaW5zcGVjdG9yL0luc3BlY3RvclNldHRpbmdz
LmggXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JTdGF0ZS5oIFwKICAgICBpbnNwZWN0b3IvSW5z
cGVjdG9yU3R5bGVTaGVldC5oIFwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5k
ZXggZTJjZWZhMGNmYjMwY2YzNTAwYTI1YTE2MmFjMzhlNWY2YWFlMGRkZi4uNzQ3NDBkNzBiYmJi
NDE5NTFmMWJkMGMzOGNjN2U0MDMzMzlhNTRhYiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTY1MjU0LDE0ICs2NTI1NCw2IEBACiAJCQkJPgog
CQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3RvclxJbnNw
ZWN0b3JTZXR0aW5ncy5jcHAiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JTZXR0aW5ncy5oIgotCQkJCT4KLQkJCTwv
RmlsZT4KLQkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9y
U3RhdGUuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBjYzI4MjI3NzFlMGQyMWY5OThiMDJm
NTRlOGJiZjlkNmViZjI2ZDgyLi42YzRjNDhlMTczN2M1YThhZGY3OTVjOGQzZTMzMGRlNmNlNTRk
MzRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC0xNjU5LDggKzE2NTksNiBAQAogCQk3QTFGMkI1MjEyNkM2MUIyMDAwNkE3RTYg
LyogSW5zcGVjdG9yQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdBMUYyQjUxMTI2QzYxQjIwMDA2QTdFNiAvKiBJbnNwZWN0b3JDbGllbnQu
Y3BwICovOyB9OwogCQk3QTI0NTg3QjEwMjFFQUY0MDAwQTAwQUEgLyogSW5zcGVjdG9yRE9NQWdl
bnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0Ey
NDU4NzkxMDIxRUFGNDAwMEEwMEFBIC8qIEluc3BlY3RvckRPTUFnZW50LmNwcCAqLzsgfTsKIAkJ
N0EyNDU4N0MxMDIxRUFGNDAwMEEwMEFBIC8qIEluc3BlY3RvckRPTUFnZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QTI0NTg3QTEwMjFFQUY0MDAw
QTAwQUEgLyogSW5zcGVjdG9yRE9NQWdlbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwotCQk3QTU2NDBCRjEyREY5RTVFMDBGNDUzNkQgLyogSW5zcGVj
dG9yU2V0dGluZ3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gN0E1NjQwQkQxMkRGOUU1RTAwRjQ1MzZEIC8qIEluc3BlY3RvclNldHRpbmdzLmNwcCAq
LzsgfTsKLQkJN0E1NjQwQzAxMkRGOUU1RTAwRjQ1MzZEIC8qIEluc3BlY3RvclNldHRpbmdzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QTU2NDBCRTEy
REY5RTVFMDBGNDUzNkQgLyogSW5zcGVjdG9yU2V0dGluZ3MuaCAqLzsgfTsKIAkJN0E2NzRCREIw
RjlFQkY0RTAwNkNGMDk5IC8qIFBhZ2VHcm91cExvYWREZWZlcnJlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QTY3NEJEOTBGOUVCRjRFMDA2Q0Yw
OTkgLyogUGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcCAqLzsgfTsKIAkJN0E2NzRCREMwRjlFQkY0
RTAwNkNGMDk5IC8qIFBhZ2VHcm91cExvYWREZWZlcnJlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0E2NzRCREEwRjlFQkY0RTAwNkNGMDk5IC8qIFBh
Z2VHcm91cExvYWREZWZlcnJlci5oICovOyB9OwogCQk3QTc0RUNCQTEwMTgzOUE2MDBCRjkzOUUg
LyogSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdBNzRFQ0I4MTAxODM5QTUwMEJGOTM5RSAvKiBJbnNwZWN0
b3JET01TdG9yYWdlQWdlbnQuY3BwICovOyB9OwpAQCAtODEwMiw4ICs4MTAwLDYgQEAKIAkJN0Ey
NDU4N0ExMDIxRUFGNDAwMEEwMEFBIC8qIEluc3BlY3RvckRPTUFnZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3RvckRPTUFnZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTdBNTYzRTU0MTJERTMyQjAwMEY0NTM2RCAvKiBJbmplY3RlZFNjcmlw
dFNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmplY3RlZFNjcmlw
dFNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QTU2M0Y5NTEyREY1Qzkx
MDBGNDUzNkQgLyogSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmphdmFzY3JpcHQ7IHBhdGggPSBJbmplY3RlZFNjcmlwdFNvdXJjZS5qczsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJN0E1NjQwQkQxMkRGOUU1RTAwRjQ1MzZEIC8qIEluc3BlY3RvclNl
dHRpbmdzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3Rv
clNldHRpbmdzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJN0E1NjQwQkUxMkRG
OUU1RTAwRjQ1MzZEIC8qIEluc3BlY3RvclNldHRpbmdzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEluc3BlY3RvclNldHRpbmdzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTdBNjc0QkQ5MEY5RUJGNEUwMDZDRjA5OSAvKiBQYWdlR3JvdXBMb2FkRGVmZXJyZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFnZUdyb3VwTG9hZERl
ZmVycmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0E2NzRCREEwRjlFQkY0
RTAwNkNGMDk5IC8qIFBhZ2VHcm91cExvYWREZWZlcnJlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBQYWdlR3JvdXBMb2FkRGVmZXJyZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJN0E3NEVDQjgxMDE4MzlBNTAwQkY5MzlFIC8qIEluc3BlY3RvckRPTVN0b3Jh
Z2VBZ2VudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0
b3JET01TdG9yYWdlQWdlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTMw
MjQsOCArMTMwMjAsNiBAQAogCQkJCTgyQUIxNzcyMTI1QzgyNjcwMEM1MDY5RCAvKiBJbnNwZWN0
b3JSZXNvdXJjZUFnZW50LmggKi8sCiAJCQkJN0FBMzY1RUQxMkU3MjY1NDAwRENBMjQyIC8qIElu
c3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAgKi8sCiAJCQkJN0FGMTFBNTkxMkU3Mjc0OTAwNjFGMjND
IC8qIEluc3BlY3RvclJ1bnRpbWVBZ2VudC5oICovLAotCQkJCTdBNTY0MEJEMTJERjlFNUUwMEY0
NTM2RCAvKiBJbnNwZWN0b3JTZXR0aW5ncy5jcHAgKi8sCi0JCQkJN0E1NjQwQkUxMkRGOUU1RTAw
RjQ1MzZEIC8qIEluc3BlY3RvclNldHRpbmdzLmggKi8sCiAJCQkJNEZBM0I5MDgxMjVDRDEyMTAw
MzAwQkFEIC8qIEluc3BlY3RvclN0YXRlLmNwcCAqLywKIAkJCQk0RkEzQjkwOTEyNUNEMTIyMDAz
MDBCQUQgLyogSW5zcGVjdG9yU3RhdGUuaCAqLywKIAkJCQk4MkFCMTc2RjEyNUM4MjY3MDBDNTA2
OUQgLyogSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAgKi8sCkBAIC0yMDkyNSw3ICsyMDkxOSw2IEBA
CiAJCQkJOUYwRDZCMkYxMjFCRkVCQTAwNkMwMjg4IC8qIEluc3BlY3RvclByb2ZpbGVyQWdlbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTgyQUIxNzc2MTI1QzgyNjcwMEM1MDY5RCAvKiBJbnNwZWN0
b3JSZXNvdXJjZUFnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUYxMUE1QTEyRTcyNzQ5MDA2
MUYyM0MgLyogSW5zcGVjdG9yUnVudGltZUFnZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQk3QTU2
NDBDMDEyREY5RTVFMDBGNDUzNkQgLyogSW5zcGVjdG9yU2V0dGluZ3MuaCBpbiBIZWFkZXJzICov
LAogCQkJCTRGQTNCOTBCMTI1Q0QxMjIwMDMwMEJBRCAvKiBJbnNwZWN0b3JTdGF0ZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJODJBQjE3NzQxMjVDODI2NzAwQzUwNjlEIC8qIEluc3BlY3RvclN0eWxl
U2hlZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTc1NDEzM0E4MTAyRTAwRTgwMDA3NUQwMCAvKiBJ
bnNwZWN0b3JUaW1lbGluZUFnZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTIzNjY4LDcgKzIzNjYx
LDYgQEAKIAkJCQk5RjBENkIyRTEyMUJGRUJBMDA2QzAyODggLyogSW5zcGVjdG9yUHJvZmlsZXJB
Z2VudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4MkFCMTc3NTEyNUM4MjY3MDBDNTA2OUQgLyog
SW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QUEzNjVFRTEy
RTcyNjU0MDBEQ0EyNDIgLyogSW5zcGVjdG9yUnVudGltZUFnZW50LmNwcCBpbiBTb3VyY2VzICov
LAotCQkJCTdBNTY0MEJGMTJERjlFNUUwMEY0NTM2RCAvKiBJbnNwZWN0b3JTZXR0aW5ncy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk0RkEzQjkwQTEyNUNEMTIyMDAzMDBCQUQgLyogSW5zcGVjdG9y
U3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODJBQjE3NzMxMjVDODI2NzAwQzUwNjlEIC8q
IEluc3BlY3RvclN0eWxlU2hlZXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzU0MTMzQUExMDJF
MDBGNDAwMDc1RDAwIC8qIEluc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHREZWJ1Z1NlcnZl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHREZWJ1Z1NlcnZlci5jcHAK
aW5kZXggMzNhMzE4YzcyYTY0OWM2YzgwZjU4OGRjODZiYzUwZTM5NGYwNDIzOC4uOGI0NWY5YjA0
OTFjMDYwMjhjNDUyOTVhYTY3NGZlMmYyZmE4ZDM0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1NjcmlwdERlYnVnU2VydmVyLmNwcApAQCAtMTE3LDExICsxMTcsNiBAQCB2
b2lkIFNjcmlwdERlYnVnU2VydmVyOjpyZW1vdmVMaXN0ZW5lcihTY3JpcHREZWJ1Z0xpc3RlbmVy
KiBsaXN0ZW5lciwgUGFnZSogcGFnZQogICAgIGRpZFJlbW92ZUxpc3RlbmVyKHBhZ2UpOwogfQog
Ci1ib29sIFNjcmlwdERlYnVnU2VydmVyOjppc0RlYnVnZ2VyQWx3YXlzRW5hYmxlZCgpCi17Ci0g
ICAgcmV0dXJuIGZhbHNlOwotfQotCiBib29sIFNjcmlwdERlYnVnU2VydmVyOjpoYXNMaXN0ZW5l
cnNJbnRlcmVzdGVkSW5QYWdlKFBhZ2UqIHBhZ2UpCiB7CiAgICAgQVNTRVJUX0FSRyhwYWdlLCBw
YWdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdERlYnVn
U2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHREZWJ1Z1NlcnZlci5o
CmluZGV4IDFlMzg4MTlmNDE5OTQzN2RkYWMzZGE3YWMzYzEyNTYwNzQyODViODYuLjM2OGIwN2I5
NjY5NmRjMGI2NTFkYWQ5ODM2OGQzY2E0N2Q3MzkzZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NjcmlwdERlYnVnU2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvU2NyaXB0RGVidWdTZXJ2ZXIuaApAQCAtOTMsOCArOTMsNiBAQCBwdWJsaWM6
CiAKICAgICBKYXZhU2NyaXB0Q2FsbEZyYW1lKiBjdXJyZW50Q2FsbEZyYW1lKCk7CiAKLSAgICBi
b29sIGlzRGVidWdnZXJBbHdheXNFbmFibGVkKCk7Ci0KIHByaXZhdGU6CiAgICAgdHlwZWRlZiBI
YXNoU2V0PFNjcmlwdERlYnVnTGlzdGVuZXIqPiBMaXN0ZW5lclNldDsKICAgICB0eXBlZGVmIHZv
aWQgKFNjcmlwdERlYnVnU2VydmVyOjoqSmF2YVNjcmlwdEV4ZWN1dGlvbkNhbGxiYWNrKShTY3Jp
cHREZWJ1Z0xpc3RlbmVyKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TY3JpcHRQcm9maWxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRQ
cm9maWxlci5jcHAKaW5kZXggNjJhZTliYTZjMTkzMDU5NWIyNzNiYWZmYWFmYmZjZTkxYzAwOTQ4
ZC4uZjM3MmMzYzJhNmY1N2YwZjE5NzgxNzYzMmM2NTMzOWM4ZWQzNTU0YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0UHJvZmlsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFByb2ZpbGVyLmNwcApAQCAtNDYsMTEgKzQ2LDYg
QEAgUGFzc1JlZlB0cjxTY3JpcHRQcm9maWxlPiBTY3JpcHRQcm9maWxlcjo6c3RvcChTY3JpcHRT
dGF0ZSogc3RhdGUsIGNvbnN0IFN0cmluZyYKICAgICByZXR1cm4gU2NyaXB0UHJvZmlsZTo6Y3Jl
YXRlKHByb2ZpbGUpOwogfQogCi1ib29sIFNjcmlwdFByb2ZpbGVyOjppc1Byb2ZpbGVyQWx3YXlz
RW5hYmxlZCgpCi17Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFByb2ZpbGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TY3JpcHRQcm9maWxlci5oCmluZGV4IDRjMGMwN2ZjOTVjNTcwNDQ0
MjkwZGNkZjYzOTM0OTU2NjAwMWE4OTQuLmQ4YWQ0ODJmMzQzN2U3NDQwODdjNDNlN2Q3Y2Y0YjY2
OWNhOTY4MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFBy
b2ZpbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0UHJvZmlsZXIu
aApAQCAtNTAsNyArNTAsNiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgc3RhcnQoU2NyaXB0
U3RhdGUqIHN0YXRlLCBjb25zdCBTdHJpbmcmIHRpdGxlKTsKICAgICBzdGF0aWMgUGFzc1JlZlB0
cjxTY3JpcHRQcm9maWxlPiBzdG9wKFNjcmlwdFN0YXRlKiBzdGF0ZSwgY29uc3QgU3RyaW5nJiB0
aXRsZSk7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8U2NyaXB0SGVhcFNuYXBzaG90PiB0YWtlSGVh
cFNuYXBzaG90KGNvbnN0IFN0cmluZyYsIEhlYXBTbmFwc2hvdFByb2dyZXNzKikgeyByZXR1cm4g
MDsgfQotICAgIHN0YXRpYyBib29sIGlzUHJvZmlsZXJBbHdheXNFbmFibGVkKCk7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9TY3JpcHREZWJ1Z1NlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9T
Y3JpcHREZWJ1Z1NlcnZlci5jcHAKaW5kZXggOTdjNTdmNGM1OGJmMjRjMDcxZWZmY2FjMmY1ODU3
YmRlOTM3MTg0ZC4uMTFmYTg2MDFhYTYxOTE1MDFmYzAwNGFmNTAwYzgxNTBhMTc4MmNiOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0RGVidWdTZXJ2ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdERlYnVnU2VydmVyLmNwcApA
QCAtMzQyLDExICszNDIsNiBAQCB2b2lkIFNjcmlwdERlYnVnU2VydmVyOjpzZXRFbmFibGVkKGJv
b2wgdmFsdWUpCiAgICAgIG1fZW5hYmxlZCA9IHZhbHVlOwogfQogCi1ib29sIFNjcmlwdERlYnVn
U2VydmVyOjppc0RlYnVnZ2VyQWx3YXlzRW5hYmxlZCgpCi17Ci0gICAgcmV0dXJuIG1fZW5hYmxl
ZDsKLX0KLQogdm9pZCBTY3JpcHREZWJ1Z1NlcnZlcjo6aW50ZXJydXB0QW5kUnVuKFBhc3NPd25Q
dHI8VGFzaz4gdGFzaykKIHsKICAgICB2ODo6RGVidWc6OkRlYnVnQnJlYWtGb3JDb21tYW5kKG5l
dyBDbGllbnREYXRhSW1wbCh0YXNrKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9TY3JpcHREZWJ1Z1NlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
U2NyaXB0RGVidWdTZXJ2ZXIuaAppbmRleCA5NTNkZGMzOWVhMjhiOTc3ZTA1NDdmYjlmNDhlY2Q1
M2JhZDZiNjY4Li5iNGU3MzkwODBlMWVhYTFjZDhiOTEyNTZmNTdlMWJkM2FhYjQ0YTZhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHREZWJ1Z1NlcnZlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdERlYnVnU2VydmVyLmgKQEAgLTk5
LDcgKzk5LDYgQEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8SmF2YVNjcmlwdENhbGxGcmFtZT4g
Y3VycmVudENhbGxGcmFtZSgpOwogCiAgICAgdm9pZCBzZXRFbmFibGVkKGJvb2wpOwotICAgIGJv
b2wgaXNEZWJ1Z2dlckFsd2F5c0VuYWJsZWQoKTsKIAogICAgIGNsYXNzIFRhc2sgewogICAgIHB1
YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdFByb2Zp
bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdFByb2ZpbGVyLmNwcApp
bmRleCA1ZGUxYjM2OThlNDBkODE5ZWQ2ZTY2OGNiNjcwYmQ3M2I5NGQ4MmUyLi42MTVkY2ZjNTU3
MzU2NzBiYmYzMmJmMjgzNWI0ZThhNmZlMmRiOTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9TY3JpcHRQcm9maWxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvU2NyaXB0UHJvZmlsZXIuY3BwCkBAIC05MCw5ICs5MCw0IEBAIFBhc3NSZWZQdHI8
U2NyaXB0SGVhcFNuYXBzaG90PiBTY3JpcHRQcm9maWxlcjo6dGFrZUhlYXBTbmFwc2hvdChjb25z
dCBTdHJpbmcmIHRpCiAgICAgcmV0dXJuIHNuYXBzaG90ID8gU2NyaXB0SGVhcFNuYXBzaG90Ojpj
cmVhdGUoc25hcHNob3QpIDogMDsKIH0KIAotYm9vbCBTY3JpcHRQcm9maWxlcjo6aXNQcm9maWxl
ckFsd2F5c0VuYWJsZWQoKQotewotICAgIHJldHVybiB0cnVlOwotfQotCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRQ
cm9maWxlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0UHJvZmlsZXIuaApp
bmRleCA4M2FhYjdiOTc5MDY4MzE5NmZhMGI3NTc4MWUzNTQxNDhlYjUwNWM0Li45MDE2NjY4OGJh
OGM1Y2U4MDA0NDNlZTM5MGJiOWNhZTNkNGUwMTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9TY3JpcHRQcm9maWxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L1NjcmlwdFByb2ZpbGVyLmgKQEAgLTU2LDcgKzU2LDYgQEAgcHVibGljOgogICAgIHN0
YXRpYyB2b2lkIHN0YXJ0KFNjcmlwdFN0YXRlKiBzdGF0ZSwgY29uc3QgU3RyaW5nJiB0aXRsZSk7
CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8U2NyaXB0UHJvZmlsZT4gc3RvcChTY3JpcHRTdGF0ZSog
c3RhdGUsIGNvbnN0IFN0cmluZyYgdGl0bGUpOwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNjcmlw
dEhlYXBTbmFwc2hvdD4gdGFrZUhlYXBTbmFwc2hvdChjb25zdCBTdHJpbmcmIHRpdGxlLCBIZWFw
U25hcHNob3RQcm9ncmVzcyopOwotICAgIHN0YXRpYyBib29sIGlzUHJvZmlsZXJBbHdheXNFbmFi
bGVkKCk7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3IuaWRsCmluZGV4IGI4Y2NkOGUxMWYxNjg2NDA0NGE0N2JjOWQ4MGU3NjZiNmI4
YTA0ZTYuLjk3OTcyNzQ0OGM3MmJkZTAwOTNmNWU3OTlhMzMyMmQxN2FlYzljNWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuaWRsCkBAIC05NCw3ICs5NCw2IEBAIG1vZHVsZSBj
b3JlIHsKICAgICAgICAgW2RvbWFpbj1Db25zb2xlXSB2b2lkIGNsZWFyQ29uc29sZU1lc3NhZ2Vz
KCk7CiAgICAgICAgIFtub3RpZnksIGRvbWFpbj1Db25zb2xlXSB2b2lkIGNvbnNvbGVNZXNzYWdl
c0NsZWFyZWQoKTsKICAgICAgICAgW2RvbWFpbj1Db25zb2xlXSB2b2lkIHNldE1vbml0b3JpbmdY
SFJFbmFibGVkKGluIGJvb2xlYW4gZW5hYmxlZCk7Ci0gICAgICAgIFtub3RpZnksIGRvbWFpbj1D
b25zb2xlXSB2b2lkIG1vbml0b3JpbmdYSFJTdGF0ZUNoYW5nZWQob3V0IGJvb2xlYW4gZW5hYmxl
ZCk7CiAKICAgICAgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KICAgICAgICAgLy8gTmV0d29yayBBUEkKQEAg
LTIzOSw4ICsyMzgsOCBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIC8vIERlYnVnZ2VyIEFQSQog
ICAgICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLwogCi0gICAgICAgIFtkb21haW49SW5zcGVjdG9yXSB2b2lk
IGVuYWJsZURlYnVnZ2VyKGluIGJvb2xlYW4gYWx3YXlzKTsKLSAgICAgICAgW2RvbWFpbj1JbnNw
ZWN0b3JdIHZvaWQgZGlzYWJsZURlYnVnZ2VyKGluIGJvb2xlYW4gYWx3YXlzKTsKKyAgICAgICAg
W2RvbWFpbj1JbnNwZWN0b3JdIHZvaWQgZW5hYmxlRGVidWdnZXIoKTsKKyAgICAgICAgW2RvbWFp
bj1JbnNwZWN0b3JdIHZvaWQgZGlzYWJsZURlYnVnZ2VyKCk7CiAKICAgICAgICAgW25vdGlmeSwg
ZG9tYWluPURlYnVnZ2VyXSB2b2lkIGRlYnVnZ2VyV2FzRW5hYmxlZCgpOwogICAgICAgICBbbm90
aWZ5LCBkb21haW49RGVidWdnZXJdIHZvaWQgZGVidWdnZXJXYXNEaXNhYmxlZCgpOwpAQCAtMjkw
LDggKzI4OSw4IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgLy8gUHJvZmlsZXIgQVBJCiAgICAg
ICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vCiAKLSAgICAgICAgW2RvbWFpbj1JbnNwZWN0b3JdIHZvaWQgZW5h
YmxlUHJvZmlsZXIoaW4gYm9vbGVhbiBhbHdheXMpOwotICAgICAgICBbZG9tYWluPUluc3BlY3Rv
cl0gdm9pZCBkaXNhYmxlUHJvZmlsZXIoaW4gYm9vbGVhbiBhbHdheXMpOworICAgICAgICBbZG9t
YWluPUluc3BlY3Rvcl0gdm9pZCBlbmFibGVQcm9maWxlcigpOworICAgICAgICBbZG9tYWluPUlu
c3BlY3Rvcl0gdm9pZCBkaXNhYmxlUHJvZmlsZXIoKTsKICAgICAgICAgW25vdGlmeSwgZG9tYWlu
PVByb2ZpbGVyXSB2b2lkIHByb2ZpbGVyV2FzRW5hYmxlZCgpOwogICAgICAgICBbbm90aWZ5LCBk
b21haW49UHJvZmlsZXJdIHZvaWQgcHJvZmlsZXJXYXNEaXNhYmxlZCgpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFnZW50LmNwcAppbmRleCA0YjM0MmM3YTJmOGFlZmIy
MWQ3MTRmMzY0MTgzNTI1ZjUyZDQ2YmQzLi43NjQwNjY4OTExMzUxM2Y5MWI4Yjc4YmRiNzdmOTFl
N2U3NGQ5NzJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
QWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBZ2VudC5j
cHAKQEAgLTcyLDcgKzcyLDYgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JQcm9maWxlckFnZW50Lmgi
CiAjaW5jbHVkZSAiSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oIgogI2luY2x1ZGUgIkluc3BlY3Rv
clJ1bnRpbWVBZ2VudC5oIgotI2luY2x1ZGUgIkluc3BlY3RvclNldHRpbmdzLmgiCiAjaW5jbHVk
ZSAiSW5zcGVjdG9yU3RhdGUuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JUaW1lbGluZUFnZW50Lmgi
CiAjaW5jbHVkZSAiSW5zcGVjdG9yVmFsdWVzLmgiCkBAIC0xNDYsNyArMTQ1LDYgQEAgSW5zcGVj
dG9yQWdlbnQ6Okluc3BlY3RvckFnZW50KEluc3BlY3RvckNvbnRyb2xsZXIqIGluc3BlY3RvckNv
bnRyb2xsZXIsIFBhZ2UqIHAKICAgICAsIG1faW5qZWN0ZWRTY3JpcHRIb3N0KEluamVjdGVkU2Ny
aXB0SG9zdDo6Y3JlYXRlKHRoaXMpKQogICAgICwgbV9jb25zb2xlQWdlbnQobmV3IEluc3BlY3Rv
ckNvbnNvbGVBZ2VudCh0aGlzKSkKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKLSAg
ICAsIG1fYXR0YWNoRGVidWdnZXJXaGVuU2hvd24oZmFsc2UpCiAgICAgLCBtX3Byb2ZpbGVyQWdl
bnQoSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6Y3JlYXRlKHRoaXMpKQogI2VuZGlmCiB7CkBAIC00
NTAsOSArNDQ4LDcgQEAgdm9pZCBJbnNwZWN0b3JBZ2VudDo6ZGlzY29ubmVjdEZyb250ZW5kKCkK
ICAgICAvLyBJZiB0aGUgd2luZG93IGlzIGJlaW5nIGNsb3NlZCB3aXRoIHRoZSBkZWJ1Z2dlciBl
bmFibGVkLAogICAgIC8vIHJlbWVtYmVyIHRoaXMgc3RhdGUgdG8gcmUtZW5hYmxlIGRlYnVnZ2Vy
IG9uIHRoZSBuZXh0IHdpbmRvdwogICAgIC8vIG9wZW5pbmcuCi0gICAgYm9vbCBkZWJ1Z2dlcldh
c0VuYWJsZWQgPSBkZWJ1Z2dlckVuYWJsZWQoKTsKICAgICBkaXNhYmxlRGVidWdnZXIoKTsKLSAg
ICBtX2F0dGFjaERlYnVnZ2VyV2hlblNob3duID0gZGVidWdnZXJXYXNFbmFibGVkOwogI2VuZGlm
CiAgICAgc2V0U2VhcmNoaW5nRm9yTm9kZShmYWxzZSk7CiAgICAgdW5iaW5kQWxsUmVzb3VyY2Vz
KCk7CkBAIC01NzAsMTAgKzU2Niw4IEBAIHZvaWQgSW5zcGVjdG9yQWdlbnQ6OnJlc3RvcmVEZWJ1
Z2dlcigpCiB7CiAgICAgQVNTRVJUKG1fZnJvbnRlbmQpOwogI2lmIEVOQUJMRShKQVZBU0NSSVBU
X0RFQlVHR0VSKQotICAgIGlmIChJbnNwZWN0b3JEZWJ1Z2dlckFnZW50Ojppc0RlYnVnZ2VyQWx3
YXlzRW5hYmxlZCgpIHx8IG1fYXR0YWNoRGVidWdnZXJXaGVuU2hvd24gfHwgbV9zZXR0aW5ncy0+
Z2V0Qm9vbGVhbihJbnNwZWN0b3JTZXR0aW5nczo6RGVidWdnZXJBbHdheXNFbmFibGVkKSkgewot
ICAgICAgICBlbmFibGVEZWJ1Z2dlcihmYWxzZSk7Ci0gICAgICAgIG1fYXR0YWNoRGVidWdnZXJX
aGVuU2hvd24gPSBmYWxzZTsKLSAgICB9CisgICAgaWYgKG1fc3RhdGUtPmdldEJvb2xlYW4oSW5z
cGVjdG9yU3RhdGU6OmRlYnVnZ2VyRW5hYmxlZCkpCisgICAgICAgIGVuYWJsZURlYnVnZ2VyKCk7
CiAjZW5kaWYKIH0KIApAQCAtNTgyLDcgKzU3Niw3IEBAIHZvaWQgSW5zcGVjdG9yQWdlbnQ6OnJl
c3RvcmVQcm9maWxlcihQcm9maWxlclJlc3RvcmVBY3Rpb24gYWN0aW9uKQogICAgIEFTU0VSVCht
X2Zyb250ZW5kKTsKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKICAgICBtX3Byb2Zp
bGVyQWdlbnQtPnNldEZyb250ZW5kKG1fZnJvbnRlbmQuZ2V0KCkpOwotICAgIGlmICghU2NyaXB0
UHJvZmlsZXI6OmlzUHJvZmlsZXJBbHdheXNFbmFibGVkKCkgJiYgbV9zZXR0aW5ncy0+Z2V0Qm9v
bGVhbihJbnNwZWN0b3JTZXR0aW5nczo6UHJvZmlsZXJBbHdheXNFbmFibGVkKSkKKyAgICBpZiAo
bV9zdGF0ZS0+Z2V0Qm9vbGVhbihJbnNwZWN0b3JTdGF0ZTo6cHJvZmlsZXJFbmFibGVkKSkKICAg
ICAgICAgZW5hYmxlUHJvZmlsZXIoKTsKICAgICBpZiAoYWN0aW9uID09IFByb2ZpbGVyUmVzdG9y
ZVJlc2V0QWdlbnQpCiAgICAgICAgIG1fcHJvZmlsZXJBZ2VudC0+cmVzZXRGcm9udGVuZFByb2Zp
bGVzKCk7CkBAIC03MDUsMTQgKzY5OSw2IEBAIHZvaWQgSW5zcGVjdG9yQWdlbnQ6OndpbGxTZW5k
UmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiAgICAgfQogfQogCi12b2lkIEluc3Bl
Y3RvckFnZW50OjplbnN1cmVTZXR0aW5nc0xvYWRlZCgpCi17Ci0gICAgaWYgKG1fc2V0dGluZ3Mp
Ci0gICAgICAgIHJldHVybjsKLSAgICBtX3NldHRpbmdzID0gbmV3IEluc3BlY3RvclNldHRpbmdz
KG1fY2xpZW50KTsKLSAgICBtX3N0YXRlLT5zZXRCb29sZWFuKEluc3BlY3RvclN0YXRlOjptb25p
dG9yaW5nWEhSLCBtX3NldHRpbmdzLT5nZXRCb29sZWFuKEluc3BlY3RvclNldHRpbmdzOjpNb25p
dG9yaW5nWEhSRW5hYmxlZCkpOwotfQotCiB2b2lkIEluc3BlY3RvckFnZW50OjpzdGFydFRpbWVs
aW5lUHJvZmlsZXIoKQogewogICAgIGlmICghZW5hYmxlZCgpKQpAQCAtOTkyLDE3ICs5NzgsMTcg
QEAgYm9vbCBJbnNwZWN0b3JBZ2VudDo6cHJvZmlsZXJFbmFibGVkKCkgY29uc3QKICAgICByZXR1
cm4gZW5hYmxlZCgpICYmIG1fcHJvZmlsZXJBZ2VudC0+ZW5hYmxlZCgpOwogfQogCi12b2lkIElu
c3BlY3RvckFnZW50OjplbmFibGVQcm9maWxlcihib29sIGFsd2F5cywgYm9vbCBza2lwUmVjb21w
aWxlKQordm9pZCBJbnNwZWN0b3JBZ2VudDo6ZW5hYmxlUHJvZmlsZXIoKQogewotICAgIGlmIChh
bHdheXMpCi0gICAgICAgIG1fc2V0dGluZ3MtPnNldEJvb2xlYW4oSW5zcGVjdG9yU2V0dGluZ3M6
OlByb2ZpbGVyQWx3YXlzRW5hYmxlZCwgdHJ1ZSk7Ci0gICAgbV9wcm9maWxlckFnZW50LT5lbmFi
bGUoc2tpcFJlY29tcGlsZSk7CisgICAgaWYgKHByb2ZpbGVyRW5hYmxlZCgpKQorICAgICAgICBy
ZXR1cm47CisgICAgbV9zdGF0ZS0+c2V0Qm9vbGVhbihJbnNwZWN0b3JTdGF0ZTo6cHJvZmlsZXJF
bmFibGVkLCB0cnVlKTsKKyAgICBtX3Byb2ZpbGVyQWdlbnQtPmVuYWJsZShmYWxzZSk7CiB9CiAK
LXZvaWQgSW5zcGVjdG9yQWdlbnQ6OmRpc2FibGVQcm9maWxlcihib29sIGFsd2F5cykKK3ZvaWQg
SW5zcGVjdG9yQWdlbnQ6OmRpc2FibGVQcm9maWxlcigpCiB7Ci0gICAgaWYgKGFsd2F5cykKLSAg
ICAgICAgbV9zZXR0aW5ncy0+c2V0Qm9vbGVhbihJbnNwZWN0b3JTZXR0aW5nczo6UHJvZmlsZXJB
bHdheXNFbmFibGVkLCBmYWxzZSk7CisgICAgbV9zdGF0ZS0+c2V0Qm9vbGVhbihJbnNwZWN0b3JT
dGF0ZTo6cHJvZmlsZXJFbmFibGVkLCBmYWxzZSk7CiAgICAgbV9wcm9maWxlckFnZW50LT5kaXNh
YmxlKCk7CiB9CiAjZW5kaWYKQEAgLTEwMTcsMTggKzEwMDMsMTcgQEAgdm9pZCBJbnNwZWN0b3JB
Z2VudDo6c2hvd0FuZEVuYWJsZURlYnVnZ2VyKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYg
KCFtX2Zyb250ZW5kKSB7Ci0gICAgICAgIG1fYXR0YWNoRGVidWdnZXJXaGVuU2hvd24gPSB0cnVl
OworICAgICAgICBtX3N0YXRlLT5zZXRCb29sZWFuKEluc3BlY3RvclN0YXRlOjpkZWJ1Z2dlckVu
YWJsZWQsIHRydWUpOwogICAgICAgICBzaG93UGFuZWwoU2NyaXB0c1BhbmVsKTsKICAgICB9IGVs
c2UKLSAgICAgICAgZW5hYmxlRGVidWdnZXIoZmFsc2UpOworICAgICAgICBlbmFibGVEZWJ1Z2dl
cigpOwogfQogCi12b2lkIEluc3BlY3RvckFnZW50OjplbmFibGVEZWJ1Z2dlcihib29sIGFsd2F5
cykKK3ZvaWQgSW5zcGVjdG9yQWdlbnQ6OmVuYWJsZURlYnVnZ2VyKCkKIHsKLSAgICBBU1NFUlQo
IWRlYnVnZ2VyRW5hYmxlZCgpKTsKLSAgICBpZiAoYWx3YXlzKQotICAgICAgICBtX3NldHRpbmdz
LT5zZXRCb29sZWFuKEluc3BlY3RvclNldHRpbmdzOjpEZWJ1Z2dlckFsd2F5c0VuYWJsZWQsIHRy
dWUpOwotCisgICAgaWYgKGRlYnVnZ2VyRW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisgICAg
bV9zdGF0ZS0+c2V0Qm9vbGVhbihJbnNwZWN0b3JTdGF0ZTo6ZGVidWdnZXJFbmFibGVkLCB0cnVl
KTsKICAgICBBU1NFUlQobV9pbnNwZWN0ZWRQYWdlKTsKIAogICAgIG1fZGVidWdnZXJBZ2VudCA9
IEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmNyZWF0ZSh0aGlzLCBtX2Zyb250ZW5kLmdldCgpKTsK
QEAgLTEwMzcsMjMgKzEwMjIsMTggQEAgdm9pZCBJbnNwZWN0b3JBZ2VudDo6ZW5hYmxlRGVidWdn
ZXIoYm9vbCBhbHdheXMpCiAgICAgbV9mcm9udGVuZC0+ZGVidWdnZXJXYXNFbmFibGVkKCk7CiB9
CiAKLXZvaWQgSW5zcGVjdG9yQWdlbnQ6OmRpc2FibGVEZWJ1Z2dlcihib29sIGFsd2F5cykKK3Zv
aWQgSW5zcGVjdG9yQWdlbnQ6OmRpc2FibGVEZWJ1Z2dlcigpCiB7CiAgICAgaWYgKCFlbmFibGVk
KCkpCiAgICAgICAgIHJldHVybjsKLQotICAgIGlmIChhbHdheXMpCi0gICAgICAgIG1fc2V0dGlu
Z3MtPnNldEJvb2xlYW4oSW5zcGVjdG9yU2V0dGluZ3M6OkRlYnVnZ2VyQWx3YXlzRW5hYmxlZCwg
ZmFsc2UpOwotCiAgICAgQVNTRVJUKG1faW5zcGVjdGVkUGFnZSk7Ci0KICAgICBtX2RlYnVnZ2Vy
QWdlbnQuY2xlYXIoKTsKICAgICBtX2Jyb3dzZXJEZWJ1Z2dlckFnZW50LmNsZWFyKCk7CiAKLSAg
ICBtX2F0dGFjaERlYnVnZ2VyV2hlblNob3duID0gZmFsc2U7Ci0KLSAgICBpZiAobV9mcm9udGVu
ZCkKKyAgICBpZiAobV9mcm9udGVuZCkgewogICAgICAgICBtX2Zyb250ZW5kLT5kZWJ1Z2dlcldh
c0Rpc2FibGVkKCk7CisgICAgICAgIG1fc3RhdGUtPnNldEJvb2xlYW4oSW5zcGVjdG9yU3RhdGU6
OmRlYnVnZ2VyRW5hYmxlZCwgZmFsc2UpOworICAgIH0KIH0KIAogdm9pZCBJbnNwZWN0b3JBZ2Vu
dDo6cmVzdW1lKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFnZW50LmgKaW5k
ZXggMzYyYWJlYzI5ZWJmOTlkYmY2Y2EzZGIzNmRlZGZkZDQzMTJlOGY5YS4uOGNjNDlhNmIzNmI4
YmFiZWQwZmE5NjlhMDI5ODExYmZmNWRiNDc3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckFnZW50LmgKQEAgLTc0LDcgKzc0LDYgQEAgY2xhc3MgSW5zcGVjdG9yT2JqZWN0
OwogY2xhc3MgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDsKIGNsYXNzIEluc3BlY3RvclJlc291cmNl
QWdlbnQ7CiBjbGFzcyBJbnNwZWN0b3JSdW50aW1lQWdlbnQ7Ci1jbGFzcyBJbnNwZWN0b3JTZXR0
aW5nczsKIGNsYXNzIEluc3BlY3RvclN0YXRlOwogY2xhc3MgSW5zcGVjdG9yU3RvcmFnZUFnZW50
OwogY2xhc3MgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDsKQEAgLTIzNywxMyArMjM2LDEzIEBAIHB1
YmxpYzoKICAgICB2b2lkIHN0YXJ0VXNlckluaXRpYXRlZFByb2ZpbGluZygpOwogICAgIHZvaWQg
c3RvcFByb2ZpbGluZygpIHsgc3RvcFVzZXJJbml0aWF0ZWRQcm9maWxpbmcoKTsgfQogICAgIHZv
aWQgc3RvcFVzZXJJbml0aWF0ZWRQcm9maWxpbmcoKTsKLSAgICB2b2lkIGVuYWJsZVByb2ZpbGVy
KGJvb2wgYWx3YXlzID0gZmFsc2UsIGJvb2wgc2tpcFJlY29tcGlsZSA9IGZhbHNlKTsKLSAgICB2
b2lkIGRpc2FibGVQcm9maWxlcihib29sIGFsd2F5cyA9IGZhbHNlKTsKKyAgICB2b2lkIGVuYWJs
ZVByb2ZpbGVyKCk7CisgICAgdm9pZCBkaXNhYmxlUHJvZmlsZXIoKTsKICAgICBib29sIHByb2Zp
bGVyRW5hYmxlZCgpIGNvbnN0OwogCiAgICAgdm9pZCBzaG93QW5kRW5hYmxlRGVidWdnZXIoKTsK
LSAgICB2b2lkIGVuYWJsZURlYnVnZ2VyKGJvb2wgYWx3YXlzKTsKLSAgICB2b2lkIGRpc2FibGVE
ZWJ1Z2dlcihib29sIGFsd2F5cyA9IGZhbHNlKTsKKyAgICB2b2lkIGVuYWJsZURlYnVnZ2VyKCk7
CisgICAgdm9pZCBkaXNhYmxlRGVidWdnZXIoKTsKICAgICBib29sIGRlYnVnZ2VyRW5hYmxlZCgp
IGNvbnN0IHsgcmV0dXJuIG1fZGVidWdnZXJBZ2VudDsgfQogICAgIHZvaWQgcmVzdW1lKCk7CiAK
QEAgLTI1OCw3ICsyNTcsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRJbnNwZWN0b3JFeHRlbnNp
b25BUEkoY29uc3QgU3RyaW5nJiBzb3VyY2UpOwogCiAgICAgSW5zcGVjdG9yU3RhdGUqIHN0YXRl
KCkgeyByZXR1cm4gbV9zdGF0ZS5nZXQoKTsgfQotICAgIEluc3BlY3RvclNldHRpbmdzKiBzZXR0
aW5ncygpIHsgcmV0dXJuIG1fc2V0dGluZ3MuZ2V0KCk7IH0KIAogICAgIC8vIEluc3BlY3RvckFn
ZW50IEFQSQogICAgIHZvaWQgZ2V0SW5zcGVjdG9yU3RhdGUoUmVmUHRyPEluc3BlY3Rvck9iamVj
dD4qIHN0YXRlKTsKQEAgLTI2OSw3ICsyNjcsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRFdmFs
dWF0ZUZvclRlc3RJbkZyb250ZW5kKGxvbmcgY2FsbElkLCBjb25zdCBTdHJpbmcmIGpzb25SZXN1
bHQpOwogCiAgICAgLy8gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uIEFQSQotICAgIHZvaWQgZW5z
dXJlU2V0dGluZ3NMb2FkZWQoKTsKICAgICB2b2lkIHdpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJl
cXVlc3QmKTsKIAogcHJpdmF0ZToKQEAgLTMxNCw3ICszMTEsNiBAQCBwcml2YXRlOgogCiAgICAg
T3duUHRyPEluc3BlY3RvclRpbWVsaW5lQWdlbnQ+IG1fdGltZWxpbmVBZ2VudDsKICAgICBPd25Q
dHI8SW5zcGVjdG9yU3RhdGU+IG1fc3RhdGU7Ci0gICAgT3duUHRyPEluc3BlY3RvclNldHRpbmdz
PiBtX3NldHRpbmdzOwogCiAjaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAg
ICBPd25QdHI8SW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50PiBtX2FwcGxpY2F0aW9uQ2Fj
aGVBZ2VudDsKQEAgLTM0Nyw3ICszNDMsNiBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxTdHJpbmc+
IG1fc2NyaXB0c1RvRXZhbHVhdGVPbkxvYWQ7CiAgICAgU3RyaW5nIG1faW5zcGVjdG9yRXh0ZW5z
aW9uQVBJOwogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQotICAgIGJvb2wgbV9hdHRh
Y2hEZWJ1Z2dlcldoZW5TaG93bjsKICAgICBPd25QdHI8SW5zcGVjdG9yRGVidWdnZXJBZ2VudD4g
bV9kZWJ1Z2dlckFnZW50OwogICAgIE93blB0cjxJbnNwZWN0b3JCcm93c2VyRGVidWdnZXJBZ2Vu
dD4gbV9icm93c2VyRGVidWdnZXJBZ2VudDsKICAgICBPd25QdHI8SW5zcGVjdG9yUHJvZmlsZXJB
Z2VudD4gbV9wcm9maWxlckFnZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcAppbmRleCA3NjYzOGM3YjQ2ZTE2ODZkZjQ2MmZmNDIy
ZGJkODU0NGM1NmQ3YjQ3Li44NzJjYmI3NTA3MWJjZGQ3ODBhMjAwZmI0YWNmZWQ4YWNmNDRlYTM1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFn
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFn
ZW50LmNwcApAQCAtMzMsNyArMzMsNiBAQAogI2luY2x1ZGUgIkluc3BlY3RvckFnZW50LmgiCiAj
aW5jbHVkZSAiSW5zcGVjdG9yRE9NQWdlbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVu
ZC5oIgotI2luY2x1ZGUgIkluc3BlY3RvclNldHRpbmdzLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9y
U3RhdGUuaCIKICNpbmNsdWRlICJSZXNvdXJjZUVycm9yLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VS
ZXNwb25zZS5oIgpAQCAtMTk0LDkgKzE5Myw2IEBAIHZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50
OjpkaWRGYWlsTG9hZGluZyh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291CiB2
b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6c2V0TW9uaXRvcmluZ1hIUkVuYWJsZWQoYm9vbCBl
bmFibGVkKQogewogICAgIG1faW5zcGVjdG9yQWdlbnQtPnN0YXRlKCktPnNldEJvb2xlYW4oSW5z
cGVjdG9yU3RhdGU6Om1vbml0b3JpbmdYSFIsIGVuYWJsZWQpOwotICAgIG1faW5zcGVjdG9yQWdl
bnQtPnNldHRpbmdzKCktPnNldEJvb2xlYW4oSW5zcGVjdG9yU2V0dGluZ3M6Ok1vbml0b3JpbmdY
SFJFbmFibGVkLCBlbmFibGVkKTsKLSAgICBpZiAobV9mcm9udGVuZCkKLSAgICAgICAgbV9mcm9u
dGVuZC0+bW9uaXRvcmluZ1hIUlN0YXRlQ2hhbmdlZChlbmFibGVkKTsKIH0KIAogdm9pZCBJbnNw
ZWN0b3JDb25zb2xlQWdlbnQ6OnNldENvbnNvbGVNZXNzYWdlc0VuYWJsZWQoYm9vbCBlbmFibGVk
KQpAQCAtMjA1LDcgKzIwMSw2IEBAIHZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50OjpzZXRDb25z
b2xlTWVzc2FnZXNFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAgICBpZiAoIWVuYWJsZWQgfHwgIW1f
ZnJvbnRlbmQpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fZnJvbnRlbmQtPm1vbml0b3JpbmdY
SFJTdGF0ZUNoYW5nZWQobV9pbnNwZWN0b3JBZ2VudC0+c3RhdGUoKS0+Z2V0Qm9vbGVhbihJbnNw
ZWN0b3JTdGF0ZTo6bW9uaXRvcmluZ1hIUikpOwogICAgIGlmIChtX2V4cGlyZWRDb25zb2xlTWVz
c2FnZUNvdW50KQogICAgICAgICBtX2Zyb250ZW5kLT51cGRhdGVDb25zb2xlTWVzc2FnZUV4cGly
ZWRDb3VudChtX2V4cGlyZWRDb25zb2xlTWVzc2FnZUNvdW50KTsKICAgICB1bnNpZ25lZCBtZXNz
YWdlQ291bnQgPSBtX2NvbnNvbGVNZXNzYWdlcy5zaXplKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKaW5kZXggOWYzY2NlOGM3
ZjQ5OWRjYmYzNjE3YzE4ZjU2Njg3NjBmNjJkNTBmYS4uM2M2Mjk4MTZhYzUxYTI0YzhlNGIzMjAy
NmZjZTA1ZGE0MGY0YzllNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcApAQCAtNjYsMTEgKzY2LDYgQEAgSW5zcGVjdG9yRGVi
dWdnZXJBZ2VudDo6fkluc3BlY3RvckRlYnVnZ2VyQWdlbnQoKQogICAgIG1fcGF1c2VkU2NyaXB0
U3RhdGUgPSAwOwogfQogCi1ib29sIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmlzRGVidWdnZXJB
bHdheXNFbmFibGVkKCkKLXsKLSAgICByZXR1cm4gU2NyaXB0RGVidWdTZXJ2ZXI6OnNoYXJlZCgp
LmlzRGVidWdnZXJBbHdheXNFbmFibGVkKCk7Ci19Ci0KIHZvaWQgSW5zcGVjdG9yRGVidWdnZXJB
Z2VudDo6YWN0aXZhdGVCcmVha3BvaW50cygpCiB7CiAgICAgU2NyaXB0RGVidWdTZXJ2ZXI6OnNo
YXJlZCgpLmFjdGl2YXRlQnJlYWtwb2ludHMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5oCmluZGV4IDM0YWQwZGJmMDY3ODBiMWE0NDc4
NjQwNTk1ODIxMjdhZGNjNTdkYzEuLmYwZGU5NzMzOTI1YTZhNzllZTE5NTJiMzdhNDU2MTY2N2Vl
ZDE1MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1
Z2dlckFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVn
Z2VyQWdlbnQuaApAQCAtNjAsOCArNjAsNiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NPd25Q
dHI8SW5zcGVjdG9yRGVidWdnZXJBZ2VudD4gY3JlYXRlKEluc3BlY3RvckFnZW50KiwgSW5zcGVj
dG9yRnJvbnRlbmQqKTsKICAgICB2aXJ0dWFsIH5JbnNwZWN0b3JEZWJ1Z2dlckFnZW50KCk7CiAK
LSAgICBzdGF0aWMgYm9vbCBpc0RlYnVnZ2VyQWx3YXlzRW5hYmxlZCgpOwotCiAgICAgdm9pZCBz
ZXRBbGxKYXZhU2NyaXB0QnJlYWtwb2ludHMoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KTsK
ICAgICB2b2lkIGluc3BlY3RlZFVSTENoYW5nZWQoY29uc3QgU3RyaW5nJiB1cmwpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
Y3BwCmluZGV4IGM0NDliYTQzMzY2MjI3MWE1YjM4MTQ4ZWMyZmJiNTU4ZDBjOWZhZDIuLmRiYjQ3
MmFlOTlmZGNiZWU5ZWE2MDk5MjIyMTk4OGU5ZDViNzhkMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCkBAIC0zNzYs
NyArMzc2LDYgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmlkZW50aWZpZXJGb3JJ
bml0aWFsUmVxdWVzdEltcGwoSW5zcGVjdG9yQWdlbnQqIGkKIHsKICAgICBpZiAoIWljLT5lbmFi
bGVkKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBpYy0+ZW5zdXJlU2V0dGluZ3NMb2FkZWQoKTsK
IAogICAgIGlmIChJbnNwZWN0b3JSZXNvdXJjZUFnZW50KiByZXNvdXJjZUFnZW50ID0gcmV0cmll
dmVSZXNvdXJjZUFnZW50KGljKSkKICAgICAgICAgcmVzb3VyY2VBZ2VudC0+aWRlbnRpZmllckZv
ckluaXRpYWxSZXF1ZXN0KGlkZW50aWZpZXIsIHJlcXVlc3QudXJsKCksIGxvYWRlcik7CkBAIC00
MDEsNyArNDAwLDYgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZExvYWRSZXNv
dXJjZUZyb21NZW1vcnlDYWNoZUltcGwoSW5zcGVjdG9yQWdlbnQKIHsKICAgICBpZiAoIWljLT5l
bmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBpYy0+ZW5zdXJlU2V0dGluZ3NMb2FkZWQo
KTsKICAgICBpZiAoSW5zcGVjdG9yUmVzb3VyY2VBZ2VudCogcmVzb3VyY2VBZ2VudCA9IHJldHJp
ZXZlUmVzb3VyY2VBZ2VudChpYykpCiAgICAgICAgIHJlc291cmNlQWdlbnQtPmRpZExvYWRSZXNv
dXJjZUZyb21NZW1vcnlDYWNoZShsb2FkZXIsIGNhY2hlZFJlc291cmNlKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmNwcAppbmRl
eCA0NjkzMDUwN2Y4ZWU0M2VlMTg2ZmJlNTRkODk0MjgxMzEyZGFjYmJmLi40N2RjNTg1MTE3ODE2
NzdlZGI3ZjBlYjg4ZjU4NjExZWUzZmQwODBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwCkBAIC02NSw3ICs2NSw3IEBAIFBh
c3NPd25QdHI8SW5zcGVjdG9yUHJvZmlsZXJBZ2VudD4gSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6
Y3JlYXRlKEluc3BlY3RvckFnZW50CiBJbnNwZWN0b3JQcm9maWxlckFnZW50OjpJbnNwZWN0b3JQ
cm9maWxlckFnZW50KEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCkKICAgICA6IG1faW5z
cGVjdG9yQWdlbnQoaW5zcGVjdG9yQWdlbnQpCiAgICAgLCBtX2Zyb250ZW5kKDApCi0gICAgLCBt
X2VuYWJsZWQoU2NyaXB0UHJvZmlsZXI6OmlzUHJvZmlsZXJBbHdheXNFbmFibGVkKCkpCisgICAg
LCBtX2VuYWJsZWQoZmFsc2UpCiAgICAgLCBtX3JlY29yZGluZ1VzZXJJbml0aWF0ZWRQcm9maWxl
KGZhbHNlKQogICAgICwgbV9jdXJyZW50VXNlckluaXRpYXRlZFByb2ZpbGVOdW1iZXIoLTEpCiAg
ICAgLCBtX25leHRVc2VySW5pdGlhdGVkUHJvZmlsZU51bWJlcigxKQpAQCAtMjI5LDcgKzIyOSw3
IEBAIHZvaWQgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6c3RhcnRVc2VySW5pdGlhdGVkUHJvZmls
aW5nKCkKICAgICBpZiAobV9yZWNvcmRpbmdVc2VySW5pdGlhdGVkUHJvZmlsZSkKICAgICAgICAg
cmV0dXJuOwogICAgIGlmICghZW5hYmxlZCgpKSB7Ci0gICAgICAgIGVuYWJsZShmYWxzZSk7Cisg
ICAgICAgIGVuYWJsZSh0cnVlKTsKICAgICAgICAgU2NyaXB0RGVidWdTZXJ2ZXI6OnNoYXJlZCgp
LnJlY29tcGlsZUFsbEpTRnVuY3Rpb25zKCk7CiAgICAgfQogICAgIG1fcmVjb3JkaW5nVXNlcklu
aXRpYXRlZFByb2ZpbGUgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclNldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JTZXR0aW5ncy5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA4YzU2NDUx
YTZkNjUxMTEzNjk5OTQ2MDFmYTFjNjZkYjlhZmIwYWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clNldHRpbmdzLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDkxICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0
aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAot
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotI2luY2x1ZGUgImNvbmZp
Zy5oIgotI2luY2x1ZGUgIkluc3BlY3RvclNldHRpbmdzLmgiCi0KLSNpZiBFTkFCTEUoSU5TUEVD
VE9SKQotCi0jaW5jbHVkZSAiSW5zcGVjdG9yQ2xpZW50LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3Jl
IHsKLQotY29uc3QgY2hhciogSW5zcGVjdG9yU2V0dGluZ3M6Ok1vbml0b3JpbmdYSFJFbmFibGVk
ID0gInhock1vbml0b3IiOwotY29uc3QgY2hhciogSW5zcGVjdG9yU2V0dGluZ3M6OlByb2ZpbGVy
QWx3YXlzRW5hYmxlZCA9ICJwcm9maWxlckVuYWJsZWQiOwotY29uc3QgY2hhciogSW5zcGVjdG9y
U2V0dGluZ3M6OkRlYnVnZ2VyQWx3YXlzRW5hYmxlZCA9ICJkZWJ1Z2dlckVuYWJsZWQiOwotCi1J
bnNwZWN0b3JTZXR0aW5nczo6SW5zcGVjdG9yU2V0dGluZ3MoSW5zcGVjdG9yQ2xpZW50KiBjbGll
bnQpCi0gICAgOiBtX2NsaWVudChjbGllbnQpCi17Ci0gICAgcmVnaXN0ZXJCb29sZWFuKE1vbml0
b3JpbmdYSFJFbmFibGVkLCBmYWxzZSk7Ci0gICAgcmVnaXN0ZXJCb29sZWFuKFByb2ZpbGVyQWx3
YXlzRW5hYmxlZCwgZmFsc2UpOwotICAgIHJlZ2lzdGVyQm9vbGVhbihEZWJ1Z2dlckFsd2F5c0Vu
YWJsZWQsIGZhbHNlKTsKLX0KLQotYm9vbCBJbnNwZWN0b3JTZXR0aW5nczo6Z2V0Qm9vbGVhbihj
b25zdCBTdHJpbmcmIG5hbWUpCi17Ci0gICAgU3RyaW5nIHZhbHVlOwotICAgIG1fY2xpZW50LT5w
b3B1bGF0ZVNldHRpbmcobmFtZSwgJnZhbHVlKTsKLSAgICBpZiAodmFsdWUuaXNFbXB0eSgpKQot
ICAgICAgICB2YWx1ZSA9IG1fZGVmYXVsdFZhbHVlcy5nZXQobmFtZSk7Ci0gICAgcmV0dXJuIHZh
bHVlID09ICJ0cnVlIjsKLX0KLQotdm9pZCBJbnNwZWN0b3JTZXR0aW5nczo6c2V0Qm9vbGVhbihj
b25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgdmFsdWUpCi17Ci0gICAgbV9jbGllbnQtPnN0b3JlU2V0
dGluZyhuYW1lLCB2YWx1ZSA/ICJ0cnVlIiA6ICJmYWxzZSIpOwotfQotCi1sb25nIEluc3BlY3Rv
clNldHRpbmdzOjpnZXRMb25nKGNvbnN0IFN0cmluZyYgbmFtZSkKLXsKLSAgICBTdHJpbmcgdmFs
dWU7Ci0gICAgbV9jbGllbnQtPnBvcHVsYXRlU2V0dGluZyhuYW1lLCAmdmFsdWUpOwotICAgIGlm
ICh2YWx1ZS5pc0VtcHR5KCkpCi0gICAgICAgIHZhbHVlID0gbV9kZWZhdWx0VmFsdWVzLmdldChu
YW1lKTsKLSAgICByZXR1cm4gdmFsdWUudG9JbnQoKTsKLX0KLQotdm9pZCBJbnNwZWN0b3JTZXR0
aW5nczo6c2V0TG9uZyhjb25zdCBTdHJpbmcmIG5hbWUsIGxvbmcgdmFsdWUpCi17Ci0gICAgbV9j
bGllbnQtPnN0b3JlU2V0dGluZyhuYW1lLCBTdHJpbmc6Om51bWJlcih2YWx1ZSkpOwotfQotCi12
b2lkIEluc3BlY3RvclNldHRpbmdzOjpyZWdpc3RlckJvb2xlYW4oY29uc3QgU3RyaW5nJiBuYW1l
LCBib29sIGRlZmF1bHRWYWx1ZSkKLXsKLSAgICBtX2RlZmF1bHRWYWx1ZXMuc2V0KG5hbWUsIGRl
ZmF1bHRWYWx1ZSA/ICJ0cnVlIiA6ICJmYWxzZSIpOwotfQotCi12b2lkIEluc3BlY3RvclNldHRp
bmdzOjpyZWdpc3RlckxvbmcoY29uc3QgU3RyaW5nJiBuYW1lLCBsb25nIGRlZmF1bHRWYWx1ZSkK
LXsKLSAgICBtX2RlZmF1bHRWYWx1ZXMuc2V0KG5hbWUsIFN0cmluZzo6bnVtYmVyKGRlZmF1bHRW
YWx1ZSkpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUo
SU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clNldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU2V0dGluZ3Mu
aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGQ0ODU3MDAxMDUwZTIwYTE5YjVkNGMx
YjcxMWM1MDE2NTVmNTdjMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU2V0dGluZ3MuaAorKysg
L2Rldi9udWxsCkBAIC0xLDcxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQot
ICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIEluc3BlY3RvclNldHRpbmdzX2gKLSNk
ZWZpbmUgSW5zcGVjdG9yU2V0dGluZ3NfaAotCi0jaWYgRU5BQkxFKElOU1BFQ1RPUikKLQotI2lu
Y2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCi0KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1j
bGFzcyBJbnNwZWN0b3JDbGllbnQ7Ci0KLWNsYXNzIEluc3BlY3RvclNldHRpbmdzIHsKLXB1Ymxp
YzoKLSAgICBzdGF0aWMgY29uc3QgY2hhciogTW9uaXRvcmluZ1hIUkVuYWJsZWQ7Ci0gICAgc3Rh
dGljIGNvbnN0IGNoYXIqIFByb2ZpbGVyQWx3YXlzRW5hYmxlZDsKLSAgICBzdGF0aWMgY29uc3Qg
Y2hhciogRGVidWdnZXJBbHdheXNFbmFibGVkOwotCi0gICAgSW5zcGVjdG9yU2V0dGluZ3MoSW5z
cGVjdG9yQ2xpZW50KiBjbGllbnQpOwotCi0gICAgYm9vbCBnZXRCb29sZWFuKGNvbnN0IFN0cmlu
ZyYgbmFtZSk7Ci0gICAgdm9pZCBzZXRCb29sZWFuKGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCB2
YWx1ZSk7Ci0KLSAgICBsb25nIGdldExvbmcoY29uc3QgU3RyaW5nJiBuYW1lKTsKLSAgICB2b2lk
IHNldExvbmcoY29uc3QgU3RyaW5nJiBuYW1lLCBsb25nIHZhbHVlKTsKLQotcHJpdmF0ZToKLSAg
ICB2b2lkIHJlZ2lzdGVyQm9vbGVhbihjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgZGVmYXVsdFZh
bHVlKTsKLSAgICB2b2lkIHJlZ2lzdGVyTG9uZyhjb25zdCBTdHJpbmcmIG5hbWUsIGxvbmcgZGVm
YXVsdFZhbHVlKTsKLQotICAgIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gRGljdGlv
bmFyeTsKLSAgICBEaWN0aW9uYXJ5IG1fZGVmYXVsdFZhbHVlczsKLSAgICBJbnNwZWN0b3JDbGll
bnQqIG1fY2xpZW50OwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8g
RU5BQkxFKElOU1BFQ1RPUikKLSNlbmRpZiAvLyAhZGVmaW5lZChJbnNwZWN0b3JTZXR0aW5nc19o
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0YXRlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdGF0ZS5jcHAKaW5kZXggYzFi
NjgyMWFiYjE3NDA2NWU4ZmQyNzBiMTFkYzRiYWFjNjA3ZGU1My4uNzc5ZDQ2NGQ2YTljMzNhYTU1
ZmZjNWI4NDRjNjUyYjcyOTc0NDJjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclN0YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yU3RhdGUuY3BwCkBAIC00Miw2ICs0Miw4IEBAIEluc3BlY3RvclN0YXRlOjpJbnNwZWN0
b3JTdGF0ZShJbnNwZWN0b3JDbGllbnQqIGNsaWVudCkKICAgICByZWdpc3RlckJvb2xlYW4odXNl
ckluaXRpYXRlZFByb2ZpbGluZywgZmFsc2UpOwogICAgIHJlZ2lzdGVyQm9vbGVhbih0aW1lbGlu
ZVByb2ZpbGVyRW5hYmxlZCwgZmFsc2UpOwogICAgIHJlZ2lzdGVyQm9vbGVhbihzZWFyY2hpbmdG
b3JOb2RlLCBmYWxzZSk7CisgICAgcmVnaXN0ZXJCb29sZWFuKGRlYnVnZ2VyRW5hYmxlZCwgZmFs
c2UpOworICAgIHJlZ2lzdGVyQm9vbGVhbihwcm9maWxlckVuYWJsZWQsIGZhbHNlKTsKICAgICBy
ZWdpc3Rlck9iamVjdChqYXZhU2NyaXB0QnJlYWtwb2ludHMpOwogICAgIHJlZ2lzdGVyT2JqZWN0
KGJyb3dzZXJCcmVha3BvaW50cyk7CiAgICAgcmVnaXN0ZXJCb29sZWFuKGNvbnNvbGVNZXNzYWdl
c0VuYWJsZWQsIGZhbHNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0YXRl
LmgKaW5kZXggMjAxNzMzMjI3MjRhNjAwZGY1Zjk0ZjcwNDBjMGEzZmRjNDg4OWM3My4uOTBhMmMx
NzU5MmY4MThjYmViM2E4YWJmMjNiZDIzYjZlNjBiM2E0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclN0YXRlLmgKQEAgLTQ4LDcgKzQ4LDkgQEAgcHVibGljOgogICAgICAg
ICB0aW1lbGluZVByb2ZpbGVyRW5hYmxlZCwKICAgICAgICAgc2VhcmNoaW5nRm9yTm9kZSwKICAg
ICAgICAgY29uc29sZU1lc3NhZ2VzRW5hYmxlZCwKKyAgICAgICAgcHJvZmlsZXJFbmFibGVkLAog
ICAgICAgICB1c2VySW5pdGlhdGVkUHJvZmlsaW5nLAorICAgICAgICBkZWJ1Z2dlckVuYWJsZWQs
CiAgICAgICAgIGphdmFTY3JpcHRCcmVha3BvaW50cywKICAgICAgICAgYnJvd3NlckJyZWFrcG9p
bnRzLAogICAgICAgICByZXNvdXJjZUFnZW50RW5hYmxlZCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanMgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzCmluZGV4IDdmZWI3YWI5NzgxMjQw
NTBlNWY1ZDVlOWRmYjlkNDg0ZGVhMDJiZmMuLjNhYTVlZjBjOWY4YTUxMzMwYTc0NWU3Y2FhZWQ0
NTRjNTkxYjY0MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvQ29uc29sZVZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9Db25zb2xlVmlldy5qcwpAQCAtMTUwLDExICsxNTAsNiBAQCBXZWJJbnNwZWN0b3IuQ29uc29s
ZVZpZXcucHJvdG90eXBlID0gewogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIGNvbnNv
bGUuY2xlYXJNZXNzYWdlcygpOwogICAgICAgICAgICAgfSwKLQotICAgICAgICAgICAgbW9uaXRv
cmluZ1hIUlN0YXRlQ2hhbmdlZDogZnVuY3Rpb24oZW5hYmxlZCkKLSAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICBjb25zb2xlLl9tb25pdG9yaW5nWEhSRW5hYmxlZCA9IGVuYWJsZWQ7Ci0g
ICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5yZWdpc3Rl
ckRvbWFpbkRpc3BhdGNoZXIoIkNvbnNvbGUiLCBkaXNwYXRjaGVyKTsKICAgICB9LApAQCAtNDE4
LDkgKzQxMywxMiBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlID0gewogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgdmFyIGl0ZW1BY3Rpb24gPSBJ
bnNwZWN0b3JCYWNrZW5kLnNldE1vbml0b3JpbmdYSFJFbmFibGVkLmJpbmQoSW5zcGVjdG9yQmFj
a2VuZCwgIXRoaXMuX21vbml0b3JpbmdYSFJFbmFibGVkKTsKKyAgICAgICAgdmFyIGl0ZW1BY3Rp
b24gPSBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MubW9u
aXRvcmluZ1hIUkVuYWJsZWQgPSAhV2ViSW5zcGVjdG9yLnNldHRpbmdzLm1vbml0b3JpbmdYSFJF
bmFibGVkOworICAgICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5zZXRNb25pdG9yaW5nWEhSRW5h
YmxlZChXZWJJbnNwZWN0b3Iuc2V0dGluZ3MubW9uaXRvcmluZ1hIUkVuYWJsZWQpOworICAgICAg
ICB9LmJpbmQodGhpcyk7CiAgICAgICAgIHZhciBjb250ZXh0TWVudSA9IG5ldyBXZWJJbnNwZWN0
b3IuQ29udGV4dE1lbnUoKTsKLSAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kQ2hlY2tib3hJdGVt
KFdlYkluc3BlY3Rvci5VSVN0cmluZygiWE1MSHR0cFJlcXVlc3QgbG9nZ2luZyIpLCBpdGVtQWN0
aW9uLCB0aGlzLl9tb25pdG9yaW5nWEhSRW5hYmxlZCk7CisgICAgICAgIGNvbnRleHRNZW51LmFw
cGVuZENoZWNrYm94SXRlbShXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlhNTEh0dHBSZXF1ZXN0IGxv
Z2dpbmciKSwgaXRlbUFjdGlvbiwgV2ViSW5zcGVjdG9yLnNldHRpbmdzLm1vbml0b3JpbmdYSFJF
bmFibGVkKQogICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdlYkluc3BlY3Rvci5VSVN0
cmluZygiQ2xlYXIgQ29uc29sZSIpLCB0aGlzLnJlcXVlc3RDbGVhck1lc3NhZ2VzLmJpbmQodGhp
cykpOwogICAgICAgICBjb250ZXh0TWVudS5zaG93KGV2ZW50KTsKICAgICB9LApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzCmluZGV4
IGJiZTBjNWViY2ZlZmViYWY5NmE1MTg5ZTIzNmI3NTI5N2IzMTA4ZTcuLjE3NmRkYjJlZmVlNzIx
NWRjMTc3MjliZjQ3ZjEzZjM4OTU1MzY4ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanMKQEAgLTU4MCwxMCArNTgwLDEzIEBA
IFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZSA9IHsKIAogICAgIF90b2dnbGVQ
cm9maWxpbmc6IGZ1bmN0aW9uKG9wdGlvbmFsQWx3YXlzKQogICAgIHsKLSAgICAgICAgaWYgKHRo
aXMuX3Byb2ZpbGVyRW5hYmxlZCkKKyAgICAgICAgaWYgKHRoaXMuX3Byb2ZpbGVyRW5hYmxlZCkg
eworICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnNldHRpbmdzLnByb2ZpbGVyRW5hYmxlZCA9IGZh
bHNlOwogICAgICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5kaXNhYmxlUHJvZmlsZXIodHJ1ZSk7
Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQuZW5hYmxlUHJvZmls
ZXIoISFvcHRpb25hbEFsd2F5cyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBXZWJJ
bnNwZWN0b3Iuc2V0dGluZ3MucHJvZmlsZXJFbmFibGVkID0gISFvcHRpb25hbEFsd2F5czsKKyAg
ICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQuZW5hYmxlUHJvZmlsZXIoKTsKKyAgICAgICAgfQog
ICAgIH0sCiAKICAgICBfcG9wdWxhdGVQcm9maWxlczogZnVuY3Rpb24oKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcwppbmRleCA4OGJl
NjYzYWU0M2U3YmFhOTBhN2NhMTA1YjMxNmZmNTVmZDc1MTY3Li5kZGM5MDZhM2I1MTI1MTZmYzE0
MzRhN2M0MGExMzc1MGE1ZTljNDRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcwpAQCAtODAxLDEwICs4MDEsMTMgQEAgV2ViSW5z
cGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX3dhaXRpbmdU
b1BhdXNlID0gZmFsc2U7CiAgICAgICAgIHRoaXMuX3N0ZXBwaW5nID0gZmFsc2U7CiAKLSAgICAg
ICAgaWYgKHRoaXMuX2RlYnVnZ2VyRW5hYmxlZCkKLSAgICAgICAgICAgIEluc3BlY3RvckJhY2tl
bmQuZGlzYWJsZURlYnVnZ2VyKHRydWUpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBJbnNw
ZWN0b3JCYWNrZW5kLmVuYWJsZURlYnVnZ2VyKCEhb3B0aW9uYWxBbHdheXMpOworICAgICAgICBp
ZiAodGhpcy5fZGVidWdnZXJFbmFibGVkKSB7CisgICAgICAgICAgICBXZWJJbnNwZWN0b3Iuc2V0
dGluZ3MuZGVidWdnZXJFbmFibGVkID0gZmFsc2U7CisgICAgICAgICAgICBJbnNwZWN0b3JCYWNr
ZW5kLmRpc2FibGVEZWJ1Z2dlcigpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgV2Vi
SW5zcGVjdG9yLnNldHRpbmdzLmRlYnVnZ2VyRW5hYmxlZCA9ICEhb3B0aW9uYWxBbHdheXM7Cisg
ICAgICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmVuYWJsZURlYnVnZ2VyKCk7CisgICAgICAgIH0K
ICAgICB9LAogCiAgICAgX3RvZ2dsZVBhdXNlT25FeGNlcHRpb25zOiBmdW5jdGlvbigpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzLmpzIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5ncy5qcwppbmRleCBlZjZi
MjYzODEzNDYyYzkwMDU5YWEyNTMxZjE2YmUxNjNiNDdhZWZhLi4xY2VhNWUxYTkwNDVkN2FlYjBm
YTlkNDZkZTI5MjNiYjYxOTY4ZGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1NldHRpbmdzLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvU2V0dGluZ3MuanMKQEAgLTU4LDE2ICs1OCwxOSBAQCBXZWJJbnNwZWN0b3IuU2V0
dGluZ3MgPSBmdW5jdGlvbigpCiB7CiAgICAgdGhpcy5pbnN0YWxsQXBwbGljYXRpb25TZXR0aW5n
KCJjb2xvckZvcm1hdCIsICJoZXgiKTsKICAgICB0aGlzLmluc3RhbGxBcHBsaWNhdGlvblNldHRp
bmcoImNvbnNvbGVIaXN0b3J5IiwgW10pOworICAgIHRoaXMuaW5zdGFsbEFwcGxpY2F0aW9uU2V0
dGluZygiZGVidWdnZXJFbmFibGVkIiwgZmFsc2UpOworICAgIHRoaXMuaW5zdGFsbEFwcGxpY2F0
aW9uU2V0dGluZygicHJvZmlsZXJFbmFibGVkIiwgZmFsc2UpOwogICAgIHRoaXMuaW5zdGFsbEFw
cGxpY2F0aW9uU2V0dGluZygiZXZlbnRMaXN0ZW5lcnNGaWx0ZXIiLCAiYWxsIik7CisgICAgdGhp
cy5pbnN0YWxsQXBwbGljYXRpb25TZXR0aW5nKCJsYXN0QWN0aXZlUGFuZWwiLCAiZWxlbWVudHMi
KTsKICAgICB0aGlzLmluc3RhbGxBcHBsaWNhdGlvblNldHRpbmcoImxhc3RWaWV3ZWRTY3JpcHRG
aWxlIiwgImFwcGxpY2F0aW9uIik7CisgICAgdGhpcy5pbnN0YWxsQXBwbGljYXRpb25TZXR0aW5n
KCJtb25pdG9yaW5nWEhSRW5hYmxlZCIsIGZhbHNlKTsKKyAgICB0aGlzLmluc3RhbGxBcHBsaWNh
dGlvblNldHRpbmcoInBhdXNlT25FeGNlcHRpb25TdGF0ZSIsIFdlYkluc3BlY3Rvci5TY3JpcHRz
UGFuZWwuUGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZS5Eb250UGF1c2VPbkV4Y2VwdGlvbnMpOwogICAg
IHRoaXMuaW5zdGFsbEFwcGxpY2F0aW9uU2V0dGluZygicmVzb3VyY2VzTGFyZ2VSb3dzIiwgdHJ1
ZSk7CiAgICAgdGhpcy5pbnN0YWxsQXBwbGljYXRpb25TZXR0aW5nKCJyZXNvdXJjZXNTb3J0T3B0
aW9ucyIsIHt0aW1lT3B0aW9uOiAicmVzcG9uc2VUaW1lIiwgc2l6ZU9wdGlvbjogInRyYW5zZmVy
U2l6ZSJ9KTsKICAgICB0aGlzLmluc3RhbGxBcHBsaWNhdGlvblNldHRpbmcoInJlc291cmNlVmll
d1RhYiIsICJjb250ZW50Iik7CiAgICAgdGhpcy5pbnN0YWxsQXBwbGljYXRpb25TZXR0aW5nKCJz
aG93SW5oZXJpdGVkQ29tcHV0ZWRTdHlsZVByb3BlcnRpZXMiLCBmYWxzZSk7CiAgICAgdGhpcy5p
bnN0YWxsQXBwbGljYXRpb25TZXR0aW5nKCJzaG93VXNlckFnZW50U3R5bGVzIiwgdHJ1ZSk7CiAg
ICAgdGhpcy5pbnN0YWxsQXBwbGljYXRpb25TZXR0aW5nKCJ3YXRjaEV4cHJlc3Npb25zIiwgW10p
OwotICAgIHRoaXMuaW5zdGFsbEFwcGxpY2F0aW9uU2V0dGluZygibGFzdEFjdGl2ZVBhbmVsIiwg
ImVsZW1lbnRzIik7Ci0gICAgdGhpcy5pbnN0YWxsQXBwbGljYXRpb25TZXR0aW5nKCJwYXVzZU9u
RXhjZXB0aW9uU3RhdGUiLCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLlBhdXNlT25FeGNlcHRp
b25zU3RhdGUuRG9udFBhdXNlT25FeGNlcHRpb25zKTsKIAogICAgIHRoaXMuaW5zdGFsbFByb2pl
Y3RTZXR0aW5nKCJicmVha3BvaW50cyIsIHt9KTsKICAgICB0aGlzLmluc3RhbGxQcm9qZWN0U2V0
dGluZygibmF0aXZlQnJlYWtwb2ludHMiLCBbXSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCmluZGV4IDBmYTQyMDllMWQyZTNiZDk5Njg5YjI3
N2ZmMjYxYTlhZDk5MmM5NDUuLmM4MjE1Njg0MDQyOTRhZmIxZTA1N2EyNzk2YzhjNTk5ZWUwOWU3
NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVj
dG9yLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9y
LmpzCkBAIC02MDEsNiArNjAxLDEzIEBAIFdlYkluc3BlY3Rvci5kb0xvYWRlZERvbmUgPSBmdW5j
dGlvbigpCiAgICAgfQogICAgIEluc3BlY3RvckJhY2tlbmQucG9wdWxhdGVTY3JpcHRPYmplY3Rz
KG9uUG9wdWxhdGVTY3JpcHRPYmplY3RzKTsKIAorICAgIGlmIChQcmVmZXJlbmNlcy5kZWJ1Z2dl
ckFsd2F5c0VuYWJsZWQgfHwgV2ViSW5zcGVjdG9yLnNldHRpbmdzLmRlYnVnZ2VyRW5hYmxlZCkK
KyAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5lbmFibGVEZWJ1Z2dlcigpOworICAgIGlmIChQcmVm
ZXJlbmNlcy5wcm9maWxlckFsd2F5c0VuYWJsZWQgfHwgV2ViSW5zcGVjdG9yLnNldHRpbmdzLnBy
b2ZpbGVyRW5hYmxlZCkKKyAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5lbmFibGVQcm9maWxlcigp
OworICAgIGlmIChXZWJJbnNwZWN0b3Iuc2V0dGluZ3MubW9uaXRvcmluZ1hIUkVuYWJsZWQpCisg
ICAgICAgIEluc3BlY3RvckJhY2tlbmQuc2V0TW9uaXRvcmluZ1hIUkVuYWJsZWQodHJ1ZSk7CisK
ICAgICBJbnNwZWN0b3JCYWNrZW5kLnNldENvbnNvbGVNZXNzYWdlc0VuYWJsZWQodHJ1ZSk7CiAK
ICAgICBmdW5jdGlvbiBwcm9wZXJ0eU5hbWVzQ2FsbGJhY2sobmFtZXMpCg==
</data>
<flag name="review"
          id="71674"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80322</attachid>
            <date>2011-01-27 05:15:14 -0800</date>
            <delta_ts>2011-01-27 05:15:14 -0800</delta_ts>
            <desc>Patch that I&apos;m going to land</desc>
            <filename>inspector-settings</filename>
            <type>text/plain</type>
            <size>46383</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyZjc4ODUzLi4zMTc4N2FkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDEt
MjcgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjogc3RvcmUg
YWxsIHNldHRpbmdzIHJlbGF0ZWQgdG8gdGhlIGFnZW50cyBvbiB0aGUgZnJvbnRlbmQgc2lkZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTMxNzQKKwor
ICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUteGhyLWxvZ2dpbmcuaHRtbDog
c2luY2UgdGhlIHNldHRpbmcgZG9lc24ndCBjaGFuZ2Ugb24gdGhlIGZyb250LWVuZAorICAgICAg
ICBzaWRlIHRoZXJlIGlzIG5vIG5lZWQgdG8gY2hlY2sgaXQgYWZ0ZXIgbW9kaWZ5aW5nIGJhY2tl
bmQncyB2YWx1ZS4KKyAgICAgICAgKiBpbnNwZWN0b3IvcmVwb3J0LXByb3RvY29sLWVycm9ycy5o
dG1sOiB1c2UgdGhlIG5ldyBzaWduYXR1cmUgb2YgZGlzYWJsZURlYnVnZ2VyIG1ldGhvZC4KKwog
MjAxMS0wMS0yNyAgTWFjaWVqIFN0YWNob3dpYWsgIDxtanNAYXBwbGUuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IERhbiBCZXJuc3RlaW4uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXhoci1sb2dnaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXhoci1sb2dnaW5nLmh0bWwKaW5kZXggNWI1YWE3
Yi4uZGM1MmE3MiAxMDA3NTUKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
Y29uc29sZS14aHItbG9nZ2luZy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL2NvbnNvbGUteGhyLWxvZ2dpbmcuaHRtbApAQCAtNDYsMjYgKzQ2LDE4IEBAIGZ1bmN0
aW9uIHJlcXVlc3RIZWxwZXIobWV0aG9kLCB1cmwpCiBmdW5jdGlvbiBmcm9udGVuZF9lbmFibGVY
TUxIdHRwUmVxdWVzdExvZ2dpbmcodGVzdENvbnRyb2xsZXIpCiB7CiAgICAgSW5zcGVjdG9yQmFj
a2VuZC5zZXRNb25pdG9yaW5nWEhSRW5hYmxlZCh0cnVlLCBmdW5jdGlvbigpIHsKLSAgICAgICAg
IGlmIChXZWJJbnNwZWN0b3IuY29uc29sZS5fbW9uaXRvcmluZ1hIUkVuYWJsZWQpCi0gICAgICAg
ICAgICB0ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCJlbmFibGVkIik7CisgICAgICAgIHRlc3RD
b250cm9sbGVyLm5vdGlmeURvbmUoImVuYWJsZWQiKTsKICAgICB9KTsKIAotICAgIGlmIChXZWJJ
bnNwZWN0b3IuY29uc29sZS5fbW9uaXRvcmluZ1hIUkVuYWJsZWQpCi0gICAgICAgIHJldHVybiAi
ZW5hYmxlZCI7Ci0KICAgICB0ZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiB9CiAKIGZ1
bmN0aW9uIGZyb250ZW5kX2Rpc2FibGVYTUxIdHRwUmVxdWVzdExvZ2dpbmcodGVzdENvbnRyb2xs
ZXIpCiB7CiAgICAgSW5zcGVjdG9yQmFja2VuZC5zZXRNb25pdG9yaW5nWEhSRW5hYmxlZChmYWxz
ZSwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGlmICghV2ViSW5zcGVjdG9yLmNvbnNvbGUuX21vbml0
b3JpbmdYSFJFbmFibGVkKQotICAgICAgICAgICAgdGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgi
ZGlzYWJsZWQiKTsKKyAgICAgICAgdGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgiZGlzYWJsZWQi
KTsKICAgICB9KTsKIAotICAgIGlmICghV2ViSW5zcGVjdG9yLmNvbnNvbGUuX21vbml0b3JpbmdY
SFJFbmFibGVkKQotICAgICAgICByZXR1cm4gImRpc2FibGVkIjsKLQogICAgIHRlc3RDb250cm9s
bGVyLndhaXRVbnRpbERvbmUoKTsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3JlcG9ydC1wcm90b2NvbC1lcnJvcnMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9y
ZXBvcnQtcHJvdG9jb2wtZXJyb3JzLmh0bWwKaW5kZXggNGMwZmY2ZC4uMTgyN2JlMCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3JlcG9ydC1wcm90b2NvbC1lcnJvcnMuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcmVwb3J0LXByb3RvY29sLWVycm9ycy5odG1sCkBA
IC0xOCw3ICsxOCw2IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAneyJzZXEiOjUsImNvbW1h
bmQiOiJyZXNvdXJjZUNvbnRlbnQiLCJhcmd1bWVudHMiOnsiaWRlbnRpZmllciI6Im5vdCBhIG51
bWJlciJ9fScsCiAgICAgICAgICd7InNlcSI6NiwiY29tbWFuZCI6InJlbW92ZUJyZWFrcG9pbnQi
LCJhcmd1bWVudHMiOnt9fScsCiAgICAgICAgICd7InNlcSI6NywiY29tbWFuZCI6InJlbW92ZUJy
ZWFrcG9pbnQiLCJhcmd1bWVudHMiOnsiYnJlYWtwb2ludElkIjoic29tZUJyZWFrcG9pbnRJZCJ9
fScsCi0KICAgICBdOwogICAgIHZhciBudW1iZXJPZlJlcG9ydHMgPSAwOwogCkBAIC0zNiw3ICsz
NSw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAgSW5zcGVjdG9yRnJvbnRlbmRIb3N0
LnNlbmRNZXNzYWdlVG9CYWNrZW5kKG1lc3NhZ2VzW2ldKTsKICAgICB9CiAKLSAgICBJbnNwZWN0
b3JCYWNrZW5kLmRpc2FibGVEZWJ1Z2dlcih0cnVlLCBmaXJlKTsKKyAgICBJbnNwZWN0b3JCYWNr
ZW5kLmRpc2FibGVEZWJ1Z2dlcihmaXJlKTsKIH0KIAogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CmluZGV4IDkzNzkzZTQuLjcyNjM5Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xMTcz
LDcgKzExNzMsNiBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgaW5zcGVjdG9yL0luc3BlY3Rv
clByb2ZpbGVyQWdlbnQuY3BwCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQu
Y3BwCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAKLSAgICBpbnNwZWN0
b3IvSW5zcGVjdG9yU2V0dGluZ3MuY3BwCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvclN0YXRlLmNw
cAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcAogICAgIGluc3BlY3Rvci9J
bnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDBmNmQwN2MuLjFjNmEwZjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2OSBAQAorMjAxMS0wMS0yNyAgWXVyeSBTZW1pa2hhdHNr
eSAgPHl1cnlzQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBzdG9yZSBhbGwgc2V0dGluZ3MgcmVsYXRl
ZCB0byB0aGUgYWdlbnRzIG9uIHRoZSBmcm9udGVuZCBzaWRlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MzE3NAorCisgICAgICAgICogQ01ha2VMaXN0
cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5leHAu
aW46CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAg
ICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRE
ZWJ1Z1NlcnZlci5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0RGVidWdTZXJ2ZXIu
aDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRQcm9maWxlci5jcHA6CisgICAgICAgICog
YmluZGluZ3MvanMvU2NyaXB0UHJvZmlsZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9TY3Jp
cHREZWJ1Z1NlcnZlci5jcHA6CisgICAgICAgICogYmluZGluZ3MvdjgvU2NyaXB0RGVidWdTZXJ2
ZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9TY3JpcHRQcm9maWxlci5jcHA6CisgICAgICAg
ICogYmluZGluZ3MvdjgvU2NyaXB0UHJvZmlsZXIuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9yLmlkbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnQuY3BwOiBwcm9m
aWxlciBhbmQgZGVidWdnZXIgZW5hYmxlbWVudCBzdGF0ZSBpcyBub3cgc3RvcmVkCisgICAgICAg
IG9uIHRoZSBmcm9udC1lbmQgc2lkZSBhbmQgd2lsbCBiZSBwdXNoZWQgdG8gdGhlIGJhY2tlbmQg
d2hlbiB0aGUgZnJvbnRlbmQgaXMgbG9hZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
QWdlbnQ6Okluc3BlY3RvckFnZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFnZW50
OjpkaXNjb25uZWN0RnJvbnRlbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQWdlbnQ6
OnJlc3RvcmVEZWJ1Z2dlcik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBZ2VudDo6cmVz
dG9yZVByb2ZpbGVyKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFnZW50OjplbmFibGVQ
cm9maWxlcik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBZ2VudDo6ZGlzYWJsZVByb2Zp
bGVyKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFnZW50OjpzaG93QW5kRW5hYmxlRGVi
dWdnZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQWdlbnQ6OmVuYWJsZURlYnVnZ2Vy
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFnZW50OjpkaXNhYmxlRGVidWdnZXIpOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwOiBYSFIgZmFpbHVyZXMgd2lsbCBiZSBsb2dnZWQg
dG8gdGhlIGNvbnNvbGUgb25seQorICAgICAgICBpZiB0aGUgZnJvbnQtZW5kIHdhcyBvcGVuZWQg
ZHVyaW5nIGN1cnJlbnQgYnJvd3NlciBzZXNzaW9uIGFuZCBYSFIgbG9nZ2luZyBpcyB0dXJuZWQg
b24KKyAgICAgICAgdGhlcmUuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb25zb2xlQWdl
bnQ6OnNldE1vbml0b3JpbmdYSFJFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckNvbnNvbGVBZ2VudDo6c2V0Q29uc29sZU1lc3NhZ2VzRW5hYmxlZCk6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwOgorICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JEZWJ1Z2dlckFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvcklu
c3RydW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmlkZW50aWZpZXJGb3JJbml0aWFsUmVxdWVzdEltcGwpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRMb2FkUmVzb3VyY2VGcm9tTWVtb3J5Q2Fj
aGVJbXBsKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQcm9maWxlckFnZW50OjpJbnNwZWN0b3JQcm9m
aWxlckFnZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OnN0
YXJ0VXNlckluaXRpYXRlZFByb2ZpbGluZyk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
clNldHRpbmdzLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yU2V0
dGluZ3MuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yU3RhdGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3RhdGU6Okluc3BlY3RvclN0YXRlKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yU3RhdGUuaDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVW
aWV3LnByb3RvdHlwZS5fcmVnaXN0ZXJDb25zb2xlRG9tYWluRGlzcGF0Y2hlci5kaXNwYXRjaGVy
LmNvbnNvbGVNZXNzYWdlc0NsZWFyZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVW
aWV3LnByb3RvdHlwZS5fcmVnaXN0ZXJDb25zb2xlRG9tYWluRGlzcGF0Y2hlcik6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlLl9oYW5kbGVDb250ZXh0TWVudUV2
ZW50Lml0ZW1BY3Rpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3Rv
dHlwZS5faGFuZGxlQ29udGV4dE1lbnVFdmVudCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9Qcm9maWxlc1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFu
ZWwucHJvdG90eXBlLl90b2dnbGVQcm9maWxpbmcpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvU2NyaXB0c1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5l
bC5wcm90b3R5cGUuX3RvZ2dsZURlYnVnZ2luZyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9TZXR0aW5ncy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TZXR0aW5ncyk6CisgICAg
ICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanM6CisKIDIwMTEtMDEtMjcgIFNo
ZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2
aWV3ZWQsIHJvbGxpbmcgb3V0IHI3Njc3MC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggOTllYTQ0
MS4uODRkMWRmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysr
IGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTE5OTQsOCArMTk5NCw2IEBAIHdl
YmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJl
c291cmNlQWdlbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRp
bWVBZ2VudC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSdW50aW1l
QWdlbnQuaCBcCi0JU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclNldHRpbmdzLmNw
cCBcCi0JU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclNldHRpbmdzLmggXAogCVNv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdGF0ZS5jcHAgXAogCVNvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdGF0ZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBhNGJk
YWE4Li45NTdjNDkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMTM2OCw5ICsxMzY4LDkgQEAg
X19aTjdXZWJDb3JlMTRJbnNwZWN0b3JBZ2VudDVjbG9zZUV2CiBfX1pON1dlYkNvcmUxNEluc3Bl
Y3RvckFnZW50OXNob3dQYW5lbEVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE0SW5zcGVj
dG9yQWdlbnQxMkNvbnNvbGVQYW5lbEUKIF9fWk43V2ViQ29yZTE0SW5zcGVjdG9yQWdlbnQxM1By
b2ZpbGVzUGFuZWxFCi1fX1pON1dlYkNvcmUxNEluc3BlY3RvckFnZW50MTRlbmFibGVQcm9maWxl
ckViYgotX19aTjdXZWJDb3JlMTRJbnNwZWN0b3JBZ2VudDE1ZGlzYWJsZURlYnVnZ2VyRWIKLV9f
Wk43V2ViQ29yZTE0SW5zcGVjdG9yQWdlbnQxNWRpc2FibGVQcm9maWxlckViCitfX1pON1dlYkNv
cmUxNEluc3BlY3RvckFnZW50MTRlbmFibGVQcm9maWxlckV2CitfX1pON1dlYkNvcmUxNEluc3Bl
Y3RvckFnZW50MTVkaXNhYmxlRGVidWdnZXJFdgorX19aTjdXZWJDb3JlMTRJbnNwZWN0b3JBZ2Vu
dDE1ZGlzYWJsZVByb2ZpbGVyRXYKIF9fWk43V2ViQ29yZTE0SW5zcGVjdG9yQWdlbnQxOGRpc2Nv
bm5lY3RGcm9udGVuZEV2CiBfX1pON1dlYkNvcmUxNEluc3BlY3RvckFnZW50MjBzdG9wVGltZWxp
bmVQcm9maWxlckV2CiBfX1pON1dlYkNvcmUxNEluc3BlY3RvckFnZW50MjFzaG93QW5kRW5hYmxl
RGVidWdnZXJFdgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDRhNGUwNGMuLjNhOTY1MjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKQEAgLTIwNDksOCArMjA0OSw2IEBACiAgICAgICAgICAgICAnaW5zcGVjdG9yL0lu
c3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0
b3JSdW50aW1lQWdlbnQuaCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3RvclN0YXRl
LmNwcCcsCi0gICAgICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3RvclNldHRpbmdzLmgnLAotICAg
ICAgICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JTZXR0aW5ncy5jcHAnLAogICAgICAgICAgICAg
J2luc3BlY3Rvci9JbnNwZWN0b3JTdGF0ZS5oJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvSW5z
cGVjdG9yU3R5bGVTaGVldC5jcHAnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JT
dHlsZVNoZWV0LmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCBlNjRhZTk3Li5hZWMzZWNiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnBybwpAQCAtMTA2Miw3ICsxMDYyLDYgQEAgU09VUkNFUyArPSBcCiAgICAgaW5zcGVjdG9y
L0luc3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwIFwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yUmVz
b3VyY2VBZ2VudC5jcHAgXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuY3Bw
IFwKLSAgICBpbnNwZWN0b3IvSW5zcGVjdG9yU2V0dGluZ3MuY3BwIFwKICAgICBpbnNwZWN0b3Iv
SW5zcGVjdG9yU3RhdGUuY3BwIFwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5j
cHAgXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcCBcCkBAIC0xOTYy
LDcgKzE5NjEsNiBAQCBIRUFERVJTICs9IFwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmls
ZXJBZ2VudC5oIFwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oIFwKICAg
ICBpbnNwZWN0b3IvSW5zcGVjdG9yUnVudGltZUFnZW50LmggXAotICAgIGluc3BlY3Rvci9JbnNw
ZWN0b3JTZXR0aW5ncy5oIFwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yU3RhdGUuaCBcCiAgICAg
aW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuaCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3Rv
clRpbWVsaW5lQWdlbnQuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qCmluZGV4IGUyY2VmYTAuLjc0NzQwZDcgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC02NTI1NCwxNCArNjUyNTQsNiBAQAogCQkJ
CT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3Jc
SW5zcGVjdG9yU2V0dGluZ3MuY3BwIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCi0JCQkJ
UmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yU2V0dGluZ3MuaCIKLQkJCQk+Ci0J
CQk8L0ZpbGU+Ci0JCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXEluc3Bl
Y3RvclN0YXRlLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMmYyMjFmYi4uZDlmMTEwNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMTY1OSw4ICsxNjU5LDYgQEAKIAkJN0ExRjJCNTIxMjZDNjFCMjAwMDZBN0U2IC8qIElu
c3BlY3RvckNsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3QTFGMkI1MTEyNkM2MUIyMDAwNkE3RTYgLyogSW5zcGVjdG9yQ2xpZW50LmNwcCAq
LzsgfTsKIAkJN0EyNDU4N0IxMDIxRUFGNDAwMEEwMEFBIC8qIEluc3BlY3RvckRPTUFnZW50LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdBMjQ1ODc5
MTAyMUVBRjQwMDBBMDBBQSAvKiBJbnNwZWN0b3JET01BZ2VudC5jcHAgKi87IH07CiAJCTdBMjQ1
ODdDMTAyMUVBRjQwMDBBMDBBQSAvKiBJbnNwZWN0b3JET01BZ2VudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0EyNDU4N0ExMDIxRUFGNDAwMEEwMEFB
IC8qIEluc3BlY3RvckRPTUFnZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKLQkJN0E1NjQwQkYxMkRGOUU1RTAwRjQ1MzZEIC8qIEluc3BlY3RvclNl
dHRpbmdzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdBNTY0MEJEMTJERjlFNUUwMEY0NTM2RCAvKiBJbnNwZWN0b3JTZXR0aW5ncy5jcHAgKi87IH07
Ci0JCTdBNTY0MEMwMTJERjlFNUUwMEY0NTM2RCAvKiBJbnNwZWN0b3JTZXR0aW5ncy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0E1NjQwQkUxMkRGOUU1
RTAwRjQ1MzZEIC8qIEluc3BlY3RvclNldHRpbmdzLmggKi87IH07CiAJCTdBNjc0QkRCMEY5RUJG
NEUwMDZDRjA5OSAvKiBQYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0E2NzRCRDkwRjlFQkY0RTAwNkNGMDk5IC8q
IFBhZ2VHcm91cExvYWREZWZlcnJlci5jcHAgKi87IH07CiAJCTdBNjc0QkRDMEY5RUJGNEUwMDZD
RjA5OSAvKiBQYWdlR3JvdXBMb2FkRGVmZXJyZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdBNjc0QkRBMEY5RUJGNEUwMDZDRjA5OSAvKiBQYWdlR3Jv
dXBMb2FkRGVmZXJyZXIuaCAqLzsgfTsKIAkJN0E3NEVDQkExMDE4MzlBNjAwQkY5MzlFIC8qIElu
c3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3QTc0RUNCODEwMTgzOUE1MDBCRjkzOUUgLyogSW5zcGVjdG9yRE9N
U3RvcmFnZUFnZW50LmNwcCAqLzsgfTsKQEAgLTgxMDMsOCArODEwMSw2IEBACiAJCTdBMjQ1ODdB
MTAyMUVBRjQwMDBBMDBBQSAvKiBJbnNwZWN0b3JET01BZ2VudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JET01BZ2VudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3QTU2M0U1NDEyREUzMkIwMDBGNDUzNkQgLyogSW5qZWN0ZWRTY3JpcHRTb3Vy
Y2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0ZWRTY3JpcHRTb3Vy
Y2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0E1NjNGOTUxMkRGNUM5MTAwRjQ1
MzZEIC8qIEluamVjdGVkU2NyaXB0U291cmNlLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZh
c2NyaXB0OyBwYXRoID0gSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanM7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTdBNTY0MEJEMTJERjlFNUUwMEY0NTM2RCAvKiBJbnNwZWN0b3JTZXR0aW5n
cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JTZXR0
aW5ncy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTdBNTY0MEJFMTJERjlFNUUw
MEY0NTM2RCAvKiBJbnNwZWN0b3JTZXR0aW5ncy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBJbnNwZWN0b3JTZXR0aW5ncy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk3QTY3NEJEOTBGOUVCRjRFMDA2Q0YwOTkgLyogUGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhZ2VHcm91cExvYWREZWZlcnJl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdBNjc0QkRBMEY5RUJGNEUwMDZD
RjA5OSAvKiBQYWdlR3JvdXBMb2FkRGVmZXJyZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUGFnZUdyb3VwTG9hZERlZmVycmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTdBNzRFQ0I4MTAxODM5QTUwMEJGOTM5RSAvKiBJbnNwZWN0b3JET01TdG9yYWdlQWdl
bnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yRE9N
U3RvcmFnZUFnZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzMDI2LDgg
KzEzMDIyLDYgQEAKIAkJCQk4MkFCMTc3MjEyNUM4MjY3MDBDNTA2OUQgLyogSW5zcGVjdG9yUmVz
b3VyY2VBZ2VudC5oICovLAogCQkJCTdBQTM2NUVEMTJFNzI2NTQwMERDQTI0MiAvKiBJbnNwZWN0
b3JSdW50aW1lQWdlbnQuY3BwICovLAogCQkJCTdBRjExQTU5MTJFNzI3NDkwMDYxRjIzQyAvKiBJ
bnNwZWN0b3JSdW50aW1lQWdlbnQuaCAqLywKLQkJCQk3QTU2NDBCRDEyREY5RTVFMDBGNDUzNkQg
LyogSW5zcGVjdG9yU2V0dGluZ3MuY3BwICovLAotCQkJCTdBNTY0MEJFMTJERjlFNUUwMEY0NTM2
RCAvKiBJbnNwZWN0b3JTZXR0aW5ncy5oICovLAogCQkJCTRGQTNCOTA4MTI1Q0QxMjEwMDMwMEJB
RCAvKiBJbnNwZWN0b3JTdGF0ZS5jcHAgKi8sCiAJCQkJNEZBM0I5MDkxMjVDRDEyMjAwMzAwQkFE
IC8qIEluc3BlY3RvclN0YXRlLmggKi8sCiAJCQkJODJBQjE3NkYxMjVDODI2NzAwQzUwNjlEIC8q
IEluc3BlY3RvclN0eWxlU2hlZXQuY3BwICovLApAQCAtMjA5MjgsNyArMjA5MjIsNiBAQAogCQkJ
CTlGMEQ2QjJGMTIxQkZFQkEwMDZDMDI4OCAvKiBJbnNwZWN0b3JQcm9maWxlckFnZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQk4MkFCMTc3NjEyNUM4MjY3MDBDNTA2OUQgLyogSW5zcGVjdG9yUmVz
b3VyY2VBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0FGMTFBNUExMkU3Mjc0OTAwNjFGMjND
IC8qIEluc3BlY3RvclJ1bnRpbWVBZ2VudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJN0E1NjQwQzAx
MkRGOUU1RTAwRjQ1MzZEIC8qIEluc3BlY3RvclNldHRpbmdzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0RkEzQjkwQjEyNUNEMTIyMDAzMDBCQUQgLyogSW5zcGVjdG9yU3RhdGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTgyQUIxNzc0MTI1QzgyNjcwMEM1MDY5RCAvKiBJbnNwZWN0b3JTdHlsZVNoZWV0
LmggaW4gSGVhZGVycyAqLywKIAkJCQk3NTQxMzNBODEwMkUwMEU4MDAwNzVEMDAgLyogSW5zcGVj
dG9yVGltZWxpbmVBZ2VudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMzY3Miw3ICsyMzY2NSw2IEBA
CiAJCQkJOUYwRDZCMkUxMjFCRkVCQTAwNkMwMjg4IC8qIEluc3BlY3RvclByb2ZpbGVyQWdlbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODJBQjE3NzUxMjVDODI2NzAwQzUwNjlEIC8qIEluc3Bl
Y3RvclJlc291cmNlQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0FBMzY1RUUxMkU3MjY1
NDAwRENBMjQyIC8qIEluc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQk3QTU2NDBCRjEyREY5RTVFMDBGNDUzNkQgLyogSW5zcGVjdG9yU2V0dGluZ3MuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJNEZBM0I5MEExMjVDRDEyMjAwMzAwQkFEIC8qIEluc3BlY3RvclN0YXRl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTgyQUIxNzczMTI1QzgyNjcwMEM1MDY5RCAvKiBJbnNw
ZWN0b3JTdHlsZVNoZWV0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTc1NDEzM0FBMTAyRTAwRjQw
MDA3NUQwMCAvKiBJbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcCBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0RGVidWdTZXJ2ZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCmluZGV4
IDMzYTMxOGMuLjhiNDVmOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NjcmlwdERlYnVnU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9T
Y3JpcHREZWJ1Z1NlcnZlci5jcHAKQEAgLTExNywxMSArMTE3LDYgQEAgdm9pZCBTY3JpcHREZWJ1
Z1NlcnZlcjo6cmVtb3ZlTGlzdGVuZXIoU2NyaXB0RGVidWdMaXN0ZW5lciogbGlzdGVuZXIsIFBh
Z2UqIHBhZ2UKICAgICBkaWRSZW1vdmVMaXN0ZW5lcihwYWdlKTsKIH0KIAotYm9vbCBTY3JpcHRE
ZWJ1Z1NlcnZlcjo6aXNEZWJ1Z2dlckFsd2F5c0VuYWJsZWQoKQotewotICAgIHJldHVybiBmYWxz
ZTsKLX0KLQogYm9vbCBTY3JpcHREZWJ1Z1NlcnZlcjo6aGFzTGlzdGVuZXJzSW50ZXJlc3RlZElu
UGFnZShQYWdlKiBwYWdlKQogewogICAgIEFTU0VSVF9BUkcocGFnZSwgcGFnZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHREZWJ1Z1NlcnZlci5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0RGVidWdTZXJ2ZXIuaAppbmRleCAxZTM4ODE5
Li4zNjhiMDdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRE
ZWJ1Z1NlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdERlYnVn
U2VydmVyLmgKQEAgLTkzLDggKzkzLDYgQEAgcHVibGljOgogCiAgICAgSmF2YVNjcmlwdENhbGxG
cmFtZSogY3VycmVudENhbGxGcmFtZSgpOwogCi0gICAgYm9vbCBpc0RlYnVnZ2VyQWx3YXlzRW5h
YmxlZCgpOwotCiBwcml2YXRlOgogICAgIHR5cGVkZWYgSGFzaFNldDxTY3JpcHREZWJ1Z0xpc3Rl
bmVyKj4gTGlzdGVuZXJTZXQ7CiAgICAgdHlwZWRlZiB2b2lkIChTY3JpcHREZWJ1Z1NlcnZlcjo6
KkphdmFTY3JpcHRFeGVjdXRpb25DYWxsYmFjaykoU2NyaXB0RGVidWdMaXN0ZW5lciopOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0UHJvZmlsZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0UHJvZmlsZXIuY3BwCmluZGV4IDYyYWU5
YmEuLmYzNzJjM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Njcmlw
dFByb2ZpbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRQcm9m
aWxlci5jcHAKQEAgLTQ2LDExICs0Niw2IEBAIFBhc3NSZWZQdHI8U2NyaXB0UHJvZmlsZT4gU2Ny
aXB0UHJvZmlsZXI6OnN0b3AoU2NyaXB0U3RhdGUqIHN0YXRlLCBjb25zdCBTdHJpbmcmCiAgICAg
cmV0dXJuIFNjcmlwdFByb2ZpbGU6OmNyZWF0ZShwcm9maWxlKTsKIH0KIAotYm9vbCBTY3JpcHRQ
cm9maWxlcjo6aXNQcm9maWxlckFsd2F5c0VuYWJsZWQoKQotewotICAgIHJldHVybiBmYWxzZTsK
LX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKEpBVkFTQ1JJ
UFRfREVCVUdHRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3Jp
cHRQcm9maWxlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0UHJvZmlsZXIu
aAppbmRleCA0YzBjMDdmLi5kOGFkNDgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9TY3JpcHRQcm9maWxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NjcmlwdFByb2ZpbGVyLmgKQEAgLTUwLDcgKzUwLDYgQEAgcHVibGljOgogICAgIHN0YXRpYyB2
b2lkIHN0YXJ0KFNjcmlwdFN0YXRlKiBzdGF0ZSwgY29uc3QgU3RyaW5nJiB0aXRsZSk7CiAgICAg
c3RhdGljIFBhc3NSZWZQdHI8U2NyaXB0UHJvZmlsZT4gc3RvcChTY3JpcHRTdGF0ZSogc3RhdGUs
IGNvbnN0IFN0cmluZyYgdGl0bGUpOwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNjcmlwdEhlYXBT
bmFwc2hvdD4gdGFrZUhlYXBTbmFwc2hvdChjb25zdCBTdHJpbmcmLCBIZWFwU25hcHNob3RQcm9n
cmVzcyopIHsgcmV0dXJuIDA7IH0KLSAgICBzdGF0aWMgYm9vbCBpc1Byb2ZpbGVyQWx3YXlzRW5h
YmxlZCgpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0RGVidWdTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCmluZGV4IDk3YzU3ZjQuLjExZmE4
NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdERlYnVnU2Vy
dmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHREZWJ1Z1NlcnZl
ci5jcHAKQEAgLTM0MiwxMSArMzQyLDYgQEAgdm9pZCBTY3JpcHREZWJ1Z1NlcnZlcjo6c2V0RW5h
YmxlZChib29sIHZhbHVlKQogICAgICBtX2VuYWJsZWQgPSB2YWx1ZTsKIH0KIAotYm9vbCBTY3Jp
cHREZWJ1Z1NlcnZlcjo6aXNEZWJ1Z2dlckFsd2F5c0VuYWJsZWQoKQotewotICAgIHJldHVybiBt
X2VuYWJsZWQ7Ci19Ci0KIHZvaWQgU2NyaXB0RGVidWdTZXJ2ZXI6OmludGVycnVwdEFuZFJ1bihQ
YXNzT3duUHRyPFRhc2s+IHRhc2spCiB7CiAgICAgdjg6OkRlYnVnOjpEZWJ1Z0JyZWFrRm9yQ29t
bWFuZChuZXcgQ2xpZW50RGF0YUltcGwodGFzaykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvU2NyaXB0RGVidWdTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L1NjcmlwdERlYnVnU2VydmVyLmgKaW5kZXggOTUzZGRjMy4uYjRlNzM5MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0RGVidWdTZXJ2ZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHREZWJ1Z1NlcnZlci5oCkBAIC05OSw3
ICs5OSw2IEBAIHB1YmxpYzoKICAgICBQYXNzUmVmUHRyPEphdmFTY3JpcHRDYWxsRnJhbWU+IGN1
cnJlbnRDYWxsRnJhbWUoKTsKIAogICAgIHZvaWQgc2V0RW5hYmxlZChib29sKTsKLSAgICBib29s
IGlzRGVidWdnZXJBbHdheXNFbmFibGVkKCk7CiAKICAgICBjbGFzcyBUYXNrIHsKICAgICBwdWJs
aWM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRQcm9maWxl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRQcm9maWxlci5jcHAKaW5k
ZXggNWRlMWIzNi4uNjE1ZGNmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvU2NyaXB0UHJvZmlsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Nj
cmlwdFByb2ZpbGVyLmNwcApAQCAtOTAsOSArOTAsNCBAQCBQYXNzUmVmUHRyPFNjcmlwdEhlYXBT
bmFwc2hvdD4gU2NyaXB0UHJvZmlsZXI6OnRha2VIZWFwU25hcHNob3QoY29uc3QgU3RyaW5nJiB0
aQogICAgIHJldHVybiBzbmFwc2hvdCA/IFNjcmlwdEhlYXBTbmFwc2hvdDo6Y3JlYXRlKHNuYXBz
aG90KSA6IDA7CiB9CiAKLWJvb2wgU2NyaXB0UHJvZmlsZXI6OmlzUHJvZmlsZXJBbHdheXNFbmFi
bGVkKCkKLXsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0UHJvZmlsZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdFByb2ZpbGVyLmgKaW5kZXggODNhYWI3
Yi4uOTAxNjY2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0
UHJvZmlsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRQcm9maWxl
ci5oCkBAIC01Niw3ICs1Niw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBzdGFydChTY3Jp
cHRTdGF0ZSogc3RhdGUsIGNvbnN0IFN0cmluZyYgdGl0bGUpOwogICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFNjcmlwdFByb2ZpbGU+IHN0b3AoU2NyaXB0U3RhdGUqIHN0YXRlLCBjb25zdCBTdHJpbmcm
IHRpdGxlKTsKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTY3JpcHRIZWFwU25hcHNob3Q+IHRha2VI
ZWFwU25hcHNob3QoY29uc3QgU3RyaW5nJiB0aXRsZSwgSGVhcFNuYXBzaG90UHJvZ3Jlc3MqKTsK
LSAgICBzdGF0aWMgYm9vbCBpc1Byb2ZpbGVyQWx3YXlzRW5hYmxlZCgpOwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmlkbAppbmRl
eCBiOGNjZDhlLi45Nzk3Mjc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmlk
bApAQCAtOTQsNyArOTQsNiBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIFtkb21haW49Q29uc29s
ZV0gdm9pZCBjbGVhckNvbnNvbGVNZXNzYWdlcygpOwogICAgICAgICBbbm90aWZ5LCBkb21haW49
Q29uc29sZV0gdm9pZCBjb25zb2xlTWVzc2FnZXNDbGVhcmVkKCk7CiAgICAgICAgIFtkb21haW49
Q29uc29sZV0gdm9pZCBzZXRNb25pdG9yaW5nWEhSRW5hYmxlZChpbiBib29sZWFuIGVuYWJsZWQp
OwotICAgICAgICBbbm90aWZ5LCBkb21haW49Q29uc29sZV0gdm9pZCBtb25pdG9yaW5nWEhSU3Rh
dGVDaGFuZ2VkKG91dCBib29sZWFuIGVuYWJsZWQpOwogCiAgICAgICAgIC8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
CiAgICAgICAgIC8vIE5ldHdvcmsgQVBJCkBAIC0yMzksOCArMjM4LDggQEAgbW9kdWxlIGNvcmUg
ewogICAgICAgICAvLyBEZWJ1Z2dlciBBUEkKICAgICAgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KIAotICAg
ICAgICBbZG9tYWluPUluc3BlY3Rvcl0gdm9pZCBlbmFibGVEZWJ1Z2dlcihpbiBib29sZWFuIGFs
d2F5cyk7Ci0gICAgICAgIFtkb21haW49SW5zcGVjdG9yXSB2b2lkIGRpc2FibGVEZWJ1Z2dlcihp
biBib29sZWFuIGFsd2F5cyk7CisgICAgICAgIFtkb21haW49SW5zcGVjdG9yXSB2b2lkIGVuYWJs
ZURlYnVnZ2VyKCk7CisgICAgICAgIFtkb21haW49SW5zcGVjdG9yXSB2b2lkIGRpc2FibGVEZWJ1
Z2dlcigpOwogCiAgICAgICAgIFtub3RpZnksIGRvbWFpbj1EZWJ1Z2dlcl0gdm9pZCBkZWJ1Z2dl
cldhc0VuYWJsZWQoKTsKICAgICAgICAgW25vdGlmeSwgZG9tYWluPURlYnVnZ2VyXSB2b2lkIGRl
YnVnZ2VyV2FzRGlzYWJsZWQoKTsKQEAgLTI5MCw4ICsyODksOCBAQCBtb2R1bGUgY29yZSB7CiAg
ICAgICAgIC8vIFByb2ZpbGVyIEFQSQogICAgICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogCi0gICAgICAg
IFtkb21haW49SW5zcGVjdG9yXSB2b2lkIGVuYWJsZVByb2ZpbGVyKGluIGJvb2xlYW4gYWx3YXlz
KTsKLSAgICAgICAgW2RvbWFpbj1JbnNwZWN0b3JdIHZvaWQgZGlzYWJsZVByb2ZpbGVyKGluIGJv
b2xlYW4gYWx3YXlzKTsKKyAgICAgICAgW2RvbWFpbj1JbnNwZWN0b3JdIHZvaWQgZW5hYmxlUHJv
ZmlsZXIoKTsKKyAgICAgICAgW2RvbWFpbj1JbnNwZWN0b3JdIHZvaWQgZGlzYWJsZVByb2ZpbGVy
KCk7CiAgICAgICAgIFtub3RpZnksIGRvbWFpbj1Qcm9maWxlcl0gdm9pZCBwcm9maWxlcldhc0Vu
YWJsZWQoKTsKICAgICAgICAgW25vdGlmeSwgZG9tYWluPVByb2ZpbGVyXSB2b2lkIHByb2ZpbGVy
V2FzRGlzYWJsZWQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBZ2Vu
dC5jcHAKaW5kZXggNGIzNDJjNy4uNzY0MDY2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQWdlbnQuY3BwCkBAIC03Miw3ICs3Miw2IEBACiAjaW5jbHVkZSAiSW5zcGVj
dG9yUHJvZmlsZXJBZ2VudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvclJlc291cmNlQWdlbnQuaCIK
ICNpbmNsdWRlICJJbnNwZWN0b3JSdW50aW1lQWdlbnQuaCIKLSNpbmNsdWRlICJJbnNwZWN0b3JT
ZXR0aW5ncy5oIgogI2luY2x1ZGUgIkluc3BlY3RvclN0YXRlLmgiCiAjaW5jbHVkZSAiSW5zcGVj
dG9yVGltZWxpbmVBZ2VudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvclZhbHVlcy5oIgpAQCAtMTQ2
LDcgKzE0NSw2IEBAIEluc3BlY3RvckFnZW50OjpJbnNwZWN0b3JBZ2VudChJbnNwZWN0b3JDb250
cm9sbGVyKiBpbnNwZWN0b3JDb250cm9sbGVyLCBQYWdlKiBwCiAgICAgLCBtX2luamVjdGVkU2Ny
aXB0SG9zdChJbmplY3RlZFNjcmlwdEhvc3Q6OmNyZWF0ZSh0aGlzKSkKICAgICAsIG1fY29uc29s
ZUFnZW50KG5ldyBJbnNwZWN0b3JDb25zb2xlQWdlbnQodGhpcykpCiAjaWYgRU5BQkxFKEpBVkFT
Q1JJUFRfREVCVUdHRVIpCi0gICAgLCBtX2F0dGFjaERlYnVnZ2VyV2hlblNob3duKGZhbHNlKQog
ICAgICwgbV9wcm9maWxlckFnZW50KEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OmNyZWF0ZSh0aGlz
KSkKICNlbmRpZgogewpAQCAtNDUwLDkgKzQ0OCw3IEBAIHZvaWQgSW5zcGVjdG9yQWdlbnQ6OmRp
c2Nvbm5lY3RGcm9udGVuZCgpCiAgICAgLy8gSWYgdGhlIHdpbmRvdyBpcyBiZWluZyBjbG9zZWQg
d2l0aCB0aGUgZGVidWdnZXIgZW5hYmxlZCwKICAgICAvLyByZW1lbWJlciB0aGlzIHN0YXRlIHRv
IHJlLWVuYWJsZSBkZWJ1Z2dlciBvbiB0aGUgbmV4dCB3aW5kb3cKICAgICAvLyBvcGVuaW5nLgot
ICAgIGJvb2wgZGVidWdnZXJXYXNFbmFibGVkID0gZGVidWdnZXJFbmFibGVkKCk7CiAgICAgZGlz
YWJsZURlYnVnZ2VyKCk7Ci0gICAgbV9hdHRhY2hEZWJ1Z2dlcldoZW5TaG93biA9IGRlYnVnZ2Vy
V2FzRW5hYmxlZDsKICNlbmRpZgogICAgIHNldFNlYXJjaGluZ0Zvck5vZGUoZmFsc2UpOwogICAg
IHVuYmluZEFsbFJlc291cmNlcygpOwpAQCAtNTcwLDEwICs1NjYsOCBAQCB2b2lkIEluc3BlY3Rv
ckFnZW50OjpyZXN0b3JlRGVidWdnZXIoKQogewogICAgIEFTU0VSVChtX2Zyb250ZW5kKTsKICNp
ZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKLSAgICBpZiAoSW5zcGVjdG9yRGVidWdnZXJB
Z2VudDo6aXNEZWJ1Z2dlckFsd2F5c0VuYWJsZWQoKSB8fCBtX2F0dGFjaERlYnVnZ2VyV2hlblNo
b3duIHx8IG1fc2V0dGluZ3MtPmdldEJvb2xlYW4oSW5zcGVjdG9yU2V0dGluZ3M6OkRlYnVnZ2Vy
QWx3YXlzRW5hYmxlZCkpIHsKLSAgICAgICAgZW5hYmxlRGVidWdnZXIoZmFsc2UpOwotICAgICAg
ICBtX2F0dGFjaERlYnVnZ2VyV2hlblNob3duID0gZmFsc2U7Ci0gICAgfQorICAgIGlmIChtX3N0
YXRlLT5nZXRCb29sZWFuKEluc3BlY3RvclN0YXRlOjpkZWJ1Z2dlckVuYWJsZWQpKQorICAgICAg
ICBlbmFibGVEZWJ1Z2dlcigpOwogI2VuZGlmCiB9CiAKQEAgLTU4Miw3ICs1NzYsNyBAQCB2b2lk
IEluc3BlY3RvckFnZW50OjpyZXN0b3JlUHJvZmlsZXIoUHJvZmlsZXJSZXN0b3JlQWN0aW9uIGFj
dGlvbikKICAgICBBU1NFUlQobV9mcm9udGVuZCk7CiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVC
VUdHRVIpCiAgICAgbV9wcm9maWxlckFnZW50LT5zZXRGcm9udGVuZChtX2Zyb250ZW5kLmdldCgp
KTsKLSAgICBpZiAoIVNjcmlwdFByb2ZpbGVyOjppc1Byb2ZpbGVyQWx3YXlzRW5hYmxlZCgpICYm
IG1fc2V0dGluZ3MtPmdldEJvb2xlYW4oSW5zcGVjdG9yU2V0dGluZ3M6OlByb2ZpbGVyQWx3YXlz
RW5hYmxlZCkpCisgICAgaWYgKG1fc3RhdGUtPmdldEJvb2xlYW4oSW5zcGVjdG9yU3RhdGU6OnBy
b2ZpbGVyRW5hYmxlZCkpCiAgICAgICAgIGVuYWJsZVByb2ZpbGVyKCk7CiAgICAgaWYgKGFjdGlv
biA9PSBQcm9maWxlclJlc3RvcmVSZXNldEFnZW50KQogICAgICAgICBtX3Byb2ZpbGVyQWdlbnQt
PnJlc2V0RnJvbnRlbmRQcm9maWxlcygpOwpAQCAtNzA1LDE0ICs2OTksNiBAQCB2b2lkIEluc3Bl
Y3RvckFnZW50Ojp3aWxsU2VuZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogICAg
IH0KIH0KIAotdm9pZCBJbnNwZWN0b3JBZ2VudDo6ZW5zdXJlU2V0dGluZ3NMb2FkZWQoKQotewot
ICAgIGlmIChtX3NldHRpbmdzKQotICAgICAgICByZXR1cm47Ci0gICAgbV9zZXR0aW5ncyA9IG5l
dyBJbnNwZWN0b3JTZXR0aW5ncyhtX2NsaWVudCk7Ci0gICAgbV9zdGF0ZS0+c2V0Qm9vbGVhbihJ
bnNwZWN0b3JTdGF0ZTo6bW9uaXRvcmluZ1hIUiwgbV9zZXR0aW5ncy0+Z2V0Qm9vbGVhbihJbnNw
ZWN0b3JTZXR0aW5nczo6TW9uaXRvcmluZ1hIUkVuYWJsZWQpKTsKLX0KLQogdm9pZCBJbnNwZWN0
b3JBZ2VudDo6c3RhcnRUaW1lbGluZVByb2ZpbGVyKCkKIHsKICAgICBpZiAoIWVuYWJsZWQoKSkK
QEAgLTk5MiwxNyArOTc4LDE3IEBAIGJvb2wgSW5zcGVjdG9yQWdlbnQ6OnByb2ZpbGVyRW5hYmxl
ZCgpIGNvbnN0CiAgICAgcmV0dXJuIGVuYWJsZWQoKSAmJiBtX3Byb2ZpbGVyQWdlbnQtPmVuYWJs
ZWQoKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JBZ2VudDo6ZW5hYmxlUHJvZmlsZXIoYm9vbCBhbHdh
eXMsIGJvb2wgc2tpcFJlY29tcGlsZSkKK3ZvaWQgSW5zcGVjdG9yQWdlbnQ6OmVuYWJsZVByb2Zp
bGVyKCkKIHsKLSAgICBpZiAoYWx3YXlzKQotICAgICAgICBtX3NldHRpbmdzLT5zZXRCb29sZWFu
KEluc3BlY3RvclNldHRpbmdzOjpQcm9maWxlckFsd2F5c0VuYWJsZWQsIHRydWUpOwotICAgIG1f
cHJvZmlsZXJBZ2VudC0+ZW5hYmxlKHNraXBSZWNvbXBpbGUpOworICAgIGlmIChwcm9maWxlckVu
YWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIG1fc3RhdGUtPnNldEJvb2xlYW4oSW5zcGVj
dG9yU3RhdGU6OnByb2ZpbGVyRW5hYmxlZCwgdHJ1ZSk7CisgICAgbV9wcm9maWxlckFnZW50LT5l
bmFibGUoZmFsc2UpOwogfQogCi12b2lkIEluc3BlY3RvckFnZW50OjpkaXNhYmxlUHJvZmlsZXIo
Ym9vbCBhbHdheXMpCit2b2lkIEluc3BlY3RvckFnZW50OjpkaXNhYmxlUHJvZmlsZXIoKQogewot
ICAgIGlmIChhbHdheXMpCi0gICAgICAgIG1fc2V0dGluZ3MtPnNldEJvb2xlYW4oSW5zcGVjdG9y
U2V0dGluZ3M6OlByb2ZpbGVyQWx3YXlzRW5hYmxlZCwgZmFsc2UpOworICAgIG1fc3RhdGUtPnNl
dEJvb2xlYW4oSW5zcGVjdG9yU3RhdGU6OnByb2ZpbGVyRW5hYmxlZCwgZmFsc2UpOwogICAgIG1f
cHJvZmlsZXJBZ2VudC0+ZGlzYWJsZSgpOwogfQogI2VuZGlmCkBAIC0xMDE3LDE4ICsxMDAzLDE3
IEBAIHZvaWQgSW5zcGVjdG9yQWdlbnQ6OnNob3dBbmRFbmFibGVEZWJ1Z2dlcigpCiAgICAgICAg
IHJldHVybjsKIAogICAgIGlmICghbV9mcm9udGVuZCkgewotICAgICAgICBtX2F0dGFjaERlYnVn
Z2VyV2hlblNob3duID0gdHJ1ZTsKKyAgICAgICAgbV9zdGF0ZS0+c2V0Qm9vbGVhbihJbnNwZWN0
b3JTdGF0ZTo6ZGVidWdnZXJFbmFibGVkLCB0cnVlKTsKICAgICAgICAgc2hvd1BhbmVsKFNjcmlw
dHNQYW5lbCk7CiAgICAgfSBlbHNlCi0gICAgICAgIGVuYWJsZURlYnVnZ2VyKGZhbHNlKTsKKyAg
ICAgICAgZW5hYmxlRGVidWdnZXIoKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JBZ2VudDo6ZW5hYmxl
RGVidWdnZXIoYm9vbCBhbHdheXMpCit2b2lkIEluc3BlY3RvckFnZW50OjplbmFibGVEZWJ1Z2dl
cigpCiB7Ci0gICAgQVNTRVJUKCFkZWJ1Z2dlckVuYWJsZWQoKSk7Ci0gICAgaWYgKGFsd2F5cykK
LSAgICAgICAgbV9zZXR0aW5ncy0+c2V0Qm9vbGVhbihJbnNwZWN0b3JTZXR0aW5nczo6RGVidWdn
ZXJBbHdheXNFbmFibGVkLCB0cnVlKTsKLQorICAgIGlmIChkZWJ1Z2dlckVuYWJsZWQoKSkKKyAg
ICAgICAgcmV0dXJuOworICAgIG1fc3RhdGUtPnNldEJvb2xlYW4oSW5zcGVjdG9yU3RhdGU6OmRl
YnVnZ2VyRW5hYmxlZCwgdHJ1ZSk7CiAgICAgQVNTRVJUKG1faW5zcGVjdGVkUGFnZSk7CiAKICAg
ICBtX2RlYnVnZ2VyQWdlbnQgPSBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpjcmVhdGUodGhpcywg
bV9mcm9udGVuZC5nZXQoKSk7CkBAIC0xMDM3LDIzICsxMDIyLDE4IEBAIHZvaWQgSW5zcGVjdG9y
QWdlbnQ6OmVuYWJsZURlYnVnZ2VyKGJvb2wgYWx3YXlzKQogICAgIG1fZnJvbnRlbmQtPmRlYnVn
Z2VyV2FzRW5hYmxlZCgpOwogfQogCi12b2lkIEluc3BlY3RvckFnZW50OjpkaXNhYmxlRGVidWdn
ZXIoYm9vbCBhbHdheXMpCit2b2lkIEluc3BlY3RvckFnZW50OjpkaXNhYmxlRGVidWdnZXIoKQog
ewogICAgIGlmICghZW5hYmxlZCgpKQogICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoYWx3YXlz
KQotICAgICAgICBtX3NldHRpbmdzLT5zZXRCb29sZWFuKEluc3BlY3RvclNldHRpbmdzOjpEZWJ1
Z2dlckFsd2F5c0VuYWJsZWQsIGZhbHNlKTsKLQogICAgIEFTU0VSVChtX2luc3BlY3RlZFBhZ2Up
OwotCiAgICAgbV9kZWJ1Z2dlckFnZW50LmNsZWFyKCk7CiAgICAgbV9icm93c2VyRGVidWdnZXJB
Z2VudC5jbGVhcigpOwogCi0gICAgbV9hdHRhY2hEZWJ1Z2dlcldoZW5TaG93biA9IGZhbHNlOwot
Ci0gICAgaWYgKG1fZnJvbnRlbmQpCisgICAgaWYgKG1fZnJvbnRlbmQpIHsKICAgICAgICAgbV9m
cm9udGVuZC0+ZGVidWdnZXJXYXNEaXNhYmxlZCgpOworICAgICAgICBtX3N0YXRlLT5zZXRCb29s
ZWFuKEluc3BlY3RvclN0YXRlOjpkZWJ1Z2dlckVuYWJsZWQsIGZhbHNlKTsKKyAgICB9CiB9CiAK
IHZvaWQgSW5zcGVjdG9yQWdlbnQ6OnJlc3VtZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JBZ2VudC5oCmluZGV4IDM2MmFiZWMuLjhjYzQ5YTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JBZ2VudC5oCkBAIC03NCw3ICs3NCw2IEBAIGNsYXNzIEluc3Bl
Y3Rvck9iamVjdDsKIGNsYXNzIEluc3BlY3RvclByb2ZpbGVyQWdlbnQ7CiBjbGFzcyBJbnNwZWN0
b3JSZXNvdXJjZUFnZW50OwogY2xhc3MgSW5zcGVjdG9yUnVudGltZUFnZW50OwotY2xhc3MgSW5z
cGVjdG9yU2V0dGluZ3M7CiBjbGFzcyBJbnNwZWN0b3JTdGF0ZTsKIGNsYXNzIEluc3BlY3RvclN0
b3JhZ2VBZ2VudDsKIGNsYXNzIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ7CkBAIC0yMzcsMTMgKzIz
NiwxMyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdGFydFVzZXJJbml0aWF0ZWRQcm9maWxpbmcoKTsK
ICAgICB2b2lkIHN0b3BQcm9maWxpbmcoKSB7IHN0b3BVc2VySW5pdGlhdGVkUHJvZmlsaW5nKCk7
IH0KICAgICB2b2lkIHN0b3BVc2VySW5pdGlhdGVkUHJvZmlsaW5nKCk7Ci0gICAgdm9pZCBlbmFi
bGVQcm9maWxlcihib29sIGFsd2F5cyA9IGZhbHNlLCBib29sIHNraXBSZWNvbXBpbGUgPSBmYWxz
ZSk7Ci0gICAgdm9pZCBkaXNhYmxlUHJvZmlsZXIoYm9vbCBhbHdheXMgPSBmYWxzZSk7CisgICAg
dm9pZCBlbmFibGVQcm9maWxlcigpOworICAgIHZvaWQgZGlzYWJsZVByb2ZpbGVyKCk7CiAgICAg
Ym9vbCBwcm9maWxlckVuYWJsZWQoKSBjb25zdDsKIAogICAgIHZvaWQgc2hvd0FuZEVuYWJsZURl
YnVnZ2VyKCk7Ci0gICAgdm9pZCBlbmFibGVEZWJ1Z2dlcihib29sIGFsd2F5cyk7Ci0gICAgdm9p
ZCBkaXNhYmxlRGVidWdnZXIoYm9vbCBhbHdheXMgPSBmYWxzZSk7CisgICAgdm9pZCBlbmFibGVE
ZWJ1Z2dlcigpOworICAgIHZvaWQgZGlzYWJsZURlYnVnZ2VyKCk7CiAgICAgYm9vbCBkZWJ1Z2dl
ckVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2RlYnVnZ2VyQWdlbnQ7IH0KICAgICB2b2lkIHJl
c3VtZSgpOwogCkBAIC0yNTgsNyArMjU3LDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0SW5zcGVj
dG9yRXh0ZW5zaW9uQVBJKGNvbnN0IFN0cmluZyYgc291cmNlKTsKIAogICAgIEluc3BlY3RvclN0
YXRlKiBzdGF0ZSgpIHsgcmV0dXJuIG1fc3RhdGUuZ2V0KCk7IH0KLSAgICBJbnNwZWN0b3JTZXR0
aW5ncyogc2V0dGluZ3MoKSB7IHJldHVybiBtX3NldHRpbmdzLmdldCgpOyB9CiAKICAgICAvLyBJ
bnNwZWN0b3JBZ2VudCBBUEkKICAgICB2b2lkIGdldEluc3BlY3RvclN0YXRlKFJlZlB0cjxJbnNw
ZWN0b3JPYmplY3Q+KiBzdGF0ZSk7CkBAIC0yNjksNyArMjY3LDYgQEAgcHVibGljOgogICAgIHZv
aWQgZGlkRXZhbHVhdGVGb3JUZXN0SW5Gcm9udGVuZChsb25nIGNhbGxJZCwgY29uc3QgU3RyaW5n
JiBqc29uUmVzdWx0KTsKIAogICAgIC8vIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbiBBUEkKLSAg
ICB2b2lkIGVuc3VyZVNldHRpbmdzTG9hZGVkKCk7CiAgICAgdm9pZCB3aWxsU2VuZFJlcXVlc3Qo
UmVzb3VyY2VSZXF1ZXN0Jik7CiAKIHByaXZhdGU6CkBAIC0zMTQsNyArMzExLDYgQEAgcHJpdmF0
ZToKIAogICAgIE93blB0cjxJbnNwZWN0b3JUaW1lbGluZUFnZW50PiBtX3RpbWVsaW5lQWdlbnQ7
CiAgICAgT3duUHRyPEluc3BlY3RvclN0YXRlPiBtX3N0YXRlOwotICAgIE93blB0cjxJbnNwZWN0
b3JTZXR0aW5ncz4gbV9zZXR0aW5nczsKIAogI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNB
VElPTlMpCiAgICAgT3duUHRyPEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudD4gbV9hcHBs
aWNhdGlvbkNhY2hlQWdlbnQ7CkBAIC0zNDcsNyArMzQzLDYgQEAgcHJpdmF0ZToKICAgICBWZWN0
b3I8U3RyaW5nPiBtX3NjcmlwdHNUb0V2YWx1YXRlT25Mb2FkOwogICAgIFN0cmluZyBtX2luc3Bl
Y3RvckV4dGVuc2lvbkFQSTsKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKLSAgICBi
b29sIG1fYXR0YWNoRGVidWdnZXJXaGVuU2hvd247CiAgICAgT3duUHRyPEluc3BlY3RvckRlYnVn
Z2VyQWdlbnQ+IG1fZGVidWdnZXJBZ2VudDsKICAgICBPd25QdHI8SW5zcGVjdG9yQnJvd3NlckRl
YnVnZ2VyQWdlbnQ+IG1fYnJvd3NlckRlYnVnZ2VyQWdlbnQ7CiAgICAgT3duUHRyPEluc3BlY3Rv
clByb2ZpbGVyQWdlbnQ+IG1fcHJvZmlsZXJBZ2VudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAKaW5kZXggNzY2MzhjNy4uODcyY2Ji
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVB
Z2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVB
Z2VudC5jcHAKQEAgLTMzLDcgKzMzLDYgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JBZ2VudC5oIgog
I2luY2x1ZGUgIkluc3BlY3RvckRPTUFnZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRl
bmQuaCIKLSNpbmNsdWRlICJJbnNwZWN0b3JTZXR0aW5ncy5oIgogI2luY2x1ZGUgIkluc3BlY3Rv
clN0YXRlLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgogI2luY2x1ZGUgIlJlc291cmNl
UmVzcG9uc2UuaCIKQEAgLTE5NCw5ICsxOTMsNiBAQCB2b2lkIEluc3BlY3RvckNvbnNvbGVBZ2Vu
dDo6ZGlkRmFpbExvYWRpbmcodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdQog
dm9pZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OnNldE1vbml0b3JpbmdYSFJFbmFibGVkKGJvb2wg
ZW5hYmxlZCkKIHsKICAgICBtX2luc3BlY3RvckFnZW50LT5zdGF0ZSgpLT5zZXRCb29sZWFuKElu
c3BlY3RvclN0YXRlOjptb25pdG9yaW5nWEhSLCBlbmFibGVkKTsKLSAgICBtX2luc3BlY3RvckFn
ZW50LT5zZXR0aW5ncygpLT5zZXRCb29sZWFuKEluc3BlY3RvclNldHRpbmdzOjpNb25pdG9yaW5n
WEhSRW5hYmxlZCwgZW5hYmxlZCk7Ci0gICAgaWYgKG1fZnJvbnRlbmQpCi0gICAgICAgIG1fZnJv
bnRlbmQtPm1vbml0b3JpbmdYSFJTdGF0ZUNoYW5nZWQoZW5hYmxlZCk7CiB9CiAKIHZvaWQgSW5z
cGVjdG9yQ29uc29sZUFnZW50OjpzZXRDb25zb2xlTWVzc2FnZXNFbmFibGVkKGJvb2wgZW5hYmxl
ZCkKQEAgLTIwNSw3ICsyMDEsNiBAQCB2b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6c2V0Q29u
c29sZU1lc3NhZ2VzRW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAgaWYgKCFlbmFibGVkIHx8ICFt
X2Zyb250ZW5kKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2Zyb250ZW5kLT5tb25pdG9yaW5n
WEhSU3RhdGVDaGFuZ2VkKG1faW5zcGVjdG9yQWdlbnQtPnN0YXRlKCktPmdldEJvb2xlYW4oSW5z
cGVjdG9yU3RhdGU6Om1vbml0b3JpbmdYSFIpKTsKICAgICBpZiAobV9leHBpcmVkQ29uc29sZU1l
c3NhZ2VDb3VudCkKICAgICAgICAgbV9mcm9udGVuZC0+dXBkYXRlQ29uc29sZU1lc3NhZ2VFeHBp
cmVkQ291bnQobV9leHBpcmVkQ29uc29sZU1lc3NhZ2VDb3VudCk7CiAgICAgdW5zaWduZWQgbWVz
c2FnZUNvdW50ID0gbV9jb25zb2xlTWVzc2FnZXMuc2l6ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwCmluZGV4IDlmM2NjZTgu
LjNjNjI5ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JE
ZWJ1Z2dlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
RGVidWdnZXJBZ2VudC5jcHAKQEAgLTY2LDExICs2Niw2IEBAIEluc3BlY3RvckRlYnVnZ2VyQWdl
bnQ6On5JbnNwZWN0b3JEZWJ1Z2dlckFnZW50KCkKICAgICBtX3BhdXNlZFNjcmlwdFN0YXRlID0g
MDsKIH0KIAotYm9vbCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50Ojppc0RlYnVnZ2VyQWx3YXlzRW5h
YmxlZCgpCi17Ci0gICAgcmV0dXJuIFNjcmlwdERlYnVnU2VydmVyOjpzaGFyZWQoKS5pc0RlYnVn
Z2VyQWx3YXlzRW5hYmxlZCgpOwotfQotCiB2b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmFj
dGl2YXRlQnJlYWtwb2ludHMoKQogewogICAgIFNjcmlwdERlYnVnU2VydmVyOjpzaGFyZWQoKS5h
Y3RpdmF0ZUJyZWFrcG9pbnRzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckRlYnVnZ2VyQWdlbnQuaAppbmRleCAzNGFkMGRiLi5mMGRlOTczIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmgKQEAgLTYw
LDggKzYwLDYgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvckRlYnVn
Z2VyQWdlbnQ+IGNyZWF0ZShJbnNwZWN0b3JBZ2VudCosIEluc3BlY3RvckZyb250ZW5kKik7CiAg
ICAgdmlydHVhbCB+SW5zcGVjdG9yRGVidWdnZXJBZ2VudCgpOwogCi0gICAgc3RhdGljIGJvb2wg
aXNEZWJ1Z2dlckFsd2F5c0VuYWJsZWQoKTsKLQogICAgIHZvaWQgc2V0QWxsSmF2YVNjcmlwdEJy
ZWFrcG9pbnRzKFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0Pik7CiAgICAgdm9pZCBpbnNwZWN0
ZWRVUkxDaGFuZ2VkKGNvbnN0IFN0cmluZyYgdXJsKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAppbmRleCBjNDQ5YmE0
Li5kYmI0NzJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmNwcApAQCAtMzc2LDcgKzM3Niw2IEBAIHZvaWQgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjppZGVudGlmaWVyRm9ySW5pdGlhbFJlcXVlc3RJbXBsKEluc3BlY3Rv
ckFnZW50KiBpCiB7CiAgICAgaWYgKCFpYy0+ZW5hYmxlZCgpKQogICAgICAgICByZXR1cm47Ci0g
ICAgaWMtPmVuc3VyZVNldHRpbmdzTG9hZGVkKCk7CiAKICAgICBpZiAoSW5zcGVjdG9yUmVzb3Vy
Y2VBZ2VudCogcmVzb3VyY2VBZ2VudCA9IHJldHJpZXZlUmVzb3VyY2VBZ2VudChpYykpCiAgICAg
ICAgIHJlc291cmNlQWdlbnQtPmlkZW50aWZpZXJGb3JJbml0aWFsUmVxdWVzdChpZGVudGlmaWVy
LCByZXF1ZXN0LnVybCgpLCBsb2FkZXIpOwpAQCAtNDAxLDcgKzQwMCw2IEBAIHZvaWQgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRMb2FkUmVzb3VyY2VGcm9tTWVtb3J5Q2FjaGVJbXBsKElu
c3BlY3RvckFnZW50CiB7CiAgICAgaWYgKCFpYy0+ZW5hYmxlZCgpKQogICAgICAgICByZXR1cm47
Ci0gICAgaWMtPmVuc3VyZVNldHRpbmdzTG9hZGVkKCk7CiAgICAgaWYgKEluc3BlY3RvclJlc291
cmNlQWdlbnQqIHJlc291cmNlQWdlbnQgPSByZXRyaWV2ZVJlc291cmNlQWdlbnQoaWMpKQogICAg
ICAgICByZXNvdXJjZUFnZW50LT5kaWRMb2FkUmVzb3VyY2VGcm9tTWVtb3J5Q2FjaGUobG9hZGVy
LCBjYWNoZWRSZXNvdXJjZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAKaW5kZXggNDY5MzA1MC4uNDdkYzU4NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmNw
cApAQCAtNjUsNyArNjUsNyBAQCBQYXNzT3duUHRyPEluc3BlY3RvclByb2ZpbGVyQWdlbnQ+IElu
c3BlY3RvclByb2ZpbGVyQWdlbnQ6OmNyZWF0ZShJbnNwZWN0b3JBZ2VudAogSW5zcGVjdG9yUHJv
ZmlsZXJBZ2VudDo6SW5zcGVjdG9yUHJvZmlsZXJBZ2VudChJbnNwZWN0b3JBZ2VudCogaW5zcGVj
dG9yQWdlbnQpCiAgICAgOiBtX2luc3BlY3RvckFnZW50KGluc3BlY3RvckFnZW50KQogICAgICwg
bV9mcm9udGVuZCgwKQotICAgICwgbV9lbmFibGVkKFNjcmlwdFByb2ZpbGVyOjppc1Byb2ZpbGVy
QWx3YXlzRW5hYmxlZCgpKQorICAgICwgbV9lbmFibGVkKGZhbHNlKQogICAgICwgbV9yZWNvcmRp
bmdVc2VySW5pdGlhdGVkUHJvZmlsZShmYWxzZSkKICAgICAsIG1fY3VycmVudFVzZXJJbml0aWF0
ZWRQcm9maWxlTnVtYmVyKC0xKQogICAgICwgbV9uZXh0VXNlckluaXRpYXRlZFByb2ZpbGVOdW1i
ZXIoMSkKQEAgLTIyOSw3ICsyMjksNyBAQCB2b2lkIEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OnN0
YXJ0VXNlckluaXRpYXRlZFByb2ZpbGluZygpCiAgICAgaWYgKG1fcmVjb3JkaW5nVXNlckluaXRp
YXRlZFByb2ZpbGUpCiAgICAgICAgIHJldHVybjsKICAgICBpZiAoIWVuYWJsZWQoKSkgewotICAg
ICAgICBlbmFibGUoZmFsc2UpOworICAgICAgICBlbmFibGUodHJ1ZSk7CiAgICAgICAgIFNjcmlw
dERlYnVnU2VydmVyOjpzaGFyZWQoKS5yZWNvbXBpbGVBbGxKU0Z1bmN0aW9ucygpOwogICAgIH0K
ICAgICBtX3JlY29yZGluZ1VzZXJJbml0aWF0ZWRQcm9maWxlID0gdHJ1ZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTZXR0aW5ncy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU2V0dGluZ3MuY3BwCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwOGM1NjQ1Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JTZXR0aW5ncy5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw5MSArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICog
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
LSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
Ci0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLSNp
bmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJJbnNwZWN0b3JTZXR0aW5ncy5oIgotCi0jaWYg
RU5BQkxFKElOU1BFQ1RPUikKLQotI2luY2x1ZGUgIkluc3BlY3RvckNsaWVudC5oIgotCi1uYW1l
c3BhY2UgV2ViQ29yZSB7Ci0KLWNvbnN0IGNoYXIqIEluc3BlY3RvclNldHRpbmdzOjpNb25pdG9y
aW5nWEhSRW5hYmxlZCA9ICJ4aHJNb25pdG9yIjsKLWNvbnN0IGNoYXIqIEluc3BlY3RvclNldHRp
bmdzOjpQcm9maWxlckFsd2F5c0VuYWJsZWQgPSAicHJvZmlsZXJFbmFibGVkIjsKLWNvbnN0IGNo
YXIqIEluc3BlY3RvclNldHRpbmdzOjpEZWJ1Z2dlckFsd2F5c0VuYWJsZWQgPSAiZGVidWdnZXJF
bmFibGVkIjsKLQotSW5zcGVjdG9yU2V0dGluZ3M6Okluc3BlY3RvclNldHRpbmdzKEluc3BlY3Rv
ckNsaWVudCogY2xpZW50KQotICAgIDogbV9jbGllbnQoY2xpZW50KQotewotICAgIHJlZ2lzdGVy
Qm9vbGVhbihNb25pdG9yaW5nWEhSRW5hYmxlZCwgZmFsc2UpOwotICAgIHJlZ2lzdGVyQm9vbGVh
bihQcm9maWxlckFsd2F5c0VuYWJsZWQsIGZhbHNlKTsKLSAgICByZWdpc3RlckJvb2xlYW4oRGVi
dWdnZXJBbHdheXNFbmFibGVkLCBmYWxzZSk7Ci19Ci0KLWJvb2wgSW5zcGVjdG9yU2V0dGluZ3M6
OmdldEJvb2xlYW4oY29uc3QgU3RyaW5nJiBuYW1lKQotewotICAgIFN0cmluZyB2YWx1ZTsKLSAg
ICBtX2NsaWVudC0+cG9wdWxhdGVTZXR0aW5nKG5hbWUsICZ2YWx1ZSk7Ci0gICAgaWYgKHZhbHVl
LmlzRW1wdHkoKSkKLSAgICAgICAgdmFsdWUgPSBtX2RlZmF1bHRWYWx1ZXMuZ2V0KG5hbWUpOwot
ICAgIHJldHVybiB2YWx1ZSA9PSAidHJ1ZSI7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yU2V0dGluZ3M6
OnNldEJvb2xlYW4oY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIHZhbHVlKQotewotICAgIG1fY2xp
ZW50LT5zdG9yZVNldHRpbmcobmFtZSwgdmFsdWUgPyAidHJ1ZSIgOiAiZmFsc2UiKTsKLX0KLQot
bG9uZyBJbnNwZWN0b3JTZXR0aW5nczo6Z2V0TG9uZyhjb25zdCBTdHJpbmcmIG5hbWUpCi17Ci0g
ICAgU3RyaW5nIHZhbHVlOwotICAgIG1fY2xpZW50LT5wb3B1bGF0ZVNldHRpbmcobmFtZSwgJnZh
bHVlKTsKLSAgICBpZiAodmFsdWUuaXNFbXB0eSgpKQotICAgICAgICB2YWx1ZSA9IG1fZGVmYXVs
dFZhbHVlcy5nZXQobmFtZSk7Ci0gICAgcmV0dXJuIHZhbHVlLnRvSW50KCk7Ci19Ci0KLXZvaWQg
SW5zcGVjdG9yU2V0dGluZ3M6OnNldExvbmcoY29uc3QgU3RyaW5nJiBuYW1lLCBsb25nIHZhbHVl
KQotewotICAgIG1fY2xpZW50LT5zdG9yZVNldHRpbmcobmFtZSwgU3RyaW5nOjpudW1iZXIodmFs
dWUpKTsKLX0KLQotdm9pZCBJbnNwZWN0b3JTZXR0aW5nczo6cmVnaXN0ZXJCb29sZWFuKGNvbnN0
IFN0cmluZyYgbmFtZSwgYm9vbCBkZWZhdWx0VmFsdWUpCi17Ci0gICAgbV9kZWZhdWx0VmFsdWVz
LnNldChuYW1lLCBkZWZhdWx0VmFsdWUgPyAidHJ1ZSIgOiAiZmFsc2UiKTsKLX0KLQotdm9pZCBJ
bnNwZWN0b3JTZXR0aW5nczo6cmVnaXN0ZXJMb25nKGNvbnN0IFN0cmluZyYgbmFtZSwgbG9uZyBk
ZWZhdWx0VmFsdWUpCi17Ci0gICAgbV9kZWZhdWx0VmFsdWVzLnNldChuYW1lLCBTdHJpbmc6Om51
bWJlcihkZWZhdWx0VmFsdWUpKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5k
aWYgLy8gRU5BQkxFKElOU1BFQ1RPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JTZXR0aW5ncy5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvclNldHRpbmdzLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBkNDg1NzAuLjAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclNldHRpbmdzLmgK
KysrIC9kZXYvbnVsbApAQCAtMSw3MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEx
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAq
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBJbnNwZWN0b3JTZXR0aW5nc19o
Ci0jZGVmaW5lIEluc3BlY3RvclNldHRpbmdzX2gKLQotI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0K
LSNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgotCi0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4K
LSNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LQotY2xhc3MgSW5zcGVjdG9yQ2xpZW50OwotCi1jbGFzcyBJbnNwZWN0b3JTZXR0aW5ncyB7Ci1w
dWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIqIE1vbml0b3JpbmdYSFJFbmFibGVkOwotICAg
IHN0YXRpYyBjb25zdCBjaGFyKiBQcm9maWxlckFsd2F5c0VuYWJsZWQ7Ci0gICAgc3RhdGljIGNv
bnN0IGNoYXIqIERlYnVnZ2VyQWx3YXlzRW5hYmxlZDsKLQotICAgIEluc3BlY3RvclNldHRpbmdz
KEluc3BlY3RvckNsaWVudCogY2xpZW50KTsKLQotICAgIGJvb2wgZ2V0Qm9vbGVhbihjb25zdCBT
dHJpbmcmIG5hbWUpOwotICAgIHZvaWQgc2V0Qm9vbGVhbihjb25zdCBTdHJpbmcmIG5hbWUsIGJv
b2wgdmFsdWUpOwotCi0gICAgbG9uZyBnZXRMb25nKGNvbnN0IFN0cmluZyYgbmFtZSk7Ci0gICAg
dm9pZCBzZXRMb25nKGNvbnN0IFN0cmluZyYgbmFtZSwgbG9uZyB2YWx1ZSk7Ci0KLXByaXZhdGU6
Ci0gICAgdm9pZCByZWdpc3RlckJvb2xlYW4oY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGRlZmF1
bHRWYWx1ZSk7Ci0gICAgdm9pZCByZWdpc3RlckxvbmcoY29uc3QgU3RyaW5nJiBuYW1lLCBsb25n
IGRlZmF1bHRWYWx1ZSk7Ci0KLSAgICB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IERp
Y3Rpb25hcnk7Ci0gICAgRGljdGlvbmFyeSBtX2RlZmF1bHRWYWx1ZXM7Ci0gICAgSW5zcGVjdG9y
Q2xpZW50KiBtX2NsaWVudDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlm
IC8vIEVOQUJMRShJTlNQRUNUT1IpCi0jZW5kaWYgLy8gIWRlZmluZWQoSW5zcGVjdG9yU2V0dGlu
Z3NfaCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdGF0
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3RhdGUuY3BwCmluZGV4
IGMxYjY4MjEuLjc3OWQ0NjRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yU3RhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JTdGF0ZS5jcHAKQEAgLTQyLDYgKzQyLDggQEAgSW5zcGVjdG9yU3RhdGU6Okluc3BlY3RvclN0
YXRlKEluc3BlY3RvckNsaWVudCogY2xpZW50KQogICAgIHJlZ2lzdGVyQm9vbGVhbih1c2VySW5p
dGlhdGVkUHJvZmlsaW5nLCBmYWxzZSk7CiAgICAgcmVnaXN0ZXJCb29sZWFuKHRpbWVsaW5lUHJv
ZmlsZXJFbmFibGVkLCBmYWxzZSk7CiAgICAgcmVnaXN0ZXJCb29sZWFuKHNlYXJjaGluZ0Zvck5v
ZGUsIGZhbHNlKTsKKyAgICByZWdpc3RlckJvb2xlYW4oZGVidWdnZXJFbmFibGVkLCBmYWxzZSk7
CisgICAgcmVnaXN0ZXJCb29sZWFuKHByb2ZpbGVyRW5hYmxlZCwgZmFsc2UpOwogICAgIHJlZ2lz
dGVyT2JqZWN0KGphdmFTY3JpcHRCcmVha3BvaW50cyk7CiAgICAgcmVnaXN0ZXJPYmplY3QoYnJv
d3NlckJyZWFrcG9pbnRzKTsKICAgICByZWdpc3RlckJvb2xlYW4oY29uc29sZU1lc3NhZ2VzRW5h
YmxlZCwgZmFsc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvclN0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3RhdGUuaApp
bmRleCAyMDE3MzMyLi45MGEyYzE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yU3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yU3RhdGUuaApAQCAtNDgsNyArNDgsOSBAQCBwdWJsaWM6CiAgICAgICAgIHRpbWVsaW5lUHJv
ZmlsZXJFbmFibGVkLAogICAgICAgICBzZWFyY2hpbmdGb3JOb2RlLAogICAgICAgICBjb25zb2xl
TWVzc2FnZXNFbmFibGVkLAorICAgICAgICBwcm9maWxlckVuYWJsZWQsCiAgICAgICAgIHVzZXJJ
bml0aWF0ZWRQcm9maWxpbmcsCisgICAgICAgIGRlYnVnZ2VyRW5hYmxlZCwKICAgICAgICAgamF2
YVNjcmlwdEJyZWFrcG9pbnRzLAogICAgICAgICBicm93c2VyQnJlYWtwb2ludHMsCiAgICAgICAg
IHJlc291cmNlQWdlbnRFbmFibGVkLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvQ29uc29sZVZpZXcuanMKaW5kZXggN2ZlYjdhYi4uM2FhNWVmMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qcworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzCkBAIC0x
NTAsMTEgKzE1MCw2IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUgPSB7CiAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgY29uc29sZS5jbGVhck1lc3NhZ2VzKCk7CiAg
ICAgICAgICAgICB9LAotCi0gICAgICAgICAgICBtb25pdG9yaW5nWEhSU3RhdGVDaGFuZ2VkOiBm
dW5jdGlvbihlbmFibGVkKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGNvbnNvbGUu
X21vbml0b3JpbmdYSFJFbmFibGVkID0gZW5hYmxlZDsKLSAgICAgICAgICAgIH0KICAgICAgICAg
fQogICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyRG9tYWluRGlzcGF0Y2hlcigiQ29u
c29sZSIsIGRpc3BhdGNoZXIpOwogICAgIH0sCkBAIC00MTgsOSArNDEzLDEyIEBAIFdlYkluc3Bl
Y3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KIAotICAgICAgICB2YXIgaXRlbUFjdGlvbiA9IEluc3BlY3RvckJhY2tlbmQuc2V0TW9u
aXRvcmluZ1hIUkVuYWJsZWQuYmluZChJbnNwZWN0b3JCYWNrZW5kLCAhdGhpcy5fbW9uaXRvcmlu
Z1hIUkVuYWJsZWQpOworICAgICAgICB2YXIgaXRlbUFjdGlvbiA9IGZ1bmN0aW9uICgpIHsKKyAg
ICAgICAgICAgIFdlYkluc3BlY3Rvci5zZXR0aW5ncy5tb25pdG9yaW5nWEhSRW5hYmxlZCA9ICFX
ZWJJbnNwZWN0b3Iuc2V0dGluZ3MubW9uaXRvcmluZ1hIUkVuYWJsZWQ7CisgICAgICAgICAgICBJ
bnNwZWN0b3JCYWNrZW5kLnNldE1vbml0b3JpbmdYSFJFbmFibGVkKFdlYkluc3BlY3Rvci5zZXR0
aW5ncy5tb25pdG9yaW5nWEhSRW5hYmxlZCk7CisgICAgICAgIH0uYmluZCh0aGlzKTsKICAgICAg
ICAgdmFyIGNvbnRleHRNZW51ID0gbmV3IFdlYkluc3BlY3Rvci5Db250ZXh0TWVudSgpOwotICAg
ICAgICBjb250ZXh0TWVudS5hcHBlbmRDaGVja2JveEl0ZW0oV2ViSW5zcGVjdG9yLlVJU3RyaW5n
KCJYTUxIdHRwUmVxdWVzdCBsb2dnaW5nIiksIGl0ZW1BY3Rpb24sIHRoaXMuX21vbml0b3JpbmdY
SFJFbmFibGVkKTsKKyAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kQ2hlY2tib3hJdGVtKFdlYklu
c3BlY3Rvci5VSVN0cmluZygiWE1MSHR0cFJlcXVlc3QgbG9nZ2luZyIpLCBpdGVtQWN0aW9uLCBX
ZWJJbnNwZWN0b3Iuc2V0dGluZ3MubW9uaXRvcmluZ1hIUkVuYWJsZWQpCiAgICAgICAgIGNvbnRl
eHRNZW51LmFwcGVuZEl0ZW0oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDbGVhciBDb25zb2xlIiks
IHRoaXMucmVxdWVzdENsZWFyTWVzc2FnZXMuYmluZCh0aGlzKSk7CiAgICAgICAgIGNvbnRleHRN
ZW51LnNob3coZXZlbnQpOwogICAgIH0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanMKaW5kZXggYmJlMGM1ZS4uMTc2ZGRiMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVs
LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQYW5l
bC5qcwpAQCAtNTgwLDEwICs1ODAsMTMgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJv
dG90eXBlID0gewogCiAgICAgX3RvZ2dsZVByb2ZpbGluZzogZnVuY3Rpb24ob3B0aW9uYWxBbHdh
eXMpCiAgICAgewotICAgICAgICBpZiAodGhpcy5fcHJvZmlsZXJFbmFibGVkKQorICAgICAgICBp
ZiAodGhpcy5fcHJvZmlsZXJFbmFibGVkKSB7CisgICAgICAgICAgICBXZWJJbnNwZWN0b3Iuc2V0
dGluZ3MucHJvZmlsZXJFbmFibGVkID0gZmFsc2U7CiAgICAgICAgICAgICBJbnNwZWN0b3JCYWNr
ZW5kLmRpc2FibGVQcm9maWxlcih0cnVlKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgSW5z
cGVjdG9yQmFja2VuZC5lbmFibGVQcm9maWxlcighIW9wdGlvbmFsQWx3YXlzKTsKKyAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5zZXR0aW5ncy5wcm9maWxlckVuYWJs
ZWQgPSAhIW9wdGlvbmFsQWx3YXlzOworICAgICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5lbmFi
bGVQcm9maWxlcigpOworICAgICAgICB9CiAgICAgfSwKIAogICAgIF9wb3B1bGF0ZVByb2ZpbGVz
OiBmdW5jdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1NjcmlwdHNQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
U2NyaXB0c1BhbmVsLmpzCmluZGV4IDg4YmU2NjMuLmRkYzkwNmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCkBAIC04MDEsMTAg
KzgwMSwxMyBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgdGhpcy5fd2FpdGluZ1RvUGF1c2UgPSBmYWxzZTsKICAgICAgICAgdGhpcy5fc3RlcHBpbmcg
PSBmYWxzZTsKIAotICAgICAgICBpZiAodGhpcy5fZGVidWdnZXJFbmFibGVkKQotICAgICAgICAg
ICAgSW5zcGVjdG9yQmFja2VuZC5kaXNhYmxlRGVidWdnZXIodHJ1ZSk7Ci0gICAgICAgIGVsc2UK
LSAgICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQuZW5hYmxlRGVidWdnZXIoISFvcHRpb25hbEFs
d2F5cyk7CisgICAgICAgIGlmICh0aGlzLl9kZWJ1Z2dlckVuYWJsZWQpIHsKKyAgICAgICAgICAg
IFdlYkluc3BlY3Rvci5zZXR0aW5ncy5kZWJ1Z2dlckVuYWJsZWQgPSBmYWxzZTsKKyAgICAgICAg
ICAgIEluc3BlY3RvckJhY2tlbmQuZGlzYWJsZURlYnVnZ2VyKCk7CisgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MuZGVidWdnZXJFbmFibGVkID0gISFv
cHRpb25hbEFsd2F5czsKKyAgICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQuZW5hYmxlRGVidWdn
ZXIoKTsKKyAgICAgICAgfQogICAgIH0sCiAKICAgICBfdG9nZ2xlUGF1c2VPbkV4Y2VwdGlvbnM6
IGZ1bmN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvU2V0dGluZ3MuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRp
bmdzLmpzCmluZGV4IGVmNmIyNjMuLjFjZWE1ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3MuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9TZXR0aW5ncy5qcwpAQCAtNTgsMTYgKzU4LDE5IEBAIFdlYkluc3Bl
Y3Rvci5TZXR0aW5ncyA9IGZ1bmN0aW9uKCkKIHsKICAgICB0aGlzLmluc3RhbGxBcHBsaWNhdGlv
blNldHRpbmcoImNvbG9yRm9ybWF0IiwgImhleCIpOwogICAgIHRoaXMuaW5zdGFsbEFwcGxpY2F0
aW9uU2V0dGluZygiY29uc29sZUhpc3RvcnkiLCBbXSk7CisgICAgdGhpcy5pbnN0YWxsQXBwbGlj
YXRpb25TZXR0aW5nKCJkZWJ1Z2dlckVuYWJsZWQiLCBmYWxzZSk7CisgICAgdGhpcy5pbnN0YWxs
QXBwbGljYXRpb25TZXR0aW5nKCJwcm9maWxlckVuYWJsZWQiLCBmYWxzZSk7CiAgICAgdGhpcy5p
bnN0YWxsQXBwbGljYXRpb25TZXR0aW5nKCJldmVudExpc3RlbmVyc0ZpbHRlciIsICJhbGwiKTsK
KyAgICB0aGlzLmluc3RhbGxBcHBsaWNhdGlvblNldHRpbmcoImxhc3RBY3RpdmVQYW5lbCIsICJl
bGVtZW50cyIpOwogICAgIHRoaXMuaW5zdGFsbEFwcGxpY2F0aW9uU2V0dGluZygibGFzdFZpZXdl
ZFNjcmlwdEZpbGUiLCAiYXBwbGljYXRpb24iKTsKKyAgICB0aGlzLmluc3RhbGxBcHBsaWNhdGlv
blNldHRpbmcoIm1vbml0b3JpbmdYSFJFbmFibGVkIiwgZmFsc2UpOworICAgIHRoaXMuaW5zdGFs
bEFwcGxpY2F0aW9uU2V0dGluZygicGF1c2VPbkV4Y2VwdGlvblN0YXRlIiwgV2ViSW5zcGVjdG9y
LlNjcmlwdHNQYW5lbC5QYXVzZU9uRXhjZXB0aW9uc1N0YXRlLkRvbnRQYXVzZU9uRXhjZXB0aW9u
cyk7CiAgICAgdGhpcy5pbnN0YWxsQXBwbGljYXRpb25TZXR0aW5nKCJyZXNvdXJjZXNMYXJnZVJv
d3MiLCB0cnVlKTsKICAgICB0aGlzLmluc3RhbGxBcHBsaWNhdGlvblNldHRpbmcoInJlc291cmNl
c1NvcnRPcHRpb25zIiwge3RpbWVPcHRpb246ICJyZXNwb25zZVRpbWUiLCBzaXplT3B0aW9uOiAi
dHJhbnNmZXJTaXplIn0pOwogICAgIHRoaXMuaW5zdGFsbEFwcGxpY2F0aW9uU2V0dGluZygicmVz
b3VyY2VWaWV3VGFiIiwgImNvbnRlbnQiKTsKICAgICB0aGlzLmluc3RhbGxBcHBsaWNhdGlvblNl
dHRpbmcoInNob3dJbmhlcml0ZWRDb21wdXRlZFN0eWxlUHJvcGVydGllcyIsIGZhbHNlKTsKICAg
ICB0aGlzLmluc3RhbGxBcHBsaWNhdGlvblNldHRpbmcoInNob3dVc2VyQWdlbnRTdHlsZXMiLCB0
cnVlKTsKICAgICB0aGlzLmluc3RhbGxBcHBsaWNhdGlvblNldHRpbmcoIndhdGNoRXhwcmVzc2lv
bnMiLCBbXSk7Ci0gICAgdGhpcy5pbnN0YWxsQXBwbGljYXRpb25TZXR0aW5nKCJsYXN0QWN0aXZl
UGFuZWwiLCAiZWxlbWVudHMiKTsKLSAgICB0aGlzLmluc3RhbGxBcHBsaWNhdGlvblNldHRpbmco
InBhdXNlT25FeGNlcHRpb25TdGF0ZSIsIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwuUGF1c2VP
bkV4Y2VwdGlvbnNTdGF0ZS5Eb250UGF1c2VPbkV4Y2VwdGlvbnMpOwogCiAgICAgdGhpcy5pbnN0
YWxsUHJvamVjdFNldHRpbmcoImJyZWFrcG9pbnRzIiwge30pOwogICAgIHRoaXMuaW5zdGFsbFBy
b2plY3RTZXR0aW5nKCJuYXRpdmVCcmVha3BvaW50cyIsIFtdKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKaW5kZXggMGZhNDIwOS4uYzgyMTU2
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0
b3IuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3Iu
anMKQEAgLTYwMSw2ICs2MDEsMTMgQEAgV2ViSW5zcGVjdG9yLmRvTG9hZGVkRG9uZSA9IGZ1bmN0
aW9uKCkKICAgICB9CiAgICAgSW5zcGVjdG9yQmFja2VuZC5wb3B1bGF0ZVNjcmlwdE9iamVjdHMo
b25Qb3B1bGF0ZVNjcmlwdE9iamVjdHMpOwogCisgICAgaWYgKFByZWZlcmVuY2VzLmRlYnVnZ2Vy
QWx3YXlzRW5hYmxlZCB8fCBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MuZGVidWdnZXJFbmFibGVkKQor
ICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmVuYWJsZURlYnVnZ2VyKCk7CisgICAgaWYgKFByZWZl
cmVuY2VzLnByb2ZpbGVyQWx3YXlzRW5hYmxlZCB8fCBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MucHJv
ZmlsZXJFbmFibGVkKQorICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmVuYWJsZVByb2ZpbGVyKCk7
CisgICAgaWYgKFdlYkluc3BlY3Rvci5zZXR0aW5ncy5tb25pdG9yaW5nWEhSRW5hYmxlZCkKKyAg
ICAgICAgSW5zcGVjdG9yQmFja2VuZC5zZXRNb25pdG9yaW5nWEhSRW5hYmxlZCh0cnVlKTsKKwog
ICAgIEluc3BlY3RvckJhY2tlbmQuc2V0Q29uc29sZU1lc3NhZ2VzRW5hYmxlZCh0cnVlKTsKIAog
ICAgIGZ1bmN0aW9uIHByb3BlcnR5TmFtZXNDYWxsYmFjayhuYW1lcykK
</data>

          </attachment>
      

    </bug>

</bugzilla>