<?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>73591</bug_id>
          
          <creation_ts>2011-12-01 14:36:33 -0800</creation_ts>
          <short_desc>[Qt] [WK2] Webkit should release TextureMapper GL objects if page paint node is deallocated.</short_desc>
          <delta_ts>2011-12-09 04:33:39 -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>WebKit Qt</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>Qt</keywords>
          <priority>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>74176</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Viatcheslav Ostapenko">ostap73</reporter>
          <assigned_to name="Viatcheslav Ostapenko">ostap73</assigned_to>
          <cc>igor.oliveira</cc>
    
    <cc>noam</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>513126</commentid>
    <comment_count>0</comment_count>
    <who name="Viatcheslav Ostapenko">ostap73</who>
    <bug_when>2011-12-01 14:36:33 -0800</bug_when>
    <thetext>1. If paint node is deallocated it means that view&amp;page were removed from QSGCanvas and can be inserted into different canvas where existing GL object will be invalid.
2. Can be used as memory saving API for mobile devices (remove invisible view/page from canvas to remove page backing stores).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513161</commentid>
    <comment_count>1</comment_count>
      <attachid>117497</attachid>
    <who name="Viatcheslav Ostapenko">ostap73</who>
    <bug_when>2011-12-01 15:00:33 -0800</bug_when>
    <thetext>Created attachment 117497
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513193</commentid>
    <comment_count>2</comment_count>
      <attachid>117497</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2011-12-01 15:26:28 -0800</bug_when>
    <thetext>Comment on attachment 117497
patch

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

See comments.
Question, what are we doing with directly-composited images? Would that come in a different patch?

&gt; Source/WebCore/ChangeLog:3
&gt; +        [Qt] [WK2] Webkit should TextureMapper GL objects if page paint node is deallocated.

I think this is missing a verb (release?).

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebGraphicsLayer.cpp:579
&gt; +void WebGraphicsLayer::reCreateTiledBackingStore()

Let&apos;s call it recreateTiledBackingStoreIfNeeded

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebGraphicsLayer.cpp:591
&gt; +}

Don&apos;t you need to regenerate the content as well, e.g. setNeedsDisplay ?

&gt; Source/WebKit2/WebProcess/WebPage/LayerTreeHost.h:87
&gt; +    virtual void needTileBuffersRecreate() { }

purgeTiledBackingStores (?)

&gt; Source/WebKit2/WebProcess/WebPage/qt/LayerTreeHostQt.cpp:69
&gt; +    , m_needTileBuffersRecreate(false)

m_shouldRecreateTileBuffers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513340</commentid>
    <comment_count>3</comment_count>
    <who name="Viatcheslav Ostapenko">ostap73</who>
    <bug_when>2011-12-01 17:45:16 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 117497 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=117497&amp;action=review
&gt; 
&gt; See comments.
&gt; Question, what are we doing with directly-composited images? 
&gt; Would that come in a different patch?

No.
For some reason I thought that tiles are used for directly-composited images also. I&apos;ll figure it out.

&gt; &gt; Source/WebKit2/WebProcess/WebCoreSupport/WebGraphicsLayer.cpp:591
&gt; &gt; +}
&gt; Don&apos;t you need to regenerate the content as well, e.g. setNeedsDisplay ?

IMHO it called somewhere else on page getting visible, but I think it doesn&apos;t harm to call it here also.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517993</commentid>
    <comment_count>4</comment_count>
      <attachid>118504</attachid>
    <who name="Viatcheslav Ostapenko">ostap73</who>
    <bug_when>2011-12-08 17:54:24 -0800</bug_when>
    <thetext>Created attachment 118504
Added cleaning of direct composited images</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518021</commentid>
    <comment_count>5</comment_count>
      <attachid>118504</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2011-12-08 18:39:07 -0800</bug_when>
    <thetext>Comment on attachment 118504
Added cleaning of direct composited images

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

You&apos;re using too many names to describe the same thing.
How about:
purgeNodeTexturesRecursive
PurgeBackingStores
purgeGLResouces
recreateBackingStoreIfNeeded
purgeBackingStore
m_shouldRecreateBackingStore

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:74
&gt; +    // Trigger setting of correct visibility flags after everything was allocated and initialized

Period at end of sentence.

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebGraphicsLayer.cpp:591
&gt; +    if (m_layerInfo.imageBackingStoreID) {
&gt; +        layerTreeTileClient()-&gt;releaseImageBackingStore(m_layerInfo.imageBackingStoreID);
&gt; +        m_layerInfo.imageBackingStoreID = 0;
&gt; +    }

Early return

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebGraphicsLayer.cpp:596
&gt; +

Newline unnecessary

&gt; Source/WebKit2/WebProcess/WebPage/qt/LayerTreeHostQt.cpp:440
&gt; +    if (m_shouldRecreateTileBuffers) {

Early return.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518079</commentid>
    <comment_count>6</comment_count>
      <attachid>118522</attachid>
    <who name="Viatcheslav Ostapenko">ostap73</who>
    <bug_when>2011-12-08 20:51:17 -0800</bug_when>
    <thetext>Created attachment 118522
Names and style fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518080</commentid>
    <comment_count>7</comment_count>
      <attachid>118522</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2011-12-08 20:57:02 -0800</bug_when>
    <thetext>Comment on attachment 118522
Names and style fixed.

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

Please fix typo, and regenerate Changelogs :)

&gt; Source/WebKit2/UIProcess/LayerTreeHostProxy.h:58
&gt; +    void purgeGLResouces();

you mean purgeGLResources?
(typo)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518081</commentid>
    <comment_count>8</comment_count>
    <who name="Viatcheslav Ostapenko">ostap73</who>
    <bug_when>2011-12-08 20:58:27 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 118522 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=118522&amp;action=review
&gt; 
&gt; Please fix typo, and regenerate Changelogs :)
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/LayerTreeHostProxy.h:58
&gt; &gt; +    void purgeGLResouces();
&gt; 
&gt; you mean purgeGLResources?
&gt; (typo)

Uff!
I hate copy&amp;paste ;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518082</commentid>
    <comment_count>9</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2011-12-08 20:59:48 -0800</bug_when>
    <thetext>&gt; &gt; &gt; Source/WebKit2/UIProcess/LayerTreeHostProxy.h:58
&gt; &gt; &gt; +    void purgeGLResouces();
&gt; &gt; 
&gt; &gt; you mean purgeGLResources?
&gt; &gt; (typo)
&gt; 
&gt; Uff!
&gt; I hate copy&amp;paste ;)

Just checking that you&apos;re alert...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518096</commentid>
    <comment_count>10</comment_count>
      <attachid>118527</attachid>
    <who name="Viatcheslav Ostapenko">ostap73</who>
    <bug_when>2011-12-08 21:19:53 -0800</bug_when>
    <thetext>Created attachment 118527
Resouces fixed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518128</commentid>
    <comment_count>11</comment_count>
      <attachid>118527</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-08 22:54:29 -0800</bug_when>
    <thetext>Comment on attachment 118527
Resouces fixed

Clearing flags on attachment: 118527

Committed r102435: &lt;http://trac.webkit.org/changeset/102435&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518129</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-08 22:54:34 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117497</attachid>
            <date>2011-12-01 15:00:33 -0800</date>
            <delta_ts>2011-12-08 17:54:24 -0800</delta_ts>
            <desc>patch</desc>
            <filename>texture_purge_on_paintnode_dealloc_01.diff</filename>
            <type>text/plain</type>
            <size>15715</size>
            <attacher name="Viatcheslav Ostapenko">ostap73</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAwZDBlMDU1Li5hZmY0M2FhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkg
QEAKKzIwMTEtMTItMDEgIFZpYXRjaGVzbGF2IE9zdGFwZW5rbyAgPG9zdGFwZW5rby52aWF0Y2hl
c2xhdkBub2tpYS5jb20+CisKKyAgICAgICAgW1F0XSBbV0syXSBXZWJraXQgc2hvdWxkIFRleHR1
cmVNYXBwZXIgR0wgb2JqZWN0cyBpZiBwYWdlIHBhaW50IG5vZGUgaXMgZGVhbGxvY2F0ZWQuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzU5MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudGF0
aW9uIG9mIGhlbHBlciBmdW5jdGlvbiB0byByZW1vdmUgYWxsIEdMIGFsbG9jYXRlZCB0aWxlcwor
ICAgICAgICB3aGVuIFFRdWlja1dlYlZpZXcgZ2V0cyByZW1vdmVkIGZyb20gY2FudmFzLgorCisg
ICAgICAgIFRlc3RlZCBieSBuZXcgQVBJIHRlc3QgaW4gV0syICh0c3RfUVF1aWNrV2ViVmlldzo6
cmVtb3ZlRnJvbUNhbnZhcykuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
VGV4dHVyZU1hcHBlck5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlck5v
ZGU6OmNsZWFuTm9kZVRleHR1cmVzUmVjdXJzaXZlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuaDoKKwogMjAxMS0xMS0zMCAgRG1pdHJ5IExv
bW92ICA8ZHNsb21vdkBnb29nbGUuY29tPgogCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD03MzUwMwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5jcHAKaW5kZXgg
Yzk5MWNjMi4uMDFlMGNmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuY3BwCkBAIC02MTksNiAr
NjE5LDE0IEBAIHZvaWQgVGV4dHVyZU1hcHBlck5vZGU6OnJlbW92ZUNvbnRlbnRzVGlsZShpbnQg
aWQpCiAgICAgbV9leHRlcm5hbGx5TWFuYWdlZFRpbGVzLnJlbW92ZShpZCk7CiB9CiAKK3ZvaWQg
VGV4dHVyZU1hcHBlck5vZGU6OmNsZWFuTm9kZVRleHR1cmVzUmVjdXJzaXZlKCkKK3sKKyAgICBt
X2V4dGVybmFsbHlNYW5hZ2VkVGlsZXMuY2xlYXIoKTsKKworICAgIGZvciAoaW50IGkgPSBtX2No
aWxkcmVuLnNpemUoKSAtIDE7IGkgPj0gMDsgLS1pKQorICAgICAgICBtX2NoaWxkcmVuW2ldLT5j
bGVhbk5vZGVUZXh0dXJlc1JlY3Vyc2l2ZSgpOworfQorCiB2b2lkIFRleHR1cmVNYXBwZXJOb2Rl
OjpzZXRUaWxlQmFja0J1ZmZlclRleHR1cmVGb3JEaXJlY3RseUNvbXBvc2l0ZWRJbWFnZShpbnQg
aWQsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0UmVj
dCwgQml0bWFwVGV4dHVyZSogdGV4dHVyZSkKIHsKICAgICBIYXNoTWFwPGludCwgRXh0ZXJuYWxs
eU1hbmFnZWRUaWxlPjo6aXRlcmF0b3IgaXQgPSBtX2V4dGVybmFsbHlNYW5hZ2VkVGlsZXMuZmlu
ZChpZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlck5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5oCmluZGV4IGViOWM2OTIuLmQ3YTgyYmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyTm9kZS5oCkBAIC0xNTgsNiArMTU4LDcgQEAgcHVibGljOgogICAgIHZvaWQg
c2V0VGlsZUJhY2tCdWZmZXJUZXh0dXJlRm9yRGlyZWN0bHlDb21wb3NpdGVkSW1hZ2UoaW50IGlk
LCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldFJlY3Qs
IEJpdG1hcFRleHR1cmUqKTsKICAgICB2b2lkIGNsZWFyQWxsRGlyZWN0bHlDb21wb3NpdGVkSW1h
Z2VUaWxlcygpOwogICAgIGJvb2wgY29sbGVjdFZpc2libGVDb250ZW50c1JlY3RzKE5vZGVSZWN0
TWFwJiwgY29uc3QgRmxvYXRSZWN0Jik7CisgICAgdm9pZCBjbGVhbk5vZGVUZXh0dXJlc1JlY3Vy
c2l2ZSgpOwogI2VuZGlmCiAgICAgdm9pZCBzZXRJRChpbnQgaWQpIHsgbV9pZCA9IGlkOyB9CiAg
ICAgaW50IGlkKCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDExYTQxZGUu
LmM4YzVjY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsNSArMSw0MSBAQAogMjAxMS0xMi0wMSAgVmlhdGNo
ZXNsYXYgT3N0YXBlbmtvICA8b3N0YXBlbmtvLnZpYXRjaGVzbGF2QG5va2lhLmNvbT4KIAorICAg
ICAgICBbUXRdIFtXSzJdIFdlYmtpdCBzaG91bGQgVGV4dHVyZU1hcHBlciBHTCBvYmplY3RzIGlm
IHBhZ2UgcGFpbnQgbm9kZSBpcyBkZWFsbG9jYXRlZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczNTkxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IGRlYWxsb2NhdGlvbiBvZiBUZXh0dXJl
TWFwcGVyIEdMIG9iamVjdHMgd2hlbiBRUXVpY2tXZWJQYWdlIHBhaW50IG5vZGUgZGVhbGxvY2F0
ZWQuCisgICAgICAgIEFsc28gYWRkcyBwdXJnaW5nIEdyYXBoaWNzTGF5ZXIgYmFja2luZyBzdG9y
ZXMgb24gV2ViUHJvY2VzcyBzaWRlIGluIG9yZGVyIHRvIGZvcmNlIHJlcGFpbnRpbmcKKyAgICAg
ICAgd2hlbiBwYWdlIGJlY29tZXMgdmlzaWJsZSBhbmQgcGFpbnRpbmcgcmVzdW1lcy4KKworICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2VicGFnZS5jcHA6CisgICAgICAgIChRUXVp
Y2tXZWJQYWdlUHJpdmF0ZTo6cmVzZXRQYWludE5vZGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvcXQvdGVzdHMvcXF1aWNrd2Vidmlldy90c3RfcXF1aWNrd2Vidmlldy5jcHA6CisgICAgICAg
ICh0c3RfUVF1aWNrV2ViVmlldzo6cmVtb3ZlRnJvbUNhbnZhcyk6CisgICAgICAgICogVUlQcm9j
ZXNzL0RyYXdpbmdBcmVhUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWFQcm94
eTo6bGF5ZXJUcmVlSG9zdFByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF5ZXJUcmVlSG9z
dFByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL3F0L0xheWVyVHJlZUhvc3RQcm94eVF0LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlSG9zdFByb3h5OjpwdXJnZUdMQ29udGV4dERh
dGEpOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VQcm94eS5jcHA6CisgICAgICAg
IChRdFdlYlBhZ2VQcm94eTo6cHVyZ2VHTENvbnRleHREYXRhKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvcXQvUXRXZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkdyYXBoaWNzTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR3JhcGhpY3NM
YXllcjo6ZHJvcFRpbGVkQmFja2luZ1N0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdyYXBo
aWNzTGF5ZXI6OnJlQ3JlYXRlVGlsZWRCYWNraW5nU3RvcmUpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViR3JhcGhpY3NMYXllci5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9MYXllclRyZWVIb3N0Lmg6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUhv
c3Q6Om5lZWRUaWxlQnVmZmVyc1JlY3JlYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvTGF5ZXJUcmVlSG9zdC5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvcXQvTGF5ZXJUcmVlSG9zdFF0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlSG9z
dFF0OjpMYXllclRyZWVIb3N0UXQpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVIb3N0UXQ6
OmZsdXNoUGVuZGluZ0xheWVyQ2hhbmdlcyk6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUhv
c3RRdDo6bmVlZFRpbGVCdWZmZXJzUmVjcmVhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9xdC9MYXllclRyZWVIb3N0UXQuaDoKKworMjAxMS0xMi0wMSAgVmlhdGNoZXNsYXYgT3N0
YXBlbmtvICA8b3N0YXBlbmtvLnZpYXRjaGVzbGF2QG5va2lhLmNvbT4KKwogICAgICAgICBbUXRd
IFtXSzJdIFFRdWlja1dlYlZpZXcgY292ZXJzIFFNTCBlbGVtZW50cyB0aGF0IHNob3VsZCBiZSBy
ZW5kZXJlZCBvbiB0b3AuCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03MzMzOAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3F0L3FxdWlja3dlYnBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9x
cXVpY2t3ZWJwYWdlLmNwcAppbmRleCA1Y2I2YzYyLi5jZTE3NmE5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnBhZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2VicGFnZS5jcHAKQEAgLTMxMyw2ICsz
MTMsNyBAQCBRU0dOb2RlKiBRUXVpY2tXZWJQYWdlOjp1cGRhdGVQYWludE5vZGUoUVNHTm9kZSog
b2xkTm9kZSwgVXBkYXRlUGFpbnROb2RlRGF0YSopCiB2b2lkIFFRdWlja1dlYlBhZ2VQcml2YXRl
OjpyZXNldFBhaW50Tm9kZSgpCiB7CiAgICAgbV9wYWludE5vZGUgPSAwOworICAgIHBhZ2VQcm94
eS0+cHVyZ2VHTENvbnRleHREYXRhKCk7CiB9CiAKIFFRdWlja1dlYlBhZ2VQcml2YXRlOjp+UVF1
aWNrV2ViUGFnZVByaXZhdGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC90ZXN0cy9xcXVpY2t3ZWJ2aWV3L3RzdF9xcXVpY2t3ZWJ2aWV3LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcXF1aWNrd2Vidmlldy90c3RfcXF1aWNr
d2Vidmlldy5jcHAKaW5kZXggN2Y0MTM3OC4uYjllYmZhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xcXVpY2t3ZWJ2aWV3L3RzdF9xcXVpY2t3ZWJ2
aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FxdWlj
a3dlYnZpZXcvdHN0X3FxdWlja3dlYnZpZXcuY3BwCkBAIC01MCw2ICs1MCw3IEBAIHByaXZhdGUg
c2xvdHM6CiAKICAgICB2b2lkIHNob3coKTsKICAgICB2b2lkIHNob3dXZWJWaWV3KCk7CisgICAg
dm9pZCByZW1vdmVGcm9tQ2FudmFzKCk7CiAKIHByaXZhdGU6CiAgICAgaW5saW5lIFFRdWlja1dl
YlZpZXcqIHdlYlZpZXcoKSBjb25zdDsKQEAgLTI1NSw2ICsyNTYsMTkgQEAgdm9pZCB0c3RfUVF1
aWNrV2ViVmlldzo6c2hvd1dlYlZpZXcoKQogICAgIFFUZXN0OjpxV2FpdCgyMDApOwogfQogCit2
b2lkIHRzdF9RUXVpY2tXZWJWaWV3OjpyZW1vdmVGcm9tQ2FudmFzKCkKK3sKKyAgICBzaG93V2Vi
VmlldygpOworCisgICAgLy8gVGhpcyBzaG91bGQgbm90IGNyYXNoLgorICAgIFFRdWlja0l0ZW0q
IHBhcmVudCA9IHdlYlZpZXcoKS0+cGFyZW50SXRlbSgpOworICAgIFFRdWlja0l0ZW0gbm9DYW52
YXNJdGVtOworICAgIHdlYlZpZXcoKS0+c2V0UGFyZW50SXRlbSgmbm9DYW52YXNJdGVtKTsKKyAg
ICBRVGVzdDo6cVdhaXQoMjAwKTsKKyAgICB3ZWJWaWV3KCktPnNldFBhcmVudEl0ZW0ocGFyZW50
KTsKKyAgICBRVGVzdDo6cVdhaXQoMjAwKTsKK30KKwogdm9pZCB0c3RfUVF1aWNrV2ViVmlldzo6
c2Nyb2xsUmVxdWVzdCgpCiB7CiAgICAgd2ViVmlldygpLT5zZXRTaXplKFFTaXplRigzMDAsIDQw
MCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmgKaW5kZXgg
OWQ3MjQxMi4uNWFkMDNhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Ry
YXdpbmdBcmVhUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0Fy
ZWFQcm94eS5oCkBAIC04Niw2ICs4Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFdlYkNvcmU6
OkludFJlY3QgY29udGVudHNSZWN0KCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzQmFja2lu
Z1N0b3JlUmVhZHkoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCB2b2lkIHBh
aW50VG9DdXJyZW50R0xDb250ZXh0KGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4
JiwgZmxvYXQgb3BhY2l0eSkgeyB9CisgICAgTGF5ZXJUcmVlSG9zdFByb3h5KiBsYXllclRyZWVI
b3N0UHJveHkoKSBjb25zdCB7IHJldHVybiBtX2xheWVyVHJlZUhvc3RQcm94eS5nZXQoKTsgfQog
CiAjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgdmlydHVhbCB2b2lkIHNldFZpc2li
bGVDb250ZW50c1JlY3RBbmRTY2FsZShjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiB2aXNpYmxlQ29u
dGVudHNSZWN0LCBmbG9hdCBzY2FsZSkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvTGF5ZXJUcmVlSG9zdFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
TGF5ZXJUcmVlSG9zdFByb3h5LmgKaW5kZXggOWNlMGRkOS4uYmFlZWYxZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xheWVyVHJlZUhvc3RQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXllclRyZWVIb3N0UHJveHkuaApAQCAtNTUsNiArNTUsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBzZXRSb290Q29tcG9zaXRpbmdMYXllcihXZWJMYXllcklEKTsK
ICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBD
OjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwogICAgIHZvaWQgcGFpbnRU
b0N1cnJlbnRHTENvbnRleHQoY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBmbG9hdCk7Cisg
ICAgdm9pZCBwdXJnZUdMQ29udGV4dERhdGEoKTsKICAgICB2b2lkIHNldFZpc2libGVDb250ZW50
c1JlY3RBbmRTY2FsZShjb25zdCBJbnRSZWN0JiwgZmxvYXQpOwogICAgIHZvaWQgc2V0VmlzaWJs
ZUNvbnRlbnRSZWN0VHJhamVjdG9yeVZlY3Rvcihjb25zdCBGbG9hdFBvaW50Jik7CiAjaWYgVVNF
KFRJTEVEX0JBQ0tJTkdfU1RPUkUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvcXQvTGF5ZXJUcmVlSG9zdFByb3h5UXQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L3F0L0xheWVyVHJlZUhvc3RQcm94eVF0LmNwcAppbmRleCA5MmZkNTgxLi5hMzZkZmZmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvTGF5ZXJUcmVlSG9zdFByb3h5UXQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9MYXllclRyZWVIb3N0UHJveHlR
dC5jcHAKQEAgLTYxOCw1ICs2MTgsMTYgQEAgdm9pZCBMYXllclRyZWVIb3N0UHJveHk6OnNldFZp
c2libGVDb250ZW50c1JlY3RBbmRTY2FsZShjb25zdCBJbnRSZWN0JiByZWN0LCBmbG8KICAgICBt
X2RyYXdpbmdBcmVhUHJveHktPnBhZ2UoKS0+cHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpMYXll
clRyZWVIb3N0OjpTZXRWaXNpYmxlQ29udGVudFJlY3RBbmRTY2FsZShyZWN0LCBzY2FsZSksIG1f
ZHJhd2luZ0FyZWFQcm94eS0+cGFnZSgpLT5wYWdlSUQoKSk7CiB9CiAKK3ZvaWQgTGF5ZXJUcmVl
SG9zdFByb3h5OjpwdXJnZUdMQ29udGV4dERhdGEoKQoreworICAgIFRleHR1cmVNYXBwZXJOb2Rl
KiBub2RlID0gdG9UZXh0dXJlTWFwcGVyTm9kZShyb290TGF5ZXIoKSk7CisKKyAgICBub2RlLT5j
bGVhbk5vZGVUZXh0dXJlc1JlY3Vyc2l2ZSgpOworCisgICAgbV90ZXh0dXJlTWFwcGVyLmNsZWFy
KCk7CisKKyAgICBtX2RyYXdpbmdBcmVhUHJveHktPnBhZ2UoKS0+cHJvY2VzcygpLT5zZW5kKE1l
c3NhZ2VzOjpMYXllclRyZWVIb3N0OjpOZWVkVGlsZUJ1ZmZlcnNSZWNyZWF0ZSgpLCBtX2RyYXdp
bmdBcmVhUHJveHktPnBhZ2UoKS0+cGFnZUlEKCkpOworfQorCiB9CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlUHJveHkuY3BwCmluZGV4IDRhYzA0ZjQu
LmMzMjVhODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBh
Z2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVBy
b3h5LmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgInF3a2hpc3RvcnkuaCIKICNpbmNs
dWRlICJxd2toaXN0b3J5X3AuaCIKICNpbmNsdWRlICJGaW5kSW5kaWNhdG9yLmgiCisjaW5jbHVk
ZSAiTGF5ZXJUcmVlSG9zdFByb3h5LmgiCiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgog
I2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiUXREb3dubG9hZE1hbmFnZXIu
aCIKQEAgLTUzNiw2ICs1MzcsMTMgQEAgdm9pZCBRdFdlYlBhZ2VQcm94eTo6cmVuZGVyVG9DdXJy
ZW50R0xDb250ZXh0KGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2YKICAgICAgICAg
ZHJhd2luZ0FyZWEtPnBhaW50VG9DdXJyZW50R0xDb250ZXh0KHRyYW5zZm9ybSwgb3BhY2l0eSk7
CiB9CiAKK3ZvaWQgUXRXZWJQYWdlUHJveHk6OnB1cmdlR0xDb250ZXh0RGF0YSgpCit7CisgICAg
RHJhd2luZ0FyZWFQcm94eSogZHJhd2luZ0FyZWEgPSBtX3dlYlBhZ2VQcm94eS0+ZHJhd2luZ0Fy
ZWEoKTsKKyAgICBpZiAoZHJhd2luZ0FyZWEgJiYgZHJhd2luZ0FyZWEtPmxheWVyVHJlZUhvc3RQ
cm94eSgpKQorICAgICAgICBkcmF3aW5nQXJlYS0+bGF5ZXJUcmVlSG9zdFByb3h5KCktPnB1cmdl
R0xDb250ZXh0RGF0YSgpOworfQorCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKIHZvaWQgUXRX
ZWJQYWdlUHJveHk6OmRvbmVXaXRoVG91Y2hFdmVudChjb25zdCBOYXRpdmVXZWJUb3VjaEV2ZW50
JiBldmVudCwgYm9vbCB3YXNFdmVudEhhbmRsZWQpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9xdC9RdFdlYlBhZ2VQcm94eS5oCmluZGV4IDMzMTcwNDQuLjMwYTRkZjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VQcm94eS5oCkBAIC0xNzIsNiArMTcy
LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0VmlzaWJsZUNvbnRlbnRSZWN0QW5kU2NhbGUoY29u
c3QgUVJlY3RGJiwgZmxvYXQpOwogICAgIHZvaWQgc2V0VmlzaWJsZUNvbnRlbnRSZWN0VHJhamVj
dG9yeVZlY3Rvcihjb25zdCBRUG9pbnRGJik7CiAgICAgdm9pZCByZW5kZXJUb0N1cnJlbnRHTENv
bnRleHQoY29uc3QgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgmLCBmbG9hdCk7CisgICAg
dm9pZCBwdXJnZUdMQ29udGV4dERhdGEoKTsKIAogICAgIFFXS0hpc3RvcnkqIGhpc3RvcnkoKSBj
b25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJHcmFwaGljc0xheWVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViR3JhcGhpY3NMYXllci5jcHAKaW5kZXggNjE2MzQ2NS4uMTU0ZDhkZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJH
cmFwaGljc0xheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkdyYXBoaWNzTGF5ZXIuY3BwCkBAIC01NjUsNiArNTY1LDMwIEBAIHZvaWQgV2Vi
R3JhcGhpY3NMYXllcjo6dXBkYXRlQ29udGVudEJ1ZmZlcnMoKQogICAgIG1faW5VcGRhdGVNb2Rl
ID0gZmFsc2U7CiB9CiAKK3ZvaWQgV2ViR3JhcGhpY3NMYXllcjo6ZHJvcFRpbGVkQmFja2luZ1N0
b3JlKCkKK3sKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNoaWxkcmVuKCkuc2l6ZSgpOyAr
K2kpIHsKKyAgICAgICAgV2ViR3JhcGhpY3NMYXllciogbGF5ZXIgPSB0b1dlYkdyYXBoaWNzTGF5
ZXIodGhpcy0+Y2hpbGRyZW4oKVtpXSk7CisgICAgICAgIGxheWVyLT5kcm9wVGlsZWRCYWNraW5n
U3RvcmUoKTsKKyAgICB9CisKKyAgICBpZiAobV9tYWluQmFja2luZ1N0b3JlKQorICAgICAgICBt
X21haW5CYWNraW5nU3RvcmUuY2xlYXIoKTsKK30KKwordm9pZCBXZWJHcmFwaGljc0xheWVyOjpy
ZUNyZWF0ZVRpbGVkQmFja2luZ1N0b3JlKCkKK3sKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgY2hpbGRyZW4oKS5zaXplKCk7ICsraSkgeworICAgICAgICBXZWJHcmFwaGljc0xheWVyKiBs
YXllciA9IHRvV2ViR3JhcGhpY3NMYXllcih0aGlzLT5jaGlsZHJlbigpW2ldKTsKKyAgICAgICAg
bGF5ZXItPnJlQ3JlYXRlVGlsZWRCYWNraW5nU3RvcmUoKTsKKyAgICB9CisKKyAgICBpZiAoIW1f
bWFpbkJhY2tpbmdTdG9yZSkgeworICAgICAgICBtX21haW5CYWNraW5nU3RvcmUgPSBhZG9wdFB0
cihuZXcgVGlsZWRCYWNraW5nU3RvcmUodGhpcywgVGlsZWRCYWNraW5nU3RvcmVSZW1vdGVUaWxl
QmFja2VuZDo6Y3JlYXRlKHRoaXMpKSk7CisgICAgICAgIG1fbWFpbkJhY2tpbmdTdG9yZS0+c2V0
Q29udGVudHNTY2FsZShtX2NvbnRlbnRzU2NhbGUpOworICAgIH0KK30KICNlbmRpZgogCiBzdGF0
aWMgUGFzc093blB0cjxHcmFwaGljc0xheWVyPiBjcmVhdGVXZWJHcmFwaGljc0xheWVyKEdyYXBo
aWNzTGF5ZXJDbGllbnQqIGNsaWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR3JhcGhpY3NMYXllci5oIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHcmFwaGljc0xheWVyLmgKaW5kZXggYWMwNTU4
ZS4uNzU0MjcxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJHcmFwaGljc0xheWVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJHcmFwaGljc0xheWVyLmgKQEAgLTEzMSw2ICsxMzEsOCBAQCBw
dWJsaWM6CiAgICAgdm9pZCB1cGRhdGVUaWxlQnVmZmVyc1JlY3Vyc2l2ZWx5KCk7CiAgICAgdm9p
ZCBzZXRDb250ZW50c1NjYWxlKGZsb2F0KTsKICAgICB2b2lkIHVwZGF0ZUNvbnRlbnRCdWZmZXJz
KCk7CisgICAgdm9pZCBkcm9wVGlsZWRCYWNraW5nU3RvcmUoKTsKKyAgICB2b2lkIHJlQ3JlYXRl
VGlsZWRCYWNraW5nU3RvcmUoKTsKICNlbmRpZgogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhvc3QuaCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0LmgKaW5kZXggOTg2MGE3YS4u
MjM0MTdiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xh
eWVyVHJlZUhvc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5
ZXJUcmVlSG9zdC5oCkBAIC04NCw2ICs4NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
c2V0VmlzaWJsZUNvbnRlbnRSZWN0VHJhamVjdG9yeVZlY3Rvcihjb25zdCBXZWJDb3JlOjpGbG9h
dFBvaW50JikgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNldFZpc2libGVDb250ZW50UmVjdEZvckxh
eWVyKGludCBsYXllcklELCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgeyB9CiAgICAgdmlydHVh
bCB2b2lkIHJlbmRlck5leHRGcmFtZSgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBuZWVkVGlsZUJ1
ZmZlcnNSZWNyZWF0ZSgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTGF5ZXJUcmVl
SG9zdE1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhvc3QubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlSG9zdC5tZXNzYWdlcy5pbgpp
bmRleCA2YjkxMzljLi4wN2Q1NjU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlSG9zdC5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlSG9zdC5tZXNzYWdlcy5pbgpAQCAtMjQsNSAr
MjQsNiBAQCBtZXNzYWdlcyAtPiBMYXllclRyZWVIb3N0IHsKICAgICBTZXRWaXNpYmxlQ29udGVu
dFJlY3RUcmFqZWN0b3J5VmVjdG9yKFdlYkNvcmU6OkZsb2F0UG9pbnQgdHJhamVjdG9yeVZlY3Rv
cnkpCiAgICAgU2V0VmlzaWJsZUNvbnRlbnRSZWN0QW5kU2NhbGUoV2ViQ29yZTo6SW50UmVjdCBj
b250ZW50UmVjdCwgZmxvYXQgc2NhbGUpCiAgICAgUmVuZGVyTmV4dEZyYW1lKCkKKyAgICBOZWVk
VGlsZUJ1ZmZlcnNSZWNyZWF0ZSgpCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9xdC9MYXllclRyZWVIb3N0UXQuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L0xheWVyVHJlZUhvc3RRdC5jcHAKaW5kZXggNTE5
OTAwOC4uNmYxOWVjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL3F0L0xheWVyVHJlZUhvc3RRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL3F0L0xheWVyVHJlZUhvc3RRdC5jcHAKQEAgLTY2LDYgKzY2LDcgQEAgTGF5ZXJU
cmVlSG9zdFF0OjpMYXllclRyZWVIb3N0UXQoV2ViUGFnZSogd2ViUGFnZSkKICAgICAsIG1fc2hv
dWxkU3luY1Jvb3RMYXllcih0cnVlKQogICAgICwgbV9sYXllckZsdXNoVGltZXIodGhpcywgJkxh
eWVyVHJlZUhvc3RRdDo6bGF5ZXJGbHVzaFRpbWVyRmlyZWQpCiAgICAgLCBtX2xheWVyRmx1c2hT
Y2hlZHVsaW5nRW5hYmxlZCh0cnVlKQorICAgICwgbV9uZWVkVGlsZUJ1ZmZlcnNSZWNyZWF0ZShm
YWxzZSkKIHsKICAgICAvLyBDcmVhdGUgYSByb290IGxheWVyLgogICAgIG1fcm9vdExheWVyID0g
R3JhcGhpY3NMYXllcjo6Y3JlYXRlKHRoaXMpOwpAQCAtMjEwLDYgKzIxMSwxMiBAQCB2b2lkIExh
eWVyVHJlZUhvc3RRdDo6c2V0UGFnZU92ZXJsYXlOZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYgcmVjdCkKIAogYm9vbCBMYXllclRyZWVIb3N0UXQ6OmZsdXNoUGVuZGluZ0xheWVy
Q2hhbmdlcygpCiB7CisgICAgaWYgKG1fbmVlZFRpbGVCdWZmZXJzUmVjcmVhdGUpIHsKKyAgICAg
ICAgbV9uZWVkVGlsZUJ1ZmZlcnNSZWNyZWF0ZSA9IGZhbHNlOworICAgICAgICBXZWJHcmFwaGlj
c0xheWVyKiB3ZWJSb290TGF5ZXIgPSB0b1dlYkdyYXBoaWNzTGF5ZXIobV9yb290TGF5ZXIuZ2V0
KCkpOworICAgICAgICB3ZWJSb290TGF5ZXItPnJlQ3JlYXRlVGlsZWRCYWNraW5nU3RvcmUoKTsK
KyAgICB9CisKICAgICBib29sIGRpZFN5bmMgPSBtX3dlYlBhZ2UtPmNvcmVQYWdlKCktPm1haW5G
cmFtZSgpLT52aWV3KCktPnN5bmNDb21wb3NpdGluZ1N0YXRlSW5jbHVkaW5nU3ViZnJhbWVzKCk7
CiAgICAgbV9ub25Db21wb3NpdGVkQ29udGVudExheWVyLT5zeW5jQ29tcG9zaXRpbmdTdGF0ZUZv
clRoaXNMYXllck9ubHkoKTsKICAgICBpZiAobV9wYWdlT3ZlcmxheUxheWVyKQpAQCAtNDIzLDYg
KzQzMCwxMyBAQCBib29sIExheWVyVHJlZUhvc3RRdDo6bGF5ZXJUcmVlVGlsZVVwZGF0ZXNBbGxv
d2VkKCkgY29uc3QKICAgICByZXR1cm4gIW1faXNTdXNwZW5kZWQgJiYgIW1fd2FpdGluZ0ZvclVJ
UHJvY2VzczsKIH0KIAordm9pZCBMYXllclRyZWVIb3N0UXQ6Om5lZWRUaWxlQnVmZmVyc1JlY3Jl
YXRlKCkKK3sKKyAgICBtX25lZWRUaWxlQnVmZmVyc1JlY3JlYXRlID0gdHJ1ZTsKKyAgICBXZWJH
cmFwaGljc0xheWVyKiB3ZWJSb290TGF5ZXIgPSB0b1dlYkdyYXBoaWNzTGF5ZXIobV9yb290TGF5
ZXIuZ2V0KCkpOworICAgIHdlYlJvb3RMYXllci0+ZHJvcFRpbGVkQmFja2luZ1N0b3JlKCk7Cit9
CisKICNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9xdC9MYXllclRyZWVIb3N0UXQuaCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9xdC9MYXllclRyZWVIb3N0UXQuaAppbmRleCAzMTAx
MWM2Li5lNjMwZDVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvcXQvTGF5ZXJUcmVlSG9zdFF0LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL3F0L0xheWVyVHJlZUhvc3RRdC5oCkBAIC03MSw2ICs3MSw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgcmVtb3ZlVGlsZShXZWJMYXllcklELCBpbnQgdGlsZUlEKTsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0VmlzaWJsZUNvbnRlbnRSZWN0Rm9yTGF5ZXIoaW50IGxheWVySUQsIGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVuZGVyTmV4dEZyYW1l
KCk7CisgICAgdmlydHVhbCB2b2lkIG5lZWRUaWxlQnVmZmVyc1JlY3JlYXRlKCk7CiAgICAgdmly
dHVhbCBib29sIGxheWVyVHJlZVRpbGVVcGRhdGVzQWxsb3dlZCgpIGNvbnN0OwogICAgIHZpcnR1
YWwgdm9pZCBzZXRWaXNpYmxlQ29udGVudFJlY3RBbmRTY2FsZShjb25zdCBJbnRSZWN0JiwgZmxv
YXQgc2NhbGUpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRWaXNpYmxlQ29udGVudFJlY3RUcmFqZWN0
b3J5VmVjdG9yKGNvbnN0IEZsb2F0UG9pbnQmKTsKQEAgLTExOSw2ICsxMjAsNyBAQCBwcml2YXRl
OgogICAgIHZvaWQgbGF5ZXJGbHVzaFRpbWVyRmlyZWQoV2ViQ29yZTo6VGltZXI8TGF5ZXJUcmVl
SG9zdFF0PiopOwogICAgIFdlYkNvcmU6OlRpbWVyPExheWVyVHJlZUhvc3RRdD4gbV9sYXllckZs
dXNoVGltZXI7CiAgICAgYm9vbCBtX2xheWVyRmx1c2hTY2hlZHVsaW5nRW5hYmxlZDsKKyAgICBi
b29sIG1fbmVlZFRpbGVCdWZmZXJzUmVjcmVhdGU7CiB9OwogCiB9Cg==
</data>
<flag name="review"
          id="116945"
          type_id="1"
          status="-"
          setter="noam"
    />
    <flag name="commit-queue"
          id="116946"
          type_id="3"
          status="-"
          setter="noam"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118504</attachid>
            <date>2011-12-08 17:54:24 -0800</date>
            <delta_ts>2011-12-08 20:51:17 -0800</delta_ts>
            <desc>Added cleaning of direct composited images</desc>
            <filename>texture_purge_on_paintnode_dealloc_03.diff</filename>
            <type>text/plain</type>
            <size>34549</size>
            <attacher name="Viatcheslav Ostapenko">ostap73</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAzYWJjMTg0Li4zZWI4NzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkg
