<?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>164369</bug_id>
          
          <creation_ts>2016-11-03 10:29:56 -0700</creation_ts>
          <short_desc>Safari does not emit composition end if blurred for dead key / Japanese IME</short_desc>
          <delta_ts>2016-11-05 10:57:09 -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>HTML Editing</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></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>163112</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>enrica</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1247745</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2016-11-03 10:29:56 -0700</bug_when>
    <thetext>1. Change IME mode to Japanese Hiragana
2. Type a composition string into a text field or content editable, but do not commit
3. Blur the editable element by clicking the document or another text field

No `compositionend` is fired for the editable element.

Firefox/Chrome both fire a `compositionend` in this case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248020</commentid>
    <comment_count>1</comment_count>
      <attachid>293854</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2016-11-03 21:20:06 -0700</bug_when>
    <thetext>Created attachment 293854
First pass</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248021</commentid>
    <comment_count>2</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2016-11-03 21:20:38 -0700</bug_when>
    <thetext>&lt;rdar://problem/29050439&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248199</commentid>
    <comment_count>3</comment_count>
      <attachid>293854</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-11-04 12:22:06 -0700</bug_when>
    <thetext>Comment on attachment 293854
First pass

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

&gt; Source/WebCore/editing/Editor.cpp:3250
&gt; +    if (oldSelection == newSelection)
&gt; +        return;

We should check this condition at this function is called instead.
We already have such a check &amp; an early exit in setSelection.

&gt; Source/WebCore/editing/Editor.cpp:3252
&gt; +#if PLATFORM(MAC)

Why is this behavior Mac only?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248209</commentid>
    <comment_count>4</comment_count>
      <attachid>293854</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2016-11-04 12:42:11 -0700</bug_when>
    <thetext>Comment on attachment 293854
First pass

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

&gt;&gt; Source/WebCore/editing/Editor.cpp:3250
&gt;&gt; +        return;
&gt; 
&gt; We should check this condition at this function is called instead.
&gt; We already have such a check &amp; an early exit in setSelection.

Sounds good -- I&apos;ll move it there.

&gt;&gt; Source/WebCore/editing/Editor.cpp:3252
&gt;&gt; +#if PLATFORM(MAC)
&gt; 
&gt; Why is this behavior Mac only?

When canceling a composition, we also need to reset the platform&apos;s IME state so that the platform doesn&apos;t still think that we have a pending composition. On Mac, we accomplish this by discarding the NSTextInputContext&apos;s marked text. However, there is no analogous way to accomplish this on iOS.

Furthermore, this bug seems to only affect Mac. On iOS, we behave differently when changing selection while there is composition text -- we will commit the composition _without_ changing the focused element, which actually produces the correct behavior of dispatching a `compositionend` on the element containing the composition. For instance, if a user types a composition string into a field on iOS without confirming it and taps to switch input fields, the old input field will remain focused and the composition will be committed. Tapping again (when there is no pending composition) then switches focus. I&apos;m not sure if this is a bug or intended behavior -- if this is a bug, we can actually fix this problem by committing the composition early here, but due to the inability to clear composition state on iOS, doing so will require more investigation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248211</commentid>
    <comment_count>5</comment_count>
      <attachid>293854</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-11-04 12:45:01 -0700</bug_when>
    <thetext>Comment on attachment 293854
First pass

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

&gt;&gt;&gt; Source/WebCore/editing/Editor.cpp:3252
&gt;&gt;&gt; +#if PLATFORM(MAC)
&gt;&gt; 
&gt;&gt; Why is this behavior Mac only?
&gt; 
&gt; When canceling a composition, we also need to reset the platform&apos;s IME state so that the platform doesn&apos;t still think that we have a pending composition. On Mac, we accomplish this by discarding the NSTextInputContext&apos;s marked text. However, there is no analogous way to accomplish this on iOS.
&gt; 
&gt; Furthermore, this bug seems to only affect Mac. On iOS, we behave differently when changing selection while there is composition text -- we will commit the composition _without_ changing the focused element, which actually produces the correct behavior of dispatching a `compositionend` on the element containing the composition. For instance, if a user types a composition string into a field on iOS without confirming it and taps to switch input fields, the old input field will remain focused and the composition will be committed. Tapping again (when there is no pending composition) then switches focus. I&apos;m not sure if this is a bug or intended behavior -- if this is a bug, we can actually fix this problem by committing the composition early here, but due to the inability to clear composition state on iOS, doing so will require more investigation.

In that case, we should add an empty implementation in Editor.cpp (wrapped in !PLATFORM(MAC))
and this version in EditorMac.mm.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248214</commentid>
    <comment_count>6</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2016-11-04 12:47:04 -0700</bug_when>
    <thetext>&gt; In that case, we should add an empty implementation in Editor.cpp (wrapped
&gt; in !PLATFORM(MAC))
&gt; and this version in EditorMac.mm.

That makes sense. Will do!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248235</commentid>
    <comment_count>7</comment_count>
      <attachid>293918</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2016-11-04 13:25:38 -0700</bug_when>
    <thetext>Created attachment 293918
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248348</commentid>
    <comment_count>8</comment_count>
      <attachid>293918</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-11-04 16:13:11 -0700</bug_when>
    <thetext>Comment on attachment 293918
Patch

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

&gt; Source/WebCore/editing/FrameSelection.cpp:308
&gt; +    bool selectionsAreEqual = oldSelection == newSelection;

I think it&apos;s better to negate the variable and call it didMutateSelection or something.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248350</commentid>
    <comment_count>9</comment_count>
      <attachid>293953</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2016-11-04 16:16:44 -0700</bug_when>
    <thetext>Created attachment 293953
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248371</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-04 16:57:26 -0700</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 293953:

inspector/sampling-profiler/call-frame-with-dom-functions.html bug 164399 (author: sbarati@apple.com)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248372</commentid>
    <comment_count>11</comment_count>
      <attachid>293953</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-04 16:58:01 -0700</bug_when>
    <thetext>Comment on attachment 293953
Patch for landing

Clearing flags on attachment: 293953

Committed r208406: &lt;http://trac.webkit.org/changeset/208406&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>293854</attachid>
            <date>2016-11-03 21:20:06 -0700</date>
            <delta_ts>2016-11-04 13:25:35 -0700</delta_ts>
            <desc>First pass</desc>
            <filename>bug-164369-20161103211605.patch</filename>
            <type>text/plain</type>
            <size>24233</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4Mjg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDlkYTIwMDg4MDRlOGQx
