<?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>156769</bug_id>
          
          <creation_ts>2016-04-19 16:30:21 -0700</creation_ts>
          <short_desc>AudioBufferSourceNode.buffer should be nullable</short_desc>
          <delta_ts>2016-04-19 18:29:55 -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>Bindings</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>https://webaudio.github.io/web-audio-api/#AudioBufferSourceNode</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>jer.noble</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1185227</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-19 16:30:21 -0700</bug_when>
    <thetext>Get rid of custom bindings for AudioBufferSourceNode.buffer&apos;s setter. They are not needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185232</commentid>
    <comment_count>1</comment_count>
      <attachid>276775</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-19 16:42:52 -0700</bug_when>
    <thetext>Created attachment 276775
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185234</commentid>
    <comment_count>2</comment_count>
      <attachid>276775</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-19 16:44:57 -0700</bug_when>
    <thetext>Comment on attachment 276775
Patch

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

&gt; Source/WebCore/bindings/js/JSAudioBufferSourceNodeCustom.cpp:-45
&gt; -    if (!buffer) {

This was emulating [StrictTypeChecking] but also wrongly throwing a TypeError when setting to null. We now use [StrictTypeChecking] in the IDL and mark the attribute as nullable to get the correct behavior.

&gt; Source/WebCore/bindings/js/JSAudioBufferSourceNodeCustom.cpp:-51
&gt; -        state.vm().throwException(&amp;state, createTypeError(&amp;state, &quot;AudioBuffer unsupported number of channels&quot;));

We now use [SetterRaisesExceptionWithMessage] in the IDL and moved the exception code/message setting to the implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185236</commentid>
    <comment_count>3</comment_count>
      <attachid>276775</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-19 16:49:37 -0700</bug_when>
    <thetext>Comment on attachment 276775
Patch

Will clean up a little bit further.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185241</commentid>
    <comment_count>4</comment_count>
      <attachid>276778</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-19 17:06:16 -0700</bug_when>
    <thetext>Created attachment 276778
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185242</commentid>
    <comment_count>5</comment_count>
      <attachid>276778</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-04-19 17:10:18 -0700</bug_when>
    <thetext>Comment on attachment 276778
Patch

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

&gt; Source/WebCore/Modules/webaudio/AudioBufferSourceNode.cpp:424
&gt; -        if (numberOfChannels &gt; AudioContext::maxNumberOfChannels())
&gt; -            return false;
&gt; +        ASSERT(numberOfChannels &lt;= AudioContext::maxNumberOfChannels());

The test seems to cover this, but I was wondering where the guarantee of this comes from.

&gt; Source/WebCore/Modules/webaudio/AudioContext.h:208
&gt;      static unsigned maxNumberOfChannels() { return MaxNumberOfChannels;}

Missing space before the &quot;}&quot; here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185245</commentid>
    <comment_count>6</comment_count>
      <attachid>276778</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-19 17:17:31 -0700</bug_when>
    <thetext>Comment on attachment 276778
Patch

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

&gt;&gt; Source/WebCore/Modules/webaudio/AudioBufferSourceNode.cpp:424
&gt;&gt; +        ASSERT(numberOfChannels &lt;= AudioContext::maxNumberOfChannels());
&gt; 
&gt; The test seems to cover this, but I was wondering where the guarantee of this comes from.