QEAKKzIwMTEtMTItMDggIFZpYXRjaGVzbGF2IE9zdGFwZW5rbyAgPG9zdGFwZW5rby52aWF0Y2hl
c2xhdkBub2tpYS5jb20+CisKKyAgICAgICAgW1F0XSBbV0syXSBXZWJraXQgc2hvdWxkIHJlbGVh
c2UgVGV4dHVyZU1hcHBlciBHTCBvYmplY3RzIGlmIHBhZ2UgcGFpbnQgbm9kZSBpcyBkZWFsbG9j
YXRlZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcz
NTkxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1w
bGVtZW50YXRpb24gb2YgaGVscGVyIGZ1bmN0aW9uIHRvIHJlbW92ZSBhbGwgR0wgYWxsb2NhdGVk
IHRpbGVzCisgICAgICAgIHdoZW4gUVF1aWNrV2ViVmlldyBnZXRzIHJlbW92ZWQgZnJvbSBjYW52
YXMuCisKKyAgICAgICAgVGVzdGVkIGJ5IG5ldyBBUEkgdGVzdCBpbiBXSzIgKHRzdF9RUXVpY2tX
ZWJWaWV3OjpyZW1vdmVGcm9tQ2FudmFzKS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJl
TWFwcGVyTm9kZTo6Y2xlYW5Ob2RlVGV4dHVyZXNSZWN1cnNpdmUpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5oOgorCiAyMDExLTEyLTA1ICBD
aHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CiAKICAgICAgICAgcGxhdGZvcm0v
bWFjL2FjY2Vzc2liaWxpdHkvc2VhcmNoLXdoZW4tZWxlbWVudC1zdGFydHMtaW4tdGFibGUuaHRt
bCBpcyBmYWlsaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmNwcAppbmRleCA0ZDIxNGRmLi5kMDJl
MzlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
VGV4dHVyZU1hcHBlck5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5jcHAKQEAgLTYyMCw2ICs2MjAsMTQgQEAgdm9p
ZCBUZXh0dXJlTWFwcGVyTm9kZTo6cmVtb3ZlQ29udGVudHNUaWxlKGludCBpZCkKICAgICBtX2V4
dGVybmFsbHlNYW5hZ2VkVGlsZXMucmVtb3ZlKGlkKTsKIH0KIAordm9pZCBUZXh0dXJlTWFwcGVy
Tm9kZTo6Y2xlYW5Ob2RlVGV4dHVyZXNSZWN1cnNpdmUoKQoreworICAgIG1fZXh0ZXJuYWxseU1h
bmFnZWRUaWxlcy5jbGVhcigpOworCisgICAgZm9yIChpbnQgaSA9IG1fY2hpbGRyZW4uc2l6ZSgp
IC0gMTsgaSA+PSAwOyAtLWkpCisgICAgICAgIG1fY2hpbGRyZW5baV0tPmNsZWFuTm9kZVRleHR1
cmVzUmVjdXJzaXZlKCk7Cit9CisKIHZvaWQgVGV4dHVyZU1hcHBlck5vZGU6OnNldFRpbGVCYWNr
QnVmZmVyVGV4dHVyZUZvckRpcmVjdGx5Q29tcG9zaXRlZEltYWdlKGludCBpZCwgY29uc3QgSW50
UmVjdCYgc291cmNlUmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRSZWN0LCBCaXRtYXBUZXh0
dXJlKiB0ZXh0dXJlKQogewogICAgIEhhc2hNYXA8aW50LCBFeHRlcm5hbGx5TWFuYWdlZFRpbGU+
OjppdGVyYXRvciBpdCA9IG1fZXh0ZXJuYWxseU1hbmFnZWRUaWxlcy5maW5kKGlkKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJOb2RlLmgKaW5kZXggZWI5YzY5MmUuLmQ3YTgyYmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
Tm9kZS5oCkBAIC0xNTgsNiArMTU4LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0VGlsZUJhY2tC
dWZmZXJUZXh0dXJlRm9yRGlyZWN0bHlDb21wb3NpdGVkSW1hZ2UoaW50IGlkLCBjb25zdCBJbnRS
ZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldFJlY3QsIEJpdG1hcFRleHR1
cmUqKTsKICAgICB2b2lkIGNsZWFyQWxsRGlyZWN0bHlDb21wb3NpdGVkSW1hZ2VUaWxlcygpOwog
ICAgIGJvb2wgY29sbGVjdFZpc2libGVDb250ZW50c1JlY3RzKE5vZGVSZWN0TWFwJiwgY29uc3Qg
RmxvYXRSZWN0Jik7CisgICAgdm9pZCBjbGVhbk5vZGVUZXh0dXJlc1JlY3Vyc2l2ZSgpOwogI2Vu
ZGlmCiAgICAgdm9pZCBzZXRJRChpbnQgaWQpIHsgbV9pZCA9IGlkOyB9CiAgICAgaW50IGlkKCkg
Y29uc3QgeyByZXR1cm4gbV9pZDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGY0ZWEyZDYuLmViY2ZjYjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw0NyBAQAorMjAxMS0xMi0wOCAgVmlhdGNoZXNsYXYgT3N0YXBl
bmtvICA8b3N0YXBlbmtvLnZpYXRjaGVzbGF2QG5va2lhLmNvbT4KKworICAgICAgICBbUXRdIFtX
SzJdIFdlYmtpdCBzaG91bGQgcmVsZWFzZSBUZXh0dXJlTWFwcGVyIEdMIG9iamVjdHMgaWYgcGFn
ZSBwYWludCBub2RlIGlzIGRlYWxsb2NhdGVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM1OTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgZGVhbGxvY2F0aW9uIG9mIFRleHR1cmVNYXBw
ZXIgR0wgb2JqZWN0cyB3aGVuIFFRdWlja1dlYlBhZ2UgcGFpbnQgbm9kZSBkZWFsbG9jYXRlZC4K
KyAgICAgICAgQWxzbyBhZGRzIHB1cmdpbmcgR3JhcGhpY3NMYXllciBiYWNraW5nIHN0b3JlcyBv
biBXZWJQcm9jZXNzIHNpZGUgaW4gb3JkZXIgdG8gZm9yY2UgcmVwYWludGluZworICAgICAgICB3
aGVuIHBhZ2UgYmVjb21lcyB2aXNpYmxlIGFuZCBwYWludGluZyByZXN1bWVzIGFuZCBmaXhlcyBp
bmNvcnJlY3QgaW5pdGlhbGl6YXRpb24gb2YgdmlldyAKKyAgICAgICAgdmlzaWJpbGl0eSBzdGF0
ZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2VicGFnZS5jcHA6CisgICAg
ICAgIChRUXVpY2tXZWJQYWdlUHJpdmF0ZTo6cmVzZXRQYWludE5vZGUpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHA6CisgICAgICAgIChRUXVpY2tXZWJWaWV3
UHJpdmF0ZTo6UVF1aWNrV2ViVmlld1ByaXZhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
cXQvdGVzdHMvaHRtbC9kaXJlY3QtaW1hZ2UtY29tcG9zaXRpbmcuaHRtbDogQWRkZWQuCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9odG1sL3Jlc291cmNlcy9zaW1wbGVfaW1hZ2Uu
cG5nOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FxdWlja3dlYnZp
ZXcvdHN0X3FxdWlja3dlYnZpZXcuY3BwOgorICAgICAgICAodHN0X1FRdWlja1dlYlZpZXc6OnNo
b3dXZWJWaWV3KToKKyAgICAgICAgKHRzdF9RUXVpY2tXZWJWaWV3OjpyZW1vdmVGcm9tQ2FudmFz
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oOgorICAgICAgICAoV2Vi
S2l0OjpEcmF3aW5nQXJlYVByb3h5OjpsYXllclRyZWVIb3N0UHJveHkpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9MYXllclRyZWVIb3N0UHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvcXQvTGF5
ZXJUcmVlSG9zdFByb3h5UXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVIb3N0UHJv
eHk6OnB1cmdlR0xDb250ZXh0RGF0YSk6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1F0V2ViUGFn
ZVByb3h5LmNwcDoKKyAgICAgICAgKFF0V2ViUGFnZVByb3h5OjpwdXJnZUdMQ29udGV4dERhdGEp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR3JhcGhpY3NMYXllci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJHcmFwaGljc0xheWVyOjpzZXROZWVkc0Rpc3BsYXlJblJlY3QpOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViR3JhcGhpY3NMYXllcjo6ZHJvcFRpbGVkQmFja2luZ1N0b3JlKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdyYXBoaWNzTGF5ZXI6OnJlY3JlYXRlVGlsZWRCYWNraW5nU3Rv
cmVJZk5lZWRlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHcmFw
aGljc0xheWVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhvc3Qu
aDoKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlSG9zdDo6cHVyZ2VUaWxlZEJhY2tpbmdTdG9y
ZXMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0Lm1lc3NhZ2Vz
LmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9xdC9MYXllclRyZWVIb3N0UXQuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVIb3N0UXQ6OkxheWVyVHJlZUhvc3RRdCk6Cisg
ICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUhvc3RRdDo6Zmx1c2hQZW5kaW5nTGF5ZXJDaGFuZ2Vz
KToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlSG9zdFF0OjpwdXJnZVRpbGVkQmFja2luZ1N0
b3Jlcyk6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUhvc3RRdDo6cmVjcmVhdGVUaWxlZEJ1
ZmZlcnNJZk5lZWRlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L0xheWVyVHJl
ZUhvc3RRdC5oOgorCiAyMDExLTEyLTA1ICBNaWNoYWVsIEJyw7xuaW5nICA8bWljaGFlbC5icnVu
aW5nQG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdIFJlbmFtZSBRUXVpY2tXZWJWaWV3OjpjYW5T
dG9wIHByb3BlcnR5IHRvIGp1c3QgbG9hZGluZyAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2VicGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3FxdWlja3dlYnBhZ2UuY3BwCmluZGV4IDVjYjZjNjIuLmNlMTc2YTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2VicGFnZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJwYWdlLmNw
cApAQCAtMzEzLDYgKzMxMyw3IEBAIFFTR05vZGUqIFFRdWlja1dlYlBhZ2U6OnVwZGF0ZVBhaW50
Tm9kZShRU0dOb2RlKiBvbGROb2RlLCBVcGRhdGVQYWludE5vZGVEYXRhKikKIHZvaWQgUVF1aWNr
V2ViUGFnZVByaXZhdGU6OnJlc2V0UGFpbnROb2RlKCkKIHsKICAgICBtX3BhaW50Tm9kZSA9IDA7
CisgICAgcGFnZVByb3h5LT5wdXJnZUdMQ29udGV4dERhdGEoKTsKIH0KIAogUVF1aWNrV2ViUGFn
ZVByaXZhdGU6On5RUXVpY2tXZWJQYWdlUHJpdmF0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcAppbmRleCBiMTQ3ODgxLi4yODUyMjVh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZp
ZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmll
dy5jcHAKQEAgLTcwLDYgKzcwLDkgQEAgUVF1aWNrV2ViVmlld1ByaXZhdGU6OlFRdWlja1dlYlZp
ZXdQcml2YXRlKFFRdWlja1dlYlZpZXcqIHZpZXdwb3J0LCBXS0NvbnRleHRSZWYKIAogICAgIC8v
IENyZWF0ZXMgYSBwYWdlIHdpdGggdGhlIHBhZ2UgY3JlYXRpb24gcGFyYW1ldGVycy4KICAgICBw
YWdlUHJveHktPmluaXQoZXZlbnRIYW5kbGVyLmRhdGEoKSk7CisKKyAgICAvLyBUcmlnZ2VyIHNl
dHRpbmcgb2YgY29ycmVjdCB2aXNpYmlsaXR5IGZsYWdzIGFmdGVyIGV2ZXJ5dGhpbmcgd2FzIGFs
bG9jYXRlZCBhbmQgaW5pdGlhbGl6ZWQKKyAgICBfcV9vblZpc2libGVDaGFuZ2VkKCk7CiB9CiAK
IHZvaWQgUVF1aWNrV2ViVmlld1ByaXZhdGU6OmVuYWJsZU1vdXNlRXZlbnRzKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvaHRtbC9kaXJlY3QtaW1h
Z2UtY29tcG9zaXRpbmcuaHRtbCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVz
dHMvaHRtbC9kaXJlY3QtaW1hZ2UtY29tcG9zaXRpbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi4yZmQ5MTQxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9odG1sL2RpcmVjdC1pbWFnZS1jb21wb3NpdGluZy5o
dG1sCkBAIC0wLDAgKzEsNjYgQEAKKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQg
SFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iCisgICAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRt
bDQvbG9vc2UuZHRkIj4KKworPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgIDxtZXRhIGh0dHAt
ZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4K
KyAgPHRpdGxlPlRlc3RpbmcgZGlyZWN0IGltYWdlIGxheWVyIG9wdGltaXNhdGlvbjwvdGl0bGU+
CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+CisgICAgaW1nIHsKKyAg
ICAgIGZsb2F0OiBsZWZ0OworICAgICAgd2lkdGg6IDE1MHB4OworICAgICAgaGVpZ2h0OiAxNTBw
eDsKKyAgICB9CisgICAgaW1nIHsKKyAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgw
LCAwLCAxLCAwKTsKKyAgICB9CisgICAgLnRlc3QgeworICAgICAgZmxvYXQ6IGxlZnQ7CisgICAg
ICBoZWlnaHQ6IDIwMHB4OworICAgICAgd2lkdGg6IDI2MHB4OworICAgIH0KKyAgIDwvc3R5bGU+
Cis8L2hlYWQ+Cis8Ym9keT4KKworICA8aDE+SW1hZ2Ugb3B0aW1pc2F0aW9uIGluIGxheWVyczwv
aDE+CisKKyAgPHA+CisgICAgVGhpcyB0ZXN0IGV4ZXJjaXNlcyBkaXJlY3QgY29tcG9zaXRpbmcg
b2YgaW1hZ2VzIHdpdGggaGFyZHdhcmUgYWNjZWxlcmF0aW9uLiBUaGUgdmlzdWFsIHJlc3VsdHMK
KyAgICB1c2luZyBBQ0NFTEVSQVRFRF9DT01QT1NJVElORyBhbmQgcmVndWxhciBUT1Qgc2hvdWxk
IGJlIGlkZW50aWNhbC4gUnVubmluZyB0aGlzIHRlc3QgbWFudWFsbHkgd2l0aAorICAgIHRoZSBj
b3JyZWN0IGRlYnVnIG9wdGlvbnMgd2lsbCBzaG93IHdoaWNoIGVsZW1lbnRzIGFyZSBkaXJlY3Rs
eSBjb21wb3NpdGVkLiBTZWUKKyAgICA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjMzNjEiPmh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzM2MTwvYT4KKyAgPC9wPgorCisgIDxkaXYgY2xhc3M9InRlc3QiPgorICAgIDxpbWcg
c3JjPSJyZXNvdXJjZXMvc2ltcGxlX2ltYWdlLnBuZyI+CisgICAgQmFzaWMgaW1hZ2UgLSBubyBz
dHlsZSAtIGNhbiBiZSBkaXJlY3RseSBjb21wb3NpdGVkCisgIDwvZGl2PgorCisgIDxkaXYgY2xh
c3M9InRlc3QiPgorICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvc2ltcGxlX2ltYWdlLnBuZyIgc3R5
bGU9ImJvcmRlcjogNXB4IHNvbGlkIGJsdWU7Ij4KKyAgICA1cHggYmx1ZSBib3JkZXIgLSBjYW4g
Tk9UIGJlIGRpcmVjdGx5IGNvbXBvc2l0ZWQKKyAgPC9kaXY+CisKKyAgPGRpdiBjbGFzcz0idGVz
dCI+CisgICAgPGltZyBzcmM9InJlc291cmNlcy9zaW1wbGVfaW1hZ2UucG5nIiBzdHlsZT0ibWFy
Z2luOiA1cHggNXB4OyI+CisgICAgbWFyZ2luIC0gY2FuIE5PVCBiZSBkaXJlY3RseSBjb21wb3Np
dGVkCisgIDwvZGl2PgorCisgIDxkaXYgY2xhc3M9InRlc3QiPgorICAgIDxpbWcgc3JjPSJyZXNv
dXJjZXMvc2ltcGxlX2ltYWdlLnBuZyIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IGdyZXk7Ij4K
KyAgICBzb2xpZCBiYWNrZ3JvdW5kIC0gY2FuIGJlIGRpcmVjdGx5IGNvbXBvc2l0ZWQKKyAgPC9k
aXY+CisKKyAgPGRpdiBjbGFzcz0idGVzdCI+CisgICAgPGltZyBzcmM9InJlc291cmNlcy9zaW1w
bGVfaW1hZ2UucG5nIiBzdHlsZT0iYmFja2dyb3VuZDogb3JhbmdlIHVybChyZXNvdXJjZXMvc2lt
cGxlX2ltYWdlLnBuZykgLTUwcHggLTUwcHg7Ij4KKyAgICBiYWNrZ3JvdW5kIGltYWdlIC0gY2Fu
IE5PVCBiZSBkaXJlY3RseSBjb21wb3NpdGVkCisgIDwvZGl2PgorCisgIDxkaXYgY2xhc3M9InRl
c3QiPgorICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvc2ltcGxlX2ltYWdlLnBuZyIgc3R5bGU9Ii13
ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAxMGRlZyk7Ij4KKyAgICByb3RhdGVk
IGJ1dCBvdGhlcndpc2Ugbm8gc3R5bGUgLSBjYW4gYmUgZGlyZWN0bHkgY29tcG9zaXRlZAorICA8
L2Rpdj4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC90ZXN0cy9odG1sL3Jlc291cmNlcy9zaW1wbGVfaW1hZ2UucG5nIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9odG1sL3Jlc291cmNlcy9zaW1wbGVf
aW1hZ2UucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2ODUzOTljYWNjMTdmOTliYzQ0NWQzODI3ZjdkYmM1NGU1
NDY5YzgKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDEwNTg1CnpjbVlrQ1dsJFZ8JmFOciQ/aTht
YCt9KykheFZ5V3ZJMjBDTCsqO2g3O19mYnM2cEF9Nj8oVEJXeCE+R3g/dkV0egp6T2Z0IzhPZVhW
MHRFdEdNQXJtNypLfCFJKCVTb3lLQyNMX2A1YUl2aGd9JTcke3dFTjVPNnopUnhMQUFvbjdMYSkK
emlDZW11VFQjZTZuYn15V1RiV3Q8eHtYXjJLfHlfZ202c0NOMWd4R0pvcUxAK0l1RUorcF5oc0sj
Wjd4I0V1OWwxCnptTTZgP0ZwcXh2XzJwUHUxLXRqfmltQmItV0ckSVZrcVF3Tno3T2ljZEZKfS09
TjFDbHBrTXJHVGBxKlpgVmZHNgp6YGklU2s2I3N0e2hmbEYrcj1sUEdDUytqJGM9Q2tja0hfSEFo
NFohQlMpb3l2dUwpK3RxWllhfCpNeTU2WigteW4KenA5WChGMTNXKHlNP2QrSntEbEBoZ2JKP3la
OyRecnw2bFJuRGdTVFdRPjFXRChDenI9Z1gqVT56QHNeKD82WVRUCnpjRlJCbjdWPEgzYFNTUmds
bzAkJDVMSjdTUzA+c2M4fVF6dmRsS3w9XztVTiZwMElXT3ErSHU7RVpZMDIpKWZ4WAp6Kn5OT3gt
Q2RpWlVRZWhNZGtjN3IzQklfMmMjQXFlJXJyaDcpJmBNenRVSmZ7SlUraTQoKVdISVVjKm1DQlMh
YFYKejxiQlNjdyNMcUlpO08qOSpNMl4/YFYlY0tXTmBgbnlPLT1UYDxvQFpwYEF6UU80eHMzaHg9
Vn1FZ0tYVSN9dFBRCnpzWSlzYyU3cCp8JVJUMWxOX3o2cj8+PkleJE8jISZ7dEZ9QGwoKUVMMTNl
MSVVcTN4TWZtWj0pQGNVYj5WVzxxSwp6d0pmbzM3PWd8QEtwcX5SdXxzMGt5TGQ4YEhAbn0mQGtW
ZGlJQD8kNz1RKV5VNn5mOXluZ1B+JXVTWUdBa0dHQVcKel8hTXpwbGZKOWxYSn4ofFl4VFghYj9f
eXJGfHdENVohUX5HIXRJRyR7ayVtX0AxR2YrYE8lZ3hIMU0qPUBNVDVsCnpLMlFqUnJaT1RPO2pL
OEIleE19M0tWJWdxcSN1Iy1MTzdAXlErXyowIUU+V1Z2WmElazdsfnlLc0pjIXRSXk4yTgp6ckQ4
LSlOJTcrS2NEZVFkYl54a21tKSlyXl9pMUpKSFY+Y0tATUVGZ2RBXklIcUI8R28kP21ZTks2PGJx
P1EjbVYKejxycUtGWFJnb0h0dmNgSkBQJCY0eUl7WV5rYE43ITZyNGslZ0BReiZtSmp9cDJLRFNC
PHtjbDtgUGJ7PFNXcjxiCnpUS3FKcF9ob2Y2KTA5RjJYJkUhQmR8WWJARkVzUTdnNmtnSFgqRS0h
ZmVQRHokPTdacyNoSGoxPjVTIy0+WU9kbQp6OG5FbnooczZVTlpXK3gyJTNCUS1uYXZmUjxZKmdg
TCtSYHZlN1EoQHtZcHRmZik0RHgoPjRHcUI+cz8pdXE0Sj4KemhZUDttNTl8fFc2Ji1pczNgOFNR
Ql9SbUN5OzkyaHZGeHk9ZHR+Tklyfng+e0d4a1lDZCVhNUIrKH5Ccj4zaSotCno5NF9lM15xX18o
M1pGPnVzdHtKa0wtVXxiRT1lZ1Y9fm9WRVZIVFBqVUc1VWp3dk0ka0V6Yzd+OVp9c21yaUZLUQp6
QXo5Sk8pcGozPWlIeWhtV28oVERCV1YwRENlfmFVcG8rMS1Yb2c4JXlMV0ZkbnRPaEo+Py10X1BS
MUlTTyZQZnwKejZTMyNSUX5pdWlKM3txSyVlWUtwYkxScXNgVVowTjxsNCRkWTM+P2VAe3lZYCRx
dXJIQz8mRDY0bWdGRnU8Jmh3Cno2TEN6dCNYNEpDRTJ9WmAzYDdnMklUY1lRWndFMTNvP155YEY9
bkVuQURqJSRHIzYpUCpqalJ7MDxJOUZ1USo0Qgp6Tnpxfjx6Qz42eWJucEYrWnVUdlJ2UX50MzlL
UXozaUhwZS1xRipRNGNEPDx+PzFIfCtKPDFASVkpV3Q0YElIY3UKekxzPjMjZUBUQ2FnU3lSIylD
aGJUWiRLJFRmP3NJUz9YX3wje2E1OTIkfXF2bVlkc2RhOEEyNFYmQlVPbmFaTWF9CnpoVWxmSHpj
YlY+bDZzMEJHZE10OVIhKlVnakl3NkgpSDJZRytjYDk7ckszaThMN1IrcWEySlJgQmwlKj1UKiZn
dgp6eEMtPDRiYWNJWnFfRH5yQlB7ITY+V0VnVmM9KF5hVmorbmdnKlNvKEJQMFl3ZDx0O14tQCtT
SEdidDNpPkwpfGIKeiptb0FnLWMxbyk/P3U+dFRgM3wqaWRxZUxEUj9ib0BQdVNxc0dkMnFBMWJp
dD9WVT8pbmd5NV4kdmY+e3ZPNHErCnp7aF87YEduTCYlOz80dTlycTYycFB3a3lDViliM1dRbVhC
blNuTzVjRFpeQTBJajRoUkhyX0gjZ2A0Q2NjRWtATgp6Mk09VCZPSF5ST1VmeD5scHJKNDgtT31a
bjNFVG5GdlRCSEc/aVhKSlVxJmA9P2s1PnJxfllpWT5mUEh1cXhWfEAKejQmSkU5JHtSSEZPRFZr
ejxnVnRtZTNfV0FzPGsmdWROWk4zYVF0dEc1eHhhbVgldStnOFMzaS16akpuK0piIystCnozfm5D
ITJYe1grU1J+KmpTV1F+KDRVZShLQ2lsJmxfTlcrfVMySjhvQHI/WSltTyEkKG0xYyNWYntrKTA+
UWN3YQp6Q3BSMzEqQ3UzVCpDRzUoKlJyZTFWYlp2Q05xLXM4KXJQa2p5aEZ2PD5tKXhxZUokaVJN
WjN1V0xhYE1pWW1LfVAKemMmYTR1RSNULUlCVFVGK0A1PU8lK28kcnZFPVMkUGFybUwxRmMyQX1W
bUo2VjhDTG80UyRMemk+RCZIcEtmMis0Cnp6cmtvQUJnaDQ9ZTU9SGpPY2FOa0R0Wnt2cnNeYzQ5
SDlvV0hoeFA1O2djY1pvNk5veE47YitNK0E0LTVwckN2OQp6KDchSjdne09HQyN5Rkx8Q25sTE5j
UVgyQ29kYTlLNGIrei1HYjdYQU1Dc3klKEloQHBpRWVQMUUpeGF5VDBpZ2IKekIzY0t3QTdKK1pC
KUFPR2VQP345d0lfU2xEQ2p7UEJAXip6UStlK0tUVVZXQWlyczAmdWc8JV9qZyMtWShUPl9LCnpA
cjxqM1JXNU5PUWNZMHk5eFpUT2pFRCV1Y0hDTikpU1R4MipmKHBjaTMrN1BvUUBsTGt0bGB0UWdR
dUBHVkp+QQp6VkhOJS1zQn5kPTxsantxNzslSnswRTVOdzdCeTdWcG1NcEdaRE8/Knlrc0c3QVh6
ZTxXZklRZHBtZEx7YmNIKyEKemN4SXl6OURwIV9fSiNwcVdtSCNBPG9kSD1NMn5NU0BWcGgmOUl4
bWolcSEhVkh0aHFaZjA2N0FmbUk/Y2AqTUA+CnpwSko1UGFWNSFsJGhHQCFZaXJ3RyQzT3t5VVIl
WnpUKklmQz1ZPHhySjBea3E0QXRIQmo+YGhjMCZNPTNSe1ZuJAp6SXBwVGI1P0MqP2Q4I0dqNSNG
dWkqRUxERF44S0J2MnA1I0xpRV9CZlQqTzlMJSMybH1JWU9peTd+ME5wMjMjN3IKeip7alkqSi1K
YzxsZlZReiQxWExGR0E8KkBvVDxhUDdDMmo1NEktJVNobXlDbG0zeXR9UXhhbyVwMGxibHtYPjg7
CnpmSjBRUlAxUVpjR3JORmVIMXJDezEyQlQ+PlU4fnRScDMpIXExX0NYQm5kYUhvcytSdG9hO0xU
OHVLUFB3NStYPQp6PXhpZ1hRSHFLNCRsO3E5VjV2OTtBVEFlK05IWiFXI1clKlRQVj5vMkNCSU1j
anFVTXo/cX1VU3NJUjdWO3JINCoKenFSdyptKTlRRHdXVSEhMyNIRVlIeTlYcnFkbmRufGdmQzJo
djRrbzBzUFg8X1o2Pm9xVThwcWtBdF91Q2AmT1JhCnplSStXOGJrbnZEM0w7YkAmY013YXRoeGwy
N0B+cHtJb2dnV3RuUEwhWkFyTVplYSNJODhgT0o/TW8oMHJ0dmtnewp6VXo4fW4kfFFkIUBVMkNT
NmJuYGs8OUtqe3tRJnBEUGItOVp5b1MwVFVBOX5Pd2ppQCREJF9TMyhrOUd1KXpZSHwKeil3SypI
e19BX19aQEVuNy0lZUhidFdzKHolKFl7PDdAaEh9ezkqUFE2aygtOGokTjFveXUhPWJFNXdpNVY7
VkZJCnpkK203I3pnZXA3Y21IJDswTkleRyE1ciY3QGNzJGNmZ31xVSV2fCVObV9+O0IxZ0sjaTFM
fUg9aFN5I2dzYFdxewp6enV3JDtPfj8yPXFaSj1KdUpDWCVTMTw9MWEzbDRMeW5URG87dzFxeD1q
KCpLMCtkJUNSNHhicz4hRVpmQVh2aTAKeiViKGJZPGl9M1VrYUAoMi1vSjhNMip5ZENQWXQhVjE3
MWxtVkdpbS03YG9qTjxJVFRKYi0/R2phS3Alcl9Qans5CnpWeSFAQ1E2PnpqNWNNYDZSQD1JWCVS
RiFJYj94ZVpSekZ8eWk1ZXBIRGU9eWtISSMyUFRQQzh2TmVKUWVwLXNaNQp6XnBoaGlLfHAkSXNK
M21mUkRuc0pSIVRtOFg7RUNMJXdHWTI3ZWtHYXcxQmtjUTB9VCtPJGgrfmh6e1lmXzJHNVAKeiU3
XikhaTtMN3FkVDVAfEBwWmZHdkprNHtKZyRwMFp+bE8/JF52ZmktZGJta0UtMHA8N3hxaj53LVZ+
NV4jfDYpCnolU34wSDlWdDIoaHIjQjdmcCF6bENDM2BtN2tTRUdYc1RqbXJjcyZDdVcqcTwpKDFI
PHgpeXV3ZTdsfW9mckBRVAp6UmpHMD9IYW4ydGU8biQ7WkBldVlldD8rLWlMXklgO0dAR1ZFcHBE
Zkd2Tm4mRGZDI1FYTDs0eXRrNUM+KEZfNXcKemtDaj8mPUM/KEoxZjQpcG14Wjc1I2FkeVo9Tkd+
eiFScmZgKjM3UW9hRUgkODJHX1hfNHJiRGBQaSQ8eGohOCtZCnpHXnNIUmdVQSpeUnhKYyVmK1Fh
a1ZlVzQwOWRXKnxRLSN3bUhvIWI8MFh4Pjcke3BAd1UmMFVzTF4+RkdfZipoNgp6Y3FNPEEyUStH
SzM2anIqeklrTGNHfnJ0NjJRV0ZRcTV0NncrTCVaOUNpell3KGg3QkhmUnxaT3B0fGJPSyokMXgK
ekQ0e29OKzhGN2glNmVaSXMrJjhhQkRwck8rX0g2WXxMUyQ2UWJSaHwmJGVkWkkrWSNpYkx9RTI/
JDBhO0kpM01fCnpvN1Z4I0hAVmZEc1VQe2ZhWjw8KFpxd3U1dzd1SndkclduOERlfVMxNkxAaHI0
ej9CZCNefUxMTG1fbCVyKys+JQp6M0ZaR0J3VjUtVU5yZit7QVp4dTwrVjJLMXh6c3xAPWMlelM5
QCp2WFhKMkIlKH4xcHlfPVleKW5MMFpHJXIjWisKenJSNUdgSE9RNFN1QG1xX1hXOXE4VEZkJE0h
KDw7JD1KezJKcktsQE9RYDtQXitCZCF0RGhjcEg9SHxUISFIajRPCnp6YU1VamgzU1dJYzc0U2lB
TWJSN3NOXncoQVBiNlZYM18xezFnbGt1X2hONGcxalBCbDNyP2kpOzg9ZDNtTGNBcwp6Wm0/NFJa
cXRxc1VZeSVOKWhGQD41JUR0Wm0kd1U5QmVxRThuZU1aQjFKUEJGP0MqRFhkP09rUUxvZm5LbFZx
M08KejxOQjxRIXZhYE9ISEZpKTdTJSh7QkNHTUZIZUo5QS1TN0NoYG5EfjEwKmZPTHolUDVHIShN
P3tENCpgVEJRZyV0Cnp2fXNWdmRgei07V0BVUWFsVGlQSF91S3NPKC09fFMybnFaZG9wdkdaRzk7
dnxHSkRwSUZHaHZDbjNKdTY8IzAzKwp6NWBnbCVOYEMrMi1sZ3JVajlFMHp5V3l7VmE2VWlQYDZL
ejY7Y3dMX0ArZHlTWU0wMDZzO3BZWk4rPUpTVjxONT0KeiFeO2JoWWRQak1vbzYyYG5wJDV6WUZ2
c1dTX2d+Vz10WEk3UTchYVdEaH1JVUo0XkVzY08rR2Q+fihpUzRSalhaCnp7NDNZeDBrRHMjeiF6
MSYjZU07bFJDYTZ4dUwpSDh4OStJQzdneFBhbmZvLXthRTxGIytga0BsKCVmKCgzITRRbwp6QnEw
P1pzZVc1cF5hdWFDRFl8dlcpRFRoa3Z4aFc1Xl8zNGMtPU5IQzNzZUQ+PzFSZkclRWxUM2M1KClR
OTsraCUKeiQzTlRNP04jM1ctMjA5OzNFWDg0TGt8M0RQVH40fHd2bnUtdWVZelBvb3duRmBlQzB1
d3JvNmNlS0RielptYm5KCnopPGxzS3JuXi18XykrWjYyZ1JNaDZ4dktQITF1PDJGSklhKk56fmZ7
Tl5ffUF4eFlFI0tgLVM5PEVzdmJKUXE/YQp6d2FhZChqLSYkKm0pTTNmT3M9JV9VVklAO3lwJFRm
bThEMFBtYX5STzBxKllsUUwoKiQzaEY9O2Y8U2BHZj1IU34Kem9HRUB+JC13KXQ5MDNVWmtkcGNH
Z0ZFeDg0V0dlKiVfSzN3Y3AqeFFPI2lOejZaT0JZZj5Fa3VUO1ZsQHllMWc1CnpMVW4lSHRYbj84
Xnw5XlpANjZRISNGXlk1KnRLYW43LSNJQSQ4YGNJRChsI2Q3ZWo0SmQ+TUVsd0tyJSFec1pDMAp6
Xms/I21fJXJXejFjSU9ASl9aTnNtRUNTdW02I0VAanhHe25ob31ZRFdZPjxRUUZtZWBJbTNjTlFo
Xm5yMThBaHwKenAwOzZIczRtbGIpVEZjaE8pXkhYU2FmZkFlXzROUXA8czVZJihVQm5DTShYUTJK
akdhc3NhKihxVVhxNE1QbCk1Cnp3LWdlTVImfXQtQihNe2tLaXNuajhOJSZVNVI5SnsrST9AM0lC
SEB5REAkcUU5NzM0NGQlNXgwU19GJHtyfFFeZAp6Y31tP0h7aWYkM3lfUWhAPSg2bHNqUnhQJFZa
KXtyZVM/VytmIzk7UT5UUm9KOHVWZXY0M0UlMnoyfnpTKCpXPE4KemZTRWVQblFeaFYjalRrdUVD
TXZkekJUXmRpSW96X0ImK2gxN1NRVjJzVENYO1h0SUUlSHhAeX5pWnAoKGtPPy0mCnp0azc/ZGli
eT1Ed1k4WXl7cU9ydE90YndxPWYlRHE4MCN4ZHoqRWJGM0lYP3NVZjdkYnM0WjQ3OCtiZ2ZTPilH
bQp6emR3a1Y0bE8yLW1JNWBTJWFNJkB4T2tHX2xEUytjSFQxWm14OHdrd3BJMzQ5PV42KlJtSkch
SExfVyZEeExfTlcKejRlWWdjM2ROUU9FNH56ViVYWCp9bH5PPihiYD13d3EhfUZmPyglY0l2MnY2
blZiSUtycWEyZWN2Nj1WQXI+bSZACnotbUxqRDBWPClVYzNGPD5DNkVAQWIhJFM3OEhvcEk4dlVu
fisjND42Ukk2TjA/USYyMl40VVZ8bH1EbiVzbkxnKAp6TkhWPTBYZ09ZZyRDbC0jK3JQeWJGQlVy
UD1kNGRfQ19+SiU4M2JHYzduISVzTlBhIXNadkNyXnVZeUgySlFTayoKeklealZDN0RmayhwdlF1
U1pFczU5cX57cFhVP0E+bGVvUz5xKnlEZz9IMlcjJSN7JU9zT3x7WmM0USYpSTJQNDMtCnpLcGY5
TD5NaDx1SW5FdilTdj82QXI1PzlLJXxxOW9uV2hHWDZ9eFB0TDQ1RmtacjY0el5le31YR0BLYzNG
UFIhZQp6Ui1OMjQ/eF5gPkY9JCh3VXs0e24mPEBsVFJyTEQjbUhxOXlnTC1VVDlRSVcqRmtGSGo8
YT07UTZCYWpsYFkyVDsKejcwTXBUNHNGazB2OUlgMTtWZWFEJE83ampoUGFOLWh4T0gpNmV6RiU5
eSEpKj0kUFRHYCo8QFlhbz8rRXkpey1XCnpjVWV5PyVTSFV1bWNyTjxaKkJ8O0VpMl44UV8hXy1e
dGllTUpfdEt0YVclRDc/QzcrOU01QUlYQnJ+O0oyNm5ORAp6NF5UK0NVYnZydz1TJG5AIzRFOHUp
KXZTU14mcEkkbD4oSzw+bG1EbF5TJDk7MCkwbz51NlRBaD11R3FKQ1REUUYKenpEZmYhdCZPUj4+
PGlmSjR7THlWekt4cFBVXmwwXj5FXmtBXkVAVnchX35KZj0rd14wcVNkfn5ZOWdiKDdYLSppCnpD
YXl9T2B4aGlyYDZtLXhoQWtWI0JwS3I7dnF9MVVXeUVzYF5GMmB3Zk5Adkc7XnhRX24laDlxVTM+
WnU3clg7Nwp6Mz9MKVdJUUBLfVg4MSRGYVFNWSZHZXJYTHEzPGhzSHlLZSlCaU1QS3AzYHA4PllF
KkZyXk9ubXs8PT09Xkc/QEwKendzQ1Bzc0FTNEFGKGElRCk+MWtsbUg0SF8pKzYxR3RxRmF9MG19
SHs1Nj9pcE1jcGxiemVYNmt1cndxIShYcl5kCnpVVjRXdVFsJGYjdCYhaVJSJDZ5NF80c21TP0FC
d1E2RjFYMjkxMTZYQHoqZlIkZzFpKlleM1VQXndDO0N4UWJfaQp6UzU9fElXKkpyNmhFKmpNJjRp
YG9ndWwjMGZEKThSVDQwTjlhN0MjRW82a355UiFPUkVgNXh8T3dHVWlRMVVwflgKeilKKD9FKzYo
YEMxWDxOSXZ7eGdYTUBfIUVLfWJvdk49JDFoZDZPbHRTX0tVK0dqJnFQSW52ISlgfT58MUhPVypE
Cnp7Yns/RnckbTR2X2xEZjQ9YTBabzk+PUY+aSRXd3ZEaHVBclo8PlorS19qKD0+N3M2PG1FOXQ+
dSZmRmpAT1M0NAp6aX5YIV9pYW5AdjstZjAkVyhJWjFCOFQzI1hGWjN8YStHSistdm8reVUkTmtS
KlU7SDhgPVpTMz9SRGVGXkAyTkUKeiVXbmZlTU9zcTdSWmVednEyKGEoJTM+Vk8oeSVfOTU1bDRS
Xj0oKSZabHY+N09LTSs5PVhlOVgzK0lQR3c4b0ZeCnotJWNJby13aHFePSgjdlhjRndFMnxDOz9B
MVh9OzF4MXU0TnRibHx7eHhfOEApfmlKX3dOOCQ3Sm99VV8lS31SaQp6NmAtZWF6ank9XlFsN2hl
SShtMXppKmBURyYkXkhXRH1RZ0k8Tj1XblQyKW1WTXd1QmhFbXFeTWM3SGs5VWw4QDEKekR4cEFH
a1YmaFh6ZkR8X1NMaT87ITVMdiFOaHFXKyM3Plc5cER+c2Z7TFl+Q0VLUWk9PCllbi1TO0RGaSFQ
cXQ5Cno2I0d9RkRzUkl8eVlgO3p3UV50fiU+bD40M1h4KDEjXylgcDRaMHB6TEpHI0E+Qmd9cyNL
U31SZU02Smt4OUM3PAp6QlFUMVNRcHhVZmg8NyZ7VU5namBse2dnOWwwPnEoezZzYm4lODdDQ2F1
I2pQI2gqI1V0KVh6OVcmWEpCIVZKYiUKekxJOCYwITQlTSNeNXQ9QmN6K0FealY9dDFuUndWTDBz
QU1YQGErQjF2Ul9mSlUhYGVlcDt3LVpVLUt4ODBlN28hCnp5bWY9TmtFKHYoJGIrOT55ZiNNYkVM
RzNuVT5CWkZ1KWtJdjFoTW9jYUg5cVZpNVMqMjx0JFVuOF8zRFJrNHlPKAp6LTVYS3grT0tOLSEw
M19hc0NtOXpnMTlhV1MkbDhCT2dNd0tzPX53VFE9fmxgNFJ4fkpZTDFRZGNHaVdzfDRiLSQKemlU
IzRzJCZDRHEqTm16Vlg7PXMyVH5QKklxPk8hbkpMUEg5X3llbyNWVFRabVghaTtsR2d+NFF2ZHM4
ZHVRUiNPCnozbjVtITFmNGN9SHt6d0dET354OGtPJD9vLXMkPmNEfUZAezRDQFJLeHpOY3lxNyUm
Tnt3X0klY1hhTkJwN358fAp6Jj5PbV50Rz4jRnErJT85TkF8QVRHfkZ7Pj5jIXdSQElxJilzd2xf
TkFNM0NOKGo0fj9gRiV7a1QrfXdUTCstZ14Kej9OST0mX1pSV1VBRn5gaC08Jlk0JE01cGYpdFNl
RTRNTT5XIzRkLT1vcFYzITdYJVN7KExvUGVjTVI+Y0xrfDd3CnpFcXd2eVZYNz98JSVqPlVZM1pr
OUlzcEYxZEhybyNrPEF8QkVTKzArJDRlQ3BxeCk0T2dZPDRea0srYGJNQDJrbgp6e3BDRml4MkNL
dUtIUFgkP15TQ1YrQEVKT2Q0NVBMXiVOdXJOXld2OWQmZz0maUx2aXM9TGtGZ1ZOZEtFWD95I2EK
eikhc2dXcTVoPmpRPGApPWFxfXI2I3d7SXM2YWg8fVBzV1oxIX05NyVaV1k+QlBBMWVoTj9qcjg5
elozc08xRGAmCno0Tmd4ZHR3NT9TKWhJYmk8NzEteUlQZmBGNURRKHBXcT54aVBtQ2NvYUotej9u
azhlPyVuVUlrLXZAR01FRm5zZwp6UWhgWGtXISleQk53KEZpR2cjJUdeb3VxcUM9QCtsbzArJUsj
RUE4QVAxO3IjbEQtTyY5VigwKU0kUT5hXmh+JU8KelFENk98KXNaS3YrfVJjdHgxWXtqcmQtRDhT
R0BUNUJYeSZxbTt2VSp6fnJLa1MwQ3FaUzhoZzZaNFpFQ1piUmpBCnpSNXZUc2hsMCN1dGhPcygk
eSVlMzsrMTY+QGZQfVJ4RWF7SEJfNn0rVis5JGs7MXstK3l7PDJjTkhZb2BSYFdEbAp6TUNSMiRK
Zzk4bDkzVyl8Ynt8dzQ7PWVfaUghPG9ONi0xV2hgWVBDaks0THNyT3BOOTV0Z05qcEd4QUB0SH16
TUoKelJpe1o0PFNffUJDNW0jeXBzZjItZ1lIdy05dXlYK05oNCNTOURLaXFESHozMCNESns8Xz1r
enkpUHdvPlViTk5BCnpSLTc4e0JHRnlLSl5RczQrKGczcXBGd3x3I1hoRUVmQEY1KWU4LT5JbiZj
PUpGKD5iVCM1KEdScG5SM311ZTQkcQp6aSMmMjduMEx7Y1ZeN35Iel5GOEF7UyojUyZiMjxHcCgj
dTR2fH51QSFyQWBfNmtTYmUxRWozTyk9UkdXNUZAc1IKekNtdHBGWH4zTmt7Ujh5R294RU5XdE5V
PGlCfGpwayp7IVAtYTZWcD9GUCgxKUhoTDdZe14zcVohZUs+MmpeP1pCCnowaGJRSG5sVHxxPH18
bWxmTTVldlMlUmwodUExVlY+SntwbHUyZzJBPkh3YyklPE9fQDZ+WTVNQHRsRHBNWWpmUwp6VH1K
eTtER2hTMiV0d2dEO14kVjUlemYjOG07T1crRjEwM0lrVkh2eWs9YD1ZNT9YRXRUS2RKQ0d8KUtV
LVUha2wKej0qSntxcml8fX1nNk9rXjhoO2d1Vm14Ykgjd3xHb1M2WXorSn15elB4O3pxQ1g0aU5T
YENfTFQzcW8kcmpePGZOCnokXk0mYlZsaVYlcUMrejMzPT0hTVlQYDZae1BAamFfPVF1UndafTM2
MUFlMSRDeTYzdmx5TDdJNzBmcEdpZXVIKwp6ZnpaU1BUVnMtX01eNXFzSi1YJVdVVSY3SmEqRlU+
dE5tLW1ZbWFycHVrbWZrMlRTSjArNHtkc3tRc2NBSVhvcEoKejVANmtkcmk9cGR1MF53YD94cVNN
LTV5PzdkP2ZZYEUtRVZQWnthdHFjOzlzM2xLVTx5I1pQbnlwKV5ZMzVvSTBECnopRWROXjM+JiEw
diZCNWxIUjl2K0ghQ09pYjhNcTw7ZDNZa1kjTGROUXtpJG8tRTNfYTk1TCZvOHlOJmFReCEtRAp6
fE43TCRgR3dYbEt2U0N1WnBiLVhndE9lKWpaNCRMaG1IWUtpd3cjfHpsJntVb3xLWDE9elpEQGpr
O2RQX1UwNjQKekorSjkmNX4+fGU4UVkrNFJkVFhBampGTlRFK29FUkFoNEVlY2Y/fW4kQEAxZUdC
KUl0N0NpRERgKXt7U1c3aTAyCnpaZSotal87dmF2Qm1zMiZ3XnFxPnp+SCNKM0NMfUJEJHd1Nj5N
Jip+a2JRQUl7IyRyfjs7Mn0jPkc8aChJQ3B3KAp6KUopeGdeVHZJOW1lRklYPjxRWSU5fH4kO1k0
c24wJExsSVdvJSpiN3MzdSYzS25UeHc0eFVuNCFofUV4K3B5T2gKejJ9ZTs7diZsbDEpeX5gMVo3
VXRlJndSSXckKnY1RnM8O2kjLVJiVER2bD11ck5kfmc9IUJQSiEmamp7YiEpUVVFCnprWTdPdzJQ
TnBlMGZwLXhKSEZzWW5ZTjclbnRGZFVBKUZudUZTflFFRUZnZW5wNF9JJHloIXJoSVB8VTBjQXl7
YQp6aV95YSM5MDdiOF92YGlWJGoqSjE5T3hKfXFmWW5AZmV0YXhwVHxNSCgjTC1HZW1wQGpZcCgx
OGVLT01UOGItPygKek9YOzFxX0J9SnpLNipBSndLKEdYYGA9a2pyd0hVR3Ffd3BQMzluUU1LbDVO
ODJhaEpndj1DdXwhTF42VWpAVCNUCnpVbUBORl5zZD8jSj5OI0NacnFDKXtqdigmajYqbEc3amww
YW5LUTJEYlVoRVpNNnlHZHFQWnxoaFU9cD14S2w7Swp6OD9sNERJKW95PDhTNCE5UkRqM0FpPSFv
eEZWclM1VnszaHVHRHU+K3RYenV8dWdhV3JILT55UnlOYnJ0M3F+I14KeiRnRUdQN3FBcDFXfVZC
fihzc2A+YEdmXkAmMSpvKmdlMWd+Plg5M24+YWxibGorZSNhSWVyLW5Ca3d6P1UpI2d1CnpNUzNL
OUhXODdiQDZtYW11MUpXdTA7ZGpzcVZOeHZucCNLUk15Tm5Ocj93O2ZifC1EeUxvYkpGO1J+SDEr
VihxQwp6azJFSz1tMnNvSiNMflZvRXIqTnN0Ql4kVnlUdm95cUpkdkQya0xrUHopbHI5ZihXK3Jh
UitXUykkMDNFS0ZQMWsKejtGTzR7RWY0Q1YhVUlXLTFUOVF4YHpMNzskYURkbGBnWm8oWkNnd1cj
ZT1wSXlhfXxJaHh1M3lQY3FBWkhwN15VCnpPYF4hYWM3LUhHRD0oQ1ZGSTFlcjc2TmB7SER0Yzl7
fXJsNGkqXyZ7TjYhITA9UmZaT3E3YHpuMGFMPXY7TlhPZgp6UjgkYypxOGl4VDRaUG5ASG9xbj5r
a0kyNnJDKG1YYy04YzFmJkF6TjlKT2orRmQ+dTF2RGFhfGUrMjl0dzIqMiQKemFvOGVzSSN7QWQw
e2FiV1B+dFQzQlA/Y3s5bWhgMFB+fXxHdH5fTk5fOHEtTm5sZkhBbz1fcX5rckY/cntaNms1Cnok
czdPeTxDeDtZPUgxdDZ5dUkkbmh0fUloOG1seXlydTViY1dZVXF+SSpCanRzUVd+UXBrPDlgI0lE
IzhnRDBoNQp6SGgwaStxQyFYWVB1Wkd3XjhqRHw1PDNVd2Ajb3xrRFVvUT54ZTcheTRSX3A0SyYt
QDBvX0ljKTQwcHEqY3dhLUEKekp8fEAqYSlpKyR3bzZwS2ZLdGQpO2UkUlU4bmQwM15ROEkhSkNR
NXVOKWhacSErbUo7ZUFkNWYldENyY3VqPWAhCno7WHs/ZWRadHtyZ01MdUJvZCN+MXlgTiFrd2t7
WVVfYT0jY0YzYCFBMD5iZy05KDFndDg7YzsoTWlOZDA9KFcpUAp6I29XN3NyJmUmdTJKKSg9czY8
MmhYMm1TTWhhUU1oYjZ0VFFJYXZNXyZaI0BQQmRLR1h6O1pOXnZVcDlDPEhOQTgKeiRwZnY9RWM7
S1lpaUp1cHozcmJyJkt5X2wtenwmfWpafDI0JGkhdEpaWEo+JDU7R1JTeVkpOXdybiM8dHlQbUNV
CnpATCYqPTk0ajg8e2tJK2tpa2ArJHQ0TnpLX2tYVFNGbmZ+bEhOKDZ6JGYjRWZ3UlFrUytedHw9
RUx5cHR4VSNHdAp6N1JRYEtZfGZ0cnhpMVc8b1FzN18mUU4hS2BkQWt8cFNlTSpuQC16fSRnUmhl
Z1N3cjxIajlgPnRGNUZ5Ql96OSYKekdINSk5QGFoUCRRRTV2SkZoMGRNdTVzbUk0dVA5QnRVVFZ8
IVFZOXZ5WXpTYDd0bzAjQyo9SmNyb2lnb3ZLK1JuCnpCZ0c1X0lzVWF9JUZaRTZIWE45MXFWNiVT
YCZ4a25hVm1tLUFZJih0alpDaU5kIUBkI1F9MEdoM1NSM1BobWczIQp6alU3KXR0YyEtZCpgRmBX
QXh0cGdKUWpSVCM/WjlAZkNSb290ZWpXYTs1NHtqSmgqd0lgMkg0aVNibFRhamhyMigKelpESGNO
SnsrbHt4QmRsR0dPdVhPaHQtSD45P2R5LTYtMnlCQUdeaVZFPSRNYFBibV4+c1h2NEF7Xm5AISQ3
bDsyCnorbSYxcVh9YWRuPUlTTiVUVj5pdjw3Xj81SzNhN2pTMW0tYmRtays/bzRhKE45TkpeP2x+
VnxKaWtCNDRTSkN6OAp6YG5aZ3xXMDtrVHtfREpraHxpM0JYe3BeMHUtR0BxQyMqTFZPRzxzVVVB
NXwkez13UzJXI0c0Y09TJGo2dUlMPl8Kek1xdzdjUHlGNXhwKEFqKj0mKXM2biRASDMoaUhWMEYm
PU83MEpGSDdIT1Y8enNBMj1VREl2RTM2e3kmU3BYI2V4CnpCb1UtYVI0QlFjaT0qbCNkbWBPRj18
NDFTU05EKitmaE5WO0clOWhRMVN1cVBwe3M4KUk9fEI9ZyhGYTtOdG5UOAp6Xmp2cT8lNF47eys2
NyVmSCQ2KC07V0N7TD9OemM/bUJ6QVpLYVZWSlB7Sj5lN1NBOE1Rdkc7bCZqJSYqSF5edCgKenZr
SSNVKks5ZEl5Z0wyIzFYM1lhZGoyJithRn1ySm9LVShmSiFfd0omWVllK3M1WUVNOFQrVWwoNHFL
P1pnZXAoCnpAdXNyLU1oTS1kSFUmZjhaTTV3IXBIWV97cm96IzJ8ODR4PSVBSE0kb3NSalBEcDV1
bnlFVUdxMTI4WG1EX1peSAp6ZUQocVhKPmAre0lEYWliZ1dxTEVGRys2SSExMmhjLVYxR0EjQXRj
bVp3PFFLSWxOS28qT24oemV9KDQhLSpjTCMKemUoVyFZUFBhfktBfjkjMztYfUVDWEZaU2shfngt
UUk7TyRERGI+U0Y9TlN2Jj57d3habUlNMWNRUUQtOU5hMlJjCnpIV31KSnF2UGIkOTRkYil7aU5i
WHp3OWJWbUNSPjN3cTYtTXJeNHgpTGx3QDNncXw3MTlEKFpIQnwwKCpPNFFhagp6a1lnb3VpRCVz
aCliVHpkelFrM1dhPzkqYGxXPEcmNT1WSTFfdVl9U1A4RTtaJWlsbjMld34rVlczSDAxcVBQa3gK
enU9N3QtP195dFNUS0p5ejFwRjJfPSMyRHFvPSE5fl9QaSppXmg8Y0g2XjJJPTJjJEpmMzZfMWJD
YzZtNl5+akxECnokdEt3THxLUilXY0NhbSh6N2FITz5EX2wtMi1GYyVCcyt2IyR5dTNwQj53UU55
cUw4KE9VSkhwM0hpWGp2fFQ3ewp6XmJKO3FSNCgqNzZGOGhUS25hKWhIekoteHk2ZCZtR2ZFfWQq
RzRLaVg8O3plcWdwa2h0JStDPSp3Z2I2SVBoRFMKent+R1IhJj1ufElyUTEpQ2N5SDA/Sm1ebWko
MmNpJC0qOHd0RTltNDg7VytpfnY1Znx6Tj5SOUpVMWBeNihKbj1nCnpRSStZLUxGdmE5LWZXQnIr
V2g3Mzs1X2ZzRkFmM35NYXY8bmRVMC1NTj9ZMTR3Z3VGa21QI014dG1nWHxkTTQ2Tgp6YjYhTmRv
RmpDV218LW18KlQyV0QrOT02OFlOWThUTCQzNGBfKDkpRkZnITRLQGc3UyFPdVRfQ29jZSNtPnJh
TH0Kel5Xcyo5JVhNNG5SMlJGT3lgYElBJilWXjROYiE0eiUmQURCUUArKktAeEBnXmlBSF9oZjEm
dE8yN3FWTSh7JCpyCno3XlVpOE5yclF1SSR+UT5BSVh9SWhkWWYyOyRyKjVRTFl3VXlCUkQlMXVf
a0xheGVgMjQ1PmV5OEN+VjNUank7Tgp6ZDsrKm9RRSVoTWZGJFFraGp0cHVnK2g3NFVjT0V3KjBX
ST01Q0NQPCRpfmMhP0pwV2xjcSk2VDcjJUNsRlk0Q1cKelYpOXM9UGpSME53MzgobiVAYTY4MD0x
ZnZjYHZ8ZG1zeTxNYExVRCFvYio5NzR2aFd6VVVVUSNUTVhfODN8N0RVCnpeYzAxZV4pIWh7V2RL
fktiI2kocEIhOyYtJE9sPGBNdHE+a20pJnk0TDg7NVQyKk94MkNXfiZvd2hRI3xWWTwzSQp6eklP
UGQ1QEBEd3dQdnxEeGpZaVp3MllnXzg/WWgmRDlWKThJZGpAQ3IzTUxpSnlUfGlSSndnfWluN05B
QX5QZGgKeip8T3RvbDw+dHtafChlb1hRXm9fbD05b2wodXtDPkVCM14peE1TWFhVM1luMmwyc1Mp
SjNmOSFYJFRYdWska1gmCnplWVl1PFI0S30rMTIzMW84THVIdnxLbXc9YCQtJSluYU9LeXd7eWdP
bXlVYVl8SlchOEx5cU5HWGgmRnExNGZqMgp6Y2oofjxPdG17ITZMVj4md0JCRVEweCtWcF84Zm5B
UVhCbiM/R29seDxkbGUpX1NebWtMc15ZTXhwRD5mWiR9KmkKemIkYGwoaTF3VSZiOGdhYVh6RWI7
XiFBS2h2TnRsdDlkclk5Rz07UXJLOHFZbE5MUDs8LTd+NjE/dCZTeXBwdCZBCnoqJWZ9NiEtMDJ+
cFZockl4WUpVc0BwJGo1dV9LJTg8WVFqcW9oTE1XMl84LSZleTZfRGY5fnJ9P01WTHw0fHBgKgp6
SFlKMzZiOXBQcFdQR0VRWmdFcFhYVkRBK2huIzgmKSZyVlJGaCpwP3t6Oz89cmx6cSEjQWRNdDJa
bn1kRDI+e1EKekQ8X3B6LUMtPnw+NEVgU0MkYFpIK289az52XnsrTXRObWlRRmJCSm49bTEwVmFE
WnRnbzxiKmohZSFPaEMrTW08CnopUDg+QWtpVHBedzMmS314eGUzdTkoTFclRF9FI1Q5WXM1R013
OFZkWip5KFNENzgte0ZGe3ZxUCMzUHs2PEkzPAp6bmMoNSpkO0FhO24yTGNtTmokcXMmfGIkJmpq
XmJiPThPTXhufiVKUVRtPFZzd3cjI2hSbCp+TmErJis/NWR9VXMKek8lPG9Wam9iJmc7TSRnfDRG
VE5UQV55Ny1GRUBecUp1VmhMZ3YlanBpRWsyJD05YkwmZ2tkQyRzfkdha2p0ej5kCno8S184Izx5
bEZaRm0yajs/Yzw1dkpoUy0/NDAwJkheMVAmT29FXn5uWmVyM2otamhoNDx7V2shcmpCcXdvWkVq
Rgp6NHM2QDw/K0M7eyZkSlhEakt4Rks5YzBDSHVUZkJvWj0haE85cUk8e0ZyMTIxTz0mP1YxNk10
dG5uOC1YOGZBJEMKelJuaUshVlYyIVh4KXVZKFQ1KmtYK1N3PCpWNyRjNmdnU294SXsjaXc3OFpO
a25Ia342MG1nKTNXSHYmVkhxcSshCnpyYCRoMXJ5PCY1STMpQ0NWcG5PPUVLKDYmK19uKytOZTZp
Q0pUXiNydHAhOUhjX18ofkQkSEVhTjcyNE1Qcm9DPwp6O15YWXIqYzdTeD9VP0gjWi18ZlE9KWN1
dXBoMkxVdD1IISlqRHtiNyRhWFBvYTFtWDB1ZUd0STJPX0hTQ1NzZXMKelNyZHxPVFkrUWc7bFdj
a1VGNGExLVl5ciZsRz1ucmZndnd2emtmenkpajQrbVJhYyF6VV98PnRJTypSTz5VR2YkCnpYQG9h
NzxDdHA+YU1XJiZ5Jnc1MWpAcFp8OWxUS1lhVzRBIzVkM15eSFJIQnM7VjwmQHphWmlONWBYX0l7
KHRvRQp6elhpRkYmK0RoSGJrRGN2cWc9QEt8OFJzdDUlKnZKMlBrWXRTU1NEYkAmN1oxTGpNYUo0
dzhMLT54MHRNY1ZiUUYKVWtVe3RsRCt3aHB0cz9iRCF1MDM9MGpoQEFyVF9vewoKbGl0ZXJhbCAw
CkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC90ZXN0cy9xcXVpY2t3ZWJ2aWV3L3RzdF9xcXVpY2t3ZWJ2aWV3LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcXF1aWNrd2Vidmlldy90c3RfcXF1aWNrd2Vidmll
dy5jcHAKaW5kZXggMmVmOWQxYy4uYTkyNDIxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xcXVpY2t3ZWJ2aWV3L3RzdF9xcXVpY2t3ZWJ2aWV3LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FxdWlja3dlYnZp
ZXcvdHN0X3FxdWlja3dlYnZpZXcuY3BwCkBAIC01MCw2ICs1MCw3IEBAIHByaXZhdGUgc2xvdHM6
CiAKICAgICB2b2lkIHNob3coKTsKICAgICB2b2lkIHNob3dXZWJWaWV3KCk7CisgICAgdm9pZCBy
ZW1vdmVGcm9tQ2FudmFzKCk7CiAKIHByaXZhdGU6CiAgICAgaW5saW5lIFFRdWlja1dlYlZpZXcq
IHdlYlZpZXcoKSBjb25zdDsKQEAgLTI0NCw3ICsyNDUsNyBAQCB2b2lkIHRzdF9RUXVpY2tXZWJW
aWV3OjpzaG93V2ViVmlldygpCiB7CiAgICAgd2ViVmlldygpLT5zZXRTaXplKFFTaXplRigzMDAs
IDQwMCkpOwogCi0gICAgd2ViVmlldygpLT5sb2FkKFFVcmw6OmZyb21Mb2NhbEZpbGUoUUxhdGlu
MVN0cmluZyhURVNUU19TT1VSQ0VfRElSICIvaHRtbC9zY3JvbGwuaHRtbCIpKSk7CisgICAgd2Vi
VmlldygpLT5sb2FkKFFVcmw6OmZyb21Mb2NhbEZpbGUoUUxhdGluMVN0cmluZyhURVNUU19TT1VS
Q0VfRElSICIvaHRtbC9kaXJlY3QtaW1hZ2UtY29tcG9zaXRpbmcuaHRtbCIpKSk7CiAgICAgUVZF
UklGWSh3YWl0Rm9yU2lnbmFsKHdlYlZpZXcoKSwgU0lHTkFMKGxvYWRTdWNjZWVkZWQoKSkpKTsK
IAogICAgIG1fd2luZG93LT5zaG93KCk7CkBAIC0yNTUsNiArMjU2LDIwIEBAIHZvaWQgdHN0X1FR
dWlja1dlYlZpZXc6OnNob3dXZWJWaWV3KCkKICAgICBRVGVzdDo6cVdhaXQoMjAwKTsKIH0KIAor
dm9pZCB0c3RfUVF1aWNrV2ViVmlldzo6cmVtb3ZlRnJvbUNhbnZhcygpCit7CisgICAgc2hvd1dl
YlZpZXcoKTsKKworICAgIC8vIFRoaXMgc2hvdWxkIG5vdCBjcmFzaC4KKyAgICBRUXVpY2tJdGVt
KiBwYXJlbnQgPSB3ZWJWaWV3KCktPnBhcmVudEl0ZW0oKTsKKyAgICBRUXVpY2tJdGVtIG5vQ2Fu
dmFzSXRlbTsKKyAgICB3ZWJWaWV3KCktPnNldFBhcmVudEl0ZW0oJm5vQ2FudmFzSXRlbSk7Cisg
ICAgUVRlc3Q6OnFXYWl0KDIwMCk7CisgICAgd2ViVmlldygpLT5zZXRQYXJlbnRJdGVtKHBhcmVu
dCk7CisgICAgd2ViVmlldygpLT5zZXRWaXNpYmxlKHRydWUpOworICAgIFFUZXN0OjpxV2FpdCgy
MDApOworfQorCiB2b2lkIHRzdF9RUXVpY2tXZWJWaWV3OjpzY3JvbGxSZXF1ZXN0KCkKIHsKICAg
ICB3ZWJWaWV3KCktPnNldFNpemUoUVNpemVGKDMwMCwgNDAwKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaAppbmRleCA5ZDcyNDEyLi41YWQwM2E3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmgKQEAgLTg2LDYgKzg2
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50UmVjdCBjb250ZW50c1JlY3Qo
KSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNCYWNraW5nU3RvcmVSZWFkeSgpIGNvbnN0IHsg
cmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRUb0N1cnJlbnRHTENvbnRleHQo
Y29uc3QgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgmLCBmbG9hdCBvcGFjaXR5KSB7IH0K
KyAgICBMYXllclRyZWVIb3N0UHJveHkqIGxheWVyVHJlZUhvc3RQcm94eSgpIGNvbnN0IHsgcmV0
dXJuIG1fbGF5ZXJUcmVlSG9zdFByb3h5LmdldCgpOyB9CiAKICNpZiBVU0UoVElMRURfQkFDS0lO
R19TVE9SRSkKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmlzaWJsZUNvbnRlbnRzUmVjdEFuZFNjYWxl
KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHZpc2libGVDb250ZW50c1JlY3QsIGZsb2F0IHNjYWxl
KSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXllclRyZWVIb3N0
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXllclRyZWVIb3N0UHJveHkuaApp
bmRleCA5Y2UwZGQ5Li5iYWVlZjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvTGF5ZXJUcmVlSG9zdFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xh
eWVyVHJlZUhvc3RQcm94eS5oCkBAIC01NSw2ICs1NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
dFJvb3RDb21wb3NpdGluZ0xheWVyKFdlYkxheWVySUQpOwogICAgIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyKik7CiAgICAgdm9pZCBwYWludFRvQ3VycmVudEdMQ29udGV4dChjb25z
dCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGZsb2F0KTsKKyAgICB2b2lkIHB1cmdlR0xDb250ZXh0
RGF0YSgpOwogICAgIHZvaWQgc2V0VmlzaWJsZUNvbnRlbnRzUmVjdEFuZFNjYWxlKGNvbnN0IElu
dFJlY3QmLCBmbG9hdCk7CiAgICAgdm9pZCBzZXRWaXNpYmxlQ29udGVudFJlY3RUcmFqZWN0b3J5
VmVjdG9yKGNvbnN0IEZsb2F0UG9pbnQmKTsKICNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9MYXllclRyZWVIb3N0UHJv
eHlRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvTGF5ZXJUcmVlSG9zdFByb3h5
UXQuY3BwCmluZGV4IDkyZmQ1ODEuLjgyODhhNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9xdC9MYXllclRyZWVIb3N0UHJveHlRdC5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL3F0L0xheWVyVHJlZUhvc3RQcm94eVF0LmNwcApAQCAtNjE4LDUgKzYxOCwx
NyBAQCB2b2lkIExheWVyVHJlZUhvc3RQcm94eTo6c2V0VmlzaWJsZUNvbnRlbnRzUmVjdEFuZFNj
YWxlKGNvbnN0IEludFJlY3QmIHJlY3QsIGZsbwogICAgIG1fZHJhd2luZ0FyZWFQcm94eS0+cGFn
ZSgpLT5wcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6OkxheWVyVHJlZUhvc3Q6OlNldFZpc2libGVD
b250ZW50UmVjdEFuZFNjYWxlKHJlY3QsIHNjYWxlKSwgbV9kcmF3aW5nQXJlYVByb3h5LT5wYWdl
KCktPnBhZ2VJRCgpKTsKIH0KIAordm9pZCBMYXllclRyZWVIb3N0UHJveHk6OnB1cmdlR0xDb250
ZXh0RGF0YSgpCit7CisgICAgVGV4dHVyZU1hcHBlck5vZGUqIG5vZGUgPSB0b1RleHR1cmVNYXBw
ZXJOb2RlKHJvb3RMYXllcigpKTsKKworICAgIG5vZGUtPmNsZWFuTm9kZVRleHR1cmVzUmVjdXJz
aXZlKCk7CisgICAgbV9kaXJlY3RseUNvbXBvc2l0ZWRJbWFnZXMuY2xlYXIoKTsKKworICAgIG1f
dGV4dHVyZU1hcHBlci5jbGVhcigpOworCisgICAgbV9kcmF3aW5nQXJlYVByb3h5LT5wYWdlKCkt
PnByb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6TGF5ZXJUcmVlSG9zdDo6UHVyZ2VUaWxlZEJhY2tp
bmdTdG9yZXMoKSwgbV9kcmF3aW5nQXJlYVByb3h5LT5wYWdlKCktPnBhZ2VJRCgpKTsKK30KKwog
fQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQ
YWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVByb3h5
LmNwcAppbmRleCAzZDFkMmI4Li5jNjY5Y2IyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvcXQvUXRXZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9xdC9RdFdlYlBhZ2VQcm94eS5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKIAogI2luY2x1ZGUg
IkRvd25sb2FkUHJveHkuaCIKICNpbmNsdWRlICJEcmF3aW5nQXJlYVByb3h5SW1wbC5oIgorI2lu
Y2x1ZGUgIkxheWVyVHJlZUhvc3RQcm94eS5oIgogI2luY2x1ZGUgInF3a2hpc3RvcnkuaCIKICNp
bmNsdWRlICJxd2toaXN0b3J5X3AuaCIKICNpbmNsdWRlICJRdERvd25sb2FkTWFuYWdlci5oIgpA
QCAtNDI2LDYgKzQyNywxMyBAQCB2b2lkIFF0V2ViUGFnZVByb3h5OjpyZW5kZXJUb0N1cnJlbnRH
TENvbnRleHQoY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZgogICAgICAgICBkcmF3
aW5nQXJlYS0+cGFpbnRUb0N1cnJlbnRHTENvbnRleHQodHJhbnNmb3JtLCBvcGFjaXR5KTsKIH0K
IAordm9pZCBRdFdlYlBhZ2VQcm94eTo6cHVyZ2VHTENvbnRleHREYXRhKCkKK3sKKyAgICBEcmF3
aW5nQXJlYVByb3h5KiBkcmF3aW5nQXJlYSA9IG1fd2ViUGFnZVByb3h5LT5kcmF3aW5nQXJlYSgp
OworICAgIGlmIChkcmF3aW5nQXJlYSAmJiBkcmF3aW5nQXJlYS0+bGF5ZXJUcmVlSG9zdFByb3h5
KCkpCisgICAgICAgIGRyYXdpbmdBcmVhLT5sYXllclRyZWVIb3N0UHJveHkoKS0+cHVyZ2VHTENv
bnRleHREYXRhKCk7Cit9CisKIHZvaWQgUXRXZWJQYWdlUHJveHk6OnNldFZpc2libGVDb250ZW50
UmVjdEFuZFNjYWxlKGNvbnN0IFFSZWN0RiYgdmlzaWJsZUNvbnRlbnRSZWN0LCBmbG9hdCBzY2Fs
ZSkKIHsKICAgICBpZiAoIW1fd2ViUGFnZVByb3h5LT5kcmF3aW5nQXJlYSgpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlUHJveHkuaAppbmRleCAxZTQ1ODAzLi4yYzVl
MThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlUHJveHkuaApA
QCAtMTM3LDYgKzEzNyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFZpc2libGVDb250ZW50UmVj
dEFuZFNjYWxlKGNvbnN0IFFSZWN0RiYsIGZsb2F0KTsKICAgICB2b2lkIHNldFZpc2libGVDb250
ZW50UmVjdFRyYWplY3RvcnlWZWN0b3IoY29uc3QgUVBvaW50RiYpOwogICAgIHZvaWQgcmVuZGVy
VG9DdXJyZW50R0xDb250ZXh0KGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4Jiwg
ZmxvYXQpOworICAgIHZvaWQgcHVyZ2VHTENvbnRleHREYXRhKCk7CiAKICAgICBRV0tIaXN0b3J5
KiBoaXN0b3J5KCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViR3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdyYXBoaWNzTGF5ZXIuY3BwCmluZGV4IDU4YmQx
MmMuLmYyNGMxZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViR3JhcGhpY3NMYXllci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHcmFwaGljc0xheWVyLmNwcApAQCAtMzY4LDYgKzM2OCw3
IEBAIHZvaWQgV2ViR3JhcGhpY3NMYXllcjo6c2V0TmVlZHNEaXNwbGF5KCkKIAogdm9pZCBXZWJH
cmFwaGljc0xheWVyOjpzZXROZWVkc0Rpc3BsYXlJblJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0
KQogeworICAgIHJlY3JlYXRlVGlsZWRCYWNraW5nU3RvcmVJZk5lZWRlZCgpOwogICAgIG1fbWFp
bkJhY2tpbmdTdG9yZS0+aW52YWxpZGF0ZShJbnRSZWN0KHJlY3QpKTsKICAgICBub3RpZnlDaGFu
Z2UoKTsKIH0KQEAgLTU3NCw2ICs1NzUsMzggQEAgdm9pZCBXZWJHcmFwaGljc0xheWVyOjp1cGRh
dGVDb250ZW50QnVmZmVycygpCiAgICAgbV9pblVwZGF0ZU1vZGUgPSBmYWxzZTsKIH0KIAordm9p
ZCBXZWJHcmFwaGljc0xheWVyOjpkcm9wVGlsZWRCYWNraW5nU3RvcmUoKQoreworICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgY2hpbGRyZW4oKS5zaXplKCk7ICsraSkgeworICAgICAgICBXZWJH
cmFwaGljc0xheWVyKiBsYXllciA9IHRvV2ViR3JhcGhpY3NMYXllcih0aGlzLT5jaGlsZHJlbigp
W2ldKTsKKyAgICAgICAgbGF5ZXItPmRyb3BUaWxlZEJhY2tpbmdTdG9yZSgpOworICAgIH0KKwor
ICAgIGlmIChtX21haW5CYWNraW5nU3RvcmUpCisgICAgICAgIG1fbWFpbkJhY2tpbmdTdG9yZS5j
bGVhcigpOworCisgICAgaWYgKG1fbGF5ZXJJbmZvLmltYWdlQmFja2luZ1N0b3JlSUQpIHsKKyAg
ICAgICAgbGF5ZXJUcmVlVGlsZUNsaWVudCgpLT5yZWxlYXNlSW1hZ2VCYWNraW5nU3RvcmUobV9s
YXllckluZm8uaW1hZ2VCYWNraW5nU3RvcmVJRCk7CisgICAgICAgIG1fbGF5ZXJJbmZvLmltYWdl
QmFja2luZ1N0b3JlSUQgPSAwOworICAgIH0KK30KKwordm9pZCBXZWJHcmFwaGljc0xheWVyOjpy
ZWNyZWF0ZVRpbGVkQmFja2luZ1N0b3JlSWZOZWVkZWQoKQoreworCisgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBjaGlsZHJlbigpLnNpemUoKTsgKytpKSB7CisgICAgICAgIFdlYkdyYXBoaWNz
TGF5ZXIqIGxheWVyID0gdG9XZWJHcmFwaGljc0xheWVyKHRoaXMtPmNoaWxkcmVuKClbaV0pOwor
ICAgICAgICBsYXllci0+cmVjcmVhdGVUaWxlZEJhY2tpbmdTdG9yZUlmTmVlZGVkKCk7CisgICAg
fQorCisgICAgaWYgKCFtX21haW5CYWNraW5nU3RvcmUpIHsKKyAgICAgICAgbV9tYWluQmFja2lu
Z1N0b3JlID0gYWRvcHRQdHIobmV3IFRpbGVkQmFja2luZ1N0b3JlKHRoaXMsIFRpbGVkQmFja2lu
Z1N0b3JlUmVtb3RlVGlsZUJhY2tlbmQ6OmNyZWF0ZSh0aGlzKSkpOworICAgICAgICBtX21haW5C
YWNraW5nU3RvcmUtPnNldENvbnRlbnRzU2NhbGUobV9jb250ZW50c1NjYWxlKTsKKyAgICB9CisK
KyAgICBpZiAobV9pbWFnZSkKKyAgICAgICAgc2V0Q29udGVudHNOZWVkc0Rpc3BsYXkoKTsKK30K
ICNlbmRpZgogCiBzdGF0aWMgUGFzc093blB0cjxHcmFwaGljc0xheWVyPiBjcmVhdGVXZWJHcmFw
aGljc0xheWVyKEdyYXBoaWNzTGF5ZXJDbGllbnQqIGNsaWVudCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR3JhcGhpY3NMYXllci5oIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHcmFwaGljc0xheWVy
LmgKaW5kZXggYWMwNTU4ZS4uYTZiNzc1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHcmFwaGljc0xheWVyLmgKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHcmFwaGljc0xheWVyLmgKQEAgLTEz
MSw2ICsxMzEsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVUaWxlQnVmZmVyc1JlY3Vyc2l2
ZWx5KCk7CiAgICAgdm9pZCBzZXRDb250ZW50c1NjYWxlKGZsb2F0KTsKICAgICB2b2lkIHVwZGF0
ZUNvbnRlbnRCdWZmZXJzKCk7CisgICAgdm9pZCBkcm9wVGlsZWRCYWNraW5nU3RvcmUoKTsKKyAg
ICB2b2lkIHJlY3JlYXRlVGlsZWRCYWNraW5nU3RvcmVJZk5lZWRlZCgpOwogI2VuZGlmCiAKIHBy
aXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5
ZXJUcmVlSG9zdC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJl
ZUhvc3QuaAppbmRleCA5ODYwYTdhLi45NDFlYWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlSG9zdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0LmgKQEAgLTg0LDYgKzg0LDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRWaXNpYmxlQ29udGVudFJlY3RUcmFqZWN0b3J5VmVj
dG9yKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0
VmlzaWJsZUNvbnRlbnRSZWN0Rm9yTGF5ZXIoaW50IGxheWVySUQsIGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgcmVuZGVyTmV4dEZyYW1lKCkgeyB9CisgICAg
dmlydHVhbCB2b2lkIHB1cmdlVGlsZWRCYWNraW5nU3RvcmVzKCkgeyB9CiAgICAgdmlydHVhbCB2
b2lkIGRpZFJlY2VpdmVMYXllclRyZWVIb3N0TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKICNlbmRpZgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVl
SG9zdC5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXll
clRyZWVIb3N0Lm1lc3NhZ2VzLmluCmluZGV4IDZiOTEzOWMuLmRkYmU0YmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0Lm1lc3NhZ2Vz
LmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0
Lm1lc3NhZ2VzLmluCkBAIC0yNCw1ICsyNCw2IEBAIG1lc3NhZ2VzIC0+IExheWVyVHJlZUhvc3Qg
ewogICAgIFNldFZpc2libGVDb250ZW50UmVjdFRyYWplY3RvcnlWZWN0b3IoV2ViQ29yZTo6Rmxv
YXRQb2ludCB0cmFqZWN0b3J5VmVjdG9yeSkKICAgICBTZXRWaXNpYmxlQ29udGVudFJlY3RBbmRT
Y2FsZShXZWJDb3JlOjpJbnRSZWN0IGNvbnRlbnRSZWN0LCBmbG9hdCBzY2FsZSkKICAgICBSZW5k
ZXJOZXh0RnJhbWUoKQorICAgIFB1cmdlVGlsZWRCYWNraW5nU3RvcmVzKCkKIH0KICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L0xheWVyVHJl
ZUhvc3RRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvcXQvTGF5ZXJU
cmVlSG9zdFF0LmNwcAppbmRleCA1MTk5MDA4Li4yZTdmYmUyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvcXQvTGF5ZXJUcmVlSG9zdFF0LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvcXQvTGF5ZXJUcmVlSG9zdFF0LmNwcApA
QCAtNjYsNiArNjYsNyBAQCBMYXllclRyZWVIb3N0UXQ6OkxheWVyVHJlZUhvc3RRdChXZWJQYWdl
KiB3ZWJQYWdlKQogICAgICwgbV9zaG91bGRTeW5jUm9vdExheWVyKHRydWUpCiAgICAgLCBtX2xh
eWVyRmx1c2hUaW1lcih0aGlzLCAmTGF5ZXJUcmVlSG9zdFF0OjpsYXllckZsdXNoVGltZXJGaXJl
ZCkKICAgICAsIG1fbGF5ZXJGbHVzaFNjaGVkdWxpbmdFbmFibGVkKHRydWUpCisgICAgLCBtX3No
b3VsZFJlY3JlYXRlVGlsZUJ1ZmZlcnMoZmFsc2UpCiB7CiAgICAgLy8gQ3JlYXRlIGEgcm9vdCBs
YXllci4KICAgICBtX3Jvb3RMYXllciA9IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZSh0aGlzKTsKQEAg
LTIxMCw2ICsyMTEsOCBAQCB2b2lkIExheWVyVHJlZUhvc3RRdDo6c2V0UGFnZU92ZXJsYXlOZWVk
c0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdCkKIAogYm9vbCBMYXllclRyZWVI
b3N0UXQ6OmZsdXNoUGVuZGluZ0xheWVyQ2hhbmdlcygpCiB7CisgICAgcmVjcmVhdGVUaWxlZEJ1
ZmZlcnNJZk5lZWRlZCgpOworCiAgICAgYm9vbCBkaWRTeW5jID0gbV93ZWJQYWdlLT5jb3JlUGFn
ZSgpLT5tYWluRnJhbWUoKS0+dmlldygpLT5zeW5jQ29tcG9zaXRpbmdTdGF0ZUluY2x1ZGluZ1N1
YmZyYW1lcygpOwogICAgIG1fbm9uQ29tcG9zaXRlZENvbnRlbnRMYXllci0+c3luY0NvbXBvc2l0
aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCk7CiAgICAgaWYgKG1fcGFnZU92ZXJsYXlMYXllcikK
QEAgLTQyMyw2ICs0MjYsMjMgQEAgYm9vbCBMYXllclRyZWVIb3N0UXQ6OmxheWVyVHJlZVRpbGVV
cGRhdGVzQWxsb3dlZCgpIGNvbnN0CiAgICAgcmV0dXJuICFtX2lzU3VzcGVuZGVkICYmICFtX3dh
aXRpbmdGb3JVSVByb2Nlc3M7CiB9CiAKK3ZvaWQgTGF5ZXJUcmVlSG9zdFF0OjpwdXJnZVRpbGVk
QmFja2luZ1N0b3JlcygpCit7CisgICAgbV9zaG91bGRSZWNyZWF0ZVRpbGVCdWZmZXJzID0gdHJ1
ZTsKKyAgICBXZWJHcmFwaGljc0xheWVyKiB3ZWJSb290TGF5ZXIgPSB0b1dlYkdyYXBoaWNzTGF5
ZXIobV9yb290TGF5ZXIuZ2V0KCkpOworICAgIHdlYlJvb3RMYXllci0+ZHJvcFRpbGVkQmFja2lu
Z1N0b3JlKCk7CisKKyAgICBBU1NFUlQoIW1fZGlyZWN0bHlDb21wb3NpdGVkSW1hZ2VSZWZDb3Vu
dHMuc2l6ZSgpKTsKK30KKwordm9pZCBMYXllclRyZWVIb3N0UXQ6OnJlY3JlYXRlVGlsZWRCdWZm
ZXJzSWZOZWVkZWQoKQoreworICAgIGlmIChtX3Nob3VsZFJlY3JlYXRlVGlsZUJ1ZmZlcnMpIHsK
KyAgICAgICAgbV9zaG91bGRSZWNyZWF0ZVRpbGVCdWZmZXJzID0gZmFsc2U7CisgICAgICAgIFdl
YkdyYXBoaWNzTGF5ZXIqIHdlYlJvb3RMYXllciA9IHRvV2ViR3JhcGhpY3NMYXllcihtX3Jvb3RM
YXllci5nZXQoKSk7CisgICAgICAgIHdlYlJvb3RMYXllci0+cmVjcmVhdGVUaWxlZEJhY2tpbmdT
dG9yZUlmTmVlZGVkKCk7CisgICAgfQorfQogI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L0xheWVy
VHJlZUhvc3RRdC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L0xheWVy
VHJlZUhvc3RRdC5oCmluZGV4IDMxMDExYzYuLjYyNWQ4ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9xdC9MYXllclRyZWVIb3N0UXQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvcXQvTGF5ZXJUcmVlSG9zdFF0LmgKQEAgLTcx
LDYgKzcxLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVUaWxlKFdlYkxheWVy
SUQsIGludCB0aWxlSUQpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRWaXNpYmxlQ29udGVudFJlY3RG
b3JMYXllcihpbnQgbGF5ZXJJRCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwogICAgIHZpcnR1
YWwgdm9pZCByZW5kZXJOZXh0RnJhbWUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgcHVyZ2VUaWxlZEJh
Y2tpbmdTdG9yZXMoKTsKICAgICB2aXJ0dWFsIGJvb2wgbGF5ZXJUcmVlVGlsZVVwZGF0ZXNBbGxv
d2VkKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNldFZpc2libGVDb250ZW50UmVjdEFuZFNj
YWxlKGNvbnN0IEludFJlY3QmLCBmbG9hdCBzY2FsZSk7CiAgICAgdmlydHVhbCB2b2lkIHNldFZp
c2libGVDb250ZW50UmVjdFRyYWplY3RvcnlWZWN0b3IoY29uc3QgRmxvYXRQb2ludCYpOwpAQCAt
OTYsNiArOTcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgY2FuY2VsUGVuZGluZ0xheWVyRmx1c2go
KTsKICAgICB2b2lkIHBlcmZvcm1TY2hlZHVsZWRMYXllckZsdXNoKCk7CiAgICAgdm9pZCBzZW5k
TGF5ZXJzVG9VSSgpOworICAgIHZvaWQgcmVjcmVhdGVUaWxlZEJ1ZmZlcnNJZk5lZWRlZCgpOwog
CiAgICAgT3duUHRyPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI+IG1fcm9vdExheWVyOwogCkBAIC0x
MTksNiArMTIxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGxheWVyRmx1c2hUaW1lckZpcmVkKFdl
YkNvcmU6OlRpbWVyPExheWVyVHJlZUhvc3RRdD4qKTsKICAgICBXZWJDb3JlOjpUaW1lcjxMYXll
clRyZWVIb3N0UXQ+IG1fbGF5ZXJGbHVzaFRpbWVyOwogICAgIGJvb2wgbV9sYXllckZsdXNoU2No
ZWR1bGluZ0VuYWJsZWQ7CisgICAgYm9vbCBtX3Nob3VsZFJlY3JlYXRlVGlsZUJ1ZmZlcnM7CiB9
OwogCiB9Cg==
</data>
<flag name="review"
          id="118268"
          type_id="1"
          status="-"
          setter="noam"
    />
    <flag name="commit-queue"
          id="118269"
          type_id="3"
          status="-"
          setter="noam"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118522</attachid>
            <date>2011-12-08 20:51:17 -0800</date>
            <delta_ts>2011-12-08 21:19:53 -0800</delta_ts>
            <desc>Names and style fixed.</desc>
            <filename>texture_purge_on_paintnode_dealloc_04.diff</filename>
            <type>text/plain</type>
            <size>30865</size>
            <attacher name="Viatcheslav Ostapenko">ostap73</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlck5vZGUuY3BwCmluZGV4IDRkMjE0ZGYuLjUxYmIwYTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
