<?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>101669</bug_id>
          
          <creation_ts>2012-11-08 17:13:13 -0800</creation_ts>
          <short_desc>Support list of tracks in caption media controls</short_desc>
          <delta_ts>2012-11-13 16:37:23 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>101823</dependson>
    
    <dependson>101831</dependson>
    
    <dependson>101919</dependson>
          <blocked>88871</blocked>
    
    <blocked>101670</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dean Jackson">dino</reporter>
          <assigned_to name="Dean Jackson">dino</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>roger_fong</cc>
    
    <cc>silviapf</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>762345</commentid>
    <comment_count>0</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2012-11-08 17:13:13 -0800</bug_when>
    <thetext>Our closed caption media controls should support a list of tracks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762347</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2012-11-08 17:14:08 -0800</bug_when>
    <thetext>&lt;rdar://problem/12667870&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763385</commentid>
    <comment_count>2</comment_count>
      <attachid>173381</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2012-11-09 15:16:24 -0800</bug_when>
    <thetext>Created attachment 173381
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763402</commentid>
    <comment_count>3</comment_count>
      <attachid>173381</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2012-11-09 15:42:18 -0800</bug_when>
    <thetext>Comment on attachment 173381
Patch

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

Marking r+, but you should probably let the EWS bot chew on it for to make sure all platforms compile. It may also be necessary to update some test results.

&gt; Source/WebCore/css/mediaControlsQuickTime.css:319
&gt; +    background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADYAAAA9CAYAAADmgpoeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RTBEQkI5QzgyMTc4MTFFMkJERDdBRjI3NEQwNzZERjAiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RTBEQkI5QzkyMTc4MTFFMkJERDdBRjI3NEQwNzZERjAiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpFMERCQjlDNjIxNzgxMUUyQkREN0FGMjc0RDA3NkRGMCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpFMERCQjlDNzIxNzgxMUUyQkREN0FGMjc0RDA3NkRGMCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PqpWz0UAAAHPSURBVHja7JqBbYQwDEXdDRghI7BBGSEjZARGyAaMwAg3AtcJMkJug4xAUymqTggVO1yJbZ0lCyGd0D3Z/Pw4fICAWNfV5IvN+Zmzz2k2P7mX61fOx9M9X6Ccy0qLOWfHGcqt9Ji4V6oGyr2hGkD1GqG6nFEVVAGbNEIN6qAKWKCsU1KgRgLUIgXqRzASEiqydhQbME+oVi8FyhCqNYKUKGZVz3v1VC1MpLJlUVetUWO1AkgKgnUaJEFh161ZWrW8OsEoYJhqeWlQDlmtThpY1FitQWu1bhqVELsgi1NCr65aBNEYrmibefNnQrFBpuJ5tum2pFgdjOOeKMqFFA33n1CUQWXAwJXnHko8B1dAgkNOn/wVLzkVbnnBrNBcpWBUOH9i7bpxHontjsWQm0nLeSaxO8hEiFFsubCGmpZEnnH5lmCU8fNvSyLbsK0vJB7vLMhK8xiAEsXEN3MalXDUby3aOI1Kc5xeAMZve1L5mYKMo6CTLRmBa5xsSd4HDMQzY1kzjYqWFHMoTm1JB1KCuHCLG4QGdvuuC72kBYlx4OYTSI2D7c0MkuOPtc2C9NgRkgQaYkdIJtASm5F2rwnMsHfyJ+V/0gjWcWjDbwEGAN9/NX8H7V/FAAAAAElFTkSuQmCC&apos;);

This would look much better when scaled if it was SVG instead of PNG. Fine to do in a follow up.

&gt; Source/WebCore/css/mediaControlsQuickTime.css:327
&gt; +    background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADYAAAA9CAYAAADmgpoeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RTBEQkI5QzgyMTc4MTFFMkJERDdBRjI3NEQwNzZERjAiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RTBEQkI5QzkyMTc4MTFFMkJERDdBRjI3NEQwNzZERjAiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpFMERCQjlDNjIxNzgxMUUyQkREN0FGMjc0RDA3NkRGMCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpFMERCQjlDNzIxNzgxMUUyQkREN0FGMjc0RDA3NkRGMCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PqpWz0UAAAHPSURBVHja7JqBbYQwDEXdDRghI7BBGSEjZARGyAaMwAg3AtcJMkJug4xAUymqTggVO1yJbZ0lCyGd0D3Z/Pw4fICAWNfV5IvN+Zmzz2k2P7mX61fOx9M9X6Ccy0qLOWfHGcqt9Ji4V6oGyr2hGkD1GqG6nFEVVAGbNEIN6qAKWKCsU1KgRgLUIgXqRzASEiqydhQbME+oVi8FyhCqNYKUKGZVz3v1VC1MpLJlUVetUWO1AkgKgnUaJEFh161ZWrW8OsEoYJhqeWlQDlmtThpY1FitQWu1bhqVELsgi1NCr65aBNEYrmibefNnQrFBpuJ5tum2pFgdjOOeKMqFFA33n1CUQWXAwJXnHko8B1dAgkNOn/wVLzkVbnnBrNBcpWBUOH9i7bpxHontjsWQm0nLeSaxO8hEiFFsubCGmpZEnnH5lmCU8fNvSyLbsK0vJB7vLMhK8xiAEsXEN3MalXDUby3aOI1Kc5xeAMZve1L5mYKMo6CTLRmBa5xsSd4HDMQzY1kzjYqWFHMoTm1JB1KCuHCLG4QGdvuuC72kBYlx4OYTSI2D7c0MkuOPtc2C9NgRkgQaYkdIJtASm5F2rwnMsHfyJ+V/0gjWcWjDbwEGAN9/NX8H7V/FAAAAAElFTkSuQmCC&apos;), -webkit-gradient(linear, left top, left bottom, color-stop(0, rgb(79, 112, 245)), color-stop(1, rgb(28, 66, 245)));

Ditto.

&gt; Source/WebCore/html/shadow/MediaControlElements.cpp:903
&gt; +    setDisplayType(mediaController()-&gt;muted() ? MediaHideClosedCaptionsButton : MediaShowClosedCaptionsButton);

Oops :-)

&gt; Source/WebCore/html/shadow/MediaControlElements.cpp:977
&gt; +    RefPtr&lt;Element&gt; captionsSection = doc-&gt;createElement(sectionTag, ec);
&gt; +    RefPtr&lt;Element&gt; captionsHeader = doc-&gt;createElement(h3Tag, ec);
&gt; +    captionsHeader-&gt;appendChild(doc-&gt;createTextNode(&quot;Closed Captions&quot;));
&gt; +    captionsSection-&gt;appendChild(captionsHeader);
&gt; +    RefPtr&lt;Element&gt; captionsList = doc-&gt;createElement(ulTag, ec);

Because you don&apos;t check these exceptions, it would be better to use ASSERT_NO_EXCEPTION.

&gt; Source/WebCore/html/shadow/MediaControlElements.cpp:1007
&gt; +        AtomicString labelText = track-&gt;label();
&gt; +        if (labelText.isNull() || labelText.isEmpty())
&gt; +            labelText = displayNameForLanguageLocale(track-&gt;language());

Subtitle tracks should use language, captions should use label.

&gt; Source/WebCore/html/shadow/MediaControls.h:73
&gt; +    virtual void toggleClosedCaptionTrackList() = 0;

I wouldn&apos;t declare this pure virtual so other ports don&apos;t *need* to implement it until they are ready.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763410</commentid>
    <comment_count>4</comment_count>
      <attachid>173381</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2012-11-09 16:00:00 -0800</bug_when>
    <thetext>Comment on attachment 173381
Patch

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

&gt;&gt; Source/WebCore/html/shadow/MediaControlElements.cpp:1007
&gt;&gt; +            labelText = displayNameForLanguageLocale(track-&gt;language());
&gt; 
&gt; Subtitle tracks should use language, captions should use label.

After some discussion on IRC, we decided that if a label has been specified then it should be used in all cases. It would be quite common for multiple subtitle tracks with the same language, but slightly different content e.g. English v English for hearing impaired.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763420</commentid>
    <comment_count>5</comment_count>
      <attachid>173390</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2012-11-09 16:08:15 -0800</bug_when>
    <thetext>Created attachment 173390
Patch for build test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763451</commentid>
    <comment_count>6</comment_count>
      <attachid>173398</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2012-11-09 16:39:43 -0800</bug_when>
    <thetext>Created attachment 173398
Rebased patch for build test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763459</commentid>
    <comment_count>7</comment_count>
      <attachid>173398</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-11-09 16:50:00 -0800</bug_when>
    <thetext>Comment on attachment 173398
Rebased patch for build test

Attachment 173398 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/14794148</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763460</commentid>
    <comment_count>8</comment_count>
      <attachid>173398</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-11-09 16:50:06 -0800</bug_when>
    <thetext>Comment on attachment 173398
Rebased patch for build test

Attachment 173398 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/14779606</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763467</commentid>
    <comment_count>9</comment_count>
      <attachid>173404</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2012-11-09 17:00:37 -0800</bug_when>
    <thetext>Created attachment 173404
Rebased patch take 3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763483</commentid>
    <comment_count>10</comment_count>
      <attachid>173404</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-09 17:14:30 -0800</bug_when>
    <thetext>Comment on attachment 173404
Rebased patch take 3

Attachment 173404 did not pass win-ews (win):
Output: http://queues.webkit.org/results/14792253</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763491</commentid>
    <comment_count>11</comment_count>
      <attachid>173413</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2012-11-09 17:28:46 -0800</bug_when>
    <thetext>Created attachment 173413
Rebased patch take 4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763525</commentid>
    <comment_count>12</comment_count>
    <who name="Silvia Pfeiffer">silviapf</who>
    <bug_when>2012-11-09 18:12:27 -0800</bug_when>
    <thetext>I&apos;ve waited with preparing such a patch for Chromium until I&apos;ve redone the way the controls work, see bug 88871. Right now it&apos;s really easy to break other ports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763529</commentid>
    <comment_count>13</comment_count>
    <who name="Silvia Pfeiffer">silviapf</who>
    <bug_when>2012-11-09 18:14:04 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; 
&gt; After some discussion on IRC, we decided that if a label has been specified then it should be used in all cases. It would be quite common for multiple subtitle tracks with the same language, but slightly different content e.g. English v English for hearing impaired.

FWIW I agree with this decision - the label has been added to allow for human-provided description of tracks no matter what the tracks are.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763533</commentid>
    <comment_count>14</comment_count>
      <attachid>173413</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-09 18:18:38 -0800</bug_when>
    <thetext>Comment on attachment 173413
Rebased patch take 4

Attachment 173413 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14660584</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763537</commentid>
    <comment_count>15</comment_count>
    <who name="Roger Fong">roger_fong</who>
    <bug_when>2012-11-09 18:25:22 -0800</bug_when>
    <thetext>Also broke the Windows tests:
http://build.webkit.org/builders/Apple%20Win%207%20Release%20%28Tests%29/builds/29777</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763541</commentid>
    <comment_count>16</comment_count>
    <who name="Silvia Pfeiffer">silviapf</who>
    <bug_when>2012-11-09 18:33:42 -0800</bug_when>
    <thetext>BTW: I think it should be possible to create a layout test for this. I would define multiple &lt;track&gt; elements and initiate a click on the captions button (see controls-drag-timebar.html for an example) and see if the menu is displayed as expected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763602</commentid>
    <comment_count>17</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2012-11-09 23:02:35 -0800</bug_when>
    <thetext>Committed r134154: &lt;http://trac.webkit.org/changeset/134154&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763776</commentid>
    <comment_count>18</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2012-11-10 21:22:38 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; BTW: I think it should be possible to create a layout test for this. I would define multiple &lt;track&gt; elements and initiate a click on the captions button (see controls-drag-timebar.html for an example) and see if the menu is displayed as expected.

Thanks Silvia. I&apos;ll add a test in http://wkb.ug/101670</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763815</commentid>
    <comment_count>19</comment_count>
    <who name="Silvia Pfeiffer">silviapf</who>
    <bug_when>2012-11-11 04:27:28 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; (In reply to comment #16)
&gt; &gt; BTW: I think it should be possible to create a layout test for this. I would define multiple &lt;track&gt; elements and initiate a click on the captions button (see controls-drag-timebar.html for an example) and see if the menu is displayed as expected.
&gt; 
&gt; Thanks Silvia. I&apos;ll add a test in http://wkb.ug/101670

Thanks, much appreciated!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764200</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-12 03:20:08 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 101919</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765685</commentid>
    <comment_count>21</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-11-13 09:20:57 -0800</bug_when>
    <thetext>For what it&apos;s worth, I&apos;ve applied both the patch in bug #88871 and the last patch attached here, and the crashes that induced the rollout in bug #101919 are not reproducible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766174</commentid>
    <comment_count>22</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2012-11-13 16:37:23 -0800</bug_when>
    <thetext>Committed r134507: &lt;http://trac.webkit.org/changeset/134507&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173381</attachid>
            <date>2012-11-09 15:16:24 -0800</date>
            <delta_ts>2012-11-09 16:08:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101669-20121109151431.patch</filename>
            <type>text/plain</type>
            <size>34122</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzNjI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWFkNzA0NzZkNDIwMmU5
Mzc3MzRiOGQ1MmMyMmY1NzZiMDk0ZjNkNy4uNzc4ZmIxYjVmNzcxOWZhZjExOTAzNDlkNDYzYTE5
MWViZTEwNDAxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDEyLTExLTA5ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IGxpc3Qgb2YgdHJh
Y2tzIGluIGNhcHRpb24gbWVkaWEgY29udHJvbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTY2OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzb21lIG5ldyBlbGVtZW50cyB0byB0aGUgbWVkaWEg
Y29udHJvbCBzaGFkb3cgRE9NIHRoYXQgZGlzcGxheSB0aGUgbGlzdCBvZiBhdmFpbGFibGUKKyAg
ICAgICAgdHJhY2tzIG9uIGFuIGF1ZGlvL3ZpZGVvIGVsZW1lbnQuIFRoZSBVSSBpcyBoaWRkZW4g
YnkgZGVmYXVsdCBldmVyeXdoZXJlIGJ1dCBvbiBNYWMsCisgICAgICAgIHdoZXJlIGl0IGlzIGdp
dmVuIGEgdmVyeSBiYXNpYyBkZXNpZ24uIEF0IHRoZSBtb21lbnQgb25seSB0aGUgbGlzdCBvZiBh
dmFpbGFibGUgdHJhY2tzCisgICAgICAgIGFyZSBkaXNwbGF5ZWQ7IFRoZSBmb2xsb3d1cCBidWcg
d2lsbCBtYWtlIHRoZSBVSSBhY3RpdmU6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDE2NzAKKworICAgICAgICBObyBuZXcgdGVzdHMgLSB0aGlzIGRvZXNuJ3QgZXhw
b3NlIGFueSB0ZXN0YWJsZSBzdXJmYWNlLgorCisgICAgICAgICogY3NzL21lZGlhQ29udHJvbHMu
Y3NzOiBBZGRlZCBkZWZhdWx0IHJ1bGVzIHRoYXQgaGlkZSB0aGUgbmV3IGVsZW1lbnRzLgorICAg
ICAgICAqIGNzcy9tZWRpYUNvbnRyb2xzUXVpY2tUaW1lLmNzczogU3BlY2lmaWMgcnVsZXMgdGhh
dCBnaXZlIGEgYmFzaWMgcmVuZGVyaW5nIG9mIHRoZSBuZXcgdHJhY2sgbGlzdC4KKyAgICAgICAg
KiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUNvbnRyb2xFbGVtZW50Ojppc1Nob3dpbmcpOiBUZXN0cyBmb3IgdGhlIHZpc2liaWxp
dHkgb2YgYSBjb250cm9sLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sQ2xvc2VkQ2Fw
dGlvbnNDb250YWluZXJFbGVtZW50OjpNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc0NvbnRhaW5l
ckVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnND
b250YWluZXJFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9s
Q2xvc2VkQ2FwdGlvbnNDb250YWluZXJFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ6
Ok1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudCk6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ6
OmNyZWF0ZSk6IE5vdyB0YWtlcyBhIHJlZmVyZW5jZSB0byB0aGUgbWVkaWEgY29udHJvbHMgYXMg
YSBwYXJhbWV0ZXIuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRD
YXB0aW9uc0J1dHRvbkVsZW1lbnQ6OnVwZGF0ZURpc3BsYXlUeXBlKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudDo6ZGVmYXVs
dEV2ZW50SGFuZGxlcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xUb2dnbGVDbG9z
ZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zVHJhY2tMaXN0RWxlbWVudDo6TWVkaWFDb250
cm9sQ2xvc2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVtZW50KTogTmV3IGVsZW1lbnQgZm9yIGhvbGRp
bmcgYSBsaXN0IG9mIHRyYWNrcyB0byBkaXNwbGF5LgorICAgICAgICAqIGh0bWwvc2hhZG93L01l
ZGlhQ29udHJvbEVsZW1lbnRzLmg6CisgICAgICAgIChNZWRpYUNvbnRyb2xFbGVtZW50KToKKyAg
ICAgICAgKE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudCk6Cisg
ICAgICAgIChNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc0NvbnRhaW5lckVsZW1lbnQpOgorICAg
ICAgICAoTWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVtZW50KTogRXhhbWlu
ZXMgdGhlIG1lZGlhIGVsZW1lbnQgdG8gYnVpbGQgYSBzaGFkb3cgRE9NIHRoYXQgbGlzdHMgYWxs
IHRoZSB0cmFja3MgYXZhaWxhYmxlLgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJv
bFJvb3RFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFJvb3RFbGVt
ZW50OjpNZWRpYUNvbnRyb2xSb290RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNv
bnRyb2xSb290RWxlbWVudDo6Y3JlYXRlKTogTmV3IHRyYWNrIGNvbnRhaW5lciBhbmQgbGlzdCBl
bGVtZW50cyBjcmVhdGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1l
bnQ6OnNldE1lZGlhQ29udHJvbGxlcik6IEhvb2sgdXAgdGhlIG5ldyBlbGVtZW50cyB0byB0aGUg
Y29udHJvbGxlci4uCisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVudDo6
aGlkZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVudDo6bWFrZVRy
YW5zcGFyZW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50Ojpy
ZXNldCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVudDo6cmVwb3J0
ZWRFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVudDo6dG9n
Z2xlQ2xvc2VkQ2FwdGlvblRyYWNrTGlzdCk6IFNob3dzIG9yIGhpZGVzIHRoZSBwb3B1cCB3aXRo
IHRoZSBsaXN0IG9mIHRyYWNrcy4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGh0bWwv
c2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKE1lZGlhQ29udHJvbFJvb3RFbGVtZW50KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9N
ZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OmluaXRpYWxpemVDb250cm9scyk6IFBhc3Mg
aW4gdGhlIGNvbnRyb2xzIGFzIGEgcGFyYW1ldGVyLgorICAgICAgICAqIGh0bWwvc2hhZG93L01l
ZGlhQ29udHJvbHMuaDoKKyAgICAgICAgKE1lZGlhQ29udHJvbHMpOgorICAgICAgICAqIHBsYXRm
b3JtL0xhbmd1YWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmRpc3BsYXlOYW1lRm9yTGFuZ3Vh
Z2VMb2NhbGUpOiBOZXcgZnVuY3Rpb24gdG8gcmV0dXJuIGEgaHVtYW4tcmVhZGFibGUgbmFtZSBm
b3IgYSBsb2NhbGUsIGdpdmVuIHRoZSBpZGVudGlmaWVyIGlucHV0LgorICAgICAgICAqIHBsYXRm
b3JtL0xhbmd1YWdlLmg6CisgICAgICAgIChXZWJDb3JlKToKKwogMjAxMi0xMS0wNiAgTWljaGFl
bCBTYWJvZmYgIDxtc2Fib2ZmQGFwcGxlLmNvbT4KIAogICAgICAgICBxdW90ZUNTU1N0cmluZygp
IGFsd2F5cyBjcmVhdGVzIGEgMTYgYml0IHN0cmluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL21lZGlhQ29udHJvbHMuY3NzIGIvU291cmNlL1dlYkNvcmUvY3NzL21lZGlhQ29udHJv
bHMuY3NzCmluZGV4IDZkZjAzNDAyZDNhNGM5ZTc4YWJmOGY3N2VjNGFiMTNiZmJiZjg0ZWIuLjAw
ZWZjYmJhNjVkNDRhYTBiMzE2OTI2MDE2MGFkNjAxOTM1NDIwMTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzLmNzcworKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
bWVkaWFDb250cm9scy5jc3MKQEAgLTE4Nyw2ICsxODcsMTQgQEAgYXVkaW86Oi13ZWJraXQtbWVk
aWEtY29udHJvbHMtdG9nZ2xlLWNsb3NlZC1jYXB0aW9ucy1idXR0b24sIHZpZGVvOjotd2Via2l0
LW1lZGkKICAgICBjb2xvcjogaW5oZXJpdDsKIH0KIAorYXVkaW86Oi13ZWJraXQtbWVkaWEtY29u
dHJvbHMtY2xvc2VkLWNhcHRpb25zLWNvbnRhaW5lciwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29u
dHJvbHMtY2xvc2VkLWNhcHRpb25zLWNvbnRhaW5lciB7CisgICAgZGlzcGxheTogbm9uZTsKK30K
KworYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtY2xvc2VkLWNhcHRpb25zLXRyYWNrLWxp
c3QsIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWNsb3NlZC1jYXB0aW9ucy10cmFjay1s
aXN0IHsKKyAgICBkaXNwbGF5OiBub25lOworfQorCiBhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250
cm9scy12b2x1bWUtc2xpZGVyLW11dGUtYnV0dG9uLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250
cm9scy12b2x1bWUtc2xpZGVyLW11dGUtYnV0dG9uIHsKICAgICAtd2Via2l0LWFwcGVhcmFuY2U6
IG1lZGlhLXZvbHVtZS1zbGlkZXItbXV0ZS1idXR0b247CiAgICAgZGlzcGxheTogbm9uZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzUXVpY2tUaW1lLmNzcyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzUXVpY2tUaW1lLmNzcwppbmRleCAyZWI5
MDhiMDA5ZDZiY2M2ZDE5NzVjYzlkZTM2YTRlMWI5NzM1ZTAyLi5hNGRhZTY5NTNjNjBlYTFhMTgz
OTY4ODY4N2U3NTY3YTgzMzBlMDkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvbWVk
aWFDb250cm9sc1F1aWNrVGltZS5jc3MKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL21lZGlhQ29u
dHJvbHNRdWlja1RpbWUuY3NzCkBAIC0xODgsMTcgKzE4OCw2IEBAIGF1ZGlvOjotd2Via2l0LW1l
ZGlhLWNvbnRyb2xzLXN0YXR1cy1kaXNwbGF5LCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9s
cy1zdGF0CiAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogfQogCi1hdWRpbzo6LXdlYmtpdC1t
ZWRpYS1jb250cm9scy10b2dnbGUtY2xvc2VkLWNhcHRpb25zLWJ1dHRvbiwgdmlkZW86Oi13ZWJr
aXQtbWVkaWEtY29udHJvbHMtdG9nZ2xlLWNsb3NlZC1jYXB0aW9ucy1idXR0b24gewotICAgIC13
ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEtdG9nZ2xlLWNsb3NlZC1jYXB0aW9ucy1idXR0b247Ci0g
ICAgZGlzcGxheTogLXdlYmtpdC1ib3g7Ci0gICAgd2lkdGg6IDE2cHg7Ci0gICAgaGVpZ2h0OiAx
NnB4OwotICAgIG1hcmdpbi1sZWZ0OiA3cHg7Ci0gICAgbWFyZ2luLXJpZ2h0OiA3cHg7Ci0gICAg
LXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDogMzsgLyogYmV0d2VlbiBtdXRlIGFuZCBmdWxsc2Ny
ZWVuICovCi0gICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7Ci19Ci0KIGF1ZGlvOjotd2Via2l0
LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXItY29udGFpbmVyLCB2aWRlbzo6LXdlYmtpdC1t
ZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyLWNvbnRhaW5lciB7CiAgICAgLXdlYmtpdC1hcHBl
YXJhbmNlOiBtZWRpYS12b2x1bWUtc2xpZGVyLWNvbnRhaW5lcjsKICAgICBwb3NpdGlvbjogYWJz
b2x1dGU7CkBAIC0yMzksMyArMjI4LDEwNCBAQCBhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9s
cy12b2x1bWUtc2xpZGVyLW11dGUtYnV0dG9uLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jbwogCiAg
ICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7CiB9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNv
bnRyb2xzLXRvZ2dsZS1jbG9zZWQtY2FwdGlvbnMtYnV0dG9uLCB2aWRlbzo6LXdlYmtpdC1tZWRp
YS1jb250cm9scy10b2dnbGUtY2xvc2VkLWNhcHRpb25zLWJ1dHRvbiB7CisgICAgLXdlYmtpdC1h
cHBlYXJhbmNlOiBtZWRpYS10b2dnbGUtY2xvc2VkLWNhcHRpb25zLWJ1dHRvbjsKKyAgICBkaXNw
bGF5OiAtd2Via2l0LWJveDsKKyAgICB3aWR0aDogMTZweDsKKyAgICBoZWlnaHQ6IDE2cHg7Cisg
ICAgbWFyZ2luLWxlZnQ6IDdweDsKKyAgICBtYXJnaW4tcmlnaHQ6IDdweDsKKyAgICAtd2Via2l0
LWJveC1vcmRpbmFsLWdyb3VwOiAzOyAvKiBiZXR3ZWVuIG11dGUgYW5kIGZ1bGxzY3JlZW4gKi8K
KyAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDsKK30KKworYXVkaW86Oi13ZWJraXQtbWVkaWEt
Y29udHJvbHMtY2xvc2VkLWNhcHRpb25zLWNvbnRhaW5lciwgdmlkZW86Oi13ZWJraXQtbWVkaWEt
Y29udHJvbHMtY2xvc2VkLWNhcHRpb25zLWNvbnRhaW5lciB7CisgICAgLXdlYmtpdC1hcHBlYXJh
bmNlOiBtZWRpYS1jbG9zZWQtY2FwdGlvbnMtY29udGFpbmVyOworICAgIHBvc2l0aW9uOiBhYnNv
bHV0ZTsKKyAgICBkaXNwbGF5OiBibG9jazsKKyAgICBib3R0b206IDI5cHg7CisgICAgbWFyZ2lu
LWxlZnQ6IC0xNzBweDsKKyAgICB6LWluZGV4OiAyOworICAgIHdpZHRoOiAyMDBweDsKKyAgICBo
ZWlnaHQ6IDI1MHB4OworICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44NSk7
CisgICAgYm9yZGVyOiAxcHggc29saWQgcmdiKDY2LCA2NiwgNjYpOworICAgIGJvcmRlci1yYWRp
dXM6IDhweDsKK30KKworYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtY2xvc2VkLWNhcHRp
b25zLXRyYWNrLWxpc3QsIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWNsb3NlZC1jYXB0
aW9ucy10cmFjay1saXN0IHsKKyAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLWNsb3NlZC1j
YXB0aW9ucy10cmFjay1saXN0OworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICBkaXNwbGF5
OiBibG9jazsKKyAgICB0b3A6IDVweDsKKyAgICBsZWZ0OiA1cHg7CisgICAgd2lkdGg6IDE5MHB4
OworICAgIGhlaWdodDogMjQwcHg7CisgICAgb3ZlcmZsb3cteDogaGlkZGVuOworICAgIG92ZXJm
bG93LXk6IHNjcm9sbDsKKyAgICB0ZXh0LWFsaWduOiBsZWZ0OworICAgIGZvbnQtZmFtaWx5OiAi
SGVsdmV0aWNhIEJvbGQiLCAiSGVsdmV0aWNhIjsKKyAgICBmb250LXdlaWdodDogYm9sZDsKKyAg
ICBmb250LXNpemU6IDlwdDsKK30KKworYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtY2xv
c2VkLWNhcHRpb25zLXRyYWNrLWxpc3QgaDMsCit2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9s
cy1jbG9zZWQtY2FwdGlvbnMtdHJhY2stbGlzdCBoMyB7CisgICAgbWFyZ2luOiAwOworICAgIGNv
bG9yOiAjYmJiOworICAgIHRleHQtc2hhZG93OiAwIDFweCAwIGJsYWNrOworICAgIHBhZGRpbmct
bGVmdDogNHB4OworICAgIHBhZGRpbmctdG9wOiA0cHg7CisgICAgcGFkZGluZy1ib3R0b206IDRw
eDsKKyAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzU1NTsKKyAgICBmb250LXNpemU6IDlw
dDsKK30KKworYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtY2xvc2VkLWNhcHRpb25zLXRy
YWNrLWxpc3QgdWwsCit2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1jbG9zZWQtY2FwdGlv
bnMtdHJhY2stbGlzdCB1bCB7CisgICAgbGlzdC1zdHlsZS10eXBlOiBub25lOworICAgIG1hcmdp
bjogMCAwIDhweCAwOworICAgIHBhZGRpbmc6IDA7Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlh
LWNvbnRyb2xzLWNsb3NlZC1jYXB0aW9ucy10cmFjay1saXN0IGxpLAordmlkZW86Oi13ZWJraXQt
bWVkaWEtY29udHJvbHMtY2xvc2VkLWNhcHRpb25zLXRyYWNrLWxpc3QgbGkgeworICAgIGNvbG9y
OiB3aGl0ZTsKKyAgICB0ZXh0LXNoYWRvdzogMCAxcHggMCBibGFjazsKKyAgICBtYXJnaW46IDA7
CisgICAgcGFkZGluZy1sZWZ0OiAyNHB4OworICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7CisgICAg
cGFkZGluZy10b3A6IDAuMzVlbTsKKyAgICBwYWRkaW5nLWJvdHRvbTogMC4zZW07CisgICAgd2lk
dGg6IDE5MHB4OworICAgIGhlaWdodDogMi4wZW07CisgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNv
bGlkICM1NTU7CisgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKKyAgICBvdmVyZmxvdzogaGlk
ZGVuOworICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CisgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBz
aXM7CisgICAgLXdlYmtpdC10ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKK30KKworYXVkaW86Oi13
ZWJraXQtbWVkaWEtY29udHJvbHMtY2xvc2VkLWNhcHRpb25zLXRyYWNrLWxpc3QgbGk6aG92ZXIs
Cit2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1jbG9zZWQtY2FwdGlvbnMtdHJhY2stbGlz
dCBsaTpob3ZlciB7CisgICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5l
YXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgY29sb3Itc3RvcCgwLCByZ2IoNzksIDExMiwgMjQ1
KSksIGNvbG9yLXN0b3AoMSwgcmdiKDI4LCA2NiwgMjQ1KSkpOworICAgIGJvcmRlci1ib3R0b206
IDFweCBzb2xpZCByZ2IoMjgsIDY2LCAyNDUpOworfQorCithdWRpbzo6LXdlYmtpdC1tZWRpYS1j
b250cm9scy1jbG9zZWQtY2FwdGlvbnMtdHJhY2stbGlzdCBsaS5zZWxlY3RlZCwKK3ZpZGVvOjot
d2Via2l0LW1lZGlhLWNvbnRyb2xzLWNsb3NlZC1jYXB0aW9ucy10cmFjay1saXN0IGxpLnNlbGVj
dGVkIHsKKyAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxp
VkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBRFlBQUFBOUNBWUFBQURtZ3BvZUFBQUFHWFJGV0hSVGIy
WjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBeUpwVkZoMFdFMU1PbU52YlM1
aFpHOWlaUzU0YlhBQUFBQUFBRHcvZUhCaFkydGxkQ0JpWldkcGJqMGk3N3UvSWlCcFpEMGlWelZO
TUUxd1EyVm9hVWg2Y21WVGVrNVVZM3ByWXpsa0lqOCtJRHg0T25odGNHMWxkR0VnZUcxc2JuTTZl
RDBpWVdSdlltVTZibk02YldWMFlTOGlJSGc2ZUcxd2RHczlJa0ZrYjJKbElGaE5VQ0JEYjNKbElE
VXVNQzFqTURZd0lEWXhMakV6TkRjM055d2dNakF4TUM4d01pOHhNaTB4Tnpvek1qb3dNQ0FnSUNB
Z0lDQWdJajRnUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5
Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0Z1BISmtaanBFWlhOamNtbHdk
R2x2YmlCeVpHWTZZV0p2ZFhROUlpSWdlRzFzYm5NNmVHMXdQU0pvZEhSd09pOHZibk11WVdSdllt
VXVZMjl0TDNoaGNDOHhMakF2SWlCNGJXeHVjenA0YlhCTlRUMGlhSFIwY0RvdkwyNXpMbUZrYjJK
bExtTnZiUzk0WVhBdk1TNHdMMjF0THlJZ2VHMXNibk02YzNSU1pXWTlJbWgwZEhBNkx5OXVjeTVo
Wkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpWSmxaaU1pSUhodGNEcERj
bVZoZEc5eVZHOXZiRDBpUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5UTlNCTllXTnBiblJ2YzJnaUlI
aHRjRTFOT2tsdWMzUmhibU5sU1VROUluaHRjQzVwYVdRNlJUQkVRa0k1UXpneU1UYzRNVEZGTWtK
RVJEZEJSakkzTkVRd056WkVSakFpSUhodGNFMU5Pa1J2WTNWdFpXNTBTVVE5SW5odGNDNWthV1E2
UlRCRVFrSTVRemt5TVRjNE1URkZNa0pFUkRkQlJqSTNORVF3TnpaRVJqQWlQaUE4ZUcxd1RVMDZS
R1Z5YVhabFpFWnliMjBnYzNSU1pXWTZhVzV6ZEdGdVkyVkpSRDBpZUcxd0xtbHBaRHBGTUVSQ1Fq
bEROakl4TnpneE1VVXlRa1JFTjBGR01qYzBSREEzTmtSR01DSWdjM1JTWldZNlpHOWpkVzFsYm5S
SlJEMGllRzF3TG1ScFpEcEZNRVJDUWpsRE56SXhOemd4TVVVeVFrUkVOMEZHTWpjMFJEQTNOa1JH
TUNJdlBpQThMM0prWmpwRVpYTmpjbWx3ZEdsdmJqNGdQQzl5WkdZNlVrUkdQaUE4TDNnNmVHMXdi
V1YwWVQ0Z1BEOTRjR0ZqYTJWMElHVnVaRDBpY2lJL1BxcFd6MFVBQUFIUFNVUkJWSGphN0pxQmJZ
UXdERVhkRFJnaEk3QkJHU0VqWkFSR3lBYU13QWczQXRjSk1rSnVnNHhBVXltcVRnZ1ZPMXlKYlow
bEN5R2QwRDNaL1B3NGZJQ0FXTmZWNUl2TitabXp6MmsyUDdtWDYxZk94OU05WDZDY3kwcUxPV2ZI
R2NxdDlKaTRWNm9HeXIyaEdrRDFHcUc2bkZFVlZBR2JORUlONnFBS1dLQ3NVMUtnUmdMVUlnWHFS
ekFTRWlxeWRoUWJNRStvVmk4RnloQ3FOWUtVS0daVnozdjFWQzFNcExKbFVWZXRVV08xQWtnS2du
VWFKRUZoMTYxWldyVzhPc0VvWUpocWVXbFFEbG10VGhwWTFGaXRRV3UxYmhxVkVMc2dpMU5DcjY1
YUJORVlybWliZWZOblFyRkJwdUo1dHVtMnBGZ2RqT09lS01xRkZBMzNuMUNVUVdYQXdKWG5Ia284
QjFkQWdrTk9uL3dWTHprVmJubkJyTkJjcFdCVU9IOWk3YnB4SG9udGpzV1FtMG5MZVNheE84aEVp
RkZzdWJDR21wWkVubkg1bG1DVThmTnZTeUxic0swdkpCN3ZMTWhLOHhpQUVzWEVOM01hbFhEVWJ5
M2FPSTFLYzV4ZUFNWnZlMUw1bVlLTW82Q1RMUm1CYTV4c1NkNEhETVF6WTFrempZcVdGSE1vVG0x
SkIxS0N1SENMRzRRR2R2dXVDNzJrQllseDRPWVRTSTJEN2MwTWt1T1B0YzJDOU5nUmtnUWFZa2RJ
SnRBU201RjJyd25Nc0hmeUorVi8wZ2pXY1dqRGJ3RUdBTjkvTlg4SDdWL0ZBQUFBQUVsRlRrU3VR
bUNDJyk7CisgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsKKyAgICBiYWNrZ3JvdW5k
LXBvc2l0aW9uOiAwLjVlbSAwLjVlbTsKKyAgICBiYWNrZ3JvdW5kLXNpemU6IDFlbSAxZW07Cit9
CisKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWNsb3NlZC1jYXB0aW9ucy10cmFjay1s
aXN0IGxpLnNlbGVjdGVkOmhvdmVyLAordmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtY2xv
c2VkLWNhcHRpb25zLXRyYWNrLWxpc3QgbGkuc2VsZWN0ZWQ6aG92ZXIgeworICAgIGJhY2tncm91
bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhF
VWdBQUFEWUFBQUE5Q0FZQUFBRG1ncG9lQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpi
V0ZuWlZKbFlXUjVjY2xsUEFBQUF5SnBWRmgwV0UxTU9tTnZiUzVoWkc5aVpTNTRiWEFBQUFBQUFE
dy9lSEJoWTJ0bGRDQmlaV2RwYmowaTc3dS9JaUJwWkQwaVZ6Vk5NRTF3UTJWb2FVaDZjbVZUZWs1
VVkzcHJZemxrSWo4K0lEeDRPbmh0Y0cxbGRHRWdlRzFzYm5NNmVEMGlZV1J2WW1VNmJuTTZiV1Yw
WVM4aUlIZzZlRzF3ZEdzOUlrRmtiMkpsSUZoTlVDQkRiM0psSURVdU1DMWpNRFl3SURZeExqRXpO
RGMzTnl3Z01qQXhNQzh3TWk4eE1pMHhOem96TWpvd01DQWdJQ0FnSUNBZ0lqNGdQSEprWmpwU1JF
WWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhK
a1ppMXplVzUwWVhndGJuTWpJajRnUEhKa1pqcEVaWE5qY21sd2RHbHZiaUJ5WkdZNllXSnZkWFE5
SWlJZ2VHMXNibk02ZUcxd1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZJ
aUI0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wy
MXRMeUlnZUcxc2JuTTZjM1JTWldZOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpF
dU1DOXpWSGx3WlM5U1pYTnZkWEpqWlZKbFppTWlJSGh0Y0RwRGNtVmhkRzl5Vkc5dmJEMGlRV1J2
WW1VZ1VHaHZkRzl6YUc5d0lFTlROU0JOWVdOcGJuUnZjMmdpSUhodGNFMU5Pa2x1YzNSaGJtTmxT
VVE5SW5odGNDNXBhV1E2UlRCRVFrSTVRemd5TVRjNE1URkZNa0pFUkRkQlJqSTNORVF3TnpaRVJq
QWlJSGh0Y0UxTk9rUnZZM1Z0Wlc1MFNVUTlJbmh0Y0M1a2FXUTZSVEJFUWtJNVF6a3lNVGM0TVRG
Rk1rSkVSRGRCUmpJM05FUXdOelpFUmpBaVBpQThlRzF3VFUwNlJHVnlhWFpsWkVaeWIyMGdjM1JT
WldZNmFXNXpkR0Z1WTJWSlJEMGllRzF3TG1scFpEcEZNRVJDUWpsRE5qSXhOemd4TVVVeVFrUkVO
MEZHTWpjMFJEQTNOa1JHTUNJZ2MzUlNaV1k2Wkc5amRXMWxiblJKUkQwaWVHMXdMbVJwWkRwRk1F
UkNRamxETnpJeE56Z3hNVVV5UWtSRU4wRkdNamMwUkRBM05rUkdNQ0l2UGlBOEwzSmtaanBFWlhO
amNtbHdkR2x2Ymo0Z1BDOXlaR1k2VWtSR1BpQThMM2c2ZUcxd2JXVjBZVDRnUEQ5NGNHRmphMlYw
SUdWdVpEMGljaUkvUHFwV3owVUFBQUhQU1VSQlZIamE3SnFCYllRd0RFWGREUmdoSTdCQkdTRWpa
QVJHeUFhTXdBZzNBdGNKTWtKdWc0eEFVeW1xVGdnVk8xeUpiWjBsQ3lHZDBEM1ovUHc0ZklDQVdO
ZlY1SXZOK1ptenoyazJQN21YNjFmT3g5TTlYNkNjeTBxTE9XZkhHY3F0OUppNFY2b0d5cjJoR2tE
MUdxRzZuRkVWVkFHYk5FSU42cUFLV0tDc1UxS2dSZ0xVSWdYcVJ6QVNFaXF5ZGhRYk1FK29WaThG
eWhDcU5ZS1VLR1pWejN2MVZDMU1wTEpsVVZldFVXTzFBa2dLZ25VYUpFRmgxNjFaV3JXOE9zRW9Z
SmhxZVdsUURsbXRUaHBZMUZpdFFXdTFiaHFWRUxzZ2kxTkNyNjVhQk5FWXJtaWJlZk5uUXJGQnB1
SjV0dW0ycEZnZGpPT2VLTXFGRkEzM24xQ1VRV1hBd0pYbkhrbzhCMWRBZ2tOT24vd1ZMemtWYm5u
QnJOQmNwV0JVT0g5aTdicHhIb250anNXUW0wbkxlU2F4TzhoRWlGRnN1YkNHbXBaRW5uSDVsbUNV
OGZOdlN5TGJzSzB2SkI3dkxNaEs4eGlBRXNYRU4zTWFsWERVYnkzYU9JMUtjNXhlQU1admUxTDVt
WUtNbzZDVExSbUJhNXhzU2Q0SERNUXpZMWt6allxV0ZITW9UbTFKQjFLQ3VIQ0xHNFFHZHZ1dUM3
MmtCWWx4NE9ZVFNJMkQ3YzBNa3VPUHRjMkM5TmdSa2dRYVlrZElKdEFTbTVGMnJ3bk1zSGZ5SitW
LzBnaldjV2pEYndFR0FOOS9OWDhIN1YvRkFBQUFBRWxGVGtTdVFtQ0MnKSwgLXdlYmtpdC1ncmFk
aWVudChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgY29sb3Itc3RvcCgwLCByZ2IoNzks
IDExMiwgMjQ1KSksIGNvbG9yLXN0b3AoMSwgcmdiKDI4LCA2NiwgMjQ1KSkpOworICAgIGJhY2tn
cm91bmQtcmVwZWF0OiBuby1yZXBlYXQsIHJlcGVhdDsKKyAgICBiYWNrZ3JvdW5kLXBvc2l0aW9u
OiAwLjVlbSAwLjVlbSwgdG9wIGxlZnQ7CisgICAgYmFja2dyb3VuZC1zaXplOiAxZW0gMWVtLCAx
MDAlIDEwMCU7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRp
YUNvbnRyb2xFbGVtZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNv
bnRyb2xFbGVtZW50cy5jcHAKaW5kZXggOTA2NDY2MDEzZjhiM2E5ZGQ2YjI4YmQ0NjM3YjJmYzI1
MjI5MjllYy4uYjU3YjNkMDc1MDU2YTQ4YjQyYTdiNjI3ZjI4Y2IzMWI0N2Y5ODZkNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNw
cApAQCAtNDMsNiArNDMsNyBAQAogI2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1lbnQuaCIKICNpbmNs
dWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJIVE1MVmlkZW9FbGVtZW50LmgiCisjaW5jbHVk
ZSAiTGFuZ3VhZ2UuaCIKICNpbmNsdWRlICJMYXlvdXRSZXBhaW50ZXIuaCIKICNpbmNsdWRlICJM
b2NhbGl6ZWRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiTWVkaWFDb250cm9sUm9vdEVsZW1lbnQuaCIK
QEAgLTYyLDYgKzYzLDcgQEAKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlN0eWxl
UmVzb2x2ZXIuaCIKICNpbmNsdWRlICJUZXh0LmgiCisjaW5jbHVkZSAiVGV4dFRyYWNrTGlzdC5o
IgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTExNCw2ICsxMTYsMTQgQEAgdm9pZCBNZWRp
YUNvbnRyb2xFbGVtZW50OjpoaWRlKCkKICAgICBzZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1By
b3BlcnR5RGlzcGxheSwgQ1NTVmFsdWVOb25lKTsKIH0KIAorYm9vbCBNZWRpYUNvbnRyb2xFbGVt
ZW50Ojppc1Nob3dpbmcoKSBjb25zdAoreworICAgIGNvbnN0IFN0eWxlUHJvcGVydHlTZXQqIHBy
b3BlcnR5U2V0ID0gaW5saW5lU3R5bGUoKTsKKyAgICAvLyBGb2xsb3dpbmcgdGhlIGNvZGUgZnJv
bSBzaG93KCkgYW5kIGhpZGUoKSBhYm92ZSwgd2Ugb25seSBoYXZlCisgICAgLy8gdG8gY2hlY2sg
Zm9yIHRoZSBwcmVzZW5zZSBvZiBpbmxpbmUgZGlzcGxheS4KKyAgICByZXR1cm4gKCFwcm9wZXJ0
eVNldCB8fCAhcHJvcGVydHlTZXQtPmdldFByb3BlcnR5Q1NTVmFsdWUoQ1NTUHJvcGVydHlEaXNw
bGF5KSk7Cit9CisKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogaW5saW5lIE1l
ZGlhQ29udHJvbFBhbmVsRWxlbWVudDo6TWVkaWFDb250cm9sUGFuZWxFbGVtZW50KERvY3VtZW50
KiBkb2N1bWVudCkKQEAgLTg1MSwyNSArODYxLDU2IEBAIGNvbnN0IEF0b21pY1N0cmluZyYgTWVk
aWFDb250cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkK
IAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1pbmxpbmUgTWVkaWFDb250cm9s
VG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xUb2dnbGVDbG9z
ZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KQoraW5saW5lIE1lZGlh
Q29udHJvbENsb3NlZENhcHRpb25zQ29udGFpbmVyRWxlbWVudDo6TWVkaWFDb250cm9sQ2xvc2Vk
Q2FwdGlvbnNDb250YWluZXJFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCkKKyAgICA6IE1lZGlh
Q29udHJvbEVsZW1lbnQoZG9jdW1lbnQpCit7Cit9CisKK1Bhc3NSZWZQdHI8TWVkaWFDb250cm9s
Q2xvc2VkQ2FwdGlvbnNDb250YWluZXJFbGVtZW50PiBNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9u
c0NvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgUmVm
UHRyPE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zQ29udGFpbmVyRWxlbWVudD4gZWxlbWVudCA9
IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc0NvbnRhaW5lckVsZW1lbnQo
ZG9jdW1lbnQpKTsKKyAgICBlbGVtZW50LT5oaWRlKCk7CisgICAgcmV0dXJuIGVsZW1lbnQucmVs
ZWFzZSgpOworfQorCitjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbENsb3NlZENhcHRp
b25zQ29udGFpbmVyRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAoreworICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xz
LWNsb3NlZC1jYXB0aW9ucy1jb250YWluZXIiKSk7CisgICAgcmV0dXJuIGlkOworfQorCisvLyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK2lubGluZSBNZWRpYUNvbnRyb2xUb2dnbGVD
bG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ6Ok1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRp
b25zQnV0dG9uRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQsIE1lZGlhQ29udHJvbHMqIGNvbnRy
b2xzKQogICAgIDogTWVkaWFDb250cm9sSW5wdXRFbGVtZW50KGRvY3VtZW50LCBNZWRpYVNob3dD
bG9zZWRDYXB0aW9uc0J1dHRvbikKKyAgICAsIG1fY29udHJvbHMoY29udHJvbHMpCiB7CiB9CiAK
LVBhc3NSZWZQdHI8TWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50
PiBNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ6OmNyZWF0ZShE
b2N1bWVudCogZG9jdW1lbnQpCitQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENh
cHRpb25zQnV0dG9uRWxlbWVudD4gTWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0
b25FbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50LCBNZWRpYUNvbnRyb2xzKiBjb250
cm9scykKIHsKLSAgICBSZWZQdHI8TWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0
b25FbGVtZW50PiBidXR0b24gPSBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9sVG9nZ2xlQ2xvc2Vk
Q2FwdGlvbnNCdXR0b25FbGVtZW50KGRvY3VtZW50KSk7CisgICAgQVNTRVJUKGNvbnRyb2xzKTsK
KworICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1l
bnQ+IGJ1dHRvbiA9IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9u
c0J1dHRvbkVsZW1lbnQoZG9jdW1lbnQsIGNvbnRyb2xzKSk7CiAgICAgYnV0dG9uLT5jcmVhdGVT
aGFkb3dTdWJ0cmVlKCk7CiAgICAgYnV0dG9uLT5zZXRUeXBlKCJidXR0b24iKTsKICAgICBidXR0
b24tPmhpZGUoKTsKICAgICByZXR1cm4gYnV0dG9uLnJlbGVhc2UoKTsKIH0KIAordm9pZCBNZWRp
YUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ6OnVwZGF0ZURpc3BsYXlU
eXBlKCkKK3sKKyAgICBzZXREaXNwbGF5VHlwZShtZWRpYUNvbnRyb2xsZXIoKS0+bXV0ZWQoKSA/
IE1lZGlhSGlkZUNsb3NlZENhcHRpb25zQnV0dG9uIDogTWVkaWFTaG93Q2xvc2VkQ2FwdGlvbnNC
dXR0b24pOworfQorCiB2b2lkIE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9u
RWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCiB7CiAgICAgaWYgKGV2
ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmNsaWNrRXZlbnQpIHsKKyAgICAgICAgLy8gRklY
TUU6IFRoaXMgaXMgbm93IGluY29ycmVjdGx5IGRvaW5nIHR3byB0aGluZ3MgYXQgb25jZTogc2hv
d2luZyB0aGUgbGlzdCBvZiBjYXB0aW9ucyBhbmQgdG9nZ2xpbmcgZGlzcGxheS4KKyAgICAgICAg
Ly8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTY3MAogICAgICAg
ICBtZWRpYUNvbnRyb2xsZXIoKS0+c2V0Q2xvc2VkQ2FwdGlvbnNWaXNpYmxlKCFtZWRpYUNvbnRy
b2xsZXIoKS0+Y2xvc2VkQ2FwdGlvbnNWaXNpYmxlKCkpOwogICAgICAgICBzZXRDaGVja2VkKG1l
ZGlhQ29udHJvbGxlcigpLT5jbG9zZWRDYXB0aW9uc1Zpc2libGUoKSk7CisgICAgICAgIG1fY29u
dHJvbHMtPnRvZ2dsZUNsb3NlZENhcHRpb25UcmFja0xpc3QoKTsKICAgICAgICAgdXBkYXRlRGlz
cGxheVR5cGUoKTsKICAgICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CiAgICAgfQpA
QCAtODc3LDE3ICs5MTgsMTE2IEBAIHZvaWQgTWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlv
bnNCdXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBlCiAgICAgSFRNTElu
cHV0RWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihldmVudCk7CiB9CiAKLXZvaWQgTWVkaWFD
b250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50Ojp1cGRhdGVEaXNwbGF5VHlw
ZSgpCitjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25z
QnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIHNldERpc3BsYXlU
eXBlKG1lZGlhQ29udHJvbGxlcigpLT5jbG9zZWRDYXB0aW9uc1Zpc2libGUoKSA/IE1lZGlhSGlk
ZUNsb3NlZENhcHRpb25zQnV0dG9uIDogTWVkaWFTaG93Q2xvc2VkQ2FwdGlvbnNCdXR0b24pOwor
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlh
LWNvbnRyb2xzLXRvZ2dsZS1jbG9zZWQtY2FwdGlvbnMtYnV0dG9uIikpOworICAgIHJldHVybiBp
ZDsKIH0KIAotY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0
aW9uc0J1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKKy8vIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKworaW5saW5lIE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zVHJh
Y2tMaXN0RWxlbWVudDo6TWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVtZW50
KERvY3VtZW50KiBkb2N1bWVudCkKKyAgICA6IE1lZGlhQ29udHJvbEVsZW1lbnQoZG9jdW1lbnQp
CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQt
bWVkaWEtY29udHJvbHMtdG9nZ2xlLWNsb3NlZC1jYXB0aW9ucy1idXR0b24iKSk7Cit9CisKK1Bh
c3NSZWZQdHI8TWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVtZW50PiBNZWRp
YUNvbnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCog
ZG9jdW1lbnQpCit7CisgICAgUmVmUHRyPE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zVHJhY2tM
aXN0RWxlbWVudD4gZWxlbWVudCA9IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xDbG9zZWRDYXB0
aW9uc1RyYWNrTGlzdEVsZW1lbnQoZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gZWxlbWVudC5yZWxl
YXNlKCk7Cit9CisKK3ZvaWQgTWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVt
ZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKK3sKKyAgICAvLyBGSVhNRTog
SG9vayB0aGlzIHVwIHRvIGFjdHVhbCB0ZXh0IHRyYWNrcy4KKyAgICAvLyBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxNjcwCisgICAgVU5VU0VEX1BBUkFNKGV2ZW50
KTsKK30KKworY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc1Ry
YWNrTGlzdEVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKK3sKKyAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1jbG9z
ZWQtY2FwdGlvbnMtdHJhY2stbGlzdCIpKTsKICAgICByZXR1cm4gaWQ7CiB9CiAKK3ZvaWQgTWVk
aWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVtZW50Ojp1cGRhdGVEaXNwbGF5KCkK
K3sKKyAgICAvLyBSZW1vdmUgYW55IGV4aXN0aW5nIGNvbnRlbnQuCisgICAgcmVtb3ZlQ2hpbGRy
ZW4oKTsKKworICAgIGlmICghbWVkaWFDb250cm9sbGVyKCktPmhhc0Nsb3NlZENhcHRpb25zKCkp
CisgICAgICAgIHJldHVybjsKKworICAgIEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVudCA9
IHRvUGFyZW50TWVkaWFFbGVtZW50KHRoaXMpOworICAgIGlmICghbWVkaWFFbGVtZW50KQorICAg
ICAgICByZXR1cm47CisKKyAgICBUZXh0VHJhY2tMaXN0KiB0cmFja0xpc3QgPSBtZWRpYUVsZW1l
bnQtPnRleHRUcmFja3MoKTsKKworICAgIGlmICghdHJhY2tMaXN0IHx8ICF0cmFja0xpc3QtPmxl
bmd0aCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBEb2N1bWVudCogZG9jID0gZG9jdW1lbnQo
KTsKKyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKworICAgIFJlZlB0cjxFbGVtZW50PiBjYXB0
aW9uc1NlY3Rpb24gPSBkb2MtPmNyZWF0ZUVsZW1lbnQoc2VjdGlvblRhZywgZWMpOworICAgIFJl
ZlB0cjxFbGVtZW50PiBjYXB0aW9uc0hlYWRlciA9IGRvYy0+Y3JlYXRlRWxlbWVudChoM1RhZywg
ZWMpOworICAgIGNhcHRpb25zSGVhZGVyLT5hcHBlbmRDaGlsZChkb2MtPmNyZWF0ZVRleHROb2Rl
KCJDbG9zZWQgQ2FwdGlvbnMiKSk7CisgICAgY2FwdGlvbnNTZWN0aW9uLT5hcHBlbmRDaGlsZChj
YXB0aW9uc0hlYWRlcik7CisgICAgUmVmUHRyPEVsZW1lbnQ+IGNhcHRpb25zTGlzdCA9IGRvYy0+
Y3JlYXRlRWxlbWVudCh1bFRhZywgZWMpOworCisgICAgUmVmUHRyPEVsZW1lbnQ+IHN1YnRpdGxl
c1NlY3Rpb24gPSBkb2MtPmNyZWF0ZUVsZW1lbnQoc2VjdGlvblRhZywgZWMpOworICAgIFJlZlB0
cjxFbGVtZW50PiBzdWJ0aXRsZXNIZWFkZXIgPSBkb2MtPmNyZWF0ZUVsZW1lbnQoaDNUYWcsIGVj
KTsKKyAgICBzdWJ0aXRsZXNIZWFkZXItPmFwcGVuZENoaWxkKGRvYy0+Y3JlYXRlVGV4dE5vZGUo
IlN1YnRpdGxlcyIpKTsKKyAgICBzdWJ0aXRsZXNTZWN0aW9uLT5hcHBlbmRDaGlsZChzdWJ0aXRs
ZXNIZWFkZXIpOworICAgIFJlZlB0cjxFbGVtZW50PiBzdWJ0aXRsZXNMaXN0ID0gZG9jLT5jcmVh
dGVFbGVtZW50KHVsVGFnLCBlYyk7CisKKyAgICBSZWZQdHI8RWxlbWVudD4gdHJhY2tJdGVtOwor
CisgICAgdHJhY2tJdGVtID0gZG9jLT5jcmVhdGVFbGVtZW50KGxpVGFnLCBlYyk7CisgICAgdHJh
Y2tJdGVtLT5hcHBlbmRDaGlsZChkb2MtPmNyZWF0ZVRleHROb2RlKCJPZmYiKSk7CisgICAgLy8g
RklYTUU6IFRoZXNlIGxpc3RzIGFyZSBub3QgeWV0IGxpdmUuIE1hcmsgdGhlIE9mZiBlbnRyeSBh
cyB0aGUgc2VsZWN0ZWQgb25lIGZvciBub3cuCisgICAgdHJhY2tJdGVtLT5zZXRBdHRyaWJ1dGUo
Y2xhc3NBdHRyLCAic2VsZWN0ZWQiKTsKKyAgICBjYXB0aW9uc0xpc3QtPmFwcGVuZENoaWxkKHRy
YWNrSXRlbSk7CisKKyAgICB0cmFja0l0ZW0gPSBkb2MtPmNyZWF0ZUVsZW1lbnQobGlUYWcsIGVj
KTsKKyAgICB0cmFja0l0ZW0tPmFwcGVuZENoaWxkKGRvYy0+Y3JlYXRlVGV4dE5vZGUoIk9mZiIp
KTsKKyAgICAvLyBGSVhNRTogVGhlc2UgbGlzdHMgYXJlIG5vdCB5ZXQgbGl2ZS4gTWFyayB0aGUg
T2ZmIGVudHJ5IGFzIHRoZSBzZWxlY3RlZCBvbmUgZm9yIG5vdy4KKyAgICB0cmFja0l0ZW0tPnNl
dEF0dHJpYnV0ZShjbGFzc0F0dHIsICJzZWxlY3RlZCIpOworICAgIHN1YnRpdGxlc0xpc3QtPmFw
cGVuZENoaWxkKHRyYWNrSXRlbSk7CisKKyAgICBib29sIGhhc0NhcHRpb25zID0gZmFsc2U7Cisg
ICAgYm9vbCBoYXNTdWJ0aXRsZXMgPSBmYWxzZTsKKworICAgIGZvciAodW5zaWduZWQgaSA9IDAs
IGxlbmd0aCA9IHRyYWNrTGlzdC0+bGVuZ3RoKCk7IGkgPCBsZW5ndGg7ICsraSkgeworICAgICAg
ICBUZXh0VHJhY2sqIHRyYWNrID0gdHJhY2tMaXN0LT5pdGVtKGkpOworICAgICAgICB0cmFja0l0
ZW0gPSBkb2MtPmNyZWF0ZUVsZW1lbnQobGlUYWcsIGVjKTsKKyAgICAgICAgQXRvbWljU3RyaW5n
IGxhYmVsVGV4dCA9IHRyYWNrLT5sYWJlbCgpOworICAgICAgICBpZiAobGFiZWxUZXh0LmlzTnVs
bCgpIHx8IGxhYmVsVGV4dC5pc0VtcHR5KCkpCisgICAgICAgICAgICBsYWJlbFRleHQgPSBkaXNw
bGF5TmFtZUZvckxhbmd1YWdlTG9jYWxlKHRyYWNrLT5sYW5ndWFnZSgpKTsKKyAgICAgICAgaWYg
KGxhYmVsVGV4dC5pc051bGwoKSB8fCBsYWJlbFRleHQuaXNFbXB0eSgpKQorICAgICAgICAgICAg
bGFiZWxUZXh0ID0gIk5vIExhYmVsIjsKKyAgICAgICAgdHJhY2tJdGVtLT5hcHBlbmRDaGlsZChk
b2MtPmNyZWF0ZVRleHROb2RlKGxhYmVsVGV4dCkpOworCisgICAgICAgIGlmICh0cmFjay0+a2lu
ZCgpID09IHRyYWNrLT5jYXB0aW9uc0tleXdvcmQoKSkgeworICAgICAgICAgICAgaGFzQ2FwdGlv
bnMgPSB0cnVlOworICAgICAgICAgICAgY2FwdGlvbnNMaXN0LT5hcHBlbmRDaGlsZCh0cmFja0l0
ZW0pOworICAgICAgICB9CisgICAgICAgIGlmICh0cmFjay0+a2luZCgpID09IHRyYWNrLT5zdWJ0
aXRsZXNLZXl3b3JkKCkpIHsKKyAgICAgICAgICAgIGhhc1N1YnRpdGxlcyA9IHRydWU7CisgICAg
ICAgICAgICBzdWJ0aXRsZXNMaXN0LT5hcHBlbmRDaGlsZCh0cmFja0l0ZW0pOworICAgICAgICB9
CisgICAgfQorCisgICAgY2FwdGlvbnNTZWN0aW9uLT5hcHBlbmRDaGlsZChjYXB0aW9uc0xpc3Qp
OworICAgIHN1YnRpdGxlc1NlY3Rpb24tPmFwcGVuZENoaWxkKHN1YnRpdGxlc0xpc3QpOworCisg
ICAgaWYgKGhhc0NhcHRpb25zKQorICAgICAgICBhcHBlbmRDaGlsZChjYXB0aW9uc1NlY3Rpb24p
OworICAgIGlmIChoYXNTdWJ0aXRsZXMpCisgICAgICAgIGFwcGVuZENoaWxkKHN1YnRpdGxlc1Nl
Y3Rpb24pOworfQorCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIE1lZGlhQ29u
dHJvbFRpbWVsaW5lRWxlbWVudDo6TWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50KERvY3VtZW50
KiBkb2N1bWVudCwgTWVkaWFDb250cm9scyogY29udHJvbHMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuaAppbmRleCA2NmNiMmRhNmJiNWI5
NDQxYjhlMWJkYTQ4MWMzNTdmNDNlYzNjMzFjLi5jM2ZiYzgxMjE5MmQzNDFmNjJiOTRlMjM4ZWJl
MTRlZDJlZTk2NzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRp
YUNvbnRyb2xFbGVtZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlh
Q29udHJvbEVsZW1lbnRzLmgKQEAgLTc1LDYgKzc1LDggQEAgZW51bSBNZWRpYUNvbnRyb2xFbGVt
ZW50VHlwZSB7CiAgICAgTWVkaWFUZXh0VHJhY2tEaXNwbGF5LAogICAgIE1lZGlhRXhpdEZ1bGxz
Y3JlZW5CdXR0b24sCiAgICAgTWVkaWFPdmVybGF5UGxheUJ1dHRvbiwKKyAgICBNZWRpYUNsb3Nl
ZENhcHRpb25zQ29udGFpbmVyLAorICAgIE1lZGlhQ2xvc2VkQ2FwdGlvbnNUcmFja0xpc3QsCiB9
OwogCiBIVE1MTWVkaWFFbGVtZW50KiB0b1BhcmVudE1lZGlhRWxlbWVudChOb2RlKik7CkBAIC04
OCw2ICs5MCw3IEBAIGNsYXNzIE1lZGlhQ29udHJvbEVsZW1lbnQgOiBwdWJsaWMgSFRNTERpdkVs
ZW1lbnQgewogcHVibGljOgogICAgIHZvaWQgaGlkZSgpOwogICAgIHZvaWQgc2hvdygpOworICAg
IGJvb2wgaXNTaG93aW5nKCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIE1lZGlhQ29udHJvbEVsZW1l
bnRUeXBlIGRpc3BsYXlUeXBlKCkgY29uc3QgPSAwOwogCkBAIC0zODAsMTcgKzM4Myw1MSBAQCBw
cml2YXRlOgogCiBjbGFzcyBNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVs
ZW1lbnQgOiBwdWJsaWMgTWVkaWFDb250cm9sSW5wdXRFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVs
ZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29u
dHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Kiwg
TWVkaWFDb250cm9scyopOwogCi0gICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIo
RXZlbnQqKTsKICAgICB2aXJ0dWFsIGJvb2wgd2lsbFJlc3BvbmRUb01vdXNlQ2xpY2tFdmVudHMo
KSBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVu
dEhhbmRsZXIoRXZlbnQqKTsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRGlzcGxheVR5cGUoKTsK
IAogcHJpdmF0ZToKLSAgICBNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVs
ZW1lbnQoRG9jdW1lbnQqKTsKKyAgICBNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1
dHRvbkVsZW1lbnQoRG9jdW1lbnQqLCBNZWRpYUNvbnRyb2xzKik7CisgICAgdmlydHVhbCBjb25z
dCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3Q7CisKKyAgICBNZWRpYUNvbnRy
b2xzKiBtX2NvbnRyb2xzOworfTsKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog
CitjbGFzcyBNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc0NvbnRhaW5lckVsZW1lbnQgOiBwdWJs
aWMgTWVkaWFDb250cm9sRWxlbWVudCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8
TWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNDb250YWluZXJFbGVtZW50PiBjcmVhdGUoRG9jdW1l
bnQqKTsKKworICAgIHZpcnR1YWwgYm9vbCB3aWxsUmVzcG9uZFRvTW91c2VDbGlja0V2ZW50cygp
IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKworcHJpdmF0ZToKKyAgICBNZWRpYUNvbnRyb2xD
bG9zZWRDYXB0aW9uc0NvbnRhaW5lckVsZW1lbnQoRG9jdW1lbnQqKTsKKworICAgIHZpcnR1YWwg
TWVkaWFDb250cm9sRWxlbWVudFR5cGUgZGlzcGxheVR5cGUoKSBjb25zdCB7IHJldHVybiBNZWRp
YUNsb3NlZENhcHRpb25zQ29udGFpbmVyOyB9CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJp
bmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3Q7Ci19OyAgICAKK307CisKKy8vIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKworY2xhc3MgTWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNUcmFj
a0xpc3RFbGVtZW50IDogcHVibGljIE1lZGlhQ29udHJvbEVsZW1lbnQgeworcHVibGljOgorICAg
IHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zVHJhY2tMaXN0RWxl
bWVudD4gY3JlYXRlKERvY3VtZW50Kik7CisKKyAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50
SGFuZGxlcihFdmVudCopOworICAgIHZpcnR1YWwgYm9vbCB3aWxsUmVzcG9uZFRvTW91c2VDbGlj
a0V2ZW50cygpIE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKworICAgIHZvaWQgdXBkYXRlRGlz
cGxheSgpOworCitwcml2YXRlOgorICAgIE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zVHJhY2tM
aXN0RWxlbWVudChEb2N1bWVudCopOworCisgICAgdmlydHVhbCBNZWRpYUNvbnRyb2xFbGVtZW50
VHlwZSBkaXNwbGF5VHlwZSgpIGNvbnN0IHsgcmV0dXJuIE1lZGlhQ2xvc2VkQ2FwdGlvbnNUcmFj
a0xpc3Q7IH0KKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQo
KSBjb25zdDsKK307CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnQu
Y3BwCmluZGV4IGVmNTQxYmFhMzNiMWU4YmRmMGYwOTMyMmM1ZmUwOTc2YjI3MTc3ODguLjAwNjU3
NzYzNjUyNzA2ZjA1YTcwM2ZiYTViYTM4ODliNzI0NGY4MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudC5jcHAKQEAgLTYy
LDYgKzYyLDggQEAgTWVkaWFDb250cm9sUm9vdEVsZW1lbnQ6Ok1lZGlhQ29udHJvbFJvb3RFbGVt
ZW50KERvY3VtZW50KiBkb2N1bWVudCkKICAgICAsIG1fc2Vla0JhY2tCdXR0b24oMCkKICAgICAs
IG1fc2Vla0ZvcndhcmRCdXR0b24oMCkKICAgICAsIG1fdG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0
b24oMCkKKyAgICAsIG1fY2xvc2VkQ2FwdGlvbnNUcmFja0xpc3QoMCkKKyAgICAsIG1fY2xvc2Vk
Q2FwdGlvbnNDb250YWluZXIoMCkKICAgICAsIG1fcGFuZWxNdXRlQnV0dG9uKDApCiAgICAgLCBt
X3ZvbHVtZVNsaWRlcigwKQogICAgICwgbV92b2x1bWVTbGlkZXJNdXRlQnV0dG9uKDApCkBAIC0x
NjIsMTEgKzE2NCwyNSBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFJvb3RFbGVtZW50PiBNZWRp
YUNvbnRyb2xSb290RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkbwogICAgICAgICByZXR1cm4g
MDsKIAogICAgIGlmIChkb2N1bWVudC0+cGFnZSgpLT50aGVtZSgpLT5zdXBwb3J0c0Nsb3NlZENh
cHRpb25pbmcoKSkgewotICAgICAgICBSZWZQdHI8TWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2Fw
dGlvbnNCdXR0b25FbGVtZW50PiB0b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbiA9IE1lZGlhQ29u
dHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsK
KworICAgICAgICBSZWZQdHI8TWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNDb250YWluZXJFbGVt
ZW50PiBjbG9zZWRDYXB0aW9uc0NvbnRhaW5lciA9IE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25z
Q29udGFpbmVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKworICAgICAgICBSZWZQdHI8TWVk
aWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVtZW50PiBjbG9zZWRDYXB0aW9uc1Ry
YWNrTGlzdCA9IE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zVHJhY2tMaXN0RWxlbWVudDo6Y3Jl
YXRlKGRvY3VtZW50KTsKKyAgICAgICAgY29udHJvbHMtPm1fY2xvc2VkQ2FwdGlvbnNUcmFja0xp
c3QgPSBjbG9zZWRDYXB0aW9uc1RyYWNrTGlzdC5nZXQoKTsKKyAgICAgICAgY2xvc2VkQ2FwdGlv
bnNDb250YWluZXItPmFwcGVuZENoaWxkKGNsb3NlZENhcHRpb25zVHJhY2tMaXN0LnJlbGVhc2Uo
KSwgZWMsIHRydWUpOworICAgICAgICBpZiAoZWMpCisgICAgICAgICAgICByZXR1cm4gMDsKKwor
ICAgICAgICBSZWZQdHI8TWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVt
ZW50PiB0b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbiA9IE1lZGlhQ29udHJvbFRvZ2dsZUNsb3Nl
ZENhcHRpb25zQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBjb250cm9scy5nZXQoKSk7
CiAgICAgICAgIGNvbnRyb2xzLT5tX3RvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uID0gdG9nZ2xl
Q2xvc2VkQ2FwdGlvbnNCdXR0b24uZ2V0KCk7CiAgICAgICAgIHBhbmVsLT5hcHBlbmRDaGlsZCh0
b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbi5yZWxlYXNlKCksIGVjLCB0cnVlKTsKICAgICAgICAg
aWYgKGVjKQogICAgICAgICAgICAgcmV0dXJuIDA7CisKKyAgICAgICAgY29udHJvbHMtPm1fY2xv
c2VkQ2FwdGlvbnNDb250YWluZXIgPSBjbG9zZWRDYXB0aW9uc0NvbnRhaW5lci5nZXQoKTsKKyAg
ICAgICAgcGFuZWwtPmFwcGVuZENoaWxkKGNsb3NlZENhcHRpb25zQ29udGFpbmVyLnJlbGVhc2Uo
KSwgZWMsIHRydWUpOworICAgICAgICBpZiAoZWMpCisgICAgICAgICAgICByZXR1cm4gMDsKICAg
ICB9CiAKICAgICAvLyBGSVhNRTogT25seSBjcmVhdGUgd2hlbiBuZWVkZWQgPGh0dHA6Ly93ZWJr
aXQub3JnL2IvNTcxNjM+CkBAIC0yNjYsNiArMjgyLDEwIEBAIHZvaWQgTWVkaWFDb250cm9sUm9v
dEVsZW1lbnQ6OnNldE1lZGlhQ29udHJvbGxlcihNZWRpYUNvbnRyb2xsZXJJbnRlcmZhY2UqIGNv
bnRyCiAgICAgICAgIG1fc2Vla0ZvcndhcmRCdXR0b24tPnNldE1lZGlhQ29udHJvbGxlcihjb250
cm9sbGVyKTsKICAgICBpZiAobV90b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbikKICAgICAgICAg
bV90b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbi0+c2V0TWVkaWFDb250cm9sbGVyKGNvbnRyb2xs
ZXIpOworICAgIGlmIChtX2Nsb3NlZENhcHRpb25zVHJhY2tMaXN0KQorICAgICAgICBtX2Nsb3Nl
ZENhcHRpb25zVHJhY2tMaXN0LT5zZXRNZWRpYUNvbnRyb2xsZXIoY29udHJvbGxlcik7CisgICAg
aWYgKG1fY2xvc2VkQ2FwdGlvbnNDb250YWluZXIpCisgICAgICAgIG1fY2xvc2VkQ2FwdGlvbnND
b250YWluZXItPnNldE1lZGlhQ29udHJvbGxlcihjb250cm9sbGVyKTsKICAgICBpZiAobV9wYW5l
bE11dGVCdXR0b24pCiAgICAgICAgIG1fcGFuZWxNdXRlQnV0dG9uLT5zZXRNZWRpYUNvbnRyb2xs
ZXIoY29udHJvbGxlcik7CiAgICAgaWYgKG1fdm9sdW1lU2xpZGVyKQpAQCAtMzAyLDYgKzMyMiw3
IEBAIHZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnQ6OmhpZGUoKQogICAgIG1fcGFuZWwtPnNl
dElzRGlzcGxheWVkKGZhbHNlKTsKICAgICBtX3BhbmVsLT5oaWRlKCk7CiAgICAgbV92b2x1bWVT
bGlkZXJDb250YWluZXItPmhpZGUoKTsKKyAgICBtX2Nsb3NlZENhcHRpb25zQ29udGFpbmVyLT5o
aWRlKCk7CiB9CiAKIHZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnQ6Om1ha2VPcGFxdWUoKQpA
QCAtMzEzLDYgKzMzNCw3IEBAIHZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnQ6Om1ha2VUcmFu
c3BhcmVudCgpCiB7CiAgICAgbV9wYW5lbC0+bWFrZVRyYW5zcGFyZW50KCk7CiAgICAgbV92b2x1
bWVTbGlkZXJDb250YWluZXItPmhpZGUoKTsKKyAgICBtX2Nsb3NlZENhcHRpb25zQ29udGFpbmVy
LT5oaWRlKCk7CiB9CiAKIHZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnQ6OnJlc2V0KCkKQEAg
LTM0Niw5ICszNjgsMTAgQEAgdm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudDo6cmVzZXQoKQog
ICAgICAgICBtX3ZvbHVtZVNsaWRlci0+c2V0Vm9sdW1lKG1fbWVkaWFDb250cm9sbGVyLT52b2x1
bWUoKSk7CiAKICAgICBpZiAobV90b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbikgewotICAgICAg
ICBpZiAobV9tZWRpYUNvbnRyb2xsZXItPmhhc0Nsb3NlZENhcHRpb25zKCkpCisgICAgICAgIGlm
IChtX21lZGlhQ29udHJvbGxlci0+aGFzQ2xvc2VkQ2FwdGlvbnMoKSkgewogICAgICAgICAgICAg
bV90b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbi0+c2hvdygpOwotICAgICAgICBlbHNlCisgICAg
ICAgICAgICBtX2Nsb3NlZENhcHRpb25zVHJhY2tMaXN0LT51cGRhdGVEaXNwbGF5KCk7CisgICAg
ICAgIH0gZWxzZQogICAgICAgICAgICAgbV90b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbi0+aGlk
ZSgpOwogICAgIH0KIApAQCAtNDQ3LDYgKzQ3MCw4IEBAIHZvaWQgTWVkaWFDb250cm9sUm9vdEVs
ZW1lbnQ6OnJlcG9ydGVkRXJyb3IoKQogICAgICAgICBtX3ZvbHVtZVNsaWRlckNvbnRhaW5lci0+
aGlkZSgpOwogICAgIGlmIChtX3RvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uICYmICFwYWdlLT50
aGVtZSgpLT5oYXNPd25EaXNhYmxlZFN0YXRlSGFuZGxpbmdGb3IoTWVkaWFUb2dnbGVDbG9zZWRD
YXB0aW9uc0J1dHRvblBhcnQpKQogICAgICAgICBtX3RvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9u
LT5oaWRlKCk7CisgICAgaWYgKG1fY2xvc2VkQ2FwdGlvbnNDb250YWluZXIpCisgICAgICAgIG1f
Y2xvc2VkQ2FwdGlvbnNDb250YWluZXItPmhpZGUoKTsKIH0KIAogdm9pZCBNZWRpYUNvbnRyb2xS
b290RWxlbWVudDo6dXBkYXRlU3RhdHVzRGlzcGxheSgpCkBAIC01NDIsNiArNTY3LDE5IEBAIHZv
aWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnQ6OnNob3dWb2x1bWVTbGlkZXIoKQogICAgICAgICBt
X3ZvbHVtZVNsaWRlckNvbnRhaW5lci0+c2hvdygpOwogfQogCit2b2lkIE1lZGlhQ29udHJvbFJv
b3RFbGVtZW50Ojp0b2dnbGVDbG9zZWRDYXB0aW9uVHJhY2tMaXN0KCkKK3sKKyAgICBpZiAoIW1f
bWVkaWFDb250cm9sbGVyLT5oYXNDbG9zZWRDYXB0aW9ucygpKQorICAgICAgICByZXR1cm47CisK
KyAgICBpZiAobV9jbG9zZWRDYXB0aW9uc0NvbnRhaW5lcikgeworICAgICAgICBpZiAobV9jbG9z
ZWRDYXB0aW9uc0NvbnRhaW5lci0+aXNTaG93aW5nKCkpCisgICAgICAgICAgICBtX2Nsb3NlZENh
cHRpb25zQ29udGFpbmVyLT5oaWRlKCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1fY2xv
c2VkQ2FwdGlvbnNDb250YWluZXItPnNob3coKTsKKyAgICB9Cit9CisKIGJvb2wgTWVkaWFDb250
cm9sUm9vdEVsZW1lbnQ6OnNob3VsZEhpZGVDb250cm9scygpCiB7CiAgICAgcmV0dXJuICFtX3Bh
bmVsLT5ob3ZlcmVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9N
ZWRpYUNvbnRyb2xSb290RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVk
aWFDb250cm9sUm9vdEVsZW1lbnQuaAppbmRleCBhMGIwOWQ4NzQ1YjdhYzYxYTdkNTk2ZDQxYTIz
ODk2NmI2MWY0YjRiLi4wNjczOWJlYTVhZWM4NjlkYTA3YzI3NGFmYzhkMWFhNWNjNDIwYmE5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RF
bGVtZW50LmgKQEAgLTQyLDcgKzQyLDkgQEAgY2xhc3MgTWVkaWFDb250cm9sUGxheUJ1dHRvbkVs
ZW1lbnQ7CiBjbGFzcyBNZWRpYUNvbnRyb2xTZWVrQnV0dG9uRWxlbWVudDsKIGNsYXNzIE1lZGlh
Q29udHJvbFJld2luZEJ1dHRvbkVsZW1lbnQ7CiBjbGFzcyBNZWRpYUNvbnRyb2xSZXR1cm5Ub1Jl
YWx0aW1lQnV0dG9uRWxlbWVudDsKK2NsYXNzIE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zQ29u
dGFpbmVyRWxlbWVudDsKIGNsYXNzIE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0
dG9uRWxlbWVudDsKK2NsYXNzIE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zVHJhY2tMaXN0RWxl
bWVudDsKIGNsYXNzIE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ7CiBjbGFz
cyBNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ7CiBjbGFzcyBNZWRpYUNvbnRyb2xUaW1lUmVt
YWluaW5nRGlzcGxheUVsZW1lbnQ7CkBAIC0xMDMsNiArMTA1LDggQEAgcHVibGljOgogICAgIHZv
aWQgdXBkYXRlVGltZURpc3BsYXkoKTsKICAgICB2b2lkIHVwZGF0ZVN0YXR1c0Rpc3BsYXkoKTsK
IAorICAgIHZvaWQgdG9nZ2xlQ2xvc2VkQ2FwdGlvblRyYWNrTGlzdCgpOworCiAjaWYgRU5BQkxF
KFZJREVPX1RSQUNLKQogICAgIHZvaWQgY3JlYXRlVGV4dFRyYWNrRGlzcGxheSgpOwogICAgIHZv
aWQgc2hvd1RleHRUcmFja0Rpc3BsYXkoKTsKQEAgLTE0MSw2ICsxNDUsOCBAQCBwcml2YXRlOgog
ICAgIE1lZGlhQ29udHJvbFNlZWtCYWNrQnV0dG9uRWxlbWVudCogbV9zZWVrQmFja0J1dHRvbjsK
ICAgICBNZWRpYUNvbnRyb2xTZWVrRm9yd2FyZEJ1dHRvbkVsZW1lbnQqIG1fc2Vla0ZvcndhcmRC
dXR0b247CiAgICAgTWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50
KiBtX3RvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uOworICAgIE1lZGlhQ29udHJvbENsb3NlZENh
cHRpb25zVHJhY2tMaXN0RWxlbWVudCogbV9jbG9zZWRDYXB0aW9uc1RyYWNrTGlzdDsKKyAgICBN
ZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc0NvbnRhaW5lckVsZW1lbnQqIG1fY2xvc2VkQ2FwdGlv
bnNDb250YWluZXI7CiAgICAgTWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9uRWxlbWVudCogbV9w
YW5lbE11dGVCdXR0b247CiAgICAgTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyRWxlbWVudCogbV92
b2x1bWVTbGlkZXI7CiAgICAgTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbkVsZW1l
bnQqIG1fdm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0uY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bS5jcHAK
aW5kZXggNmIzOTEzYmI2ZTUyM2FmOWRmNzI2ODMxZWI4NjA2YTM0MDY4OTRjYS4uNjBhNzhhNDg5
Mjg2ODE5OGZiOGNmNGQzYjc0OGM2NTQyYzdkOGUzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1
bS5jcHAKQEAgLTE2Niw3ICsxNjYsNyBAQCBib29sIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hy
b21pdW06OmluaXRpYWxpemVDb250cm9scyhEb2N1bWVudCogZG9jdW1lbnQpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAogICAgIGlmIChkb2N1bWVudC0+cGFnZSgpLT50aGVtZSgpLT5zdXBwb3J0
c0Nsb3NlZENhcHRpb25pbmcoKSkgewotICAgICAgICBSZWZQdHI8TWVkaWFDb250cm9sVG9nZ2xl
Q2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50PiB0b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbiA9
IE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRv
Y3VtZW50KTsKKyAgICAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25z
QnV0dG9uRWxlbWVudD4gdG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24gPSBNZWRpYUNvbnRyb2xU
b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgdGhpcyk7
CiAgICAgICAgIG1fdG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24gPSB0b2dnbGVDbG9zZWRDYXB0
aW9uc0J1dHRvbi5nZXQoKTsKICAgICAgICAgcGFuZWwtPmFwcGVuZENoaWxkKHRvZ2dsZUNsb3Nl
ZENhcHRpb25zQnV0dG9uLnJlbGVhc2UoKSwgZWMsIHRydWUpOwogICAgICAgICBpZiAoZWMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzLmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzLmgKaW5kZXggMjg5MDhhOWEx
MDdlNDU3MDM5Mjg2ODMyMDMzZGJhMjhkMDM3YjYzNi4uY2Y4NzEwMDBmY2Q0ZTRiMWM2NDAwZjU1
YTllNGYzNDNlNWFmYzliYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
TWVkaWFDb250cm9scy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29u
dHJvbHMuaApAQCAtNzAsNiArNzAsOCBAQCBjbGFzcyBNZWRpYUNvbnRyb2xzIDogcHVibGljIEhU
TUxEaXZFbGVtZW50IHsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlVGltZURpc3BsYXkoKSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVN0YXR1c0Rpc3BsYXkoKSA9IDA7CiAKKyAgICB2aXJ0
dWFsIHZvaWQgdG9nZ2xlQ2xvc2VkQ2FwdGlvblRyYWNrTGlzdCgpID0gMDsKKwogICAgIHZpcnR1
YWwgYm9vbCBzaG91bGRIaWRlQ29udHJvbHMoKSA9IDA7CiAKICNpZiBFTkFCTEUoVklERU9fVFJB
Q0spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MYW5ndWFnZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MYW5ndWFnZS5jcHAKaW5kZXggZGJhM2E4OWZiYmMxMzdj
NThmY2NhZTkzOGI0YWYxY2E0OGUxZDZjZC4uZTI4ZTc2ZTEwNzJiMjA4ZDFiZGExNTIzM2VkYzc3
NDcyMTg2YTdkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGFuZ3VhZ2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xhbmd1YWdlLmNwcApAQCAtMjcsOCAr
MjcsMTMgQEAKICNpbmNsdWRlICJMYW5ndWFnZS5oIgogCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAu
aD4KKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CiAKKyNpZiBQTEFURk9STShNQUMpCisjaW5jbHVkZSA8Q29yZUZvdW5kYXRpb24vQ29y
ZUZvdW5kYXRpb24uaD4KKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHR5cGVkZWYg
SGFzaE1hcDx2b2lkKiwgTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlckZ1bmN0aW9uPiBPYnNlcnZlck1h
cDsKQEAgLTE0Miw1ICsxNDcsMTQgQEAgU3RyaW5nIHByZWZlcnJlZExhbmd1YWdlRnJvbUxpc3Qo
Y29uc3QgVmVjdG9yPFN0cmluZz4mIGxhbmd1YWdlTGlzdCkKIAogICAgIHJldHVybiBlbXB0eVN0
cmluZygpOwogfQotICAgIAorCitTdHJpbmcgZGlzcGxheU5hbWVGb3JMYW5ndWFnZUxvY2FsZShj
b25zdCBTdHJpbmcmIGxvY2FsZU5hbWUpCit7CisjaWYgUExBVEZPUk0oTUFDKQorICAgIGlmICgh
bG9jYWxlTmFtZS5pc051bGwoKSAmJiAhbG9jYWxlTmFtZS5pc0VtcHR5KCkpCisgICAgICAgIHJl
dHVybiBDRkxvY2FsZUNvcHlEaXNwbGF5TmFtZUZvclByb3BlcnR5VmFsdWUoQ0ZMb2NhbGVDb3B5
Q3VycmVudCgpLCBrQ0ZMb2NhbGVJZGVudGlmaWVyLCBsb2NhbGVOYW1lLmNyZWF0ZUNGU3RyaW5n
KCkuZ2V0KCkpOworI2VuZGlmCisgICAgcmV0dXJuIGxvY2FsZU5hbWU7Cit9CisKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xhbmd1YWdlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9MYW5ndWFnZS5oCmluZGV4IDQxMTYxNWM5ZTljNjgxZTRmMTcwZTE2YjBkZjE3
M2Y3NmRmNmQ2MDYuLjI5ZjFjYThhZTU0MTE3OTZlYjI2NDJiZWRjYTc4ZjBlZGE0YjFjYTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xhbmd1YWdlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vTGFuZ3VhZ2UuaApAQCAtNDMsNiArNDMsOCBAQCB2b2lkIHJlbW92
ZUxhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXIodm9pZCogY29udGV4dCk7CiAKIFZlY3RvcjxTdHJpbmc+
IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcygpOwogCitTdHJpbmcgZGlzcGxheU5hbWVG
b3JMYW5ndWFnZUxvY2FsZShjb25zdCBTdHJpbmcmKTsKKwogLy8gQ2FsbGVkIGZyb20gcGxhdGZv
cm0gc3BlY2lmaWMgY29kZSB3aGVuIHRoZSB1c2VyJ3MgcHJlZmVycmVkIGxhbmd1YWdlKHMpIGNo
YW5nZS4KIHZvaWQgbGFuZ3VhZ2VEaWRDaGFuZ2UoKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173390</attachid>
            <date>2012-11-09 16:08:15 -0800</date>
            <delta_ts>2012-11-09 16:39:41 -0800</delta_ts>
            <desc>Patch for build test</desc>
            <filename>bug-101669-20121109160622.patch</filename>
            <type>text/plain</type>
            <size>34261</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzNjI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWFkNzA0NzZkNDIwMmU5
Mzc3MzRiOGQ1MmMyMmY1NzZiMDk0ZjNkNy4uM2FmNGZjYjRjOGUzNTJmZDQ5Nzg0ZGIyNmY3NTg3
ZWNkMGMwZmY2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDEyLTExLTA5ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IGxpc3Qgb2YgdHJh
Y2tzIGluIGNhcHRpb24gbWVkaWEgY29udHJvbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTY2OQorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMg
Q2FybHNvbi4KKworICAgICAgICBBZGQgc29tZSBuZXcgZWxlbWVudHMgdG8gdGhlIG1lZGlhIGNv
bnRyb2wgc2hhZG93IERPTSB0aGF0IGRpc3BsYXkgdGhlIGxpc3Qgb2YgYXZhaWxhYmxlCisgICAg
ICAgIHRyYWNrcyBvbiBhbiBhdWRpby92aWRlbyBlbGVtZW50LiBUaGUgVUkgaXMgaGlkZGVuIGJ5
IGRlZmF1bHQgZXZlcnl3aGVyZSBidXQgb24gTWFjLAorICAgICAgICB3aGVyZSBpdCBpcyBnaXZl
biBhIHZlcnkgYmFzaWMgZGVzaWduLiBBdCB0aGUgbW9tZW50IG9ubHkgdGhlIGxpc3Qgb2YgYXZh
aWxhYmxlIHRyYWNrcworICAgICAgICBhcmUgZGlzcGxheWVkOyBUaGUgZm9sbG93dXAgYnVnIHdp
bGwgbWFrZSB0aGUgVUkgYWN0aXZlOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTAxNjcwCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIC0gdGhpcyBkb2Vzbid0IGV4cG9z
ZSBhbnkgdGVzdGFibGUgc3VyZmFjZS4KKworICAgICAgICAqIGNzcy9tZWRpYUNvbnRyb2xzLmNz
czogQWRkZWQgZGVmYXVsdCBydWxlcyB0aGF0IGhpZGUgdGhlIG5ldyBlbGVtZW50cy4KKyAgICAg
ICAgKiBjc3MvbWVkaWFDb250cm9sc1F1aWNrVGltZS5jc3M6IFNwZWNpZmljIHJ1bGVzIHRoYXQg
Z2l2ZSBhIGJhc2ljIHJlbmRlcmluZyBvZiB0aGUgbmV3IHRyYWNrIGxpc3QuCisgICAgICAgICog
aHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFDb250cm9sRWxlbWVudDo6aXNTaG93aW5nKTogVGVzdHMgZm9yIHRoZSB2aXNpYmlsaXR5
IG9mIGEgY29udHJvbC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbENsb3NlZENhcHRp
b25zQ29udGFpbmVyRWxlbWVudDo6TWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNDb250YWluZXJF
bGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zQ29u
dGFpbmVyRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbENs
b3NlZENhcHRpb25zQ29udGFpbmVyRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50OjpN
ZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50Ojpj
cmVhdGUpOiBOb3cgdGFrZXMgYSByZWZlcmVuY2UgdG8gdGhlIG1lZGlhIGNvbnRyb2xzIGFzIGEg
cGFyYW1ldGVyLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2Fw
dGlvbnNCdXR0b25FbGVtZW50Ojp1cGRhdGVEaXNwbGF5VHlwZSk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ6OmRlZmF1bHRF
dmVudEhhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sVG9nZ2xlQ2xvc2Vk
Q2FwdGlvbnNCdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQ6Ok1lZGlhQ29udHJv
bENsb3NlZENhcHRpb25zVHJhY2tMaXN0RWxlbWVudCk6IE5ldyBlbGVtZW50IGZvciBob2xkaW5n
IGEgbGlzdCBvZiB0cmFja3MgdG8gZGlzcGxheS4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRp
YUNvbnRyb2xFbGVtZW50cy5oOgorICAgICAgICAoTWVkaWFDb250cm9sRWxlbWVudCk6CisgICAg
ICAgIChNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQpOgorICAg
ICAgICAoTWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNDb250YWluZXJFbGVtZW50KToKKyAgICAg
ICAgKE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zVHJhY2tMaXN0RWxlbWVudCk6IEV4YW1pbmVz
IHRoZSBtZWRpYSBlbGVtZW50IHRvIGJ1aWxkIGEgc2hhZG93IERPTSB0aGF0IGxpc3RzIGFsbCB0
aGUgdHJhY2tzIGF2YWlsYWJsZS4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xS
b290RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVu
dDo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250
cm9sUm9vdEVsZW1lbnQ6OmNyZWF0ZSk6IE5ldyB0cmFjayBjb250YWluZXIgYW5kIGxpc3QgZWxl
bWVudHMgY3JlYXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50
OjpzZXRNZWRpYUNvbnRyb2xsZXIpOiBIb29rIHVwIHRoZSBuZXcgZWxlbWVudHMgdG8gdGhlIGNv
bnRyb2xsZXIuLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnQ6Omhp
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnQ6Om1ha2VUcmFu
c3BhcmVudCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVudDo6cmVz
ZXQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnQ6OnJlcG9ydGVk
RXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnQ6OnRvZ2ds
ZUNsb3NlZENhcHRpb25UcmFja0xpc3QpOiBTaG93cyBvciBoaWRlcyB0aGUgcG9wdXAgd2l0aCB0
aGUgbGlzdCBvZiB0cmFja3MuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBodG1sL3No
YWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChNZWRpYUNvbnRyb2xSb290RWxlbWVudCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvTWVk
aWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjppbml0aWFsaXplQ29udHJvbHMpOiBQYXNzIGlu
IHRoZSBjb250cm9scyBhcyBhIHBhcmFtZXRlci4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRp
YUNvbnRyb2xzLmg6CisgICAgICAgIChNZWRpYUNvbnRyb2xzKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9MYW5ndWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkaXNwbGF5TmFtZUZvckxhbmd1YWdl
TG9jYWxlKTogTmV3IGZ1bmN0aW9uIHRvIHJldHVybiBhIGh1bWFuLXJlYWRhYmxlIG5hbWUgZm9y
IGEgbG9jYWxlLCBnaXZlbiB0aGUgaWRlbnRpZmllciBpbnB1dC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9MYW5ndWFnZS5oOgorICAgICAgICAoV2ViQ29yZSk6CisKIDIwMTItMTEtMDYgIE1pY2hhZWwg
U2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+CiAKICAgICAgICAgcXVvdGVDU1NTdHJpbmcoKSBh
bHdheXMgY3JlYXRlcyBhIDE2IGJpdCBzdHJpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9tZWRpYUNvbnRyb2xzLmNzcyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xz
LmNzcwppbmRleCA2ZGYwMzQwMmQzYTRjOWU3OGFiZjhmNzdlYzRhYjEzYmZiYmY4NGViLi4wMGVm
Y2JiYTY1ZDQ0YWEwYjMxNjkyNjAxNjBhZDYwMTkzNTQyMDEwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvbWVkaWFDb250cm9scy5jc3MKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL21l
ZGlhQ29udHJvbHMuY3NzCkBAIC0xODcsNiArMTg3LDE0IEBAIGF1ZGlvOjotd2Via2l0LW1lZGlh
LWNvbnRyb2xzLXRvZ2dsZS1jbG9zZWQtY2FwdGlvbnMtYnV0dG9uLCB2aWRlbzo6LXdlYmtpdC1t
ZWRpCiAgICAgY29sb3I6IGluaGVyaXQ7CiB9CiAKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRy
b2xzLWNsb3NlZC1jYXB0aW9ucy1jb250YWluZXIsIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRy
b2xzLWNsb3NlZC1jYXB0aW9ucy1jb250YWluZXIgeworICAgIGRpc3BsYXk6IG5vbmU7Cit9CisK
K2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWNsb3NlZC1jYXB0aW9ucy10cmFjay1saXN0
LCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1jbG9zZWQtY2FwdGlvbnMtdHJhY2stbGlz
dCB7CisgICAgZGlzcGxheTogbm9uZTsKK30KKwogYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJv
bHMtdm9sdW1lLXNsaWRlci1tdXRlLWJ1dHRvbiwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJv
bHMtdm9sdW1lLXNsaWRlci1tdXRlLWJ1dHRvbiB7CiAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBt
ZWRpYS12b2x1bWUtc2xpZGVyLW11dGUtYnV0dG9uOwogICAgIGRpc3BsYXk6IG5vbmU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9sc1F1aWNrVGltZS5jc3MgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9sc1F1aWNrVGltZS5jc3MKaW5kZXggMmViOTA4
YjAwOWQ2YmNjNmQxOTc1Y2M5ZGUzNmE0ZTFiOTczNWUwMi4uMDA3NWUyY2ZiOWMwMDJhY2VkODBh
ZWZmMTEyMjQ5NjBlY2IxOWRmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL21lZGlh
Q29udHJvbHNRdWlja1RpbWUuY3NzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9tZWRpYUNvbnRy
b2xzUXVpY2tUaW1lLmNzcwpAQCAtMTg4LDE3ICsxODgsNiBAQCBhdWRpbzo6LXdlYmtpdC1tZWRp
YS1jb250cm9scy1zdGF0dXMtZGlzcGxheSwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMt
c3RhdAogICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKIH0KIAotYXVkaW86Oi13ZWJraXQtbWVk
aWEtY29udHJvbHMtdG9nZ2xlLWNsb3NlZC1jYXB0aW9ucy1idXR0b24sIHZpZGVvOjotd2Via2l0
LW1lZGlhLWNvbnRyb2xzLXRvZ2dsZS1jbG9zZWQtY2FwdGlvbnMtYnV0dG9uIHsKLSAgICAtd2Vi
a2l0LWFwcGVhcmFuY2U6IG1lZGlhLXRvZ2dsZS1jbG9zZWQtY2FwdGlvbnMtYnV0dG9uOwotICAg
IGRpc3BsYXk6IC13ZWJraXQtYm94OwotICAgIHdpZHRoOiAxNnB4OwotICAgIGhlaWdodDogMTZw
eDsKLSAgICBtYXJnaW4tbGVmdDogN3B4OwotICAgIG1hcmdpbi1yaWdodDogN3B4OwotICAgIC13
ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6IDM7IC8qIGJldHdlZW4gbXV0ZSBhbmQgZnVsbHNjcmVl
biAqLwotICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50OwotfQotCiBhdWRpbzo6LXdlYmtpdC1t
ZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyLWNvbnRhaW5lciwgdmlkZW86Oi13ZWJraXQtbWVk
aWEtY29udHJvbHMtdm9sdW1lLXNsaWRlci1jb250YWluZXIgewogICAgIC13ZWJraXQtYXBwZWFy
YW5jZTogbWVkaWEtdm9sdW1lLXNsaWRlci1jb250YWluZXI7CiAgICAgcG9zaXRpb246IGFic29s
dXRlOwpAQCAtMjM5LDMgKzIyOCwxMDQgQEAgYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMt
dm9sdW1lLXNsaWRlci1tdXRlLWJ1dHRvbiwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY28KIAogICAg
IGJvcmRlcjogbm9uZSAhaW1wb3J0YW50OwogfQorCithdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250
cm9scy10b2dnbGUtY2xvc2VkLWNhcHRpb25zLWJ1dHRvbiwgdmlkZW86Oi13ZWJraXQtbWVkaWEt
Y29udHJvbHMtdG9nZ2xlLWNsb3NlZC1jYXB0aW9ucy1idXR0b24geworICAgIC13ZWJraXQtYXBw
ZWFyYW5jZTogbWVkaWEtdG9nZ2xlLWNsb3NlZC1jYXB0aW9ucy1idXR0b247CisgICAgZGlzcGxh
eTogLXdlYmtpdC1ib3g7CisgICAgd2lkdGg6IDE2cHg7CisgICAgaGVpZ2h0OiAxNnB4OworICAg
IG1hcmdpbi1sZWZ0OiA3cHg7CisgICAgbWFyZ2luLXJpZ2h0OiA3cHg7CisgICAgLXdlYmtpdC1i
b3gtb3JkaW5hbC1ncm91cDogMzsgLyogYmV0d2VlbiBtdXRlIGFuZCBmdWxsc2NyZWVuICovCisg
ICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNv
bnRyb2xzLWNsb3NlZC1jYXB0aW9ucy1jb250YWluZXIsIHZpZGVvOjotd2Via2l0LW1lZGlhLWNv
bnRyb2xzLWNsb3NlZC1jYXB0aW9ucy1jb250YWluZXIgeworICAgIC13ZWJraXQtYXBwZWFyYW5j
ZTogbWVkaWEtY2xvc2VkLWNhcHRpb25zLWNvbnRhaW5lcjsKKyAgICBwb3NpdGlvbjogYWJzb2x1
dGU7CisgICAgZGlzcGxheTogYmxvY2s7CisgICAgYm90dG9tOiAyOXB4OworICAgIG1hcmdpbi1s
ZWZ0OiAtMTU1cHg7CisgICAgei1pbmRleDogMjsKKyAgICB3aWR0aDogMjAwcHg7CisgICAgaGVp
Z2h0OiAyNTBweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODUpOwor
ICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYig2NiwgNjYsIDY2KTsKKyAgICBib3JkZXItcmFkaXVz
OiA4cHg7Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWNsb3NlZC1jYXB0aW9u
cy10cmFjay1saXN0LCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1jbG9zZWQtY2FwdGlv
bnMtdHJhY2stbGlzdCB7CisgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZWRpYS1jbG9zZWQtY2Fw
dGlvbnMtdHJhY2stbGlzdDsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgZGlzcGxheTog
YmxvY2s7CisgICAgdG9wOiA1cHg7CisgICAgbGVmdDogNXB4OworICAgIHdpZHRoOiAxOTBweDsK
KyAgICBoZWlnaHQ6IDI0MHB4OworICAgIG92ZXJmbG93LXg6IGhpZGRlbjsKKyAgICBvdmVyZmxv
dy15OiBzY3JvbGw7CisgICAgdGV4dC1hbGlnbjogbGVmdDsKKyAgICBmb250LWZhbWlseTogIkhl
bHZldGljYSBCb2xkIiwgIkhlbHZldGljYSI7CisgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CisgICAg
Zm9udC1zaXplOiA5cHQ7Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWNsb3Nl
ZC1jYXB0aW9ucy10cmFjay1saXN0IGgzLAordmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMt
Y2xvc2VkLWNhcHRpb25zLXRyYWNrLWxpc3QgaDMgeworICAgIG1hcmdpbjogMDsKKyAgICBjb2xv
cjogI2JiYjsKKyAgICB0ZXh0LXNoYWRvdzogMCAxcHggMCBibGFjazsKKyAgICBwYWRkaW5nLWxl
ZnQ6IDRweDsKKyAgICBwYWRkaW5nLXRvcDogNHB4OworICAgIHBhZGRpbmctYm90dG9tOiA0cHg7
CisgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM1NTU7CisgICAgZm9udC1zaXplOiA5cHQ7
Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWNsb3NlZC1jYXB0aW9ucy10cmFj
ay1saXN0IHVsLAordmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtY2xvc2VkLWNhcHRpb25z
LXRyYWNrLWxpc3QgdWwgeworICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsKKyAgICBtYXJnaW46
IDAgMCA4cHggMDsKKyAgICBwYWRkaW5nOiAwOworfQorCithdWRpbzo6LXdlYmtpdC1tZWRpYS1j
b250cm9scy1jbG9zZWQtY2FwdGlvbnMtdHJhY2stbGlzdCBsaSwKK3ZpZGVvOjotd2Via2l0LW1l
ZGlhLWNvbnRyb2xzLWNsb3NlZC1jYXB0aW9ucy10cmFjay1saXN0IGxpIHsKKyAgICBjb2xvcjog
d2hpdGU7CisgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDAgYmxhY2s7CisgICAgbWFyZ2luOiAwOwor
ICAgIHBhZGRpbmctbGVmdDogMjRweDsKKyAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4OworICAgIHBh
ZGRpbmctdG9wOiAwLjM1ZW07CisgICAgcGFkZGluZy1ib3R0b206IDAuM2VtOworICAgIHdpZHRo
OiAxOTBweDsKKyAgICBoZWlnaHQ6IDIuMGVtOworICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xp
ZCAjNTU1OworICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CisgICAgb3ZlcmZsb3c6IGhpZGRl
bjsKKyAgICB3aGl0ZS1zcGFjZTogbm93cmFwOworICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lz
OworICAgIC13ZWJraXQtdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7Cit9CisKK2F1ZGlvOjotd2Vi
a2l0LW1lZGlhLWNvbnRyb2xzLWNsb3NlZC1jYXB0aW9ucy10cmFjay1saXN0IGxpOmhvdmVyLAor
dmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtY2xvc2VkLWNhcHRpb25zLXRyYWNrLWxpc3Qg
bGk6aG92ZXIgeworICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFy
LCBsZWZ0IHRvcCwgbGVmdCBib3R0b20sIGNvbG9yLXN0b3AoMCwgcmdiKDc5LCAxMTIsIDI0NSkp
LCBjb2xvci1zdG9wKDEsIHJnYigyOCwgNjYsIDI0NSkpKTsKKyAgICBib3JkZXItYm90dG9tOiAx
cHggc29saWQgcmdiKDI4LCA2NiwgMjQ1KTsKK30KKworYXVkaW86Oi13ZWJraXQtbWVkaWEtY29u
dHJvbHMtY2xvc2VkLWNhcHRpb25zLXRyYWNrLWxpc3QgbGkuc2VsZWN0ZWQsCit2aWRlbzo6LXdl
YmtpdC1tZWRpYS1jb250cm9scy1jbG9zZWQtY2FwdGlvbnMtdHJhY2stbGlzdCBsaS5zZWxlY3Rl
ZCB7CisgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZC
T1J3MEtHZ29BQUFBTlNVaEVVZ0FBQURZQUFBQTlDQVlBQUFEbWdwb2VBQUFBR1hSRldIUlRiMlow
ZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlKcFZGaDBXRTFNT21OdmJTNWha
RzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1F
MXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQw
aVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1
TUMxak1EWXdJRFl4TGpFek5EYzNOeXdnTWpBeE1DOHdNaTh4TWkweE56b3pNam93TUNBZ0lDQWdJ
Q0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5
OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEds
dmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1
WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxM
bU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpH
OWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21W
aGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVOVE5TQk5ZV05wYm5SdmMyZ2lJSGh0
Y0UxTk9rbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZSVEJFUWtJNVF6Z3lNVGM0TVRGRk1rSkVS
RGRCUmpJM05FUXdOelpFUmpBaUlIaHRjRTFOT2tSdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNlJU
QkVRa0k1UXpreU1UYzRNVEZGTWtKRVJEZEJSakkzTkVRd056WkVSakFpUGlBOGVHMXdUVTA2UkdW
eWFYWmxaRVp5YjIwZ2MzUlNaV1k2YVc1emRHRnVZMlZKUkQwaWVHMXdMbWxwWkRwRk1FUkNRamxE
TmpJeE56Z3hNVVV5UWtSRU4wRkdNamMwUkRBM05rUkdNQ0lnYzNSU1pXWTZaRzlqZFcxbGJuUkpS
RDBpZUcxd0xtUnBaRHBGTUVSQ1FqbEROekl4TnpneE1VVXlRa1JFTjBGR01qYzBSREEzTmtSR01D
SXZQaUE4TDNKa1pqcEVaWE5qY21sd2RHbHZiajRnUEM5eVpHWTZVa1JHUGlBOEwzZzZlRzF3YldW
MFlUNGdQRDk0Y0dGamEyVjBJR1Z1WkQwaWNpSS9QcXBXejBVQUFBSFBTVVJCVkhqYTdKcUJiWVF3
REVYZERSZ2hJN0JCR1NFalpBUkd5QWFNd0FnM0F0Y0pNa0p1ZzR4QVV5bXFUZ2dWTzF5SmJaMGxD
eUdkMEQzWi9QdzRmSUNBV05mVjVJdk4rWm16ejJrMlA3bVg2MWZPeDlNOVg2Q2N5MHFMT1dmSEdj
cXQ5Smk0VjZvR3lyMmhHa0QxR3FHNm5GRVZWQUdiTkVJTjZxQUtXS0NzVTFLZ1JnTFVJZ1hxUnpB
U0VpcXlkaFFiTUUrb1ZpOEZ5aENxTllLVUtHWlZ6M3YxVkMxTXBMSmxVVmV0VVdPMUFrZ0tnblVh
SkVGaDE2MVpXclc4T3NFb1lKaHFlV2xRRGxtdFRocFkxRml0UVd1MWJocVZFTHNnaTFOQ3I2NWFC
TkVZcm1pYmVmTm5RckZCcHVKNXR1bTJwRmdkak9PZUtNcUZGQTMzbjFDVVFXWEF3SlhuSGtvOEIx
ZEFna05Pbi93Vkx6a1Zibm5Cck5CY3BXQlVPSDlpN2JweEhvbnRqc1dRbTBuTGVTYXhPOGhFaUZG
c3ViQ0dtcFpFbm5INWxtQ1U4Zk52U3lMYnNLMHZKQjd2TE1oSzh4aUFFc1hFTjNNYWxYRFVieTNh
T0kxS2M1eGVBTVp2ZTFMNW1ZS01vNkNUTFJtQmE1eHNTZDRIRE1Relkxa3pqWXFXRkhNb1RtMUpC
MUtDdUhDTEc0UUdkdnV1Qzcya0JZbHg0T1lUU0kyRDdjME1rdU9QdGMyQzlOZ1JrZ1FhWWtkSUp0
QVNtNUYycnduTXNIZnlKK1YvMGdqV2NXakRid0VHQU45L05YOEg3Vi9GQUFBQUFFbEZUa1N1UW1D
QycpOworICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7CisgICAgYmFja2dyb3VuZC1w
b3NpdGlvbjogMC41ZW0gMC41ZW07CisgICAgYmFja2dyb3VuZC1zaXplOiAxZW0gMWVtOworfQor
CithdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1jbG9zZWQtY2FwdGlvbnMtdHJhY2stbGlz
dCBsaS5zZWxlY3RlZDpob3ZlciwKK3ZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWNsb3Nl
ZC1jYXB0aW9ucy10cmFjay1saXN0IGxpLnNlbGVjdGVkOmhvdmVyIHsKKyAgICBiYWNrZ3JvdW5k
LWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVn
QUFBRFlBQUFBOUNBWUFBQURtZ3BvZUFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldG
blpWSmxZV1I1Y2NsbFBBQUFBeUpwVkZoMFdFMU1PbU52YlM1aFpHOWlaUzU0YlhBQUFBQUFBRHcv
ZUhCaFkydGxkQ0JpWldkcGJqMGk3N3UvSWlCcFpEMGlWelZOTUUxd1EyVm9hVWg2Y21WVGVrNVVZ
M3ByWXpsa0lqOCtJRHg0T25odGNHMWxkR0VnZUcxc2JuTTZlRDBpWVdSdlltVTZibk02YldWMFlT
OGlJSGc2ZUcxd2RHczlJa0ZrYjJKbElGaE5VQ0JEYjNKbElEVXVNQzFqTURZd0lEWXhMakV6TkRj
M055d2dNakF4TUM4d01pOHhNaTB4Tnpvek1qb3dNQ0FnSUNBZ0lDQWdJajRnUEhKa1pqcFNSRVln
ZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmta
aTF6ZVc1MFlYZ3Ribk1qSWo0Z1BISmtaanBFWlhOamNtbHdkR2x2YmlCeVpHWTZZV0p2ZFhROUlp
SWdlRzFzYm5NNmVHMXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2SWlC
NGJXeHVjenA0YlhCTlRUMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMMjF0
THlJZ2VHMXNibk02YzNSU1pXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVN
Qzl6Vkhsd1pTOVNaWE52ZFhKalpWSmxaaU1pSUhodGNEcERjbVZoZEc5eVZHOXZiRDBpUVdSdllt
VWdVR2h2ZEc5emFHOXdJRU5UTlNCTllXTnBiblJ2YzJnaUlIaHRjRTFOT2tsdWMzUmhibU5sU1VR
OUluaHRjQzVwYVdRNlJUQkVRa0k1UXpneU1UYzRNVEZGTWtKRVJEZEJSakkzTkVRd056WkVSakFp
SUhodGNFMU5Pa1J2WTNWdFpXNTBTVVE5SW5odGNDNWthV1E2UlRCRVFrSTVRemt5TVRjNE1URkZN
a0pFUkRkQlJqSTNORVF3TnpaRVJqQWlQaUE4ZUcxd1RVMDZSR1Z5YVhabFpFWnliMjBnYzNSU1pX
WTZhVzV6ZEdGdVkyVkpSRDBpZUcxd0xtbHBaRHBGTUVSQ1FqbEROakl4TnpneE1VVXlRa1JFTjBG
R01qYzBSREEzTmtSR01DSWdjM1JTWldZNlpHOWpkVzFsYm5SSlJEMGllRzF3TG1ScFpEcEZNRVJD
UWpsRE56SXhOemd4TVVVeVFrUkVOMEZHTWpjMFJEQTNOa1JHTUNJdlBpQThMM0prWmpwRVpYTmpj
bWx3ZEdsdmJqNGdQQzl5WkdZNlVrUkdQaUE4TDNnNmVHMXdiV1YwWVQ0Z1BEOTRjR0ZqYTJWMElH
VnVaRDBpY2lJL1BxcFd6MFVBQUFIUFNVUkJWSGphN0pxQmJZUXdERVhkRFJnaEk3QkJHU0VqWkFS
R3lBYU13QWczQXRjSk1rSnVnNHhBVXltcVRnZ1ZPMXlKYlowbEN5R2QwRDNaL1B3NGZJQ0FXTmZW
NUl2TitabXp6MmsyUDdtWDYxZk94OU05WDZDY3kwcUxPV2ZIR2NxdDlKaTRWNm9HeXIyaEdrRDFH
cUc2bkZFVlZBR2JORUlONnFBS1dLQ3NVMUtnUmdMVUlnWHFSekFTRWlxeWRoUWJNRStvVmk4Rnlo
Q3FOWUtVS0daVnozdjFWQzFNcExKbFVWZXRVV08xQWtnS2duVWFKRUZoMTYxWldyVzhPc0VvWUpo
cWVXbFFEbG10VGhwWTFGaXRRV3UxYmhxVkVMc2dpMU5DcjY1YUJORVlybWliZWZOblFyRkJwdUo1
dHVtMnBGZ2RqT09lS01xRkZBMzNuMUNVUVdYQXdKWG5Ia284QjFkQWdrTk9uL3dWTHprVmJubkJy
TkJjcFdCVU9IOWk3YnB4SG9udGpzV1FtMG5MZVNheE84aEVpRkZzdWJDR21wWkVubkg1bG1DVThm
TnZTeUxic0swdkpCN3ZMTWhLOHhpQUVzWEVOM01hbFhEVWJ5M2FPSTFLYzV4ZUFNWnZlMUw1bVlL
TW82Q1RMUm1CYTV4c1NkNEhETVF6WTFrempZcVdGSE1vVG0xSkIxS0N1SENMRzRRR2R2dXVDNzJr
QllseDRPWVRTSTJEN2MwTWt1T1B0YzJDOU5nUmtnUWFZa2RJSnRBU201RjJyd25Nc0hmeUorVi8w
Z2pXY1dqRGJ3RUdBTjkvTlg4SDdWL0ZBQUFBQUVsRlRrU3VRbUNDJyksIC13ZWJraXQtZ3JhZGll
bnQobGluZWFyLCBsZWZ0IHRvcCwgbGVmdCBib3R0b20sIGNvbG9yLXN0b3AoMCwgcmdiKDc5LCAx
MTIsIDI0NSkpLCBjb2xvci1zdG9wKDEsIHJnYigyOCwgNjYsIDI0NSkpKTsKKyAgICBiYWNrZ3Jv
dW5kLXJlcGVhdDogbm8tcmVwZWF0LCByZXBlYXQ7CisgICAgYmFja2dyb3VuZC1wb3NpdGlvbjog
MC41ZW0gMC41ZW0sIHRvcCBsZWZ0OworICAgIGJhY2tncm91bmQtc2l6ZTogMWVtIDFlbSwgMTAw
JSAxMDAlOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFD
b250cm9sRWxlbWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250
cm9sRWxlbWVudHMuY3BwCmluZGV4IDkwNjQ2NjAxM2Y4YjNhOWRkNmIyOGJkNDYzN2IyZmMyNTIy
OTI5ZWMuLmQwNmU2NmE2YjYwZjU3MzBlOGQ3YTliODhlYmNmZGNhNjk2ODU4YzAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAK
QEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTFZpZGVvRWxlbWVudC5oIgorI2luY2x1ZGUg
Ikxhbmd1YWdlLmgiCiAjaW5jbHVkZSAiTGF5b3V0UmVwYWludGVyLmgiCiAjaW5jbHVkZSAiTG9j
YWxpemVkU3RyaW5ncy5oIgogI2luY2x1ZGUgIk1lZGlhQ29udHJvbFJvb3RFbGVtZW50LmgiCkBA
IC02Miw2ICs2Myw3IEBACiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTdHlsZVJl
c29sdmVyLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgorI2luY2x1ZGUgIlRleHRUcmFja0xpc3QuaCIK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xMTQsNiArMTE2LDE0IEBAIHZvaWQgTWVkaWFD
b250cm9sRWxlbWVudDo6aGlkZSgpCiAgICAgc2V0SW5saW5lU3R5bGVQcm9wZXJ0eShDU1NQcm9w
ZXJ0eURpc3BsYXksIENTU1ZhbHVlTm9uZSk7CiB9CiAKK2Jvb2wgTWVkaWFDb250cm9sRWxlbWVu
dDo6aXNTaG93aW5nKCkgY29uc3QKK3sKKyAgICBjb25zdCBTdHlsZVByb3BlcnR5U2V0KiBwcm9w
ZXJ0eVNldCA9IGlubGluZVN0eWxlKCk7CisgICAgLy8gRm9sbG93aW5nIHRoZSBjb2RlIGZyb20g
c2hvdygpIGFuZCBoaWRlKCkgYWJvdmUsIHdlIG9ubHkgaGF2ZQorICAgIC8vIHRvIGNoZWNrIGZv
ciB0aGUgcHJlc2Vuc2Ugb2YgaW5saW5lIGRpc3BsYXkuCisgICAgcmV0dXJuICghcHJvcGVydHlT
ZXQgfHwgIXByb3BlcnR5U2V0LT5nZXRQcm9wZXJ0eUNTU1ZhbHVlKENTU1Byb3BlcnR5RGlzcGxh
eSkpOworfQorCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIGlubGluZSBNZWRp
YUNvbnRyb2xQYW5lbEVsZW1lbnQ6Ok1lZGlhQ29udHJvbFBhbmVsRWxlbWVudChEb2N1bWVudCog
ZG9jdW1lbnQpCkBAIC04NTEsMjUgKzg2MSw1NiBAQCBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlh
Q29udHJvbFJldHVyblRvUmVhbHRpbWVCdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpCiAK
IC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotaW5saW5lIE1lZGlhQ29udHJvbFRv
Z2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudDo6TWVkaWFDb250cm9sVG9nZ2xlQ2xvc2Vk
Q2FwdGlvbnNCdXR0b25FbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCkKK2lubGluZSBNZWRpYUNv
bnRyb2xDbG9zZWRDYXB0aW9uc0NvbnRhaW5lckVsZW1lbnQ6Ok1lZGlhQ29udHJvbENsb3NlZENh
cHRpb25zQ29udGFpbmVyRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQpCisgICAgOiBNZWRpYUNv
bnRyb2xFbGVtZW50KGRvY3VtZW50KQoreworfQorCitQYXNzUmVmUHRyPE1lZGlhQ29udHJvbENs
b3NlZENhcHRpb25zQ29udGFpbmVyRWxlbWVudD4gTWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnND
b250YWluZXJFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIFJlZlB0
cjxNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc0NvbnRhaW5lckVsZW1lbnQ+IGVsZW1lbnQgPSBh
ZG9wdFJlZihuZXcgTWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNDb250YWluZXJFbGVtZW50KGRv
Y3VtZW50KSk7CisgICAgZWxlbWVudC0+aGlkZSgpOworICAgIHJldHVybiBlbGVtZW50LnJlbGVh
c2UoKTsKK30KKworY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9u
c0NvbnRhaW5lckVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKK3sKKyAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1j
bG9zZWQtY2FwdGlvbnMtY29udGFpbmVyIikpOworICAgIHJldHVybiBpZDsKK30KKworLy8gLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitpbmxpbmUgTWVkaWFDb250cm9sVG9nZ2xlQ2xv
c2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9u
c0J1dHRvbkVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBNZWRpYUNvbnRyb2xzKiBjb250cm9s
cykKICAgICA6IE1lZGlhQ29udHJvbElucHV0RWxlbWVudChkb2N1bWVudCwgTWVkaWFTaG93Q2xv
c2VkQ2FwdGlvbnNCdXR0b24pCisgICAgLCBtX2NvbnRyb2xzKGNvbnRyb2xzKQogewogfQogCi1Q
YXNzUmVmUHRyPE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudD4g
TWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50OjpjcmVhdGUoRG9j
dW1lbnQqIGRvY3VtZW50KQorUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0
aW9uc0J1dHRvbkVsZW1lbnQ+IE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9u
RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCwgTWVkaWFDb250cm9scyogY29udHJv
bHMpCiB7Ci0gICAgUmVmUHRyPE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9u
RWxlbWVudD4gYnV0dG9uID0gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENh
cHRpb25zQnV0dG9uRWxlbWVudChkb2N1bWVudCkpOworICAgIEFTU0VSVChjb250cm9scyk7CisK
KyAgICBSZWZQdHI8TWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50
PiBidXR0b24gPSBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNC
dXR0b25FbGVtZW50KGRvY3VtZW50LCBjb250cm9scykpOwogICAgIGJ1dHRvbi0+Y3JlYXRlU2hh
ZG93U3VidHJlZSgpOwogICAgIGJ1dHRvbi0+c2V0VHlwZSgiYnV0dG9uIik7CiAgICAgYnV0dG9u
LT5oaWRlKCk7CiAgICAgcmV0dXJuIGJ1dHRvbi5yZWxlYXNlKCk7CiB9CiAKK3ZvaWQgTWVkaWFD
b250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50Ojp1cGRhdGVEaXNwbGF5VHlw
ZSgpCit7CisgICAgc2V0RGlzcGxheVR5cGUobWVkaWFDb250cm9sbGVyKCktPmNsb3NlZENhcHRp
b25zVmlzaWJsZSgpID8gTWVkaWFIaWRlQ2xvc2VkQ2FwdGlvbnNCdXR0b24gOiBNZWRpYVNob3dD
bG9zZWRDYXB0aW9uc0J1dHRvbik7Cit9CisKIHZvaWQgTWVkaWFDb250cm9sVG9nZ2xlQ2xvc2Vk
Q2FwdGlvbnNCdXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkK
IHsKICAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkuY2xpY2tFdmVudCkgewor
ICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyBub3cgaW5jb3JyZWN0bHkgZG9pbmcgdHdvIHRoaW5n
cyBhdCBvbmNlOiBzaG93aW5nIHRoZSBsaXN0IG9mIGNhcHRpb25zIGFuZCB0b2dnbGluZyBkaXNw
bGF5LgorICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTAxNjcwCiAgICAgICAgIG1lZGlhQ29udHJvbGxlcigpLT5zZXRDbG9zZWRDYXB0aW9uc1Zpc2li
bGUoIW1lZGlhQ29udHJvbGxlcigpLT5jbG9zZWRDYXB0aW9uc1Zpc2libGUoKSk7CiAgICAgICAg
IHNldENoZWNrZWQobWVkaWFDb250cm9sbGVyKCktPmNsb3NlZENhcHRpb25zVmlzaWJsZSgpKTsK
KyAgICAgICAgbV9jb250cm9scy0+dG9nZ2xlQ2xvc2VkQ2FwdGlvblRyYWNrTGlzdCgpOwogICAg
ICAgICB1cGRhdGVEaXNwbGF5VHlwZSgpOwogICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRs
ZWQoKTsKICAgICB9CkBAIC04NzcsMTcgKzkxOCwxMTUgQEAgdm9pZCBNZWRpYUNvbnRyb2xUb2dn
bGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQq
IGUKICAgICBIVE1MSW5wdXRFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKGV2ZW50KTsKIH0K
IAotdm9pZCBNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ6OnVw
ZGF0ZURpc3BsYXlUeXBlKCkKK2NvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sVG9nZ2xl
Q2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0g
ICAgc2V0RGlzcGxheVR5cGUobWVkaWFDb250cm9sbGVyKCktPmNsb3NlZENhcHRpb25zVmlzaWJs
ZSgpID8gTWVkaWFIaWRlQ2xvc2VkQ2FwdGlvbnNCdXR0b24gOiBNZWRpYVNob3dDbG9zZWRDYXB0
aW9uc0J1dHRvbik7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAo
Ii13ZWJraXQtbWVkaWEtY29udHJvbHMtdG9nZ2xlLWNsb3NlZC1jYXB0aW9ucy1idXR0b24iKSk7
CisgICAgcmV0dXJuIGlkOwogfQogCi1jb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFRv
Z2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAor
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitpbmxpbmUgTWVkaWFDb250cm9sQ2xv
c2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVtZW50OjpNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc1Ry
YWNrTGlzdEVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KQorICAgIDogTWVkaWFDb250cm9sRWxl
bWVudChkb2N1bWVudCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywg
aWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy10b2dnbGUtY2xvc2VkLWNhcHRpb25zLWJ1dHRv
biIpKTsKK30KKworUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlz
dEVsZW1lbnQ+IE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zVHJhY2tMaXN0RWxlbWVudDo6Y3Jl
YXRlKERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICBSZWZQdHI8TWVkaWFDb250cm9sQ2xvc2Vk
Q2FwdGlvbnNUcmFja0xpc3RFbGVtZW50PiBlbGVtZW50ID0gYWRvcHRSZWYobmV3IE1lZGlhQ29u
dHJvbENsb3NlZENhcHRpb25zVHJhY2tMaXN0RWxlbWVudChkb2N1bWVudCkpOworICAgIHJldHVy
biBlbGVtZW50LnJlbGVhc2UoKTsKK30KKwordm9pZCBNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9u
c1RyYWNrTGlzdEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQorewor
ICAgIC8vIEZJWE1FOiBIb29rIHRoaXMgdXAgdG8gYWN0dWFsIHRleHQgdHJhY2tzLgorICAgIC8v
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE2NzAKKyAgICBVTlVT
RURfUEFSQU0oZXZlbnQpOworfQorCitjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbENs
b3NlZENhcHRpb25zVHJhY2tMaXN0RWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAorewor
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlh
LWNvbnRyb2xzLWNsb3NlZC1jYXB0aW9ucy10cmFjay1saXN0IikpOwogICAgIHJldHVybiBpZDsK
IH0KIAordm9pZCBNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQ6OnVw
ZGF0ZURpc3BsYXkoKQoreworICAgIC8vIFJlbW92ZSBhbnkgZXhpc3RpbmcgY29udGVudC4KKyAg
ICByZW1vdmVDaGlsZHJlbigpOworCisgICAgaWYgKCFtZWRpYUNvbnRyb2xsZXIoKS0+aGFzQ2xv
c2VkQ2FwdGlvbnMoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgSFRNTE1lZGlhRWxlbWVudCog
bWVkaWFFbGVtZW50ID0gdG9QYXJlbnRNZWRpYUVsZW1lbnQodGhpcyk7CisgICAgaWYgKCFtZWRp
YUVsZW1lbnQpCisgICAgICAgIHJldHVybjsKKworICAgIFRleHRUcmFja0xpc3QqIHRyYWNrTGlz
dCA9IG1lZGlhRWxlbWVudC0+dGV4dFRyYWNrcygpOworCisgICAgaWYgKCF0cmFja0xpc3QgfHwg
IXRyYWNrTGlzdC0+bGVuZ3RoKCkpCisgICAgICAgIHJldHVybjsKKworICAgIERvY3VtZW50KiBk
b2MgPSBkb2N1bWVudCgpOworCisgICAgUmVmUHRyPEVsZW1lbnQ+IGNhcHRpb25zU2VjdGlvbiA9
IGRvYy0+Y3JlYXRlRWxlbWVudChzZWN0aW9uVGFnLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAg
ICBSZWZQdHI8RWxlbWVudD4gY2FwdGlvbnNIZWFkZXIgPSBkb2MtPmNyZWF0ZUVsZW1lbnQoaDNU
YWcsIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIGNhcHRpb25zSGVhZGVyLT5hcHBlbmRDaGls
ZChkb2MtPmNyZWF0ZVRleHROb2RlKCJDbG9zZWQgQ2FwdGlvbnMiKSk7CisgICAgY2FwdGlvbnNT
ZWN0aW9uLT5hcHBlbmRDaGlsZChjYXB0aW9uc0hlYWRlcik7CisgICAgUmVmUHRyPEVsZW1lbnQ+
IGNhcHRpb25zTGlzdCA9IGRvYy0+Y3JlYXRlRWxlbWVudCh1bFRhZywgQVNTRVJUX05PX0VYQ0VQ
VElPTik7CisKKyAgICBSZWZQdHI8RWxlbWVudD4gc3VidGl0bGVzU2VjdGlvbiA9IGRvYy0+Y3Jl
YXRlRWxlbWVudChzZWN0aW9uVGFnLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBSZWZQdHI8
RWxlbWVudD4gc3VidGl0bGVzSGVhZGVyID0gZG9jLT5jcmVhdGVFbGVtZW50KGgzVGFnLCBBU1NF
UlRfTk9fRVhDRVBUSU9OKTsKKyAgICBzdWJ0aXRsZXNIZWFkZXItPmFwcGVuZENoaWxkKGRvYy0+
Y3JlYXRlVGV4dE5vZGUoIlN1YnRpdGxlcyIpKTsKKyAgICBzdWJ0aXRsZXNTZWN0aW9uLT5hcHBl
bmRDaGlsZChzdWJ0aXRsZXNIZWFkZXIpOworICAgIFJlZlB0cjxFbGVtZW50PiBzdWJ0aXRsZXNM
aXN0ID0gZG9jLT5jcmVhdGVFbGVtZW50KHVsVGFnLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKwor
ICAgIFJlZlB0cjxFbGVtZW50PiB0cmFja0l0ZW07CisKKyAgICB0cmFja0l0ZW0gPSBkb2MtPmNy
ZWF0ZUVsZW1lbnQobGlUYWcsIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIHRyYWNrSXRlbS0+
YXBwZW5kQ2hpbGQoZG9jLT5jcmVhdGVUZXh0Tm9kZSgiT2ZmIikpOworICAgIC8vIEZJWE1FOiBU
aGVzZSBsaXN0cyBhcmUgbm90IHlldCBsaXZlLiBNYXJrIHRoZSBPZmYgZW50cnkgYXMgdGhlIHNl
bGVjdGVkIG9uZSBmb3Igbm93LgorICAgIHRyYWNrSXRlbS0+c2V0QXR0cmlidXRlKGNsYXNzQXR0
ciwgInNlbGVjdGVkIik7CisgICAgY2FwdGlvbnNMaXN0LT5hcHBlbmRDaGlsZCh0cmFja0l0ZW0p
OworCisgICAgdHJhY2tJdGVtID0gZG9jLT5jcmVhdGVFbGVtZW50KGxpVGFnLCBBU1NFUlRfTk9f
RVhDRVBUSU9OKTsKKyAgICB0cmFja0l0ZW0tPmFwcGVuZENoaWxkKGRvYy0+Y3JlYXRlVGV4dE5v
ZGUoIk9mZiIpKTsKKyAgICAvLyBGSVhNRTogVGhlc2UgbGlzdHMgYXJlIG5vdCB5ZXQgbGl2ZS4g
TWFyayB0aGUgT2ZmIGVudHJ5IGFzIHRoZSBzZWxlY3RlZCBvbmUgZm9yIG5vdy4KKyAgICB0cmFj
a0l0ZW0tPnNldEF0dHJpYnV0ZShjbGFzc0F0dHIsICJzZWxlY3RlZCIpOworICAgIHN1YnRpdGxl
c0xpc3QtPmFwcGVuZENoaWxkKHRyYWNrSXRlbSk7CisKKyAgICBib29sIGhhc0NhcHRpb25zID0g
ZmFsc2U7CisgICAgYm9vbCBoYXNTdWJ0aXRsZXMgPSBmYWxzZTsKKworICAgIGZvciAodW5zaWdu
ZWQgaSA9IDAsIGxlbmd0aCA9IHRyYWNrTGlzdC0+bGVuZ3RoKCk7IGkgPCBsZW5ndGg7ICsraSkg
eworICAgICAgICBUZXh0VHJhY2sqIHRyYWNrID0gdHJhY2tMaXN0LT5pdGVtKGkpOworICAgICAg
ICB0cmFja0l0ZW0gPSBkb2MtPmNyZWF0ZUVsZW1lbnQobGlUYWcsIEFTU0VSVF9OT19FWENFUFRJ
T04pOworICAgICAgICBBdG9taWNTdHJpbmcgbGFiZWxUZXh0ID0gdHJhY2stPmxhYmVsKCk7Cisg
ICAgICAgIGlmIChsYWJlbFRleHQuaXNOdWxsKCkgfHwgbGFiZWxUZXh0LmlzRW1wdHkoKSkKKyAg
ICAgICAgICAgIGxhYmVsVGV4dCA9IGRpc3BsYXlOYW1lRm9yTGFuZ3VhZ2VMb2NhbGUodHJhY2st
Pmxhbmd1YWdlKCkpOworICAgICAgICBpZiAobGFiZWxUZXh0LmlzTnVsbCgpIHx8IGxhYmVsVGV4
dC5pc0VtcHR5KCkpCisgICAgICAgICAgICBsYWJlbFRleHQgPSAiTm8gTGFiZWwiOworCisgICAg
ICAgIGlmICh0cmFjay0+a2luZCgpID09IHRyYWNrLT5jYXB0aW9uc0tleXdvcmQoKSkgeworICAg
ICAgICAgICAgaGFzQ2FwdGlvbnMgPSB0cnVlOworICAgICAgICAgICAgY2FwdGlvbnNMaXN0LT5h
cHBlbmRDaGlsZCh0cmFja0l0ZW0pOworICAgICAgICB9CisgICAgICAgIGlmICh0cmFjay0+a2lu
ZCgpID09IHRyYWNrLT5zdWJ0aXRsZXNLZXl3b3JkKCkpIHsKKyAgICAgICAgICAgIGhhc1N1YnRp
dGxlcyA9IHRydWU7CisgICAgICAgICAgICBzdWJ0aXRsZXNMaXN0LT5hcHBlbmRDaGlsZCh0cmFj
a0l0ZW0pOworICAgICAgICB9CisgICAgICAgIHRyYWNrSXRlbS0+YXBwZW5kQ2hpbGQoZG9jLT5j
cmVhdGVUZXh0Tm9kZShsYWJlbFRleHQpKTsKKyAgICB9CisKKyAgICBjYXB0aW9uc1NlY3Rpb24t
PmFwcGVuZENoaWxkKGNhcHRpb25zTGlzdCk7CisgICAgc3VidGl0bGVzU2VjdGlvbi0+YXBwZW5k
Q2hpbGQoc3VidGl0bGVzTGlzdCk7CisKKyAgICBpZiAoaGFzQ2FwdGlvbnMpCisgICAgICAgIGFw
cGVuZENoaWxkKGNhcHRpb25zU2VjdGlvbik7CisgICAgaWYgKGhhc1N1YnRpdGxlcykKKyAgICAg
ICAgYXBwZW5kQ2hpbGQoc3VidGl0bGVzU2VjdGlvbik7Cit9CisKIC8vIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KIAogTWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50OjpNZWRpYUNvbnRy
b2xUaW1lbGluZUVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBNZWRpYUNvbnRyb2xzKiBjb250
cm9scykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJv
bEVsZW1lbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVt
ZW50cy5oCmluZGV4IDY2Y2IyZGE2YmI1Yjk0NDFiOGUxYmRhNDgxYzM1N2Y0M2VjM2MzMWMuLmMz
ZmJjODEyMTkyZDM0MWY2MmI5NGUyMzhlYmUxNGVkMmVlOTY3NWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuaApAQCAtNzUsNiArNzUs
OCBAQCBlbnVtIE1lZGlhQ29udHJvbEVsZW1lbnRUeXBlIHsKICAgICBNZWRpYVRleHRUcmFja0Rp
c3BsYXksCiAgICAgTWVkaWFFeGl0RnVsbHNjcmVlbkJ1dHRvbiwKICAgICBNZWRpYU92ZXJsYXlQ
bGF5QnV0dG9uLAorICAgIE1lZGlhQ2xvc2VkQ2FwdGlvbnNDb250YWluZXIsCisgICAgTWVkaWFD
bG9zZWRDYXB0aW9uc1RyYWNrTGlzdCwKIH07CiAKIEhUTUxNZWRpYUVsZW1lbnQqIHRvUGFyZW50
TWVkaWFFbGVtZW50KE5vZGUqKTsKQEAgLTg4LDYgKzkwLDcgQEAgY2xhc3MgTWVkaWFDb250cm9s
RWxlbWVudCA6IHB1YmxpYyBIVE1MRGl2RWxlbWVudCB7CiBwdWJsaWM6CiAgICAgdm9pZCBoaWRl
KCk7CiAgICAgdm9pZCBzaG93KCk7CisgICAgYm9vbCBpc1Nob3dpbmcoKSBjb25zdDsKIAogICAg
IHZpcnR1YWwgTWVkaWFDb250cm9sRWxlbWVudFR5cGUgZGlzcGxheVR5cGUoKSBjb25zdCA9IDA7
CiAKQEAgLTM4MCwxNyArMzgzLDUxIEBAIHByaXZhdGU6CiAKIGNsYXNzIE1lZGlhQ29udHJvbFRv
Z2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudCA6IHB1YmxpYyBNZWRpYUNvbnRyb2xJbnB1
dEVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFRv
Z2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Kik7CisgICAg
c3RhdGljIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25F
bGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqLCBNZWRpYUNvbnRyb2xzKik7CiAKLSAgICB2aXJ0dWFs
IHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopOwogICAgIHZpcnR1YWwgYm9vbCB3aWxs
UmVzcG9uZFRvTW91c2VDbGlja0V2ZW50cygpIE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopOwogICAgIHZpcnR1YWwg
dm9pZCB1cGRhdGVEaXNwbGF5VHlwZSgpOwogCiBwcml2YXRlOgotICAgIE1lZGlhQ29udHJvbFRv
Z2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudChEb2N1bWVudCopOworICAgIE1lZGlhQ29u
dHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudChEb2N1bWVudCosIE1lZGlhQ29u
dHJvbHMqKTsKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQo
KSBjb25zdDsKKworICAgIE1lZGlhQ29udHJvbHMqIG1fY29udHJvbHM7Cit9OworCisvLyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKK2NsYXNzIE1lZGlhQ29udHJvbENsb3NlZENhcHRp
b25zQ29udGFpbmVyRWxlbWVudCA6IHB1YmxpYyBNZWRpYUNvbnRyb2xFbGVtZW50IHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc0NvbnRh
aW5lckVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCopOworCisgICAgdmlydHVhbCBib29sIHdpbGxS
ZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRzKCkgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQorCitw
cml2YXRlOgorICAgIE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zQ29udGFpbmVyRWxlbWVudChE
b2N1bWVudCopOworCisgICAgdmlydHVhbCBNZWRpYUNvbnRyb2xFbGVtZW50VHlwZSBkaXNwbGF5
VHlwZSgpIGNvbnN0IHsgcmV0dXJuIE1lZGlhQ2xvc2VkQ2FwdGlvbnNDb250YWluZXI7IH0KICAg
ICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdDsKLX07
ICAgIAorfTsKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitjbGFzcyBNZWRp
YUNvbnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQgOiBwdWJsaWMgTWVkaWFDb250
cm9sRWxlbWVudCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFDb250cm9s
Q2xvc2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqKTsKKworICAg
IHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50Kik7CisgICAgdmlydHVhbCBi
b29sIHdpbGxSZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRzKCkgT1ZFUlJJREUgeyByZXR1cm4gdHJ1
ZTsgfQorCisgICAgdm9pZCB1cGRhdGVEaXNwbGF5KCk7CisKK3ByaXZhdGU6CisgICAgTWVkaWFD
b250cm9sQ2xvc2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVtZW50KERvY3VtZW50Kik7CisKKyAgICB2
aXJ0dWFsIE1lZGlhQ29udHJvbEVsZW1lbnRUeXBlIGRpc3BsYXlUeXBlKCkgY29uc3QgeyByZXR1
cm4gTWVkaWFDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdDsgfQorICAgIHZpcnR1YWwgY29uc3QgQXRv
bWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0OworfTsKIAogLy8gLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9NZWRpYUNvbnRyb2xSb290RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9NZWRpYUNvbnRyb2xSb290RWxlbWVudC5jcHAKaW5kZXggZWY1NDFiYWEzM2IxZThiZGYwZjA5
MzIyYzVmZTA5NzZiMjcxNzc4OC4uMDA2NTc3NjM2NTI3MDZmMDVhNzAzZmJhNWJhMzg4OWI3MjQ0
ZjgzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9s
Um9vdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29u
dHJvbFJvb3RFbGVtZW50LmNwcApAQCAtNjIsNiArNjIsOCBAQCBNZWRpYUNvbnRyb2xSb290RWxl
bWVudDo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KQogICAgICwg
bV9zZWVrQmFja0J1dHRvbigwKQogICAgICwgbV9zZWVrRm9yd2FyZEJ1dHRvbigwKQogICAgICwg
bV90b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbigwKQorICAgICwgbV9jbG9zZWRDYXB0aW9uc1Ry
YWNrTGlzdCgwKQorICAgICwgbV9jbG9zZWRDYXB0aW9uc0NvbnRhaW5lcigwKQogICAgICwgbV9w
YW5lbE11dGVCdXR0b24oMCkKICAgICAsIG1fdm9sdW1lU2xpZGVyKDApCiAgICAgLCBtX3ZvbHVt
ZVNsaWRlck11dGVCdXR0b24oMCkKQEAgLTE2MiwxMSArMTY0LDI1IEBAIFBhc3NSZWZQdHI8TWVk
aWFDb250cm9sUm9vdEVsZW1lbnQ+IE1lZGlhQ29udHJvbFJvb3RFbGVtZW50OjpjcmVhdGUoRG9j
dW1lbnQqIGRvCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgaWYgKGRvY3VtZW50LT5wYWdlKCkt
PnRoZW1lKCktPnN1cHBvcnRzQ2xvc2VkQ2FwdGlvbmluZygpKSB7Ci0gICAgICAgIFJlZlB0cjxN
ZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ+IHRvZ2dsZUNsb3Nl
ZENhcHRpb25zQnV0dG9uID0gTWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25F
bGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworCisgICAgICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xD
bG9zZWRDYXB0aW9uc0NvbnRhaW5lckVsZW1lbnQ+IGNsb3NlZENhcHRpb25zQ29udGFpbmVyID0g
TWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNDb250YWluZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1l
bnQpOworCisgICAgICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlz
dEVsZW1lbnQ+IGNsb3NlZENhcHRpb25zVHJhY2tMaXN0ID0gTWVkaWFDb250cm9sQ2xvc2VkQ2Fw
dGlvbnNUcmFja0xpc3RFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgICAgICBjb250cm9s
cy0+bV9jbG9zZWRDYXB0aW9uc1RyYWNrTGlzdCA9IGNsb3NlZENhcHRpb25zVHJhY2tMaXN0Lmdl
dCgpOworICAgICAgICBjbG9zZWRDYXB0aW9uc0NvbnRhaW5lci0+YXBwZW5kQ2hpbGQoY2xvc2Vk
Q2FwdGlvbnNUcmFja0xpc3QucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgICAgIGlmIChlYykK
KyAgICAgICAgICAgIHJldHVybiAwOworCisgICAgICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xUb2dn
bGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ+IHRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9u
ID0gTWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50OjpjcmVhdGUo
ZG9jdW1lbnQsIGNvbnRyb2xzLmdldCgpKTsKICAgICAgICAgY29udHJvbHMtPm1fdG9nZ2xlQ2xv
c2VkQ2FwdGlvbnNCdXR0b24gPSB0b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbi5nZXQoKTsKICAg
ICAgICAgcGFuZWwtPmFwcGVuZENoaWxkKHRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uLnJlbGVh
c2UoKSwgZWMsIHRydWUpOwogICAgICAgICBpZiAoZWMpCiAgICAgICAgICAgICByZXR1cm4gMDsK
KworICAgICAgICBjb250cm9scy0+bV9jbG9zZWRDYXB0aW9uc0NvbnRhaW5lciA9IGNsb3NlZENh
cHRpb25zQ29udGFpbmVyLmdldCgpOworICAgICAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoY2xvc2Vk
Q2FwdGlvbnNDb250YWluZXIucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgICAgIGlmIChlYykK
KyAgICAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAogICAgIC8vIEZJWE1FOiBPbmx5IGNyZWF0
ZSB3aGVuIG5lZWRlZCA8aHR0cDovL3dlYmtpdC5vcmcvYi81NzE2Mz4KQEAgLTI2Niw2ICsyODIs
MTAgQEAgdm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudDo6c2V0TWVkaWFDb250cm9sbGVyKE1l
ZGlhQ29udHJvbGxlckludGVyZmFjZSogY29udHIKICAgICAgICAgbV9zZWVrRm9yd2FyZEJ1dHRv
bi0+c2V0TWVkaWFDb250cm9sbGVyKGNvbnRyb2xsZXIpOwogICAgIGlmIChtX3RvZ2dsZUNsb3Nl
ZENhcHRpb25zQnV0dG9uKQogICAgICAgICBtX3RvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uLT5z
ZXRNZWRpYUNvbnRyb2xsZXIoY29udHJvbGxlcik7CisgICAgaWYgKG1fY2xvc2VkQ2FwdGlvbnNU
cmFja0xpc3QpCisgICAgICAgIG1fY2xvc2VkQ2FwdGlvbnNUcmFja0xpc3QtPnNldE1lZGlhQ29u
dHJvbGxlcihjb250cm9sbGVyKTsKKyAgICBpZiAobV9jbG9zZWRDYXB0aW9uc0NvbnRhaW5lcikK
KyAgICAgICAgbV9jbG9zZWRDYXB0aW9uc0NvbnRhaW5lci0+c2V0TWVkaWFDb250cm9sbGVyKGNv
bnRyb2xsZXIpOwogICAgIGlmIChtX3BhbmVsTXV0ZUJ1dHRvbikKICAgICAgICAgbV9wYW5lbE11
dGVCdXR0b24tPnNldE1lZGlhQ29udHJvbGxlcihjb250cm9sbGVyKTsKICAgICBpZiAobV92b2x1
bWVTbGlkZXIpCkBAIC0zMDIsNiArMzIyLDcgQEAgdm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVu
dDo6aGlkZSgpCiAgICAgbV9wYW5lbC0+c2V0SXNEaXNwbGF5ZWQoZmFsc2UpOwogICAgIG1fcGFu
ZWwtPmhpZGUoKTsKICAgICBtX3ZvbHVtZVNsaWRlckNvbnRhaW5lci0+aGlkZSgpOworICAgIG1f
Y2xvc2VkQ2FwdGlvbnNDb250YWluZXItPmhpZGUoKTsKIH0KIAogdm9pZCBNZWRpYUNvbnRyb2xS
b290RWxlbWVudDo6bWFrZU9wYXF1ZSgpCkBAIC0zMTMsNiArMzM0LDcgQEAgdm9pZCBNZWRpYUNv
bnRyb2xSb290RWxlbWVudDo6bWFrZVRyYW5zcGFyZW50KCkKIHsKICAgICBtX3BhbmVsLT5tYWtl
VHJhbnNwYXJlbnQoKTsKICAgICBtX3ZvbHVtZVNsaWRlckNvbnRhaW5lci0+aGlkZSgpOworICAg
IG1fY2xvc2VkQ2FwdGlvbnNDb250YWluZXItPmhpZGUoKTsKIH0KIAogdm9pZCBNZWRpYUNvbnRy
b2xSb290RWxlbWVudDo6cmVzZXQoKQpAQCAtMzQ2LDkgKzM2OCwxMCBAQCB2b2lkIE1lZGlhQ29u
dHJvbFJvb3RFbGVtZW50OjpyZXNldCgpCiAgICAgICAgIG1fdm9sdW1lU2xpZGVyLT5zZXRWb2x1
bWUobV9tZWRpYUNvbnRyb2xsZXItPnZvbHVtZSgpKTsKIAogICAgIGlmIChtX3RvZ2dsZUNsb3Nl
ZENhcHRpb25zQnV0dG9uKSB7Ci0gICAgICAgIGlmIChtX21lZGlhQ29udHJvbGxlci0+aGFzQ2xv
c2VkQ2FwdGlvbnMoKSkKKyAgICAgICAgaWYgKG1fbWVkaWFDb250cm9sbGVyLT5oYXNDbG9zZWRD
YXB0aW9ucygpKSB7CiAgICAgICAgICAgICBtX3RvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uLT5z
aG93KCk7Ci0gICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1fY2xvc2VkQ2FwdGlvbnNUcmFja0xp
c3QtPnVwZGF0ZURpc3BsYXkoKTsKKyAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBtX3RvZ2ds
ZUNsb3NlZENhcHRpb25zQnV0dG9uLT5oaWRlKCk7CiAgICAgfQogCkBAIC00NDcsNiArNDcwLDgg
QEAgdm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudDo6cmVwb3J0ZWRFcnJvcigpCiAgICAgICAg
IG1fdm9sdW1lU2xpZGVyQ29udGFpbmVyLT5oaWRlKCk7CiAgICAgaWYgKG1fdG9nZ2xlQ2xvc2Vk
Q2FwdGlvbnNCdXR0b24gJiYgIXBhZ2UtPnRoZW1lKCktPmhhc093bkRpc2FibGVkU3RhdGVIYW5k
bGluZ0ZvcihNZWRpYVRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uUGFydCkpCiAgICAgICAgIG1f
dG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24tPmhpZGUoKTsKKyAgICBpZiAobV9jbG9zZWRDYXB0
aW9uc0NvbnRhaW5lcikKKyAgICAgICAgbV9jbG9zZWRDYXB0aW9uc0NvbnRhaW5lci0+aGlkZSgp
OwogfQogCiB2b2lkIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Ojp1cGRhdGVTdGF0dXNEaXNwbGF5
KCkKQEAgLTU0Miw2ICs1NjcsMTkgQEAgdm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudDo6c2hv
d1ZvbHVtZVNsaWRlcigpCiAgICAgICAgIG1fdm9sdW1lU2xpZGVyQ29udGFpbmVyLT5zaG93KCk7
CiB9CiAKK3ZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnQ6OnRvZ2dsZUNsb3NlZENhcHRpb25U
cmFja0xpc3QoKQoreworICAgIGlmICghbV9tZWRpYUNvbnRyb2xsZXItPmhhc0Nsb3NlZENhcHRp
b25zKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChtX2Nsb3NlZENhcHRpb25zQ29udGFp
bmVyKSB7CisgICAgICAgIGlmIChtX2Nsb3NlZENhcHRpb25zQ29udGFpbmVyLT5pc1Nob3dpbmco
KSkKKyAgICAgICAgICAgIG1fY2xvc2VkQ2FwdGlvbnNDb250YWluZXItPmhpZGUoKTsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgbV9jbG9zZWRDYXB0aW9uc0NvbnRhaW5lci0+c2hvdygpOwor
ICAgIH0KK30KKwogYm9vbCBNZWRpYUNvbnRyb2xSb290RWxlbWVudDo6c2hvdWxkSGlkZUNvbnRy
b2xzKCkKIHsKICAgICByZXR1cm4gIW1fcGFuZWwtPmhvdmVyZWQoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudC5oCmluZGV4IGEw
YjA5ZDg3NDViN2FjNjFhN2Q1OTZkNDFhMjM4OTY2YjYxZjRiNGIuLjA2NzM5YmVhNWFlYzg2OWRh
MDdjMjc0YWZjOGQxYWE1Y2M0MjBiYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnQuaApAQCAtNDIsNyArNDIsOSBAQCBjbGFz
cyBNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudDsKIGNsYXNzIE1lZGlhQ29udHJvbFNlZWtC
dXR0b25FbGVtZW50OwogY2xhc3MgTWVkaWFDb250cm9sUmV3aW5kQnV0dG9uRWxlbWVudDsKIGNs
YXNzIE1lZGlhQ29udHJvbFJldHVyblRvUmVhbHRpbWVCdXR0b25FbGVtZW50OworY2xhc3MgTWVk
aWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNDb250YWluZXJFbGVtZW50OwogY2xhc3MgTWVkaWFDb250
cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50OworY2xhc3MgTWVkaWFDb250cm9s
Q2xvc2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVtZW50OwogY2xhc3MgTWVkaWFDb250cm9sQ3VycmVu
dFRpbWVEaXNwbGF5RWxlbWVudDsKIGNsYXNzIE1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudDsK
IGNsYXNzIE1lZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudDsKQEAgLTEwMyw2
ICsxMDUsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVUaW1lRGlzcGxheSgpOwogICAgIHZv
aWQgdXBkYXRlU3RhdHVzRGlzcGxheSgpOwogCisgICAgdm9pZCB0b2dnbGVDbG9zZWRDYXB0aW9u
VHJhY2tMaXN0KCk7CisKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAgdm9pZCBjcmVhdGVU
ZXh0VHJhY2tEaXNwbGF5KCk7CiAgICAgdm9pZCBzaG93VGV4dFRyYWNrRGlzcGxheSgpOwpAQCAt
MTQxLDYgKzE0NSw4IEBAIHByaXZhdGU6CiAgICAgTWVkaWFDb250cm9sU2Vla0JhY2tCdXR0b25F
bGVtZW50KiBtX3NlZWtCYWNrQnV0dG9uOwogICAgIE1lZGlhQ29udHJvbFNlZWtGb3J3YXJkQnV0
dG9uRWxlbWVudCogbV9zZWVrRm9yd2FyZEJ1dHRvbjsKICAgICBNZWRpYUNvbnRyb2xUb2dnbGVD
bG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQqIG1fdG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b247
CisgICAgTWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVtZW50KiBtX2Nsb3Nl
ZENhcHRpb25zVHJhY2tMaXN0OworICAgIE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zQ29udGFp
bmVyRWxlbWVudCogbV9jbG9zZWRDYXB0aW9uc0NvbnRhaW5lcjsKICAgICBNZWRpYUNvbnRyb2xQ
YW5lbE11dGVCdXR0b25FbGVtZW50KiBtX3BhbmVsTXV0ZUJ1dHRvbjsKICAgICBNZWRpYUNvbnRy
b2xWb2x1bWVTbGlkZXJFbGVtZW50KiBtX3ZvbHVtZVNsaWRlcjsKICAgICBNZWRpYUNvbnRyb2xW
b2x1bWVTbGlkZXJNdXRlQnV0dG9uRWxlbWVudCogbV92b2x1bWVTbGlkZXJNdXRlQnV0dG9uOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVs
ZW1lbnRDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRy
b2xSb290RWxlbWVudENocm9taXVtLmNwcAppbmRleCA2YjM5MTNiYjZlNTIzYWY5ZGY3MjY4MzFl
Yjg2MDZhMzQwNjg5NGNhLi42MGE3OGE0ODkyODY4MTk4ZmI4Y2Y0ZDNiNzQ4YzY1NDJjN2Q4ZTNi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290
RWxlbWVudENocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRp
YUNvbnRyb2xSb290RWxlbWVudENocm9taXVtLmNwcApAQCAtMTY2LDcgKzE2Niw3IEBAIGJvb2wg
TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6aW5pdGlhbGl6ZUNvbnRyb2xzKERvY3Vt
ZW50KiBkb2N1bWVudCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKGRvY3VtZW50
LT5wYWdlKCktPnRoZW1lKCktPnN1cHBvcnRzQ2xvc2VkQ2FwdGlvbmluZygpKSB7Ci0gICAgICAg
IFJlZlB0cjxNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ+IHRv
Z2dsZUNsb3NlZENhcHRpb25zQnV0dG9uID0gTWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlv
bnNCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgICAgICBSZWZQdHI8TWVkaWFD
b250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50PiB0b2dnbGVDbG9zZWRDYXB0
aW9uc0J1dHRvbiA9IE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVu
dDo6Y3JlYXRlKGRvY3VtZW50LCB0aGlzKTsKICAgICAgICAgbV90b2dnbGVDbG9zZWRDYXB0aW9u
c0J1dHRvbiA9IHRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uLmdldCgpOwogICAgICAgICBwYW5l
bC0+YXBwZW5kQ2hpbGQodG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24ucmVsZWFzZSgpLCBlYywg
dHJ1ZSk7CiAgICAgICAgIGlmIChlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L01lZGlhQ29udHJvbHMuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlh
Q29udHJvbHMuaAppbmRleCAyODkwOGE5YTEwN2U0NTcwMzkyODY4MzIwMzNkYmEyOGQwMzdiNjM2
Li42ZjBmYWQ4MjQxNmIxMDhjMzcyMmM1NmRiNmY2MTg2YzNmNWM0NzkzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9scy5oCkBAIC03MCw2ICs3MCw4IEBAIGNsYXNz
IE1lZGlhQ29udHJvbHMgOiBwdWJsaWMgSFRNTERpdkVsZW1lbnQgewogICAgIHZpcnR1YWwgdm9p
ZCB1cGRhdGVUaW1lRGlzcGxheSgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlU3RhdHVz
RGlzcGxheSgpID0gMDsKIAorICAgIHZpcnR1YWwgdm9pZCB0b2dnbGVDbG9zZWRDYXB0aW9uVHJh
Y2tMaXN0KCkgeyB9CisKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSGlkZUNvbnRyb2xzKCkgPSAw
OwogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vTGFuZ3VhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGFuZ3VhZ2Uu
Y3BwCmluZGV4IGRiYTNhODlmYmJjMTM3YzU4ZmNjYWU5MzhiNGFmMWNhNDhlMWQ2Y2QuLmUyOGU3
NmUxMDcyYjIwOGQxYmRhMTUyMzNlZGM3NzQ3MjE4NmE3ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0xhbmd1YWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9MYW5ndWFnZS5jcHAKQEAgLTI3LDggKzI3LDEzIEBACiAjaW5jbHVkZSAiTGFuZ3VhZ2UuaCIK
IAogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCisjaWYgUExBVEZPUk0oTUFDKQorI2lu
Y2x1ZGUgPENvcmVGb3VuZGF0aW9uL0NvcmVGb3VuZGF0aW9uLmg+CisjZW5kaWYKKwogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiB0eXBlZGVmIEhhc2hNYXA8dm9pZCosIExhbmd1YWdlQ2hhbmdlT2Jz
ZXJ2ZXJGdW5jdGlvbj4gT2JzZXJ2ZXJNYXA7CkBAIC0xNDIsNSArMTQ3LDE0IEBAIFN0cmluZyBw
cmVmZXJyZWRMYW5ndWFnZUZyb21MaXN0KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBsYW5ndWFnZUxp
c3QpCiAKICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKIH0KLSAgICAKKworU3RyaW5nIGRpc3Bs
YXlOYW1lRm9yTGFuZ3VhZ2VMb2NhbGUoY29uc3QgU3RyaW5nJiBsb2NhbGVOYW1lKQoreworI2lm
IFBMQVRGT1JNKE1BQykKKyAgICBpZiAoIWxvY2FsZU5hbWUuaXNOdWxsKCkgJiYgIWxvY2FsZU5h
bWUuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gQ0ZMb2NhbGVDb3B5RGlzcGxheU5hbWVGb3JQ
cm9wZXJ0eVZhbHVlKENGTG9jYWxlQ29weUN1cnJlbnQoKSwga0NGTG9jYWxlSWRlbnRpZmllciwg
bG9jYWxlTmFtZS5jcmVhdGVDRlN0cmluZygpLmdldCgpKTsKKyNlbmRpZgorICAgIHJldHVybiBs
b2NhbGVOYW1lOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9M
YW5ndWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGFuZ3VhZ2UuaAppbmRleCA0MTE2
MTVjOWU5YzY4MWU0ZjE3MGUxNmIwZGYxNzNmNzZkZjZkNjA2Li4yOWYxY2E4YWU1NDExNzk2ZWIy
NjQyYmVkY2E3OGYwZWRhNGIxY2E0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9MYW5ndWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xhbmd1YWdlLmgKQEAg
LTQzLDYgKzQzLDggQEAgdm9pZCByZW1vdmVMYW5ndWFnZUNoYW5nZU9ic2VydmVyKHZvaWQqIGNv
bnRleHQpOwogCiBWZWN0b3I8U3RyaW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMo
KTsKIAorU3RyaW5nIGRpc3BsYXlOYW1lRm9yTGFuZ3VhZ2VMb2NhbGUoY29uc3QgU3RyaW5nJik7
CisKIC8vIENhbGxlZCBmcm9tIHBsYXRmb3JtIHNwZWNpZmljIGNvZGUgd2hlbiB0aGUgdXNlcidz
IHByZWZlcnJlZCBsYW5ndWFnZShzKSBjaGFuZ2UuCiB2b2lkIGxhbmd1YWdlRGlkQ2hhbmdlKCk7
CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173398</attachid>
            <date>2012-11-09 16:39:43 -0800</date>
            <delta_ts>2012-11-09 17:00:35 -0800</delta_ts>
            <desc>Rebased patch for build test</desc>
            <filename>bug-101669-20121109163750.patch</filename>
            <type>text/plain</type>
            <size>34420</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0MTMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGFiYjYxMDIzNmY1ZGRi
NDNjMmI1ZjFjZWM3NmU1ZWRmMTZlZjhkNS4uNWZlODBkODllNWU1YmI3MTljZGYzZTliZTVlYTg2
YWQ3YzdhNjY3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDEyLTExLTA5ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IGxpc3Qgb2YgdHJh
Y2tzIGluIGNhcHRpb24gbWVkaWEgY29udHJvbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTY2OQorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMg
Q2FybHNvbi4KKworICAgICAgICBBZGQgc29tZSBuZXcgZWxlbWVudHMgdG8gdGhlIG1lZGlhIGNv
bnRyb2wgc2hhZG93IERPTSB0aGF0IGRpc3BsYXkgdGhlIGxpc3Qgb2YgYXZhaWxhYmxlCisgICAg
ICAgIHRyYWNrcyBvbiBhbiBhdWRpby92aWRlbyBlbGVtZW50LiBUaGUgVUkgaXMgaGlkZGVuIGJ5
IGRlZmF1bHQgZXZlcnl3aGVyZSBidXQgb24gTWFjLAorICAgICAgICB3aGVyZSBpdCBpcyBnaXZl
biBhIHZlcnkgYmFzaWMgZGVzaWduLiBBdCB0aGUgbW9tZW50IG9ubHkgdGhlIGxpc3Qgb2YgYXZh
aWxhYmxlIHRyYWNrcworICAgICAgICBhcmUgZGlzcGxheWVkOyBUaGUgZm9sbG93dXAgYnVnIHdp
bGwgbWFrZSB0aGUgVUkgYWN0aXZlOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTAxNjcwCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIC0gdGhpcyBkb2Vzbid0IGV4cG9z
ZSBhbnkgdGVzdGFibGUgc3VyZmFjZS4KKworICAgICAgICAqIGNzcy9tZWRpYUNvbnRyb2xzLmNz
czogQWRkZWQgZGVmYXVsdCBydWxlcyB0aGF0IGhpZGUgdGhlIG5ldyBlbGVtZW50cy4KKyAgICAg
ICAgKiBjc3MvbWVkaWFDb250cm9sc1F1aWNrVGltZS5jc3M6IFNwZWNpZmljIHJ1bGVzIHRoYXQg
Z2l2ZSBhIGJhc2ljIHJlbmRlcmluZyBvZiB0aGUgbmV3IHRyYWNrIGxpc3QuCisgICAgICAgICog
aHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFDb250cm9sRWxlbWVudDo6aXNTaG93aW5nKTogVGVzdHMgZm9yIHRoZSB2aXNpYmlsaXR5
IG9mIGEgY29udHJvbC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbENsb3NlZENhcHRp
b25zQ29udGFpbmVyRWxlbWVudDo6TWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNDb250YWluZXJF
bGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zQ29u
dGFpbmVyRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbENs
b3NlZENhcHRpb25zQ29udGFpbmVyRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50OjpN
ZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50Ojpj
cmVhdGUpOiBOb3cgdGFrZXMgYSByZWZlcmVuY2UgdG8gdGhlIG1lZGlhIGNvbnRyb2xzIGFzIGEg
cGFyYW1ldGVyLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2Fw
dGlvbnNCdXR0b25FbGVtZW50Ojp1cGRhdGVEaXNwbGF5VHlwZSk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ6OmRlZmF1bHRF
dmVudEhhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sVG9nZ2xlQ2xvc2Vk
Q2FwdGlvbnNCdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQ6Ok1lZGlhQ29udHJv
bENsb3NlZENhcHRpb25zVHJhY2tMaXN0RWxlbWVudCk6IE5ldyBlbGVtZW50IGZvciBob2xkaW5n
IGEgbGlzdCBvZiB0cmFja3MgdG8gZGlzcGxheS4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRp
YUNvbnRyb2xFbGVtZW50cy5oOgorICAgICAgICAoTWVkaWFDb250cm9sRWxlbWVudCk6CisgICAg
ICAgIChNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQpOgorICAg
ICAgICAoTWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNDb250YWluZXJFbGVtZW50KToKKyAgICAg
ICAgKE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zVHJhY2tMaXN0RWxlbWVudCk6IEV4YW1pbmVz
IHRoZSBtZWRpYSBlbGVtZW50IHRvIGJ1aWxkIGEgc2hhZG93IERPTSB0aGF0IGxpc3RzIGFsbCB0
aGUgdHJhY2tzIGF2YWlsYWJsZS4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xS
b290RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVu
dDo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250
cm9sUm9vdEVsZW1lbnQ6OmNyZWF0ZSk6IE5ldyB0cmFjayBjb250YWluZXIgYW5kIGxpc3QgZWxl
bWVudHMgY3JlYXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50
OjpzZXRNZWRpYUNvbnRyb2xsZXIpOiBIb29rIHVwIHRoZSBuZXcgZWxlbWVudHMgdG8gdGhlIGNv
bnRyb2xsZXIuLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnQ6Omhp
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnQ6Om1ha2VUcmFu
c3BhcmVudCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVudDo6cmVz
ZXQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnQ6OnJlcG9ydGVk
RXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnQ6OnRvZ2ds
ZUNsb3NlZENhcHRpb25UcmFja0xpc3QpOiBTaG93cyBvciBoaWRlcyB0aGUgcG9wdXAgd2l0aCB0
aGUgbGlzdCBvZiB0cmFja3MuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBodG1sL3No
YWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChNZWRpYUNvbnRyb2xSb290RWxlbWVudCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvTWVk
aWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjppbml0aWFsaXplQ29udHJvbHMpOiBQYXNzIGlu
IHRoZSBjb250cm9scyBhcyBhIHBhcmFtZXRlci4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRp
YUNvbnRyb2xzLmg6CisgICAgICAgIChNZWRpYUNvbnRyb2xzKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9MYW5ndWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkaXNwbGF5TmFtZUZvckxhbmd1YWdl
TG9jYWxlKTogTmV3IGZ1bmN0aW9uIHRvIHJldHVybiBhIGh1bWFuLXJlYWRhYmxlIG5hbWUgZm9y
IGEgbG9jYWxlLCBnaXZlbiB0aGUgaWRlbnRpZmllciBpbnB1dC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9MYW5ndWFnZS5oOgorICAgICAgICAoV2ViQ29yZSk6CisKIDIwMTItMTEtMDkgIEFsZWMgRmxl
dHQgIDxhbGVjZmxldHRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEluZGV4ZWREQjogQ29tYmlu
ZSBJREJCYWNraW5nU3RvcmUgYW5kIElEQkxldmVsREJCYWNraW5nU3RvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzLmNzcyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9tZWRpYUNvbnRyb2xzLmNzcwppbmRleCA2ZGYwMzQwMmQzYTRjOWU3OGFiZjhmNzdlYzRhYjEz
YmZiYmY4NGViLi4wMGVmY2JiYTY1ZDQ0YWEwYjMxNjkyNjAxNjBhZDYwMTkzNTQyMDEwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9scy5jc3MKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL21lZGlhQ29udHJvbHMuY3NzCkBAIC0xODcsNiArMTg3LDE0IEBAIGF1ZGlv
Ojotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRvZ2dsZS1jbG9zZWQtY2FwdGlvbnMtYnV0dG9uLCB2
aWRlbzo6LXdlYmtpdC1tZWRpCiAgICAgY29sb3I6IGluaGVyaXQ7CiB9CiAKK2F1ZGlvOjotd2Vi
a2l0LW1lZGlhLWNvbnRyb2xzLWNsb3NlZC1jYXB0aW9ucy1jb250YWluZXIsIHZpZGVvOjotd2Vi
a2l0LW1lZGlhLWNvbnRyb2xzLWNsb3NlZC1jYXB0aW9ucy1jb250YWluZXIgeworICAgIGRpc3Bs
YXk6IG5vbmU7Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWNsb3NlZC1jYXB0
aW9ucy10cmFjay1saXN0LCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1jbG9zZWQtY2Fw
dGlvbnMtdHJhY2stbGlzdCB7CisgICAgZGlzcGxheTogbm9uZTsKK30KKwogYXVkaW86Oi13ZWJr
aXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlci1tdXRlLWJ1dHRvbiwgdmlkZW86Oi13ZWJr
aXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlci1tdXRlLWJ1dHRvbiB7CiAgICAgLXdlYmtp
dC1hcHBlYXJhbmNlOiBtZWRpYS12b2x1bWUtc2xpZGVyLW11dGUtYnV0dG9uOwogICAgIGRpc3Bs
YXk6IG5vbmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9sc1F1
aWNrVGltZS5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9sc1F1aWNrVGltZS5j
c3MKaW5kZXggMmViOTA4YjAwOWQ2YmNjNmQxOTc1Y2M5ZGUzNmE0ZTFiOTczNWUwMi4uMDA3NWUy
Y2ZiOWMwMDJhY2VkODBhZWZmMTEyMjQ5NjBlY2IxOWRmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL21lZGlhQ29udHJvbHNRdWlja1RpbWUuY3NzCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9tZWRpYUNvbnRyb2xzUXVpY2tUaW1lLmNzcwpAQCAtMTg4LDE3ICsxODgsNiBAQCBhdWRp
bzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1zdGF0dXMtZGlzcGxheSwgdmlkZW86Oi13ZWJraXQt
bWVkaWEtY29udHJvbHMtc3RhdAogICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKIH0KIAotYXVk
aW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdG9nZ2xlLWNsb3NlZC1jYXB0aW9ucy1idXR0b24s
IHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRvZ2dsZS1jbG9zZWQtY2FwdGlvbnMtYnV0
dG9uIHsKLSAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLXRvZ2dsZS1jbG9zZWQtY2FwdGlv
bnMtYnV0dG9uOwotICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OwotICAgIHdpZHRoOiAxNnB4Owot
ICAgIGhlaWdodDogMTZweDsKLSAgICBtYXJnaW4tbGVmdDogN3B4OwotICAgIG1hcmdpbi1yaWdo
dDogN3B4OwotICAgIC13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6IDM7IC8qIGJldHdlZW4gbXV0
ZSBhbmQgZnVsbHNjcmVlbiAqLwotICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50OwotfQotCiBh
dWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyLWNvbnRhaW5lciwgdmlk
ZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlci1jb250YWluZXIgewogICAg
IC13ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEtdm9sdW1lLXNsaWRlci1jb250YWluZXI7CiAgICAg
cG9zaXRpb246IGFic29sdXRlOwpAQCAtMjM5LDMgKzIyOCwxMDQgQEAgYXVkaW86Oi13ZWJraXQt
bWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlci1tdXRlLWJ1dHRvbiwgdmlkZW86Oi13ZWJraXQt
bWVkaWEtY28KIAogICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50OwogfQorCithdWRpbzo6LXdl
YmtpdC1tZWRpYS1jb250cm9scy10b2dnbGUtY2xvc2VkLWNhcHRpb25zLWJ1dHRvbiwgdmlkZW86
Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdG9nZ2xlLWNsb3NlZC1jYXB0aW9ucy1idXR0b24gewor
ICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEtdG9nZ2xlLWNsb3NlZC1jYXB0aW9ucy1idXR0
b247CisgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7CisgICAgd2lkdGg6IDE2cHg7CisgICAgaGVp
Z2h0OiAxNnB4OworICAgIG1hcmdpbi1sZWZ0OiA3cHg7CisgICAgbWFyZ2luLXJpZ2h0OiA3cHg7
CisgICAgLXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDogMzsgLyogYmV0d2VlbiBtdXRlIGFuZCBm
dWxsc2NyZWVuICovCisgICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7Cit9CisKK2F1ZGlvOjot
d2Via2l0LW1lZGlhLWNvbnRyb2xzLWNsb3NlZC1jYXB0aW9ucy1jb250YWluZXIsIHZpZGVvOjot
d2Via2l0LW1lZGlhLWNvbnRyb2xzLWNsb3NlZC1jYXB0aW9ucy1jb250YWluZXIgeworICAgIC13
ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEtY2xvc2VkLWNhcHRpb25zLWNvbnRhaW5lcjsKKyAgICBw
b3NpdGlvbjogYWJzb2x1dGU7CisgICAgZGlzcGxheTogYmxvY2s7CisgICAgYm90dG9tOiAyOXB4
OworICAgIG1hcmdpbi1sZWZ0OiAtMTU1cHg7CisgICAgei1pbmRleDogMjsKKyAgICB3aWR0aDog
MjAwcHg7CisgICAgaGVpZ2h0OiAyNTBweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAs
IDAsIDAsIDAuODUpOworICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYig2NiwgNjYsIDY2KTsKKyAg
ICBib3JkZXItcmFkaXVzOiA4cHg7Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xz
LWNsb3NlZC1jYXB0aW9ucy10cmFjay1saXN0LCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9s
cy1jbG9zZWQtY2FwdGlvbnMtdHJhY2stbGlzdCB7CisgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBt
ZWRpYS1jbG9zZWQtY2FwdGlvbnMtdHJhY2stbGlzdDsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7
CisgICAgZGlzcGxheTogYmxvY2s7CisgICAgdG9wOiA1cHg7CisgICAgbGVmdDogNXB4OworICAg
IHdpZHRoOiAxOTBweDsKKyAgICBoZWlnaHQ6IDI0MHB4OworICAgIG92ZXJmbG93LXg6IGhpZGRl
bjsKKyAgICBvdmVyZmxvdy15OiBzY3JvbGw7CisgICAgdGV4dC1hbGlnbjogbGVmdDsKKyAgICBm
b250LWZhbWlseTogIkhlbHZldGljYSBCb2xkIiwgIkhlbHZldGljYSI7CisgICAgZm9udC13ZWln
aHQ6IGJvbGQ7CisgICAgZm9udC1zaXplOiA5cHQ7Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlh
LWNvbnRyb2xzLWNsb3NlZC1jYXB0aW9ucy10cmFjay1saXN0IGgzLAordmlkZW86Oi13ZWJraXQt
bWVkaWEtY29udHJvbHMtY2xvc2VkLWNhcHRpb25zLXRyYWNrLWxpc3QgaDMgeworICAgIG1hcmdp
bjogMDsKKyAgICBjb2xvcjogI2JiYjsKKyAgICB0ZXh0LXNoYWRvdzogMCAxcHggMCBibGFjazsK
KyAgICBwYWRkaW5nLWxlZnQ6IDRweDsKKyAgICBwYWRkaW5nLXRvcDogNHB4OworICAgIHBhZGRp
bmctYm90dG9tOiA0cHg7CisgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM1NTU7CisgICAg
Zm9udC1zaXplOiA5cHQ7Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWNsb3Nl
ZC1jYXB0aW9ucy10cmFjay1saXN0IHVsLAordmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMt
Y2xvc2VkLWNhcHRpb25zLXRyYWNrLWxpc3QgdWwgeworICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9u
ZTsKKyAgICBtYXJnaW46IDAgMCA4cHggMDsKKyAgICBwYWRkaW5nOiAwOworfQorCithdWRpbzo6
LXdlYmtpdC1tZWRpYS1jb250cm9scy1jbG9zZWQtY2FwdGlvbnMtdHJhY2stbGlzdCBsaSwKK3Zp
ZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWNsb3NlZC1jYXB0aW9ucy10cmFjay1saXN0IGxp
IHsKKyAgICBjb2xvcjogd2hpdGU7CisgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDAgYmxhY2s7Cisg
ICAgbWFyZ2luOiAwOworICAgIHBhZGRpbmctbGVmdDogMjRweDsKKyAgICBwYWRkaW5nLXJpZ2h0
OiAxMHB4OworICAgIHBhZGRpbmctdG9wOiAwLjM1ZW07CisgICAgcGFkZGluZy1ib3R0b206IDAu
M2VtOworICAgIHdpZHRoOiAxOTBweDsKKyAgICBoZWlnaHQ6IDIuMGVtOworICAgIGJvcmRlci1i
b3R0b206IDFweCBzb2xpZCAjNTU1OworICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CisgICAg
b3ZlcmZsb3c6IGhpZGRlbjsKKyAgICB3aGl0ZS1zcGFjZTogbm93cmFwOworICAgIHRleHQtb3Zl
cmZsb3c6IGVsbGlwc2lzOworICAgIC13ZWJraXQtdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7Cit9
CisKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWNsb3NlZC1jYXB0aW9ucy10cmFjay1s
aXN0IGxpOmhvdmVyLAordmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtY2xvc2VkLWNhcHRp
b25zLXRyYWNrLWxpc3QgbGk6aG92ZXIgeworICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQt
Z3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgbGVmdCBib3R0b20sIGNvbG9yLXN0b3AoMCwgcmdi
KDc5LCAxMTIsIDI0NSkpLCBjb2xvci1zdG9wKDEsIHJnYigyOCwgNjYsIDI0NSkpKTsKKyAgICBi
b3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiKDI4LCA2NiwgMjQ1KTsKK30KKworYXVkaW86Oi13
ZWJraXQtbWVkaWEtY29udHJvbHMtY2xvc2VkLWNhcHRpb25zLXRyYWNrLWxpc3QgbGkuc2VsZWN0
ZWQsCit2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1jbG9zZWQtY2FwdGlvbnMtdHJhY2st
bGlzdCBsaS5zZWxlY3RlZCB7CisgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdl
L3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQURZQUFBQTlDQVlBQUFEbWdwb2VB
QUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlKcFZG
aDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1
L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFs
ZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJ
RmhOVUNCRGIzSmxJRFV1TUMxak1EWXdJRFl4TGpFek5EYzNOeXdnTWpBeE1DOHdNaTh4TWkweE56
b3pNam93TUNBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4
dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEpr
WmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndP
aTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNE
b3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1o
MGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkps
WmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVOVE5TQk5Z
V05wYm5SdmMyZ2lJSGh0Y0UxTk9rbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZSVEJFUWtJNVF6
Z3lNVGM0TVRGRk1rSkVSRGRCUmpJM05FUXdOelpFUmpBaUlIaHRjRTFOT2tSdlkzVnRaVzUwU1VR
OUluaHRjQzVrYVdRNlJUQkVRa0k1UXpreU1UYzRNVEZGTWtKRVJEZEJSakkzTkVRd056WkVSakFp
UGlBOGVHMXdUVTA2UkdWeWFYWmxaRVp5YjIwZ2MzUlNaV1k2YVc1emRHRnVZMlZKUkQwaWVHMXdM
bWxwWkRwRk1FUkNRamxETmpJeE56Z3hNVVV5UWtSRU4wRkdNamMwUkRBM05rUkdNQ0lnYzNSU1pX
WTZaRzlqZFcxbGJuUkpSRDBpZUcxd0xtUnBaRHBGTUVSQ1FqbEROekl4TnpneE1VVXlRa1JFTjBG
R01qYzBSREEzTmtSR01DSXZQaUE4TDNKa1pqcEVaWE5qY21sd2RHbHZiajRnUEM5eVpHWTZVa1JH
UGlBOEwzZzZlRzF3YldWMFlUNGdQRDk0Y0dGamEyVjBJR1Z1WkQwaWNpSS9QcXBXejBVQUFBSFBT
VVJCVkhqYTdKcUJiWVF3REVYZERSZ2hJN0JCR1NFalpBUkd5QWFNd0FnM0F0Y0pNa0p1ZzR4QVV5
bXFUZ2dWTzF5SmJaMGxDeUdkMEQzWi9QdzRmSUNBV05mVjVJdk4rWm16ejJrMlA3bVg2MWZPeDlN
OVg2Q2N5MHFMT1dmSEdjcXQ5Smk0VjZvR3lyMmhHa0QxR3FHNm5GRVZWQUdiTkVJTjZxQUtXS0Nz
VTFLZ1JnTFVJZ1hxUnpBU0VpcXlkaFFiTUUrb1ZpOEZ5aENxTllLVUtHWlZ6M3YxVkMxTXBMSmxV
VmV0VVdPMUFrZ0tnblVhSkVGaDE2MVpXclc4T3NFb1lKaHFlV2xRRGxtdFRocFkxRml0UVd1MWJo
cVZFTHNnaTFOQ3I2NWFCTkVZcm1pYmVmTm5RckZCcHVKNXR1bTJwRmdkak9PZUtNcUZGQTMzbjFD
VVFXWEF3SlhuSGtvOEIxZEFna05Pbi93Vkx6a1Zibm5Cck5CY3BXQlVPSDlpN2JweEhvbnRqc1dR
bTBuTGVTYXhPOGhFaUZGc3ViQ0dtcFpFbm5INWxtQ1U4Zk52U3lMYnNLMHZKQjd2TE1oSzh4aUFF
c1hFTjNNYWxYRFVieTNhT0kxS2M1eGVBTVp2ZTFMNW1ZS01vNkNUTFJtQmE1eHNTZDRIRE1Relkx
a3pqWXFXRkhNb1RtMUpCMUtDdUhDTEc0UUdkdnV1Qzcya0JZbHg0T1lUU0kyRDdjME1rdU9QdGMy
QzlOZ1JrZ1FhWWtkSUp0QVNtNUYycnduTXNIZnlKK1YvMGdqV2NXakRid0VHQU45L05YOEg3Vi9G
QUFBQUFFbEZUa1N1UW1DQycpOworICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7Cisg
ICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMC41ZW0gMC41ZW07CisgICAgYmFja2dyb3VuZC1zaXpl
OiAxZW0gMWVtOworfQorCithdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1jbG9zZWQtY2Fw
dGlvbnMtdHJhY2stbGlzdCBsaS5zZWxlY3RlZDpob3ZlciwKK3ZpZGVvOjotd2Via2l0LW1lZGlh
LWNvbnRyb2xzLWNsb3NlZC1jYXB0aW9ucy10cmFjay1saXN0IGxpLnNlbGVjdGVkOmhvdmVyIHsK
KyAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncw
S0dnb0FBQUFOU1VoRVVnQUFBRFlBQUFBOUNBWUFBQURtZ3BvZUFBQUFHWFJGV0hSVGIyWjBkMkZ5
WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBeUpwVkZoMFdFMU1PbU52YlM1aFpHOWla
UzU0YlhBQUFBQUFBRHcvZUhCaFkydGxkQ0JpWldkcGJqMGk3N3UvSWlCcFpEMGlWelZOTUUxd1Ey
Vm9hVWg2Y21WVGVrNVVZM3ByWXpsa0lqOCtJRHg0T25odGNHMWxkR0VnZUcxc2JuTTZlRDBpWVdS
dlltVTZibk02YldWMFlTOGlJSGc2ZUcxd2RHczlJa0ZrYjJKbElGaE5VQ0JEYjNKbElEVXVNQzFq
TURZd0lEWXhMakV6TkRjM055d2dNakF4TUM4d01pOHhNaTB4Tnpvek1qb3dNQ0FnSUNBZ0lDQWdJ
ajRnUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9U
azVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0Z1BISmtaanBFWlhOamNtbHdkR2x2YmlC
eVpHWTZZV0p2ZFhROUlpSWdlRzFzYm5NNmVHMXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0
TDNoaGNDOHhMakF2SWlCNGJXeHVjenA0YlhCTlRUMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZi
Uzk0WVhBdk1TNHdMMjF0THlJZ2VHMXNibk02YzNSU1pXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpT
NWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpWSmxaaU1pSUhodGNEcERjbVZoZEc5
eVZHOXZiRDBpUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5UTlNCTllXTnBiblJ2YzJnaUlIaHRjRTFO
T2tsdWMzUmhibU5sU1VROUluaHRjQzVwYVdRNlJUQkVRa0k1UXpneU1UYzRNVEZGTWtKRVJEZEJS
akkzTkVRd056WkVSakFpSUhodGNFMU5Pa1J2WTNWdFpXNTBTVVE5SW5odGNDNWthV1E2UlRCRVFr
STVRemt5TVRjNE1URkZNa0pFUkRkQlJqSTNORVF3TnpaRVJqQWlQaUE4ZUcxd1RVMDZSR1Z5YVha
bFpFWnliMjBnYzNSU1pXWTZhVzV6ZEdGdVkyVkpSRDBpZUcxd0xtbHBaRHBGTUVSQ1FqbEROakl4
TnpneE1VVXlRa1JFTjBGR01qYzBSREEzTmtSR01DSWdjM1JTWldZNlpHOWpkVzFsYm5SSlJEMGll
RzF3TG1ScFpEcEZNRVJDUWpsRE56SXhOemd4TVVVeVFrUkVOMEZHTWpjMFJEQTNOa1JHTUNJdlBp
QThMM0prWmpwRVpYTmpjbWx3ZEdsdmJqNGdQQzl5WkdZNlVrUkdQaUE4TDNnNmVHMXdiV1YwWVQ0
Z1BEOTRjR0ZqYTJWMElHVnVaRDBpY2lJL1BxcFd6MFVBQUFIUFNVUkJWSGphN0pxQmJZUXdERVhk
RFJnaEk3QkJHU0VqWkFSR3lBYU13QWczQXRjSk1rSnVnNHhBVXltcVRnZ1ZPMXlKYlowbEN5R2Qw
RDNaL1B3NGZJQ0FXTmZWNUl2TitabXp6MmsyUDdtWDYxZk94OU05WDZDY3kwcUxPV2ZIR2NxdDlK
aTRWNm9HeXIyaEdrRDFHcUc2bkZFVlZBR2JORUlONnFBS1dLQ3NVMUtnUmdMVUlnWHFSekFTRWlx
eWRoUWJNRStvVmk4RnloQ3FOWUtVS0daVnozdjFWQzFNcExKbFVWZXRVV08xQWtnS2duVWFKRUZo
MTYxWldyVzhPc0VvWUpocWVXbFFEbG10VGhwWTFGaXRRV3UxYmhxVkVMc2dpMU5DcjY1YUJORVly
bWliZWZOblFyRkJwdUo1dHVtMnBGZ2RqT09lS01xRkZBMzNuMUNVUVdYQXdKWG5Ia284QjFkQWdr
Tk9uL3dWTHprVmJubkJyTkJjcFdCVU9IOWk3YnB4SG9udGpzV1FtMG5MZVNheE84aEVpRkZzdWJD
R21wWkVubkg1bG1DVThmTnZTeUxic0swdkpCN3ZMTWhLOHhpQUVzWEVOM01hbFhEVWJ5M2FPSTFL
YzV4ZUFNWnZlMUw1bVlLTW82Q1RMUm1CYTV4c1NkNEhETVF6WTFrempZcVdGSE1vVG0xSkIxS0N1
SENMRzRRR2R2dXVDNzJrQllseDRPWVRTSTJEN2MwTWt1T1B0YzJDOU5nUmtnUWFZa2RJSnRBU201
RjJyd25Nc0hmeUorVi8wZ2pXY1dqRGJ3RUdBTjkvTlg4SDdWL0ZBQUFBQUVsRlRrU3VRbUNDJyks
IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgbGVmdCBib3R0b20sIGNvbG9yLXN0
b3AoMCwgcmdiKDc5LCAxMTIsIDI0NSkpLCBjb2xvci1zdG9wKDEsIHJnYigyOCwgNjYsIDI0NSkp
KTsKKyAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0LCByZXBlYXQ7CisgICAgYmFja2dy
b3VuZC1wb3NpdGlvbjogMC41ZW0gMC41ZW0sIHRvcCBsZWZ0OworICAgIGJhY2tncm91bmQtc2l6
ZTogMWVtIDFlbSwgMTAwJSAxMDAlOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCmluZGV4IDBiYmY3NjNhODA1N2Y2ZTJkOGRh
ZDFmYmVhMzZkYTMyMzQ5YmQ4MjEuLmNjNjhjZDJmMGU3Nzg3ZmIwMzBmMWI3YjRiZTdlYTk3MTgw
N2M5MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJv
bEVsZW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRy
b2xFbGVtZW50cy5jcHAKQEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRlICJIVE1MTWVkaWFFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTFZpZGVvRWxlbWVu
dC5oIgorI2luY2x1ZGUgIkxhbmd1YWdlLmgiCiAjaW5jbHVkZSAiTGF5b3V0UmVwYWludGVyLmgi
CiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgogI2luY2x1ZGUgIk1lZGlhQ29udHJvbFJv
b3RFbGVtZW50LmgiCkBAIC02Miw2ICs2Myw3IEBACiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNp
bmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgorI2luY2x1ZGUgIlRl
eHRUcmFja0xpc3QuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xMTQsNiArMTE2LDE0
IEBAIHZvaWQgTWVkaWFDb250cm9sRWxlbWVudDo6aGlkZSgpCiAgICAgc2V0SW5saW5lU3R5bGVQ
cm9wZXJ0eShDU1NQcm9wZXJ0eURpc3BsYXksIENTU1ZhbHVlTm9uZSk7CiB9CiAKK2Jvb2wgTWVk
aWFDb250cm9sRWxlbWVudDo6aXNTaG93aW5nKCkgY29uc3QKK3sKKyAgICBjb25zdCBTdHlsZVBy
b3BlcnR5U2V0KiBwcm9wZXJ0eVNldCA9IGlubGluZVN0eWxlKCk7CisgICAgLy8gRm9sbG93aW5n
IHRoZSBjb2RlIGZyb20gc2hvdygpIGFuZCBoaWRlKCkgYWJvdmUsIHdlIG9ubHkgaGF2ZQorICAg
IC8vIHRvIGNoZWNrIGZvciB0aGUgcHJlc2Vuc2Ugb2YgaW5saW5lIGRpc3BsYXkuCisgICAgcmV0
dXJuICghcHJvcGVydHlTZXQgfHwgIXByb3BlcnR5U2V0LT5nZXRQcm9wZXJ0eUNTU1ZhbHVlKENT
U1Byb3BlcnR5RGlzcGxheSkpOworfQorCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CiAKIGlubGluZSBNZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQ6Ok1lZGlhQ29udHJvbFBhbmVsRWxl
bWVudChEb2N1bWVudCogZG9jdW1lbnQpCkBAIC04NTEsMjUgKzg2MSw1NiBAQCBjb25zdCBBdG9t
aWNTdHJpbmcmIE1lZGlhQ29udHJvbFJldHVyblRvUmVhbHRpbWVCdXR0b25FbGVtZW50OjpzaGFk
b3dQc2V1ZG9JZCgpCiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotaW5saW5l
IE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudDo6TWVkaWFDb250
cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCkK
K2lubGluZSBNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc0NvbnRhaW5lckVsZW1lbnQ6Ok1lZGlh
Q29udHJvbENsb3NlZENhcHRpb25zQ29udGFpbmVyRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQp
CisgICAgOiBNZWRpYUNvbnRyb2xFbGVtZW50KGRvY3VtZW50KQoreworfQorCitQYXNzUmVmUHRy
PE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zQ29udGFpbmVyRWxlbWVudD4gTWVkaWFDb250cm9s
Q2xvc2VkQ2FwdGlvbnNDb250YWluZXJFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50
KQoreworICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc0NvbnRhaW5lckVsZW1l
bnQ+IGVsZW1lbnQgPSBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNDb250
YWluZXJFbGVtZW50KGRvY3VtZW50KSk7CisgICAgZWxlbWVudC0+aGlkZSgpOworICAgIHJldHVy
biBlbGVtZW50LnJlbGVhc2UoKTsKK30KKworY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRy
b2xDbG9zZWRDYXB0aW9uc0NvbnRhaW5lckVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QK
K3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1t
ZWRpYS1jb250cm9scy1jbG9zZWQtY2FwdGlvbnMtY29udGFpbmVyIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHJldHVybiBpZDsKK30KKworLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorCitpbmxpbmUgTWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2Fw
dGlvbnNCdXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRv
bkVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBNZWRpYUNvbnRyb2xzKiBjb250cm9scykKICAg
ICA6IE1lZGlhQ29udHJvbElucHV0RWxlbWVudChkb2N1bWVudCwgTWVkaWFTaG93Q2xvc2VkQ2Fw
dGlvbnNCdXR0b24pCisgICAgLCBtX2NvbnRyb2xzKGNvbnRyb2xzKQogewogfQogCi1QYXNzUmVm
UHRyPE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudD4gTWVkaWFD
b250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQq
IGRvY3VtZW50KQorUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1
dHRvbkVsZW1lbnQ+IE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVu
dDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCwgTWVkaWFDb250cm9scyogY29udHJvbHMpCiB7
Ci0gICAgUmVmUHRyPE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVu
dD4gYnV0dG9uID0gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25z
QnV0dG9uRWxlbWVudChkb2N1bWVudCkpOworICAgIEFTU0VSVChjb250cm9scyk7CisKKyAgICBS
ZWZQdHI8TWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50PiBidXR0
b24gPSBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25F
bGVtZW50KGRvY3VtZW50LCBjb250cm9scykpOwogICAgIGJ1dHRvbi0+Y3JlYXRlU2hhZG93U3Vi
dHJlZSgpOwogICAgIGJ1dHRvbi0+c2V0VHlwZSgiYnV0dG9uIik7CiAgICAgYnV0dG9uLT5oaWRl
KCk7CiAgICAgcmV0dXJuIGJ1dHRvbi5yZWxlYXNlKCk7CiB9CiAKK3ZvaWQgTWVkaWFDb250cm9s
VG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50Ojp1cGRhdGVEaXNwbGF5VHlwZSgpCit7
CisgICAgc2V0RGlzcGxheVR5cGUobWVkaWFDb250cm9sbGVyKCktPmNsb3NlZENhcHRpb25zVmlz
aWJsZSgpID8gTWVkaWFIaWRlQ2xvc2VkQ2FwdGlvbnNCdXR0b24gOiBNZWRpYVNob3dDbG9zZWRD
YXB0aW9uc0J1dHRvbik7Cit9CisKIHZvaWQgTWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlv
bnNCdXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKIHsKICAg
ICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkuY2xpY2tFdmVudCkgeworICAgICAg
ICAvLyBGSVhNRTogVGhpcyBpcyBub3cgaW5jb3JyZWN0bHkgZG9pbmcgdHdvIHRoaW5ncyBhdCBv
bmNlOiBzaG93aW5nIHRoZSBsaXN0IG9mIGNhcHRpb25zIGFuZCB0b2dnbGluZyBkaXNwbGF5Lgor
ICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxNjcw
CiAgICAgICAgIG1lZGlhQ29udHJvbGxlcigpLT5zZXRDbG9zZWRDYXB0aW9uc1Zpc2libGUoIW1l
ZGlhQ29udHJvbGxlcigpLT5jbG9zZWRDYXB0aW9uc1Zpc2libGUoKSk7CiAgICAgICAgIHNldENo
ZWNrZWQobWVkaWFDb250cm9sbGVyKCktPmNsb3NlZENhcHRpb25zVmlzaWJsZSgpKTsKKyAgICAg
ICAgbV9jb250cm9scy0+dG9nZ2xlQ2xvc2VkQ2FwdGlvblRyYWNrTGlzdCgpOwogICAgICAgICB1
cGRhdGVEaXNwbGF5VHlwZSgpOwogICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsK
ICAgICB9CkBAIC04NzcsMTcgKzkxOCwxMTUgQEAgdm9pZCBNZWRpYUNvbnRyb2xUb2dnbGVDbG9z
ZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGUKICAg
ICBIVE1MSW5wdXRFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKGV2ZW50KTsKIH0KIAotdm9p
ZCBNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ6OnVwZGF0ZURp
c3BsYXlUeXBlKCkKK2NvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sVG9nZ2xlQ2xvc2Vk
Q2FwdGlvbnNCdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAgc2V0
RGlzcGxheVR5cGUobWVkaWFDb250cm9sbGVyKCktPmNsb3NlZENhcHRpb25zVmlzaWJsZSgpID8g
TWVkaWFIaWRlQ2xvc2VkQ2FwdGlvbnNCdXR0b24gOiBNZWRpYVNob3dDbG9zZWRDYXB0aW9uc0J1
dHRvbik7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJr
aXQtbWVkaWEtY29udHJvbHMtdG9nZ2xlLWNsb3NlZC1jYXB0aW9ucy1idXR0b24iLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgcmV0dXJuIGlkOwogfQogCi1jb25z
dCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxl
bWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorCitpbmxpbmUgTWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVtZW50
OjpNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQoRG9jdW1lbnQqIGRv
Y3VtZW50KQorICAgIDogTWVkaWFDb250cm9sRWxlbWVudChkb2N1bWVudCkKIHsKLSAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9s
cy10b2dnbGUtY2xvc2VkLWNhcHRpb25zLWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpKTsKK30KKworUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9u
c1RyYWNrTGlzdEVsZW1lbnQ+IE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zVHJhY2tMaXN0RWxl
bWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICBSZWZQdHI8TWVkaWFDb250
cm9sQ2xvc2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVtZW50PiBlbGVtZW50ID0gYWRvcHRSZWYobmV3
IE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zVHJhY2tMaXN0RWxlbWVudChkb2N1bWVudCkpOwor
ICAgIHJldHVybiBlbGVtZW50LnJlbGVhc2UoKTsKK30KKwordm9pZCBNZWRpYUNvbnRyb2xDbG9z
ZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2
ZW50KQoreworICAgIC8vIEZJWE1FOiBIb29rIHRoaXMgdXAgdG8gYWN0dWFsIHRleHQgdHJhY2tz
LgorICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE2NzAK
KyAgICBVTlVTRURfUEFSQU0oZXZlbnQpOworfQorCitjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlh
Q29udHJvbENsb3NlZENhcHRpb25zVHJhY2tMaXN0RWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBj
b25zdAoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Vi
a2l0LW1lZGlhLWNvbnRyb2xzLWNsb3NlZC1jYXB0aW9ucy10cmFjay1saXN0IiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBpZDsKIH0KIAordm9pZCBN
ZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQ6OnVwZGF0ZURpc3BsYXko
KQoreworICAgIC8vIFJlbW92ZSBhbnkgZXhpc3RpbmcgY29udGVudC4KKyAgICByZW1vdmVDaGls
ZHJlbigpOworCisgICAgaWYgKCFtZWRpYUNvbnRyb2xsZXIoKS0+aGFzQ2xvc2VkQ2FwdGlvbnMo
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50
ID0gdG9QYXJlbnRNZWRpYUVsZW1lbnQodGhpcyk7CisgICAgaWYgKCFtZWRpYUVsZW1lbnQpCisg
ICAgICAgIHJldHVybjsKKworICAgIFRleHRUcmFja0xpc3QqIHRyYWNrTGlzdCA9IG1lZGlhRWxl
bWVudC0+dGV4dFRyYWNrcygpOworCisgICAgaWYgKCF0cmFja0xpc3QgfHwgIXRyYWNrTGlzdC0+
bGVuZ3RoKCkpCisgICAgICAgIHJldHVybjsKKworICAgIERvY3VtZW50KiBkb2MgPSBkb2N1bWVu
dCgpOworCisgICAgUmVmUHRyPEVsZW1lbnQ+IGNhcHRpb25zU2VjdGlvbiA9IGRvYy0+Y3JlYXRl
RWxlbWVudChzZWN0aW9uVGFnLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBSZWZQdHI8RWxl
bWVudD4gY2FwdGlvbnNIZWFkZXIgPSBkb2MtPmNyZWF0ZUVsZW1lbnQoaDNUYWcsIEFTU0VSVF9O
T19FWENFUFRJT04pOworICAgIGNhcHRpb25zSGVhZGVyLT5hcHBlbmRDaGlsZChkb2MtPmNyZWF0
ZVRleHROb2RlKCJDbG9zZWQgQ2FwdGlvbnMiKSk7CisgICAgY2FwdGlvbnNTZWN0aW9uLT5hcHBl
bmRDaGlsZChjYXB0aW9uc0hlYWRlcik7CisgICAgUmVmUHRyPEVsZW1lbnQ+IGNhcHRpb25zTGlz
dCA9IGRvYy0+Y3JlYXRlRWxlbWVudCh1bFRhZywgQVNTRVJUX05PX0VYQ0VQVElPTik7CisKKyAg
ICBSZWZQdHI8RWxlbWVudD4gc3VidGl0bGVzU2VjdGlvbiA9IGRvYy0+Y3JlYXRlRWxlbWVudChz
ZWN0aW9uVGFnLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBSZWZQdHI8RWxlbWVudD4gc3Vi
dGl0bGVzSGVhZGVyID0gZG9jLT5jcmVhdGVFbGVtZW50KGgzVGFnLCBBU1NFUlRfTk9fRVhDRVBU
SU9OKTsKKyAgICBzdWJ0aXRsZXNIZWFkZXItPmFwcGVuZENoaWxkKGRvYy0+Y3JlYXRlVGV4dE5v
ZGUoIlN1YnRpdGxlcyIpKTsKKyAgICBzdWJ0aXRsZXNTZWN0aW9uLT5hcHBlbmRDaGlsZChzdWJ0
aXRsZXNIZWFkZXIpOworICAgIFJlZlB0cjxFbGVtZW50PiBzdWJ0aXRsZXNMaXN0ID0gZG9jLT5j
cmVhdGVFbGVtZW50KHVsVGFnLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKworICAgIFJlZlB0cjxF
bGVtZW50PiB0cmFja0l0ZW07CisKKyAgICB0cmFja0l0ZW0gPSBkb2MtPmNyZWF0ZUVsZW1lbnQo
bGlUYWcsIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIHRyYWNrSXRlbS0+YXBwZW5kQ2hpbGQo
ZG9jLT5jcmVhdGVUZXh0Tm9kZSgiT2ZmIikpOworICAgIC8vIEZJWE1FOiBUaGVzZSBsaXN0cyBh
cmUgbm90IHlldCBsaXZlLiBNYXJrIHRoZSBPZmYgZW50cnkgYXMgdGhlIHNlbGVjdGVkIG9uZSBm
b3Igbm93LgorICAgIHRyYWNrSXRlbS0+c2V0QXR0cmlidXRlKGNsYXNzQXR0ciwgInNlbGVjdGVk
Iik7CisgICAgY2FwdGlvbnNMaXN0LT5hcHBlbmRDaGlsZCh0cmFja0l0ZW0pOworCisgICAgdHJh
Y2tJdGVtID0gZG9jLT5jcmVhdGVFbGVtZW50KGxpVGFnLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsK
KyAgICB0cmFja0l0ZW0tPmFwcGVuZENoaWxkKGRvYy0+Y3JlYXRlVGV4dE5vZGUoIk9mZiIpKTsK
KyAgICAvLyBGSVhNRTogVGhlc2UgbGlzdHMgYXJlIG5vdCB5ZXQgbGl2ZS4gTWFyayB0aGUgT2Zm
IGVudHJ5IGFzIHRoZSBzZWxlY3RlZCBvbmUgZm9yIG5vdy4KKyAgICB0cmFja0l0ZW0tPnNldEF0
dHJpYnV0ZShjbGFzc0F0dHIsICJzZWxlY3RlZCIpOworICAgIHN1YnRpdGxlc0xpc3QtPmFwcGVu
ZENoaWxkKHRyYWNrSXRlbSk7CisKKyAgICBib29sIGhhc0NhcHRpb25zID0gZmFsc2U7CisgICAg
Ym9vbCBoYXNTdWJ0aXRsZXMgPSBmYWxzZTsKKworICAgIGZvciAodW5zaWduZWQgaSA9IDAsIGxl
bmd0aCA9IHRyYWNrTGlzdC0+bGVuZ3RoKCk7IGkgPCBsZW5ndGg7ICsraSkgeworICAgICAgICBU
ZXh0VHJhY2sqIHRyYWNrID0gdHJhY2tMaXN0LT5pdGVtKGkpOworICAgICAgICB0cmFja0l0ZW0g
PSBkb2MtPmNyZWF0ZUVsZW1lbnQobGlUYWcsIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgICAg
ICBBdG9taWNTdHJpbmcgbGFiZWxUZXh0ID0gdHJhY2stPmxhYmVsKCk7CisgICAgICAgIGlmIChs
YWJlbFRleHQuaXNOdWxsKCkgfHwgbGFiZWxUZXh0LmlzRW1wdHkoKSkKKyAgICAgICAgICAgIGxh
YmVsVGV4dCA9IGRpc3BsYXlOYW1lRm9yTGFuZ3VhZ2VMb2NhbGUodHJhY2stPmxhbmd1YWdlKCkp
OworICAgICAgICBpZiAobGFiZWxUZXh0LmlzTnVsbCgpIHx8IGxhYmVsVGV4dC5pc0VtcHR5KCkp
CisgICAgICAgICAgICBsYWJlbFRleHQgPSAiTm8gTGFiZWwiOworCisgICAgICAgIGlmICh0cmFj
ay0+a2luZCgpID09IHRyYWNrLT5jYXB0aW9uc0tleXdvcmQoKSkgeworICAgICAgICAgICAgaGFz
Q2FwdGlvbnMgPSB0cnVlOworICAgICAgICAgICAgY2FwdGlvbnNMaXN0LT5hcHBlbmRDaGlsZCh0
cmFja0l0ZW0pOworICAgICAgICB9CisgICAgICAgIGlmICh0cmFjay0+a2luZCgpID09IHRyYWNr
LT5zdWJ0aXRsZXNLZXl3b3JkKCkpIHsKKyAgICAgICAgICAgIGhhc1N1YnRpdGxlcyA9IHRydWU7
CisgICAgICAgICAgICBzdWJ0aXRsZXNMaXN0LT5hcHBlbmRDaGlsZCh0cmFja0l0ZW0pOworICAg
ICAgICB9CisgICAgICAgIHRyYWNrSXRlbS0+YXBwZW5kQ2hpbGQoZG9jLT5jcmVhdGVUZXh0Tm9k
ZShsYWJlbFRleHQpKTsKKyAgICB9CisKKyAgICBjYXB0aW9uc1NlY3Rpb24tPmFwcGVuZENoaWxk
KGNhcHRpb25zTGlzdCk7CisgICAgc3VidGl0bGVzU2VjdGlvbi0+YXBwZW5kQ2hpbGQoc3VidGl0
bGVzTGlzdCk7CisKKyAgICBpZiAoaGFzQ2FwdGlvbnMpCisgICAgICAgIGFwcGVuZENoaWxkKGNh
cHRpb25zU2VjdGlvbik7CisgICAgaWYgKGhhc1N1YnRpdGxlcykKKyAgICAgICAgYXBwZW5kQ2hp
bGQoc3VidGl0bGVzU2VjdGlvbik7Cit9CisKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KIAogTWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50OjpNZWRpYUNvbnRyb2xUaW1lbGluZUVs
ZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBNZWRpYUNvbnRyb2xzKiBjb250cm9scykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5oCmluZGV4
IDY2Y2IyZGE2YmI1Yjk0NDFiOGUxYmRhNDgxYzM1N2Y0M2VjM2MzMWMuLmMzZmJjODEyMTkyZDM0
MWY2MmI5NGUyMzhlYmUxNGVkMmVlOTY3NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuaApAQCAtNzUsNiArNzUsOCBAQCBlbnVtIE1l
ZGlhQ29udHJvbEVsZW1lbnRUeXBlIHsKICAgICBNZWRpYVRleHRUcmFja0Rpc3BsYXksCiAgICAg
TWVkaWFFeGl0RnVsbHNjcmVlbkJ1dHRvbiwKICAgICBNZWRpYU92ZXJsYXlQbGF5QnV0dG9uLAor
ICAgIE1lZGlhQ2xvc2VkQ2FwdGlvbnNDb250YWluZXIsCisgICAgTWVkaWFDbG9zZWRDYXB0aW9u
c1RyYWNrTGlzdCwKIH07CiAKIEhUTUxNZWRpYUVsZW1lbnQqIHRvUGFyZW50TWVkaWFFbGVtZW50
KE5vZGUqKTsKQEAgLTg4LDYgKzkwLDcgQEAgY2xhc3MgTWVkaWFDb250cm9sRWxlbWVudCA6IHB1
YmxpYyBIVE1MRGl2RWxlbWVudCB7CiBwdWJsaWM6CiAgICAgdm9pZCBoaWRlKCk7CiAgICAgdm9p
ZCBzaG93KCk7CisgICAgYm9vbCBpc1Nob3dpbmcoKSBjb25zdDsKIAogICAgIHZpcnR1YWwgTWVk
aWFDb250cm9sRWxlbWVudFR5cGUgZGlzcGxheVR5cGUoKSBjb25zdCA9IDA7CiAKQEAgLTM4MCwx
NyArMzgzLDUxIEBAIHByaXZhdGU6CiAKIGNsYXNzIE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENh
cHRpb25zQnV0dG9uRWxlbWVudCA6IHB1YmxpYyBNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQgewog
cHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENh
cHRpb25zQnV0dG9uRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Kik7CisgICAgc3RhdGljIFBhc3NS
ZWZQdHI8TWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50PiBjcmVh
dGUoRG9jdW1lbnQqLCBNZWRpYUNvbnRyb2xzKik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGVmYXVs
dEV2ZW50SGFuZGxlcihFdmVudCopOwogICAgIHZpcnR1YWwgYm9vbCB3aWxsUmVzcG9uZFRvTW91
c2VDbGlja0V2ZW50cygpIE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVE
aXNwbGF5VHlwZSgpOwogCiBwcml2YXRlOgotICAgIE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENh
cHRpb25zQnV0dG9uRWxlbWVudChEb2N1bWVudCopOworICAgIE1lZGlhQ29udHJvbFRvZ2dsZUNs
b3NlZENhcHRpb25zQnV0dG9uRWxlbWVudChEb2N1bWVudCosIE1lZGlhQ29udHJvbHMqKTsKKyAg
ICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdDsKKwor
ICAgIE1lZGlhQ29udHJvbHMqIG1fY29udHJvbHM7Cit9OworCisvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCiAKK2NsYXNzIE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zQ29udGFpbmVy
RWxlbWVudCA6IHB1YmxpYyBNZWRpYUNvbnRyb2xFbGVtZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc0NvbnRhaW5lckVsZW1lbnQ+
IGNyZWF0ZShEb2N1bWVudCopOworCisgICAgdmlydHVhbCBib29sIHdpbGxSZXNwb25kVG9Nb3Vz
ZUNsaWNrRXZlbnRzKCkgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQorCitwcml2YXRlOgorICAg
IE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zQ29udGFpbmVyRWxlbWVudChEb2N1bWVudCopOwor
CisgICAgdmlydHVhbCBNZWRpYUNvbnRyb2xFbGVtZW50VHlwZSBkaXNwbGF5VHlwZSgpIGNvbnN0
IHsgcmV0dXJuIE1lZGlhQ2xvc2VkQ2FwdGlvbnNDb250YWluZXI7IH0KICAgICB2aXJ0dWFsIGNv
bnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdDsKLX07ICAgIAorfTsKKwor
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitjbGFzcyBNZWRpYUNvbnRyb2xDbG9z
ZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQgOiBwdWJsaWMgTWVkaWFDb250cm9sRWxlbWVudCB7
CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlv
bnNUcmFja0xpc3RFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqKTsKKworICAgIHZpcnR1YWwgdm9p
ZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50Kik7CisgICAgdmlydHVhbCBib29sIHdpbGxSZXNw
b25kVG9Nb3VzZUNsaWNrRXZlbnRzKCkgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQorCisgICAg
dm9pZCB1cGRhdGVEaXNwbGF5KCk7CisKK3ByaXZhdGU6CisgICAgTWVkaWFDb250cm9sQ2xvc2Vk
Q2FwdGlvbnNUcmFja0xpc3RFbGVtZW50KERvY3VtZW50Kik7CisKKyAgICB2aXJ0dWFsIE1lZGlh
Q29udHJvbEVsZW1lbnRUeXBlIGRpc3BsYXlUeXBlKCkgY29uc3QgeyByZXR1cm4gTWVkaWFDbG9z
ZWRDYXB0aW9uc1RyYWNrTGlzdDsgfQorICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBz
aGFkb3dQc2V1ZG9JZCgpIGNvbnN0OworfTsKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRy
b2xSb290RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRy
b2xSb290RWxlbWVudC5jcHAKaW5kZXggMjJhMDE4ZmQ5NzAwNGE2Nzc1NmU5MmUxZWQ1MDJlMGI5
YzBmZTg4Zi4uNmQ3YzEwOGEyM2MyNWRiM2E1MWE1Njc4NjZhYjBhMDIyYzdlMDgxMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVt
ZW50LmNwcApAQCAtNjIsNiArNjIsOCBAQCBNZWRpYUNvbnRyb2xSb290RWxlbWVudDo6TWVkaWFD
b250cm9sUm9vdEVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KQogICAgICwgbV9zZWVrQmFja0J1
dHRvbigwKQogICAgICwgbV9zZWVrRm9yd2FyZEJ1dHRvbigwKQogICAgICwgbV90b2dnbGVDbG9z
ZWRDYXB0aW9uc0J1dHRvbigwKQorICAgICwgbV9jbG9zZWRDYXB0aW9uc1RyYWNrTGlzdCgwKQor
ICAgICwgbV9jbG9zZWRDYXB0aW9uc0NvbnRhaW5lcigwKQogICAgICwgbV9wYW5lbE11dGVCdXR0
b24oMCkKICAgICAsIG1fdm9sdW1lU2xpZGVyKDApCiAgICAgLCBtX3ZvbHVtZVNsaWRlck11dGVC
dXR0b24oMCkKQEAgLTE2MiwxMSArMTY0LDI1IEBAIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sUm9v
dEVsZW1lbnQ+IE1lZGlhQ29udHJvbFJvb3RFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvCiAg
ICAgICAgIHJldHVybiAwOwogCiAgICAgaWYgKGRvY3VtZW50LT5wYWdlKCktPnRoZW1lKCktPnN1
cHBvcnRzQ2xvc2VkQ2FwdGlvbmluZygpKSB7Ci0gICAgICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xU
b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ+IHRvZ2dsZUNsb3NlZENhcHRpb25zQnV0
dG9uID0gTWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50OjpjcmVh
dGUoZG9jdW1lbnQpOworCisgICAgICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9u
c0NvbnRhaW5lckVsZW1lbnQ+IGNsb3NlZENhcHRpb25zQ29udGFpbmVyID0gTWVkaWFDb250cm9s
Q2xvc2VkQ2FwdGlvbnNDb250YWluZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworCisgICAg
ICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQ+IGNs
b3NlZENhcHRpb25zVHJhY2tMaXN0ID0gTWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNUcmFja0xp
c3RFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgICAgICBjb250cm9scy0+bV9jbG9zZWRD
YXB0aW9uc1RyYWNrTGlzdCA9IGNsb3NlZENhcHRpb25zVHJhY2tMaXN0LmdldCgpOworICAgICAg
ICBjbG9zZWRDYXB0aW9uc0NvbnRhaW5lci0+YXBwZW5kQ2hpbGQoY2xvc2VkQ2FwdGlvbnNUcmFj
a0xpc3QucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgICAgIGlmIChlYykKKyAgICAgICAgICAg
IHJldHVybiAwOworCisgICAgICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0
aW9uc0J1dHRvbkVsZW1lbnQ+IHRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uID0gTWVkaWFDb250
cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIGNv
bnRyb2xzLmdldCgpKTsKICAgICAgICAgY29udHJvbHMtPm1fdG9nZ2xlQ2xvc2VkQ2FwdGlvbnNC
dXR0b24gPSB0b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbi5nZXQoKTsKICAgICAgICAgcGFuZWwt
PmFwcGVuZENoaWxkKHRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uLnJlbGVhc2UoKSwgZWMsIHRy
dWUpOwogICAgICAgICBpZiAoZWMpCiAgICAgICAgICAgICByZXR1cm4gMDsKKworICAgICAgICBj
b250cm9scy0+bV9jbG9zZWRDYXB0aW9uc0NvbnRhaW5lciA9IGNsb3NlZENhcHRpb25zQ29udGFp
bmVyLmdldCgpOworICAgICAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoY2xvc2VkQ2FwdGlvbnNDb250
YWluZXIucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgICAgIGlmIChlYykKKyAgICAgICAgICAg
IHJldHVybiAwOwogICAgIH0KIAogICAgIC8vIEZJWE1FOiBPbmx5IGNyZWF0ZSB3aGVuIG5lZWRl
ZCA8aHR0cDovL3dlYmtpdC5vcmcvYi81NzE2Mz4KQEAgLTI2Niw2ICsyODIsMTAgQEAgdm9pZCBN
ZWRpYUNvbnRyb2xSb290RWxlbWVudDo6c2V0TWVkaWFDb250cm9sbGVyKE1lZGlhQ29udHJvbGxl
ckludGVyZmFjZSogY29udHIKICAgICAgICAgbV9zZWVrRm9yd2FyZEJ1dHRvbi0+c2V0TWVkaWFD
b250cm9sbGVyKGNvbnRyb2xsZXIpOwogICAgIGlmIChtX3RvZ2dsZUNsb3NlZENhcHRpb25zQnV0
dG9uKQogICAgICAgICBtX3RvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uLT5zZXRNZWRpYUNvbnRy
b2xsZXIoY29udHJvbGxlcik7CisgICAgaWYgKG1fY2xvc2VkQ2FwdGlvbnNUcmFja0xpc3QpCisg
ICAgICAgIG1fY2xvc2VkQ2FwdGlvbnNUcmFja0xpc3QtPnNldE1lZGlhQ29udHJvbGxlcihjb250
cm9sbGVyKTsKKyAgICBpZiAobV9jbG9zZWRDYXB0aW9uc0NvbnRhaW5lcikKKyAgICAgICAgbV9j
bG9zZWRDYXB0aW9uc0NvbnRhaW5lci0+c2V0TWVkaWFDb250cm9sbGVyKGNvbnRyb2xsZXIpOwog
ICAgIGlmIChtX3BhbmVsTXV0ZUJ1dHRvbikKICAgICAgICAgbV9wYW5lbE11dGVCdXR0b24tPnNl
dE1lZGlhQ29udHJvbGxlcihjb250cm9sbGVyKTsKICAgICBpZiAobV92b2x1bWVTbGlkZXIpCkBA
IC0zMDIsNiArMzIyLDcgQEAgdm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudDo6aGlkZSgpCiAg
ICAgbV9wYW5lbC0+c2V0SXNEaXNwbGF5ZWQoZmFsc2UpOwogICAgIG1fcGFuZWwtPmhpZGUoKTsK
ICAgICBtX3ZvbHVtZVNsaWRlckNvbnRhaW5lci0+aGlkZSgpOworICAgIG1fY2xvc2VkQ2FwdGlv
bnNDb250YWluZXItPmhpZGUoKTsKIH0KIAogdm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudDo6
bWFrZU9wYXF1ZSgpCkBAIC0zMTMsNiArMzM0LDcgQEAgdm9pZCBNZWRpYUNvbnRyb2xSb290RWxl
bWVudDo6bWFrZVRyYW5zcGFyZW50KCkKIHsKICAgICBtX3BhbmVsLT5tYWtlVHJhbnNwYXJlbnQo
KTsKICAgICBtX3ZvbHVtZVNsaWRlckNvbnRhaW5lci0+aGlkZSgpOworICAgIG1fY2xvc2VkQ2Fw
dGlvbnNDb250YWluZXItPmhpZGUoKTsKIH0KIAogdm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVu
dDo6cmVzZXQoKQpAQCAtMzQ2LDkgKzM2OCwxMCBAQCB2b2lkIE1lZGlhQ29udHJvbFJvb3RFbGVt
ZW50OjpyZXNldCgpCiAgICAgICAgIG1fdm9sdW1lU2xpZGVyLT5zZXRWb2x1bWUobV9tZWRpYUNv
bnRyb2xsZXItPnZvbHVtZSgpKTsKIAogICAgIGlmIChtX3RvZ2dsZUNsb3NlZENhcHRpb25zQnV0
dG9uKSB7Ci0gICAgICAgIGlmIChtX21lZGlhQ29udHJvbGxlci0+aGFzQ2xvc2VkQ2FwdGlvbnMo
KSkKKyAgICAgICAgaWYgKG1fbWVkaWFDb250cm9sbGVyLT5oYXNDbG9zZWRDYXB0aW9ucygpKSB7
CiAgICAgICAgICAgICBtX3RvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uLT5zaG93KCk7Ci0gICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIG1fY2xvc2VkQ2FwdGlvbnNUcmFja0xpc3QtPnVwZGF0ZURp
c3BsYXkoKTsKKyAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBtX3RvZ2dsZUNsb3NlZENhcHRp
b25zQnV0dG9uLT5oaWRlKCk7CiAgICAgfQogCkBAIC00NDcsNiArNDcwLDggQEAgdm9pZCBNZWRp
YUNvbnRyb2xSb290RWxlbWVudDo6cmVwb3J0ZWRFcnJvcigpCiAgICAgICAgIG1fdm9sdW1lU2xp
ZGVyQ29udGFpbmVyLT5oaWRlKCk7CiAgICAgaWYgKG1fdG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0
b24gJiYgIXBhZ2UtPnRoZW1lKCktPmhhc093bkRpc2FibGVkU3RhdGVIYW5kbGluZ0ZvcihNZWRp
YVRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uUGFydCkpCiAgICAgICAgIG1fdG9nZ2xlQ2xvc2Vk
Q2FwdGlvbnNCdXR0b24tPmhpZGUoKTsKKyAgICBpZiAobV9jbG9zZWRDYXB0aW9uc0NvbnRhaW5l
cikKKyAgICAgICAgbV9jbG9zZWRDYXB0aW9uc0NvbnRhaW5lci0+aGlkZSgpOwogfQogCiB2b2lk
IE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Ojp1cGRhdGVTdGF0dXNEaXNwbGF5KCkKQEAgLTU0Miw2
ICs1NjcsMTkgQEAgdm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudDo6c2hvd1ZvbHVtZVNsaWRl
cigpCiAgICAgICAgIG1fdm9sdW1lU2xpZGVyQ29udGFpbmVyLT5zaG93KCk7CiB9CiAKK3ZvaWQg
TWVkaWFDb250cm9sUm9vdEVsZW1lbnQ6OnRvZ2dsZUNsb3NlZENhcHRpb25UcmFja0xpc3QoKQor
eworICAgIGlmICghbV9tZWRpYUNvbnRyb2xsZXItPmhhc0Nsb3NlZENhcHRpb25zKCkpCisgICAg
ICAgIHJldHVybjsKKworICAgIGlmIChtX2Nsb3NlZENhcHRpb25zQ29udGFpbmVyKSB7CisgICAg
ICAgIGlmIChtX2Nsb3NlZENhcHRpb25zQ29udGFpbmVyLT5pc1Nob3dpbmcoKSkKKyAgICAgICAg
ICAgIG1fY2xvc2VkQ2FwdGlvbnNDb250YWluZXItPmhpZGUoKTsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgbV9jbG9zZWRDYXB0aW9uc0NvbnRhaW5lci0+c2hvdygpOworICAgIH0KK30KKwog
Ym9vbCBNZWRpYUNvbnRyb2xSb290RWxlbWVudDo6c2hvdWxkSGlkZUNvbnRyb2xzKCkKIHsKICAg
ICByZXR1cm4gIW1fcGFuZWwtPmhvdmVyZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudC5oCmluZGV4IGEwYjA5ZDg3NDViN2Fj
NjFhN2Q1OTZkNDFhMjM4OTY2YjYxZjRiNGIuLjA2NzM5YmVhNWFlYzg2OWRhMDdjMjc0YWZjOGQx
YWE1Y2M0MjBiYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlh
Q29udHJvbFJvb3RFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVk
aWFDb250cm9sUm9vdEVsZW1lbnQuaApAQCAtNDIsNyArNDIsOSBAQCBjbGFzcyBNZWRpYUNvbnRy
b2xQbGF5QnV0dG9uRWxlbWVudDsKIGNsYXNzIE1lZGlhQ29udHJvbFNlZWtCdXR0b25FbGVtZW50
OwogY2xhc3MgTWVkaWFDb250cm9sUmV3aW5kQnV0dG9uRWxlbWVudDsKIGNsYXNzIE1lZGlhQ29u
dHJvbFJldHVyblRvUmVhbHRpbWVCdXR0b25FbGVtZW50OworY2xhc3MgTWVkaWFDb250cm9sQ2xv
c2VkQ2FwdGlvbnNDb250YWluZXJFbGVtZW50OwogY2xhc3MgTWVkaWFDb250cm9sVG9nZ2xlQ2xv
c2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50OworY2xhc3MgTWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlv
bnNUcmFja0xpc3RFbGVtZW50OwogY2xhc3MgTWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5
RWxlbWVudDsKIGNsYXNzIE1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudDsKIGNsYXNzIE1lZGlh
Q29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudDsKQEAgLTEwMyw2ICsxMDUsOCBAQCBw
dWJsaWM6CiAgICAgdm9pZCB1cGRhdGVUaW1lRGlzcGxheSgpOwogICAgIHZvaWQgdXBkYXRlU3Rh
dHVzRGlzcGxheSgpOwogCisgICAgdm9pZCB0b2dnbGVDbG9zZWRDYXB0aW9uVHJhY2tMaXN0KCk7
CisKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAgdm9pZCBjcmVhdGVUZXh0VHJhY2tEaXNw
bGF5KCk7CiAgICAgdm9pZCBzaG93VGV4dFRyYWNrRGlzcGxheSgpOwpAQCAtMTQxLDYgKzE0NSw4
IEBAIHByaXZhdGU6CiAgICAgTWVkaWFDb250cm9sU2Vla0JhY2tCdXR0b25FbGVtZW50KiBtX3Nl
ZWtCYWNrQnV0dG9uOwogICAgIE1lZGlhQ29udHJvbFNlZWtGb3J3YXJkQnV0dG9uRWxlbWVudCog
bV9zZWVrRm9yd2FyZEJ1dHRvbjsKICAgICBNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9u
c0J1dHRvbkVsZW1lbnQqIG1fdG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b247CisgICAgTWVkaWFD
b250cm9sQ2xvc2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVtZW50KiBtX2Nsb3NlZENhcHRpb25zVHJh
Y2tMaXN0OworICAgIE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zQ29udGFpbmVyRWxlbWVudCog
bV9jbG9zZWRDYXB0aW9uc0NvbnRhaW5lcjsKICAgICBNZWRpYUNvbnRyb2xQYW5lbE11dGVCdXR0
b25FbGVtZW50KiBtX3BhbmVsTXV0ZUJ1dHRvbjsKICAgICBNZWRpYUNvbnRyb2xWb2x1bWVTbGlk
ZXJFbGVtZW50KiBtX3ZvbHVtZVNsaWRlcjsKICAgICBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJN
dXRlQnV0dG9uRWxlbWVudCogbV92b2x1bWVTbGlkZXJNdXRlQnV0dG9uOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVu
dENocm9taXVtLmNwcAppbmRleCA4MmQ4ZjkyNjBlNmIyYmNmYWRiYzVmZjc3ZTA0YWMwYTg3OTY5
NGNlLi5jMjU5ZmRkM2IwNWNkYTgxN2JjZjUzODIzNDE3NTAwZWEyZjViOWU1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9t
aXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290
RWxlbWVudENocm9taXVtLmNwcApAQCAtMTY2LDcgKzE2Niw3IEBAIGJvb2wgTWVkaWFDb250cm9s
Um9vdEVsZW1lbnRDaHJvbWl1bTo6aW5pdGlhbGl6ZUNvbnRyb2xzKERvY3VtZW50KiBkb2N1bWVu
dCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKGRvY3VtZW50LT5wYWdlKCktPnRo
ZW1lKCktPnN1cHBvcnRzQ2xvc2VkQ2FwdGlvbmluZygpKSB7Ci0gICAgICAgIFJlZlB0cjxNZWRp
YUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ+IHRvZ2dsZUNsb3NlZENh
cHRpb25zQnV0dG9uID0gTWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVt
ZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgICAgICBSZWZQdHI8TWVkaWFDb250cm9sVG9nZ2xl
Q2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50PiB0b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbiA9
IE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRv
Y3VtZW50LCB0aGlzKTsKICAgICAgICAgbV90b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbiA9IHRv
Z2dsZUNsb3NlZENhcHRpb25zQnV0dG9uLmdldCgpOwogICAgICAgICBwYW5lbC0+YXBwZW5kQ2hp
bGQodG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24ucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CiAgICAg
ICAgIGlmIChlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlh
Q29udHJvbHMuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHMuaApp
bmRleCAyODkwOGE5YTEwN2U0NTcwMzkyODY4MzIwMzNkYmEyOGQwMzdiNjM2Li42ZjBmYWQ4MjQx
NmIxMDhjMzcyMmM1NmRiNmY2MTg2YzNmNWM0NzkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvTWVkaWFDb250cm9scy5oCkBAIC03MCw2ICs3MCw4IEBAIGNsYXNzIE1lZGlhQ29udHJv
bHMgOiBwdWJsaWMgSFRNTERpdkVsZW1lbnQgewogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVUaW1l
RGlzcGxheSgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlU3RhdHVzRGlzcGxheSgpID0g
MDsKIAorICAgIHZpcnR1YWwgdm9pZCB0b2dnbGVDbG9zZWRDYXB0aW9uVHJhY2tMaXN0KCkgeyB9
CisKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSGlkZUNvbnRyb2xzKCkgPSAwOwogCiAjaWYgRU5B
QkxFKFZJREVPX1RSQUNLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGFu
Z3VhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGFuZ3VhZ2UuY3BwCmluZGV4IGRi
YTNhODlmYmJjMTM3YzU4ZmNjYWU5MzhiNGFmMWNhNDhlMWQ2Y2QuLmUyOGU3NmUxMDcyYjIwOGQx
YmRhMTUyMzNlZGM3NzQ3MjE4NmE3ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0xhbmd1YWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MYW5ndWFnZS5j
cHAKQEAgLTI3LDggKzI3LDEzIEBACiAjaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKIAogI2luY2x1ZGUg
PHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgogCisjaWYgUExBVEZPUk0oTUFDKQorI2luY2x1ZGUgPENvcmVG
b3VuZGF0aW9uL0NvcmVGb3VuZGF0aW9uLmg+CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiB0eXBlZGVmIEhhc2hNYXA8dm9pZCosIExhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXJGdW5jdGlv
bj4gT2JzZXJ2ZXJNYXA7CkBAIC0xNDIsNSArMTQ3LDE0IEBAIFN0cmluZyBwcmVmZXJyZWRMYW5n
dWFnZUZyb21MaXN0KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBsYW5ndWFnZUxpc3QpCiAKICAgICBy
ZXR1cm4gZW1wdHlTdHJpbmcoKTsKIH0KLSAgICAKKworU3RyaW5nIGRpc3BsYXlOYW1lRm9yTGFu
Z3VhZ2VMb2NhbGUoY29uc3QgU3RyaW5nJiBsb2NhbGVOYW1lKQoreworI2lmIFBMQVRGT1JNKE1B
QykKKyAgICBpZiAoIWxvY2FsZU5hbWUuaXNOdWxsKCkgJiYgIWxvY2FsZU5hbWUuaXNFbXB0eSgp
KQorICAgICAgICByZXR1cm4gQ0ZMb2NhbGVDb3B5RGlzcGxheU5hbWVGb3JQcm9wZXJ0eVZhbHVl
KENGTG9jYWxlQ29weUN1cnJlbnQoKSwga0NGTG9jYWxlSWRlbnRpZmllciwgbG9jYWxlTmFtZS5j
cmVhdGVDRlN0cmluZygpLmdldCgpKTsKKyNlbmRpZgorICAgIHJldHVybiBsb2NhbGVOYW1lOwor
fQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MYW5ndWFnZS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGFuZ3VhZ2UuaAppbmRleCA0MTE2MTVjOWU5YzY4MWU0
ZjE3MGUxNmIwZGYxNzNmNzZkZjZkNjA2Li4yOWYxY2E4YWU1NDExNzk2ZWIyNjQyYmVkY2E3OGYw
ZWRhNGIxY2E0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MYW5ndWFnZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xhbmd1YWdlLmgKQEAgLTQzLDYgKzQzLDgg
QEAgdm9pZCByZW1vdmVMYW5ndWFnZUNoYW5nZU9ic2VydmVyKHZvaWQqIGNvbnRleHQpOwogCiBW
ZWN0b3I8U3RyaW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKTsKIAorU3RyaW5n
IGRpc3BsYXlOYW1lRm9yTGFuZ3VhZ2VMb2NhbGUoY29uc3QgU3RyaW5nJik7CisKIC8vIENhbGxl
ZCBmcm9tIHBsYXRmb3JtIHNwZWNpZmljIGNvZGUgd2hlbiB0aGUgdXNlcidzIHByZWZlcnJlZCBs
YW5ndWFnZShzKSBjaGFuZ2UuCiB2b2lkIGxhbmd1YWdlRGlkQ2hhbmdlKCk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173404</attachid>
            <date>2012-11-09 17:00:37 -0800</date>
            <delta_ts>2012-11-09 17:28:43 -0800</delta_ts>
            <desc>Rebased patch take 3</desc>
            <filename>bug-101669-20121109165845.patch</filename>
            <type>text/plain</type>
            <size>34453</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0MTMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGFiYjYxMDIzNmY1ZGRi
NDNjMmI1ZjFjZWM3NmU1ZWRmMTZlZjhkNS4uNWZlODBkODllNWU1YmI3MTljZGYzZTliZTVlYTg2
YWQ3YzdhNjY3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDEyLTExLTA5ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IGxpc3Qgb2YgdHJh
Y2tzIGluIGNhcHRpb24gbWVkaWEgY29udHJvbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTY2OQorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMg
Q2FybHNvbi4KKworICAgICAgICBBZGQgc29tZSBuZXcgZWxlbWVudHMgdG8gdGhlIG1lZGlhIGNv
bnRyb2wgc2hhZG93IERPTSB0aGF0IGRpc3BsYXkgdGhlIGxpc3Qgb2YgYXZhaWxhYmxlCisgICAg
ICAgIHRyYWNrcyBvbiBhbiBhdWRpby92aWRlbyBlbGVtZW50LiBUaGUgVUkgaXMgaGlkZGVuIGJ5
IGRlZmF1bHQgZXZlcnl3aGVyZSBidXQgb24gTWFjLAorICAgICAgICB3aGVyZSBpdCBpcyBnaXZl
biBhIHZlcnkgYmFzaWMgZGVzaWduLiBBdCB0aGUgbW9tZW50IG9ubHkgdGhlIGxpc3Qgb2YgYXZh
aWxhYmxlIHRyYWNrcworICAgICAgICBhcmUgZGlzcGxheWVkOyBUaGUgZm9sbG93dXAgYnVnIHdp
bGwgbWFrZSB0aGUgVUkgYWN0aXZlOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTAxNjcwCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIC0gdGhpcyBkb2Vzbid0IGV4cG9z
ZSBhbnkgdGVzdGFibGUgc3VyZmFjZS4KKworICAgICAgICAqIGNzcy9tZWRpYUNvbnRyb2xzLmNz
czogQWRkZWQgZGVmYXVsdCBydWxlcyB0aGF0IGhpZGUgdGhlIG5ldyBlbGVtZW50cy4KKyAgICAg
ICAgKiBjc3MvbWVkaWFDb250cm9sc1F1aWNrVGltZS5jc3M6IFNwZWNpZmljIHJ1bGVzIHRoYXQg
Z2l2ZSBhIGJhc2ljIHJlbmRlcmluZyBvZiB0aGUgbmV3IHRyYWNrIGxpc3QuCisgICAgICAgICog
aHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFDb250cm9sRWxlbWVudDo6aXNTaG93aW5nKTogVGVzdHMgZm9yIHRoZSB2aXNpYmlsaXR5
IG9mIGEgY29udHJvbC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbENsb3NlZENhcHRp
b25zQ29udGFpbmVyRWxlbWVudDo6TWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNDb250YWluZXJF
bGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zQ29u
dGFpbmVyRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbENs
b3NlZENhcHRpb25zQ29udGFpbmVyRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50OjpN
ZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50Ojpj
cmVhdGUpOiBOb3cgdGFrZXMgYSByZWZlcmVuY2UgdG8gdGhlIG1lZGlhIGNvbnRyb2xzIGFzIGEg
cGFyYW1ldGVyLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2Fw
dGlvbnNCdXR0b25FbGVtZW50Ojp1cGRhdGVEaXNwbGF5VHlwZSk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ6OmRlZmF1bHRF
dmVudEhhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sVG9nZ2xlQ2xvc2Vk
Q2FwdGlvbnNCdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQ6Ok1lZGlhQ29udHJv
bENsb3NlZENhcHRpb25zVHJhY2tMaXN0RWxlbWVudCk6IE5ldyBlbGVtZW50IGZvciBob2xkaW5n
IGEgbGlzdCBvZiB0cmFja3MgdG8gZGlzcGxheS4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRp
YUNvbnRyb2xFbGVtZW50cy5oOgorICAgICAgICAoTWVkaWFDb250cm9sRWxlbWVudCk6CisgICAg
ICAgIChNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQpOgorICAg
ICAgICAoTWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNDb250YWluZXJFbGVtZW50KToKKyAgICAg
ICAgKE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zVHJhY2tMaXN0RWxlbWVudCk6IEV4YW1pbmVz
IHRoZSBtZWRpYSBlbGVtZW50IHRvIGJ1aWxkIGEgc2hhZG93IERPTSB0aGF0IGxpc3RzIGFsbCB0
aGUgdHJhY2tzIGF2YWlsYWJsZS4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xS
b290RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVu
dDo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250
cm9sUm9vdEVsZW1lbnQ6OmNyZWF0ZSk6IE5ldyB0cmFjayBjb250YWluZXIgYW5kIGxpc3QgZWxl
bWVudHMgY3JlYXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50
OjpzZXRNZWRpYUNvbnRyb2xsZXIpOiBIb29rIHVwIHRoZSBuZXcgZWxlbWVudHMgdG8gdGhlIGNv
bnRyb2xsZXIuLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnQ6Omhp
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnQ6Om1ha2VUcmFu
c3BhcmVudCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVudDo6cmVz
ZXQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnQ6OnJlcG9ydGVk
RXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnQ6OnRvZ2ds
ZUNsb3NlZENhcHRpb25UcmFja0xpc3QpOiBTaG93cyBvciBoaWRlcyB0aGUgcG9wdXAgd2l0aCB0
aGUgbGlzdCBvZiB0cmFja3MuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBodG1sL3No
YWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChNZWRpYUNvbnRyb2xSb290RWxlbWVudCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvTWVk
aWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjppbml0aWFsaXplQ29udHJvbHMpOiBQYXNzIGlu
IHRoZSBjb250cm9scyBhcyBhIHBhcmFtZXRlci4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRp
YUNvbnRyb2xzLmg6CisgICAgICAgIChNZWRpYUNvbnRyb2xzKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9MYW5ndWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkaXNwbGF5TmFtZUZvckxhbmd1YWdl
TG9jYWxlKTogTmV3IGZ1bmN0aW9uIHRvIHJldHVybiBhIGh1bWFuLXJlYWRhYmxlIG5hbWUgZm9y
IGEgbG9jYWxlLCBnaXZlbiB0aGUgaWRlbnRpZmllciBpbnB1dC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9MYW5ndWFnZS5oOgorICAgICAgICAoV2ViQ29yZSk6CisKIDIwMTItMTEtMDkgIEFsZWMgRmxl
dHQgIDxhbGVjZmxldHRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEluZGV4ZWREQjogQ29tYmlu
ZSBJREJCYWNraW5nU3RvcmUgYW5kIElEQkxldmVsREJCYWNraW5nU3RvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzLmNzcyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9tZWRpYUNvbnRyb2xzLmNzcwppbmRleCA2ZGYwMzQwMmQzYTRjOWU3OGFiZjhmNzdlYzRhYjEz
YmZiYmY4NGViLi4wMGVmY2JiYTY1ZDQ0YWEwYjMxNjkyNjAxNjBhZDYwMTkzNTQyMDEwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9scy5jc3MKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL21lZGlhQ29udHJvbHMuY3NzCkBAIC0xODcsNiArMTg3LDE0IEBAIGF1ZGlv
Ojotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRvZ2dsZS1jbG9zZWQtY2FwdGlvbnMtYnV0dG9uLCB2
aWRlbzo6LXdlYmtpdC1tZWRpCiAgICAgY29sb3I6IGluaGVyaXQ7CiB9CiAKK2F1ZGlvOjotd2Vi
a2l0LW1lZGlhLWNvbnRyb2xzLWNsb3NlZC1jYXB0aW9ucy1jb250YWluZXIsIHZpZGVvOjotd2Vi
a2l0LW1lZGlhLWNvbnRyb2xzLWNsb3NlZC1jYXB0aW9ucy1jb250YWluZXIgeworICAgIGRpc3Bs
YXk6IG5vbmU7Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWNsb3NlZC1jYXB0
aW9ucy10cmFjay1saXN0LCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1jbG9zZWQtY2Fw
dGlvbnMtdHJhY2stbGlzdCB7CisgICAgZGlzcGxheTogbm9uZTsKK30KKwogYXVkaW86Oi13ZWJr
aXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlci1tdXRlLWJ1dHRvbiwgdmlkZW86Oi13ZWJr
aXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlci1tdXRlLWJ1dHRvbiB7CiAgICAgLXdlYmtp
dC1hcHBlYXJhbmNlOiBtZWRpYS12b2x1bWUtc2xpZGVyLW11dGUtYnV0dG9uOwogICAgIGRpc3Bs
YXk6IG5vbmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9sc1F1
aWNrVGltZS5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9sc1F1aWNrVGltZS5j
c3MKaW5kZXggMmViOTA4YjAwOWQ2YmNjNmQxOTc1Y2M5ZGUzNmE0ZTFiOTczNWUwMi4uMDA3NWUy
Y2ZiOWMwMDJhY2VkODBhZWZmMTEyMjQ5NjBlY2IxOWRmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL21lZGlhQ29udHJvbHNRdWlja1RpbWUuY3NzCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9tZWRpYUNvbnRyb2xzUXVpY2tUaW1lLmNzcwpAQCAtMTg4LDE3ICsxODgsNiBAQCBhdWRp
bzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1zdGF0dXMtZGlzcGxheSwgdmlkZW86Oi13ZWJraXQt
bWVkaWEtY29udHJvbHMtc3RhdAogICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKIH0KIAotYXVk
aW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdG9nZ2xlLWNsb3NlZC1jYXB0aW9ucy1idXR0b24s
IHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRvZ2dsZS1jbG9zZWQtY2FwdGlvbnMtYnV0
dG9uIHsKLSAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLXRvZ2dsZS1jbG9zZWQtY2FwdGlv
bnMtYnV0dG9uOwotICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OwotICAgIHdpZHRoOiAxNnB4Owot
ICAgIGhlaWdodDogMTZweDsKLSAgICBtYXJnaW4tbGVmdDogN3B4OwotICAgIG1hcmdpbi1yaWdo
dDogN3B4OwotICAgIC13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6IDM7IC8qIGJldHdlZW4gbXV0
ZSBhbmQgZnVsbHNjcmVlbiAqLwotICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50OwotfQotCiBh
dWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyLWNvbnRhaW5lciwgdmlk
ZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlci1jb250YWluZXIgewogICAg
IC13ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEtdm9sdW1lLXNsaWRlci1jb250YWluZXI7CiAgICAg
cG9zaXRpb246IGFic29sdXRlOwpAQCAtMjM5LDMgKzIyOCwxMDQgQEAgYXVkaW86Oi13ZWJraXQt
bWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlci1tdXRlLWJ1dHRvbiwgdmlkZW86Oi13ZWJraXQt
bWVkaWEtY28KIAogICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50OwogfQorCithdWRpbzo6LXdl
YmtpdC1tZWRpYS1jb250cm9scy10b2dnbGUtY2xvc2VkLWNhcHRpb25zLWJ1dHRvbiwgdmlkZW86
Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdG9nZ2xlLWNsb3NlZC1jYXB0aW9ucy1idXR0b24gewor
ICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEtdG9nZ2xlLWNsb3NlZC1jYXB0aW9ucy1idXR0
b247CisgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7CisgICAgd2lkdGg6IDE2cHg7CisgICAgaGVp
Z2h0OiAxNnB4OworICAgIG1hcmdpbi1sZWZ0OiA3cHg7CisgICAgbWFyZ2luLXJpZ2h0OiA3cHg7
CisgICAgLXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDogMzsgLyogYmV0d2VlbiBtdXRlIGFuZCBm
dWxsc2NyZWVuICovCisgICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7Cit9CisKK2F1ZGlvOjot
d2Via2l0LW1lZGlhLWNvbnRyb2xzLWNsb3NlZC1jYXB0aW9ucy1jb250YWluZXIsIHZpZGVvOjot
d2Via2l0LW1lZGlhLWNvbnRyb2xzLWNsb3NlZC1jYXB0aW9ucy1jb250YWluZXIgeworICAgIC13
ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEtY2xvc2VkLWNhcHRpb25zLWNvbnRhaW5lcjsKKyAgICBw
b3NpdGlvbjogYWJzb2x1dGU7CisgICAgZGlzcGxheTogYmxvY2s7CisgICAgYm90dG9tOiAyOXB4
OworICAgIG1hcmdpbi1sZWZ0OiAtMTU1cHg7CisgICAgei1pbmRleDogMjsKKyAgICB3aWR0aDog
MjAwcHg7CisgICAgaGVpZ2h0OiAyNTBweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAs
IDAsIDAsIDAuODUpOworICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYig2NiwgNjYsIDY2KTsKKyAg
ICBib3JkZXItcmFkaXVzOiA4cHg7Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xz
LWNsb3NlZC1jYXB0aW9ucy10cmFjay1saXN0LCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9s
cy1jbG9zZWQtY2FwdGlvbnMtdHJhY2stbGlzdCB7CisgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBt
ZWRpYS1jbG9zZWQtY2FwdGlvbnMtdHJhY2stbGlzdDsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7
CisgICAgZGlzcGxheTogYmxvY2s7CisgICAgdG9wOiA1cHg7CisgICAgbGVmdDogNXB4OworICAg
IHdpZHRoOiAxOTBweDsKKyAgICBoZWlnaHQ6IDI0MHB4OworICAgIG92ZXJmbG93LXg6IGhpZGRl
bjsKKyAgICBvdmVyZmxvdy15OiBzY3JvbGw7CisgICAgdGV4dC1hbGlnbjogbGVmdDsKKyAgICBm
b250LWZhbWlseTogIkhlbHZldGljYSBCb2xkIiwgIkhlbHZldGljYSI7CisgICAgZm9udC13ZWln
aHQ6IGJvbGQ7CisgICAgZm9udC1zaXplOiA5cHQ7Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlh
LWNvbnRyb2xzLWNsb3NlZC1jYXB0aW9ucy10cmFjay1saXN0IGgzLAordmlkZW86Oi13ZWJraXQt
bWVkaWEtY29udHJvbHMtY2xvc2VkLWNhcHRpb25zLXRyYWNrLWxpc3QgaDMgeworICAgIG1hcmdp
bjogMDsKKyAgICBjb2xvcjogI2JiYjsKKyAgICB0ZXh0LXNoYWRvdzogMCAxcHggMCBibGFjazsK
KyAgICBwYWRkaW5nLWxlZnQ6IDRweDsKKyAgICBwYWRkaW5nLXRvcDogNHB4OworICAgIHBhZGRp
bmctYm90dG9tOiA0cHg7CisgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM1NTU7CisgICAg
Zm9udC1zaXplOiA5cHQ7Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWNsb3Nl
ZC1jYXB0aW9ucy10cmFjay1saXN0IHVsLAordmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMt
Y2xvc2VkLWNhcHRpb25zLXRyYWNrLWxpc3QgdWwgeworICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9u
ZTsKKyAgICBtYXJnaW46IDAgMCA4cHggMDsKKyAgICBwYWRkaW5nOiAwOworfQorCithdWRpbzo6
LXdlYmtpdC1tZWRpYS1jb250cm9scy1jbG9zZWQtY2FwdGlvbnMtdHJhY2stbGlzdCBsaSwKK3Zp
ZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWNsb3NlZC1jYXB0aW9ucy10cmFjay1saXN0IGxp
IHsKKyAgICBjb2xvcjogd2hpdGU7CisgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDAgYmxhY2s7Cisg
ICAgbWFyZ2luOiAwOworICAgIHBhZGRpbmctbGVmdDogMjRweDsKKyAgICBwYWRkaW5nLXJpZ2h0
OiAxMHB4OworICAgIHBhZGRpbmctdG9wOiAwLjM1ZW07CisgICAgcGFkZGluZy1ib3R0b206IDAu
M2VtOworICAgIHdpZHRoOiAxOTBweDsKKyAgICBoZWlnaHQ6IDIuMGVtOworICAgIGJvcmRlci1i
b3R0b206IDFweCBzb2xpZCAjNTU1OworICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CisgICAg
b3ZlcmZsb3c6IGhpZGRlbjsKKyAgICB3aGl0ZS1zcGFjZTogbm93cmFwOworICAgIHRleHQtb3Zl
cmZsb3c6IGVsbGlwc2lzOworICAgIC13ZWJraXQtdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7Cit9
CisKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWNsb3NlZC1jYXB0aW9ucy10cmFjay1s
aXN0IGxpOmhvdmVyLAordmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtY2xvc2VkLWNhcHRp
b25zLXRyYWNrLWxpc3QgbGk6aG92ZXIgeworICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQt
Z3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgbGVmdCBib3R0b20sIGNvbG9yLXN0b3AoMCwgcmdi
KDc5LCAxMTIsIDI0NSkpLCBjb2xvci1zdG9wKDEsIHJnYigyOCwgNjYsIDI0NSkpKTsKKyAgICBi
b3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiKDI4LCA2NiwgMjQ1KTsKK30KKworYXVkaW86Oi13
ZWJraXQtbWVkaWEtY29udHJvbHMtY2xvc2VkLWNhcHRpb25zLXRyYWNrLWxpc3QgbGkuc2VsZWN0
ZWQsCit2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1jbG9zZWQtY2FwdGlvbnMtdHJhY2st
bGlzdCBsaS5zZWxlY3RlZCB7CisgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdl
L3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQURZQUFBQTlDQVlBQUFEbWdwb2VB
QUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlKcFZG
aDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1
L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFs
ZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJ
RmhOVUNCRGIzSmxJRFV1TUMxak1EWXdJRFl4TGpFek5EYzNOeXdnTWpBeE1DOHdNaTh4TWkweE56
b3pNam93TUNBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4
dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEpr
WmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndP
aTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNE
b3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1o
MGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkps
WmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVOVE5TQk5Z
V05wYm5SdmMyZ2lJSGh0Y0UxTk9rbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZSVEJFUWtJNVF6
Z3lNVGM0TVRGRk1rSkVSRGRCUmpJM05FUXdOelpFUmpBaUlIaHRjRTFOT2tSdlkzVnRaVzUwU1VR
OUluaHRjQzVrYVdRNlJUQkVRa0k1UXpreU1UYzRNVEZGTWtKRVJEZEJSakkzTkVRd056WkVSakFp
UGlBOGVHMXdUVTA2UkdWeWFYWmxaRVp5YjIwZ2MzUlNaV1k2YVc1emRHRnVZMlZKUkQwaWVHMXdM
bWxwWkRwRk1FUkNRamxETmpJeE56Z3hNVVV5UWtSRU4wRkdNamMwUkRBM05rUkdNQ0lnYzNSU1pX
WTZaRzlqZFcxbGJuUkpSRDBpZUcxd0xtUnBaRHBGTUVSQ1FqbEROekl4TnpneE1VVXlRa1JFTjBG
R01qYzBSREEzTmtSR01DSXZQaUE4TDNKa1pqcEVaWE5qY21sd2RHbHZiajRnUEM5eVpHWTZVa1JH
UGlBOEwzZzZlRzF3YldWMFlUNGdQRDk0Y0dGamEyVjBJR1Z1WkQwaWNpSS9QcXBXejBVQUFBSFBT
VVJCVkhqYTdKcUJiWVF3REVYZERSZ2hJN0JCR1NFalpBUkd5QWFNd0FnM0F0Y0pNa0p1ZzR4QVV5
bXFUZ2dWTzF5SmJaMGxDeUdkMEQzWi9QdzRmSUNBV05mVjVJdk4rWm16ejJrMlA3bVg2MWZPeDlN
OVg2Q2N5MHFMT1dmSEdjcXQ5Smk0VjZvR3lyMmhHa0QxR3FHNm5GRVZWQUdiTkVJTjZxQUtXS0Nz
VTFLZ1JnTFVJZ1hxUnpBU0VpcXlkaFFiTUUrb1ZpOEZ5aENxTllLVUtHWlZ6M3YxVkMxTXBMSmxV
VmV0VVdPMUFrZ0tnblVhSkVGaDE2MVpXclc4T3NFb1lKaHFlV2xRRGxtdFRocFkxRml0UVd1MWJo
cVZFTHNnaTFOQ3I2NWFCTkVZcm1pYmVmTm5RckZCcHVKNXR1bTJwRmdkak9PZUtNcUZGQTMzbjFD
VVFXWEF3SlhuSGtvOEIxZEFna05Pbi93Vkx6a1Zibm5Cck5CY3BXQlVPSDlpN2JweEhvbnRqc1dR
bTBuTGVTYXhPOGhFaUZGc3ViQ0dtcFpFbm5INWxtQ1U4Zk52U3lMYnNLMHZKQjd2TE1oSzh4aUFF
c1hFTjNNYWxYRFVieTNhT0kxS2M1eGVBTVp2ZTFMNW1ZS01vNkNUTFJtQmE1eHNTZDRIRE1Relkx
a3pqWXFXRkhNb1RtMUpCMUtDdUhDTEc0UUdkdnV1Qzcya0JZbHg0T1lUU0kyRDdjME1rdU9QdGMy
QzlOZ1JrZ1FhWWtkSUp0QVNtNUYycnduTXNIZnlKK1YvMGdqV2NXakRid0VHQU45L05YOEg3Vi9G
QUFBQUFFbEZUa1N1UW1DQycpOworICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7Cisg
ICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMC41ZW0gMC41ZW07CisgICAgYmFja2dyb3VuZC1zaXpl
OiAxZW0gMWVtOworfQorCithdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1jbG9zZWQtY2Fw
dGlvbnMtdHJhY2stbGlzdCBsaS5zZWxlY3RlZDpob3ZlciwKK3ZpZGVvOjotd2Via2l0LW1lZGlh
LWNvbnRyb2xzLWNsb3NlZC1jYXB0aW9ucy10cmFjay1saXN0IGxpLnNlbGVjdGVkOmhvdmVyIHsK
KyAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncw
S0dnb0FBQUFOU1VoRVVnQUFBRFlBQUFBOUNBWUFBQURtZ3BvZUFBQUFHWFJGV0hSVGIyWjBkMkZ5
WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBeUpwVkZoMFdFMU1PbU52YlM1aFpHOWla
UzU0YlhBQUFBQUFBRHcvZUhCaFkydGxkQ0JpWldkcGJqMGk3N3UvSWlCcFpEMGlWelZOTUUxd1Ey
Vm9hVWg2Y21WVGVrNVVZM3ByWXpsa0lqOCtJRHg0T25odGNHMWxkR0VnZUcxc2JuTTZlRDBpWVdS
dlltVTZibk02YldWMFlTOGlJSGc2ZUcxd2RHczlJa0ZrYjJKbElGaE5VQ0JEYjNKbElEVXVNQzFq
TURZd0lEWXhMakV6TkRjM055d2dNakF4TUM4d01pOHhNaTB4Tnpvek1qb3dNQ0FnSUNBZ0lDQWdJ
ajRnUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9U
azVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0Z1BISmtaanBFWlhOamNtbHdkR2x2YmlC
eVpHWTZZV0p2ZFhROUlpSWdlRzFzYm5NNmVHMXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0
TDNoaGNDOHhMakF2SWlCNGJXeHVjenA0YlhCTlRUMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZi
Uzk0WVhBdk1TNHdMMjF0THlJZ2VHMXNibk02YzNSU1pXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpT
NWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpWSmxaaU1pSUhodGNEcERjbVZoZEc5
eVZHOXZiRDBpUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5UTlNCTllXTnBiblJ2YzJnaUlIaHRjRTFO
T2tsdWMzUmhibU5sU1VROUluaHRjQzVwYVdRNlJUQkVRa0k1UXpneU1UYzRNVEZGTWtKRVJEZEJS
akkzTkVRd056WkVSakFpSUhodGNFMU5Pa1J2WTNWdFpXNTBTVVE5SW5odGNDNWthV1E2UlRCRVFr
STVRemt5TVRjNE1URkZNa0pFUkRkQlJqSTNORVF3TnpaRVJqQWlQaUE4ZUcxd1RVMDZSR1Z5YVha
bFpFWnliMjBnYzNSU1pXWTZhVzV6ZEdGdVkyVkpSRDBpZUcxd0xtbHBaRHBGTUVSQ1FqbEROakl4
TnpneE1VVXlRa1JFTjBGR01qYzBSREEzTmtSR01DSWdjM1JTWldZNlpHOWpkVzFsYm5SSlJEMGll
RzF3TG1ScFpEcEZNRVJDUWpsRE56SXhOemd4TVVVeVFrUkVOMEZHTWpjMFJEQTNOa1JHTUNJdlBp
QThMM0prWmpwRVpYTmpjbWx3ZEdsdmJqNGdQQzl5WkdZNlVrUkdQaUE4TDNnNmVHMXdiV1YwWVQ0
Z1BEOTRjR0ZqYTJWMElHVnVaRDBpY2lJL1BxcFd6MFVBQUFIUFNVUkJWSGphN0pxQmJZUXdERVhk
RFJnaEk3QkJHU0VqWkFSR3lBYU13QWczQXRjSk1rSnVnNHhBVXltcVRnZ1ZPMXlKYlowbEN5R2Qw
RDNaL1B3NGZJQ0FXTmZWNUl2TitabXp6MmsyUDdtWDYxZk94OU05WDZDY3kwcUxPV2ZIR2NxdDlK
aTRWNm9HeXIyaEdrRDFHcUc2bkZFVlZBR2JORUlONnFBS1dLQ3NVMUtnUmdMVUlnWHFSekFTRWlx
eWRoUWJNRStvVmk4RnloQ3FOWUtVS0daVnozdjFWQzFNcExKbFVWZXRVV08xQWtnS2duVWFKRUZo
MTYxWldyVzhPc0VvWUpocWVXbFFEbG10VGhwWTFGaXRRV3UxYmhxVkVMc2dpMU5DcjY1YUJORVly
bWliZWZOblFyRkJwdUo1dHVtMnBGZ2RqT09lS01xRkZBMzNuMUNVUVdYQXdKWG5Ia284QjFkQWdr
Tk9uL3dWTHprVmJubkJyTkJjcFdCVU9IOWk3YnB4SG9udGpzV1FtMG5MZVNheE84aEVpRkZzdWJD
R21wWkVubkg1bG1DVThmTnZTeUxic0swdkpCN3ZMTWhLOHhpQUVzWEVOM01hbFhEVWJ5M2FPSTFL
YzV4ZUFNWnZlMUw1bVlLTW82Q1RMUm1CYTV4c1NkNEhETVF6WTFrempZcVdGSE1vVG0xSkIxS0N1
SENMRzRRR2R2dXVDNzJrQllseDRPWVRTSTJEN2MwTWt1T1B0YzJDOU5nUmtnUWFZa2RJSnRBU201
RjJyd25Nc0hmeUorVi8wZ2pXY1dqRGJ3RUdBTjkvTlg4SDdWL0ZBQUFBQUVsRlRrU3VRbUNDJyks
IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgbGVmdCBib3R0b20sIGNvbG9yLXN0
b3AoMCwgcmdiKDc5LCAxMTIsIDI0NSkpLCBjb2xvci1zdG9wKDEsIHJnYigyOCwgNjYsIDI0NSkp
KTsKKyAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0LCByZXBlYXQ7CisgICAgYmFja2dy
b3VuZC1wb3NpdGlvbjogMC41ZW0gMC41ZW0sIHRvcCBsZWZ0OworICAgIGJhY2tncm91bmQtc2l6
ZTogMWVtIDFlbSwgMTAwJSAxMDAlOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCmluZGV4IDBiYmY3NjNhODA1N2Y2ZTJkOGRh
ZDFmYmVhMzZkYTMyMzQ5YmQ4MjEuLjc5ZTFmZjUxM2RhYjkxYTI2ZWJkMTIwMGIzOWVjMTA2MjI0
NTU0ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJv
bEVsZW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRy
b2xFbGVtZW50cy5jcHAKQEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRlICJIVE1MTWVkaWFFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTFZpZGVvRWxlbWVu
dC5oIgorI2luY2x1ZGUgIkxhbmd1YWdlLmgiCiAjaW5jbHVkZSAiTGF5b3V0UmVwYWludGVyLmgi
CiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgogI2luY2x1ZGUgIk1lZGlhQ29udHJvbFJv
b3RFbGVtZW50LmgiCkBAIC02Miw2ICs2Myw3IEBACiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNp
bmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgorI2luY2x1ZGUgIlRl
eHRUcmFja0xpc3QuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xMTQsNiArMTE2LDE0
IEBAIHZvaWQgTWVkaWFDb250cm9sRWxlbWVudDo6aGlkZSgpCiAgICAgc2V0SW5saW5lU3R5bGVQ
cm9wZXJ0eShDU1NQcm9wZXJ0eURpc3BsYXksIENTU1ZhbHVlTm9uZSk7CiB9CiAKK2Jvb2wgTWVk
aWFDb250cm9sRWxlbWVudDo6aXNTaG93aW5nKCkgY29uc3QKK3sKKyAgICBjb25zdCBTdHlsZVBy
b3BlcnR5U2V0KiBwcm9wZXJ0eVNldCA9IGlubGluZVN0eWxlKCk7CisgICAgLy8gRm9sbG93aW5n
IHRoZSBjb2RlIGZyb20gc2hvdygpIGFuZCBoaWRlKCkgYWJvdmUsIHdlIG9ubHkgaGF2ZQorICAg
IC8vIHRvIGNoZWNrIGZvciB0aGUgcHJlc2Vuc2Ugb2YgaW5saW5lIGRpc3BsYXkuCisgICAgcmV0
dXJuICghcHJvcGVydHlTZXQgfHwgIXByb3BlcnR5U2V0LT5nZXRQcm9wZXJ0eUNTU1ZhbHVlKENT
U1Byb3BlcnR5RGlzcGxheSkpOworfQorCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CiAKIGlubGluZSBNZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQ6Ok1lZGlhQ29udHJvbFBhbmVsRWxl
bWVudChEb2N1bWVudCogZG9jdW1lbnQpCkBAIC04NTEsMjUgKzg2MSw1NiBAQCBjb25zdCBBdG9t
aWNTdHJpbmcmIE1lZGlhQ29udHJvbFJldHVyblRvUmVhbHRpbWVCdXR0b25FbGVtZW50OjpzaGFk
b3dQc2V1ZG9JZCgpCiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotaW5saW5l
IE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudDo6TWVkaWFDb250
cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCkK
K2lubGluZSBNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc0NvbnRhaW5lckVsZW1lbnQ6Ok1lZGlh
Q29udHJvbENsb3NlZENhcHRpb25zQ29udGFpbmVyRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQp
CisgICAgOiBNZWRpYUNvbnRyb2xFbGVtZW50KGRvY3VtZW50KQoreworfQorCitQYXNzUmVmUHRy
PE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zQ29udGFpbmVyRWxlbWVudD4gTWVkaWFDb250cm9s
Q2xvc2VkQ2FwdGlvbnNDb250YWluZXJFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50
KQoreworICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc0NvbnRhaW5lckVsZW1l
bnQ+IGVsZW1lbnQgPSBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNDb250
YWluZXJFbGVtZW50KGRvY3VtZW50KSk7CisgICAgZWxlbWVudC0+aGlkZSgpOworICAgIHJldHVy
biBlbGVtZW50LnJlbGVhc2UoKTsKK30KKworY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRy
b2xDbG9zZWRDYXB0aW9uc0NvbnRhaW5lckVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QK
K3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1t
ZWRpYS1jb250cm9scy1jbG9zZWQtY2FwdGlvbnMtY29udGFpbmVyIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHJldHVybiBpZDsKK30KKworLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorCitpbmxpbmUgTWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2Fw
dGlvbnNCdXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRv
bkVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBNZWRpYUNvbnRyb2xzKiBjb250cm9scykKICAg
ICA6IE1lZGlhQ29udHJvbElucHV0RWxlbWVudChkb2N1bWVudCwgTWVkaWFTaG93Q2xvc2VkQ2Fw
dGlvbnNCdXR0b24pCisgICAgLCBtX2NvbnRyb2xzKGNvbnRyb2xzKQogewogfQogCi1QYXNzUmVm
UHRyPE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudD4gTWVkaWFD
b250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQq
IGRvY3VtZW50KQorUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1
dHRvbkVsZW1lbnQ+IE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVu
dDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCwgTWVkaWFDb250cm9scyogY29udHJvbHMpCiB7
Ci0gICAgUmVmUHRyPE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVu
dD4gYnV0dG9uID0gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25z
QnV0dG9uRWxlbWVudChkb2N1bWVudCkpOworICAgIEFTU0VSVChjb250cm9scyk7CisKKyAgICBS
ZWZQdHI8TWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50PiBidXR0
b24gPSBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25F
bGVtZW50KGRvY3VtZW50LCBjb250cm9scykpOwogICAgIGJ1dHRvbi0+Y3JlYXRlU2hhZG93U3Vi
dHJlZSgpOwogICAgIGJ1dHRvbi0+c2V0VHlwZSgiYnV0dG9uIik7CiAgICAgYnV0dG9uLT5oaWRl
KCk7CiAgICAgcmV0dXJuIGJ1dHRvbi5yZWxlYXNlKCk7CiB9CiAKK3ZvaWQgTWVkaWFDb250cm9s
VG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50Ojp1cGRhdGVEaXNwbGF5VHlwZSgpCit7
CisgICAgc2V0RGlzcGxheVR5cGUobWVkaWFDb250cm9sbGVyKCktPmNsb3NlZENhcHRpb25zVmlz
aWJsZSgpID8gTWVkaWFIaWRlQ2xvc2VkQ2FwdGlvbnNCdXR0b24gOiBNZWRpYVNob3dDbG9zZWRD
YXB0aW9uc0J1dHRvbik7Cit9CisKIHZvaWQgTWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlv
bnNCdXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKIHsKICAg
ICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkuY2xpY2tFdmVudCkgeworICAgICAg
ICAvLyBGSVhNRTogVGhpcyBpcyBub3cgaW5jb3JyZWN0bHkgZG9pbmcgdHdvIHRoaW5ncyBhdCBv
bmNlOiBzaG93aW5nIHRoZSBsaXN0IG9mIGNhcHRpb25zIGFuZCB0b2dnbGluZyBkaXNwbGF5Lgor
ICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxNjcw
CiAgICAgICAgIG1lZGlhQ29udHJvbGxlcigpLT5zZXRDbG9zZWRDYXB0aW9uc1Zpc2libGUoIW1l
ZGlhQ29udHJvbGxlcigpLT5jbG9zZWRDYXB0aW9uc1Zpc2libGUoKSk7CiAgICAgICAgIHNldENo
ZWNrZWQobWVkaWFDb250cm9sbGVyKCktPmNsb3NlZENhcHRpb25zVmlzaWJsZSgpKTsKKyAgICAg
ICAgbV9jb250cm9scy0+dG9nZ2xlQ2xvc2VkQ2FwdGlvblRyYWNrTGlzdCgpOwogICAgICAgICB1
cGRhdGVEaXNwbGF5VHlwZSgpOwogICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsK
ICAgICB9CkBAIC04NzcsMTcgKzkxOCwxMTcgQEAgdm9pZCBNZWRpYUNvbnRyb2xUb2dnbGVDbG9z
ZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGUKICAg
ICBIVE1MSW5wdXRFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKGV2ZW50KTsKIH0KIAotdm9p
ZCBNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ6OnVwZGF0ZURp
c3BsYXlUeXBlKCkKK2NvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sVG9nZ2xlQ2xvc2Vk
Q2FwdGlvbnNCdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAgc2V0
RGlzcGxheVR5cGUobWVkaWFDb250cm9sbGVyKCktPmNsb3NlZENhcHRpb25zVmlzaWJsZSgpID8g
TWVkaWFIaWRlQ2xvc2VkQ2FwdGlvbnNCdXR0b24gOiBNZWRpYVNob3dDbG9zZWRDYXB0aW9uc0J1
dHRvbik7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJr
aXQtbWVkaWEtY29udHJvbHMtdG9nZ2xlLWNsb3NlZC1jYXB0aW9ucy1idXR0b24iLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgcmV0dXJuIGlkOwogfQogCi1jb25z
dCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxl
bWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorCitpbmxpbmUgTWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVtZW50
OjpNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQoRG9jdW1lbnQqIGRv
Y3VtZW50KQorICAgIDogTWVkaWFDb250cm9sRWxlbWVudChkb2N1bWVudCkKIHsKLSAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9s
cy10b2dnbGUtY2xvc2VkLWNhcHRpb25zLWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpKTsKK30KKworUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9u
c1RyYWNrTGlzdEVsZW1lbnQ+IE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zVHJhY2tMaXN0RWxl
bWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICBSZWZQdHI8TWVkaWFDb250
cm9sQ2xvc2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVtZW50PiBlbGVtZW50ID0gYWRvcHRSZWYobmV3
IE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zVHJhY2tMaXN0RWxlbWVudChkb2N1bWVudCkpOwor
ICAgIHJldHVybiBlbGVtZW50LnJlbGVhc2UoKTsKK30KKwordm9pZCBNZWRpYUNvbnRyb2xDbG9z
ZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2
ZW50KQoreworICAgIC8vIEZJWE1FOiBIb29rIHRoaXMgdXAgdG8gYWN0dWFsIHRleHQgdHJhY2tz
LgorICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE2NzAK
KyAgICBVTlVTRURfUEFSQU0oZXZlbnQpOworfQorCitjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlh
Q29udHJvbENsb3NlZENhcHRpb25zVHJhY2tMaXN0RWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBj
b25zdAoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Vi
a2l0LW1lZGlhLWNvbnRyb2xzLWNsb3NlZC1jYXB0aW9ucy10cmFjay1saXN0IiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBpZDsKIH0KIAordm9pZCBN
ZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQ6OnVwZGF0ZURpc3BsYXko
KQoreworI2lmIEVOQUJMRShWSURFT19UUkFDSykKKyAgICAvLyBSZW1vdmUgYW55IGV4aXN0aW5n
IGNvbnRlbnQuCisgICAgcmVtb3ZlQ2hpbGRyZW4oKTsKKworICAgIGlmICghbWVkaWFDb250cm9s
bGVyKCktPmhhc0Nsb3NlZENhcHRpb25zKCkpCisgICAgICAgIHJldHVybjsKKworICAgIEhUTUxN
ZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVudCA9IHRvUGFyZW50TWVkaWFFbGVtZW50KHRoaXMpOwor
ICAgIGlmICghbWVkaWFFbGVtZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBUZXh0VHJhY2tM
aXN0KiB0cmFja0xpc3QgPSBtZWRpYUVsZW1lbnQtPnRleHRUcmFja3MoKTsKKworICAgIGlmICgh
dHJhY2tMaXN0IHx8ICF0cmFja0xpc3QtPmxlbmd0aCgpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBEb2N1bWVudCogZG9jID0gZG9jdW1lbnQoKTsKKworICAgIFJlZlB0cjxFbGVtZW50PiBjYXB0
aW9uc1NlY3Rpb24gPSBkb2MtPmNyZWF0ZUVsZW1lbnQoc2VjdGlvblRhZywgQVNTRVJUX05PX0VY
Q0VQVElPTik7CisgICAgUmVmUHRyPEVsZW1lbnQ+IGNhcHRpb25zSGVhZGVyID0gZG9jLT5jcmVh
dGVFbGVtZW50KGgzVGFnLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBjYXB0aW9uc0hlYWRl
ci0+YXBwZW5kQ2hpbGQoZG9jLT5jcmVhdGVUZXh0Tm9kZSgiQ2xvc2VkIENhcHRpb25zIikpOwor
ICAgIGNhcHRpb25zU2VjdGlvbi0+YXBwZW5kQ2hpbGQoY2FwdGlvbnNIZWFkZXIpOworICAgIFJl
ZlB0cjxFbGVtZW50PiBjYXB0aW9uc0xpc3QgPSBkb2MtPmNyZWF0ZUVsZW1lbnQodWxUYWcsIEFT
U0VSVF9OT19FWENFUFRJT04pOworCisgICAgUmVmUHRyPEVsZW1lbnQ+IHN1YnRpdGxlc1NlY3Rp
b24gPSBkb2MtPmNyZWF0ZUVsZW1lbnQoc2VjdGlvblRhZywgQVNTRVJUX05PX0VYQ0VQVElPTik7
CisgICAgUmVmUHRyPEVsZW1lbnQ+IHN1YnRpdGxlc0hlYWRlciA9IGRvYy0+Y3JlYXRlRWxlbWVu
dChoM1RhZywgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgc3VidGl0bGVzSGVhZGVyLT5hcHBl
bmRDaGlsZChkb2MtPmNyZWF0ZVRleHROb2RlKCJTdWJ0aXRsZXMiKSk7CisgICAgc3VidGl0bGVz
U2VjdGlvbi0+YXBwZW5kQ2hpbGQoc3VidGl0bGVzSGVhZGVyKTsKKyAgICBSZWZQdHI8RWxlbWVu
dD4gc3VidGl0bGVzTGlzdCA9IGRvYy0+Y3JlYXRlRWxlbWVudCh1bFRhZywgQVNTRVJUX05PX0VY
Q0VQVElPTik7CisKKyAgICBSZWZQdHI8RWxlbWVudD4gdHJhY2tJdGVtOworCisgICAgdHJhY2tJ
dGVtID0gZG9jLT5jcmVhdGVFbGVtZW50KGxpVGFnLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAg
ICB0cmFja0l0ZW0tPmFwcGVuZENoaWxkKGRvYy0+Y3JlYXRlVGV4dE5vZGUoIk9mZiIpKTsKKyAg
ICAvLyBGSVhNRTogVGhlc2UgbGlzdHMgYXJlIG5vdCB5ZXQgbGl2ZS4gTWFyayB0aGUgT2ZmIGVu
dHJ5IGFzIHRoZSBzZWxlY3RlZCBvbmUgZm9yIG5vdy4KKyAgICB0cmFja0l0ZW0tPnNldEF0dHJp
YnV0ZShjbGFzc0F0dHIsICJzZWxlY3RlZCIpOworICAgIGNhcHRpb25zTGlzdC0+YXBwZW5kQ2hp
bGQodHJhY2tJdGVtKTsKKworICAgIHRyYWNrSXRlbSA9IGRvYy0+Y3JlYXRlRWxlbWVudChsaVRh
ZywgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgdHJhY2tJdGVtLT5hcHBlbmRDaGlsZChkb2Mt
PmNyZWF0ZVRleHROb2RlKCJPZmYiKSk7CisgICAgLy8gRklYTUU6IFRoZXNlIGxpc3RzIGFyZSBu
b3QgeWV0IGxpdmUuIE1hcmsgdGhlIE9mZiBlbnRyeSBhcyB0aGUgc2VsZWN0ZWQgb25lIGZvciBu
b3cuCisgICAgdHJhY2tJdGVtLT5zZXRBdHRyaWJ1dGUoY2xhc3NBdHRyLCAic2VsZWN0ZWQiKTsK
KyAgICBzdWJ0aXRsZXNMaXN0LT5hcHBlbmRDaGlsZCh0cmFja0l0ZW0pOworCisgICAgYm9vbCBo
YXNDYXB0aW9ucyA9IGZhbHNlOworICAgIGJvb2wgaGFzU3VidGl0bGVzID0gZmFsc2U7CisKKyAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwLCBsZW5ndGggPSB0cmFja0xpc3QtPmxlbmd0aCgpOyBpIDwg
bGVuZ3RoOyArK2kpIHsKKyAgICAgICAgVGV4dFRyYWNrKiB0cmFjayA9IHRyYWNrTGlzdC0+aXRl
bShpKTsKKyAgICAgICAgdHJhY2tJdGVtID0gZG9jLT5jcmVhdGVFbGVtZW50KGxpVGFnLCBBU1NF
UlRfTk9fRVhDRVBUSU9OKTsKKyAgICAgICAgQXRvbWljU3RyaW5nIGxhYmVsVGV4dCA9IHRyYWNr
LT5sYWJlbCgpOworICAgICAgICBpZiAobGFiZWxUZXh0LmlzTnVsbCgpIHx8IGxhYmVsVGV4dC5p
c0VtcHR5KCkpCisgICAgICAgICAgICBsYWJlbFRleHQgPSBkaXNwbGF5TmFtZUZvckxhbmd1YWdl
TG9jYWxlKHRyYWNrLT5sYW5ndWFnZSgpKTsKKyAgICAgICAgaWYgKGxhYmVsVGV4dC5pc051bGwo
KSB8fCBsYWJlbFRleHQuaXNFbXB0eSgpKQorICAgICAgICAgICAgbGFiZWxUZXh0ID0gIk5vIExh
YmVsIjsKKworICAgICAgICBpZiAodHJhY2stPmtpbmQoKSA9PSB0cmFjay0+Y2FwdGlvbnNLZXl3
b3JkKCkpIHsKKyAgICAgICAgICAgIGhhc0NhcHRpb25zID0gdHJ1ZTsKKyAgICAgICAgICAgIGNh
cHRpb25zTGlzdC0+YXBwZW5kQ2hpbGQodHJhY2tJdGVtKTsKKyAgICAgICAgfQorICAgICAgICBp
ZiAodHJhY2stPmtpbmQoKSA9PSB0cmFjay0+c3VidGl0bGVzS2V5d29yZCgpKSB7CisgICAgICAg
ICAgICBoYXNTdWJ0aXRsZXMgPSB0cnVlOworICAgICAgICAgICAgc3VidGl0bGVzTGlzdC0+YXBw
ZW5kQ2hpbGQodHJhY2tJdGVtKTsKKyAgICAgICAgfQorICAgICAgICB0cmFja0l0ZW0tPmFwcGVu
ZENoaWxkKGRvYy0+Y3JlYXRlVGV4dE5vZGUobGFiZWxUZXh0KSk7CisgICAgfQorCisgICAgY2Fw
dGlvbnNTZWN0aW9uLT5hcHBlbmRDaGlsZChjYXB0aW9uc0xpc3QpOworICAgIHN1YnRpdGxlc1Nl
Y3Rpb24tPmFwcGVuZENoaWxkKHN1YnRpdGxlc0xpc3QpOworCisgICAgaWYgKGhhc0NhcHRpb25z
KQorICAgICAgICBhcHBlbmRDaGlsZChjYXB0aW9uc1NlY3Rpb24pOworICAgIGlmIChoYXNTdWJ0
aXRsZXMpCisgICAgICAgIGFwcGVuZENoaWxkKHN1YnRpdGxlc1NlY3Rpb24pOworI2VuZGlmCit9
CisKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogTWVkaWFDb250cm9sVGltZWxp
bmVFbGVtZW50OjpNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50
LCBNZWRpYUNvbnRyb2xzKiBjb250cm9scykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5oCmluZGV4IDY2Y2IyZGE2YmI1Yjk0NDFiOGUxYmRh
NDgxYzM1N2Y0M2VjM2MzMWMuLmMzZmJjODEyMTkyZDM0MWY2MmI5NGUyMzhlYmUxNGVkMmVlOTY3
NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVs
ZW1lbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxl
bWVudHMuaApAQCAtNzUsNiArNzUsOCBAQCBlbnVtIE1lZGlhQ29udHJvbEVsZW1lbnRUeXBlIHsK
ICAgICBNZWRpYVRleHRUcmFja0Rpc3BsYXksCiAgICAgTWVkaWFFeGl0RnVsbHNjcmVlbkJ1dHRv
biwKICAgICBNZWRpYU92ZXJsYXlQbGF5QnV0dG9uLAorICAgIE1lZGlhQ2xvc2VkQ2FwdGlvbnND
b250YWluZXIsCisgICAgTWVkaWFDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdCwKIH07CiAKIEhUTUxN
ZWRpYUVsZW1lbnQqIHRvUGFyZW50TWVkaWFFbGVtZW50KE5vZGUqKTsKQEAgLTg4LDYgKzkwLDcg
QEAgY2xhc3MgTWVkaWFDb250cm9sRWxlbWVudCA6IHB1YmxpYyBIVE1MRGl2RWxlbWVudCB7CiBw
dWJsaWM6CiAgICAgdm9pZCBoaWRlKCk7CiAgICAgdm9pZCBzaG93KCk7CisgICAgYm9vbCBpc1No
b3dpbmcoKSBjb25zdDsKIAogICAgIHZpcnR1YWwgTWVkaWFDb250cm9sRWxlbWVudFR5cGUgZGlz
cGxheVR5cGUoKSBjb25zdCA9IDA7CiAKQEAgLTM4MCwxNyArMzgzLDUxIEBAIHByaXZhdGU6CiAK
IGNsYXNzIE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudCA6IHB1
YmxpYyBNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudD4gY3Jl
YXRlKERvY3VtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sVG9nZ2xl
Q2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqLCBNZWRpYUNvbnRy
b2xzKik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopOwog
ICAgIHZpcnR1YWwgYm9vbCB3aWxsUmVzcG9uZFRvTW91c2VDbGlja0V2ZW50cygpIE9WRVJSSURF
IHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihF
dmVudCopOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVEaXNwbGF5VHlwZSgpOwogCiBwcml2YXRl
OgotICAgIE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudChEb2N1
bWVudCopOworICAgIE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVu
dChEb2N1bWVudCosIE1lZGlhQ29udHJvbHMqKTsKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0
cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdDsKKworICAgIE1lZGlhQ29udHJvbHMqIG1fY29u
dHJvbHM7Cit9OworCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKK2NsYXNzIE1l
ZGlhQ29udHJvbENsb3NlZENhcHRpb25zQ29udGFpbmVyRWxlbWVudCA6IHB1YmxpYyBNZWRpYUNv
bnRyb2xFbGVtZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRy
b2xDbG9zZWRDYXB0aW9uc0NvbnRhaW5lckVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCopOworCisg
ICAgdmlydHVhbCBib29sIHdpbGxSZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRzKCkgT1ZFUlJJREUg
eyByZXR1cm4gdHJ1ZTsgfQorCitwcml2YXRlOgorICAgIE1lZGlhQ29udHJvbENsb3NlZENhcHRp
b25zQ29udGFpbmVyRWxlbWVudChEb2N1bWVudCopOworCisgICAgdmlydHVhbCBNZWRpYUNvbnRy
b2xFbGVtZW50VHlwZSBkaXNwbGF5VHlwZSgpIGNvbnN0IHsgcmV0dXJuIE1lZGlhQ2xvc2VkQ2Fw
dGlvbnNDb250YWluZXI7IH0KICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93
UHNldWRvSWQoKSBjb25zdDsKLX07ICAgIAorfTsKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorCitjbGFzcyBNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1l
bnQgOiBwdWJsaWMgTWVkaWFDb250cm9sRWxlbWVudCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBh
c3NSZWZQdHI8TWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVtZW50PiBjcmVh
dGUoRG9jdW1lbnQqKTsKKworICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2
ZW50Kik7CisgICAgdmlydHVhbCBib29sIHdpbGxSZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRzKCkg
T1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQorCisgICAgdm9pZCB1cGRhdGVEaXNwbGF5KCk7CisK
K3ByaXZhdGU6CisgICAgTWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVtZW50
KERvY3VtZW50Kik7CisKKyAgICB2aXJ0dWFsIE1lZGlhQ29udHJvbEVsZW1lbnRUeXBlIGRpc3Bs
YXlUeXBlKCkgY29uc3QgeyByZXR1cm4gTWVkaWFDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdDsgfQor
ICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0Owor
fTsKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudC5jcHAKaW5kZXgg
MjJhMDE4ZmQ5NzAwNGE2Nzc1NmU5MmUxZWQ1MDJlMGI5YzBmZTg4Zi4uNmQ3YzEwOGEyM2MyNWRi
M2E1MWE1Njc4NjZhYjBhMDIyYzdlMDgxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50LmNwcApAQCAtNjIsNiArNjIsOCBA
QCBNZWRpYUNvbnRyb2xSb290RWxlbWVudDo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnQoRG9jdW1l
bnQqIGRvY3VtZW50KQogICAgICwgbV9zZWVrQmFja0J1dHRvbigwKQogICAgICwgbV9zZWVrRm9y
d2FyZEJ1dHRvbigwKQogICAgICwgbV90b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbigwKQorICAg
ICwgbV9jbG9zZWRDYXB0aW9uc1RyYWNrTGlzdCgwKQorICAgICwgbV9jbG9zZWRDYXB0aW9uc0Nv
bnRhaW5lcigwKQogICAgICwgbV9wYW5lbE11dGVCdXR0b24oMCkKICAgICAsIG1fdm9sdW1lU2xp
ZGVyKDApCiAgICAgLCBtX3ZvbHVtZVNsaWRlck11dGVCdXR0b24oMCkKQEAgLTE2MiwxMSArMTY0
LDI1IEBAIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sUm9vdEVsZW1lbnQ+IE1lZGlhQ29udHJvbFJv
b3RFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvCiAgICAgICAgIHJldHVybiAwOwogCiAgICAg
aWYgKGRvY3VtZW50LT5wYWdlKCktPnRoZW1lKCktPnN1cHBvcnRzQ2xvc2VkQ2FwdGlvbmluZygp
KSB7Ci0gICAgICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRv
bkVsZW1lbnQ+IHRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uID0gTWVkaWFDb250cm9sVG9nZ2xl
Q2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworCisgICAgICAg
IFJlZlB0cjxNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc0NvbnRhaW5lckVsZW1lbnQ+IGNsb3Nl
ZENhcHRpb25zQ29udGFpbmVyID0gTWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNDb250YWluZXJF
bGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworCisgICAgICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xD
bG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQ+IGNsb3NlZENhcHRpb25zVHJhY2tMaXN0ID0g
TWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVtZW50OjpjcmVhdGUoZG9jdW1l
bnQpOworICAgICAgICBjb250cm9scy0+bV9jbG9zZWRDYXB0aW9uc1RyYWNrTGlzdCA9IGNsb3Nl
ZENhcHRpb25zVHJhY2tMaXN0LmdldCgpOworICAgICAgICBjbG9zZWRDYXB0aW9uc0NvbnRhaW5l
ci0+YXBwZW5kQ2hpbGQoY2xvc2VkQ2FwdGlvbnNUcmFja0xpc3QucmVsZWFzZSgpLCBlYywgdHJ1
ZSk7CisgICAgICAgIGlmIChlYykKKyAgICAgICAgICAgIHJldHVybiAwOworCisgICAgICAgIFJl
ZlB0cjxNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ+IHRvZ2ds
ZUNsb3NlZENhcHRpb25zQnV0dG9uID0gTWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNC
dXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIGNvbnRyb2xzLmdldCgpKTsKICAgICAgICAg
Y29udHJvbHMtPm1fdG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24gPSB0b2dnbGVDbG9zZWRDYXB0
aW9uc0J1dHRvbi5nZXQoKTsKICAgICAgICAgcGFuZWwtPmFwcGVuZENoaWxkKHRvZ2dsZUNsb3Nl
ZENhcHRpb25zQnV0dG9uLnJlbGVhc2UoKSwgZWMsIHRydWUpOwogICAgICAgICBpZiAoZWMpCiAg
ICAgICAgICAgICByZXR1cm4gMDsKKworICAgICAgICBjb250cm9scy0+bV9jbG9zZWRDYXB0aW9u
c0NvbnRhaW5lciA9IGNsb3NlZENhcHRpb25zQ29udGFpbmVyLmdldCgpOworICAgICAgICBwYW5l
bC0+YXBwZW5kQ2hpbGQoY2xvc2VkQ2FwdGlvbnNDb250YWluZXIucmVsZWFzZSgpLCBlYywgdHJ1
ZSk7CisgICAgICAgIGlmIChlYykKKyAgICAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAogICAg
IC8vIEZJWE1FOiBPbmx5IGNyZWF0ZSB3aGVuIG5lZWRlZCA8aHR0cDovL3dlYmtpdC5vcmcvYi81
NzE2Mz4KQEAgLTI2Niw2ICsyODIsMTAgQEAgdm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudDo6
c2V0TWVkaWFDb250cm9sbGVyKE1lZGlhQ29udHJvbGxlckludGVyZmFjZSogY29udHIKICAgICAg
ICAgbV9zZWVrRm9yd2FyZEJ1dHRvbi0+c2V0TWVkaWFDb250cm9sbGVyKGNvbnRyb2xsZXIpOwog
ICAgIGlmIChtX3RvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uKQogICAgICAgICBtX3RvZ2dsZUNs
b3NlZENhcHRpb25zQnV0dG9uLT5zZXRNZWRpYUNvbnRyb2xsZXIoY29udHJvbGxlcik7CisgICAg
aWYgKG1fY2xvc2VkQ2FwdGlvbnNUcmFja0xpc3QpCisgICAgICAgIG1fY2xvc2VkQ2FwdGlvbnNU
cmFja0xpc3QtPnNldE1lZGlhQ29udHJvbGxlcihjb250cm9sbGVyKTsKKyAgICBpZiAobV9jbG9z
ZWRDYXB0aW9uc0NvbnRhaW5lcikKKyAgICAgICAgbV9jbG9zZWRDYXB0aW9uc0NvbnRhaW5lci0+
c2V0TWVkaWFDb250cm9sbGVyKGNvbnRyb2xsZXIpOwogICAgIGlmIChtX3BhbmVsTXV0ZUJ1dHRv
bikKICAgICAgICAgbV9wYW5lbE11dGVCdXR0b24tPnNldE1lZGlhQ29udHJvbGxlcihjb250cm9s
bGVyKTsKICAgICBpZiAobV92b2x1bWVTbGlkZXIpCkBAIC0zMDIsNiArMzIyLDcgQEAgdm9pZCBN
ZWRpYUNvbnRyb2xSb290RWxlbWVudDo6aGlkZSgpCiAgICAgbV9wYW5lbC0+c2V0SXNEaXNwbGF5
ZWQoZmFsc2UpOwogICAgIG1fcGFuZWwtPmhpZGUoKTsKICAgICBtX3ZvbHVtZVNsaWRlckNvbnRh
aW5lci0+aGlkZSgpOworICAgIG1fY2xvc2VkQ2FwdGlvbnNDb250YWluZXItPmhpZGUoKTsKIH0K
IAogdm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudDo6bWFrZU9wYXF1ZSgpCkBAIC0zMTMsNiAr
MzM0LDcgQEAgdm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudDo6bWFrZVRyYW5zcGFyZW50KCkK
IHsKICAgICBtX3BhbmVsLT5tYWtlVHJhbnNwYXJlbnQoKTsKICAgICBtX3ZvbHVtZVNsaWRlckNv
bnRhaW5lci0+aGlkZSgpOworICAgIG1fY2xvc2VkQ2FwdGlvbnNDb250YWluZXItPmhpZGUoKTsK
IH0KIAogdm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudDo6cmVzZXQoKQpAQCAtMzQ2LDkgKzM2
OCwxMCBAQCB2b2lkIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50OjpyZXNldCgpCiAgICAgICAgIG1f
dm9sdW1lU2xpZGVyLT5zZXRWb2x1bWUobV9tZWRpYUNvbnRyb2xsZXItPnZvbHVtZSgpKTsKIAog
ICAgIGlmIChtX3RvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uKSB7Ci0gICAgICAgIGlmIChtX21l
ZGlhQ29udHJvbGxlci0+aGFzQ2xvc2VkQ2FwdGlvbnMoKSkKKyAgICAgICAgaWYgKG1fbWVkaWFD
b250cm9sbGVyLT5oYXNDbG9zZWRDYXB0aW9ucygpKSB7CiAgICAgICAgICAgICBtX3RvZ2dsZUNs
b3NlZENhcHRpb25zQnV0dG9uLT5zaG93KCk7Ci0gICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1f
Y2xvc2VkQ2FwdGlvbnNUcmFja0xpc3QtPnVwZGF0ZURpc3BsYXkoKTsKKyAgICAgICAgfSBlbHNl
CiAgICAgICAgICAgICBtX3RvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uLT5oaWRlKCk7CiAgICAg
fQogCkBAIC00NDcsNiArNDcwLDggQEAgdm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudDo6cmVw
b3J0ZWRFcnJvcigpCiAgICAgICAgIG1fdm9sdW1lU2xpZGVyQ29udGFpbmVyLT5oaWRlKCk7CiAg
ICAgaWYgKG1fdG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24gJiYgIXBhZ2UtPnRoZW1lKCktPmhh
c093bkRpc2FibGVkU3RhdGVIYW5kbGluZ0ZvcihNZWRpYVRvZ2dsZUNsb3NlZENhcHRpb25zQnV0
dG9uUGFydCkpCiAgICAgICAgIG1fdG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24tPmhpZGUoKTsK
KyAgICBpZiAobV9jbG9zZWRDYXB0aW9uc0NvbnRhaW5lcikKKyAgICAgICAgbV9jbG9zZWRDYXB0
aW9uc0NvbnRhaW5lci0+aGlkZSgpOwogfQogCiB2b2lkIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50
Ojp1cGRhdGVTdGF0dXNEaXNwbGF5KCkKQEAgLTU0Miw2ICs1NjcsMTkgQEAgdm9pZCBNZWRpYUNv
bnRyb2xSb290RWxlbWVudDo6c2hvd1ZvbHVtZVNsaWRlcigpCiAgICAgICAgIG1fdm9sdW1lU2xp
ZGVyQ29udGFpbmVyLT5zaG93KCk7CiB9CiAKK3ZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnQ6
OnRvZ2dsZUNsb3NlZENhcHRpb25UcmFja0xpc3QoKQoreworICAgIGlmICghbV9tZWRpYUNvbnRy
b2xsZXItPmhhc0Nsb3NlZENhcHRpb25zKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICht
X2Nsb3NlZENhcHRpb25zQ29udGFpbmVyKSB7CisgICAgICAgIGlmIChtX2Nsb3NlZENhcHRpb25z
Q29udGFpbmVyLT5pc1Nob3dpbmcoKSkKKyAgICAgICAgICAgIG1fY2xvc2VkQ2FwdGlvbnNDb250
YWluZXItPmhpZGUoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9jbG9zZWRDYXB0aW9u
c0NvbnRhaW5lci0+c2hvdygpOworICAgIH0KK30KKwogYm9vbCBNZWRpYUNvbnRyb2xSb290RWxl
bWVudDo6c2hvdWxkSGlkZUNvbnRyb2xzKCkKIHsKICAgICByZXR1cm4gIW1fcGFuZWwtPmhvdmVy
ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJv
bFJvb3RFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xS
b290RWxlbWVudC5oCmluZGV4IGEwYjA5ZDg3NDViN2FjNjFhN2Q1OTZkNDFhMjM4OTY2YjYxZjRi
NGIuLjA2NzM5YmVhNWFlYzg2OWRhMDdjMjc0YWZjOGQxYWE1Y2M0MjBiYTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnQuaApA
QCAtNDIsNyArNDIsOSBAQCBjbGFzcyBNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudDsKIGNs
YXNzIE1lZGlhQ29udHJvbFNlZWtCdXR0b25FbGVtZW50OwogY2xhc3MgTWVkaWFDb250cm9sUmV3
aW5kQnV0dG9uRWxlbWVudDsKIGNsYXNzIE1lZGlhQ29udHJvbFJldHVyblRvUmVhbHRpbWVCdXR0
b25FbGVtZW50OworY2xhc3MgTWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNDb250YWluZXJFbGVt
ZW50OwogY2xhc3MgTWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50
OworY2xhc3MgTWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVtZW50OwogY2xh
c3MgTWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudDsKIGNsYXNzIE1lZGlhQ29u
dHJvbFRpbWVsaW5lRWxlbWVudDsKIGNsYXNzIE1lZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNw
bGF5RWxlbWVudDsKQEAgLTEwMyw2ICsxMDUsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVU
aW1lRGlzcGxheSgpOwogICAgIHZvaWQgdXBkYXRlU3RhdHVzRGlzcGxheSgpOwogCisgICAgdm9p
ZCB0b2dnbGVDbG9zZWRDYXB0aW9uVHJhY2tMaXN0KCk7CisKICNpZiBFTkFCTEUoVklERU9fVFJB
Q0spCiAgICAgdm9pZCBjcmVhdGVUZXh0VHJhY2tEaXNwbGF5KCk7CiAgICAgdm9pZCBzaG93VGV4
dFRyYWNrRGlzcGxheSgpOwpAQCAtMTQxLDYgKzE0NSw4IEBAIHByaXZhdGU6CiAgICAgTWVkaWFD
b250cm9sU2Vla0JhY2tCdXR0b25FbGVtZW50KiBtX3NlZWtCYWNrQnV0dG9uOwogICAgIE1lZGlh
Q29udHJvbFNlZWtGb3J3YXJkQnV0dG9uRWxlbWVudCogbV9zZWVrRm9yd2FyZEJ1dHRvbjsKICAg
ICBNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQqIG1fdG9nZ2xl
Q2xvc2VkQ2FwdGlvbnNCdXR0b247CisgICAgTWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNUcmFj
a0xpc3RFbGVtZW50KiBtX2Nsb3NlZENhcHRpb25zVHJhY2tMaXN0OworICAgIE1lZGlhQ29udHJv
bENsb3NlZENhcHRpb25zQ29udGFpbmVyRWxlbWVudCogbV9jbG9zZWRDYXB0aW9uc0NvbnRhaW5l
cjsKICAgICBNZWRpYUNvbnRyb2xQYW5lbE11dGVCdXR0b25FbGVtZW50KiBtX3BhbmVsTXV0ZUJ1
dHRvbjsKICAgICBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50KiBtX3ZvbHVtZVNsaWRl
cjsKICAgICBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJNdXRlQnV0dG9uRWxlbWVudCogbV92b2x1
bWVTbGlkZXJNdXRlQnV0dG9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtLmNwcAppbmRleCA4MmQ4
ZjkyNjBlNmIyYmNmYWRiYzVmZjc3ZTA0YWMwYTg3OTY5NGNlLi5jMjU5ZmRkM2IwNWNkYTgxN2Jj
ZjUzODIzNDE3NTAwZWEyZjViOWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtLmNwcApAQCAt
MTY2LDcgKzE2Niw3IEBAIGJvb2wgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6aW5p
dGlhbGl6ZUNvbnRyb2xzKERvY3VtZW50KiBkb2N1bWVudCkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCiAgICAgaWYgKGRvY3VtZW50LT5wYWdlKCktPnRoZW1lKCktPnN1cHBvcnRzQ2xvc2VkQ2Fw
dGlvbmluZygpKSB7Ci0gICAgICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0
aW9uc0J1dHRvbkVsZW1lbnQ+IHRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uID0gTWVkaWFDb250
cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwor
ICAgICAgICBSZWZQdHI8TWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVt
ZW50PiB0b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbiA9IE1lZGlhQ29udHJvbFRvZ2dsZUNsb3Nl
ZENhcHRpb25zQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCB0aGlzKTsKICAgICAgICAg
bV90b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbiA9IHRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9u
LmdldCgpOwogICAgICAgICBwYW5lbC0+YXBwZW5kQ2hpbGQodG9nZ2xlQ2xvc2VkQ2FwdGlvbnNC
dXR0b24ucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CiAgICAgICAgIGlmIChlYykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHMuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHMuaAppbmRleCAyODkwOGE5YTEwN2U0NTcwMzky
ODY4MzIwMzNkYmEyOGQwMzdiNjM2Li42ZjBmYWQ4MjQxNmIxMDhjMzcyMmM1NmRiNmY2MTg2YzNm
NWM0NzkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRy
b2xzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9scy5oCkBA
IC03MCw2ICs3MCw4IEBAIGNsYXNzIE1lZGlhQ29udHJvbHMgOiBwdWJsaWMgSFRNTERpdkVsZW1l
bnQgewogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVUaW1lRGlzcGxheSgpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgdXBkYXRlU3RhdHVzRGlzcGxheSgpID0gMDsKIAorICAgIHZpcnR1YWwgdm9pZCB0
b2dnbGVDbG9zZWRDYXB0aW9uVHJhY2tMaXN0KCkgeyB9CisKICAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkSGlkZUNvbnRyb2xzKCkgPSAwOwogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGFuZ3VhZ2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vTGFuZ3VhZ2UuY3BwCmluZGV4IGRiYTNhODlmYmJjMTM3YzU4ZmNjYWU5Mzhi
NGFmMWNhNDhlMWQ2Y2QuLmUyOGU3NmUxMDcyYjIwOGQxYmRhMTUyMzNlZGM3NzQ3MjE4NmE3ZDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xhbmd1YWdlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MYW5ndWFnZS5jcHAKQEAgLTI3LDggKzI3LDEzIEBACiAj
aW5jbHVkZSAiTGFuZ3VhZ2UuaCIKIAogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVk
ZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCisj
aWYgUExBVEZPUk0oTUFDKQorI2luY2x1ZGUgPENvcmVGb3VuZGF0aW9uL0NvcmVGb3VuZGF0aW9u
Lmg+CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB0eXBlZGVmIEhhc2hNYXA8dm9p
ZCosIExhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXJGdW5jdGlvbj4gT2JzZXJ2ZXJNYXA7CkBAIC0xNDIs
NSArMTQ3LDE0IEBAIFN0cmluZyBwcmVmZXJyZWRMYW5ndWFnZUZyb21MaXN0KGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiBsYW5ndWFnZUxpc3QpCiAKICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKIH0K
LSAgICAKKworU3RyaW5nIGRpc3BsYXlOYW1lRm9yTGFuZ3VhZ2VMb2NhbGUoY29uc3QgU3RyaW5n
JiBsb2NhbGVOYW1lKQoreworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBpZiAoIWxvY2FsZU5hbWUu
aXNOdWxsKCkgJiYgIWxvY2FsZU5hbWUuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gQ0ZMb2Nh
bGVDb3B5RGlzcGxheU5hbWVGb3JQcm9wZXJ0eVZhbHVlKENGTG9jYWxlQ29weUN1cnJlbnQoKSwg
a0NGTG9jYWxlSWRlbnRpZmllciwgbG9jYWxlTmFtZS5jcmVhdGVDRlN0cmluZygpLmdldCgpKTsK
KyNlbmRpZgorICAgIHJldHVybiBsb2NhbGVOYW1lOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9MYW5ndWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
TGFuZ3VhZ2UuaAppbmRleCA0MTE2MTVjOWU5YzY4MWU0ZjE3MGUxNmIwZGYxNzNmNzZkZjZkNjA2
Li4yOWYxY2E4YWU1NDExNzk2ZWIyNjQyYmVkY2E3OGYwZWRhNGIxY2E0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MYW5ndWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0xhbmd1YWdlLmgKQEAgLTQzLDYgKzQzLDggQEAgdm9pZCByZW1vdmVMYW5ndWFnZUNo
YW5nZU9ic2VydmVyKHZvaWQqIGNvbnRleHQpOwogCiBWZWN0b3I8U3RyaW5nPiBwbGF0Zm9ybVVz
ZXJQcmVmZXJyZWRMYW5ndWFnZXMoKTsKIAorU3RyaW5nIGRpc3BsYXlOYW1lRm9yTGFuZ3VhZ2VM
b2NhbGUoY29uc3QgU3RyaW5nJik7CisKIC8vIENhbGxlZCBmcm9tIHBsYXRmb3JtIHNwZWNpZmlj
IGNvZGUgd2hlbiB0aGUgdXNlcidzIHByZWZlcnJlZCBsYW5ndWFnZShzKSBjaGFuZ2UuCiB2b2lk
IGxhbmd1YWdlRGlkQ2hhbmdlKCk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173413</attachid>
            <date>2012-11-09 17:28:46 -0800</date>
            <delta_ts>2012-11-09 23:50:51 -0800</delta_ts>
            <desc>Rebased patch take 4</desc>
            <filename>bug-101669-20121109172652.patch</filename>
            <type>text/plain</type>
            <size>34486</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0MTMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGFiYjYxMDIzNmY1ZGRi
NDNjMmI1ZjFjZWM3NmU1ZWRmMTZlZjhkNS4uNWZlODBkODllNWU1YmI3MTljZGYzZTliZTVlYTg2
YWQ3YzdhNjY3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDEyLTExLTA5ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IGxpc3Qgb2YgdHJh
Y2tzIGluIGNhcHRpb24gbWVkaWEgY29udHJvbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTY2OQorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMg
Q2FybHNvbi4KKworICAgICAgICBBZGQgc29tZSBuZXcgZWxlbWVudHMgdG8gdGhlIG1lZGlhIGNv
bnRyb2wgc2hhZG93IERPTSB0aGF0IGRpc3BsYXkgdGhlIGxpc3Qgb2YgYXZhaWxhYmxlCisgICAg
ICAgIHRyYWNrcyBvbiBhbiBhdWRpby92aWRlbyBlbGVtZW50LiBUaGUgVUkgaXMgaGlkZGVuIGJ5
IGRlZmF1bHQgZXZlcnl3aGVyZSBidXQgb24gTWFjLAorICAgICAgICB3aGVyZSBpdCBpcyBnaXZl
biBhIHZlcnkgYmFzaWMgZGVzaWduLiBBdCB0aGUgbW9tZW50IG9ubHkgdGhlIGxpc3Qgb2YgYXZh
aWxhYmxlIHRyYWNrcworICAgICAgICBhcmUgZGlzcGxheWVkOyBUaGUgZm9sbG93dXAgYnVnIHdp
bGwgbWFrZSB0aGUgVUkgYWN0aXZlOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTAxNjcwCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIC0gdGhpcyBkb2Vzbid0IGV4cG9z
ZSBhbnkgdGVzdGFibGUgc3VyZmFjZS4KKworICAgICAgICAqIGNzcy9tZWRpYUNvbnRyb2xzLmNz
czogQWRkZWQgZGVmYXVsdCBydWxlcyB0aGF0IGhpZGUgdGhlIG5ldyBlbGVtZW50cy4KKyAgICAg
ICAgKiBjc3MvbWVkaWFDb250cm9sc1F1aWNrVGltZS5jc3M6IFNwZWNpZmljIHJ1bGVzIHRoYXQg
Z2l2ZSBhIGJhc2ljIHJlbmRlcmluZyBvZiB0aGUgbmV3IHRyYWNrIGxpc3QuCisgICAgICAgICog
aHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFDb250cm9sRWxlbWVudDo6aXNTaG93aW5nKTogVGVzdHMgZm9yIHRoZSB2aXNpYmlsaXR5
IG9mIGEgY29udHJvbC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbENsb3NlZENhcHRp
b25zQ29udGFpbmVyRWxlbWVudDo6TWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNDb250YWluZXJF
bGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zQ29u
dGFpbmVyRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbENs
b3NlZENhcHRpb25zQ29udGFpbmVyRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50OjpN
ZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50Ojpj
cmVhdGUpOiBOb3cgdGFrZXMgYSByZWZlcmVuY2UgdG8gdGhlIG1lZGlhIGNvbnRyb2xzIGFzIGEg
cGFyYW1ldGVyLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2Fw
dGlvbnNCdXR0b25FbGVtZW50Ojp1cGRhdGVEaXNwbGF5VHlwZSk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ6OmRlZmF1bHRF
dmVudEhhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sVG9nZ2xlQ2xvc2Vk
Q2FwdGlvbnNCdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQ6Ok1lZGlhQ29udHJv
bENsb3NlZENhcHRpb25zVHJhY2tMaXN0RWxlbWVudCk6IE5ldyBlbGVtZW50IGZvciBob2xkaW5n
IGEgbGlzdCBvZiB0cmFja3MgdG8gZGlzcGxheS4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRp
YUNvbnRyb2xFbGVtZW50cy5oOgorICAgICAgICAoTWVkaWFDb250cm9sRWxlbWVudCk6CisgICAg
ICAgIChNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQpOgorICAg
ICAgICAoTWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNDb250YWluZXJFbGVtZW50KToKKyAgICAg
ICAgKE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zVHJhY2tMaXN0RWxlbWVudCk6IEV4YW1pbmVz
IHRoZSBtZWRpYSBlbGVtZW50IHRvIGJ1aWxkIGEgc2hhZG93IERPTSB0aGF0IGxpc3RzIGFsbCB0
aGUgdHJhY2tzIGF2YWlsYWJsZS4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xS
b290RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVu
dDo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250
cm9sUm9vdEVsZW1lbnQ6OmNyZWF0ZSk6IE5ldyB0cmFjayBjb250YWluZXIgYW5kIGxpc3QgZWxl
bWVudHMgY3JlYXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50
OjpzZXRNZWRpYUNvbnRyb2xsZXIpOiBIb29rIHVwIHRoZSBuZXcgZWxlbWVudHMgdG8gdGhlIGNv
bnRyb2xsZXIuLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnQ6Omhp
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnQ6Om1ha2VUcmFu
c3BhcmVudCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVudDo6cmVz
ZXQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnQ6OnJlcG9ydGVk
RXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnQ6OnRvZ2ds
ZUNsb3NlZENhcHRpb25UcmFja0xpc3QpOiBTaG93cyBvciBoaWRlcyB0aGUgcG9wdXAgd2l0aCB0
aGUgbGlzdCBvZiB0cmFja3MuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBodG1sL3No
YWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChNZWRpYUNvbnRyb2xSb290RWxlbWVudCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvTWVk
aWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjppbml0aWFsaXplQ29udHJvbHMpOiBQYXNzIGlu
IHRoZSBjb250cm9scyBhcyBhIHBhcmFtZXRlci4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRp
YUNvbnRyb2xzLmg6CisgICAgICAgIChNZWRpYUNvbnRyb2xzKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9MYW5ndWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkaXNwbGF5TmFtZUZvckxhbmd1YWdl
TG9jYWxlKTogTmV3IGZ1bmN0aW9uIHRvIHJldHVybiBhIGh1bWFuLXJlYWRhYmxlIG5hbWUgZm9y
IGEgbG9jYWxlLCBnaXZlbiB0aGUgaWRlbnRpZmllciBpbnB1dC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9MYW5ndWFnZS5oOgorICAgICAgICAoV2ViQ29yZSk6CisKIDIwMTItMTEtMDkgIEFsZWMgRmxl
dHQgIDxhbGVjZmxldHRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEluZGV4ZWREQjogQ29tYmlu
ZSBJREJCYWNraW5nU3RvcmUgYW5kIElEQkxldmVsREJCYWNraW5nU3RvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzLmNzcyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9tZWRpYUNvbnRyb2xzLmNzcwppbmRleCA2ZGYwMzQwMmQzYTRjOWU3OGFiZjhmNzdlYzRhYjEz
YmZiYmY4NGViLi4wMGVmY2JiYTY1ZDQ0YWEwYjMxNjkyNjAxNjBhZDYwMTkzNTQyMDEwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9scy5jc3MKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL21lZGlhQ29udHJvbHMuY3NzCkBAIC0xODcsNiArMTg3LDE0IEBAIGF1ZGlv
Ojotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRvZ2dsZS1jbG9zZWQtY2FwdGlvbnMtYnV0dG9uLCB2
aWRlbzo6LXdlYmtpdC1tZWRpCiAgICAgY29sb3I6IGluaGVyaXQ7CiB9CiAKK2F1ZGlvOjotd2Vi
a2l0LW1lZGlhLWNvbnRyb2xzLWNsb3NlZC1jYXB0aW9ucy1jb250YWluZXIsIHZpZGVvOjotd2Vi
a2l0LW1lZGlhLWNvbnRyb2xzLWNsb3NlZC1jYXB0aW9ucy1jb250YWluZXIgeworICAgIGRpc3Bs
YXk6IG5vbmU7Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWNsb3NlZC1jYXB0
aW9ucy10cmFjay1saXN0LCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1jbG9zZWQtY2Fw
dGlvbnMtdHJhY2stbGlzdCB7CisgICAgZGlzcGxheTogbm9uZTsKK30KKwogYXVkaW86Oi13ZWJr
aXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlci1tdXRlLWJ1dHRvbiwgdmlkZW86Oi13ZWJr
aXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlci1tdXRlLWJ1dHRvbiB7CiAgICAgLXdlYmtp
dC1hcHBlYXJhbmNlOiBtZWRpYS12b2x1bWUtc2xpZGVyLW11dGUtYnV0dG9uOwogICAgIGRpc3Bs
YXk6IG5vbmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9sc1F1
aWNrVGltZS5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9sc1F1aWNrVGltZS5j
c3MKaW5kZXggMmViOTA4YjAwOWQ2YmNjNmQxOTc1Y2M5ZGUzNmE0ZTFiOTczNWUwMi4uMDA3NWUy
Y2ZiOWMwMDJhY2VkODBhZWZmMTEyMjQ5NjBlY2IxOWRmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL21lZGlhQ29udHJvbHNRdWlja1RpbWUuY3NzCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9tZWRpYUNvbnRyb2xzUXVpY2tUaW1lLmNzcwpAQCAtMTg4LDE3ICsxODgsNiBAQCBhdWRp
bzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1zdGF0dXMtZGlzcGxheSwgdmlkZW86Oi13ZWJraXQt
bWVkaWEtY29udHJvbHMtc3RhdAogICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKIH0KIAotYXVk
aW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdG9nZ2xlLWNsb3NlZC1jYXB0aW9ucy1idXR0b24s
IHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRvZ2dsZS1jbG9zZWQtY2FwdGlvbnMtYnV0
dG9uIHsKLSAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLXRvZ2dsZS1jbG9zZWQtY2FwdGlv
bnMtYnV0dG9uOwotICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OwotICAgIHdpZHRoOiAxNnB4Owot
ICAgIGhlaWdodDogMTZweDsKLSAgICBtYXJnaW4tbGVmdDogN3B4OwotICAgIG1hcmdpbi1yaWdo
dDogN3B4OwotICAgIC13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6IDM7IC8qIGJldHdlZW4gbXV0
ZSBhbmQgZnVsbHNjcmVlbiAqLwotICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50OwotfQotCiBh
dWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyLWNvbnRhaW5lciwgdmlk
ZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlci1jb250YWluZXIgewogICAg
IC13ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEtdm9sdW1lLXNsaWRlci1jb250YWluZXI7CiAgICAg
cG9zaXRpb246IGFic29sdXRlOwpAQCAtMjM5LDMgKzIyOCwxMDQgQEAgYXVkaW86Oi13ZWJraXQt
bWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlci1tdXRlLWJ1dHRvbiwgdmlkZW86Oi13ZWJraXQt
bWVkaWEtY28KIAogICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50OwogfQorCithdWRpbzo6LXdl
YmtpdC1tZWRpYS1jb250cm9scy10b2dnbGUtY2xvc2VkLWNhcHRpb25zLWJ1dHRvbiwgdmlkZW86
Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdG9nZ2xlLWNsb3NlZC1jYXB0aW9ucy1idXR0b24gewor
ICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEtdG9nZ2xlLWNsb3NlZC1jYXB0aW9ucy1idXR0
b247CisgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7CisgICAgd2lkdGg6IDE2cHg7CisgICAgaGVp
Z2h0OiAxNnB4OworICAgIG1hcmdpbi1sZWZ0OiA3cHg7CisgICAgbWFyZ2luLXJpZ2h0OiA3cHg7
CisgICAgLXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDogMzsgLyogYmV0d2VlbiBtdXRlIGFuZCBm
dWxsc2NyZWVuICovCisgICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7Cit9CisKK2F1ZGlvOjot
d2Via2l0LW1lZGlhLWNvbnRyb2xzLWNsb3NlZC1jYXB0aW9ucy1jb250YWluZXIsIHZpZGVvOjot
d2Via2l0LW1lZGlhLWNvbnRyb2xzLWNsb3NlZC1jYXB0aW9ucy1jb250YWluZXIgeworICAgIC13
ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEtY2xvc2VkLWNhcHRpb25zLWNvbnRhaW5lcjsKKyAgICBw
b3NpdGlvbjogYWJzb2x1dGU7CisgICAgZGlzcGxheTogYmxvY2s7CisgICAgYm90dG9tOiAyOXB4
OworICAgIG1hcmdpbi1sZWZ0OiAtMTU1cHg7CisgICAgei1pbmRleDogMjsKKyAgICB3aWR0aDog
MjAwcHg7CisgICAgaGVpZ2h0OiAyNTBweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAs
IDAsIDAsIDAuODUpOworICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYig2NiwgNjYsIDY2KTsKKyAg
ICBib3JkZXItcmFkaXVzOiA4cHg7Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xz
LWNsb3NlZC1jYXB0aW9ucy10cmFjay1saXN0LCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9s
cy1jbG9zZWQtY2FwdGlvbnMtdHJhY2stbGlzdCB7CisgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBt
ZWRpYS1jbG9zZWQtY2FwdGlvbnMtdHJhY2stbGlzdDsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7
CisgICAgZGlzcGxheTogYmxvY2s7CisgICAgdG9wOiA1cHg7CisgICAgbGVmdDogNXB4OworICAg
IHdpZHRoOiAxOTBweDsKKyAgICBoZWlnaHQ6IDI0MHB4OworICAgIG92ZXJmbG93LXg6IGhpZGRl
bjsKKyAgICBvdmVyZmxvdy15OiBzY3JvbGw7CisgICAgdGV4dC1hbGlnbjogbGVmdDsKKyAgICBm
b250LWZhbWlseTogIkhlbHZldGljYSBCb2xkIiwgIkhlbHZldGljYSI7CisgICAgZm9udC13ZWln
aHQ6IGJvbGQ7CisgICAgZm9udC1zaXplOiA5cHQ7Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlh
LWNvbnRyb2xzLWNsb3NlZC1jYXB0aW9ucy10cmFjay1saXN0IGgzLAordmlkZW86Oi13ZWJraXQt
bWVkaWEtY29udHJvbHMtY2xvc2VkLWNhcHRpb25zLXRyYWNrLWxpc3QgaDMgeworICAgIG1hcmdp
bjogMDsKKyAgICBjb2xvcjogI2JiYjsKKyAgICB0ZXh0LXNoYWRvdzogMCAxcHggMCBibGFjazsK
KyAgICBwYWRkaW5nLWxlZnQ6IDRweDsKKyAgICBwYWRkaW5nLXRvcDogNHB4OworICAgIHBhZGRp
bmctYm90dG9tOiA0cHg7CisgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM1NTU7CisgICAg
Zm9udC1zaXplOiA5cHQ7Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWNsb3Nl
ZC1jYXB0aW9ucy10cmFjay1saXN0IHVsLAordmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMt
Y2xvc2VkLWNhcHRpb25zLXRyYWNrLWxpc3QgdWwgeworICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9u
ZTsKKyAgICBtYXJnaW46IDAgMCA4cHggMDsKKyAgICBwYWRkaW5nOiAwOworfQorCithdWRpbzo6
LXdlYmtpdC1tZWRpYS1jb250cm9scy1jbG9zZWQtY2FwdGlvbnMtdHJhY2stbGlzdCBsaSwKK3Zp
ZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWNsb3NlZC1jYXB0aW9ucy10cmFjay1saXN0IGxp
IHsKKyAgICBjb2xvcjogd2hpdGU7CisgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDAgYmxhY2s7Cisg
ICAgbWFyZ2luOiAwOworICAgIHBhZGRpbmctbGVmdDogMjRweDsKKyAgICBwYWRkaW5nLXJpZ2h0
OiAxMHB4OworICAgIHBhZGRpbmctdG9wOiAwLjM1ZW07CisgICAgcGFkZGluZy1ib3R0b206IDAu
M2VtOworICAgIHdpZHRoOiAxOTBweDsKKyAgICBoZWlnaHQ6IDIuMGVtOworICAgIGJvcmRlci1i
b3R0b206IDFweCBzb2xpZCAjNTU1OworICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CisgICAg
b3ZlcmZsb3c6IGhpZGRlbjsKKyAgICB3aGl0ZS1zcGFjZTogbm93cmFwOworICAgIHRleHQtb3Zl
cmZsb3c6IGVsbGlwc2lzOworICAgIC13ZWJraXQtdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7Cit9
CisKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWNsb3NlZC1jYXB0aW9ucy10cmFjay1s
aXN0IGxpOmhvdmVyLAordmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtY2xvc2VkLWNhcHRp
b25zLXRyYWNrLWxpc3QgbGk6aG92ZXIgeworICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQt
Z3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgbGVmdCBib3R0b20sIGNvbG9yLXN0b3AoMCwgcmdi
KDc5LCAxMTIsIDI0NSkpLCBjb2xvci1zdG9wKDEsIHJnYigyOCwgNjYsIDI0NSkpKTsKKyAgICBi
b3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiKDI4LCA2NiwgMjQ1KTsKK30KKworYXVkaW86Oi13
ZWJraXQtbWVkaWEtY29udHJvbHMtY2xvc2VkLWNhcHRpb25zLXRyYWNrLWxpc3QgbGkuc2VsZWN0
ZWQsCit2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1jbG9zZWQtY2FwdGlvbnMtdHJhY2st
bGlzdCBsaS5zZWxlY3RlZCB7CisgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdl
L3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQURZQUFBQTlDQVlBQUFEbWdwb2VB
QUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlKcFZG
aDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1
L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFs
ZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJ
RmhOVUNCRGIzSmxJRFV1TUMxak1EWXdJRFl4TGpFek5EYzNOeXdnTWpBeE1DOHdNaTh4TWkweE56
b3pNam93TUNBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4
dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEpr
WmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndP
aTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNE
b3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1o
MGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkps
WmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVOVE5TQk5Z
V05wYm5SdmMyZ2lJSGh0Y0UxTk9rbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZSVEJFUWtJNVF6
Z3lNVGM0TVRGRk1rSkVSRGRCUmpJM05FUXdOelpFUmpBaUlIaHRjRTFOT2tSdlkzVnRaVzUwU1VR
OUluaHRjQzVrYVdRNlJUQkVRa0k1UXpreU1UYzRNVEZGTWtKRVJEZEJSakkzTkVRd056WkVSakFp
UGlBOGVHMXdUVTA2UkdWeWFYWmxaRVp5YjIwZ2MzUlNaV1k2YVc1emRHRnVZMlZKUkQwaWVHMXdM
bWxwWkRwRk1FUkNRamxETmpJeE56Z3hNVVV5UWtSRU4wRkdNamMwUkRBM05rUkdNQ0lnYzNSU1pX
WTZaRzlqZFcxbGJuUkpSRDBpZUcxd0xtUnBaRHBGTUVSQ1FqbEROekl4TnpneE1VVXlRa1JFTjBG
R01qYzBSREEzTmtSR01DSXZQaUE4TDNKa1pqcEVaWE5qY21sd2RHbHZiajRnUEM5eVpHWTZVa1JH
UGlBOEwzZzZlRzF3YldWMFlUNGdQRDk0Y0dGamEyVjBJR1Z1WkQwaWNpSS9QcXBXejBVQUFBSFBT
VVJCVkhqYTdKcUJiWVF3REVYZERSZ2hJN0JCR1NFalpBUkd5QWFNd0FnM0F0Y0pNa0p1ZzR4QVV5
bXFUZ2dWTzF5SmJaMGxDeUdkMEQzWi9QdzRmSUNBV05mVjVJdk4rWm16ejJrMlA3bVg2MWZPeDlN
OVg2Q2N5MHFMT1dmSEdjcXQ5Smk0VjZvR3lyMmhHa0QxR3FHNm5GRVZWQUdiTkVJTjZxQUtXS0Nz
VTFLZ1JnTFVJZ1hxUnpBU0VpcXlkaFFiTUUrb1ZpOEZ5aENxTllLVUtHWlZ6M3YxVkMxTXBMSmxV
VmV0VVdPMUFrZ0tnblVhSkVGaDE2MVpXclc4T3NFb1lKaHFlV2xRRGxtdFRocFkxRml0UVd1MWJo
cVZFTHNnaTFOQ3I2NWFCTkVZcm1pYmVmTm5RckZCcHVKNXR1bTJwRmdkak9PZUtNcUZGQTMzbjFD
VVFXWEF3SlhuSGtvOEIxZEFna05Pbi93Vkx6a1Zibm5Cck5CY3BXQlVPSDlpN2JweEhvbnRqc1dR
bTBuTGVTYXhPOGhFaUZGc3ViQ0dtcFpFbm5INWxtQ1U4Zk52U3lMYnNLMHZKQjd2TE1oSzh4aUFF
c1hFTjNNYWxYRFVieTNhT0kxS2M1eGVBTVp2ZTFMNW1ZS01vNkNUTFJtQmE1eHNTZDRIRE1Relkx
a3pqWXFXRkhNb1RtMUpCMUtDdUhDTEc0UUdkdnV1Qzcya0JZbHg0T1lUU0kyRDdjME1rdU9QdGMy
QzlOZ1JrZ1FhWWtkSUp0QVNtNUYycnduTXNIZnlKK1YvMGdqV2NXakRid0VHQU45L05YOEg3Vi9G
QUFBQUFFbEZUa1N1UW1DQycpOworICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7Cisg
ICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMC41ZW0gMC41ZW07CisgICAgYmFja2dyb3VuZC1zaXpl
OiAxZW0gMWVtOworfQorCithdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1jbG9zZWQtY2Fw
dGlvbnMtdHJhY2stbGlzdCBsaS5zZWxlY3RlZDpob3ZlciwKK3ZpZGVvOjotd2Via2l0LW1lZGlh
LWNvbnRyb2xzLWNsb3NlZC1jYXB0aW9ucy10cmFjay1saXN0IGxpLnNlbGVjdGVkOmhvdmVyIHsK
KyAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncw
S0dnb0FBQUFOU1VoRVVnQUFBRFlBQUFBOUNBWUFBQURtZ3BvZUFBQUFHWFJGV0hSVGIyWjBkMkZ5
WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBeUpwVkZoMFdFMU1PbU52YlM1aFpHOWla
UzU0YlhBQUFBQUFBRHcvZUhCaFkydGxkQ0JpWldkcGJqMGk3N3UvSWlCcFpEMGlWelZOTUUxd1Ey
Vm9hVWg2Y21WVGVrNVVZM3ByWXpsa0lqOCtJRHg0T25odGNHMWxkR0VnZUcxc2JuTTZlRDBpWVdS
dlltVTZibk02YldWMFlTOGlJSGc2ZUcxd2RHczlJa0ZrYjJKbElGaE5VQ0JEYjNKbElEVXVNQzFq
TURZd0lEWXhMakV6TkRjM055d2dNakF4TUM4d01pOHhNaTB4Tnpvek1qb3dNQ0FnSUNBZ0lDQWdJ
ajRnUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9U
azVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0Z1BISmtaanBFWlhOamNtbHdkR2x2YmlC
eVpHWTZZV0p2ZFhROUlpSWdlRzFzYm5NNmVHMXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0
TDNoaGNDOHhMakF2SWlCNGJXeHVjenA0YlhCTlRUMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZi
Uzk0WVhBdk1TNHdMMjF0THlJZ2VHMXNibk02YzNSU1pXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpT
NWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpWSmxaaU1pSUhodGNEcERjbVZoZEc5
eVZHOXZiRDBpUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5UTlNCTllXTnBiblJ2YzJnaUlIaHRjRTFO
T2tsdWMzUmhibU5sU1VROUluaHRjQzVwYVdRNlJUQkVRa0k1UXpneU1UYzRNVEZGTWtKRVJEZEJS
akkzTkVRd056WkVSakFpSUhodGNFMU5Pa1J2WTNWdFpXNTBTVVE5SW5odGNDNWthV1E2UlRCRVFr
STVRemt5TVRjNE1URkZNa0pFUkRkQlJqSTNORVF3TnpaRVJqQWlQaUE4ZUcxd1RVMDZSR1Z5YVha
bFpFWnliMjBnYzNSU1pXWTZhVzV6ZEdGdVkyVkpSRDBpZUcxd0xtbHBaRHBGTUVSQ1FqbEROakl4
TnpneE1VVXlRa1JFTjBGR01qYzBSREEzTmtSR01DSWdjM1JTWldZNlpHOWpkVzFsYm5SSlJEMGll
RzF3TG1ScFpEcEZNRVJDUWpsRE56SXhOemd4TVVVeVFrUkVOMEZHTWpjMFJEQTNOa1JHTUNJdlBp
QThMM0prWmpwRVpYTmpjbWx3ZEdsdmJqNGdQQzl5WkdZNlVrUkdQaUE4TDNnNmVHMXdiV1YwWVQ0
Z1BEOTRjR0ZqYTJWMElHVnVaRDBpY2lJL1BxcFd6MFVBQUFIUFNVUkJWSGphN0pxQmJZUXdERVhk
RFJnaEk3QkJHU0VqWkFSR3lBYU13QWczQXRjSk1rSnVnNHhBVXltcVRnZ1ZPMXlKYlowbEN5R2Qw
RDNaL1B3NGZJQ0FXTmZWNUl2TitabXp6MmsyUDdtWDYxZk94OU05WDZDY3kwcUxPV2ZIR2NxdDlK
aTRWNm9HeXIyaEdrRDFHcUc2bkZFVlZBR2JORUlONnFBS1dLQ3NVMUtnUmdMVUlnWHFSekFTRWlx
eWRoUWJNRStvVmk4RnloQ3FOWUtVS0daVnozdjFWQzFNcExKbFVWZXRVV08xQWtnS2duVWFKRUZo
MTYxWldyVzhPc0VvWUpocWVXbFFEbG10VGhwWTFGaXRRV3UxYmhxVkVMc2dpMU5DcjY1YUJORVly
bWliZWZOblFyRkJwdUo1dHVtMnBGZ2RqT09lS01xRkZBMzNuMUNVUVdYQXdKWG5Ia284QjFkQWdr
Tk9uL3dWTHprVmJubkJyTkJjcFdCVU9IOWk3YnB4SG9udGpzV1FtMG5MZVNheE84aEVpRkZzdWJD
R21wWkVubkg1bG1DVThmTnZTeUxic0swdkpCN3ZMTWhLOHhpQUVzWEVOM01hbFhEVWJ5M2FPSTFL
YzV4ZUFNWnZlMUw1bVlLTW82Q1RMUm1CYTV4c1NkNEhETVF6WTFrempZcVdGSE1vVG0xSkIxS0N1
SENMRzRRR2R2dXVDNzJrQllseDRPWVRTSTJEN2MwTWt1T1B0YzJDOU5nUmtnUWFZa2RJSnRBU201
RjJyd25Nc0hmeUorVi8wZ2pXY1dqRGJ3RUdBTjkvTlg4SDdWL0ZBQUFBQUVsRlRrU3VRbUNDJyks
IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgbGVmdCBib3R0b20sIGNvbG9yLXN0
b3AoMCwgcmdiKDc5LCAxMTIsIDI0NSkpLCBjb2xvci1zdG9wKDEsIHJnYigyOCwgNjYsIDI0NSkp
KTsKKyAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0LCByZXBlYXQ7CisgICAgYmFja2dy
b3VuZC1wb3NpdGlvbjogMC41ZW0gMC41ZW0sIHRvcCBsZWZ0OworICAgIGJhY2tncm91bmQtc2l6
ZTogMWVtIDFlbSwgMTAwJSAxMDAlOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCmluZGV4IDBiYmY3NjNhODA1N2Y2ZTJkOGRh
ZDFmYmVhMzZkYTMyMzQ5YmQ4MjEuLmE3MWIzNmNmNTFkNGI5N2UwZGFlZTlhMzllMDQ4NTFiYjhm
OWFiYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJv
bEVsZW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRy
b2xFbGVtZW50cy5jcHAKQEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRlICJIVE1MTWVkaWFFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTFZpZGVvRWxlbWVu
dC5oIgorI2luY2x1ZGUgIkxhbmd1YWdlLmgiCiAjaW5jbHVkZSAiTGF5b3V0UmVwYWludGVyLmgi
CiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgogI2luY2x1ZGUgIk1lZGlhQ29udHJvbFJv
b3RFbGVtZW50LmgiCkBAIC02Miw2ICs2Myw5IEBACiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNp
bmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgorI2lmIEVOQUJMRShW
SURFT19UUkFDSykKKyNpbmNsdWRlICJUZXh0VHJhY2tMaXN0LmgiCisjZW5kaWYKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkBAIC0xMTQsNiArMTE4LDE0IEBAIHZvaWQgTWVkaWFDb250cm9sRWxl
bWVudDo6aGlkZSgpCiAgICAgc2V0SW5saW5lU3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eURpc3Bs
YXksIENTU1ZhbHVlTm9uZSk7CiB9CiAKK2Jvb2wgTWVkaWFDb250cm9sRWxlbWVudDo6aXNTaG93
aW5nKCkgY29uc3QKK3sKKyAgICBjb25zdCBTdHlsZVByb3BlcnR5U2V0KiBwcm9wZXJ0eVNldCA9
IGlubGluZVN0eWxlKCk7CisgICAgLy8gRm9sbG93aW5nIHRoZSBjb2RlIGZyb20gc2hvdygpIGFu
ZCBoaWRlKCkgYWJvdmUsIHdlIG9ubHkgaGF2ZQorICAgIC8vIHRvIGNoZWNrIGZvciB0aGUgcHJl
c2Vuc2Ugb2YgaW5saW5lIGRpc3BsYXkuCisgICAgcmV0dXJuICghcHJvcGVydHlTZXQgfHwgIXBy
b3BlcnR5U2V0LT5nZXRQcm9wZXJ0eUNTU1ZhbHVlKENTU1Byb3BlcnR5RGlzcGxheSkpOworfQor
CiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIGlubGluZSBNZWRpYUNvbnRyb2xQ
YW5lbEVsZW1lbnQ6Ok1lZGlhQ29udHJvbFBhbmVsRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQp
CkBAIC04NTEsMjUgKzg2Myw1NiBAQCBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFJl
dHVyblRvUmVhbHRpbWVCdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpCiAKIC8vIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotaW5saW5lIE1lZGlhQ29udHJvbFRvZ2dsZUNsb3Nl
ZENhcHRpb25zQnV0dG9uRWxlbWVudDo6TWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNC
dXR0b25FbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCkKK2lubGluZSBNZWRpYUNvbnRyb2xDbG9z
ZWRDYXB0aW9uc0NvbnRhaW5lckVsZW1lbnQ6Ok1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zQ29u
dGFpbmVyRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQpCisgICAgOiBNZWRpYUNvbnRyb2xFbGVt
ZW50KGRvY3VtZW50KQoreworfQorCitQYXNzUmVmUHRyPE1lZGlhQ29udHJvbENsb3NlZENhcHRp
b25zQ29udGFpbmVyRWxlbWVudD4gTWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNDb250YWluZXJF
bGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIFJlZlB0cjxNZWRpYUNv
bnRyb2xDbG9zZWRDYXB0aW9uc0NvbnRhaW5lckVsZW1lbnQ+IGVsZW1lbnQgPSBhZG9wdFJlZihu
ZXcgTWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNDb250YWluZXJFbGVtZW50KGRvY3VtZW50KSk7
CisgICAgZWxlbWVudC0+aGlkZSgpOworICAgIHJldHVybiBlbGVtZW50LnJlbGVhc2UoKTsKK30K
KworY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc0NvbnRhaW5l
ckVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKK3sKKyAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1jbG9zZWQtY2Fw
dGlvbnMtY29udGFpbmVyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwor
ICAgIHJldHVybiBpZDsKK30KKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitp
bmxpbmUgTWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50OjpNZWRp
YUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQoRG9jdW1lbnQqIGRvY3Vt
ZW50LCBNZWRpYUNvbnRyb2xzKiBjb250cm9scykKICAgICA6IE1lZGlhQ29udHJvbElucHV0RWxl
bWVudChkb2N1bWVudCwgTWVkaWFTaG93Q2xvc2VkQ2FwdGlvbnNCdXR0b24pCisgICAgLCBtX2Nv
bnRyb2xzKGNvbnRyb2xzKQogewogfQogCi1QYXNzUmVmUHRyPE1lZGlhQ29udHJvbFRvZ2dsZUNs
b3NlZENhcHRpb25zQnV0dG9uRWxlbWVudD4gTWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlv
bnNCdXR0b25FbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQorUGFzc1JlZlB0cjxN
ZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ+IE1lZGlhQ29udHJv
bFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1
bWVudCwgTWVkaWFDb250cm9scyogY29udHJvbHMpCiB7Ci0gICAgUmVmUHRyPE1lZGlhQ29udHJv
bFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudD4gYnV0dG9uID0gYWRvcHRSZWYobmV3
IE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudChkb2N1bWVudCkp
OworICAgIEFTU0VSVChjb250cm9scyk7CisKKyAgICBSZWZQdHI8TWVkaWFDb250cm9sVG9nZ2xl
Q2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50PiBidXR0b24gPSBhZG9wdFJlZihuZXcgTWVkaWFD
b250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50KGRvY3VtZW50LCBjb250cm9s
cykpOwogICAgIGJ1dHRvbi0+Y3JlYXRlU2hhZG93U3VidHJlZSgpOwogICAgIGJ1dHRvbi0+c2V0
VHlwZSgiYnV0dG9uIik7CiAgICAgYnV0dG9uLT5oaWRlKCk7CiAgICAgcmV0dXJuIGJ1dHRvbi5y
ZWxlYXNlKCk7CiB9CiAKK3ZvaWQgTWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0
b25FbGVtZW50Ojp1cGRhdGVEaXNwbGF5VHlwZSgpCit7CisgICAgc2V0RGlzcGxheVR5cGUobWVk
aWFDb250cm9sbGVyKCktPmNsb3NlZENhcHRpb25zVmlzaWJsZSgpID8gTWVkaWFIaWRlQ2xvc2Vk
Q2FwdGlvbnNCdXR0b24gOiBNZWRpYVNob3dDbG9zZWRDYXB0aW9uc0J1dHRvbik7Cit9CisKIHZv
aWQgTWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50OjpkZWZhdWx0
RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKIHsKICAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBl
dmVudE5hbWVzKCkuY2xpY2tFdmVudCkgeworICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyBub3cg
aW5jb3JyZWN0bHkgZG9pbmcgdHdvIHRoaW5ncyBhdCBvbmNlOiBzaG93aW5nIHRoZSBsaXN0IG9m
IGNhcHRpb25zIGFuZCB0b2dnbGluZyBkaXNwbGF5LgorICAgICAgICAvLyBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxNjcwCiAgICAgICAgIG1lZGlhQ29udHJvbGxl
cigpLT5zZXRDbG9zZWRDYXB0aW9uc1Zpc2libGUoIW1lZGlhQ29udHJvbGxlcigpLT5jbG9zZWRD
YXB0aW9uc1Zpc2libGUoKSk7CiAgICAgICAgIHNldENoZWNrZWQobWVkaWFDb250cm9sbGVyKCkt
PmNsb3NlZENhcHRpb25zVmlzaWJsZSgpKTsKKyAgICAgICAgbV9jb250cm9scy0+dG9nZ2xlQ2xv
c2VkQ2FwdGlvblRyYWNrTGlzdCgpOwogICAgICAgICB1cGRhdGVEaXNwbGF5VHlwZSgpOwogICAg
ICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKICAgICB9CkBAIC04NzcsMTcgKzkyMCwx
MTcgQEAgdm9pZCBNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ6
OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGUKICAgICBIVE1MSW5wdXRFbGVtZW50OjpkZWZh
dWx0RXZlbnRIYW5kbGVyKGV2ZW50KTsKIH0KIAotdm9pZCBNZWRpYUNvbnRyb2xUb2dnbGVDbG9z
ZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ6OnVwZGF0ZURpc3BsYXlUeXBlKCkKK2NvbnN0IEF0b21p
Y1N0cmluZyYgTWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50Ojpz
aGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAgc2V0RGlzcGxheVR5cGUobWVkaWFDb250cm9s
bGVyKCktPmNsb3NlZENhcHRpb25zVmlzaWJsZSgpID8gTWVkaWFIaWRlQ2xvc2VkQ2FwdGlvbnNC
dXR0b24gOiBNZWRpYVNob3dDbG9zZWRDYXB0aW9uc0J1dHRvbik7CisgICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtdG9nZ2xl
LWNsb3NlZC1jYXB0aW9ucy1idXR0b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7CisgICAgcmV0dXJuIGlkOwogfQogCi1jb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29u
dHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBj
b25zdAorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitpbmxpbmUgTWVkaWFDb250
cm9sQ2xvc2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVtZW50OjpNZWRpYUNvbnRyb2xDbG9zZWRDYXB0
aW9uc1RyYWNrTGlzdEVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KQorICAgIDogTWVkaWFDb250
cm9sRWxlbWVudChkb2N1bWVudCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0
cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy10b2dnbGUtY2xvc2VkLWNhcHRpb25z
LWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKK30KKworUGFz
c1JlZlB0cjxNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQ+IE1lZGlh
Q29udHJvbENsb3NlZENhcHRpb25zVHJhY2tMaXN0RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBk
b2N1bWVudCkKK3sKKyAgICBSZWZQdHI8TWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNUcmFja0xp
c3RFbGVtZW50PiBlbGVtZW50ID0gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbENsb3NlZENhcHRp
b25zVHJhY2tMaXN0RWxlbWVudChkb2N1bWVudCkpOworICAgIHJldHVybiBlbGVtZW50LnJlbGVh
c2UoKTsKK30KKwordm9pZCBNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1l
bnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQoreworICAgIC8vIEZJWE1FOiBI
b29rIHRoaXMgdXAgdG8gYWN0dWFsIHRleHQgdHJhY2tzLgorICAgIC8vIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE2NzAKKyAgICBVTlVTRURfUEFSQU0oZXZlbnQp
OworfQorCitjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zVHJh
Y2tMaXN0RWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAoreworICAgIERFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLWNsb3Nl
ZC1jYXB0aW9ucy10cmFjay1saXN0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOwogICAgIHJldHVybiBpZDsKIH0KIAordm9pZCBNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9u
c1RyYWNrTGlzdEVsZW1lbnQ6OnVwZGF0ZURpc3BsYXkoKQoreworI2lmIEVOQUJMRShWSURFT19U
UkFDSykKKyAgICAvLyBSZW1vdmUgYW55IGV4aXN0aW5nIGNvbnRlbnQuCisgICAgcmVtb3ZlQ2hp
bGRyZW4oKTsKKworICAgIGlmICghbWVkaWFDb250cm9sbGVyKCktPmhhc0Nsb3NlZENhcHRpb25z
KCkpCisgICAgICAgIHJldHVybjsKKworICAgIEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVu
dCA9IHRvUGFyZW50TWVkaWFFbGVtZW50KHRoaXMpOworICAgIGlmICghbWVkaWFFbGVtZW50KQor
ICAgICAgICByZXR1cm47CisKKyAgICBUZXh0VHJhY2tMaXN0KiB0cmFja0xpc3QgPSBtZWRpYUVs
ZW1lbnQtPnRleHRUcmFja3MoKTsKKworICAgIGlmICghdHJhY2tMaXN0IHx8ICF0cmFja0xpc3Qt
Pmxlbmd0aCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBEb2N1bWVudCogZG9jID0gZG9jdW1l
bnQoKTsKKworICAgIFJlZlB0cjxFbGVtZW50PiBjYXB0aW9uc1NlY3Rpb24gPSBkb2MtPmNyZWF0
ZUVsZW1lbnQoc2VjdGlvblRhZywgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgUmVmUHRyPEVs
ZW1lbnQ+IGNhcHRpb25zSGVhZGVyID0gZG9jLT5jcmVhdGVFbGVtZW50KGgzVGFnLCBBU1NFUlRf
Tk9fRVhDRVBUSU9OKTsKKyAgICBjYXB0aW9uc0hlYWRlci0+YXBwZW5kQ2hpbGQoZG9jLT5jcmVh
dGVUZXh0Tm9kZSgiQ2xvc2VkIENhcHRpb25zIikpOworICAgIGNhcHRpb25zU2VjdGlvbi0+YXBw
ZW5kQ2hpbGQoY2FwdGlvbnNIZWFkZXIpOworICAgIFJlZlB0cjxFbGVtZW50PiBjYXB0aW9uc0xp
c3QgPSBkb2MtPmNyZWF0ZUVsZW1lbnQodWxUYWcsIEFTU0VSVF9OT19FWENFUFRJT04pOworCisg
ICAgUmVmUHRyPEVsZW1lbnQ+IHN1YnRpdGxlc1NlY3Rpb24gPSBkb2MtPmNyZWF0ZUVsZW1lbnQo
c2VjdGlvblRhZywgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgUmVmUHRyPEVsZW1lbnQ+IHN1
YnRpdGxlc0hlYWRlciA9IGRvYy0+Y3JlYXRlRWxlbWVudChoM1RhZywgQVNTRVJUX05PX0VYQ0VQ
VElPTik7CisgICAgc3VidGl0bGVzSGVhZGVyLT5hcHBlbmRDaGlsZChkb2MtPmNyZWF0ZVRleHRO
b2RlKCJTdWJ0aXRsZXMiKSk7CisgICAgc3VidGl0bGVzU2VjdGlvbi0+YXBwZW5kQ2hpbGQoc3Vi
dGl0bGVzSGVhZGVyKTsKKyAgICBSZWZQdHI8RWxlbWVudD4gc3VidGl0bGVzTGlzdCA9IGRvYy0+
Y3JlYXRlRWxlbWVudCh1bFRhZywgQVNTRVJUX05PX0VYQ0VQVElPTik7CisKKyAgICBSZWZQdHI8
RWxlbWVudD4gdHJhY2tJdGVtOworCisgICAgdHJhY2tJdGVtID0gZG9jLT5jcmVhdGVFbGVtZW50
KGxpVGFnLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICB0cmFja0l0ZW0tPmFwcGVuZENoaWxk
KGRvYy0+Y3JlYXRlVGV4dE5vZGUoIk9mZiIpKTsKKyAgICAvLyBGSVhNRTogVGhlc2UgbGlzdHMg
YXJlIG5vdCB5ZXQgbGl2ZS4gTWFyayB0aGUgT2ZmIGVudHJ5IGFzIHRoZSBzZWxlY3RlZCBvbmUg
Zm9yIG5vdy4KKyAgICB0cmFja0l0ZW0tPnNldEF0dHJpYnV0ZShjbGFzc0F0dHIsICJzZWxlY3Rl
ZCIpOworICAgIGNhcHRpb25zTGlzdC0+YXBwZW5kQ2hpbGQodHJhY2tJdGVtKTsKKworICAgIHRy
YWNrSXRlbSA9IGRvYy0+Y3JlYXRlRWxlbWVudChsaVRhZywgQVNTRVJUX05PX0VYQ0VQVElPTik7
CisgICAgdHJhY2tJdGVtLT5hcHBlbmRDaGlsZChkb2MtPmNyZWF0ZVRleHROb2RlKCJPZmYiKSk7
CisgICAgLy8gRklYTUU6IFRoZXNlIGxpc3RzIGFyZSBub3QgeWV0IGxpdmUuIE1hcmsgdGhlIE9m
ZiBlbnRyeSBhcyB0aGUgc2VsZWN0ZWQgb25lIGZvciBub3cuCisgICAgdHJhY2tJdGVtLT5zZXRB
dHRyaWJ1dGUoY2xhc3NBdHRyLCAic2VsZWN0ZWQiKTsKKyAgICBzdWJ0aXRsZXNMaXN0LT5hcHBl
bmRDaGlsZCh0cmFja0l0ZW0pOworCisgICAgYm9vbCBoYXNDYXB0aW9ucyA9IGZhbHNlOworICAg
IGJvb2wgaGFzU3VidGl0bGVzID0gZmFsc2U7CisKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwLCBs
ZW5ndGggPSB0cmFja0xpc3QtPmxlbmd0aCgpOyBpIDwgbGVuZ3RoOyArK2kpIHsKKyAgICAgICAg
VGV4dFRyYWNrKiB0cmFjayA9IHRyYWNrTGlzdC0+aXRlbShpKTsKKyAgICAgICAgdHJhY2tJdGVt
ID0gZG9jLT5jcmVhdGVFbGVtZW50KGxpVGFnLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAg
ICAgQXRvbWljU3RyaW5nIGxhYmVsVGV4dCA9IHRyYWNrLT5sYWJlbCgpOworICAgICAgICBpZiAo
bGFiZWxUZXh0LmlzTnVsbCgpIHx8IGxhYmVsVGV4dC5pc0VtcHR5KCkpCisgICAgICAgICAgICBs
YWJlbFRleHQgPSBkaXNwbGF5TmFtZUZvckxhbmd1YWdlTG9jYWxlKHRyYWNrLT5sYW5ndWFnZSgp
KTsKKyAgICAgICAgaWYgKGxhYmVsVGV4dC5pc051bGwoKSB8fCBsYWJlbFRleHQuaXNFbXB0eSgp
KQorICAgICAgICAgICAgbGFiZWxUZXh0ID0gIk5vIExhYmVsIjsKKworICAgICAgICBpZiAodHJh
Y2stPmtpbmQoKSA9PSB0cmFjay0+Y2FwdGlvbnNLZXl3b3JkKCkpIHsKKyAgICAgICAgICAgIGhh
c0NhcHRpb25zID0gdHJ1ZTsKKyAgICAgICAgICAgIGNhcHRpb25zTGlzdC0+YXBwZW5kQ2hpbGQo
dHJhY2tJdGVtKTsKKyAgICAgICAgfQorICAgICAgICBpZiAodHJhY2stPmtpbmQoKSA9PSB0cmFj
ay0+c3VidGl0bGVzS2V5d29yZCgpKSB7CisgICAgICAgICAgICBoYXNTdWJ0aXRsZXMgPSB0cnVl
OworICAgICAgICAgICAgc3VidGl0bGVzTGlzdC0+YXBwZW5kQ2hpbGQodHJhY2tJdGVtKTsKKyAg
ICAgICAgfQorICAgICAgICB0cmFja0l0ZW0tPmFwcGVuZENoaWxkKGRvYy0+Y3JlYXRlVGV4dE5v
ZGUobGFiZWxUZXh0KSk7CisgICAgfQorCisgICAgY2FwdGlvbnNTZWN0aW9uLT5hcHBlbmRDaGls
ZChjYXB0aW9uc0xpc3QpOworICAgIHN1YnRpdGxlc1NlY3Rpb24tPmFwcGVuZENoaWxkKHN1YnRp
dGxlc0xpc3QpOworCisgICAgaWYgKGhhc0NhcHRpb25zKQorICAgICAgICBhcHBlbmRDaGlsZChj
YXB0aW9uc1NlY3Rpb24pOworICAgIGlmIChoYXNTdWJ0aXRsZXMpCisgICAgICAgIGFwcGVuZENo
aWxkKHN1YnRpdGxlc1NlY3Rpb24pOworI2VuZGlmCit9CisKIC8vIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KIAogTWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50OjpNZWRpYUNvbnRyb2xU
aW1lbGluZUVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBNZWRpYUNvbnRyb2xzKiBjb250cm9s
cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVs
ZW1lbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50
cy5oCmluZGV4IDY2Y2IyZGE2YmI1Yjk0NDFiOGUxYmRhNDgxYzM1N2Y0M2VjM2MzMWMuLmMzZmJj
ODEyMTkyZDM0MWY2MmI5NGUyMzhlYmUxNGVkMmVlOTY3NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuaApAQCAtNzUsNiArNzUsOCBA
QCBlbnVtIE1lZGlhQ29udHJvbEVsZW1lbnRUeXBlIHsKICAgICBNZWRpYVRleHRUcmFja0Rpc3Bs
YXksCiAgICAgTWVkaWFFeGl0RnVsbHNjcmVlbkJ1dHRvbiwKICAgICBNZWRpYU92ZXJsYXlQbGF5
QnV0dG9uLAorICAgIE1lZGlhQ2xvc2VkQ2FwdGlvbnNDb250YWluZXIsCisgICAgTWVkaWFDbG9z
ZWRDYXB0aW9uc1RyYWNrTGlzdCwKIH07CiAKIEhUTUxNZWRpYUVsZW1lbnQqIHRvUGFyZW50TWVk
aWFFbGVtZW50KE5vZGUqKTsKQEAgLTg4LDYgKzkwLDcgQEAgY2xhc3MgTWVkaWFDb250cm9sRWxl
bWVudCA6IHB1YmxpYyBIVE1MRGl2RWxlbWVudCB7CiBwdWJsaWM6CiAgICAgdm9pZCBoaWRlKCk7
CiAgICAgdm9pZCBzaG93KCk7CisgICAgYm9vbCBpc1Nob3dpbmcoKSBjb25zdDsKIAogICAgIHZp
cnR1YWwgTWVkaWFDb250cm9sRWxlbWVudFR5cGUgZGlzcGxheVR5cGUoKSBjb25zdCA9IDA7CiAK
QEAgLTM4MCwxNyArMzgzLDUxIEBAIHByaXZhdGU6CiAKIGNsYXNzIE1lZGlhQ29udHJvbFRvZ2ds
ZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudCA6IHB1YmxpYyBNZWRpYUNvbnRyb2xJbnB1dEVs
ZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFRvZ2ds
ZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Kik7CisgICAgc3Rh
dGljIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVt
ZW50PiBjcmVhdGUoRG9jdW1lbnQqLCBNZWRpYUNvbnRyb2xzKik7CiAKLSAgICB2aXJ0dWFsIHZv
aWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopOwogICAgIHZpcnR1YWwgYm9vbCB3aWxsUmVz
cG9uZFRvTW91c2VDbGlja0V2ZW50cygpIE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopOwogICAgIHZpcnR1YWwgdm9p
ZCB1cGRhdGVEaXNwbGF5VHlwZSgpOwogCiBwcml2YXRlOgotICAgIE1lZGlhQ29udHJvbFRvZ2ds
ZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudChEb2N1bWVudCopOworICAgIE1lZGlhQ29udHJv
bFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudChEb2N1bWVudCosIE1lZGlhQ29udHJv
bHMqKTsKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBj
b25zdDsKKworICAgIE1lZGlhQ29udHJvbHMqIG1fY29udHJvbHM7Cit9OworCisvLyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKK2NsYXNzIE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25z
Q29udGFpbmVyRWxlbWVudCA6IHB1YmxpYyBNZWRpYUNvbnRyb2xFbGVtZW50IHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc0NvbnRhaW5l
ckVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCopOworCisgICAgdmlydHVhbCBib29sIHdpbGxSZXNw
b25kVG9Nb3VzZUNsaWNrRXZlbnRzKCkgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQorCitwcml2
YXRlOgorICAgIE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zQ29udGFpbmVyRWxlbWVudChEb2N1
bWVudCopOworCisgICAgdmlydHVhbCBNZWRpYUNvbnRyb2xFbGVtZW50VHlwZSBkaXNwbGF5VHlw
ZSgpIGNvbnN0IHsgcmV0dXJuIE1lZGlhQ2xvc2VkQ2FwdGlvbnNDb250YWluZXI7IH0KICAgICB2
aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdDsKLX07ICAg
IAorfTsKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitjbGFzcyBNZWRpYUNv
bnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQgOiBwdWJsaWMgTWVkaWFDb250cm9s
RWxlbWVudCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sQ2xv
c2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqKTsKKworICAgIHZp
cnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50Kik7CisgICAgdmlydHVhbCBib29s
IHdpbGxSZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRzKCkgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsg
fQorCisgICAgdm9pZCB1cGRhdGVEaXNwbGF5KCk7CisKK3ByaXZhdGU6CisgICAgTWVkaWFDb250
cm9sQ2xvc2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVtZW50KERvY3VtZW50Kik7CisKKyAgICB2aXJ0
dWFsIE1lZGlhQ29udHJvbEVsZW1lbnRUeXBlIGRpc3BsYXlUeXBlKCkgY29uc3QgeyByZXR1cm4g
TWVkaWFDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdDsgfQorICAgIHZpcnR1YWwgY29uc3QgQXRvbWlj
U3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0OworfTsKIAogLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9N
ZWRpYUNvbnRyb2xSb290RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9N
ZWRpYUNvbnRyb2xSb290RWxlbWVudC5jcHAKaW5kZXggMjJhMDE4ZmQ5NzAwNGE2Nzc1NmU5MmUx
ZWQ1MDJlMGI5YzBmZTg4Zi4uNmQ3YzEwOGEyM2MyNWRiM2E1MWE1Njc4NjZhYjBhMDIyYzdlMDgx
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9v
dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJv
bFJvb3RFbGVtZW50LmNwcApAQCAtNjIsNiArNjIsOCBAQCBNZWRpYUNvbnRyb2xSb290RWxlbWVu
dDo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KQogICAgICwgbV9z
ZWVrQmFja0J1dHRvbigwKQogICAgICwgbV9zZWVrRm9yd2FyZEJ1dHRvbigwKQogICAgICwgbV90
b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbigwKQorICAgICwgbV9jbG9zZWRDYXB0aW9uc1RyYWNr
TGlzdCgwKQorICAgICwgbV9jbG9zZWRDYXB0aW9uc0NvbnRhaW5lcigwKQogICAgICwgbV9wYW5l
bE11dGVCdXR0b24oMCkKICAgICAsIG1fdm9sdW1lU2xpZGVyKDApCiAgICAgLCBtX3ZvbHVtZVNs
aWRlck11dGVCdXR0b24oMCkKQEAgLTE2MiwxMSArMTY0LDI1IEBAIFBhc3NSZWZQdHI8TWVkaWFD
b250cm9sUm9vdEVsZW1lbnQ+IE1lZGlhQ29udHJvbFJvb3RFbGVtZW50OjpjcmVhdGUoRG9jdW1l
bnQqIGRvCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgaWYgKGRvY3VtZW50LT5wYWdlKCktPnRo
ZW1lKCktPnN1cHBvcnRzQ2xvc2VkQ2FwdGlvbmluZygpKSB7Ci0gICAgICAgIFJlZlB0cjxNZWRp
YUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ+IHRvZ2dsZUNsb3NlZENh
cHRpb25zQnV0dG9uID0gTWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVt
ZW50OjpjcmVhdGUoZG9jdW1lbnQpOworCisgICAgICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xDbG9z
ZWRDYXB0aW9uc0NvbnRhaW5lckVsZW1lbnQ+IGNsb3NlZENhcHRpb25zQ29udGFpbmVyID0gTWVk
aWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNDb250YWluZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQp
OworCisgICAgICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVs
ZW1lbnQ+IGNsb3NlZENhcHRpb25zVHJhY2tMaXN0ID0gTWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlv
bnNUcmFja0xpc3RFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgICAgICBjb250cm9scy0+
bV9jbG9zZWRDYXB0aW9uc1RyYWNrTGlzdCA9IGNsb3NlZENhcHRpb25zVHJhY2tMaXN0LmdldCgp
OworICAgICAgICBjbG9zZWRDYXB0aW9uc0NvbnRhaW5lci0+YXBwZW5kQ2hpbGQoY2xvc2VkQ2Fw
dGlvbnNUcmFja0xpc3QucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgICAgIGlmIChlYykKKyAg
ICAgICAgICAgIHJldHVybiAwOworCisgICAgICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xUb2dnbGVD
bG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ+IHRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uID0g
TWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9j
dW1lbnQsIGNvbnRyb2xzLmdldCgpKTsKICAgICAgICAgY29udHJvbHMtPm1fdG9nZ2xlQ2xvc2Vk
Q2FwdGlvbnNCdXR0b24gPSB0b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbi5nZXQoKTsKICAgICAg
ICAgcGFuZWwtPmFwcGVuZENoaWxkKHRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uLnJlbGVhc2Uo
KSwgZWMsIHRydWUpOwogICAgICAgICBpZiAoZWMpCiAgICAgICAgICAgICByZXR1cm4gMDsKKwor
ICAgICAgICBjb250cm9scy0+bV9jbG9zZWRDYXB0aW9uc0NvbnRhaW5lciA9IGNsb3NlZENhcHRp
b25zQ29udGFpbmVyLmdldCgpOworICAgICAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoY2xvc2VkQ2Fw
dGlvbnNDb250YWluZXIucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgICAgIGlmIChlYykKKyAg
ICAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAogICAgIC8vIEZJWE1FOiBPbmx5IGNyZWF0ZSB3
aGVuIG5lZWRlZCA8aHR0cDovL3dlYmtpdC5vcmcvYi81NzE2Mz4KQEAgLTI2Niw2ICsyODIsMTAg
QEAgdm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudDo6c2V0TWVkaWFDb250cm9sbGVyKE1lZGlh
Q29udHJvbGxlckludGVyZmFjZSogY29udHIKICAgICAgICAgbV9zZWVrRm9yd2FyZEJ1dHRvbi0+
c2V0TWVkaWFDb250cm9sbGVyKGNvbnRyb2xsZXIpOwogICAgIGlmIChtX3RvZ2dsZUNsb3NlZENh
cHRpb25zQnV0dG9uKQogICAgICAgICBtX3RvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uLT5zZXRN
ZWRpYUNvbnRyb2xsZXIoY29udHJvbGxlcik7CisgICAgaWYgKG1fY2xvc2VkQ2FwdGlvbnNUcmFj
a0xpc3QpCisgICAgICAgIG1fY2xvc2VkQ2FwdGlvbnNUcmFja0xpc3QtPnNldE1lZGlhQ29udHJv
bGxlcihjb250cm9sbGVyKTsKKyAgICBpZiAobV9jbG9zZWRDYXB0aW9uc0NvbnRhaW5lcikKKyAg
ICAgICAgbV9jbG9zZWRDYXB0aW9uc0NvbnRhaW5lci0+c2V0TWVkaWFDb250cm9sbGVyKGNvbnRy
b2xsZXIpOwogICAgIGlmIChtX3BhbmVsTXV0ZUJ1dHRvbikKICAgICAgICAgbV9wYW5lbE11dGVC
dXR0b24tPnNldE1lZGlhQ29udHJvbGxlcihjb250cm9sbGVyKTsKICAgICBpZiAobV92b2x1bWVT
bGlkZXIpCkBAIC0zMDIsNiArMzIyLDcgQEAgdm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudDo6
aGlkZSgpCiAgICAgbV9wYW5lbC0+c2V0SXNEaXNwbGF5ZWQoZmFsc2UpOwogICAgIG1fcGFuZWwt
PmhpZGUoKTsKICAgICBtX3ZvbHVtZVNsaWRlckNvbnRhaW5lci0+aGlkZSgpOworICAgIG1fY2xv
c2VkQ2FwdGlvbnNDb250YWluZXItPmhpZGUoKTsKIH0KIAogdm9pZCBNZWRpYUNvbnRyb2xSb290
RWxlbWVudDo6bWFrZU9wYXF1ZSgpCkBAIC0zMTMsNiArMzM0LDcgQEAgdm9pZCBNZWRpYUNvbnRy
b2xSb290RWxlbWVudDo6bWFrZVRyYW5zcGFyZW50KCkKIHsKICAgICBtX3BhbmVsLT5tYWtlVHJh
bnNwYXJlbnQoKTsKICAgICBtX3ZvbHVtZVNsaWRlckNvbnRhaW5lci0+aGlkZSgpOworICAgIG1f
Y2xvc2VkQ2FwdGlvbnNDb250YWluZXItPmhpZGUoKTsKIH0KIAogdm9pZCBNZWRpYUNvbnRyb2xS
b290RWxlbWVudDo6cmVzZXQoKQpAQCAtMzQ2LDkgKzM2OCwxMCBAQCB2b2lkIE1lZGlhQ29udHJv
bFJvb3RFbGVtZW50OjpyZXNldCgpCiAgICAgICAgIG1fdm9sdW1lU2xpZGVyLT5zZXRWb2x1bWUo
bV9tZWRpYUNvbnRyb2xsZXItPnZvbHVtZSgpKTsKIAogICAgIGlmIChtX3RvZ2dsZUNsb3NlZENh
cHRpb25zQnV0dG9uKSB7Ci0gICAgICAgIGlmIChtX21lZGlhQ29udHJvbGxlci0+aGFzQ2xvc2Vk
Q2FwdGlvbnMoKSkKKyAgICAgICAgaWYgKG1fbWVkaWFDb250cm9sbGVyLT5oYXNDbG9zZWRDYXB0
aW9ucygpKSB7CiAgICAgICAgICAgICBtX3RvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uLT5zaG93
KCk7Ci0gICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1fY2xvc2VkQ2FwdGlvbnNUcmFja0xpc3Qt
PnVwZGF0ZURpc3BsYXkoKTsKKyAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBtX3RvZ2dsZUNs
b3NlZENhcHRpb25zQnV0dG9uLT5oaWRlKCk7CiAgICAgfQogCkBAIC00NDcsNiArNDcwLDggQEAg
dm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudDo6cmVwb3J0ZWRFcnJvcigpCiAgICAgICAgIG1f
dm9sdW1lU2xpZGVyQ29udGFpbmVyLT5oaWRlKCk7CiAgICAgaWYgKG1fdG9nZ2xlQ2xvc2VkQ2Fw
dGlvbnNCdXR0b24gJiYgIXBhZ2UtPnRoZW1lKCktPmhhc093bkRpc2FibGVkU3RhdGVIYW5kbGlu
Z0ZvcihNZWRpYVRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uUGFydCkpCiAgICAgICAgIG1fdG9n
Z2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24tPmhpZGUoKTsKKyAgICBpZiAobV9jbG9zZWRDYXB0aW9u
c0NvbnRhaW5lcikKKyAgICAgICAgbV9jbG9zZWRDYXB0aW9uc0NvbnRhaW5lci0+aGlkZSgpOwog
fQogCiB2b2lkIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Ojp1cGRhdGVTdGF0dXNEaXNwbGF5KCkK
QEAgLTU0Miw2ICs1NjcsMTkgQEAgdm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudDo6c2hvd1Zv
bHVtZVNsaWRlcigpCiAgICAgICAgIG1fdm9sdW1lU2xpZGVyQ29udGFpbmVyLT5zaG93KCk7CiB9
CiAKK3ZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnQ6OnRvZ2dsZUNsb3NlZENhcHRpb25UcmFj
a0xpc3QoKQoreworICAgIGlmICghbV9tZWRpYUNvbnRyb2xsZXItPmhhc0Nsb3NlZENhcHRpb25z
KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChtX2Nsb3NlZENhcHRpb25zQ29udGFpbmVy
KSB7CisgICAgICAgIGlmIChtX2Nsb3NlZENhcHRpb25zQ29udGFpbmVyLT5pc1Nob3dpbmcoKSkK
KyAgICAgICAgICAgIG1fY2xvc2VkQ2FwdGlvbnNDb250YWluZXItPmhpZGUoKTsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgbV9jbG9zZWRDYXB0aW9uc0NvbnRhaW5lci0+c2hvdygpOworICAg
IH0KK30KKwogYm9vbCBNZWRpYUNvbnRyb2xSb290RWxlbWVudDo6c2hvdWxkSGlkZUNvbnRyb2xz
KCkKIHsKICAgICByZXR1cm4gIW1fcGFuZWwtPmhvdmVyZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudC5oCmluZGV4IGEwYjA5
ZDg3NDViN2FjNjFhN2Q1OTZkNDFhMjM4OTY2YjYxZjRiNGIuLjA2NzM5YmVhNWFlYzg2OWRhMDdj
Mjc0YWZjOGQxYWE1Y2M0MjBiYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnQuaApAQCAtNDIsNyArNDIsOSBAQCBjbGFzcyBN
ZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudDsKIGNsYXNzIE1lZGlhQ29udHJvbFNlZWtCdXR0
b25FbGVtZW50OwogY2xhc3MgTWVkaWFDb250cm9sUmV3aW5kQnV0dG9uRWxlbWVudDsKIGNsYXNz
IE1lZGlhQ29udHJvbFJldHVyblRvUmVhbHRpbWVCdXR0b25FbGVtZW50OworY2xhc3MgTWVkaWFD
b250cm9sQ2xvc2VkQ2FwdGlvbnNDb250YWluZXJFbGVtZW50OwogY2xhc3MgTWVkaWFDb250cm9s
VG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50OworY2xhc3MgTWVkaWFDb250cm9sQ2xv
c2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVtZW50OwogY2xhc3MgTWVkaWFDb250cm9sQ3VycmVudFRp
bWVEaXNwbGF5RWxlbWVudDsKIGNsYXNzIE1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudDsKIGNs
YXNzIE1lZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudDsKQEAgLTEwMyw2ICsx
MDUsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVUaW1lRGlzcGxheSgpOwogICAgIHZvaWQg
dXBkYXRlU3RhdHVzRGlzcGxheSgpOwogCisgICAgdm9pZCB0b2dnbGVDbG9zZWRDYXB0aW9uVHJh
Y2tMaXN0KCk7CisKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAgdm9pZCBjcmVhdGVUZXh0
VHJhY2tEaXNwbGF5KCk7CiAgICAgdm9pZCBzaG93VGV4dFRyYWNrRGlzcGxheSgpOwpAQCAtMTQx
LDYgKzE0NSw4IEBAIHByaXZhdGU6CiAgICAgTWVkaWFDb250cm9sU2Vla0JhY2tCdXR0b25FbGVt
ZW50KiBtX3NlZWtCYWNrQnV0dG9uOwogICAgIE1lZGlhQ29udHJvbFNlZWtGb3J3YXJkQnV0dG9u
RWxlbWVudCogbV9zZWVrRm9yd2FyZEJ1dHRvbjsKICAgICBNZWRpYUNvbnRyb2xUb2dnbGVDbG9z
ZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQqIG1fdG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b247Cisg
ICAgTWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVtZW50KiBtX2Nsb3NlZENh
cHRpb25zVHJhY2tMaXN0OworICAgIE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zQ29udGFpbmVy
RWxlbWVudCogbV9jbG9zZWRDYXB0aW9uc0NvbnRhaW5lcjsKICAgICBNZWRpYUNvbnRyb2xQYW5l
bE11dGVCdXR0b25FbGVtZW50KiBtX3BhbmVsTXV0ZUJ1dHRvbjsKICAgICBNZWRpYUNvbnRyb2xW
b2x1bWVTbGlkZXJFbGVtZW50KiBtX3ZvbHVtZVNsaWRlcjsKICAgICBNZWRpYUNvbnRyb2xWb2x1
bWVTbGlkZXJNdXRlQnV0dG9uRWxlbWVudCogbV92b2x1bWVTbGlkZXJNdXRlQnV0dG9uOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1l
bnRDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xS
b290RWxlbWVudENocm9taXVtLmNwcAppbmRleCA4MmQ4ZjkyNjBlNmIyYmNmYWRiYzVmZjc3ZTA0
YWMwYTg3OTY5NGNlLi5jMjU5ZmRkM2IwNWNkYTgxN2JjZjUzODIzNDE3NTAwZWEyZjViOWU1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxl
bWVudENocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNv
bnRyb2xSb290RWxlbWVudENocm9taXVtLmNwcApAQCAtMTY2LDcgKzE2Niw3IEBAIGJvb2wgTWVk
aWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6aW5pdGlhbGl6ZUNvbnRyb2xzKERvY3VtZW50
KiBkb2N1bWVudCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKGRvY3VtZW50LT5w
YWdlKCktPnRoZW1lKCktPnN1cHBvcnRzQ2xvc2VkQ2FwdGlvbmluZygpKSB7Ci0gICAgICAgIFJl
ZlB0cjxNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ+IHRvZ2ds
ZUNsb3NlZENhcHRpb25zQnV0dG9uID0gTWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNC
dXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgICAgICBSZWZQdHI8TWVkaWFDb250
cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50PiB0b2dnbGVDbG9zZWRDYXB0aW9u
c0J1dHRvbiA9IE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudDo6
Y3JlYXRlKGRvY3VtZW50LCB0aGlzKTsKICAgICAgICAgbV90b2dnbGVDbG9zZWRDYXB0aW9uc0J1
dHRvbiA9IHRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uLmdldCgpOwogICAgICAgICBwYW5lbC0+
YXBwZW5kQ2hpbGQodG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24ucmVsZWFzZSgpLCBlYywgdHJ1
ZSk7CiAgICAgICAgIGlmIChlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L01lZGlhQ29udHJvbHMuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29u
dHJvbHMuaAppbmRleCAyODkwOGE5YTEwN2U0NTcwMzkyODY4MzIwMzNkYmEyOGQwMzdiNjM2Li42
ZjBmYWQ4MjQxNmIxMDhjMzcyMmM1NmRiNmY2MTg2YzNmNWM0NzkzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9scy5oCkBAIC03MCw2ICs3MCw4IEBAIGNsYXNzIE1l
ZGlhQ29udHJvbHMgOiBwdWJsaWMgSFRNTERpdkVsZW1lbnQgewogICAgIHZpcnR1YWwgdm9pZCB1
cGRhdGVUaW1lRGlzcGxheSgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlU3RhdHVzRGlz
cGxheSgpID0gMDsKIAorICAgIHZpcnR1YWwgdm9pZCB0b2dnbGVDbG9zZWRDYXB0aW9uVHJhY2tM
aXN0KCkgeyB9CisKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSGlkZUNvbnRyb2xzKCkgPSAwOwog
CiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vTGFuZ3VhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGFuZ3VhZ2UuY3Bw
CmluZGV4IGRiYTNhODlmYmJjMTM3YzU4ZmNjYWU5MzhiNGFmMWNhNDhlMWQ2Y2QuLmUyOGU3NmUx
MDcyYjIwOGQxYmRhMTUyMzNlZGM3NzQ3MjE4NmE3ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0xhbmd1YWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9M
YW5ndWFnZS5jcHAKQEAgLTI3LDggKzI3LDEzIEBACiAjaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKIAog
I2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCisjaWYgUExBVEZPUk0oTUFDKQorI2luY2x1
ZGUgPENvcmVGb3VuZGF0aW9uL0NvcmVGb3VuZGF0aW9uLmg+CisjZW5kaWYKKwogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiB0eXBlZGVmIEhhc2hNYXA8dm9pZCosIExhbmd1YWdlQ2hhbmdlT2JzZXJ2
ZXJGdW5jdGlvbj4gT2JzZXJ2ZXJNYXA7CkBAIC0xNDIsNSArMTQ3LDE0IEBAIFN0cmluZyBwcmVm
ZXJyZWRMYW5ndWFnZUZyb21MaXN0KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBsYW5ndWFnZUxpc3Qp
CiAKICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKIH0KLSAgICAKKworU3RyaW5nIGRpc3BsYXlO
YW1lRm9yTGFuZ3VhZ2VMb2NhbGUoY29uc3QgU3RyaW5nJiBsb2NhbGVOYW1lKQoreworI2lmIFBM
QVRGT1JNKE1BQykKKyAgICBpZiAoIWxvY2FsZU5hbWUuaXNOdWxsKCkgJiYgIWxvY2FsZU5hbWUu
aXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gQ0ZMb2NhbGVDb3B5RGlzcGxheU5hbWVGb3JQcm9w
ZXJ0eVZhbHVlKENGTG9jYWxlQ29weUN1cnJlbnQoKSwga0NGTG9jYWxlSWRlbnRpZmllciwgbG9j
YWxlTmFtZS5jcmVhdGVDRlN0cmluZygpLmdldCgpKTsKKyNlbmRpZgorICAgIHJldHVybiBsb2Nh
bGVOYW1lOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MYW5n
dWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGFuZ3VhZ2UuaAppbmRleCA0MTE2MTVj
OWU5YzY4MWU0ZjE3MGUxNmIwZGYxNzNmNzZkZjZkNjA2Li4yOWYxY2E4YWU1NDExNzk2ZWIyNjQy
YmVkY2E3OGYwZWRhNGIxY2E0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9M
YW5ndWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xhbmd1YWdlLmgKQEAgLTQz
LDYgKzQzLDggQEAgdm9pZCByZW1vdmVMYW5ndWFnZUNoYW5nZU9ic2VydmVyKHZvaWQqIGNvbnRl
eHQpOwogCiBWZWN0b3I8U3RyaW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKTsK
IAorU3RyaW5nIGRpc3BsYXlOYW1lRm9yTGFuZ3VhZ2VMb2NhbGUoY29uc3QgU3RyaW5nJik7CisK
IC8vIENhbGxlZCBmcm9tIHBsYXRmb3JtIHNwZWNpZmljIGNvZGUgd2hlbiB0aGUgdXNlcidzIHBy
ZWZlcnJlZCBsYW5ndWFnZShzKSBjaGFuZ2UuCiB2b2lkIGxhbmd1YWdlRGlkQ2hhbmdlKCk7CiB9
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>