<?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>134325</bug_id>
          
          <creation_ts>2014-06-25 19:24:27 -0700</creation_ts>
          <short_desc>Add new platform gamepad abstractions</short_desc>
          <delta_ts>2014-06-26 09:53:10 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>134076</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>bunhere</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>m.debski</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>syoichi</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1018486</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-06-25 19:24:27 -0700</bug_when>
    <thetext>Add new platform gamepad abstractions

These include a PlatformGamepad object and platform strategies to support either in-process or out-of-process gamepad input.

The code is basically unused here, but goes hand-in-hand with the patch that will be reviewed separately in https://bugs.webkit.org/show_bug.cgi?id=134324</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1018490</commentid>
    <comment_count>1</comment_count>
      <attachid>233864</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-06-25 19:31:47 -0700</bug_when>
    <thetext>Created attachment 233864
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1018496</commentid>
    <comment_count>2</comment_count>
      <attachid>233864</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2014-06-25 19:41:13 -0700</bug_when>
    <thetext>Comment on attachment 233864
Patch v1

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

&gt; Source/WebCore/WebCore.xcodeproj/project.pbxproj:7212
&gt; -		07AC46FF1952102100EE9723 /* ISOVTTCue.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ISOVTTCue.cpp; path = ISOVTTCue.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
&gt; -		07AC47001952102100EE9723 /* ISOVTTCue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ISOVTTCue.h; path = ISOVTTCue.h; sourceTree = &quot;&lt;group&gt;&quot;; };
&gt; +		07AC46FF1952102100EE9723 /* ISOVTTCue.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ISOVTTCue.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
&gt; +		07AC47001952102100EE9723 /* ISOVTTCue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ISOVTTCue.h; sourceTree = &quot;&lt;group&gt;&quot;; };

Is this intentional?

&gt; Source/WebCore/platform/GamepadStrategy.h:50
&gt; +#endif // ENABLE(GAMEPAD)

Nit: I think we agreed to not bother with these style comments

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:594
&gt; +#endif // PLATFORM(IOS)
&gt;  
&gt; -#endif
&gt; +#endif // PLATFORM(COCOA)

But here you&apos;re adding them, so maybe my memory is incorrect and they should be around :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1018497</commentid>
    <comment_count>3</comment_count>
      <attachid>233866</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-06-25 19:41:44 -0700</bug_when>
    <thetext>Created attachment 233866
Patch v2 - Patch that should apply</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1018498</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-06-25 19:43:23 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 233864 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=233864&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/WebCore.xcodeproj/project.pbxproj:7212
&gt; &gt; -		07AC46FF1952102100EE9723 /* ISOVTTCue.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ISOVTTCue.cpp; path = ISOVTTCue.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
&gt; &gt; -		07AC47001952102100EE9723 /* ISOVTTCue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ISOVTTCue.h; path = ISOVTTCue.h; sourceTree = &quot;&lt;group&gt;&quot;; };
&gt; &gt; +		07AC46FF1952102100EE9723 /* ISOVTTCue.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ISOVTTCue.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
&gt; &gt; +		07AC47001952102100EE9723 /* ISOVTTCue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ISOVTTCue.h; sourceTree = &quot;&lt;group&gt;&quot;; };
&gt; 
&gt; Is this intentional?

Nope, and it&apos;s gone in the updated patch.

&gt; 
&gt; &gt; Source/WebCore/platform/GamepadStrategy.h:50
&gt; &gt; +#endif // ENABLE(GAMEPAD)
&gt; 
&gt; Nit: I think we agreed to not bother with these style comments

I think we agreed to not bother *always* especially when they&apos;re short blocks where it would be pointless.

In this case...

&gt; 
&gt; &gt; Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:594
&gt; &gt; +#endif // PLATFORM(IOS)
&gt; &gt;  
&gt; &gt; -#endif
&gt; &gt; +#endif // PLATFORM(COCOA)
&gt; 
&gt; But here you&apos;re adding them, so maybe my memory is incorrect and they should be around :)

I added them because I couldn&apos;t follow what these blocks were!

Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1018521</commentid>
    <comment_count>5</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-06-25 20:59:46 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/170459</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1018545</commentid>
    <comment_count>6</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2014-06-25 21:54:03 -0700</bug_when>
    <thetext>We are trying not to add any more PlatformStrategies, and instead are aiming to remove them.  Please back this out and let&apos;s discuss other mechanisms you can use to achieve what it is you are trying to do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1018613</commentid>
    <comment_count>7</comment_count>
    <who name="Michal Debski">m.debski</who>
    <bug_when>2014-06-26 03:14:49 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; We are trying not to add any more PlatformStrategies, and instead are aiming to remove them.  Please back this out and let&apos;s discuss other mechanisms you can use to achieve what it is you are trying to do.

I have already updated Gamepad API and did not use PlatformStrategies, please take a look at my patch and tell me what do you think about this change:
https://bugs.webkit.org/show_bug.cgi?id=133850</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1018629</commentid>
    <comment_count>8</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-06-26 08:08:12 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; We are trying not to add any more PlatformStrategies, and instead are aiming to remove them.  Please back this out and let&apos;s discuss other mechanisms you can use to achieve what it is you are trying to do.

I have a good non-platformStrategies based solution for this I&apos;ll get in today.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1018630</commentid>
    <comment_count>9</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-06-26 08:10:13 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt; We are trying not to add any more PlatformStrategies, and instead are aiming to remove them.  Please back this out and let&apos;s discuss other mechanisms you can use to achieve what it is you are trying to do.
&gt; 
&gt; I have already updated Gamepad API and did not use PlatformStrategies, please take a look at my patch and tell me what do you think about this change:
&gt; https://bugs.webkit.org/show_bug.cgi?id=133850

Wow, coincidental!  

Unfortunately there&apos;s a lot of needs the work you&apos;ve done there don&apos;t fulfill.  For example, your patch doesn&apos;t allow for WebKit2 implementations (which is the very reason I used platform strategies in the first place)

I&apos;ll comment more in your bug(s) later today.

But I bet we can use things like your layout test work going forward!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1018652</commentid>
    <comment_count>10</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-06-26 09:53:10 -0700</bug_when>
    <thetext>Filed a new bug to remove the use of PlatformStrategies (https://bugs.webkit.org/show_bug.cgi?id=134348), re-resolving this one.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233864</attachid>
            <date>2014-06-25 19:31:47 -0700</date>
            <delta_ts>2014-06-25 19:41:44 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>36738</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAzYzUwN2NjLi41NDI1ZGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMg
QEAKKzIwMTQtMDYtMjUgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIEFkZCBuZXcgcGxhdGZvcm0gZ2FtZXBhZCBhYnN0cmFjdGlvbnMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNDMyNQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoTm90IHlldCBh
IHRlc3RlZCBjb25maWcpCisKKyAgICAgICAgLSBHYW1lcGFkU3RyYXRlZ3kgbGV0cyBwb3J0cyBj
dXN0b21pemUgdGhlIDMgYmFzaWMgYmVoYXZpb3JzIG5lZWRlZCBmb3IgYSBnYW1lcGFkCisgICAg
ICAgICAgaW1wbGVtZW50YXRpb24gdG8gZmVlZCB0aGUgQVBJIGluIFdlYkNvcmUuCisgICAgICAg
IC0gR2FtZXBhZFN0cmF0ZWd5Q2xpZW50IGdpdmVzIGFyYml0cmFyeSBvYmplY3RzIGluIFdlYkNv
cmUgdGhlIGFiaWxpdHkgdG8gcmVnaXN0ZXIKKyAgICAgICAgICBmb3IgY2FsbGJhY2tzIHdpdGgg
dGhlIEdhbWVwYWRTdHJhdGVneS4KKyAgICAgICAgLSBQbGF0Zm9ybUdhbWVwYWQgaXMgYSBwbGF0
Zm9ybS1hZ25vc3RpYyBvYmplY3QgdGhhdCByZXByZXNlbnRzIHRoZSBkYXRhIHRoYXQKKyAgICAg
ICAgICBmZWVkcyBpbnRvIHRoZSBHYW1lcGFkIG9iamVjdCB0aGF0IGlzIGV4cG9zZWQgdG8gd2Vi
IGNvbnRlbnQuCisKKyAgICAgICAgVGhlIGNvZGUgaW4gdGhpcyBwYXRjaCBpcyBkZWFkIGFzLWlz
LCBidXQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNDMyNAorICAg
ICAgICB3aWxsIGNvbnRhaW4gYW4gaW1tZWRpYXRlIGZvbGxvdy11cCBwYXRjaCB0aGF0IHVzZXMg
aXQuCisKKyAgICAgICAgTWFrZXMgc2Vuc2UgdG8gcmV2aWV3IHRoZW0gc2VwYXJhdGVseS4KKwor
ICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKworICAgICAgICAq
IHBsYXRmb3JtL0dhbWVwYWRTdHJhdGVneS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okdh
bWVwYWRTdHJhdGVneTo6fkdhbWVwYWRTdHJhdGVneSk6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9H
YW1lcGFkU3RyYXRlZ3lDbGllbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpHYW1lcGFk
U3RyYXRlZ3lDbGllbnQ6On5HYW1lcGFkU3RyYXRlZ3lDbGllbnQpOgorCisgICAgICAgICogcGxh
dGZvcm0vUGxhdGZvcm1HYW1lcGFkLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZv
cm1HYW1lcGFkOjp+UGxhdGZvcm1HYW1lcGFkKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3Jt
R2FtZXBhZDo6aWQpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1HYW1lcGFkOjpsYXN0VXBk
YXRlVGltZSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUdhbWVwYWQ6OmNvbm5lY3RUaW1l
KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtR2FtZXBhZDo6UGxhdGZvcm1HYW1lcGFkKToK
KworICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5oOgorICAgICAgICAoV2Vi
Q29yZTo6UGxhdGZvcm1TdHJhdGVnaWVzOjpnYW1lcGFkU3RyYXRlZ3kpOgorICAgICAgICAoV2Vi
Q29yZTo6UGxhdGZvcm1TdHJhdGVnaWVzOjpQbGF0Zm9ybVN0cmF0ZWdpZXMpOgorCiAyMDE0LTA2
LTI0ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFNwZWN1bGF0
aXZlIDMyLWJpdCBNYWMgYnVpbGQgZml4IGFmdGVyIHIxNzA0MDIuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNGMzYjMxYy4uOTQx
MDIxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMTgzMiw2ICsxODMyLDcgQEAKIAkJNTEyREQ4RkQwRDkxRTZBRjAwMEY4OUVF
IC8qIEFyY2hpdmVGYWN0b3J5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MTJERDhGMzBEOTFFNkFGMDAwRjg5RUUgLyogQXJjaGl2ZUZhY3RvcnkuaCAq
LzsgfTsKIAkJNTEyRUE5QkMxODFGMkVFMDAwMUQwMUUwIC8qIElEQlBlbmRpbmdPcGVuQ2FsbC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyRUE5QkIx
ODFGMkVFMDAwMUQwMUUwIC8qIElEQlBlbmRpbmdPcGVuQ2FsbC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxMkVBOUJFMTgyMDI4NTcwMDFEMDFF
MCAvKiBJREJPcGVyYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxMkVBOUJEMTgyMDI4NTcwMDFEMDFFMCAvKiBJREJPcGVyYXRpb24uaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1MTMxQjUxMjE5
NTM4MTIwMDA4NUM4OTYgLyogR2FtZXBhZFN0cmF0ZWd5LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTMxQjUwRjE5NTM3OUMzMDA4NUM4OTYgLyogR2Ft
ZXBhZFN0cmF0ZWd5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJNTEzMjdENjAxMUEzM0EyQjAwNEY5RDY1IC8qIFNpbmtEb2N1bWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEzMjdENUUxMUEzM0Ey
QjAwNEY5RDY1IC8qIFNpbmtEb2N1bWVudC5oICovOyB9OwogCQk1MTMyN0Q2MTExQTMzQTJCMDA0
RjlENjUgLyogU2lua0RvY3VtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxMzI3RDVGMTFBMzNBMkIwMDRGOUQ2NSAvKiBTaW5rRG9jdW1lbnQu
Y3BwICovOyB9OwogCQk1MTNGMTQ1MzBBQjYzNEM0MDAwOTREREYgLyogSWNvbkxvYWRlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTNGMTQ1MTBB
QjYzNEM0MDAwOTREREYgLyogSWNvbkxvYWRlci5jcHAgKi87IH07CkBAIC0xOTE4LDYgKzE5MTks
NyBAQAogCQk1MUEwNTI1NjEwNTg4NzQwMDBDQzlFOTUgLyogUHJvdGVjdGlvblNwYWNlSGFzaC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFBMDUyNTUx
MDU4ODc0MDAwQ0M5RTk1IC8qIFByb3RlY3Rpb25TcGFjZUhhc2guaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MUE0QkIwQTE5NTRENjE2MDBGQTVD
MkUgLyogR2FtZXBhZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MUE0QkIwNzE5NTRENjE2MDBGQTVDMkUgLyogR2FtZXBhZC5jcHAgKi87IH07CiAJ
CTUxQTRCQjEwMTk1NEQ2MjcwMEZBNUMyRSAvKiBOYXZpZ2F0b3JHYW1lcGFkLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQTRCQjBEMTk1NEQ2Mjcw
MEZBNUMyRSAvKiBOYXZpZ2F0b3JHYW1lcGFkLmNwcCAqLzsgfTsKKwkJNTFBOUQ5RTYxOTVCOEY0
NzAwMUIyQjVDIC8qIEdhbWVwYWRTdHJhdGVneUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFBOUQ5RTUxOTVCOEY0NzAwMUIyQjVDIC8qIEdh
bWVwYWRTdHJhdGVneUNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTUxQUEzRjZGMEJENUFBOUUwMDg5Mjk3MSAvKiBSZXNvdXJjZUxvYWRl
ck1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
QUEzRjZFMEJENUFBOUUwMDg5Mjk3MSAvKiBSZXNvdXJjZUxvYWRlck1hYy5tbSAqLzsgfTsKIAkJ
NTFBQkFFMUIxMDNDMThGRjAwOEM1MjYwIC8qIFNvY2tldFN0cmVhbUVycm9yLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUFCQUUxQTEwM0MxOEZGMDA4
QzUyNjAgLyogU29ja2V0U3RyZWFtRXJyb3IuaCAqLzsgfTsKIAkJNTFBQkFFMUUxMDNDMTkxMzAw
OEM1MjYwIC8qIFNvY2tldFN0cmVhbUhhbmRsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTFBQkFFMUMxMDNDMTkxMzAwOEM1MjYwIC8qIFNvY2tldFN0
cmVhbUhhbmRsZS5oICovOyB9OwpAQCAtMTkyOCw2ICsxOTMwLDcgQEAKIAkJNTFBRjUwMzYxNkYx
MDBGNjAwOTVCMkU4IC8qIFJlc291cmNlTG9hZGVyVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQUY1MDM1MTZGMTAwRjYwMDk1QjJFOCAvKiBS
ZXNvdXJjZUxvYWRlclR5cGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJNTFCMDdBNDQxODIzMjQ4QjAwQUE4RDFBIC8qIElEQlBlbmRpbmdEZWxl
dGVDYWxsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MUIwN0E0MzE4MjMyNDhCMDBBQThEMUEgLyogSURCUGVuZGluZ0RlbGV0ZUNhbGwuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MUIyNDE3QjBEOTMx
RjNGMDBFODNGNUMgLyogTGVnYWN5V2ViQXJjaGl2ZU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQjI0MTdBMEQ5MzFGM0YwMEU4M0Y1QyAvKiBM
ZWdhY3lXZWJBcmNoaXZlTWFjLm1tICovOyB9OworCQk1MUI1OEZENDE5NUE5NjREMDAyOTkwQjAg
LyogUGxhdGZvcm1HYW1lcGFkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MTVFNUZFRjE5NTEwMTQ3MDA4NkNBNUUgLyogUGxhdGZvcm1HYW1lcGFkLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTFCRTM3
RTAwREFFRTAwRTAwMTA4NUZDIC8qIFN0b3JhZ2VBcmVhLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUJFMzdERTBEQUVFMDBFMDAxMDg1RkMgLyogU3Rv
cmFnZUFyZWEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk1MUMwQUEzOTBGMkFBMTBBMDAxNjQ4QzIgLyogQ2FjaGVkRnJhbWUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQzBBQTM4MEYyQUExMEEwMDE2
NDhDMiAvKiBDYWNoZWRGcmFtZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTUxQzBBQTQxMEYyQUExNUUwMDE2NDhDMiAvKiBDYWNoZWRGcmFtZS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUMwQUE0
MDBGMkFBMTVFMDAxNjQ4QzIgLyogQ2FjaGVkRnJhbWUuY3BwICovOyB9OwpAQCAtNzIwNSw4ICs3
MjA4LDggQEAKIAkJMDdBQjk5NjgxOERBM0MwMTAwMTg3NzFFIC8qIFJUQ0ljZVNlcnZlci5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUlRDSWNlU2VydmVyLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMDdBQjk5NkQxOERBM0M3NDAwMTg3NzFFIC8qIFJUQ0NvbmZpZ3VyYXRp
b25Qcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJUQ0NvbmZpZ3Vy
YXRpb25Qcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3QUI5OTZFMThE
QTNDNzQwMDE4NzcxRSAvKiBSVENJY2VTZXJ2ZXJQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFJUQ0ljZVNlcnZlclByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJMDdBQzQ2RkYxOTUyMTAyMTAwRUU5NzIzIC8qIElTT1ZUVEN1ZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBJU09WVFRDdWUuY3BwOyBwYXRoID0g
SVNPVlRUQ3VlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDdBQzQ3MDAxOTUy
MTAyMTAwRUU5NzIzIC8qIElTT1ZUVEN1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBJU09WVFRDdWUuaDsgcGF0aCA9IElTT1ZUVEN1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkwN0FDNDZGRjE5NTIxMDIxMDBFRTk3MjMgLyogSVNPVlRUQ3VlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElTT1ZUVEN1ZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3QUM0NzAwMTk1MjEwMjEwMEVFOTcyMyAvKiBJU09WVFRD
dWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSVNPVlRUQ3VlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3QjAxMTNFMTAzMjI0MjIwMEZCREMzMyAvKiBBY2Nl
c3NpYmlsaXR5TWVkaWFDb250cm9scy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBBY2Nlc3NpYmlsaXR5TWVkaWFDb250cm9scy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwN0I0NDJENDE2NkM3MEIwMDA1NTZDQUQgLyogSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFW
Ri5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlQVZGLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdCNDQyRDUx
NjZDNzBCMDAwNTU2Q0FEIC8qIEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkYuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODg5MSw2ICs4ODk0LDcgQEAKIAkJNTEyREQ4RjMw
RDkxRTZBRjAwMEY4OUVFIC8qIEFyY2hpdmVGYWN0b3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEFyY2hpdmVGYWN0b3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTUxMkVBOUJCMTgxRjJFRTAwMDFEMDFFMCAvKiBJREJQZW5kaW5nT3BlbkNhbGwuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSURCUGVuZGluZ09wZW5DYWxsLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMkVBOUJEMTgyMDI4NTcwMDFEMDFFMCAvKiBJREJP
cGVyYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSURCT3BlcmF0aW9u
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMzFCNTBGMTk1Mzc5QzMwMDg1Qzg5
NiAvKiBHYW1lcGFkU3RyYXRlZ3kuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2FtZXBhZFN0cmF0ZWd5Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMzI3RDVFMTFBMzNBMkIwMDRGOUQ2NSAv
KiBTaW5rRG9jdW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2lua0Rv
Y3VtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMzI3RDVGMTFBMzNBMkIw
MDRGOUQ2NSAvKiBTaW5rRG9jdW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gU2lua0RvY3VtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTEzRjE0NTEwQUI2MzRDNDAwMDk0RERGIC8qIEljb25Mb2FkZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEljb25Mb2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtODkyOSw2ICs4OTMzLDcgQEAKIAkJNTE0Qzc2NjgwQ0U5MjNBMTAwN0VG
M0NEIC8qIFJlc291cmNlUmVxdWVzdEJhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUmVzb3VyY2VSZXF1ZXN0QmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1MTRDNzY2OTBDRTkyM0ExMDA3RUYzQ0QgLyogUmVzb3VyY2VSZXNwb25zZUJhc2UuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVzb3VyY2VSZXNwb25zZUJhc2Uu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTRDNzY2QTBDRTkyM0ExMDA3RUYz
Q0QgLyogUmVzb3VyY2VSZXNwb25zZUJhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUmVzb3VyY2VSZXNwb25zZUJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNTE1RTVGRUYxOTUxMDE0NzAwODZDQTVFIC8qIFBsYXRmb3JtR2FtZXBhZC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBQbGF0Zm9ybUdhbWVwYWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTE2MDMwMEEwQ0M0MjUxMjAwQzhBQzI1IC8qIEZpbGVTeXN0ZW1QT1NJWC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGaWxlU3lzdGVtUE9TSVguY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1MTYwMzA2QjBDQzQzNjIzMDBDOEFDMjUgLyogRmlsZVN5
c3RlbUNGLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZpbGVTeXN0
ZW1DRi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNjBGNDk3MEIwQUE3NUYw
MEMxRDJBRiAvKiBIaXN0b3J5SXRlbU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgbmFtZSA9IEhpc3RvcnlJdGVtTWFjLm1tOyBwYXRoID0gbWFjL0hpc3RvcnlJdGVtTWFj
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODk4OSw2ICs4OTk0LDcgQEAKIAkJ
NTFBNEJCMEQxOTU0RDYyNzAwRkE1QzJFIC8qIE5hdmlnYXRvckdhbWVwYWQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmF2aWdhdG9yR2FtZXBhZC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQTRCQjBFMTk1NEQ2MjcwMEZBNUMyRSAvKiBOYXZp
Z2F0b3JHYW1lcGFkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5hdmlnYXRv
ckdhbWVwYWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFBNEJCMEYxOTU0RDYy
NzAwRkE1QzJFIC8qIE5hdmlnYXRvckdhbWVwYWQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IE5hdmlnYXRvckdhbWVwYWQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MUE5
RDlFNTE5NUI4RjQ3MDAxQjJCNUMgLyogR2FtZXBhZFN0cmF0ZWd5Q2xpZW50LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdhbWVwYWRTdHJhdGVneUNsaWVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1MUFBM0Y2RTBCRDVBQTlFMDA4OTI5NzEgLyogUmVzb3Vy
Y2VMb2FkZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBS
ZXNvdXJjZUxvYWRlck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFBQkFF
MUExMDNDMThGRjAwOEM1MjYwIC8qIFNvY2tldFN0cmVhbUVycm9yLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFNvY2tldFN0cmVhbUVycm9yLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTUxQUJBRTFDMTAzQzE5MTMwMDhDNTI2MCAvKiBTb2NrZXRTdHJlYW1IYW5k
bGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU29ja2V0U3RyZWFtSGFuZGxl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMTI2Myw2ICsyMTI2OSw4IEBACiAJ
CQkJQzU3RkVERTAxMjEyRUU5QzAwOTdCRTY1IC8qIEZpbGVTeXN0ZW0uY3BwICovLAogCQkJCTUx
NEIzRjcyMEM3MjIwNDcwMDA1MzBERiAvKiBGaWxlU3lzdGVtLmggKi8sCiAJCQkJQkMwNzNCQTkw
QzM5OUIxRjAwMEY1OTc5IC8qIEZsb2F0Q29udmVyc2lvbi5oICovLAorCQkJCTUxMzFCNTBGMTk1
Mzc5QzMwMDg1Qzg5NiAvKiBHYW1lcGFkU3RyYXRlZ3kuaCAqLywKKwkJCQk1MUE5RDlFNTE5NUI4
RjQ3MDAxQjJCNUMgLyogR2FtZXBhZFN0cmF0ZWd5Q2xpZW50LmggKi8sCiAJCQkJQTg3NDhCREYx
MkNCRjJEQzAwMUZCQTQxIC8qIEhhc2hUb29scy5oICovLAogCQkJCUJDM0JDMjlCMEU5MUFCMEYw
MDgzNTU4OCAvKiBIb3N0V2luZG93LmggKi8sCiAJCQkJODYyRjEyOUYxOEMxRENFNDAwNUM1NEFG
IC8qIEh5c3RlcmVzaXNBY3Rpdml0eS5oICovLApAQCAtMjEyOTgsNiArMjEzMDYsNyBAQAogCQkJ
CUUxNDI0Qzg5MTY0QjNCNEUwMEYzMkQ0MCAvKiBQbGF0Zm9ybUNvb2tpZUphci5oICovLAogCQkJ
CUJDNUM3NjI5MTQ5N0ZFMTQwMEJDNDc3NSAvKiBQbGF0Zm9ybUV2ZW50LmggKi8sCiAJCQkJQTcy
M0Y3N0ExNDg0Q0E0QzAwOEM2REJFIC8qIFBsYXRmb3JtRXhwb3J0TWFjcm9zLmggKi8sCisJCQkJ
NTE1RTVGRUYxOTUxMDE0NzAwODZDQTVFIC8qIFBsYXRmb3JtR2FtZXBhZC5oICovLAogCQkJCTkz
NUM0NzY2MDlBQzRENDMwMEE2QUFCNCAvKiBQbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCAqLywKIAkJ
CQk5MzI4NzFCRjBCMjBERUI3MDA0OTAzNUEgLyogUGxhdGZvcm1NZW51RGVzY3JpcHRpb24uaCAq
LywKIAkJCQk5MzVDNDc2NzA5QUM0RDQzMDBBNkFBQjQgLyogUGxhdGZvcm1Nb3VzZUV2ZW50Lmgg
Ki8sCkBAIC0yMzczNSw2ICsyMzc0NCw3IEBACiAJCQkJODVFNzExOTIwQUM1RDUzNTAwNTMyNzBG
IC8qIERPTUNTU1J1bGVMaXN0SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1MDMyREU1
MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NTdHlsZURlY2xhcmF0aW9uLmggaW4gSGVhZGVycyAq
LywKIAkJCQk4NUU3MTE5MzBBQzVENTM1MDA1MzI3MEYgLyogRE9NQ1NTU3R5bGVEZWNsYXJhdGlv
bkludGVybmFsLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MUI1OEZENDE5NUE5NjREMDAyOTkwQjAg
LyogUGxhdGZvcm1HYW1lcGFkLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTAzMkRFNzBBQThDOUJF
MDA3RDNCN0QgLyogRE9NQ1NTU3R5bGVSdWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTkwOUNF
MjBBQ0M3QTdFMDBERjAxRjEgLyogRE9NQ1NTU3R5bGVSdWxlSW50ZXJuYWwuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUUxNUZGN0Q1MThDOTU1MzgwMEZFNEM4NyAvKiBLZXlwcmVzc0NvbW1hbmQuaCBp
biBIZWFkZXJzICovLApAQCAtMjM4ODEsNiArMjM4OTEsNyBAQAogCQkJCTg1QkE0RDE1MEFBNjg4
NjgwMDg4MDUyRCAvKiBET01IVE1MT0xpc3RFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4
NUU3MTFCRTBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTE9MaXN0RWxlbWVudEludGVybmFsLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk4NUYzMkFFRTBBQTYzQjg3MDBGRjMxODQgLyogRE9NSFRNTE9w
dEdyb3VwRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTEzMUI1MTIxOTUzODEyMDAwODVD
ODk2IC8qIEdhbWVwYWRTdHJhdGVneS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODVFNzExQkYwQUM1
RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxPcHRHcm91cEVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJODU0MDc1NkIwQUQ2Q0JGOTAwNjIwQzU3IC8qIERPTUhUTUxPcHRpb25FbGVt
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTQwNzU2RDBBRDZDQkY5MDA2MjBDNTcgLyogRE9N
SFRNTE9wdGlvbkVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDQzOSw2ICsy
NDQ1MCw3IEBACiAJCQkJNTFENzE5RDkxODExMDZFMDAwMTZEQzUxIC8qIElEQkluZGV4LmggaW4g
SGVhZGVycyAqLywKIAkJCQk1MUFCQjVCODE4NkQwRUQxMDA4MzkxQTEgLyogSURCSW5kZXhNZXRh
ZGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEwMTk0NDExODM2RDIwODAwOTI1NTIzIC8qIElE
QkluZGV4V3JpdGVyTGV2ZWxEQi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTFBOUQ5RTYxOTVCOEY0
NzAwMUIyQjVDIC8qIEdhbWVwYWRTdHJhdGVneUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NTFENzE5REMxODExMDZFMDAwMTZEQzUxIC8qIElEQktleS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NTExRUMxQTYxODhEQUNBNDAwQkEzRUI2IC8qIElEQktleURhdGEuaCBpbiBIZWFkZXJzICovLAog
CQkJCTUxRDcxOURFMTgxMTA2RTAwMDE2REM1MSAvKiBJREJLZXlQYXRoLmggaW4gSGVhZGVycyAq
LywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0dhbWVwYWRTdHJhdGVneS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vR2FtZXBhZFN0cmF0ZWd5LmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTRhNGQyOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0dhbWVwYWRTdHJhdGVneS5oCkBAIC0wLDAgKzEsNTEgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIEdhbWVwYWRTdHJhdGVneV9oCisjZGVmaW5lIEdhbWVwYWRTdHJh
dGVneV9oCisKKyNpZiBFTkFCTEUoR0FNRVBBRCkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBQbGF0Zm9ybUdhbWVwYWQ7CitjbGFzcyBHYW1lcGFkU3RyYXRlZ3lDbGllbnQ7CisKK2Ns
YXNzIEdhbWVwYWRTdHJhdGVneSB7CitwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIHN0YXJ0TW9u
aXRvcmluZ0dhbWVwYWRzKEdhbWVwYWRTdHJhdGVneUNsaWVudCopID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgc3RvcE1vbml0b3JpbmdHYW1lcGFkcyhHYW1lcGFkU3RyYXRlZ3lDbGllbnQqKSA9IDA7
CisgICAgdmlydHVhbCBjb25zdCBWZWN0b3I8UGxhdGZvcm1HYW1lcGFkKj4mIHBsYXRmb3JtR2Ft
ZXBhZHMoKSA9IDA7CisKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIH5HYW1lcGFkU3RyYXRlZ3ko
KQorICAgIHsKKyAgICB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBFTkFCTEUoR0FNRVBBRCkKKyNlbmRpZiAvLyBHYW1lcGFkU3RyYXRlZ3lfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vR2FtZXBhZFN0cmF0ZWd5Q2xpZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9HYW1lcGFkU3RyYXRlZ3lDbGllbnQuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYWI4ZDM4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vR2FtZXBhZFN0cmF0ZWd5Q2xpZW50LmgKQEAgLTAsMCArMSw0NCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgR2FtZXBhZFN0cmF0ZWd5Q2xpZW50X2gKKyNkZWZpbmUg
R2FtZXBhZFN0cmF0ZWd5Q2xpZW50X2gKKworI2lmIEVOQUJMRShHQU1FUEFEKQorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIEdhbWVwYWRTdHJhdGVneUNsaWVudCB7CitwdWJsaWM6Cisg
ICAgdmlydHVhbCB+R2FtZXBhZFN0cmF0ZWd5Q2xpZW50KCkgeyB9CisKKyAgICB2aXJ0dWFsIHZv
aWQgcGxhdGZvcm1HYW1lcGFkQ29ubmVjdGVkKHVuc2lnbmVkIGluZGV4KSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIHBsYXRmb3JtR2FtZXBhZERpc2Nvbm5lY3RlZCh1bnNpZ25lZCBpbmRleCkgPSAw
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKEdBTUVQ
QUQpCisjZW5kaWYgLy8gR2FtZXBhZFN0cmF0ZWd5Q2xpZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtR2FtZXBhZC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vUGxhdGZvcm1HYW1lcGFkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uZTAyY2Y0ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bs
YXRmb3JtR2FtZXBhZC5oCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFBs
YXRmb3JtR2FtZXBhZF9oCisjZGVmaW5lIFBsYXRmb3JtR2FtZXBhZF9oCisKKyNpZiBFTkFCTEUo
R0FNRVBBRCkKKworI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBQbGF0Zm9ybUdhbWVw
YWQgeworcHVibGljOgorICAgIHZpcnR1YWwgflBsYXRmb3JtR2FtZXBhZCgpIHsgfQorCisgICAg
Y29uc3QgU3RyaW5nJiBpZCgpIGNvbnN0IHsgcmV0dXJuIG1faWQ7IH0KKyAgICBkb3VibGUgbGFz
dFVwZGF0ZVRpbWUoKSBjb25zdCB7IHJldHVybiBtX2xhc3RVcGRhdGVUaW1lOyB9CisgICAgZG91
YmxlIGNvbm5lY3RUaW1lKCkgY29uc3QgeyByZXR1cm4gbV9jb25uZWN0VGltZTsgfQorICAgIHZp
cnR1YWwgY29uc3QgVmVjdG9yPGRvdWJsZT4mIGF4aXNWYWx1ZXMoKSBjb25zdCA9IDA7CisgICAg
dmlydHVhbCBjb25zdCBWZWN0b3I8ZG91YmxlPiYgYnV0dG9uVmFsdWVzKCkgY29uc3QgPSAwOwor
Citwcm90ZWN0ZWQ6CisgICAgUGxhdGZvcm1HYW1lcGFkKCkKKyAgICAgICAgOiBtX2xhc3RVcGRh
dGVUaW1lKDAuMCkKKyAgICAgICAgLCBtX2Nvbm5lY3RUaW1lKDAuMCkKKyAgICB7CisgICAgfQor
CisgICAgU3RyaW5nIG1faWQ7CisgICAgZG91YmxlIG1fbGFzdFVwZGF0ZVRpbWU7CisgICAgZG91
YmxlIG1fY29ubmVjdFRpbWU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBFTkFCTEUoR0FNRVBBRCkKKyNlbmRpZiAvLyBQbGF0Zm9ybUdhbWVwYWRfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TdHJhdGVnaWVzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVN0cmF0ZWdpZXMuaAppbmRleCAyY2E2YTY4Li4x
Mjc4Y2UzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVN0cmF0
ZWdpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVN0cmF0ZWdpZXMu
aApAQCAtMzYsNiArMzYsMTAgQEAgY2xhc3MgUGx1Z2luU3RyYXRlZ3k7CiBjbGFzcyBTaGFyZWRX
b3JrZXJTdHJhdGVneTsKIGNsYXNzIFN0b3JhZ2VTdHJhdGVneTsKIAorI2lmIEVOQUJMRShHQU1F
UEFEKQorY2xhc3MgR2FtZXBhZFN0cmF0ZWd5OworI2VuZGlmCisKIGNsYXNzIFBsYXRmb3JtU3Ry
YXRlZ2llcyB7CiBwdWJsaWM6CiAgICAgQ29va2llc1N0cmF0ZWd5KiBjb29raWVzU3RyYXRlZ3ko
KQpAQCAtODcsMTUgKzkxLDI3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG1fc3RvcmFnZVN0
cmF0ZWd5OwogICAgIH0KIAorI2lmIEVOQUJMRShHQU1FUEFEKQorICAgIEdhbWVwYWRTdHJhdGVn
eSogZ2FtZXBhZFN0cmF0ZWd5KCkKKyAgICB7CisgICAgICAgIGlmICghbV9nYW1lcGFkU3RyYXRl
Z3kpCisgICAgICAgICAgICBtX2dhbWVwYWRTdHJhdGVneSA9IGNyZWF0ZUdhbWVwYWRTdHJhdGVn
eSgpOworICAgICAgICByZXR1cm4gbV9nYW1lcGFkU3RyYXRlZ3k7CisgICAgfQorI2VuZGlmCisK
IHByb3RlY3RlZDoKICAgICBQbGF0Zm9ybVN0cmF0ZWdpZXMoKQotICAgICAgICA6IG1fY29va2ll
c1N0cmF0ZWd5KDApCi0gICAgICAgICwgbV9kYXRhYmFzZVN0cmF0ZWd5KDApCi0gICAgICAgICwg
bV9sb2FkZXJTdHJhdGVneSgwKQotICAgICAgICAsIG1fcGFzdGVib2FyZFN0cmF0ZWd5KDApCi0g
ICAgICAgICwgbV9wbHVnaW5TdHJhdGVneSgwKQotICAgICAgICAsIG1fc2hhcmVkV29ya2VyU3Ry
YXRlZ3koMCkKLSAgICAgICAgLCBtX3N0b3JhZ2VTdHJhdGVneSgwKQorICAgICAgICA6IG1fY29v
a2llc1N0cmF0ZWd5KG51bGxwdHIpCisgICAgICAgICwgbV9kYXRhYmFzZVN0cmF0ZWd5KG51bGxw
dHIpCisgICAgICAgICwgbV9sb2FkZXJTdHJhdGVneShudWxscHRyKQorICAgICAgICAsIG1fcGFz
dGVib2FyZFN0cmF0ZWd5KG51bGxwdHIpCisgICAgICAgICwgbV9wbHVnaW5TdHJhdGVneShudWxs
cHRyKQorICAgICAgICAsIG1fc2hhcmVkV29ya2VyU3RyYXRlZ3kobnVsbHB0cikKKyAgICAgICAg
LCBtX3N0b3JhZ2VTdHJhdGVneShudWxscHRyKQorI2lmIEVOQUJMRShHQU1FUEFEKQorICAgICAg
ICAsIG1fZ2FtZXBhZFN0cmF0ZWd5KG51bGxwdHIpCisjZW5kaWYKICAgICB7CiAgICAgfQogCkBA
IC0xMTEsNiArMTI3LDkgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFBsdWdpblN0cmF0ZWd5KiBj
cmVhdGVQbHVnaW5TdHJhdGVneSgpID0gMDsKICAgICB2aXJ0dWFsIFNoYXJlZFdvcmtlclN0cmF0
ZWd5KiBjcmVhdGVTaGFyZWRXb3JrZXJTdHJhdGVneSgpID0gMDsKICAgICB2aXJ0dWFsIFN0b3Jh
Z2VTdHJhdGVneSogY3JlYXRlU3RvcmFnZVN0cmF0ZWd5KCkgPSAwOworI2lmIEVOQUJMRShHQU1F
UEFEKQorICAgIHZpcnR1YWwgR2FtZXBhZFN0cmF0ZWd5KiBjcmVhdGVHYW1lcGFkU3RyYXRlZ3ko
KSA9IDA7CisjZW5kaWYKIAogICAgIENvb2tpZXNTdHJhdGVneSogbV9jb29raWVzU3RyYXRlZ3k7
CiAgICAgRGF0YWJhc2VTdHJhdGVneSogbV9kYXRhYmFzZVN0cmF0ZWd5OwpAQCAtMTE5LDYgKzEz
OCw5IEBAIHByaXZhdGU6CiAgICAgUGx1Z2luU3RyYXRlZ3kqIG1fcGx1Z2luU3RyYXRlZ3k7CiAg
ICAgU2hhcmVkV29ya2VyU3RyYXRlZ3kqIG1fc2hhcmVkV29ya2VyU3RyYXRlZ3k7CiAgICAgU3Rv
cmFnZVN0cmF0ZWd5KiBtX3N0b3JhZ2VTdHJhdGVneTsKKyNpZiBFTkFCTEUoR0FNRVBBRCkKKyAg
ICBHYW1lcGFkU3RyYXRlZ3kqIG1fZ2FtZXBhZFN0cmF0ZWd5OworI2VuZGlmCiB9OwogCiBQbGF0
Zm9ybVN0cmF0ZWdpZXMqIHBsYXRmb3JtU3RyYXRlZ2llcygpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4
IDJlZTZhYjMuLjJiNmU1ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAx
NC0wNi0yNSAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRk
IG5ldyBwbGF0Zm9ybSBnYW1lcGFkIGFic3RyYWN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM0MzI1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0
cmF0ZWdpZXMuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXMubW06CisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZUdhbWVwYWRTdHJh
dGVneSk6CisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnN0YXJ0TW9uaXRvcmluZ0dh
bWVwYWRzKToKKyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6c3RvcE1vbml0b3JpbmdH
YW1lcGFkcyk6CisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnBsYXRmb3JtR2FtZXBh
ZHMpOgorCiAyMDE0LTA2LTI0ICBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29t
PgogCiAgICAgICAgIFdLMSBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0IGNsZWFudXA6IGRvIG5v
dCBpbnN0YW5jaWF0ZSBhbiBlbXB0eSBOU1N0cmluZyB0byBjcmVhdGUgYW4gZW1wdHkgV1RGOjpT
dHJpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBs
YXRmb3JtU3RyYXRlZ2llcy5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzLmgKaW5kZXggYzZlYzQzNy4uYTQyOWQ5YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgK
KysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVn
aWVzLmgKQEAgLTM1LDEwICszNSwxOCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkV29ya2Vy
U3RyYXRlZ3kuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N0b3JhZ2VTdHJhdGVneS5oPgogCisjaWYg
RU5BQkxFKEdBTUVQQUQpCisjaW5jbHVkZSA8V2ViQ29yZS9HYW1lcGFkU3RyYXRlZ3kuaD4KKyNl
bmRpZgorCiBzdHJ1Y3QgUGFzdGVib2FyZEltYWdlOwogc3RydWN0IFBhc3RlYm9hcmRXZWJDb250
ZW50OwogCi1jbGFzcyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXMgOiBwdWJsaWMgV2ViQ29yZTo6UGxh
dGZvcm1TdHJhdGVnaWVzLCBwcml2YXRlIFdlYkNvcmU6OkNvb2tpZXNTdHJhdGVneSwgcHJpdmF0
ZSBXZWJDb3JlOjpEYXRhYmFzZVN0cmF0ZWd5LCBwcml2YXRlIFdlYkNvcmU6OkxvYWRlclN0cmF0
ZWd5LCBwcml2YXRlIFdlYkNvcmU6OlBhc3RlYm9hcmRTdHJhdGVneSwgcHJpdmF0ZSBXZWJDb3Jl
OjpQbHVnaW5TdHJhdGVneSwgcHJpdmF0ZSBXZWJDb3JlOjpTaGFyZWRXb3JrZXJTdHJhdGVneSwg
cHJpdmF0ZSBXZWJDb3JlOjpTdG9yYWdlU3RyYXRlZ3kgeworY2xhc3MgV2ViUGxhdGZvcm1TdHJh
dGVnaWVzIDogcHVibGljIFdlYkNvcmU6OlBsYXRmb3JtU3RyYXRlZ2llcywgcHJpdmF0ZSBXZWJD
b3JlOjpDb29raWVzU3RyYXRlZ3ksIHByaXZhdGUgV2ViQ29yZTo6RGF0YWJhc2VTdHJhdGVneSwg
cHJpdmF0ZSBXZWJDb3JlOjpMb2FkZXJTdHJhdGVneSwgcHJpdmF0ZSBXZWJDb3JlOjpQYXN0ZWJv
YXJkU3RyYXRlZ3ksIHByaXZhdGUgV2ViQ29yZTo6UGx1Z2luU3RyYXRlZ3ksIHByaXZhdGUgV2Vi
Q29yZTo6U2hhcmVkV29ya2VyU3RyYXRlZ3ksIHByaXZhdGUgV2ViQ29yZTo6U3RvcmFnZVN0cmF0
ZWd5CisjaWYgRU5BQkxFKEdBTUVQQUQpCisgICAgLCBwcml2YXRlIFdlYkNvcmU6OkdhbWVwYWRT
dHJhdGVneQorI2VuZGlmCit7CiBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgaW5pdGlhbGl6ZUlm
TmVjZXNzYXJ5KCk7CiAgICAgCkBAIC01Myw2ICs2MSw5IEBAIHByaXZhdGU6CiAgICAgdmlydHVh
bCBXZWJDb3JlOjpQbHVnaW5TdHJhdGVneSogY3JlYXRlUGx1Z2luU3RyYXRlZ3koKSBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIFdlYkNvcmU6OlNoYXJlZFdvcmtlclN0cmF0ZWd5KiBjcmVhdGVTaGFy
ZWRXb3JrZXJTdHJhdGVneSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgV2ViQ29yZTo6U3RvcmFn
ZVN0cmF0ZWd5KiBjcmVhdGVTdG9yYWdlU3RyYXRlZ3koKSBvdmVycmlkZTsKKyNpZiBFTkFCTEUo
R0FNRVBBRCkKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkdhbWVwYWRTdHJhdGVneSogY3JlYXRlR2Ft
ZXBhZFN0cmF0ZWd5KCkgb3ZlcnJpZGU7CisjZW5kaWYKIAogICAgIC8vIFdlYkNvcmU6OkNvb2tp
ZXNTdHJhdGVneQogICAgIHZpcnR1YWwgU3RyaW5nIGNvb2tpZXNGb3JET00oY29uc3QgV2ViQ29y
ZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBhcnR5
LCBjb25zdCBXZWJDb3JlOjpVUkwmKSBvdmVycmlkZTsKQEAgLTEwMSw2ICsxMTIsMTMgQEAgcHJp
dmF0ZToKICAgICB2aXJ0dWFsIGxvbmcgc2V0QnVmZmVyRm9yVHlwZShQYXNzUmVmUHRyPFdlYkNv
cmU6OlNoYXJlZEJ1ZmZlcj4sIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFN0
cmluZyYgcGFzdGVib2FyZE5hbWUpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgbG9uZyBzZXRQYXRo
bmFtZXNGb3JUeXBlKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgU3RyaW5nJiBwYXN0ZWJv
YXJkVHlwZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCBsb25nIHNldFN0cmluZ0ZvclR5cGUoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBw
YXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgb3ZlcnJpZGU7CisK
KyNpZiBFTkFCTEUoR0FNRVBBRCkKKyAgICAvLyBXZWJDb3JlOjpHYW1lcGFkU3RyYXRlZ3kKKyAg
ICB2aXJ0dWFsIHZvaWQgc3RhcnRNb25pdG9yaW5nR2FtZXBhZHMoV2ViQ29yZTo6R2FtZXBhZFN0
cmF0ZWd5Q2xpZW50Kikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHN0b3BNb25pdG9yaW5n
R2FtZXBhZHMoV2ViQ29yZTo6R2FtZXBhZFN0cmF0ZWd5Q2xpZW50Kikgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6UGxhdGZvcm1HYW1lcGFkKj4mIHBsYXRmb3Jt
R2FtZXBhZHMoKSBvdmVycmlkZTsKKyNlbmRpZgogfTsKIAogI2VuZGlmIC8vIFdlYlBsYXRmb3Jt
U3RyYXRlZ2llc19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0KaW5kZXggYTE3MTEwYS4uMjJiNzZhNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJh
dGVnaWVzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRm
b3JtU3RyYXRlZ2llcy5tbQpAQCAtMzgsNiArMzgsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9TaGFy
ZWRCdWZmZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvU3ViZnJhbWVMb2FkZXIuaD4KICNpbXBvcnQg
PFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgorI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+
CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC04OSw2ICs5MCwxMyBAQCBTdG9yYWdl
U3RyYXRlZ3kqIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlU3RvcmFnZVN0cmF0ZWd5KCkK
ICAgICByZXR1cm4gdGhpczsKIH0KIAorI2lmIEVOQUJMRShHQU1FUEFEKQorR2FtZXBhZFN0cmF0
ZWd5KiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZUdhbWVwYWRTdHJhdGVneSgpCit7Cisg
ICAgcmV0dXJuIHRoaXM7Cit9CisjZW5kaWYKKwogU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2ll
czo6Y29va2llc0ZvckRPTShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNv
bnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiB1cmwpCiB7CiAgICAgcmV0dXJuIFdlYkNv
cmU6OmNvb2tpZXNGb3JET00oc2Vzc2lvbiwgZmlyc3RQYXJ0eSwgdXJsKTsKQEAgLTIxMiw2ICsy
MjAsMjIgQEAgbG9uZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnNldFN0cmluZ0ZvclR5cGUoY29u
c3QgU3RyaW5nJiBzdHJpbmcsIGNvbnN0IFN0cmluZyYKICAgICByZXR1cm4gUGxhdGZvcm1QYXN0
ZWJvYXJkKHBhc3RlYm9hcmROYW1lKS5zZXRTdHJpbmdGb3JUeXBlKHN0cmluZywgcGFzdGVib2Fy
ZFR5cGUpOwogfQogCisjaWYgRU5BQkxFKEdBTUVQQUQpCit2b2lkIFdlYlBsYXRmb3JtU3RyYXRl
Z2llczo6c3RhcnRNb25pdG9yaW5nR2FtZXBhZHMoR2FtZXBhZFN0cmF0ZWd5Q2xpZW50KikKK3sK
K30KKwordm9pZCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnN0b3BNb25pdG9yaW5nR2FtZXBhZHMo
R2FtZXBhZFN0cmF0ZWd5Q2xpZW50KikKK3sKK30KKworY29uc3QgVmVjdG9yPFBsYXRmb3JtR2Ft
ZXBhZCo+JiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnBsYXRmb3JtR2FtZXBhZHMoKQoreworICAg
IE5ldmVyRGVzdHJveWVkPFZlY3RvcjxQbGF0Zm9ybUdhbWVwYWQqPj4gZHVtbXlHYW1lcGFkczsK
KyAgICByZXR1cm4gZHVtbXlHYW1lcGFkczsKK30KKyNlbmRpZiAvLyBFTkFCTEUoR0FNRVBBRCkK
KwogI2lmIFBMQVRGT1JNKElPUykKIHZvaWQgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjp3cml0ZVRv
UGFzdGVib2FyZChjb25zdCBXZWJDb3JlOjpQYXN0ZWJvYXJkV2ViQ29udGVudCYgY29udGVudCkK
IHsKQEAgLTI1Miw1ICsyNzYsNCBAQCBsb25nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y2hhbmdl
Q291bnQoKQogewogICAgIHJldHVybiBQbGF0Zm9ybVBhc3RlYm9hcmQoKS5jaGFuZ2VDb3VudCgp
OwogfQotCi0jZW5kaWYKKyNlbmRpZiAvLyBQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5k
ZXggYjEzN2YxNy4uYWVlMzg2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisy
MDE0LTA2LTI1ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgbmV3IHBsYXRmb3JtIGdhbWVwYWQgYWJzdHJhY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzQzMjUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3Jt
U3RyYXRlZ2llcy5jcHA6CisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZUdh
bWVwYWRTdHJhdGVneSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJh
dGVnaWVzLmg6CisKIDIwMTQtMDYtMTkgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxl
LmNvbT4KIAogICAgICAgICBUcnkgdG8gZml4IFdpbmRvd3MgYnVpbGQuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3Bw
IGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVz
LmNwcAppbmRleCA5YmE2NTM3Li5kYTE4ZjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dp
bi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKQEAgLTgz
LDYgKzgzLDEzIEBAIFN0b3JhZ2VTdHJhdGVneSogV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVh
dGVTdG9yYWdlU3RyYXRlZ3koKQogICAgIHJldHVybiB0aGlzOwogfQogCisjaWYgRU5BQkxFKEdB
TUVQQUQpCitHYW1lcGFkU3RyYXRlZ3kqIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlR2Ft
ZXBhZFN0cmF0ZWd5KCkKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKyNlbmRpZgorCiBTdHJp
bmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb29raWVzRm9yRE9NKGNvbnN0IE5ldHdvcmtTdG9y
YWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVy
bCkKIHsKICAgICByZXR1cm4gV2ViQ29yZTo6Y29va2llc0ZvckRPTShzZXNzaW9uLCBmaXJzdFBh
cnR5LCB1cmwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQv
V2ViUGxhdGZvcm1TdHJhdGVnaWVzLmggYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAppbmRleCAyYjk0NGQ0Li4yN2JlNDU1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0
cmF0ZWdpZXMuaApAQCAtNDksNiArNDksOSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgV2ViQ29y
ZTo6UGx1Z2luU3RyYXRlZ3kqIGNyZWF0ZVBsdWdpblN0cmF0ZWd5KCk7CiAgICAgdmlydHVhbCBX
ZWJDb3JlOjpTaGFyZWRXb3JrZXJTdHJhdGVneSogY3JlYXRlU2hhcmVkV29ya2VyU3RyYXRlZ3ko
KTsKICAgICB2aXJ0dWFsIFdlYkNvcmU6OlN0b3JhZ2VTdHJhdGVneSogY3JlYXRlU3RvcmFnZVN0
cmF0ZWd5KCk7CisjaWYgRU5BQkxFKEdBTUVQQUQpCisgICAgdmlydHVhbCBXZWJDb3JlOjpHYW1l
cGFkU3RyYXRlZ3kqIGNyZWF0ZUdhbWVwYWRTdHJhdGVneSgpOworI2VuZGlmCiAKICAgICAvLyBX
ZWJDb3JlOjpDb29raWVzU3RyYXRlZ3kKICAgICB2aXJ0dWFsIFN0cmluZyBjb29raWVzRm9yRE9N
KGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFdlYkNvcmU6OlVS
TCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNzc0ZjEx
Yi4uZmVhMmFjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE0LTA2LTI1ICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgbmV3IHBsYXRmb3Jt
IGdhbWVwYWQgYWJzdHJhY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMzQzMjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJh
dGVnaWVzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0
ZWdpZXM6OmNyZWF0ZUdhbWVwYWRTdHJhdGVneSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaDoKKworICAgICAgICBBY3R1YWxseSBy
ZXR1cm4gYSBHYW1lcGFkU3RyYXRlZ3kgaW4gV0syIHdpdGggbm8gaW1wbGVtZW50YXRpb24gZm9y
IG5vdzoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3Ry
YXRlZ2llcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y3Jl
YXRlR2FtZXBhZFN0cmF0ZWd5KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1TdHJhdGVn
aWVzOjpzdGFydE1vbml0b3JpbmdHYW1lcGFkcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRm
b3JtU3RyYXRlZ2llczo6c3RvcE1vbml0b3JpbmdHYW1lcGFkcyk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBsYXRmb3JtU3RyYXRlZ2llczo6cGxhdGZvcm1HYW1lcGFkcyk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaDoKKwogMjAxNC0w
Ni0yNCAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KIAogICAgICAgICBb
aU9TXVtXSzJdIFdlIHNob3VsZCBub3Qgc3RhcnQgcG90ZW50aWFsIHRhcCBhY3RpdmF0aW9uIHVu
bGVzcyB0aGUgdGFwIGdlc3R1cmUgcmVjb2duaXplciBzdWNjZWVkCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2ll
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRm
b3JtU3RyYXRlZ2llcy5jcHAKaW5kZXggNTVkOGE5OS4uZTY4NTU3MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdp
ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
UGxhdGZvcm1TdHJhdGVnaWVzLmNwcApAQCAtNzQsNiArNzQsMTMgQEAgU3RvcmFnZVN0cmF0ZWd5
KiBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlU3RvcmFnZVN0cmF0ZWd5
KCkKICAgICByZXR1cm4gMDsKIH0KIAorI2lmIEVOQUJMRShHQU1FUEFEKQorR2FtZXBhZFN0cmF0
ZWd5KiBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlR2FtZXBhZFN0cmF0
ZWd5KCkKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKyNlbmRpZgorCiBSZXNvdXJjZUxvYWRT
Y2hlZHVsZXIqIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzOjpyZXNvdXJjZUxvYWRT
Y2hlZHVsZXIoKQogewogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdp
ZXMuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzUGxhdGZv
cm1TdHJhdGVnaWVzLmgKaW5kZXggNjBiZTYxNS4uZjcwY2ZkMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRm
b3JtU3RyYXRlZ2llcy5oCkBAIC00NCw2ICs0NCw5IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBX
ZWJDb3JlOjpQbHVnaW5TdHJhdGVneSogY3JlYXRlUGx1Z2luU3RyYXRlZ3koKSBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIFdlYkNvcmU6OlNoYXJlZFdvcmtlclN0cmF0ZWd5KiBjcmVhdGVTaGFyZWRX
b3JrZXJTdHJhdGVneSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgV2ViQ29yZTo6U3RvcmFnZVN0
cmF0ZWd5KiBjcmVhdGVTdG9yYWdlU3RyYXRlZ3koKSBvdmVycmlkZTsKKyNpZiBFTkFCTEUoR0FN
RVBBRCkKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkdhbWVwYWRTdHJhdGVneSogY3JlYXRlR2FtZXBh
ZFN0cmF0ZWd5KCkgb3ZlcnJpZGU7CisjZW5kaWYKIAogICAgIC8vIFdlYkNvcmU6OkxvYWRlclN0
cmF0ZWd5CiAgICAgdmlydHVhbCBXZWJDb3JlOjpSZXNvdXJjZUxvYWRTY2hlZHVsZXIqIHJlc291
cmNlTG9hZFNjaGVkdWxlcigpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXMuY3BwCmluZGV4IDc2YWEyZmQuLmM4NGViNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3Ry
YXRlZ2llcy5jcHAKQEAgLTEyNCw2ICsxMjQsMTMgQEAgU3RvcmFnZVN0cmF0ZWd5KiBXZWJQbGF0
Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZVN0b3JhZ2VTdHJhdGVneSgpCiAgICAgcmV0dXJuIHRoaXM7
CiB9CiAKKyNpZiBFTkFCTEUoR0FNRVBBRCkKK0dhbWVwYWRTdHJhdGVneSogV2ViUGxhdGZvcm1T
dHJhdGVnaWVzOjpjcmVhdGVHYW1lcGFkU3RyYXRlZ3koKQoreworICAgIHJldHVybiB0aGlzOwor
fQorI2VuZGlmCisKIC8vIENvb2tpZXNTdHJhdGVneQogCiBTdHJpbmcgV2ViUGxhdGZvcm1TdHJh
dGVnaWVzOjpjb29raWVzRm9yRE9NKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lv
biwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVybCkKQEAgLTUwNiw2ICs1MTMs
MjIgQEAgbG9uZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnNldFN0cmluZ0ZvclR5cGUoY29uc3Qg
U3RyaW5nJiBzdHJpbmcsIGNvbnN0IFN0cmluZyYKICAgICByZXR1cm4gbmV3Q2hhbmdlQ291bnQ7
CiB9CiAKKyNpZiBFTkFCTEUoR0FNRVBBRCkKK3ZvaWQgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpz
dGFydE1vbml0b3JpbmdHYW1lcGFkcyhHYW1lcGFkU3RyYXRlZ3lDbGllbnQqKQoreworfQorCit2
b2lkIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6c3RvcE1vbml0b3JpbmdHYW1lcGFkcyhHYW1lcGFk
U3RyYXRlZ3lDbGllbnQqKQoreworfQorCitjb25zdCBWZWN0b3I8UGxhdGZvcm1HYW1lcGFkKj4m
IFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6cGxhdGZvcm1HYW1lcGFkcygpCit7CisgICAgTmV2ZXJE
ZXN0cm95ZWQ8VmVjdG9yPFBsYXRmb3JtR2FtZXBhZCo+PiBkdW1teUdhbWVwYWRzOworICAgIHJl
dHVybiBkdW1teUdhbWVwYWRzOworfQorI2VuZGlmIC8vIEVOQUJMRShHQU1FUEFEKQorCiAjaWYg
UExBVEZPUk0oSU9TKQogdm9pZCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OndyaXRlVG9QYXN0ZWJv
YXJkKGNvbnN0IFdlYkNvcmU6OlBhc3RlYm9hcmRXZWJDb250ZW50JiBjb250ZW50KQogewpAQCAt
NTY2LDggKzU4OSw4IEBAIGxvbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjaGFuZ2VDb3VudCgp
CiAgICAgcmV0dXJuIGNoYW5nZUNvdW50OwogfQogCi0jZW5kaWYKKyNlbmRpZiAvLyBQTEFURk9S
TShJT1MpCiAKLSNlbmRpZgorI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCmluZGV4IDMyNDg0MTIu
Ljc3YTNmOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaApAQCAtMzYsOSArMzYs
MTcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1N0b3JhZ2VTdHJhdGVneS5oPgogI2luY2x1ZGUgPHd0
Zi9OZXZlckRlc3Ryb3llZC5oPgogCisjaWYgRU5BQkxFKEdBTUVQQUQpCisjaW5jbHVkZSA8V2Vi
Q29yZS9HYW1lcGFkU3RyYXRlZ3kuaD4KKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAot
Y2xhc3MgV2ViUGxhdGZvcm1TdHJhdGVnaWVzIDogcHVibGljIFdlYkNvcmU6OlBsYXRmb3JtU3Ry
YXRlZ2llcywgcHJpdmF0ZSBXZWJDb3JlOjpDb29raWVzU3RyYXRlZ3ksIHByaXZhdGUgV2ViQ29y
ZTo6RGF0YWJhc2VTdHJhdGVneSwgcHJpdmF0ZSBXZWJDb3JlOjpMb2FkZXJTdHJhdGVneSwgcHJp
dmF0ZSBXZWJDb3JlOjpQYXN0ZWJvYXJkU3RyYXRlZ3ksIHByaXZhdGUgV2ViQ29yZTo6UGx1Z2lu
U3RyYXRlZ3ksIHByaXZhdGUgV2ViQ29yZTo6U2hhcmVkV29ya2VyU3RyYXRlZ3ksIHByaXZhdGUg
V2ViQ29yZTo6U3RvcmFnZVN0cmF0ZWd5IHsKK2NsYXNzIFdlYlBsYXRmb3JtU3RyYXRlZ2llcyA6
IHB1YmxpYyBXZWJDb3JlOjpQbGF0Zm9ybVN0cmF0ZWdpZXMsIHByaXZhdGUgV2ViQ29yZTo6Q29v
a2llc1N0cmF0ZWd5LCBwcml2YXRlIFdlYkNvcmU6OkRhdGFiYXNlU3RyYXRlZ3ksIHByaXZhdGUg
V2ViQ29yZTo6TG9hZGVyU3RyYXRlZ3ksIHByaXZhdGUgV2ViQ29yZTo6UGFzdGVib2FyZFN0cmF0
ZWd5LCBwcml2YXRlIFdlYkNvcmU6OlBsdWdpblN0cmF0ZWd5LCBwcml2YXRlIFdlYkNvcmU6OlNo
YXJlZFdvcmtlclN0cmF0ZWd5LCBwcml2YXRlIFdlYkNvcmU6OlN0b3JhZ2VTdHJhdGVneQorI2lm
IEVOQUJMRShHQU1FUEFEKQorICAgICwgcHJpdmF0ZSBXZWJDb3JlOjpHYW1lcGFkU3RyYXRlZ3kK
KyNlbmRpZgorewogICAgIGZyaWVuZCBjbGFzcyBOZXZlckRlc3Ryb3llZDxXZWJQbGF0Zm9ybVN0
cmF0ZWdpZXM+OwogcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGluaXRpYWxpemUoKTsKQEAgLTU0
LDYgKzYyLDkgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFdlYkNvcmU6OlBsdWdpblN0cmF0ZWd5
KiBjcmVhdGVQbHVnaW5TdHJhdGVneSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgV2ViQ29yZTo6
U2hhcmVkV29ya2VyU3RyYXRlZ3kqIGNyZWF0ZVNoYXJlZFdvcmtlclN0cmF0ZWd5KCkgb3ZlcnJp
ZGU7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpTdG9yYWdlU3RyYXRlZ3kqIGNyZWF0ZVN0b3JhZ2VT
dHJhdGVneSgpIG92ZXJyaWRlOworI2lmIEVOQUJMRShHQU1FUEFEKQorICAgIHZpcnR1YWwgV2Vi
Q29yZTo6R2FtZXBhZFN0cmF0ZWd5KiBjcmVhdGVHYW1lcGFkU3RyYXRlZ3koKSBvdmVycmlkZTsK
KyNlbmRpZgogCiAgICAgLy8gV2ViQ29yZTo6Q29va2llc1N0cmF0ZWd5CiAgICAgdmlydHVhbCBT
dHJpbmcgY29va2llc0ZvckRPTShjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24m
LCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYpIG92
ZXJyaWRlOwpAQCAtMTI3LDYgKzEzOCwxMyBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxXZWJDb3Jl
OjpQbHVnaW5JbmZvPiBtX2NhY2hlZFBsdWdpbnM7CiAgICAgVmVjdG9yPFdlYkNvcmU6OlBsdWdp
bkluZm8+IG1fY2FjaGVkQXBwbGljYXRpb25QbHVnaW5zOwogI2VuZGlmIC8vIEVOQUJMRShORVRT
Q0FQRV9QTFVHSU5fQVBJKQorCisjaWYgRU5BQkxFKEdBTUVQQUQpCisgICAgLy8gV2ViQ29yZTo6
R2FtZXBhZFN0cmF0ZWd5CisgICAgdmlydHVhbCB2b2lkIHN0YXJ0TW9uaXRvcmluZ0dhbWVwYWRz
KFdlYkNvcmU6OkdhbWVwYWRTdHJhdGVneUNsaWVudCopIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBzdG9wTW9uaXRvcmluZ0dhbWVwYWRzKFdlYkNvcmU6OkdhbWVwYWRTdHJhdGVneUNsaWVu
dCopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlBsYXRmb3Jt
R2FtZXBhZCo+JiBwbGF0Zm9ybUdhbWVwYWRzKCkgb3ZlcnJpZGU7CisjZW5kaWYKIH07CiAKICNp
ZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkK
</data>
<flag name="review"
          id="258375"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233866</attachid>
            <date>2014-06-25 19:41:44 -0700</date>
            <delta_ts>2014-06-25 19:41:54 -0700</delta_ts>
            <desc>Patch v2 - Patch that should apply</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>34663</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiNmNmYjlkLi43MjNmZGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMg
QEAKKzIwMTQtMDYtMjUgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIEFkZCBuZXcgcGxhdGZvcm0gZ2FtZXBhZCBhYnN0cmFjdGlvbnMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNDMyNQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoTm90IHlldCBh
IHRlc3RlZCBjb25maWcpCisKKyAgICAgICAgLSBHYW1lcGFkU3RyYXRlZ3kgbGV0cyBwb3J0cyBj
dXN0b21pemUgdGhlIDMgYmFzaWMgYmVoYXZpb3JzIG5lZWRlZCBmb3IgYSBnYW1lcGFkCisgICAg
ICAgICAgaW1wbGVtZW50YXRpb24gdG8gZmVlZCB0aGUgQVBJIGluIFdlYkNvcmUuCisgICAgICAg
IC0gR2FtZXBhZFN0cmF0ZWd5Q2xpZW50IGdpdmVzIGFyYml0cmFyeSBvYmplY3RzIGluIFdlYkNv
cmUgdGhlIGFiaWxpdHkgdG8gcmVnaXN0ZXIKKyAgICAgICAgICBmb3IgY2FsbGJhY2tzIHdpdGgg
dGhlIEdhbWVwYWRTdHJhdGVneS4KKyAgICAgICAgLSBQbGF0Zm9ybUdhbWVwYWQgaXMgYSBwbGF0
Zm9ybS1hZ25vc3RpYyBvYmplY3QgdGhhdCByZXByZXNlbnRzIHRoZSBkYXRhIHRoYXQKKyAgICAg
ICAgICBmZWVkcyBpbnRvIHRoZSBHYW1lcGFkIG9iamVjdCB0aGF0IGlzIGV4cG9zZWQgdG8gd2Vi
IGNvbnRlbnQuCisKKyAgICAgICAgVGhlIGNvZGUgaW4gdGhpcyBwYXRjaCBpcyBkZWFkIGFzLWlz
LCBidXQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNDMyNAorICAg
ICAgICB3aWxsIGNvbnRhaW4gYW4gaW1tZWRpYXRlIGZvbGxvdy11cCBwYXRjaCB0aGF0IHVzZXMg
aXQuCisKKyAgICAgICAgTWFrZXMgc2Vuc2UgdG8gcmV2aWV3IHRoZW0gc2VwYXJhdGVseS4KKwor
ICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKworICAgICAgICAq
IHBsYXRmb3JtL0dhbWVwYWRTdHJhdGVneS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okdh
bWVwYWRTdHJhdGVneTo6fkdhbWVwYWRTdHJhdGVneSk6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9H
YW1lcGFkU3RyYXRlZ3lDbGllbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpHYW1lcGFk
U3RyYXRlZ3lDbGllbnQ6On5HYW1lcGFkU3RyYXRlZ3lDbGllbnQpOgorCisgICAgICAgICogcGxh
dGZvcm0vUGxhdGZvcm1HYW1lcGFkLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZv
cm1HYW1lcGFkOjp+UGxhdGZvcm1HYW1lcGFkKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3Jt
R2FtZXBhZDo6aWQpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1HYW1lcGFkOjpsYXN0VXBk
YXRlVGltZSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUdhbWVwYWQ6OmNvbm5lY3RUaW1l
KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtR2FtZXBhZDo6UGxhdGZvcm1HYW1lcGFkKToK
KworICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5oOgorICAgICAgICAoV2Vi
Q29yZTo6UGxhdGZvcm1TdHJhdGVnaWVzOjpnYW1lcGFkU3RyYXRlZ3kpOgorICAgICAgICAoV2Vi
Q29yZTo6UGxhdGZvcm1TdHJhdGVnaWVzOjpQbGF0Zm9ybVN0cmF0ZWdpZXMpOgorCiAyMDE0LTA2
LTI1ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtNU0VdIHJl
bW92ZUNvZGVkRnJhbWVzKCkgY2FuIHJlbW92ZSBtb3JlIHRoYW4gaXQgc2hvdWxkCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZTY3
MzMzNy4uYmVlZDEwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMTgzNSw2ICsxODM1LDcgQEAKIAkJNTEyREQ4RkQwRDkxRTZB
RjAwMEY4OUVFIC8qIEFyY2hpdmVGYWN0b3J5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MTJERDhGMzBEOTFFNkFGMDAwRjg5RUUgLyogQXJjaGl2ZUZh
Y3RvcnkuaCAqLzsgfTsKIAkJNTEyRUE5QkMxODFGMkVFMDAwMUQwMUUwIC8qIElEQlBlbmRpbmdP
cGVuQ2FsbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTEyRUE5QkIxODFGMkVFMDAwMUQwMUUwIC8qIElEQlBlbmRpbmdPcGVuQ2FsbC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxMkVBOUJFMTgyMDI4
NTcwMDFEMDFFMCAvKiBJREJPcGVyYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxMkVBOUJEMTgyMDI4NTcwMDFEMDFFMCAvKiBJREJPcGVyYXRp
b24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1
MTMxQjUxMjE5NTM4MTIwMDA4NUM4OTYgLyogR2FtZXBhZFN0cmF0ZWd5LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTMxQjUwRjE5NTM3OUMzMDA4NUM4
OTYgLyogR2FtZXBhZFN0cmF0ZWd5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJNTEzMjdENjAxMUEzM0EyQjAwNEY5RDY1IC8qIFNpbmtEb2N1bWVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEzMjdE
NUUxMUEzM0EyQjAwNEY5RDY1IC8qIFNpbmtEb2N1bWVudC5oICovOyB9OwogCQk1MTMyN0Q2MTEx
QTMzQTJCMDA0RjlENjUgLyogU2lua0RvY3VtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMzI3RDVGMTFBMzNBMkIwMDRGOUQ2NSAvKiBTaW5r
RG9jdW1lbnQuY3BwICovOyB9OwogCQk1MTNGMTQ1MzBBQjYzNEM0MDAwOTREREYgLyogSWNvbkxv
YWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MTNGMTQ1MTBBQjYzNEM0MDAwOTREREYgLyogSWNvbkxvYWRlci5jcHAgKi87IH07CkBAIC0xOTIx
LDYgKzE5MjIsNyBAQAogCQk1MUEwNTI1NjEwNTg4NzQwMDBDQzlFOTUgLyogUHJvdGVjdGlvblNw
YWNlSGFzaC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTFBMDUyNTUxMDU4ODc0MDAwQ0M5RTk1IC8qIFByb3RlY3Rpb25TcGFjZUhhc2guaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MUE0QkIwQTE5NTRE
NjE2MDBGQTVDMkUgLyogR2FtZXBhZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MUE0QkIwNzE5NTRENjE2MDBGQTVDMkUgLyogR2FtZXBhZC5jcHAg
Ki87IH07CiAJCTUxQTRCQjEwMTk1NEQ2MjcwMEZBNUMyRSAvKiBOYXZpZ2F0b3JHYW1lcGFkLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQTRCQjBE
MTk1NEQ2MjcwMEZBNUMyRSAvKiBOYXZpZ2F0b3JHYW1lcGFkLmNwcCAqLzsgfTsKKwkJNTFBOUQ5
RTYxOTVCOEY0NzAwMUIyQjVDIC8qIEdhbWVwYWRTdHJhdGVneUNsaWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFBOUQ5RTUxOTVCOEY0NzAwMUIy
QjVDIC8qIEdhbWVwYWRTdHJhdGVneUNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxQUEzRjZGMEJENUFBOUUwMDg5Mjk3MSAvKiBSZXNv
dXJjZUxvYWRlck1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUxQUEzRjZFMEJENUFBOUUwMDg5Mjk3MSAvKiBSZXNvdXJjZUxvYWRlck1hYy5tbSAq
LzsgfTsKIAkJNTFBQkFFMUIxMDNDMThGRjAwOEM1MjYwIC8qIFNvY2tldFN0cmVhbUVycm9yLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUFCQUUxQTEw
M0MxOEZGMDA4QzUyNjAgLyogU29ja2V0U3RyZWFtRXJyb3IuaCAqLzsgfTsKIAkJNTFBQkFFMUUx
MDNDMTkxMzAwOEM1MjYwIC8qIFNvY2tldFN0cmVhbUhhbmRsZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFBQkFFMUMxMDNDMTkxMzAwOEM1MjYwIC8q
IFNvY2tldFN0cmVhbUhhbmRsZS5oICovOyB9OwpAQCAtMTkzMSw2ICsxOTMzLDcgQEAKIAkJNTFB
RjUwMzYxNkYxMDBGNjAwOTVCMkU4IC8qIFJlc291cmNlTG9hZGVyVHlwZXMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQUY1MDM1MTZGMTAwRjYwMDk1
QjJFOCAvKiBSZXNvdXJjZUxvYWRlclR5cGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTFCMDdBNDQxODIzMjQ4QjAwQUE4RDFBIC8qIElEQlBl
bmRpbmdEZWxldGVDYWxsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MUIwN0E0MzE4MjMyNDhCMDBBQThEMUEgLyogSURCUGVuZGluZ0RlbGV0ZUNhbGwu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MUIy
NDE3QjBEOTMxRjNGMDBFODNGNUMgLyogTGVnYWN5V2ViQXJjaGl2ZU1hYy5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQjI0MTdBMEQ5MzFGM0YwMEU4
M0Y1QyAvKiBMZWdhY3lXZWJBcmNoaXZlTWFjLm1tICovOyB9OworCQk1MUI1OEZENDE5NUE5NjRE
MDAyOTkwQjAgLyogUGxhdGZvcm1HYW1lcGFkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MTVFNUZFRjE5NTEwMTQ3MDA4NkNBNUUgLyogUGxhdGZvcm1H
YW1lcGFkLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJNTFCRTM3RTAwREFFRTAwRTAwMTA4NUZDIC8qIFN0b3JhZ2VBcmVhLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUJFMzdERTBEQUVFMDBFMDAxMDg1
RkMgLyogU3RvcmFnZUFyZWEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk1MUMwQUEzOTBGMkFBMTBBMDAxNjQ4QzIgLyogQ2FjaGVkRnJhbWUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQzBBQTM4MEYy
QUExMEEwMDE2NDhDMiAvKiBDYWNoZWRGcmFtZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxQzBBQTQxMEYyQUExNUUwMDE2NDhDMiAvKiBDYWNo
ZWRGcmFtZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MUMwQUE0MDBGMkFBMTVFMDAxNjQ4QzIgLyogQ2FjaGVkRnJhbWUuY3BwICovOyB9OwpAQCAt
ODg5Nyw2ICs4OTAwLDcgQEAKIAkJNTEyREQ4RjMwRDkxRTZBRjAwMEY4OUVFIC8qIEFyY2hpdmVG
YWN0b3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFyY2hpdmVGYWN0b3J5
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMkVBOUJCMTgxRjJFRTAwMDFEMDFF
MCAvKiBJREJQZW5kaW5nT3BlbkNhbGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSURCUGVuZGluZ09wZW5DYWxsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUx
MkVBOUJEMTgyMDI4NTcwMDFEMDFFMCAvKiBJREJPcGVyYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSURCT3BlcmF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTUxMzFCNTBGMTk1Mzc5QzMwMDg1Qzg5NiAvKiBHYW1lcGFkU3RyYXRlZ3kuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gR2FtZXBhZFN0cmF0ZWd5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTUxMzI3RDVFMTFBMzNBMkIwMDRGOUQ2NSAvKiBTaW5rRG9jdW1lbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2lua0RvY3VtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTUxMzI3RDVGMTFBMzNBMkIwMDRGOUQ2NSAvKiBTaW5rRG9jdW1lbnQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2lua0RvY3VtZW50LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEzRjE0NTEwQUI2MzRDNDAwMDk0RERGIC8q
IEljb25Mb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElj
b25Mb2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODkzNSw2ICs4OTM5
LDcgQEAKIAkJNTE0Qzc2NjgwQ0U5MjNBMTAwN0VGM0NEIC8qIFJlc291cmNlUmVxdWVzdEJhc2Uu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVzb3VyY2VSZXF1ZXN0QmFzZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTRDNzY2OTBDRTkyM0ExMDA3RUYzQ0Qg
LyogUmVzb3VyY2VSZXNwb25zZUJhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUmVzb3VyY2VSZXNwb25zZUJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1MTRDNzY2QTBDRTkyM0ExMDA3RUYzQ0QgLyogUmVzb3VyY2VSZXNwb25zZUJhc2Uu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVzb3VyY2VSZXNwb25zZUJhc2Uu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTE1RTVGRUYxOTUxMDE0NzAwODZDQTVF
IC8qIFBsYXRmb3JtR2FtZXBhZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybUdhbWVwYWQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE2MDMwMEEwQ0M0MjUxMjAwQzhBQzI1IC8q
IEZpbGVTeXN0ZW1QT1NJWC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBGaWxlU3lzdGVtUE9TSVguY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTYw
MzA2QjBDQzQzNjIzMDBDOEFDMjUgLyogRmlsZVN5c3RlbUNGLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZpbGVTeXN0ZW1DRi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTUxNjBGNDk3MEIwQUE3NUYwMEMxRDJBRiAvKiBIaXN0b3J5SXRlbU1hYy5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IEhpc3RvcnlJdGVtTWFj
Lm1tOyBwYXRoID0gbWFjL0hpc3RvcnlJdGVtTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtODk5NSw2ICs5MDAwLDcgQEAKIAkJNTFBNEJCMEQxOTU0RDYyNzAwRkE1QzJFIC8q
IE5hdmlnYXRvckdhbWVwYWQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTmF2aWdhdG9yR2FtZXBhZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUx
QTRCQjBFMTk1NEQ2MjcwMEZBNUMyRSAvKiBOYXZpZ2F0b3JHYW1lcGFkLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5hdmlnYXRvckdhbWVwYWQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTFBNEJCMEYxOTU0RDYyNzAwRkE1QzJFIC8qIE5hdmlnYXRvckdhbWVw
YWQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE5hdmlnYXRvckdhbWVwYWQuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MUE5RDlFNTE5NUI4RjQ3MDAxQjJCNUMgLyogR2Ft
ZXBhZFN0cmF0ZWd5Q2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdh
bWVwYWRTdHJhdGVneUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUFB
M0Y2RTBCRDVBQTlFMDA4OTI5NzEgLyogUmVzb3VyY2VMb2FkZXJNYWMubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZXNvdXJjZUxvYWRlck1hYy5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFBQkFFMUExMDNDMThGRjAwOEM1MjYwIC8qIFNvY2tl
dFN0cmVhbUVycm9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNvY2tldFN0
cmVhbUVycm9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQUJBRTFDMTAzQzE5
MTMwMDhDNTI2MCAvKiBTb2NrZXRTdHJlYW1IYW5kbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU29ja2V0U3RyZWFtSGFuZGxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0yMTI3MCw2ICsyMTI3Niw4IEBACiAJCQkJQzU3RkVERTAxMjEyRUU5QzAwOTdCRTY1
IC8qIEZpbGVTeXN0ZW0uY3BwICovLAogCQkJCTUxNEIzRjcyMEM3MjIwNDcwMDA1MzBERiAvKiBG
aWxlU3lzdGVtLmggKi8sCiAJCQkJQkMwNzNCQTkwQzM5OUIxRjAwMEY1OTc5IC8qIEZsb2F0Q29u
dmVyc2lvbi5oICovLAorCQkJCTUxMzFCNTBGMTk1Mzc5QzMwMDg1Qzg5NiAvKiBHYW1lcGFkU3Ry
YXRlZ3kuaCAqLywKKwkJCQk1MUE5RDlFNTE5NUI4RjQ3MDAxQjJCNUMgLyogR2FtZXBhZFN0cmF0
ZWd5Q2xpZW50LmggKi8sCiAJCQkJQTg3NDhCREYxMkNCRjJEQzAwMUZCQTQxIC8qIEhhc2hUb29s
cy5oICovLAogCQkJCUJDM0JDMjlCMEU5MUFCMEYwMDgzNTU4OCAvKiBIb3N0V2luZG93LmggKi8s
CiAJCQkJODYyRjEyOUYxOEMxRENFNDAwNUM1NEFGIC8qIEh5c3RlcmVzaXNBY3Rpdml0eS5oICov
LApAQCAtMjEzMDUsNiArMjEzMTMsNyBAQAogCQkJCUUxNDI0Qzg5MTY0QjNCNEUwMEYzMkQ0MCAv
KiBQbGF0Zm9ybUNvb2tpZUphci5oICovLAogCQkJCUJDNUM3NjI5MTQ5N0ZFMTQwMEJDNDc3NSAv
KiBQbGF0Zm9ybUV2ZW50LmggKi8sCiAJCQkJQTcyM0Y3N0ExNDg0Q0E0QzAwOEM2REJFIC8qIFBs
YXRmb3JtRXhwb3J0TWFjcm9zLmggKi8sCisJCQkJNTE1RTVGRUYxOTUxMDE0NzAwODZDQTVFIC8q
IFBsYXRmb3JtR2FtZXBhZC5oICovLAogCQkJCTkzNUM0NzY2MDlBQzRENDMwMEE2QUFCNCAvKiBQ
bGF0Zm9ybUtleWJvYXJkRXZlbnQuaCAqLywKIAkJCQk5MzI4NzFCRjBCMjBERUI3MDA0OTAzNUEg
LyogUGxhdGZvcm1NZW51RGVzY3JpcHRpb24uaCAqLywKIAkJCQk5MzVDNDc2NzA5QUM0RDQzMDBB
NkFBQjQgLyogUGxhdGZvcm1Nb3VzZUV2ZW50LmggKi8sCkBAIC0yMzc0NCw2ICsyMzc1Myw3IEBA
CiAJCQkJODVFNzExOTIwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUNTU1J1bGVMaXN0SW50ZXJuYWwu
aCBpbiBIZWFkZXJzICovLAogCQkJCTg1MDMyREU1MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NT
dHlsZURlY2xhcmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NUU3MTE5MzBBQzVENTM1MDA1
MzI3MEYgLyogRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbkludGVybmFsLmggaW4gSGVhZGVycyAqLywK
KwkJCQk1MUI1OEZENDE5NUE5NjREMDAyOTkwQjAgLyogUGxhdGZvcm1HYW1lcGFkLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk4NTAzMkRFNzBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTU3R5bGVSdWxl
LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTkwOUNFMjBBQ0M3QTdFMDBERjAxRjEgLyogRE9NQ1NT
U3R5bGVSdWxlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxNUZGN0Q1MThDOTU1Mzgw
MEZFNEM4NyAvKiBLZXlwcmVzc0NvbW1hbmQuaCBpbiBIZWFkZXJzICovLApAQCAtMjM4OTAsNiAr
MjM5MDAsNyBAQAogCQkJCTg1QkE0RDE1MEFBNjg4NjgwMDg4MDUyRCAvKiBET01IVE1MT0xpc3RF
bGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NUU3MTFCRTBBQzVENTM1MDA1MzI3MEYgLyog
RE9NSFRNTE9MaXN0RWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NUYzMkFF
RTBBQTYzQjg3MDBGRjMxODQgLyogRE9NSFRNTE9wdEdyb3VwRWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJNTEzMUI1MTIxOTUzODEyMDAwODVDODk2IC8qIEdhbWVwYWRTdHJhdGVneS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJODVFNzExQkYwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxPcHRH
cm91cEVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODU0MDc1NkIwQUQ2Q0JG
OTAwNjIwQzU3IC8qIERPTUhUTUxPcHRpb25FbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4
NTQwNzU2RDBBRDZDQkY5MDA2MjBDNTcgLyogRE9NSFRNTE9wdGlvbkVsZW1lbnRJbnRlcm5hbC5o
IGluIEhlYWRlcnMgKi8sCkBAIC0yNDQ0OCw2ICsyNDQ1OSw3IEBACiAJCQkJNTFENzE5RDkxODEx
MDZFMDAwMTZEQzUxIC8qIElEQkluZGV4LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUFCQjVCODE4
NkQwRUQxMDA4MzkxQTEgLyogSURCSW5kZXhNZXRhZGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NTEwMTk0NDExODM2RDIwODAwOTI1NTIzIC8qIElEQkluZGV4V3JpdGVyTGV2ZWxEQi5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNTFBOUQ5RTYxOTVCOEY0NzAwMUIyQjVDIC8qIEdhbWVwYWRTdHJhdGVn
eUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFENzE5REMxODExMDZFMDAwMTZEQzUxIC8q
IElEQktleS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTExRUMxQTYxODhEQUNBNDAwQkEzRUI2IC8q
IElEQktleURhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRDcxOURFMTgxMTA2RTAwMDE2REM1
MSAvKiBJREJLZXlQYXRoLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0dhbWVwYWRTdHJhdGVneS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
R2FtZXBhZFN0cmF0ZWd5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTRh
NGQyOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0dhbWVwYWRT
dHJhdGVneS5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEdhbWVwYWRT
dHJhdGVneV9oCisjZGVmaW5lIEdhbWVwYWRTdHJhdGVneV9oCisKKyNpZiBFTkFCTEUoR0FNRVBB
RCkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBQbGF0Zm9ybUdhbWVwYWQ7CitjbGFz
cyBHYW1lcGFkU3RyYXRlZ3lDbGllbnQ7CisKK2NsYXNzIEdhbWVwYWRTdHJhdGVneSB7CitwdWJs
aWM6CisgICAgdmlydHVhbCB2b2lkIHN0YXJ0TW9uaXRvcmluZ0dhbWVwYWRzKEdhbWVwYWRTdHJh
dGVneUNsaWVudCopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3RvcE1vbml0b3JpbmdHYW1lcGFk
cyhHYW1lcGFkU3RyYXRlZ3lDbGllbnQqKSA9IDA7CisgICAgdmlydHVhbCBjb25zdCBWZWN0b3I8
UGxhdGZvcm1HYW1lcGFkKj4mIHBsYXRmb3JtR2FtZXBhZHMoKSA9IDA7CisKK3Byb3RlY3RlZDoK
KyAgICB2aXJ0dWFsIH5HYW1lcGFkU3RyYXRlZ3koKQorICAgIHsKKyAgICB9Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoR0FNRVBBRCkKKyNlbmRpZiAv
LyBHYW1lcGFkU3RyYXRlZ3lfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
R2FtZXBhZFN0cmF0ZWd5Q2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9HYW1lcGFk
U3RyYXRlZ3lDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYWI4
ZDM4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vR2FtZXBhZFN0
cmF0ZWd5Q2xpZW50LmgKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgR2Ft
ZXBhZFN0cmF0ZWd5Q2xpZW50X2gKKyNkZWZpbmUgR2FtZXBhZFN0cmF0ZWd5Q2xpZW50X2gKKwor
I2lmIEVOQUJMRShHQU1FUEFEKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEdhbWVw
YWRTdHJhdGVneUNsaWVudCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+R2FtZXBhZFN0cmF0ZWd5
Q2xpZW50KCkgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgcGxhdGZvcm1HYW1lcGFkQ29ubmVjdGVk
KHVuc2lnbmVkIGluZGV4KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBsYXRmb3JtR2FtZXBhZERp
c2Nvbm5lY3RlZCh1bnNpZ25lZCBpbmRleCkgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gRU5BQkxFKEdBTUVQQUQpCisjZW5kaWYgLy8gR2FtZXBhZFN0cmF0
ZWd5Q2xpZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3Jt
R2FtZXBhZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1HYW1lcGFkLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTAyY2Y0ZAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtR2FtZXBhZC5oCkBAIC0wLDAgKzEs
NjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFBsYXRmb3JtR2FtZXBhZF9oCisjZGVmaW5lIFBs
YXRmb3JtR2FtZXBhZF9oCisKKyNpZiBFTkFCTEUoR0FNRVBBRCkKKworI2luY2x1ZGUgPHd0Zi9W
ZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBQbGF0Zm9ybUdhbWVwYWQgeworcHVibGljOgorICAgIHZpcnR1YWwg
flBsYXRmb3JtR2FtZXBhZCgpIHsgfQorCisgICAgY29uc3QgU3RyaW5nJiBpZCgpIGNvbnN0IHsg
cmV0dXJuIG1faWQ7IH0KKyAgICBkb3VibGUgbGFzdFVwZGF0ZVRpbWUoKSBjb25zdCB7IHJldHVy
biBtX2xhc3RVcGRhdGVUaW1lOyB9CisgICAgZG91YmxlIGNvbm5lY3RUaW1lKCkgY29uc3QgeyBy
ZXR1cm4gbV9jb25uZWN0VGltZTsgfQorICAgIHZpcnR1YWwgY29uc3QgVmVjdG9yPGRvdWJsZT4m
IGF4aXNWYWx1ZXMoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBjb25zdCBWZWN0b3I8ZG91Ymxl
PiYgYnV0dG9uVmFsdWVzKCkgY29uc3QgPSAwOworCitwcm90ZWN0ZWQ6CisgICAgUGxhdGZvcm1H
YW1lcGFkKCkKKyAgICAgICAgOiBtX2xhc3RVcGRhdGVUaW1lKDAuMCkKKyAgICAgICAgLCBtX2Nv
bm5lY3RUaW1lKDAuMCkKKyAgICB7CisgICAgfQorCisgICAgU3RyaW5nIG1faWQ7CisgICAgZG91
YmxlIG1fbGFzdFVwZGF0ZVRpbWU7CisgICAgZG91YmxlIG1fY29ubmVjdFRpbWU7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoR0FNRVBBRCkKKyNlbmRp
ZiAvLyBQbGF0Zm9ybUdhbWVwYWRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUGxhdGZvcm1TdHJhdGVnaWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9y
bVN0cmF0ZWdpZXMuaAppbmRleCAyY2E2YTY4Li4xMjc4Y2UzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVN0cmF0ZWdpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9QbGF0Zm9ybVN0cmF0ZWdpZXMuaApAQCAtMzYsNiArMzYsMTAgQEAgY2xhc3Mg
UGx1Z2luU3RyYXRlZ3k7CiBjbGFzcyBTaGFyZWRXb3JrZXJTdHJhdGVneTsKIGNsYXNzIFN0b3Jh
Z2VTdHJhdGVneTsKIAorI2lmIEVOQUJMRShHQU1FUEFEKQorY2xhc3MgR2FtZXBhZFN0cmF0ZWd5
OworI2VuZGlmCisKIGNsYXNzIFBsYXRmb3JtU3RyYXRlZ2llcyB7CiBwdWJsaWM6CiAgICAgQ29v
a2llc1N0cmF0ZWd5KiBjb29raWVzU3RyYXRlZ3koKQpAQCAtODcsMTUgKzkxLDI3IEBAIHB1Ymxp
YzoKICAgICAgICAgcmV0dXJuIG1fc3RvcmFnZVN0cmF0ZWd5OwogICAgIH0KIAorI2lmIEVOQUJM
RShHQU1FUEFEKQorICAgIEdhbWVwYWRTdHJhdGVneSogZ2FtZXBhZFN0cmF0ZWd5KCkKKyAgICB7
CisgICAgICAgIGlmICghbV9nYW1lcGFkU3RyYXRlZ3kpCisgICAgICAgICAgICBtX2dhbWVwYWRT
dHJhdGVneSA9IGNyZWF0ZUdhbWVwYWRTdHJhdGVneSgpOworICAgICAgICByZXR1cm4gbV9nYW1l
cGFkU3RyYXRlZ3k7CisgICAgfQorI2VuZGlmCisKIHByb3RlY3RlZDoKICAgICBQbGF0Zm9ybVN0
cmF0ZWdpZXMoKQotICAgICAgICA6IG1fY29va2llc1N0cmF0ZWd5KDApCi0gICAgICAgICwgbV9k
YXRhYmFzZVN0cmF0ZWd5KDApCi0gICAgICAgICwgbV9sb2FkZXJTdHJhdGVneSgwKQotICAgICAg
ICAsIG1fcGFzdGVib2FyZFN0cmF0ZWd5KDApCi0gICAgICAgICwgbV9wbHVnaW5TdHJhdGVneSgw
KQotICAgICAgICAsIG1fc2hhcmVkV29ya2VyU3RyYXRlZ3koMCkKLSAgICAgICAgLCBtX3N0b3Jh
Z2VTdHJhdGVneSgwKQorICAgICAgICA6IG1fY29va2llc1N0cmF0ZWd5KG51bGxwdHIpCisgICAg
ICAgICwgbV9kYXRhYmFzZVN0cmF0ZWd5KG51bGxwdHIpCisgICAgICAgICwgbV9sb2FkZXJTdHJh
dGVneShudWxscHRyKQorICAgICAgICAsIG1fcGFzdGVib2FyZFN0cmF0ZWd5KG51bGxwdHIpCisg
ICAgICAgICwgbV9wbHVnaW5TdHJhdGVneShudWxscHRyKQorICAgICAgICAsIG1fc2hhcmVkV29y
a2VyU3RyYXRlZ3kobnVsbHB0cikKKyAgICAgICAgLCBtX3N0b3JhZ2VTdHJhdGVneShudWxscHRy
KQorI2lmIEVOQUJMRShHQU1FUEFEKQorICAgICAgICAsIG1fZ2FtZXBhZFN0cmF0ZWd5KG51bGxw
dHIpCisjZW5kaWYKICAgICB7CiAgICAgfQogCkBAIC0xMTEsNiArMTI3LDkgQEAgcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIFBsdWdpblN0cmF0ZWd5KiBjcmVhdGVQbHVnaW5TdHJhdGVneSgpID0gMDsK
ICAgICB2aXJ0dWFsIFNoYXJlZFdvcmtlclN0cmF0ZWd5KiBjcmVhdGVTaGFyZWRXb3JrZXJTdHJh
dGVneSgpID0gMDsKICAgICB2aXJ0dWFsIFN0b3JhZ2VTdHJhdGVneSogY3JlYXRlU3RvcmFnZVN0
cmF0ZWd5KCkgPSAwOworI2lmIEVOQUJMRShHQU1FUEFEKQorICAgIHZpcnR1YWwgR2FtZXBhZFN0
cmF0ZWd5KiBjcmVhdGVHYW1lcGFkU3RyYXRlZ3koKSA9IDA7CisjZW5kaWYKIAogICAgIENvb2tp
ZXNTdHJhdGVneSogbV9jb29raWVzU3RyYXRlZ3k7CiAgICAgRGF0YWJhc2VTdHJhdGVneSogbV9k
YXRhYmFzZVN0cmF0ZWd5OwpAQCAtMTE5LDYgKzEzOCw5IEBAIHByaXZhdGU6CiAgICAgUGx1Z2lu
U3RyYXRlZ3kqIG1fcGx1Z2luU3RyYXRlZ3k7CiAgICAgU2hhcmVkV29ya2VyU3RyYXRlZ3kqIG1f
c2hhcmVkV29ya2VyU3RyYXRlZ3k7CiAgICAgU3RvcmFnZVN0cmF0ZWd5KiBtX3N0b3JhZ2VTdHJh
dGVneTsKKyNpZiBFTkFCTEUoR0FNRVBBRCkKKyAgICBHYW1lcGFkU3RyYXRlZ3kqIG1fZ2FtZXBh
ZFN0cmF0ZWd5OworI2VuZGlmCiB9OwogCiBQbGF0Zm9ybVN0cmF0ZWdpZXMqIHBsYXRmb3JtU3Ry
YXRlZ2llcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDhiMWQ5MDYuLmUyMzU0ZmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNC0wNi0yNSAgQnJhZHkgRWlkc29uICA8YmVp
ZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIG5ldyBwbGF0Zm9ybSBnYW1lcGFkIGFic3Ry
YWN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTM0MzI1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaDoKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW06CisgICAgICAgIChXZWJQbGF0Zm9y
bVN0cmF0ZWdpZXM6OmNyZWF0ZUdhbWVwYWRTdHJhdGVneSk6CisgICAgICAgIChXZWJQbGF0Zm9y
bVN0cmF0ZWdpZXM6OnN0YXJ0TW9uaXRvcmluZ0dhbWVwYWRzKToKKyAgICAgICAgKFdlYlBsYXRm
b3JtU3RyYXRlZ2llczo6c3RvcE1vbml0b3JpbmdHYW1lcGFkcyk6CisgICAgICAgIChXZWJQbGF0
Zm9ybVN0cmF0ZWdpZXM6OnBsYXRmb3JtR2FtZXBhZHMpOgorCiAyMDE0LTA2LTI1ICBHYXZpbiBC
YXJyYWNsb3VnaCAgPGJhcmFjbG91Z2hAYXBwbGUuY29tPgogCiAgICAgICAgIFNob3VsZCBfdXBk
YXRlVmlzaWJpbGl0eVN0YXRlIG9uIHZpZXcgaGlkZS91bmhpZGUuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCmlu
ZGV4IGM2ZWM0MzcuLmE0MjlkOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCkBAIC0zNSwxMCArMzUsMTgg
QEAKICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZFdvcmtlclN0cmF0ZWd5Lmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9TdG9yYWdlU3RyYXRlZ3kuaD4KIAorI2lmIEVOQUJMRShHQU1FUEFEKQorI2luY2x1
ZGUgPFdlYkNvcmUvR2FtZXBhZFN0cmF0ZWd5Lmg+CisjZW5kaWYKKwogc3RydWN0IFBhc3RlYm9h
cmRJbWFnZTsKIHN0cnVjdCBQYXN0ZWJvYXJkV2ViQ29udGVudDsKIAotY2xhc3MgV2ViUGxhdGZv
cm1TdHJhdGVnaWVzIDogcHVibGljIFdlYkNvcmU6OlBsYXRmb3JtU3RyYXRlZ2llcywgcHJpdmF0
ZSBXZWJDb3JlOjpDb29raWVzU3RyYXRlZ3ksIHByaXZhdGUgV2ViQ29yZTo6RGF0YWJhc2VTdHJh
dGVneSwgcHJpdmF0ZSBXZWJDb3JlOjpMb2FkZXJTdHJhdGVneSwgcHJpdmF0ZSBXZWJDb3JlOjpQ
YXN0ZWJvYXJkU3RyYXRlZ3ksIHByaXZhdGUgV2ViQ29yZTo6UGx1Z2luU3RyYXRlZ3ksIHByaXZh
dGUgV2ViQ29yZTo6U2hhcmVkV29ya2VyU3RyYXRlZ3ksIHByaXZhdGUgV2ViQ29yZTo6U3RvcmFn
ZVN0cmF0ZWd5IHsKK2NsYXNzIFdlYlBsYXRmb3JtU3RyYXRlZ2llcyA6IHB1YmxpYyBXZWJDb3Jl
OjpQbGF0Zm9ybVN0cmF0ZWdpZXMsIHByaXZhdGUgV2ViQ29yZTo6Q29va2llc1N0cmF0ZWd5LCBw
cml2YXRlIFdlYkNvcmU6OkRhdGFiYXNlU3RyYXRlZ3ksIHByaXZhdGUgV2ViQ29yZTo6TG9hZGVy
U3RyYXRlZ3ksIHByaXZhdGUgV2ViQ29yZTo6UGFzdGVib2FyZFN0cmF0ZWd5LCBwcml2YXRlIFdl
YkNvcmU6OlBsdWdpblN0cmF0ZWd5LCBwcml2YXRlIFdlYkNvcmU6OlNoYXJlZFdvcmtlclN0cmF0
ZWd5LCBwcml2YXRlIFdlYkNvcmU6OlN0b3JhZ2VTdHJhdGVneQorI2lmIEVOQUJMRShHQU1FUEFE
KQorICAgICwgcHJpdmF0ZSBXZWJDb3JlOjpHYW1lcGFkU3RyYXRlZ3kKKyNlbmRpZgorewogcHVi
bGljOgogICAgIHN0YXRpYyB2b2lkIGluaXRpYWxpemVJZk5lY2Vzc2FyeSgpOwogICAgIApAQCAt
NTMsNiArNjEsOSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgV2ViQ29yZTo6UGx1Z2luU3RyYXRl
Z3kqIGNyZWF0ZVBsdWdpblN0cmF0ZWd5KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBXZWJDb3Jl
OjpTaGFyZWRXb3JrZXJTdHJhdGVneSogY3JlYXRlU2hhcmVkV29ya2VyU3RyYXRlZ3koKSBvdmVy
cmlkZTsKICAgICB2aXJ0dWFsIFdlYkNvcmU6OlN0b3JhZ2VTdHJhdGVneSogY3JlYXRlU3RvcmFn
ZVN0cmF0ZWd5KCkgb3ZlcnJpZGU7CisjaWYgRU5BQkxFKEdBTUVQQUQpCisgICAgdmlydHVhbCBX
ZWJDb3JlOjpHYW1lcGFkU3RyYXRlZ3kqIGNyZWF0ZUdhbWVwYWRTdHJhdGVneSgpIG92ZXJyaWRl
OworI2VuZGlmCiAKICAgICAvLyBXZWJDb3JlOjpDb29raWVzU3RyYXRlZ3kKICAgICB2aXJ0dWFs
IFN0cmluZyBjb29raWVzRm9yRE9NKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lv
biYsIGNvbnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJikg
b3ZlcnJpZGU7CkBAIC0xMDEsNiArMTEyLDEzIEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBsb25n
IHNldEJ1ZmZlckZvclR5cGUoUGFzc1JlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+LCBjb25z
dCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKSBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIGxvbmcgc2V0UGF0aG5hbWVzRm9yVHlwZShjb25zdCBWZWN0
b3I8U3RyaW5nPiYsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFN0cmluZyYg
cGFzdGVib2FyZE5hbWUpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgbG9uZyBzZXRTdHJpbmdGb3JU
eXBlKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFN0
cmluZyYgcGFzdGVib2FyZE5hbWUpIG92ZXJyaWRlOworCisjaWYgRU5BQkxFKEdBTUVQQUQpCisg
ICAgLy8gV2ViQ29yZTo6R2FtZXBhZFN0cmF0ZWd5CisgICAgdmlydHVhbCB2b2lkIHN0YXJ0TW9u
aXRvcmluZ0dhbWVwYWRzKFdlYkNvcmU6OkdhbWVwYWRTdHJhdGVneUNsaWVudCopIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgdm9pZCBzdG9wTW9uaXRvcmluZ0dhbWVwYWRzKFdlYkNvcmU6OkdhbWVw
YWRTdHJhdGVneUNsaWVudCopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgY29uc3QgVmVjdG9yPFdl
YkNvcmU6OlBsYXRmb3JtR2FtZXBhZCo+JiBwbGF0Zm9ybUdhbWVwYWRzKCkgb3ZlcnJpZGU7Cisj
ZW5kaWYKIH07CiAKICNlbmRpZiAvLyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXNfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVz
Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVn
aWVzLm1tCmluZGV4IGExNzExMGEuLjIyYjc2YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0KQEAgLTM4
LDYgKzM4LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL1N1YmZyYW1lTG9hZGVyLmg+CiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2Uu
aD4KKyNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKIApAQCAtODksNiArOTAsMTMgQEAgU3RvcmFnZVN0cmF0ZWd5KiBXZWJQbGF0Zm9ybVN0
cmF0ZWdpZXM6OmNyZWF0ZVN0b3JhZ2VTdHJhdGVneSgpCiAgICAgcmV0dXJuIHRoaXM7CiB9CiAK
KyNpZiBFTkFCTEUoR0FNRVBBRCkKK0dhbWVwYWRTdHJhdGVneSogV2ViUGxhdGZvcm1TdHJhdGVn
aWVzOjpjcmVhdGVHYW1lcGFkU3RyYXRlZ3koKQoreworICAgIHJldHVybiB0aGlzOworfQorI2Vu
ZGlmCisKIFN0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvb2tpZXNGb3JET00oY29uc3Qg
TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNv
bnN0IFVSTCYgdXJsKQogewogICAgIHJldHVybiBXZWJDb3JlOjpjb29raWVzRm9yRE9NKHNlc3Np
b24sIGZpcnN0UGFydHksIHVybCk7CkBAIC0yMTIsNiArMjIwLDIyIEBAIGxvbmcgV2ViUGxhdGZv
cm1TdHJhdGVnaWVzOjpzZXRTdHJpbmdGb3JUeXBlKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBjb25z
dCBTdHJpbmcmCiAgICAgcmV0dXJuIFBsYXRmb3JtUGFzdGVib2FyZChwYXN0ZWJvYXJkTmFtZSku
c2V0U3RyaW5nRm9yVHlwZShzdHJpbmcsIHBhc3RlYm9hcmRUeXBlKTsKIH0KIAorI2lmIEVOQUJM
RShHQU1FUEFEKQordm9pZCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnN0YXJ0TW9uaXRvcmluZ0dh
bWVwYWRzKEdhbWVwYWRTdHJhdGVneUNsaWVudCopCit7Cit9CisKK3ZvaWQgV2ViUGxhdGZvcm1T
dHJhdGVnaWVzOjpzdG9wTW9uaXRvcmluZ0dhbWVwYWRzKEdhbWVwYWRTdHJhdGVneUNsaWVudCop
Cit7Cit9CisKK2NvbnN0IFZlY3RvcjxQbGF0Zm9ybUdhbWVwYWQqPiYgV2ViUGxhdGZvcm1TdHJh
dGVnaWVzOjpwbGF0Zm9ybUdhbWVwYWRzKCkKK3sKKyAgICBOZXZlckRlc3Ryb3llZDxWZWN0b3I8
UGxhdGZvcm1HYW1lcGFkKj4+IGR1bW15R2FtZXBhZHM7CisgICAgcmV0dXJuIGR1bW15R2FtZXBh
ZHM7Cit9CisjZW5kaWYgLy8gRU5BQkxFKEdBTUVQQUQpCisKICNpZiBQTEFURk9STShJT1MpCiB2
b2lkIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6d3JpdGVUb1Bhc3RlYm9hcmQoY29uc3QgV2ViQ29y
ZTo6UGFzdGVib2FyZFdlYkNvbnRlbnQmIGNvbnRlbnQpCiB7CkBAIC0yNTIsNSArMjc2LDQgQEAg
bG9uZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNoYW5nZUNvdW50KCkKIHsKICAgICByZXR1cm4g
UGxhdGZvcm1QYXN0ZWJvYXJkKCkuY2hhbmdlQ291bnQoKTsKIH0KLQotI2VuZGlmCisjZW5kaWYg
Ly8gUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IGIxMzdmMTcuLmFlZTM4NmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxNC0wNi0yNSAgQnJhZHkgRWlkc29u
ICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIG5ldyBwbGF0Zm9ybSBnYW1lcGFk
IGFic3RyYWN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTM0MzI1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAg
ICAoV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVHYW1lcGFkU3RyYXRlZ3kpOgorICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oOgorCiAyMDE0LTA2LTE5
ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgVHJ5IHRv
IGZpeCBXaW5kb3dzIGJ1aWxkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29y
ZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dl
YkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKaW5kZXggOWJhNjUzNy4uZGEx
OGYwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxh
dGZvcm1TdHJhdGVnaWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCkBAIC04Myw2ICs4MywxMyBAQCBTdG9yYWdlU3Ry
YXRlZ3kqIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlU3RvcmFnZVN0cmF0ZWd5KCkKICAg
ICByZXR1cm4gdGhpczsKIH0KIAorI2lmIEVOQUJMRShHQU1FUEFEKQorR2FtZXBhZFN0cmF0ZWd5
KiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZUdhbWVwYWRTdHJhdGVneSgpCit7CisgICAg
cmV0dXJuIG51bGxwdHI7Cit9CisjZW5kaWYKKwogU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2ll
czo6Y29va2llc0ZvckRPTShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNv
bnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiB1cmwpCiB7CiAgICAgcmV0dXJuIFdlYkNv
cmU6OmNvb2tpZXNGb3JET00oc2Vzc2lvbiwgZmlyc3RQYXJ0eSwgdXJsKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5o
IGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVz
LmgKaW5kZXggMmI5NDRkNC4uMjdiZTQ1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKKysrIGIvU291cmNlL1dlYktp
dC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKQEAgLTQ5LDYgKzQ5
LDkgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFdlYkNvcmU6OlBsdWdpblN0cmF0ZWd5KiBjcmVh
dGVQbHVnaW5TdHJhdGVneSgpOwogICAgIHZpcnR1YWwgV2ViQ29yZTo6U2hhcmVkV29ya2VyU3Ry
YXRlZ3kqIGNyZWF0ZVNoYXJlZFdvcmtlclN0cmF0ZWd5KCk7CiAgICAgdmlydHVhbCBXZWJDb3Jl
OjpTdG9yYWdlU3RyYXRlZ3kqIGNyZWF0ZVN0b3JhZ2VTdHJhdGVneSgpOworI2lmIEVOQUJMRShH
QU1FUEFEKQorICAgIHZpcnR1YWwgV2ViQ29yZTo6R2FtZXBhZFN0cmF0ZWd5KiBjcmVhdGVHYW1l
cGFkU3RyYXRlZ3koKTsKKyNlbmRpZgogCiAgICAgLy8gV2ViQ29yZTo6Q29va2llc1N0cmF0ZWd5
CiAgICAgdmlydHVhbCBTdHJpbmcgY29va2llc0ZvckRPTShjb25zdCBXZWJDb3JlOjpOZXR3b3Jr
U3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdl
YkNvcmU6OlVSTCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDA4ZTU1M2IuLmMyYzc5ZmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMiBAQAorMjAxNC0wNi0yNSAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBs
ZS5jb20+CisKKyAgICAgICAgQWRkIG5ldyBwbGF0Zm9ybSBnYW1lcGFkIGFic3RyYWN0aW9ucwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM0MzI1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVHYW1lcGFkU3Ry
YXRlZ3kpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzUGxhdGZvcm1T
dHJhdGVnaWVzLmg6CisKKyAgICAgICAgQWN0dWFsbHkgcmV0dXJuIGEgR2FtZXBhZFN0cmF0ZWd5
IGluIFdLMiB3aXRoIG5vIGltcGxlbWVudGF0aW9uIGZvciBub3c6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZUdhbWVwYWRTdHJhdGVneSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtU3RyYXRlZ2llczo6c3RhcnRNb25pdG9yaW5nR2Ft
ZXBhZHMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnN0b3BNb25p
dG9yaW5nR2FtZXBhZHMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6
OnBsYXRmb3JtR2FtZXBhZHMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViUGxhdGZvcm1TdHJhdGVnaWVzLmg6CisKIDIwMTQtMDYtMjUgIEphZWh1biBMaW0gIDxsamFl
aHVuLmxpbUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBDTWFrZSBidWlsZCBm
aXggYWZ0ZXIgcjE3MDQ1MApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwIGIvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCmluZGV4
IDU1ZDhhOTkuLmU2ODU1NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAK
QEAgLTc0LDYgKzc0LDEzIEBAIFN0b3JhZ2VTdHJhdGVneSogTmV0d29ya1Byb2Nlc3NQbGF0Zm9y
bVN0cmF0ZWdpZXM6OmNyZWF0ZVN0b3JhZ2VTdHJhdGVneSgpCiAgICAgcmV0dXJuIDA7CiB9CiAK
KyNpZiBFTkFCTEUoR0FNRVBBRCkKK0dhbWVwYWRTdHJhdGVneSogTmV0d29ya1Byb2Nlc3NQbGF0
Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZUdhbWVwYWRTdHJhdGVneSgpCit7CisgICAgcmV0dXJuIG51
bGxwdHI7Cit9CisjZW5kaWYKKwogUmVzb3VyY2VMb2FkU2NoZWR1bGVyKiBOZXR3b3JrUHJvY2Vz
c1BsYXRmb3JtU3RyYXRlZ2llczo6cmVzb3VyY2VMb2FkU2NoZWR1bGVyKCkKIHsKICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmggYi9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5oCmluZGV4IDYw
YmU2MTUuLmY3MGNmZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmgKKysrIGIvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaApAQCAtNDQs
NiArNDQsOSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgV2ViQ29yZTo6UGx1Z2luU3RyYXRlZ3kq
IGNyZWF0ZVBsdWdpblN0cmF0ZWd5KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpT
aGFyZWRXb3JrZXJTdHJhdGVneSogY3JlYXRlU2hhcmVkV29ya2VyU3RyYXRlZ3koKSBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIFdlYkNvcmU6OlN0b3JhZ2VTdHJhdGVneSogY3JlYXRlU3RvcmFnZVN0
cmF0ZWd5KCkgb3ZlcnJpZGU7CisjaWYgRU5BQkxFKEdBTUVQQUQpCisgICAgdmlydHVhbCBXZWJD
b3JlOjpHYW1lcGFkU3RyYXRlZ3kqIGNyZWF0ZUdhbWVwYWRTdHJhdGVneSgpIG92ZXJyaWRlOwor
I2VuZGlmCiAKICAgICAvLyBXZWJDb3JlOjpMb2FkZXJTdHJhdGVneQogICAgIHZpcnR1YWwgV2Vi
Q29yZTo6UmVzb3VyY2VMb2FkU2NoZWR1bGVyKiByZXNvdXJjZUxvYWRTY2hlZHVsZXIoKSBvdmVy
cmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAppbmRleCA3NmFhMmZkLi5j
ODRlYjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCkBAIC0xMjQsNiAr
MTI0LDEzIEBAIFN0b3JhZ2VTdHJhdGVneSogV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVT
dG9yYWdlU3RyYXRlZ3koKQogICAgIHJldHVybiB0aGlzOwogfQogCisjaWYgRU5BQkxFKEdBTUVQ
QUQpCitHYW1lcGFkU3RyYXRlZ3kqIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlR2FtZXBh
ZFN0cmF0ZWd5KCkKK3sKKyAgICByZXR1cm4gdGhpczsKK30KKyNlbmRpZgorCiAvLyBDb29raWVz
U3RyYXRlZ3kKIAogU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29va2llc0ZvckRPTShj
b25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0
eSwgY29uc3QgVVJMJiB1cmwpCkBAIC01MDYsNiArNTEzLDIyIEBAIGxvbmcgV2ViUGxhdGZvcm1T
dHJhdGVnaWVzOjpzZXRTdHJpbmdGb3JUeXBlKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBjb25zdCBT
dHJpbmcmCiAgICAgcmV0dXJuIG5ld0NoYW5nZUNvdW50OwogfQogCisjaWYgRU5BQkxFKEdBTUVQ
QUQpCit2b2lkIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6c3RhcnRNb25pdG9yaW5nR2FtZXBhZHMo
R2FtZXBhZFN0cmF0ZWd5Q2xpZW50KikKK3sKK30KKwordm9pZCBXZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXM6OnN0b3BNb25pdG9yaW5nR2FtZXBhZHMoR2FtZXBhZFN0cmF0ZWd5Q2xpZW50KikKK3sKK30K
KworY29uc3QgVmVjdG9yPFBsYXRmb3JtR2FtZXBhZCo+JiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6
OnBsYXRmb3JtR2FtZXBhZHMoKQoreworICAgIE5ldmVyRGVzdHJveWVkPFZlY3RvcjxQbGF0Zm9y
bUdhbWVwYWQqPj4gZHVtbXlHYW1lcGFkczsKKyAgICByZXR1cm4gZHVtbXlHYW1lcGFkczsKK30K
KyNlbmRpZiAvLyBFTkFCTEUoR0FNRVBBRCkKKwogI2lmIFBMQVRGT1JNKElPUykKIHZvaWQgV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzOjp3cml0ZVRvUGFzdGVib2FyZChjb25zdCBXZWJDb3JlOjpQYXN0
ZWJvYXJkV2ViQ29udGVudCYgY29udGVudCkKIHsKQEAgLTU2Niw4ICs1ODksOCBAQCBsb25nIFdl
YlBsYXRmb3JtU3RyYXRlZ2llczo6Y2hhbmdlQ291bnQoKQogICAgIHJldHVybiBjaGFuZ2VDb3Vu
dDsKIH0KIAotI2VuZGlmCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQogCi0jZW5kaWYKKyNlbmRp
ZiAvLyBQTEFURk9STShDT0NPQSkKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3Ry
YXRlZ2llcy5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXMuaAppbmRleCAzMjQ4NDEyLi43N2EzZjkzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRl
Z2llcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzLmgKQEAgLTM2LDkgKzM2LDE3IEBACiAjaW5jbHVkZSA8V2ViQ29y
ZS9TdG9yYWdlU3RyYXRlZ3kuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAor
I2lmIEVOQUJMRShHQU1FUEFEKQorI2luY2x1ZGUgPFdlYkNvcmUvR2FtZXBhZFN0cmF0ZWd5Lmg+
CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNsYXNzIFdlYlBsYXRmb3JtU3RyYXRl
Z2llcyA6IHB1YmxpYyBXZWJDb3JlOjpQbGF0Zm9ybVN0cmF0ZWdpZXMsIHByaXZhdGUgV2ViQ29y
ZTo6Q29va2llc1N0cmF0ZWd5LCBwcml2YXRlIFdlYkNvcmU6OkRhdGFiYXNlU3RyYXRlZ3ksIHBy
aXZhdGUgV2ViQ29yZTo6TG9hZGVyU3RyYXRlZ3ksIHByaXZhdGUgV2ViQ29yZTo6UGFzdGVib2Fy
ZFN0cmF0ZWd5LCBwcml2YXRlIFdlYkNvcmU6OlBsdWdpblN0cmF0ZWd5LCBwcml2YXRlIFdlYkNv
cmU6OlNoYXJlZFdvcmtlclN0cmF0ZWd5LCBwcml2YXRlIFdlYkNvcmU6OlN0b3JhZ2VTdHJhdGVn
eSB7CitjbGFzcyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXMgOiBwdWJsaWMgV2ViQ29yZTo6UGxhdGZv
cm1TdHJhdGVnaWVzLCBwcml2YXRlIFdlYkNvcmU6OkNvb2tpZXNTdHJhdGVneSwgcHJpdmF0ZSBX
ZWJDb3JlOjpEYXRhYmFzZVN0cmF0ZWd5LCBwcml2YXRlIFdlYkNvcmU6OkxvYWRlclN0cmF0ZWd5
LCBwcml2YXRlIFdlYkNvcmU6OlBhc3RlYm9hcmRTdHJhdGVneSwgcHJpdmF0ZSBXZWJDb3JlOjpQ
bHVnaW5TdHJhdGVneSwgcHJpdmF0ZSBXZWJDb3JlOjpTaGFyZWRXb3JrZXJTdHJhdGVneSwgcHJp
dmF0ZSBXZWJDb3JlOjpTdG9yYWdlU3RyYXRlZ3kKKyNpZiBFTkFCTEUoR0FNRVBBRCkKKyAgICAs
IHByaXZhdGUgV2ViQ29yZTo6R2FtZXBhZFN0cmF0ZWd5CisjZW5kaWYKK3sKICAgICBmcmllbmQg
Y2xhc3MgTmV2ZXJEZXN0cm95ZWQ8V2ViUGxhdGZvcm1TdHJhdGVnaWVzPjsKIHB1YmxpYzoKICAg
ICBzdGF0aWMgdm9pZCBpbml0aWFsaXplKCk7CkBAIC01NCw2ICs2Miw5IEBAIHByaXZhdGU6CiAg
ICAgdmlydHVhbCBXZWJDb3JlOjpQbHVnaW5TdHJhdGVneSogY3JlYXRlUGx1Z2luU3RyYXRlZ3ko
KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIFdlYkNvcmU6OlNoYXJlZFdvcmtlclN0cmF0ZWd5KiBj
cmVhdGVTaGFyZWRXb3JrZXJTdHJhdGVneSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgV2ViQ29y
ZTo6U3RvcmFnZVN0cmF0ZWd5KiBjcmVhdGVTdG9yYWdlU3RyYXRlZ3koKSBvdmVycmlkZTsKKyNp
ZiBFTkFCTEUoR0FNRVBBRCkKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkdhbWVwYWRTdHJhdGVneSog
Y3JlYXRlR2FtZXBhZFN0cmF0ZWd5KCkgb3ZlcnJpZGU7CisjZW5kaWYKIAogICAgIC8vIFdlYkNv
cmU6OkNvb2tpZXNTdHJhdGVneQogICAgIHZpcnR1YWwgU3RyaW5nIGNvb2tpZXNGb3JET00oY29u
c3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgV2ViQ29yZTo6VVJMJiBm
aXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmKSBvdmVycmlkZTsKQEAgLTEyNyw2ICsxMzgs
MTMgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8V2ViQ29yZTo6UGx1Z2luSW5mbz4gbV9jYWNoZWRQ
bHVnaW5zOwogICAgIFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiBtX2NhY2hlZEFwcGxpY2F0
aW9uUGx1Z2luczsKICNlbmRpZiAvLyBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKKworI2lm
IEVOQUJMRShHQU1FUEFEKQorICAgIC8vIFdlYkNvcmU6OkdhbWVwYWRTdHJhdGVneQorICAgIHZp
cnR1YWwgdm9pZCBzdGFydE1vbml0b3JpbmdHYW1lcGFkcyhXZWJDb3JlOjpHYW1lcGFkU3RyYXRl
Z3lDbGllbnQqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc3RvcE1vbml0b3JpbmdHYW1l
cGFkcyhXZWJDb3JlOjpHYW1lcGFkU3RyYXRlZ3lDbGllbnQqKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpQbGF0Zm9ybUdhbWVwYWQqPiYgcGxhdGZvcm1HYW1l
cGFkcygpIG92ZXJyaWRlOworI2VuZGlmCiB9OwogCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJ
Tl9BUEkpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>