Tm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJOb2RlLmNwcApAQCAtNjIwLDYgKzYyMCwxNCBAQCB2b2lkIFRleHR1cmVNYXBw
ZXJOb2RlOjpyZW1vdmVDb250ZW50c1RpbGUoaW50IGlkKQogICAgIG1fZXh0ZXJuYWxseU1hbmFn
ZWRUaWxlcy5yZW1vdmUoaWQpOwogfQogCit2b2lkIFRleHR1cmVNYXBwZXJOb2RlOjpwdXJnZU5v
ZGVUZXh0dXJlc1JlY3Vyc2l2ZSgpCit7CisgICAgbV9leHRlcm5hbGx5TWFuYWdlZFRpbGVzLmNs
ZWFyKCk7CisKKyAgICBmb3IgKGludCBpID0gbV9jaGlsZHJlbi5zaXplKCkgLSAxOyBpID49IDA7
IC0taSkKKyAgICAgICAgbV9jaGlsZHJlbltpXS0+cHVyZ2VOb2RlVGV4dHVyZXNSZWN1cnNpdmUo
KTsKK30KKwogdm9pZCBUZXh0dXJlTWFwcGVyTm9kZTo6c2V0VGlsZUJhY2tCdWZmZXJUZXh0dXJl
Rm9yRGlyZWN0bHlDb21wb3NpdGVkSW1hZ2UoaW50IGlkLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VS
ZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldFJlY3QsIEJpdG1hcFRleHR1cmUqIHRleHR1cmUp
CiB7CiAgICAgSGFzaE1hcDxpbnQsIEV4dGVybmFsbHlNYW5hZ2VkVGlsZT46Oml0ZXJhdG9yIGl0
ID0gbV9leHRlcm5hbGx5TWFuYWdlZFRpbGVzLmZpbmQoaWQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUu
aAppbmRleCBlYjljNjkyZS4uZmM0NzliYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmgKQEAgLTE1
OCw2ICsxNTgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRUaWxlQmFja0J1ZmZlclRleHR1cmVG
b3JEaXJlY3RseUNvbXBvc2l0ZWRJbWFnZShpbnQgaWQsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJl
Y3QsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0UmVjdCwgQml0bWFwVGV4dHVyZSopOwogICAgIHZv
aWQgY2xlYXJBbGxEaXJlY3RseUNvbXBvc2l0ZWRJbWFnZVRpbGVzKCk7CiAgICAgYm9vbCBjb2xs
ZWN0VmlzaWJsZUNvbnRlbnRzUmVjdHMoTm9kZVJlY3RNYXAmLCBjb25zdCBGbG9hdFJlY3QmKTsK
KyAgICB2b2lkIHB1cmdlTm9kZVRleHR1cmVzUmVjdXJzaXZlKCk7CiAjZW5kaWYKICAgICB2b2lk
IHNldElEKGludCBpZCkgeyBtX2lkID0gaWQ7IH0KICAgICBpbnQgaWQoKSBjb25zdCB7IHJldHVy
biBtX2lkOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Fx
dWlja3dlYnBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3
ZWJwYWdlLmNwcAppbmRleCA1Y2I2YzYyLi42OTQyZGVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2VicGFnZS5jcHAKQEAgLTMxMyw2ICszMTMsNyBA
QCBRU0dOb2RlKiBRUXVpY2tXZWJQYWdlOjp1cGRhdGVQYWludE5vZGUoUVNHTm9kZSogb2xkTm9k
ZSwgVXBkYXRlUGFpbnROb2RlRGF0YSopCiB2b2lkIFFRdWlja1dlYlBhZ2VQcml2YXRlOjpyZXNl
dFBhaW50Tm9kZSgpCiB7CiAgICAgbV9wYWludE5vZGUgPSAwOworICAgIHBhZ2VQcm94eS0+cHVy
Z2VHTFJlc291Y2VzKCk7CiB9CiAKIFFRdWlja1dlYlBhZ2VQcml2YXRlOjp+UVF1aWNrV2ViUGFn
ZVByaXZhdGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9x
cXVpY2t3ZWJ2aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNr
d2Vidmlldy5jcHAKaW5kZXggYjE0Nzg4MS4uYzU5MzZjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwCkBAIC03MCw2ICs3MCw5IEBA
IFFRdWlja1dlYlZpZXdQcml2YXRlOjpRUXVpY2tXZWJWaWV3UHJpdmF0ZShRUXVpY2tXZWJWaWV3
KiB2aWV3cG9ydCwgV0tDb250ZXh0UmVmCiAKICAgICAvLyBDcmVhdGVzIGEgcGFnZSB3aXRoIHRo
ZSBwYWdlIGNyZWF0aW9uIHBhcmFtZXRlcnMuCiAgICAgcGFnZVByb3h5LT5pbml0KGV2ZW50SGFu
ZGxlci5kYXRhKCkpOworCisgICAgLy8gVHJpZ2dlciBzZXR0aW5nIG9mIGNvcnJlY3QgdmlzaWJp
bGl0eSBmbGFncyBhZnRlciBldmVyeXRoaW5nIHdhcyBhbGxvY2F0ZWQgYW5kIGluaXRpYWxpemVk
LgorICAgIF9xX29uVmlzaWJsZUNoYW5nZWQoKTsKIH0KIAogdm9pZCBRUXVpY2tXZWJWaWV3UHJp
dmF0ZTo6ZW5hYmxlTW91c2VFdmVudHMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC90ZXN0cy9odG1sL2RpcmVjdC1pbWFnZS1jb21wb3NpdGluZy5odG1sIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9odG1sL2RpcmVjdC1pbWFnZS1j
b21wb3NpdGluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJmZDkx
NDEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rl
c3RzL2h0bWwvZGlyZWN0LWltYWdlLWNvbXBvc2l0aW5nLmh0bWwKQEAgLTAsMCArMSw2NiBAQAor
PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFs
Ly9FTiIKKyAgICJodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9sb29zZS5kdGQiPgorCis8aHRt
bCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBj
b250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgorICA8dGl0bGU+VGVzdGluZyBkaXJl
Y3QgaW1hZ2UgbGF5ZXIgb3B0aW1pc2F0aW9uPC90aXRsZT4KKyAgPHN0eWxlIHR5cGU9InRleHQv
Y3NzIiBtZWRpYT0ic2NyZWVuIj4KKyAgICBpbWcgeworICAgICAgZmxvYXQ6IGxlZnQ7CisgICAg
ICB3aWR0aDogMTUwcHg7CisgICAgICBoZWlnaHQ6IDE1MHB4OworICAgIH0KKyAgICBpbWcgewor
ICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDApOworICAgIH0KKyAg
ICAudGVzdCB7CisgICAgICBmbG9hdDogbGVmdDsKKyAgICAgIGhlaWdodDogMjAwcHg7CisgICAg
ICB3aWR0aDogMjYwcHg7CisgICAgfQorICAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorCisg
IDxoMT5JbWFnZSBvcHRpbWlzYXRpb24gaW4gbGF5ZXJzPC9oMT4KKworICA8cD4KKyAgICBUaGlz
IHRlc3QgZXhlcmNpc2VzIGRpcmVjdCBjb21wb3NpdGluZyBvZiBpbWFnZXMgd2l0aCBoYXJkd2Fy
ZSBhY2NlbGVyYXRpb24uIFRoZSB2aXN1YWwgcmVzdWx0cworICAgIHVzaW5nIEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HIGFuZCByZWd1bGFyIFRPVCBzaG91bGQgYmUgaWRlbnRpY2FsLiBSdW5uaW5n
IHRoaXMgdGVzdCBtYW51YWxseSB3aXRoCisgICAgdGhlIGNvcnJlY3QgZGVidWcgb3B0aW9ucyB3
aWxsIHNob3cgd2hpY2ggZWxlbWVudHMgYXJlIGRpcmVjdGx5IGNvbXBvc2l0ZWQuIFNlZQorICAg
IDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM2MSI+
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzYxPC9hPgorICA8L3A+
CisKKyAgPGRpdiBjbGFzcz0idGVzdCI+CisgICAgPGltZyBzcmM9InJlc291cmNlcy9zaW1wbGVf
aW1hZ2UucG5nIj4KKyAgICBCYXNpYyBpbWFnZSAtIG5vIHN0eWxlIC0gY2FuIGJlIGRpcmVjdGx5
IGNvbXBvc2l0ZWQKKyAgPC9kaXY+CisKKyAgPGRpdiBjbGFzcz0idGVzdCI+CisgICAgPGltZyBz
cmM9InJlc291cmNlcy9zaW1wbGVfaW1hZ2UucG5nIiBzdHlsZT0iYm9yZGVyOiA1cHggc29saWQg
Ymx1ZTsiPgorICAgIDVweCBibHVlIGJvcmRlciAtIGNhbiBOT1QgYmUgZGlyZWN0bHkgY29tcG9z
aXRlZAorICA8L2Rpdj4KKworICA8ZGl2IGNsYXNzPSJ0ZXN0Ij4KKyAgICA8aW1nIHNyYz0icmVz
b3VyY2VzL3NpbXBsZV9pbWFnZS5wbmciIHN0eWxlPSJtYXJnaW46IDVweCA1cHg7Ij4KKyAgICBt
YXJnaW4gLSBjYW4gTk9UIGJlIGRpcmVjdGx5IGNvbXBvc2l0ZWQKKyAgPC9kaXY+CisKKyAgPGRp
diBjbGFzcz0idGVzdCI+CisgICAgPGltZyBzcmM9InJlc291cmNlcy9zaW1wbGVfaW1hZ2UucG5n
IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogZ3JleTsiPgorICAgIHNvbGlkIGJhY2tncm91bmQg
LSBjYW4gYmUgZGlyZWN0bHkgY29tcG9zaXRlZAorICA8L2Rpdj4KKworICA8ZGl2IGNsYXNzPSJ0
ZXN0Ij4KKyAgICA8aW1nIHNyYz0icmVzb3VyY2VzL3NpbXBsZV9pbWFnZS5wbmciIHN0eWxlPSJi
YWNrZ3JvdW5kOiBvcmFuZ2UgdXJsKHJlc291cmNlcy9zaW1wbGVfaW1hZ2UucG5nKSAtNTBweCAt
NTBweDsiPgorICAgIGJhY2tncm91bmQgaW1hZ2UgLSBjYW4gTk9UIGJlIGRpcmVjdGx5IGNvbXBv
c2l0ZWQKKyAgPC9kaXY+CisKKyAgPGRpdiBjbGFzcz0idGVzdCI+CisgICAgPGltZyBzcmM9InJl
c291cmNlcy9zaW1wbGVfaW1hZ2UucG5nIiBzdHlsZT0iLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0
ZTNkKDAsIDAsIDEsIDEwZGVnKTsiPgorICAgIHJvdGF0ZWQgYnV0IG90aGVyd2lzZSBubyBzdHls
ZSAtIGNhbiBiZSBkaXJlY3RseSBjb21wb3NpdGVkCisgIDwvZGl2PgorCis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL2h0
bWwvcmVzb3VyY2VzL3NpbXBsZV9pbWFnZS5wbmcgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3Rlc3RzL2h0bWwvcmVzb3VyY2VzL3NpbXBsZV9pbWFnZS5wbmcKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NDY4NTM5OWNhY2MxN2Y5OWJjNDQ1ZDM4MjdmN2RiYzU0ZTU0NjljOApHSVQgYmluYXJ5IHBhdGNo
CmxpdGVyYWwgMTA1ODUKemNtWWtDV2wkVnwmYU5yJD9pOG1gK30rKSF4VnlXdkkyMENMKyo7aDc7
X2ZiczZwQX02PyhUQld4IT5HeD92RXR6CnpPZnQjOE9lWFYwdEV0R01Bcm03Kkt8IUkoJVNveUtD
I0xfYDVhSXZoZ30lNyR7d0VONU82eilSeExBQW9uN0xhKQp6aUNlbXVUVCNlNm5ifXlXVGJXdDx4
e1heMkt8eV9nbTZzQ04xZ3hHSm9xTEArSXVFSitwXmhzSyNaN3gjRXU5bDEKem1NNmA/RnBxeHZf
MnBQdTEtdGp+aW1CYi1XRyRJVmtxUXdOejdPaWNkRkp9LT1OMUNscGtNckdUYHEqWmBWZkc2Cnpg
aSVTazYjc3R7aGZsRityPWxQR0NTK2okYz1Da2NrSF9IQWg0WiFCUylveXZ1TCkrdHFaWWF8Kk15
NTZaKC15bgp6cDlYKEYxM1coeU0/ZCtKe0RsQGhnYko/eVo7JF5yfDZsUm5EZ1NUV1E+MVdEKEN6
cj1nWCpVPnpAc14oPzZZVFQKemNGUkJuN1Y8SDNgU1NSZ2xvMCQkNUxKN1NTMD5zYzh9UXp2ZGxL
fD1fO1VOJnAwSVdPcStIdTtFWlkwMikpZnhYCnoqfk5PeC1DZGlaVVFlaE1ka2M3cjNCSV8yYyNB
cWUlcnJoNykmYE16dFVKZntKVStpNCgpV0hJVWMqbUNCUyFgVgp6PGJCU2N3I0xxSWk7Tyo5Kk0y
Xj9gViVjS1dOYGBueU8tPVRgPG9AWnBgQXpRTzR4czNoeD1WfUVnS1hVI310UFEKenNZKXNjJTdw
KnwlUlQxbE5fejZyPz4+SV4kTyMhJnt0Rn1AbCgpRUwxM2UxJVVxM3hNZm1aPSlAY1ViPlZXPHFL
Cnp3SmZvMzc9Z3xAS3BxflJ1fHMwa3lMZDhgSEBufSZAa1ZkaUlAPyQ3PVEpXlU2fmY5eW5nUH4l
dVNZR0FrR0dBVwp6XyFNenBsZko5bFhKfih8WXhUWCFiP195ckZ8d0Q1WiFRfkchdElHJHtrJW1f
QDFHZitgTyVneEgxTSo9QE1UNWwKeksyUWpSclpPVE87aks4QiV4TX0zS1YlZ3FxI3UjLUxPN0Be
UStfKjAhRT5XVnZaYSVrN2x+eUtzSmMhdFJeTjJOCnpyRDgtKU4lNytLY0RlUWRiXnhrbW0pKXJe
X2kxSkpIVj5jS0BNRUZnZEFeSUhxQjxHbyQ/bVlOSzY8YnE/USNtVgp6PHJxS0ZYUmdvSHR2Y2BK
QFAkJjR5SXtZXmtgTjchNnI0ayVnQFF6Jm1Kan1wMktEU0I8e2NsO2BQYns8U1dyPGIKelRLcUpw
X2hvZjYpMDlGMlgmRSFCZHxZYkBGRXNRN2c2a2dIWCpFLSFmZVBEeiQ9N1pzI2hIajE+NVMjLT5Z
T2RtCno4bkVueihzNlVOWlcreDIlM0JRLW5hdmZSPFkqZ2BMK1JgdmU3UShAe1lwdGZmKTREeCg+
NEdxQj5zPyl1cTRKPgp6aFlQO201OXx8VzYmLWlzM2A4U1FCX1JtQ3k7OTJodkZ4eT1kdH5OSXJ+
eD57R3hrWUNkJWE1QisofkJyPjNpKi0Kejk0X2UzXnFfXygzWkY+dXN0e0prTC1VfGJFPWVnVj1+
b1ZFVkhUUGpVRzVVand2TSRrRXpjN345Wn1zbXJpRktRCnpBejlKTylwajM9aUh5aG1XbyhUREJX
VjBEQ2V+YVVwbysxLVhvZzgleUxXRmRudE9oSj4/LXRfUFIxSVNPJlBmfAp6NlMzI1JRfml1aUoz
e3FLJWVZS3BiTFJxc2BVWjBOPGw0JGRZMz4/ZUB7eVlgJHF1ckhDPyZENjRtZ0ZGdTwmaHcKejZM
Q3p0I1g0SkNFMn1aYDNgN2cySVRjWVFad0UxM28/XnlgRj1uRW5BRGolJEcjNilQKmpqUnswPEk5
RnVRKjRCCnpOenF+PHpDPjZ5Ym5wRitadVR2UnZRfnQzOUtRejNpSHBlLXFGKlE0Y0Q8PH4/MUh8
K0o8MUBJWSlXdDRgSUhjdQp6THM+MyNlQFRDYWdTeVIjKUNoYlRaJEskVGY/c0lTP1hffCN7YTU5
MiR9cXZtWWRzZGE4QTI0ViZCVU9uYVpNYX0KemhVbGZIemNiVj5sNnMwQkdkTXQ5UiEqVWdqSXc2
SClIMllHK2NgOTtySzNpOEw3UitxYTJKUmBCbCUqPVQqJmd2Cnp4Qy08NGJhY0lacV9EfnJCUHsh
Nj5XRWdWYz0oXmFWaituZ2cqU28oQlAwWXdkPHQ7Xi1AK1NIR2J0M2k+TCl8Ygp6Km1vQWctYzFv
KT8/dT50VGAzfCppZHFlTERSP2JvQFB1U3FzR2QycUExYml0P1ZVPyluZ3k1XiR2Zj57dk80cSsK
entoXztgR25MJiU7PzR1OXJxNjJwUHdreUNWKWIzV1FtWEJuU25PNWNEWl5BMElqNGhSSHJfSCNn
YDRDY2NFa0BOCnoyTT1UJk9IXlJPVWZ4Pmxwcko0OC1PfVpuM0VUbkZ2VEJIRz9pWEpKVXEmYD0/
azU+cnF+WWlZPmZQSHVxeFZ8QAp6NCZKRTkke1JIRk9EVmt6PGdWdG1lM19XQXM8ayZ1ZE5aTjNh
UXR0RzV4eGFtWCV1K2c4UzNpLXpqSm4rSmIjKy0KejN+bkMhMlh7WCtTUn4qalNXUX4oNFVlKEtD
aWwmbF9OVyt9UzJKOG9Acj9ZKW1PISQobTFjI1Zie2spMD5RY3dhCnpDcFIzMSpDdTNUKkNHNSgq
UnJlMVZiWnZDTnEtczgpclBranloRnY8Pm0peHFlSiRpUk1aM3VXTGFgTWlZbUt9UAp6YyZhNHVF
I1QtSUJUVUYrQDU9TyUrbyRydkU9UyRQYXJtTDFGYzJBfVZtSjZWOENMbzRTJEx6aT5EJkhwS2Yy
KzQKenpya29BQmdoND1lNT1Iak9jYU5rRHRae3Zyc15jNDlIOW9XSGh4UDU7Z2NjWm82Tm94Tjti
K00rQTQtNXByQ3Y5CnooNyFKN2d7T0dDI3lGTHxDbmxMTmNRWDJDb2RhOUs0Yit6LUdiN1hBTUNz
eSUoSWhAcGlFZVAxRSl4YXlUMGlnYgp6QjNjS3dBN0orWkIpQU9HZVA/fjl3SV9TbERDantQQkBe
KnpRK2UrS1RVVldBaXJzMCZ1ZzwlX2pnIy1ZKFQ+X0sKekByPGozUlc1Tk9RY1kweTl4WlRPakVE
JXVjSENOKSlTVHgyKmYocGNpMys3UG9RQGxMa3RsYHRRZ1F1QEdWSn5BCnpWSE4lLXNCfmQ9PGxq
e3E3OyVKezBFNU53N0J5N1ZwbU1wR1pETz8qeWtzRzdBWHplPFdmSVFkcG1kTHtiY0grIQp6Y3hJ
eXo5RHAhX19KI3BxV21II0E8b2RIPU0yfk1TQFZwaCY5SXhtaiVxISFWSHRocVpmMDY3QWZtST9j
YCpNQD4KenBKSjVQYVY1IWwkaEdAIVlpcndHJDNPe3lVUiVaelQqSWZDPVk8eHJKMF5rcTRBdEhC
aj5gaGMwJk09M1J7Vm4kCnpJcHBUYjU/Qyo/ZDgjR2o1I0Z1aSpFTEREXjhLQnYycDUjTGlFX0Jm
VCpPOUwlIzJsfUlZT2l5N34wTnAyMyM3cgp6KntqWSpKLUpjPGxmVlF6JDFYTEZHQTwqQG9UPGFQ
N0MyajU0SS0lU2hteUNsbTN5dH1ReGFvJXAwbGJse1g+ODsKemZKMFFSUDFRWmNHck5GZUgxckN7
MTJCVD4+VTh+dFJwMykhcTFfQ1hCbmRhSG9zK1J0b2E7TFQ4dUtQUHc1K1g9Cno9eGlnWFFIcUs0
JGw7cTlWNXY5O0FUQWUrTkhaIVcjVyUqVFBWPm8yQ0JJTWNqcVVNej9xfVVTc0lSN1Y7ckg0Kgp6
cVJ3Km0pOVFEd1dVISEzI0hFWUh5OVhycWRuZG58Z2ZDMmh2NGtvMHNQWDxfWjY+b3FVOHBxa0F0
X3VDYCZPUmEKemVJK1c4YmtudkQzTDtiQCZjTXdhdGh4bDI3QH5we0lvZ2dXdG5QTCFaQXJNWmVh
I0k4OGBPSj9NbygwcnR2a2d7CnpVejh9biR8UWQhQFUyQ1M2Ym5gazw5S2p7e1EmcERQYi05Wnlv
UzBUVUE5fk93amlAJEQkX1MzKGs5R3UpellIfAp6KXdLKkh7X0FfX1pARW43LSVlSGJ0V3MoeiUo
WXs8N0BoSH17OSpQUTZrKC04aiROMW95dSE9YkU1d2k1VjtWRkkKemQrbTcjemdlcDdjbUgkOzBO
SV5HITVyJjdAY3MkY2ZnfXFVJXZ8JU5tX347QjFnSyNpMUx9SD1oU3kjZ3NgV3F7Cnp6dXckO09+
PzI9cVpKPUp1SkNYJVMxPD0xYTNsNEx5blREbzt3MXF4PWooKkswK2QlQ1I0eGJzPiFFWmZBWHZp
MAp6JWIoYlk8aX0zVWthQCgyLW9KOE0yKnlkQ1BZdCFWMTcxbG1WR2ltLTdgb2pOPElUVEpiLT9H
amFLcCVyX1BqezkKelZ5IUBDUTY+emo1Y01gNlJAPUlYJVJGIUliP3hlWlJ6Rnx5aTVlcEhEZT15
a0hJIzJQVFBDOHZOZUpRZXAtc1o1CnpecGhoaUt8cCRJc0ozbWZSRG5zSlIhVG04WDtFQ0wld0dZ
Mjdla0dhdzFCa2NRMH1UK08kaCt+aHp7WWZfMkc1UAp6JTdeKSFpO0w3cWRUNUB8QHBaZkd2Sms0
e0pnJHAwWn5sTz8kXnZmaS1kYm1rRS0wcDw3eHFqPnctVn41XiN8NikKeiVTfjBIOVZ0MihociNC
N2ZwIXpsQ0MzYG03a1NFR1hzVGptcmNzJkN1VypxPCkoMUg8eCl5dXdlN2x9b2ZyQFFUCnpSakcw
P0hhbjJ0ZTxuJDtaQGV1WWV0PystaUxeSWA7R0BHVkVwcERmR3ZObiZEZkMjUVhMOzR5dGs1Qz4o
Rl81dwp6a0NqPyY9Qz8oSjFmNClwbXhaNzUjYWR5Wj1OR356IVJyZmAqMzdRb2FFSCQ4MkdfWF80
cmJEYFBpJDx4aiE4K1kKekdec0hSZ1VBKl5SeEpjJWYrUWFrVmVXNDA5ZFcqfFEtI3dtSG8hYjww
WHg+NyR7cEB3VSYwVXNMXj5GR19mKmg2CnpjcU08QTJRK0dLMzZqcip6SWtMY0d+cnQ2MlFXRlFx
NXQ2dytMJVo5Q2l6WXcoaDdCSGZSfFpPcHR8Yk9LKiQxeAp6RDR7b04rOEY3aCU2ZVpJcysmOGFC
RHByTytfSDZZfExTJDZRYlJofCYkZWRaSStZI2liTH1FMj8kMGE7SSkzTV8Kem83VngjSEBWZkRz
VVB7ZmFaPDwoWnF3dTV3N3VKd2RyV244RGV9UzE2TEBocjR6P0JkI159TExMbV9sJXIrKz4lCnoz
RlpHQndWNS1VTnJmK3tBWnh1PCtWMksxeHpzfEA9YyV6UzlAKnZYWEoyQiUofjFweV89WV4pbkww
WkclciNaKwp6clI1R2BIT1E0U3VAbXFfWFc5cThURmQkTSEoPDskPUp7MkpyS2xAT1FgO1BeK0Jk
IXREaGNwSD1IfFQhIUhqNE8KenphTVVqaDNTV0ljNzRTaUFNYlI3c05edyhBUGI2VlgzXzF7MWds
a3VfaE40ZzFqUEJsM3I/aSk7OD1kM21MY0FzCnpabT80UlpxdHFzVVl5JU4paEZAPjUlRHRabSR3
VTlCZXFFOG5lTVpCMUpQQkY/QypEWGQ/T2tRTG9mbktsVnEzTwp6PE5CPFEhdmFgT0hIRmkpN1Ml
KHtCQ0dNRkhlSjlBLVM3Q2hgbkR+MTAqZk9MeiVQNUchKE0/e0Q0KmBUQlFnJXQKenZ9c1Z2ZGB6
LTtXQFVRYWxUaVBIX3VLc08oLT18UzJucVpkb3B2R1pHOTt2fEdKRHBJRkdodkNuM0p1NjwjMDMr
Cno1YGdsJU5gQysyLWxnclVqOUUwenlXeXtWYTZVaVBgNkt6Njtjd0xfQCtkeVNZTTAwNnM7cFla
Tis9SlNWPE41PQp6IV47YmhZZFBqTW9vNjJgbnAkNXpZRnZzV1NfZ35XPXRYSTdRNyFhV0RofUlV
SjReRXNjTytHZD5+KGlTNFJqWFoKens0M1l4MGtEcyN6IXoxJiNlTTtsUkNhNnh1TClIOHg5K0lD
N2d4UGFuZm8te2FFPEYjK2BrQGwoJWYoKDMhNFFvCnpCcTA/WnNlVzVwXmF1YUNEWXx2VylEVGhr
dnhoVzVeXzM0Yy09TkhDM3NlRD4/MVJmRyVFbFQzYzUoKVE5OytoJQp6JDNOVE0/TiMzVy0yMDk7
M0VYODRMa3wzRFBUfjR8d3ZudS11ZVl6UG9vd25GYGVDMHV3cm82Y2VLRGJ6Wm1ibkoKeik8bHNL
cm5eLXxfKStaNjJnUk1oNnh2S1AhMXU8MkZKSWEqTnp+ZntOXl99QXh4WUUjS2AtUzk8RXN2YkpR
cT9hCnp3YWFkKGotJiQqbSlNM2ZPcz0lX1VWSUA7eXAkVGZtOEQwUG1hflJPMHEqWWxRTCgqJDNo
Rj07ZjxTYEdmPUhTfgp6b0dFQH4kLXcpdDkwM1Vaa2RwY0dnRkV4ODRXR2UqJV9LM3djcCp4UU8j
aU56NlpPQllmPkVrdVQ7VmxAeWUxZzUKekxVbiVIdFhuPzhefDleWkA2NlEhI0ZeWTUqdEthbjct
I0lBJDhgY0lEKGwjZDdlajRKZD5NRWx3S3IlIV5zWkMwCnpeaz8jbV8lcld6MWNJT0BKX1pOc21F
Q1N1bTYjRUBqeEd7bmhvfVlEV1k+PFFRRm1lYEltM2NOUWhebnIxOEFofAp6cDA7NkhzNG1sYilU
RmNoTyleSFhTYWZmQWVfNE5RcDxzNVkmKFVCbkNNKFhRMkpqR2Fzc2EqKHFVWHE0TVBsKTUKenct
Z2VNUiZ9dC1CKE17a0tpc25qOE4lJlU1UjlKeytJP0AzSUJIQHlEQCRxRTk3MzQ0ZCU1eDBTX0Yk
e3J8UV5kCnpjfW0/SHtpZiQzeV9RaEA9KDZsc2pSeFAkVlope3JlUz9XK2YjOTtRPlRSb0o4dVZl
djQzRSUyejJ+elMoKlc8Tgp6ZlNFZVBuUV5oViNqVGt1RUNNdmR6QlReZGlJb3pfQiYraDE3U1FW
MnNUQ1g7WHRJRSVIeEB5fmlacCgoa08/LSYKenRrNz9kaWJ5PUR3WThZeXtxT3J0T3Rid3E9ZiVE
cTgwI3hkeipFYkYzSVg/c1VmN2RiczRaNDc4K2JnZlM+KUdtCnp6ZHdrVjRsTzItbUk1YFMlYU0m
QHhPa0dfbERTK2NIVDFabXg4d2t3cEkzNDk9XjYqUm1KRyFITF9XJkR4TF9OVwp6NGVZZ2MzZE5R
T0U0fnpWJVhYKn1sfk8+KGJgPXd3cSF9RmY/KCVjSXYydjZuVmJJS3JxYTJlY3Y2PVZBcj5tJkAK
ei1tTGpEMFY8KVVjM0Y8PkM2RUBBYiEkUzc4SG9wSTh2VW5+KyM0PjZSSTZOMD9RJjIyXjRVVnxs
fURuJXNuTGcoCnpOSFY9MFhnT1lnJENsLSMrclB5YkZCVXJQPWQ0ZF9DX35KJTgzYkdjN24hJXNO
UGEhc1p2Q3JedVl5SDJKUVNrKgp6SV5qVkM3RGZrKHB2UXVTWkVzNTlxfntwWFU/QT5sZW9TPnEq
eURnP0gyVyMlI3slT3NPfHtaYzRRJilJMlA0My0KektwZjlMPk1oPHVJbkV2KVN2PzZBcjU/OUsl
fHE5b25XaEdYNn14UHRMNDVGa1pyNjR6XmV7fVhHQEtjM0ZQUiFlCnpSLU4yND94XmA+Rj0kKHdV
ezR7biY8QGxUUnJMRCNtSHE5eWdMLVVUOVFJVypGa0ZIajxhPTtRNkJhamxgWTJUOwp6NzBNcFQ0
c0ZrMHY5SWAxO1ZlYUQkTzdqamhQYU4taHhPSCk2ZXpGJTl5ISkqPSRQVEdgKjxAWWFvPytFeSl7
LVcKemNVZXk/JVNIVXVtY3JOPFoqQnw7RWkyXjhRXyFfLV50aWVNSl90S3RhVyVENz9DNys5TTVB
SVhCcn47SjI2bk5ECno0XlQrQ1VidnJ3PVMkbkAjNEU4dSkpdlNTXiZwSSRsPihLPD5sbURsXlMk
OTswKTBvPnU2VEFoPXVHcUpDVERRRgp6ekRmZiF0Jk9SPj48aWZKNHtMeVZ6S3hwUFVebDBePkVe
a0FeRUBWdyFffkpmPSt3XjBxU2R+flk5Z2IoN1gtKmkKekNheX1PYHhoaXJgNm0teGhBa1YjQnBL
cjt2cX0xVVd5RXNgXkYyYHdmTkB2RzteeFFfbiVoOXFVMz5adTdyWDs3CnozP0wpV0lRQEt9WDgx
JEZhUU1ZJkdlclhMcTM8aHNIeUtlKUJpTVBLcDNgcDg+WUUqRnJeT25tezw9PT1eRz9ATAp6d3ND
UHNzQVM0QUYoYSVEKT4xa2xtSDRIXykrNjFHdHFGYX0wbX1IezU2P2lwTWNwbGJ6ZVg2a3Vyd3Eh
KFhyXmQKelVWNFd1UWwkZiN0JiFpUlIkNnk0XzRzbVM/QUJ3UTZGMVgyOTExNlhAeipmUiRnMWkq
WV4zVVBed0M7Q3hRYl9pCnpTNT18SVcqSnI2aEUqak0mNGlgb2d1bCMwZkQpOFJUNDBOOWE3QyNF
bzZrfnlSIU9SRWA1eHxPd0dVaVExVXB+WAp6KUooP0UrNihgQzFYPE5Jdnt4Z1hNQF8hRUt9Ym92
Tj0kMWhkNk9sdFNfS1UrR2omcVBJbnYhKWB9PnwxSE9XKkQKentiez9GdyRtNHZfbERmND1hMFpv
OT49Rj5pJFd3dkRodUFyWjw+WitLX2ooPT43czY8bUU5dD51JmZGakBPUzQ0CnppflghX2lhbkB2
Oy1mMCRXKElaMUI4VDMjWEZaM3xhK0dKKy12byt5VSROa1IqVTtIOGA9WlMzP1JEZUZeQDJORQp6
JVduZmVNT3NxN1JaZV52cTIoYSglMz5WTyh5JV85NTVsNFJePSgpJlpsdj43T0tNKzk9WGU5WDMr
SVBHdzhvRl4Kei0lY0lvLXdocV49KCN2WGNGd0UyfEM7P0ExWH07MXgxdTROdGJsfHt4eF84QCl+
aUpfd044JDdKb31VXyVLfVJpCno2YC1lYXpqeT1eUWw3aGVJKG0xemkqYFRHJiReSFdEfVFnSTxO
PVduVDIpbVZNd3VCaEVtcV5NYzdIazlVbDhAMQp6RHhwQUdrViZoWHpmRHxfU0xpPzshNUx2IU5o
cVcrIzc+VzlwRH5zZntMWX5DRUtRaT08KWVuLVM7REZpIVBxdDkKejYjR31GRHNSSXx5WWA7endR
XnR+JT5sPjQzWHgoMSNfKWBwNFowcHpMSkcjQT5CZ31zI0tTfVJlTTZKa3g5Qzc8CnpCUVQxU1Fw
eFVmaDw3JntVTmdqYGx7Z2c5bDA+cSh7NnNibiU4N0NDYXUjalAjaCojVXQpWHo5VyZYSkIhVkpi
JQp6TEk4JjAhNCVNI141dD1CY3orQV5qVj10MW5Sd1ZMMHNBTVhAYStCMXZSX2ZKVSFgZWVwO3ct
WlUtS3g4MGU3byEKenltZj1Oa0UodigkYis5PnlmI01iRUxHM25VPkJaRnUpa0l2MWhNb2NhSDlx
Vmk1UyoyPHQkVW44XzNEUms0eU8oCnotNVhLeCtPS04tITAzX2FzQ205emcxOWFXUyRsOEJPZ013
S3M9fndUUT1+bGA0Unh+SllMMVFkY0dpV3N8NGItJAp6aVQjNHMkJkNEcSpObXpWWDs9czJUflAq
SXE+TyFuSkxQSDlfeWVvI1ZUVFptWCFpO2xHZ340UXZkczhkdVFSI08KejNuNW0hMWY0Y31Ie3p3
R0RPfng4a08kP28tcyQ+Y0R9RkB7NENAUkt4ek5jeXE3JSZOe3dfSSVjWGFOQnA3fnx8CnomPk9t
XnRHPiNGcSslPzlOQXxBVEd+Rns+PmMhd1JASXEmKXN3bF9OQU0zQ04oajR+P2BGJXtrVCt9d1RM
Ky1nXgp6P05JPSZfWlJXVUFGfmBoLTwmWTQkTTVwZil0U2VFNE1NPlcjNGQtPW9wVjMhN1glU3so
TG9QZWNNUj5jTGt8N3cKekVxd3Z5Vlg3P3wlJWo+VVkzWms5SXNwRjFkSHJvI2s8QXxCRVMrMCsk
NGVDcHF4KTRPZ1k8NF5rSytgYk1AMmtuCnp7cENGaXgyQ0t1S0hQWCQ/XlNDVitARUpPZDQ1UExe
JU51ck5eV3Y5ZCZnPSZpTHZpcz1Ma0ZnVk5kS0VYP3kjYQp6KSFzZ1dxNWg+alE8YCk9YXF9cjYj
d3tJczZhaDx9UHNXWjEhfTk3JVpXWT5CUEExZWhOP2pyODl6WjNzTzFEYCYKejROZ3hkdHc1P1Mp
aEliaTw3MS15SVBmYEY1RFEocFdxPnhpUG1DY29hSi16P25rOGU/JW5VSWstdkBHTUVGbnNnCnpR
aGBYa1chKV5CTncoRmlHZyMlR15vdXFxQz1AK2xvMCslSyNFQThBUDE7ciNsRC1PJjlWKDApTSRR
PmFeaH4lTwp6UUQ2T3wpc1pLdit9UmN0eDFZe2pyZC1EOFNHQFQ1Qlh5JnFtO3ZVKnp+cktrUzBD
cVpTOGhnNlo0WkVDWmJSakEKelI1dlRzaGwwI3V0aE9zKCR5JWUzOysxNj5AZlB9UnhFYXtIQl82
fStWKzkkazsxey0reXs8MmNOSFlvYFJgV0RsCnpNQ1IyJEpnOThsOTNXKXxie3x3NDs9ZV9pSCE8
b042LTFXaGBZUENqSzRMc3JPcE45NXRnTmpwR3hBQHRIfXpNSgp6Uml7WjQ8U199QkM1bSN5cHNm
Mi1nWUh3LTl1eVgrTmg0I1M5REtpcURIejMwI0RKezxfPWt6eSlQd28+VWJOTkEKelItNzh7QkdG
eUtKXlFzNCsoZzNxcEZ3fHcjWGhFRWZARjUpZTgtPkluJmM9SkYoPmJUIzUoR1JwblIzfXVlNCRx
CnppIyYyN24wTHtjVl43fkh6XkY4QXtTKiNTJmIyPEdwKCN1NHZ8fnVBIXJBYF82a1NiZTFFajNP
KT1SR1c1RkBzUgp6Q210cEZYfjNOa3tSOHlHb3hFTld0TlU8aUJ8anBrKnshUC1hNlZwP0ZQKDEp
SGhMN1l7XjNxWiFlSz4yal4/WkIKejBoYlFIbmxUfHE8fXxtbGZNNWV2UyVSbCh1QTFWVj5Ke3Bs
dTJnMkE+SHdjKSU8T19ANn5ZNU1AdGxEcE1ZamZTCnpUfUp5O0RHaFMyJXR3Z0Q7XiRWNSV6ZiM4
bTtPVytGMTAzSWtWSHZ5az1gPVk1P1hFdFRLZEpDR3wpS1UtVSFrbAp6PSpKe3FyaXx9fWc2T2te
OGg7Z3VWbXhiSCN3fEdvUzZZeitKfXl6UHg7enFDWDRpTlNgQ19MVDNxbyRyal48Zk4KeiReTSZi
VmxpViVxQyt6MzM9PSFNWVBgNlp7UEBqYV89UXVSd1p9MzYxQWUxJEN5NjN2bHlMN0k3MGZwR2ll
dUgrCnpmelpTUFRWcy1fTV41cXNKLVglV1VVJjdKYSpGVT50Tm0tbVltYXJwdWttZmsyVFNKMCs0
e2Rze1FzY0FJWG9wSgp6NUA2a2RyaT1wZHUwXndgP3hxU00tNXk/N2Q/ZllgRS1FVlBae2F0cWM7
OXMzbEtVPHkjWlBueXApXlkzNW9JMEQKeilFZE5eMz4mITB2JkI1bEhSOXYrSCFDT2liOE1xPDtk
M1lrWSNMZE5Re2kkby1FM19hOTVMJm84eU4mYVF4IS1ECnp8TjdMJGBHd1hsS3ZTQ3VacGItWGd0
T2Upalo0JExobUhZS2l3dyN8emwme1VvfEtYMT16WkRAams7ZFBfVTA2NAp6SitKOSY1fj58ZThR
WSs0UmRUWEFqakZOVEUrb0VSQWg0RWVjZj99biRAQDFlR0IpSXQ3Q2lERGApe3tTVzdpMDIKelpl
Ki1qXzt2YXZCbXMyJndecXE+en5II0ozQ0x9QkQkd3U2Pk0mKn5rYlFBSXsjJHJ+OzsyfSM+Rzxo
KElDcHcoCnopSil4Z15Udkk5bWVGSVg+PFFZJTl8fiQ7WTRzbjAkTGxJV28lKmI3czN1JjNLblR4
dzR4VW40IWh9RXgrcHlPaAp6Mn1lOzt2JmxsMSl5fmAxWjdVdGUmd1JJdyQqdjVGczw7aSMtUmJU
RHZsPXVyTmR+Zz0hQlBKISZqantiISlRVUUKemtZN093MlBOcGUwZnAteEpIRnNZbllONyVudEZk
VUEpRm51RlN+UUVFRmdlbnA0X0kkeWghcmhJUHxVMGNBeXthCnppX3lhIzkwN2I4X3ZgaVYkaipK
MTlPeEp9cWZZbkBmZXRheHBUfE1IKCNMLUdlbXBAallwKDE4ZUtPTVQ4Yi0/KAp6T1g7MXFfQn1K
eks2KkFKd0soR1hgYD1ranJ3SFVHcV93cFAzOW5RTUtsNU44MmFoSmd2PUN1fCFMXjZVakBUI1QK
elVtQE5GXnNkPyNKPk4jQ1pycUMpe2p2KCZqNipsRzdqbDBhbktRMkRiVWhFWk02eUdkcVBafGho
VT1wPXhLbDtLCno4P2w0REkpb3k8OFM0ITlSRGozQWk9IW94RlZyUzVWezNodUdEdT4rdFh6dXx1
Z2FXckgtPnlSeU5icnQzcX4jXgp6JGdFR1A3cUFwMVd9VkJ+KHNzYD5gR2ZeQCYxKm8qZ2UxZ34+
WDkzbj5hbGJsaitlI2FJZXItbkJrd3o/VSkjZ3UKek1TM0s5SFc4N2JANm1hbXUxSld1MDtkanNx
Vk54dm5wI0tSTXlObk5yP3c7ZmJ8LUR5TG9iSkY7Un5IMStWKHFDCnprMkVLPW0yc29KI0x+Vm9F
cipOc3RCXiRWeVR2b3lxSmR2RDJrTGtQeilscjlmKFcrcmFSK1dTKSQwM0VLRlAxawp6O0ZPNHtF
ZjRDViFVSVctMVQ5UXhgekw3OyRhRGRsYGdabyhaQ2d3VyNlPXBJeWF9fEloeHUzeVBjcUFaSHA3
XlUKek9gXiFhYzctSEdEPShDVkZJMWVyNzZOYHtIRHRjOXt9cmw0aSpfJntONiEhMD1SZlpPcTdg
em4wYUw9djtOWE9mCnpSOCRjKnE4aXhUNFpQbkBIb3FuPmtrSTI2ckMobVhjLThjMWYmQXpOOUpP
aitGZD51MXZEYWF8ZSsyOXR3MioyJAp6YW84ZXNJI3tBZDB7YWJXUH50VDNCUD9jezltaGAwUH59
fEd0fl9OTl84cS1ObmxmSEFvPV9xfmtyRj9ye1o2azUKeiRzN095PEN4O1k9SDF0Nnl1SSRuaHR9
SWg4bWx5eXJ1NWJjV1lVcX5JKkJqdHNRV35RcGs8OWAjSUQjOGdEMGg1CnpIaDBpK3FDIVhZUHVa
R3deOGpEfDU8M1V3YCNvfGtEVW9RPnhlNyF5NFJfcDRLJi1AMG9fSWMpNDBwcSpjd2EtQQp6Snx8
QCphKWkrJHdvNnBLZkt0ZCk7ZSRSVThuZDAzXlE4SSFKQ1E1dU4paFpxISttSjtlQWQ1ZiV0Q3Jj
dWo9YCEKejtYez9lZFp0e3JnTUx1Qm9kI34xeWBOIWt3a3tZVV9hPSNjRjNgIUEwPmJnLTkoMWd0
ODtjOyhNaU5kMD0oVylQCnojb1c3c3ImZSZ1MkopKD1zNjwyaFgybVNNaGFRTWhiNnRUUUlhdk1f
JlojQFBCZEtHWHo7Wk5edlVwOUM8SE5BOAp6JHBmdj1FYztLWWlpSnVwejNyYnImS3lfbC16fCZ9
alp8MjQkaSF0SlpYSj4kNTtHUlN5WSk5d3JuIzx0eVBtQ1UKekBMJio9OTRqODx7a0kra2lrYCsk
dDROektfa1hUU0ZuZn5sSE4oNnokZiNFZndSUWtTK150fD1FTHlwdHhVI0d0Cno3UlFgS1l8ZnRy
eGkxVzxvUXM3XyZRTiFLYGRBa3xwU2VNKm5ALXp9JGdSaGVnU3dyPEhqOWA+dEY1RnlCX3o5Jgp6
R0g1KTlAYWhQJFFFNXZKRmgwZE11NXNtSTR1UDlCdFVUVnwhUVk5dnlZelNgN3RvMCNDKj1KY3Jv
aWdvdksrUm4KekJnRzVfSXNVYX0lRlpFNkhYTjkxcVY2JVNgJnhrbmFWbW0tQVkmKHRqWkNpTmQh
QGQjUX0wR2gzU1IzUGhtZzMhCnpqVTcpdHRjIS1kKmBGYFdBeHRwZ0pRalJUIz9aOUBmQ1Jvb3Rl
aldhOzU0e2pKaCp3SWAySDRpU2JsVGFqaHIyKAp6WkRIY05Keytse3hCZGxHR091WE9odC1IPjk/
ZHktNi0yeUJBR15pVkU9JE1gUGJtXj5zWHY0QXtebkAhJDdsOzIKeittJjFxWH1hZG49SVNOJVRW
Pml2PDdePzVLM2E3alMxbS1iZG1rKz9vNGEoTjlOSl4/bH5WfEppa0I0NFNKQ3o4CnpgblpnfFcw
O2tUe19ESmtofGkzQlh7cF4wdS1HQHFDIypMVk9HPHNVVUE1fCR7PXdTMlcjRzRjT1MkajZ1SUw+
Xwp6TXF3N2NQeUY1eHAoQWoqPSYpczZuJEBIMyhpSFYwRiY9TzcwSkZIN0hPVjx6c0EyPVVESXZF
MzZ7eSZTcFgjZXgKekJvVS1hUjRCUWNpPSpsI2RtYE9GPXw0MVNTTkQqK2ZoTlY7RyU5aFExU3Vx
UHB7czgpST18Qj1nKEZhO050blQ4CnpeanZxPyU0Xjt7KzY3JWZIJDYoLTtXQ3tMP056Yz9tQnpB
WkthVlZKUHtKPmU3U0E4TVF2RztsJmolJipIXl50KAp6dmtJI1UqSzlkSXlnTDIjMVgzWWFkajIm
K2FGfXJKb0tVKGZKIV93SiZZWWUrczVZRU04VCtVbCg0cUs/WmdlcCgKekB1c3ItTWhNLWRIVSZm
OFpNNXchcEhZX3tyb3ojMnw4NHg9JUFITSRvc1JqUERwNXVueUVVR3ExMjhYbURfWl5ICnplRChx
WEo+YCt7SURhaWJnV3FMRUZHKzZJITEyaGMtVjFHQSNBdGNtWnc8UUtJbE5LbypPbih6ZX0oNCEt
KmNMIwp6ZShXIVlQUGF+S0F+OSMzO1h9RUNYRlpTayF+eC1RSTtPJEREYj5TRj1OU3YmPnt3eFpt
SU0xY1FRRC05TmEyUmMKekhXfUpKcXZQYiQ5NGRiKXtpTmJYenc5YlZtQ1I+M3dxNi1Ncl40eClM
bHdAM2dxfDcxOUQoWkhCfDAoKk80UWFqCnprWWdvdWlEJXNoKWJUemR6UWszV2E/OSpgbFc8RyY1
PVZJMV91WX1TUDhFO1olaWxuMyV3fitWVzNIMDFxUFBreAp6dT03dC0/X3l0U1RLSnl6MXBGMl89
IzJEcW89ITl+X1BpKmleaDxjSDZeMkk9MmMkSmYzNl8xYkNjNm02Xn5qTEQKeiR0S3dMfEtSKVdj
Q2FtKHo3YUhPPkRfbC0yLUZjJUJzK3YjJHl1M3BCPndRTnlxTDgoT1VKSHAzSGlYanZ8VDd7Cnpe
Yko7cVI0KCo3NkY4aFRLbmEpaEh6Si14eTZkJm1HZkV9ZCpHNEtpWDw7emVxZ3BraHQlK0M9Kndn
YjZJUGhEUwp6e35HUiEmPW58SXJRMSlDY3lIMD9KbV5taSgyY2kkLSo4d3RFOW00ODtXK2l+djVm
fHpOPlI5SlUxYF42KEpuPWcKelFJK1ktTEZ2YTktZldCcitXaDczOzVfZnNGQWYzfk1hdjxuZFUw
LU1OP1kxNHdndUZrbVAjTXh0bWdYfGRNNDZOCnpiNiFOZG9GakNXbXwtbXwqVDJXRCs5PTY4WU5Z
OFRMJDM0YF8oOSlGRmchNEtAZzdTIU91VF9Db2NlI20+cmFMfQp6XldzKjklWE00blIyUkZPeWBg
SUEmKVZeNE5iITR6JSZBREJRQCsqS0B4QGdeaUFIX2hmMSZ0TzI3cVZNKHskKnIKejdeVWk4TnJy
UXVJJH5RPkFJWH1JaGRZZjI7JHIqNVFMWXdVeUJSRCUxdV9rTGF4ZWAyNDU+ZXk4Q35WM1RqeTtO
CnpkOysqb1FFJWhNZkYkUWtoanRwdWcraDc0VWNPRXcqMFdJPTVDQ1A8JGl+YyE/SnBXbGNxKTZU
NyMlQ2xGWTRDVwp6Vik5cz1QalIwTnczOChuJUBhNjgwPTFmdmNgdnxkbXN5PE1gTFVEIW9iKjk3
NHZoV3pVVVVRI1RNWF84M3w3RFUKel5jMDFlXikhaHtXZEt+S2IjaShwQiE7Ji0kT2w8YE10cT5r
bSkmeTRMODs1VDIqT3gyQ1d+Jm93aFEjfFZZPDNJCnp6SU9QZDVAQER3d1B2fER4allpWncyWWdf
OD9ZaCZEOVYpOElkakBDcjNNTGlKeVR8aVJKd2d9aW43TkFBflBkaAp6KnxPdG9sPD50e1p8KGVv
WFFeb19sPTlvbCh1e0M+RUIzXil4TVNYWFUzWW4ybDJzUylKM2Y5IVgkVFh1ayRrWCYKemVZWXU8
UjRLfSsxMjMxbzhMdUh2fEttdz1gJC0lKW5hT0t5d3t5Z09teVVhWXxKVyE4THlxTkdYaCZGcTE0
ZmoyCnpjaih+PE90bXshNkxWPiZ3QkJFUTB4K1ZwXzhmbkFRWEJuIz9Hb2x4PGRsZSlfU15ta0xz
XllNeHBEPmZaJH0qaQp6YiRgbChpMXdVJmI4Z2FhWHpFYjteIUFLaHZOdGx0OWRyWTlHPTtRcks4
cVlsTkxQOzwtN342MT90JlN5cHB0JkEKeiolZn02IS0wMn5wVmhySXhZSlVzQHAkajV1X0slODxZ
UWpxb2hMTVcyXzgtJmV5Nl9EZjl+cn0/TVZMfDR8cGAqCnpIWUozNmI5cFBwV1BHRVFaZ0VwWFhW
REEraG4jOCYpJnJWUkZoKnA/e3o7Pz1ybHpxISNBZE10MlpufWREMj57UQp6RDxfcHotQy0+fD40
RWBTQyRgWkgrbz1rPnZeeytNdE5taVFGYkJKbj1tMTBWYURadGdvPGIqaiFlIU9oQytNbTwKeilQ
OD5Ba2lUcF53MyZLfXh4ZTN1OShMVyVEX0UjVDlZczVHTXc4VmRaKnkoU0Q3OC17RkZ7dnFQIzNQ
ezY8STM8CnpuYyg1KmQ7QWE7bjJMY21OaiRxcyZ8YiQmampeYmI9OE9NeG5+JUpRVG08VnN3dyMj
aFJsKn5OYSsmKz81ZH1Vcwp6TyU8b1Zqb2ImZztNJGd8NEZUTlRBXnk3LUZFQF5xSnVWaExndiVq
cGlFazIkPTliTCZna2RDJHN+R2FranR6PmQKejxLXzgjPHlsRlpGbTJqOz9jPDV2SmhTLT80MDAm
SF4xUCZPb0Vefm5aZXIzai1qaGg0PHtXayFyakJxd29aRWpGCno0czZAPD8rQzt7JmRKWERqS3hG
SzljMENIdVRmQm9aPSFoTzlxSTx7RnIxMjFPPSY/VjE2TXR0bm44LVg4ZkEkQwp6Um5pSyFWVjIh
WHgpdVkoVDUqa1grU3c8KlY3JGM2Z2dTb3hJeyNpdzc4Wk5rbkhrfjYwbWcpM1dIdiZWSHFxKyEK
enJgJGgxcnk8JjVJMylDQ1Zwbk89RUsoNiYrX24rK05lNmlDSlReI3J0cCE5SGNfXyh+RCRIRWFO
NzI0TVByb0M/Cno7XlhZcipjN1N4P1U/SCNaLXxmUT0pY3V1cGgyTFV0PUghKWpEe2I3JGFYUG9h
MW1YMHVlR3RJMk9fSFNDU3Nlcwp6U3JkfE9UWStRZztsV2NrVUY0YTEtWXlyJmxHPW5yZmd2d3Z6
a2Z6eSlqNCttUmFjIXpVX3w+dElPKlJPPlVHZiQKelhAb2E3PEN0cD5hTVcmJnkmdzUxakBwWnw5
bFRLWWFXNEEjNWQzXl5IUkhCcztWPCZAemFaaU41YFhfSXsodG9FCnp6WGlGRiYrRGhIYmtEY3Zx
Zz1AS3w4UnN0NSUqdkoyUGtZdFNTU0RiQCY3WjFMak1hSjR3OEwtPngwdE1jVmJRRgpVa1V7dGxE
K3docHRzP2JEIXUwMz0wamhAQXJUX297CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FxdWlja3dlYnZpZXcv
dHN0X3FxdWlja3dlYnZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90
ZXN0cy9xcXVpY2t3ZWJ2aWV3L3RzdF9xcXVpY2t3ZWJ2aWV3LmNwcAppbmRleCAyZWY5ZDFjLi5h
OTI0MjE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3Rz
L3FxdWlja3dlYnZpZXcvdHN0X3FxdWlja3dlYnZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcXF1aWNrd2Vidmlldy90c3RfcXF1aWNrd2Vidmlldy5j
cHAKQEAgLTUwLDYgKzUwLDcgQEAgcHJpdmF0ZSBzbG90czoKIAogICAgIHZvaWQgc2hvdygpOwog
ICAgIHZvaWQgc2hvd1dlYlZpZXcoKTsKKyAgICB2b2lkIHJlbW92ZUZyb21DYW52YXMoKTsKIAog
cHJpdmF0ZToKICAgICBpbmxpbmUgUVF1aWNrV2ViVmlldyogd2ViVmlldygpIGNvbnN0OwpAQCAt
MjQ0LDcgKzI0NSw3IEBAIHZvaWQgdHN0X1FRdWlja1dlYlZpZXc6OnNob3dXZWJWaWV3KCkKIHsK
ICAgICB3ZWJWaWV3KCktPnNldFNpemUoUVNpemVGKDMwMCwgNDAwKSk7CiAKLSAgICB3ZWJWaWV3
KCktPmxvYWQoUVVybDo6ZnJvbUxvY2FsRmlsZShRTGF0aW4xU3RyaW5nKFRFU1RTX1NPVVJDRV9E
SVIgIi9odG1sL3Njcm9sbC5odG1sIikpKTsKKyAgICB3ZWJWaWV3KCktPmxvYWQoUVVybDo6ZnJv
bUxvY2FsRmlsZShRTGF0aW4xU3RyaW5nKFRFU1RTX1NPVVJDRV9ESVIgIi9odG1sL2RpcmVjdC1p
bWFnZS1jb21wb3NpdGluZy5odG1sIikpKTsKICAgICBRVkVSSUZZKHdhaXRGb3JTaWduYWwod2Vi
VmlldygpLCBTSUdOQUwobG9hZFN1Y2NlZWRlZCgpKSkpOwogCiAgICAgbV93aW5kb3ctPnNob3co
KTsKQEAgLTI1NSw2ICsyNTYsMjAgQEAgdm9pZCB0c3RfUVF1aWNrV2ViVmlldzo6c2hvd1dlYlZp
ZXcoKQogICAgIFFUZXN0OjpxV2FpdCgyMDApOwogfQogCit2b2lkIHRzdF9RUXVpY2tXZWJWaWV3
OjpyZW1vdmVGcm9tQ2FudmFzKCkKK3sKKyAgICBzaG93V2ViVmlldygpOworCisgICAgLy8gVGhp
cyBzaG91bGQgbm90IGNyYXNoLgorICAgIFFRdWlja0l0ZW0qIHBhcmVudCA9IHdlYlZpZXcoKS0+
cGFyZW50SXRlbSgpOworICAgIFFRdWlja0l0ZW0gbm9DYW52YXNJdGVtOworICAgIHdlYlZpZXco
KS0+c2V0UGFyZW50SXRlbSgmbm9DYW52YXNJdGVtKTsKKyAgICBRVGVzdDo6cVdhaXQoMjAwKTsK
KyAgICB3ZWJWaWV3KCktPnNldFBhcmVudEl0ZW0ocGFyZW50KTsKKyAgICB3ZWJWaWV3KCktPnNl
dFZpc2libGUodHJ1ZSk7CisgICAgUVRlc3Q6OnFXYWl0KDIwMCk7Cit9CisKIHZvaWQgdHN0X1FR
dWlja1dlYlZpZXc6OnNjcm9sbFJlcXVlc3QoKQogewogICAgIHdlYlZpZXcoKS0+c2V0U2l6ZShR
U2l6ZUYoMzAwLCA0MDApKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9E
cmF3aW5nQXJlYVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQ
cm94eS5oCmluZGV4IDlkNzI0MTIuLjVhZDAzYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0RyYXdpbmdBcmVhUHJveHkuaApAQCAtODYsNiArODYsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBXZWJDb3JlOjpJbnRSZWN0IGNvbnRlbnRzUmVjdCgpIGNvbnN0OwogICAgIHZpcnR1YWwg
Ym9vbCBpc0JhY2tpbmdTdG9yZVJlYWR5KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZp
cnR1YWwgdm9pZCBwYWludFRvQ3VycmVudEdMQ29udGV4dChjb25zdCBXZWJDb3JlOjpUcmFuc2Zv
cm1hdGlvbk1hdHJpeCYsIGZsb2F0IG9wYWNpdHkpIHsgfQorICAgIExheWVyVHJlZUhvc3RQcm94
eSogbGF5ZXJUcmVlSG9zdFByb3h5KCkgY29uc3QgeyByZXR1cm4gbV9sYXllclRyZWVIb3N0UHJv
eHkuZ2V0KCk7IH0KIAogI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIHZpcnR1YWwg
dm9pZCBzZXRWaXNpYmxlQ29udGVudHNSZWN0QW5kU2NhbGUoY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYgdmlzaWJsZUNvbnRlbnRzUmVjdCwgZmxvYXQgc2NhbGUpIHsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xheWVyVHJlZUhvc3RQcm94eS5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0xheWVyVHJlZUhvc3RQcm94eS5oCmluZGV4IDljZTBkZDkuLjZjMmQ5NGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXllclRyZWVIb3N0UHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF5ZXJUcmVlSG9zdFByb3h5LmgKQEAg
LTU1LDYgKzU1LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIo
V2ViTGF5ZXJJRCk7CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKICAg
ICB2b2lkIHBhaW50VG9DdXJyZW50R0xDb250ZXh0KGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4
JiwgZmxvYXQpOworICAgIHZvaWQgcHVyZ2VHTFJlc291Y2VzKCk7CiAgICAgdm9pZCBzZXRWaXNp
YmxlQ29udGVudHNSZWN0QW5kU2NhbGUoY29uc3QgSW50UmVjdCYsIGZsb2F0KTsKICAgICB2b2lk
IHNldFZpc2libGVDb250ZW50UmVjdFRyYWplY3RvcnlWZWN0b3IoY29uc3QgRmxvYXRQb2ludCYp
OwogI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL3F0L0xheWVyVHJlZUhvc3RQcm94eVF0LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9xdC9MYXllclRyZWVIb3N0UHJveHlRdC5jcHAKaW5kZXggOTJmZDU4MS4uZDA4
OWYyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L0xheWVyVHJlZUhv
c3RQcm94eVF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvTGF5ZXJUcmVl
SG9zdFByb3h5UXQuY3BwCkBAIC02MTgsNSArNjE4LDE3IEBAIHZvaWQgTGF5ZXJUcmVlSG9zdFBy
b3h5OjpzZXRWaXNpYmxlQ29udGVudHNSZWN0QW5kU2NhbGUoY29uc3QgSW50UmVjdCYgcmVjdCwg
ZmxvCiAgICAgbV9kcmF3aW5nQXJlYVByb3h5LT5wYWdlKCktPnByb2Nlc3MoKS0+c2VuZChNZXNz
YWdlczo6TGF5ZXJUcmVlSG9zdDo6U2V0VmlzaWJsZUNvbnRlbnRSZWN0QW5kU2NhbGUocmVjdCwg
c2NhbGUpLCBtX2RyYXdpbmdBcmVhUHJveHktPnBhZ2UoKS0+cGFnZUlEKCkpOwogfQogCit2b2lk
IExheWVyVHJlZUhvc3RQcm94eTo6cHVyZ2VHTFJlc291Y2VzKCkKK3sKKyAgICBUZXh0dXJlTWFw
cGVyTm9kZSogbm9kZSA9IHRvVGV4dHVyZU1hcHBlck5vZGUocm9vdExheWVyKCkpOworCisgICAg
bm9kZS0+cHVyZ2VOb2RlVGV4dHVyZXNSZWN1cnNpdmUoKTsKKyAgICBtX2RpcmVjdGx5Q29tcG9z
aXRlZEltYWdlcy5jbGVhcigpOworCisgICAgbV90ZXh0dXJlTWFwcGVyLmNsZWFyKCk7CisKKyAg
ICBtX2RyYXdpbmdBcmVhUHJveHktPnBhZ2UoKS0+cHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpM
YXllclRyZWVIb3N0OjpQdXJnZUJhY2tpbmdTdG9yZXMoKSwgbV9kcmF3aW5nQXJlYVByb3h5LT5w
YWdlKCktPnBhZ2VJRCgpKTsKK30KKwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL3F0L1F0V2ViUGFnZVByb3h5LmNwcAppbmRleCAzZDFkMmI4Li5jNTJjMTYwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VQcm94eS5jcHAKQEAgLTMz
LDYgKzMzLDcgQEAKIAogI2luY2x1ZGUgIkRvd25sb2FkUHJveHkuaCIKICNpbmNsdWRlICJEcmF3
aW5nQXJlYVByb3h5SW1wbC5oIgorI2luY2x1ZGUgIkxheWVyVHJlZUhvc3RQcm94eS5oIgogI2lu
Y2x1ZGUgInF3a2hpc3RvcnkuaCIKICNpbmNsdWRlICJxd2toaXN0b3J5X3AuaCIKICNpbmNsdWRl
ICJRdERvd25sb2FkTWFuYWdlci5oIgpAQCAtNDI2LDYgKzQyNywxMyBAQCB2b2lkIFF0V2ViUGFn
ZVByb3h5OjpyZW5kZXJUb0N1cnJlbnRHTENvbnRleHQoY29uc3QgVHJhbnNmb3JtYXRpb25NYXRy
aXgmIHRyYW5zZgogICAgICAgICBkcmF3aW5nQXJlYS0+cGFpbnRUb0N1cnJlbnRHTENvbnRleHQo
dHJhbnNmb3JtLCBvcGFjaXR5KTsKIH0KIAordm9pZCBRdFdlYlBhZ2VQcm94eTo6cHVyZ2VHTFJl
c291Y2VzKCkKK3sKKyAgICBEcmF3aW5nQXJlYVByb3h5KiBkcmF3aW5nQXJlYSA9IG1fd2ViUGFn
ZVByb3h5LT5kcmF3aW5nQXJlYSgpOworICAgIGlmIChkcmF3aW5nQXJlYSAmJiBkcmF3aW5nQXJl
YS0+bGF5ZXJUcmVlSG9zdFByb3h5KCkpCisgICAgICAgIGRyYXdpbmdBcmVhLT5sYXllclRyZWVI
b3N0UHJveHkoKS0+cHVyZ2VHTFJlc291Y2VzKCk7Cit9CisKIHZvaWQgUXRXZWJQYWdlUHJveHk6
OnNldFZpc2libGVDb250ZW50UmVjdEFuZFNjYWxlKGNvbnN0IFFSZWN0RiYgdmlzaWJsZUNvbnRl
bnRSZWN0LCBmbG9hdCBzY2FsZSkKIHsKICAgICBpZiAoIW1fd2ViUGFnZVByb3h5LT5kcmF3aW5n
QXJlYSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFn
ZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlUHJveHkuaApp
bmRleCAxZTQ1ODAzLi5iNjQ1MmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvcXQvUXRXZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQv
UXRXZWJQYWdlUHJveHkuaApAQCAtMTM3LDYgKzEzNyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
dFZpc2libGVDb250ZW50UmVjdEFuZFNjYWxlKGNvbnN0IFFSZWN0RiYsIGZsb2F0KTsKICAgICB2
b2lkIHNldFZpc2libGVDb250ZW50UmVjdFRyYWplY3RvcnlWZWN0b3IoY29uc3QgUVBvaW50RiYp
OwogICAgIHZvaWQgcmVuZGVyVG9DdXJyZW50R0xDb250ZXh0KGNvbnN0IFdlYkNvcmU6OlRyYW5z
Zm9ybWF0aW9uTWF0cml4JiwgZmxvYXQpOworICAgIHZvaWQgcHVyZ2VHTFJlc291Y2VzKCk7CiAK
ICAgICBRV0tIaXN0b3J5KiBoaXN0b3J5KCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR3JhcGhpY3NMYXllci5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdyYXBoaWNzTGF5ZXIu
Y3BwCmluZGV4IDU4YmQxMmMuLjkyMjBjNWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdyYXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR3JhcGhpY3NMYXllci5jcHAK
QEAgLTM2OCw2ICszNjgsNyBAQCB2b2lkIFdlYkdyYXBoaWNzTGF5ZXI6OnNldE5lZWRzRGlzcGxh
eSgpCiAKIHZvaWQgV2ViR3JhcGhpY3NMYXllcjo6c2V0TmVlZHNEaXNwbGF5SW5SZWN0KGNvbnN0
IEZsb2F0UmVjdCYgcmVjdCkKIHsKKyAgICByZWNyZWF0ZUJhY2tpbmdTdG9yZUlmTmVlZGVkKCk7
CiAgICAgbV9tYWluQmFja2luZ1N0b3JlLT5pbnZhbGlkYXRlKEludFJlY3QocmVjdCkpOwogICAg
IG5vdGlmeUNoYW5nZSgpOwogfQpAQCAtNTc0LDYgKzU3NSwzOCBAQCB2b2lkIFdlYkdyYXBoaWNz
TGF5ZXI6OnVwZGF0ZUNvbnRlbnRCdWZmZXJzKCkKICAgICBtX2luVXBkYXRlTW9kZSA9IGZhbHNl
OwogfQogCit2b2lkIFdlYkdyYXBoaWNzTGF5ZXI6OnB1cmdlQmFja2luZ1N0b3JlcygpCit7Cisg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjaGlsZHJlbigpLnNpemUoKTsgKytpKSB7CisgICAg
ICAgIFdlYkdyYXBoaWNzTGF5ZXIqIGxheWVyID0gdG9XZWJHcmFwaGljc0xheWVyKHRoaXMtPmNo
aWxkcmVuKClbaV0pOworICAgICAgICBsYXllci0+cHVyZ2VCYWNraW5nU3RvcmVzKCk7CisgICAg
fQorCisgICAgaWYgKG1fbWFpbkJhY2tpbmdTdG9yZSkKKyAgICAgICAgbV9tYWluQmFja2luZ1N0
b3JlLmNsZWFyKCk7CisKKyAgICBpZiAoIW1fbGF5ZXJJbmZvLmltYWdlQmFja2luZ1N0b3JlSUQp
CisgICAgICAgIHJldHVybjsKKworICAgIGxheWVyVHJlZVRpbGVDbGllbnQoKS0+cmVsZWFzZUlt
YWdlQmFja2luZ1N0b3JlKG1fbGF5ZXJJbmZvLmltYWdlQmFja2luZ1N0b3JlSUQpOworICAgIG1f
bGF5ZXJJbmZvLmltYWdlQmFja2luZ1N0b3JlSUQgPSAwOworfQorCit2b2lkIFdlYkdyYXBoaWNz
TGF5ZXI6OnJlY3JlYXRlQmFja2luZ1N0b3JlSWZOZWVkZWQoKQoreworICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgY2hpbGRyZW4oKS5zaXplKCk7ICsraSkgeworICAgICAgICBXZWJHcmFwaGlj
c0xheWVyKiBsYXllciA9IHRvV2ViR3JhcGhpY3NMYXllcih0aGlzLT5jaGlsZHJlbigpW2ldKTsK
KyAgICAgICAgbGF5ZXItPnJlY3JlYXRlQmFja2luZ1N0b3JlSWZOZWVkZWQoKTsKKyAgICB9CisK
KyAgICBpZiAoIW1fbWFpbkJhY2tpbmdTdG9yZSkgeworICAgICAgICBtX21haW5CYWNraW5nU3Rv
cmUgPSBhZG9wdFB0cihuZXcgVGlsZWRCYWNraW5nU3RvcmUodGhpcywgVGlsZWRCYWNraW5nU3Rv
cmVSZW1vdGVUaWxlQmFja2VuZDo6Y3JlYXRlKHRoaXMpKSk7CisgICAgICAgIG1fbWFpbkJhY2tp
bmdTdG9yZS0+c2V0Q29udGVudHNTY2FsZShtX2NvbnRlbnRzU2NhbGUpOworICAgIH0KKworICAg
IGlmIChtX2ltYWdlKQorICAgICAgICBzZXRDb250ZW50c05lZWRzRGlzcGxheSgpOworfQogI2Vu
ZGlmCiAKIHN0YXRpYyBQYXNzT3duUHRyPEdyYXBoaWNzTGF5ZXI+IGNyZWF0ZVdlYkdyYXBoaWNz
TGF5ZXIoR3JhcGhpY3NMYXllckNsaWVudCogY2xpZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHcmFwaGljc0xheWVyLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdyYXBoaWNzTGF5ZXIuaApp
bmRleCBhYzA1NThlLi41Mjk1NWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdyYXBoaWNzTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdyYXBoaWNzTGF5ZXIuaApAQCAtMTMxLDYg
KzEzMSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZVRpbGVCdWZmZXJzUmVjdXJzaXZlbHko
KTsKICAgICB2b2lkIHNldENvbnRlbnRzU2NhbGUoZmxvYXQpOwogICAgIHZvaWQgdXBkYXRlQ29u
dGVudEJ1ZmZlcnMoKTsKKyAgICB2b2lkIHB1cmdlQmFja2luZ1N0b3JlcygpOworICAgIHZvaWQg
cmVjcmVhdGVCYWNraW5nU3RvcmVJZk5lZWRlZCgpOwogI2VuZGlmCiAKIHByaXZhdGU6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlSG9zdC5o
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhvc3QuaAppbmRl
eCA5ODYwYTdhLi42MWZiZTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvTGF5ZXJUcmVlSG9zdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9MYXllclRyZWVIb3N0LmgKQEAgLTg0LDYgKzg0LDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBzZXRWaXNpYmxlQ29udGVudFJlY3RUcmFqZWN0b3J5VmVjdG9yKGNvbnN0IFdl
YkNvcmU6OkZsb2F0UG9pbnQmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0VmlzaWJsZUNvbnRl
bnRSZWN0Rm9yTGF5ZXIoaW50IGxheWVySUQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSB7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgcmVuZGVyTmV4dEZyYW1lKCkgeyB9CisgICAgdmlydHVhbCB2b2lk
IHB1cmdlQmFja2luZ1N0b3JlcygpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTGF5
ZXJUcmVlSG9zdE1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhvc3QubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlSG9zdC5tZXNzYWdl
cy5pbgppbmRleCA2YjkxMzljLi5kMmU5YzM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlSG9zdC5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlSG9zdC5tZXNzYWdlcy5pbgpAQCAt
MjQsNSArMjQsNiBAQCBtZXNzYWdlcyAtPiBMYXllclRyZWVIb3N0IHsKICAgICBTZXRWaXNpYmxl
Q29udGVudFJlY3RUcmFqZWN0b3J5VmVjdG9yKFdlYkNvcmU6OkZsb2F0UG9pbnQgdHJhamVjdG9y
eVZlY3RvcnkpCiAgICAgU2V0VmlzaWJsZUNvbnRlbnRSZWN0QW5kU2NhbGUoV2ViQ29yZTo6SW50
UmVjdCBjb250ZW50UmVjdCwgZmxvYXQgc2NhbGUpCiAgICAgUmVuZGVyTmV4dEZyYW1lKCkKKyAg
ICBQdXJnZUJhY2tpbmdTdG9yZXMoKQogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvcXQvTGF5ZXJUcmVlSG9zdFF0LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9xdC9MYXllclRyZWVIb3N0UXQuY3BwCmluZGV4IDUx
OTkwMDguLmFiMTg1Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9xdC9MYXllclRyZWVIb3N0UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9xdC9MYXllclRyZWVIb3N0UXQuY3BwCkBAIC02Niw2ICs2Niw3IEBAIExheWVy
VHJlZUhvc3RRdDo6TGF5ZXJUcmVlSG9zdFF0KFdlYlBhZ2UqIHdlYlBhZ2UpCiAgICAgLCBtX3No
b3VsZFN5bmNSb290TGF5ZXIodHJ1ZSkKICAgICAsIG1fbGF5ZXJGbHVzaFRpbWVyKHRoaXMsICZM
YXllclRyZWVIb3N0UXQ6OmxheWVyRmx1c2hUaW1lckZpcmVkKQogICAgICwgbV9sYXllckZsdXNo
U2NoZWR1bGluZ0VuYWJsZWQodHJ1ZSkKKyAgICAsIG1fc2hvdWxkUmVjcmVhdGVCYWNraW5nU3Rv
cmUoZmFsc2UpCiB7CiAgICAgLy8gQ3JlYXRlIGEgcm9vdCBsYXllci4KICAgICBtX3Jvb3RMYXll
ciA9IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZSh0aGlzKTsKQEAgLTIxMCw2ICsyMTEsOCBAQCB2b2lk
IExheWVyVHJlZUhvc3RRdDo6c2V0UGFnZU92ZXJsYXlOZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYgcmVjdCkKIAogYm9vbCBMYXllclRyZWVIb3N0UXQ6OmZsdXNoUGVuZGluZ0xh
eWVyQ2hhbmdlcygpCiB7CisgICAgcmVjcmVhdGVCYWNraW5nU3RvcmVJZk5lZWRlZCgpOworCiAg
ICAgYm9vbCBkaWRTeW5jID0gbV93ZWJQYWdlLT5jb3JlUGFnZSgpLT5tYWluRnJhbWUoKS0+dmll
dygpLT5zeW5jQ29tcG9zaXRpbmdTdGF0ZUluY2x1ZGluZ1N1YmZyYW1lcygpOwogICAgIG1fbm9u
Q29tcG9zaXRlZENvbnRlbnRMYXllci0+c3luY0NvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJP
bmx5KCk7CiAgICAgaWYgKG1fcGFnZU92ZXJsYXlMYXllcikKQEAgLTQyMyw2ICs0MjYsMjQgQEAg
Ym9vbCBMYXllclRyZWVIb3N0UXQ6OmxheWVyVHJlZVRpbGVVcGRhdGVzQWxsb3dlZCgpIGNvbnN0
CiAgICAgcmV0dXJuICFtX2lzU3VzcGVuZGVkICYmICFtX3dhaXRpbmdGb3JVSVByb2Nlc3M7CiB9
CiAKK3ZvaWQgTGF5ZXJUcmVlSG9zdFF0OjpwdXJnZUJhY2tpbmdTdG9yZXMoKQoreworICAgIG1f
c2hvdWxkUmVjcmVhdGVCYWNraW5nU3RvcmUgPSB0cnVlOworICAgIFdlYkdyYXBoaWNzTGF5ZXIq
IHdlYlJvb3RMYXllciA9IHRvV2ViR3JhcGhpY3NMYXllcihtX3Jvb3RMYXllci5nZXQoKSk7Cisg
ICAgd2ViUm9vdExheWVyLT5wdXJnZUJhY2tpbmdTdG9yZXMoKTsKKworICAgIEFTU0VSVCghbV9k
aXJlY3RseUNvbXBvc2l0ZWRJbWFnZVJlZkNvdW50cy5zaXplKCkpOworfQorCit2b2lkIExheWVy
VHJlZUhvc3RRdDo6cmVjcmVhdGVCYWNraW5nU3RvcmVJZk5lZWRlZCgpCit7CisgICAgaWYgKCFt
X3Nob3VsZFJlY3JlYXRlQmFja2luZ1N0b3JlKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3No
b3VsZFJlY3JlYXRlQmFja2luZ1N0b3JlID0gZmFsc2U7CisgICAgV2ViR3JhcGhpY3NMYXllciog
d2ViUm9vdExheWVyID0gdG9XZWJHcmFwaGljc0xheWVyKG1fcm9vdExheWVyLmdldCgpKTsKKyAg
ICB3ZWJSb290TGF5ZXItPnJlY3JlYXRlQmFja2luZ1N0b3JlSWZOZWVkZWQoKTsKK30KICNlbmRp
ZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9xdC9MYXllclRyZWVIb3N0UXQuaCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9xdC9MYXllclRyZWVIb3N0UXQuaAppbmRleCAzMTAxMWM2Li44NTI3
YzUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvcXQvTGF5
ZXJUcmVlSG9zdFF0LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3F0
L0xheWVyVHJlZUhvc3RRdC5oCkBAIC03MSw2ICs3MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgcmVtb3ZlVGlsZShXZWJMYXllcklELCBpbnQgdGlsZUlEKTsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0VmlzaWJsZUNvbnRlbnRSZWN0Rm9yTGF5ZXIoaW50IGxheWVySUQsIGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVuZGVyTmV4dEZyYW1lKCk7CisgICAg
dmlydHVhbCB2b2lkIHB1cmdlQmFja2luZ1N0b3JlcygpOwogICAgIHZpcnR1YWwgYm9vbCBsYXll
clRyZWVUaWxlVXBkYXRlc0FsbG93ZWQoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Vmlz
aWJsZUNvbnRlbnRSZWN0QW5kU2NhbGUoY29uc3QgSW50UmVjdCYsIGZsb2F0IHNjYWxlKTsKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0VmlzaWJsZUNvbnRlbnRSZWN0VHJhamVjdG9yeVZlY3Rvcihjb25z
dCBGbG9hdFBvaW50Jik7CkBAIC05Niw2ICs5Nyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjYW5j
ZWxQZW5kaW5nTGF5ZXJGbHVzaCgpOwogICAgIHZvaWQgcGVyZm9ybVNjaGVkdWxlZExheWVyRmx1
c2goKTsKICAgICB2b2lkIHNlbmRMYXllcnNUb1VJKCk7CisgICAgdm9pZCByZWNyZWF0ZUJhY2tp
bmdTdG9yZUlmTmVlZGVkKCk7CiAKICAgICBPd25QdHI8V2ViQ29yZTo6R3JhcGhpY3NMYXllcj4g
bV9yb290TGF5ZXI7CiAKQEAgLTExOSw2ICsxMjEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgbGF5
ZXJGbHVzaFRpbWVyRmlyZWQoV2ViQ29yZTo6VGltZXI8TGF5ZXJUcmVlSG9zdFF0PiopOwogICAg
IFdlYkNvcmU6OlRpbWVyPExheWVyVHJlZUhvc3RRdD4gbV9sYXllckZsdXNoVGltZXI7CiAgICAg
Ym9vbCBtX2xheWVyRmx1c2hTY2hlZHVsaW5nRW5hYmxlZDsKKyAgICBib29sIG1fc2hvdWxkUmVj
cmVhdGVCYWNraW5nU3RvcmU7CiB9OwogCiB9Cg==
</data>
<flag name="review"
          id="118293"
          type_id="1"
          status="-"
          setter="noam"
    />
    <flag name="commit-queue"
          id="118294"
          type_id="3"
          status="-"
          setter="noam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118527</attachid>
            <date>2011-12-08 21:19:53 -0800</date>
            <delta_ts>2011-12-08 22:54:29 -0800</delta_ts>
            <desc>Resouces fixed</desc>
            <filename>texture_purge_on_paintnode_dealloc_05.diff</filename>
            <type>text/plain</type>
            <size>34460</size>
            <attacher name="Viatcheslav Ostapenko">ostap73</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAzYWJjMTg0Li5iZmFiYzA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkg
QEAKKzIwMTEtMTItMDggIFZpYXRjaGVzbGF2IE9zdGFwZW5rbyAgPG9zdGFwZW5rby52aWF0Y2hl
c2xhdkBub2tpYS5jb20+CisKKyAgICAgICAgW1F0XSBbV0syXSBXZWJraXQgc2hvdWxkIHJlbGVh
c2UgVGV4dHVyZU1hcHBlciBHTCBvYmplY3RzIGlmIHBhZ2UgcGFpbnQgbm9kZSBpcyBkZWFsbG9j
YXRlZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcz
NTkxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1w
bGVtZW50YXRpb24gb2YgaGVscGVyIGZ1bmN0aW9uIHRvIHJlbW92ZSBhbGwgR0wgYWxsb2NhdGVk
IHRpbGVzCisgICAgICAgIHdoZW4gUVF1aWNrV2ViVmlldyBnZXRzIHJlbW92ZWQgZnJvbSBjYW52
YXMuCisKKyAgICAgICAgVGVzdGVkIGJ5IG5ldyBBUEkgdGVzdCBpbiBXSzIgKHRzdF9RUXVpY2tX
ZWJWaWV3OjpyZW1vdmVGcm9tQ2FudmFzKS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJl
TWFwcGVyTm9kZTo6cHVyZ2VOb2RlVGV4dHVyZXNSZWN1cnNpdmUpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5oOgorCiAyMDExLTEyLTA1ICBD
aHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CiAKICAgICAgICAgcGxhdGZvcm0v
bWFjL2FjY2Vzc2liaWxpdHkvc2VhcmNoLXdoZW4tZWxlbWVudC1zdGFydHMtaW4tdGFibGUuaHRt
bCBpcyBmYWlsaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmNwcAppbmRleCA0ZDIxNGRmLi41MWJi
MGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
VGV4dHVyZU1hcHBlck5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5jcHAKQEAgLTYyMCw2ICs2MjAsMTQgQEAgdm9p
ZCBUZXh0dXJlTWFwcGVyTm9kZTo6cmVtb3ZlQ29udGVudHNUaWxlKGludCBpZCkKICAgICBtX2V4
dGVybmFsbHlNYW5hZ2VkVGlsZXMucmVtb3ZlKGlkKTsKIH0KIAordm9pZCBUZXh0dXJlTWFwcGVy
Tm9kZTo6cHVyZ2VOb2RlVGV4dHVyZXNSZWN1cnNpdmUoKQoreworICAgIG1fZXh0ZXJuYWxseU1h
bmFnZWRUaWxlcy5jbGVhcigpOworCisgICAgZm9yIChpbnQgaSA9IG1fY2hpbGRyZW4uc2l6ZSgp
IC0gMTsgaSA+PSAwOyAtLWkpCisgICAgICAgIG1fY2hpbGRyZW5baV0tPnB1cmdlTm9kZVRleHR1
cmVzUmVjdXJzaXZlKCk7Cit9CisKIHZvaWQgVGV4dHVyZU1hcHBlck5vZGU6OnNldFRpbGVCYWNr
QnVmZmVyVGV4dHVyZUZvckRpcmVjdGx5Q29tcG9zaXRlZEltYWdlKGludCBpZCwgY29uc3QgSW50
UmVjdCYgc291cmNlUmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRSZWN0LCBCaXRtYXBUZXh0
dXJlKiB0ZXh0dXJlKQogewogICAgIEhhc2hNYXA8aW50LCBFeHRlcm5hbGx5TWFuYWdlZFRpbGU+
OjppdGVyYXRvciBpdCA9IG1fZXh0ZXJuYWxseU1hbmFnZWRUaWxlcy5maW5kKGlkKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJOb2RlLmgKaW5kZXggZWI5YzY5MmUuLmZjNDc5YmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
Tm9kZS5oCkBAIC0xNTgsNiArMTU4LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0VGlsZUJhY2tC
dWZmZXJUZXh0dXJlRm9yRGlyZWN0bHlDb21wb3NpdGVkSW1hZ2UoaW50IGlkLCBjb25zdCBJbnRS
ZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldFJlY3QsIEJpdG1hcFRleHR1
cmUqKTsKICAgICB2b2lkIGNsZWFyQWxsRGlyZWN0bHlDb21wb3NpdGVkSW1hZ2VUaWxlcygpOwog
ICAgIGJvb2wgY29sbGVjdFZpc2libGVDb250ZW50c1JlY3RzKE5vZGVSZWN0TWFwJiwgY29uc3Qg
RmxvYXRSZWN0Jik7CisgICAgdm9pZCBwdXJnZU5vZGVUZXh0dXJlc1JlY3Vyc2l2ZSgpOwogI2Vu
ZGlmCiAgICAgdm9pZCBzZXRJRChpbnQgaWQpIHsgbV9pZCA9IGlkOyB9CiAgICAgaW50IGlkKCkg
Y29uc3QgeyByZXR1cm4gbV9pZDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGY0ZWEyZDYuLjI4NDRmMTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw0NyBAQAorMjAxMS0xMi0wOCAgVmlhdGNoZXNsYXYgT3N0YXBl
bmtvICA8b3N0YXBlbmtvLnZpYXRjaGVzbGF2QG5va2lhLmNvbT4KKworICAgICAgICBbUXRdIFtX
SzJdIFdlYmtpdCBzaG91bGQgcmVsZWFzZSBUZXh0dXJlTWFwcGVyIEdMIG9iamVjdHMgaWYgcGFn
ZSBwYWludCBub2RlIGlzIGRlYWxsb2NhdGVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM1OTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgZGVhbGxvY2F0aW9uIG9mIFRleHR1cmVNYXBw
ZXIgR0wgb2JqZWN0cyB3aGVuIFFRdWlja1dlYlBhZ2UgcGFpbnQgbm9kZSBkZWFsbG9jYXRlZC4K
KyAgICAgICAgQWxzbyBhZGRzIHB1cmdpbmcgR3JhcGhpY3NMYXllciBiYWNraW5nIHN0b3JlcyBv
biBXZWJQcm9jZXNzIHNpZGUgaW4gb3JkZXIgdG8gZm9yY2UgcmVwYWludGluZworICAgICAgICB3
aGVuIHBhZ2UgYmVjb21lcyB2aXNpYmxlIGFuZCBwYWludGluZyByZXN1bWVzIGFuZCBmaXhlcyBp
bmNvcnJlY3QgaW5pdGlhbGl6YXRpb24gb2YgdmlldyAKKyAgICAgICAgdmlzaWJpbGl0eSBzdGF0
ZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2VicGFnZS5jcHA6CisgICAg
ICAgIChRUXVpY2tXZWJQYWdlUHJpdmF0ZTo6cmVzZXRQYWludE5vZGUpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHA6CisgICAgICAgIChRUXVpY2tXZWJWaWV3
UHJpdmF0ZTo6UVF1aWNrV2ViVmlld1ByaXZhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
cXQvdGVzdHMvaHRtbC9kaXJlY3QtaW1hZ2UtY29tcG9zaXRpbmcuaHRtbDogQWRkZWQuCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9odG1sL3Jlc291cmNlcy9zaW1wbGVfaW1hZ2Uu
cG5nOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FxdWlja3dlYnZp
ZXcvdHN0X3FxdWlja3dlYnZpZXcuY3BwOgorICAgICAgICAodHN0X1FRdWlja1dlYlZpZXc6OnNo
b3dXZWJWaWV3KToKKyAgICAgICAgKHRzdF9RUXVpY2tXZWJWaWV3OjpyZW1vdmVGcm9tQ2FudmFz
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oOgorICAgICAgICAoV2Vi
S2l0OjpEcmF3aW5nQXJlYVByb3h5OjpsYXllclRyZWVIb3N0UHJveHkpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9MYXllclRyZWVIb3N0UHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvcXQvTGF5
ZXJUcmVlSG9zdFByb3h5UXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVIb3N0UHJv
eHk6OnB1cmdlR0xSZXNvdXJjZXMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VQ
cm94eS5jcHA6CisgICAgICAgIChRdFdlYlBhZ2VQcm94eTo6cHVyZ2VHTFJlc291cmNlcyk6Cisg
ICAgICAgICogVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHcmFwaGljc0xheWVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OldlYkdyYXBoaWNzTGF5ZXI6OnNldE5lZWRzRGlzcGxheUluUmVjdCk6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJHcmFwaGljc0xheWVyOjpwdXJnZUJhY2tpbmdTdG9yZXMpOgorICAgICAgICAo
V2ViQ29yZTo6V2ViR3JhcGhpY3NMYXllcjo6cmVjcmVhdGVCYWNraW5nU3RvcmVJZk5lZWRlZCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHcmFwaGljc0xheWVyLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhvc3QuaDoKKyAgICAgICAg
KFdlYktpdDo6TGF5ZXJUcmVlSG9zdDo6cHVyZ2VCYWNraW5nU3RvcmVzKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlSG9zdC5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvcXQvTGF5ZXJUcmVlSG9zdFF0LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6TGF5ZXJUcmVlSG9zdFF0OjpMYXllclRyZWVIb3N0UXQpOgorICAgICAgICAoV2ViS2l0OjpM
YXllclRyZWVIb3N0UXQ6OmZsdXNoUGVuZGluZ0xheWVyQ2hhbmdlcyk6CisgICAgICAgIChXZWJL
aXQ6OkxheWVyVHJlZUhvc3RRdDo6cHVyZ2VCYWNraW5nU3RvcmVzKToKKyAgICAgICAgKFdlYktp
dDo6TGF5ZXJUcmVlSG9zdFF0OjpyZWNyZWF0ZUJhY2tpbmdTdG9yZUlmTmVlZGVkKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvcXQvTGF5ZXJUcmVlSG9zdFF0Lmg6CisKIDIwMTEtMTIt
MDUgIE1pY2hhZWwgQnLDvG5pbmcgIDxtaWNoYWVsLmJydW5pbmdAbm9raWEuY29tPgogCiAgICAg
ICAgIFtRdF0gUmVuYW1lIFFRdWlja1dlYlZpZXc6OmNhblN0b3AgcHJvcGVydHkgdG8ganVzdCBs
b2FkaW5nIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVp
Y2t3ZWJwYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vi
cGFnZS5jcHAKaW5kZXggNWNiNmM2Mi4uZDgxOTI1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJwYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnBhZ2UuY3BwCkBAIC0zMTMsNiArMzEzLDcgQEAg
UVNHTm9kZSogUVF1aWNrV2ViUGFnZTo6dXBkYXRlUGFpbnROb2RlKFFTR05vZGUqIG9sZE5vZGUs
IFVwZGF0ZVBhaW50Tm9kZURhdGEqKQogdm9pZCBRUXVpY2tXZWJQYWdlUHJpdmF0ZTo6cmVzZXRQ
YWludE5vZGUoKQogewogICAgIG1fcGFpbnROb2RlID0gMDsKKyAgICBwYWdlUHJveHktPnB1cmdl
R0xSZXNvdXJjZXMoKTsKIH0KIAogUVF1aWNrV2ViUGFnZVByaXZhdGU6On5RUXVpY2tXZWJQYWdl
UHJpdmF0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Fx
dWlja3dlYnZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3
ZWJ2aWV3LmNwcAppbmRleCBiMTQ3ODgxLi5jNTkzNmM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKQEAgLTcwLDYgKzcwLDkgQEAg
UVF1aWNrV2ViVmlld1ByaXZhdGU6OlFRdWlja1dlYlZpZXdQcml2YXRlKFFRdWlja1dlYlZpZXcq
IHZpZXdwb3J0LCBXS0NvbnRleHRSZWYKIAogICAgIC8vIENyZWF0ZXMgYSBwYWdlIHdpdGggdGhl
IHBhZ2UgY3JlYXRpb24gcGFyYW1ldGVycy4KICAgICBwYWdlUHJveHktPmluaXQoZXZlbnRIYW5k
bGVyLmRhdGEoKSk7CisKKyAgICAvLyBUcmlnZ2VyIHNldHRpbmcgb2YgY29ycmVjdCB2aXNpYmls
aXR5IGZsYWdzIGFmdGVyIGV2ZXJ5dGhpbmcgd2FzIGFsbG9jYXRlZCBhbmQgaW5pdGlhbGl6ZWQu
CisgICAgX3Ffb25WaXNpYmxlQ2hhbmdlZCgpOwogfQogCiB2b2lkIFFRdWlja1dlYlZpZXdQcml2
YXRlOjplbmFibGVNb3VzZUV2ZW50cygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3Rlc3RzL2h0bWwvZGlyZWN0LWltYWdlLWNvbXBvc2l0aW5nLmh0bWwgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL2h0bWwvZGlyZWN0LWltYWdlLWNv
bXBvc2l0aW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmZkOTE0
MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVz
dHMvaHRtbC9kaXJlY3QtaW1hZ2UtY29tcG9zaXRpbmcuaHRtbApAQCAtMCwwICsxLDY2IEBACis8
IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwv
L0VOIgorICAgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+CisKKzxodG1s
IGxhbmc9ImVuIj4KKzxoZWFkPgorICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNv
bnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCI+CisgIDx0aXRsZT5UZXN0aW5nIGRpcmVj
dCBpbWFnZSBsYXllciBvcHRpbWlzYXRpb248L3RpdGxlPgorICA8c3R5bGUgdHlwZT0idGV4dC9j
c3MiIG1lZGlhPSJzY3JlZW4iPgorICAgIGltZyB7CisgICAgICBmbG9hdDogbGVmdDsKKyAgICAg
IHdpZHRoOiAxNTBweDsKKyAgICAgIGhlaWdodDogMTUwcHg7CisgICAgfQorICAgIGltZyB7Cisg
ICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgMCk7CisgICAgfQorICAg
IC50ZXN0IHsKKyAgICAgIGZsb2F0OiBsZWZ0OworICAgICAgaGVpZ2h0OiAyMDBweDsKKyAgICAg
IHdpZHRoOiAyNjBweDsKKyAgICB9CisgICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisKKyAg
PGgxPkltYWdlIG9wdGltaXNhdGlvbiBpbiBsYXllcnM8L2gxPgorCisgIDxwPgorICAgIFRoaXMg
dGVzdCBleGVyY2lzZXMgZGlyZWN0IGNvbXBvc2l0aW5nIG9mIGltYWdlcyB3aXRoIGhhcmR3YXJl
IGFjY2VsZXJhdGlvbi4gVGhlIHZpc3VhbCByZXN1bHRzCisgICAgdXNpbmcgQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcgYW5kIHJlZ3VsYXIgVE9UIHNob3VsZCBiZSBpZGVudGljYWwuIFJ1bm5pbmcg
dGhpcyB0ZXN0IG1hbnVhbGx5IHdpdGgKKyAgICB0aGUgY29ycmVjdCBkZWJ1ZyBvcHRpb25zIHdp
bGwgc2hvdyB3aGljaCBlbGVtZW50cyBhcmUgZGlyZWN0bHkgY29tcG9zaXRlZC4gU2VlCisgICAg
PGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzYxIj5o
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzNjE8L2E+CisgIDwvcD4K
KworICA8ZGl2IGNsYXNzPSJ0ZXN0Ij4KKyAgICA8aW1nIHNyYz0icmVzb3VyY2VzL3NpbXBsZV9p
bWFnZS5wbmciPgorICAgIEJhc2ljIGltYWdlIC0gbm8gc3R5bGUgLSBjYW4gYmUgZGlyZWN0bHkg
Y29tcG9zaXRlZAorICA8L2Rpdj4KKworICA8ZGl2IGNsYXNzPSJ0ZXN0Ij4KKyAgICA8aW1nIHNy
Yz0icmVzb3VyY2VzL3NpbXBsZV9pbWFnZS5wbmciIHN0eWxlPSJib3JkZXI6IDVweCBzb2xpZCBi
bHVlOyI+CisgICAgNXB4IGJsdWUgYm9yZGVyIC0gY2FuIE5PVCBiZSBkaXJlY3RseSBjb21wb3Np
dGVkCisgIDwvZGl2PgorCisgIDxkaXYgY2xhc3M9InRlc3QiPgorICAgIDxpbWcgc3JjPSJyZXNv
dXJjZXMvc2ltcGxlX2ltYWdlLnBuZyIgc3R5bGU9Im1hcmdpbjogNXB4IDVweDsiPgorICAgIG1h
cmdpbiAtIGNhbiBOT1QgYmUgZGlyZWN0bHkgY29tcG9zaXRlZAorICA8L2Rpdj4KKworICA8ZGl2
IGNsYXNzPSJ0ZXN0Ij4KKyAgICA8aW1nIHNyYz0icmVzb3VyY2VzL3NpbXBsZV9pbWFnZS5wbmci
IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiBncmV5OyI+CisgICAgc29saWQgYmFja2dyb3VuZCAt
IGNhbiBiZSBkaXJlY3RseSBjb21wb3NpdGVkCisgIDwvZGl2PgorCisgIDxkaXYgY2xhc3M9InRl
c3QiPgorICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvc2ltcGxlX2ltYWdlLnBuZyIgc3R5bGU9ImJh
Y2tncm91bmQ6IG9yYW5nZSB1cmwocmVzb3VyY2VzL3NpbXBsZV9pbWFnZS5wbmcpIC01MHB4IC01
MHB4OyI+CisgICAgYmFja2dyb3VuZCBpbWFnZSAtIGNhbiBOT1QgYmUgZGlyZWN0bHkgY29tcG9z
aXRlZAorICA8L2Rpdj4KKworICA8ZGl2IGNsYXNzPSJ0ZXN0Ij4KKyAgICA8aW1nIHNyYz0icmVz
b3VyY2VzL3NpbXBsZV9pbWFnZS5wbmciIHN0eWxlPSItd2Via2l0LXRyYW5zZm9ybTogcm90YXRl
M2QoMCwgMCwgMSwgMTBkZWcpOyI+CisgICAgcm90YXRlZCBidXQgb3RoZXJ3aXNlIG5vIHN0eWxl
IC0gY2FuIGJlIGRpcmVjdGx5IGNvbXBvc2l0ZWQKKyAgPC9kaXY+CisKKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvaHRt
bC9yZXNvdXJjZXMvc2ltcGxlX2ltYWdlLnBuZyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvdGVzdHMvaHRtbC9yZXNvdXJjZXMvc2ltcGxlX2ltYWdlLnBuZwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40
Njg1Mzk5Y2FjYzE3Zjk5YmM0NDVkMzgyN2Y3ZGJjNTRlNTQ2OWM4CkdJVCBiaW5hcnkgcGF0Y2gK
bGl0ZXJhbCAxMDU4NQp6Y21Za0NXbCRWfCZhTnIkP2k4bWArfSspIXhWeVd2STIwQ0wrKjtoNztf
ZmJzNnBBfTY/KFRCV3ghPkd4P3ZFdHoKek9mdCM4T2VYVjB0RXRHTUFybTcqS3whSSglU295S0Mj
TF9gNWFJdmhnfSU3JHt3RU41TzZ6KVJ4TEFBb243TGEpCnppQ2VtdVRUI2U2bmJ9eVdUYld0PHh7
WF4yS3x5X2dtNnNDTjFneEdKb3FMQCtJdUVKK3BeaHNLI1o3eCNFdTlsMQp6bU02YD9GcHF4dl8y
cFB1MS10an5pbUJiLVdHJElWa3FRd056N09pY2RGSn0tPU4xQ2xwa01yR1RgcSpaYFZmRzYKemBp
JVNrNiNzdHtoZmxGK3I9bFBHQ1MraiRjPUNrY2tIX0hBaDRaIUJTKW95dnVMKSt0cVpZYXwqTXk1
NlooLXluCnpwOVgoRjEzVyh5TT9kK0p7RGxAaGdiSj95WjskXnJ8NmxSbkRnU1RXUT4xV0QoQ3py
PWdYKlU+ekBzXig/NllUVAp6Y0ZSQm43VjxIM2BTU1JnbG8wJCQ1TEo3U1MwPnNjOH1RenZkbEt8
PV87VU4mcDBJV09xK0h1O0VaWTAyKSlmeFgKeip+Tk94LUNkaVpVUWVoTWRrYzdyM0JJXzJjI0Fx
ZSVycmg3KSZgTXp0VUpme0pVK2k0KClXSElVYyptQ0JTIWBWCno8YkJTY3cjTHFJaTtPKjkqTTJe
P2BWJWNLV05gYG55Ty09VGA8b0BacGBBelFPNHhzM2h4PVZ9RWdLWFUjfXRQUQp6c1kpc2MlN3Aq
fCVSVDFsTl96NnI/Pj5JXiRPIyEme3RGfUBsKClFTDEzZTElVXEzeE1mbVo9KUBjVWI+Vlc8cUsK
endKZm8zNz1nfEBLcHF+UnV8czBreUxkOGBIQG59JkBrVmRpSUA/JDc9USleVTZ+Zjl5bmdQfiV1
U1lHQWtHR0FXCnpfIU16cGxmSjlsWEp+KHxZeFRYIWI/X3lyRnx3RDVaIVF+RyF0SUcke2slbV9A
MUdmK2BPJWd4SDFNKj1ATVQ1bAp6SzJRalJyWk9UTztqSzhCJXhNfTNLViVncXEjdSMtTE83QF5R
K18qMCFFPldWdlphJWs3bH55S3NKYyF0Ul5OMk4KenJEOC0pTiU3K0tjRGVRZGJeeGttbSkpcl5f
aTFKSkhWPmNLQE1FRmdkQV5JSHFCPEdvJD9tWU5LNjxicT9RI21WCno8cnFLRlhSZ29IdHZjYEpA
UCQmNHlJe1lea2BONyE2cjRrJWdAUXombUpqfXAyS0RTQjx7Y2w7YFBiezxTV3I8Ygp6VEtxSnBf
aG9mNikwOUYyWCZFIUJkfFliQEZFc1E3ZzZrZ0hYKkUtIWZlUER6JD03WnMjaEhqMT41UyMtPllP
ZG0KejhuRW56KHM2VU5aVyt4MiUzQlEtbmF2ZlI8WSpnYEwrUmB2ZTdRKEB7WXB0ZmYpNER4KD40
R3FCPnM/KXVxNEo+CnpoWVA7bTU5fHxXNiYtaXMzYDhTUUJfUm1DeTs5Mmh2Rnh5PWR0fk5Jcn54
PntHeGtZQ2QlYTVCKyh+QnI+M2kqLQp6OTRfZTNecV9fKDNaRj51c3R7SmtMLVV8YkU9ZWdWPX5v
VkVWSFRQalVHNVVqd3ZNJGtFemM3fjlafXNtcmlGS1EKekF6OUpPKXBqMz1pSHlobVdvKFREQldW
MERDZX5hVXBvKzEtWG9nOCV5TFdGZG50T2hKPj8tdF9QUjFJU08mUGZ8Cno2UzMjUlF+aXVpSjN7
cUslZVlLcGJMUnFzYFVaME48bDQkZFkzPj9lQHt5WWAkcXVySEM/JkQ2NG1nRkZ1PCZodwp6NkxD
enQjWDRKQ0UyfVpgM2A3ZzJJVGNZUVp3RTEzbz9eeWBGPW5FbkFEaiUkRyM2KVAqampSezA8STlG
dVEqNEIKek56cX48ekM+NnlibnBGK1p1VHZSdlF+dDM5S1F6M2lIcGUtcUYqUTRjRDw8fj8xSHwr
SjwxQElZKVd0NGBJSGN1CnpMcz4zI2VAVENhZ1N5UiMpQ2hiVFokSyRUZj9zSVM/WF98I3thNTky
JH1xdm1ZZHNkYThBMjRWJkJVT25hWk1hfQp6aFVsZkh6Y2JWPmw2czBCR2RNdDlSISpVZ2pJdzZI
KUgyWUcrY2A5O3JLM2k4TDdSK3FhMkpSYEJsJSo9VComZ3YKenhDLTw0YmFjSVpxX0R+ckJQeyE2
PldFZ1ZjPSheYVZqK25nZypTbyhCUDBZd2Q8dDteLUArU0hHYnQzaT5MKXxiCnoqbW9BZy1jMW8p
Pz91PnRUYDN8KmlkcWVMRFI/Ym9AUHVTcXNHZDJxQTFiaXQ/VlU/KW5neTVeJHZmPnt2TzRxKwp6
e2hfO2BHbkwmJTs/NHU5cnE2MnBQd2t5Q1YpYjNXUW1YQm5Tbk81Y0RaXkEwSWo0aFJIcl9II2dg
NENjY0VrQE4KejJNPVQmT0heUk9VZng+bHBySjQ4LU99Wm4zRVRuRnZUQkhHP2lYSkpVcSZgPT9r
NT5ycX5ZaVk+ZlBIdXF4VnxACno0JkpFOSR7UkhGT0RWa3o8Z1Z0bWUzX1dBczxrJnVkTlpOM2FR
dHRHNXh4YW1YJXUrZzhTM2ktempKbitKYiMrLQp6M35uQyEyWHtYK1NSfipqU1dRfig0VWUoS0Np
bCZsX05XK31TMko4b0ByP1kpbU8hJChtMWMjVmJ7aykwPlFjd2EKekNwUjMxKkN1M1QqQ0c1KCpS
cmUxVmJadkNOcS1zOClyUGtqeWhGdjw+bSl4cWVKJGlSTVozdVdMYWBNaVltS31QCnpjJmE0dUUj
VC1JQlRVRitANT1PJStvJHJ2RT1TJFBhcm1MMUZjMkF9Vm1KNlY4Q0xvNFMkTHppPkQmSHBLZjIr
NAp6enJrb0FCZ2g0PWU1PUhqT2NhTmtEdFp7dnJzXmM0OUg5b1dIaHhQNTtnY2NabzZOb3hOO2Ir
TStBNC01cHJDdjkKeig3IUo3Z3tPR0MjeUZMfENubExOY1FYMkNvZGE5SzRiK3otR2I3WEFNQ3N5
JShJaEBwaUVlUDFFKXhheVQwaWdiCnpCM2NLd0E3SitaQilBT0dlUD9+OXdJX1NsRENqe1BCQF4q
elErZStLVFVWV0FpcnMwJnVnPCVfamcjLVkoVD5fSwp6QHI8ajNSVzVOT1FjWTB5OXhaVE9qRUQl
dWNIQ04pKVNUeDIqZihwY2kzKzdQb1FAbExrdGxgdFFnUXVAR1ZKfkEKelZITiUtc0J+ZD08bGp7
cTc7JUp7MEU1Tnc3Qnk3VnBtTXBHWkRPPyp5a3NHN0FYemU8V2ZJUWRwbWRMe2JjSCshCnpjeEl5
ejlEcCFfX0ojcHFXbUgjQTxvZEg9TTJ+TVNAVnBoJjlJeG1qJXEhIVZIdGhxWmYwNjdBZm1JP2Ng
Kk1APgp6cEpKNVBhVjUhbCRoR0AhWWlyd0ckM097eVVSJVp6VCpJZkM9WTx4ckowXmtxNEF0SEJq
PmBoYzAmTT0zUntWbiQKeklwcFRiNT9DKj9kOCNHajUjRnVpKkVMREReOEtCdjJwNSNMaUVfQmZU
Kk85TCUjMmx9SVlPaXk3fjBOcDIzIzdyCnoqe2pZKkotSmM8bGZWUXokMVhMRkdBPCpAb1Q8YVA3
QzJqNTRJLSVTaG15Q2xtM3l0fVF4YW8lcDBsYmx7WD44Owp6ZkowUVJQMVFaY0dyTkZlSDFyQ3sx
MkJUPj5VOH50UnAzKSFxMV9DWEJuZGFIb3MrUnRvYTtMVDh1S1BQdzUrWD0Kej14aWdYUUhxSzQk
bDtxOVY1djk7QVRBZStOSFohVyNXJSpUUFY+bzJDQklNY2pxVU16P3F9VVNzSVI3VjtySDQqCnpx
UncqbSk5UUR3V1UhITMjSEVZSHk5WHJxZG5kbnxnZkMyaHY0a28wc1BYPF9aNj5vcVU4cHFrQXRf
dUNgJk9SYQp6ZUkrVzhia252RDNMO2JAJmNNd2F0aHhsMjdAfnB7SW9nZ1d0blBMIVpBck1aZWEj
STg4YE9KP01vKDBydHZrZ3sKelV6OH1uJHxRZCFAVTJDUzZibmBrPDlLant7USZwRFBiLTlaeW9T
MFRVQTl+T3dqaUAkRCRfUzMoazlHdSl6WUh8Cnopd0sqSHtfQV9fWkBFbjctJWVIYnRXcyh6JShZ
ezw3QGhIfXs5KlBRNmsoLThqJE4xb3l1IT1iRTV3aTVWO1ZGSQp6ZCttNyN6Z2VwN2NtSCQ7ME5J
XkchNXImN0BjcyRjZmd9cVUldnwlTm1ffjtCMWdLI2kxTH1IPWhTeSNnc2BXcXsKenp1dyQ7T34/
Mj1xWko9SnVKQ1glUzE8PTFhM2w0THluVERvO3cxcXg9aigqSzArZCVDUjR4YnM+IUVaZkFYdmkw
CnolYihiWTxpfTNVa2FAKDItb0o4TTIqeWRDUFl0IVYxNzFsbVZHaW0tN2Bvak48SVRUSmItP0dq
YUtwJXJfUGp7OQp6VnkhQENRNj56ajVjTWA2UkA9SVglUkYhSWI/eGVaUnpGfHlpNWVwSERlPXlr
SEkjMlBUUEM4dk5lSlFlcC1zWjUKel5waGhpS3xwJElzSjNtZlJEbnNKUiFUbThYO0VDTCV3R1ky
N2VrR2F3MUJrY1EwfVQrTyRoK35oentZZl8yRzVQCnolN14pIWk7TDdxZFQ1QHxAcFpmR3ZKazR7
SmckcDBafmxPPyRedmZpLWRibWtFLTBwPDd4cWo+dy1WfjVeI3w2KQp6JVN+MEg5VnQyKGhyI0I3
ZnAhemxDQzNgbTdrU0VHWHNUam1yY3MmQ3VXKnE8KSgxSDx4KXl1d2U3bH1vZnJAUVQKelJqRzA/
SGFuMnRlPG4kO1pAZXVZZXQ/Ky1pTF5JYDtHQEdWRXBwRGZHdk5uJkRmQyNRWEw7NHl0azVDPihG
XzV3CnprQ2o/Jj1DPyhKMWY0KXBteFo3NSNhZHlaPU5HfnohUnJmYCozN1FvYUVIJDgyR19YXzRy
YkRgUGkkPHhqITgrWQp6R15zSFJnVUEqXlJ4SmMlZitRYWtWZVc0MDlkVyp8US0jd21IbyFiPDBY
eD43JHtwQHdVJjBVc0xePkZHX2YqaDYKemNxTTxBMlErR0szNmpyKnpJa0xjR35ydDYyUVdGUXE1
dDZ3K0wlWjlDaXpZdyhoN0JIZlJ8Wk9wdHxiT0sqJDF4CnpENHtvTis4RjdoJTZlWklzKyY4YUJE
cHJPK19INll8TFMkNlFiUmh8JiRlZFpJK1kjaWJMfUUyPyQwYTtJKTNNXwp6bzdWeCNIQFZmRHNV
UHtmYVo8PChacXd1NXc3dUp3ZHJXbjhEZX1TMTZMQGhyNHo/QmQjXn1MTExtX2wlcisrPiUKejNG
WkdCd1Y1LVVOcmYre0FaeHU8K1YySzF4enN8QD1jJXpTOUAqdlhYSjJCJSh+MXB5Xz1ZXiluTDBa
RyVyI1orCnpyUjVHYEhPUTRTdUBtcV9YVzlxOFRGZCRNISg8OyQ9SnsySnJLbEBPUWA7UF4rQmQh
dERoY3BIPUh8VCEhSGo0Twp6emFNVWpoM1NXSWM3NFNpQU1iUjdzTl53KEFQYjZWWDNfMXsxZ2xr
dV9oTjRnMWpQQmwzcj9pKTs4PWQzbUxjQXMKelptPzRSWnF0cXNVWXklTiloRkA+NSVEdFptJHdV
OUJlcUU4bmVNWkIxSlBCRj9DKkRYZD9Pa1FMb2ZuS2xWcTNPCno8TkI8USF2YWBPSEhGaSk3UyUo
e0JDR01GSGVKOUEtUzdDaGBuRH4xMCpmT0x6JVA1RyEoTT97RDQqYFRCUWcldAp6dn1zVnZkYHot
O1dAVVFhbFRpUEhfdUtzTygtPXxTMm5xWmRvcHZHWkc5O3Z8R0pEcElGR2h2Q24zSnU2PCMwMysK
ejVgZ2wlTmBDKzItbGdyVWo5RTB6eVd5e1ZhNlVpUGA2S3o2O2N3TF9AK2R5U1lNMDA2cztwWVpO
Kz1KU1Y8TjU9CnohXjtiaFlkUGpNb282MmBucCQ1ellGdnNXU19nflc9dFhJN1E3IWFXRGh9SVVK
NF5Fc2NPK0dkPn4oaVM0UmpYWgp6ezQzWXgwa0RzI3ohejEmI2VNO2xSQ2E2eHVMKUg4eDkrSUM3
Z3hQYW5mby17YUU8RiMrYGtAbCglZigoMyE0UW8KekJxMD9ac2VXNXBeYXVhQ0RZfHZXKURUaGt2
eGhXNV5fMzRjLT1OSEMzc2VEPj8xUmZHJUVsVDNjNSgpUTk7K2glCnokM05UTT9OIzNXLTIwOTsz
RVg4NExrfDNEUFR+NHx3dm51LXVlWXpQb293bkZgZUMwdXdybzZjZUtEYnpabWJuSgp6KTxsc0ty
bl4tfF8pK1o2MmdSTWg2eHZLUCExdTwyRkpJYSpOen5me05eX31BeHhZRSNLYC1TOTxFc3ZiSlFx
P2EKendhYWQoai0mJCptKU0zZk9zPSVfVVZJQDt5cCRUZm04RDBQbWF+Uk8wcSpZbFFMKCokM2hG
PTtmPFNgR2Y9SFN+CnpvR0VAfiQtdyl0OTAzVVprZHBjR2dGRXg4NFdHZSolX0szd2NwKnhRTyNp
Tno2Wk9CWWY+RWt1VDtWbEB5ZTFnNQp6TFVuJUh0WG4/OF58OV5aQDY2USEjRl5ZNSp0S2FuNy0j
SUEkOGBjSUQobCNkN2VqNEpkPk1FbHdLciUhXnNaQzAKel5rPyNtXyVyV3oxY0lPQEpfWk5zbUVD
U3VtNiNFQGp4R3tuaG99WURXWT48UVFGbWVgSW0zY05RaF5ucjE4QWh8CnpwMDs2SHM0bWxiKVRG
Y2hPKV5IWFNhZmZBZV80TlFwPHM1WSYoVUJuQ00oWFEySmpHYXNzYSoocVVYcTRNUGwpNQp6dy1n
ZU1SJn10LUIoTXtrS2lzbmo4TiUmVTVSOUp7K0k/QDNJQkhAeURAJHFFOTczNDRkJTV4MFNfRiR7
cnxRXmQKemN9bT9Ie2lmJDN5X1FoQD0oNmxzalJ4UCRWWil7cmVTP1crZiM5O1E+VFJvSjh1VmV2
NDNFJTJ6Mn56UygqVzxOCnpmU0VlUG5RXmhWI2pUa3VFQ012ZHpCVF5kaUlvel9CJitoMTdTUVYy
c1RDWDtYdElFJUh4QHl+aVpwKChrTz8tJgp6dGs3P2RpYnk9RHdZOFl5e3FPcnRPdGJ3cT1mJURx
ODAjeGR6KkViRjNJWD9zVWY3ZGJzNFo0NzgrYmdmUz4pR20Kenpkd2tWNGxPMi1tSTVgUyVhTSZA
eE9rR19sRFMrY0hUMVpteDh3a3dwSTM0OT1eNipSbUpHIUhMX1cmRHhMX05XCno0ZVlnYzNkTlFP
RTR+elYlWFgqfWx+Tz4oYmA9d3dxIX1GZj8oJWNJdjJ2Nm5WYklLcnFhMmVjdjY9VkFyPm0mQAp6
LW1MakQwVjwpVWMzRjw+QzZFQEFiISRTNzhIb3BJOHZVbn4rIzQ+NlJJNk4wP1EmMjJeNFVWfGx9
RG4lc25MZygKek5IVj0wWGdPWWckQ2wtIytyUHliRkJVclA9ZDRkX0NffkolODNiR2M3biElc05Q
YSFzWnZDcl51WXlIMkpRU2sqCnpJXmpWQzdEZmsocHZRdVNaRXM1OXF+e3BYVT9BPmxlb1M+cSp5
RGc/SDJXIyUjeyVPc098e1pjNFEmKUkyUDQzLQp6S3BmOUw+TWg8dUluRXYpU3Y/NkFyNT85SyV8
cTlvbldoR1g2fXhQdEw0NUZrWnI2NHpeZXt9WEdAS2MzRlBSIWUKelItTjI0P3heYD5GPSQod1V7
NHtuJjxAbFRSckxEI21IcTl5Z0wtVVQ5UUlXKkZrRkhqPGE9O1E2QmFqbGBZMlQ7Cno3ME1wVDRz
RmswdjlJYDE7VmVhRCRPN2pqaFBhTi1oeE9IKTZlekYlOXkhKSo9JFBUR2AqPEBZYW8/K0V5KXst
Vwp6Y1VleT8lU0hVdW1jck48WipCfDtFaTJeOFFfIV8tXnRpZU1KX3RLdGFXJUQ3P0M3KzlNNUFJ
WEJyfjtKMjZuTkQKejReVCtDVWJ2cnc9UyRuQCM0RTh1KSl2U1NeJnBJJGw+KEs8PmxtRGxeUyQ5
OzApMG8+dTZUQWg9dUdxSkNURFFGCnp6RGZmIXQmT1I+PjxpZko0e0x5VnpLeHBQVV5sMF4+RV5r
QV5FQFZ3IV9+SmY9K3deMHFTZH5+WTlnYig3WC0qaQp6Q2F5fU9geGhpcmA2bS14aEFrViNCcEty
O3ZxfTFVV3lFc2BeRjJgd2ZOQHZHO154UV9uJWg5cVUzPlp1N3JYOzcKejM/TClXSVFAS31YODEk
RmFRTVkmR2VyWExxMzxoc0h5S2UpQmlNUEtwM2BwOD5ZRSpGcl5Pbm17PD09PV5HP0BMCnp3c0NQ
c3NBUzRBRihhJUQpPjFrbG1INEhfKSs2MUd0cUZhfTBtfUh7NTY/aXBNY3BsYnplWDZrdXJ3cSEo
WHJeZAp6VVY0V3VRbCRmI3QmIWlSUiQ2eTRfNHNtUz9BQndRNkYxWDI5MTE2WEB6KmZSJGcxaSpZ
XjNVUF53QztDeFFiX2kKelM1PXxJVypKcjZoRSpqTSY0aWBvZ3VsIzBmRCk4UlQ0ME45YTdDI0Vv
Nmt+eVIhT1JFYDV4fE93R1VpUTFVcH5YCnopSig/RSs2KGBDMVg8Tkl2e3hnWE1AXyFFS31ib3ZO
PSQxaGQ2T2x0U19LVStHaiZxUEludiEpYH0+fDFIT1cqRAp6e2J7P0Z3JG00dl9sRGY0PWEwWm85
Pj1GPmkkV3d2RGh1QXJaPD5aK0tfaig9PjdzNjxtRTl0PnUmZkZqQE9TNDQKeml+WCFfaWFuQHY7
LWYwJFcoSVoxQjhUMyNYRlozfGErR0orLXZvK3lVJE5rUipVO0g4YD1aUzM/UkRlRl5AMk5FCnol
V25mZU1Pc3E3UlplXnZxMihhKCUzPlZPKHklXzk1NWw0Ul49KCkmWmx2PjdPS00rOT1YZTlYMytJ
UEd3OG9GXgp6LSVjSW8td2hxXj0oI3ZYY0Z3RTJ8Qzs/QTFYfTsxeDF1NE50Ymx8e3h4XzhAKX5p
Sl93TjgkN0pvfVVfJUt9UmkKejZgLWVhemp5PV5RbDdoZUkobTF6aSpgVEcmJF5IV0R9UWdJPE49
V25UMiltVk13dUJoRW1xXk1jN0hrOVVsOEAxCnpEeHBBR2tWJmhYemZEfF9TTGk/OyE1THYhTmhx
VysjNz5XOXBEfnNme0xZfkNFS1FpPTwpZW4tUztERmkhUHF0OQp6NiNHfUZEc1JJfHlZYDt6d1Fe
dH4lPmw+NDNYeCgxI18pYHA0WjBwekxKRyNBPkJnfXMjS1N9UmVNNkpreDlDNzwKekJRVDFTUXB4
VWZoPDcme1VOZ2pgbHtnZzlsMD5xKHs2c2JuJTg3Q0NhdSNqUCNoKiNVdClYejlXJlhKQiFWSmIl
CnpMSTgmMCE0JU0jXjV0PUJjeitBXmpWPXQxblJ3Vkwwc0FNWEBhK0IxdlJfZkpVIWBlZXA7dy1a
VS1LeDgwZTdvIQp6eW1mPU5rRSh2KCRiKzk+eWYjTWJFTEczblU+QlpGdSlrSXYxaE1vY2FIOXFW
aTVTKjI8dCRVbjhfM0RSazR5TygKei01WEt4K09LTi0hMDNfYXNDbTl6ZzE5YVdTJGw4Qk9nTXdL
cz1+d1RRPX5sYDRSeH5KWUwxUWRjR2lXc3w0Yi0kCnppVCM0cyQmQ0RxKk5telZYOz1zMlR+UCpJ
cT5PIW5KTFBIOV95ZW8jVlRUWm1YIWk7bEdnfjRRdmRzOGR1UVIjTwp6M241bSExZjRjfUh7endH
RE9+eDhrTyQ/by1zJD5jRH1GQHs0Q0BSS3h6TmN5cTclJk57d19JJWNYYU5CcDd+fHwKeiY+T21e
dEc+I0ZxKyU/OU5BfEFUR35Gez4+YyF3UkBJcSYpc3dsX05BTTNDTihqNH4/YEYle2tUK313VEwr
LWdeCno/Tkk9Jl9aUldVQUZ+YGgtPCZZNCRNNXBmKXRTZUU0TU0+VyM0ZC09b3BWMyE3WCVTeyhM
b1BlY01SPmNMa3w3dwp6RXF3dnlWWDc/fCUlaj5VWTNaazlJc3BGMWRIcm8jazxBfEJFUyswKyQ0
ZUNwcXgpNE9nWTw0XmtLK2BiTUAya24KentwQ0ZpeDJDS3VLSFBYJD9eU0NWK0BFSk9kNDVQTF4l
TnVyTl5XdjlkJmc9JmlMdmlzPUxrRmdWTmRLRVg/eSNhCnopIXNnV3E1aD5qUTxgKT1hcX1yNiN3
e0lzNmFoPH1Qc1daMSF9OTclWldZPkJQQTFlaE4/anI4OXpaM3NPMURgJgp6NE5neGR0dzU/Uylo
SWJpPDcxLXlJUGZgRjVEUShwV3E+eGlQbUNjb2FKLXo/bms4ZT8lblVJay12QEdNRUZuc2cKelFo
YFhrVyEpXkJOdyhGaUdnIyVHXm91cXFDPUArbG8wKyVLI0VBOEFQMTtyI2xELU8mOVYoMClNJFE+
YV5ofiVPCnpRRDZPfClzWkt2K31SY3R4MVl7anJkLUQ4U0dAVDVCWHkmcW07dlUqen5yS2tTMENx
WlM4aGc2WjRaRUNaYlJqQQp6UjV2VHNobDAjdXRoT3MoJHklZTM7KzE2PkBmUH1SeEVhe0hCXzZ9
K1YrOSRrOzF7LSt5ezwyY05IWW9gUmBXRGwKek1DUjIkSmc5OGw5M1cpfGJ7fHc0Oz1lX2lIITxv
TjYtMVdoYFlQQ2pLNExzck9wTjk1dGdOanBHeEFAdEh9ek1KCnpSaXtaNDxTX31CQzVtI3lwc2Yy
LWdZSHctOXV5WCtOaDQjUzlES2lxREh6MzAjREp7PF89a3p5KVB3bz5VYk5OQQp6Ui03OHtCR0Z5
S0peUXM0KyhnM3FwRnd8dyNYaEVFZkBGNSllOC0+SW4mYz1KRig+YlQjNShHUnBuUjN9dWU0JHEK
emkjJjI3bjBMe2NWXjd+SHpeRjhBe1MqI1MmYjI8R3AoI3U0dnx+dUEhckFgXzZrU2JlMUVqM08p
PVJHVzVGQHNSCnpDbXRwRlh+M05re1I4eUdveEVOV3ROVTxpQnxqcGsqeyFQLWE2VnA/RlAoMSlI
aEw3WXteM3FaIWVLPjJqXj9aQgp6MGhiUUhubFR8cTx9fG1sZk01ZXZTJVJsKHVBMVZWPkp7cGx1
MmcyQT5Id2MpJTxPX0A2flk1TUB0bERwTVlqZlMKelR9Snk7REdoUzIldHdnRDteJFY1JXpmIzht
O09XK0YxMDNJa1ZIdnlrPWA9WTU/WEV0VEtkSkNHfClLVS1VIWtsCno9Kkp7cXJpfH19ZzZPa144
aDtndVZteGJII3d8R29TNll6K0p9eXpQeDt6cUNYNGlOU2BDX0xUM3FvJHJqXjxmTgp6JF5NJmJW
bGlWJXFDK3ozMz09IU1ZUGA2WntQQGphXz1RdVJ3Wn0zNjFBZTEkQ3k2M3ZseUw3STcwZnBHaWV1
SCsKemZ6WlNQVFZzLV9NXjVxc0otWCVXVVUmN0phKkZVPnRObS1tWW1hcnB1a21mazJUU0owKzR7
ZHN7UXNjQUlYb3BKCno1QDZrZHJpPXBkdTBed2A/eHFTTS01eT83ZD9mWWBFLUVWUFp7YXRxYzs5
czNsS1U8eSNaUG55cCleWTM1b0kwRAp6KUVkTl4zPiYhMHYmQjVsSFI5ditIIUNPaWI4TXE8O2Qz
WWtZI0xkTlF7aSRvLUUzX2E5NUwmbzh5TiZhUXghLUQKenxON0wkYEd3WGxLdlNDdVpwYi1YZ3RP
ZSlqWjQkTGhtSFlLaXd3I3x6bCZ7VW98S1gxPXpaREBqaztkUF9VMDY0CnpKK0o5JjV+PnxlOFFZ
KzRSZFRYQWpqRk5URStvRVJBaDRFZWNmP31uJEBAMWVHQilJdDdDaUREYCl7e1NXN2kwMgp6WmUq
LWpfO3ZhdkJtczImd15xcT56fkgjSjNDTH1CRCR3dTY+TSYqfmtiUUFJeyMkcn47OzJ9Iz5HPGgo
SUNwdygKeilKKXhnXlR2STltZUZJWD48UVklOXx+JDtZNHNuMCRMbElXbyUqYjdzM3UmM0tuVHh3
NHhVbjQhaH1FeCtweU9oCnoyfWU7O3YmbGwxKXl+YDFaN1V0ZSZ3Ukl3JCp2NUZzPDtpIy1SYlRE
dmw9dXJOZH5nPSFCUEohJmpqe2IhKVFVRQp6a1k3T3cyUE5wZTBmcC14SkhGc1luWU43JW50RmRV
QSlGbnVGU35RRUVGZ2VucDRfSSR5aCFyaElQfFUwY0F5e2EKemlfeWEjOTA3YjhfdmBpViRqKkox
OU94Sn1xZlluQGZldGF4cFR8TUgoI0wtR2VtcEBqWXAoMThlS09NVDhiLT8oCnpPWDsxcV9CfUp6
SzYqQUp3SyhHWGBgPWtqcndIVUdxX3dwUDM5blFNS2w1TjgyYWhKZ3Y9Q3V8IUxeNlVqQFQjVAp6
VW1ATkZec2Q/I0o+TiNDWnJxQyl7anYoJmo2KmxHN2psMGFuS1EyRGJVaEVaTTZ5R2RxUFp8aGhV
PXA9eEtsO0sKejg/bDRESSlveTw4UzQhOVJEajNBaT0hb3hGVnJTNVZ7M2h1R0R1Pit0WHp1fHVn
YVdySC0+eVJ5TmJydDNxfiNeCnokZ0VHUDdxQXAxV31WQn4oc3NgPmBHZl5AJjEqbypnZTFnfj5Y
OTNuPmFsYmxqK2UjYUllci1uQmt3ej9VKSNndQp6TVMzSzlIVzg3YkA2bWFtdTFKV3UwO2Rqc3FW
Tnh2bnAjS1JNeU5uTnI/dztmYnwtRHlMb2JKRjtSfkgxK1YocUMKemsyRUs9bTJzb0ojTH5Wb0Vy
Kk5zdEJeJFZ5VHZveXFKZHZEMmtMa1B6KWxyOWYoVytyYVIrV1MpJDAzRUtGUDFrCno7Rk80e0Vm
NENWIVVJVy0xVDlReGB6TDc7JGFEZGxgZ1pvKFpDZ3dXI2U9cEl5YX18SWh4dTN5UGNxQVpIcDde
VQp6T2BeIWFjNy1IR0Q9KENWRkkxZXI3Nk5ge0hEdGM5e31ybDRpKl8me042ISEwPVJmWk9xN2B6
bjBhTD12O05YT2YKelI4JGMqcThpeFQ0WlBuQEhvcW4+a2tJMjZyQyhtWGMtOGMxZiZBek45Sk9q
K0ZkPnUxdkRhYXxlKzI5dHcyKjIkCnphbzhlc0kje0FkMHthYldQfnRUM0JQP2N7OW1oYDBQfn18
R3R+X05OXzhxLU5ubGZIQW89X3F+a3JGP3J7WjZrNQp6JHM3T3k8Q3g7WT1IMXQ2eXVJJG5odH1J
aDhtbHl5cnU1YmNXWVVxfkkqQmp0c1FXflFwazw5YCNJRCM4Z0QwaDUKekhoMGkrcUMhWFlQdVpH
d144akR8NTwzVXdgI298a0RVb1E+eGU3IXk0Ul9wNEsmLUAwb19JYyk0MHBxKmN3YS1BCnpKfHxA
KmEpaSskd282cEtmS3RkKTtlJFJVOG5kMDNeUThJIUpDUTV1TiloWnEhK21KO2VBZDVmJXRDcmN1
aj1gIQp6O1h7P2VkWnR7cmdNTHVCb2QjfjF5YE4ha3dre1lVX2E9I2NGM2AhQTA+YmctOSgxZ3Q4
O2M7KE1pTmQwPShXKVAKeiNvVzdzciZlJnUySikoPXM2PDJoWDJtU01oYVFNaGI2dFRRSWF2TV8m
WiNAUEJkS0dYejtaTl52VXA5QzxITkE4CnokcGZ2PUVjO0tZaWlKdXB6M3JiciZLeV9sLXp8Jn1q
WnwyNCRpIXRKWlhKPiQ1O0dSU3lZKTl3cm4jPHR5UG1DVQp6QEwmKj05NGo4PHtrSStraWtgKyR0
NE56S19rWFRTRm5mfmxITig2eiRmI0Vmd1JRa1MrXnR8PUVMeXB0eFUjR3QKejdSUWBLWXxmdHJ4
aTFXPG9RczdfJlFOIUtgZEFrfHBTZU0qbkAten0kZ1JoZWdTd3I8SGo5YD50RjVGeUJfejkmCnpH
SDUpOUBhaFAkUUU1dkpGaDBkTXU1c21JNHVQOUJ0VVRWfCFRWTl2eVl6U2A3dG8wI0MqPUpjcm9p
Z292SytSbgp6QmdHNV9Jc1VhfSVGWkU2SFhOOTFxVjYlU2AmeGtuYVZtbS1BWSYodGpaQ2lOZCFA
ZCNRfTBHaDNTUjNQaG1nMyEKempVNyl0dGMhLWQqYEZgV0F4dHBnSlFqUlQjP1o5QGZDUm9vdGVq
V2E7NTR7akpoKndJYDJINGlTYmxUYWpocjIoCnpaREhjTkp7K2x7eEJkbEdHT3VYT2h0LUg+OT9k
eS02LTJ5QkFHXmlWRT0kTWBQYm1ePnNYdjRBe15uQCEkN2w7Mgp6K20mMXFYfWFkbj1JU04lVFY+
aXY8N14/NUszYTdqUzFtLWJkbWsrP280YShOOU5KXj9sflZ8SmlrQjQ0U0pDejgKemBuWmd8VzA7
a1R7X0RKa2h8aTNCWHtwXjB1LUdAcUMjKkxWT0c8c1VVQTV8JHs9d1MyVyNHNGNPUyRqNnVJTD5f
CnpNcXc3Y1B5RjV4cChBaio9JilzNm4kQEgzKGlIVjBGJj1PNzBKRkg3SE9WPHpzQTI9VURJdkUz
Nnt5JlNwWCNleAp6Qm9VLWFSNEJRY2k9KmwjZG1gT0Y9fDQxU1NORCorZmhOVjtHJTloUTFTdXFQ
cHtzOClJPXxCPWcoRmE7TnRuVDgKel5qdnE/JTReO3srNjclZkgkNigtO1dDe0w/TnpjP21CekFa
S2FWVkpQe0o+ZTdTQThNUXZHO2wmaiUmKkheXnQoCnp2a0kjVSpLOWRJeWdMMiMxWDNZYWRqMiYr
YUZ9ckpvS1UoZkohX3dKJllZZStzNVlFTThUK1VsKDRxSz9aZ2VwKAp6QHVzci1NaE0tZEhVJmY4
Wk01dyFwSFlfe3JveiMyfDg0eD0lQUhNJG9zUmpQRHA1dW55RVVHcTEyOFhtRF9aXkgKemVEKHFY
Sj5gK3tJRGFpYmdXcUxFRkcrNkkhMTJoYy1WMUdBI0F0Y21adzxRS0lsTktvKk9uKHplfSg0IS0q
Y0wjCnplKFchWVBQYX5LQX45IzM7WH1FQ1hGWlNrIX54LVFJO08kRERiPlNGPU5TdiY+e3d4Wm1J
TTFjUVFELTlOYTJSYwp6SFd9SkpxdlBiJDk0ZGIpe2lOYlh6dzliVm1DUj4zd3E2LU1yXjR4KUxs
d0AzZ3F8NzE5RChaSEJ8MCgqTzRRYWoKemtZZ291aUQlc2gpYlR6ZHpRazNXYT85KmBsVzxHJjU9
VkkxX3VZfVNQOEU7WiVpbG4zJXd+K1ZXM0gwMXFQUGt4Cnp1PTd0LT9feXRTVEtKeXoxcEYyXz0j
MkRxbz0hOX5fUGkqaV5oPGNINl4yST0yYyRKZjM2XzFiQ2M2bTZefmpMRAp6JHRLd0x8S1IpV2ND
YW0oejdhSE8+RF9sLTItRmMlQnMrdiMkeXUzcEI+d1FOeXFMOChPVUpIcDNIaVhqdnxUN3sKel5i
SjtxUjQoKjc2RjhoVEtuYSloSHpKLXh5NmQmbUdmRX1kKkc0S2lYPDt6ZXFncGtodCUrQz0qd2di
NklQaERTCnp7fkdSISY9bnxJclExKUNjeUgwP0ptXm1pKDJjaSQtKjh3dEU5bTQ4O1craX52NWZ8
ek4+UjlKVTFgXjYoSm49Zwp6UUkrWS1MRnZhOS1mV0JyK1doNzM7NV9mc0ZBZjN+TWF2PG5kVTAt
TU4/WTE0d2d1RmttUCNNeHRtZ1h8ZE00Nk4KemI2IU5kb0ZqQ1dtfC1tfCpUMldEKzk9NjhZTlk4
VEwkMzRgXyg5KUZGZyE0S0BnN1MhT3VUX0NvY2UjbT5yYUx9CnpeV3MqOSVYTTRuUjJSRk95YGBJ
QSYpVl40TmIhNHolJkFEQlFAKypLQHhAZ15pQUhfaGYxJnRPMjdxVk0oeyQqcgp6N15VaThOcnJR
dUkkflE+QUlYfUloZFlmMjskcio1UUxZd1V5QlJEJTF1X2tMYXhlYDI0NT5leThDflYzVGp5O04K
emQ7KypvUUUlaE1mRiRRa2hqdHB1ZytoNzRVY09FdyowV0k9NUNDUDwkaX5jIT9KcFdsY3EpNlQ3
IyVDbEZZNENXCnpWKTlzPVBqUjBOdzM4KG4lQGE2ODA9MWZ2Y2B2fGRtc3k8TWBMVUQhb2IqOTc0
dmhXelVVVVEjVE1YXzgzfDdEVQp6XmMwMWVeKSFoe1dkS35LYiNpKHBCITsmLSRPbDxgTXRxPmtt
KSZ5NEw4OzVUMipPeDJDV34mb3doUSN8Vlk8M0kKenpJT1BkNUBARHd3UHZ8RHhqWWladzJZZ184
P1loJkQ5Vik4SWRqQENyM01MaUp5VHxpUkp3Z31pbjdOQUF+UGRoCnoqfE90b2w8PnR7WnwoZW9Y
UV5vX2w9OW9sKHV7Qz5FQjNeKXhNU1hYVTNZbjJsMnNTKUozZjkhWCRUWHVrJGtYJgp6ZVlZdTxS
NEt9KzEyMzFvOEx1SHZ8S213PWAkLSUpbmFPS3l3e3lnT215VWFZfEpXIThMeXFOR1hoJkZxMTRm
ajIKemNqKH48T3RteyE2TFY+JndCQkVRMHgrVnBfOGZuQVFYQm4jP0dvbHg8ZGxlKV9TXm1rTHNe
WU14cEQ+ZlokfSppCnpiJGBsKGkxd1UmYjhnYWFYekViO14hQUtodk50bHQ5ZHJZOUc9O1FySzhx
WWxOTFA7PC03fjYxP3QmU3lwcHQmQQp6KiVmfTYhLTAyfnBWaHJJeFlKVXNAcCRqNXVfSyU4PFlR
anFvaExNVzJfOC0mZXk2X0RmOX5yfT9NVkx8NHxwYCoKekhZSjM2YjlwUHBXUEdFUVpnRXBYWFZE
QStobiM4JikmclZSRmgqcD97ejs/PXJsenEhI0FkTXQyWm59ZEQyPntRCnpEPF9wei1DLT58PjRF
YFNDJGBaSCtvPWs+dl57K010Tm1pUUZiQkpuPW0xMFZhRFp0Z288YipqIWUhT2hDK01tPAp6KVA4
PkFraVRwXnczJkt9eHhlM3U5KExXJURfRSNUOVlzNUdNdzhWZFoqeShTRDc4LXtGRnt2cVAjM1B7
NjxJMzwKem5jKDUqZDtBYTtuMkxjbU5qJHFzJnxiJCZqal5iYj04T014bn4lSlFUbTxWc3d3IyNo
Umwqfk5hKyYrPzVkfVVzCnpPJTxvVmpvYiZnO00kZ3w0RlROVEFeeTctRkVAXnFKdVZoTGd2JWpw
aUVrMiQ9OWJMJmdrZEMkc35HYWtqdHo+ZAp6PEtfOCM8eWxGWkZtMmo7P2M8NXZKaFMtPzQwMCZI
XjFQJk9vRV5+blplcjNqLWpoaDQ8e1drIXJqQnF3b1pFakYKejRzNkA8PytDO3smZEpYRGpLeEZL
OWMwQ0h1VGZCb1o9IWhPOXFJPHtGcjEyMU89Jj9WMTZNdHRubjgtWDhmQSRDCnpSbmlLIVZWMiFY
eCl1WShUNSprWCtTdzwqVjckYzZnZ1NveEl7I2l3NzhaTmtuSGt+NjBtZykzV0h2JlZIcXErIQp6
cmAkaDFyeTwmNUkzKUNDVnBuTz1FSyg2JitfbisrTmU2aUNKVF4jcnRwITlIY19fKH5EJEhFYU43
MjRNUHJvQz8KejteWFlyKmM3U3g/VT9II1otfGZRPSljdXVwaDJMVXQ9SCEpakR7YjckYVhQb2Ex
bVgwdWVHdEkyT19IU0NTc2VzCnpTcmR8T1RZK1FnO2xXY2tVRjRhMS1ZeXImbEc9bnJmZ3Z3dnpr
Znp5KWo0K21SYWMhelVffD50SU8qUk8+VUdmJAp6WEBvYTc8Q3RwPmFNVyYmeSZ3NTFqQHBafDls
VEtZYVc0QSM1ZDNeXkhSSEJzO1Y8JkB6YVppTjVgWF9Jeyh0b0UKenpYaUZGJitEaEhia0RjdnFn
PUBLfDhSc3Q1JSp2SjJQa1l0U1NTRGJAJjdaMUxqTWFKNHc4TC0+eDB0TWNWYlFGClVrVXt0bEQr
d2hwdHM/YkQhdTAzPTBqaEBBclRfb3sKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcXF1aWNrd2Vidmlldy90
c3RfcXF1aWNrd2Vidmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rl
c3RzL3FxdWlja3dlYnZpZXcvdHN0X3FxdWlja3dlYnZpZXcuY3BwCmluZGV4IDJlZjlkMWMuLmE5
MjQyMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMv
cXF1aWNrd2Vidmlldy90c3RfcXF1aWNrd2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xcXVpY2t3ZWJ2aWV3L3RzdF9xcXVpY2t3ZWJ2aWV3LmNw
cApAQCAtNTAsNiArNTAsNyBAQCBwcml2YXRlIHNsb3RzOgogCiAgICAgdm9pZCBzaG93KCk7CiAg
ICAgdm9pZCBzaG93V2ViVmlldygpOworICAgIHZvaWQgcmVtb3ZlRnJvbUNhbnZhcygpOwogCiBw
cml2YXRlOgogICAgIGlubGluZSBRUXVpY2tXZWJWaWV3KiB3ZWJWaWV3KCkgY29uc3Q7CkBAIC0y
NDQsNyArMjQ1LDcgQEAgdm9pZCB0c3RfUVF1aWNrV2ViVmlldzo6c2hvd1dlYlZpZXcoKQogewog
ICAgIHdlYlZpZXcoKS0+c2V0U2l6ZShRU2l6ZUYoMzAwLCA0MDApKTsKIAotICAgIHdlYlZpZXco
KS0+bG9hZChRVXJsOjpmcm9tTG9jYWxGaWxlKFFMYXRpbjFTdHJpbmcoVEVTVFNfU09VUkNFX0RJ
UiAiL2h0bWwvc2Nyb2xsLmh0bWwiKSkpOworICAgIHdlYlZpZXcoKS0+bG9hZChRVXJsOjpmcm9t
TG9jYWxGaWxlKFFMYXRpbjFTdHJpbmcoVEVTVFNfU09VUkNFX0RJUiAiL2h0bWwvZGlyZWN0LWlt
YWdlLWNvbXBvc2l0aW5nLmh0bWwiKSkpOwogICAgIFFWRVJJRlkod2FpdEZvclNpZ25hbCh3ZWJW
aWV3KCksIFNJR05BTChsb2FkU3VjY2VlZGVkKCkpKSk7CiAKICAgICBtX3dpbmRvdy0+c2hvdygp
OwpAQCAtMjU1LDYgKzI1NiwyMCBAQCB2b2lkIHRzdF9RUXVpY2tXZWJWaWV3OjpzaG93V2ViVmll
dygpCiAgICAgUVRlc3Q6OnFXYWl0KDIwMCk7CiB9CiAKK3ZvaWQgdHN0X1FRdWlja1dlYlZpZXc6
OnJlbW92ZUZyb21DYW52YXMoKQoreworICAgIHNob3dXZWJWaWV3KCk7CisKKyAgICAvLyBUaGlz
IHNob3VsZCBub3QgY3Jhc2guCisgICAgUVF1aWNrSXRlbSogcGFyZW50ID0gd2ViVmlldygpLT5w
YXJlbnRJdGVtKCk7CisgICAgUVF1aWNrSXRlbSBub0NhbnZhc0l0ZW07CisgICAgd2ViVmlldygp
LT5zZXRQYXJlbnRJdGVtKCZub0NhbnZhc0l0ZW0pOworICAgIFFUZXN0OjpxV2FpdCgyMDApOwor
ICAgIHdlYlZpZXcoKS0+c2V0UGFyZW50SXRlbShwYXJlbnQpOworICAgIHdlYlZpZXcoKS0+c2V0
VmlzaWJsZSh0cnVlKTsKKyAgICBRVGVzdDo6cVdhaXQoMjAwKTsKK30KKwogdm9pZCB0c3RfUVF1
aWNrV2ViVmlldzo6c2Nyb2xsUmVxdWVzdCgpCiB7CiAgICAgd2ViVmlldygpLT5zZXRTaXplKFFT
aXplRigzMDAsIDQwMCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Ry
YXdpbmdBcmVhUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVBy
b3h5LmgKaW5kZXggOWQ3MjQxMi4uNWFkMDNhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvRHJhd2luZ0FyZWFQcm94eS5oCkBAIC04Niw2ICs4Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIFdlYkNvcmU6OkludFJlY3QgY29udGVudHNSZWN0KCkgY29uc3Q7CiAgICAgdmlydHVhbCBi
b29sIGlzQmFja2luZ1N0b3JlUmVhZHkoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgdmly
dHVhbCB2b2lkIHBhaW50VG9DdXJyZW50R0xDb250ZXh0KGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9y
bWF0aW9uTWF0cml4JiwgZmxvYXQgb3BhY2l0eSkgeyB9CisgICAgTGF5ZXJUcmVlSG9zdFByb3h5
KiBsYXllclRyZWVIb3N0UHJveHkoKSBjb25zdCB7IHJldHVybiBtX2xheWVyVHJlZUhvc3RQcm94
eS5nZXQoKTsgfQogCiAjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgdmlydHVhbCB2
b2lkIHNldFZpc2libGVDb250ZW50c1JlY3RBbmRTY2FsZShjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JiB2aXNpYmxlQ29udGVudHNSZWN0LCBmbG9hdCBzY2FsZSkgeyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF5ZXJUcmVlSG9zdFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvTGF5ZXJUcmVlSG9zdFByb3h5LmgKaW5kZXggOWNlMGRkOS4uODcxZTNiZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xheWVyVHJlZUhvc3RQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXllclRyZWVIb3N0UHJveHkuaApAQCAt
NTUsNiArNTUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRSb290Q29tcG9zaXRpbmdMYXllcihX
ZWJMYXllcklEKTsKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwogICAg
IHZvaWQgcGFpbnRUb0N1cnJlbnRHTENvbnRleHQoY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgm
LCBmbG9hdCk7CisgICAgdm9pZCBwdXJnZUdMUmVzb3VyY2VzKCk7CiAgICAgdm9pZCBzZXRWaXNp
YmxlQ29udGVudHNSZWN0QW5kU2NhbGUoY29uc3QgSW50UmVjdCYsIGZsb2F0KTsKICAgICB2b2lk
IHNldFZpc2libGVDb250ZW50UmVjdFRyYWplY3RvcnlWZWN0b3IoY29uc3QgRmxvYXRQb2ludCYp
OwogI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL3F0L0xheWVyVHJlZUhvc3RQcm94eVF0LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9xdC9MYXllclRyZWVIb3N0UHJveHlRdC5jcHAKaW5kZXggOTJmZDU4MS4uZjcw
YTMxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L0xheWVyVHJlZUhv
c3RQcm94eVF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvTGF5ZXJUcmVl
SG9zdFByb3h5UXQuY3BwCkBAIC02MTgsNSArNjE4LDE3IEBAIHZvaWQgTGF5ZXJUcmVlSG9zdFBy
b3h5OjpzZXRWaXNpYmxlQ29udGVudHNSZWN0QW5kU2NhbGUoY29uc3QgSW50UmVjdCYgcmVjdCwg
ZmxvCiAgICAgbV9kcmF3aW5nQXJlYVByb3h5LT5wYWdlKCktPnByb2Nlc3MoKS0+c2VuZChNZXNz
YWdlczo6TGF5ZXJUcmVlSG9zdDo6U2V0VmlzaWJsZUNvbnRlbnRSZWN0QW5kU2NhbGUocmVjdCwg
c2NhbGUpLCBtX2RyYXdpbmdBcmVhUHJveHktPnBhZ2UoKS0+cGFnZUlEKCkpOwogfQogCit2b2lk
IExheWVyVHJlZUhvc3RQcm94eTo6cHVyZ2VHTFJlc291cmNlcygpCit7CisgICAgVGV4dHVyZU1h
cHBlck5vZGUqIG5vZGUgPSB0b1RleHR1cmVNYXBwZXJOb2RlKHJvb3RMYXllcigpKTsKKworICAg
IG5vZGUtPnB1cmdlTm9kZVRleHR1cmVzUmVjdXJzaXZlKCk7CisgICAgbV9kaXJlY3RseUNvbXBv
c2l0ZWRJbWFnZXMuY2xlYXIoKTsKKworICAgIG1fdGV4dHVyZU1hcHBlci5jbGVhcigpOworCisg
ICAgbV9kcmF3aW5nQXJlYVByb3h5LT5wYWdlKCktPnByb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6
TGF5ZXJUcmVlSG9zdDo6UHVyZ2VCYWNraW5nU3RvcmVzKCksIG1fZHJhd2luZ0FyZWFQcm94eS0+
cGFnZSgpLT5wYWdlSUQoKSk7Cit9CisKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9xdC9RdFdlYlBhZ2VQcm94eS5jcHAKaW5kZXggM2QxZDJiOC4uZjVjOTY2YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlUHJveHkuY3BwCkBAIC0z
Myw2ICszMyw3IEBACiAKICNpbmNsdWRlICJEb3dubG9hZFByb3h5LmgiCiAjaW5jbHVkZSAiRHJh
d2luZ0FyZWFQcm94eUltcGwuaCIKKyNpbmNsdWRlICJMYXllclRyZWVIb3N0UHJveHkuaCIKICNp
bmNsdWRlICJxd2toaXN0b3J5LmgiCiAjaW5jbHVkZSAicXdraGlzdG9yeV9wLmgiCiAjaW5jbHVk
ZSAiUXREb3dubG9hZE1hbmFnZXIuaCIKQEAgLTQyNiw2ICs0MjcsMTMgQEAgdm9pZCBRdFdlYlBh
Z2VQcm94eTo6cmVuZGVyVG9DdXJyZW50R0xDb250ZXh0KGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0
cml4JiB0cmFuc2YKICAgICAgICAgZHJhd2luZ0FyZWEtPnBhaW50VG9DdXJyZW50R0xDb250ZXh0
KHRyYW5zZm9ybSwgb3BhY2l0eSk7CiB9CiAKK3ZvaWQgUXRXZWJQYWdlUHJveHk6OnB1cmdlR0xS
ZXNvdXJjZXMoKQoreworICAgIERyYXdpbmdBcmVhUHJveHkqIGRyYXdpbmdBcmVhID0gbV93ZWJQ
YWdlUHJveHktPmRyYXdpbmdBcmVhKCk7CisgICAgaWYgKGRyYXdpbmdBcmVhICYmIGRyYXdpbmdB
cmVhLT5sYXllclRyZWVIb3N0UHJveHkoKSkKKyAgICAgICAgZHJhd2luZ0FyZWEtPmxheWVyVHJl
ZUhvc3RQcm94eSgpLT5wdXJnZUdMUmVzb3VyY2VzKCk7Cit9CisKIHZvaWQgUXRXZWJQYWdlUHJv
eHk6OnNldFZpc2libGVDb250ZW50UmVjdEFuZFNjYWxlKGNvbnN0IFFSZWN0RiYgdmlzaWJsZUNv
bnRlbnRSZWN0LCBmbG9hdCBzY2FsZSkKIHsKICAgICBpZiAoIW1fd2ViUGFnZVByb3h5LT5kcmF3
aW5nQXJlYSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2Vi
UGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlUHJveHku
aAppbmRleCAxZTQ1ODAzLi5lZDQ4N2FhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvcXQvUXRXZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
cXQvUXRXZWJQYWdlUHJveHkuaApAQCAtMTM3LDYgKzEzNyw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldFZpc2libGVDb250ZW50UmVjdEFuZFNjYWxlKGNvbnN0IFFSZWN0RiYsIGZsb2F0KTsKICAg
ICB2b2lkIHNldFZpc2libGVDb250ZW50UmVjdFRyYWplY3RvcnlWZWN0b3IoY29uc3QgUVBvaW50
RiYpOwogICAgIHZvaWQgcmVuZGVyVG9DdXJyZW50R0xDb250ZXh0KGNvbnN0IFdlYkNvcmU6OlRy
YW5zZm9ybWF0aW9uTWF0cml4JiwgZmxvYXQpOworICAgIHZvaWQgcHVyZ2VHTFJlc291cmNlcygp
OwogCiAgICAgUVdLSGlzdG9yeSogaGlzdG9yeSgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdyYXBoaWNzTGF5ZXIuY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHcmFwaGljc0xh
eWVyLmNwcAppbmRleCA1OGJkMTJjLi45MjIwYzVjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHcmFwaGljc0xheWVyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdyYXBoaWNzTGF5ZXIu
Y3BwCkBAIC0zNjgsNiArMzY4LDcgQEAgdm9pZCBXZWJHcmFwaGljc0xheWVyOjpzZXROZWVkc0Rp
c3BsYXkoKQogCiB2b2lkIFdlYkdyYXBoaWNzTGF5ZXI6OnNldE5lZWRzRGlzcGxheUluUmVjdChj
b25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7CisgICAgcmVjcmVhdGVCYWNraW5nU3RvcmVJZk5lZWRl
ZCgpOwogICAgIG1fbWFpbkJhY2tpbmdTdG9yZS0+aW52YWxpZGF0ZShJbnRSZWN0KHJlY3QpKTsK
ICAgICBub3RpZnlDaGFuZ2UoKTsKIH0KQEAgLTU3NCw2ICs1NzUsMzggQEAgdm9pZCBXZWJHcmFw
aGljc0xheWVyOjp1cGRhdGVDb250ZW50QnVmZmVycygpCiAgICAgbV9pblVwZGF0ZU1vZGUgPSBm
YWxzZTsKIH0KIAordm9pZCBXZWJHcmFwaGljc0xheWVyOjpwdXJnZUJhY2tpbmdTdG9yZXMoKQor
eworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY2hpbGRyZW4oKS5zaXplKCk7ICsraSkgewor
ICAgICAgICBXZWJHcmFwaGljc0xheWVyKiBsYXllciA9IHRvV2ViR3JhcGhpY3NMYXllcih0aGlz
LT5jaGlsZHJlbigpW2ldKTsKKyAgICAgICAgbGF5ZXItPnB1cmdlQmFja2luZ1N0b3JlcygpOwor
ICAgIH0KKworICAgIGlmIChtX21haW5CYWNraW5nU3RvcmUpCisgICAgICAgIG1fbWFpbkJhY2tp
bmdTdG9yZS5jbGVhcigpOworCisgICAgaWYgKCFtX2xheWVySW5mby5pbWFnZUJhY2tpbmdTdG9y
ZUlEKQorICAgICAgICByZXR1cm47CisKKyAgICBsYXllclRyZWVUaWxlQ2xpZW50KCktPnJlbGVh
c2VJbWFnZUJhY2tpbmdTdG9yZShtX2xheWVySW5mby5pbWFnZUJhY2tpbmdTdG9yZUlEKTsKKyAg
ICBtX2xheWVySW5mby5pbWFnZUJhY2tpbmdTdG9yZUlEID0gMDsKK30KKwordm9pZCBXZWJHcmFw
aGljc0xheWVyOjpyZWNyZWF0ZUJhY2tpbmdTdG9yZUlmTmVlZGVkKCkKK3sKKyAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IGNoaWxkcmVuKCkuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgV2ViR3Jh
cGhpY3NMYXllciogbGF5ZXIgPSB0b1dlYkdyYXBoaWNzTGF5ZXIodGhpcy0+Y2hpbGRyZW4oKVtp
XSk7CisgICAgICAgIGxheWVyLT5yZWNyZWF0ZUJhY2tpbmdTdG9yZUlmTmVlZGVkKCk7CisgICAg
fQorCisgICAgaWYgKCFtX21haW5CYWNraW5nU3RvcmUpIHsKKyAgICAgICAgbV9tYWluQmFja2lu
Z1N0b3JlID0gYWRvcHRQdHIobmV3IFRpbGVkQmFja2luZ1N0b3JlKHRoaXMsIFRpbGVkQmFja2lu
Z1N0b3JlUmVtb3RlVGlsZUJhY2tlbmQ6OmNyZWF0ZSh0aGlzKSkpOworICAgICAgICBtX21haW5C
YWNraW5nU3RvcmUtPnNldENvbnRlbnRzU2NhbGUobV9jb250ZW50c1NjYWxlKTsKKyAgICB9CisK
KyAgICBpZiAobV9pbWFnZSkKKyAgICAgICAgc2V0Q29udGVudHNOZWVkc0Rpc3BsYXkoKTsKK30K
ICNlbmRpZgogCiBzdGF0aWMgUGFzc093blB0cjxHcmFwaGljc0xheWVyPiBjcmVhdGVXZWJHcmFw
aGljc0xheWVyKEdyYXBoaWNzTGF5ZXJDbGllbnQqIGNsaWVudCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR3JhcGhpY3NMYXllci5oIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHcmFwaGljc0xheWVy
LmgKaW5kZXggYWMwNTU4ZS4uNTI5NTVkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHcmFwaGljc0xheWVyLmgKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHcmFwaGljc0xheWVyLmgKQEAgLTEz
MSw2ICsxMzEsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVUaWxlQnVmZmVyc1JlY3Vyc2l2
ZWx5KCk7CiAgICAgdm9pZCBzZXRDb250ZW50c1NjYWxlKGZsb2F0KTsKICAgICB2b2lkIHVwZGF0
ZUNvbnRlbnRCdWZmZXJzKCk7CisgICAgdm9pZCBwdXJnZUJhY2tpbmdTdG9yZXMoKTsKKyAgICB2
b2lkIHJlY3JlYXRlQmFja2luZ1N0b3JlSWZOZWVkZWQoKTsKICNlbmRpZgogCiBwcml2YXRlOgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhv
c3QuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0LmgK
aW5kZXggOTg2MGE3YS4uNjFmYmUyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhvc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlSG9zdC5oCkBAIC04NCw2ICs4NCw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0VmlzaWJsZUNvbnRlbnRSZWN0VHJhamVjdG9yeVZlY3Rvcihjb25z
dCBXZWJDb3JlOjpGbG9hdFBvaW50JikgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNldFZpc2libGVD
b250ZW50UmVjdEZvckxheWVyKGludCBsYXllcklELCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jikg
eyB9CiAgICAgdmlydHVhbCB2b2lkIHJlbmRlck5leHRGcmFtZSgpIHsgfQorICAgIHZpcnR1YWwg
dm9pZCBwdXJnZUJhY2tpbmdTdG9yZXMoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2
ZUxheWVyVHJlZUhvc3RNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNz
YWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0Lm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhvc3QubWVz
c2FnZXMuaW4KaW5kZXggNmI5MTM5Yy4uZDJlOWMzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhvc3QubWVzc2FnZXMuaW4KKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhvc3QubWVzc2FnZXMuaW4K
QEAgLTI0LDUgKzI0LDYgQEAgbWVzc2FnZXMgLT4gTGF5ZXJUcmVlSG9zdCB7CiAgICAgU2V0Vmlz
aWJsZUNvbnRlbnRSZWN0VHJhamVjdG9yeVZlY3RvcihXZWJDb3JlOjpGbG9hdFBvaW50IHRyYWpl
Y3RvcnlWZWN0b3J5KQogICAgIFNldFZpc2libGVDb250ZW50UmVjdEFuZFNjYWxlKFdlYkNvcmU6
OkludFJlY3QgY29udGVudFJlY3QsIGZsb2F0IHNjYWxlKQogICAgIFJlbmRlck5leHRGcmFtZSgp
CisgICAgUHVyZ2VCYWNraW5nU3RvcmVzKCkKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L0xheWVyVHJlZUhvc3RRdC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvcXQvTGF5ZXJUcmVlSG9zdFF0LmNwcAppbmRl
eCA1MTk5MDA4Li5hYjE4NWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvcXQvTGF5ZXJUcmVlSG9zdFF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvcXQvTGF5ZXJUcmVlSG9zdFF0LmNwcApAQCAtNjYsNiArNjYsNyBAQCBM
YXllclRyZWVIb3N0UXQ6OkxheWVyVHJlZUhvc3RRdChXZWJQYWdlKiB3ZWJQYWdlKQogICAgICwg
bV9zaG91bGRTeW5jUm9vdExheWVyKHRydWUpCiAgICAgLCBtX2xheWVyRmx1c2hUaW1lcih0aGlz
LCAmTGF5ZXJUcmVlSG9zdFF0OjpsYXllckZsdXNoVGltZXJGaXJlZCkKICAgICAsIG1fbGF5ZXJG
bHVzaFNjaGVkdWxpbmdFbmFibGVkKHRydWUpCisgICAgLCBtX3Nob3VsZFJlY3JlYXRlQmFja2lu
Z1N0b3JlKGZhbHNlKQogewogICAgIC8vIENyZWF0ZSBhIHJvb3QgbGF5ZXIuCiAgICAgbV9yb290
TGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUodGhpcyk7CkBAIC0yMTAsNiArMjExLDggQEAg
dm9pZCBMYXllclRyZWVIb3N0UXQ6OnNldFBhZ2VPdmVybGF5TmVlZHNEaXNwbGF5KGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmIHJlY3QpCiAKIGJvb2wgTGF5ZXJUcmVlSG9zdFF0OjpmbHVzaFBlbmRp
bmdMYXllckNoYW5nZXMoKQogeworICAgIHJlY3JlYXRlQmFja2luZ1N0b3JlSWZOZWVkZWQoKTsK
KwogICAgIGJvb2wgZGlkU3luYyA9IG1fd2ViUGFnZS0+Y29yZVBhZ2UoKS0+bWFpbkZyYW1lKCkt
PnZpZXcoKS0+c3luY0NvbXBvc2l0aW5nU3RhdGVJbmNsdWRpbmdTdWJmcmFtZXMoKTsKICAgICBt
X25vbkNvbXBvc2l0ZWRDb250ZW50TGF5ZXItPnN5bmNDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xh
eWVyT25seSgpOwogICAgIGlmIChtX3BhZ2VPdmVybGF5TGF5ZXIpCkBAIC00MjMsNiArNDI2LDI0
IEBAIGJvb2wgTGF5ZXJUcmVlSG9zdFF0OjpsYXllclRyZWVUaWxlVXBkYXRlc0FsbG93ZWQoKSBj
b25zdAogICAgIHJldHVybiAhbV9pc1N1c3BlbmRlZCAmJiAhbV93YWl0aW5nRm9yVUlQcm9jZXNz
OwogfQogCit2b2lkIExheWVyVHJlZUhvc3RRdDo6cHVyZ2VCYWNraW5nU3RvcmVzKCkKK3sKKyAg
ICBtX3Nob3VsZFJlY3JlYXRlQmFja2luZ1N0b3JlID0gdHJ1ZTsKKyAgICBXZWJHcmFwaGljc0xh
eWVyKiB3ZWJSb290TGF5ZXIgPSB0b1dlYkdyYXBoaWNzTGF5ZXIobV9yb290TGF5ZXIuZ2V0KCkp
OworICAgIHdlYlJvb3RMYXllci0+cHVyZ2VCYWNraW5nU3RvcmVzKCk7CisKKyAgICBBU1NFUlQo
IW1fZGlyZWN0bHlDb21wb3NpdGVkSW1hZ2VSZWZDb3VudHMuc2l6ZSgpKTsKK30KKwordm9pZCBM
YXllclRyZWVIb3N0UXQ6OnJlY3JlYXRlQmFja2luZ1N0b3JlSWZOZWVkZWQoKQoreworICAgIGlm
ICghbV9zaG91bGRSZWNyZWF0ZUJhY2tpbmdTdG9yZSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
bV9zaG91bGRSZWNyZWF0ZUJhY2tpbmdTdG9yZSA9IGZhbHNlOworICAgIFdlYkdyYXBoaWNzTGF5
ZXIqIHdlYlJvb3RMYXllciA9IHRvV2ViR3JhcGhpY3NMYXllcihtX3Jvb3RMYXllci5nZXQoKSk7
CisgICAgd2ViUm9vdExheWVyLT5yZWNyZWF0ZUJhY2tpbmdTdG9yZUlmTmVlZGVkKCk7Cit9CiAj
ZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvcXQvTGF5ZXJUcmVlSG9zdFF0LmggYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvcXQvTGF5ZXJUcmVlSG9zdFF0LmgKaW5kZXggMzEwMTFjNi4u
ODUyN2M1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3F0
L0xheWVyVHJlZUhvc3RRdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9xdC9MYXllclRyZWVIb3N0UXQuaApAQCAtNzEsNiArNzEsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIHJlbW92ZVRpbGUoV2ViTGF5ZXJJRCwgaW50IHRpbGVJRCk7CiAgICAgdmlydHVh
bCB2b2lkIHNldFZpc2libGVDb250ZW50UmVjdEZvckxheWVyKGludCBsYXllcklELCBjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0Jik7CiAgICAgdmlydHVhbCB2b2lkIHJlbmRlck5leHRGcmFtZSgpOwor
ICAgIHZpcnR1YWwgdm9pZCBwdXJnZUJhY2tpbmdTdG9yZXMoKTsKICAgICB2aXJ0dWFsIGJvb2wg
bGF5ZXJUcmVlVGlsZVVwZGF0ZXNBbGxvd2VkKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNl
dFZpc2libGVDb250ZW50UmVjdEFuZFNjYWxlKGNvbnN0IEludFJlY3QmLCBmbG9hdCBzY2FsZSk7
CiAgICAgdmlydHVhbCB2b2lkIHNldFZpc2libGVDb250ZW50UmVjdFRyYWplY3RvcnlWZWN0b3Io
Y29uc3QgRmxvYXRQb2ludCYpOwpAQCAtOTYsNiArOTcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQg
Y2FuY2VsUGVuZGluZ0xheWVyRmx1c2goKTsKICAgICB2b2lkIHBlcmZvcm1TY2hlZHVsZWRMYXll
ckZsdXNoKCk7CiAgICAgdm9pZCBzZW5kTGF5ZXJzVG9VSSgpOworICAgIHZvaWQgcmVjcmVhdGVC
YWNraW5nU3RvcmVJZk5lZWRlZCgpOwogCiAgICAgT3duUHRyPFdlYkNvcmU6OkdyYXBoaWNzTGF5
ZXI+IG1fcm9vdExheWVyOwogCkBAIC0xMTksNiArMTIxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IGxheWVyRmx1c2hUaW1lckZpcmVkKFdlYkNvcmU6OlRpbWVyPExheWVyVHJlZUhvc3RRdD4qKTsK
ICAgICBXZWJDb3JlOjpUaW1lcjxMYXllclRyZWVIb3N0UXQ+IG1fbGF5ZXJGbHVzaFRpbWVyOwog
ICAgIGJvb2wgbV9sYXllckZsdXNoU2NoZWR1bGluZ0VuYWJsZWQ7CisgICAgYm9vbCBtX3Nob3Vs
ZFJlY3JlYXRlQmFja2luZ1N0b3JlOwogfTsKIAogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>