<?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>129903</bug_id>
          
          <creation_ts>2014-03-07 13:04:30 -0800</creation_ts>
          <short_desc>Add remote control command support to MediaSession.</short_desc>
          <delta_ts>2014-03-13 15:04:41 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>calvaris</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>988289</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-03-07 13:04:30 -0800</bug_when>
    <thetext>Add remote control command support to MediaSession.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>988305</commentid>
    <comment_count>1</comment_count>
      <attachid>226157</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-03-07 13:26:25 -0800</bug_when>
    <thetext>Created attachment 226157
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>988379</commentid>
    <comment_count>2</comment_count>
      <attachid>226157</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2014-03-07 15:08:48 -0800</bug_when>
    <thetext>Comment on attachment 226157
Patch

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

&gt; Source/WebCore/html/HTMLMediaElement.cpp:5858
&gt; +void HTMLMediaElement::didReceiveRemoteControlCommand(MediaSession::RemoteControlCommandType command)
&gt; +{
&gt; +    UNUSED_PARAM(command);
&gt; +}

A FIXME would be helpful here.

&gt; Source/WebCore/platform/audio/MediaSessionManager.cpp:43
&gt; +    : m_mostRecentlyActive(nullptr)

How about m_currentSession?  I think &quot;current session&quot; makes more sense than &quot;most recently active session&quot;