There are 2 factories for AudioBuffer, the first one explicitly checks the number of channels:
RefPtr&lt;AudioBuffer&gt; AudioBuffer::create(unsigned numberOfChannels, size_t numberOfFrames, float sampleRate)
{
    if (sampleRate &lt; 22050 || sampleRate &gt; 96000 || numberOfChannels &gt; AudioContext::maxNumberOfChannels() || !numberOfFrames)
        return nullptr;

The second one looks like so:
RefPtr&lt;AudioBuffer&gt; AudioBuffer::createFromAudioFileData(const void* data, size_t dataSize, bool mixToMono, float sampleRate).

It creates an AudioBus then creates an AudioBuffer from that AudioBus. AudioFileReader::createBus() can set channelSize to 1 (mono) or 2 (stereo).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185269</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-19 18:29:55 -0700</bug_when>
    <thetext>Committed r199751: &lt;http://trac.webkit.org/changeset/199751&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>276775</attachid>
            <date>2016-04-19 16:42:52 -0700</date>
            <delta_ts>2016-04-19 17:06:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-156769-20160419164312.patch</filename>
            <type>text/plain</type>
            <size>21090</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk5NzQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTU4MzJkYmNlYzY1YThm
NTE5NzkwMzJkNmJiMDRjNTA5YWIwNTQwZC4uNjgzZmVkOTZlZGViMDFiODNhZDY4YWU5MTcxYWUx
ZmQ3MGMyZDU4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDE2LTA0LTE5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQXVkaW9CdWZmZXJTb3VyY2VO
b2RlLmJ1ZmZlciBzaG91bGQgYmUgbnVsbGFibGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Njc2OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEF1ZGlvQnVmZmVyU291cmNlTm9kZS5idWZmZXIgc2hvdWxk
IGJlIG51bGxhYmxlIGFzIHBlciB0aGUKKyAgICAgICAgc3BlY2lmaWNhdGlvbjoKKyAgICAgICAg
aHR0cHM6Ly93ZWJhdWRpby5naXRodWIuaW8vd2ViLWF1ZGlvLWFwaS8jQXVkaW9CdWZmZXJTb3Vy
Y2VOb2RlCisKKyAgICAgICAgT3VyIGltcGxlbWVudGF0aW9uIHdhcyBpbml0aWFsbHkgcmV0dXJu
aW5nIG51bGwgd2hlbiBnZXR0aW5nCisgICAgICAgIEF1ZGlvQnVmZmVyU291cmNlTm9kZS5idWZm
ZXIsIHdoaWNoIGlzIGNvcnJlY3QuIEhvd2V2ZXIsIGl0IHdvdWxkCisgICAgICAgIHRocm93IGEg
VHlwZUVycm9yIHdoZW4gdHJ5aW5nIHRvIHNldCB0aGUgYXR0cmlidXRlIHRvIG51bGwuIE91cgor
ICAgICAgICBpbXBsZW1lbnRhdGlvbiBzZXR0ZXIgYWN0dWFsbHkgc3VwcG9ydGVkIHNldHRpbmcg
dGhlIGJ1ZmZlciB0bworICAgICAgICBudWxsIGJ1dCB0aGUgY3VzdG9tIGJpbmRpbmdzIGZvciB0
aGUgc2V0dGVyIHdvdWxkIG5vdC4KKworICAgICAgICBUaGlzIHBhdGNoIGRvZXMgdGhlIGZvbGxv
d2luZzoKKyAgICAgICAgLSBHZXQgcmlkIG9mIHRoZSBjdXN0b20gYmluZGluZ3MgZm9yIHRoZSBB
dWRpb0J1ZmZlclNvdXJjZU5vZGUuYnVmZmVyCisgICAgICAgICAgc2V0dGVyLiBXZSBjYW4gaGF2
ZSB0aGUgYmluZGluZ3MgZ2VuZXJhdG9yIGdlbmVyYXRlIHRoZSBzYW1lIGNvZGUKKyAgICAgICAg
ICBieSB1c2luZyBbU3RyaWN0VHlwZUNoZWNraW5nLCBTZXR0ZXJSYWlzZXNFeGNlcHRpb25XaXRo
TWVzc2FnZV0uCisgICAgICAgIC0gTWFyayBBdWRpb0J1ZmZlclNvdXJjZU5vZGUuYnVmZmVyIGFz
IG51bGxhYmxlIGluIHRoZSBJREwgc28gdGhhdAorICAgICAgICAgIHdlIG5vIGxvbmdlciB0aHJv
dyB3aGVuIHRoZSBKUyB0cmllcyB0byBhc3NpZ24gbnVsbCwgYnV0IGluc3RlYWQKKyAgICAgICAg
ICBjYWxscyBBdWRpb0J1ZmZlclNvdXJjZU5vZGU6OnNldEJ1ZmZlcihudWxscHRyKQorCisgICAg
ICAgIE5vIG5ldyB0ZXN0LCB1cGRhdGVkIHdlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLWNoYW5u
ZWxzLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIE1vZHVsZXMv
d2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvQnVmZmVyU291cmNlTm9kZTo6c2V0QnVmZmVyKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8v
QXVkaW9CdWZmZXJTb3VyY2VOb2RlLmlkbDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvSlNBdWRpb0J1ZmZlclNvdXJj
ZU5vZGVDdXN0b20uY3BwOiBSZW1vdmVkLgorCiAyMDE2LTA0LTE5ICBBbGV4IENocmlzdGVuc2Vu
ICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQnVpbGQgZml4IGFmdGVyIHIx
OTk3MzgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZjE4ODY5MTRhZmYyNmFkYzQ5MDI5ZjI2NjA3
YmFiOWNiZmNjMThlMC4uMzcyNmZlNjc3Mjc1ZWNjODg2MTlkZmI5NGNlNWIyZDVhMzNlZDlmMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTEwODQsNyArMTA4NCw2IEBAIHNldChXZWJDb3JlX1NP
VVJDRVMKICAgICBiaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcAogICAgIGJpbmRp
bmdzL2pzL0pTQW5pbWF0aW9uVGltZWxpbmVDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNB
dHRyQ3VzdG9tLmNwcAotICAgIGJpbmRpbmdzL2pzL0pTQXVkaW9CdWZmZXJTb3VyY2VOb2RlQ3Vz
dG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTQXVkaW9Db250ZXh0Q3VzdG9tLmNwcAogICAgIGJp
bmRpbmdzL2pzL0pTQXVkaW9UcmFja0N1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU0F1ZGlv
VHJhY2tMaXN0Q3VzdG9tLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuY3BwCmluZGV4IGM4MTkyYzFlMWEzMWNm
NTEyMDY3ZDMyNzVjNGMyNjBlY2JhYjE3NjIuLjdhOWMzMzExMTJmYTcyODc4Y2E4ZGU5MGIxMDc5
MGUzNjViMGNhZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5jcHAKQEAgLTQwOCw3ICs0MDgsNyBAQCB2b2lk
IEF1ZGlvQnVmZmVyU291cmNlTm9kZTo6cmVzZXQoKQogICAgIG1fbGFzdEdhaW4gPSBnYWluKCkt
PnZhbHVlKCk7CiB9CiAKLWJvb2wgQXVkaW9CdWZmZXJTb3VyY2VOb2RlOjpzZXRCdWZmZXIoQXVk
aW9CdWZmZXIqIGJ1ZmZlcikKK3ZvaWQgQXVkaW9CdWZmZXJTb3VyY2VOb2RlOjpzZXRCdWZmZXIo
QXVkaW9CdWZmZXIqIGJ1ZmZlciwgRXhjZXB0aW9uQ29kZVdpdGhNZXNzYWdlJiBlYykKIHsKICAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIApAQCAtNDIyLDggKzQyMiwxMSBAQCBib29s
IEF1ZGlvQnVmZmVyU291cmNlTm9kZTo6c2V0QnVmZmVyKEF1ZGlvQnVmZmVyKiBidWZmZXIpCiAg
ICAgICAgIC8vIERvIGFueSBuZWNlc3NzYXJ5IHJlLWNvbmZpZ3VyYXRpb24gdG8gdGhlIGJ1ZmZl
cidzIG51bWJlciBvZiBjaGFubmVscy4KICAgICAgICAgdW5zaWduZWQgbnVtYmVyT2ZDaGFubmVs
cyA9IGJ1ZmZlci0+bnVtYmVyT2ZDaGFubmVscygpOwogCi0gICAgICAgIGlmIChudW1iZXJPZkNo
YW5uZWxzID4gQXVkaW9Db250ZXh0OjptYXhOdW1iZXJPZkNoYW5uZWxzKCkpCi0gICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmIChudW1iZXJPZkNoYW5uZWxzID4gQXVkaW9Db250
ZXh0OjptYXhOdW1iZXJPZkNoYW5uZWxzKCkpIHsKKyAgICAgICAgICAgIGVjLmNvZGUgPSBUeXBl
RXJyb3I7CisgICAgICAgICAgICBlYy5tZXNzYWdlID0gQVNDSUlMaXRlcmFsKCJBdWRpb0J1ZmZl
ciB1bnN1cHBvcnRlZCBudW1iZXIgb2YgY2hhbm5lbHMiKTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQogCiAgICAgICAgIG91dHB1dCgwKS0+c2V0TnVtYmVyT2ZDaGFubmVscyhudW1i
ZXJPZkNoYW5uZWxzKTsKIApAQCAtNDM2LDggKzQzOSw2IEBAIGJvb2wgQXVkaW9CdWZmZXJTb3Vy
Y2VOb2RlOjpzZXRCdWZmZXIoQXVkaW9CdWZmZXIqIGJ1ZmZlcikKIAogICAgIG1fdmlydHVhbFJl
YWRJbmRleCA9IDA7CiAgICAgbV9idWZmZXIgPSBidWZmZXI7Ci0gICAgCi0gICAgcmV0dXJuIHRy
dWU7CiB9CiAKIHVuc2lnbmVkIEF1ZGlvQnVmZmVyU291cmNlTm9kZTo6bnVtYmVyT2ZDaGFubmVs
cygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVm
ZmVyU291cmNlTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1
ZmZlclNvdXJjZU5vZGUuaAppbmRleCA4ODM2ZWM1OGQ3MjYwNzIzZDAwMzQyNjJiNTI4ZjRlZjVi
Mjg2ZmQ3Li4wYzExYjlmMmY2MGRmNzk3ZWYzZjc5ZTE2MzQzYmU1ODAyZmFjZDA1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9k
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3Vy
Y2VOb2RlLmgKQEAgLTU1LDcgKzU1LDcgQEAgcHVibGljOgogCiAgICAgLy8gc2V0QnVmZmVyKCkg
aXMgY2FsbGVkIG9uIHRoZSBtYWluIHRocmVhZC4gIFRoaXMgaXMgdGhlIGJ1ZmZlciB3ZSB1c2Ug
Zm9yIHBsYXliYWNrLgogICAgIC8vIHJldHVybnMgdHJ1ZSBvbiBzdWNjZXNzLgotICAgIGJvb2wg
c2V0QnVmZmVyKEF1ZGlvQnVmZmVyKik7CisgICAgdm9pZCBzZXRCdWZmZXIoQXVkaW9CdWZmZXIq
LCBFeGNlcHRpb25Db2RlV2l0aE1lc3NhZ2UmKTsKICAgICBBdWRpb0J1ZmZlciogYnVmZmVyKCkg
eyByZXR1cm4gbV9idWZmZXIuZ2V0KCk7IH0KIAogICAgIC8vIG51bWJlck9mQ2hhbm5lbHMoKSBy
ZXR1cm5zIHRoZSBudW1iZXIgb2Ygb3V0cHV0IGNoYW5uZWxzLiAgVGhpcyB2YWx1ZSBlcXVhbHMg
dGhlIG51bWJlciBvZiBjaGFubmVscyBmcm9tIHRoZSBidWZmZXIuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5pZGwK
aW5kZXggMGM1MDcwMGQ5MDI2ZTEzMGEwZDljZDQyZTMxZDE3ZjRlMjgyZmJkNi4uOGE0MjkxZjA2
NjU5NWZkOWRmYzQxNzBlOWU1MzQ1MDhjYjU4MDgxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmlkbApAQCAt
MjcsNyArMjcsNyBAQAogICAgIENvbmRpdGlvbmFsPVdFQl9BVURJTywKICAgICBKU0dlbmVyYXRl
VG9KU09iamVjdCwKIF0gaW50ZXJmYWNlIEF1ZGlvQnVmZmVyU291cmNlTm9kZSA6IEF1ZGlvTm9k
ZSB7Ci0gICAgW0N1c3RvbVNldHRlciwgU2V0dGVyUmFpc2VzRXhjZXB0aW9uXSBhdHRyaWJ1dGUg
QXVkaW9CdWZmZXIgYnVmZmVyOworICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmcsIFNldHRlclJhaXNl
c0V4Y2VwdGlvbldpdGhNZXNzYWdlXSBhdHRyaWJ1dGUgQXVkaW9CdWZmZXI/IGJ1ZmZlcjsKIAog
ICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFVOU0NIRURVTEVEX1NUQVRFID0gMDsKICAgICBjb25z
dCB1bnNpZ25lZCBzaG9ydCBTQ0hFRFVMRURfU1RBVEUgPSAxOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGQ4YzJlYWZiZGRjMTYx
M2RmOTQwMjllODkzZjBkZjE5MzQzN2Q0YTUuLjEzMjc0NzQ4NzljNzkyODI4NmQxYjU5ODc0N2Ji
M2FkNzg2ZTk4YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTI3OTQsMTAgKzI3OTQsMTAgQEAKIAkJN0U0NzRFMUUxMjQ5NERD
OTAwMjM1MzY0IC8qIFNRTGl0ZURhdGFiYXNlVHJhY2tlckNsaWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0U0NzRFMUIxMjQ5NERDOTAwMjM1MzY0
IC8qIFNRTGl0ZURhdGFiYXNlVHJhY2tlckNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdFNDc0RTFGMTI0OTREQzkwMDIzNTM2NCAvKiBT
UUxpdGVEYXRhYmFzZVRyYWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdFNDc0RTFDMTI0OTREQzkwMDIzNTM2NCAvKiBTUUxpdGVEYXRhYmFzZVRy
YWNrZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk3RTQ3NEUyMDEyNDk0REM5MDAyMzUzNjQgLyogU1FMaXRlRGF0YWJhc2VUcmFja2VyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFNDc0RTFEMTI0
OTREQzkwMDIzNTM2NCAvKiBTUUxpdGVEYXRhYmFzZVRyYWNrZXIuY3BwICovOyB9OwotCQk3RTRD
OTZEQzFBRDQ0ODM1MDAzNjVBNTEgLyogSlNSZWFkYWJsZVN0cmVhbVNvdXJjZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RTRDOTZEODFBRDQ0ODM1
MDAzNjVBNTEgLyogSlNSZWFkYWJsZVN0cmVhbVNvdXJjZS5jcHAgKi87IH07Ci0JCTdFNEM5NkRE
MUFENDQ4MzUwMDM2NUE1MSAvKiBKU1JlYWRhYmxlU3RyZWFtU291cmNlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RTRDOTZEOTFBRDQ0ODM1MDAzNjVB
NTEgLyogSlNSZWFkYWJsZVN0cmVhbVNvdXJjZS5oICovOyB9OwogCQk3RTRDOTZEQzFBRDQ0ODM1
MDAzNjVBNTAgLyogSlNGZXRjaFJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0U0Qzk2RDgxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hS
ZXF1ZXN0LmNwcCAqLzsgfTsKKwkJN0U0Qzk2REMxQUQ0NDgzNTAwMzY1QTUxIC8qIEpTUmVhZGFi
bGVTdHJlYW1Tb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0U0Qzk2RDgxQUQ0NDgzNTAwMzY1QTUxIC8qIEpTUmVhZGFibGVTdHJlYW1Tb3Vy
Y2UuY3BwICovOyB9OwogCQk3RTRDOTZERDFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaFJlcXVl
c3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFNEM5
NkQ5MUFENDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNoUmVxdWVzdC5oICovOyB9OworCQk3RTRDOTZE
RDFBRDQ0ODM1MDAzNjVBNTEgLyogSlNSZWFkYWJsZVN0cmVhbVNvdXJjZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0U0Qzk2RDkxQUQ0NDgzNTAwMzY1
QTUxIC8qIEpTUmVhZGFibGVTdHJlYW1Tb3VyY2UuaCAqLzsgfTsKIAkJN0U0REUxMEQxOThCMTBC
NjAwNTFDQjAyIC8qIERpc2tDYWNoZU1vbml0b3JDb2NvYS5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFNERFMTBDMTk4QjEwQjYwMDUxQ0IwMiAvKiBE
aXNrQ2FjaGVNb25pdG9yQ29jb2EubW0gKi87IH07CiAJCTdFNUQ3QTc2MTYxRDNGOEYwMDg5NkMz
NCAvKiBPRVNFbGVtZW50SW5kZXhVaW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDdFNUQ3QTczMTYxRDNGOEYwMDg5NkMzNCAvKiBPRVNFbGVtZW50
SW5kZXhVaW50LmNwcCAqLzsgfTsKIAkJN0U1RDdBNzcxNjFEM0Y4RjAwODk2QzM0IC8qIE9FU0Vs
ZW1lbnRJbmRleFVpbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdFNUQ3QTc0MTYxRDNGOEYwMDg5NkMzNCAvKiBPRVNFbGVtZW50SW5kZXhVaW50Lmgg
Ki87IH07CkBAIC03MDkzLDcgKzcwOTMsNiBAQAogCQlGREVBNjI0MzE1MjEwMkUyMDA0NzlERjAg
LyogSlNPc2NpbGxhdG9yTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRkRFQTYyNDExNTIxMDJFMjAwNDc5REYwIC8qIEpTT3NjaWxsYXRvck5vZGUu
aCAqLzsgfTsKIAkJRkRFQTYyNDYxNTIxMDJGQzAwNDc5REYwIC8qIEpTUGVyaW9kaWNXYXZlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZERUE2MjQ0
MTUyMTAyRkMwMDQ3OURGMCAvKiBKU1BlcmlvZGljV2F2ZS5jcHAgKi87IH07CiAJCUZERUE2MjQ3
MTUyMTAyRkMwMDQ3OURGMCAvKiBKU1BlcmlvZGljV2F2ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkRFQTYyNDUxNTIxMDJGQzAwNDc5REYwIC8qIEpT
UGVyaW9kaWNXYXZlLmggKi87IH07Ci0JCUZERUFBQUYzMTJCMDJFRTQwMERDRjMzQiAvKiBKU0F1
ZGlvQnVmZmVyU291cmNlTm9kZUN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGREVBQUFFRjEyQjAyRUU0MDBEQ0YzM0IgLyogSlNBdWRpb0J1
ZmZlclNvdXJjZU5vZGVDdXN0b20uY3BwICovOyB9OwogCQlGREVBQUFGNDEyQjAyRUU0MDBEQ0Yz
M0IgLyogSlNBdWRpb0NvbnRleHRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRkRFQUFBRjAxMkIwMkVFNDAwRENGMzNCIC8qIEpTQXVkaW9D
b250ZXh0Q3VzdG9tLmNwcCAqLzsgfTsKIAkJRkRGMDlEQzgxMzk5QjYyMjAwNjg4RTVCIC8qIEpT
QmlxdWFkRmlsdGVyTm9kZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGREYwOURDNjEzOTlCNjIyMDA2ODhFNUIgLyogSlNCaXF1YWRGaWx0ZXJOb2Rl
LmNwcCAqLzsgfTsKIAkJRkRGMDlEQzkxMzk5QjYyMjAwNjg4RTVCIC8qIEpTQmlxdWFkRmlsdGVy
Tm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkRG
MDlEQzcxMzk5QjYyMjAwNjg4RTVCIC8qIEpTQmlxdWFkRmlsdGVyTm9kZS5oICovOyB9OwpAQCAt
ODk5Nyw4ICs4OTk2LDggQEAKIAkJNDEyOURGODQxQkI1QjdGNzAwMzIyQTE2IC8qIEpTUmVhZGFi
bGVTdHJlYW1Qcml2YXRlQ29uc3RydWN0b3JzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTUmVhZGFibGVTdHJlYW1Qcml2YXRlQ29uc3RydWN0b3JzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQxMzAxNUQ1MUM3QjU3MDQwMDA5MUM2RSAvKiBGZXRjaFJlc3Bv
bnNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZldGNoUmVzcG9u
c2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTMwMTVENTFDN0I1NzA0MDAw
OTFDNkYgLyogRmV0Y2hSZXNwb25zZVNvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBGZXRjaFJlc3BvbnNlU291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJNDEzMDE1RDYxQzdCNTcwNDAwMDkxQzZGIC8qIEZldGNoUmVzcG9uc2VTb3Vy
Y2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmV0Y2hSZXNwb25zZVNvdXJj
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTMwMTVENjFDN0I1NzA0MDAwOTFD
NkUgLyogRmV0Y2hSZXNwb25zZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBG
ZXRjaFJlc3BvbnNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMzAxNUQ2MUM3
QjU3MDQwMDA5MUM2RiAvKiBGZXRjaFJlc3BvbnNlU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEZldGNoUmVzcG9uc2VTb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDEzMDE1RDcxQzdCNTcwNDAwMDkxQzZFIC8qIEZldGNoUmVzcG9uc2UuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEZldGNoUmVzcG9uc2UuaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0MTMwMTVEODFDN0I1NzA0MDAwOTFDNkUgLyogRmV0Y2hSZXNwb25z
ZS5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9IEZldGNoUmVzcG9u
c2UuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMzhEMzMzMTI0NDA1NDgwMDMy
M0QzMyAvKiBFdmVudENvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RXZlbnRDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDQ0NywxMCAr
MTA0NDYsMTAgQEAKIAkJN0U0NzRFMUIxMjQ5NERDOTAwMjM1MzY0IC8qIFNRTGl0ZURhdGFiYXNl
VHJhY2tlckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTUUxpdGVE
YXRhYmFzZVRyYWNrZXJDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0U0
NzRFMUMxMjQ5NERDOTAwMjM1MzY0IC8qIFNRTGl0ZURhdGFiYXNlVHJhY2tlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTUUxpdGVEYXRhYmFzZVRyYWNrZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0U0NzRFMUQxMjQ5NERDOTAwMjM1MzY0IC8qIFNRTGl0
ZURhdGFiYXNlVHJhY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBTUUxpdGVEYXRhYmFzZVRyYWNrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQk3RTRDOTZEODFBRDQ0ODM1MDAzNjVBNTEgLyogSlNSZWFkYWJsZVN0cmVhbVNvdXJjZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1JlYWRhYmxlU3RyZWFtU291
cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJN0U0Qzk2RDkxQUQ0NDgzNTAw
MzY1QTUxIC8qIEpTUmVhZGFibGVTdHJlYW1Tb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSlNSZWFkYWJsZVN0cmVhbVNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3RTRDOTZEODFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaFJlcXVlc3QuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNGZXRjaFJlcXVlc3QuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3RTRDOTZEODFBRDQ0ODM1MDAzNjVBNTEg
LyogSlNSZWFkYWJsZVN0cmVhbVNvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU1JlYWRhYmxlU3RyZWFtU291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJN0U0Qzk2RDkxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hSZXF1ZXN0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRmV0Y2hSZXF1ZXN0Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdFNEM5NkQ5MUFENDQ4MzUwMDM2NUE1MSAvKiBKU1Jl
YWRhYmxlU3RyZWFtU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
UmVhZGFibGVTdHJlYW1Tb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0U0
REUxMEMxOThCMTBCNjAwNTFDQjAyIC8qIERpc2tDYWNoZU1vbml0b3JDb2NvYS5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERpc2tDYWNoZU1vbml0b3JDb2NvYS5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0U1RDdBNzMxNjFEM0Y4RjAwODk2QzM0
IC8qIE9FU0VsZW1lbnRJbmRleFVpbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gT0VTRWxlbWVudEluZGV4VWludC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTdFNUQ3QTc0MTYxRDNGOEYwMDg5NkMzNCAvKiBPRVNFbGVtZW50SW5kZXhVaW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE9FU0VsZW1lbnRJbmRleFVpbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1MjA3LDcgKzE1MjA2LDYgQEAKIAkJRkRF
QTYyNDExNTIxMDJFMjAwNDc5REYwIC8qIEpTT3NjaWxsYXRvck5vZGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSlNPc2NpbGxhdG9yTm9kZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlGREVBNjI0NDE1MjEwMkZDMDA0NzlERjAgLyogSlNQZXJpb2RpY1dhdmUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNQZXJpb2RpY1dhdmUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGREVBNjI0NTE1MjEwMkZDMDA0NzlE
RjAgLyogSlNQZXJpb2RpY1dhdmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNQZXJpb2RpY1dhdmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRkRFQUFBRUYx
MkIwMkVFNDAwRENGMzNCIC8qIEpTQXVkaW9CdWZmZXJTb3VyY2VOb2RlQ3VzdG9tLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQXVkaW9CdWZmZXJTb3VyY2VOb2Rl
Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkRFQUFBRjAxMkIwMkVF
NDAwRENGMzNCIC8qIEpTQXVkaW9Db250ZXh0Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTQXVkaW9Db250ZXh0Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRkRGMDlEQzYxMzk5QjYyMjAwNjg4RTVCIC8qIEpTQmlxdWFkRmls
dGVyTm9kZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0JpcXVh
ZEZpbHRlck5vZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGREYwOURDNzEz
OTlCNjIyMDA2ODhFNUIgLyogSlNCaXF1YWRGaWx0ZXJOb2RlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTQmlxdWFkRmlsdGVyTm9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMjI0MDYsNyArMjI0MDQsNiBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJMTIy
MUUwNzIxQzAzRTRDMjAwNkExQTAwIC8qIEpTQW5pbWF0aW9uVGltZWxpbmVDdXN0b20uY3BwICov
LAogCQkJCUJDMkVENkJCMEM2QkQyRjAwMDkyMEJGRiAvKiBKU0F0dHJDdXN0b20uY3BwICovLAot
CQkJCUZERUFBQUVGMTJCMDJFRTQwMERDRjMzQiAvKiBKU0F1ZGlvQnVmZmVyU291cmNlTm9kZUN1
c3RvbS5jcHAgKi8sCiAJCQkJRkRFQUFBRjAxMkIwMkVFNDAwRENGMzNCIC8qIEpTQXVkaW9Db250
ZXh0Q3VzdG9tLmNwcCAqLywKIAkJCQlCRTZERjcwRTE3MUNBMkRBMDBERDUyQjggLyogSlNBdWRp
b1RyYWNrQ3VzdG9tLmNwcCAqLywKIAkJCQlCRTZERjcxMDE3MUNBMkRBMDBERDUyQjggLyogSlNB
dWRpb1RyYWNrTGlzdEN1c3RvbS5jcHAgKi8sCkBAIC0zMDEzMSw3ICszMDEyOCw2IEBACiAJCQkJ
RkRGN0U5QzMxM0FDMjFEQjAwQTUxRUFDIC8qIEpTQXVkaW9CdWZmZXJDYWxsYmFjay5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlGREExNUU5RjEyQjAzRUUxMDAzQTU4M0EgLyogSlNBdWRpb0J1ZmZl
clNvdXJjZU5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNjlBNkNCQUMxQzZCRTQyQzAwQjgz
NkU5IC8qIEFjY2Vzc2liaWxpdHlTVkdFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUZE
RUFBQUYzMTJCMDJFRTQwMERDRjMzQiAvKiBKU0F1ZGlvQnVmZmVyU291cmNlTm9kZUN1c3RvbS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlGREExNUVBNTEyQjAzRUUxMDAzQTU4M0EgLyogSlNBdWRp
b0NvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkRFQUFBRjQxMkIwMkVFNDAwRENGMzNC
IC8qIEpTQXVkaW9Db250ZXh0Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZEQTE1RUE3
MTJCMDNFRTEwMDNBNTgzQSAvKiBKU0F1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCBpbiBTb3VyY2Vz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb0J1ZmZl
clNvdXJjZU5vZGVDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRp
b0J1ZmZlclNvdXJjZU5vZGVDdXN0b20uY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAzM2Y3NjhlM2M4MzQ1M2RhZTk3NTAyZjUzNDgzY2QzZGQyOWJlODdhLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQXVkaW9CdWZmZXJTb3VyY2VOb2RlQ3VzdG9tLmNwcAorKysgL2Rldi9udWxsCkBAIC0x
LDU2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAsIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmlj
cwotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04KLSAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwotICog
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgRU5BQkxFKFdFQl9BVURJTykK
LQotI2luY2x1ZGUgIkpTQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmgiCi0KLSNpbmNsdWRlICJBdWRp
b0J1ZmZlci5oIgotI2luY2x1ZGUgIkF1ZGlvQnVmZmVyU291cmNlTm9kZS5oIgotI2luY2x1ZGUg
IkpTQXVkaW9CdWZmZXIuaCIKLSNpbmNsdWRlIDxydW50aW1lL0Vycm9yLmg+Ci0jaW5jbHVkZSA8
cnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oPgotCi11c2luZyBuYW1lc3BhY2UgSlNDOwotCi1u
YW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXZvaWQgSlNBdWRpb0J1ZmZlclNvdXJjZU5vZGU6OnNldEJ1
ZmZlcihFeGVjU3RhdGUmIHN0YXRlLCBKU1ZhbHVlIHZhbHVlKQotewotICAgIEF1ZGlvQnVmZmVy
KiBidWZmZXIgPSBKU0F1ZGlvQnVmZmVyOjp0b1dyYXBwZWQodmFsdWUpOwotICAgIGlmICghYnVm
ZmVyKSB7Ci0gICAgICAgIHN0YXRlLnZtKCkudGhyb3dFeGNlcHRpb24oJnN0YXRlLCBjcmVhdGVU
eXBlRXJyb3IoJnN0YXRlLCAiVmFsdWUgaXMgbm90IG9mIHR5cGUgQXVkaW9CdWZmZXIiKSk7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgCi0gICAgaWYgKCF3cmFwcGVkKCkuc2V0QnVmZmVy
KGJ1ZmZlcikpCi0gICAgICAgIHN0YXRlLnZtKCkudGhyb3dFeGNlcHRpb24oJnN0YXRlLCBjcmVh
dGVUeXBlRXJyb3IoJnN0YXRlLCAiQXVkaW9CdWZmZXIgdW5zdXBwb3J0ZWQgbnVtYmVyIG9mIGNo
YW5uZWxzIikpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFC
TEUoV0VCX0FVRElPKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDMxMmFmNWZmMDI1MzhmYTEzOGRkNTFlMGU3N2E2YjQ1MmRj
NDA4ZmEuLjgzMWMwMGE0ZDY0NTY5OGIwNWVlYjI0M2EwNWU0ZWRjNmM0NTYzMWIgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNyBAQAorMjAxNi0wNC0xOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgorCisgICAgICAgIEF1ZGlvQnVmZmVyU291cmNlTm9kZS5idWZmZXIgc2hvdWxkIGJlIG51bGxh
YmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTY3
NjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRh
dGUgZXhpc3RpbmcgbGF5b3V0IHRlc3QgdG8gY2hlY2sgdGhhdDoKKyAgICAgICAgLSBBdWRpb0J1
ZmZlclNvdXJjZU5vZGUuYnVmZmVyIGlzIGluaXRpYWxseSBudWxsCisgICAgICAgIC0gQXVkaW9C
dWZmZXJTb3VyY2VOb2RlLmJ1ZmZlciBjYW4gYmUgc2V0IHRvIG51bGwKKworICAgICAgICAqIHdl
YmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLWNoYW5uZWxzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiB3ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1jaGFubmVscy5odG1sOgorCiAyMDE2LTA0LTE5
ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
UmViYXNlIHRlc3QgYWZ0ZXIgcjE5OTczOApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVk
aW8vYXVkaW9idWZmZXJzb3VyY2UtY2hhbm5lbHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
d2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2UtY2hhbm5lbHMtZXhwZWN0ZWQudHh0CmluZGV4IDNm
OTNiYmI0YTA5OTMxODk3N2NiMWM3ZTlkYzI4ZWIwYmM4ZDIyYWYuLmJlYWViYjgyZWYxZmMxMDM2
OWJjZjk2Y2VlYmE3YjM5ZmU2NWMyMjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlv
L2F1ZGlvYnVmZmVyc291cmNlLWNoYW5uZWxzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1jaGFubmVscy1leHBlY3RlZC50eHQKQEAgLTIs
NyArMiw4IEBAIFRlc3RzIHRoYXQgQXVkaW9CdWZmZXJTb3VyY2VOb2RlIHZhbGlkYXRlcyBBdWRp
b0J1ZmZlciBpbiAuYnVmZmVyIGF0dHJpYnV0ZSBzZXR0CiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KIAotUEFTUyBzb3VyY2UuYnVmZmVyID0gNTcgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogVmFsdWUgaXMgbm90IG9mIHR5cGUgQXVkaW9CdWZmZXIuCitQQVNTIHNvdXJjZS5idWZmZXIg
aXMgbnVsbAorUEFTUyBzb3VyY2UuYnVmZmVyID0gNTcgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogVGhlIEF1ZGlvQnVmZmVyU291cmNlTm9kZS5idWZmZXIgYXR0cmlidXRlIG11c3QgYmUgYW4g
aW5zdGFuY2Ugb2YgQXVkaW9CdWZmZXIuCiBQQVNTIE1vbm8gYnVmZmVyIGNhbiBiZSBzZXQuCiBQ
QVNTIFN0ZXJlbyBidWZmZXIgY2FuIGJlIHNldC4KIFBBU1MgMyBjaGFubmVscyBidWZmZXIgY2Fu
IGJlIHNldC4KQEAgLTEyLDYgKzEzLDkgQEAgUEFTUyA2IGNoYW5uZWxzIGJ1ZmZlciBjYW4gYmUg
c2V0LgogUEFTUyA3IGNoYW5uZWxzIGJ1ZmZlciBjYW4gYmUgc2V0LgogUEFTUyA4IGNoYW5uZWxz
IGJ1ZmZlciBjYW4gYmUgc2V0LgogUEFTUyA5IGNoYW5uZWxzIGJ1ZmZlciBjYW4gYmUgc2V0Lgor
UEFTUyBzb3VyY2UuYnVmZmVyIGlzIG5vdCBudWxsCitQQVNTIHNvdXJjZS5idWZmZXIgPSBudWxs
IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBzb3VyY2UuYnVmZmVyIGlzIG51bGwKIFBB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2UtY2hhbm5lbHMuaHRtbCBi
L0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLWNoYW5uZWxzLmh0bWwKaW5k
ZXggM2EwNWUwMmE5OGE3NDJmZWU2ZGYzNGE0N2NjMjNmZjhhMTQ2MjVhZC4uNjdiYzk2YmQ4ZjM1
ZTNlMDJhZWMyY2ViMDI2NjNkYTNiODc5NzA5MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2Vi
YXVkaW8vYXVkaW9idWZmZXJzb3VyY2UtY2hhbm5lbHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93
ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1jaGFubmVscy5odG1sCkBAIC0yNyw2ICsyNyw4IEBA
IGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRl
eHQoKTsKICAgICBzb3VyY2UgPSBjb250ZXh0LmNyZWF0ZUJ1ZmZlclNvdXJjZSgpOwogCisgICAg
c2hvdWxkQmVOdWxsKCJzb3VyY2UuYnVmZmVyIik7CisKICAgICAvLyBNYWtlIHN1cmUgd2UgY2Fu
J3Qgc2V0IHRvIHNvbWV0aGluZyB3aGljaCBpc24ndCBhbiBBdWRpb0J1ZmZlci4KICAgICBzaG91
bGRUaHJvdygic291cmNlLmJ1ZmZlciA9IDU3Iik7CiAKQEAgLTYwLDYgKzYyLDEwIEBAIGZ1bmN0
aW9uIHJ1blRlc3QoKSB7CiAgICAgICAgICAgICB0ZXN0RmFpbGVkKG1lc3NhZ2UpOwogICAgICAg
ICB9CiAgICAgfQorCisgICAgc2hvdWxkTm90QmUoInNvdXJjZS5idWZmZXIiLCAibnVsbCIpOwor
ICAgIHNob3VsZE5vdFRocm93KCJzb3VyY2UuYnVmZmVyID0gbnVsbCIpOworICAgIHNob3VsZEJl
TnVsbCgic291cmNlLmJ1ZmZlciIpOwogICAgICAgICAKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>276778</attachid>
            <date>2016-04-19 17:06:16 -0700</date>
            <delta_ts>2016-04-19 17:10:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-156769-20160419170636.patch</filename>
            <type>text/plain</type>
            <size>22017</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk5NzQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTU4MzJkYmNlYzY1YThm
NTE5NzkwMzJkNmJiMDRjNTA5YWIwNTQwZC4uOGU5ODIwMjI3Y2VkNDc3NDgwM2UzZmFkMjM3MDgy
OTc5MTI3MDIzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE2LTA0LTE5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQXVkaW9CdWZmZXJTb3VyY2VO
b2RlLmJ1ZmZlciBzaG91bGQgYmUgbnVsbGFibGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Njc2OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEF1ZGlvQnVmZmVyU291cmNlTm9kZS5idWZmZXIgc2hvdWxk
IGJlIG51bGxhYmxlIGFzIHBlciB0aGUKKyAgICAgICAgc3BlY2lmaWNhdGlvbjoKKyAgICAgICAg
aHR0cHM6Ly93ZWJhdWRpby5naXRodWIuaW8vd2ViLWF1ZGlvLWFwaS8jQXVkaW9CdWZmZXJTb3Vy
Y2VOb2RlCisKKyAgICAgICAgT3VyIGltcGxlbWVudGF0aW9uIHdhcyBpbml0aWFsbHkgcmV0dXJu
aW5nIG51bGwgd2hlbiBnZXR0aW5nCisgICAgICAgIEF1ZGlvQnVmZmVyU291cmNlTm9kZS5idWZm
ZXIsIHdoaWNoIGlzIGNvcnJlY3QuIEhvd2V2ZXIsIGl0IHdvdWxkCisgICAgICAgIHRocm93IGEg
VHlwZUVycm9yIHdoZW4gdHJ5aW5nIHRvIHNldCB0aGUgYXR0cmlidXRlIHRvIG51bGwuIE91cgor
ICAgICAgICBpbXBsZW1lbnRhdGlvbiBzZXR0ZXIgYWN0dWFsbHkgc3VwcG9ydGVkIHNldHRpbmcg
dGhlIGJ1ZmZlciB0bworICAgICAgICBudWxsIGJ1dCB0aGUgY3VzdG9tIGJpbmRpbmdzIGZvciB0
aGUgc2V0dGVyIHdvdWxkIG5vdC4KKworICAgICAgICBUaGlzIHBhdGNoIGRvZXMgdGhlIGZvbGxv
d2luZzoKKyAgICAgICAgLSBHZXQgcmlkIG9mIHRoZSBjdXN0b20gYmluZGluZ3MgZm9yIHRoZSBB
dWRpb0J1ZmZlclNvdXJjZU5vZGUuYnVmZmVyCisgICAgICAgICAgc2V0dGVyLiBXZSBjYW4gaGF2
ZSB0aGUgYmluZGluZ3MgZ2VuZXJhdG9yIGdlbmVyYXRlIHRoZSBzYW1lIGNvZGUKKyAgICAgICAg
ICBieSB1c2luZyBbU3RyaWN0VHlwZUNoZWNraW5nXS4gVGhlIGN1c3RvbSBiaW5kaW5kcyB3ZXJl
IGFsc28gdGhyb3dpbmcKKyAgICAgICAgICBhIFR5cGVFcnJvciBpZiB0aGUgaW5wdXQgQXVkaW9C
dWZmZXIgaGFkIHRvbyBtYW55IGNoYW5uZWxzIGJ1dCB0aGlzCisgICAgICAgICAgZG9lcyBub3Qg
c2VlbSB0byBiZSBwb3NzaWJsZS4KKyAgICAgICAgLSBNYXJrIEF1ZGlvQnVmZmVyU291cmNlTm9k
ZS5idWZmZXIgYXMgbnVsbGFibGUgaW4gdGhlIElETCBzbyB0aGF0CisgICAgICAgICAgd2Ugbm8g
bG9uZ2VyIHRocm93IHdoZW4gdGhlIEpTIHRyaWVzIHRvIGFzc2lnbiBudWxsLCBidXQgaW5zdGVh
ZAorICAgICAgICAgIGNhbGxzIEF1ZGlvQnVmZmVyU291cmNlTm9kZTo6c2V0QnVmZmVyKG51bGxw
dHIpCisKKyAgICAgICAgTm8gbmV3IHRlc3QsIHVwZGF0ZWQgd2ViYXVkaW8vYXVkaW9idWZmZXJz
b3VyY2UtY2hhbm5lbHMuaHRtbAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAg
ICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QXVkaW9CdWZmZXJTb3VyY2VOb2RlOjpzZXRCdWZmZXIpOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmg6CisgICAgICAgICogTW9kdWxl
cy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuaWRsOgorICAgICAgICAqIE1vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Db250ZXh0Lmg6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQXVkaW9CdWZmZXJTb3VyY2VO
b2RlQ3VzdG9tLmNwcDogUmVtb3ZlZC4KKwogMjAxNi0wNC0xOSAgQWxleCBDaHJpc3RlbnNlbiAg
PGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEJ1aWxkIGZpeCBhZnRlciByMTk5
NzM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGYxODg2OTE0YWZmMjZhZGM0OTAyOWYyNjYwN2Jh
YjljYmZjYzE4ZTAuLjM3MjZmZTY3NzI3NWVjYzg4NjE5ZGZiOTRjZTViMmQ1YTMzZWQ5ZjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xMDg0LDcgKzEwODQsNiBAQCBzZXQoV2ViQ29yZV9TT1VS
Q0VTCiAgICAgYmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5jcHAKICAgICBiaW5kaW5n
cy9qcy9KU0FuaW1hdGlvblRpbWVsaW5lQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTQXR0
ckN1c3RvbS5jcHAKLSAgICBiaW5kaW5ncy9qcy9KU0F1ZGlvQnVmZmVyU291cmNlTm9kZUN1c3Rv
bS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU0F1ZGlvQ29udGV4dEN1c3RvbS5jcHAKICAgICBiaW5k
aW5ncy9qcy9KU0F1ZGlvVHJhY2tDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNBdWRpb1Ry
YWNrTGlzdEN1c3RvbS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNwcAppbmRleCBjODE5MmMxZTFhMzFjZjUx
MjA2N2QzMjc1YzRjMjYwZWNiYWIxNzYyLi5hNzlkNTI5OWQ3NTgzZGQyZGY5ZjE1Yzk2ZTcwZDcz
MzBlZjdmZTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvQnVmZmVyU291cmNlTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuY3BwCkBAIC00MDgsNyArNDA4LDcgQEAgdm9pZCBB
dWRpb0J1ZmZlclNvdXJjZU5vZGU6OnJlc2V0KCkKICAgICBtX2xhc3RHYWluID0gZ2FpbigpLT52
YWx1ZSgpOwogfQogCi1ib29sIEF1ZGlvQnVmZmVyU291cmNlTm9kZTo6c2V0QnVmZmVyKEF1ZGlv
QnVmZmVyKiBidWZmZXIpCit2b2lkIEF1ZGlvQnVmZmVyU291cmNlTm9kZTo6c2V0QnVmZmVyKFJl
ZlB0cjxBdWRpb0J1ZmZlcj4mJiBidWZmZXIpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgp
KTsKICAgICAKQEAgLTQyMSw5ICs0MjEsNyBAQCBib29sIEF1ZGlvQnVmZmVyU291cmNlTm9kZTo6
c2V0QnVmZmVyKEF1ZGlvQnVmZmVyKiBidWZmZXIpCiAgICAgaWYgKGJ1ZmZlcikgewogICAgICAg
ICAvLyBEbyBhbnkgbmVjZXNzc2FyeSByZS1jb25maWd1cmF0aW9uIHRvIHRoZSBidWZmZXIncyBu
dW1iZXIgb2YgY2hhbm5lbHMuCiAgICAgICAgIHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMgPSBi
dWZmZXItPm51bWJlck9mQ2hhbm5lbHMoKTsKLQotICAgICAgICBpZiAobnVtYmVyT2ZDaGFubmVs
cyA+IEF1ZGlvQ29udGV4dDo6bWF4TnVtYmVyT2ZDaGFubmVscygpKQotICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgICAgICBBU1NFUlQobnVtYmVyT2ZDaGFubmVscyA8PSBBdWRpb0NvbnRl
eHQ6Om1heE51bWJlck9mQ2hhbm5lbHMoKSk7CiAKICAgICAgICAgb3V0cHV0KDApLT5zZXROdW1i
ZXJPZkNoYW5uZWxzKG51bWJlck9mQ2hhbm5lbHMpOwogCkBAIC00MzUsOSArNDMzLDcgQEAgYm9v
bCBBdWRpb0J1ZmZlclNvdXJjZU5vZGU6OnNldEJ1ZmZlcihBdWRpb0J1ZmZlciogYnVmZmVyKQog
ICAgIH0KIAogICAgIG1fdmlydHVhbFJlYWRJbmRleCA9IDA7Ci0gICAgbV9idWZmZXIgPSBidWZm
ZXI7Ci0gICAgCi0gICAgcmV0dXJuIHRydWU7CisgICAgbV9idWZmZXIgPSBXVEZNb3ZlKGJ1ZmZl
cik7CiB9CiAKIHVuc2lnbmVkIEF1ZGlvQnVmZmVyU291cmNlTm9kZTo6bnVtYmVyT2ZDaGFubmVs
cygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVm
ZmVyU291cmNlTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1
ZmZlclNvdXJjZU5vZGUuaAppbmRleCA4ODM2ZWM1OGQ3MjYwNzIzZDAwMzQyNjJiNTI4ZjRlZjVi
Mjg2ZmQ3Li5hOGM3YjRmYjM1MjkxYjI3MDJlYmNiZWUxM2UxZjg5OGM4YjgyNWFiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9k
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3Vy
Y2VOb2RlLmgKQEAgLTU1LDcgKzU1LDcgQEAgcHVibGljOgogCiAgICAgLy8gc2V0QnVmZmVyKCkg
aXMgY2FsbGVkIG9uIHRoZSBtYWluIHRocmVhZC4gIFRoaXMgaXMgdGhlIGJ1ZmZlciB3ZSB1c2Ug
Zm9yIHBsYXliYWNrLgogICAgIC8vIHJldHVybnMgdHJ1ZSBvbiBzdWNjZXNzLgotICAgIGJvb2wg
c2V0QnVmZmVyKEF1ZGlvQnVmZmVyKik7CisgICAgdm9pZCBzZXRCdWZmZXIoUmVmUHRyPEF1ZGlv
QnVmZmVyPiYmKTsKICAgICBBdWRpb0J1ZmZlciogYnVmZmVyKCkgeyByZXR1cm4gbV9idWZmZXIu
Z2V0KCk7IH0KIAogICAgIC8vIG51bWJlck9mQ2hhbm5lbHMoKSByZXR1cm5zIHRoZSBudW1iZXIg
b2Ygb3V0cHV0IGNoYW5uZWxzLiAgVGhpcyB2YWx1ZSBlcXVhbHMgdGhlIG51bWJlciBvZiBjaGFu
bmVscyBmcm9tIHRoZSBidWZmZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5pZGwKaW5kZXggMGM1MDcwMGQ5MDI2
ZTEzMGEwZDljZDQyZTMxZDE3ZjRlMjgyZmJkNi4uMmVjNDFlZGFiZGJmNGM4MDJlOTEwN2IwNDI1
YjJjMmQwNjBjZTUzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmlkbApAQCAtMjcsNyArMjcsNyBAQAogICAg
IENvbmRpdGlvbmFsPVdFQl9BVURJTywKICAgICBKU0dlbmVyYXRlVG9KU09iamVjdCwKIF0gaW50
ZXJmYWNlIEF1ZGlvQnVmZmVyU291cmNlTm9kZSA6IEF1ZGlvTm9kZSB7Ci0gICAgW0N1c3RvbVNl
dHRlciwgU2V0dGVyUmFpc2VzRXhjZXB0aW9uXSBhdHRyaWJ1dGUgQXVkaW9CdWZmZXIgYnVmZmVy
OworICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGF0dHJpYnV0ZSBBdWRpb0J1ZmZlcj8gYnVmZmVy
OwogCiAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgVU5TQ0hFRFVMRURfU1RBVEUgPSAwOwogICAg
IGNvbnN0IHVuc2lnbmVkIHNob3J0IFNDSEVEVUxFRF9TVEFURSA9IDE7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaAppbmRleCBiNjFjNmRiNGRhYzU5
N2U5MDA0ZDcyYTE3N2I3ZTkxYzM4OTdjMDNkLi5jZDc4OGIxMDc5NDNjNDg2MzIxMDY5OTdlOGM1
ZjdlYTAxOGQyODAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Db250ZXh0LmgKQEAgLTIwNCw3ICsyMDQsNyBAQCBwdWJsaWM6CiAgICAgLy8gUmV0dXJucyB0
cnVlIGlmIHRoaXMgdGhyZWFkIG93bnMgdGhlIGNvbnRleHQncyBsb2NrLgogICAgIGJvb2wgaXNH
cmFwaE93bmVyKCkgY29uc3Q7CiAKLSAgICAvLyBSZXR1cm5zIHRoZSBtYXhpbXVtIG51bXViZXIg
b2YgY2hhbm5lbHMgd2UgY2FuIHN1cHBvcnQuCisgICAgLy8gUmV0dXJucyB0aGUgbWF4aW11bSBu
dW1iZXIgb2YgY2hhbm5lbHMgd2UgY2FuIHN1cHBvcnQuCiAgICAgc3RhdGljIHVuc2lnbmVkIG1h
eE51bWJlck9mQ2hhbm5lbHMoKSB7IHJldHVybiBNYXhOdW1iZXJPZkNoYW5uZWxzO30KIAogICAg
IGNsYXNzIEF1dG9Mb2NrZXIgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGQ4YzJlYWZiZGRjMTYxM2RmOTQwMjllODkzZjBkZjE5
MzQzN2Q0YTUuLjEzMjc0NzQ4NzljNzkyODI4NmQxYjU5ODc0N2JiM2FkNzg2ZTk4YmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTI3OTQsMTAgKzI3OTQsMTAgQEAKIAkJN0U0NzRFMUUxMjQ5NERDOTAwMjM1MzY0IC8qIFNRTGl0
ZURhdGFiYXNlVHJhY2tlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gN0U0NzRFMUIxMjQ5NERDOTAwMjM1MzY0IC8qIFNRTGl0ZURhdGFiYXNl
VHJhY2tlckNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTdFNDc0RTFGMTI0OTREQzkwMDIzNTM2NCAvKiBTUUxpdGVEYXRhYmFzZVRyYWNr
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFNDc0
RTFDMTI0OTREQzkwMDIzNTM2NCAvKiBTUUxpdGVEYXRhYmFzZVRyYWNrZXIuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3RTQ3NEUyMDEyNDk0REM5
MDAyMzUzNjQgLyogU1FMaXRlRGF0YWJhc2VUcmFja2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFNDc0RTFEMTI0OTREQzkwMDIzNTM2NCAvKiBT
UUxpdGVEYXRhYmFzZVRyYWNrZXIuY3BwICovOyB9OwotCQk3RTRDOTZEQzFBRDQ0ODM1MDAzNjVB
NTEgLyogSlNSZWFkYWJsZVN0cmVhbVNvdXJjZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RTRDOTZEODFBRDQ0ODM1MDAzNjVBNTEgLyogSlNSZWFk
YWJsZVN0cmVhbVNvdXJjZS5jcHAgKi87IH07Ci0JCTdFNEM5NkREMUFENDQ4MzUwMDM2NUE1MSAv
KiBKU1JlYWRhYmxlU3RyZWFtU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3RTRDOTZEOTFBRDQ0ODM1MDAzNjVBNTEgLyogSlNSZWFkYWJsZVN0
cmVhbVNvdXJjZS5oICovOyB9OwogCQk3RTRDOTZEQzFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRj
aFJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gN0U0Qzk2RDgxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hSZXF1ZXN0LmNwcCAqLzsgfTsK
KwkJN0U0Qzk2REMxQUQ0NDgzNTAwMzY1QTUxIC8qIEpTUmVhZGFibGVTdHJlYW1Tb3VyY2UuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0U0Qzk2RDgx
QUQ0NDgzNTAwMzY1QTUxIC8qIEpTUmVhZGFibGVTdHJlYW1Tb3VyY2UuY3BwICovOyB9OwogCQk3
RTRDOTZERDFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaFJlcXVlc3QuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFNEM5NkQ5MUFENDQ4MzUwMDM2NUE1
MCAvKiBKU0ZldGNoUmVxdWVzdC5oICovOyB9OworCQk3RTRDOTZERDFBRDQ0ODM1MDAzNjVBNTEg
LyogSlNSZWFkYWJsZVN0cmVhbVNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gN0U0Qzk2RDkxQUQ0NDgzNTAwMzY1QTUxIC8qIEpTUmVhZGFibGVT
dHJlYW1Tb3VyY2UuaCAqLzsgfTsKIAkJN0U0REUxMEQxOThCMTBCNjAwNTFDQjAyIC8qIERpc2tD
YWNoZU1vbml0b3JDb2NvYS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDdFNERFMTBDMTk4QjEwQjYwMDUxQ0IwMiAvKiBEaXNrQ2FjaGVNb25pdG9yQ29j
b2EubW0gKi87IH07CiAJCTdFNUQ3QTc2MTYxRDNGOEYwMDg5NkMzNCAvKiBPRVNFbGVtZW50SW5k
ZXhVaW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdFNUQ3QTczMTYxRDNGOEYwMDg5NkMzNCAvKiBPRVNFbGVtZW50SW5kZXhVaW50LmNwcCAqLzsg
fTsKIAkJN0U1RDdBNzcxNjFEM0Y4RjAwODk2QzM0IC8qIE9FU0VsZW1lbnRJbmRleFVpbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFNUQ3QTc0MTYx
RDNGOEYwMDg5NkMzNCAvKiBPRVNFbGVtZW50SW5kZXhVaW50LmggKi87IH07CkBAIC03MDkzLDcg
KzcwOTMsNiBAQAogCQlGREVBNjI0MzE1MjEwMkUyMDA0NzlERjAgLyogSlNPc2NpbGxhdG9yTm9k
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkRFQTYy
NDExNTIxMDJFMjAwNDc5REYwIC8qIEpTT3NjaWxsYXRvck5vZGUuaCAqLzsgfTsKIAkJRkRFQTYy
NDYxNTIxMDJGQzAwNDc5REYwIC8qIEpTUGVyaW9kaWNXYXZlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZERUE2MjQ0MTUyMTAyRkMwMDQ3OURGMCAv
KiBKU1BlcmlvZGljV2F2ZS5jcHAgKi87IH07CiAJCUZERUE2MjQ3MTUyMTAyRkMwMDQ3OURGMCAv
KiBKU1BlcmlvZGljV2F2ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRkRFQTYyNDUxNTIxMDJGQzAwNDc5REYwIC8qIEpTUGVyaW9kaWNXYXZlLmggKi87
IH07Ci0JCUZERUFBQUYzMTJCMDJFRTQwMERDRjMzQiAvKiBKU0F1ZGlvQnVmZmVyU291cmNlTm9k
ZUN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGREVBQUFFRjEyQjAyRUU0MDBEQ0YzM0IgLyogSlNBdWRpb0J1ZmZlclNvdXJjZU5vZGVDdXN0
b20uY3BwICovOyB9OwogCQlGREVBQUFGNDEyQjAyRUU0MDBEQ0YzM0IgLyogSlNBdWRpb0NvbnRl
eHRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRkRFQUFBRjAxMkIwMkVFNDAwRENGMzNCIC8qIEpTQXVkaW9Db250ZXh0Q3VzdG9tLmNwcCAq
LzsgfTsKIAkJRkRGMDlEQzgxMzk5QjYyMjAwNjg4RTVCIC8qIEpTQmlxdWFkRmlsdGVyTm9kZS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGREYwOURD
NjEzOTlCNjIyMDA2ODhFNUIgLyogSlNCaXF1YWRGaWx0ZXJOb2RlLmNwcCAqLzsgfTsKIAkJRkRG
MDlEQzkxMzk5QjYyMjAwNjg4RTVCIC8qIEpTQmlxdWFkRmlsdGVyTm9kZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkRGMDlEQzcxMzk5QjYyMjAwNjg4
RTVCIC8qIEpTQmlxdWFkRmlsdGVyTm9kZS5oICovOyB9OwpAQCAtODk5Nyw4ICs4OTk2LDggQEAK
IAkJNDEyOURGODQxQkI1QjdGNzAwMzIyQTE2IC8qIEpTUmVhZGFibGVTdHJlYW1Qcml2YXRlQ29u
c3RydWN0b3JzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUmVhZGFibGVT
dHJlYW1Qcml2YXRlQ29uc3RydWN0b3JzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQxMzAxNUQ1MUM3QjU3MDQwMDA5MUM2RSAvKiBGZXRjaFJlc3BvbnNlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZldGNoUmVzcG9uc2UuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0MTMwMTVENTFDN0I1NzA0MDAwOTFDNkYgLyogRmV0Y2hSZXNw
b25zZVNvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGZXRj
aFJlc3BvbnNlU291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDEzMDE1
RDYxQzdCNTcwNDAwMDkxQzZGIC8qIEZldGNoUmVzcG9uc2VTb3VyY2UuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRmV0Y2hSZXNwb25zZVNvdXJjZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0MTMwMTVENjFDN0I1NzA0MDAwOTFDNkUgLyogRmV0Y2hSZXNwb25z
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGZXRjaFJlc3BvbnNlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMzAxNUQ2MUM3QjU3MDQwMDA5MUM2RiAvKiBG
ZXRjaFJlc3BvbnNlU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZl
dGNoUmVzcG9uc2VTb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEzMDE1
RDcxQzdCNTcwNDAwMDkxQzZFIC8qIEZldGNoUmVzcG9uc2UuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IEZldGNoUmVzcG9uc2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
MTMwMTVEODFDN0I1NzA0MDAwOTFDNkUgLyogRmV0Y2hSZXNwb25zZS5qcyAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9IEZldGNoUmVzcG9uc2UuanM7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQxMzhEMzMzMTI0NDA1NDgwMDMyM0QzMyAvKiBFdmVudENvbnRl
eHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXZlbnRDb250ZXh0Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDQ0NywxMCArMTA0NDYsMTAgQEAKIAkJN0U0
NzRFMUIxMjQ5NERDOTAwMjM1MzY0IC8qIFNRTGl0ZURhdGFiYXNlVHJhY2tlckNsaWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTUUxpdGVEYXRhYmFzZVRyYWNrZXJDbGll
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0U0NzRFMUMxMjQ5NERDOTAwMjM1
MzY0IC8qIFNRTGl0ZURhdGFiYXNlVHJhY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTUUxpdGVEYXRhYmFzZVRyYWNrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJN0U0NzRFMUQxMjQ5NERDOTAwMjM1MzY0IC8qIFNRTGl0ZURhdGFiYXNlVHJhY2tlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTUUxpdGVEYXRhYmFzZVRy
YWNrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk3RTRDOTZEODFBRDQ0ODM1
MDAzNjVBNTEgLyogSlNSZWFkYWJsZVN0cmVhbVNvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU1JlYWRhYmxlU3RyZWFtU291cmNlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJN0U0Qzk2RDkxQUQ0NDgzNTAwMzY1QTUxIC8qIEpTUmVhZGFi
bGVTdHJlYW1Tb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNSZWFk
YWJsZVN0cmVhbVNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3RTRDOTZE
ODFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaFJlcXVlc3QuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNGZXRjaFJlcXVlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk3RTRDOTZEODFBRDQ0ODM1MDAzNjVBNTEgLyogSlNSZWFkYWJsZVN0cmVh
bVNvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1JlYWRh
YmxlU3RyZWFtU291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0U0Qzk2
RDkxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hSZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTRmV0Y2hSZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTdFNEM5NkQ5MUFENDQ4MzUwMDM2NUE1MSAvKiBKU1JlYWRhYmxlU3RyZWFtU291cmNl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUmVhZGFibGVTdHJlYW1Tb3Vy
Y2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0U0REUxMEMxOThCMTBCNjAwNTFD
QjAyIC8qIERpc2tDYWNoZU1vbml0b3JDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IERpc2tDYWNoZU1vbml0b3JDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJN0U1RDdBNzMxNjFEM0Y4RjAwODk2QzM0IC8qIE9FU0VsZW1lbnRJbmRl
eFVpbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gT0VTRWxlbWVu
dEluZGV4VWludC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdFNUQ3QTc0MTYx
RDNGOEYwMDg5NkMzNCAvKiBPRVNFbGVtZW50SW5kZXhVaW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE9FU0VsZW1lbnRJbmRleFVpbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTE1MjA3LDcgKzE1MjA2LDYgQEAKIAkJRkRFQTYyNDExNTIxMDJFMjAwNDc5
REYwIC8qIEpTT3NjaWxsYXRvck5vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNPc2NpbGxhdG9yTm9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGREVB
NjI0NDE1MjEwMkZDMDA0NzlERjAgLyogSlNQZXJpb2RpY1dhdmUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNQZXJpb2RpY1dhdmUuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGREVBNjI0NTE1MjEwMkZDMDA0NzlERjAgLyogSlNQZXJpb2RpY1dh
dmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNQZXJpb2RpY1dhdmUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRkRFQUFBRUYxMkIwMkVFNDAwRENGMzNCIC8q
IEpTQXVkaW9CdWZmZXJTb3VyY2VOb2RlQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTQXVkaW9CdWZmZXJTb3VyY2VOb2RlQ3VzdG9tLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkRFQUFBRjAxMkIwMkVFNDAwRENGMzNCIC8qIEpTQXVk
aW9Db250ZXh0Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTQXVkaW9Db250ZXh0Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RkRGMDlEQzYxMzk5QjYyMjAwNjg4RTVCIC8qIEpTQmlxdWFkRmlsdGVyTm9kZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0JpcXVhZEZpbHRlck5vZGUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGREYwOURDNzEzOTlCNjIyMDA2ODhFNUIgLyog
SlNCaXF1YWRGaWx0ZXJOb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
QmlxdWFkRmlsdGVyTm9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjI0MDYs
NyArMjI0MDQsNiBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJMTIyMUUwNzIxQzAzRTRDMjAwNkEx
QTAwIC8qIEpTQW5pbWF0aW9uVGltZWxpbmVDdXN0b20uY3BwICovLAogCQkJCUJDMkVENkJCMEM2
QkQyRjAwMDkyMEJGRiAvKiBKU0F0dHJDdXN0b20uY3BwICovLAotCQkJCUZERUFBQUVGMTJCMDJF
RTQwMERDRjMzQiAvKiBKU0F1ZGlvQnVmZmVyU291cmNlTm9kZUN1c3RvbS5jcHAgKi8sCiAJCQkJ
RkRFQUFBRjAxMkIwMkVFNDAwRENGMzNCIC8qIEpTQXVkaW9Db250ZXh0Q3VzdG9tLmNwcCAqLywK
IAkJCQlCRTZERjcwRTE3MUNBMkRBMDBERDUyQjggLyogSlNBdWRpb1RyYWNrQ3VzdG9tLmNwcCAq
LywKIAkJCQlCRTZERjcxMDE3MUNBMkRBMDBERDUyQjggLyogSlNBdWRpb1RyYWNrTGlzdEN1c3Rv
bS5jcHAgKi8sCkBAIC0zMDEzMSw3ICszMDEyOCw2IEBACiAJCQkJRkRGN0U5QzMxM0FDMjFEQjAw
QTUxRUFDIC8qIEpTQXVkaW9CdWZmZXJDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlG
REExNUU5RjEyQjAzRUUxMDAzQTU4M0EgLyogSlNBdWRpb0J1ZmZlclNvdXJjZU5vZGUuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNjlBNkNCQUMxQzZCRTQyQzAwQjgzNkU5IC8qIEFjY2Vzc2liaWxp
dHlTVkdFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUZERUFBQUYzMTJCMDJFRTQwMERD
RjMzQiAvKiBKU0F1ZGlvQnVmZmVyU291cmNlTm9kZUN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlGREExNUVBNTEyQjAzRUUxMDAzQTU4M0EgLyogSlNBdWRpb0NvbnRleHQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJRkRFQUFBRjQxMkIwMkVFNDAwRENGMzNCIC8qIEpTQXVkaW9Db250ZXh0
Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZEQTE1RUE3MTJCMDNFRTEwMDNBNTgzQSAv
KiBKU0F1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb0J1ZmZlclNvdXJjZU5vZGVDdXN0b20u
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb0J1ZmZlclNvdXJjZU5vZGVD
dXN0b20uY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzM2Y3NjhlM2M4MzQ1M2Rh
ZTk3NTAyZjUzNDgzY2QzZGQyOWJlODdhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9CdWZmZXJT
b3VyY2VOb2RlQ3VzdG9tLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDU2ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTAsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcwotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0g
KiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KLSAqIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwotICogU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1
ZGUgImNvbmZpZy5oIgotCi0jaWYgRU5BQkxFKFdFQl9BVURJTykKLQotI2luY2x1ZGUgIkpTQXVk
aW9CdWZmZXJTb3VyY2VOb2RlLmgiCi0KLSNpbmNsdWRlICJBdWRpb0J1ZmZlci5oIgotI2luY2x1
ZGUgIkF1ZGlvQnVmZmVyU291cmNlTm9kZS5oIgotI2luY2x1ZGUgIkpTQXVkaW9CdWZmZXIuaCIK
LSNpbmNsdWRlIDxydW50aW1lL0Vycm9yLmg+Ci0jaW5jbHVkZSA8cnVudGltZS9KU0NKU1ZhbHVl
SW5saW5lcy5oPgotCi11c2luZyBuYW1lc3BhY2UgSlNDOwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7
Ci0KLXZvaWQgSlNBdWRpb0J1ZmZlclNvdXJjZU5vZGU6OnNldEJ1ZmZlcihFeGVjU3RhdGUmIHN0
YXRlLCBKU1ZhbHVlIHZhbHVlKQotewotICAgIEF1ZGlvQnVmZmVyKiBidWZmZXIgPSBKU0F1ZGlv
QnVmZmVyOjp0b1dyYXBwZWQodmFsdWUpOwotICAgIGlmICghYnVmZmVyKSB7Ci0gICAgICAgIHN0
YXRlLnZtKCkudGhyb3dFeGNlcHRpb24oJnN0YXRlLCBjcmVhdGVUeXBlRXJyb3IoJnN0YXRlLCAi
VmFsdWUgaXMgbm90IG9mIHR5cGUgQXVkaW9CdWZmZXIiKSk7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9Ci0gICAgCi0gICAgaWYgKCF3cmFwcGVkKCkuc2V0QnVmZmVyKGJ1ZmZlcikpCi0gICAgICAg
IHN0YXRlLnZtKCkudGhyb3dFeGNlcHRpb24oJnN0YXRlLCBjcmVhdGVUeXBlRXJyb3IoJnN0YXRl
LCAiQXVkaW9CdWZmZXIgdW5zdXBwb3J0ZWQgbnVtYmVyIG9mIGNoYW5uZWxzIikpOwotfQotCi19
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVRElPKQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IDMxMmFmNWZmMDI1MzhmYTEzOGRkNTFlMGU3N2E2YjQ1MmRjNDA4ZmEuLmI2NjNiODA1YTYz
YTg2YTIxNzg1M2JjZDA5OGZmMjcxMTBkNmFmYTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAx
Ni0wNC0xOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEF1ZGlv
QnVmZmVyU291cmNlTm9kZS5idWZmZXIgc2hvdWxkIGJlIG51bGxhYmxlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTY3NjkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgZXhpc3RpbmcgbGF5b3V0
IHRlc3QgdG8gY2hlY2sgdGhhdDoKKyAgICAgICAgLSBBdWRpb0J1ZmZlclNvdXJjZU5vZGUuYnVm
ZmVyIGlzIGluaXRpYWxseSBudWxsCisgICAgICAgIC0gQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmJ1
ZmZlciBjYW4gYmUgc2V0IHRvIG51bGwKKyAgICAgICAgLSBXZSBjYW5ub3QgY3JlYXRlIGFuIEF1
ZGlvQnVmZmVyIHRoYXQgaGFzIHRvbyBtYW55IGNoYW5uZWxzCisKKyAgICAgICAgKiB3ZWJhdWRp
by9hdWRpb2J1ZmZlcnNvdXJjZS1jaGFubmVscy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2Vi
YXVkaW8vYXVkaW9idWZmZXJzb3VyY2UtY2hhbm5lbHMuaHRtbDoKKwogMjAxNi0wNC0xOSAgQWxl
eCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlYmFz
ZSB0ZXN0IGFmdGVyIHIxOTk3MzgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1
ZGlvYnVmZmVyc291cmNlLWNoYW5uZWxzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmF1
ZGlvL2F1ZGlvYnVmZmVyc291cmNlLWNoYW5uZWxzLWV4cGVjdGVkLnR4dAppbmRleCAzZjkzYmJi
NGEwOTkzMTg5NzdjYjFjN2U5ZGMyOGViMGJjOGQyMmFmLi40N2Y0NWVkOGRmNTU0ZTRlY2ZhMWZj
ZWQyNGIzYjFmNjAyYTU3MDNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRp
b2J1ZmZlcnNvdXJjZS1jaGFubmVscy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
YXVkaW8vYXVkaW9idWZmZXJzb3VyY2UtY2hhbm5lbHMtZXhwZWN0ZWQudHh0CkBAIC0yLDcgKzIs
OCBAQCBUZXN0cyB0aGF0IEF1ZGlvQnVmZmVyU291cmNlTm9kZSB2YWxpZGF0ZXMgQXVkaW9CdWZm
ZXIgaW4gLmJ1ZmZlciBhdHRyaWJ1dGUgc2V0dAogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CiAKLVBBU1Mgc291cmNlLmJ1ZmZlciA9IDU3IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFZh
bHVlIGlzIG5vdCBvZiB0eXBlIEF1ZGlvQnVmZmVyLgorUEFTUyBzb3VyY2UuYnVmZmVyIGlzIG51
bGwKK1BBU1Mgc291cmNlLmJ1ZmZlciA9IDU3IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFRo
ZSBBdWRpb0J1ZmZlclNvdXJjZU5vZGUuYnVmZmVyIGF0dHJpYnV0ZSBtdXN0IGJlIGFuIGluc3Rh
bmNlIG9mIEF1ZGlvQnVmZmVyLgogUEFTUyBNb25vIGJ1ZmZlciBjYW4gYmUgc2V0LgogUEFTUyBT
dGVyZW8gYnVmZmVyIGNhbiBiZSBzZXQuCiBQQVNTIDMgY2hhbm5lbHMgYnVmZmVyIGNhbiBiZSBz
ZXQuCkBAIC0xMiw2ICsxMywxMCBAQCBQQVNTIDYgY2hhbm5lbHMgYnVmZmVyIGNhbiBiZSBzZXQu
CiBQQVNTIDcgY2hhbm5lbHMgYnVmZmVyIGNhbiBiZSBzZXQuCiBQQVNTIDggY2hhbm5lbHMgYnVm
ZmVyIGNhbiBiZSBzZXQuCiBQQVNTIDkgY2hhbm5lbHMgYnVmZmVyIGNhbiBiZSBzZXQuCitQQVNT
IGNvbnRleHQuY3JlYXRlQnVmZmVyKDY0LCAxMDI0LCBjb250ZXh0LnNhbXBsZVJhdGUpIHRocmV3
IGV4Y2VwdGlvbiBFcnJvcjogTm90U3VwcG9ydGVkRXJyb3I6IERPTSBFeGNlcHRpb24gOS4KK1BB
U1Mgc291cmNlLmJ1ZmZlciBpcyBub3QgbnVsbAorUEFTUyBzb3VyY2UuYnVmZmVyID0gbnVsbCBk
aWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1Mgc291cmNlLmJ1ZmZlciBpcyBudWxsCiBQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLWNoYW5uZWxzLmh0bWwgYi9M
YXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1jaGFubmVscy5odG1sCmluZGV4
IDNhMDVlMDJhOThhNzQyZmVlNmRmMzRhNDdjYzIzZmY4YTE0NjI1YWQuLjU2ZDY5ZDQ5MWM2Yzk1
YWZlMzVhOWQxNjlkNjE1NDQ0MDE3YTZjMDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1
ZGlvL2F1ZGlvYnVmZmVyc291cmNlLWNoYW5uZWxzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
YXVkaW8vYXVkaW9idWZmZXJzb3VyY2UtY2hhbm5lbHMuaHRtbApAQCAtMjcsNiArMjcsOCBAQCBm
dW5jdGlvbiBydW5UZXN0KCkgewogICAgIGNvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0
KCk7CiAgICAgc291cmNlID0gY29udGV4dC5jcmVhdGVCdWZmZXJTb3VyY2UoKTsKIAorICAgIHNo
b3VsZEJlTnVsbCgic291cmNlLmJ1ZmZlciIpOworCiAgICAgLy8gTWFrZSBzdXJlIHdlIGNhbid0
IHNldCB0byBzb21ldGhpbmcgd2hpY2ggaXNuJ3QgYW4gQXVkaW9CdWZmZXIuCiAgICAgc2hvdWxk
VGhyb3coInNvdXJjZS5idWZmZXIgPSA1NyIpOwogCkBAIC02MCw2ICs2MiwxMiBAQCBmdW5jdGlv
biBydW5UZXN0KCkgewogICAgICAgICAgICAgdGVzdEZhaWxlZChtZXNzYWdlKTsKICAgICAgICAg
fQogICAgIH0KKworICAgIHNob3VsZFRocm93KCJjb250ZXh0LmNyZWF0ZUJ1ZmZlcig2NCwgMTAy
NCwgY29udGV4dC5zYW1wbGVSYXRlKSIpOworCisgICAgc2hvdWxkTm90QmUoInNvdXJjZS5idWZm
ZXIiLCAibnVsbCIpOworICAgIHNob3VsZE5vdFRocm93KCJzb3VyY2UuYnVmZmVyID0gbnVsbCIp
OworICAgIHNob3VsZEJlTnVsbCgic291cmNlLmJ1ZmZlciIpOwogICAgICAgICAKICAgICBmaW5p
c2hKU1Rlc3QoKTsKIH0K
</data>
<flag name="review"
          id="301048"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>