MWVkNDQxOWQxZGYxMmZhZjEwMjQ2YTdmMy4uNWM2ZTBlMDZiZDRjMTMxNWJhOTc2MGU1MmZlMjUz
ODVkODk2ZDgzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE2LTExLTAzICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFNhZmFyaSBkb2Vz
IG5vdCBlbWl0IGNvbXBvc2l0aW9uIGVuZCBpZiBibHVycmVkIGZvciBkZWFkIGtleSAvIEphcGFu
ZXNlIElNRQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTY0MzY5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yOTA1MDQzOT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBPbiBNYWMsIF9iZWZvcmVfIGNoYW5n
aW5nIHNlbGVjdGlvbiwgdHJ5IHRvIGZpbmFsaXplIHRoZSBjb21wb3NpdGlvbiBieSBjYWxsaW5n
IEVkaXRvcjo6Y2FuY2VsQ29tcG9zaXRpb24gZWFybHkuCisgICAgICAgIFRoaXMgaXMgYmVjYXVz
ZSB0aGUgZm9jdXNlZCBlbGVtZW50IG1heSBoYXZlIGNoYW5nZWQgYWZ0ZXIgcGVyZm9ybWluZyB0
aGUgc2VsZWN0aW9uIGNoYW5nZSwgc28gd2Ugd291bGQKKyAgICAgICAgb3RoZXJ3aXNlIGJlIGRp
c3BhdGNoaW5nIHRoZSBgY29tcG9zaXRpb25lbmRgIHRvIHRoZSBuZXcgZm9jdXNlZCBlbGVtZW50
IChvciBubyBjb21wb3NpdGlvbmVuZCBhdCBhbGwpIGluc3RlYWQKKyAgICAgICAgb2YgdGhlIGVs
ZW1lbnQgd2l0aCB0aGUgY29tcG9zaXRpb24uCisKKyAgICAgICAgRG9pbmcgdGhpcyBhbGxvd3Mg
dXMgdG8gbWF0Y2ggQ2hyb21lIGFuZCBGaXJlZm94IGJlaGF2aW9yLiBBZnRlciBjYW5jZWxpbmcg
dGhlIGNvbXBvc2l0aW9uLCB3ZSB0aGVuIG5lZWQgdG8gYWxzbworICAgICAgICBjbGVhciB0aGUg
c3lzdGVtIElNRSBzdGF0ZS4gV2UgZG8gdGhpcyBvbiBNYWMgV0sxL1dLMiB0aHJvdWdoIHRoZSBj
YW5jZWxDb21wb3NpdGlvbigpIGNvZGVwYXRoLCB3aGljaCBlbmRzIHVwCisgICAgICAgIGNhbGxp
bmcgaW50byAtZGlzY2FyZE1hcmtlZFRleHQsIHdoaWNoIHJlc2V0cyB0aGUgbWFya2VkIHRleHQg
c3RhdGUuIFNvbWUgbWlub3IgcmVmYWN0b3Jpbmcgd2FzIHBlcmZvcm1lZCB0bworICAgICAgICBh
Y2NvbXBsaXNoIHRoaXMgLS0gY3VycmVudGx5LCBkaXNjYXJkZWRDb21wb3NpdGlvbiBzZW5kcyBh
IENvbXBvc2l0aW9uV2FzQ2FuY2VsZWQgbWVzc2FnZSBvdmVyIHRvIHRoZSBVSSBwcm9jZXNzCisg
ICAgICAgIHRoYXQgZGlzY2FyZHMgdGhlIG1hcmtlZCB0ZXh0LCBhbmQgdGhlbiB1cGRhdGVzIHRo
ZSBlZGl0b3Igc3RhdGUuIFRoaXMgcGF0Y2ggc3BsaXRzIHRoaXMgaW50byB0d28gc2VwYXJhdGUK
KyAgICAgICAgc3RlcHMgLS0gc2VlIHRoZSBXZWJLaXQyIENoYW5nZUxvZyBmb3IgbW9yZSBkZXRh
aWxzLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZXZlbnRzL2ltZS1jb21wb3NpdGlvbmVuZC1vbi1z
ZWxlY3Rpb24tY2hhbmdlLmh0bWwKKworICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6c2VsZWN0aW9uV2lsbENoYW5nZSk6CisgICAgICAgICog
ZWRpdGluZy9FZGl0b3IuaDoKKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0VXBk
YXRpbmdBcHBlYXJhbmNlKToKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6CisgICAg
ICAgICogcGFnZS9FZGl0b3JDbGllbnQuaDoKKwogMjAxNi0xMS0wMiAgRGF2aWQgS2lsemVyICA8
ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBsb2dnaW5nIGZvciAiV2ViS2l0IGVu
Y291bnRlcmVkIGFuIGludGVybmFsIGVycm9yIiBtZXNzYWdlcwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4
IGE5NGQ1Nzc4NmJiZDQzZTY1NWU1MzkyODcxYjVmNTQwMTY0MWViMTUuLjI2MjNjMzQzZTc2N2Q1
OTYzYTgyNzUwYmE4NmJlMDA2YzIyMjNlYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NyBAQAorMjAxNi0xMS0wMyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4K
KworICAgICAgICBTYWZhcmkgZG9lcyBub3QgZW1pdCBjb21wb3NpdGlvbiBlbmQgaWYgYmx1cnJl
ZCBmb3IgZGVhZCBrZXkgLyBKYXBhbmVzZSBJTUUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDM2OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjkw
NTA0Mzk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
V2hlbiBjYW5jZWxpbmcgYSBjb21wb3NpdGlvbiwgbWFrZSBzdXJlIHRoYXQgd2UgY2xlYXIgdGhl
IHN5c3RlbSBJTUUgc3RhdGUuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JD
bGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW06Cisg
ICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OmNhbmNlbGVkQ29tcG9zaXRpb24pOgorCiAyMDE2LTEx
LTAyICBSb21haW4gQmVsbGVzc29ydCAgPHJvbWFpbi5iZWxsZXNzb3J0QGNyZi5jYW5vbi5mcj4K
IAogICAgICAgICBbUmVhZGFibGUgU3RyZWFtcyBBUEldIEVuYWJsZSBjcmVhdGlvbiBvZiBSZWFk
YWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggNjJmYzgzNDkyNzk4
ZmQ0NWJmZmM1NTcxYjQwNzkwOGIzMjk2MDUyMi4uZTNmNjM0YzQ5YjJjYjc4OTg1YjA2NDM4N2Q3
YTIxM2NiNWE4YjM0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE2LTEx
LTAzICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFNh
ZmFyaSBkb2VzIG5vdCBlbWl0IGNvbXBvc2l0aW9uIGVuZCBpZiBibHVycmVkIGZvciBkZWFkIGtl
eSAvIEphcGFuZXNlIElNRQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTY0MzY5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yOTA1MDQzOT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBzdHViIGlt
cGxlbWVudGF0aW9uIG9mIGNhbmNlbGVkQ29tcG9zaXRpb24uCisKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwOgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50Ojpj
YW5jZWxlZENvbXBvc2l0aW9uKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JD
bGllbnQuaDoKKwogMjAxNi0xMS0wMSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4K
IAogICAgICAgICBSZW1vdmUgQ1VTVE9NX0VMRU1FTlRTIGJ1aWxkIGZsYWcKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRl
eCA2OTYyZWM4NTE3MjRiNGExNGM0NWY2NGIxN2QyZjk0MmUxZDQ4ZWNlLi5jMDZhZDNhNzQ1ODFh
N2NjZDJmMzdmN2M3N2E2N2YzZmQzZDJmMGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAK
KzIwMTYtMTEtMDMgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAg
ICAgICAgU2FmYXJpIGRvZXMgbm90IGVtaXQgY29tcG9zaXRpb24gZW5kIGlmIGJsdXJyZWQgZm9y
IGRlYWQga2V5IC8gSmFwYW5lc2UgSU1FCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjQzNjkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI5MDUwNDM5
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNwbGl0
IFdlYlBhZ2U6OmRpc2NhcmRlZENvbXBvc2l0aW9uIGludG8gdHdvIHN0ZXBzLCB3aGVyZSB3ZSBm
aXJzdCBkaXNjYXJkIG1hcmtlZCB0ZXh0IGFuZCB0aGVuIHVwZGF0ZSB0aGUKKyAgICAgICAgZWRp
dG9yIHN0YXRlLiBUaGlzIGFsbG93cyB0aGUgY29kZXBhdGggd2hlcmUgd2UgY2FuY2VsIHRoZSBj
b21wb3NpdGlvbiBlYXJseSAoYmVmb3JlIHNldHRpbmcgdGhlIHNlbGVjdGlvbikgdG8KKyAgICAg
ICAgZGlzY2FyZCBtYXJrZWQgdGV4dCB3aXRob3V0IGFsc28gZm9yY2luZyBhbiBlZGl0b3Igc3Rh
dGUgdXBkYXRlIGF0IHRoZSBzYW1lIHRpbWUuIFRoZSBlZGl0b3Igc3RhdGUgaXMgbGF0ZXIKKyAg
ICAgICAgdXBkYXRlZCBpbiBXZWJQYWdlOjpkaWRDaGFuZ2VTZWxlY3Rpb24uCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5Ojpjb21wb3NpdGlvbldhc0NhbmNlbGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkVkaXRvckNsaWVudDo6Y2FuY2VsZWRDb21wb3NpdGlvbik6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2U6OmRpZENoYW5nZVNlbGVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OmRpc2NhcmRlZENvbXBvc2l0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Y2Fu
Y2VsZWRDb21wb3NpdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aDoKKwogMjAxNi0xMS0wMiAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAg
ICAgICAgIEFkZCBsb2dnaW5nIGZvciAiV2ViS2l0IGVuY291bnRlcmVkIGFuIGludGVybmFsIGVy
cm9yIiBtZXNzYWdlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3Iu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IGM3MzRjYWYyOTQz
ZTQxZDQwOTQ3M2VjZTllMTU5NDllNGUxMmZlNTcuLmU0YWQ1MWE4MzQxNzgyYWY1YjFlNzMyNGMw
ODgwYmM0ODcyYzIzN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9y
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTMyNDQsNiAr
MzI0NCwyMCBAQCB2b2lkIEVkaXRvcjo6c2V0TWFya2VkVGV4dE1hdGNoZXNBcmVIaWdobGlnaHRl
ZChib29sIGZsYWcpCiAgICAgZG9jdW1lbnQoKS5tYXJrZXJzKCkucmVwYWludE1hcmtlcnMoRG9j
dW1lbnRNYXJrZXI6OlRleHRNYXRjaCk7CiB9CiAKK3ZvaWQgRWRpdG9yOjpzZWxlY3Rpb25XaWxs
Q2hhbmdlKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG9sZFNlbGVjdGlvbiwgY29uc3QgVmlzaWJs
ZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uKQoreworICAgIGlmIChvbGRTZWxlY3Rpb24gPT0gbmV3
U2VsZWN0aW9uKQorICAgICAgICByZXR1cm47CisKKyNpZiBQTEFURk9STShNQUMpCisgICAgaWYg
KCFoYXNDb21wb3NpdGlvbigpIHx8IGlnbm9yZUNvbXBvc2l0aW9uU2VsZWN0aW9uQ2hhbmdlKCkg
fHwgbV9mcmFtZS5zZWxlY3Rpb24oKS5pc05vbmUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
Y2FuY2VsQ29tcG9zaXRpb24oKTsKKyAgICBjbGllbnQoKS0+Y2FuY2VsZWRDb21wb3NpdGlvbigp
OworI2VuZGlmCit9CisKIHZvaWQgRWRpdG9yOjpyZXNwb25kVG9DaGFuZ2VkU2VsZWN0aW9uKGNv
bnN0IFZpc2libGVTZWxlY3Rpb24mLCBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9u
cyBvcHRpb25zKQogewogI2lmIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCmlu
ZGV4IDg2NzBhZTNhMzhjMDI4NWEyMGEyMWVjZDQxMDUyY2E2NTA3MzUwYTYuLmQ5NDUzMzRiMGE0
NzRhOTEyZjRiMDdjMjBhYTA1YWE5YjY1NGFjYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaApA
QCAtMzkwLDYgKzM5MCw3IEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIEludFJlY3Qg
Zmlyc3RSZWN0Rm9yUmFuZ2UoUmFuZ2UqKSBjb25zdDsKIAorICAgIHZvaWQgc2VsZWN0aW9uV2ls
bENoYW5nZShjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBvbGRTZWxlY3Rpb24sIGNvbnN0IFZpc2li
bGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbik7CiAgICAgdm9pZCByZXNwb25kVG9DaGFuZ2VkU2Vs
ZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG9sZFNlbGVjdGlvbiwgRnJhbWVTZWxlY3Rp
b246OlNldFNlbGVjdGlvbk9wdGlvbnMpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdXBkYXRl
RWRpdG9yVUlOb3dJZlNjaGVkdWxlZCgpOwogICAgIGJvb2wgc2hvdWxkQ2hhbmdlU2VsZWN0aW9u
KGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG9sZFNlbGVjdGlvbiwgY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYgbmV3U2VsZWN0aW9uLCBFQWZmaW5pdHksIGJvb2wgc3RpbGxTZWxlY3RpbmcpIGNvbnN0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAppbmRleCBiNTdiZTZh
ZjU2ZTM1NGNkMzk0NDc0ZmIxNjYzYjk2NTNhOWE4MDVjLi5jOTYzYzliYmFmOTllYWYwYmRjMjJm
ZmI1YjVkNGRiNjhkYTAyMWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Zy
YW1lU2VsZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0
aW9uLmNwcApAQCAtMzA0LDYgKzMwNCw4IEBAIGJvb2wgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVj
dGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UoY29uc3QgVmlzaWJsZVNlbGVjdGlvCiAgICAg
aWYgKHNob3VsZENsZWFyVHlwaW5nU3R5bGUpCiAgICAgICAgIGNsZWFyVHlwaW5nU3R5bGUoKTsK
IAorICAgIG1fZnJhbWUtPmVkaXRvcigpLnNlbGVjdGlvbldpbGxDaGFuZ2UobV9zZWxlY3Rpb24s
IG5ld1NlbGVjdGlvbik7CisKICAgICBWaXNpYmxlU2VsZWN0aW9uIG9sZFNlbGVjdGlvbiA9IG1f
c2VsZWN0aW9uOwogICAgIG1fc2VsZWN0aW9uID0gbmV3U2VsZWN0aW9uOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXggNjYwYjEyZjg2M2M4Mzg2NjFmZDI3MDE5YzA2MTMz
MzliYTQzZmUzNC4uOGJlNzdhYmQ3Mzg2MWZhODk0NjQ5NjYyYzY1NTY3MGY3NjMzMGFkOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApAQCAtNDY4LDYgKzQ2OCw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGRpZENoYW5nZVNlbGVjdGlvbkFuZFVwZGF0ZUxheW91dCgpIG92ZXJyaWRl
IHsgfQogICAgIHZvaWQgdXBkYXRlRWRpdG9yU3RhdGVBZnRlckxheW91dElmRWRpdGFiaWxpdHlD
aGFuZ2VkKCkgb3ZlcnJpZGUgeyB9CiAgICAgdm9pZCBkaXNjYXJkZWRDb21wb3NpdGlvbihGcmFt
ZSopIG92ZXJyaWRlIHsgfQorICAgIHZvaWQgY2FuY2VsZWRDb21wb3NpdGlvbigpIG92ZXJyaWRl
IHsgfQogICAgIHZvaWQgZGlkRW5kRWRpdGluZygpIG92ZXJyaWRlIHsgfQogICAgIHZvaWQgd2ls
bFdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJkKFJhbmdlKikgb3ZlcnJpZGUgeyB9CiAgICAgdm9p
ZCBkaWRXcml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZCgpIG92ZXJyaWRlIHsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FZGl0b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRWRpdG9yQ2xpZW50LmgKaW5kZXggNGY2YTk4NTljODNjY2U0ZTQzM2JkMDc4NjIwYTQzMDlm
NDQ1MTdhNy4uZWIxYTQyZTJlZWQwM2E1MTRkMTIzNjA4YmNlNzNiNGUyZDU2NzgwYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FZGl0b3JDbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0VkaXRvckNsaWVudC5oCkBAIC0xMDIsNiArMTAyLDcgQEAgcHVibGljOgogICAg
IC8vIE5vdGlmeSBhbiBpbnB1dCBtZXRob2QgdGhhdCBhIGNvbXBvc2l0aW9uIHdhcyB2b2x1bnRh
cmlseSBkaXNjYXJkZWQgYnkgV2ViQ29yZSwgc28gdGhhdCBpdCBjb3VsZCBjbGVhbiB1cCB0b28u
CiAgICAgLy8gVGhpcyBmdW5jdGlvbiBpcyBub3QgY2FsbGVkIHdoZW4gYSBjb21wb3NpdGlvbiBp
cyBjbG9zZWQgcGVyIGEgcmVxdWVzdCBmcm9tIGFuIGlucHV0IG1ldGhvZC4KICAgICB2aXJ0dWFs
IHZvaWQgZGlzY2FyZGVkQ29tcG9zaXRpb24oRnJhbWUqKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGNhbmNlbGVkQ29tcG9zaXRpb24oKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJV
bmRvU3RlcChQYXNzUmVmUHRyPFVuZG9TdGVwPikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCByZWdp
c3RlclJlZG9TdGVwKFBhc3NSZWZQdHI8VW5kb1N0ZXA+KSA9IDA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaCBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCmluZGV4IDA3YTVlZGNk
OTQwOTUwNmU1YWRkNzNjZTZiYmY0ZGJhMzY5NzA3ZjQuLjEyZWVlMmIyYmM1ZmEwYTZhZjI1MWVh
NTc0NjNiNWZlYjI0OWY3MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCkBAIC0xMTMsNiArMTEzLDcgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIGRpZENoYW5nZVNlbGVjdGlvbkFuZFVwZGF0ZUxheW91dCgpIGZpbmFsIHsgfQogICAg
IHZvaWQgdXBkYXRlRWRpdG9yU3RhdGVBZnRlckxheW91dElmRWRpdGFiaWxpdHlDaGFuZ2VkKCkg
ZmluYWw7CiAgICAgdm9pZCBkaXNjYXJkZWRDb21wb3NpdGlvbihXZWJDb3JlOjpGcmFtZSopIGZp
bmFsOworICAgIHZvaWQgY2FuY2VsZWRDb21wb3NpdGlvbigpIGZpbmFsOwogCiAgICAgdm9pZCBy
ZWdpc3RlclVuZG9TdGVwKFBhc3NSZWZQdHI8V2ViQ29yZTo6VW5kb1N0ZXA+KSBmaW5hbDsKICAg
ICB2b2lkIHJlZ2lzdGVyUmVkb1N0ZXAoUGFzc1JlZlB0cjxXZWJDb3JlOjpVbmRvU3RlcD4pIGZp
bmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9y
Q2xpZW50Lm1tCmluZGV4IGRhNDlkYTk4MmM3ZTc0OWZjYmQ0OWZhOTQwYTY5YjUyYjQ4MDcyNzEu
LmNlNDg0MzYzODgwY2M4NzVhY2EyZjAxYmIzMTFlNGQzZTQwOGUzOWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KQEAgLTM3
NSw2ICszNzUsMTMgQEAgdm9pZCBXZWJFZGl0b3JDbGllbnQ6OmRpc2NhcmRlZENvbXBvc2l0aW9u
KEZyYW1lKikKICAgICAvLyBUaGUgZWZmZWN0cyBvZiB0aGlzIGZ1bmN0aW9uIGFyZSBjdXJyZW50
bHkgYWNoaWV2ZWQgdmlhIC1bV2ViSFRNTFZpZXcgX3VwZGF0ZVNlbGVjdGlvbkZvcklucHV0TWFu
YWdlcl0uCiB9CiAKK3ZvaWQgV2ViRWRpdG9yQ2xpZW50OjpjYW5jZWxlZENvbXBvc2l0aW9uKCkK
K3sKKyNpZiAhUExBVEZPUk0oSU9TKQorICAgIFtbTlNUZXh0SW5wdXRDb250ZXh0IGN1cnJlbnRJ
bnB1dENvbnRleHRdIGRpc2NhcmRNYXJrZWRUZXh0XTsKKyNlbmRpZgorfQorCiB2b2lkIFdlYkVk
aXRvckNsaWVudDo6ZGlkRW5kRWRpdGluZygpCiB7CiAjaWYgIVBMQVRGT1JNKElPUykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3Bw
CmluZGV4IGMzNzQxMzk2MzBkMmMxMjIxNDIzNDBjYWJmYmExNmE5ZWEzMjlkZTMuLmY4YjkwOGRj
YmFiMTgyNjc0ZWUyMjM5ZjIxYzRjM2ZhZjMwZmE4ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcApAQCAtMjQyLDYgKzI0
MiwxMSBAQCB2b2lkIFdlYkVkaXRvckNsaWVudDo6ZGlzY2FyZGVkQ29tcG9zaXRpb24oRnJhbWUq
KQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKK3ZvaWQgV2ViRWRpdG9yQ2xpZW50OjpjYW5j
ZWxlZENvbXBvc2l0aW9uKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCiB2b2lkIFdl
YkVkaXRvckNsaWVudDo6ZGlkRW5kRWRpdGluZygpCiB7CiAgICAgc3RhdGljIF9ic3RyX3Qgd2Vi
Vmlld0RpZEVuZEVkaXRpbmdOb3RpZmljYXRpb25OYW1lKFdlYlZpZXdEaWRFbmRFZGl0aW5nTm90
aWZpY2F0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0
L1dlYkVkaXRvckNsaWVudC5oIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50LmgKaW5kZXggNGZmMGFiZmZmZjg3ODlmZGQ2ZDBmNTE2MDkzYzE5NTI0YmU5
NWExMS4uNTk0YzQ4ZDNjNWE2NDgzOGM0OTQ5N2Y2NjRjZGU0MmU1ODQwMmZiMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKQEAg
LTU4LDYgKzU4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCByZXNwb25kVG9DaGFuZ2Vk
U2VsZWN0aW9uKFdlYkNvcmU6OkZyYW1lKik7CiAgICAgdm9pZCBkaWRDaGFuZ2VTZWxlY3Rpb25B
bmRVcGRhdGVMYXlvdXQoKSBmaW5hbCB7IH0KICAgICB2b2lkIHVwZGF0ZUVkaXRvclN0YXRlQWZ0
ZXJMYXlvdXRJZkVkaXRhYmlsaXR5Q2hhbmdlZCgpIGZpbmFsIHsgfSAKKyAgICB2b2lkIGNhbmNl
bGVkQ29tcG9zaXRpb24oKSBmaW5hbDsKICAgICB2b2lkIGRpc2NhcmRlZENvbXBvc2l0aW9uKFdl
YkNvcmU6OkZyYW1lKikgZmluYWw7CiAKICAgICBib29sIHNob3VsZERlbGV0ZVJhbmdlKFdlYkNv
cmU6OlJhbmdlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmlu
ZGV4IDJiNGIwNTFkZjgyYjc1MjIxZWY0NWEwMjQzNzI3NmM5MTEyYTE4MmYuLjQ5ZmRiM2U2Mjkx
NjdjYzE4MmNhNzVhNDcxN2JmNGU0MTY0ZGQxYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCkBAIC00MzY0LDEyICs0MzY0LDExIEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpiYWNrRm9yd2FyZEZvcndhcmRMaXN0Q291bnQoaW50MzJfdCYgY291bnQpCiAgICAgY291
bnQgPSBtX2JhY2tGb3J3YXJkTGlzdC0+Zm9yd2FyZExpc3RDb3VudCgpOwogfQogCi12b2lkIFdl
YlBhZ2VQcm94eTo6Y29tcG9zaXRpb25XYXNDYW5jZWxlZChjb25zdCBFZGl0b3JTdGF0ZSYgZWRp
dG9yU3RhdGUpCit2b2lkIFdlYlBhZ2VQcm94eTo6Y29tcG9zaXRpb25XYXNDYW5jZWxlZCgpCiB7
CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgbV9wYWdlQ2xpZW50Lm5vdGlmeUlucHV0Q29udGV4
dEFib3V0RGlzY2FyZGVkQ29tcG9zaXRpb24oKTsKICNlbmRpZgotICAgIGVkaXRvclN0YXRlQ2hh
bmdlZChlZGl0b3JTdGF0ZSk7CiB9CiAKIC8vIFVuZG8gbWFuYWdlbWVudApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDIxZGI1OTIwMTlhMDczYWU5ZjhlMTVkNWYy
NzIxZTJmMWExYmY0MzUuLmI3YjFkNWUzMDQ3NzllZGEwNGQ4ZDIwZTNkOWYwOWMwZDkxYjM4OWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTEzMDcsNyArMTMw
Nyw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIHZvaWQgZWRpdG9yU3RhdGVDaGFuZ2VkKGNv
bnN0IEVkaXRvclN0YXRlJik7Ci0gICAgdm9pZCBjb21wb3NpdGlvbldhc0NhbmNlbGVkKGNvbnN0
IEVkaXRvclN0YXRlJik7CisgICAgdm9pZCBjb21wb3NpdGlvbldhc0NhbmNlbGVkKCk7CiAgICAg
dm9pZCBzZXRIYXNIYWRTZWxlY3Rpb25DaGFuZ2VzRnJvbVVzZXJJbnRlcmFjdGlvbihib29sKTsK
ICAgICB2b2lkIHNldE5lZWRzSGlkZGVuQ29udGVudEVkaXRhYmxlUXVpcmsoYm9vbCk7CiAgICAg
dm9pZCBzZXROZWVkc1BsYWluVGV4dFF1aXJrKGJvb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggNDcwYTgwYTNhMDcwMzYz
Zjg4MGM0N2NmY2ExZWFhZGQ4Y2I3YTAxZi4uODA5OWUxMTBhNmE4ZmI3Y2Y0OTUxOGI5NTZlNjU2
MDkzNTJlMTA0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluCkBAIC0yMzUsNyArMjM1LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVBy
b3h5IHsKIAogICAgICMgRWRpdG9yIG5vdGlmaWNhdGlvbnMKICAgICBFZGl0b3JTdGF0ZUNoYW5n
ZWQoc3RydWN0IFdlYktpdDo6RWRpdG9yU3RhdGUgZWRpdG9yU3RhdGUpCi0gICAgQ29tcG9zaXRp
b25XYXNDYW5jZWxlZChzdHJ1Y3QgV2ViS2l0OjpFZGl0b3JTdGF0ZSBlZGl0b3JTdGF0ZSkKKyAg
ICBDb21wb3NpdGlvbldhc0NhbmNlbGVkKCkKICAgICBTZXRIYXNIYWRTZWxlY3Rpb25DaGFuZ2Vz
RnJvbVVzZXJJbnRlcmFjdGlvbihib29sIGhhc0hhZFVzZXJTZWxlY3Rpb25DaGFuZ2VzKQogICAg
IFNldE5lZWRzSGlkZGVuQ29udGVudEVkaXRhYmxlUXVpcmsoYm9vbCBuZWVkc0hpZGRlbkNvbnRl
bnRFZGl0YWJsZVF1aXJrKQogICAgIFNldE5lZWRzUGxhaW5UZXh0UXVpcmsoYm9vbCBuZWVkc1Bs
YWluVGV4dFF1aXJrKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCmluZGV4IDRjOTVlOWZmY2UyZTBm
MzcwNTA2MzI4MTAxYTQwMmEwNTcxNDAwMmQuLmM5Yzk2YmU4MTBjYzEzNDMxZDE1MGFhM2Y1MTk4
N2I5MWJkMjFhNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKQEAgLTIxMSw2ICsyMTEsMTEg
QEAgdm9pZCBXZWJFZGl0b3JDbGllbnQ6OmRpc2NhcmRlZENvbXBvc2l0aW9uKEZyYW1lKikKICAg
ICBtX3BhZ2UtPmRpc2NhcmRlZENvbXBvc2l0aW9uKCk7CiB9CiAKK3ZvaWQgV2ViRWRpdG9yQ2xp
ZW50OjpjYW5jZWxlZENvbXBvc2l0aW9uKCkKK3sKKyAgICBtX3BhZ2UtPmNhbmNlbGVkQ29tcG9z
aXRpb24oKTsKK30KKwogdm9pZCBXZWJFZGl0b3JDbGllbnQ6OmRpZEVuZEVkaXRpbmcoKQogewog
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IFdlYlZpZXdEaWRFbmRFZGl0aW5nTm90
aWZpY2F0aW9uKEFTQ0lJTGl0ZXJhbCgiV2ViVmlld0RpZEVuZEVkaXRpbmdOb3RpZmljYXRpb24i
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkVkaXRvckNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJFZGl0b3JDbGllbnQuaAppbmRleCAwZjFhODUyZmY3MTE5NzFiN2Y0NWU2ZGZmZWM0
OTcyM2RjYTFjNzNjLi42YjNhMjBmNTQ2Y2EyNWNkZDEyMmJiY2ZmOTJkZWQwZDQ2M2E2NjMyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVk
aXRvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50LmgKQEAgLTY1LDYgKzY1LDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IGRpZENoYW5nZVNlbGVjdGlvbkFuZFVwZGF0ZUxheW91dCgpIGZpbmFsOwogICAgIHZvaWQgdXBk
YXRlRWRpdG9yU3RhdGVBZnRlckxheW91dElmRWRpdGFiaWxpdHlDaGFuZ2VkKCkgZmluYWw7CiAg
ICAgdm9pZCBkaXNjYXJkZWRDb21wb3NpdGlvbihXZWJDb3JlOjpGcmFtZSopIGZpbmFsOworICAg
IHZvaWQgY2FuY2VsZWRDb21wb3NpdGlvbigpIGZpbmFsOwogICAgIHZvaWQgZGlkRW5kRWRpdGlu
ZygpIGZpbmFsOwogICAgIHZvaWQgd2lsbFdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJkKFdlYkNv
cmU6OlJhbmdlKikgZmluYWw7CiAgICAgdm9pZCBkaWRXcml0ZVNlbGVjdGlvblRvUGFzdGVib2Fy
ZCgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCmluZGV4IDkxMWE3MDFhNTk1ZjQxYjNiOWM3MDZjMWFkOTVlZGJiYjgyYmVlMzMuLmJmODMw
NGM2ZThhNjIyNjk3NjYzMWVlZGIwNDgwYzAxMjQxOTIzZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTQ4OTgsNyArNDg5OCw3IEBAIHZv
aWQgV2ViUGFnZTo6ZGlkQ2hhbmdlU2VsZWN0aW9uKCkKICAgICAvLyBGSVhNRTogV2UgY2FuJ3Qg
Y2FuY2VsIGNvbXBvc2l0aW9uIHdoZW4gc2VsZWN0aW9uIGNoYW5nZXMgdG8gTm9TZWxlY3Rpb24s
IGJ1dCB3ZSBwcm9iYWJseSBzaG91bGQuCiAgICAgaWYgKGZyYW1lLmVkaXRvcigpLmhhc0NvbXBv
c2l0aW9uKCkgJiYgIWZyYW1lLmVkaXRvcigpLmlnbm9yZUNvbXBvc2l0aW9uU2VsZWN0aW9uQ2hh
bmdlKCkgJiYgIWZyYW1lLnNlbGVjdGlvbigpLmlzTm9uZSgpKSB7CiAgICAgICAgIGZyYW1lLmVk
aXRvcigpLmNhbmNlbENvbXBvc2l0aW9uKCk7Ci0gICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6Q29tcG9zaXRpb25XYXNDYW5jZWxlZChlZGl0b3JTdGF0ZSkpOworICAgICAgICBk
aXNjYXJkZWRDb21wb3NpdGlvbigpOwogICAgIH0gZWxzZQogICAgICAgICBzZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OkVkaXRvclN0YXRlQ2hhbmdlZChlZGl0b3JTdGF0ZSkpOwogI2Vsc2UK
QEAgLTQ5ODMsNyArNDk4MywxMyBAQCB2b2lkIFdlYlBhZ2U6OnNlbmRQb3N0TGF5b3V0RWRpdG9y
U3RhdGVJZk5lZWRlZCgpCiAKIHZvaWQgV2ViUGFnZTo6ZGlzY2FyZGVkQ29tcG9zaXRpb24oKQog
ewotICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q29tcG9zaXRpb25XYXNDYW5jZWxl
ZChlZGl0b3JTdGF0ZSgpKSk7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpDb21w
b3NpdGlvbldhc0NhbmNlbGVkKCkpOworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
RWRpdG9yU3RhdGVDaGFuZ2VkKGVkaXRvclN0YXRlKCkpKTsKK30KKwordm9pZCBXZWJQYWdlOjpj
YW5jZWxlZENvbXBvc2l0aW9uKCkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OkNvbXBvc2l0aW9uV2FzQ2FuY2VsZWQoKSk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6c2V0TWluaW11
bUxheW91dFNpemUoY29uc3QgSW50U2l6ZSYgbWluaW11bUxheW91dFNpemUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBlMzZhYjVmMTQ4ZDU3NTVh
MzI5ZWRmNzA1YzQ3ZTRkMWJkOTk2N2ZkLi4wOTFkOGVhMmY5MTkyNmViNTZlYWY3M2U4NjhiNjg2
YTQyZTJjZTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmgKQEAgLTY1OSw2ICs2NTksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRBcHBseVN0eWxlKCk7
CiAgICAgdm9pZCBkaWRDaGFuZ2VTZWxlY3Rpb24oKTsKICAgICB2b2lkIGRpc2NhcmRlZENvbXBv
c2l0aW9uKCk7CisgICAgdm9pZCBjYW5jZWxlZENvbXBvc2l0aW9uKCk7CiAKICNpZiBQTEFURk9S
TShDT0NPQSkKICAgICB2b2lkIHJlZ2lzdGVyVUlQcm9jZXNzQWNjZXNzaWJpbGl0eVRva2Vucyhj
b25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGVsZW1lblRva2VuLCBjb25zdCBJUEM6OkRhdGFSZWZl
cmVuY2UmIHdpbmRvd1Rva2VuKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyNDc2M2UxYmJmNGRiM2YwNDBlNjM3NTkyMjEw
M2VjNWY4NzI5MzE1Li41NDgxZDU2MjAyNmM5Y2ZkOGVkYzliNTViZDY4Mjk0MmNjYjhlYTVhIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTYtMTEtMDMgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9o
c2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgU2FmYXJpIGRvZXMgbm90IGVtaXQgY29tcG9zaXRp
b24gZW5kIGlmIGJsdXJyZWQgZm9yIGRlYWQga2V5IC8gSmFwYW5lc2UgSU1FCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQzNjkKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzI5MDUwNDM5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZHMgYSBuZXcgdGVzdCB2ZXJpZnlpbmcgdGhhdCB3ZSBkaXNwYXRj
aCBgY29tcG9zaXRpb25lbmRgIGV2ZW50cyBpbiB2YXJpb3VzIGNpcmN1bXN0YW5jZXM6CisgICAg
ICAgICAgICAxLiBBZnRlciBjb21wb3NpbmcgaW4gYW4gZWRpdGFibGUgYXJlYSBhbmQgdGhlbiBm
b2N1c2luZyBhbm90aGVyIGVkaXRhYmxlIGFyZWEuCisgICAgICAgICAgICAyLiBBZnRlciBjb21w
b3NpbmcgaW4gYW4gZWRpdGFibGUgYXJlYSBhbmQgdGhlbiBibHVyKCktaW5nLgorICAgICAgICAg
ICAgMy4gQWZ0ZXIgY29tcG9zaW5nIGluIGFuIGVkaXRhYmxlIGFyZWEgYW5kIHRoZW4gY2hhbmdp
bmcgdGhlIHNlbGVjdGlvbi4KKworICAgICAgICBUaGVyZSBzaG91bGQgYmUgbm8gYmVoYXZpb3Ig
Y2hhbmdlIGZvciBvdGhlciBwbGF0Zm9ybXMsIHNvIG5vIG5ldyB0ZXN0cyBhcmUgbmVlZGVkIHRo
ZXJlIHdpdGggdGhpcyBjaGFuZ2UuCisKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9pbWUtY29tcG9z
aXRpb25lbmQtb24tc2VsZWN0aW9uLWNoYW5nZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZXZlbnRzL2ltZS1jb21wb3NpdGlvbmVuZC1vbi1zZWxlY3Rpb24tY2hhbmdlLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy1zaW11bGF0b3IvVGVzdEV4cGVjdGF0
aW9uczoKKwogMjAxNi0xMS0wMiAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4K
IAogICAgICAgICBUZXN0IGdhcmRlbmluZyBmb3IgbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW1lLWNvbXBvc2l0aW9uZW5k
LW9uLXNlbGVjdGlvbi1jaGFuZ2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvaW1lLWNvbXBvc2l0aW9uZW5kLW9uLXNlbGVjdGlvbi1jaGFuZ2UtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjBlNmIxOGEzMDVhMzhjY2YwODg1YTc0NTExMzY5ZTdlMDA2MzgxMjQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pbWUtY29tcG9zaXRpb25lbmQt
b24tc2VsZWN0aW9uLWNoYW5nZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMSBAQAorVG8gbWFu
dWFsbHkgdGVzdCwgc3RhcnQgZWRpdGluZyBhIGNvbXBvc2l0aW9uIGluIHRoZSBpbnB1dCBmaWVs
ZCBhbmQgZm9jdXMgdGhlIGNvbnRlbnRlZGl0YWJsZSB3aXRob3V0IGNvbW1pdHRpbmcgdGhlIGNv
bXBvc2l0aW9uLiBBIGNvbXBvc2l0aW9uZW5kIGV2ZW50IHNob3VsZCBiZSBsb2dnZWQsIHdpdGgg
dGhlIGV2ZW50IHRhcmdldCBiZWluZyB0aGUgaW5wdXQgZmllbGQuIE5leHQsIGluc2VydCBhIHBl
bmRpbmcgY29tcG9zaXRpb24gaW4gdGhlIGNvbnRlbnRlZGl0YWJsZSBhbmQgZm9jdXMgdGhlIGlu
cHV0LiBBIGNvbXBvc2l0aW9uZW5kIHNob3VsZCBiZSBsb2dnZWQsIHdpdGggdGhlIGV2ZW50IHRh
cmdldCBiZWluZyB0aGUgY29udGVudGVkaXRhYmxlLiBUaGVuIGluc2VydCBhIHBlbmRpbmcgY29t
cG9zaXRpb24gaW4gdGhlIGlucHV0IGZpZWxkIGFuZCBmb2N1cyB0aGUgZG9jdW1lbnQuIEEgY29t
cG9zaXRpb25lbmQgZXZlbnQgc2hvdWxkIGJlIGxvZ2dlZCB3aXRoIHRoZSB0YXJnZXQgYmVpbmcg
dGhlIGlucHV0IGZpZWxkLiBMYXN0bHksIGluc2VydCBhIHBlbmRpbmcgY29tcG9zaXRpb24gaW4g
dGhlIHJpY2ggY29udGVudGVkaXRhYmxlIGFuZCBjbGljayBhbmQgZHJhZyB0byBzZWxlY3QgYWxs
IHRoZSB0ZXh0IGluIHRoZSBjb250ZW50ZWRpdGFibGUuIEEgY29tcG9zaXRpb25lbmQgZXZlbnQg
c2hvdWxkIGJlIGZpcmVkIG9uIHRoZSBjb250ZW50ZWRpdGFibGUuCisKKworZGVmYgorCisxLiBF
ZGl0aW5nIHRoZSBwbGFpbiBpbnB1dCBmaWVsZAorRm9jdXNpbmcgdGhlIHJpY2ggY29udGVudGVk
aXRhYmxlCitQQVNTOiBEaXNwYXRjaGVkIGNvbXBvc2l0aW9uZW5kIG9uIDxJTlBVVCBpZD0icGxh
aW4iPgorCisyLiBFZGl0aW5nIHRoZSByaWNoIGNvbnRlbnRlZGl0YWJsZQorRm9jdXNpbmcgdGhl
IHBsYWluIGlucHV0IGZpZWxkCitQQVNTOiBEaXNwYXRjaGVkIGNvbXBvc2l0aW9uZW5kIG9uIDxE
SVYgaWQ9InJpY2giPgorCiszLiBFZGl0aW5nIHRoZSBwbGFpbiBpbnB1dCBmaWVsZCBhZ2Fpbgor
Qmx1cnJpbmcgdGhlIHBsYWluIGlucHV0IGZpZWxkCitQQVNTOiBEaXNwYXRjaGVkIGNvbXBvc2l0
aW9uZW5kIG9uIDxJTlBVVCBpZD0icGxhaW4iPgorCis0LiBFZGl0aW5nIHRoZSByaWNoIGNvbnRl
bnRlZGl0YWJsZSBhZ2FpbgorQ2hhbmdpbmcgc2VsZWN0aW9uIHdpdGhpbiB0aGUgcmljaCBjb250
ZW50ZWRpdGFibGUKK1BBU1M6IERpc3BhdGNoZWQgY29tcG9zaXRpb25lbmQgb24gPERJViBpZD0i
cmljaCI+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2ltZS1jb21wb3Np
dGlvbmVuZC1vbi1zZWxlY3Rpb24tY2hhbmdlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy9pbWUtY29tcG9zaXRpb25lbmQtb24tc2VsZWN0aW9uLWNoYW5nZS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmIzMjUyNzM1MTRkMDIyNjBjNzhiZDNlYTg1YzcxY2YwMzRjOWVmZTQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pbWUtY29tcG9zaXRpb25lbmQtb24tc2VsZWN0
aW9uLWNoYW5nZS5odG1sCkBAIC0wLDAgKzEsNTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8Ym9keT4KKyAgICA8cD5UbyBtYW51YWxseSB0ZXN0LCBzdGFydCBlZGl0aW5nIGEgY29tcG9z
aXRpb24gaW4gdGhlIGlucHV0IGZpZWxkIGFuZCBmb2N1cyB0aGUgY29udGVudGVkaXRhYmxlIHdp
dGhvdXQgY29tbWl0dGluZworICAgIHRoZSBjb21wb3NpdGlvbi4gQSBjb21wb3NpdGlvbmVuZCBl
dmVudCBzaG91bGQgYmUgbG9nZ2VkLCB3aXRoIHRoZSBldmVudCB0YXJnZXQgYmVpbmcgdGhlIGlu
cHV0IGZpZWxkLiBOZXh0LCBpbnNlcnQKKyAgICBhIHBlbmRpbmcgY29tcG9zaXRpb24gaW4gdGhl
IGNvbnRlbnRlZGl0YWJsZSBhbmQgZm9jdXMgdGhlIGlucHV0LiBBIGNvbXBvc2l0aW9uZW5kIHNo
b3VsZCBiZSBsb2dnZWQsIHdpdGggdGhlIGV2ZW50CisgICAgdGFyZ2V0IGJlaW5nIHRoZSBjb250
ZW50ZWRpdGFibGUuIFRoZW4gaW5zZXJ0IGEgcGVuZGluZyBjb21wb3NpdGlvbiBpbiB0aGUgaW5w
dXQgZmllbGQgYW5kIGZvY3VzIHRoZSBkb2N1bWVudC4gQQorICAgIGNvbXBvc2l0aW9uZW5kIGV2
ZW50IHNob3VsZCBiZSBsb2dnZWQgd2l0aCB0aGUgdGFyZ2V0IGJlaW5nIHRoZSBpbnB1dCBmaWVs
ZC4gTGFzdGx5LCBpbnNlcnQgYSBwZW5kaW5nIGNvbXBvc2l0aW9uIGluCisgICAgdGhlIHJpY2gg
Y29udGVudGVkaXRhYmxlIGFuZCBjbGljayBhbmQgZHJhZyB0byBzZWxlY3QgYWxsIHRoZSB0ZXh0
IGluIHRoZSBjb250ZW50ZWRpdGFibGUuIEEgY29tcG9zaXRpb25lbmQgZXZlbnQKKyAgICBzaG91
bGQgYmUgZmlyZWQgb24gdGhlIGNvbnRlbnRlZGl0YWJsZS48L3A+CisgICAgPGlucHV0IGlkPSJw
bGFpbiI+PC9pbnB1dD4KKyAgICA8ZGl2IGlkPSJyaWNoIiBjb250ZW50ZWRpdGFibGUgc3R5bGU9
ImJvcmRlcjogMXB4IGRhc2hlZCI+PC9kaXY+CisgICAgPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4K
KyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgICAgIGxldCB3cml0ZSA9
IHMgPT4gb3V0cHV0LmlubmVySFRNTCArPSBgJHtzfTxicj5gOworICAgICAgICBwbGFpbi5hZGRF
dmVudExpc3RlbmVyKCJjb21wb3NpdGlvbmVuZCIsIGxvZ0NvbXBvc2l0aW9uRW5kKTsKKyAgICAg
ICAgcmljaC5hZGRFdmVudExpc3RlbmVyKCJjb21wb3NpdGlvbmVuZCIsIGxvZ0NvbXBvc2l0aW9u
RW5kKTsKKyAgICAgICAgcGxhaW4uZm9jdXMoKTsKKworICAgICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIgJiYgd2luZG93LnRleHRJbnB1dENvbnRyb2xsZXIpIHsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpOworCisgICAgICAgICAgICB3cml0ZSgiIik7CisgICAgICAgICAg
ICB3cml0ZSgiMS4gRWRpdGluZyB0aGUgcGxhaW4gaW5wdXQgZmllbGQiKTsKKyAgICAgICAgICAg
IHRleHRJbnB1dENvbnRyb2xsZXIuc2V0TWFya2VkVGV4dCgiYSIsIDEsIDApOworICAgICAgICAg
ICAgd3JpdGUoIiAgIEZvY3VzaW5nIHRoZSByaWNoIGNvbnRlbnRlZGl0YWJsZSIpOworICAgICAg
ICAgICAgcmljaC5mb2N1cygpOworCisgICAgICAgICAgICB3cml0ZSgiIik7CisgICAgICAgICAg
ICB3cml0ZSgiMi4gRWRpdGluZyB0aGUgcmljaCBjb250ZW50ZWRpdGFibGUiKTsKKyAgICAgICAg
ICAgIHRleHRJbnB1dENvbnRyb2xsZXIuc2V0TWFya2VkVGV4dCgiYiIsIDEsIDApOworICAgICAg
ICAgICAgd3JpdGUoIiAgIEZvY3VzaW5nIHRoZSBwbGFpbiBpbnB1dCBmaWVsZCIpOworICAgICAg
ICAgICAgcGxhaW4uZm9jdXMoKTsKKworICAgICAgICAgICAgd3JpdGUoIiIpOworICAgICAgICAg
ICAgd3JpdGUoIjMuIEVkaXRpbmcgdGhlIHBsYWluIGlucHV0IGZpZWxkIGFnYWluIik7CisgICAg
ICAgICAgICB0ZXh0SW5wdXRDb250cm9sbGVyLnNldE1hcmtlZFRleHQoImMiLCAxLCAwKTsKKyAg
ICAgICAgICAgIHdyaXRlKCIgICBCbHVycmluZyB0aGUgcGxhaW4gaW5wdXQgZmllbGQiKTsKKyAg
ICAgICAgICAgIHBsYWluLmJsdXIoKTsKKworICAgICAgICAgICAgd3JpdGUoIiIpOworICAgICAg
ICAgICAgd3JpdGUoIjQuIEVkaXRpbmcgdGhlIHJpY2ggY29udGVudGVkaXRhYmxlIGFnYWluIik7
CisgICAgICAgICAgICByaWNoLmZvY3VzKCk7CisgICAgICAgICAgICB0ZXh0SW5wdXRDb250cm9s
bGVyLnNldE1hcmtlZFRleHQoImQiLCAxLCAwKTsKKyAgICAgICAgICAgIHRleHRJbnB1dENvbnRy
b2xsZXIuc2V0TWFya2VkVGV4dCgiZGUiLCAyLCAwKTsKKyAgICAgICAgICAgIHRleHRJbnB1dENv
bnRyb2xsZXIuc2V0TWFya2VkVGV4dCgiZGVmIiwgMywgMCk7CisgICAgICAgICAgICB3cml0ZSgi
ICAgQ2hhbmdpbmcgc2VsZWN0aW9uIHdpdGhpbiB0aGUgcmljaCBjb250ZW50ZWRpdGFibGUiKTsK
KyAgICAgICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJTZWxlY3RBbGwiKTsKKyAgICAgICAg
fQorCisgICAgICAgIGZ1bmN0aW9uIGxvZ0NvbXBvc2l0aW9uRW5kKGV2ZW50KQorICAgICAgICB7
CisgICAgICAgICAgICB3cml0ZShgUEFTUzogRGlzcGF0Y2hlZCBjb21wb3NpdGlvbmVuZCBvbiAm
bHQ7JHtldmVudC50YXJnZXQudGFnTmFtZX0gaWQ9IiR7ZXZlbnQudGFyZ2V0LmlkfSImZ3Q7YCk7
CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3IvVGVzdEV4cGVjdGF0aW9ucyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3IvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAw
NmNjOTYzMDA5ZDg0NGUwY2EwMGUyMTAzODkyYzUyMmZhZWVmYjkwLi4yY2FhZmE4ZmVmMmM4ZThk
ZTk5YmFiNTdjZWI3YWMxYWUxNWVmNzIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9pb3Mtc2ltdWxhdG9yL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vaW9zLXNpbXVsYXRvci9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMjAxLDYgKzEyMDEsNyBAQCBm
YXN0L2V2ZW50cy9mb2N1cy1jaGFuZ2UtY3Jhc2gyLmh0bWwgWyBGYWlsdXJlIF0KIGZhc3QvZXZl
bnRzL2ZyYW1lLXNjcm9sbC1mYWtlLW1vdXNlLW1vdmUuaHRtbCBbIEZhaWx1cmUgXQogZmFzdC9l
dmVudHMvZnJhbWUtdGFiLWZvY3VzLmh0bWwgWyBGYWlsdXJlIF0KIGZhc3QvZXZlbnRzL2ltZS1j
b21wb3NpdGlvbi1ldmVudHMtMDAxLmh0bWwgWyBGYWlsdXJlIF0KK2Zhc3QvZXZlbnRzL2ltZS1j
b21wb3NpdGlvbmVuZC1vbi1zZWxlY3Rpb24tY2hhbmdlLmh0bWwgWyBGYWlsdXJlIF0KIGZhc3Qv
ZXZlbnRzL2lucHV0VGV4dC1uZXZlci1maXJlZC1vbi1rZXlkb3duLWNhbmNlbC5odG1sIFsgRmFp
bHVyZSBdCiBmYXN0L2V2ZW50cy9pbnB1dC1ldmVudHMtZHJhZy1hbmQtZHJvcC5odG1sIFsgRmFp
bHVyZSBdCiBmYXN0L2V2ZW50cy9pbnB1dC1ldmVudHMtaW5zZXJ0LWJ5LWRyb3AuaHRtbCBbIEZh
aWx1cmUgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>293918</attachid>
            <date>2016-11-04 13:25:38 -0700</date>
            <delta_ts>2016-11-04 16:13:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164369-20161104132136.patch</filename>
            <type>text/plain</type>
            <size>25197</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4Mjg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDlkYTIwMDg4MDRlOGQx