&gt; Source/WebCore/platform/audio/MediaSessionManager.cpp:106
&gt; +    if (!m_clients.isEmpty() &amp;&amp; (session.mediaType() == MediaSession::Video || session.mediaType() == MediaSession::Audio)) {

Nit: this could be an early return.

&gt; Source/WebCore/platform/audio/MediaSessionManager.cpp:124
&gt; +    if (!m_clients.isEmpty() &amp;&amp; (session.mediaType() == MediaSession::Video || session.mediaType() == MediaSession::Audio)) {

Ditto.

&gt; Source/WebCore/platform/audio/MediaSessionManager.cpp:166
&gt; +    if (!m_clients.isEmpty() &amp;&amp; (session.mediaType() == MediaSession::Video || session.mediaType() == MediaSession::Audio)) {

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>990085</commentid>
    <comment_count>3</comment_count>
      <attachid>226602</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-03-13 11:25:31 -0700</bug_when>
    <thetext>Created attachment 226602
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>990089</commentid>
    <comment_count>4</comment_count>
      <attachid>226602</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2014-03-13 11:37:50 -0700</bug_when>
    <thetext>Comment on attachment 226602
Patch

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

&gt; Source/WebCore/platform/audio/MediaSessionManager.cpp:172
&gt; +    for (auto&amp; client : m_clients)
&gt; +        client-&gt;didBeginPlayback();

Shouldn&apos;t this be above the &quot;if (!restrictions &amp; ConcurrentPlaybackNotPermitted)&quot; above?

&gt; Source/WebCore/platform/audio/MediaSessionManager.cpp:211
&gt; +    if (!m_currentSession)
&gt; +        return;

if (!m_currentSession || !m_currentSession-&gt;canReceiveRemoteControlCommands())</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>990154</commentid>
    <comment_count>5</comment_count>
      <attachid>226620</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-03-13 14:05:15 -0700</bug_when>
    <thetext>Created attachment 226620
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>990155</commentid>
    <comment_count>6</comment_count>
      <attachid>226620</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2014-03-13 14:16:28 -0700</bug_when>
    <thetext>Comment on attachment 226620
Patch

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

&gt; Source/WebCore/platform/audio/MediaSessionManager.cpp:171
&gt; +    m_activeSession = &amp;session;

This is unnecessary, we already called setCurrentSession() above.

&gt; Source/WebCore/platform/audio/MediaSessionManager.cpp:177
&gt; +    for (auto&amp; client : m_clients)
&gt; +        client-&gt;didBeginPlayback();

Move up?

&gt; Source/WebCore/platform/audio/MediaSessionManager.cpp:217
&gt; +    if (!m_activeSession)
&gt; +        return;
&gt; +    m_activeSession-&gt;didReceiveRemoteControlCommand(command);

canReceiveRemoteControlCommands()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>990158</commentid>
    <comment_count>7</comment_count>
      <attachid>226622</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-03-13 14:20:19 -0700</bug_when>
    <thetext>Created attachment 226622
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>990164</commentid>
    <comment_count>8</comment_count>
      <attachid>226624</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-03-13 14:31:34 -0700</bug_when>
    <thetext>Created attachment 226624
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>990175</commentid>
    <comment_count>9</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-03-13 15:04:41 -0700</bug_when>
    <thetext>Committed r165570: &lt;http://trac.webkit.org/changeset/165570&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>226157</attachid>
            <date>2014-03-07 13:26:25 -0800</date>
            <delta_ts>2014-03-13 11:25:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-129903-20140307132638.patch</filename>
            <type>text/plain</type>
            <size>32081</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY1MTExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGUxNGNmMTBmMjBhMDU2
Yjc1ODcwZmY2YTRjZTAxN2ZmMzlmMjkzYi4uZDBlYjAzYmY0NzJhZjQ4N2E3MTgyZjM1NDE0OTIw
MDcwZTc3MmJiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDE0LTAzLTA3ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCByZW1vdGUgY29udHJv
bCBjb21tYW5kIHN1cHBvcnQgdG8gTWVkaWFTZXNzaW9uLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5OTAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRoZSBjYXBhYmlsaXR5IHRvIHJlY2VpdmUg
cmVtb3RlIGNvbnRyb2wgY29tbWFuZHMgKGN1cnJlbnRseSBpT1Mgb25seSkgYW5kIHRvCisgICAg
ICAgIHBhc3MgdGhvc2UgY29tbWFuZHMgdGhyb3VnaCB0aGUgTWVkaWFTZXNzaW9uTWFuYWdlci4K
KworICAgICAgICBBZGQgYSBuZXcgcGxhdGZvcm0gY2xhc3Mgd2hpY2ggY2FuIGxpc3RlbiBmb3Ig
cmVtb3RlIGNvbnRyb2wgY29tbWFuZHM6CisgICAgICAgICogcGxhdGZvcm0vUmVtb3RlQ29tbWFu
ZExpc3RlbmVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVDb21tYW5kTGlz
dGVuZXI6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vUmVtb3RlQ29tbWFuZExpc3RlbmVy
Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlQ29tbWFuZExpc3RlbmVyQ2xpZW50
Ojp+UmVtb3RlQ29tbWFuZExpc3RlbmVyQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbW90
ZUNvbW1hbmRMaXN0ZW5lcjo6flJlbW90ZUNvbW1hbmRMaXN0ZW5lcik6CisgICAgICAgIChXZWJD
b3JlOjpSZW1vdGVDb21tYW5kTGlzdGVuZXI6OlJlbW90ZUNvbW1hbmRMaXN0ZW5lcik6CisgICAg
ICAgICogcGxhdGZvcm0vaW9zL1JlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5oOiBBZGRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9pb3MvUmVtb3RlQ29tbWFuZExpc3RlbmVySU9TLm1tOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlJlbW90ZUNvbW1hbmRMaXN0ZW5lcjo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUzo6UmVtb3RlQ29tbWFuZExpc3Rl
bmVySU9TKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUzo6flJl
bW90ZUNvbW1hbmRMaXN0ZW5lcklPUyk6CisKKyAgICAgICAgSGFuZGxlIHJlbW90ZSBjb250cm9s
IGNvbW1hbmQgZXZlbnRzIGluIEhUTUxNZWRpYUVsZW1lbnQgYW5kIEF1ZGlvRGVzdGluYXRpb25N
YWM6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKToKKyAgICAgICAgKiBodG1sL0hU
TUxNZWRpYUVsZW1lbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9EZXN0
aW5hdGlvbk1hYy5oOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbk1hYzo6Y2Fu
UmVjZWl2ZVJlbW90ZUNvbnRyb2xDb21tYW5kcyk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rl
c3RpbmF0aW9uTWFjOjpkaWRSZWNlaXZlUmVtb3RlQ29udHJvbENvbW1hbmQpOgorCisgICAgICAg
IFBpcGUgY29tbWFuZCBldmVudHMgdGhyb3VnaCBNZWRpYVNlc3Npb25NYW5hZ2VyOgorICAgICAg
ICAqIHBsYXRmb3JtL2F1ZGlvL01lZGlhU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVNlc3Npb246OmNhblJlY2VpdmVSZW1vdGVDb250cm9sQ29tbWFuZHMpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFTZXNzaW9uOjpkaWRSZWNlaXZSZW1vdGVDb250cm9sQ29tbWFuZCk6Cisg
ICAgICAgICogcGxhdGZvcm0vYXVkaW8vTWVkaWFTZXNzaW9uLmg6CisgICAgICAgICogcGxhdGZv
cm0vYXVkaW8vTWVkaWFTZXNzaW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVNlc3Npb25NYW5hZ2VyOjphZGRTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vz
c2lvbk1hbmFnZXI6OnJlbW92ZVNlc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNz
aW9uTWFuYWdlcjo6c2Vzc2lvbldpbGxCZWdpblBsYXliYWNrKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU2Vzc2lvbk1hbmFnZXI6OmRpZFJlY2VpdmVSZW1vdGVDb250cm9sQ29tbWFuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyOjphZGRDbGllbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlcjo6cmVtb3ZlQ2xpZW50KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9hdWRpby9NZWRpYVNlc3Npb25NYW5hZ2VyLmg6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50Ojp+TWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50OjpNZWRpYVNlc3Np
b25NYW5hZ2VyQ2xpZW50KToKKworICAgICAgICBBZGQgbmV3IGZpbGVzIGFuZCBleHBvcnQgbmV3
IHN5bWJvbHM6CisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDE0LTAzLTA2ICBKZXIgTm9ibGUgIDxqZXIu
bm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtFTUVdIEV4dGVuZCB0aGUgbGlmZXRpbWUgb2Yg
TWVkaWFLZXlTZXNzaW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAu
aW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCAyZjkxNzE0NjI5NGM4NmQ5
ZGQ2NGFiZjI4NjQyOTc4OTBlYzEwNWM2Li41YjgzZTJmYzcxZTU1NWJlM2M1NmI2Y2Y2OGY4OWQx
ZGMzYjUyYTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtNzc1LDEyICs3NzUsMTUgQEAgX19a
TjdXZWJDb3JlMTlMYXllckZsdXNoU2NoZWR1bGVyQzFFUE5TXzI1TGF5ZXJGbHVzaFNjaGVkdWxl
ckNsaWVudEUKIF9fWk43V2ViQ29yZTE5TGF5ZXJGbHVzaFNjaGVkdWxlckMyRVBOU18yNUxheWVy
Rmx1c2hTY2hlZHVsZXJDbGllbnRFCiBfX1pON1dlYkNvcmUxOUxheWVyRmx1c2hTY2hlZHVsZXJE
MUV2CiBfX1pON1dlYkNvcmUxOUxheWVyRmx1c2hTY2hlZHVsZXJEMkV2CitfX1pON1dlYkNvcmUx
OU1lZGlhU2Vzc2lvbk1hbmFnZXI5YWRkQ2xpZW50RVBOU18yNU1lZGlhU2Vzc2lvbk1hbmFnZXJD
bGllbnRFCitfX1pON1dlYkNvcmUxOU1lZGlhU2Vzc2lvbk1hbmFnZXIxMnJlbW92ZUNsaWVudEVQ
TlNfMjVNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50RQogX19aTjdXZWJDb3JlMTlNZWRpYVNlc3Np
b25NYW5hZ2VyMTJyZXN0cmljdGlvbnNFTlNfMTJNZWRpYVNlc3Npb245TWVkaWFUeXBlRQogX19a
TjdXZWJDb3JlMTlNZWRpYVNlc3Npb25NYW5hZ2VyMTNzaGFyZWRNYW5hZ2VyRXYKIF9fWk43V2Vi
Q29yZTE5TWVkaWFTZXNzaW9uTWFuYWdlcjE0YWRkUmVzdHJpY3Rpb25FTlNfMTJNZWRpYVNlc3Np
b245TWVkaWFUeXBlRWoKIF9fWk43V2ViQ29yZTE5TWVkaWFTZXNzaW9uTWFuYWdlcjE1ZW5kSW50
ZXJydXB0aW9uRU5TXzEyTWVkaWFTZXNzaW9uMjBFbmRJbnRlcnJ1cHRpb25GbGFnc0UKIF9fWk43
V2ViQ29yZTE5TWVkaWFTZXNzaW9uTWFuYWdlcjE3YmVnaW5JbnRlcnJ1cHRpb25FdgogX19aTjdX
ZWJDb3JlMTlNZWRpYVNlc3Npb25NYW5hZ2VyMTdyZW1vdmVSZXN0cmljdGlvbkVOU18xMk1lZGlh
U2Vzc2lvbjlNZWRpYVR5cGVFagorX19aTjdXZWJDb3JlMTlNZWRpYVNlc3Npb25NYW5hZ2VyMzBk
aWRSZWNlaXZlUmVtb3RlQ29udHJvbENvbW1hbmRFTlNfMTJNZWRpYVNlc3Npb24yNFJlbW90ZUNv
bnRyb2xDb21tYW5kVHlwZUUKIF9fWk43V2ViQ29yZTE5UGxhdGZvcm1DQUFuaW1hdGlvbjEwc2V0
VG9WYWx1ZUVSS05TXzIwVHJhbnNmb3JtYXRpb25NYXRyaXhFCiBfX1pON1dlYkNvcmUxOVBsYXRm
b3JtQ0FBbmltYXRpb242Y3JlYXRlRVAxOUNBUHJvcGVydHlBbmltYXRpb24KIF9fWk43V2ViQ29y
ZTE5UGxhdGZvcm1DQUFuaW1hdGlvbkQxRXYKQEAgLTg0Niw2ICs4NDksNyBAQCBfX1pON1dlYkNv
cmUyMU5ldHdvcmtTdG9yYWdlU2Vzc2lvbjIxZGVmYXVsdFN0b3JhZ2VTZXNzaW9uRXYKIF9fWk43
V2ViQ29yZTIxTmV0d29ya1N0b3JhZ2VTZXNzaW9uMjVzd2l0Y2hUb05ld1Rlc3RpbmdTZXNzaW9u
RXYKIF9fWk43V2ViQ29yZTIxTmV0d29ya1N0b3JhZ2VTZXNzaW9uMjhjcmVhdGVQcml2YXRlQnJv
d3NpbmdTZXNzaW9uRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMjFQbGF0Zm9ybUtleWJv
YXJkRXZlbnQyNGRpc2FtYmlndWF0ZUtleURvd25FdmVudEVOU18xM1BsYXRmb3JtRXZlbnQ0VHlw
ZUViCitfX1pON1dlYkNvcmUyMVJlbW90ZUNvbW1hbmRMaXN0ZW5lcjZjcmVhdGVFUk5TXzI3UmVt
b3RlQ29tbWFuZExpc3RlbmVyQ2xpZW50RQogX19aTjdXZWJDb3JlMjFSZXNvdXJjZUxvYWRTY2hl
ZHVsZXIyMHNlcnZlUGVuZGluZ1JlcXVlc3RzRU5TXzIwUmVzb3VyY2VMb2FkUHJpb3JpdHlFCiBf
X1pON1dlYkNvcmUyMVJlc291cmNlTG9hZFNjaGVkdWxlcjIwc2VydmVQZW5kaW5nUmVxdWVzdHNF
UE5TMF8xNUhvc3RJbmZvcm1hdGlvbkVOU18yMFJlc291cmNlTG9hZFByaW9yaXR5RQogX19aTjdX
ZWJDb3JlMjFSZXNvdXJjZUxvYWRTY2hlZHVsZXIyMXJlc3VtZVBlbmRpbmdSZXF1ZXN0c0V2CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggZTg0YmM3NTdkZGQxYTIzMzM4OTczMDc1MDBjOTE1YjAxOWU2MDNjZS4uMDlhZmZlZWYyMjRk
ZDM3MGYyMWFiMTBkMDllYTAzOGYzMjQwNzhiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTYwMCw2ICs1NjAwLDkgQEAKIAkJ
Q0RGMkIwMTkxODIwNTQwNzAwRjJCNDI0IC8qIE1vY2tUcmFja3MuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERjJCMDBGMTgyMDU0MDYwMEYyQjQyNCAv
KiBNb2NrVHJhY2tzLmggKi87IH07CiAJCUNERjY1Q0M4MTQ1QjFFNzUwMEM0QzdBQSAvKiBNZWRp
YUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENEMjdGNkU0MTQ1NzY3ODcwMDc4MjA3RCAvKiBNZWRpYUNvbnRyb2xsZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDREY2NUNDQTE0NUI0
NDg4MDBDNEM3QUEgLyogTWVkaWFDb250cm9sbGVySW50ZXJmYWNlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREY2NUNDOTE0NUI0M0E3MDBDNEM3QUEg
LyogTWVkaWFDb250cm9sbGVySW50ZXJmYWNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0RGQzM2MDUxOENBNjFDMjAwMjZFNTZGIC8qIFJlbW90
ZUNvbW1hbmRMaXN0ZW5lci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDREZDMzYwMzE4Q0E2MUMyMDAyNkU1NkYgLyogUmVtb3RlQ29tbWFuZExpc3Rl
bmVyLmNwcCAqLzsgfTsKKwkJQ0RGQzM2MDYxOENBNjFDMjAwMjZFNTZGIC8qIFJlbW90ZUNvbW1h
bmRMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0RGQzM2MDQxOENBNjFDMjAwMjZFNTZGIC8qIFJlbW90ZUNvbW1hbmRMaXN0ZW5lci5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUNERkMzNjA3
MThDQTY5NkMwMDI2RTU2RiAvKiBSZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREZDMzYwMjE4Q0E2MTYzMDAy
NkU1NkYgLyogUmVtb3RlQ29tbWFuZExpc3RlbmVySU9TLm1tICovOyB9OwogCQlDRTA1N0ZBNTEy
MjA3MzExMDBBNDc2RDUgLyogRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENFMDU3RkEzMTIyMDczMTEwMEE0
NzZENSAvKiBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwICovOyB9OwogCQlDRTA1N0ZBNjEy
MjA3MzExMDBBNDc2RDUgLyogRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRTA1N0ZBNDEyMjA3MzExMDBBNDc2
RDUgLyogRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0UwOEMzRDExNTJCNTk5QTAwMjFCOEMyIC8qIEFs
dGVybmF0aXZlVGV4dENvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0UwOEMzQ0YxNTJCNTk5QTAwMjFCOEMyIC8qIEFsdGVybmF0aXZl
VGV4dENvbnRyb2xsZXIuY3BwICovOyB9OwpAQCAtMTI5MDQsNiArMTI5MDcsMTAgQEAKIAkJQ0RG
MkIwMEYxODIwNTQwNjAwRjJCNDI0IC8qIE1vY2tUcmFja3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTW9ja1RyYWNrcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlDREY2NUNDOTE0NUI0M0E3MDBDNEM3QUEgLyogTWVkaWFDb250cm9sbGVySW50ZXJmYWNlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhQ29udHJvbGxlckludGVyZmFj
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREY2NUNDQzE0NUI2QUZFMDBDNEM3
QUEgLyogSlNIVE1MTWVkaWFFbGVtZW50Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTSFRNTE1lZGlhRWxlbWVudEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUNERkMzNjAxMThDQTYxNjMwMDI2RTU2RiAvKiBSZW1vdGVDb21t
YW5kTGlzdGVuZXJJT1MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUmVtb3Rl
Q29tbWFuZExpc3RlbmVySU9TLmg7IHBhdGggPSBpb3MvUmVtb3RlQ29tbWFuZExpc3RlbmVySU9T
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERkMzNjAyMThDQTYxNjMwMDI2RTU2
RiAvKiBSZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IG5hbWUgPSBSZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MubW07IHBhdGggPSBpb3Mv
UmVtb3RlQ29tbWFuZExpc3RlbmVySU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlDREZDMzYwMzE4Q0E2MUMyMDAyNkU1NkYgLyogUmVtb3RlQ29tbWFuZExpc3RlbmVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUNvbW1hbmRMaXN0ZW5l
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERkMzNjA0MThDQTYxQzIwMDI2
RTU2RiAvKiBSZW1vdGVDb21tYW5kTGlzdGVuZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUmVtb3RlQ29tbWFuZExpc3RlbmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUNFMDU3RkEzMTIyMDczMTEwMEE0NzZENSAvKiBEb2N1bWVudE1hcmtlckNvbnRyb2xs
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRG9jdW1lbnRNYXJr
ZXJDb250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0UwNTdGQTQx
MjIwNzMxMTAwQTQ3NkQ1IC8qIERvY3VtZW50TWFya2VyQ29udHJvbGxlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0UwOEMzQ0YxNTJCNTk5QTAwMjFCOEMyIC8qIEFsdGVy
bmF0aXZlVGV4dENvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0xODAwNiw2ICsxODAxMyw4IEBACiAJCQkJQzUyNzhCMEIxN0YyMTJFQTAwM0Ey
OTk4IC8qIFBsYXRmb3JtUGFzdGVib2FyZElPUy5tbSAqLywKIAkJCQlFNDUzOTAzMjBFQUZENjM3
MDAzNjk1QzggLyogUGxhdGZvcm1TY3JlZW5JT1MubW0gKi8sCiAJCQkJQUFFMzc1NUQxNzQyOUJD
QzAwNjIwMEMyIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJJT1MubW0gKi8sCisJCQkJQ0RG
QzM2MDExOENBNjE2MzAwMjZFNTZGIC8qIFJlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5oICovLAor
CQkJCUNERkMzNjAyMThDQTYxNjMwMDI2RTU2RiAvKiBSZW1vdGVDb21tYW5kTGlzdGVuZXJJT1Mu
bW0gKi8sCiAJCQkJNDRDMzYzRUUwRkFBN0JCMzAwOTdGOENDIC8qIFJ1bnRpbWVBcHBsaWNhdGlv
bkNoZWNrc0lPUy5oICovLAogCQkJCTQ0QzM2M0VGMEZBQTdCQjMwMDk3RjhDQyAvKiBSdW50aW1l
QXBwbGljYXRpb25DaGVja3NJT1MubW0gKi8sCiAJCQkJMEYxNzc0N0UxMzc4Qjc3MTAwOURBNzZB
IC8qIFNjcm9sbEFuaW1hdG9ySU9TLmggKi8sCkBAIC0yMDkyMCw2ICsyMDkyOSw4IEBACiAJCQkJ
OTM4MEY0NzEwOUExMUFCNDAwMUZEQjM0IC8qIFdpZGdldC5jcHAgKi8sCiAJCQkJOTM4MEY0NzIw
OUExMUFCNDAwMUZEQjM0IC8qIFdpZGdldC5oICovLAogCQkJCUUxRTFCRUZGMTE1RkY2RkIwMDZG
NTJDQSAvKiBXaW5kb3dzS2V5Ym9hcmRDb2Rlcy5oICovLAorCQkJCUNERkMzNjAzMThDQTYxQzIw
MDI2RTU2RiAvKiBSZW1vdGVDb21tYW5kTGlzdGVuZXIuY3BwICovLAorCQkJCUNERkMzNjA0MThD
QTYxQzIwMDI2RTU2RiAvKiBSZW1vdGVDb21tYW5kTGlzdGVuZXIuaCAqLywKIAkJCSk7CiAJCQlw
YXRoID0gcGxhdGZvcm07CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMjU0MzcsNiAr
MjU0NDgsNyBAQAogCQkJCUU0QkJFRDREMTRGQ0RCQTEwMDNGMEI5OCAvKiBTdHlsZVJ1bGUuaCBp
biBIZWFkZXJzICovLAogCQkJCUU0OTQ2RUFGMTU2RTY0REQwMEQzMjk3RiAvKiBTdHlsZVJ1bGVJ
bXBvcnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4RUE4MDBDMEExOTUxNkUwMEE4RUY1RiAvKiBT
dHlsZVNoZWV0LmggaW4gSGVhZGVycyAqLywKKwkJCQlDREZDMzYwNjE4Q0E2MUMyMDAyNkU1NkYg
LyogUmVtb3RlQ29tbWFuZExpc3RlbmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNEY5RUVGMzE1
NkRBMDA3MDBEMjNFN0UgLyogU3R5bGVTaGVldENvbnRlbnRzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBOEVBODAwQTBBMTk1MTZFMDBBOEVGNUYgLyogU3R5bGVTaGVldExpc3QuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDNUVCNUU1MEU4MUJGNkQwMEIyNTk2NSAvKiBTdHlsZVN1cnJvdW5kRGF0YS5o
IGluIEhlYWRlcnMgKi8sCkBAIC0yNzUyOCw2ICsyNzU0MCw3IEBACiAJCQkJQTlEMjQ4MDYwRDc1
N0U3RDAwRkRGOTU5IC8qIEpTRE9NTWltZVR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTlE
MjQ4MDgwRDc1N0U3RDAwRkRGOTU5IC8qIEpTRE9NTWltZVR5cGVBcnJheS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlBOUM2RTY0NzBENzQ2NUNBMDA2NDQyRTkgLyogSlNET01NaW1lVHlwZUFycmF5
Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNERkMzNjA3MThDQTY5NkMwMDI2RTU2RiAv
KiBSZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MkNDQTlF
MjE1RTNGNjJDMDA1M0M3N0YgLyogSlNET01OYW1lZEZsb3dDb2xsZWN0aW9uLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTFBQ0U1M0RGMEE4RDE4ODEwMDIyOTQ3RCAvKiBKU0RPTVBhcnNlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlGQjkxMzkyQjE2QUU0RkMwMDAxRkU2ODIgLyogSlNET01QYXRo
LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjgxMjksNiArMjgxNDIsNyBAQAogCQkJCUE1MTZFOEI4
MTM2RTA0REIwMDc2QzNDMCAvKiBMb2NhbGl6ZWREYXRlQ2FjaGUubW0gaW4gU291cmNlcyAqLywK
IAkJCQlDMDQ2RTFBQzEyMDhBOUZFMDBCQTJDRjcgLyogTG9jYWxpemVkU3RyaW5ncy5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCQzI1QjUyQTEzMUM2RDM5MDAxODBFMTAgLyogTG9jYWxpemVkU3Ry
aW5nc01hYy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDREZDMzYwNTE4Q0E2MUMyMDAyNkU1NkYg
LyogUmVtb3RlQ29tbWFuZExpc3RlbmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDRTFDNDFD
MEQ5ODI5ODEwMDNCMDJGMiAvKiBMb2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODIz
OUUwMDA5QjNDRjhBMDBCNjA2NDEgLyogTG9nZ2luZy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkx
NDAyNjQ1RTBBRkRDMTlCMDA1OTE5RTIgLyogTG9nZ2luZ01hYy5tbSBpbiBTb3VyY2VzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggMzg2ODQyODA0MzI2
YzViNGE2OTBiY2ZjMDI2ZDU4YzZjZjkwYWU2NS4uNjdjM2VlNTk2OTcwY2NmNTQ1MWUxOTM2YWI5
MjdiNGE5MjI0NTIzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3Bw
CkBAIC01ODUyLDYgKzU4NTIsMTEgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpyZXN1bWVQbGF5
YmFjaygpCiAgICAgICAgIHBsYXkoKTsKIH0KIAordm9pZCBIVE1MTWVkaWFFbGVtZW50OjpkaWRS
ZWNlaXZlUmVtb3RlQ29udHJvbENvbW1hbmQoTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29t
bWFuZFR5cGUgY29tbWFuZCkKK3sKKyAgICBVTlVTRURfUEFSQU0oY29tbWFuZCk7Cit9CisKIH0K
IAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IGVhM2Q0
ZWZhYWEyMjYyODAxNDEzMjlkOTQ3YTRlN2ZmNjJjZTAyOWIuLjc1ZWQzMDZlYjBlMjZhMWQyNjk3
YWM3MjBmMTVmNjJjNjZlOTc5YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5oCkBAIC02OTIsNiArNjkyLDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIE1lZGlhU2Vzc2lv
bjo6TWVkaWFUeXBlIG1lZGlhVHlwZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9p
ZCBwYXVzZVBsYXliYWNrKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHJlc3VtZVBsYXli
YWNrKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGNhblJlY2VpdmVSZW1vdGVDb250cm9s
Q29tbWFuZHMoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCB2
b2lkIGRpZFJlY2VpdmVSZW1vdGVDb250cm9sQ29tbWFuZChNZWRpYVNlc3Npb246OlJlbW90ZUNv
bnRyb2xDb21tYW5kVHlwZSkgb3ZlcnJpZGU7CiAKICAgICBUaW1lcjxIVE1MTWVkaWFFbGVtZW50
PiBtX2xvYWRUaW1lcjsKICAgICBUaW1lcjxIVE1MTWVkaWFFbGVtZW50PiBtX3Byb2dyZXNzRXZl
bnRUaW1lcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1JlbW90ZUNvbW1h
bmRMaXN0ZW5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SZW1vdGVDb21tYW5kTGlz
dGVuZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRiODBiYmViYTYwZDJiYWM0NzIyY2Q4NmU5MjNjODA4Y2Vl
MzdjYjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SZW1vdGVD
b21tYW5kTGlzdGVuZXIuY3BwCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlQ29tbWFuZExpc3RlbmVyLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworI2lmICFQTEFURk9STShJT1MpCitzdGQ6OnVuaXF1ZV9wdHI8UmVtb3Rl
Q29tbWFuZExpc3RlbmVyPiBSZW1vdGVDb21tYW5kTGlzdGVuZXI6OmNyZWF0ZShSZW1vdGVDb21t
YW5kTGlzdGVuZXJDbGllbnQmKQoreworICAgIHJldHVybiBzdGQ6Om1vdmUoc3RkOjp1bmlxdWVf
cHRyPFJlbW90ZUNvbW1hbmRMaXN0ZW5lcj4obmV3IFJlbW90ZUNvbW1hbmRMaXN0ZW5lcikpOwor
fQorI2VuZGlmCisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1JlbW90
ZUNvbW1hbmRMaXN0ZW5lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUmVtb3RlQ29tbWFu
ZExpc3RlbmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzY0MjU4YzA1OGRiOThiNTY3YzM0YTczNjhmNDUxMjc1
YjRjMDZmNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1JlbW90
ZUNvbW1hbmRMaXN0ZW5lci5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFJl
bW90ZUNvbW1hbmRMaXN0ZW5lcl9oCisjZGVmaW5lIFJlbW90ZUNvbW1hbmRMaXN0ZW5lcl9oCisK
KyNpbmNsdWRlICJNZWRpYVNlc3Npb24uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBSZW1vdGVDb21tYW5kTGlzdGVuZXJDbGllbnQgeworcHVibGljOgorICAgIHZpcnR1YWwgflJl
bW90ZUNvbW1hbmRMaXN0ZW5lckNsaWVudCgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNl
aXZlUmVtb3RlQ29udHJvbENvbW1hbmQoTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFu
ZFR5cGUpID0gMDsKK307CisKK2NsYXNzIFJlbW90ZUNvbW1hbmRMaXN0ZW5lciB7CitwdWJsaWM6
CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVDb21tYW5kTGlzdGVuZXI+IGNyZWF0
ZShSZW1vdGVDb21tYW5kTGlzdGVuZXJDbGllbnQmKTsKKyAgICB2aXJ0dWFsIH5SZW1vdGVDb21t
YW5kTGlzdGVuZXIoKSB7IH0KKworcHJvdGVjdGVkOgorICAgIFJlbW90ZUNvbW1hbmRMaXN0ZW5l
cihSZW1vdGVDb21tYW5kTGlzdGVuZXJDbGllbnQmIGNsaWVudCkgOiBtX2NsaWVudChjbGllbnQp
IHsgfTsKKworICAgIFJlbW90ZUNvbW1hbmRMaXN0ZW5lckNsaWVudCYgbV9jbGllbnQ7Cit9Owor
Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
TWVkaWFTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL01lZGlhU2Vz
c2lvbi5jcHAKaW5kZXggYjJiMjU5MzQ5ZjJkYTlkNTIwNWQ2ODhhMjcwYmE0Y2FjYmYxZDEzOC4u
NDAxMTYzN2RlMDVjZWE5MDJjNDZlODRjMTczMjQyNGE4NDNiMjY4NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vTWVkaWFTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9NZWRpYVNlc3Npb24uY3BwCkBAIC0xMjgsNSArMTI4LDE1
IEBAIE1lZGlhU2Vzc2lvbjo6TWVkaWFUeXBlIE1lZGlhU2Vzc2lvbjo6bWVkaWFUeXBlKCkgY29u
c3QKIHsKICAgICByZXR1cm4gbV9jbGllbnQubWVkaWFUeXBlKCk7CiB9Ci0gICAgCisKK2Jvb2wg
TWVkaWFTZXNzaW9uOjpjYW5SZWNlaXZlUmVtb3RlQ29udHJvbENvbW1hbmRzKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9jbGllbnQuY2FuUmVjZWl2ZVJlbW90ZUNvbnRyb2xDb21tYW5kcygpOwor
fQorCit2b2lkIE1lZGlhU2Vzc2lvbjo6ZGlkUmVjZWl2UmVtb3RlQ29udHJvbENvbW1hbmQoUmVt
b3RlQ29udHJvbENvbW1hbmRUeXBlIGNvbW1hbmQpCit7CisgICAgbV9jbGllbnQuZGlkUmVjZWl2
ZVJlbW90ZUNvbnRyb2xDb21tYW5kKGNvbW1hbmQpOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9NZWRpYVNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL01lZGlhU2Vzc2lvbi5oCmluZGV4IDc3OWM3YTBhYWY4OTljYzFkMWYw
YTYyYTI4NmNjYWFkN2E2NmY1MTguLmQyMWIyZjFmYzliMmJjMTQyZWUzODI5MzBkNzA1OWU4YzI5
NTg1NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL01lZGlhU2Vz
c2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL01lZGlhU2Vzc2lvbi5o
CkBAIC03MSw2ICs3MSwyMCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHBhdXNlU2Vzc2lvbigpOwog
CisgICAgZW51bSBSZW1vdGVDb250cm9sQ29tbWFuZFR5cGUgeworICAgICAgICBOb0NvbW1hbmQs
CisgICAgICAgIFBsYXlDb21tYW5kLAorICAgICAgICBQYXVzZUNvbW1hbmQsCisgICAgICAgIFN0
b3BDb21tYW5kLAorICAgICAgICBUb2dnbGVQbGF5UGF1c2VDb21tYW5kLAorICAgICAgICBCZWdp
blNlZWtpbmdCYWNrd2FyZENvbW1hbmQsCisgICAgICAgIEVuZFNlZWtpbmdCYWNrd2FyZENvbW1h
bmQsCisgICAgICAgIEJlZ2luU2Vla2luZ0ZvcndhcmRDb21tYW5kLAorICAgICAgICBFbmRTZWVr
aW5nRm9yd2FyZENvbW1hbmQsCisgICAgfTsKKyAgICBib29sIGNhblJlY2VpdmVSZW1vdGVDb250
cm9sQ29tbWFuZHMoKSBjb25zdDsKKyAgICB2b2lkIGRpZFJlY2VpdlJlbW90ZUNvbnRyb2xDb21t
YW5kKFJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZSk7CisKIHByb3RlY3RlZDoKICAgICBNZWRpYVNl
c3Npb25DbGllbnQmIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50OyB9CiAKQEAgLTg5
LDYgKzEwMyw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIE1lZGlhU2Vzc2lvbjo6TWVkaWFUeXBl
IG1lZGlhVHlwZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcmVzdW1lUGxheWJhY2so
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHBhdXNlUGxheWJhY2soKSA9IDA7CisgICAgdmlydHVh
bCBib29sIGNhblJlY2VpdmVSZW1vdGVDb250cm9sQ29tbWFuZHMoKSBjb25zdCA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZW1vdGVDb250cm9sQ29tbWFuZChNZWRpYVNlc3Npb246
OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZSkgPSAwOwogCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVh
bCB+TWVkaWFTZXNzaW9uQ2xpZW50KCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL01lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCmluZGV4IDBkYmYzZjBhMzc4YWM4
NjM2ODZmNzAwNGI0MGU3NjdkNGEyZjE1NGQuLmE4YzMxOGM3YTFkYmI0ZjA3YmVjMmJkZGM0ZmM5
MmM3ZTI2ZTE1YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL01l
ZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L01lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCkBAIC00MCw3ICs0MCw4IEBAIE1lZGlhU2Vzc2lvbk1h
bmFnZXImIE1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKQogI2VuZGlmCiAKIE1l
ZGlhU2Vzc2lvbk1hbmFnZXI6Ok1lZGlhU2Vzc2lvbk1hbmFnZXIoKQotICAgIDogbV9pbnRlcnJ1
cHRlZChmYWxzZSkKKyAgICA6IG1fbW9zdFJlY2VudGx5QWN0aXZlKG51bGxwdHIpCisgICAgLCBt
X2ludGVycnVwdGVkKGZhbHNlKQogewogICAgIHJlc2V0UmVzdHJpY3Rpb25zKCk7CiB9CkBAIC0x
MDEsNiArMTAyLDExIEBAIHZvaWQgTWVkaWFTZXNzaW9uTWFuYWdlcjo6YWRkU2Vzc2lvbihNZWRp
YVNlc3Npb24mIHNlc3Npb24pCiAgICAgaWYgKG1faW50ZXJydXB0ZWQpCiAgICAgICAgIHNlc3Np
b24uc2V0U3RhdGUoTWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRlZCk7CiAgICAgdXBkYXRlU2Vzc2lv
blN0YXRlKCk7CisKKyAgICBpZiAoIW1fY2xpZW50cy5pc0VtcHR5KCkgJiYgKHNlc3Npb24ubWVk
aWFUeXBlKCkgPT0gTWVkaWFTZXNzaW9uOjpWaWRlbyB8fCBzZXNzaW9uLm1lZGlhVHlwZSgpID09
IE1lZGlhU2Vzc2lvbjo6QXVkaW8pKSB7CisgICAgICAgIGZvciAoYXV0byYgY2xpZW50IDogbV9j
bGllbnRzKQorICAgICAgICAgICAgY2xpZW50LT5zdGFydExpc3RlbmluZ0ZvclJlbW90ZUNvbnRy
b2xDb21tYW5kcygpOworICAgIH0KIH0KIAogdm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyOjpyZW1v
dmVTZXNzaW9uKE1lZGlhU2Vzc2lvbiYgc2Vzc2lvbikKQEAgLTExMSw3ICsxMTcsMTQgQEAgdm9p
ZCBNZWRpYVNlc3Npb25NYW5hZ2VyOjpyZW1vdmVTZXNzaW9uKE1lZGlhU2Vzc2lvbiYgc2Vzc2lv
bikKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9zZXNzaW9ucy5yZW1vdmUoaW5kZXgpOworICAg
IGlmIChtX21vc3RSZWNlbnRseUFjdGl2ZSA9PSAmc2Vzc2lvbikKKyAgICAgICAgbV9tb3N0UmVj
ZW50bHlBY3RpdmUgPSBudWxscHRyOwogICAgIHVwZGF0ZVNlc3Npb25TdGF0ZSgpOworCisgICAg
aWYgKCFtX2NsaWVudHMuaXNFbXB0eSgpICYmIChzZXNzaW9uLm1lZGlhVHlwZSgpID09IE1lZGlh
U2Vzc2lvbjo6VmlkZW8gfHwgc2Vzc2lvbi5tZWRpYVR5cGUoKSA9PSBNZWRpYVNlc3Npb246OkF1
ZGlvKSkgeworICAgICAgICBmb3IgKGF1dG8mIGNsaWVudCA6IG1fY2xpZW50cykKKyAgICAgICAg
ICAgIGNsaWVudC0+c3RhcnRMaXN0ZW5pbmdGb3JSZW1vdGVDb250cm9sQ29tbWFuZHMoKTsKKyAg
ICB9CiB9CiAKIHZvaWQgTWVkaWFTZXNzaW9uTWFuYWdlcjo6YWRkUmVzdHJpY3Rpb24oTWVkaWFT
ZXNzaW9uOjpNZWRpYVR5cGUgdHlwZSwgU2Vzc2lvblJlc3RyaWN0aW9ucyByZXN0cmljdGlvbikK
QEAgLTEzMiw3ICsxNDUsNyBAQCBNZWRpYVNlc3Npb25NYW5hZ2VyOjpTZXNzaW9uUmVzdHJpY3Rp
b25zIE1lZGlhU2Vzc2lvbk1hbmFnZXI6OnJlc3RyaWN0aW9ucyhNZWRpYQogICAgIHJldHVybiBt
X3Jlc3RyaWN0aW9uc1t0eXBlXTsKIH0KIAotdm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXNz
aW9uV2lsbEJlZ2luUGxheWJhY2soY29uc3QgTWVkaWFTZXNzaW9uJiBzZXNzaW9uKSBjb25zdAor
dm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXNzaW9uV2lsbEJlZ2luUGxheWJhY2soTWVkaWFT
ZXNzaW9uJiBzZXNzaW9uKQogewogICAgIE1lZGlhU2Vzc2lvbjo6TWVkaWFUeXBlIHNlc3Npb25U
eXBlID0gc2Vzc2lvbi5tZWRpYVR5cGUoKTsKICAgICBTZXNzaW9uUmVzdHJpY3Rpb25zIHJlc3Ry
aWN0aW9ucyA9IG1fcmVzdHJpY3Rpb25zW3Nlc3Npb25UeXBlXTsKQEAgLTE0Nyw2ICsxNjAsMTMg
QEAgdm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXNzaW9uV2lsbEJlZ2luUGxheWJhY2soY29u
c3QgTWVkaWFTZXNzaW9uJiBzZXNzaW9uKQogICAgICAgICBpZiAocmVzdHJpY3Rpb25zICYgQ29u
Y3VycmVudFBsYXliYWNrTm90UGVybWl0dGVkKQogICAgICAgICAgICAgb25lU2Vzc2lvbi0+cGF1
c2VTZXNzaW9uKCk7CiAgICAgfQorCisgICAgbV9tb3N0UmVjZW50bHlBY3RpdmUgPSAmc2Vzc2lv
bjsKKworICAgIGlmICghbV9jbGllbnRzLmlzRW1wdHkoKSAmJiAoc2Vzc2lvbi5tZWRpYVR5cGUo
KSA9PSBNZWRpYVNlc3Npb246OlZpZGVvIHx8IHNlc3Npb24ubWVkaWFUeXBlKCkgPT0gTWVkaWFT
ZXNzaW9uOjpBdWRpbykpIHsKKyAgICAgICAgZm9yIChhdXRvJiBjbGllbnQgOiBtX2NsaWVudHMp
CisgICAgICAgICAgICBjbGllbnQtPmRpZEJlZ2luUGxheWJhY2soKTsKKyAgICB9CiB9CiAKIGJv
b2wgTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2Vzc2lvblJlc3RyaWN0c0lubGluZVZpZGVvUGxheWJh
Y2soY29uc3QgTWVkaWFTZXNzaW9uJiBzZXNzaW9uKSBjb25zdApAQCAtMTgyLDQgKzIwMiwyMiBA
QCB2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXI6OnVwZGF0ZVNlc3Npb25TdGF0ZSgpCiB9CiAjZW5k
aWYKIAordm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyOjpkaWRSZWNlaXZlUmVtb3RlQ29udHJvbENv
bW1hbmQoTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5cGUgY29tbWFuZCkKK3sK
KyAgICBpZiAoIW1fbW9zdFJlY2VudGx5QWN0aXZlKQorICAgICAgICByZXR1cm47CisgICAgbV9t
b3N0UmVjZW50bHlBY3RpdmUtPmRpZFJlY2VpdlJlbW90ZUNvbnRyb2xDb21tYW5kKGNvbW1hbmQp
OworfQorCit2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXI6OmFkZENsaWVudChNZWRpYVNlc3Npb25N
YW5hZ2VyQ2xpZW50KiBjbGllbnQpCit7CisgICAgQVNTRVJUKCFtX2NsaWVudHMuY29udGFpbnMo
Y2xpZW50KSk7CisgICAgbV9jbGllbnRzLmFwcGVuZChjbGllbnQpOworfQorCit2b2lkIE1lZGlh
U2Vzc2lvbk1hbmFnZXI6OnJlbW92ZUNsaWVudChNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50KiBj
bGllbnQpCit7CisgICAgQVNTRVJUKG1fY2xpZW50cy5jb250YWlucyhjbGllbnQpKTsKK30KKwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vTWVkaWFTZXNzaW9u
TWFuYWdlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vTWVkaWFTZXNzaW9uTWFu
YWdlci5oCmluZGV4IGY2NjhjOWVkZGQ0MmIwNmZmMzEwNDI5ZDU5MjdlNDRkMDBkYzFlNjcuLmI4
ZWQ3NDU2MWYyNjVhZWIxZDU5YjVkZTdhYmUwYmExNjFlNjg2MGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL01lZGlhU2Vzc2lvbk1hbmFnZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9NZWRpYVNlc3Npb25NYW5hZ2VyLmgKQEAgLTM2LDYg
KzM2LDE5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEhUTUxNZWRpYUVsZW1lbnQ7CiBj
bGFzcyBNZWRpYVNlc3Npb247CiAKK2NsYXNzIE1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnQgewor
cHVibGljOgorICAgIHZpcnR1YWwgfk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnQoKSB7IH0KKwor
ICAgIHZpcnR1YWwgYm9vbCBpc0xpc3RlbmluZ0ZvclJlbW90ZUNvbnRyb2xDb21tYW5kcygpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnRMaXN0ZW5pbmdGb3JSZW1vdGVDb250cm9sQ29tbWFu
ZHMoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0b3BMaXN0ZW5pbmdGb3JSZW1vdGVDb250cm9s
Q29tbWFuZHMoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZEJlZ2luUGxheWJhY2soKSA9IDA7
CisKK3Byb3RlY3RlZDoKKyAgICBNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50KCkgeyB9Cit9Owor
CiBjbGFzcyBNZWRpYVNlc3Npb25NYW5hZ2VyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgTWVkaWFT
ZXNzaW9uTWFuYWdlciYgc2hhcmVkTWFuYWdlcigpOwpAQCAtNjUsNyArNzgsNyBAQCBwdWJsaWM6
CiAgICAgU2Vzc2lvblJlc3RyaWN0aW9ucyByZXN0cmljdGlvbnMoTWVkaWFTZXNzaW9uOjpNZWRp
YVR5cGUpOwogICAgIHZpcnR1YWwgdm9pZCByZXNldFJlc3RyaWN0aW9ucygpOwogCi0gICAgdm9p
ZCBzZXNzaW9uV2lsbEJlZ2luUGxheWJhY2soY29uc3QgTWVkaWFTZXNzaW9uJikgY29uc3Q7Cisg
ICAgdm9pZCBzZXNzaW9uV2lsbEJlZ2luUGxheWJhY2soTWVkaWFTZXNzaW9uJik7CiAKICAgICBi
b29sIHNlc3Npb25SZXN0cmljdHNJbmxpbmVWaWRlb1BsYXliYWNrKGNvbnN0IE1lZGlhU2Vzc2lv
biYpIGNvbnN0OwogCkBAIC03Myw2ICs4NiwxMSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHNob3dQbGF5YmFja1RhcmdldFBpY2tlcigpIHsgfQogI2VuZGlmCiAKKyAgICB2b2lkIGRpZFJl
Y2VpdmVSZW1vdGVDb250cm9sQ29tbWFuZChNZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21t
YW5kVHlwZSk7CisKKyAgICB2b2lkIGFkZENsaWVudChNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50
Kik7CisgICAgdm9pZCByZW1vdmVDbGllbnQoTWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudCopOwor
CiBwcm90ZWN0ZWQ6CiAgICAgZnJpZW5kIGNsYXNzIE1lZGlhU2Vzc2lvbjsKICAgICBleHBsaWNp
dCBNZWRpYVNlc3Npb25NYW5hZ2VyKCk7CkBAIC04Niw2ICsxMDQsOCBAQCBwcml2YXRlOgogICAg
IFNlc3Npb25SZXN0cmljdGlvbnMgbV9yZXN0cmljdGlvbnNbTWVkaWFTZXNzaW9uOjpXZWJBdWRp
byArIDFdOwogCiAgICAgVmVjdG9yPE1lZGlhU2Vzc2lvbio+IG1fc2Vzc2lvbnM7CisgICAgVmVj
dG9yPE1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnQqPiBtX2NsaWVudHM7CisgICAgTWVkaWFTZXNz
aW9uKiBtX21vc3RSZWNlbnRseUFjdGl2ZTsKICAgICBib29sIG1faW50ZXJydXB0ZWQ7CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9EZXN0
aW5hdGlvbk1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvRGVz
dGluYXRpb25NYWMuaAppbmRleCBmMzVjMmE0MmEyZmJjOTdiNWMxOWVkNjk1YTI5MWFjYTU4YjIw
Yjc0Li45MGUyMzE4ODU4NmUxYjI5Nzk5YTM1ODUwNDVkOTQwZGVjZjg4NzkwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9EZXN0aW5hdGlvbk1hYy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb0Rlc3RpbmF0aW9u
TWFjLmgKQEAgLTYyLDYgKzYyLDggQEAgcHJpdmF0ZToKICAgICBPU1N0YXR1cyByZW5kZXIoVUlu
dDMyIG51bWJlck9mRnJhbWVzLCBBdWRpb0J1ZmZlckxpc3QqIGlvRGF0YSk7CiAKICAgICB2aXJ0
dWFsIE1lZGlhU2Vzc2lvbjo6TWVkaWFUeXBlIG1lZGlhVHlwZSgpIGNvbnN0IHsgcmV0dXJuIE1l
ZGlhU2Vzc2lvbjo6V2ViQXVkaW87IH0KKyAgICB2aXJ0dWFsIGJvb2wgY2FuUmVjZWl2ZVJlbW90
ZUNvbnRyb2xDb21tYW5kcygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCB2
b2lkIGRpZFJlY2VpdmVSZW1vdGVDb250cm9sQ29tbWFuZChNZWRpYVNlc3Npb246OlJlbW90ZUNv
bnRyb2xDb21tYW5kVHlwZSkgeyB9CiAKICAgICBBdWRpb1VuaXQgbV9vdXRwdXRVbml0OwogICAg
IEF1ZGlvSU9DYWxsYmFjayYgbV9jYWxsYmFjazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9SZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9SZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMmZm
YWMwYzkwM2RjOWRkNTM4ZDMyMGZkYWVhZjgxZjA5MzU2NjU4Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1JlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5oCkBA
IC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFJlbW90ZUNvbW1hbmRMaXN0ZW5lcklP
U19oCisjZGVmaW5lIFJlbW90ZUNvbW1hbmRMaXN0ZW5lcklPU19oCisKKyNpbmNsdWRlICJSZW1v
dGVDb21tYW5kTGlzdGVuZXIuaCIKKworI2lmIFBMQVRGT1JNKElPUykKKworI2luY2x1ZGUgPHd0
Zi9SZXRhaW5QdHIuaD4KKworI2lmbmRlZiBfX09CSkNfXwordHlwZWRlZiB2b2lkICppZDsKKyNl
bmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJlbW90ZUNvbW1hbmRMaXN0ZW5l
cklPUyA6IHB1YmxpYyBSZW1vdGVDb21tYW5kTGlzdGVuZXIgeworcHVibGljOgorICAgIFJlbW90
ZUNvbW1hbmRMaXN0ZW5lcklPUyhSZW1vdGVDb21tYW5kTGlzdGVuZXJDbGllbnQmKTsKKyAgICB2
aXJ0dWFsIH5SZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MoKTsKKworcHJvdGVjdGVkOgorICAgIFJl
dGFpblB0cjxpZD4gbV9wbGF5VGFyZ2V0OworICAgIFJldGFpblB0cjxpZD4gbV9wYXVzZVRhcmdl
dDsKKyAgICBSZXRhaW5QdHI8aWQ+IG1fdG9nZ2xlUGxheVBhdXNlVGFyZ2V0OworICAgIFJldGFp
blB0cjxpZD4gbV9zZWVrRm9yd2FyZFRhcmdldDsKKyAgICBSZXRhaW5QdHI8aWQ+IG1fc2Vla0Jh
Y2t3YXJkVGFyZ2V0OworfTsKKworfQorCisjZW5kaWYKKworI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUmVtb3RlQ29tbWFuZExpc3RlbmVySU9TLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1JlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5tbQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42MGJhZDBlMzliNTBlZmEyNDZkMjcyOTU3MjIzZTU3MWZiY2QwZjMzCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1JlbW90ZUNvbW1hbmRM
aXN0ZW5lcklPUy5tbQpAQCAtMCwwICsxLDkwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2ltcG9ydCAiY29uZmln
LmgiCisjaW1wb3J0ICJSZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MuaCIKKworI2lmIFBMQVRGT1JN
KElPUykKKworI2ltcG9ydCA8TWVkaWFQbGF5ZXIvTVBSZW1vdGVDb21tYW5kQ2VudGVyLmg+Cisj
aW1wb3J0IDxNZWRpYVBsYXllci9NUFJlbW90ZUNvbW1hbmRFdmVudC5oPgorI2ltcG9ydCA8TWVk
aWFQbGF5ZXIvTVBSZW1vdGVDb21tYW5kLmg+CisjaW1wb3J0IDxXZWJDb3JlL1NvZnRMaW5raW5n
Lmg+CisKK1NPRlRfTElOS19GUkFNRVdPUksoTWVkaWFQbGF5ZXIpCitTT0ZUX0xJTktfQ0xBU1Mo
TWVkaWFQbGF5ZXIsIE1QUmVtb3RlQ29tbWFuZENlbnRlcikKK1NPRlRfTElOS19DTEFTUyhNZWRp
YVBsYXllciwgTVBTZWVrQ29tbWFuZEV2ZW50KQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0
ZDo6dW5pcXVlX3B0cjxSZW1vdGVDb21tYW5kTGlzdGVuZXI+IFJlbW90ZUNvbW1hbmRMaXN0ZW5l
cjo6Y3JlYXRlKFJlbW90ZUNvbW1hbmRMaXN0ZW5lckNsaWVudCYgY2xpZW50KQoreworICAgIHJl
dHVybiBzdGQ6Om1vdmUoc3RkOjp1bmlxdWVfcHRyPFJlbW90ZUNvbW1hbmRMaXN0ZW5lcj4obmV3
IFJlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUyhjbGllbnQpKSk7Cit9CisKK1JlbW90ZUNvbW1hbmRM
aXN0ZW5lcklPUzo6UmVtb3RlQ29tbWFuZExpc3RlbmVySU9TKFJlbW90ZUNvbW1hbmRMaXN0ZW5l
ckNsaWVudCYgY2xpZW50KQorICAgIDogUmVtb3RlQ29tbWFuZExpc3RlbmVyKGNsaWVudCkKK3sK
KyAgICBNUFJlbW90ZUNvbW1hbmRDZW50ZXIgKmNlbnRlciA9IFtnZXRNUFJlbW90ZUNvbW1hbmRD
ZW50ZXJDbGFzcygpIHNoYXJlZENvbW1hbmRDZW50ZXJdOworCisgICAgbV9wYXVzZVRhcmdldCA9
IFtbY2VudGVyIHBhdXNlQ29tbWFuZF0gYWRkVGFyZ2V0V2l0aEhhbmRsZXI6XihNUFJlbW90ZUNv
bW1hbmRFdmVudCAqKSB7CisgICAgICAgIG1fY2xpZW50LmRpZFJlY2VpdmVSZW1vdGVDb250cm9s
Q29tbWFuZChNZWRpYVNlc3Npb246OlBhdXNlQ29tbWFuZCk7CisgICAgICAgIHJldHVybiBNUFJl
bW90ZUNvbW1hbmRIYW5kbGVyU3RhdHVzU3VjY2VzczsKKyAgICB9XTsKKyAgICBtX3BsYXlUYXJn
ZXQgPSBbW2NlbnRlciBwbGF5Q29tbWFuZF0gYWRkVGFyZ2V0V2l0aEhhbmRsZXI6XihNUFJlbW90
ZUNvbW1hbmRFdmVudCAqKSB7CisgICAgICAgIG1fY2xpZW50LmRpZFJlY2VpdmVSZW1vdGVDb250
cm9sQ29tbWFuZChNZWRpYVNlc3Npb246OlBsYXlDb21tYW5kKTsKKyAgICAgICAgcmV0dXJuIE1Q
UmVtb3RlQ29tbWFuZEhhbmRsZXJTdGF0dXNTdWNjZXNzOworICAgIH1dOworICAgIG1fdG9nZ2xl
UGxheVBhdXNlVGFyZ2V0ID0gW1tjZW50ZXIgdG9nZ2xlUGxheVBhdXNlQ29tbWFuZF0gYWRkVGFy
Z2V0V2l0aEhhbmRsZXI6XihNUFJlbW90ZUNvbW1hbmRFdmVudCAqKSB7CisgICAgICAgIG1fY2xp
ZW50LmRpZFJlY2VpdmVSZW1vdGVDb250cm9sQ29tbWFuZChNZWRpYVNlc3Npb246OlRvZ2dsZVBs
YXlQYXVzZUNvbW1hbmQpOworICAgICAgICByZXR1cm4gTVBSZW1vdGVDb21tYW5kSGFuZGxlclN0
YXR1c1N1Y2Nlc3M7CisgICAgfV07CisgICAgbV9zZWVrQmFja3dhcmRUYXJnZXQgPSBbW2NlbnRl
ciBzZWVrQmFja3dhcmRDb21tYW5kXSBhZGRUYXJnZXRXaXRoSGFuZGxlcjpeKE1QUmVtb3RlQ29t
bWFuZEV2ZW50ICpldmVudCkgeworICAgICAgICBBU1NFUlQoW2V2ZW50IGlzS2luZE9mQ2xhc3M6
Z2V0TVBTZWVrQ29tbWFuZEV2ZW50Q2xhc3MoKV0pOworICAgICAgICBNUFNlZWtDb21tYW5kRXZl
bnQqIHNlZWtFdmVudCA9IHN0YXRpY19jYXN0PE1QU2Vla0NvbW1hbmRFdmVudCAqPihldmVudCk7
CisgICAgICAgIG1fY2xpZW50LmRpZFJlY2VpdmVSZW1vdGVDb250cm9sQ29tbWFuZChbc2Vla0V2
ZW50IHR5cGVdID09IE1QU2Vla0NvbW1hbmRFdmVudFR5cGVCZWdpblNlZWtpbmcgPyBNZWRpYVNl
c3Npb246OkJlZ2luU2Vla2luZ0JhY2t3YXJkQ29tbWFuZCA6IE1lZGlhU2Vzc2lvbjo6RW5kU2Vl
a2luZ0JhY2t3YXJkQ29tbWFuZCk7CisgICAgICAgIHJldHVybiBNUFJlbW90ZUNvbW1hbmRIYW5k
bGVyU3RhdHVzU3VjY2VzczsKKyAgICB9XTsKKyAgICBtX3NlZWtGb3J3YXJkVGFyZ2V0ID0gW1tj
ZW50ZXIgc2Vla0ZvcndhcmRDb21tYW5kXSBhZGRUYXJnZXRXaXRoSGFuZGxlcjpeKE1QUmVtb3Rl
Q29tbWFuZEV2ZW50ICpldmVudCkgeworICAgICAgICBBU1NFUlQoW2V2ZW50IGlzS2luZE9mQ2xh
c3M6Z2V0TVBTZWVrQ29tbWFuZEV2ZW50Q2xhc3MoKV0pOworICAgICAgICBNUFNlZWtDb21tYW5k
RXZlbnQqIHNlZWtFdmVudCA9IHN0YXRpY19jYXN0PE1QU2Vla0NvbW1hbmRFdmVudCAqPihldmVu
dCk7CisgICAgICAgIG1fY2xpZW50LmRpZFJlY2VpdmVSZW1vdGVDb250cm9sQ29tbWFuZChbc2Vl
a0V2ZW50IHR5cGVdID09IE1QU2Vla0NvbW1hbmRFdmVudFR5cGVCZWdpblNlZWtpbmcgPyBNZWRp
YVNlc3Npb246OkJlZ2luU2Vla2luZ0ZvcndhcmRDb21tYW5kIDogTWVkaWFTZXNzaW9uOjpFbmRT
ZWVraW5nRm9yd2FyZENvbW1hbmQpOworICAgICAgICByZXR1cm4gTVBSZW1vdGVDb21tYW5kSGFu
ZGxlclN0YXR1c1N1Y2Nlc3M7CisgICAgfV07Cit9CisKK1JlbW90ZUNvbW1hbmRMaXN0ZW5lcklP
Uzo6flJlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUygpCit7CisgICAgTVBSZW1vdGVDb21tYW5kQ2Vu
dGVyICpjZW50ZXIgPSBbZ2V0TVBSZW1vdGVDb21tYW5kQ2VudGVyQ2xhc3MoKSBzaGFyZWRDb21t
YW5kQ2VudGVyXTsKKyAgICBbW2NlbnRlciBwYXVzZUNvbW1hbmRdIHJlbW92ZVRhcmdldDptX3Bh
dXNlVGFyZ2V0LmdldCgpXTsKKyAgICBbW2NlbnRlciBwbGF5Q29tbWFuZF0gcmVtb3ZlVGFyZ2V0
Om1fcGxheVRhcmdldC5nZXQoKV07CisgICAgW1tjZW50ZXIgdG9nZ2xlUGxheVBhdXNlQ29tbWFu
ZF0gcmVtb3ZlVGFyZ2V0Om1fdG9nZ2xlUGxheVBhdXNlVGFyZ2V0LmdldCgpXTsKKyAgICBbW2Nl
bnRlciBzZWVrRm9yd2FyZENvbW1hbmRdIHJlbW92ZVRhcmdldDptX3NlZWtGb3J3YXJkVGFyZ2V0
LmdldCgpXTsKKyAgICBbW2NlbnRlciBzZWVrQmFja3dhcmRDb21tYW5kXSByZW1vdmVUYXJnZXQ6
bV9zZWVrQmFja3dhcmRUYXJnZXQuZ2V0KCldOworfQorCit9CisKKyNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>226602</attachid>
            <date>2014-03-13 11:25:31 -0700</date>
            <delta_ts>2014-03-13 14:05:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-129903-20140313112517.patch</filename>
            <type>text/plain</type>
            <size>32144</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY1NDk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDBmYWFkOWU5N2M1MjM1
MzU3ODRlMTZmNzVjMDBlN2M3Y2VlMDA2OS4uOTA4NWVhOWI0MDFjZDlkZTBlZWU2OGI5NmQwMGRm
MzFhYzEzMmE2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDE0LTAzLTA3ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCByZW1vdGUgY29udHJv
bCBjb21tYW5kIHN1cHBvcnQgdG8gTWVkaWFTZXNzaW9uLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5OTAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRoZSBjYXBhYmlsaXR5IHRvIHJlY2VpdmUg
cmVtb3RlIGNvbnRyb2wgY29tbWFuZHMgKGN1cnJlbnRseSBpT1Mgb25seSkgYW5kIHRvCisgICAg
ICAgIHBhc3MgdGhvc2UgY29tbWFuZHMgdGhyb3VnaCB0aGUgTWVkaWFTZXNzaW9uTWFuYWdlci4K
KworICAgICAgICBBZGQgYSBuZXcgcGxhdGZvcm0gY2xhc3Mgd2hpY2ggY2FuIGxpc3RlbiBmb3Ig
cmVtb3RlIGNvbnRyb2wgY29tbWFuZHM6CisgICAgICAgICogcGxhdGZvcm0vUmVtb3RlQ29tbWFu
ZExpc3RlbmVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVDb21tYW5kTGlz
dGVuZXI6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vUmVtb3RlQ29tbWFuZExpc3RlbmVy
Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlQ29tbWFuZExpc3RlbmVyQ2xpZW50
Ojp+UmVtb3RlQ29tbWFuZExpc3RlbmVyQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbW90
ZUNvbW1hbmRMaXN0ZW5lcjo6flJlbW90ZUNvbW1hbmRMaXN0ZW5lcik6CisgICAgICAgIChXZWJD
b3JlOjpSZW1vdGVDb21tYW5kTGlzdGVuZXI6OlJlbW90ZUNvbW1hbmRMaXN0ZW5lcik6CisgICAg
ICAgICogcGxhdGZvcm0vaW9zL1JlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5oOiBBZGRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9pb3MvUmVtb3RlQ29tbWFuZExpc3RlbmVySU9TLm1tOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlJlbW90ZUNvbW1hbmRMaXN0ZW5lcjo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUzo6UmVtb3RlQ29tbWFuZExpc3Rl
bmVySU9TKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUzo6flJl
bW90ZUNvbW1hbmRMaXN0ZW5lcklPUyk6CisKKyAgICAgICAgSGFuZGxlIHJlbW90ZSBjb250cm9s
IGNvbW1hbmQgZXZlbnRzIGluIEhUTUxNZWRpYUVsZW1lbnQgYW5kIEF1ZGlvRGVzdGluYXRpb25N
YWM6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKToKKyAgICAgICAgKiBodG1sL0hU
TUxNZWRpYUVsZW1lbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9EZXN0
aW5hdGlvbk1hYy5oOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbk1hYzo6Y2Fu
UmVjZWl2ZVJlbW90ZUNvbnRyb2xDb21tYW5kcyk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rl
c3RpbmF0aW9uTWFjOjpkaWRSZWNlaXZlUmVtb3RlQ29udHJvbENvbW1hbmQpOgorCisgICAgICAg
IFBpcGUgY29tbWFuZCBldmVudHMgdGhyb3VnaCBNZWRpYVNlc3Npb25NYW5hZ2VyOgorICAgICAg
ICAqIHBsYXRmb3JtL2F1ZGlvL01lZGlhU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVNlc3Npb246OmNhblJlY2VpdmVSZW1vdGVDb250cm9sQ29tbWFuZHMpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFTZXNzaW9uOjpkaWRSZWNlaXZSZW1vdGVDb250cm9sQ29tbWFuZCk6Cisg
ICAgICAgICogcGxhdGZvcm0vYXVkaW8vTWVkaWFTZXNzaW9uLmg6CisgICAgICAgICogcGxhdGZv
cm0vYXVkaW8vTWVkaWFTZXNzaW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVNlc3Npb25NYW5hZ2VyOjphZGRTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vz
c2lvbk1hbmFnZXI6OnJlbW92ZVNlc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNz
aW9uTWFuYWdlcjo6c2Vzc2lvbldpbGxCZWdpblBsYXliYWNrKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU2Vzc2lvbk1hbmFnZXI6OmRpZFJlY2VpdmVSZW1vdGVDb250cm9sQ29tbWFuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyOjphZGRDbGllbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlcjo6cmVtb3ZlQ2xpZW50KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9hdWRpby9NZWRpYVNlc3Npb25NYW5hZ2VyLmg6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50Ojp+TWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50OjpNZWRpYVNlc3Np
b25NYW5hZ2VyQ2xpZW50KToKKworICAgICAgICBBZGQgbmV3IGZpbGVzIGFuZCBleHBvcnQgbmV3
IHN5bWJvbHM6CisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDE0LTAzLTA2ICBKZXIgTm9ibGUgIDxqZXIu
bm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtFTUVdIEV4dGVuZCB0aGUgbGlmZXRpbWUgb2Yg
TWVkaWFLZXlTZXNzaW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAu
aW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCA2ZDkwM2ZkYWM2MjMzMTU3
ZmVkYzk1ODQwMmI3NDYyNjFmNjI3MGZjLi44MjJmZjBmOTFiNTdlYjUzZGQwNjQxM2E1NmRiNzE5
N2ZlMTc2NjU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtNzc4LDEyICs3NzgsMTUgQEAgX19a
TjdXZWJDb3JlMTlMYXllckZsdXNoU2NoZWR1bGVyQzFFUE5TXzI1TGF5ZXJGbHVzaFNjaGVkdWxl
ckNsaWVudEUKIF9fWk43V2ViQ29yZTE5TGF5ZXJGbHVzaFNjaGVkdWxlckMyRVBOU18yNUxheWVy
Rmx1c2hTY2hlZHVsZXJDbGllbnRFCiBfX1pON1dlYkNvcmUxOUxheWVyRmx1c2hTY2hlZHVsZXJE
MUV2CiBfX1pON1dlYkNvcmUxOUxheWVyRmx1c2hTY2hlZHVsZXJEMkV2CitfX1pON1dlYkNvcmUx
OU1lZGlhU2Vzc2lvbk1hbmFnZXI5YWRkQ2xpZW50RVBOU18yNU1lZGlhU2Vzc2lvbk1hbmFnZXJD
bGllbnRFCitfX1pON1dlYkNvcmUxOU1lZGlhU2Vzc2lvbk1hbmFnZXIxMnJlbW92ZUNsaWVudEVQ
TlNfMjVNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50RQogX19aTjdXZWJDb3JlMTlNZWRpYVNlc3Np
b25NYW5hZ2VyMTJyZXN0cmljdGlvbnNFTlNfMTJNZWRpYVNlc3Npb245TWVkaWFUeXBlRQogX19a
TjdXZWJDb3JlMTlNZWRpYVNlc3Npb25NYW5hZ2VyMTNzaGFyZWRNYW5hZ2VyRXYKIF9fWk43V2Vi
Q29yZTE5TWVkaWFTZXNzaW9uTWFuYWdlcjE0YWRkUmVzdHJpY3Rpb25FTlNfMTJNZWRpYVNlc3Np
b245TWVkaWFUeXBlRWoKIF9fWk43V2ViQ29yZTE5TWVkaWFTZXNzaW9uTWFuYWdlcjE1ZW5kSW50
ZXJydXB0aW9uRU5TXzEyTWVkaWFTZXNzaW9uMjBFbmRJbnRlcnJ1cHRpb25GbGFnc0UKIF9fWk43
V2ViQ29yZTE5TWVkaWFTZXNzaW9uTWFuYWdlcjE3YmVnaW5JbnRlcnJ1cHRpb25FdgogX19aTjdX
ZWJDb3JlMTlNZWRpYVNlc3Npb25NYW5hZ2VyMTdyZW1vdmVSZXN0cmljdGlvbkVOU18xMk1lZGlh
U2Vzc2lvbjlNZWRpYVR5cGVFagorX19aTjdXZWJDb3JlMTlNZWRpYVNlc3Npb25NYW5hZ2VyMzBk
aWRSZWNlaXZlUmVtb3RlQ29udHJvbENvbW1hbmRFTlNfMTJNZWRpYVNlc3Npb24yNFJlbW90ZUNv
bnRyb2xDb21tYW5kVHlwZUUKIF9fWk43V2ViQ29yZTE5UGxhdGZvcm1DQUFuaW1hdGlvbjEwc2V0
VG9WYWx1ZUVSS05TXzIwVHJhbnNmb3JtYXRpb25NYXRyaXhFCiBfX1pON1dlYkNvcmUxOVBsYXRm
b3JtQ0FBbmltYXRpb242Y3JlYXRlRVAxOUNBUHJvcGVydHlBbmltYXRpb24KIF9fWk43V2ViQ29y
ZTE5UGxhdGZvcm1DQUFuaW1hdGlvbkQxRXYKQEAgLTg1MCw2ICs4NTMsNyBAQCBfX1pON1dlYkNv
cmUyMU5ldHdvcmtTdG9yYWdlU2Vzc2lvbjIxZGVmYXVsdFN0b3JhZ2VTZXNzaW9uRXYKIF9fWk43
V2ViQ29yZTIxTmV0d29ya1N0b3JhZ2VTZXNzaW9uMjVzd2l0Y2hUb05ld1Rlc3RpbmdTZXNzaW9u
RXYKIF9fWk43V2ViQ29yZTIxTmV0d29ya1N0b3JhZ2VTZXNzaW9uMjhjcmVhdGVQcml2YXRlQnJv
d3NpbmdTZXNzaW9uRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMjFQbGF0Zm9ybUtleWJv
YXJkRXZlbnQyNGRpc2FtYmlndWF0ZUtleURvd25FdmVudEVOU18xM1BsYXRmb3JtRXZlbnQ0VHlw
ZUViCitfX1pON1dlYkNvcmUyMVJlbW90ZUNvbW1hbmRMaXN0ZW5lcjZjcmVhdGVFUk5TXzI3UmVt
b3RlQ29tbWFuZExpc3RlbmVyQ2xpZW50RQogX19aTjdXZWJDb3JlMjFSZXNvdXJjZUxvYWRTY2hl
ZHVsZXIyMHNlcnZlUGVuZGluZ1JlcXVlc3RzRU5TXzIwUmVzb3VyY2VMb2FkUHJpb3JpdHlFCiBf
X1pON1dlYkNvcmUyMVJlc291cmNlTG9hZFNjaGVkdWxlcjIwc2VydmVQZW5kaW5nUmVxdWVzdHNF
UE5TMF8xNUhvc3RJbmZvcm1hdGlvbkVOU18yMFJlc291cmNlTG9hZFByaW9yaXR5RQogX19aTjdX
ZWJDb3JlMjFSZXNvdXJjZUxvYWRTY2hlZHVsZXIyMXJlc3VtZVBlbmRpbmdSZXF1ZXN0c0V2CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggM2Q0M2MwMTI4NWVjZGE4ZDQzZmEzYTYwYzg4MzZjMmNlMDJlMWM5Ni4uMDg3ZjcxZTE1NzI2
ZTE5YzBkYTA0MmNkNjEyYWVmNGIzNDE4MmFmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTYwOCw2ICs1NjA4LDkgQEAKIAkJ
Q0RGMkIwMTkxODIwNTQwNzAwRjJCNDI0IC8qIE1vY2tUcmFja3MuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERjJCMDBGMTgyMDU0MDYwMEYyQjQyNCAv
KiBNb2NrVHJhY2tzLmggKi87IH07CiAJCUNERjY1Q0M4MTQ1QjFFNzUwMEM0QzdBQSAvKiBNZWRp
YUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENEMjdGNkU0MTQ1NzY3ODcwMDc4MjA3RCAvKiBNZWRpYUNvbnRyb2xsZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDREY2NUNDQTE0NUI0
NDg4MDBDNEM3QUEgLyogTWVkaWFDb250cm9sbGVySW50ZXJmYWNlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREY2NUNDOTE0NUI0M0E3MDBDNEM3QUEg
LyogTWVkaWFDb250cm9sbGVySW50ZXJmYWNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0RGQzM2MDUxOENBNjFDMjAwMjZFNTZGIC8qIFJlbW90
ZUNvbW1hbmRMaXN0ZW5lci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDREZDMzYwMzE4Q0E2MUMyMDAyNkU1NkYgLyogUmVtb3RlQ29tbWFuZExpc3Rl
bmVyLmNwcCAqLzsgfTsKKwkJQ0RGQzM2MDYxOENBNjFDMjAwMjZFNTZGIC8qIFJlbW90ZUNvbW1h
bmRMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0RGQzM2MDQxOENBNjFDMjAwMjZFNTZGIC8qIFJlbW90ZUNvbW1hbmRMaXN0ZW5lci5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUNERkMzNjA3
MThDQTY5NkMwMDI2RTU2RiAvKiBSZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREZDMzYwMjE4Q0E2MTYzMDAy
NkU1NkYgLyogUmVtb3RlQ29tbWFuZExpc3RlbmVySU9TLm1tICovOyB9OwogCQlDRTA1N0ZBNTEy
MjA3MzExMDBBNDc2RDUgLyogRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENFMDU3RkEzMTIyMDczMTEwMEE0
NzZENSAvKiBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwICovOyB9OwogCQlDRTA1N0ZBNjEy
MjA3MzExMDBBNDc2RDUgLyogRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRTA1N0ZBNDEyMjA3MzExMDBBNDc2
RDUgLyogRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0UwOEMzRDExNTJCNTk5QTAwMjFCOEMyIC8qIEFs
dGVybmF0aXZlVGV4dENvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0UwOEMzQ0YxNTJCNTk5QTAwMjFCOEMyIC8qIEFsdGVybmF0aXZl
VGV4dENvbnRyb2xsZXIuY3BwICovOyB9OwpAQCAtMTI5MjYsNiArMTI5MjksMTAgQEAKIAkJQ0RG
MkIwMEYxODIwNTQwNjAwRjJCNDI0IC8qIE1vY2tUcmFja3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTW9ja1RyYWNrcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlDREY2NUNDOTE0NUI0M0E3MDBDNEM3QUEgLyogTWVkaWFDb250cm9sbGVySW50ZXJmYWNlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhQ29udHJvbGxlckludGVyZmFj
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREY2NUNDQzE0NUI2QUZFMDBDNEM3
QUEgLyogSlNIVE1MTWVkaWFFbGVtZW50Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTSFRNTE1lZGlhRWxlbWVudEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUNERkMzNjAxMThDQTYxNjMwMDI2RTU2RiAvKiBSZW1vdGVDb21t
YW5kTGlzdGVuZXJJT1MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUmVtb3Rl
Q29tbWFuZExpc3RlbmVySU9TLmg7IHBhdGggPSBpb3MvUmVtb3RlQ29tbWFuZExpc3RlbmVySU9T
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERkMzNjAyMThDQTYxNjMwMDI2RTU2
RiAvKiBSZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IG5hbWUgPSBSZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MubW07IHBhdGggPSBpb3Mv
UmVtb3RlQ29tbWFuZExpc3RlbmVySU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlDREZDMzYwMzE4Q0E2MUMyMDAyNkU1NkYgLyogUmVtb3RlQ29tbWFuZExpc3RlbmVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUNvbW1hbmRMaXN0ZW5l
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERkMzNjA0MThDQTYxQzIwMDI2
RTU2RiAvKiBSZW1vdGVDb21tYW5kTGlzdGVuZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUmVtb3RlQ29tbWFuZExpc3RlbmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUNFMDU3RkEzMTIyMDczMTEwMEE0NzZENSAvKiBEb2N1bWVudE1hcmtlckNvbnRyb2xs
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRG9jdW1lbnRNYXJr
ZXJDb250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0UwNTdGQTQx
MjIwNzMxMTAwQTQ3NkQ1IC8qIERvY3VtZW50TWFya2VyQ29udHJvbGxlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0UwOEMzQ0YxNTJCNTk5QTAwMjFCOEMyIC8qIEFsdGVy
bmF0aXZlVGV4dENvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0xODAzMCw2ICsxODAzNyw4IEBACiAJCQkJQzUyNzhCMEIxN0YyMTJFQTAwM0Ey
OTk4IC8qIFBsYXRmb3JtUGFzdGVib2FyZElPUy5tbSAqLywKIAkJCQlFNDUzOTAzMjBFQUZENjM3
MDAzNjk1QzggLyogUGxhdGZvcm1TY3JlZW5JT1MubW0gKi8sCiAJCQkJQUFFMzc1NUQxNzQyOUJD
QzAwNjIwMEMyIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJJT1MubW0gKi8sCisJCQkJQ0RG
QzM2MDExOENBNjE2MzAwMjZFNTZGIC8qIFJlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5oICovLAor
CQkJCUNERkMzNjAyMThDQTYxNjMwMDI2RTU2RiAvKiBSZW1vdGVDb21tYW5kTGlzdGVuZXJJT1Mu
bW0gKi8sCiAJCQkJNDRDMzYzRUUwRkFBN0JCMzAwOTdGOENDIC8qIFJ1bnRpbWVBcHBsaWNhdGlv
bkNoZWNrc0lPUy5oICovLAogCQkJCTQ0QzM2M0VGMEZBQTdCQjMwMDk3RjhDQyAvKiBSdW50aW1l
QXBwbGljYXRpb25DaGVja3NJT1MubW0gKi8sCiAJCQkJMEYxNzc0N0UxMzc4Qjc3MTAwOURBNzZB
IC8qIFNjcm9sbEFuaW1hdG9ySU9TLmggKi8sCkBAIC0yMDk1Myw2ICsyMDk2Miw4IEBACiAJCQkJ
OTM4MEY0NzEwOUExMUFCNDAwMUZEQjM0IC8qIFdpZGdldC5jcHAgKi8sCiAJCQkJOTM4MEY0NzIw
OUExMUFCNDAwMUZEQjM0IC8qIFdpZGdldC5oICovLAogCQkJCUUxRTFCRUZGMTE1RkY2RkIwMDZG
NTJDQSAvKiBXaW5kb3dzS2V5Ym9hcmRDb2Rlcy5oICovLAorCQkJCUNERkMzNjAzMThDQTYxQzIw
MDI2RTU2RiAvKiBSZW1vdGVDb21tYW5kTGlzdGVuZXIuY3BwICovLAorCQkJCUNERkMzNjA0MThD
QTYxQzIwMDI2RTU2RiAvKiBSZW1vdGVDb21tYW5kTGlzdGVuZXIuaCAqLywKIAkJCSk7CiAJCQlw
YXRoID0gcGxhdGZvcm07CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMjU0ODAsNiAr
MjU0OTEsNyBAQAogCQkJCUU0QkJFRDREMTRGQ0RCQTEwMDNGMEI5OCAvKiBTdHlsZVJ1bGUuaCBp
biBIZWFkZXJzICovLAogCQkJCUU0OTQ2RUFGMTU2RTY0REQwMEQzMjk3RiAvKiBTdHlsZVJ1bGVJ
bXBvcnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4RUE4MDBDMEExOTUxNkUwMEE4RUY1RiAvKiBT
dHlsZVNoZWV0LmggaW4gSGVhZGVycyAqLywKKwkJCQlDREZDMzYwNjE4Q0E2MUMyMDAyNkU1NkYg
LyogUmVtb3RlQ29tbWFuZExpc3RlbmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNEY5RUVGMzE1
NkRBMDA3MDBEMjNFN0UgLyogU3R5bGVTaGVldENvbnRlbnRzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBOEVBODAwQTBBMTk1MTZFMDBBOEVGNUYgLyogU3R5bGVTaGVldExpc3QuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDNUVCNUU1MEU4MUJGNkQwMEIyNTk2NSAvKiBTdHlsZVN1cnJvdW5kRGF0YS5o
IGluIEhlYWRlcnMgKi8sCkBAIC0yNzU3MCw2ICsyNzU4Miw3IEBACiAJCQkJQTlEMjQ4MDYwRDc1
N0U3RDAwRkRGOTU5IC8qIEpTRE9NTWltZVR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTlE
MjQ4MDgwRDc1N0U3RDAwRkRGOTU5IC8qIEpTRE9NTWltZVR5cGVBcnJheS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlBOUM2RTY0NzBENzQ2NUNBMDA2NDQyRTkgLyogSlNET01NaW1lVHlwZUFycmF5
Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNERkMzNjA3MThDQTY5NkMwMDI2RTU2RiAv
KiBSZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MkNDQTlF
MjE1RTNGNjJDMDA1M0M3N0YgLyogSlNET01OYW1lZEZsb3dDb2xsZWN0aW9uLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTFBQ0U1M0RGMEE4RDE4ODEwMDIyOTQ3RCAvKiBKU0RPTVBhcnNlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlGQjkxMzkyQjE2QUU0RkMwMDAxRkU2ODIgLyogSlNET01QYXRo
LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjgxNzMsNiArMjgxODYsNyBAQAogCQkJCUE1MTZFOEI4
MTM2RTA0REIwMDc2QzNDMCAvKiBMb2NhbGl6ZWREYXRlQ2FjaGUubW0gaW4gU291cmNlcyAqLywK
IAkJCQlDMDQ2RTFBQzEyMDhBOUZFMDBCQTJDRjcgLyogTG9jYWxpemVkU3RyaW5ncy5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCQzI1QjUyQTEzMUM2RDM5MDAxODBFMTAgLyogTG9jYWxpemVkU3Ry
aW5nc01hYy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDREZDMzYwNTE4Q0E2MUMyMDAyNkU1NkYg
LyogUmVtb3RlQ29tbWFuZExpc3RlbmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDRTFDNDFD
MEQ5ODI5ODEwMDNCMDJGMiAvKiBMb2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODIz
OUUwMDA5QjNDRjhBMDBCNjA2NDEgLyogTG9nZ2luZy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkx
NDAyNjQ1RTBBRkRDMTlCMDA1OTE5RTIgLyogTG9nZ2luZ01hYy5tbSBpbiBTb3VyY2VzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggNjFiNmY4YTA3MmVm
OGM5OGExYjYzZGJjYWQ0MWQ4NjMwY2NhOWQ1My4uMGJjMTY2ZmNmYWJlNTY4YTA5OTZiYjZhYWQ3
MzYyMzRmYTQ4M2NjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3Bw
CkBAIC01ODc5LDYgKzU4NzksMTIgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpyZXN1bWVQbGF5
YmFjaygpCiAgICAgICAgIHBsYXkoKTsKIH0KIAordm9pZCBIVE1MTWVkaWFFbGVtZW50OjpkaWRS
ZWNlaXZlUmVtb3RlQ29udHJvbENvbW1hbmQoTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29t
bWFuZFR5cGUgY29tbWFuZCkKK3sKKyAgICAvLyBGSVhNRSgxMjk5MjYpOiBBZGQgUmVtb3RlIENv
bnRyb2wgc3VwcG9ydCB0byBIVE1MTWVkaWFFbGVtZW50CisgICAgVU5VU0VEX1BBUkFNKGNvbW1h
bmQpOworfQorCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
aAppbmRleCBjOTllZjk1ZTgyMWUzMjg2OTVhYzNmYTgwZGM1NGJhZGM0MjAwZmQxLi45NjVhMWI1
NTBlNWQ3ODQ5NjU3OGIwNGI2YWYzOTkwMjUwZGE4YTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuaApAQCAtNjkzLDYgKzY5Myw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVh
bCBNZWRpYVNlc3Npb246Ok1lZGlhVHlwZSBtZWRpYVR5cGUoKSBjb25zdCBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIHZvaWQgcGF1c2VQbGF5YmFjaygpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9p
ZCByZXN1bWVQbGF5YmFjaygpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBjYW5SZWNlaXZl
UmVtb3RlQ29udHJvbENvbW1hbmRzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQor
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVtb3RlQ29udHJvbENvbW1hbmQoTWVkaWFTZXNz
aW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5cGUpIG92ZXJyaWRlOwogCiAgICAgVGltZXI8SFRN
TE1lZGlhRWxlbWVudD4gbV9sb2FkVGltZXI7CiAgICAgVGltZXI8SFRNTE1lZGlhRWxlbWVudD4g
bV9wcm9ncmVzc0V2ZW50VGltZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9SZW1vdGVDb21tYW5kTGlzdGVuZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUmVt
b3RlQ29tbWFuZExpc3RlbmVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYjg2ZDEwOGM3MzgxMTExMWQ5Yjdm
MGM5MjU5OTEzZGFiYjQwMDBjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vUmVtb3RlQ29tbWFuZExpc3RlbmVyLmNwcApAQCAtMCwwICsxLDM4IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZUNvbW1hbmRMaXN0ZW5lci5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyNpZiAhUExBVEZPUk0oSU9TKQorc3RkOjp1bmlx
dWVfcHRyPFJlbW90ZUNvbW1hbmRMaXN0ZW5lcj4gUmVtb3RlQ29tbWFuZExpc3RlbmVyOjpjcmVh
dGUoUmVtb3RlQ29tbWFuZExpc3RlbmVyQ2xpZW50JiBjbGllbnQpCit7CisgICAgcmV0dXJuIHN0
ZDo6bW92ZShzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlQ29tbWFuZExpc3RlbmVyPihuZXcgUmVtb3Rl
Q29tbWFuZExpc3RlbmVyKGNsaWVudCkpKTsKK30KKyNlbmRpZgorCit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SZW1vdGVDb21tYW5kTGlzdGVuZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1JlbW90ZUNvbW1hbmRMaXN0ZW5lci5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc2NDI1
OGMwNThkYjk4YjU2N2MzNGE3MzY4ZjQ1MTI3NWI0YzA2ZjUKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SZW1vdGVDb21tYW5kTGlzdGVuZXIuaApAQCAtMCwwICsx
LDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBSZW1vdGVDb21tYW5kTGlzdGVuZXJfaAorI2RlZmlu
ZSBSZW1vdGVDb21tYW5kTGlzdGVuZXJfaAorCisjaW5jbHVkZSAiTWVkaWFTZXNzaW9uLmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUmVtb3RlQ29tbWFuZExpc3RlbmVyQ2xpZW50
IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5SZW1vdGVDb21tYW5kTGlzdGVuZXJDbGllbnQoKSB7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlbW90ZUNvbnRyb2xDb21tYW5kKE1lZGlh
U2Vzc2lvbjo6UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlKSA9IDA7Cit9OworCitjbGFzcyBSZW1v
dGVDb21tYW5kTGlzdGVuZXIgeworcHVibGljOgorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8
UmVtb3RlQ29tbWFuZExpc3RlbmVyPiBjcmVhdGUoUmVtb3RlQ29tbWFuZExpc3RlbmVyQ2xpZW50
Jik7CisgICAgdmlydHVhbCB+UmVtb3RlQ29tbWFuZExpc3RlbmVyKCkgeyB9CisKK3Byb3RlY3Rl
ZDoKKyAgICBSZW1vdGVDb21tYW5kTGlzdGVuZXIoUmVtb3RlQ29tbWFuZExpc3RlbmVyQ2xpZW50
JiBjbGllbnQpIDogbV9jbGllbnQoY2xpZW50KSB7IH07CisKKyAgICBSZW1vdGVDb21tYW5kTGlz
dGVuZXJDbGllbnQmIG1fY2xpZW50OworfTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL01lZGlhU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9NZWRpYVNlc3Npb24uY3BwCmluZGV4IGIyYjI1OTM0OWYyZGE5
ZDUyMDVkNjg4YTI3MGJhNGNhY2JmMWQxMzguLjQwMTE2MzdkZTA1Y2VhOTAyYzQ2ZTg0YzE3MzI0
MjRhODQzYjI2ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL01l
ZGlhU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vTWVkaWFT
ZXNzaW9uLmNwcApAQCAtMTI4LDUgKzEyOCwxNSBAQCBNZWRpYVNlc3Npb246Ok1lZGlhVHlwZSBN
ZWRpYVNlc3Npb246Om1lZGlhVHlwZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fY2xpZW50Lm1l
ZGlhVHlwZSgpOwogfQotICAgIAorCitib29sIE1lZGlhU2Vzc2lvbjo6Y2FuUmVjZWl2ZVJlbW90
ZUNvbnRyb2xDb21tYW5kcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY2xpZW50LmNhblJlY2Vp
dmVSZW1vdGVDb250cm9sQ29tbWFuZHMoKTsKK30KKwordm9pZCBNZWRpYVNlc3Npb246OmRpZFJl
Y2VpdlJlbW90ZUNvbnRyb2xDb21tYW5kKFJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZSBjb21tYW5k
KQoreworICAgIG1fY2xpZW50LmRpZFJlY2VpdmVSZW1vdGVDb250cm9sQ29tbWFuZChjb21tYW5k
KTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vTWVk
aWFTZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9NZWRpYVNlc3Npb24u
aAppbmRleCA3NzljN2EwYWFmODk5Y2MxZDFmMGE2MmEyODZjY2FhZDdhNjZmNTE4Li5kMjFiMmYx
ZmM5YjJiYzE0MmVlMzgyOTMwZDcwNTllOGMyOTU4NTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9NZWRpYVNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9NZWRpYVNlc3Npb24uaApAQCAtNzEsNiArNzEsMjAgQEAgcHVibGljOgog
CiAgICAgdm9pZCBwYXVzZVNlc3Npb24oKTsKIAorICAgIGVudW0gUmVtb3RlQ29udHJvbENvbW1h
bmRUeXBlIHsKKyAgICAgICAgTm9Db21tYW5kLAorICAgICAgICBQbGF5Q29tbWFuZCwKKyAgICAg
ICAgUGF1c2VDb21tYW5kLAorICAgICAgICBTdG9wQ29tbWFuZCwKKyAgICAgICAgVG9nZ2xlUGxh
eVBhdXNlQ29tbWFuZCwKKyAgICAgICAgQmVnaW5TZWVraW5nQmFja3dhcmRDb21tYW5kLAorICAg
ICAgICBFbmRTZWVraW5nQmFja3dhcmRDb21tYW5kLAorICAgICAgICBCZWdpblNlZWtpbmdGb3J3
YXJkQ29tbWFuZCwKKyAgICAgICAgRW5kU2Vla2luZ0ZvcndhcmRDb21tYW5kLAorICAgIH07Cisg
ICAgYm9vbCBjYW5SZWNlaXZlUmVtb3RlQ29udHJvbENvbW1hbmRzKCkgY29uc3Q7CisgICAgdm9p
ZCBkaWRSZWNlaXZSZW1vdGVDb250cm9sQ29tbWFuZChSZW1vdGVDb250cm9sQ29tbWFuZFR5cGUp
OworCiBwcm90ZWN0ZWQ6CiAgICAgTWVkaWFTZXNzaW9uQ2xpZW50JiBjbGllbnQoKSBjb25zdCB7
IHJldHVybiBtX2NsaWVudDsgfQogCkBAIC04OSw2ICsxMDMsOCBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBNZWRpYVNlc3Npb246Ok1lZGlhVHlwZSBtZWRpYVR5cGUoKSBjb25zdCA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIHJlc3VtZVBsYXliYWNrKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBwYXVz
ZVBsYXliYWNrKCkgPSAwOworICAgIHZpcnR1YWwgYm9vbCBjYW5SZWNlaXZlUmVtb3RlQ29udHJv
bENvbW1hbmRzKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVtb3Rl
Q29udHJvbENvbW1hbmQoTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5cGUpID0g
MDsKIAogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgfk1lZGlhU2Vzc2lvbkNsaWVudCgpIHsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vTWVkaWFTZXNzaW9uTWFu
YWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9NZWRpYVNlc3Npb25NYW5h
Z2VyLmNwcAppbmRleCAwZGJmM2YwYTM3OGFjODYzNjg2ZjcwMDRiNDBlNzY3ZDRhMmYxNTRkLi4w
NGMyMGVlYWZkODVkMGE5NmNiODQxMWNlYWNhNjI5ZjBjYTNhZDAxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcApAQCAt
NDAsNyArNDAsOCBAQCBNZWRpYVNlc3Npb25NYW5hZ2VyJiBNZWRpYVNlc3Npb25NYW5hZ2VyOjpz
aGFyZWRNYW5hZ2VyKCkKICNlbmRpZgogCiBNZWRpYVNlc3Npb25NYW5hZ2VyOjpNZWRpYVNlc3Np
b25NYW5hZ2VyKCkKLSAgICA6IG1faW50ZXJydXB0ZWQoZmFsc2UpCisgICAgOiBtX2N1cnJlbnRT
ZXNzaW9uKG51bGxwdHIpCisgICAgLCBtX2ludGVycnVwdGVkKGZhbHNlKQogewogICAgIHJlc2V0
UmVzdHJpY3Rpb25zKCk7CiB9CkBAIC0xMDEsNiArMTAyLDEyIEBAIHZvaWQgTWVkaWFTZXNzaW9u
TWFuYWdlcjo6YWRkU2Vzc2lvbihNZWRpYVNlc3Npb24mIHNlc3Npb24pCiAgICAgaWYgKG1faW50
ZXJydXB0ZWQpCiAgICAgICAgIHNlc3Npb24uc2V0U3RhdGUoTWVkaWFTZXNzaW9uOjpJbnRlcnJ1
cHRlZCk7CiAgICAgdXBkYXRlU2Vzc2lvblN0YXRlKCk7CisKKyAgICBpZiAobV9jbGllbnRzLmlz
RW1wdHkoKSB8fCAhKHNlc3Npb24ubWVkaWFUeXBlKCkgPT0gTWVkaWFTZXNzaW9uOjpWaWRlbyB8
fCBzZXNzaW9uLm1lZGlhVHlwZSgpID09IE1lZGlhU2Vzc2lvbjo6QXVkaW8pKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBmb3IgKGF1dG8mIGNsaWVudCA6IG1fY2xpZW50cykKKyAgICAgICAgY2xp
ZW50LT5zdGFydExpc3RlbmluZ0ZvclJlbW90ZUNvbnRyb2xDb21tYW5kcygpOwogfQogCiB2b2lk
IE1lZGlhU2Vzc2lvbk1hbmFnZXI6OnJlbW92ZVNlc3Npb24oTWVkaWFTZXNzaW9uJiBzZXNzaW9u
KQpAQCAtMTExLDcgKzExOCwxNSBAQCB2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXI6OnJlbW92ZVNl
c3Npb24oTWVkaWFTZXNzaW9uJiBzZXNzaW9uKQogICAgICAgICByZXR1cm47CiAKICAgICBtX3Nl
c3Npb25zLnJlbW92ZShpbmRleCk7CisgICAgaWYgKG1fY3VycmVudFNlc3Npb24gPT0gJnNlc3Np
b24pCisgICAgICAgIG1fY3VycmVudFNlc3Npb24gPSBudWxscHRyOwogICAgIHVwZGF0ZVNlc3Np
b25TdGF0ZSgpOworCisgICAgaWYgKG1fY2xpZW50cy5pc0VtcHR5KCkgfHwgIShzZXNzaW9uLm1l
ZGlhVHlwZSgpID09IE1lZGlhU2Vzc2lvbjo6VmlkZW8gfHwgc2Vzc2lvbi5tZWRpYVR5cGUoKSA9
PSBNZWRpYVNlc3Npb246OkF1ZGlvKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZm9yIChhdXRv
JiBjbGllbnQgOiBtX2NsaWVudHMpCisgICAgICAgIGNsaWVudC0+c3RhcnRMaXN0ZW5pbmdGb3JS
ZW1vdGVDb250cm9sQ29tbWFuZHMoKTsKIH0KIAogdm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyOjph
ZGRSZXN0cmljdGlvbihNZWRpYVNlc3Npb246Ok1lZGlhVHlwZSB0eXBlLCBTZXNzaW9uUmVzdHJp
Y3Rpb25zIHJlc3RyaWN0aW9uKQpAQCAtMTMyLDcgKzE0Nyw3IEBAIE1lZGlhU2Vzc2lvbk1hbmFn
ZXI6OlNlc3Npb25SZXN0cmljdGlvbnMgTWVkaWFTZXNzaW9uTWFuYWdlcjo6cmVzdHJpY3Rpb25z
KE1lZGlhCiAgICAgcmV0dXJuIG1fcmVzdHJpY3Rpb25zW3R5cGVdOwogfQogCi12b2lkIE1lZGlh
U2Vzc2lvbk1hbmFnZXI6OnNlc3Npb25XaWxsQmVnaW5QbGF5YmFjayhjb25zdCBNZWRpYVNlc3Np
b24mIHNlc3Npb24pIGNvbnN0Cit2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNlc3Npb25XaWxs
QmVnaW5QbGF5YmFjayhNZWRpYVNlc3Npb24mIHNlc3Npb24pCiB7CiAgICAgTWVkaWFTZXNzaW9u
OjpNZWRpYVR5cGUgc2Vzc2lvblR5cGUgPSBzZXNzaW9uLm1lZGlhVHlwZSgpOwogICAgIFNlc3Np
b25SZXN0cmljdGlvbnMgcmVzdHJpY3Rpb25zID0gbV9yZXN0cmljdGlvbnNbc2Vzc2lvblR5cGVd
OwpAQCAtMTQ3LDYgKzE2MiwxNCBAQCB2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNlc3Npb25X
aWxsQmVnaW5QbGF5YmFjayhjb25zdCBNZWRpYVNlc3Npb24mIHNlc3Npb24pCiAgICAgICAgIGlm
IChyZXN0cmljdGlvbnMgJiBDb25jdXJyZW50UGxheWJhY2tOb3RQZXJtaXR0ZWQpCiAgICAgICAg
ICAgICBvbmVTZXNzaW9uLT5wYXVzZVNlc3Npb24oKTsKICAgICB9CisKKyAgICBtX2N1cnJlbnRT
ZXNzaW9uID0gJnNlc3Npb247CisKKyAgICBpZiAobV9jbGllbnRzLmlzRW1wdHkoKSB8fCAhKHNl
c3Npb24ubWVkaWFUeXBlKCkgPT0gTWVkaWFTZXNzaW9uOjpWaWRlbyB8fCBzZXNzaW9uLm1lZGlh
VHlwZSgpID09IE1lZGlhU2Vzc2lvbjo6QXVkaW8pKQorICAgICAgICByZXR1cm47CisKKyAgICBm
b3IgKGF1dG8mIGNsaWVudCA6IG1fY2xpZW50cykKKyAgICAgICAgY2xpZW50LT5kaWRCZWdpblBs
YXliYWNrKCk7CiB9CiAKIGJvb2wgTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2Vzc2lvblJlc3RyaWN0
c0lubGluZVZpZGVvUGxheWJhY2soY29uc3QgTWVkaWFTZXNzaW9uJiBzZXNzaW9uKSBjb25zdApA
QCAtMTgyLDQgKzIwNSwyMiBAQCB2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXI6OnVwZGF0ZVNlc3Np
b25TdGF0ZSgpCiB9CiAjZW5kaWYKIAordm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyOjpkaWRSZWNl
aXZlUmVtb3RlQ29udHJvbENvbW1hbmQoTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFu
ZFR5cGUgY29tbWFuZCkKK3sKKyAgICBpZiAoIW1fY3VycmVudFNlc3Npb24pCisgICAgICAgIHJl
dHVybjsKKyAgICBtX2N1cnJlbnRTZXNzaW9uLT5kaWRSZWNlaXZSZW1vdGVDb250cm9sQ29tbWFu
ZChjb21tYW5kKTsKK30KKwordm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyOjphZGRDbGllbnQoTWVk
aWFTZXNzaW9uTWFuYWdlckNsaWVudCogY2xpZW50KQoreworICAgIEFTU0VSVCghbV9jbGllbnRz
LmNvbnRhaW5zKGNsaWVudCkpOworICAgIG1fY2xpZW50cy5hcHBlbmQoY2xpZW50KTsKK30KKwor
dm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyOjpyZW1vdmVDbGllbnQoTWVkaWFTZXNzaW9uTWFuYWdl
ckNsaWVudCogY2xpZW50KQoreworICAgIEFTU0VSVChtX2NsaWVudHMuY29udGFpbnMoY2xpZW50
KSk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL01l
ZGlhU2Vzc2lvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL01lZGlh
U2Vzc2lvbk1hbmFnZXIuaAppbmRleCBmNjY4YzllZGRkNDJiMDZmZjMxMDQyOWQ1OTI3ZTQ0ZDAw
ZGMxZTY3Li40ZGM3NzFhMDc0ZmYzNWJjYmQ1MDEzYTAwYjY4YWRmYWFlMjczMDkzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9NZWRpYVNlc3Npb25NYW5hZ2VyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vTWVkaWFTZXNzaW9uTWFuYWdlci5o
CkBAIC0zNiw2ICszNiwxOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBIVE1MTWVkaWFF
bGVtZW50OwogY2xhc3MgTWVkaWFTZXNzaW9uOwogCitjbGFzcyBNZWRpYVNlc3Npb25NYW5hZ2Vy
Q2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5NZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50
KCkgeyB9CisKKyAgICB2aXJ0dWFsIGJvb2wgaXNMaXN0ZW5pbmdGb3JSZW1vdGVDb250cm9sQ29t
bWFuZHMoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0YXJ0TGlzdGVuaW5nRm9yUmVtb3RlQ29u
dHJvbENvbW1hbmRzKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzdG9wTGlzdGVuaW5nRm9yUmVt
b3RlQ29udHJvbENvbW1hbmRzKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRCZWdpblBsYXli
YWNrKCkgPSAwOworCitwcm90ZWN0ZWQ6CisgICAgTWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudCgp
IHsgfQorfTsKKwogY2xhc3MgTWVkaWFTZXNzaW9uTWFuYWdlciB7CiBwdWJsaWM6CiAgICAgc3Rh
dGljIE1lZGlhU2Vzc2lvbk1hbmFnZXImIHNoYXJlZE1hbmFnZXIoKTsKQEAgLTY1LDcgKzc4LDcg
QEAgcHVibGljOgogICAgIFNlc3Npb25SZXN0cmljdGlvbnMgcmVzdHJpY3Rpb25zKE1lZGlhU2Vz
c2lvbjo6TWVkaWFUeXBlKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVzZXRSZXN0cmljdGlvbnMoKTsK
IAotICAgIHZvaWQgc2Vzc2lvbldpbGxCZWdpblBsYXliYWNrKGNvbnN0IE1lZGlhU2Vzc2lvbiYp
IGNvbnN0OworICAgIHZvaWQgc2Vzc2lvbldpbGxCZWdpblBsYXliYWNrKE1lZGlhU2Vzc2lvbiYp
OwogCiAgICAgYm9vbCBzZXNzaW9uUmVzdHJpY3RzSW5saW5lVmlkZW9QbGF5YmFjayhjb25zdCBN
ZWRpYVNlc3Npb24mKSBjb25zdDsKIApAQCAtNzMsNiArODYsMTEgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoKSB7IH0KICNlbmRpZgogCisgICAg
dm9pZCBkaWRSZWNlaXZlUmVtb3RlQ29udHJvbENvbW1hbmQoTWVkaWFTZXNzaW9uOjpSZW1vdGVD
b250cm9sQ29tbWFuZFR5cGUpOworCisgICAgdm9pZCBhZGRDbGllbnQoTWVkaWFTZXNzaW9uTWFu
YWdlckNsaWVudCopOworICAgIHZvaWQgcmVtb3ZlQ2xpZW50KE1lZGlhU2Vzc2lvbk1hbmFnZXJD
bGllbnQqKTsKKwogcHJvdGVjdGVkOgogICAgIGZyaWVuZCBjbGFzcyBNZWRpYVNlc3Npb247CiAg
ICAgZXhwbGljaXQgTWVkaWFTZXNzaW9uTWFuYWdlcigpOwpAQCAtODYsNiArMTA0LDggQEAgcHJp
dmF0ZToKICAgICBTZXNzaW9uUmVzdHJpY3Rpb25zIG1fcmVzdHJpY3Rpb25zW01lZGlhU2Vzc2lv
bjo6V2ViQXVkaW8gKyAxXTsKIAogICAgIFZlY3RvcjxNZWRpYVNlc3Npb24qPiBtX3Nlc3Npb25z
OworICAgIFZlY3RvcjxNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50Kj4gbV9jbGllbnRzOworICAg
IE1lZGlhU2Vzc2lvbiogbV9jdXJyZW50U2Vzc2lvbjsKICAgICBib29sIG1faW50ZXJydXB0ZWQ7
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVk
aW9EZXN0aW5hdGlvbk1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1
ZGlvRGVzdGluYXRpb25NYWMuaAppbmRleCBmMzVjMmE0MmEyZmJjOTdiNWMxOWVkNjk1YTI5MWFj
YTU4YjIwYjc0Li45MGUyMzE4ODU4NmUxYjI5Nzk5YTM1ODUwNDVkOTQwZGVjZjg4NzkwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9EZXN0aW5hdGlv
bk1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb0Rlc3Rp
bmF0aW9uTWFjLmgKQEAgLTYyLDYgKzYyLDggQEAgcHJpdmF0ZToKICAgICBPU1N0YXR1cyByZW5k
ZXIoVUludDMyIG51bWJlck9mRnJhbWVzLCBBdWRpb0J1ZmZlckxpc3QqIGlvRGF0YSk7CiAKICAg
ICB2aXJ0dWFsIE1lZGlhU2Vzc2lvbjo6TWVkaWFUeXBlIG1lZGlhVHlwZSgpIGNvbnN0IHsgcmV0
dXJuIE1lZGlhU2Vzc2lvbjo6V2ViQXVkaW87IH0KKyAgICB2aXJ0dWFsIGJvb2wgY2FuUmVjZWl2
ZVJlbW90ZUNvbnRyb2xDb21tYW5kcygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmly
dHVhbCB2b2lkIGRpZFJlY2VpdmVSZW1vdGVDb250cm9sQ29tbWFuZChNZWRpYVNlc3Npb246OlJl
bW90ZUNvbnRyb2xDb21tYW5kVHlwZSkgeyB9CiAKICAgICBBdWRpb1VuaXQgbV9vdXRwdXRVbml0
OwogICAgIEF1ZGlvSU9DYWxsYmFjayYgbV9jYWxsYmFjazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9SZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9SZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5jMmZmYWMwYzkwM2RjOWRkNTM4ZDMyMGZkYWVhZjgxZjA5MzU2NjU4Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1JlbW90ZUNvbW1hbmRMaXN0ZW5lcklP
Uy5oCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFJlbW90ZUNvbW1hbmRMaXN0
ZW5lcklPU19oCisjZGVmaW5lIFJlbW90ZUNvbW1hbmRMaXN0ZW5lcklPU19oCisKKyNpbmNsdWRl
ICJSZW1vdGVDb21tYW5kTGlzdGVuZXIuaCIKKworI2lmIFBMQVRGT1JNKElPUykKKworI2luY2x1
ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKworI2lmbmRlZiBfX09CSkNfXwordHlwZWRlZiB2b2lkICpp
ZDsKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJlbW90ZUNvbW1hbmRM
aXN0ZW5lcklPUyA6IHB1YmxpYyBSZW1vdGVDb21tYW5kTGlzdGVuZXIgeworcHVibGljOgorICAg
IFJlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUyhSZW1vdGVDb21tYW5kTGlzdGVuZXJDbGllbnQmKTsK
KyAgICB2aXJ0dWFsIH5SZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MoKTsKKworcHJvdGVjdGVkOgor
ICAgIFJldGFpblB0cjxpZD4gbV9wbGF5VGFyZ2V0OworICAgIFJldGFpblB0cjxpZD4gbV9wYXVz
ZVRhcmdldDsKKyAgICBSZXRhaW5QdHI8aWQ+IG1fdG9nZ2xlUGxheVBhdXNlVGFyZ2V0OworICAg
IFJldGFpblB0cjxpZD4gbV9zZWVrRm9yd2FyZFRhcmdldDsKKyAgICBSZXRhaW5QdHI8aWQ+IG1f
c2Vla0JhY2t3YXJkVGFyZ2V0OworfTsKKworfQorCisjZW5kaWYKKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUmVtb3RlQ29tbWFuZExpc3RlbmVySU9T
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1JlbW90ZUNvbW1hbmRMaXN0ZW5lcklP
Uy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi42MGJhZDBlMzliNTBlZmEyNDZkMjcyOTU3MjIzZTU3MWZiY2QwZjMz
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1JlbW90ZUNv
bW1hbmRMaXN0ZW5lcklPUy5tbQpAQCAtMCwwICsxLDkwIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2ltcG9ydCAi
Y29uZmlnLmgiCisjaW1wb3J0ICJSZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MuaCIKKworI2lmIFBM
QVRGT1JNKElPUykKKworI2ltcG9ydCA8TWVkaWFQbGF5ZXIvTVBSZW1vdGVDb21tYW5kQ2VudGVy
Lmg+CisjaW1wb3J0IDxNZWRpYVBsYXllci9NUFJlbW90ZUNvbW1hbmRFdmVudC5oPgorI2ltcG9y
dCA8TWVkaWFQbGF5ZXIvTVBSZW1vdGVDb21tYW5kLmg+CisjaW1wb3J0IDxXZWJDb3JlL1NvZnRM
aW5raW5nLmg+CisKK1NPRlRfTElOS19GUkFNRVdPUksoTWVkaWFQbGF5ZXIpCitTT0ZUX0xJTktf
Q0xBU1MoTWVkaWFQbGF5ZXIsIE1QUmVtb3RlQ29tbWFuZENlbnRlcikKK1NPRlRfTElOS19DTEFT
UyhNZWRpYVBsYXllciwgTVBTZWVrQ29tbWFuZEV2ZW50KQorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK3N0ZDo6dW5pcXVlX3B0cjxSZW1vdGVDb21tYW5kTGlzdGVuZXI+IFJlbW90ZUNvbW1hbmRM
aXN0ZW5lcjo6Y3JlYXRlKFJlbW90ZUNvbW1hbmRMaXN0ZW5lckNsaWVudCYgY2xpZW50KQorewor
ICAgIHJldHVybiBzdGQ6Om1vdmUoc3RkOjp1bmlxdWVfcHRyPFJlbW90ZUNvbW1hbmRMaXN0ZW5l
cj4obmV3IFJlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUyhjbGllbnQpKSk7Cit9CisKK1JlbW90ZUNv
bW1hbmRMaXN0ZW5lcklPUzo6UmVtb3RlQ29tbWFuZExpc3RlbmVySU9TKFJlbW90ZUNvbW1hbmRM
aXN0ZW5lckNsaWVudCYgY2xpZW50KQorICAgIDogUmVtb3RlQ29tbWFuZExpc3RlbmVyKGNsaWVu
dCkKK3sKKyAgICBNUFJlbW90ZUNvbW1hbmRDZW50ZXIgKmNlbnRlciA9IFtnZXRNUFJlbW90ZUNv
bW1hbmRDZW50ZXJDbGFzcygpIHNoYXJlZENvbW1hbmRDZW50ZXJdOworCisgICAgbV9wYXVzZVRh
cmdldCA9IFtbY2VudGVyIHBhdXNlQ29tbWFuZF0gYWRkVGFyZ2V0V2l0aEhhbmRsZXI6XihNUFJl
bW90ZUNvbW1hbmRFdmVudCAqKSB7CisgICAgICAgIG1fY2xpZW50LmRpZFJlY2VpdmVSZW1vdGVD
b250cm9sQ29tbWFuZChNZWRpYVNlc3Npb246OlBhdXNlQ29tbWFuZCk7CisgICAgICAgIHJldHVy
biBNUFJlbW90ZUNvbW1hbmRIYW5kbGVyU3RhdHVzU3VjY2VzczsKKyAgICB9XTsKKyAgICBtX3Bs
YXlUYXJnZXQgPSBbW2NlbnRlciBwbGF5Q29tbWFuZF0gYWRkVGFyZ2V0V2l0aEhhbmRsZXI6XihN
UFJlbW90ZUNvbW1hbmRFdmVudCAqKSB7CisgICAgICAgIG1fY2xpZW50LmRpZFJlY2VpdmVSZW1v
dGVDb250cm9sQ29tbWFuZChNZWRpYVNlc3Npb246OlBsYXlDb21tYW5kKTsKKyAgICAgICAgcmV0
dXJuIE1QUmVtb3RlQ29tbWFuZEhhbmRsZXJTdGF0dXNTdWNjZXNzOworICAgIH1dOworICAgIG1f
dG9nZ2xlUGxheVBhdXNlVGFyZ2V0ID0gW1tjZW50ZXIgdG9nZ2xlUGxheVBhdXNlQ29tbWFuZF0g
YWRkVGFyZ2V0V2l0aEhhbmRsZXI6XihNUFJlbW90ZUNvbW1hbmRFdmVudCAqKSB7CisgICAgICAg
IG1fY2xpZW50LmRpZFJlY2VpdmVSZW1vdGVDb250cm9sQ29tbWFuZChNZWRpYVNlc3Npb246OlRv
Z2dsZVBsYXlQYXVzZUNvbW1hbmQpOworICAgICAgICByZXR1cm4gTVBSZW1vdGVDb21tYW5kSGFu
ZGxlclN0YXR1c1N1Y2Nlc3M7CisgICAgfV07CisgICAgbV9zZWVrQmFja3dhcmRUYXJnZXQgPSBb
W2NlbnRlciBzZWVrQmFja3dhcmRDb21tYW5kXSBhZGRUYXJnZXRXaXRoSGFuZGxlcjpeKE1QUmVt
b3RlQ29tbWFuZEV2ZW50ICpldmVudCkgeworICAgICAgICBBU1NFUlQoW2V2ZW50IGlzS2luZE9m
Q2xhc3M6Z2V0TVBTZWVrQ29tbWFuZEV2ZW50Q2xhc3MoKV0pOworICAgICAgICBNUFNlZWtDb21t
YW5kRXZlbnQqIHNlZWtFdmVudCA9IHN0YXRpY19jYXN0PE1QU2Vla0NvbW1hbmRFdmVudCAqPihl
dmVudCk7CisgICAgICAgIG1fY2xpZW50LmRpZFJlY2VpdmVSZW1vdGVDb250cm9sQ29tbWFuZChb
c2Vla0V2ZW50IHR5cGVdID09IE1QU2Vla0NvbW1hbmRFdmVudFR5cGVCZWdpblNlZWtpbmcgPyBN
ZWRpYVNlc3Npb246OkJlZ2luU2Vla2luZ0JhY2t3YXJkQ29tbWFuZCA6IE1lZGlhU2Vzc2lvbjo6
RW5kU2Vla2luZ0JhY2t3YXJkQ29tbWFuZCk7CisgICAgICAgIHJldHVybiBNUFJlbW90ZUNvbW1h
bmRIYW5kbGVyU3RhdHVzU3VjY2VzczsKKyAgICB9XTsKKyAgICBtX3NlZWtGb3J3YXJkVGFyZ2V0
ID0gW1tjZW50ZXIgc2Vla0ZvcndhcmRDb21tYW5kXSBhZGRUYXJnZXRXaXRoSGFuZGxlcjpeKE1Q
UmVtb3RlQ29tbWFuZEV2ZW50ICpldmVudCkgeworICAgICAgICBBU1NFUlQoW2V2ZW50IGlzS2lu
ZE9mQ2xhc3M6Z2V0TVBTZWVrQ29tbWFuZEV2ZW50Q2xhc3MoKV0pOworICAgICAgICBNUFNlZWtD
b21tYW5kRXZlbnQqIHNlZWtFdmVudCA9IHN0YXRpY19jYXN0PE1QU2Vla0NvbW1hbmRFdmVudCAq
PihldmVudCk7CisgICAgICAgIG1fY2xpZW50LmRpZFJlY2VpdmVSZW1vdGVDb250cm9sQ29tbWFu
ZChbc2Vla0V2ZW50IHR5cGVdID09IE1QU2Vla0NvbW1hbmRFdmVudFR5cGVCZWdpblNlZWtpbmcg
PyBNZWRpYVNlc3Npb246OkJlZ2luU2Vla2luZ0ZvcndhcmRDb21tYW5kIDogTWVkaWFTZXNzaW9u
OjpFbmRTZWVraW5nRm9yd2FyZENvbW1hbmQpOworICAgICAgICByZXR1cm4gTVBSZW1vdGVDb21t
YW5kSGFuZGxlclN0YXR1c1N1Y2Nlc3M7CisgICAgfV07Cit9CisKK1JlbW90ZUNvbW1hbmRMaXN0
ZW5lcklPUzo6flJlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUygpCit7CisgICAgTVBSZW1vdGVDb21t
YW5kQ2VudGVyICpjZW50ZXIgPSBbZ2V0TVBSZW1vdGVDb21tYW5kQ2VudGVyQ2xhc3MoKSBzaGFy
ZWRDb21tYW5kQ2VudGVyXTsKKyAgICBbW2NlbnRlciBwYXVzZUNvbW1hbmRdIHJlbW92ZVRhcmdl
dDptX3BhdXNlVGFyZ2V0LmdldCgpXTsKKyAgICBbW2NlbnRlciBwbGF5Q29tbWFuZF0gcmVtb3Zl
VGFyZ2V0Om1fcGxheVRhcmdldC5nZXQoKV07CisgICAgW1tjZW50ZXIgdG9nZ2xlUGxheVBhdXNl
Q29tbWFuZF0gcmVtb3ZlVGFyZ2V0Om1fdG9nZ2xlUGxheVBhdXNlVGFyZ2V0LmdldCgpXTsKKyAg
ICBbW2NlbnRlciBzZWVrRm9yd2FyZENvbW1hbmRdIHJlbW92ZVRhcmdldDptX3NlZWtGb3J3YXJk
VGFyZ2V0LmdldCgpXTsKKyAgICBbW2NlbnRlciBzZWVrQmFja3dhcmRDb21tYW5kXSByZW1vdmVU
YXJnZXQ6bV9zZWVrQmFja3dhcmRUYXJnZXQuZ2V0KCldOworfQorCit9CisKKyNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>226620</attachid>
            <date>2014-03-13 14:05:15 -0700</date>
            <delta_ts>2014-03-13 14:20:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-129903-20140313140501.patch</filename>
            <type>text/plain</type>
            <size>34979</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY1NTUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTFhNmZmOGVjOTZjN2Iz
NGJkOTQwYWYwMWZjZTA4YWQ1YTNhZTQ2Ni4uYzUxZGUzNzYyMjNlZDk1ZTE2YmIzYjlmNTk1M2Ri
NGFlNzczYjVlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDE0LTAzLTA3ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCByZW1vdGUgY29udHJv
bCBjb21tYW5kIHN1cHBvcnQgdG8gTWVkaWFTZXNzaW9uLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5OTAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRoZSBjYXBhYmlsaXR5IHRvIHJlY2VpdmUg
cmVtb3RlIGNvbnRyb2wgY29tbWFuZHMgKGN1cnJlbnRseSBpT1Mgb25seSkgYW5kIHRvCisgICAg
ICAgIHBhc3MgdGhvc2UgY29tbWFuZHMgdGhyb3VnaCB0aGUgTWVkaWFTZXNzaW9uTWFuYWdlci4K
KworICAgICAgICBBZGQgYSBuZXcgcGxhdGZvcm0gY2xhc3Mgd2hpY2ggY2FuIGxpc3RlbiBmb3Ig
cmVtb3RlIGNvbnRyb2wgY29tbWFuZHM6CisgICAgICAgICogcGxhdGZvcm0vUmVtb3RlQ29tbWFu
ZExpc3RlbmVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVDb21tYW5kTGlz
dGVuZXI6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vUmVtb3RlQ29tbWFuZExpc3RlbmVy
Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlQ29tbWFuZExpc3RlbmVyQ2xpZW50
Ojp+UmVtb3RlQ29tbWFuZExpc3RlbmVyQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbW90
ZUNvbW1hbmRMaXN0ZW5lcjo6flJlbW90ZUNvbW1hbmRMaXN0ZW5lcik6CisgICAgICAgIChXZWJD
b3JlOjpSZW1vdGVDb21tYW5kTGlzdGVuZXI6OlJlbW90ZUNvbW1hbmRMaXN0ZW5lcik6CisgICAg
ICAgICogcGxhdGZvcm0vaW9zL1JlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5oOiBBZGRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9pb3MvUmVtb3RlQ29tbWFuZExpc3RlbmVySU9TLm1tOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlJlbW90ZUNvbW1hbmRMaXN0ZW5lcjo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUzo6UmVtb3RlQ29tbWFuZExpc3Rl
bmVySU9TKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUzo6flJl
bW90ZUNvbW1hbmRMaXN0ZW5lcklPUyk6CisKKyAgICAgICAgSGFuZGxlIHJlbW90ZSBjb250cm9s
IGNvbW1hbmQgZXZlbnRzIGluIEhUTUxNZWRpYUVsZW1lbnQgYW5kIEF1ZGlvRGVzdGluYXRpb25N
YWM6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKToKKyAgICAgICAgKiBodG1sL0hU
TUxNZWRpYUVsZW1lbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9EZXN0
aW5hdGlvbk1hYy5oOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbk1hYzo6Y2Fu
UmVjZWl2ZVJlbW90ZUNvbnRyb2xDb21tYW5kcyk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rl
c3RpbmF0aW9uTWFjOjpkaWRSZWNlaXZlUmVtb3RlQ29udHJvbENvbW1hbmQpOgorCisgICAgICAg
IFBpcGUgY29tbWFuZCBldmVudHMgdGhyb3VnaCBNZWRpYVNlc3Npb25NYW5hZ2VyOgorICAgICAg
ICAqIHBsYXRmb3JtL2F1ZGlvL01lZGlhU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVNlc3Npb246OmNhblJlY2VpdmVSZW1vdGVDb250cm9sQ29tbWFuZHMpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFTZXNzaW9uOjpkaWRSZWNlaXZSZW1vdGVDb250cm9sQ29tbWFuZCk6Cisg
ICAgICAgICogcGxhdGZvcm0vYXVkaW8vTWVkaWFTZXNzaW9uLmg6CisgICAgICAgICogcGxhdGZv
cm0vYXVkaW8vTWVkaWFTZXNzaW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVNlc3Npb25NYW5hZ2VyOjphZGRTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vz
c2lvbk1hbmFnZXI6OnJlbW92ZVNlc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNz
aW9uTWFuYWdlcjo6c2Vzc2lvbldpbGxCZWdpblBsYXliYWNrKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU2Vzc2lvbk1hbmFnZXI6OmRpZFJlY2VpdmVSZW1vdGVDb250cm9sQ29tbWFuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyOjphZGRDbGllbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlcjo6cmVtb3ZlQ2xpZW50KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9hdWRpby9NZWRpYVNlc3Npb25NYW5hZ2VyLmg6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50Ojp+TWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50OjpNZWRpYVNlc3Np
b25NYW5hZ2VyQ2xpZW50KToKKworICAgICAgICBNYWtlIHNlc3Npb25XaWxsQmVnaW4vRW5kUGxh
eWJhY2soKSBtZXRob2RzIHRha2Ugbm9uLWNvbnN0IHBhcmFtZXRlcnM6CisgICAgICAgICogcGxh
dGZvcm0vYXVkaW8vTWVkaWFTZXNzaW9uTWFuYWdlci5oOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFTZXNzaW9uTWFuYWdlcjo6c2Vzc2lvbldpbGxFbmRQbGF5YmFjayk6CisgICAgICAgICogcGxh
dGZvcm0vYXVkaW8vaW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJT1MuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhU2Vzc2lvbk1hbmFnZXJJT1M6OnNlc3Npb25XaWxsQmVnaW5QbGF5YWJhY2spOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlcklPUzo6c2Vzc2lvbldpbGxFbmRQ
bGF5YWJhY2spOgorCisgICAgICAgIEFkZCBuZXcgZmlsZXMgYW5kIGV4cG9ydCBuZXcgc3ltYm9s
czoKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTQtMDMtMDYgIEplciBOb2JsZSAgPGplci5ub2JsZUBh
cHBsZS5jb20+CiAKICAgICAgICAgW0VNRV0gRXh0ZW5kIHRoZSBsaWZldGltZSBvZiBNZWRpYUtl
eVNlc3Npb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IGU3ZDc0ZjE2N2VmOTBmMzc2Y2UxZTQ2
ZGE0NDJjYWJkOWUyYzhjMWEuLjlmYWZkYTk2MzM4MDA5OTRiMWVmN2Y4MTZiZjZhNGViZjM2M2I4
YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC03NzgsMTIgKzc3OCwxNSBAQCBfX1pON1dlYkNv
cmUxOUxheWVyRmx1c2hTY2hlZHVsZXJDMUVQTlNfMjVMYXllckZsdXNoU2NoZWR1bGVyQ2xpZW50
RQogX19aTjdXZWJDb3JlMTlMYXllckZsdXNoU2NoZWR1bGVyQzJFUE5TXzI1TGF5ZXJGbHVzaFNj
aGVkdWxlckNsaWVudEUKIF9fWk43V2ViQ29yZTE5TGF5ZXJGbHVzaFNjaGVkdWxlckQxRXYKIF9f
Wk43V2ViQ29yZTE5TGF5ZXJGbHVzaFNjaGVkdWxlckQyRXYKK19fWk43V2ViQ29yZTE5TWVkaWFT
ZXNzaW9uTWFuYWdlcjlhZGRDbGllbnRFUE5TXzI1TWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudEUK
K19fWk43V2ViQ29yZTE5TWVkaWFTZXNzaW9uTWFuYWdlcjEycmVtb3ZlQ2xpZW50RVBOU18yNU1l
ZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnRFCiBfX1pON1dlYkNvcmUxOU1lZGlhU2Vzc2lvbk1hbmFn
ZXIxMnJlc3RyaWN0aW9uc0VOU18xMk1lZGlhU2Vzc2lvbjlNZWRpYVR5cGVFCiBfX1pON1dlYkNv
cmUxOU1lZGlhU2Vzc2lvbk1hbmFnZXIxM3NoYXJlZE1hbmFnZXJFdgogX19aTjdXZWJDb3JlMTlN
ZWRpYVNlc3Npb25NYW5hZ2VyMTRhZGRSZXN0cmljdGlvbkVOU18xMk1lZGlhU2Vzc2lvbjlNZWRp
YVR5cGVFagogX19aTjdXZWJDb3JlMTlNZWRpYVNlc3Npb25NYW5hZ2VyMTVlbmRJbnRlcnJ1cHRp
b25FTlNfMTJNZWRpYVNlc3Npb24yMEVuZEludGVycnVwdGlvbkZsYWdzRQogX19aTjdXZWJDb3Jl
MTlNZWRpYVNlc3Npb25NYW5hZ2VyMTdiZWdpbkludGVycnVwdGlvbkV2CiBfX1pON1dlYkNvcmUx
OU1lZGlhU2Vzc2lvbk1hbmFnZXIxN3JlbW92ZVJlc3RyaWN0aW9uRU5TXzEyTWVkaWFTZXNzaW9u
OU1lZGlhVHlwZUVqCitfX1pON1dlYkNvcmUxOU1lZGlhU2Vzc2lvbk1hbmFnZXIzMGRpZFJlY2Vp
dmVSZW1vdGVDb250cm9sQ29tbWFuZEVOU18xMk1lZGlhU2Vzc2lvbjI0UmVtb3RlQ29udHJvbENv
bW1hbmRUeXBlRQogX19aTjdXZWJDb3JlMTlQbGF0Zm9ybUNBQW5pbWF0aW9uMTBzZXRUb1ZhbHVl
RVJLTlNfMjBUcmFuc2Zvcm1hdGlvbk1hdHJpeEUKIF9fWk43V2ViQ29yZTE5UGxhdGZvcm1DQUFu
aW1hdGlvbjZjcmVhdGVFUDE5Q0FQcm9wZXJ0eUFuaW1hdGlvbgogX19aTjdXZWJDb3JlMTlQbGF0
Zm9ybUNBQW5pbWF0aW9uRDFFdgpAQCAtODUwLDYgKzg1Myw3IEBAIF9fWk43V2ViQ29yZTIxTmV0
d29ya1N0b3JhZ2VTZXNzaW9uMjFkZWZhdWx0U3RvcmFnZVNlc3Npb25FdgogX19aTjdXZWJDb3Jl
MjFOZXR3b3JrU3RvcmFnZVNlc3Npb24yNXN3aXRjaFRvTmV3VGVzdGluZ1Nlc3Npb25FdgogX19a
TjdXZWJDb3JlMjFOZXR3b3JrU3RvcmFnZVNlc3Npb24yOGNyZWF0ZVByaXZhdGVCcm93c2luZ1Nl
c3Npb25FUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUyMVBsYXRmb3JtS2V5Ym9hcmRFdmVu
dDI0ZGlzYW1iaWd1YXRlS2V5RG93bkV2ZW50RU5TXzEzUGxhdGZvcm1FdmVudDRUeXBlRWIKK19f
Wk43V2ViQ29yZTIxUmVtb3RlQ29tbWFuZExpc3RlbmVyNmNyZWF0ZUVSTlNfMjdSZW1vdGVDb21t
YW5kTGlzdGVuZXJDbGllbnRFCiBfX1pON1dlYkNvcmUyMVJlc291cmNlTG9hZFNjaGVkdWxlcjIw
c2VydmVQZW5kaW5nUmVxdWVzdHNFTlNfMjBSZXNvdXJjZUxvYWRQcmlvcml0eUUKIF9fWk43V2Vi
Q29yZTIxUmVzb3VyY2VMb2FkU2NoZWR1bGVyMjBzZXJ2ZVBlbmRpbmdSZXF1ZXN0c0VQTlMwXzE1
SG9zdEluZm9ybWF0aW9uRU5TXzIwUmVzb3VyY2VMb2FkUHJpb3JpdHlFCiBfX1pON1dlYkNvcmUy
MVJlc291cmNlTG9hZFNjaGVkdWxlcjIxcmVzdW1lUGVuZGluZ1JlcXVlc3RzRXYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3NjMy
NmE4N2FhYTBmNzk2YzgzZDQwOTM0ODI3YTk4YTBjMTBlNzQ2Li5iNDExYTQwNWU5YjE5NjgyNmEw
Mjg3MmQzZDJiMTU5N2E2Mjk5OWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01NjEwLDYgKzU2MTAsOSBAQAogCQlDREYyQjAx
OTE4MjA1NDA3MDBGMkI0MjQgLyogTW9ja1RyYWNrcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RGMkIwMEYxODIwNTQwNjAwRjJCNDI0IC8qIE1vY2tU
cmFja3MuaCAqLzsgfTsKIAkJQ0RGNjVDQzgxNDVCMUU3NTAwQzRDN0FBIC8qIE1lZGlhQ29udHJv
bGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Qy
N0Y2RTQxNDU3Njc4NzAwNzgyMDdEIC8qIE1lZGlhQ29udHJvbGxlci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNERjY1Q0NBMTQ1QjQ0ODgwMEM0
QzdBQSAvKiBNZWRpYUNvbnRyb2xsZXJJbnRlcmZhY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERjY1Q0M5MTQ1QjQzQTcwMEM0QzdBQSAvKiBNZWRp
YUNvbnRyb2xsZXJJbnRlcmZhY2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQlDREZDMzYwNTE4Q0E2MUMyMDAyNkU1NkYgLyogUmVtb3RlQ29tbWFu
ZExpc3RlbmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENERkMzNjAzMThDQTYxQzIwMDI2RTU2RiAvKiBSZW1vdGVDb21tYW5kTGlzdGVuZXIuY3Bw
ICovOyB9OworCQlDREZDMzYwNjE4Q0E2MUMyMDAyNkU1NkYgLyogUmVtb3RlQ29tbWFuZExpc3Rl
bmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREZD
MzYwNDE4Q0E2MUMyMDAyNkU1NkYgLyogUmVtb3RlQ29tbWFuZExpc3RlbmVyLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0RGQzM2MDcxOENBNjk2
QzAwMjZFNTZGIC8qIFJlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERkMzNjAyMThDQTYxNjMwMDI2RTU2RiAv
KiBSZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MubW0gKi87IH07CiAJCUNFMDU3RkE1MTIyMDczMTEw
MEE0NzZENSAvKiBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0UwNTdGQTMxMjIwNzMxMTAwQTQ3NkQ1IC8q
IERvY3VtZW50TWFya2VyQ29udHJvbGxlci5jcHAgKi87IH07CiAJCUNFMDU3RkE2MTIyMDczMTEw
MEE0NzZENSAvKiBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENFMDU3RkE0MTIyMDczMTEwMEE0NzZENSAvKiBE
b2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQlDRTA4QzNEMTE1MkI1OTlBMDAyMUI4QzIgLyogQWx0ZXJuYXRp
dmVUZXh0Q29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRTA4QzNDRjE1MkI1OTlBMDAyMUI4QzIgLyogQWx0ZXJuYXRpdmVUZXh0Q29u
dHJvbGxlci5jcHAgKi87IH07CkBAIC0xMjkzMCw2ICsxMjkzMywxMCBAQAogCQlDREYyQjAwRjE4
MjA1NDA2MDBGMkI0MjQgLyogTW9ja1RyYWNrcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBNb2NrVHJhY2tzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERjY1
Q0M5MTQ1QjQzQTcwMEM0QzdBQSAvKiBNZWRpYUNvbnRyb2xsZXJJbnRlcmZhY2UuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFDb250cm9sbGVySW50ZXJmYWNlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERjY1Q0NDMTQ1QjZBRkUwMEM0QzdBQSAvKiBK
U0hUTUxNZWRpYUVsZW1lbnRDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNIVE1MTWVkaWFFbGVtZW50Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQ0RGQzM2MDExOENBNjE2MzAwMjZFNTZGIC8qIFJlbW90ZUNvbW1hbmRMaXN0
ZW5lcklPUy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBSZW1vdGVDb21tYW5k
TGlzdGVuZXJJT1MuaDsgcGF0aCA9IGlvcy9SZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RGQzM2MDIxOENBNjE2MzAwMjZFNTZGIC8qIFJl
bW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgbmFtZSA9IFJlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5tbTsgcGF0aCA9IGlvcy9SZW1vdGVD
b21tYW5kTGlzdGVuZXJJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERkMz
NjAzMThDQTYxQzIwMDI2RTU2RiAvKiBSZW1vdGVDb21tYW5kTGlzdGVuZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQ29tbWFuZExpc3RlbmVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RGQzM2MDQxOENBNjFDMjAwMjZFNTZGIC8q
IFJlbW90ZUNvbW1hbmRMaXN0ZW5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSZW1vdGVDb21tYW5kTGlzdGVuZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
Q0UwNTdGQTMxMjIwNzMxMTAwQTQ3NkQ1IC8qIERvY3VtZW50TWFya2VyQ29udHJvbGxlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEb2N1bWVudE1hcmtlckNvbnRy
b2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRTA1N0ZBNDEyMjA3MzEx
MDBBNDc2RDUgLyogRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IERvY3VtZW50TWFya2VyQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDRTA4QzNDRjE1MkI1OTlBMDAyMUI4QzIgLyogQWx0ZXJuYXRpdmVU
ZXh0Q29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBB
bHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTE4MDM2LDYgKzE4MDQzLDggQEAKIAkJCQlDNTI3OEIwQjE3RjIxMkVBMDAzQTI5OTggLyog
UGxhdGZvcm1QYXN0ZWJvYXJkSU9TLm1tICovLAogCQkJCUU0NTM5MDMyMEVBRkQ2MzcwMDM2OTVD
OCAvKiBQbGF0Zm9ybVNjcmVlbklPUy5tbSAqLywKIAkJCQlBQUUzNzU1RDE3NDI5QkNDMDA2MjAw
QzIgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcklPUy5tbSAqLywKKwkJCQlDREZDMzYwMTE4
Q0E2MTYzMDAyNkU1NkYgLyogUmVtb3RlQ29tbWFuZExpc3RlbmVySU9TLmggKi8sCisJCQkJQ0RG
QzM2MDIxOENBNjE2MzAwMjZFNTZGIC8qIFJlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5tbSAqLywK
IAkJCQk0NEMzNjNFRTBGQUE3QkIzMDA5N0Y4Q0MgLyogUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tz
SU9TLmggKi8sCiAJCQkJNDRDMzYzRUYwRkFBN0JCMzAwOTdGOENDIC8qIFJ1bnRpbWVBcHBsaWNh
dGlvbkNoZWNrc0lPUy5tbSAqLywKIAkJCQkwRjE3NzQ3RTEzNzhCNzcxMDA5REE3NkEgLyogU2Ny
b2xsQW5pbWF0b3JJT1MuaCAqLywKQEAgLTIwOTU5LDYgKzIwOTY4LDggQEAKIAkJCQk5MzgwRjQ3
MTA5QTExQUI0MDAxRkRCMzQgLyogV2lkZ2V0LmNwcCAqLywKIAkJCQk5MzgwRjQ3MjA5QTExQUI0
MDAxRkRCMzQgLyogV2lkZ2V0LmggKi8sCiAJCQkJRTFFMUJFRkYxMTVGRjZGQjAwNkY1MkNBIC8q
IFdpbmRvd3NLZXlib2FyZENvZGVzLmggKi8sCisJCQkJQ0RGQzM2MDMxOENBNjFDMjAwMjZFNTZG
IC8qIFJlbW90ZUNvbW1hbmRMaXN0ZW5lci5jcHAgKi8sCisJCQkJQ0RGQzM2MDQxOENBNjFDMjAw
MjZFNTZGIC8qIFJlbW90ZUNvbW1hbmRMaXN0ZW5lci5oICovLAogCQkJKTsKIAkJCXBhdGggPSBw
bGF0Zm9ybTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yNTQ4Nyw2ICsyNTQ5OCw3
IEBACiAJCQkJRTRCQkVENEQxNEZDREJBMTAwM0YwQjk4IC8qIFN0eWxlUnVsZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRTQ5NDZFQUYxNTZFNjRERDAwRDMyOTdGIC8qIFN0eWxlUnVsZUltcG9ydC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQThFQTgwMEMwQTE5NTE2RTAwQThFRjVGIC8qIFN0eWxlU2hl
ZXQuaCBpbiBIZWFkZXJzICovLAorCQkJCUNERkMzNjA2MThDQTYxQzIwMDI2RTU2RiAvKiBSZW1v
dGVDb21tYW5kTGlzdGVuZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0RjlFRUYzMTU2REEwMDcw
MEQyM0U3RSAvKiBTdHlsZVNoZWV0Q29udGVudHMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4RUE4
MDBBMEExOTUxNkUwMEE4RUY1RiAvKiBTdHlsZVNoZWV0TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkM1RUI1RTUwRTgxQkY2RDAwQjI1OTY1IC8qIFN0eWxlU3Vycm91bmREYXRhLmggaW4gSGVh
ZGVycyAqLywKQEAgLTI3NTc3LDYgKzI3NTg5LDcgQEAKIAkJCQlBOUQyNDgwNjBENzU3RTdEMDBG
REY5NTkgLyogSlNET01NaW1lVHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOUQyNDgwODBE
NzU3RTdEMDBGREY5NTkgLyogSlNET01NaW1lVHlwZUFycmF5LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUE5QzZFNjQ3MEQ3NDY1Q0EwMDY0NDJFOSAvKiBKU0RPTU1pbWVUeXBlQXJyYXlDdXN0b20u
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0RGQzM2MDcxOENBNjk2QzAwMjZFNTZGIC8qIFJlbW90
ZUNvbW1hbmRMaXN0ZW5lcklPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUyQ0NBOUUyMTVFM0Y2
MkMwMDUzQzc3RiAvKiBKU0RPTU5hbWVkRmxvd0NvbGxlY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMUFDRTUzREYwQThEMTg4MTAwMjI5NDdEIC8qIEpTRE9NUGFyc2VyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUZCOTEzOTJCMTZBRTRGQzAwMDFGRTY4MiAvKiBKU0RPTVBhdGguY3BwIGlu
IFNvdXJjZXMgKi8sCkBAIC0yODE4MCw2ICsyODE5Myw3IEBACiAJCQkJQTUxNkU4QjgxMzZFMDRE
QjAwNzZDM0MwIC8qIExvY2FsaXplZERhdGVDYWNoZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUMw
NDZFMUFDMTIwOEE5RkUwMEJBMkNGNyAvKiBMb2NhbGl6ZWRTdHJpbmdzLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUJDMjVCNTJBMTMxQzZEMzkwMDE4MEUxMCAvKiBMb2NhbGl6ZWRTdHJpbmdzTWFj
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNERkMzNjA1MThDQTYxQzIwMDI2RTU2RiAvKiBSZW1v
dGVDb21tYW5kTGlzdGVuZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNFMUM0MUMwRDk4Mjk4
MTAwM0IwMkYyIC8qIExvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4MjM5RTAwMDlC
M0NGOEEwMEI2MDY0MSAvKiBMb2dnaW5nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0MDI2NDVF
MEFGREMxOUIwMDU5MTlFMiAvKiBMb2dnaW5nTWFjLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBiN2Y1ZWFhMDE1YWExZGY4NTRk
NjFlODE0ZWQ4NzA5MTdmOWI4MDAxLi41ZWUwMTgwNmUxMmY1MTAwMGE4Yjg1ZGUzNWRkYTk3YmFm
ZDRiMjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTU4
ODcsNiArNTg4NywxMiBAQCBTdHJpbmcgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFTZXNzaW9uVGl0
bGUoKSBjb25zdAogICAgIHJldHVybiBtX2N1cnJlbnRTcmM7CiB9CiAKK3ZvaWQgSFRNTE1lZGlh
RWxlbWVudDo6ZGlkUmVjZWl2ZVJlbW90ZUNvbnRyb2xDb21tYW5kKE1lZGlhU2Vzc2lvbjo6UmVt
b3RlQ29udHJvbENvbW1hbmRUeXBlIGNvbW1hbmQpCit7CisgICAgLy8gRklYTUUoMTI5OTI2KTog
QWRkIFJlbW90ZSBDb250cm9sIHN1cHBvcnQgdG8gSFRNTE1lZGlhRWxlbWVudAorICAgIFVOVVNF
RF9QQVJBTShjb21tYW5kKTsKK30KKwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmgKaW5kZXggMjE0YzQwYjFlMTJkOGVmMDgwN2NiYWJhZDQyZDEwMGY1ZTZi
NGM0Yy4uZTE4YmZiZTcyZjNjYTdmYzhjNTVlM2MwMzJhZGNkMGZmZjkwMGEwNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKQEAgLTY5Nyw2ICs2OTcsOCBAQCBwcml2YXRl
OgogICAgIHZpcnR1YWwgU3RyaW5nIG1lZGlhU2Vzc2lvblRpdGxlKCkgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCBkb3VibGUgbWVkaWFTZXNzaW9uRHVyYXRpb24oKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBkdXJhdGlvbigpOyB9CiAgICAgdmlydHVhbCBkb3VibGUgbWVkaWFTZXNzaW9u
Q3VycmVudFRpbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBjdXJyZW50VGltZSgpOyB9Cisg
ICAgdmlydHVhbCBib29sIGNhblJlY2VpdmVSZW1vdGVDb250cm9sQ29tbWFuZHMoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZW1v
dGVDb250cm9sQ29tbWFuZChNZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZSkg
b3ZlcnJpZGU7CiAKICAgICBUaW1lcjxIVE1MTWVkaWFFbGVtZW50PiBtX2xvYWRUaW1lcjsKICAg
ICBUaW1lcjxIVE1MTWVkaWFFbGVtZW50PiBtX3Byb2dyZXNzRXZlbnRUaW1lcjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1JlbW90ZUNvbW1hbmRMaXN0ZW5lci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SZW1vdGVDb21tYW5kTGlzdGVuZXIuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjFiODZkMTA4YzczODExMTExZDliN2YwYzkyNTk5MTNkYWJiNDAwMGMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SZW1vdGVDb21tYW5kTGlzdGVuZXIuY3Bw
CkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiUmVtb3RlQ29tbWFuZExpc3RlbmVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworI2lm
ICFQTEFURk9STShJT1MpCitzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlQ29tbWFuZExpc3RlbmVyPiBS
ZW1vdGVDb21tYW5kTGlzdGVuZXI6OmNyZWF0ZShSZW1vdGVDb21tYW5kTGlzdGVuZXJDbGllbnQm
IGNsaWVudCkKK3sKKyAgICByZXR1cm4gc3RkOjptb3ZlKHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVD
b21tYW5kTGlzdGVuZXI+KG5ldyBSZW1vdGVDb21tYW5kTGlzdGVuZXIoY2xpZW50KSkpOworfQor
I2VuZGlmCisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1JlbW90ZUNv
bW1hbmRMaXN0ZW5lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUmVtb3RlQ29tbWFuZExp
c3RlbmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNzY0MjU4YzA1OGRiOThiNTY3YzM0YTczNjhmNDUxMjc1YjRj
MDZmNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1JlbW90ZUNv
bW1hbmRMaXN0ZW5lci5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFJlbW90
ZUNvbW1hbmRMaXN0ZW5lcl9oCisjZGVmaW5lIFJlbW90ZUNvbW1hbmRMaXN0ZW5lcl9oCisKKyNp
bmNsdWRlICJNZWRpYVNlc3Npb24uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBS
ZW1vdGVDb21tYW5kTGlzdGVuZXJDbGllbnQgeworcHVibGljOgorICAgIHZpcnR1YWwgflJlbW90
ZUNvbW1hbmRMaXN0ZW5lckNsaWVudCgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZl
UmVtb3RlQ29udHJvbENvbW1hbmQoTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5
cGUpID0gMDsKK307CisKK2NsYXNzIFJlbW90ZUNvbW1hbmRMaXN0ZW5lciB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVDb21tYW5kTGlzdGVuZXI+IGNyZWF0ZShS
ZW1vdGVDb21tYW5kTGlzdGVuZXJDbGllbnQmKTsKKyAgICB2aXJ0dWFsIH5SZW1vdGVDb21tYW5k
TGlzdGVuZXIoKSB7IH0KKworcHJvdGVjdGVkOgorICAgIFJlbW90ZUNvbW1hbmRMaXN0ZW5lcihS
ZW1vdGVDb21tYW5kTGlzdGVuZXJDbGllbnQmIGNsaWVudCkgOiBtX2NsaWVudChjbGllbnQpIHsg
fTsKKworICAgIFJlbW90ZUNvbW1hbmRMaXN0ZW5lckNsaWVudCYgbV9jbGllbnQ7Cit9OworCit9
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vTWVk
aWFTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL01lZGlhU2Vzc2lv
bi5jcHAKaW5kZXggM2JlYTFlMDEwOWI2YzRmYjM2ZTNkZTM2OTI1ZmRiZGRmMWNmZjY0NS4uNTk5
ZTZmOWI0MTI5MmI1OGFhNDIzMjkxMjJkNTg0MTczMjA0MTg5MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vTWVkaWFTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9NZWRpYVNlc3Npb24uY3BwCkBAIC0xNDUsNCArMTQ1LDE0IEBA
IGRvdWJsZSBNZWRpYVNlc3Npb246OmN1cnJlbnRUaW1lKCkgY29uc3QKICAgICByZXR1cm4gbV9j
bGllbnQubWVkaWFTZXNzaW9uQ3VycmVudFRpbWUoKTsKIH0KICAgICAKK2Jvb2wgTWVkaWFTZXNz
aW9uOjpjYW5SZWNlaXZlUmVtb3RlQ29udHJvbENvbW1hbmRzKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9jbGllbnQuY2FuUmVjZWl2ZVJlbW90ZUNvbnRyb2xDb21tYW5kcygpOworfQorCit2b2lk
IE1lZGlhU2Vzc2lvbjo6ZGlkUmVjZWl2ZVJlbW90ZUNvbnRyb2xDb21tYW5kKFJlbW90ZUNvbnRy
b2xDb21tYW5kVHlwZSBjb21tYW5kKQoreworICAgIG1fY2xpZW50LmRpZFJlY2VpdmVSZW1vdGVD
b250cm9sQ29tbWFuZChjb21tYW5kKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vTWVkaWFTZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9NZWRpYVNlc3Npb24uaAppbmRleCBkNTgxYjdjODQyZGZkZjdkZjlmYzdhZTVlOTA4
ODRhMTAzNjI1NzQzLi4zYThjMWNjYjQyNDIxMmM5YWQyZjU4NGYxZmY1ODJkNjJkMTA3MjViIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9NZWRpYVNlc3Npb24uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9NZWRpYVNlc3Npb24uaApAQCAtNzYs
NiArNzYsMjAgQEAgcHVibGljOgogICAgIGRvdWJsZSBkdXJhdGlvbigpIGNvbnN0OwogICAgIGRv
dWJsZSBjdXJyZW50VGltZSgpIGNvbnN0OwogCisgICAgZW51bSBSZW1vdGVDb250cm9sQ29tbWFu
ZFR5cGUgeworICAgICAgICBOb0NvbW1hbmQsCisgICAgICAgIFBsYXlDb21tYW5kLAorICAgICAg
ICBQYXVzZUNvbW1hbmQsCisgICAgICAgIFN0b3BDb21tYW5kLAorICAgICAgICBUb2dnbGVQbGF5
UGF1c2VDb21tYW5kLAorICAgICAgICBCZWdpblNlZWtpbmdCYWNrd2FyZENvbW1hbmQsCisgICAg
ICAgIEVuZFNlZWtpbmdCYWNrd2FyZENvbW1hbmQsCisgICAgICAgIEJlZ2luU2Vla2luZ0Zvcndh
cmRDb21tYW5kLAorICAgICAgICBFbmRTZWVraW5nRm9yd2FyZENvbW1hbmQsCisgICAgfTsKKyAg
ICBib29sIGNhblJlY2VpdmVSZW1vdGVDb250cm9sQ29tbWFuZHMoKSBjb25zdDsKKyAgICB2b2lk
IGRpZFJlY2VpdmVSZW1vdGVDb250cm9sQ29tbWFuZChSZW1vdGVDb250cm9sQ29tbWFuZFR5cGUp
OworCiBwcm90ZWN0ZWQ6CiAgICAgTWVkaWFTZXNzaW9uQ2xpZW50JiBjbGllbnQoKSBjb25zdCB7
IHJldHVybiBtX2NsaWVudDsgfQogCkBAIC05NCwxMSArMTA4LDE0IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIE1lZGlhU2Vzc2lvbjo6TWVkaWFUeXBlIG1lZGlhVHlwZSgpIGNvbnN0ID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgcmVzdW1lUGxheWJhY2soKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHBh
dXNlUGxheWJhY2soKSA9IDA7Ci0gICAgCisKICAgICB2aXJ0dWFsIFN0cmluZyBtZWRpYVNlc3Np
b25UaXRsZSgpIGNvbnN0IHsgcmV0dXJuIFN0cmluZygpOyB9CiAgICAgdmlydHVhbCBkb3VibGUg
bWVkaWFTZXNzaW9uRHVyYXRpb24oKSBjb25zdCB7IHJldHVybiBNZWRpYVBsYXllcjo6aW52YWxp
ZFRpbWUoKTsgfQogICAgIHZpcnR1YWwgZG91YmxlIG1lZGlhU2Vzc2lvbkN1cnJlbnRUaW1lKCkg
Y29uc3QgeyByZXR1cm4gTWVkaWFQbGF5ZXI6OmludmFsaWRUaW1lKCk7IH0KICAgICAKKyAgICB2
aXJ0dWFsIGJvb2wgY2FuUmVjZWl2ZVJlbW90ZUNvbnRyb2xDb21tYW5kcygpIGNvbnN0ID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlbW90ZUNvbnRyb2xDb21tYW5kKE1lZGlhU2Vz
c2lvbjo6UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlKSA9IDA7CisKIHByb3RlY3RlZDoKICAgICB2
aXJ0dWFsIH5NZWRpYVNlc3Npb25DbGllbnQoKSB7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL01lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCmluZGV4IDNiMDVl
NjhiOTU1MzFlZDIyYzg5ZDI4YzE3ZDMyYmUxOGI0MThjZTUuLmRiN2UzMTIyNzc2Y2UyNTAxNTY5
OTM5NjVmOGZkYjMxYjQyNzQ0NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL01lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL01lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCkBAIC0xMDIsNiArMTAyLDEyIEBAIHZv
aWQgTWVkaWFTZXNzaW9uTWFuYWdlcjo6YWRkU2Vzc2lvbihNZWRpYVNlc3Npb24mIHNlc3Npb24p
CiAgICAgaWYgKG1faW50ZXJydXB0ZWQpCiAgICAgICAgIHNlc3Npb24uc2V0U3RhdGUoTWVkaWFT
ZXNzaW9uOjpJbnRlcnJ1cHRlZCk7CiAgICAgdXBkYXRlU2Vzc2lvblN0YXRlKCk7CisKKyAgICBp
ZiAobV9jbGllbnRzLmlzRW1wdHkoKSB8fCAhKHNlc3Npb24ubWVkaWFUeXBlKCkgPT0gTWVkaWFT
ZXNzaW9uOjpWaWRlbyB8fCBzZXNzaW9uLm1lZGlhVHlwZSgpID09IE1lZGlhU2Vzc2lvbjo6QXVk
aW8pKQorICAgICAgICByZXR1cm47CisKKyAgICBmb3IgKGF1dG8mIGNsaWVudCA6IG1fY2xpZW50
cykKKyAgICAgICAgY2xpZW50LT5zdGFydExpc3RlbmluZ0ZvclJlbW90ZUNvbnRyb2xDb21tYW5k
cygpOwogfQogCiB2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXI6OnJlbW92ZVNlc3Npb24oTWVkaWFT
ZXNzaW9uJiBzZXNzaW9uKQpAQCAtMTE1LDcgKzEyMSwxNSBAQCB2b2lkIE1lZGlhU2Vzc2lvbk1h
bmFnZXI6OnJlbW92ZVNlc3Npb24oTWVkaWFTZXNzaW9uJiBzZXNzaW9uKQogICAgICAgICBzZXRD
dXJyZW50U2Vzc2lvbihudWxscHRyKTsKICAgICAKICAgICBtX3Nlc3Npb25zLnJlbW92ZShpbmRl
eCk7CisgICAgaWYgKG1fYWN0aXZlU2Vzc2lvbiA9PSAmc2Vzc2lvbikKKyAgICAgICAgbV9hY3Rp
dmVTZXNzaW9uID0gbnVsbHB0cjsKICAgICB1cGRhdGVTZXNzaW9uU3RhdGUoKTsKKworICAgIGlm
IChtX2NsaWVudHMuaXNFbXB0eSgpIHx8ICEoc2Vzc2lvbi5tZWRpYVR5cGUoKSA9PSBNZWRpYVNl
c3Npb246OlZpZGVvIHx8IHNlc3Npb24ubWVkaWFUeXBlKCkgPT0gTWVkaWFTZXNzaW9uOjpBdWRp
bykpCisgICAgICAgIHJldHVybjsKKworICAgIGZvciAoYXV0byYgY2xpZW50IDogbV9jbGllbnRz
KQorICAgICAgICBjbGllbnQtPnN0YXJ0TGlzdGVuaW5nRm9yUmVtb3RlQ29udHJvbENvbW1hbmRz
KCk7CiB9CiAKIHZvaWQgTWVkaWFTZXNzaW9uTWFuYWdlcjo6YWRkUmVzdHJpY3Rpb24oTWVkaWFT
ZXNzaW9uOjpNZWRpYVR5cGUgdHlwZSwgU2Vzc2lvblJlc3RyaWN0aW9ucyByZXN0cmljdGlvbikK
QEAgLTEzNiw3ICsxNTAsNyBAQCBNZWRpYVNlc3Npb25NYW5hZ2VyOjpTZXNzaW9uUmVzdHJpY3Rp
b25zIE1lZGlhU2Vzc2lvbk1hbmFnZXI6OnJlc3RyaWN0aW9ucyhNZWRpYQogICAgIHJldHVybiBt
X3Jlc3RyaWN0aW9uc1t0eXBlXTsKIH0KIAotdm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXNz
aW9uV2lsbEJlZ2luUGxheWJhY2soY29uc3QgTWVkaWFTZXNzaW9uJiBzZXNzaW9uKQordm9pZCBN
ZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXNzaW9uV2lsbEJlZ2luUGxheWJhY2soTWVkaWFTZXNzaW9u
JiBzZXNzaW9uKQogewogICAgIHNldEN1cnJlbnRTZXNzaW9uKCZzZXNzaW9uKTsKICAgICAKQEAg
LTE1Myw2ICsxNjcsMTQgQEAgdm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXNzaW9uV2lsbEJl
Z2luUGxheWJhY2soY29uc3QgTWVkaWFTZXNzaW9uJiBzZXNzaW9uKQogICAgICAgICBpZiAocmVz
dHJpY3Rpb25zICYgQ29uY3VycmVudFBsYXliYWNrTm90UGVybWl0dGVkKQogICAgICAgICAgICAg
b25lU2Vzc2lvbi0+cGF1c2VTZXNzaW9uKCk7CiAgICAgfQorCisgICAgbV9hY3RpdmVTZXNzaW9u
ID0gJnNlc3Npb247CisKKyAgICBpZiAobV9jbGllbnRzLmlzRW1wdHkoKSB8fCAhKHNlc3Npb24u
bWVkaWFUeXBlKCkgPT0gTWVkaWFTZXNzaW9uOjpWaWRlbyB8fCBzZXNzaW9uLm1lZGlhVHlwZSgp
ID09IE1lZGlhU2Vzc2lvbjo6QXVkaW8pKQorICAgICAgICByZXR1cm47CisKKyAgICBmb3IgKGF1
dG8mIGNsaWVudCA6IG1fY2xpZW50cykKKyAgICAgICAgY2xpZW50LT5kaWRCZWdpblBsYXliYWNr
KCk7CiB9CiAKIGJvb2wgTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2Vzc2lvblJlc3RyaWN0c0lubGlu
ZVZpZGVvUGxheWJhY2soY29uc3QgTWVkaWFTZXNzaW9uJiBzZXNzaW9uKSBjb25zdApAQCAtMTg4
LDQgKzIxMCwyMyBAQCB2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXI6OnVwZGF0ZVNlc3Npb25TdGF0
ZSgpCiB9CiAjZW5kaWYKIAordm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyOjpkaWRSZWNlaXZlUmVt
b3RlQ29udHJvbENvbW1hbmQoTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5cGUg
Y29tbWFuZCkKK3sKKyAgICBpZiAoIW1fYWN0aXZlU2Vzc2lvbikKKyAgICAgICAgcmV0dXJuOwor
ICAgIG1fYWN0aXZlU2Vzc2lvbi0+ZGlkUmVjZWl2ZVJlbW90ZUNvbnRyb2xDb21tYW5kKGNvbW1h
bmQpOworfQorCit2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXI6OmFkZENsaWVudChNZWRpYVNlc3Np
b25NYW5hZ2VyQ2xpZW50KiBjbGllbnQpCit7CisgICAgQVNTRVJUKCFtX2NsaWVudHMuY29udGFp
bnMoY2xpZW50KSk7CisgICAgbV9jbGllbnRzLmFwcGVuZChjbGllbnQpOworfQorCit2b2lkIE1l
ZGlhU2Vzc2lvbk1hbmFnZXI6OnJlbW92ZUNsaWVudChNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50
KiBjbGllbnQpCit7CisgICAgQVNTRVJUKG1fY2xpZW50cy5jb250YWlucyhjbGllbnQpKTsKKyAg
ICBtX2NsaWVudHMucmVtb3ZlKG1fY2xpZW50cy5maW5kKGNsaWVudCkpOworfQorCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9NZWRpYVNlc3Npb25NYW5hZ2Vy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9NZWRpYVNlc3Npb25NYW5hZ2VyLmgK
aW5kZXggNjBiMTU3OTMwY2ZhODA0ZjBhN2Y2ZmQ3OWEwMGRlOWMwZDI5ZWU5My4uYmRjZmQwMGM0
NzJhY2UwYTE4ZWY0MmI0MmE3MTRjMDIwMzQyMjEwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vTWVkaWFTZXNzaW9uTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL01lZGlhU2Vzc2lvbk1hbmFnZXIuaApAQCAtMzYsNiArMzYsMTkg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgSFRNTE1lZGlhRWxlbWVudDsKIGNsYXNzIE1l
ZGlhU2Vzc2lvbjsKIAorY2xhc3MgTWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudCB7CitwdWJsaWM6
CisgICAgdmlydHVhbCB+TWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudCgpIHsgfQorCisgICAgdmly
dHVhbCBib29sIGlzTGlzdGVuaW5nRm9yUmVtb3RlQ29udHJvbENvbW1hbmRzKCkgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBzdGFydExpc3RlbmluZ0ZvclJlbW90ZUNvbnRyb2xDb21tYW5kcygpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgc3RvcExpc3RlbmluZ0ZvclJlbW90ZUNvbnRyb2xDb21tYW5k
cygpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQmVnaW5QbGF5YmFjaygpID0gMDsKKworcHJv
dGVjdGVkOgorICAgIE1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnQoKSB7IH0KK307CisKIGNsYXNz
IE1lZGlhU2Vzc2lvbk1hbmFnZXIgewogcHVibGljOgogICAgIHN0YXRpYyBNZWRpYVNlc3Npb25N
YW5hZ2VyJiBzaGFyZWRNYW5hZ2VyKCk7CkBAIC02NSw4ICs3OCw4IEBAIHB1YmxpYzoKICAgICBT
ZXNzaW9uUmVzdHJpY3Rpb25zIHJlc3RyaWN0aW9ucyhNZWRpYVNlc3Npb246Ok1lZGlhVHlwZSk7
CiAgICAgdmlydHVhbCB2b2lkIHJlc2V0UmVzdHJpY3Rpb25zKCk7CiAKLSAgICB2aXJ0dWFsIHZv
aWQgc2Vzc2lvbldpbGxCZWdpblBsYXliYWNrKGNvbnN0IE1lZGlhU2Vzc2lvbiYpOwotICAgIHZp
cnR1YWwgdm9pZCBzZXNzaW9uV2lsbEVuZFBsYXliYWNrKGNvbnN0IE1lZGlhU2Vzc2lvbiYpIHsg
fQorICAgIHZpcnR1YWwgdm9pZCBzZXNzaW9uV2lsbEJlZ2luUGxheWJhY2soTWVkaWFTZXNzaW9u
Jik7CisgICAgdmlydHVhbCB2b2lkIHNlc3Npb25XaWxsRW5kUGxheWJhY2soTWVkaWFTZXNzaW9u
JikgeyB9CiAgICAgCiAgICAgYm9vbCBzZXNzaW9uUmVzdHJpY3RzSW5saW5lVmlkZW9QbGF5YmFj
ayhjb25zdCBNZWRpYVNlc3Npb24mKSBjb25zdDsKIApAQCAtNzQsNiArODcsMTEgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoKSB7IH0KICNlbmRp
ZgogCisgICAgdm9pZCBkaWRSZWNlaXZlUmVtb3RlQ29udHJvbENvbW1hbmQoTWVkaWFTZXNzaW9u
OjpSZW1vdGVDb250cm9sQ29tbWFuZFR5cGUpOworCisgICAgdm9pZCBhZGRDbGllbnQoTWVkaWFT
ZXNzaW9uTWFuYWdlckNsaWVudCopOworICAgIHZvaWQgcmVtb3ZlQ2xpZW50KE1lZGlhU2Vzc2lv
bk1hbmFnZXJDbGllbnQqKTsKKwogcHJvdGVjdGVkOgogICAgIGZyaWVuZCBjbGFzcyBNZWRpYVNl
c3Npb247CiAgICAgZXhwbGljaXQgTWVkaWFTZXNzaW9uTWFuYWdlcigpOwpAQCAtODEsNyArOTks
NyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBhZGRTZXNzaW9uKE1lZGlhU2Vzc2lvbiYpOwogICAg
IHZvaWQgcmVtb3ZlU2Vzc2lvbihNZWRpYVNlc3Npb24mKTsKICAgICAKLSAgICB2b2lkIHNldEN1
cnJlbnRTZXNzaW9uKGNvbnN0IE1lZGlhU2Vzc2lvbiogc2Vzc2lvbikgeyBtX2FjdGl2ZVNlc3Np
b24gPSBzZXNzaW9uOyB9CisgICAgdm9pZCBzZXRDdXJyZW50U2Vzc2lvbihNZWRpYVNlc3Npb24q
IHNlc3Npb24pIHsgbV9hY3RpdmVTZXNzaW9uID0gc2Vzc2lvbjsgfQogICAgIGNvbnN0IE1lZGlh
U2Vzc2lvbiogY3VycmVudFNlc3Npb24oKSB7IHJldHVybiBtX2FjdGl2ZVNlc3Npb247IH0KICAg
ICAKIHByaXZhdGU6CkBAIC05MCw3ICsxMDgsOCBAQCBwcml2YXRlOgogICAgIFNlc3Npb25SZXN0
cmljdGlvbnMgbV9yZXN0cmljdGlvbnNbTWVkaWFTZXNzaW9uOjpXZWJBdWRpbyArIDFdOwogCiAg
ICAgVmVjdG9yPE1lZGlhU2Vzc2lvbio+IG1fc2Vzc2lvbnM7Ci0gICAgY29uc3QgTWVkaWFTZXNz
aW9uKiBtX2FjdGl2ZVNlc3Npb247CisgICAgVmVjdG9yPE1lZGlhU2Vzc2lvbk1hbmFnZXJDbGll
bnQqPiBtX2NsaWVudHM7CisgICAgTWVkaWFTZXNzaW9uKiBtX2FjdGl2ZVNlc3Npb247CiAgICAg
Ym9vbCBtX2ludGVycnVwdGVkOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vaW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJT1MuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLmgKaW5kZXggZWJkNTY1
YWY4ODJjMjZlYTFmYjcxYWMyNWYzNjYwMjEyMTkwZDUzZS4uNzAxNTdmYjBiYzU0OTcyMGRjNDI2
ZTM5YjlmNWQ3OGMxODhhNWZmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vaW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJT1MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5oCkBAIC00OCw4ICs0OCw4
IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIE1lZGlhU2Vzc2lvbk1hbmFn
ZXI7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2Vzc2lvbldpbGxCZWdpblBsYXliYWNrKGNvbnN0IE1l
ZGlhU2Vzc2lvbiYpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBzZXNzaW9uV2lsbEVuZFBs
YXliYWNrKGNvbnN0IE1lZGlhU2Vzc2lvbiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBz
ZXNzaW9uV2lsbEJlZ2luUGxheWJhY2soTWVkaWFTZXNzaW9uJikgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIHNlc3Npb25XaWxsRW5kUGxheWJhY2soTWVkaWFTZXNzaW9uJikgb3ZlcnJpZGU7
CiAgICAgCiAgICAgdm9pZCB1cGRhdGVOb3dQbGF5aW5nSW5mbygpOwogICAgIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJ
T1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFu
YWdlcklPUy5tbQppbmRleCAyNzlmMDZkZDFjNjQyMmQ0NzZjNjEzZjJlYWY4MWFmN2VkMWM5OTM0
Li4zYjBmNTc0ZmIxYzEwZTBjM2FkNTgyODUyNGNiYzYxMDU3OTRmZWExIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFu
YWdlcklPUy5tbQpAQCAtMTM2LDEzICsxMzYsMTMgQEAgdm9pZCBNZWRpYVNlc3Npb25NYW5hZ2Vy
aU9TOjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoKQogfQogI2VuZGlmCiAgICAgCi12b2lkIE1l
ZGlhU2Vzc2lvbk1hbmFnZXJpT1M6OnNlc3Npb25XaWxsQmVnaW5QbGF5YmFjayhjb25zdCBNZWRp
YVNlc3Npb24mIHNlc3Npb24pCit2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJpT1M6OnNlc3Npb25X
aWxsQmVnaW5QbGF5YmFjayhNZWRpYVNlc3Npb24mIHNlc3Npb24pCiB7CiAgICAgTWVkaWFTZXNz
aW9uTWFuYWdlcjo6c2Vzc2lvbldpbGxCZWdpblBsYXliYWNrKHNlc3Npb24pOwogICAgIHVwZGF0
ZU5vd1BsYXlpbmdJbmZvKCk7CiB9CiAgICAgCi12b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJpT1M6
OnNlc3Npb25XaWxsRW5kUGxheWJhY2soY29uc3QgTWVkaWFTZXNzaW9uJiBzZXNzaW9uKQordm9p
ZCBNZWRpYVNlc3Npb25NYW5hZ2VyaU9TOjpzZXNzaW9uV2lsbEVuZFBsYXliYWNrKE1lZGlhU2Vz
c2lvbiYgc2Vzc2lvbikKIHsKICAgICBNZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXNzaW9uV2lsbEVu
ZFBsYXliYWNrKHNlc3Npb24pOwogICAgIHVwZGF0ZU5vd1BsYXlpbmdJbmZvKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9EZXN0aW5hdGlvbk1h
Yy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvRGVzdGluYXRpb25N
YWMuaAppbmRleCBmMzVjMmE0MmEyZmJjOTdiNWMxOWVkNjk1YTI5MWFjYTU4YjIwYjc0Li45MGUy
MzE4ODU4NmUxYjI5Nzk5YTM1ODUwNDVkOTQwZGVjZjg4NzkwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9EZXN0aW5hdGlvbk1hYy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb0Rlc3RpbmF0aW9uTWFjLmgKQEAg
LTYyLDYgKzYyLDggQEAgcHJpdmF0ZToKICAgICBPU1N0YXR1cyByZW5kZXIoVUludDMyIG51bWJl
ck9mRnJhbWVzLCBBdWRpb0J1ZmZlckxpc3QqIGlvRGF0YSk7CiAKICAgICB2aXJ0dWFsIE1lZGlh
U2Vzc2lvbjo6TWVkaWFUeXBlIG1lZGlhVHlwZSgpIGNvbnN0IHsgcmV0dXJuIE1lZGlhU2Vzc2lv
bjo6V2ViQXVkaW87IH0KKyAgICB2aXJ0dWFsIGJvb2wgY2FuUmVjZWl2ZVJlbW90ZUNvbnRyb2xD
b21tYW5kcygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVSZW1vdGVDb250cm9sQ29tbWFuZChNZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21t
YW5kVHlwZSkgeyB9CiAKICAgICBBdWRpb1VuaXQgbV9vdXRwdXRVbml0OwogICAgIEF1ZGlvSU9D
YWxsYmFjayYgbV9jYWxsYmFjazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9SZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9SZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMmZmYWMwYzkwM2Rj
OWRkNTM4ZDMyMGZkYWVhZjgxZjA5MzU2NjU4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL1JlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5oCkBAIC0wLDAgKzEs
NTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKKyAqLworCisjaWZuZGVmIFJlbW90ZUNvbW1hbmRMaXN0ZW5lcklPU19oCisjZGVm
aW5lIFJlbW90ZUNvbW1hbmRMaXN0ZW5lcklPU19oCisKKyNpbmNsdWRlICJSZW1vdGVDb21tYW5k
TGlzdGVuZXIuaCIKKworI2lmIFBMQVRGT1JNKElPUykKKworI2luY2x1ZGUgPHd0Zi9SZXRhaW5Q
dHIuaD4KKworI2lmbmRlZiBfX09CSkNfXwordHlwZWRlZiB2b2lkICppZDsKKyNlbmRpZgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUyA6IHB1
YmxpYyBSZW1vdGVDb21tYW5kTGlzdGVuZXIgeworcHVibGljOgorICAgIFJlbW90ZUNvbW1hbmRM
aXN0ZW5lcklPUyhSZW1vdGVDb21tYW5kTGlzdGVuZXJDbGllbnQmKTsKKyAgICB2aXJ0dWFsIH5S
ZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MoKTsKKworcHJvdGVjdGVkOgorICAgIFJldGFpblB0cjxp
ZD4gbV9wbGF5VGFyZ2V0OworICAgIFJldGFpblB0cjxpZD4gbV9wYXVzZVRhcmdldDsKKyAgICBS
ZXRhaW5QdHI8aWQ+IG1fdG9nZ2xlUGxheVBhdXNlVGFyZ2V0OworICAgIFJldGFpblB0cjxpZD4g
bV9zZWVrRm9yd2FyZFRhcmdldDsKKyAgICBSZXRhaW5QdHI8aWQ+IG1fc2Vla0JhY2t3YXJkVGFy
Z2V0OworfTsKKworfQorCisjZW5kaWYKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvUmVtb3RlQ29tbWFuZExpc3RlbmVySU9TLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL1JlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5tbQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42MGJhZDBlMzliNTBlZmEyNDZkMjcyOTU3MjIzZTU3MWZiY2QwZjMzCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1JlbW90ZUNvbW1hbmRMaXN0ZW5lcklP
Uy5tbQpAQCAtMCwwICsxLDkwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1w
b3J0ICJSZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MuaCIKKworI2lmIFBMQVRGT1JNKElPUykKKwor
I2ltcG9ydCA8TWVkaWFQbGF5ZXIvTVBSZW1vdGVDb21tYW5kQ2VudGVyLmg+CisjaW1wb3J0IDxN
ZWRpYVBsYXllci9NUFJlbW90ZUNvbW1hbmRFdmVudC5oPgorI2ltcG9ydCA8TWVkaWFQbGF5ZXIv
TVBSZW1vdGVDb21tYW5kLmg+CisjaW1wb3J0IDxXZWJDb3JlL1NvZnRMaW5raW5nLmg+CisKK1NP
RlRfTElOS19GUkFNRVdPUksoTWVkaWFQbGF5ZXIpCitTT0ZUX0xJTktfQ0xBU1MoTWVkaWFQbGF5
ZXIsIE1QUmVtb3RlQ29tbWFuZENlbnRlcikKK1NPRlRfTElOS19DTEFTUyhNZWRpYVBsYXllciwg
TVBTZWVrQ29tbWFuZEV2ZW50KQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0ZDo6dW5pcXVl
X3B0cjxSZW1vdGVDb21tYW5kTGlzdGVuZXI+IFJlbW90ZUNvbW1hbmRMaXN0ZW5lcjo6Y3JlYXRl
KFJlbW90ZUNvbW1hbmRMaXN0ZW5lckNsaWVudCYgY2xpZW50KQoreworICAgIHJldHVybiBzdGQ6
Om1vdmUoc3RkOjp1bmlxdWVfcHRyPFJlbW90ZUNvbW1hbmRMaXN0ZW5lcj4obmV3IFJlbW90ZUNv
bW1hbmRMaXN0ZW5lcklPUyhjbGllbnQpKSk7Cit9CisKK1JlbW90ZUNvbW1hbmRMaXN0ZW5lcklP
Uzo6UmVtb3RlQ29tbWFuZExpc3RlbmVySU9TKFJlbW90ZUNvbW1hbmRMaXN0ZW5lckNsaWVudCYg
Y2xpZW50KQorICAgIDogUmVtb3RlQ29tbWFuZExpc3RlbmVyKGNsaWVudCkKK3sKKyAgICBNUFJl
bW90ZUNvbW1hbmRDZW50ZXIgKmNlbnRlciA9IFtnZXRNUFJlbW90ZUNvbW1hbmRDZW50ZXJDbGFz
cygpIHNoYXJlZENvbW1hbmRDZW50ZXJdOworCisgICAgbV9wYXVzZVRhcmdldCA9IFtbY2VudGVy
IHBhdXNlQ29tbWFuZF0gYWRkVGFyZ2V0V2l0aEhhbmRsZXI6XihNUFJlbW90ZUNvbW1hbmRFdmVu
dCAqKSB7CisgICAgICAgIG1fY2xpZW50LmRpZFJlY2VpdmVSZW1vdGVDb250cm9sQ29tbWFuZChN
ZWRpYVNlc3Npb246OlBhdXNlQ29tbWFuZCk7CisgICAgICAgIHJldHVybiBNUFJlbW90ZUNvbW1h
bmRIYW5kbGVyU3RhdHVzU3VjY2VzczsKKyAgICB9XTsKKyAgICBtX3BsYXlUYXJnZXQgPSBbW2Nl
bnRlciBwbGF5Q29tbWFuZF0gYWRkVGFyZ2V0V2l0aEhhbmRsZXI6XihNUFJlbW90ZUNvbW1hbmRF
dmVudCAqKSB7CisgICAgICAgIG1fY2xpZW50LmRpZFJlY2VpdmVSZW1vdGVDb250cm9sQ29tbWFu
ZChNZWRpYVNlc3Npb246OlBsYXlDb21tYW5kKTsKKyAgICAgICAgcmV0dXJuIE1QUmVtb3RlQ29t
bWFuZEhhbmRsZXJTdGF0dXNTdWNjZXNzOworICAgIH1dOworICAgIG1fdG9nZ2xlUGxheVBhdXNl
VGFyZ2V0ID0gW1tjZW50ZXIgdG9nZ2xlUGxheVBhdXNlQ29tbWFuZF0gYWRkVGFyZ2V0V2l0aEhh
bmRsZXI6XihNUFJlbW90ZUNvbW1hbmRFdmVudCAqKSB7CisgICAgICAgIG1fY2xpZW50LmRpZFJl
Y2VpdmVSZW1vdGVDb250cm9sQ29tbWFuZChNZWRpYVNlc3Npb246OlRvZ2dsZVBsYXlQYXVzZUNv
bW1hbmQpOworICAgICAgICByZXR1cm4gTVBSZW1vdGVDb21tYW5kSGFuZGxlclN0YXR1c1N1Y2Nl
c3M7CisgICAgfV07CisgICAgbV9zZWVrQmFja3dhcmRUYXJnZXQgPSBbW2NlbnRlciBzZWVrQmFj
a3dhcmRDb21tYW5kXSBhZGRUYXJnZXRXaXRoSGFuZGxlcjpeKE1QUmVtb3RlQ29tbWFuZEV2ZW50
ICpldmVudCkgeworICAgICAgICBBU1NFUlQoW2V2ZW50IGlzS2luZE9mQ2xhc3M6Z2V0TVBTZWVr
Q29tbWFuZEV2ZW50Q2xhc3MoKV0pOworICAgICAgICBNUFNlZWtDb21tYW5kRXZlbnQqIHNlZWtF
dmVudCA9IHN0YXRpY19jYXN0PE1QU2Vla0NvbW1hbmRFdmVudCAqPihldmVudCk7CisgICAgICAg
IG1fY2xpZW50LmRpZFJlY2VpdmVSZW1vdGVDb250cm9sQ29tbWFuZChbc2Vla0V2ZW50IHR5cGVd
ID09IE1QU2Vla0NvbW1hbmRFdmVudFR5cGVCZWdpblNlZWtpbmcgPyBNZWRpYVNlc3Npb246OkJl
Z2luU2Vla2luZ0JhY2t3YXJkQ29tbWFuZCA6IE1lZGlhU2Vzc2lvbjo6RW5kU2Vla2luZ0JhY2t3
YXJkQ29tbWFuZCk7CisgICAgICAgIHJldHVybiBNUFJlbW90ZUNvbW1hbmRIYW5kbGVyU3RhdHVz
U3VjY2VzczsKKyAgICB9XTsKKyAgICBtX3NlZWtGb3J3YXJkVGFyZ2V0ID0gW1tjZW50ZXIgc2Vl
a0ZvcndhcmRDb21tYW5kXSBhZGRUYXJnZXRXaXRoSGFuZGxlcjpeKE1QUmVtb3RlQ29tbWFuZEV2
ZW50ICpldmVudCkgeworICAgICAgICBBU1NFUlQoW2V2ZW50IGlzS2luZE9mQ2xhc3M6Z2V0TVBT
ZWVrQ29tbWFuZEV2ZW50Q2xhc3MoKV0pOworICAgICAgICBNUFNlZWtDb21tYW5kRXZlbnQqIHNl
ZWtFdmVudCA9IHN0YXRpY19jYXN0PE1QU2Vla0NvbW1hbmRFdmVudCAqPihldmVudCk7CisgICAg
ICAgIG1fY2xpZW50LmRpZFJlY2VpdmVSZW1vdGVDb250cm9sQ29tbWFuZChbc2Vla0V2ZW50IHR5
cGVdID09IE1QU2Vla0NvbW1hbmRFdmVudFR5cGVCZWdpblNlZWtpbmcgPyBNZWRpYVNlc3Npb246
OkJlZ2luU2Vla2luZ0ZvcndhcmRDb21tYW5kIDogTWVkaWFTZXNzaW9uOjpFbmRTZWVraW5nRm9y
d2FyZENvbW1hbmQpOworICAgICAgICByZXR1cm4gTVBSZW1vdGVDb21tYW5kSGFuZGxlclN0YXR1
c1N1Y2Nlc3M7CisgICAgfV07Cit9CisKK1JlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUzo6flJlbW90
ZUNvbW1hbmRMaXN0ZW5lcklPUygpCit7CisgICAgTVBSZW1vdGVDb21tYW5kQ2VudGVyICpjZW50
ZXIgPSBbZ2V0TVBSZW1vdGVDb21tYW5kQ2VudGVyQ2xhc3MoKSBzaGFyZWRDb21tYW5kQ2VudGVy
XTsKKyAgICBbW2NlbnRlciBwYXVzZUNvbW1hbmRdIHJlbW92ZVRhcmdldDptX3BhdXNlVGFyZ2V0
LmdldCgpXTsKKyAgICBbW2NlbnRlciBwbGF5Q29tbWFuZF0gcmVtb3ZlVGFyZ2V0Om1fcGxheVRh
cmdldC5nZXQoKV07CisgICAgW1tjZW50ZXIgdG9nZ2xlUGxheVBhdXNlQ29tbWFuZF0gcmVtb3Zl
VGFyZ2V0Om1fdG9nZ2xlUGxheVBhdXNlVGFyZ2V0LmdldCgpXTsKKyAgICBbW2NlbnRlciBzZWVr
Rm9yd2FyZENvbW1hbmRdIHJlbW92ZVRhcmdldDptX3NlZWtGb3J3YXJkVGFyZ2V0LmdldCgpXTsK
KyAgICBbW2NlbnRlciBzZWVrQmFja3dhcmRDb21tYW5kXSByZW1vdmVUYXJnZXQ6bV9zZWVrQmFj
a3dhcmRUYXJnZXQuZ2V0KCldOworfQorCit9CisKKyNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>226622</attachid>
            <date>2014-03-13 14:20:19 -0700</date>
            <delta_ts>2014-03-13 14:31:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-129903-20140313142006.patch</filename>
            <type>text/plain</type>
            <size>34979</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY1NTUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTFhNmZmOGVjOTZjN2Iz
NGJkOTQwYWYwMWZjZTA4YWQ1YTNhZTQ2Ni4uYzUxZGUzNzYyMjNlZDk1ZTE2YmIzYjlmNTk1M2Ri
NGFlNzczYjVlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDE0LTAzLTA3ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCByZW1vdGUgY29udHJv
bCBjb21tYW5kIHN1cHBvcnQgdG8gTWVkaWFTZXNzaW9uLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5OTAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRoZSBjYXBhYmlsaXR5IHRvIHJlY2VpdmUg
cmVtb3RlIGNvbnRyb2wgY29tbWFuZHMgKGN1cnJlbnRseSBpT1Mgb25seSkgYW5kIHRvCisgICAg
ICAgIHBhc3MgdGhvc2UgY29tbWFuZHMgdGhyb3VnaCB0aGUgTWVkaWFTZXNzaW9uTWFuYWdlci4K
KworICAgICAgICBBZGQgYSBuZXcgcGxhdGZvcm0gY2xhc3Mgd2hpY2ggY2FuIGxpc3RlbiBmb3Ig
cmVtb3RlIGNvbnRyb2wgY29tbWFuZHM6CisgICAgICAgICogcGxhdGZvcm0vUmVtb3RlQ29tbWFu
ZExpc3RlbmVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVDb21tYW5kTGlz
dGVuZXI6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vUmVtb3RlQ29tbWFuZExpc3RlbmVy
Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlQ29tbWFuZExpc3RlbmVyQ2xpZW50
Ojp+UmVtb3RlQ29tbWFuZExpc3RlbmVyQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbW90
ZUNvbW1hbmRMaXN0ZW5lcjo6flJlbW90ZUNvbW1hbmRMaXN0ZW5lcik6CisgICAgICAgIChXZWJD
b3JlOjpSZW1vdGVDb21tYW5kTGlzdGVuZXI6OlJlbW90ZUNvbW1hbmRMaXN0ZW5lcik6CisgICAg
ICAgICogcGxhdGZvcm0vaW9zL1JlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5oOiBBZGRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9pb3MvUmVtb3RlQ29tbWFuZExpc3RlbmVySU9TLm1tOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlJlbW90ZUNvbW1hbmRMaXN0ZW5lcjo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUzo6UmVtb3RlQ29tbWFuZExpc3Rl
bmVySU9TKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUzo6flJl
bW90ZUNvbW1hbmRMaXN0ZW5lcklPUyk6CisKKyAgICAgICAgSGFuZGxlIHJlbW90ZSBjb250cm9s
IGNvbW1hbmQgZXZlbnRzIGluIEhUTUxNZWRpYUVsZW1lbnQgYW5kIEF1ZGlvRGVzdGluYXRpb25N
YWM6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKToKKyAgICAgICAgKiBodG1sL0hU
TUxNZWRpYUVsZW1lbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9EZXN0
aW5hdGlvbk1hYy5oOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbk1hYzo6Y2Fu
UmVjZWl2ZVJlbW90ZUNvbnRyb2xDb21tYW5kcyk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rl
c3RpbmF0aW9uTWFjOjpkaWRSZWNlaXZlUmVtb3RlQ29udHJvbENvbW1hbmQpOgorCisgICAgICAg
IFBpcGUgY29tbWFuZCBldmVudHMgdGhyb3VnaCBNZWRpYVNlc3Npb25NYW5hZ2VyOgorICAgICAg
ICAqIHBsYXRmb3JtL2F1ZGlvL01lZGlhU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVNlc3Npb246OmNhblJlY2VpdmVSZW1vdGVDb250cm9sQ29tbWFuZHMpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFTZXNzaW9uOjpkaWRSZWNlaXZSZW1vdGVDb250cm9sQ29tbWFuZCk6Cisg
ICAgICAgICogcGxhdGZvcm0vYXVkaW8vTWVkaWFTZXNzaW9uLmg6CisgICAgICAgICogcGxhdGZv
cm0vYXVkaW8vTWVkaWFTZXNzaW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVNlc3Npb25NYW5hZ2VyOjphZGRTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vz
c2lvbk1hbmFnZXI6OnJlbW92ZVNlc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNz
aW9uTWFuYWdlcjo6c2Vzc2lvbldpbGxCZWdpblBsYXliYWNrKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU2Vzc2lvbk1hbmFnZXI6OmRpZFJlY2VpdmVSZW1vdGVDb250cm9sQ29tbWFuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyOjphZGRDbGllbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlcjo6cmVtb3ZlQ2xpZW50KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9hdWRpby9NZWRpYVNlc3Npb25NYW5hZ2VyLmg6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50Ojp+TWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50OjpNZWRpYVNlc3Np
b25NYW5hZ2VyQ2xpZW50KToKKworICAgICAgICBNYWtlIHNlc3Npb25XaWxsQmVnaW4vRW5kUGxh
eWJhY2soKSBtZXRob2RzIHRha2Ugbm9uLWNvbnN0IHBhcmFtZXRlcnM6CisgICAgICAgICogcGxh
dGZvcm0vYXVkaW8vTWVkaWFTZXNzaW9uTWFuYWdlci5oOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFTZXNzaW9uTWFuYWdlcjo6c2Vzc2lvbldpbGxFbmRQbGF5YmFjayk6CisgICAgICAgICogcGxh
dGZvcm0vYXVkaW8vaW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJT1MuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhU2Vzc2lvbk1hbmFnZXJJT1M6OnNlc3Npb25XaWxsQmVnaW5QbGF5YWJhY2spOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlcklPUzo6c2Vzc2lvbldpbGxFbmRQ
bGF5YWJhY2spOgorCisgICAgICAgIEFkZCBuZXcgZmlsZXMgYW5kIGV4cG9ydCBuZXcgc3ltYm9s
czoKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTQtMDMtMDYgIEplciBOb2JsZSAgPGplci5ub2JsZUBh
cHBsZS5jb20+CiAKICAgICAgICAgW0VNRV0gRXh0ZW5kIHRoZSBsaWZldGltZSBvZiBNZWRpYUtl
eVNlc3Npb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IGU3ZDc0ZjE2N2VmOTBmMzc2Y2UxZTQ2
ZGE0NDJjYWJkOWUyYzhjMWEuLjlmYWZkYTk2MzM4MDA5OTRiMWVmN2Y4MTZiZjZhNGViZjM2M2I4
YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC03NzgsMTIgKzc3OCwxNSBAQCBfX1pON1dlYkNv
cmUxOUxheWVyRmx1c2hTY2hlZHVsZXJDMUVQTlNfMjVMYXllckZsdXNoU2NoZWR1bGVyQ2xpZW50
RQogX19aTjdXZWJDb3JlMTlMYXllckZsdXNoU2NoZWR1bGVyQzJFUE5TXzI1TGF5ZXJGbHVzaFNj
aGVkdWxlckNsaWVudEUKIF9fWk43V2ViQ29yZTE5TGF5ZXJGbHVzaFNjaGVkdWxlckQxRXYKIF9f
Wk43V2ViQ29yZTE5TGF5ZXJGbHVzaFNjaGVkdWxlckQyRXYKK19fWk43V2ViQ29yZTE5TWVkaWFT
ZXNzaW9uTWFuYWdlcjlhZGRDbGllbnRFUE5TXzI1TWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudEUK
K19fWk43V2ViQ29yZTE5TWVkaWFTZXNzaW9uTWFuYWdlcjEycmVtb3ZlQ2xpZW50RVBOU18yNU1l
ZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnRFCiBfX1pON1dlYkNvcmUxOU1lZGlhU2Vzc2lvbk1hbmFn
ZXIxMnJlc3RyaWN0aW9uc0VOU18xMk1lZGlhU2Vzc2lvbjlNZWRpYVR5cGVFCiBfX1pON1dlYkNv
cmUxOU1lZGlhU2Vzc2lvbk1hbmFnZXIxM3NoYXJlZE1hbmFnZXJFdgogX19aTjdXZWJDb3JlMTlN
ZWRpYVNlc3Npb25NYW5hZ2VyMTRhZGRSZXN0cmljdGlvbkVOU18xMk1lZGlhU2Vzc2lvbjlNZWRp
YVR5cGVFagogX19aTjdXZWJDb3JlMTlNZWRpYVNlc3Npb25NYW5hZ2VyMTVlbmRJbnRlcnJ1cHRp
b25FTlNfMTJNZWRpYVNlc3Npb24yMEVuZEludGVycnVwdGlvbkZsYWdzRQogX19aTjdXZWJDb3Jl
MTlNZWRpYVNlc3Npb25NYW5hZ2VyMTdiZWdpbkludGVycnVwdGlvbkV2CiBfX1pON1dlYkNvcmUx
OU1lZGlhU2Vzc2lvbk1hbmFnZXIxN3JlbW92ZVJlc3RyaWN0aW9uRU5TXzEyTWVkaWFTZXNzaW9u
OU1lZGlhVHlwZUVqCitfX1pON1dlYkNvcmUxOU1lZGlhU2Vzc2lvbk1hbmFnZXIzMGRpZFJlY2Vp
dmVSZW1vdGVDb250cm9sQ29tbWFuZEVOU18xMk1lZGlhU2Vzc2lvbjI0UmVtb3RlQ29udHJvbENv
bW1hbmRUeXBlRQogX19aTjdXZWJDb3JlMTlQbGF0Zm9ybUNBQW5pbWF0aW9uMTBzZXRUb1ZhbHVl
RVJLTlNfMjBUcmFuc2Zvcm1hdGlvbk1hdHJpeEUKIF9fWk43V2ViQ29yZTE5UGxhdGZvcm1DQUFu
aW1hdGlvbjZjcmVhdGVFUDE5Q0FQcm9wZXJ0eUFuaW1hdGlvbgogX19aTjdXZWJDb3JlMTlQbGF0
Zm9ybUNBQW5pbWF0aW9uRDFFdgpAQCAtODUwLDYgKzg1Myw3IEBAIF9fWk43V2ViQ29yZTIxTmV0
d29ya1N0b3JhZ2VTZXNzaW9uMjFkZWZhdWx0U3RvcmFnZVNlc3Npb25FdgogX19aTjdXZWJDb3Jl
MjFOZXR3b3JrU3RvcmFnZVNlc3Npb24yNXN3aXRjaFRvTmV3VGVzdGluZ1Nlc3Npb25FdgogX19a
TjdXZWJDb3JlMjFOZXR3b3JrU3RvcmFnZVNlc3Npb24yOGNyZWF0ZVByaXZhdGVCcm93c2luZ1Nl
c3Npb25FUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUyMVBsYXRmb3JtS2V5Ym9hcmRFdmVu
dDI0ZGlzYW1iaWd1YXRlS2V5RG93bkV2ZW50RU5TXzEzUGxhdGZvcm1FdmVudDRUeXBlRWIKK19f
Wk43V2ViQ29yZTIxUmVtb3RlQ29tbWFuZExpc3RlbmVyNmNyZWF0ZUVSTlNfMjdSZW1vdGVDb21t
YW5kTGlzdGVuZXJDbGllbnRFCiBfX1pON1dlYkNvcmUyMVJlc291cmNlTG9hZFNjaGVkdWxlcjIw
c2VydmVQZW5kaW5nUmVxdWVzdHNFTlNfMjBSZXNvdXJjZUxvYWRQcmlvcml0eUUKIF9fWk43V2Vi
Q29yZTIxUmVzb3VyY2VMb2FkU2NoZWR1bGVyMjBzZXJ2ZVBlbmRpbmdSZXF1ZXN0c0VQTlMwXzE1
SG9zdEluZm9ybWF0aW9uRU5TXzIwUmVzb3VyY2VMb2FkUHJpb3JpdHlFCiBfX1pON1dlYkNvcmUy
MVJlc291cmNlTG9hZFNjaGVkdWxlcjIxcmVzdW1lUGVuZGluZ1JlcXVlc3RzRXYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3NjMy
NmE4N2FhYTBmNzk2YzgzZDQwOTM0ODI3YTk4YTBjMTBlNzQ2Li5iNDExYTQwNWU5YjE5NjgyNmEw
Mjg3MmQzZDJiMTU5N2E2Mjk5OWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01NjEwLDYgKzU2MTAsOSBAQAogCQlDREYyQjAx
OTE4MjA1NDA3MDBGMkI0MjQgLyogTW9ja1RyYWNrcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RGMkIwMEYxODIwNTQwNjAwRjJCNDI0IC8qIE1vY2tU
cmFja3MuaCAqLzsgfTsKIAkJQ0RGNjVDQzgxNDVCMUU3NTAwQzRDN0FBIC8qIE1lZGlhQ29udHJv
bGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Qy
N0Y2RTQxNDU3Njc4NzAwNzgyMDdEIC8qIE1lZGlhQ29udHJvbGxlci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNERjY1Q0NBMTQ1QjQ0ODgwMEM0
QzdBQSAvKiBNZWRpYUNvbnRyb2xsZXJJbnRlcmZhY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERjY1Q0M5MTQ1QjQzQTcwMEM0QzdBQSAvKiBNZWRp
YUNvbnRyb2xsZXJJbnRlcmZhY2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQlDREZDMzYwNTE4Q0E2MUMyMDAyNkU1NkYgLyogUmVtb3RlQ29tbWFu
ZExpc3RlbmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENERkMzNjAzMThDQTYxQzIwMDI2RTU2RiAvKiBSZW1vdGVDb21tYW5kTGlzdGVuZXIuY3Bw
ICovOyB9OworCQlDREZDMzYwNjE4Q0E2MUMyMDAyNkU1NkYgLyogUmVtb3RlQ29tbWFuZExpc3Rl
bmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREZD
MzYwNDE4Q0E2MUMyMDAyNkU1NkYgLyogUmVtb3RlQ29tbWFuZExpc3RlbmVyLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0RGQzM2MDcxOENBNjk2
QzAwMjZFNTZGIC8qIFJlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERkMzNjAyMThDQTYxNjMwMDI2RTU2RiAv
KiBSZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MubW0gKi87IH07CiAJCUNFMDU3RkE1MTIyMDczMTEw
MEE0NzZENSAvKiBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0UwNTdGQTMxMjIwNzMxMTAwQTQ3NkQ1IC8q
IERvY3VtZW50TWFya2VyQ29udHJvbGxlci5jcHAgKi87IH07CiAJCUNFMDU3RkE2MTIyMDczMTEw
MEE0NzZENSAvKiBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENFMDU3RkE0MTIyMDczMTEwMEE0NzZENSAvKiBE
b2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQlDRTA4QzNEMTE1MkI1OTlBMDAyMUI4QzIgLyogQWx0ZXJuYXRp
dmVUZXh0Q29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRTA4QzNDRjE1MkI1OTlBMDAyMUI4QzIgLyogQWx0ZXJuYXRpdmVUZXh0Q29u
dHJvbGxlci5jcHAgKi87IH07CkBAIC0xMjkzMCw2ICsxMjkzMywxMCBAQAogCQlDREYyQjAwRjE4
MjA1NDA2MDBGMkI0MjQgLyogTW9ja1RyYWNrcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBNb2NrVHJhY2tzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERjY1
Q0M5MTQ1QjQzQTcwMEM0QzdBQSAvKiBNZWRpYUNvbnRyb2xsZXJJbnRlcmZhY2UuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFDb250cm9sbGVySW50ZXJmYWNlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERjY1Q0NDMTQ1QjZBRkUwMEM0QzdBQSAvKiBK
U0hUTUxNZWRpYUVsZW1lbnRDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNIVE1MTWVkaWFFbGVtZW50Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQ0RGQzM2MDExOENBNjE2MzAwMjZFNTZGIC8qIFJlbW90ZUNvbW1hbmRMaXN0
ZW5lcklPUy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBSZW1vdGVDb21tYW5k
TGlzdGVuZXJJT1MuaDsgcGF0aCA9IGlvcy9SZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RGQzM2MDIxOENBNjE2MzAwMjZFNTZGIC8qIFJl
bW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgbmFtZSA9IFJlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5tbTsgcGF0aCA9IGlvcy9SZW1vdGVD
b21tYW5kTGlzdGVuZXJJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERkMz
NjAzMThDQTYxQzIwMDI2RTU2RiAvKiBSZW1vdGVDb21tYW5kTGlzdGVuZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQ29tbWFuZExpc3RlbmVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RGQzM2MDQxOENBNjFDMjAwMjZFNTZGIC8q
IFJlbW90ZUNvbW1hbmRMaXN0ZW5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSZW1vdGVDb21tYW5kTGlzdGVuZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
Q0UwNTdGQTMxMjIwNzMxMTAwQTQ3NkQ1IC8qIERvY3VtZW50TWFya2VyQ29udHJvbGxlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEb2N1bWVudE1hcmtlckNvbnRy
b2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRTA1N0ZBNDEyMjA3MzEx
MDBBNDc2RDUgLyogRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IERvY3VtZW50TWFya2VyQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDRTA4QzNDRjE1MkI1OTlBMDAyMUI4QzIgLyogQWx0ZXJuYXRpdmVU
ZXh0Q29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBB
bHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTE4MDM2LDYgKzE4MDQzLDggQEAKIAkJCQlDNTI3OEIwQjE3RjIxMkVBMDAzQTI5OTggLyog
UGxhdGZvcm1QYXN0ZWJvYXJkSU9TLm1tICovLAogCQkJCUU0NTM5MDMyMEVBRkQ2MzcwMDM2OTVD
OCAvKiBQbGF0Zm9ybVNjcmVlbklPUy5tbSAqLywKIAkJCQlBQUUzNzU1RDE3NDI5QkNDMDA2MjAw
QzIgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcklPUy5tbSAqLywKKwkJCQlDREZDMzYwMTE4
Q0E2MTYzMDAyNkU1NkYgLyogUmVtb3RlQ29tbWFuZExpc3RlbmVySU9TLmggKi8sCisJCQkJQ0RG
QzM2MDIxOENBNjE2MzAwMjZFNTZGIC8qIFJlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5tbSAqLywK
IAkJCQk0NEMzNjNFRTBGQUE3QkIzMDA5N0Y4Q0MgLyogUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tz
SU9TLmggKi8sCiAJCQkJNDRDMzYzRUYwRkFBN0JCMzAwOTdGOENDIC8qIFJ1bnRpbWVBcHBsaWNh
dGlvbkNoZWNrc0lPUy5tbSAqLywKIAkJCQkwRjE3NzQ3RTEzNzhCNzcxMDA5REE3NkEgLyogU2Ny
b2xsQW5pbWF0b3JJT1MuaCAqLywKQEAgLTIwOTU5LDYgKzIwOTY4LDggQEAKIAkJCQk5MzgwRjQ3
MTA5QTExQUI0MDAxRkRCMzQgLyogV2lkZ2V0LmNwcCAqLywKIAkJCQk5MzgwRjQ3MjA5QTExQUI0
MDAxRkRCMzQgLyogV2lkZ2V0LmggKi8sCiAJCQkJRTFFMUJFRkYxMTVGRjZGQjAwNkY1MkNBIC8q
IFdpbmRvd3NLZXlib2FyZENvZGVzLmggKi8sCisJCQkJQ0RGQzM2MDMxOENBNjFDMjAwMjZFNTZG
IC8qIFJlbW90ZUNvbW1hbmRMaXN0ZW5lci5jcHAgKi8sCisJCQkJQ0RGQzM2MDQxOENBNjFDMjAw
MjZFNTZGIC8qIFJlbW90ZUNvbW1hbmRMaXN0ZW5lci5oICovLAogCQkJKTsKIAkJCXBhdGggPSBw
bGF0Zm9ybTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yNTQ4Nyw2ICsyNTQ5OCw3
IEBACiAJCQkJRTRCQkVENEQxNEZDREJBMTAwM0YwQjk4IC8qIFN0eWxlUnVsZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRTQ5NDZFQUYxNTZFNjRERDAwRDMyOTdGIC8qIFN0eWxlUnVsZUltcG9ydC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQThFQTgwMEMwQTE5NTE2RTAwQThFRjVGIC8qIFN0eWxlU2hl
ZXQuaCBpbiBIZWFkZXJzICovLAorCQkJCUNERkMzNjA2MThDQTYxQzIwMDI2RTU2RiAvKiBSZW1v
dGVDb21tYW5kTGlzdGVuZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0RjlFRUYzMTU2REEwMDcw
MEQyM0U3RSAvKiBTdHlsZVNoZWV0Q29udGVudHMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4RUE4
MDBBMEExOTUxNkUwMEE4RUY1RiAvKiBTdHlsZVNoZWV0TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkM1RUI1RTUwRTgxQkY2RDAwQjI1OTY1IC8qIFN0eWxlU3Vycm91bmREYXRhLmggaW4gSGVh
ZGVycyAqLywKQEAgLTI3NTc3LDYgKzI3NTg5LDcgQEAKIAkJCQlBOUQyNDgwNjBENzU3RTdEMDBG
REY5NTkgLyogSlNET01NaW1lVHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOUQyNDgwODBE
NzU3RTdEMDBGREY5NTkgLyogSlNET01NaW1lVHlwZUFycmF5LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUE5QzZFNjQ3MEQ3NDY1Q0EwMDY0NDJFOSAvKiBKU0RPTU1pbWVUeXBlQXJyYXlDdXN0b20u
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0RGQzM2MDcxOENBNjk2QzAwMjZFNTZGIC8qIFJlbW90
ZUNvbW1hbmRMaXN0ZW5lcklPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUyQ0NBOUUyMTVFM0Y2
MkMwMDUzQzc3RiAvKiBKU0RPTU5hbWVkRmxvd0NvbGxlY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMUFDRTUzREYwQThEMTg4MTAwMjI5NDdEIC8qIEpTRE9NUGFyc2VyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUZCOTEzOTJCMTZBRTRGQzAwMDFGRTY4MiAvKiBKU0RPTVBhdGguY3BwIGlu
IFNvdXJjZXMgKi8sCkBAIC0yODE4MCw2ICsyODE5Myw3IEBACiAJCQkJQTUxNkU4QjgxMzZFMDRE
QjAwNzZDM0MwIC8qIExvY2FsaXplZERhdGVDYWNoZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUMw
NDZFMUFDMTIwOEE5RkUwMEJBMkNGNyAvKiBMb2NhbGl6ZWRTdHJpbmdzLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUJDMjVCNTJBMTMxQzZEMzkwMDE4MEUxMCAvKiBMb2NhbGl6ZWRTdHJpbmdzTWFj
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNERkMzNjA1MThDQTYxQzIwMDI2RTU2RiAvKiBSZW1v
dGVDb21tYW5kTGlzdGVuZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNFMUM0MUMwRDk4Mjk4
MTAwM0IwMkYyIC8qIExvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4MjM5RTAwMDlC
M0NGOEEwMEI2MDY0MSAvKiBMb2dnaW5nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0MDI2NDVF
MEFGREMxOUIwMDU5MTlFMiAvKiBMb2dnaW5nTWFjLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBiN2Y1ZWFhMDE1YWExZGY4NTRk
NjFlODE0ZWQ4NzA5MTdmOWI4MDAxLi41ZWUwMTgwNmUxMmY1MTAwMGE4Yjg1ZGUzNWRkYTk3YmFm
ZDRiMjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTU4
ODcsNiArNTg4NywxMiBAQCBTdHJpbmcgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFTZXNzaW9uVGl0
bGUoKSBjb25zdAogICAgIHJldHVybiBtX2N1cnJlbnRTcmM7CiB9CiAKK3ZvaWQgSFRNTE1lZGlh
RWxlbWVudDo6ZGlkUmVjZWl2ZVJlbW90ZUNvbnRyb2xDb21tYW5kKE1lZGlhU2Vzc2lvbjo6UmVt
b3RlQ29udHJvbENvbW1hbmRUeXBlIGNvbW1hbmQpCit7CisgICAgLy8gRklYTUUoMTI5OTI2KTog
QWRkIFJlbW90ZSBDb250cm9sIHN1cHBvcnQgdG8gSFRNTE1lZGlhRWxlbWVudAorICAgIFVOVVNF
RF9QQVJBTShjb21tYW5kKTsKK30KKwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmgKaW5kZXggMjE0YzQwYjFlMTJkOGVmMDgwN2NiYWJhZDQyZDEwMGY1ZTZi
NGM0Yy4uZTE4YmZiZTcyZjNjYTdmYzhjNTVlM2MwMzJhZGNkMGZmZjkwMGEwNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKQEAgLTY5Nyw2ICs2OTcsOCBAQCBwcml2YXRl
OgogICAgIHZpcnR1YWwgU3RyaW5nIG1lZGlhU2Vzc2lvblRpdGxlKCkgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCBkb3VibGUgbWVkaWFTZXNzaW9uRHVyYXRpb24oKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBkdXJhdGlvbigpOyB9CiAgICAgdmlydHVhbCBkb3VibGUgbWVkaWFTZXNzaW9u
Q3VycmVudFRpbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBjdXJyZW50VGltZSgpOyB9Cisg
ICAgdmlydHVhbCBib29sIGNhblJlY2VpdmVSZW1vdGVDb250cm9sQ29tbWFuZHMoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZW1v
dGVDb250cm9sQ29tbWFuZChNZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZSkg
b3ZlcnJpZGU7CiAKICAgICBUaW1lcjxIVE1MTWVkaWFFbGVtZW50PiBtX2xvYWRUaW1lcjsKICAg
ICBUaW1lcjxIVE1MTWVkaWFFbGVtZW50PiBtX3Byb2dyZXNzRXZlbnRUaW1lcjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1JlbW90ZUNvbW1hbmRMaXN0ZW5lci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SZW1vdGVDb21tYW5kTGlzdGVuZXIuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjFiODZkMTA4YzczODExMTExZDliN2YwYzkyNTk5MTNkYWJiNDAwMGMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SZW1vdGVDb21tYW5kTGlzdGVuZXIuY3Bw
CkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiUmVtb3RlQ29tbWFuZExpc3RlbmVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworI2lm
ICFQTEFURk9STShJT1MpCitzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlQ29tbWFuZExpc3RlbmVyPiBS
ZW1vdGVDb21tYW5kTGlzdGVuZXI6OmNyZWF0ZShSZW1vdGVDb21tYW5kTGlzdGVuZXJDbGllbnQm
IGNsaWVudCkKK3sKKyAgICByZXR1cm4gc3RkOjptb3ZlKHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVD
b21tYW5kTGlzdGVuZXI+KG5ldyBSZW1vdGVDb21tYW5kTGlzdGVuZXIoY2xpZW50KSkpOworfQor
I2VuZGlmCisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1JlbW90ZUNv
bW1hbmRMaXN0ZW5lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUmVtb3RlQ29tbWFuZExp
c3RlbmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNzY0MjU4YzA1OGRiOThiNTY3YzM0YTczNjhmNDUxMjc1YjRj
MDZmNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1JlbW90ZUNv
bW1hbmRMaXN0ZW5lci5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFJlbW90
ZUNvbW1hbmRMaXN0ZW5lcl9oCisjZGVmaW5lIFJlbW90ZUNvbW1hbmRMaXN0ZW5lcl9oCisKKyNp
bmNsdWRlICJNZWRpYVNlc3Npb24uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBS
ZW1vdGVDb21tYW5kTGlzdGVuZXJDbGllbnQgeworcHVibGljOgorICAgIHZpcnR1YWwgflJlbW90
ZUNvbW1hbmRMaXN0ZW5lckNsaWVudCgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZl
UmVtb3RlQ29udHJvbENvbW1hbmQoTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5
cGUpID0gMDsKK307CisKK2NsYXNzIFJlbW90ZUNvbW1hbmRMaXN0ZW5lciB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVDb21tYW5kTGlzdGVuZXI+IGNyZWF0ZShS
ZW1vdGVDb21tYW5kTGlzdGVuZXJDbGllbnQmKTsKKyAgICB2aXJ0dWFsIH5SZW1vdGVDb21tYW5k
TGlzdGVuZXIoKSB7IH0KKworcHJvdGVjdGVkOgorICAgIFJlbW90ZUNvbW1hbmRMaXN0ZW5lcihS
ZW1vdGVDb21tYW5kTGlzdGVuZXJDbGllbnQmIGNsaWVudCkgOiBtX2NsaWVudChjbGllbnQpIHsg
fTsKKworICAgIFJlbW90ZUNvbW1hbmRMaXN0ZW5lckNsaWVudCYgbV9jbGllbnQ7Cit9OworCit9
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vTWVk
aWFTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL01lZGlhU2Vzc2lv
bi5jcHAKaW5kZXggM2JlYTFlMDEwOWI2YzRmYjM2ZTNkZTM2OTI1ZmRiZGRmMWNmZjY0NS4uNTk5
ZTZmOWI0MTI5MmI1OGFhNDIzMjkxMjJkNTg0MTczMjA0MTg5MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vTWVkaWFTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9NZWRpYVNlc3Npb24uY3BwCkBAIC0xNDUsNCArMTQ1LDE0IEBA
IGRvdWJsZSBNZWRpYVNlc3Npb246OmN1cnJlbnRUaW1lKCkgY29uc3QKICAgICByZXR1cm4gbV9j
bGllbnQubWVkaWFTZXNzaW9uQ3VycmVudFRpbWUoKTsKIH0KICAgICAKK2Jvb2wgTWVkaWFTZXNz
aW9uOjpjYW5SZWNlaXZlUmVtb3RlQ29udHJvbENvbW1hbmRzKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9jbGllbnQuY2FuUmVjZWl2ZVJlbW90ZUNvbnRyb2xDb21tYW5kcygpOworfQorCit2b2lk
IE1lZGlhU2Vzc2lvbjo6ZGlkUmVjZWl2ZVJlbW90ZUNvbnRyb2xDb21tYW5kKFJlbW90ZUNvbnRy
b2xDb21tYW5kVHlwZSBjb21tYW5kKQoreworICAgIG1fY2xpZW50LmRpZFJlY2VpdmVSZW1vdGVD
b250cm9sQ29tbWFuZChjb21tYW5kKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vTWVkaWFTZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9NZWRpYVNlc3Npb24uaAppbmRleCBkNTgxYjdjODQyZGZkZjdkZjlmYzdhZTVlOTA4
ODRhMTAzNjI1NzQzLi4zYThjMWNjYjQyNDIxMmM5YWQyZjU4NGYxZmY1ODJkNjJkMTA3MjViIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9NZWRpYVNlc3Npb24uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9NZWRpYVNlc3Npb24uaApAQCAtNzYs
NiArNzYsMjAgQEAgcHVibGljOgogICAgIGRvdWJsZSBkdXJhdGlvbigpIGNvbnN0OwogICAgIGRv
dWJsZSBjdXJyZW50VGltZSgpIGNvbnN0OwogCisgICAgZW51bSBSZW1vdGVDb250cm9sQ29tbWFu
ZFR5cGUgeworICAgICAgICBOb0NvbW1hbmQsCisgICAgICAgIFBsYXlDb21tYW5kLAorICAgICAg
ICBQYXVzZUNvbW1hbmQsCisgICAgICAgIFN0b3BDb21tYW5kLAorICAgICAgICBUb2dnbGVQbGF5
UGF1c2VDb21tYW5kLAorICAgICAgICBCZWdpblNlZWtpbmdCYWNrd2FyZENvbW1hbmQsCisgICAg
ICAgIEVuZFNlZWtpbmdCYWNrd2FyZENvbW1hbmQsCisgICAgICAgIEJlZ2luU2Vla2luZ0Zvcndh
cmRDb21tYW5kLAorICAgICAgICBFbmRTZWVraW5nRm9yd2FyZENvbW1hbmQsCisgICAgfTsKKyAg
ICBib29sIGNhblJlY2VpdmVSZW1vdGVDb250cm9sQ29tbWFuZHMoKSBjb25zdDsKKyAgICB2b2lk
IGRpZFJlY2VpdmVSZW1vdGVDb250cm9sQ29tbWFuZChSZW1vdGVDb250cm9sQ29tbWFuZFR5cGUp
OworCiBwcm90ZWN0ZWQ6CiAgICAgTWVkaWFTZXNzaW9uQ2xpZW50JiBjbGllbnQoKSBjb25zdCB7
IHJldHVybiBtX2NsaWVudDsgfQogCkBAIC05NCwxMSArMTA4LDE0IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIE1lZGlhU2Vzc2lvbjo6TWVkaWFUeXBlIG1lZGlhVHlwZSgpIGNvbnN0ID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgcmVzdW1lUGxheWJhY2soKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHBh
dXNlUGxheWJhY2soKSA9IDA7Ci0gICAgCisKICAgICB2aXJ0dWFsIFN0cmluZyBtZWRpYVNlc3Np
b25UaXRsZSgpIGNvbnN0IHsgcmV0dXJuIFN0cmluZygpOyB9CiAgICAgdmlydHVhbCBkb3VibGUg
bWVkaWFTZXNzaW9uRHVyYXRpb24oKSBjb25zdCB7IHJldHVybiBNZWRpYVBsYXllcjo6aW52YWxp
ZFRpbWUoKTsgfQogICAgIHZpcnR1YWwgZG91YmxlIG1lZGlhU2Vzc2lvbkN1cnJlbnRUaW1lKCkg
Y29uc3QgeyByZXR1cm4gTWVkaWFQbGF5ZXI6OmludmFsaWRUaW1lKCk7IH0KICAgICAKKyAgICB2
aXJ0dWFsIGJvb2wgY2FuUmVjZWl2ZVJlbW90ZUNvbnRyb2xDb21tYW5kcygpIGNvbnN0ID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlbW90ZUNvbnRyb2xDb21tYW5kKE1lZGlhU2Vz
c2lvbjo6UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlKSA9IDA7CisKIHByb3RlY3RlZDoKICAgICB2
aXJ0dWFsIH5NZWRpYVNlc3Npb25DbGllbnQoKSB7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL01lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCmluZGV4IDNiMDVl
NjhiOTU1MzFlZDIyYzg5ZDI4YzE3ZDMyYmUxOGI0MThjZTUuLmRiN2UzMTIyNzc2Y2UyNTAxNTY5
OTM5NjVmOGZkYjMxYjQyNzQ0NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL01lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL01lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCkBAIC0xMDIsNiArMTAyLDEyIEBAIHZv
aWQgTWVkaWFTZXNzaW9uTWFuYWdlcjo6YWRkU2Vzc2lvbihNZWRpYVNlc3Npb24mIHNlc3Npb24p
CiAgICAgaWYgKG1faW50ZXJydXB0ZWQpCiAgICAgICAgIHNlc3Npb24uc2V0U3RhdGUoTWVkaWFT
ZXNzaW9uOjpJbnRlcnJ1cHRlZCk7CiAgICAgdXBkYXRlU2Vzc2lvblN0YXRlKCk7CisKKyAgICBp
ZiAobV9jbGllbnRzLmlzRW1wdHkoKSB8fCAhKHNlc3Npb24ubWVkaWFUeXBlKCkgPT0gTWVkaWFT
ZXNzaW9uOjpWaWRlbyB8fCBzZXNzaW9uLm1lZGlhVHlwZSgpID09IE1lZGlhU2Vzc2lvbjo6QXVk
aW8pKQorICAgICAgICByZXR1cm47CisKKyAgICBmb3IgKGF1dG8mIGNsaWVudCA6IG1fY2xpZW50
cykKKyAgICAgICAgY2xpZW50LT5zdGFydExpc3RlbmluZ0ZvclJlbW90ZUNvbnRyb2xDb21tYW5k
cygpOwogfQogCiB2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXI6OnJlbW92ZVNlc3Npb24oTWVkaWFT
ZXNzaW9uJiBzZXNzaW9uKQpAQCAtMTE1LDcgKzEyMSwxNSBAQCB2b2lkIE1lZGlhU2Vzc2lvbk1h
bmFnZXI6OnJlbW92ZVNlc3Npb24oTWVkaWFTZXNzaW9uJiBzZXNzaW9uKQogICAgICAgICBzZXRD
dXJyZW50U2Vzc2lvbihudWxscHRyKTsKICAgICAKICAgICBtX3Nlc3Npb25zLnJlbW92ZShpbmRl
eCk7CisgICAgaWYgKG1fYWN0aXZlU2Vzc2lvbiA9PSAmc2Vzc2lvbikKKyAgICAgICAgbV9hY3Rp
dmVTZXNzaW9uID0gbnVsbHB0cjsKICAgICB1cGRhdGVTZXNzaW9uU3RhdGUoKTsKKworICAgIGlm
IChtX2NsaWVudHMuaXNFbXB0eSgpIHx8ICEoc2Vzc2lvbi5tZWRpYVR5cGUoKSA9PSBNZWRpYVNl
c3Npb246OlZpZGVvIHx8IHNlc3Npb24ubWVkaWFUeXBlKCkgPT0gTWVkaWFTZXNzaW9uOjpBdWRp
bykpCisgICAgICAgIHJldHVybjsKKworICAgIGZvciAoYXV0byYgY2xpZW50IDogbV9jbGllbnRz
KQorICAgICAgICBjbGllbnQtPnN0YXJ0TGlzdGVuaW5nRm9yUmVtb3RlQ29udHJvbENvbW1hbmRz
KCk7CiB9CiAKIHZvaWQgTWVkaWFTZXNzaW9uTWFuYWdlcjo6YWRkUmVzdHJpY3Rpb24oTWVkaWFT
ZXNzaW9uOjpNZWRpYVR5cGUgdHlwZSwgU2Vzc2lvblJlc3RyaWN0aW9ucyByZXN0cmljdGlvbikK
QEAgLTEzNiw3ICsxNTAsNyBAQCBNZWRpYVNlc3Npb25NYW5hZ2VyOjpTZXNzaW9uUmVzdHJpY3Rp
b25zIE1lZGlhU2Vzc2lvbk1hbmFnZXI6OnJlc3RyaWN0aW9ucyhNZWRpYQogICAgIHJldHVybiBt
X3Jlc3RyaWN0aW9uc1t0eXBlXTsKIH0KIAotdm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXNz
aW9uV2lsbEJlZ2luUGxheWJhY2soY29uc3QgTWVkaWFTZXNzaW9uJiBzZXNzaW9uKQordm9pZCBN
ZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXNzaW9uV2lsbEJlZ2luUGxheWJhY2soTWVkaWFTZXNzaW9u
JiBzZXNzaW9uKQogewogICAgIHNldEN1cnJlbnRTZXNzaW9uKCZzZXNzaW9uKTsKICAgICAKQEAg
LTE1Myw2ICsxNjcsMTQgQEAgdm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXNzaW9uV2lsbEJl
Z2luUGxheWJhY2soY29uc3QgTWVkaWFTZXNzaW9uJiBzZXNzaW9uKQogICAgICAgICBpZiAocmVz
dHJpY3Rpb25zICYgQ29uY3VycmVudFBsYXliYWNrTm90UGVybWl0dGVkKQogICAgICAgICAgICAg
b25lU2Vzc2lvbi0+cGF1c2VTZXNzaW9uKCk7CiAgICAgfQorCisgICAgbV9hY3RpdmVTZXNzaW9u
ID0gJnNlc3Npb247CisKKyAgICBpZiAobV9jbGllbnRzLmlzRW1wdHkoKSB8fCAhKHNlc3Npb24u
bWVkaWFUeXBlKCkgPT0gTWVkaWFTZXNzaW9uOjpWaWRlbyB8fCBzZXNzaW9uLm1lZGlhVHlwZSgp
ID09IE1lZGlhU2Vzc2lvbjo6QXVkaW8pKQorICAgICAgICByZXR1cm47CisKKyAgICBmb3IgKGF1
dG8mIGNsaWVudCA6IG1fY2xpZW50cykKKyAgICAgICAgY2xpZW50LT5kaWRCZWdpblBsYXliYWNr
KCk7CiB9CiAKIGJvb2wgTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2Vzc2lvblJlc3RyaWN0c0lubGlu
ZVZpZGVvUGxheWJhY2soY29uc3QgTWVkaWFTZXNzaW9uJiBzZXNzaW9uKSBjb25zdApAQCAtMTg4
LDQgKzIxMCwyMyBAQCB2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXI6OnVwZGF0ZVNlc3Npb25TdGF0
ZSgpCiB9CiAjZW5kaWYKIAordm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyOjpkaWRSZWNlaXZlUmVt
b3RlQ29udHJvbENvbW1hbmQoTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5cGUg
Y29tbWFuZCkKK3sKKyAgICBpZiAoIW1fYWN0aXZlU2Vzc2lvbikKKyAgICAgICAgcmV0dXJuOwor
ICAgIG1fYWN0aXZlU2Vzc2lvbi0+ZGlkUmVjZWl2ZVJlbW90ZUNvbnRyb2xDb21tYW5kKGNvbW1h
bmQpOworfQorCit2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXI6OmFkZENsaWVudChNZWRpYVNlc3Np
b25NYW5hZ2VyQ2xpZW50KiBjbGllbnQpCit7CisgICAgQVNTRVJUKCFtX2NsaWVudHMuY29udGFp
bnMoY2xpZW50KSk7CisgICAgbV9jbGllbnRzLmFwcGVuZChjbGllbnQpOworfQorCit2b2lkIE1l
ZGlhU2Vzc2lvbk1hbmFnZXI6OnJlbW92ZUNsaWVudChNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50
KiBjbGllbnQpCit7CisgICAgQVNTRVJUKG1fY2xpZW50cy5jb250YWlucyhjbGllbnQpKTsKKyAg
ICBtX2NsaWVudHMucmVtb3ZlKG1fY2xpZW50cy5maW5kKGNsaWVudCkpOworfQorCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9NZWRpYVNlc3Npb25NYW5hZ2Vy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9NZWRpYVNlc3Npb25NYW5hZ2VyLmgK
aW5kZXggNjBiMTU3OTMwY2ZhODA0ZjBhN2Y2ZmQ3OWEwMGRlOWMwZDI5ZWU5My4uYmRjZmQwMGM0
NzJhY2UwYTE4ZWY0MmI0MmE3MTRjMDIwMzQyMjEwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vTWVkaWFTZXNzaW9uTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL01lZGlhU2Vzc2lvbk1hbmFnZXIuaApAQCAtMzYsNiArMzYsMTkg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgSFRNTE1lZGlhRWxlbWVudDsKIGNsYXNzIE1l
ZGlhU2Vzc2lvbjsKIAorY2xhc3MgTWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudCB7CitwdWJsaWM6
CisgICAgdmlydHVhbCB+TWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudCgpIHsgfQorCisgICAgdmly
dHVhbCBib29sIGlzTGlzdGVuaW5nRm9yUmVtb3RlQ29udHJvbENvbW1hbmRzKCkgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBzdGFydExpc3RlbmluZ0ZvclJlbW90ZUNvbnRyb2xDb21tYW5kcygpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgc3RvcExpc3RlbmluZ0ZvclJlbW90ZUNvbnRyb2xDb21tYW5k
cygpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQmVnaW5QbGF5YmFjaygpID0gMDsKKworcHJv
dGVjdGVkOgorICAgIE1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnQoKSB7IH0KK307CisKIGNsYXNz
IE1lZGlhU2Vzc2lvbk1hbmFnZXIgewogcHVibGljOgogICAgIHN0YXRpYyBNZWRpYVNlc3Npb25N
YW5hZ2VyJiBzaGFyZWRNYW5hZ2VyKCk7CkBAIC02NSw4ICs3OCw4IEBAIHB1YmxpYzoKICAgICBT
ZXNzaW9uUmVzdHJpY3Rpb25zIHJlc3RyaWN0aW9ucyhNZWRpYVNlc3Npb246Ok1lZGlhVHlwZSk7
CiAgICAgdmlydHVhbCB2b2lkIHJlc2V0UmVzdHJpY3Rpb25zKCk7CiAKLSAgICB2aXJ0dWFsIHZv
aWQgc2Vzc2lvbldpbGxCZWdpblBsYXliYWNrKGNvbnN0IE1lZGlhU2Vzc2lvbiYpOwotICAgIHZp
cnR1YWwgdm9pZCBzZXNzaW9uV2lsbEVuZFBsYXliYWNrKGNvbnN0IE1lZGlhU2Vzc2lvbiYpIHsg
fQorICAgIHZpcnR1YWwgdm9pZCBzZXNzaW9uV2lsbEJlZ2luUGxheWJhY2soTWVkaWFTZXNzaW9u
Jik7CisgICAgdmlydHVhbCB2b2lkIHNlc3Npb25XaWxsRW5kUGxheWJhY2soTWVkaWFTZXNzaW9u
JikgeyB9CiAgICAgCiAgICAgYm9vbCBzZXNzaW9uUmVzdHJpY3RzSW5saW5lVmlkZW9QbGF5YmFj
ayhjb25zdCBNZWRpYVNlc3Npb24mKSBjb25zdDsKIApAQCAtNzQsNiArODcsMTEgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoKSB7IH0KICNlbmRp
ZgogCisgICAgdm9pZCBkaWRSZWNlaXZlUmVtb3RlQ29udHJvbENvbW1hbmQoTWVkaWFTZXNzaW9u
OjpSZW1vdGVDb250cm9sQ29tbWFuZFR5cGUpOworCisgICAgdm9pZCBhZGRDbGllbnQoTWVkaWFT
ZXNzaW9uTWFuYWdlckNsaWVudCopOworICAgIHZvaWQgcmVtb3ZlQ2xpZW50KE1lZGlhU2Vzc2lv
bk1hbmFnZXJDbGllbnQqKTsKKwogcHJvdGVjdGVkOgogICAgIGZyaWVuZCBjbGFzcyBNZWRpYVNl
c3Npb247CiAgICAgZXhwbGljaXQgTWVkaWFTZXNzaW9uTWFuYWdlcigpOwpAQCAtODEsNyArOTks
NyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBhZGRTZXNzaW9uKE1lZGlhU2Vzc2lvbiYpOwogICAg
IHZvaWQgcmVtb3ZlU2Vzc2lvbihNZWRpYVNlc3Npb24mKTsKICAgICAKLSAgICB2b2lkIHNldEN1
cnJlbnRTZXNzaW9uKGNvbnN0IE1lZGlhU2Vzc2lvbiogc2Vzc2lvbikgeyBtX2FjdGl2ZVNlc3Np
b24gPSBzZXNzaW9uOyB9CisgICAgdm9pZCBzZXRDdXJyZW50U2Vzc2lvbihNZWRpYVNlc3Npb24q
IHNlc3Npb24pIHsgbV9hY3RpdmVTZXNzaW9uID0gc2Vzc2lvbjsgfQogICAgIGNvbnN0IE1lZGlh
U2Vzc2lvbiogY3VycmVudFNlc3Npb24oKSB7IHJldHVybiBtX2FjdGl2ZVNlc3Npb247IH0KICAg
ICAKIHByaXZhdGU6CkBAIC05MCw3ICsxMDgsOCBAQCBwcml2YXRlOgogICAgIFNlc3Npb25SZXN0
cmljdGlvbnMgbV9yZXN0cmljdGlvbnNbTWVkaWFTZXNzaW9uOjpXZWJBdWRpbyArIDFdOwogCiAg
ICAgVmVjdG9yPE1lZGlhU2Vzc2lvbio+IG1fc2Vzc2lvbnM7Ci0gICAgY29uc3QgTWVkaWFTZXNz
aW9uKiBtX2FjdGl2ZVNlc3Npb247CisgICAgVmVjdG9yPE1lZGlhU2Vzc2lvbk1hbmFnZXJDbGll
bnQqPiBtX2NsaWVudHM7CisgICAgTWVkaWFTZXNzaW9uKiBtX2FjdGl2ZVNlc3Npb247CiAgICAg
Ym9vbCBtX2ludGVycnVwdGVkOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vaW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJT1MuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLmgKaW5kZXggZWJkNTY1
YWY4ODJjMjZlYTFmYjcxYWMyNWYzNjYwMjEyMTkwZDUzZS4uNzAxNTdmYjBiYzU0OTcyMGRjNDI2
ZTM5YjlmNWQ3OGMxODhhNWZmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vaW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJT1MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5oCkBAIC00OCw4ICs0OCw4
IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIE1lZGlhU2Vzc2lvbk1hbmFn
ZXI7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2Vzc2lvbldpbGxCZWdpblBsYXliYWNrKGNvbnN0IE1l
ZGlhU2Vzc2lvbiYpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBzZXNzaW9uV2lsbEVuZFBs
YXliYWNrKGNvbnN0IE1lZGlhU2Vzc2lvbiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBz
ZXNzaW9uV2lsbEJlZ2luUGxheWJhY2soTWVkaWFTZXNzaW9uJikgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIHNlc3Npb25XaWxsRW5kUGxheWJhY2soTWVkaWFTZXNzaW9uJikgb3ZlcnJpZGU7
CiAgICAgCiAgICAgdm9pZCB1cGRhdGVOb3dQbGF5aW5nSW5mbygpOwogICAgIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJ
T1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFu
YWdlcklPUy5tbQppbmRleCAyNzlmMDZkZDFjNjQyMmQ0NzZjNjEzZjJlYWY4MWFmN2VkMWM5OTM0
Li4zYjBmNTc0ZmIxYzEwZTBjM2FkNTgyODUyNGNiYzYxMDU3OTRmZWExIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFu
YWdlcklPUy5tbQpAQCAtMTM2LDEzICsxMzYsMTMgQEAgdm9pZCBNZWRpYVNlc3Npb25NYW5hZ2Vy
aU9TOjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoKQogfQogI2VuZGlmCiAgICAgCi12b2lkIE1l
ZGlhU2Vzc2lvbk1hbmFnZXJpT1M6OnNlc3Npb25XaWxsQmVnaW5QbGF5YmFjayhjb25zdCBNZWRp
YVNlc3Npb24mIHNlc3Npb24pCit2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJpT1M6OnNlc3Npb25X
aWxsQmVnaW5QbGF5YmFjayhNZWRpYVNlc3Npb24mIHNlc3Npb24pCiB7CiAgICAgTWVkaWFTZXNz
aW9uTWFuYWdlcjo6c2Vzc2lvbldpbGxCZWdpblBsYXliYWNrKHNlc3Npb24pOwogICAgIHVwZGF0
ZU5vd1BsYXlpbmdJbmZvKCk7CiB9CiAgICAgCi12b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJpT1M6
OnNlc3Npb25XaWxsRW5kUGxheWJhY2soY29uc3QgTWVkaWFTZXNzaW9uJiBzZXNzaW9uKQordm9p
ZCBNZWRpYVNlc3Npb25NYW5hZ2VyaU9TOjpzZXNzaW9uV2lsbEVuZFBsYXliYWNrKE1lZGlhU2Vz
c2lvbiYgc2Vzc2lvbikKIHsKICAgICBNZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXNzaW9uV2lsbEVu
ZFBsYXliYWNrKHNlc3Npb24pOwogICAgIHVwZGF0ZU5vd1BsYXlpbmdJbmZvKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9EZXN0aW5hdGlvbk1h
Yy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvRGVzdGluYXRpb25N
YWMuaAppbmRleCBmMzVjMmE0MmEyZmJjOTdiNWMxOWVkNjk1YTI5MWFjYTU4YjIwYjc0Li45MGUy
MzE4ODU4NmUxYjI5Nzk5YTM1ODUwNDVkOTQwZGVjZjg4NzkwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9EZXN0aW5hdGlvbk1hYy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb0Rlc3RpbmF0aW9uTWFjLmgKQEAg
LTYyLDYgKzYyLDggQEAgcHJpdmF0ZToKICAgICBPU1N0YXR1cyByZW5kZXIoVUludDMyIG51bWJl
ck9mRnJhbWVzLCBBdWRpb0J1ZmZlckxpc3QqIGlvRGF0YSk7CiAKICAgICB2aXJ0dWFsIE1lZGlh
U2Vzc2lvbjo6TWVkaWFUeXBlIG1lZGlhVHlwZSgpIGNvbnN0IHsgcmV0dXJuIE1lZGlhU2Vzc2lv
bjo6V2ViQXVkaW87IH0KKyAgICB2aXJ0dWFsIGJvb2wgY2FuUmVjZWl2ZVJlbW90ZUNvbnRyb2xD
b21tYW5kcygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVSZW1vdGVDb250cm9sQ29tbWFuZChNZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21t
YW5kVHlwZSkgeyB9CiAKICAgICBBdWRpb1VuaXQgbV9vdXRwdXRVbml0OwogICAgIEF1ZGlvSU9D
YWxsYmFjayYgbV9jYWxsYmFjazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9SZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9SZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMmZmYWMwYzkwM2Rj
OWRkNTM4ZDMyMGZkYWVhZjgxZjA5MzU2NjU4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL1JlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5oCkBAIC0wLDAgKzEs
NTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKKyAqLworCisjaWZuZGVmIFJlbW90ZUNvbW1hbmRMaXN0ZW5lcklPU19oCisjZGVm
aW5lIFJlbW90ZUNvbW1hbmRMaXN0ZW5lcklPU19oCisKKyNpbmNsdWRlICJSZW1vdGVDb21tYW5k
TGlzdGVuZXIuaCIKKworI2lmIFBMQVRGT1JNKElPUykKKworI2luY2x1ZGUgPHd0Zi9SZXRhaW5Q
dHIuaD4KKworI2lmbmRlZiBfX09CSkNfXwordHlwZWRlZiB2b2lkICppZDsKKyNlbmRpZgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUyA6IHB1
YmxpYyBSZW1vdGVDb21tYW5kTGlzdGVuZXIgeworcHVibGljOgorICAgIFJlbW90ZUNvbW1hbmRM
aXN0ZW5lcklPUyhSZW1vdGVDb21tYW5kTGlzdGVuZXJDbGllbnQmKTsKKyAgICB2aXJ0dWFsIH5S
ZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MoKTsKKworcHJvdGVjdGVkOgorICAgIFJldGFpblB0cjxp
ZD4gbV9wbGF5VGFyZ2V0OworICAgIFJldGFpblB0cjxpZD4gbV9wYXVzZVRhcmdldDsKKyAgICBS
ZXRhaW5QdHI8aWQ+IG1fdG9nZ2xlUGxheVBhdXNlVGFyZ2V0OworICAgIFJldGFpblB0cjxpZD4g
bV9zZWVrRm9yd2FyZFRhcmdldDsKKyAgICBSZXRhaW5QdHI8aWQ+IG1fc2Vla0JhY2t3YXJkVGFy
Z2V0OworfTsKKworfQorCisjZW5kaWYKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvUmVtb3RlQ29tbWFuZExpc3RlbmVySU9TLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL1JlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5tbQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42MGJhZDBlMzliNTBlZmEyNDZkMjcyOTU3MjIzZTU3MWZiY2QwZjMzCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1JlbW90ZUNvbW1hbmRMaXN0ZW5lcklP
Uy5tbQpAQCAtMCwwICsxLDkwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1w
b3J0ICJSZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MuaCIKKworI2lmIFBMQVRGT1JNKElPUykKKwor
I2ltcG9ydCA8TWVkaWFQbGF5ZXIvTVBSZW1vdGVDb21tYW5kQ2VudGVyLmg+CisjaW1wb3J0IDxN
ZWRpYVBsYXllci9NUFJlbW90ZUNvbW1hbmRFdmVudC5oPgorI2ltcG9ydCA8TWVkaWFQbGF5ZXIv
TVBSZW1vdGVDb21tYW5kLmg+CisjaW1wb3J0IDxXZWJDb3JlL1NvZnRMaW5raW5nLmg+CisKK1NP
RlRfTElOS19GUkFNRVdPUksoTWVkaWFQbGF5ZXIpCitTT0ZUX0xJTktfQ0xBU1MoTWVkaWFQbGF5
ZXIsIE1QUmVtb3RlQ29tbWFuZENlbnRlcikKK1NPRlRfTElOS19DTEFTUyhNZWRpYVBsYXllciwg
TVBTZWVrQ29tbWFuZEV2ZW50KQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0ZDo6dW5pcXVl
X3B0cjxSZW1vdGVDb21tYW5kTGlzdGVuZXI+IFJlbW90ZUNvbW1hbmRMaXN0ZW5lcjo6Y3JlYXRl
KFJlbW90ZUNvbW1hbmRMaXN0ZW5lckNsaWVudCYgY2xpZW50KQoreworICAgIHJldHVybiBzdGQ6
Om1vdmUoc3RkOjp1bmlxdWVfcHRyPFJlbW90ZUNvbW1hbmRMaXN0ZW5lcj4obmV3IFJlbW90ZUNv
bW1hbmRMaXN0ZW5lcklPUyhjbGllbnQpKSk7Cit9CisKK1JlbW90ZUNvbW1hbmRMaXN0ZW5lcklP
Uzo6UmVtb3RlQ29tbWFuZExpc3RlbmVySU9TKFJlbW90ZUNvbW1hbmRMaXN0ZW5lckNsaWVudCYg
Y2xpZW50KQorICAgIDogUmVtb3RlQ29tbWFuZExpc3RlbmVyKGNsaWVudCkKK3sKKyAgICBNUFJl
bW90ZUNvbW1hbmRDZW50ZXIgKmNlbnRlciA9IFtnZXRNUFJlbW90ZUNvbW1hbmRDZW50ZXJDbGFz
cygpIHNoYXJlZENvbW1hbmRDZW50ZXJdOworCisgICAgbV9wYXVzZVRhcmdldCA9IFtbY2VudGVy
IHBhdXNlQ29tbWFuZF0gYWRkVGFyZ2V0V2l0aEhhbmRsZXI6XihNUFJlbW90ZUNvbW1hbmRFdmVu
dCAqKSB7CisgICAgICAgIG1fY2xpZW50LmRpZFJlY2VpdmVSZW1vdGVDb250cm9sQ29tbWFuZChN
ZWRpYVNlc3Npb246OlBhdXNlQ29tbWFuZCk7CisgICAgICAgIHJldHVybiBNUFJlbW90ZUNvbW1h
bmRIYW5kbGVyU3RhdHVzU3VjY2VzczsKKyAgICB9XTsKKyAgICBtX3BsYXlUYXJnZXQgPSBbW2Nl
bnRlciBwbGF5Q29tbWFuZF0gYWRkVGFyZ2V0V2l0aEhhbmRsZXI6XihNUFJlbW90ZUNvbW1hbmRF
dmVudCAqKSB7CisgICAgICAgIG1fY2xpZW50LmRpZFJlY2VpdmVSZW1vdGVDb250cm9sQ29tbWFu
ZChNZWRpYVNlc3Npb246OlBsYXlDb21tYW5kKTsKKyAgICAgICAgcmV0dXJuIE1QUmVtb3RlQ29t
bWFuZEhhbmRsZXJTdGF0dXNTdWNjZXNzOworICAgIH1dOworICAgIG1fdG9nZ2xlUGxheVBhdXNl
VGFyZ2V0ID0gW1tjZW50ZXIgdG9nZ2xlUGxheVBhdXNlQ29tbWFuZF0gYWRkVGFyZ2V0V2l0aEhh
bmRsZXI6XihNUFJlbW90ZUNvbW1hbmRFdmVudCAqKSB7CisgICAgICAgIG1fY2xpZW50LmRpZFJl
Y2VpdmVSZW1vdGVDb250cm9sQ29tbWFuZChNZWRpYVNlc3Npb246OlRvZ2dsZVBsYXlQYXVzZUNv
bW1hbmQpOworICAgICAgICByZXR1cm4gTVBSZW1vdGVDb21tYW5kSGFuZGxlclN0YXR1c1N1Y2Nl
c3M7CisgICAgfV07CisgICAgbV9zZWVrQmFja3dhcmRUYXJnZXQgPSBbW2NlbnRlciBzZWVrQmFj
a3dhcmRDb21tYW5kXSBhZGRUYXJnZXRXaXRoSGFuZGxlcjpeKE1QUmVtb3RlQ29tbWFuZEV2ZW50
ICpldmVudCkgeworICAgICAgICBBU1NFUlQoW2V2ZW50IGlzS2luZE9mQ2xhc3M6Z2V0TVBTZWVr
Q29tbWFuZEV2ZW50Q2xhc3MoKV0pOworICAgICAgICBNUFNlZWtDb21tYW5kRXZlbnQqIHNlZWtF
dmVudCA9IHN0YXRpY19jYXN0PE1QU2Vla0NvbW1hbmRFdmVudCAqPihldmVudCk7CisgICAgICAg
IG1fY2xpZW50LmRpZFJlY2VpdmVSZW1vdGVDb250cm9sQ29tbWFuZChbc2Vla0V2ZW50IHR5cGVd
ID09IE1QU2Vla0NvbW1hbmRFdmVudFR5cGVCZWdpblNlZWtpbmcgPyBNZWRpYVNlc3Npb246OkJl
Z2luU2Vla2luZ0JhY2t3YXJkQ29tbWFuZCA6IE1lZGlhU2Vzc2lvbjo6RW5kU2Vla2luZ0JhY2t3
YXJkQ29tbWFuZCk7CisgICAgICAgIHJldHVybiBNUFJlbW90ZUNvbW1hbmRIYW5kbGVyU3RhdHVz
U3VjY2VzczsKKyAgICB9XTsKKyAgICBtX3NlZWtGb3J3YXJkVGFyZ2V0ID0gW1tjZW50ZXIgc2Vl
a0ZvcndhcmRDb21tYW5kXSBhZGRUYXJnZXRXaXRoSGFuZGxlcjpeKE1QUmVtb3RlQ29tbWFuZEV2
ZW50ICpldmVudCkgeworICAgICAgICBBU1NFUlQoW2V2ZW50IGlzS2luZE9mQ2xhc3M6Z2V0TVBT
ZWVrQ29tbWFuZEV2ZW50Q2xhc3MoKV0pOworICAgICAgICBNUFNlZWtDb21tYW5kRXZlbnQqIHNl
ZWtFdmVudCA9IHN0YXRpY19jYXN0PE1QU2Vla0NvbW1hbmRFdmVudCAqPihldmVudCk7CisgICAg
ICAgIG1fY2xpZW50LmRpZFJlY2VpdmVSZW1vdGVDb250cm9sQ29tbWFuZChbc2Vla0V2ZW50IHR5
cGVdID09IE1QU2Vla0NvbW1hbmRFdmVudFR5cGVCZWdpblNlZWtpbmcgPyBNZWRpYVNlc3Npb246
OkJlZ2luU2Vla2luZ0ZvcndhcmRDb21tYW5kIDogTWVkaWFTZXNzaW9uOjpFbmRTZWVraW5nRm9y
d2FyZENvbW1hbmQpOworICAgICAgICByZXR1cm4gTVBSZW1vdGVDb21tYW5kSGFuZGxlclN0YXR1
c1N1Y2Nlc3M7CisgICAgfV07Cit9CisKK1JlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUzo6flJlbW90
ZUNvbW1hbmRMaXN0ZW5lcklPUygpCit7CisgICAgTVBSZW1vdGVDb21tYW5kQ2VudGVyICpjZW50
ZXIgPSBbZ2V0TVBSZW1vdGVDb21tYW5kQ2VudGVyQ2xhc3MoKSBzaGFyZWRDb21tYW5kQ2VudGVy
XTsKKyAgICBbW2NlbnRlciBwYXVzZUNvbW1hbmRdIHJlbW92ZVRhcmdldDptX3BhdXNlVGFyZ2V0
LmdldCgpXTsKKyAgICBbW2NlbnRlciBwbGF5Q29tbWFuZF0gcmVtb3ZlVGFyZ2V0Om1fcGxheVRh
cmdldC5nZXQoKV07CisgICAgW1tjZW50ZXIgdG9nZ2xlUGxheVBhdXNlQ29tbWFuZF0gcmVtb3Zl
VGFyZ2V0Om1fdG9nZ2xlUGxheVBhdXNlVGFyZ2V0LmdldCgpXTsKKyAgICBbW2NlbnRlciBzZWVr
Rm9yd2FyZENvbW1hbmRdIHJlbW92ZVRhcmdldDptX3NlZWtGb3J3YXJkVGFyZ2V0LmdldCgpXTsK
KyAgICBbW2NlbnRlciBzZWVrQmFja3dhcmRDb21tYW5kXSByZW1vdmVUYXJnZXQ6bV9zZWVrQmFj
a3dhcmRUYXJnZXQuZ2V0KCldOworfQorCit9CisKKyNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>226624</attachid>
            <date>2014-03-13 14:31:34 -0700</date>
            <delta_ts>2014-03-13 14:32:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-129903-20140313143120.patch</filename>
            <type>text/plain</type>
            <size>34975</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY1NTUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTFhNmZmOGVjOTZjN2Iz
NGJkOTQwYWYwMWZjZTA4YWQ1YTNhZTQ2Ni4uYzUxZGUzNzYyMjNlZDk1ZTE2YmIzYjlmNTk1M2Ri
NGFlNzczYjVlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDE0LTAzLTA3ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCByZW1vdGUgY29udHJv
bCBjb21tYW5kIHN1cHBvcnQgdG8gTWVkaWFTZXNzaW9uLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5OTAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRoZSBjYXBhYmlsaXR5IHRvIHJlY2VpdmUg
cmVtb3RlIGNvbnRyb2wgY29tbWFuZHMgKGN1cnJlbnRseSBpT1Mgb25seSkgYW5kIHRvCisgICAg
ICAgIHBhc3MgdGhvc2UgY29tbWFuZHMgdGhyb3VnaCB0aGUgTWVkaWFTZXNzaW9uTWFuYWdlci4K
KworICAgICAgICBBZGQgYSBuZXcgcGxhdGZvcm0gY2xhc3Mgd2hpY2ggY2FuIGxpc3RlbiBmb3Ig
cmVtb3RlIGNvbnRyb2wgY29tbWFuZHM6CisgICAgICAgICogcGxhdGZvcm0vUmVtb3RlQ29tbWFu
ZExpc3RlbmVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVDb21tYW5kTGlz
dGVuZXI6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vUmVtb3RlQ29tbWFuZExpc3RlbmVy
Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVtb3RlQ29tbWFuZExpc3RlbmVyQ2xpZW50
Ojp+UmVtb3RlQ29tbWFuZExpc3RlbmVyQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbW90
ZUNvbW1hbmRMaXN0ZW5lcjo6flJlbW90ZUNvbW1hbmRMaXN0ZW5lcik6CisgICAgICAgIChXZWJD
b3JlOjpSZW1vdGVDb21tYW5kTGlzdGVuZXI6OlJlbW90ZUNvbW1hbmRMaXN0ZW5lcik6CisgICAg
ICAgICogcGxhdGZvcm0vaW9zL1JlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5oOiBBZGRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9pb3MvUmVtb3RlQ29tbWFuZExpc3RlbmVySU9TLm1tOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlJlbW90ZUNvbW1hbmRMaXN0ZW5lcjo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUzo6UmVtb3RlQ29tbWFuZExpc3Rl
bmVySU9TKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUzo6flJl
bW90ZUNvbW1hbmRMaXN0ZW5lcklPUyk6CisKKyAgICAgICAgSGFuZGxlIHJlbW90ZSBjb250cm9s
IGNvbW1hbmQgZXZlbnRzIGluIEhUTUxNZWRpYUVsZW1lbnQgYW5kIEF1ZGlvRGVzdGluYXRpb25N
YWM6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKToKKyAgICAgICAgKiBodG1sL0hU
TUxNZWRpYUVsZW1lbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9EZXN0
aW5hdGlvbk1hYy5oOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbk1hYzo6Y2Fu
UmVjZWl2ZVJlbW90ZUNvbnRyb2xDb21tYW5kcyk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rl
c3RpbmF0aW9uTWFjOjpkaWRSZWNlaXZlUmVtb3RlQ29udHJvbENvbW1hbmQpOgorCisgICAgICAg
IFBpcGUgY29tbWFuZCBldmVudHMgdGhyb3VnaCBNZWRpYVNlc3Npb25NYW5hZ2VyOgorICAgICAg
ICAqIHBsYXRmb3JtL2F1ZGlvL01lZGlhU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVNlc3Npb246OmNhblJlY2VpdmVSZW1vdGVDb250cm9sQ29tbWFuZHMpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFTZXNzaW9uOjpkaWRSZWNlaXZSZW1vdGVDb250cm9sQ29tbWFuZCk6Cisg
ICAgICAgICogcGxhdGZvcm0vYXVkaW8vTWVkaWFTZXNzaW9uLmg6CisgICAgICAgICogcGxhdGZv
cm0vYXVkaW8vTWVkaWFTZXNzaW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVNlc3Npb25NYW5hZ2VyOjphZGRTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vz
c2lvbk1hbmFnZXI6OnJlbW92ZVNlc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNz
aW9uTWFuYWdlcjo6c2Vzc2lvbldpbGxCZWdpblBsYXliYWNrKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU2Vzc2lvbk1hbmFnZXI6OmRpZFJlY2VpdmVSZW1vdGVDb250cm9sQ29tbWFuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyOjphZGRDbGllbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlcjo6cmVtb3ZlQ2xpZW50KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9hdWRpby9NZWRpYVNlc3Npb25NYW5hZ2VyLmg6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50Ojp+TWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50OjpNZWRpYVNlc3Np
b25NYW5hZ2VyQ2xpZW50KToKKworICAgICAgICBNYWtlIHNlc3Npb25XaWxsQmVnaW4vRW5kUGxh
eWJhY2soKSBtZXRob2RzIHRha2Ugbm9uLWNvbnN0IHBhcmFtZXRlcnM6CisgICAgICAgICogcGxh
dGZvcm0vYXVkaW8vTWVkaWFTZXNzaW9uTWFuYWdlci5oOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFTZXNzaW9uTWFuYWdlcjo6c2Vzc2lvbldpbGxFbmRQbGF5YmFjayk6CisgICAgICAgICogcGxh
dGZvcm0vYXVkaW8vaW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJT1MuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhU2Vzc2lvbk1hbmFnZXJJT1M6OnNlc3Npb25XaWxsQmVnaW5QbGF5YWJhY2spOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlcklPUzo6c2Vzc2lvbldpbGxFbmRQ
bGF5YWJhY2spOgorCisgICAgICAgIEFkZCBuZXcgZmlsZXMgYW5kIGV4cG9ydCBuZXcgc3ltYm9s
czoKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTQtMDMtMDYgIEplciBOb2JsZSAgPGplci5ub2JsZUBh
cHBsZS5jb20+CiAKICAgICAgICAgW0VNRV0gRXh0ZW5kIHRoZSBsaWZldGltZSBvZiBNZWRpYUtl
eVNlc3Npb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IGU3ZDc0ZjE2N2VmOTBmMzc2Y2UxZTQ2
ZGE0NDJjYWJkOWUyYzhjMWEuLjlmYWZkYTk2MzM4MDA5OTRiMWVmN2Y4MTZiZjZhNGViZjM2M2I4
YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC03NzgsMTIgKzc3OCwxNSBAQCBfX1pON1dlYkNv
cmUxOUxheWVyRmx1c2hTY2hlZHVsZXJDMUVQTlNfMjVMYXllckZsdXNoU2NoZWR1bGVyQ2xpZW50
RQogX19aTjdXZWJDb3JlMTlMYXllckZsdXNoU2NoZWR1bGVyQzJFUE5TXzI1TGF5ZXJGbHVzaFNj
aGVkdWxlckNsaWVudEUKIF9fWk43V2ViQ29yZTE5TGF5ZXJGbHVzaFNjaGVkdWxlckQxRXYKIF9f
Wk43V2ViQ29yZTE5TGF5ZXJGbHVzaFNjaGVkdWxlckQyRXYKK19fWk43V2ViQ29yZTE5TWVkaWFT
ZXNzaW9uTWFuYWdlcjlhZGRDbGllbnRFUE5TXzI1TWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudEUK
K19fWk43V2ViQ29yZTE5TWVkaWFTZXNzaW9uTWFuYWdlcjEycmVtb3ZlQ2xpZW50RVBOU18yNU1l
ZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnRFCiBfX1pON1dlYkNvcmUxOU1lZGlhU2Vzc2lvbk1hbmFn
ZXIxMnJlc3RyaWN0aW9uc0VOU18xMk1lZGlhU2Vzc2lvbjlNZWRpYVR5cGVFCiBfX1pON1dlYkNv
cmUxOU1lZGlhU2Vzc2lvbk1hbmFnZXIxM3NoYXJlZE1hbmFnZXJFdgogX19aTjdXZWJDb3JlMTlN
ZWRpYVNlc3Npb25NYW5hZ2VyMTRhZGRSZXN0cmljdGlvbkVOU18xMk1lZGlhU2Vzc2lvbjlNZWRp
YVR5cGVFagogX19aTjdXZWJDb3JlMTlNZWRpYVNlc3Npb25NYW5hZ2VyMTVlbmRJbnRlcnJ1cHRp
b25FTlNfMTJNZWRpYVNlc3Npb24yMEVuZEludGVycnVwdGlvbkZsYWdzRQogX19aTjdXZWJDb3Jl
MTlNZWRpYVNlc3Npb25NYW5hZ2VyMTdiZWdpbkludGVycnVwdGlvbkV2CiBfX1pON1dlYkNvcmUx
OU1lZGlhU2Vzc2lvbk1hbmFnZXIxN3JlbW92ZVJlc3RyaWN0aW9uRU5TXzEyTWVkaWFTZXNzaW9u
OU1lZGlhVHlwZUVqCitfX1pON1dlYkNvcmUxOU1lZGlhU2Vzc2lvbk1hbmFnZXIzMGRpZFJlY2Vp
dmVSZW1vdGVDb250cm9sQ29tbWFuZEVOU18xMk1lZGlhU2Vzc2lvbjI0UmVtb3RlQ29udHJvbENv
bW1hbmRUeXBlRQogX19aTjdXZWJDb3JlMTlQbGF0Zm9ybUNBQW5pbWF0aW9uMTBzZXRUb1ZhbHVl
RVJLTlNfMjBUcmFuc2Zvcm1hdGlvbk1hdHJpeEUKIF9fWk43V2ViQ29yZTE5UGxhdGZvcm1DQUFu
aW1hdGlvbjZjcmVhdGVFUDE5Q0FQcm9wZXJ0eUFuaW1hdGlvbgogX19aTjdXZWJDb3JlMTlQbGF0
Zm9ybUNBQW5pbWF0aW9uRDFFdgpAQCAtODUwLDYgKzg1Myw3IEBAIF9fWk43V2ViQ29yZTIxTmV0
d29ya1N0b3JhZ2VTZXNzaW9uMjFkZWZhdWx0U3RvcmFnZVNlc3Npb25FdgogX19aTjdXZWJDb3Jl
MjFOZXR3b3JrU3RvcmFnZVNlc3Npb24yNXN3aXRjaFRvTmV3VGVzdGluZ1Nlc3Npb25FdgogX19a
TjdXZWJDb3JlMjFOZXR3b3JrU3RvcmFnZVNlc3Npb24yOGNyZWF0ZVByaXZhdGVCcm93c2luZ1Nl
c3Npb25FUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUyMVBsYXRmb3JtS2V5Ym9hcmRFdmVu
dDI0ZGlzYW1iaWd1YXRlS2V5RG93bkV2ZW50RU5TXzEzUGxhdGZvcm1FdmVudDRUeXBlRWIKK19f
Wk43V2ViQ29yZTIxUmVtb3RlQ29tbWFuZExpc3RlbmVyNmNyZWF0ZUVSTlNfMjdSZW1vdGVDb21t
YW5kTGlzdGVuZXJDbGllbnRFCiBfX1pON1dlYkNvcmUyMVJlc291cmNlTG9hZFNjaGVkdWxlcjIw
c2VydmVQZW5kaW5nUmVxdWVzdHNFTlNfMjBSZXNvdXJjZUxvYWRQcmlvcml0eUUKIF9fWk43V2Vi
Q29yZTIxUmVzb3VyY2VMb2FkU2NoZWR1bGVyMjBzZXJ2ZVBlbmRpbmdSZXF1ZXN0c0VQTlMwXzE1
SG9zdEluZm9ybWF0aW9uRU5TXzIwUmVzb3VyY2VMb2FkUHJpb3JpdHlFCiBfX1pON1dlYkNvcmUy
MVJlc291cmNlTG9hZFNjaGVkdWxlcjIxcmVzdW1lUGVuZGluZ1JlcXVlc3RzRXYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3NjMy
NmE4N2FhYTBmNzk2YzgzZDQwOTM0ODI3YTk4YTBjMTBlNzQ2Li5iNDExYTQwNWU5YjE5NjgyNmEw
Mjg3MmQzZDJiMTU5N2E2Mjk5OWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01NjEwLDYgKzU2MTAsOSBAQAogCQlDREYyQjAx
OTE4MjA1NDA3MDBGMkI0MjQgLyogTW9ja1RyYWNrcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RGMkIwMEYxODIwNTQwNjAwRjJCNDI0IC8qIE1vY2tU
cmFja3MuaCAqLzsgfTsKIAkJQ0RGNjVDQzgxNDVCMUU3NTAwQzRDN0FBIC8qIE1lZGlhQ29udHJv
bGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Qy
N0Y2RTQxNDU3Njc4NzAwNzgyMDdEIC8qIE1lZGlhQ29udHJvbGxlci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNERjY1Q0NBMTQ1QjQ0ODgwMEM0
QzdBQSAvKiBNZWRpYUNvbnRyb2xsZXJJbnRlcmZhY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERjY1Q0M5MTQ1QjQzQTcwMEM0QzdBQSAvKiBNZWRp
YUNvbnRyb2xsZXJJbnRlcmZhY2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQlDREZDMzYwNTE4Q0E2MUMyMDAyNkU1NkYgLyogUmVtb3RlQ29tbWFu
ZExpc3RlbmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENERkMzNjAzMThDQTYxQzIwMDI2RTU2RiAvKiBSZW1vdGVDb21tYW5kTGlzdGVuZXIuY3Bw
ICovOyB9OworCQlDREZDMzYwNjE4Q0E2MUMyMDAyNkU1NkYgLyogUmVtb3RlQ29tbWFuZExpc3Rl
bmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREZD
MzYwNDE4Q0E2MUMyMDAyNkU1NkYgLyogUmVtb3RlQ29tbWFuZExpc3RlbmVyLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0RGQzM2MDcxOENBNjk2
QzAwMjZFNTZGIC8qIFJlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERkMzNjAyMThDQTYxNjMwMDI2RTU2RiAv
KiBSZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MubW0gKi87IH07CiAJCUNFMDU3RkE1MTIyMDczMTEw
MEE0NzZENSAvKiBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0UwNTdGQTMxMjIwNzMxMTAwQTQ3NkQ1IC8q
IERvY3VtZW50TWFya2VyQ29udHJvbGxlci5jcHAgKi87IH07CiAJCUNFMDU3RkE2MTIyMDczMTEw
MEE0NzZENSAvKiBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENFMDU3RkE0MTIyMDczMTEwMEE0NzZENSAvKiBE
b2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQlDRTA4QzNEMTE1MkI1OTlBMDAyMUI4QzIgLyogQWx0ZXJuYXRp
dmVUZXh0Q29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRTA4QzNDRjE1MkI1OTlBMDAyMUI4QzIgLyogQWx0ZXJuYXRpdmVUZXh0Q29u
dHJvbGxlci5jcHAgKi87IH07CkBAIC0xMjkzMCw2ICsxMjkzMywxMCBAQAogCQlDREYyQjAwRjE4
MjA1NDA2MDBGMkI0MjQgLyogTW9ja1RyYWNrcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBNb2NrVHJhY2tzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERjY1
Q0M5MTQ1QjQzQTcwMEM0QzdBQSAvKiBNZWRpYUNvbnRyb2xsZXJJbnRlcmZhY2UuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFDb250cm9sbGVySW50ZXJmYWNlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERjY1Q0NDMTQ1QjZBRkUwMEM0QzdBQSAvKiBK
U0hUTUxNZWRpYUVsZW1lbnRDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNIVE1MTWVkaWFFbGVtZW50Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQ0RGQzM2MDExOENBNjE2MzAwMjZFNTZGIC8qIFJlbW90ZUNvbW1hbmRMaXN0
ZW5lcklPUy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBSZW1vdGVDb21tYW5k
TGlzdGVuZXJJT1MuaDsgcGF0aCA9IGlvcy9SZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RGQzM2MDIxOENBNjE2MzAwMjZFNTZGIC8qIFJl
bW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgbmFtZSA9IFJlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5tbTsgcGF0aCA9IGlvcy9SZW1vdGVD
b21tYW5kTGlzdGVuZXJJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERkMz
NjAzMThDQTYxQzIwMDI2RTU2RiAvKiBSZW1vdGVDb21tYW5kTGlzdGVuZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQ29tbWFuZExpc3RlbmVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RGQzM2MDQxOENBNjFDMjAwMjZFNTZGIC8q
IFJlbW90ZUNvbW1hbmRMaXN0ZW5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSZW1vdGVDb21tYW5kTGlzdGVuZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
Q0UwNTdGQTMxMjIwNzMxMTAwQTQ3NkQ1IC8qIERvY3VtZW50TWFya2VyQ29udHJvbGxlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEb2N1bWVudE1hcmtlckNvbnRy
b2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRTA1N0ZBNDEyMjA3MzEx
MDBBNDc2RDUgLyogRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IERvY3VtZW50TWFya2VyQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDRTA4QzNDRjE1MkI1OTlBMDAyMUI4QzIgLyogQWx0ZXJuYXRpdmVU
ZXh0Q29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBB
bHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTE4MDM2LDYgKzE4MDQzLDggQEAKIAkJCQlDNTI3OEIwQjE3RjIxMkVBMDAzQTI5OTggLyog
UGxhdGZvcm1QYXN0ZWJvYXJkSU9TLm1tICovLAogCQkJCUU0NTM5MDMyMEVBRkQ2MzcwMDM2OTVD
OCAvKiBQbGF0Zm9ybVNjcmVlbklPUy5tbSAqLywKIAkJCQlBQUUzNzU1RDE3NDI5QkNDMDA2MjAw
QzIgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcklPUy5tbSAqLywKKwkJCQlDREZDMzYwMTE4
Q0E2MTYzMDAyNkU1NkYgLyogUmVtb3RlQ29tbWFuZExpc3RlbmVySU9TLmggKi8sCisJCQkJQ0RG
QzM2MDIxOENBNjE2MzAwMjZFNTZGIC8qIFJlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5tbSAqLywK
IAkJCQk0NEMzNjNFRTBGQUE3QkIzMDA5N0Y4Q0MgLyogUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tz
SU9TLmggKi8sCiAJCQkJNDRDMzYzRUYwRkFBN0JCMzAwOTdGOENDIC8qIFJ1bnRpbWVBcHBsaWNh
dGlvbkNoZWNrc0lPUy5tbSAqLywKIAkJCQkwRjE3NzQ3RTEzNzhCNzcxMDA5REE3NkEgLyogU2Ny
b2xsQW5pbWF0b3JJT1MuaCAqLywKQEAgLTIwOTU5LDYgKzIwOTY4LDggQEAKIAkJCQk5MzgwRjQ3
MTA5QTExQUI0MDAxRkRCMzQgLyogV2lkZ2V0LmNwcCAqLywKIAkJCQk5MzgwRjQ3MjA5QTExQUI0
MDAxRkRCMzQgLyogV2lkZ2V0LmggKi8sCiAJCQkJRTFFMUJFRkYxMTVGRjZGQjAwNkY1MkNBIC8q
IFdpbmRvd3NLZXlib2FyZENvZGVzLmggKi8sCisJCQkJQ0RGQzM2MDMxOENBNjFDMjAwMjZFNTZG
IC8qIFJlbW90ZUNvbW1hbmRMaXN0ZW5lci5jcHAgKi8sCisJCQkJQ0RGQzM2MDQxOENBNjFDMjAw
MjZFNTZGIC8qIFJlbW90ZUNvbW1hbmRMaXN0ZW5lci5oICovLAogCQkJKTsKIAkJCXBhdGggPSBw
bGF0Zm9ybTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yNTQ4Nyw2ICsyNTQ5OCw3
IEBACiAJCQkJRTRCQkVENEQxNEZDREJBMTAwM0YwQjk4IC8qIFN0eWxlUnVsZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRTQ5NDZFQUYxNTZFNjRERDAwRDMyOTdGIC8qIFN0eWxlUnVsZUltcG9ydC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQThFQTgwMEMwQTE5NTE2RTAwQThFRjVGIC8qIFN0eWxlU2hl
ZXQuaCBpbiBIZWFkZXJzICovLAorCQkJCUNERkMzNjA2MThDQTYxQzIwMDI2RTU2RiAvKiBSZW1v
dGVDb21tYW5kTGlzdGVuZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0RjlFRUYzMTU2REEwMDcw
MEQyM0U3RSAvKiBTdHlsZVNoZWV0Q29udGVudHMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4RUE4
MDBBMEExOTUxNkUwMEE4RUY1RiAvKiBTdHlsZVNoZWV0TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkM1RUI1RTUwRTgxQkY2RDAwQjI1OTY1IC8qIFN0eWxlU3Vycm91bmREYXRhLmggaW4gSGVh
ZGVycyAqLywKQEAgLTI3NTc3LDYgKzI3NTg5LDcgQEAKIAkJCQlBOUQyNDgwNjBENzU3RTdEMDBG
REY5NTkgLyogSlNET01NaW1lVHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOUQyNDgwODBE
NzU3RTdEMDBGREY5NTkgLyogSlNET01NaW1lVHlwZUFycmF5LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUE5QzZFNjQ3MEQ3NDY1Q0EwMDY0NDJFOSAvKiBKU0RPTU1pbWVUeXBlQXJyYXlDdXN0b20u
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0RGQzM2MDcxOENBNjk2QzAwMjZFNTZGIC8qIFJlbW90
ZUNvbW1hbmRMaXN0ZW5lcklPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUyQ0NBOUUyMTVFM0Y2
MkMwMDUzQzc3RiAvKiBKU0RPTU5hbWVkRmxvd0NvbGxlY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMUFDRTUzREYwQThEMTg4MTAwMjI5NDdEIC8qIEpTRE9NUGFyc2VyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUZCOTEzOTJCMTZBRTRGQzAwMDFGRTY4MiAvKiBKU0RPTVBhdGguY3BwIGlu
IFNvdXJjZXMgKi8sCkBAIC0yODE4MCw2ICsyODE5Myw3IEBACiAJCQkJQTUxNkU4QjgxMzZFMDRE
QjAwNzZDM0MwIC8qIExvY2FsaXplZERhdGVDYWNoZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUMw
NDZFMUFDMTIwOEE5RkUwMEJBMkNGNyAvKiBMb2NhbGl6ZWRTdHJpbmdzLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUJDMjVCNTJBMTMxQzZEMzkwMDE4MEUxMCAvKiBMb2NhbGl6ZWRTdHJpbmdzTWFj
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNERkMzNjA1MThDQTYxQzIwMDI2RTU2RiAvKiBSZW1v
dGVDb21tYW5kTGlzdGVuZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNFMUM0MUMwRDk4Mjk4
MTAwM0IwMkYyIC8qIExvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4MjM5RTAwMDlC
M0NGOEEwMEI2MDY0MSAvKiBMb2dnaW5nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0MDI2NDVF
MEFGREMxOUIwMDU5MTlFMiAvKiBMb2dnaW5nTWFjLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBiN2Y1ZWFhMDE1YWExZGY4NTRk
NjFlODE0ZWQ4NzA5MTdmOWI4MDAxLi41ZWUwMTgwNmUxMmY1MTAwMGE4Yjg1ZGUzNWRkYTk3YmFm
ZDRiMjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTU4
ODcsNiArNTg4NywxMiBAQCBTdHJpbmcgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFTZXNzaW9uVGl0
bGUoKSBjb25zdAogICAgIHJldHVybiBtX2N1cnJlbnRTcmM7CiB9CiAKK3ZvaWQgSFRNTE1lZGlh
RWxlbWVudDo6ZGlkUmVjZWl2ZVJlbW90ZUNvbnRyb2xDb21tYW5kKE1lZGlhU2Vzc2lvbjo6UmVt
b3RlQ29udHJvbENvbW1hbmRUeXBlIGNvbW1hbmQpCit7CisgICAgLy8gRklYTUUoMTI5OTI2KTog
QWRkIFJlbW90ZSBDb250cm9sIHN1cHBvcnQgdG8gSFRNTE1lZGlhRWxlbWVudAorICAgIFVOVVNF
RF9QQVJBTShjb21tYW5kKTsKK30KKwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmgKaW5kZXggMjE0YzQwYjFlMTJkOGVmMDgwN2NiYWJhZDQyZDEwMGY1ZTZi
NGM0Yy4uZTE4YmZiZTcyZjNjYTdmYzhjNTVlM2MwMzJhZGNkMGZmZjkwMGEwNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKQEAgLTY5Nyw2ICs2OTcsOCBAQCBwcml2YXRl
OgogICAgIHZpcnR1YWwgU3RyaW5nIG1lZGlhU2Vzc2lvblRpdGxlKCkgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCBkb3VibGUgbWVkaWFTZXNzaW9uRHVyYXRpb24oKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBkdXJhdGlvbigpOyB9CiAgICAgdmlydHVhbCBkb3VibGUgbWVkaWFTZXNzaW9u
Q3VycmVudFRpbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBjdXJyZW50VGltZSgpOyB9Cisg
ICAgdmlydHVhbCBib29sIGNhblJlY2VpdmVSZW1vdGVDb250cm9sQ29tbWFuZHMoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZW1v
dGVDb250cm9sQ29tbWFuZChNZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZSkg
b3ZlcnJpZGU7CiAKICAgICBUaW1lcjxIVE1MTWVkaWFFbGVtZW50PiBtX2xvYWRUaW1lcjsKICAg
ICBUaW1lcjxIVE1MTWVkaWFFbGVtZW50PiBtX3Byb2dyZXNzRXZlbnRUaW1lcjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1JlbW90ZUNvbW1hbmRMaXN0ZW5lci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SZW1vdGVDb21tYW5kTGlzdGVuZXIuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjFiODZkMTA4YzczODExMTExZDliN2YwYzkyNTk5MTNkYWJiNDAwMGMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SZW1vdGVDb21tYW5kTGlzdGVuZXIuY3Bw
CkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiUmVtb3RlQ29tbWFuZExpc3RlbmVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworI2lm
ICFQTEFURk9STShJT1MpCitzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlQ29tbWFuZExpc3RlbmVyPiBS
ZW1vdGVDb21tYW5kTGlzdGVuZXI6OmNyZWF0ZShSZW1vdGVDb21tYW5kTGlzdGVuZXJDbGllbnQm
IGNsaWVudCkKK3sKKyAgICByZXR1cm4gc3RkOjptb3ZlKHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVD
b21tYW5kTGlzdGVuZXI+KG5ldyBSZW1vdGVDb21tYW5kTGlzdGVuZXIoY2xpZW50KSkpOworfQor
I2VuZGlmCisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1JlbW90ZUNv
bW1hbmRMaXN0ZW5lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUmVtb3RlQ29tbWFuZExp
c3RlbmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNzY0MjU4YzA1OGRiOThiNTY3YzM0YTczNjhmNDUxMjc1YjRj
MDZmNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1JlbW90ZUNv
bW1hbmRMaXN0ZW5lci5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFJlbW90
ZUNvbW1hbmRMaXN0ZW5lcl9oCisjZGVmaW5lIFJlbW90ZUNvbW1hbmRMaXN0ZW5lcl9oCisKKyNp
bmNsdWRlICJNZWRpYVNlc3Npb24uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBS
ZW1vdGVDb21tYW5kTGlzdGVuZXJDbGllbnQgeworcHVibGljOgorICAgIHZpcnR1YWwgflJlbW90
ZUNvbW1hbmRMaXN0ZW5lckNsaWVudCgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZl
UmVtb3RlQ29udHJvbENvbW1hbmQoTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5
cGUpID0gMDsKK307CisKK2NsYXNzIFJlbW90ZUNvbW1hbmRMaXN0ZW5lciB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVDb21tYW5kTGlzdGVuZXI+IGNyZWF0ZShS
ZW1vdGVDb21tYW5kTGlzdGVuZXJDbGllbnQmKTsKKyAgICB2aXJ0dWFsIH5SZW1vdGVDb21tYW5k
TGlzdGVuZXIoKSB7IH0KKworcHJvdGVjdGVkOgorICAgIFJlbW90ZUNvbW1hbmRMaXN0ZW5lcihS
ZW1vdGVDb21tYW5kTGlzdGVuZXJDbGllbnQmIGNsaWVudCkgOiBtX2NsaWVudChjbGllbnQpIHsg
fTsKKworICAgIFJlbW90ZUNvbW1hbmRMaXN0ZW5lckNsaWVudCYgbV9jbGllbnQ7Cit9OworCit9
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vTWVk
aWFTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL01lZGlhU2Vzc2lv
bi5jcHAKaW5kZXggM2JlYTFlMDEwOWI2YzRmYjM2ZTNkZTM2OTI1ZmRiZGRmMWNmZjY0NS4uNTk5
ZTZmOWI0MTI5MmI1OGFhNDIzMjkxMjJkNTg0MTczMjA0MTg5MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vTWVkaWFTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9NZWRpYVNlc3Npb24uY3BwCkBAIC0xNDUsNCArMTQ1LDE0IEBA
IGRvdWJsZSBNZWRpYVNlc3Npb246OmN1cnJlbnRUaW1lKCkgY29uc3QKICAgICByZXR1cm4gbV9j
bGllbnQubWVkaWFTZXNzaW9uQ3VycmVudFRpbWUoKTsKIH0KICAgICAKK2Jvb2wgTWVkaWFTZXNz
aW9uOjpjYW5SZWNlaXZlUmVtb3RlQ29udHJvbENvbW1hbmRzKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9jbGllbnQuY2FuUmVjZWl2ZVJlbW90ZUNvbnRyb2xDb21tYW5kcygpOworfQorCit2b2lk
IE1lZGlhU2Vzc2lvbjo6ZGlkUmVjZWl2ZVJlbW90ZUNvbnRyb2xDb21tYW5kKFJlbW90ZUNvbnRy
b2xDb21tYW5kVHlwZSBjb21tYW5kKQoreworICAgIG1fY2xpZW50LmRpZFJlY2VpdmVSZW1vdGVD
b250cm9sQ29tbWFuZChjb21tYW5kKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vTWVkaWFTZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9NZWRpYVNlc3Npb24uaAppbmRleCBkNTgxYjdjODQyZGZkZjdkZjlmYzdhZTVlOTA4
ODRhMTAzNjI1NzQzLi4zYThjMWNjYjQyNDIxMmM5YWQyZjU4NGYxZmY1ODJkNjJkMTA3MjViIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9NZWRpYVNlc3Npb24uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9NZWRpYVNlc3Npb24uaApAQCAtNzYs
NiArNzYsMjAgQEAgcHVibGljOgogICAgIGRvdWJsZSBkdXJhdGlvbigpIGNvbnN0OwogICAgIGRv
dWJsZSBjdXJyZW50VGltZSgpIGNvbnN0OwogCisgICAgZW51bSBSZW1vdGVDb250cm9sQ29tbWFu
ZFR5cGUgeworICAgICAgICBOb0NvbW1hbmQsCisgICAgICAgIFBsYXlDb21tYW5kLAorICAgICAg
ICBQYXVzZUNvbW1hbmQsCisgICAgICAgIFN0b3BDb21tYW5kLAorICAgICAgICBUb2dnbGVQbGF5
UGF1c2VDb21tYW5kLAorICAgICAgICBCZWdpblNlZWtpbmdCYWNrd2FyZENvbW1hbmQsCisgICAg
ICAgIEVuZFNlZWtpbmdCYWNrd2FyZENvbW1hbmQsCisgICAgICAgIEJlZ2luU2Vla2luZ0Zvcndh
cmRDb21tYW5kLAorICAgICAgICBFbmRTZWVraW5nRm9yd2FyZENvbW1hbmQsCisgICAgfTsKKyAg
ICBib29sIGNhblJlY2VpdmVSZW1vdGVDb250cm9sQ29tbWFuZHMoKSBjb25zdDsKKyAgICB2b2lk
IGRpZFJlY2VpdmVSZW1vdGVDb250cm9sQ29tbWFuZChSZW1vdGVDb250cm9sQ29tbWFuZFR5cGUp
OworCiBwcm90ZWN0ZWQ6CiAgICAgTWVkaWFTZXNzaW9uQ2xpZW50JiBjbGllbnQoKSBjb25zdCB7
IHJldHVybiBtX2NsaWVudDsgfQogCkBAIC05NCwxMSArMTA4LDE0IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIE1lZGlhU2Vzc2lvbjo6TWVkaWFUeXBlIG1lZGlhVHlwZSgpIGNvbnN0ID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgcmVzdW1lUGxheWJhY2soKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHBh
dXNlUGxheWJhY2soKSA9IDA7Ci0gICAgCisKICAgICB2aXJ0dWFsIFN0cmluZyBtZWRpYVNlc3Np
b25UaXRsZSgpIGNvbnN0IHsgcmV0dXJuIFN0cmluZygpOyB9CiAgICAgdmlydHVhbCBkb3VibGUg
bWVkaWFTZXNzaW9uRHVyYXRpb24oKSBjb25zdCB7IHJldHVybiBNZWRpYVBsYXllcjo6aW52YWxp
ZFRpbWUoKTsgfQogICAgIHZpcnR1YWwgZG91YmxlIG1lZGlhU2Vzc2lvbkN1cnJlbnRUaW1lKCkg
Y29uc3QgeyByZXR1cm4gTWVkaWFQbGF5ZXI6OmludmFsaWRUaW1lKCk7IH0KICAgICAKKyAgICB2
aXJ0dWFsIGJvb2wgY2FuUmVjZWl2ZVJlbW90ZUNvbnRyb2xDb21tYW5kcygpIGNvbnN0ID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlbW90ZUNvbnRyb2xDb21tYW5kKE1lZGlhU2Vz
c2lvbjo6UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlKSA9IDA7CisKIHByb3RlY3RlZDoKICAgICB2
aXJ0dWFsIH5NZWRpYVNlc3Npb25DbGllbnQoKSB7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL01lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCmluZGV4IDNiMDVl
NjhiOTU1MzFlZDIyYzg5ZDI4YzE3ZDMyYmUxOGI0MThjZTUuLjgzZDgzYzhkZjgwNDE2ODE4YzE4
MjNhNWNkNWZjZWE0NjVlZTcyMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL01lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL01lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCkBAIC0xMDIsNiArMTAyLDEyIEBAIHZv
aWQgTWVkaWFTZXNzaW9uTWFuYWdlcjo6YWRkU2Vzc2lvbihNZWRpYVNlc3Npb24mIHNlc3Npb24p
CiAgICAgaWYgKG1faW50ZXJydXB0ZWQpCiAgICAgICAgIHNlc3Npb24uc2V0U3RhdGUoTWVkaWFT
ZXNzaW9uOjpJbnRlcnJ1cHRlZCk7CiAgICAgdXBkYXRlU2Vzc2lvblN0YXRlKCk7CisKKyAgICBp
ZiAobV9jbGllbnRzLmlzRW1wdHkoKSB8fCAhKHNlc3Npb24ubWVkaWFUeXBlKCkgPT0gTWVkaWFT
ZXNzaW9uOjpWaWRlbyB8fCBzZXNzaW9uLm1lZGlhVHlwZSgpID09IE1lZGlhU2Vzc2lvbjo6QXVk
aW8pKQorICAgICAgICByZXR1cm47CisKKyAgICBmb3IgKGF1dG8mIGNsaWVudCA6IG1fY2xpZW50
cykKKyAgICAgICAgY2xpZW50LT5zdGFydExpc3RlbmluZ0ZvclJlbW90ZUNvbnRyb2xDb21tYW5k
cygpOwogfQogCiB2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXI6OnJlbW92ZVNlc3Npb24oTWVkaWFT
ZXNzaW9uJiBzZXNzaW9uKQpAQCAtMTE1LDcgKzEyMSwxNSBAQCB2b2lkIE1lZGlhU2Vzc2lvbk1h
bmFnZXI6OnJlbW92ZVNlc3Npb24oTWVkaWFTZXNzaW9uJiBzZXNzaW9uKQogICAgICAgICBzZXRD
dXJyZW50U2Vzc2lvbihudWxscHRyKTsKICAgICAKICAgICBtX3Nlc3Npb25zLnJlbW92ZShpbmRl
eCk7CisgICAgaWYgKG1fYWN0aXZlU2Vzc2lvbiA9PSAmc2Vzc2lvbikKKyAgICAgICAgbV9hY3Rp
dmVTZXNzaW9uID0gbnVsbHB0cjsKICAgICB1cGRhdGVTZXNzaW9uU3RhdGUoKTsKKworICAgIGlm
IChtX2NsaWVudHMuaXNFbXB0eSgpIHx8ICEoc2Vzc2lvbi5tZWRpYVR5cGUoKSA9PSBNZWRpYVNl
c3Npb246OlZpZGVvIHx8IHNlc3Npb24ubWVkaWFUeXBlKCkgPT0gTWVkaWFTZXNzaW9uOjpBdWRp
bykpCisgICAgICAgIHJldHVybjsKKworICAgIGZvciAoYXV0byYgY2xpZW50IDogbV9jbGllbnRz
KQorICAgICAgICBjbGllbnQtPnN0YXJ0TGlzdGVuaW5nRm9yUmVtb3RlQ29udHJvbENvbW1hbmRz
KCk7CiB9CiAKIHZvaWQgTWVkaWFTZXNzaW9uTWFuYWdlcjo6YWRkUmVzdHJpY3Rpb24oTWVkaWFT
ZXNzaW9uOjpNZWRpYVR5cGUgdHlwZSwgU2Vzc2lvblJlc3RyaWN0aW9ucyByZXN0cmljdGlvbikK
QEAgLTEzNiwxMCArMTUwLDE1IEBAIE1lZGlhU2Vzc2lvbk1hbmFnZXI6OlNlc3Npb25SZXN0cmlj
dGlvbnMgTWVkaWFTZXNzaW9uTWFuYWdlcjo6cmVzdHJpY3Rpb25zKE1lZGlhCiAgICAgcmV0dXJu
IG1fcmVzdHJpY3Rpb25zW3R5cGVdOwogfQogCi12b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNl
c3Npb25XaWxsQmVnaW5QbGF5YmFjayhjb25zdCBNZWRpYVNlc3Npb24mIHNlc3Npb24pCit2b2lk
IE1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNlc3Npb25XaWxsQmVnaW5QbGF5YmFjayhNZWRpYVNlc3Np
b24mIHNlc3Npb24pCiB7CiAgICAgc2V0Q3VycmVudFNlc3Npb24oJnNlc3Npb24pOwotICAgIAor
CisgICAgaWYgKCFtX2NsaWVudHMuaXNFbXB0eSgpICYmIChzZXNzaW9uLm1lZGlhVHlwZSgpID09
IE1lZGlhU2Vzc2lvbjo6VmlkZW8gfHwgc2Vzc2lvbi5tZWRpYVR5cGUoKSA9PSBNZWRpYVNlc3Np
b246OkF1ZGlvKSkgeworICAgICAgICBmb3IgKGF1dG8mIGNsaWVudCA6IG1fY2xpZW50cykKKyAg
ICAgICAgICAgIGNsaWVudC0+ZGlkQmVnaW5QbGF5YmFjaygpOworICAgIH0KKwogICAgIE1lZGlh
U2Vzc2lvbjo6TWVkaWFUeXBlIHNlc3Npb25UeXBlID0gc2Vzc2lvbi5tZWRpYVR5cGUoKTsKICAg
ICBTZXNzaW9uUmVzdHJpY3Rpb25zIHJlc3RyaWN0aW9ucyA9IG1fcmVzdHJpY3Rpb25zW3Nlc3Np
b25UeXBlXTsKICAgICBpZiAoIXJlc3RyaWN0aW9ucyAmIENvbmN1cnJlbnRQbGF5YmFja05vdFBl
cm1pdHRlZCkKQEAgLTE4OCw0ICsyMDcsMjMgQEAgdm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyOjp1
cGRhdGVTZXNzaW9uU3RhdGUoKQogfQogI2VuZGlmCiAKK3ZvaWQgTWVkaWFTZXNzaW9uTWFuYWdl
cjo6ZGlkUmVjZWl2ZVJlbW90ZUNvbnRyb2xDb21tYW5kKE1lZGlhU2Vzc2lvbjo6UmVtb3RlQ29u
dHJvbENvbW1hbmRUeXBlIGNvbW1hbmQpCit7CisgICAgaWYgKCFtX2FjdGl2ZVNlc3Npb24gfHwg
IW1fYWN0aXZlU2Vzc2lvbi0+Y2FuUmVjZWl2ZVJlbW90ZUNvbnRyb2xDb21tYW5kcygpKQorICAg
ICAgICByZXR1cm47CisgICAgbV9hY3RpdmVTZXNzaW9uLT5kaWRSZWNlaXZlUmVtb3RlQ29udHJv
bENvbW1hbmQoY29tbWFuZCk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uTWFuYWdlcjo6YWRkQ2xp
ZW50KE1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnQqIGNsaWVudCkKK3sKKyAgICBBU1NFUlQoIW1f
Y2xpZW50cy5jb250YWlucyhjbGllbnQpKTsKKyAgICBtX2NsaWVudHMuYXBwZW5kKGNsaWVudCk7
Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uTWFuYWdlcjo6cmVtb3ZlQ2xpZW50KE1lZGlhU2Vzc2lv
bk1hbmFnZXJDbGllbnQqIGNsaWVudCkKK3sKKyAgICBBU1NFUlQobV9jbGllbnRzLmNvbnRhaW5z
KGNsaWVudCkpOworICAgIG1fY2xpZW50cy5yZW1vdmUobV9jbGllbnRzLmZpbmQoY2xpZW50KSk7
Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL01lZGlh
U2Vzc2lvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL01lZGlhU2Vz
c2lvbk1hbmFnZXIuaAppbmRleCA2MGIxNTc5MzBjZmE4MDRmMGE3ZjZmZDc5YTAwZGU5YzBkMjll
ZTkzLi4zNzQzMDg1N2U4NzU2OTE5NTJkZTU2MjRhOTVlYTk5NTc0MTlmYzgzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9NZWRpYVNlc3Npb25NYW5hZ2VyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vTWVkaWFTZXNzaW9uTWFuYWdlci5oCkBA
IC0zNiw2ICszNiwxOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBIVE1MTWVkaWFFbGVt
ZW50OwogY2xhc3MgTWVkaWFTZXNzaW9uOwogCitjbGFzcyBNZWRpYVNlc3Npb25NYW5hZ2VyQ2xp
ZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5NZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50KCkg
eyB9CisKKyAgICB2aXJ0dWFsIGJvb2wgaXNMaXN0ZW5pbmdGb3JSZW1vdGVDb250cm9sQ29tbWFu
ZHMoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0YXJ0TGlzdGVuaW5nRm9yUmVtb3RlQ29udHJv
bENvbW1hbmRzKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzdG9wTGlzdGVuaW5nRm9yUmVtb3Rl
Q29udHJvbENvbW1hbmRzKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRCZWdpblBsYXliYWNr
KCkgPSAwOworCitwcm90ZWN0ZWQ6CisgICAgTWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudCgpIHsg
fQorfTsKKwogY2xhc3MgTWVkaWFTZXNzaW9uTWFuYWdlciB7CiBwdWJsaWM6CiAgICAgc3RhdGlj
IE1lZGlhU2Vzc2lvbk1hbmFnZXImIHNoYXJlZE1hbmFnZXIoKTsKQEAgLTY1LDggKzc4LDggQEAg
cHVibGljOgogICAgIFNlc3Npb25SZXN0cmljdGlvbnMgcmVzdHJpY3Rpb25zKE1lZGlhU2Vzc2lv
bjo6TWVkaWFUeXBlKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVzZXRSZXN0cmljdGlvbnMoKTsKIAot
ICAgIHZpcnR1YWwgdm9pZCBzZXNzaW9uV2lsbEJlZ2luUGxheWJhY2soY29uc3QgTWVkaWFTZXNz
aW9uJik7Ci0gICAgdmlydHVhbCB2b2lkIHNlc3Npb25XaWxsRW5kUGxheWJhY2soY29uc3QgTWVk
aWFTZXNzaW9uJikgeyB9CisgICAgdmlydHVhbCB2b2lkIHNlc3Npb25XaWxsQmVnaW5QbGF5YmFj
ayhNZWRpYVNlc3Npb24mKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2Vzc2lvbldpbGxFbmRQbGF5YmFj
ayhNZWRpYVNlc3Npb24mKSB7IH0KICAgICAKICAgICBib29sIHNlc3Npb25SZXN0cmljdHNJbmxp
bmVWaWRlb1BsYXliYWNrKGNvbnN0IE1lZGlhU2Vzc2lvbiYpIGNvbnN0OwogCkBAIC03NCw2ICs4
NywxMSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tl
cigpIHsgfQogI2VuZGlmCiAKKyAgICB2b2lkIGRpZFJlY2VpdmVSZW1vdGVDb250cm9sQ29tbWFu
ZChNZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZSk7CisKKyAgICB2b2lkIGFk
ZENsaWVudChNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50Kik7CisgICAgdm9pZCByZW1vdmVDbGll
bnQoTWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudCopOworCiBwcm90ZWN0ZWQ6CiAgICAgZnJpZW5k
IGNsYXNzIE1lZGlhU2Vzc2lvbjsKICAgICBleHBsaWNpdCBNZWRpYVNlc3Npb25NYW5hZ2VyKCk7
CkBAIC04MSw4ICs5OSw4IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGFkZFNlc3Npb24oTWVkaWFT
ZXNzaW9uJik7CiAgICAgdm9pZCByZW1vdmVTZXNzaW9uKE1lZGlhU2Vzc2lvbiYpOwogICAgIAot
ICAgIHZvaWQgc2V0Q3VycmVudFNlc3Npb24oY29uc3QgTWVkaWFTZXNzaW9uKiBzZXNzaW9uKSB7
IG1fYWN0aXZlU2Vzc2lvbiA9IHNlc3Npb247IH0KLSAgICBjb25zdCBNZWRpYVNlc3Npb24qIGN1
cnJlbnRTZXNzaW9uKCkgeyByZXR1cm4gbV9hY3RpdmVTZXNzaW9uOyB9CisgICAgdm9pZCBzZXRD
dXJyZW50U2Vzc2lvbihNZWRpYVNlc3Npb24qIHNlc3Npb24pIHsgbV9hY3RpdmVTZXNzaW9uID0g
c2Vzc2lvbjsgfQorICAgIE1lZGlhU2Vzc2lvbiogY3VycmVudFNlc3Npb24oKSB7IHJldHVybiBt
X2FjdGl2ZVNlc3Npb247IH0KICAgICAKIHByaXZhdGU6CiAgICAgdm9pZCB1cGRhdGVTZXNzaW9u
U3RhdGUoKTsKQEAgLTkwLDcgKzEwOCw4IEBAIHByaXZhdGU6CiAgICAgU2Vzc2lvblJlc3RyaWN0
aW9ucyBtX3Jlc3RyaWN0aW9uc1tNZWRpYVNlc3Npb246OldlYkF1ZGlvICsgMV07CiAKICAgICBW
ZWN0b3I8TWVkaWFTZXNzaW9uKj4gbV9zZXNzaW9uczsKLSAgICBjb25zdCBNZWRpYVNlc3Npb24q
IG1fYWN0aXZlU2Vzc2lvbjsKKyAgICBWZWN0b3I8TWVkaWFTZXNzaW9uTWFuYWdlckNsaWVudCo+
IG1fY2xpZW50czsKKyAgICBNZWRpYVNlc3Npb24qIG1fYWN0aXZlU2Vzc2lvbjsKICAgICBib29s
IG1faW50ZXJydXB0ZWQ7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vaW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJT1MuaAppbmRleCBlYmQ1NjVhZjg4
MmMyNmVhMWZiNzFhYzI1ZjM2NjAyMTIxOTBkNTNlLi43MDE1N2ZiMGJjNTQ5NzIwZGM0MjZlMzli
OWY1ZDc4YzE4OGE1ZmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLmgKQEAgLTQ4LDggKzQ4LDggQEAg
cHVibGljOgogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgTWVkaWFTZXNzaW9uTWFuYWdlcjsK
IAotICAgIHZpcnR1YWwgdm9pZCBzZXNzaW9uV2lsbEJlZ2luUGxheWJhY2soY29uc3QgTWVkaWFT
ZXNzaW9uJikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHNlc3Npb25XaWxsRW5kUGxheWJh
Y2soY29uc3QgTWVkaWFTZXNzaW9uJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNlc3Np
b25XaWxsQmVnaW5QbGF5YmFjayhNZWRpYVNlc3Npb24mKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgc2Vzc2lvbldpbGxFbmRQbGF5YmFjayhNZWRpYVNlc3Npb24mKSBvdmVycmlkZTsKICAg
ICAKICAgICB2b2lkIHVwZGF0ZU5vd1BsYXlpbmdJbmZvKCk7CiAgICAgCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2Vy
SU9TLm1tCmluZGV4IDI3OWYwNmRkMWM2NDIyZDQ3NmM2MTNmMmVhZjgxYWY3ZWQxYzk5MzQuLjNi
MGY1NzRmYjFjMTBlMGMzYWQ1ODI4NTI0Y2JjNjEwNTc5NGZlYTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2Vy
SU9TLm1tCkBAIC0xMzYsMTMgKzEzNiwxMyBAQCB2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJpT1M6
OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcigpCiB9CiAjZW5kaWYKICAgICAKLXZvaWQgTWVkaWFT
ZXNzaW9uTWFuYWdlcmlPUzo6c2Vzc2lvbldpbGxCZWdpblBsYXliYWNrKGNvbnN0IE1lZGlhU2Vz
c2lvbiYgc2Vzc2lvbikKK3ZvaWQgTWVkaWFTZXNzaW9uTWFuYWdlcmlPUzo6c2Vzc2lvbldpbGxC
ZWdpblBsYXliYWNrKE1lZGlhU2Vzc2lvbiYgc2Vzc2lvbikKIHsKICAgICBNZWRpYVNlc3Npb25N
YW5hZ2VyOjpzZXNzaW9uV2lsbEJlZ2luUGxheWJhY2soc2Vzc2lvbik7CiAgICAgdXBkYXRlTm93
UGxheWluZ0luZm8oKTsKIH0KICAgICAKLXZvaWQgTWVkaWFTZXNzaW9uTWFuYWdlcmlPUzo6c2Vz
c2lvbldpbGxFbmRQbGF5YmFjayhjb25zdCBNZWRpYVNlc3Npb24mIHNlc3Npb24pCit2b2lkIE1l
ZGlhU2Vzc2lvbk1hbmFnZXJpT1M6OnNlc3Npb25XaWxsRW5kUGxheWJhY2soTWVkaWFTZXNzaW9u
JiBzZXNzaW9uKQogewogICAgIE1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNlc3Npb25XaWxsRW5kUGxh
eWJhY2soc2Vzc2lvbik7CiAgICAgdXBkYXRlTm93UGxheWluZ0luZm8oKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb0Rlc3RpbmF0aW9uTWFjLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9EZXN0aW5hdGlvbk1hYy5o
CmluZGV4IGYzNWMyYTQyYTJmYmM5N2I1YzE5ZWQ2OTVhMjkxYWNhNThiMjBiNzQuLjkwZTIzMTg4
NTg2ZTFiMjk3OTlhMzU4NTA0NWQ5NDBkZWNmODg3OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb0Rlc3RpbmF0aW9uTWFjLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvRGVzdGluYXRpb25NYWMuaApAQCAtNjIs
NiArNjIsOCBAQCBwcml2YXRlOgogICAgIE9TU3RhdHVzIHJlbmRlcihVSW50MzIgbnVtYmVyT2ZG
cmFtZXMsIEF1ZGlvQnVmZmVyTGlzdCogaW9EYXRhKTsKIAogICAgIHZpcnR1YWwgTWVkaWFTZXNz
aW9uOjpNZWRpYVR5cGUgbWVkaWFUeXBlKCkgY29uc3QgeyByZXR1cm4gTWVkaWFTZXNzaW9uOjpX
ZWJBdWRpbzsgfQorICAgIHZpcnR1YWwgYm9vbCBjYW5SZWNlaXZlUmVtb3RlQ29udHJvbENvbW1h
bmRzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2
ZVJlbW90ZUNvbnRyb2xDb21tYW5kKE1lZGlhU2Vzc2lvbjo6UmVtb3RlQ29udHJvbENvbW1hbmRU
eXBlKSB7IH0KIAogICAgIEF1ZGlvVW5pdCBtX291dHB1dFVuaXQ7CiAgICAgQXVkaW9JT0NhbGxi
YWNrJiBtX2NhbGxiYWNrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1JlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1JlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyZmZhYzBjOTAzZGM5ZGQ1
MzhkMzIwZmRhZWFmODFmMDkzNTY2NTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvUmVtb3RlQ29tbWFuZExpc3RlbmVySU9TLmgKQEAgLTAsMCArMSw1OCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBD
T01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENP
TVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAorICovCisKKyNpZm5kZWYgUmVtb3RlQ29tbWFuZExpc3RlbmVySU9TX2gKKyNkZWZpbmUg
UmVtb3RlQ29tbWFuZExpc3RlbmVySU9TX2gKKworI2luY2x1ZGUgIlJlbW90ZUNvbW1hbmRMaXN0
ZW5lci5oIgorCisjaWYgUExBVEZPUk0oSU9TKQorCisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5o
PgorCisjaWZuZGVmIF9fT0JKQ19fCit0eXBlZGVmIHZvaWQgKmlkOworI2VuZGlmCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUmVtb3RlQ29tbWFuZExpc3RlbmVySU9TIDogcHVibGlj
IFJlbW90ZUNvbW1hbmRMaXN0ZW5lciB7CitwdWJsaWM6CisgICAgUmVtb3RlQ29tbWFuZExpc3Rl
bmVySU9TKFJlbW90ZUNvbW1hbmRMaXN0ZW5lckNsaWVudCYpOworICAgIHZpcnR1YWwgflJlbW90
ZUNvbW1hbmRMaXN0ZW5lcklPUygpOworCitwcm90ZWN0ZWQ6CisgICAgUmV0YWluUHRyPGlkPiBt
X3BsYXlUYXJnZXQ7CisgICAgUmV0YWluUHRyPGlkPiBtX3BhdXNlVGFyZ2V0OworICAgIFJldGFp
blB0cjxpZD4gbV90b2dnbGVQbGF5UGF1c2VUYXJnZXQ7CisgICAgUmV0YWluUHRyPGlkPiBtX3Nl
ZWtGb3J3YXJkVGFyZ2V0OworICAgIFJldGFpblB0cjxpZD4gbV9zZWVrQmFja3dhcmRUYXJnZXQ7
Cit9OworCit9CisKKyNlbmRpZgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9SZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvUmVtb3RlQ29tbWFuZExpc3RlbmVySU9TLm1tCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYw
YmFkMGUzOWI1MGVmYTI0NmQyNzI5NTcyMjNlNTcxZmJjZDBmMzMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUmVtb3RlQ29tbWFuZExpc3RlbmVySU9TLm1t
CkBAIC0wLDAgKzEsOTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQg
IlJlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5oIgorCisjaWYgUExBVEZPUk0oSU9TKQorCisjaW1w
b3J0IDxNZWRpYVBsYXllci9NUFJlbW90ZUNvbW1hbmRDZW50ZXIuaD4KKyNpbXBvcnQgPE1lZGlh
UGxheWVyL01QUmVtb3RlQ29tbWFuZEV2ZW50Lmg+CisjaW1wb3J0IDxNZWRpYVBsYXllci9NUFJl
bW90ZUNvbW1hbmQuaD4KKyNpbXBvcnQgPFdlYkNvcmUvU29mdExpbmtpbmcuaD4KKworU09GVF9M
SU5LX0ZSQU1FV09SSyhNZWRpYVBsYXllcikKK1NPRlRfTElOS19DTEFTUyhNZWRpYVBsYXllciwg
TVBSZW1vdGVDb21tYW5kQ2VudGVyKQorU09GVF9MSU5LX0NMQVNTKE1lZGlhUGxheWVyLCBNUFNl
ZWtDb21tYW5kRXZlbnQpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RkOjp1bmlxdWVfcHRy
PFJlbW90ZUNvbW1hbmRMaXN0ZW5lcj4gUmVtb3RlQ29tbWFuZExpc3RlbmVyOjpjcmVhdGUoUmVt
b3RlQ29tbWFuZExpc3RlbmVyQ2xpZW50JiBjbGllbnQpCit7CisgICAgcmV0dXJuIHN0ZDo6bW92
ZShzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlQ29tbWFuZExpc3RlbmVyPihuZXcgUmVtb3RlQ29tbWFu
ZExpc3RlbmVySU9TKGNsaWVudCkpKTsKK30KKworUmVtb3RlQ29tbWFuZExpc3RlbmVySU9TOjpS
ZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MoUmVtb3RlQ29tbWFuZExpc3RlbmVyQ2xpZW50JiBjbGll
bnQpCisgICAgOiBSZW1vdGVDb21tYW5kTGlzdGVuZXIoY2xpZW50KQoreworICAgIE1QUmVtb3Rl
Q29tbWFuZENlbnRlciAqY2VudGVyID0gW2dldE1QUmVtb3RlQ29tbWFuZENlbnRlckNsYXNzKCkg
c2hhcmVkQ29tbWFuZENlbnRlcl07CisKKyAgICBtX3BhdXNlVGFyZ2V0ID0gW1tjZW50ZXIgcGF1
c2VDb21tYW5kXSBhZGRUYXJnZXRXaXRoSGFuZGxlcjpeKE1QUmVtb3RlQ29tbWFuZEV2ZW50ICop
IHsKKyAgICAgICAgbV9jbGllbnQuZGlkUmVjZWl2ZVJlbW90ZUNvbnRyb2xDb21tYW5kKE1lZGlh
U2Vzc2lvbjo6UGF1c2VDb21tYW5kKTsKKyAgICAgICAgcmV0dXJuIE1QUmVtb3RlQ29tbWFuZEhh
bmRsZXJTdGF0dXNTdWNjZXNzOworICAgIH1dOworICAgIG1fcGxheVRhcmdldCA9IFtbY2VudGVy
IHBsYXlDb21tYW5kXSBhZGRUYXJnZXRXaXRoSGFuZGxlcjpeKE1QUmVtb3RlQ29tbWFuZEV2ZW50
ICopIHsKKyAgICAgICAgbV9jbGllbnQuZGlkUmVjZWl2ZVJlbW90ZUNvbnRyb2xDb21tYW5kKE1l
ZGlhU2Vzc2lvbjo6UGxheUNvbW1hbmQpOworICAgICAgICByZXR1cm4gTVBSZW1vdGVDb21tYW5k
SGFuZGxlclN0YXR1c1N1Y2Nlc3M7CisgICAgfV07CisgICAgbV90b2dnbGVQbGF5UGF1c2VUYXJn
ZXQgPSBbW2NlbnRlciB0b2dnbGVQbGF5UGF1c2VDb21tYW5kXSBhZGRUYXJnZXRXaXRoSGFuZGxl
cjpeKE1QUmVtb3RlQ29tbWFuZEV2ZW50ICopIHsKKyAgICAgICAgbV9jbGllbnQuZGlkUmVjZWl2
ZVJlbW90ZUNvbnRyb2xDb21tYW5kKE1lZGlhU2Vzc2lvbjo6VG9nZ2xlUGxheVBhdXNlQ29tbWFu
ZCk7CisgICAgICAgIHJldHVybiBNUFJlbW90ZUNvbW1hbmRIYW5kbGVyU3RhdHVzU3VjY2VzczsK
KyAgICB9XTsKKyAgICBtX3NlZWtCYWNrd2FyZFRhcmdldCA9IFtbY2VudGVyIHNlZWtCYWNrd2Fy
ZENvbW1hbmRdIGFkZFRhcmdldFdpdGhIYW5kbGVyOl4oTVBSZW1vdGVDb21tYW5kRXZlbnQgKmV2
ZW50KSB7CisgICAgICAgIEFTU0VSVChbZXZlbnQgaXNLaW5kT2ZDbGFzczpnZXRNUFNlZWtDb21t
YW5kRXZlbnRDbGFzcygpXSk7CisgICAgICAgIE1QU2Vla0NvbW1hbmRFdmVudCogc2Vla0V2ZW50
ID0gc3RhdGljX2Nhc3Q8TVBTZWVrQ29tbWFuZEV2ZW50ICo+KGV2ZW50KTsKKyAgICAgICAgbV9j
bGllbnQuZGlkUmVjZWl2ZVJlbW90ZUNvbnRyb2xDb21tYW5kKFtzZWVrRXZlbnQgdHlwZV0gPT0g
TVBTZWVrQ29tbWFuZEV2ZW50VHlwZUJlZ2luU2Vla2luZyA/IE1lZGlhU2Vzc2lvbjo6QmVnaW5T
ZWVraW5nQmFja3dhcmRDb21tYW5kIDogTWVkaWFTZXNzaW9uOjpFbmRTZWVraW5nQmFja3dhcmRD
b21tYW5kKTsKKyAgICAgICAgcmV0dXJuIE1QUmVtb3RlQ29tbWFuZEhhbmRsZXJTdGF0dXNTdWNj
ZXNzOworICAgIH1dOworICAgIG1fc2Vla0ZvcndhcmRUYXJnZXQgPSBbW2NlbnRlciBzZWVrRm9y
d2FyZENvbW1hbmRdIGFkZFRhcmdldFdpdGhIYW5kbGVyOl4oTVBSZW1vdGVDb21tYW5kRXZlbnQg
KmV2ZW50KSB7CisgICAgICAgIEFTU0VSVChbZXZlbnQgaXNLaW5kT2ZDbGFzczpnZXRNUFNlZWtD
b21tYW5kRXZlbnRDbGFzcygpXSk7CisgICAgICAgIE1QU2Vla0NvbW1hbmRFdmVudCogc2Vla0V2
ZW50ID0gc3RhdGljX2Nhc3Q8TVBTZWVrQ29tbWFuZEV2ZW50ICo+KGV2ZW50KTsKKyAgICAgICAg
bV9jbGllbnQuZGlkUmVjZWl2ZVJlbW90ZUNvbnRyb2xDb21tYW5kKFtzZWVrRXZlbnQgdHlwZV0g
PT0gTVBTZWVrQ29tbWFuZEV2ZW50VHlwZUJlZ2luU2Vla2luZyA/IE1lZGlhU2Vzc2lvbjo6QmVn
aW5TZWVraW5nRm9yd2FyZENvbW1hbmQgOiBNZWRpYVNlc3Npb246OkVuZFNlZWtpbmdGb3J3YXJk
Q29tbWFuZCk7CisgICAgICAgIHJldHVybiBNUFJlbW90ZUNvbW1hbmRIYW5kbGVyU3RhdHVzU3Vj
Y2VzczsKKyAgICB9XTsKK30KKworUmVtb3RlQ29tbWFuZExpc3RlbmVySU9TOjp+UmVtb3RlQ29t
bWFuZExpc3RlbmVySU9TKCkKK3sKKyAgICBNUFJlbW90ZUNvbW1hbmRDZW50ZXIgKmNlbnRlciA9
IFtnZXRNUFJlbW90ZUNvbW1hbmRDZW50ZXJDbGFzcygpIHNoYXJlZENvbW1hbmRDZW50ZXJdOwor
ICAgIFtbY2VudGVyIHBhdXNlQ29tbWFuZF0gcmVtb3ZlVGFyZ2V0Om1fcGF1c2VUYXJnZXQuZ2V0
KCldOworICAgIFtbY2VudGVyIHBsYXlDb21tYW5kXSByZW1vdmVUYXJnZXQ6bV9wbGF5VGFyZ2V0
LmdldCgpXTsKKyAgICBbW2NlbnRlciB0b2dnbGVQbGF5UGF1c2VDb21tYW5kXSByZW1vdmVUYXJn
ZXQ6bV90b2dnbGVQbGF5UGF1c2VUYXJnZXQuZ2V0KCldOworICAgIFtbY2VudGVyIHNlZWtGb3J3
YXJkQ29tbWFuZF0gcmVtb3ZlVGFyZ2V0Om1fc2Vla0ZvcndhcmRUYXJnZXQuZ2V0KCldOworICAg
IFtbY2VudGVyIHNlZWtCYWNrd2FyZENvbW1hbmRdIHJlbW92ZVRhcmdldDptX3NlZWtCYWNrd2Fy
ZFRhcmdldC5nZXQoKV07Cit9CisKK30KKworI2VuZGlmCg==
</data>
<flag name="review"
          id="250867"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
      

    </bug>

</bugzilla>