MWVkNDQxOWQxZGYxMmZhZjEwMjQ2YTdmMy4uYjcyMjAzYWMyNTY0OTg4M2UyMGQ2ODY4MTllZDk3
N2QxMjY4YjMyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE2LTExLTA0ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFNhZmFyaSBkb2Vz
IG5vdCBlbWl0IGNvbXBvc2l0aW9uIGVuZCBpZiBibHVycmVkIGZvciBkZWFkIGtleSAvIEphcGFu
ZXNlIElNRQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTY0MzY5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yOTA1MDQzOT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBPbiBNYWMsIF9iZWZvcmVfIGNoYW5n
aW5nIHNlbGVjdGlvbiwgdHJ5IHRvIGZpbmFsaXplIHRoZSBjb21wb3NpdGlvbiBieSBjYWxsaW5n
IEVkaXRvcjo6Y2FuY2VsQ29tcG9zaXRpb24gZWFybHkuCisgICAgICAgIFRoaXMgaXMgYmVjYXVz
ZSB0aGUgZm9jdXNlZCBlbGVtZW50IG1heSBoYXZlIGNoYW5nZWQgYWZ0ZXIgcGVyZm9ybWluZyB0
aGUgc2VsZWN0aW9uIGNoYW5nZSwgc28gd2Ugd291bGQKKyAgICAgICAgb3RoZXJ3aXNlIGJlIGRp
c3BhdGNoaW5nIHRoZSBgY29tcG9zaXRpb25lbmRgIHRvIHRoZSBuZXcgZm9jdXNlZCBlbGVtZW50
IChvciBubyBjb21wb3NpdGlvbmVuZCBhdCBhbGwpIGluc3RlYWQKKyAgICAgICAgb2YgdGhlIGVs
ZW1lbnQgd2l0aCB0aGUgY29tcG9zaXRpb24uCisKKyAgICAgICAgRG9pbmcgdGhpcyBhbGxvd3Mg
dXMgdG8gbWF0Y2ggQ2hyb21lIGFuZCBGaXJlZm94IGJlaGF2aW9yLiBBZnRlciBjYW5jZWxpbmcg
dGhlIGNvbXBvc2l0aW9uLCB3ZSB0aGVuIG5lZWQgdG8gYWxzbworICAgICAgICBjbGVhciB0aGUg
c3lzdGVtIElNRSBzdGF0ZS4gV2UgZG8gdGhpcyBvbiBNYWMgV0sxL1dLMiB0aHJvdWdoIHRoZSBj
YW5jZWxDb21wb3NpdGlvbigpIGNvZGVwYXRoLCB3aGljaCBlbmRzIHVwCisgICAgICAgIGNhbGxp
bmcgaW50byAtZGlzY2FyZE1hcmtlZFRleHQsIHdoaWNoIHJlc2V0cyB0aGUgbWFya2VkIHRleHQg
c3RhdGUuIFNvbWUgbWlub3IgcmVmYWN0b3Jpbmcgd2FzIHBlcmZvcm1lZCB0bworICAgICAgICBh
Y2NvbXBsaXNoIHRoaXMgLS0gY3VycmVudGx5LCBkaXNjYXJkZWRDb21wb3NpdGlvbiBzZW5kcyBh
IENvbXBvc2l0aW9uV2FzQ2FuY2VsZWQgbWVzc2FnZSBvdmVyIHRvIHRoZSBVSSBwcm9jZXNzCisg
ICAgICAgIHRoYXQgZGlzY2FyZHMgdGhlIG1hcmtlZCB0ZXh0LCBhbmQgdGhlbiB1cGRhdGVzIHRo
ZSBlZGl0b3Igc3RhdGUuIFRoaXMgcGF0Y2ggc3BsaXRzIHRoaXMgaW50byB0d28gc2VwYXJhdGUK
KyAgICAgICAgc3RlcHMgLS0gc2VlIHRoZSBXZWJLaXQyIENoYW5nZUxvZyBmb3IgbW9yZSBkZXRh
aWxzLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZXZlbnRzL2ltZS1jb21wb3NpdGlvbmVuZC1vbi1z
ZWxlY3Rpb24tY2hhbmdlLmh0bWwKKworICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6c2VsZWN0aW9uV2lsbENoYW5nZSk6CisgICAgICAgICog
ZWRpdGluZy9FZGl0b3IuaDoKKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0VXBk
YXRpbmdBcHBlYXJhbmNlKToKKyAgICAgICAgKiBlZGl0aW5nL21hYy9FZGl0b3JNYWMubW06Cisg
ICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnNlbGVjdGlvbldpbGxDaGFuZ2UpOgorICAgICAgICAq
IGxvYWRlci9FbXB0eUNsaWVudHMuaDoKKyAgICAgICAgKiBwYWdlL0VkaXRvckNsaWVudC5oOgor
CiAyMDE2LTExLTAyICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAg
ICAgQWRkIGxvZ2dpbmcgZm9yICJXZWJLaXQgZW5jb3VudGVyZWQgYW4gaW50ZXJuYWwgZXJyb3Ii
IG1lc3NhZ2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggYTk0ZDU3Nzg2YmJkNDNlNjU1ZTUzOTI4NzFi
NWY1NDAxNjQxZWIxNS4uZDNiZTM3NjZhZjk4Njc1NGZiN2Y4OWU3YjM3NTk4NmRmYmE4MDU4MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE2LTExLTA0ICBXZW5zb24gSHNp
ZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFNhZmFyaSBkb2VzIG5vdCBl
bWl0IGNvbXBvc2l0aW9uIGVuZCBpZiBibHVycmVkIGZvciBkZWFkIGtleSAvIEphcGFuZXNlIElN
RQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0MzY5
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yOTA1MDQzOT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIGNhbmNlbGluZyBhIGNvbXBvc2l0aW9u
LCBtYWtlIHN1cmUgdGhhdCB3ZSBjbGVhciB0aGUgc3lzdGVtIElNRSBzdGF0ZS4KKworICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbToKKyAgICAgICAgKFdlYkVkaXRvckNsaWVudDo6Y2Fu
Y2VsZWRDb21wb3NpdGlvbik6CisKIDIwMTYtMTEtMDIgIFJvbWFpbiBCZWxsZXNzb3J0ICA8cm9t
YWluLmJlbGxlc3NvcnRAY3JmLmNhbm9uLmZyPgogCiAgICAgICAgIFtSZWFkYWJsZSBTdHJlYW1z
IEFQSV0gRW5hYmxlIGNyZWF0aW9uIG9mIFJlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2lu
L0NoYW5nZUxvZwppbmRleCA2MmZjODM0OTI3OThmZDQ1YmZmYzU1NzFiNDA3OTA4YjMyOTYwNTIy
Li4zNzExNDIyNmM2ODZkZmIzZjhkZGQ0MzliNTAyOTUwZDIzMzU0YzI3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTYtMTEtMDQgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9o
c2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgU2FmYXJpIGRvZXMgbm90IGVtaXQgY29tcG9zaXRp
b24gZW5kIGlmIGJsdXJyZWQgZm9yIGRlYWQga2V5IC8gSmFwYW5lc2UgSU1FCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQzNjkKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzI5MDUwNDM5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBhIHN0dWIgaW1wbGVtZW50YXRpb24gb2YgY2FuY2VsZWRDb21w
b3NpdGlvbi4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHA6
CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OmNhbmNlbGVkQ29tcG9zaXRpb24pOgorICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgorCiAyMDE2LTExLTAxICBSeW9z
dWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSBDVVNUT01fRUxF
TUVOVFMgYnVpbGQgZmxhZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDY5NjJlYzg1MTcyNGI0YTE0YzQ1ZjY0YjE3
ZDJmOTQyZTFkNDhlY2UuLjVhZmQyY2YwMjViNmI3ZGYyYmQ2MmU3NWFkZmZjOWQyNjY0YzllZmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxNi0xMS0wNCAgV2Vuc29uIEhzaWVoICA8
d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBTYWZhcmkgZG9lcyBub3QgZW1pdCBj
b21wb3NpdGlvbiBlbmQgaWYgYmx1cnJlZCBmb3IgZGVhZCBrZXkgLyBKYXBhbmVzZSBJTUUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDM2OQorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vMjkwNTA0Mzk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgU3BsaXQgV2ViUGFnZTo6ZGlzY2FyZGVkQ29tcG9zaXRp
b24gaW50byB0d28gc3RlcHMsIHdoZXJlIHdlIGZpcnN0IGRpc2NhcmQgbWFya2VkIHRleHQgYW5k
IHRoZW4gdXBkYXRlIHRoZQorICAgICAgICBlZGl0b3Igc3RhdGUuIFRoaXMgYWxsb3dzIHRoZSBj
b2RlcGF0aCB3aGVyZSB3ZSBjYW5jZWwgdGhlIGNvbXBvc2l0aW9uIGVhcmx5IChiZWZvcmUgc2V0
dGluZyB0aGUgc2VsZWN0aW9uKSB0bworICAgICAgICBkaXNjYXJkIG1hcmtlZCB0ZXh0IHdpdGhv
dXQgYWxzbyBmb3JjaW5nIGFuIGVkaXRvciBzdGF0ZSB1cGRhdGUgYXQgdGhlIHNhbWUgdGltZS4g
VGhlIGVkaXRvciBzdGF0ZSBpcyBsYXRlcgorICAgICAgICB1cGRhdGVkIGluIFdlYlBhZ2U6OmRp
ZENoYW5nZVNlbGVjdGlvbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNvbXBvc2l0aW9uV2FzQ2FuY2VsZWQp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRWRpdG9y
Q2xpZW50OjpjYW5jZWxlZENvbXBvc2l0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkQ2hhbmdlU2VsZWN0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlzY2FyZGVkQ29tcG9zaXRpb24pOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjYW5jZWxlZENvbXBvc2l0aW9uKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorCiAyMDE2LTExLTAyICBEYXZpZCBLaWx6
ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGxvZ2dpbmcgZm9yICJXZWJL
aXQgZW5jb3VudGVyZWQgYW4gaW50ZXJuYWwgZXJyb3IiIG1lc3NhZ2VzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRvci5jcHAKaW5kZXggYzczNGNhZjI5NDNlNDFkNDA5NDczZWNlOWUxNTk0OWU0ZTEyZmU1
Ny4uMTU4OWM0NzJhMDFmYzZhOGNmZDZjMzI5YjQzOTdkNTZjMmRlNTljOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yLmNwcApAQCAtMzI0NCw2ICszMjQ0LDEyIEBAIHZvaWQgRWRpdG9yOjpzZXRN
YXJrZWRUZXh0TWF0Y2hlc0FyZUhpZ2hsaWdodGVkKGJvb2wgZmxhZykKICAgICBkb2N1bWVudCgp
Lm1hcmtlcnMoKS5yZXBhaW50TWFya2VycyhEb2N1bWVudE1hcmtlcjo6VGV4dE1hdGNoKTsKIH0K
IAorI2lmICFQTEFURk9STShNQUMpCit2b2lkIEVkaXRvcjo6c2VsZWN0aW9uV2lsbENoYW5nZSgp
Cit7Cit9CisjZW5kaWYKKwogdm9pZCBFZGl0b3I6OnJlc3BvbmRUb0NoYW5nZWRTZWxlY3Rpb24o
Y29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25PcHRp
b25zIG9wdGlvbnMpCiB7CiAjaWYgUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgK
aW5kZXggODY3MGFlM2EzOGMwMjg1YTIwYTIxZWNkNDEwNTJjYTY1MDczNTBhNi4uZTJiYmM0OTk2
MGE3ZmZlMWY4YjM3ODM1YTI2ZjM3YjJiNzc4MzlmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5o
CkBAIC0zOTAsNiArMzkwLDcgQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgSW50UmVj
dCBmaXJzdFJlY3RGb3JSYW5nZShSYW5nZSopIGNvbnN0OwogCisgICAgdm9pZCBzZWxlY3Rpb25X
aWxsQ2hhbmdlKCk7CiAgICAgdm9pZCByZXNwb25kVG9DaGFuZ2VkU2VsZWN0aW9uKGNvbnN0IFZp
c2libGVTZWxlY3Rpb24mIG9sZFNlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OlNldFNlbGVjdGlv
bk9wdGlvbnMpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdXBkYXRlRWRpdG9yVUlOb3dJZlNj
aGVkdWxlZCgpOwogICAgIGJvb2wgc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKGNvbnN0IFZpc2libGVT
ZWxlY3Rpb24mIG9sZFNlbGVjdGlvbiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0
aW9uLCBFQWZmaW5pdHksIGJvb2wgc3RpbGxTZWxlY3RpbmcpIGNvbnN0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAppbmRleCBiNTdiZTZhZjU2ZTM1NGNkMzk0NDc0
ZmIxNjYzYjk2NTNhOWE4MDVjLi5jYTRkYmNhZjYzMjQ2M2U4OWEyZWMxMmI1MjE5ZTVmOGZiY2I1
ZGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcApAQCAtMzA1
LDEzICszMDUsMTcgQEAgYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91dFVw
ZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW8KICAgICAgICAgY2xlYXJUeXBp
bmdTdHlsZSgpOwogCiAgICAgVmlzaWJsZVNlbGVjdGlvbiBvbGRTZWxlY3Rpb24gPSBtX3NlbGVj
dGlvbjsKKyAgICBib29sIHNlbGVjdGlvbnNBcmVFcXVhbCA9IG9sZFNlbGVjdGlvbiA9PSBuZXdT
ZWxlY3Rpb247CisgICAgaWYgKCFzZWxlY3Rpb25zQXJlRXF1YWwpCisgICAgICAgIG1fZnJhbWUt
PmVkaXRvcigpLnNlbGVjdGlvbldpbGxDaGFuZ2UoKTsKKwogICAgIG1fc2VsZWN0aW9uID0gbmV3
U2VsZWN0aW9uOwogCiAgICAgLy8gU2VsZWN0aW9uIG9mZnNldHMgc2hvdWxkIGluY3JlYXNlIHdo
ZW4gTEYgaXMgaW5zZXJ0ZWQgYmVmb3JlIHRoZSBjYXJldCBpbiBJbnNlcnRMaW5lQnJlYWtDb21t
YW5kLiBTZWUgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzU2MDYxPi4KICAgICBpZiAoSFRNTFRleHRG
b3JtQ29udHJvbEVsZW1lbnQqIHRleHRDb250cm9sID0gZW5jbG9zaW5nVGV4dEZvcm1Db250cm9s
KG5ld1NlbGVjdGlvbi5zdGFydCgpKSkKICAgICAgICAgdGV4dENvbnRyb2wtPnNlbGVjdGlvbkNo
YW5nZWQob3B0aW9ucyAmIEZpcmVTZWxlY3RFdmVudCk7CiAKLSAgICBpZiAob2xkU2VsZWN0aW9u
ID09IG5ld1NlbGVjdGlvbikKKyAgICBpZiAoc2VsZWN0aW9uc0FyZUVxdWFsKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKICAgICBzZXRDYXJldFJlY3ROZWVkc1VwZGF0ZSgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tCmluZGV4IGU4MDNkZmNjZjJkMWM2ZTlmYmI2MWQ0
ZTE5N2QwZDAzNDUwZGUwMDIuLjVlN2VhZWFiNDYxMTgyOGUxMWIzYTJlN2Q5YTJmNGQxMjAyN2Y5
YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0VkaXRvck1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMubW0KQEAgLTQyOCw2ICs0
MjgsMTUgQEAgdm9pZCBFZGl0b3I6OmZpbGxJblVzZXJWaXNpYmxlRm9ybShQYXN0ZWJvYXJkVVJM
JiBwYXN0ZWJvYXJkVVJMKQogICAgIHBhc3RlYm9hcmRVUkwudXNlclZpc2libGVGb3JtID0gY2xp
ZW50KCktPnVzZXJWaXNpYmxlU3RyaW5nKHBhc3RlYm9hcmRVUkwudXJsKTsKIH0KIAordm9pZCBF
ZGl0b3I6OnNlbGVjdGlvbldpbGxDaGFuZ2UoKQoreworICAgIGlmICghaGFzQ29tcG9zaXRpb24o
KSB8fCBpZ25vcmVDb21wb3NpdGlvblNlbGVjdGlvbkNoYW5nZSgpIHx8IG1fZnJhbWUuc2VsZWN0
aW9uKCkuaXNOb25lKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGNhbmNlbENvbXBvc2l0aW9u
KCk7CisgICAgY2xpZW50KCktPmNhbmNlbGVkQ29tcG9zaXRpb24oKTsKK30KKwogU3RyaW5nIEVk
aXRvcjo6cGxhaW5UZXh0RnJvbVBhc3RlYm9hcmQoY29uc3QgUGFzdGVib2FyZFBsYWluVGV4dCYg
dGV4dCkKIHsKICAgICBTdHJpbmcgc3RyaW5nID0gdGV4dC50ZXh0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0VtcHR5Q2xpZW50cy5oCmluZGV4IDY2MGIxMmY4NjNjODM4NjYxZmQyNzAxOWMwNjEzMzM5YmE0
M2ZlMzQuLjhiZTc3YWJkNzM4NjFmYTg5NDY0OTY2MmM2NTU2NzBmNzYzMzBhZDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTQ2OCw2ICs0NjgsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBkaWRDaGFuZ2VTZWxlY3Rpb25BbmRVcGRhdGVMYXlvdXQoKSBvdmVycmlkZSB7IH0K
ICAgICB2b2lkIHVwZGF0ZUVkaXRvclN0YXRlQWZ0ZXJMYXlvdXRJZkVkaXRhYmlsaXR5Q2hhbmdl
ZCgpIG92ZXJyaWRlIHsgfQogICAgIHZvaWQgZGlzY2FyZGVkQ29tcG9zaXRpb24oRnJhbWUqKSBv
dmVycmlkZSB7IH0KKyAgICB2b2lkIGNhbmNlbGVkQ29tcG9zaXRpb24oKSBvdmVycmlkZSB7IH0K
ICAgICB2b2lkIGRpZEVuZEVkaXRpbmcoKSBvdmVycmlkZSB7IH0KICAgICB2b2lkIHdpbGxXcml0
ZVNlbGVjdGlvblRvUGFzdGVib2FyZChSYW5nZSopIG92ZXJyaWRlIHsgfQogICAgIHZvaWQgZGlk
V3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9hcmQoKSBvdmVycmlkZSB7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Vk
aXRvckNsaWVudC5oCmluZGV4IDRmNmE5ODU5YzgzY2NlNGU0MzNiZDA3ODYyMGE0MzA5ZjQ0NTE3
YTcuLmViMWE0MmUyZWVkMDNhNTE0ZDEyMzYwOGJjZTczYjRlMmQ1Njc4MGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9FZGl0b3JDbGllbnQuaApAQCAtMTAyLDYgKzEwMiw3IEBAIHB1YmxpYzoKICAgICAvLyBO
b3RpZnkgYW4gaW5wdXQgbWV0aG9kIHRoYXQgYSBjb21wb3NpdGlvbiB3YXMgdm9sdW50YXJpbHkg
ZGlzY2FyZGVkIGJ5IFdlYkNvcmUsIHNvIHRoYXQgaXQgY291bGQgY2xlYW4gdXAgdG9vLgogICAg
IC8vIFRoaXMgZnVuY3Rpb24gaXMgbm90IGNhbGxlZCB3aGVuIGEgY29tcG9zaXRpb24gaXMgY2xv
c2VkIHBlciBhIHJlcXVlc3QgZnJvbSBhbiBpbnB1dCBtZXRob2QuCiAgICAgdmlydHVhbCB2b2lk
IGRpc2NhcmRlZENvbXBvc2l0aW9uKEZyYW1lKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjYW5j
ZWxlZENvbXBvc2l0aW9uKCkgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyVW5kb1N0
ZXAoUGFzc1JlZlB0cjxVbmRvU3RlcD4pID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJS
ZWRvU3RlcChQYXNzUmVmUHRyPFVuZG9TdGVwPikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAppbmRleCAwN2E1ZWRjZDk0MDk1
MDZlNWFkZDczY2U2YmJmNGRiYTM2OTcwN2Y0Li4xMmVlZTJiMmJjNWZhMGE2YWYyNTFlYTU3NDYz
YjVmZWIyNDlmNzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJFZGl0b3JDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJFZGl0b3JDbGllbnQuaApAQCAtMTEzLDYgKzExMyw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBkaWRDaGFuZ2VTZWxlY3Rpb25BbmRVcGRhdGVMYXlvdXQoKSBmaW5hbCB7IH0KICAgICB2b2lk
IHVwZGF0ZUVkaXRvclN0YXRlQWZ0ZXJMYXlvdXRJZkVkaXRhYmlsaXR5Q2hhbmdlZCgpIGZpbmFs
OwogICAgIHZvaWQgZGlzY2FyZGVkQ29tcG9zaXRpb24oV2ViQ29yZTo6RnJhbWUqKSBmaW5hbDsK
KyAgICB2b2lkIGNhbmNlbGVkQ29tcG9zaXRpb24oKSBmaW5hbDsKIAogICAgIHZvaWQgcmVnaXN0
ZXJVbmRvU3RlcChQYXNzUmVmUHRyPFdlYkNvcmU6OlVuZG9TdGVwPikgZmluYWw7CiAgICAgdm9p
ZCByZWdpc3RlclJlZG9TdGVwKFBhc3NSZWZQdHI8V2ViQ29yZTo6VW5kb1N0ZXA+KSBmaW5hbDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNs
aWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5tbQppbmRleCBkYTQ5ZGE5ODJjN2U3NDlmY2JkNDlmYTk0MGE2OWI1MmI0ODA3MjcxLi5jZTQ4
NDM2Mzg4MGNjODc1YWNhMmYwMWJiMzExZTRkM2U0MDhlMzlmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KKysrIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCkBAIC0zNzUsNiAr
Mzc1LDEzIEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpkaXNjYXJkZWRDb21wb3NpdGlvbihGcmFt
ZSopCiAgICAgLy8gVGhlIGVmZmVjdHMgb2YgdGhpcyBmdW5jdGlvbiBhcmUgY3VycmVudGx5IGFj
aGlldmVkIHZpYSAtW1dlYkhUTUxWaWV3IF91cGRhdGVTZWxlY3Rpb25Gb3JJbnB1dE1hbmFnZXJd
LgogfQogCit2b2lkIFdlYkVkaXRvckNsaWVudDo6Y2FuY2VsZWRDb21wb3NpdGlvbigpCit7Cisj
aWYgIVBMQVRGT1JNKElPUykKKyAgICBbW05TVGV4dElucHV0Q29udGV4dCBjdXJyZW50SW5wdXRD
b250ZXh0XSBkaXNjYXJkTWFya2VkVGV4dF07CisjZW5kaWYKK30KKwogdm9pZCBXZWJFZGl0b3JD
bGllbnQ6OmRpZEVuZEVkaXRpbmcoKQogewogI2lmICFQTEFURk9STShJT1MpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwIGIv
U291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAppbmRl
eCBjMzc0MTM5NjMwZDJjMTIyMTQyMzQwY2FiZmJhMTZhOWVhMzI5ZGUzLi5mOGI5MDhkY2JhYjE4
MjY3NGVlMjIzOWYyMWM0YzNmYWYzMGZhOGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dp
bi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
d2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKQEAgLTI0Miw2ICsyNDIsMTEg
QEAgdm9pZCBXZWJFZGl0b3JDbGllbnQ6OmRpc2NhcmRlZENvbXBvc2l0aW9uKEZyYW1lKikKICAg
ICBub3RJbXBsZW1lbnRlZCgpOwogfQogCit2b2lkIFdlYkVkaXRvckNsaWVudDo6Y2FuY2VsZWRD
b21wb3NpdGlvbigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwogdm9pZCBXZWJFZGl0
b3JDbGllbnQ6OmRpZEVuZEVkaXRpbmcoKQogewogICAgIHN0YXRpYyBfYnN0cl90IHdlYlZpZXdE
aWRFbmRFZGl0aW5nTm90aWZpY2F0aW9uTmFtZShXZWJWaWV3RGlkRW5kRWRpdGluZ05vdGlmaWNh
dGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5oCmluZGV4IDRmZjBhYmZmZmY4Nzg5ZmRkNmQwZjUxNjA5M2MxOTUyNGJlOTVhMTEu
LjU5NGM0OGQzYzVhNjQ4MzhjNDk0OTdmNjY0Y2RlNDJlNTg0MDJmYjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCkBAIC01OCw2
ICs1OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVzcG9uZFRvQ2hhbmdlZFNlbGVj
dGlvbihXZWJDb3JlOjpGcmFtZSopOwogICAgIHZvaWQgZGlkQ2hhbmdlU2VsZWN0aW9uQW5kVXBk
YXRlTGF5b3V0KCkgZmluYWwgeyB9CiAgICAgdm9pZCB1cGRhdGVFZGl0b3JTdGF0ZUFmdGVyTGF5
b3V0SWZFZGl0YWJpbGl0eUNoYW5nZWQoKSBmaW5hbCB7IH0gCisgICAgdm9pZCBjYW5jZWxlZENv
bXBvc2l0aW9uKCkgZmluYWw7CiAgICAgdm9pZCBkaXNjYXJkZWRDb21wb3NpdGlvbihXZWJDb3Jl
OjpGcmFtZSopIGZpbmFsOwogCiAgICAgYm9vbCBzaG91bGREZWxldGVSYW5nZShXZWJDb3JlOjpS
YW5nZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCAy
YjRiMDUxZGY4MmI3NTIyMWVmNDVhMDI0MzcyNzZjOTExMmExODJmLi40OWZkYjNlNjI5MTY3Y2Mx
ODJjYTc1YTQ3MTdiZjRlNDE2NGRkMWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcApAQCAtNDM2NCwxMiArNDM2NCwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
YmFja0ZvcndhcmRGb3J3YXJkTGlzdENvdW50KGludDMyX3QmIGNvdW50KQogICAgIGNvdW50ID0g
bV9iYWNrRm9yd2FyZExpc3QtPmZvcndhcmRMaXN0Q291bnQoKTsKIH0KIAotdm9pZCBXZWJQYWdl
UHJveHk6OmNvbXBvc2l0aW9uV2FzQ2FuY2VsZWQoY29uc3QgRWRpdG9yU3RhdGUmIGVkaXRvclN0
YXRlKQordm9pZCBXZWJQYWdlUHJveHk6OmNvbXBvc2l0aW9uV2FzQ2FuY2VsZWQoKQogewogI2lm
IFBMQVRGT1JNKENPQ09BKQogICAgIG1fcGFnZUNsaWVudC5ub3RpZnlJbnB1dENvbnRleHRBYm91
dERpc2NhcmRlZENvbXBvc2l0aW9uKCk7CiAjZW5kaWYKLSAgICBlZGl0b3JTdGF0ZUNoYW5nZWQo
ZWRpdG9yU3RhdGUpOwogfQogCiAvLyBVbmRvIG1hbmFnZW1lbnQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCAyMWRiNTkyMDE5YTA3M2FlOWY4ZTE1ZDVmMjcyMWUy
ZjFhMWJmNDM1Li5iN2IxZDVlMzA0Nzc5ZWRhMDRkOGQyMGUzZDlmMDljMGQ5MWIzODllIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xMzA3LDcgKzEzMDcsNyBA
QCBwcml2YXRlOgogI2VuZGlmCiAKICAgICB2b2lkIGVkaXRvclN0YXRlQ2hhbmdlZChjb25zdCBF
ZGl0b3JTdGF0ZSYpOwotICAgIHZvaWQgY29tcG9zaXRpb25XYXNDYW5jZWxlZChjb25zdCBFZGl0
b3JTdGF0ZSYpOworICAgIHZvaWQgY29tcG9zaXRpb25XYXNDYW5jZWxlZCgpOwogICAgIHZvaWQg
c2V0SGFzSGFkU2VsZWN0aW9uQ2hhbmdlc0Zyb21Vc2VySW50ZXJhY3Rpb24oYm9vbCk7CiAgICAg
dm9pZCBzZXROZWVkc0hpZGRlbkNvbnRlbnRFZGl0YWJsZVF1aXJrKGJvb2wpOwogICAgIHZvaWQg
c2V0TmVlZHNQbGFpblRleHRRdWlyayhib29sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDQ3MGE4MGEzYTA3MDM2M2Y4ODBj
NDdjZmNhMWVhYWRkOGNiN2EwMWYuLjgwOTllMTEwYTZhOGZiN2NmNDk1MThiOTU2ZTY1NjA5MzUy
ZTEwNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
bWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5t
ZXNzYWdlcy5pbgpAQCAtMjM1LDcgKzIzNSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7
CiAKICAgICAjIEVkaXRvciBub3RpZmljYXRpb25zCiAgICAgRWRpdG9yU3RhdGVDaGFuZ2VkKHN0
cnVjdCBXZWJLaXQ6OkVkaXRvclN0YXRlIGVkaXRvclN0YXRlKQotICAgIENvbXBvc2l0aW9uV2Fz
Q2FuY2VsZWQoc3RydWN0IFdlYktpdDo6RWRpdG9yU3RhdGUgZWRpdG9yU3RhdGUpCisgICAgQ29t
cG9zaXRpb25XYXNDYW5jZWxlZCgpCiAgICAgU2V0SGFzSGFkU2VsZWN0aW9uQ2hhbmdlc0Zyb21V
c2VySW50ZXJhY3Rpb24oYm9vbCBoYXNIYWRVc2VyU2VsZWN0aW9uQ2hhbmdlcykKICAgICBTZXRO
ZWVkc0hpZGRlbkNvbnRlbnRFZGl0YWJsZVF1aXJrKGJvb2wgbmVlZHNIaWRkZW5Db250ZW50RWRp
dGFibGVRdWlyaykKICAgICBTZXROZWVkc1BsYWluVGV4dFF1aXJrKGJvb2wgbmVlZHNQbGFpblRl
eHRRdWlyaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAppbmRleCA0Yzk1ZTlmZmNlMmUwZjM3MDUw
NjMyODEwMWE0MDJhMDU3MTQwMDJkLi5jOWM5NmJlODEwY2MxMzQzMWQxNTBhYTNmNTE5ODdiOTFi
ZDIxYTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkVkaXRvckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCkBAIC0yMTEsNiArMjExLDExIEBAIHZv
aWQgV2ViRWRpdG9yQ2xpZW50OjpkaXNjYXJkZWRDb21wb3NpdGlvbihGcmFtZSopCiAgICAgbV9w
YWdlLT5kaXNjYXJkZWRDb21wb3NpdGlvbigpOwogfQogCit2b2lkIFdlYkVkaXRvckNsaWVudDo6
Y2FuY2VsZWRDb21wb3NpdGlvbigpCit7CisgICAgbV9wYWdlLT5jYW5jZWxlZENvbXBvc2l0aW9u
KCk7Cit9CisKIHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpkaWRFbmRFZGl0aW5nKCkKIHsKICAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBXZWJWaWV3RGlkRW5kRWRpdGluZ05vdGlmaWNh
dGlvbihBU0NJSUxpdGVyYWwoIldlYlZpZXdEaWRFbmRFZGl0aW5nTm90aWZpY2F0aW9uIikpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRWRpdG9yQ2xpZW50LmgKaW5kZXggMGYxYTg1MmZmNzExOTcxYjdmNDVlNmRmZmVjNDk3MjNk
Y2ExYzczYy4uNmIzYTIwZjU0NmNhMjVjZGQxMjJiYmNmZjkyZGVkMGQ0NjNhNjYzMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5oCkBAIC02NSw2ICs2NSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRD
aGFuZ2VTZWxlY3Rpb25BbmRVcGRhdGVMYXlvdXQoKSBmaW5hbDsKICAgICB2b2lkIHVwZGF0ZUVk
aXRvclN0YXRlQWZ0ZXJMYXlvdXRJZkVkaXRhYmlsaXR5Q2hhbmdlZCgpIGZpbmFsOwogICAgIHZv
aWQgZGlzY2FyZGVkQ29tcG9zaXRpb24oV2ViQ29yZTo6RnJhbWUqKSBmaW5hbDsKKyAgICB2b2lk
IGNhbmNlbGVkQ29tcG9zaXRpb24oKSBmaW5hbDsKICAgICB2b2lkIGRpZEVuZEVkaXRpbmcoKSBm
aW5hbDsKICAgICB2b2lkIHdpbGxXcml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZChXZWJDb3JlOjpS
YW5nZSopIGZpbmFsOwogICAgIHZvaWQgZGlkV3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9hcmQoKSBm
aW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApp
bmRleCA5MTFhNzAxYTU5NWY0MWIzYjljNzA2YzFhZDk1ZWRiYmI4MmJlZTMzLi5iZjgzMDRjNmU4
YTYyMjY5NzY2MzFlZWRiMDQ4MGMwMTI0MTkyM2QwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC00ODk4LDcgKzQ4OTgsNyBAQCB2b2lkIFdl
YlBhZ2U6OmRpZENoYW5nZVNlbGVjdGlvbigpCiAgICAgLy8gRklYTUU6IFdlIGNhbid0IGNhbmNl
bCBjb21wb3NpdGlvbiB3aGVuIHNlbGVjdGlvbiBjaGFuZ2VzIHRvIE5vU2VsZWN0aW9uLCBidXQg
d2UgcHJvYmFibHkgc2hvdWxkLgogICAgIGlmIChmcmFtZS5lZGl0b3IoKS5oYXNDb21wb3NpdGlv
bigpICYmICFmcmFtZS5lZGl0b3IoKS5pZ25vcmVDb21wb3NpdGlvblNlbGVjdGlvbkNoYW5nZSgp
ICYmICFmcmFtZS5zZWxlY3Rpb24oKS5pc05vbmUoKSkgewogICAgICAgICBmcmFtZS5lZGl0b3Io
KS5jYW5jZWxDb21wb3NpdGlvbigpOwotICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OkNvbXBvc2l0aW9uV2FzQ2FuY2VsZWQoZWRpdG9yU3RhdGUpKTsKKyAgICAgICAgZGlzY2Fy
ZGVkQ29tcG9zaXRpb24oKTsKICAgICB9IGVsc2UKICAgICAgICAgc2VuZChNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpFZGl0b3JTdGF0ZUNoYW5nZWQoZWRpdG9yU3RhdGUpKTsKICNlbHNlCkBAIC00
OTgzLDcgKzQ5ODMsMTMgQEAgdm9pZCBXZWJQYWdlOjpzZW5kUG9zdExheW91dEVkaXRvclN0YXRl
SWZOZWVkZWQoKQogCiB2b2lkIFdlYlBhZ2U6OmRpc2NhcmRlZENvbXBvc2l0aW9uKCkKIHsKLSAg
ICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkNvbXBvc2l0aW9uV2FzQ2FuY2VsZWQoZWRp
dG9yU3RhdGUoKSkpOworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q29tcG9zaXRp
b25XYXNDYW5jZWxlZCgpKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkVkaXRv
clN0YXRlQ2hhbmdlZChlZGl0b3JTdGF0ZSgpKSk7Cit9CisKK3ZvaWQgV2ViUGFnZTo6Y2FuY2Vs
ZWRDb21wb3NpdGlvbigpCit7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpDb21w
b3NpdGlvbldhc0NhbmNlbGVkKCkpOwogfQogCiB2b2lkIFdlYlBhZ2U6OnNldE1pbmltdW1MYXlv
dXRTaXplKGNvbnN0IEludFNpemUmIG1pbmltdW1MYXlvdXRTaXplKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggZTM2YWI1ZjE0OGQ1NzU1YTMyOWVk
ZjcwNWM0N2U0ZDFiZDk5NjdmZC4uMDkxZDhlYTJmOTE5MjZlYjU2ZWFmNzNlODY4YjY4NmE0MmUy
Y2U1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBA
IC02NTksNiArNjU5LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkQXBwbHlTdHlsZSgpOwogICAg
IHZvaWQgZGlkQ2hhbmdlU2VsZWN0aW9uKCk7CiAgICAgdm9pZCBkaXNjYXJkZWRDb21wb3NpdGlv
bigpOworICAgIHZvaWQgY2FuY2VsZWRDb21wb3NpdGlvbigpOwogCiAjaWYgUExBVEZPUk0oQ09D
T0EpCiAgICAgdm9pZCByZWdpc3RlclVJUHJvY2Vzc0FjY2Vzc2liaWxpdHlUb2tlbnMoY29uc3Qg
SVBDOjpEYXRhUmVmZXJlbmNlJiBlbGVtZW5Ub2tlbiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNl
JiB3aW5kb3dUb2tlbik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjQ3NjNlMWJiZjRkYjNmMDQwZTYzNzU5MjIxMDNlYzVm
ODcyOTMxNS4uMTJhM2RlMDU0NmRiZjM2NTlhMjhiMjc2ZWJkMjczOTQ4OWUzMThkMSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIyIEBACisyMDE2LTExLTA0ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhA
YXBwbGUuY29tPgorCisgICAgICAgIFNhZmFyaSBkb2VzIG5vdCBlbWl0IGNvbXBvc2l0aW9uIGVu
ZCBpZiBibHVycmVkIGZvciBkZWFkIGtleSAvIEphcGFuZXNlIElNRQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0MzY5CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS8yOTA1MDQzOT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGRzIGEgbmV3IHRlc3QgdmVyaWZ5aW5nIHRoYXQgd2UgZGlzcGF0Y2ggYGNv
bXBvc2l0aW9uZW5kYCBldmVudHMgaW4gdmFyaW91cyBjaXJjdW1zdGFuY2VzOgorICAgICAgICAg
ICAgMS4gQWZ0ZXIgY29tcG9zaW5nIGluIGFuIGVkaXRhYmxlIGFyZWEgYW5kIHRoZW4gZm9jdXNp
bmcgYW5vdGhlciBlZGl0YWJsZSBhcmVhLgorICAgICAgICAgICAgMi4gQWZ0ZXIgY29tcG9zaW5n
IGluIGFuIGVkaXRhYmxlIGFyZWEgYW5kIHRoZW4gYmx1cigpLWluZy4KKyAgICAgICAgICAgIDMu
IEFmdGVyIGNvbXBvc2luZyBpbiBhbiBlZGl0YWJsZSBhcmVhIGFuZCB0aGVuIGNoYW5naW5nIHRo
ZSBzZWxlY3Rpb24uCisKKyAgICAgICAgVGhlcmUgc2hvdWxkIGJlIG5vIGJlaGF2aW9yIGNoYW5n
ZSBmb3Igb3RoZXIgcGxhdGZvcm1zLCBzbyBubyBuZXcgdGVzdHMgYXJlIG5lZWRlZCB0aGVyZSB3
aXRoIHRoaXMgY2hhbmdlLgorCisgICAgICAgICogZmFzdC9ldmVudHMvaW1lLWNvbXBvc2l0aW9u
ZW5kLW9uLXNlbGVjdGlvbi1jaGFuZ2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2V2ZW50cy9pbWUtY29tcG9zaXRpb25lbmQtb24tc2VsZWN0aW9uLWNoYW5nZS5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL1Rlc3RFeHBlY3RhdGlvbnM6
CisKIDIwMTYtMTEtMDIgIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAKICAg
ICAgICAgVGVzdCBnYXJkZW5pbmcgZm9yIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2ltZS1jb21wb3NpdGlvbmVuZC1vbi1z
ZWxlY3Rpb24tY2hhbmdlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lt
ZS1jb21wb3NpdGlvbmVuZC1vbi1zZWxlY3Rpb24tY2hhbmdlLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4wZTZiMThhMzA1YTM4Y2NmMDg4NWE3NDUxMTM2OWU3ZTAwNjM4MTI0Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW1lLWNvbXBvc2l0aW9uZW5kLW9uLXNl
bGVjdGlvbi1jaGFuZ2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjEgQEAKK1RvIG1hbnVhbGx5
IHRlc3QsIHN0YXJ0IGVkaXRpbmcgYSBjb21wb3NpdGlvbiBpbiB0aGUgaW5wdXQgZmllbGQgYW5k
IGZvY3VzIHRoZSBjb250ZW50ZWRpdGFibGUgd2l0aG91dCBjb21taXR0aW5nIHRoZSBjb21wb3Np
dGlvbi4gQSBjb21wb3NpdGlvbmVuZCBldmVudCBzaG91bGQgYmUgbG9nZ2VkLCB3aXRoIHRoZSBl
dmVudCB0YXJnZXQgYmVpbmcgdGhlIGlucHV0IGZpZWxkLiBOZXh0LCBpbnNlcnQgYSBwZW5kaW5n
IGNvbXBvc2l0aW9uIGluIHRoZSBjb250ZW50ZWRpdGFibGUgYW5kIGZvY3VzIHRoZSBpbnB1dC4g
QSBjb21wb3NpdGlvbmVuZCBzaG91bGQgYmUgbG9nZ2VkLCB3aXRoIHRoZSBldmVudCB0YXJnZXQg
YmVpbmcgdGhlIGNvbnRlbnRlZGl0YWJsZS4gVGhlbiBpbnNlcnQgYSBwZW5kaW5nIGNvbXBvc2l0
aW9uIGluIHRoZSBpbnB1dCBmaWVsZCBhbmQgZm9jdXMgdGhlIGRvY3VtZW50LiBBIGNvbXBvc2l0
aW9uZW5kIGV2ZW50IHNob3VsZCBiZSBsb2dnZWQgd2l0aCB0aGUgdGFyZ2V0IGJlaW5nIHRoZSBp
bnB1dCBmaWVsZC4gTGFzdGx5LCBpbnNlcnQgYSBwZW5kaW5nIGNvbXBvc2l0aW9uIGluIHRoZSBy
aWNoIGNvbnRlbnRlZGl0YWJsZSBhbmQgY2xpY2sgYW5kIGRyYWcgdG8gc2VsZWN0IGFsbCB0aGUg
dGV4dCBpbiB0aGUgY29udGVudGVkaXRhYmxlLiBBIGNvbXBvc2l0aW9uZW5kIGV2ZW50IHNob3Vs
ZCBiZSBmaXJlZCBvbiB0aGUgY29udGVudGVkaXRhYmxlLgorCisKK2RlZmIKKworMS4gRWRpdGlu
ZyB0aGUgcGxhaW4gaW5wdXQgZmllbGQKK0ZvY3VzaW5nIHRoZSByaWNoIGNvbnRlbnRlZGl0YWJs
ZQorUEFTUzogRGlzcGF0Y2hlZCBjb21wb3NpdGlvbmVuZCBvbiA8SU5QVVQgaWQ9InBsYWluIj4K
KworMi4gRWRpdGluZyB0aGUgcmljaCBjb250ZW50ZWRpdGFibGUKK0ZvY3VzaW5nIHRoZSBwbGFp
biBpbnB1dCBmaWVsZAorUEFTUzogRGlzcGF0Y2hlZCBjb21wb3NpdGlvbmVuZCBvbiA8RElWIGlk
PSJyaWNoIj4KKworMy4gRWRpdGluZyB0aGUgcGxhaW4gaW5wdXQgZmllbGQgYWdhaW4KK0JsdXJy
aW5nIHRoZSBwbGFpbiBpbnB1dCBmaWVsZAorUEFTUzogRGlzcGF0Y2hlZCBjb21wb3NpdGlvbmVu
ZCBvbiA8SU5QVVQgaWQ9InBsYWluIj4KKworNC4gRWRpdGluZyB0aGUgcmljaCBjb250ZW50ZWRp
dGFibGUgYWdhaW4KK0NoYW5naW5nIHNlbGVjdGlvbiB3aXRoaW4gdGhlIHJpY2ggY29udGVudGVk
aXRhYmxlCitQQVNTOiBEaXNwYXRjaGVkIGNvbXBvc2l0aW9uZW5kIG9uIDxESVYgaWQ9InJpY2gi
PgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pbWUtY29tcG9zaXRpb25l
bmQtb24tc2VsZWN0aW9uLWNoYW5nZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW1l
LWNvbXBvc2l0aW9uZW5kLW9uLXNlbGVjdGlvbi1jaGFuZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMzI1
MjczNTE0ZDAyMjYwYzc4YmQzZWE4NWM3MWNmMDM0YzllZmU0Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW1lLWNvbXBvc2l0aW9uZW5kLW9uLXNlbGVjdGlvbi1j
aGFuZ2UuaHRtbApAQCAtMCwwICsxLDU3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJv
ZHk+CisgICAgPHA+VG8gbWFudWFsbHkgdGVzdCwgc3RhcnQgZWRpdGluZyBhIGNvbXBvc2l0aW9u
IGluIHRoZSBpbnB1dCBmaWVsZCBhbmQgZm9jdXMgdGhlIGNvbnRlbnRlZGl0YWJsZSB3aXRob3V0
IGNvbW1pdHRpbmcKKyAgICB0aGUgY29tcG9zaXRpb24uIEEgY29tcG9zaXRpb25lbmQgZXZlbnQg
c2hvdWxkIGJlIGxvZ2dlZCwgd2l0aCB0aGUgZXZlbnQgdGFyZ2V0IGJlaW5nIHRoZSBpbnB1dCBm
aWVsZC4gTmV4dCwgaW5zZXJ0CisgICAgYSBwZW5kaW5nIGNvbXBvc2l0aW9uIGluIHRoZSBjb250
ZW50ZWRpdGFibGUgYW5kIGZvY3VzIHRoZSBpbnB1dC4gQSBjb21wb3NpdGlvbmVuZCBzaG91bGQg
YmUgbG9nZ2VkLCB3aXRoIHRoZSBldmVudAorICAgIHRhcmdldCBiZWluZyB0aGUgY29udGVudGVk
aXRhYmxlLiBUaGVuIGluc2VydCBhIHBlbmRpbmcgY29tcG9zaXRpb24gaW4gdGhlIGlucHV0IGZp
ZWxkIGFuZCBmb2N1cyB0aGUgZG9jdW1lbnQuIEEKKyAgICBjb21wb3NpdGlvbmVuZCBldmVudCBz
aG91bGQgYmUgbG9nZ2VkIHdpdGggdGhlIHRhcmdldCBiZWluZyB0aGUgaW5wdXQgZmllbGQuIExh
c3RseSwgaW5zZXJ0IGEgcGVuZGluZyBjb21wb3NpdGlvbiBpbgorICAgIHRoZSByaWNoIGNvbnRl
bnRlZGl0YWJsZSBhbmQgY2xpY2sgYW5kIGRyYWcgdG8gc2VsZWN0IGFsbCB0aGUgdGV4dCBpbiB0
aGUgY29udGVudGVkaXRhYmxlLiBBIGNvbXBvc2l0aW9uZW5kIGV2ZW50CisgICAgc2hvdWxkIGJl
IGZpcmVkIG9uIHRoZSBjb250ZW50ZWRpdGFibGUuPC9wPgorICAgIDxpbnB1dCBpZD0icGxhaW4i
PjwvaW5wdXQ+CisgICAgPGRpdiBpZD0icmljaCIgY29udGVudGVkaXRhYmxlIHN0eWxlPSJib3Jk
ZXI6IDFweCBkYXNoZWQiPjwvZGl2PgorICAgIDxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+CisgICAg
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgICAgICBsZXQgd3JpdGUgPSBzID0+
IG91dHB1dC5pbm5lckhUTUwgKz0gYCR7c308YnI+YDsKKyAgICAgICAgcGxhaW4uYWRkRXZlbnRM
aXN0ZW5lcigiY29tcG9zaXRpb25lbmQiLCBsb2dDb21wb3NpdGlvbkVuZCk7CisgICAgICAgIHJp
Y2guYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25lbmQiLCBsb2dDb21wb3NpdGlvbkVuZCk7
CisgICAgICAgIHBsYWluLmZvY3VzKCk7CisKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
ICYmIHdpbmRvdy50ZXh0SW5wdXRDb250cm9sbGVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKKworICAgICAgICAgICAgd3JpdGUoIiIpOworICAgICAgICAgICAgd3Jp
dGUoIjEuIEVkaXRpbmcgdGhlIHBsYWluIGlucHV0IGZpZWxkIik7CisgICAgICAgICAgICB0ZXh0
SW5wdXRDb250cm9sbGVyLnNldE1hcmtlZFRleHQoImEiLCAxLCAwKTsKKyAgICAgICAgICAgIHdy
aXRlKCIgICBGb2N1c2luZyB0aGUgcmljaCBjb250ZW50ZWRpdGFibGUiKTsKKyAgICAgICAgICAg
IHJpY2guZm9jdXMoKTsKKworICAgICAgICAgICAgd3JpdGUoIiIpOworICAgICAgICAgICAgd3Jp
dGUoIjIuIEVkaXRpbmcgdGhlIHJpY2ggY29udGVudGVkaXRhYmxlIik7CisgICAgICAgICAgICB0
ZXh0SW5wdXRDb250cm9sbGVyLnNldE1hcmtlZFRleHQoImIiLCAxLCAwKTsKKyAgICAgICAgICAg
IHdyaXRlKCIgICBGb2N1c2luZyB0aGUgcGxhaW4gaW5wdXQgZmllbGQiKTsKKyAgICAgICAgICAg
IHBsYWluLmZvY3VzKCk7CisKKyAgICAgICAgICAgIHdyaXRlKCIiKTsKKyAgICAgICAgICAgIHdy
aXRlKCIzLiBFZGl0aW5nIHRoZSBwbGFpbiBpbnB1dCBmaWVsZCBhZ2FpbiIpOworICAgICAgICAg
ICAgdGV4dElucHV0Q29udHJvbGxlci5zZXRNYXJrZWRUZXh0KCJjIiwgMSwgMCk7CisgICAgICAg
ICAgICB3cml0ZSgiICAgQmx1cnJpbmcgdGhlIHBsYWluIGlucHV0IGZpZWxkIik7CisgICAgICAg
ICAgICBwbGFpbi5ibHVyKCk7CisKKyAgICAgICAgICAgIHdyaXRlKCIiKTsKKyAgICAgICAgICAg
IHdyaXRlKCI0LiBFZGl0aW5nIHRoZSByaWNoIGNvbnRlbnRlZGl0YWJsZSBhZ2FpbiIpOworICAg
ICAgICAgICAgcmljaC5mb2N1cygpOworICAgICAgICAgICAgdGV4dElucHV0Q29udHJvbGxlci5z
ZXRNYXJrZWRUZXh0KCJkIiwgMSwgMCk7CisgICAgICAgICAgICB0ZXh0SW5wdXRDb250cm9sbGVy
LnNldE1hcmtlZFRleHQoImRlIiwgMiwgMCk7CisgICAgICAgICAgICB0ZXh0SW5wdXRDb250cm9s
bGVyLnNldE1hcmtlZFRleHQoImRlZiIsIDMsIDApOworICAgICAgICAgICAgd3JpdGUoIiAgIENo
YW5naW5nIHNlbGVjdGlvbiB3aXRoaW4gdGhlIHJpY2ggY29udGVudGVkaXRhYmxlIik7CisgICAg
ICAgICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiU2VsZWN0QWxsIik7CisgICAgICAgIH0KKwor
ICAgICAgICBmdW5jdGlvbiBsb2dDb21wb3NpdGlvbkVuZChldmVudCkKKyAgICAgICAgeworICAg
ICAgICAgICAgd3JpdGUoYFBBU1M6IERpc3BhdGNoZWQgY29tcG9zaXRpb25lbmQgb24gJmx0OyR7
ZXZlbnQudGFyZ2V0LnRhZ05hbWV9IGlkPSIke2V2ZW50LnRhcmdldC5pZH0iJmd0O2ApOworICAg
ICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMDZjYzk2
MzAwOWQ4NDRlMGNhMDBlMjEwMzg5MmM1MjJmYWVlZmI5MC4uMmNhYWZhOGZlZjJjOGU4ZGU5OWJh
YjU3Y2ViN2FjMWFlMTVlZjcyMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9z
LXNpbXVsYXRvci9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lv
cy1zaW11bGF0b3IvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTIwMSw2ICsxMjAxLDcgQEAgZmFzdC9l
dmVudHMvZm9jdXMtY2hhbmdlLWNyYXNoMi5odG1sIFsgRmFpbHVyZSBdCiBmYXN0L2V2ZW50cy9m
cmFtZS1zY3JvbGwtZmFrZS1tb3VzZS1tb3ZlLmh0bWwgWyBGYWlsdXJlIF0KIGZhc3QvZXZlbnRz
L2ZyYW1lLXRhYi1mb2N1cy5odG1sIFsgRmFpbHVyZSBdCiBmYXN0L2V2ZW50cy9pbWUtY29tcG9z
aXRpb24tZXZlbnRzLTAwMS5odG1sIFsgRmFpbHVyZSBdCitmYXN0L2V2ZW50cy9pbWUtY29tcG9z
aXRpb25lbmQtb24tc2VsZWN0aW9uLWNoYW5nZS5odG1sIFsgRmFpbHVyZSBdCiBmYXN0L2V2ZW50
cy9pbnB1dFRleHQtbmV2ZXItZmlyZWQtb24ta2V5ZG93bi1jYW5jZWwuaHRtbCBbIEZhaWx1cmUg
XQogZmFzdC9ldmVudHMvaW5wdXQtZXZlbnRzLWRyYWctYW5kLWRyb3AuaHRtbCBbIEZhaWx1cmUg
XQogZmFzdC9ldmVudHMvaW5wdXQtZXZlbnRzLWluc2VydC1ieS1kcm9wLmh0bWwgWyBGYWlsdXJl
IF0K
</data>
<flag name="review"
          id="316739"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>293953</attachid>
            <date>2016-11-04 16:16:44 -0700</date>
            <delta_ts>2016-11-04 16:58:01 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-164369-20161104161241.patch</filename>
            <type>text/plain</type>
            <size>25187</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4Mjg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDlkYTIwMDg4MDRlOGQx
MWVkNDQxOWQxZGYxMmZhZjEwMjQ2YTdmMy4uYWE3OGE1YmQ1OTllOWY3MjVlZDA5ZTg0OWYyODNl
YTdmODc2NzQzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE2LTExLTA0ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFNhZmFyaSBkb2Vz
IG5vdCBlbWl0IGNvbXBvc2l0aW9uIGVuZCBpZiBibHVycmVkIGZvciBkZWFkIGtleSAvIEphcGFu
ZXNlIElNRQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTY0MzY5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yOTA1MDQzOT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBSeW9zdWtlIE5pd2EuCisKKyAgICAgICAgT24gTWFjLCBfYmVmb3JlXyBjaGFuZ2lu
ZyBzZWxlY3Rpb24sIHRyeSB0byBmaW5hbGl6ZSB0aGUgY29tcG9zaXRpb24gYnkgY2FsbGluZyBF
ZGl0b3I6OmNhbmNlbENvbXBvc2l0aW9uIGVhcmx5LgorICAgICAgICBUaGlzIGlzIGJlY2F1c2Ug
dGhlIGZvY3VzZWQgZWxlbWVudCBtYXkgaGF2ZSBjaGFuZ2VkIGFmdGVyIHBlcmZvcm1pbmcgdGhl
IHNlbGVjdGlvbiBjaGFuZ2UsIHNvIHdlIHdvdWxkCisgICAgICAgIG90aGVyd2lzZSBiZSBkaXNw
YXRjaGluZyB0aGUgYGNvbXBvc2l0aW9uZW5kYCB0byB0aGUgbmV3IGZvY3VzZWQgZWxlbWVudCAo
b3Igbm8gY29tcG9zaXRpb25lbmQgYXQgYWxsKSBpbnN0ZWFkCisgICAgICAgIG9mIHRoZSBlbGVt
ZW50IHdpdGggdGhlIGNvbXBvc2l0aW9uLgorCisgICAgICAgIERvaW5nIHRoaXMgYWxsb3dzIHVz
IHRvIG1hdGNoIENocm9tZSBhbmQgRmlyZWZveCBiZWhhdmlvci4gQWZ0ZXIgY2FuY2VsaW5nIHRo
ZSBjb21wb3NpdGlvbiwgd2UgdGhlbiBuZWVkIHRvIGFsc28KKyAgICAgICAgY2xlYXIgdGhlIHN5
c3RlbSBJTUUgc3RhdGUuIFdlIGRvIHRoaXMgb24gTWFjIFdLMS9XSzIgdGhyb3VnaCB0aGUgY2Fu
Y2VsQ29tcG9zaXRpb24oKSBjb2RlcGF0aCwgd2hpY2ggZW5kcyB1cAorICAgICAgICBjYWxsaW5n
IGludG8gLWRpc2NhcmRNYXJrZWRUZXh0LCB3aGljaCByZXNldHMgdGhlIG1hcmtlZCB0ZXh0IHN0
YXRlLiBTb21lIG1pbm9yIHJlZmFjdG9yaW5nIHdhcyBwZXJmb3JtZWQgdG8KKyAgICAgICAgYWNj
b21wbGlzaCB0aGlzIC0tIGN1cnJlbnRseSwgZGlzY2FyZGVkQ29tcG9zaXRpb24gc2VuZHMgYSBD
b21wb3NpdGlvbldhc0NhbmNlbGVkIG1lc3NhZ2Ugb3ZlciB0byB0aGUgVUkgcHJvY2VzcworICAg
ICAgICB0aGF0IGRpc2NhcmRzIHRoZSBtYXJrZWQgdGV4dCwgYW5kIHRoZW4gdXBkYXRlcyB0aGUg
ZWRpdG9yIHN0YXRlLiBUaGlzIHBhdGNoIHNwbGl0cyB0aGlzIGludG8gdHdvIHNlcGFyYXRlCisg
ICAgICAgIHN0ZXBzIC0tIHNlZSB0aGUgV2ViS2l0MiBDaGFuZ2VMb2cgZm9yIG1vcmUgZGV0YWls
cy4KKworICAgICAgICBUZXN0OiBmYXN0L2V2ZW50cy9pbWUtY29tcG9zaXRpb25lbmQtb24tc2Vs
ZWN0aW9uLWNoYW5nZS5odG1sCisKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFZGl0b3I6OnNlbGVjdGlvbldpbGxDaGFuZ2UpOgorICAgICAgICAqIGVk
aXRpbmcvRWRpdG9yLmg6CisgICAgICAgICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0
aW5nQXBwZWFyYW5jZSk6CisgICAgICAgICogZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6RWRpdG9yOjpzZWxlY3Rpb25XaWxsQ2hhbmdlKToKKyAgICAgICAgKiBs
b2FkZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgICogcGFnZS9FZGl0b3JDbGllbnQuaDoKKwog
MjAxNi0xMS0wMiAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAg
IEFkZCBsb2dnaW5nIGZvciAiV2ViS2l0IGVuY291bnRlcmVkIGFuIGludGVybmFsIGVycm9yIiBt
ZXNzYWdlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IGE5NGQ1Nzc4NmJiZDQzZTY1NWU1MzkyODcxYjVm
NTQwMTY0MWViMTUuLjJiODc4ODMwYzBhYzBlNWZjOTI4OTZlYzZlNThlZTlkZmEwZjIzZjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNi0xMS0wNCAgV2Vuc29uIEhzaWVo
ICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBTYWZhcmkgZG9lcyBub3QgZW1p
dCBjb21wb3NpdGlvbiBlbmQgaWYgYmx1cnJlZCBmb3IgZGVhZCBrZXkgLyBKYXBhbmVzZSBJTUUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDM2OQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjkwNTA0Mzk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Unlvc3VrZSBOaXdhLgorCisgICAgICAgIFdoZW4gY2FuY2VsaW5nIGEgY29tcG9zaXRpb24sIG1h
a2Ugc3VyZSB0aGF0IHdlIGNsZWFyIHRoZSBzeXN0ZW0gSU1FIHN0YXRlLgorCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50Lm1tOgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50OjpjYW5jZWxl
ZENvbXBvc2l0aW9uKToKKwogMjAxNi0xMS0wMiAgUm9tYWluIEJlbGxlc3NvcnQgIDxyb21haW4u
YmVsbGVzc29ydEBjcmYuY2Fub24uZnI+CiAKICAgICAgICAgW1JlYWRhYmxlIFN0cmVhbXMgQVBJ
XSBFbmFibGUgY3JlYXRpb24gb2YgUmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlcgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW4vQ2hh
bmdlTG9nCmluZGV4IDYyZmM4MzQ5Mjc5OGZkNDViZmZjNTU3MWI0MDc5MDhiMzI5NjA1MjIuLjNi
MzY3Y2JlNjllNTg5ZTk0NTcxN2EwMDBiZTMzMGRiOTJmNjcwM2MgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNyBAQAorMjAxNi0xMS0wNCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVo
QGFwcGxlLmNvbT4KKworICAgICAgICBTYWZhcmkgZG9lcyBub3QgZW1pdCBjb21wb3NpdGlvbiBl
bmQgaWYgYmx1cnJlZCBmb3IgZGVhZCBrZXkgLyBKYXBhbmVzZSBJTUUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDM2OQorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vMjkwNTA0Mzk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgor
CisgICAgICAgIEFkZCBhIHN0dWIgaW1wbGVtZW50YXRpb24gb2YgY2FuY2VsZWRDb21wb3NpdGlv
bi4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHA6CisgICAg
ICAgIChXZWJFZGl0b3JDbGllbnQ6OmNhbmNlbGVkQ29tcG9zaXRpb24pOgorICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgorCiAyMDE2LTExLTAxICBSeW9zdWtlIE5p
d2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSBDVVNUT01fRUxFTUVOVFMg
YnVpbGQgZmxhZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDY5NjJlYzg1MTcyNGI0YTE0YzQ1ZjY0YjE3ZDJmOTQy
ZTFkNDhlY2UuLjgxYjBlYmYzYmRiM2RhYmY3Mzg2NzNmNzNkNjg3YTEwYzM0NmZkNzQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxNi0xMS0wNCAgV2Vuc29uIEhzaWVoICA8d2Vuc29u
X2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBTYWZhcmkgZG9lcyBub3QgZW1pdCBjb21wb3Np
dGlvbiBlbmQgaWYgYmx1cnJlZCBmb3IgZGVhZCBrZXkgLyBKYXBhbmVzZSBJTUUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDM2OQorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMjkwNTA0Mzk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBO
aXdhLgorCisgICAgICAgIFNwbGl0IFdlYlBhZ2U6OmRpc2NhcmRlZENvbXBvc2l0aW9uIGludG8g
dHdvIHN0ZXBzLCB3aGVyZSB3ZSBmaXJzdCBkaXNjYXJkIG1hcmtlZCB0ZXh0IGFuZCB0aGVuIHVw
ZGF0ZSB0aGUKKyAgICAgICAgZWRpdG9yIHN0YXRlLiBUaGlzIGFsbG93cyB0aGUgY29kZXBhdGgg
d2hlcmUgd2UgY2FuY2VsIHRoZSBjb21wb3NpdGlvbiBlYXJseSAoYmVmb3JlIHNldHRpbmcgdGhl
IHNlbGVjdGlvbikgdG8KKyAgICAgICAgZGlzY2FyZCBtYXJrZWQgdGV4dCB3aXRob3V0IGFsc28g
Zm9yY2luZyBhbiBlZGl0b3Igc3RhdGUgdXBkYXRlIGF0IHRoZSBzYW1lIHRpbWUuIFRoZSBlZGl0
b3Igc3RhdGUgaXMgbGF0ZXIKKyAgICAgICAgdXBkYXRlZCBpbiBXZWJQYWdlOjpkaWRDaGFuZ2VT
ZWxlY3Rpb24uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpjb21wb3NpdGlvbldhc0NhbmNlbGVkKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkVkaXRvckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkVkaXRvckNsaWVudDo6
Y2FuY2VsZWRDb21wb3NpdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJFZGl0b3JDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRpZENoYW5nZVNlbGVjdGlvbik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRpc2NhcmRlZENvbXBvc2l0aW9uKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6Y2FuY2VsZWRDb21wb3NpdGlvbik6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKwogMjAxNi0xMS0wMiAgRGF2aWQgS2lsemVyICA8ZGRr
aWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBsb2dnaW5nIGZvciAiV2ViS2l0IGVuY291
bnRlcmVkIGFuIGludGVybmFsIGVycm9yIiBtZXNzYWdlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3Iu
Y3BwCmluZGV4IGM3MzRjYWYyOTQzZTQxZDQwOTQ3M2VjZTllMTU5NDllNGUxMmZlNTcuLjE1ODlj
NDcyYTAxZmM2YThjZmQ2YzMyOWI0Mzk3ZDU2YzJkZTU5YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5jcHAKQEAgLTMyNDQsNiArMzI0NCwxMiBAQCB2b2lkIEVkaXRvcjo6c2V0TWFya2VkVGV4
dE1hdGNoZXNBcmVIaWdobGlnaHRlZChib29sIGZsYWcpCiAgICAgZG9jdW1lbnQoKS5tYXJrZXJz
KCkucmVwYWludE1hcmtlcnMoRG9jdW1lbnRNYXJrZXI6OlRleHRNYXRjaCk7CiB9CiAKKyNpZiAh
UExBVEZPUk0oTUFDKQordm9pZCBFZGl0b3I6OnNlbGVjdGlvbldpbGxDaGFuZ2UoKQoreworfQor
I2VuZGlmCisKIHZvaWQgRWRpdG9yOjpyZXNwb25kVG9DaGFuZ2VkU2VsZWN0aW9uKGNvbnN0IFZp
c2libGVTZWxlY3Rpb24mLCBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRp
b25zKQogewogI2lmIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCmluZGV4IDg2
NzBhZTNhMzhjMDI4NWEyMGEyMWVjZDQxMDUyY2E2NTA3MzUwYTYuLmUyYmJjNDk5NjBhN2ZmZTFm
OGIzNzgzNWEyNmYzN2IyYjc3ODM5ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaApAQCAtMzkw
LDYgKzM5MCw3IEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIEludFJlY3QgZmlyc3RS
ZWN0Rm9yUmFuZ2UoUmFuZ2UqKSBjb25zdDsKIAorICAgIHZvaWQgc2VsZWN0aW9uV2lsbENoYW5n
ZSgpOwogICAgIHZvaWQgcmVzcG9uZFRvQ2hhbmdlZFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2Vs
ZWN0aW9uJiBvbGRTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25PcHRpb25z
KTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHVwZGF0ZUVkaXRvclVJTm93SWZTY2hlZHVsZWQo
KTsKICAgICBib29sIHNob3VsZENoYW5nZVNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9u
JiBvbGRTZWxlY3Rpb24sIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwgRUFm
ZmluaXR5LCBib29sIHN0aWxsU2VsZWN0aW5nKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9GcmFtZVNlbGVjdGlvbi5jcHAKaW5kZXggYjU3YmU2YWY1NmUzNTRjZDM5NDQ3NGZiMTY2M2I5
NjUzYTlhODA1Yy4uMTE1MTEyOWY5OGZhODYyYWNmY2UxYTczYmM3NGQ0MDljNzFiODM0YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKQEAgLTMwNSwxMyArMzA1
LDE3IEBAIGJvb2wgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0Fw
cGVhcmFuY2UoY29uc3QgVmlzaWJsZVNlbGVjdGlvCiAgICAgICAgIGNsZWFyVHlwaW5nU3R5bGUo
KTsKIAogICAgIFZpc2libGVTZWxlY3Rpb24gb2xkU2VsZWN0aW9uID0gbV9zZWxlY3Rpb247Cisg
ICAgYm9vbCBkaWRNdXRhdGVTZWxlY3Rpb24gPSBvbGRTZWxlY3Rpb24gIT0gbmV3U2VsZWN0aW9u
OworICAgIGlmIChkaWRNdXRhdGVTZWxlY3Rpb24pCisgICAgICAgIG1fZnJhbWUtPmVkaXRvcigp
LnNlbGVjdGlvbldpbGxDaGFuZ2UoKTsKKwogICAgIG1fc2VsZWN0aW9uID0gbmV3U2VsZWN0aW9u
OwogCiAgICAgLy8gU2VsZWN0aW9uIG9mZnNldHMgc2hvdWxkIGluY3JlYXNlIHdoZW4gTEYgaXMg
aW5zZXJ0ZWQgYmVmb3JlIHRoZSBjYXJldCBpbiBJbnNlcnRMaW5lQnJlYWtDb21tYW5kLiBTZWUg
PGh0dHBzOi8vd2Via2l0Lm9yZy9iLzU2MDYxPi4KICAgICBpZiAoSFRNTFRleHRGb3JtQ29udHJv
bEVsZW1lbnQqIHRleHRDb250cm9sID0gZW5jbG9zaW5nVGV4dEZvcm1Db250cm9sKG5ld1NlbGVj
dGlvbi5zdGFydCgpKSkKICAgICAgICAgdGV4dENvbnRyb2wtPnNlbGVjdGlvbkNoYW5nZWQob3B0
aW9ucyAmIEZpcmVTZWxlY3RFdmVudCk7CiAKLSAgICBpZiAob2xkU2VsZWN0aW9uID09IG5ld1Nl
bGVjdGlvbikKKyAgICBpZiAoIWRpZE11dGF0ZVNlbGVjdGlvbikKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgc2V0Q2FyZXRSZWN0TmVlZHNVcGRhdGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0VkaXRvck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvbWFjL0VkaXRvck1hYy5tbQppbmRleCBlODAzZGZjY2YyZDFjNmU5ZmJiNjFkNGUxOTdkMGQw
MzQ1MGRlMDAyLi41ZTdlYWVhYjQ2MTE4MjhlMTFiM2EyZTdkOWEyZjRkMTIwMjdmOWJlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tCkBAIC00MjgsNiArNDI4LDE1IEBA
IHZvaWQgRWRpdG9yOjpmaWxsSW5Vc2VyVmlzaWJsZUZvcm0oUGFzdGVib2FyZFVSTCYgcGFzdGVi
b2FyZFVSTCkKICAgICBwYXN0ZWJvYXJkVVJMLnVzZXJWaXNpYmxlRm9ybSA9IGNsaWVudCgpLT51
c2VyVmlzaWJsZVN0cmluZyhwYXN0ZWJvYXJkVVJMLnVybCk7CiB9CiAKK3ZvaWQgRWRpdG9yOjpz
ZWxlY3Rpb25XaWxsQ2hhbmdlKCkKK3sKKyAgICBpZiAoIWhhc0NvbXBvc2l0aW9uKCkgfHwgaWdu
b3JlQ29tcG9zaXRpb25TZWxlY3Rpb25DaGFuZ2UoKSB8fCBtX2ZyYW1lLnNlbGVjdGlvbigpLmlz
Tm9uZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBjYW5jZWxDb21wb3NpdGlvbigpOworICAg
IGNsaWVudCgpLT5jYW5jZWxlZENvbXBvc2l0aW9uKCk7Cit9CisKIFN0cmluZyBFZGl0b3I6OnBs
YWluVGV4dEZyb21QYXN0ZWJvYXJkKGNvbnN0IFBhc3RlYm9hcmRQbGFpblRleHQmIHRleHQpCiB7
CiAgICAgU3RyaW5nIHN0cmluZyA9IHRleHQudGV4dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNs
aWVudHMuaAppbmRleCA2NjBiMTJmODYzYzgzODY2MWZkMjcwMTljMDYxMzMzOWJhNDNmZTM0Li44
YmU3N2FiZDczODYxZmE4OTQ2NDk2NjJjNjU1NjcwZjc2MzMwYWQ4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5Q2xpZW50cy5oCkBAIC00NjgsNiArNDY4LDcgQEAgcHVibGljOgogICAgIHZvaWQg
ZGlkQ2hhbmdlU2VsZWN0aW9uQW5kVXBkYXRlTGF5b3V0KCkgb3ZlcnJpZGUgeyB9CiAgICAgdm9p
ZCB1cGRhdGVFZGl0b3JTdGF0ZUFmdGVyTGF5b3V0SWZFZGl0YWJpbGl0eUNoYW5nZWQoKSBvdmVy
cmlkZSB7IH0KICAgICB2b2lkIGRpc2NhcmRlZENvbXBvc2l0aW9uKEZyYW1lKikgb3ZlcnJpZGUg
eyB9CisgICAgdm9pZCBjYW5jZWxlZENvbXBvc2l0aW9uKCkgb3ZlcnJpZGUgeyB9CiAgICAgdm9p
ZCBkaWRFbmRFZGl0aW5nKCkgb3ZlcnJpZGUgeyB9CiAgICAgdm9pZCB3aWxsV3JpdGVTZWxlY3Rp
b25Ub1Bhc3RlYm9hcmQoUmFuZ2UqKSBvdmVycmlkZSB7IH0KICAgICB2b2lkIGRpZFdyaXRlU2Vs
ZWN0aW9uVG9QYXN0ZWJvYXJkKCkgb3ZlcnJpZGUgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0VkaXRvckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FZGl0b3JDbGll
bnQuaAppbmRleCA0ZjZhOTg1OWM4M2NjZTRlNDMzYmQwNzg2MjBhNDMwOWY0NDUxN2E3Li5lYjFh
NDJlMmVlZDAzYTUxNGQxMjM2MDhiY2U3M2I0ZTJkNTY3ODBhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0VkaXRvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRWRp
dG9yQ2xpZW50LmgKQEAgLTEwMiw2ICsxMDIsNyBAQCBwdWJsaWM6CiAgICAgLy8gTm90aWZ5IGFu
IGlucHV0IG1ldGhvZCB0aGF0IGEgY29tcG9zaXRpb24gd2FzIHZvbHVudGFyaWx5IGRpc2NhcmRl
ZCBieSBXZWJDb3JlLCBzbyB0aGF0IGl0IGNvdWxkIGNsZWFuIHVwIHRvby4KICAgICAvLyBUaGlz
IGZ1bmN0aW9uIGlzIG5vdCBjYWxsZWQgd2hlbiBhIGNvbXBvc2l0aW9uIGlzIGNsb3NlZCBwZXIg
YSByZXF1ZXN0IGZyb20gYW4gaW5wdXQgbWV0aG9kLgogICAgIHZpcnR1YWwgdm9pZCBkaXNjYXJk
ZWRDb21wb3NpdGlvbihGcmFtZSopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsZWRDb21w
b3NpdGlvbigpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlclVuZG9TdGVwKFBhc3NS
ZWZQdHI8VW5kb1N0ZXA+KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyUmVkb1N0ZXAo
UGFzc1JlZlB0cjxVbmRvU3RlcD4pID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oIGIvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKaW5kZXggMDdhNWVkY2Q5NDA5NTA2ZTVhZGQ3
M2NlNmJiZjRkYmEzNjk3MDdmNC4uMTJlZWUyYjJiYzVmYTBhNmFmMjUxZWE1NzQ2M2I1ZmViMjQ5
ZjcyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50LmgKQEAgLTExMyw2ICsxMTMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkQ2hh
bmdlU2VsZWN0aW9uQW5kVXBkYXRlTGF5b3V0KCkgZmluYWwgeyB9CiAgICAgdm9pZCB1cGRhdGVF
ZGl0b3JTdGF0ZUFmdGVyTGF5b3V0SWZFZGl0YWJpbGl0eUNoYW5nZWQoKSBmaW5hbDsKICAgICB2
b2lkIGRpc2NhcmRlZENvbXBvc2l0aW9uKFdlYkNvcmU6OkZyYW1lKikgZmluYWw7CisgICAgdm9p
ZCBjYW5jZWxlZENvbXBvc2l0aW9uKCkgZmluYWw7CiAKICAgICB2b2lkIHJlZ2lzdGVyVW5kb1N0
ZXAoUGFzc1JlZlB0cjxXZWJDb3JlOjpVbmRvU3RlcD4pIGZpbmFsOwogICAgIHZvaWQgcmVnaXN0
ZXJSZWRvU3RlcChQYXNzUmVmUHRyPFdlYkNvcmU6OlVuZG9TdGVwPikgZmluYWw7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0g
Yi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KaW5k
ZXggZGE0OWRhOTgyYzdlNzQ5ZmNiZDQ5ZmE5NDBhNjliNTJiNDgwNzI3MS4uY2U0ODQzNjM4ODBj
Yzg3NWFjYTJmMDFiYjMxMWU0ZDNlNDA4ZTM5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQpAQCAtMzc1LDYgKzM3NSwxMyBA
QCB2b2lkIFdlYkVkaXRvckNsaWVudDo6ZGlzY2FyZGVkQ29tcG9zaXRpb24oRnJhbWUqKQogICAg
IC8vIFRoZSBlZmZlY3RzIG9mIHRoaXMgZnVuY3Rpb24gYXJlIGN1cnJlbnRseSBhY2hpZXZlZCB2
aWEgLVtXZWJIVE1MVmlldyBfdXBkYXRlU2VsZWN0aW9uRm9ySW5wdXRNYW5hZ2VyXS4KIH0KIAor
dm9pZCBXZWJFZGl0b3JDbGllbnQ6OmNhbmNlbGVkQ29tcG9zaXRpb24oKQoreworI2lmICFQTEFU
Rk9STShJT1MpCisgICAgW1tOU1RleHRJbnB1dENvbnRleHQgY3VycmVudElucHV0Q29udGV4dF0g
ZGlzY2FyZE1hcmtlZFRleHRdOworI2VuZGlmCit9CisKIHZvaWQgV2ViRWRpdG9yQ2xpZW50Ojpk
aWRFbmRFZGl0aW5nKCkKIHsKICNpZiAhUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKaW5kZXggYzM3NDEz
OTYzMGQyYzEyMjE0MjM0MGNhYmZiYTE2YTllYTMyOWRlMy4uZjhiOTA4ZGNiYWIxODI2NzRlZTIy
MzlmMjFjNGMzZmFmMzBmYThmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJD
b3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCkBAIC0yNDIsNiArMjQyLDExIEBAIHZvaWQg
V2ViRWRpdG9yQ2xpZW50OjpkaXNjYXJkZWRDb21wb3NpdGlvbihGcmFtZSopCiAgICAgbm90SW1w
bGVtZW50ZWQoKTsKIH0KIAordm9pZCBXZWJFZGl0b3JDbGllbnQ6OmNhbmNlbGVkQ29tcG9zaXRp
b24oKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKIHZvaWQgV2ViRWRpdG9yQ2xpZW50
OjpkaWRFbmRFZGl0aW5nKCkKIHsKICAgICBzdGF0aWMgX2JzdHJfdCB3ZWJWaWV3RGlkRW5kRWRp
dGluZ05vdGlmaWNhdGlvbk5hbWUoV2ViVmlld0RpZEVuZEVkaXRpbmdOb3RpZmljYXRpb24pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQu
aAppbmRleCA0ZmYwYWJmZmZmODc4OWZkZDZkMGY1MTYwOTNjMTk1MjRiZTk1YTExLi41OTRjNDhk
M2M1YTY0ODM4YzQ5NDk3ZjY2NGNkZTQyZTU4NDAyZmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaApAQCAtNTgsNiArNTgsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlc3BvbmRUb0NoYW5nZWRTZWxlY3Rpb24oV2Vi
Q29yZTo6RnJhbWUqKTsKICAgICB2b2lkIGRpZENoYW5nZVNlbGVjdGlvbkFuZFVwZGF0ZUxheW91
dCgpIGZpbmFsIHsgfQogICAgIHZvaWQgdXBkYXRlRWRpdG9yU3RhdGVBZnRlckxheW91dElmRWRp
dGFiaWxpdHlDaGFuZ2VkKCkgZmluYWwgeyB9IAorICAgIHZvaWQgY2FuY2VsZWRDb21wb3NpdGlv
bigpIGZpbmFsOwogICAgIHZvaWQgZGlzY2FyZGVkQ29tcG9zaXRpb24oV2ViQ29yZTo6RnJhbWUq
KSBmaW5hbDsKIAogICAgIGJvb2wgc2hvdWxkRGVsZXRlUmFuZ2UoV2ViQ29yZTo6UmFuZ2UqKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggMmI0YjA1MWRm
ODJiNzUyMjFlZjQ1YTAyNDM3Mjc2YzkxMTJhMTgyZi4uNDlmZGIzZTYyOTE2N2NjMTgyY2E3NWE0
NzE3YmY0ZTQxNjRkZDFhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKQEAgLTQzNjQsMTIgKzQzNjQsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmJhY2tGb3J3
YXJkRm9yd2FyZExpc3RDb3VudChpbnQzMl90JiBjb3VudCkKICAgICBjb3VudCA9IG1fYmFja0Zv
cndhcmRMaXN0LT5mb3J3YXJkTGlzdENvdW50KCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojpj
b21wb3NpdGlvbldhc0NhbmNlbGVkKGNvbnN0IEVkaXRvclN0YXRlJiBlZGl0b3JTdGF0ZSkKK3Zv
aWQgV2ViUGFnZVByb3h5Ojpjb21wb3NpdGlvbldhc0NhbmNlbGVkKCkKIHsKICNpZiBQTEFURk9S
TShDT0NPQSkKICAgICBtX3BhZ2VDbGllbnQubm90aWZ5SW5wdXRDb250ZXh0QWJvdXREaXNjYXJk
ZWRDb21wb3NpdGlvbigpOwogI2VuZGlmCi0gICAgZWRpdG9yU3RhdGVDaGFuZ2VkKGVkaXRvclN0
YXRlKTsKIH0KIAogLy8gVW5kbyBtYW5hZ2VtZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKaW5kZXggMjFkYjU5MjAxOWEwNzNhZTlmOGUxNWQ1ZjI3MjFlMmYxYTFiZjQz
NS4uYjdiMWQ1ZTMwNDc3OWVkYTA0ZDhkMjBlM2Q5ZjA5YzBkOTFiMzg5ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTMwNyw3ICsxMzA3LDcgQEAgcHJpdmF0
ZToKICNlbmRpZgogCiAgICAgdm9pZCBlZGl0b3JTdGF0ZUNoYW5nZWQoY29uc3QgRWRpdG9yU3Rh
dGUmKTsKLSAgICB2b2lkIGNvbXBvc2l0aW9uV2FzQ2FuY2VsZWQoY29uc3QgRWRpdG9yU3RhdGUm
KTsKKyAgICB2b2lkIGNvbXBvc2l0aW9uV2FzQ2FuY2VsZWQoKTsKICAgICB2b2lkIHNldEhhc0hh
ZFNlbGVjdGlvbkNoYW5nZXNGcm9tVXNlckludGVyYWN0aW9uKGJvb2wpOwogICAgIHZvaWQgc2V0
TmVlZHNIaWRkZW5Db250ZW50RWRpdGFibGVRdWlyayhib29sKTsKICAgICB2b2lkIHNldE5lZWRz
UGxhaW5UZXh0UXVpcmsoYm9vbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCA0NzBhODBhM2EwNzAzNjNmODgwYzQ3Y2ZjYTFl
YWFkZDhjYjdhMDFmLi44MDk5ZTExMGE2YThmYjdjZjQ5NTE4Yjk1NmU2NTYwOTM1MmUxMDQ2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2Vz
LmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW4KQEAgLTIzNSw3ICsyMzUsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogCiAgICAg
IyBFZGl0b3Igbm90aWZpY2F0aW9ucwogICAgIEVkaXRvclN0YXRlQ2hhbmdlZChzdHJ1Y3QgV2Vi
S2l0OjpFZGl0b3JTdGF0ZSBlZGl0b3JTdGF0ZSkKLSAgICBDb21wb3NpdGlvbldhc0NhbmNlbGVk
KHN0cnVjdCBXZWJLaXQ6OkVkaXRvclN0YXRlIGVkaXRvclN0YXRlKQorICAgIENvbXBvc2l0aW9u
V2FzQ2FuY2VsZWQoKQogICAgIFNldEhhc0hhZFNlbGVjdGlvbkNoYW5nZXNGcm9tVXNlckludGVy
YWN0aW9uKGJvb2wgaGFzSGFkVXNlclNlbGVjdGlvbkNoYW5nZXMpCiAgICAgU2V0TmVlZHNIaWRk
ZW5Db250ZW50RWRpdGFibGVRdWlyayhib29sIG5lZWRzSGlkZGVuQ29udGVudEVkaXRhYmxlUXVp
cmspCiAgICAgU2V0TmVlZHNQbGFpblRleHRRdWlyayhib29sIG5lZWRzUGxhaW5UZXh0UXVpcmsp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkVkaXRvckNsaWVudC5jcHAKaW5kZXggNGM5NWU5ZmZjZTJlMGYzNzA1MDYzMjgxMDFh
NDAyYTA1NzE0MDAyZC4uYzljOTZiZTgxMGNjMTM0MzFkMTUwYWEzZjUxOTg3YjkxYmQyMWE2YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcApAQCAtMjExLDYgKzIxMSwxMSBAQCB2b2lkIFdlYkVk
aXRvckNsaWVudDo6ZGlzY2FyZGVkQ29tcG9zaXRpb24oRnJhbWUqKQogICAgIG1fcGFnZS0+ZGlz
Y2FyZGVkQ29tcG9zaXRpb24oKTsKIH0KIAordm9pZCBXZWJFZGl0b3JDbGllbnQ6OmNhbmNlbGVk
Q29tcG9zaXRpb24oKQoreworICAgIG1fcGFnZS0+Y2FuY2VsZWRDb21wb3NpdGlvbigpOworfQor
CiB2b2lkIFdlYkVkaXRvckNsaWVudDo6ZGlkRW5kRWRpdGluZygpCiB7CiAgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPFN0cmluZz4gV2ViVmlld0RpZEVuZEVkaXRpbmdOb3RpZmljYXRpb24oQVND
SUlMaXRlcmFsKCJXZWJWaWV3RGlkRW5kRWRpdGluZ05vdGlmaWNhdGlvbiIpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5oCmluZGV4IDBmMWE4NTJmZjcxMTk3MWI3ZjQ1ZTZkZmZlYzQ5NzIzZGNhMWM3M2Mu
LjZiM2EyMGY1NDZjYTI1Y2RkMTIyYmJjZmY5MmRlZDBkNDYzYTY2MzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JD
bGllbnQuaApAQCAtNjUsNiArNjUsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkQ2hhbmdlU2Vs
ZWN0aW9uQW5kVXBkYXRlTGF5b3V0KCkgZmluYWw7CiAgICAgdm9pZCB1cGRhdGVFZGl0b3JTdGF0
ZUFmdGVyTGF5b3V0SWZFZGl0YWJpbGl0eUNoYW5nZWQoKSBmaW5hbDsKICAgICB2b2lkIGRpc2Nh
cmRlZENvbXBvc2l0aW9uKFdlYkNvcmU6OkZyYW1lKikgZmluYWw7CisgICAgdm9pZCBjYW5jZWxl
ZENvbXBvc2l0aW9uKCkgZmluYWw7CiAgICAgdm9pZCBkaWRFbmRFZGl0aW5nKCkgZmluYWw7CiAg
ICAgdm9pZCB3aWxsV3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9hcmQoV2ViQ29yZTo6UmFuZ2UqKSBm
aW5hbDsKICAgICB2b2lkIGRpZFdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJkKCkgZmluYWw7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggOTEx
YTcwMWE1OTVmNDFiM2I5YzcwNmMxYWQ5NWVkYmJiODJiZWUzMy4uYmY4MzA0YzZlOGE2MjI2OTc2
NjMxZWVkYjA0ODBjMDEyNDE5MjNkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNDg5OCw3ICs0ODk4LDcgQEAgdm9pZCBXZWJQYWdlOjpk
aWRDaGFuZ2VTZWxlY3Rpb24oKQogICAgIC8vIEZJWE1FOiBXZSBjYW4ndCBjYW5jZWwgY29tcG9z
aXRpb24gd2hlbiBzZWxlY3Rpb24gY2hhbmdlcyB0byBOb1NlbGVjdGlvbiwgYnV0IHdlIHByb2Jh
Ymx5IHNob3VsZC4KICAgICBpZiAoZnJhbWUuZWRpdG9yKCkuaGFzQ29tcG9zaXRpb24oKSAmJiAh
ZnJhbWUuZWRpdG9yKCkuaWdub3JlQ29tcG9zaXRpb25TZWxlY3Rpb25DaGFuZ2UoKSAmJiAhZnJh
bWUuc2VsZWN0aW9uKCkuaXNOb25lKCkpIHsKICAgICAgICAgZnJhbWUuZWRpdG9yKCkuY2FuY2Vs
Q29tcG9zaXRpb24oKTsKLSAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpDb21w
b3NpdGlvbldhc0NhbmNlbGVkKGVkaXRvclN0YXRlKSk7CisgICAgICAgIGRpc2NhcmRlZENvbXBv
c2l0aW9uKCk7CiAgICAgfSBlbHNlCiAgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6RWRpdG9yU3RhdGVDaGFuZ2VkKGVkaXRvclN0YXRlKSk7CiAjZWxzZQpAQCAtNDk4Myw3ICs0
OTgzLDEzIEBAIHZvaWQgV2ViUGFnZTo6c2VuZFBvc3RMYXlvdXRFZGl0b3JTdGF0ZUlmTmVlZGVk
KCkKIAogdm9pZCBXZWJQYWdlOjpkaXNjYXJkZWRDb21wb3NpdGlvbigpCiB7Ci0gICAgc2VuZChN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpDb21wb3NpdGlvbldhc0NhbmNlbGVkKGVkaXRvclN0YXRl
KCkpKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkNvbXBvc2l0aW9uV2FzQ2Fu
Y2VsZWQoKSk7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpFZGl0b3JTdGF0ZUNo
YW5nZWQoZWRpdG9yU3RhdGUoKSkpOworfQorCit2b2lkIFdlYlBhZ2U6OmNhbmNlbGVkQ29tcG9z
aXRpb24oKQoreworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q29tcG9zaXRpb25X
YXNDYW5jZWxlZCgpKTsKIH0KIAogdm9pZCBXZWJQYWdlOjpzZXRNaW5pbXVtTGF5b3V0U2l6ZShj
b25zdCBJbnRTaXplJiBtaW5pbXVtTGF5b3V0U2l6ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGUzNmFiNWYxNDhkNTc1NWEzMjllZGY3MDVjNDdl
NGQxYmQ5OTY3ZmQuLjA5MWQ4ZWEyZjkxOTI2ZWI1NmVhZjczZTg2OGI2ODZhNDJlMmNlNTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtNjU5LDYg
KzY1OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZEFwcGx5U3R5bGUoKTsKICAgICB2b2lkIGRp
ZENoYW5nZVNlbGVjdGlvbigpOwogICAgIHZvaWQgZGlzY2FyZGVkQ29tcG9zaXRpb24oKTsKKyAg
ICB2b2lkIGNhbmNlbGVkQ29tcG9zaXRpb24oKTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAg
IHZvaWQgcmVnaXN0ZXJVSVByb2Nlc3NBY2Nlc3NpYmlsaXR5VG9rZW5zKGNvbnN0IElQQzo6RGF0
YVJlZmVyZW5jZSYgZWxlbWVuVG9rZW4sIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgd2luZG93
VG9rZW4pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDI0NzYzZTFiYmY0ZGIzZjA0MGU2Mzc1OTIyMTAzZWM1Zjg3MjkzMTUu
LmJjNDJmMTA2MzRjYzEyOTQ2MTQ0OWI0NGNmZjY5YjUxZjdiZGRkMDQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMiBAQAorMjAxNi0xMS0wNCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNv
bT4KKworICAgICAgICBTYWZhcmkgZG9lcyBub3QgZW1pdCBjb21wb3NpdGlvbiBlbmQgaWYgYmx1
cnJlZCBmb3IgZGVhZCBrZXkgLyBKYXBhbmVzZSBJTUUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDM2OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
MjkwNTA0Mzk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgorCisgICAgICAg
IEFkZHMgYSBuZXcgdGVzdCB2ZXJpZnlpbmcgdGhhdCB3ZSBkaXNwYXRjaCBgY29tcG9zaXRpb25l
bmRgIGV2ZW50cyBpbiB2YXJpb3VzIGNpcmN1bXN0YW5jZXM6CisgICAgICAgICAgICAxLiBBZnRl
ciBjb21wb3NpbmcgaW4gYW4gZWRpdGFibGUgYXJlYSBhbmQgdGhlbiBmb2N1c2luZyBhbm90aGVy
IGVkaXRhYmxlIGFyZWEuCisgICAgICAgICAgICAyLiBBZnRlciBjb21wb3NpbmcgaW4gYW4gZWRp
dGFibGUgYXJlYSBhbmQgdGhlbiBibHVyKCktaW5nLgorICAgICAgICAgICAgMy4gQWZ0ZXIgY29t
cG9zaW5nIGluIGFuIGVkaXRhYmxlIGFyZWEgYW5kIHRoZW4gY2hhbmdpbmcgdGhlIHNlbGVjdGlv
bi4KKworICAgICAgICBUaGVyZSBzaG91bGQgYmUgbm8gYmVoYXZpb3IgY2hhbmdlIGZvciBvdGhl
ciBwbGF0Zm9ybXMsIHNvIG5vIG5ldyB0ZXN0cyBhcmUgbmVlZGVkIHRoZXJlIHdpdGggdGhpcyBj
aGFuZ2UuCisKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9pbWUtY29tcG9zaXRpb25lbmQtb24tc2Vs
ZWN0aW9uLWNoYW5nZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRz
L2ltZS1jb21wb3NpdGlvbmVuZC1vbi1zZWxlY3Rpb24tY2hhbmdlLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2lvcy1zaW11bGF0b3IvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAxNi0x
MS0wMiAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBUZXN0
IGdhcmRlbmluZyBmb3IgbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzLgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW1lLWNvbXBvc2l0aW9uZW5kLW9uLXNlbGVjdGlvbi1j
aGFuZ2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW1lLWNvbXBvc2l0
aW9uZW5kLW9uLXNlbGVjdGlvbi1jaGFuZ2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBlNmIx
OGEzMDVhMzhjY2YwODg1YTc0NTExMzY5ZTdlMDA2MzgxMjQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pbWUtY29tcG9zaXRpb25lbmQtb24tc2VsZWN0aW9uLWNo
YW5nZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMSBAQAorVG8gbWFudWFsbHkgdGVzdCwgc3Rh
cnQgZWRpdGluZyBhIGNvbXBvc2l0aW9uIGluIHRoZSBpbnB1dCBmaWVsZCBhbmQgZm9jdXMgdGhl
IGNvbnRlbnRlZGl0YWJsZSB3aXRob3V0IGNvbW1pdHRpbmcgdGhlIGNvbXBvc2l0aW9uLiBBIGNv
bXBvc2l0aW9uZW5kIGV2ZW50IHNob3VsZCBiZSBsb2dnZWQsIHdpdGggdGhlIGV2ZW50IHRhcmdl
dCBiZWluZyB0aGUgaW5wdXQgZmllbGQuIE5leHQsIGluc2VydCBhIHBlbmRpbmcgY29tcG9zaXRp
b24gaW4gdGhlIGNvbnRlbnRlZGl0YWJsZSBhbmQgZm9jdXMgdGhlIGlucHV0LiBBIGNvbXBvc2l0
aW9uZW5kIHNob3VsZCBiZSBsb2dnZWQsIHdpdGggdGhlIGV2ZW50IHRhcmdldCBiZWluZyB0aGUg
Y29udGVudGVkaXRhYmxlLiBUaGVuIGluc2VydCBhIHBlbmRpbmcgY29tcG9zaXRpb24gaW4gdGhl
IGlucHV0IGZpZWxkIGFuZCBmb2N1cyB0aGUgZG9jdW1lbnQuIEEgY29tcG9zaXRpb25lbmQgZXZl
bnQgc2hvdWxkIGJlIGxvZ2dlZCB3aXRoIHRoZSB0YXJnZXQgYmVpbmcgdGhlIGlucHV0IGZpZWxk
LiBMYXN0bHksIGluc2VydCBhIHBlbmRpbmcgY29tcG9zaXRpb24gaW4gdGhlIHJpY2ggY29udGVu
dGVkaXRhYmxlIGFuZCBjbGljayBhbmQgZHJhZyB0byBzZWxlY3QgYWxsIHRoZSB0ZXh0IGluIHRo
ZSBjb250ZW50ZWRpdGFibGUuIEEgY29tcG9zaXRpb25lbmQgZXZlbnQgc2hvdWxkIGJlIGZpcmVk
IG9uIHRoZSBjb250ZW50ZWRpdGFibGUuCisKKworZGVmYgorCisxLiBFZGl0aW5nIHRoZSBwbGFp
biBpbnB1dCBmaWVsZAorRm9jdXNpbmcgdGhlIHJpY2ggY29udGVudGVkaXRhYmxlCitQQVNTOiBE
aXNwYXRjaGVkIGNvbXBvc2l0aW9uZW5kIG9uIDxJTlBVVCBpZD0icGxhaW4iPgorCisyLiBFZGl0
aW5nIHRoZSByaWNoIGNvbnRlbnRlZGl0YWJsZQorRm9jdXNpbmcgdGhlIHBsYWluIGlucHV0IGZp
ZWxkCitQQVNTOiBEaXNwYXRjaGVkIGNvbXBvc2l0aW9uZW5kIG9uIDxESVYgaWQ9InJpY2giPgor
CiszLiBFZGl0aW5nIHRoZSBwbGFpbiBpbnB1dCBmaWVsZCBhZ2FpbgorQmx1cnJpbmcgdGhlIHBs
YWluIGlucHV0IGZpZWxkCitQQVNTOiBEaXNwYXRjaGVkIGNvbXBvc2l0aW9uZW5kIG9uIDxJTlBV
VCBpZD0icGxhaW4iPgorCis0LiBFZGl0aW5nIHRoZSByaWNoIGNvbnRlbnRlZGl0YWJsZSBhZ2Fp
bgorQ2hhbmdpbmcgc2VsZWN0aW9uIHdpdGhpbiB0aGUgcmljaCBjb250ZW50ZWRpdGFibGUKK1BB
U1M6IERpc3BhdGNoZWQgY29tcG9zaXRpb25lbmQgb24gPERJViBpZD0icmljaCI+CisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2ltZS1jb21wb3NpdGlvbmVuZC1vbi1zZWxl
Y3Rpb24tY2hhbmdlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pbWUtY29tcG9zaXRp
b25lbmQtb24tc2VsZWN0aW9uLWNoYW5nZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIzMjUyNzM1MTRkMDIy
NjBjNzhiZDNlYTg1YzcxY2YwMzRjOWVmZTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9pbWUtY29tcG9zaXRpb25lbmQtb24tc2VsZWN0aW9uLWNoYW5nZS5odG1s
CkBAIC0wLDAgKzEsNTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKyAgICA8
cD5UbyBtYW51YWxseSB0ZXN0LCBzdGFydCBlZGl0aW5nIGEgY29tcG9zaXRpb24gaW4gdGhlIGlu
cHV0IGZpZWxkIGFuZCBmb2N1cyB0aGUgY29udGVudGVkaXRhYmxlIHdpdGhvdXQgY29tbWl0dGlu
ZworICAgIHRoZSBjb21wb3NpdGlvbi4gQSBjb21wb3NpdGlvbmVuZCBldmVudCBzaG91bGQgYmUg
bG9nZ2VkLCB3aXRoIHRoZSBldmVudCB0YXJnZXQgYmVpbmcgdGhlIGlucHV0IGZpZWxkLiBOZXh0
LCBpbnNlcnQKKyAgICBhIHBlbmRpbmcgY29tcG9zaXRpb24gaW4gdGhlIGNvbnRlbnRlZGl0YWJs
ZSBhbmQgZm9jdXMgdGhlIGlucHV0LiBBIGNvbXBvc2l0aW9uZW5kIHNob3VsZCBiZSBsb2dnZWQs
IHdpdGggdGhlIGV2ZW50CisgICAgdGFyZ2V0IGJlaW5nIHRoZSBjb250ZW50ZWRpdGFibGUuIFRo
ZW4gaW5zZXJ0IGEgcGVuZGluZyBjb21wb3NpdGlvbiBpbiB0aGUgaW5wdXQgZmllbGQgYW5kIGZv
Y3VzIHRoZSBkb2N1bWVudC4gQQorICAgIGNvbXBvc2l0aW9uZW5kIGV2ZW50IHNob3VsZCBiZSBs
b2dnZWQgd2l0aCB0aGUgdGFyZ2V0IGJlaW5nIHRoZSBpbnB1dCBmaWVsZC4gTGFzdGx5LCBpbnNl
cnQgYSBwZW5kaW5nIGNvbXBvc2l0aW9uIGluCisgICAgdGhlIHJpY2ggY29udGVudGVkaXRhYmxl
IGFuZCBjbGljayBhbmQgZHJhZyB0byBzZWxlY3QgYWxsIHRoZSB0ZXh0IGluIHRoZSBjb250ZW50
ZWRpdGFibGUuIEEgY29tcG9zaXRpb25lbmQgZXZlbnQKKyAgICBzaG91bGQgYmUgZmlyZWQgb24g
dGhlIGNvbnRlbnRlZGl0YWJsZS48L3A+CisgICAgPGlucHV0IGlkPSJwbGFpbiI+PC9pbnB1dD4K
KyAgICA8ZGl2IGlkPSJyaWNoIiBjb250ZW50ZWRpdGFibGUgc3R5bGU9ImJvcmRlcjogMXB4IGRh
c2hlZCI+PC9kaXY+CisgICAgPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KKyAgICA8c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgICAgIGxldCB3cml0ZSA9IHMgPT4gb3V0cHV0Lmlu
bmVySFRNTCArPSBgJHtzfTxicj5gOworICAgICAgICBwbGFpbi5hZGRFdmVudExpc3RlbmVyKCJj
b21wb3NpdGlvbmVuZCIsIGxvZ0NvbXBvc2l0aW9uRW5kKTsKKyAgICAgICAgcmljaC5hZGRFdmVu
dExpc3RlbmVyKCJjb21wb3NpdGlvbmVuZCIsIGxvZ0NvbXBvc2l0aW9uRW5kKTsKKyAgICAgICAg
cGxhaW4uZm9jdXMoKTsKKworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93
LnRleHRJbnB1dENvbnRyb2xsZXIpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOworCisgICAgICAgICAgICB3cml0ZSgiIik7CisgICAgICAgICAgICB3cml0ZSgiMS4gRWRp
dGluZyB0aGUgcGxhaW4gaW5wdXQgZmllbGQiKTsKKyAgICAgICAgICAgIHRleHRJbnB1dENvbnRy
b2xsZXIuc2V0TWFya2VkVGV4dCgiYSIsIDEsIDApOworICAgICAgICAgICAgd3JpdGUoIiAgIEZv
Y3VzaW5nIHRoZSByaWNoIGNvbnRlbnRlZGl0YWJsZSIpOworICAgICAgICAgICAgcmljaC5mb2N1
cygpOworCisgICAgICAgICAgICB3cml0ZSgiIik7CisgICAgICAgICAgICB3cml0ZSgiMi4gRWRp
dGluZyB0aGUgcmljaCBjb250ZW50ZWRpdGFibGUiKTsKKyAgICAgICAgICAgIHRleHRJbnB1dENv
bnRyb2xsZXIuc2V0TWFya2VkVGV4dCgiYiIsIDEsIDApOworICAgICAgICAgICAgd3JpdGUoIiAg
IEZvY3VzaW5nIHRoZSBwbGFpbiBpbnB1dCBmaWVsZCIpOworICAgICAgICAgICAgcGxhaW4uZm9j
dXMoKTsKKworICAgICAgICAgICAgd3JpdGUoIiIpOworICAgICAgICAgICAgd3JpdGUoIjMuIEVk
aXRpbmcgdGhlIHBsYWluIGlucHV0IGZpZWxkIGFnYWluIik7CisgICAgICAgICAgICB0ZXh0SW5w
dXRDb250cm9sbGVyLnNldE1hcmtlZFRleHQoImMiLCAxLCAwKTsKKyAgICAgICAgICAgIHdyaXRl
KCIgICBCbHVycmluZyB0aGUgcGxhaW4gaW5wdXQgZmllbGQiKTsKKyAgICAgICAgICAgIHBsYWlu
LmJsdXIoKTsKKworICAgICAgICAgICAgd3JpdGUoIiIpOworICAgICAgICAgICAgd3JpdGUoIjQu
IEVkaXRpbmcgdGhlIHJpY2ggY29udGVudGVkaXRhYmxlIGFnYWluIik7CisgICAgICAgICAgICBy
aWNoLmZvY3VzKCk7CisgICAgICAgICAgICB0ZXh0SW5wdXRDb250cm9sbGVyLnNldE1hcmtlZFRl
eHQoImQiLCAxLCAwKTsKKyAgICAgICAgICAgIHRleHRJbnB1dENvbnRyb2xsZXIuc2V0TWFya2Vk
VGV4dCgiZGUiLCAyLCAwKTsKKyAgICAgICAgICAgIHRleHRJbnB1dENvbnRyb2xsZXIuc2V0TWFy
a2VkVGV4dCgiZGVmIiwgMywgMCk7CisgICAgICAgICAgICB3cml0ZSgiICAgQ2hhbmdpbmcgc2Vs
ZWN0aW9uIHdpdGhpbiB0aGUgcmljaCBjb250ZW50ZWRpdGFibGUiKTsKKyAgICAgICAgICAgIGRv
Y3VtZW50LmV4ZWNDb21tYW5kKCJTZWxlY3RBbGwiKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1
bmN0aW9uIGxvZ0NvbXBvc2l0aW9uRW5kKGV2ZW50KQorICAgICAgICB7CisgICAgICAgICAgICB3
cml0ZShgUEFTUzogRGlzcGF0Y2hlZCBjb21wb3NpdGlvbmVuZCBvbiAmbHQ7JHtldmVudC50YXJn
ZXQudGFnTmFtZX0gaWQ9IiR7ZXZlbnQudGFyZ2V0LmlkfSImZ3Q7YCk7CisgICAgICAgIH0KKyAg
ICA8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2lvcy1zaW11bGF0b3IvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2lvcy1zaW11bGF0b3IvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAwNmNjOTYzMDA5ZDg0NGUw
Y2EwMGUyMTAzODkyYzUyMmZhZWVmYjkwLi4yY2FhZmE4ZmVmMmM4ZThkZTk5YmFiNTdjZWI3YWMx
YWUxNWVmNzIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9y
L1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRv
ci9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMjAxLDYgKzEyMDEsNyBAQCBmYXN0L2V2ZW50cy9mb2N1
cy1jaGFuZ2UtY3Jhc2gyLmh0bWwgWyBGYWlsdXJlIF0KIGZhc3QvZXZlbnRzL2ZyYW1lLXNjcm9s
bC1mYWtlLW1vdXNlLW1vdmUuaHRtbCBbIEZhaWx1cmUgXQogZmFzdC9ldmVudHMvZnJhbWUtdGFi
LWZvY3VzLmh0bWwgWyBGYWlsdXJlIF0KIGZhc3QvZXZlbnRzL2ltZS1jb21wb3NpdGlvbi1ldmVu
dHMtMDAxLmh0bWwgWyBGYWlsdXJlIF0KK2Zhc3QvZXZlbnRzL2ltZS1jb21wb3NpdGlvbmVuZC1v
bi1zZWxlY3Rpb24tY2hhbmdlLmh0bWwgWyBGYWlsdXJlIF0KIGZhc3QvZXZlbnRzL2lucHV0VGV4
dC1uZXZlci1maXJlZC1vbi1rZXlkb3duLWNhbmNlbC5odG1sIFsgRmFpbHVyZSBdCiBmYXN0L2V2
ZW50cy9pbnB1dC1ldmVudHMtZHJhZy1hbmQtZHJvcC5odG1sIFsgRmFpbHVyZSBdCiBmYXN0L2V2
ZW50cy9pbnB1dC1ldmVudHMtaW5zZXJ0LWJ5LWRyb3AuaHRtbCBbIEZhaWx1cmUgXQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>